summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/nemesis.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/nemesis.cpp')
-rw-r--r--src/mame/drivers/nemesis.cpp655
1 files changed, 321 insertions, 334 deletions
diff --git a/src/mame/drivers/nemesis.cpp b/src/mame/drivers/nemesis.cpp
index f8db2b6d1f3..ee23fbba0d8 100644
--- a/src/mame/drivers/nemesis.cpp
+++ b/src/mame/drivers/nemesis.cpp
@@ -1458,15 +1458,15 @@ void nemesis_state::machine_reset()
m_irq_port_last = 0;
}
-MACHINE_CONFIG_START(nemesis_state::nemesis)
-
+void nemesis_state::nemesis(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000,18432000/2) /* 9.216 MHz? */
-// 14318180/2, /* From schematics, should be accurate */
- MCFG_DEVICE_PROGRAM_MAP(nemesis_map)
+ M68000(config, m_maincpu, 18432000/2); /* 9.216 MHz? */
+// 14318180/2, /* From schematics, should be accurate */
+ m_maincpu->set_addrmap(AS_PROGRAM, &nemesis_state::nemesis_map);
- MCFG_DEVICE_ADD("audiocpu", Z80,14318180/4) /* From schematics, should be accurate */
- MCFG_DEVICE_PROGRAM_MAP(sound_map) /* fixed */
+ Z80(config, m_audiocpu, 14318180/4); /* From schematics, should be accurate */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &nemesis_state::sound_map); /* fixed */
ls259_device &outlatch(LS259(config, "outlatch")); // 13J
outlatch.q_out_cb<0>().set(FUNC(nemesis_state::coin1_lockout_w));
@@ -1481,18 +1481,17 @@ MACHINE_CONFIG_START(nemesis_state::nemesis)
WATCHDOG_TIMER(config, "watchdog", 0);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE((18432000.0/4)/(288*264)) /* ??? */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, nemesis_state, nemesis_vblank_irq))
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_nemesis)
- MCFG_PALETTE_ADD("palette", 2048)
-
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz((18432000.0/4)/(288*264)); /* ??? */
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(32*8, 32*8);
+ m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ m_screen->set_screen_update(FUNC(nemesis_state::screen_update_nemesis));
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(FUNC(nemesis_state::nemesis_vblank_irq));
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_nemesis);
+ PALETTE(config, m_palette, 2048);
/* sound hardware */
SPEAKER(config, "mono").front_center();
@@ -1511,29 +1510,28 @@ MACHINE_CONFIG_START(nemesis_state::nemesis)
ay2.add_route(1, "filter3", 1.00);
ay2.add_route(2, "filter4", 1.00);
- MCFG_DEVICE_ADD("filter1", FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADD("filter2", FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADD("filter3", FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADD("filter4", FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-
- MCFG_K005289_ADD("k005289", 3579545)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.35)
-MACHINE_CONFIG_END
-
-
-MACHINE_CONFIG_START(nemesis_state::gx400)
+ FILTER_RC(config, m_filter1);
+ m_filter1->add_route(ALL_OUTPUTS, "mono", 1.0);
+ FILTER_RC(config, m_filter2);
+ m_filter2->add_route(ALL_OUTPUTS, "mono", 1.0);
+ FILTER_RC(config, m_filter3);
+ m_filter3->add_route(ALL_OUTPUTS, "mono", 1.0);
+ FILTER_RC(config, m_filter4);
+ m_filter4->add_route(ALL_OUTPUTS, "mono", 1.0);
+
+ K005289(config, m_k005289, 3579545);
+ m_k005289->add_route(ALL_OUTPUTS, "mono", 0.35);
+}
+void nemesis_state::gx400(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000,18432000/2) /* 9.216MHz */
- MCFG_DEVICE_PROGRAM_MAP(gx400_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", nemesis_state, gx400_interrupt, "screen", 0, 1)
+ M68000(config, m_maincpu, 18432000/2); /* 9.216MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &nemesis_state::gx400_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(nemesis_state::gx400_interrupt), "screen", 0, 1);
- MCFG_DEVICE_ADD("audiocpu", Z80,14318180/4) /* 3.579545 MHz */
- MCFG_DEVICE_PROGRAM_MAP(gx400_sound_map)
+ Z80(config, m_audiocpu, 14318180/4); /* 3.579545 MHz */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &nemesis_state::gx400_sound_map);
ls259_device &outlatch(LS259(config, "outlatch"));
outlatch.q_out_cb<0>().set(FUNC(nemesis_state::coin1_lockout_w));;
@@ -1550,18 +1548,17 @@ MACHINE_CONFIG_START(nemesis_state::gx400)
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE((18432000.0/4)/(288*264)) /* 60.606060 Hz */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("audiocpu", INPUT_LINE_NMI))
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_nemesis)
- MCFG_PALETTE_ADD("palette", 2048)
-
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz((18432000.0/4)/(288*264)); /* 60.606060 Hz */
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(32*8, 32*8);
+ m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ m_screen->set_screen_update(FUNC(nemesis_state::screen_update_nemesis));
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set_inputline("audiocpu", INPUT_LINE_NMI);
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_nemesis);
+ PALETTE(config, m_palette, 2048);
/* sound hardware */
SPEAKER(config, "mono").front_center();
@@ -1580,33 +1577,32 @@ MACHINE_CONFIG_START(nemesis_state::gx400)
ay2.add_route(1, "filter3", 1.00);
ay2.add_route(2, "filter4", 1.00);
- MCFG_DEVICE_ADD("filter1", FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADD("filter2", FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADD("filter3", FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADD("filter4", FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-
- MCFG_K005289_ADD("k005289", 3579545)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.35)
-
- MCFG_DEVICE_ADD("vlm", VLM5030, 3579545)
- MCFG_DEVICE_ADDRESS_MAP(0, gx400_vlm_map)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70)
-MACHINE_CONFIG_END
-
-
-MACHINE_CONFIG_START(nemesis_state::konamigt)
+ FILTER_RC(config, m_filter1);
+ m_filter1->add_route(ALL_OUTPUTS, "mono", 1.0);
+ FILTER_RC(config, m_filter2);
+ m_filter2->add_route(ALL_OUTPUTS, "mono", 1.0);
+ FILTER_RC(config, m_filter3);
+ m_filter3->add_route(ALL_OUTPUTS, "mono", 1.0);
+ FILTER_RC(config, m_filter4);
+ m_filter4->add_route(ALL_OUTPUTS, "mono", 1.0);
+
+ K005289(config, m_k005289, 3579545);
+ m_k005289->add_route(ALL_OUTPUTS, "mono", 0.35);
+
+ VLM5030(config, m_vlm, 3579545);
+ m_vlm->set_addrmap(0, &nemesis_state::gx400_vlm_map);
+ m_vlm->add_route(ALL_OUTPUTS, "mono", 0.70);
+}
+void nemesis_state::konamigt(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000,18432000/2) /* 9.216 MHz? */
- MCFG_DEVICE_PROGRAM_MAP(konamigt_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", nemesis_state, konamigt_interrupt, "screen", 0, 1)
+ M68000(config, m_maincpu, 18432000/2); /* 9.216 MHz? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &nemesis_state::konamigt_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(nemesis_state::konamigt_interrupt), "screen", 0, 1);
- MCFG_DEVICE_ADD("audiocpu", Z80,14318180/4) /* 3.579545 MHz */
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
+ Z80(config, m_audiocpu, 14318180/4); /* 3.579545 MHz */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &nemesis_state::sound_map);
ls259_device &outlatch(LS259(config, "outlatch"));
outlatch.q_out_cb<0>().set(FUNC(nemesis_state::coin2_lockout_w));
@@ -1622,17 +1618,16 @@ MACHINE_CONFIG_START(nemesis_state::konamigt)
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE((18432000.0/4)/(288*264)) /* 60.606060 Hz */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_nemesis)
- MCFG_PALETTE_ADD("palette", 2048)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz((18432000.0/4)/(288*264)); /* 60.606060 Hz */
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(32*8, 32*8);
+ m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ m_screen->set_screen_update(FUNC(nemesis_state::screen_update_nemesis));
+ m_screen->set_palette(m_palette);
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_nemesis);
+ PALETTE(config, m_palette, 2048);
/* sound hardware */
SPEAKER(config, "mono").front_center();
@@ -1651,29 +1646,28 @@ MACHINE_CONFIG_START(nemesis_state::konamigt)
ay2.add_route(1, "filter3", 1.00);
ay2.add_route(2, "filter4", 1.00);
- MCFG_DEVICE_ADD("filter1", FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADD("filter2", FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADD("filter3", FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADD("filter4", FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-
- MCFG_K005289_ADD("k005289", 3579545)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
-MACHINE_CONFIG_END
-
-
-MACHINE_CONFIG_START(nemesis_state::rf2_gx400)
+ FILTER_RC(config, m_filter1);
+ m_filter1->add_route(ALL_OUTPUTS, "mono", 1.0);
+ FILTER_RC(config, m_filter2);
+ m_filter2->add_route(ALL_OUTPUTS, "mono", 1.0);
+ FILTER_RC(config, m_filter3);
+ m_filter3->add_route(ALL_OUTPUTS, "mono", 1.0);
+ FILTER_RC(config, m_filter4);
+ m_filter4->add_route(ALL_OUTPUTS, "mono", 1.0);
+
+ K005289(config, m_k005289, 3579545);
+ m_k005289->add_route(ALL_OUTPUTS, "mono", 0.60);
+}
+void nemesis_state::rf2_gx400(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000,18432000/2) /* 9.216MHz */
- MCFG_DEVICE_PROGRAM_MAP(rf2_gx400_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", nemesis_state, gx400_interrupt, "screen", 0, 1)
+ M68000(config, m_maincpu, 18432000/2); /* 9.216MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &nemesis_state::rf2_gx400_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(nemesis_state::gx400_interrupt), "screen", 0, 1);
- MCFG_DEVICE_ADD("audiocpu", Z80,14318180/4) /* 3.579545 MHz */
- MCFG_DEVICE_PROGRAM_MAP(gx400_sound_map)
+ Z80(config, m_audiocpu, 14318180/4); /* 3.579545 MHz */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &nemesis_state::gx400_sound_map);
ls259_device &outlatch(LS259(config, "outlatch"));
outlatch.q_out_cb<0>().set(FUNC(nemesis_state::coin1_lockout_w));;
@@ -1690,18 +1684,17 @@ MACHINE_CONFIG_START(nemesis_state::rf2_gx400)
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE((18432000.0/4)/(288*264)) /* 60.606060 Hz */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("audiocpu", INPUT_LINE_NMI))
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_nemesis)
- MCFG_PALETTE_ADD("palette", 2048)
-
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz((18432000.0/4)/(288*264)); /* 60.606060 Hz */
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(32*8, 32*8);
+ m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ m_screen->set_screen_update(FUNC(nemesis_state::screen_update_nemesis));
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set_inputline("audiocpu", INPUT_LINE_NMI);
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_nemesis);
+ PALETTE(config, m_palette, 2048);
/* sound hardware */
SPEAKER(config, "mono").front_center();
@@ -1720,50 +1713,49 @@ MACHINE_CONFIG_START(nemesis_state::rf2_gx400)
ay2.add_route(1, "filter3", 1.00);
ay2.add_route(2, "filter4", 1.00);
- MCFG_DEVICE_ADD("filter1", FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADD("filter2", FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADD("filter3", FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADD("filter4", FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-
- MCFG_K005289_ADD("k005289", 3579545)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
-
- MCFG_DEVICE_ADD("vlm", VLM5030, 3579545)
- MCFG_DEVICE_ADDRESS_MAP(0, gx400_vlm_map)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70)
-MACHINE_CONFIG_END
-
-
-MACHINE_CONFIG_START(nemesis_state::salamand)
+ FILTER_RC(config, m_filter1);
+ m_filter1->add_route(ALL_OUTPUTS, "mono", 1.0);
+ FILTER_RC(config, m_filter2);
+ m_filter2->add_route(ALL_OUTPUTS, "mono", 1.0);
+ FILTER_RC(config, m_filter3);
+ m_filter3->add_route(ALL_OUTPUTS, "mono", 1.0);
+ FILTER_RC(config, m_filter4);
+ m_filter4->add_route(ALL_OUTPUTS, "mono", 1.0);
+
+ K005289(config, m_k005289, 3579545);
+ m_k005289->add_route(ALL_OUTPUTS, "mono", 0.60);
+
+ VLM5030(config, m_vlm, 3579545);
+ m_vlm->set_addrmap(0, &nemesis_state::gx400_vlm_map);
+ m_vlm->add_route(ALL_OUTPUTS, "mono", 0.70);
+}
+void nemesis_state::salamand(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000,18432000/2) /* 9.216MHz */
- MCFG_DEVICE_PROGRAM_MAP(salamand_map)
+ M68000(config, m_maincpu, 18432000/2); /* 9.216MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &nemesis_state::salamand_map);
- MCFG_DEVICE_ADD("audiocpu", Z80, 3579545) /* 3.579545 MHz */
- MCFG_DEVICE_PROGRAM_MAP(sal_sound_map)
+ Z80(config, m_audiocpu, 3579545); /* 3.579545 MHz */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &nemesis_state::sal_sound_map);
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
- MCFG_SCREEN_REFRESH_RATE((18432000.0/4)/(288*264)) /* 60.606060 Hz */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC((264-256)*125/2))
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, nemesis_state, nemesis_vblank_irq))
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_nemesis)
- MCFG_PALETTE_ADD("palette", 2048)
- MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
- MCFG_PALETTE_MEMBITS(8)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
+ m_screen->set_refresh_hz((18432000.0/4)/(288*264)); /* 60.606060 Hz */
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC((264-256)*125/2));
+ m_screen->set_size(32*8, 32*8);
+ m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ m_screen->set_screen_update(FUNC(nemesis_state::screen_update_nemesis));
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(FUNC(nemesis_state::nemesis_vblank_irq));
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_nemesis);
+ PALETTE(config, m_palette, 2048);
+ m_palette->set_format(PALETTE_FORMAT_xBBBBBGGGGGRRRRR);
+ m_palette->set_membits(8);
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
@@ -1771,51 +1763,50 @@ MACHINE_CONFIG_START(nemesis_state::salamand)
GENERIC_LATCH_8(config, "soundlatch");
- MCFG_DEVICE_ADD("vlm", VLM5030, 3579545)
- MCFG_DEVICE_ADDRESS_MAP(0, salamand_vlm_map)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 2.50)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 2.50)
+ VLM5030(config, m_vlm, 3579545);
+ m_vlm->set_addrmap(0, &nemesis_state::salamand_vlm_map);
+ m_vlm->add_route(ALL_OUTPUTS, "lspeaker", 2.50);
+ m_vlm->add_route(ALL_OUTPUTS, "rspeaker", 2.50);
- MCFG_DEVICE_ADD("k007232", K007232, 3579545)
- MCFG_K007232_PORT_WRITE_HANDLER(WRITE8(*this, nemesis_state, volume_callback))
- MCFG_SOUND_ROUTE(0, "lspeaker", 0.08)
- MCFG_SOUND_ROUTE(0, "rspeaker", 0.08)
- MCFG_SOUND_ROUTE(1, "lspeaker", 0.08)
- MCFG_SOUND_ROUTE(1, "rspeaker", 0.08)
+ K007232(config, m_k007232, 3579545);
+ m_k007232->port_write().set(FUNC(nemesis_state::volume_callback));
+ m_k007232->add_route(0, "lspeaker", 0.08);
+ m_k007232->add_route(0, "rspeaker", 0.08);
+ m_k007232->add_route(1, "lspeaker", 0.08);
+ m_k007232->add_route(1, "rspeaker", 0.08);
ym2151_device &ymsnd(YM2151(config, "ymsnd", 3579545));
// ymsnd.irq_handler().set_inputline(m_audiocpu, 0); ... Interrupts _are_ generated, I wonder where they go
ymsnd.add_route(0, "rspeaker", 1.2); // reversed according to MT #4565
ymsnd.add_route(1, "lspeaker", 1.2);
-MACHINE_CONFIG_END
-
-
-MACHINE_CONFIG_START(nemesis_state::blkpnthr)
+}
+void nemesis_state::blkpnthr(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000,18432000/2) /* 9.216 MHz? */
- MCFG_DEVICE_PROGRAM_MAP(blkpnthr_map)
+ M68000(config, m_maincpu, 18432000/2); /* 9.216 MHz? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &nemesis_state::blkpnthr_map);
- MCFG_DEVICE_ADD("audiocpu", Z80, 3579545) /* 3.579545 MHz */
- MCFG_DEVICE_PROGRAM_MAP(blkpnthr_sound_map)
+ Z80(config, m_audiocpu, 3579545); /* 3.579545 MHz */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &nemesis_state::blkpnthr_sound_map);
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
- MCFG_SCREEN_REFRESH_RATE((18432000.0/4)/(288*264)) /* 60.606060 Hz */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, nemesis_state, blkpnthr_vblank_irq))
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_nemesis)
- MCFG_PALETTE_ADD("palette", 2048)
- MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
- MCFG_PALETTE_MEMBITS(8)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
+ m_screen->set_refresh_hz((18432000.0/4)/(288*264)); /* 60.606060 Hz */
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(32*8, 32*8);
+ m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ m_screen->set_screen_update(FUNC(nemesis_state::screen_update_nemesis));
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(FUNC(nemesis_state::blkpnthr_vblank_irq));
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_nemesis);
+ PALETTE(config, m_palette, 2048);
+ m_palette->set_format(PALETTE_FORMAT_xBBBBBGGGGGRRRRR);
+ m_palette->set_membits(8);
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
@@ -1823,46 +1814,45 @@ MACHINE_CONFIG_START(nemesis_state::blkpnthr)
GENERIC_LATCH_8(config, "soundlatch");
- MCFG_DEVICE_ADD("k007232", K007232, 3579545)
- MCFG_K007232_PORT_WRITE_HANDLER(WRITE8(*this, nemesis_state, volume_callback))
- MCFG_SOUND_ROUTE(0, "lspeaker", 0.10)
- MCFG_SOUND_ROUTE(0, "rspeaker", 0.10)
- MCFG_SOUND_ROUTE(1, "lspeaker", 0.10)
- MCFG_SOUND_ROUTE(1, "rspeaker", 0.10)
+ K007232(config, m_k007232, 3579545);
+ m_k007232->port_write().set(FUNC(nemesis_state::volume_callback));
+ m_k007232->add_route(0, "lspeaker", 0.10);
+ m_k007232->add_route(0, "rspeaker", 0.10);
+ m_k007232->add_route(1, "lspeaker", 0.10);
+ m_k007232->add_route(1, "rspeaker", 0.10);
ym2151_device &ymsnd(YM2151(config, "ymsnd", 3579545));
// ymsnd.irq_handler().set_inputline(m_audiocpu, 0); ... Interrupts _are_ generated, I wonder where they go
ymsnd.add_route(0, "lspeaker", 1.0);
ymsnd.add_route(1, "rspeaker", 1.0);
-MACHINE_CONFIG_END
-
-
-MACHINE_CONFIG_START(nemesis_state::citybomb)
+}
+void nemesis_state::citybomb(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000,18432000/2) /* 9.216 MHz? */
- MCFG_DEVICE_PROGRAM_MAP(citybomb_map)
+ M68000(config, m_maincpu, 18432000/2); /* 9.216 MHz? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &nemesis_state::citybomb_map);
- MCFG_DEVICE_ADD("audiocpu", Z80, 3579545) /* 3.579545 MHz */
- MCFG_DEVICE_PROGRAM_MAP(city_sound_map)
+ Z80(config, m_audiocpu, 3579545); /* 3.579545 MHz */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &nemesis_state::city_sound_map);
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
- MCFG_SCREEN_REFRESH_RATE((18432000.0/4)/(288*264)) /* 60.606060 Hz */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, nemesis_state, nemesis_vblank_irq))
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_nemesis)
- MCFG_PALETTE_ADD("palette", 2048)
- MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
- MCFG_PALETTE_MEMBITS(8)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
+ m_screen->set_refresh_hz((18432000.0/4)/(288*264)); /* 60.606060 Hz */
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(32*8, 32*8);
+ m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ m_screen->set_screen_update(FUNC(nemesis_state::screen_update_nemesis));
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(FUNC(nemesis_state::nemesis_vblank_irq));
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_nemesis);
+ PALETTE(config, m_palette, 2048);
+ m_palette->set_format(PALETTE_FORMAT_xBBBBBGGGGGRRRRR);
+ m_palette->set_membits(8);
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
@@ -1870,50 +1860,49 @@ MACHINE_CONFIG_START(nemesis_state::citybomb)
GENERIC_LATCH_8(config, "soundlatch");
- MCFG_DEVICE_ADD("k007232", K007232, 3579545)
- MCFG_K007232_PORT_WRITE_HANDLER(WRITE8(*this, nemesis_state, volume_callback))
- MCFG_SOUND_ROUTE(0, "lspeaker", 0.30)
- MCFG_SOUND_ROUTE(0, "rspeaker", 0.30)
- MCFG_SOUND_ROUTE(1, "lspeaker", 0.30)
- MCFG_SOUND_ROUTE(1, "rspeaker", 0.30)
-
- MCFG_DEVICE_ADD("ymsnd", YM3812, 3579545)
-// MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) ... Interrupts _are_ generated, I wonder where they go
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-
- MCFG_K051649_ADD("k051649", 3579545/2)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.38)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.38)
-MACHINE_CONFIG_END
-
-
-MACHINE_CONFIG_START(nemesis_state::nyanpani)
+ K007232(config, m_k007232, 3579545);
+ m_k007232->port_write().set(FUNC(nemesis_state::volume_callback));
+ m_k007232->add_route(0, "lspeaker", 0.30);
+ m_k007232->add_route(0, "rspeaker", 0.30);
+ m_k007232->add_route(1, "lspeaker", 0.30);
+ m_k007232->add_route(1, "rspeaker", 0.30);
+
+ ym3812_device &ym3812(YM3812(config, "ymsnd", 3579545));
+// ym3812.irq_handler().set_inputline("audiocpu", 0); ... Interrupts _are_ generated, I wonder where they go
+ ym3812.add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ ym3812.add_route(ALL_OUTPUTS, "rspeaker", 1.0);
+
+ k051649_device &k051649(K051649(config, "k051649", 3579545/2));
+ k051649.add_route(ALL_OUTPUTS, "lspeaker", 0.38);
+ k051649.add_route(ALL_OUTPUTS, "rspeaker", 0.38);
+}
+void nemesis_state::nyanpani(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000,18432000/2) /* 9.216 MHz? */
- MCFG_DEVICE_PROGRAM_MAP(nyanpani_map)
+ M68000(config, m_maincpu, 18432000/2); /* 9.216 MHz? */
+ m_maincpu->set_addrmap(AS_PROGRAM, &nemesis_state::nyanpani_map);
- MCFG_DEVICE_ADD("audiocpu", Z80, 3579545) /* 3.579545 MHz */
- MCFG_DEVICE_PROGRAM_MAP(city_sound_map)
+ Z80(config, m_audiocpu, 3579545); /* 3.579545 MHz */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &nemesis_state::city_sound_map);
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
- MCFG_SCREEN_REFRESH_RATE((18432000.0/4)/(288*264)) /* 60.606060 Hz */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, nemesis_state, nemesis_vblank_irq))
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_nemesis)
- MCFG_PALETTE_ADD("palette", 2048)
- MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
- MCFG_PALETTE_MEMBITS(8)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
+ m_screen->set_refresh_hz((18432000.0/4)/(288*264)); /* 60.606060 Hz */
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(32*8, 32*8);
+ m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ m_screen->set_screen_update(FUNC(nemesis_state::screen_update_nemesis));
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set(FUNC(nemesis_state::nemesis_vblank_irq));
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_nemesis);
+ PALETTE(config, m_palette, 2048);
+ m_palette->set_format(PALETTE_FORMAT_xBBBBBGGGGGRRRRR);
+ m_palette->set_membits(8);
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
@@ -1921,33 +1910,32 @@ MACHINE_CONFIG_START(nemesis_state::nyanpani)
GENERIC_LATCH_8(config, "soundlatch");
- MCFG_DEVICE_ADD("k007232", K007232, 3579545)
- MCFG_K007232_PORT_WRITE_HANDLER(WRITE8(*this, nemesis_state, volume_callback))
- MCFG_SOUND_ROUTE(0, "lspeaker", 0.30)
- MCFG_SOUND_ROUTE(0, "rspeaker", 0.30)
- MCFG_SOUND_ROUTE(1, "lspeaker", 0.30)
- MCFG_SOUND_ROUTE(1, "rspeaker", 0.30)
-
- MCFG_DEVICE_ADD("ymsnd", YM3812, 3579545)
-// MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) ... Interrupts _are_ generated, I wonder where they go
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-
- MCFG_K051649_ADD("k051649", 3579545/2)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.38)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.38)
-MACHINE_CONFIG_END
-
-
-MACHINE_CONFIG_START(nemesis_state::hcrash)
+ K007232(config, m_k007232, 3579545);
+ m_k007232->port_write().set(FUNC(nemesis_state::volume_callback));
+ m_k007232->add_route(0, "lspeaker", 0.30);
+ m_k007232->add_route(0, "rspeaker", 0.30);
+ m_k007232->add_route(1, "lspeaker", 0.30);
+ m_k007232->add_route(1, "rspeaker", 0.30);
+
+ ym3812_device &ym3812(YM3812(config, "ymsnd", 3579545));
+// ym3812.irq_handler().set_inputline("audiocpu", 0); ... Interrupts _are_ generated, I wonder where they go
+ ym3812.add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ ym3812.add_route(ALL_OUTPUTS, "rspeaker", 1.0);
+
+ k051649_device &k051649(K051649(config, "k051649", 3579545/2));
+ k051649.add_route(ALL_OUTPUTS, "lspeaker", 0.38);
+ k051649.add_route(ALL_OUTPUTS, "rspeaker", 0.38);
+}
+void nemesis_state::hcrash(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000,18432000/3) /* 6.144MHz */
- MCFG_DEVICE_PROGRAM_MAP(hcrash_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", nemesis_state, konamigt_interrupt, "screen", 0, 1)
+ M68000(config, m_maincpu, 18432000/3); /* 6.144MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &nemesis_state::hcrash_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(nemesis_state::konamigt_interrupt), "screen", 0, 1);
- MCFG_DEVICE_ADD("audiocpu", Z80,14318180/4) /* 3.579545 MHz */
- MCFG_DEVICE_PROGRAM_MAP(sal_sound_map)
+ Z80(config, m_audiocpu, 14318180/4); /* 3.579545 MHz */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &nemesis_state::sal_sound_map);
ls259_device &intlatch(LS259(config, "intlatch"));
intlatch.q_out_cb<0>().set_nop(); // ?
@@ -1957,18 +1945,18 @@ MACHINE_CONFIG_START(nemesis_state::hcrash)
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE((18432000.0/4)/(288*264)) /* 60.606060 Hz */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_nemesis)
- MCFG_PALETTE_ADD("palette", 2048)
- MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
- MCFG_PALETTE_MEMBITS(8)
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz((18432000.0/4)/(288*264)); /* 60.606060 Hz */
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(32*8, 32*8);
+ m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ m_screen->set_screen_update(FUNC(nemesis_state::screen_update_nemesis));
+ m_screen->set_palette(m_palette);
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_nemesis);
+ PALETTE(config, m_palette, 2048);
+ m_palette->set_format(PALETTE_FORMAT_xBBBBBGGGGGRRRRR);
+ m_palette->set_membits(8);
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
@@ -1976,23 +1964,23 @@ MACHINE_CONFIG_START(nemesis_state::hcrash)
GENERIC_LATCH_8(config, "soundlatch");
- MCFG_DEVICE_ADD("vlm", VLM5030, 3579545)
- MCFG_DEVICE_ADDRESS_MAP(0, salamand_vlm_map)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.00)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.00)
+ VLM5030(config, m_vlm, 3579545);
+ m_vlm->set_addrmap(0, &nemesis_state::salamand_vlm_map);
+ m_vlm->add_route(ALL_OUTPUTS, "lspeaker", 1.00);
+ m_vlm->add_route(ALL_OUTPUTS, "rspeaker", 1.00);
- MCFG_DEVICE_ADD("k007232", K007232, 3579545)
- MCFG_K007232_PORT_WRITE_HANDLER(WRITE8(*this, nemesis_state, volume_callback))
- MCFG_SOUND_ROUTE(0, "lspeaker", 0.10)
- MCFG_SOUND_ROUTE(0, "rspeaker", 0.10)
- MCFG_SOUND_ROUTE(1, "lspeaker", 0.10)
- MCFG_SOUND_ROUTE(1, "rspeaker", 0.10)
+ K007232(config, m_k007232, 3579545);
+ m_k007232->port_write().set(FUNC(nemesis_state::volume_callback));
+ m_k007232->add_route(0, "lspeaker", 0.10);
+ m_k007232->add_route(0, "rspeaker", 0.10);
+ m_k007232->add_route(1, "lspeaker", 0.10);
+ m_k007232->add_route(1, "rspeaker", 0.10);
ym2151_device &ymsnd(YM2151(config, "ymsnd", 3579545));
// ymsnd.irq_handler().set_inputline(m_audiocpu, 0); ... Interrupts _are_ generated, I wonder where they go
ymsnd.add_route(0, "lspeaker", 1.0);
ymsnd.add_route(1, "rspeaker", 1.0);
-MACHINE_CONFIG_END
+}
/***************************************************************************
@@ -2693,16 +2681,16 @@ Manual says SW4, 5, 6, 7 & 8 not used, leave off
*/
-MACHINE_CONFIG_START(nemesis_state::bubsys)
-
+void nemesis_state::bubsys(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000,18432000/2) /* 9.216MHz */
- MCFG_DEVICE_PROGRAM_MAP(gx400_map)
- //MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", nemesis_state, gx400_interrupt, "screen", 0, 1)
- MCFG_DEVICE_DISABLE()
+ M68000(config, m_maincpu, 18432000/2); /* 9.216MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &nemesis_state::gx400_map);
+ //TIMER(config, "scantimer").configure_scanline(FUNC(nemesis_state::gx400_interrupt), "screen", 0, 1);
+ m_maincpu->set_disable();
- MCFG_DEVICE_ADD("audiocpu", Z80,14318180/4) /* 3.579545 MHz */
- MCFG_DEVICE_PROGRAM_MAP(gx400_sound_map)
+ Z80(config, m_audiocpu, 14318180/4); /* 3.579545 MHz */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &nemesis_state::gx400_sound_map);
ls259_device &outlatch(LS259(config, "outlatch"));
outlatch.q_out_cb<0>().set(FUNC(nemesis_state::coin1_lockout_w));;
@@ -2719,18 +2707,17 @@ MACHINE_CONFIG_START(nemesis_state::bubsys)
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE((18432000.0/4)/(288*264)) /* 60.606060 Hz */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("audiocpu", INPUT_LINE_NMI))
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_nemesis)
- MCFG_PALETTE_ADD("palette", 2048)
-
+ SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ m_screen->set_refresh_hz((18432000.0/4)/(288*264)); /* 60.606060 Hz */
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ m_screen->set_size(32*8, 32*8);
+ m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1);
+ m_screen->set_screen_update(FUNC(nemesis_state::screen_update_nemesis));
+ m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set_inputline("audiocpu", INPUT_LINE_NMI);
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_nemesis);
+ PALETTE(config, m_palette, 2048);
/* sound hardware */
SPEAKER(config, "mono").front_center();
@@ -2749,22 +2736,22 @@ MACHINE_CONFIG_START(nemesis_state::bubsys)
ay2.add_route(1, "filter3", 1.00);
ay2.add_route(2, "filter4", 1.00);
- MCFG_DEVICE_ADD("filter1", FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADD("filter2", FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADD("filter3", FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADD("filter4", FILTER_RC)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-
- MCFG_K005289_ADD("k005289", 3579545)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.35)
-
- MCFG_DEVICE_ADD("vlm", VLM5030, 3579545)
- MCFG_DEVICE_ADDRESS_MAP(0, gx400_vlm_map)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70)
-MACHINE_CONFIG_END
+ FILTER_RC(config, m_filter1);
+ m_filter1->add_route(ALL_OUTPUTS, "mono", 1.0);
+ FILTER_RC(config, m_filter2);
+ m_filter2->add_route(ALL_OUTPUTS, "mono", 1.0);
+ FILTER_RC(config, m_filter3);
+ m_filter3->add_route(ALL_OUTPUTS, "mono", 1.0);
+ FILTER_RC(config, m_filter4);
+ m_filter4->add_route(ALL_OUTPUTS, "mono", 1.0);
+
+ K005289(config, m_k005289, 3579545);
+ m_k005289->add_route(ALL_OUTPUTS, "mono", 0.35);
+
+ VLM5030(config, m_vlm, 3579545);
+ m_vlm->set_addrmap(0, &nemesis_state::gx400_vlm_map);
+ m_vlm->add_route(ALL_OUTPUTS, "mono", 0.70);
+}