diff options
Diffstat (limited to 'src/mame/drivers/nemesis.cpp')
-rw-r--r-- | src/mame/drivers/nemesis.cpp | 655 |
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); +} |