diff options
Diffstat (limited to 'src/mame/drivers/namcos22.cpp')
-rw-r--r-- | src/mame/drivers/namcos22.cpp | 135 |
1 files changed, 68 insertions, 67 deletions
diff --git a/src/mame/drivers/namcos22.cpp b/src/mame/drivers/namcos22.cpp index 070624beddb..c91fc4628c6 100644 --- a/src/mame/drivers/namcos22.cpp +++ b/src/mame/drivers/namcos22.cpp @@ -3877,12 +3877,12 @@ void namcos22_state::machine_start() } // System22 -MACHINE_CONFIG_START(namcos22_state::namcos22) - +void namcos22_state::namcos22(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68020, 49.152_MHz_XTAL/2) // MC68020RP25E - MCFG_DEVICE_PROGRAM_MAP(namcos22_am) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", namcos22_state, namcos22_interrupt) + M68020(config, m_maincpu, 49.152_MHz_XTAL/2); // MC68020RP25E + m_maincpu->set_addrmap(AS_PROGRAM, &namcos22_state::namcos22_am); + m_maincpu->set_vblank_int("screen", FUNC(namcos22_state::namcos22_interrupt)); tms32025_device& master(TMS32025(config, m_master, 40_MHz_XTAL)); master.set_addrmap(AS_PROGRAM, &namcos22_state::master_dsp_program); @@ -3906,58 +3906,59 @@ MACHINE_CONFIG_START(namcos22_state::namcos22) slave.xf_out_cb().set(FUNC(namcos22_state::dsp_xf_output_w)); slave.dx_out_cb().set(FUNC(namcos22_state::slave_serial_io_w)); - MCFG_DEVICE_ADD("mcu", NAMCO_C74, 49.152_MHz_XTAL/3) // C74 on the CPU board has no periodic interrupts, it runs entirely off Timer A0 - MCFG_DEVICE_PROGRAM_MAP(mcu_s22_program) - MCFG_DEVICE_IO_MAP(mcu_s22_io) + NAMCO_C74(config, m_mcu, 49.152_MHz_XTAL/3); // C74 on the CPU board has no periodic interrupts, it runs entirely off Timer A0 + m_mcu->set_addrmap(AS_PROGRAM, &namcos22_state::mcu_s22_program); + m_mcu->set_addrmap(AS_IO, &namcos22_state::mcu_s22_io); - MCFG_DEVICE_ADD("iomcu", NAMCO_C74, 6.144_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(iomcu_s22_program) - MCFG_DEVICE_IO_MAP(iomcu_s22_io) + NAMCO_C74(config, m_iomcu, 6.144_MHz_XTAL); + m_iomcu->set_addrmap(AS_PROGRAM, &namcos22_state::iomcu_s22_program); + m_iomcu->set_addrmap(AS_IO, &namcos22_state::iomcu_s22_io); EEPROM_2864(config, "eeprom").write_time(attotime::zero); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - //MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) - MCFG_SCREEN_UPDATE_DRIVER(namcos22_state, screen_update_namcos22) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, namcos22_state, screen_vblank)) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + //m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE); + m_screen->set_raw(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART); + m_screen->set_screen_update(FUNC(namcos22_state::screen_update_namcos22)); + m_screen->screen_vblank().set(FUNC(namcos22_state::screen_vblank)); - MCFG_PALETTE_ADD("palette", 0x8000) + PALETTE(config, m_palette).set_entries(0x8000); GFXDECODE(config, m_gfxdecode, m_palette, gfx_namcos22); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("c352", C352, 49.152_MHz_XTAL/2, 288) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.00) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.00) -MACHINE_CONFIG_END + C352(config, m_c352, 49.152_MHz_XTAL/2, 288); + m_c352->add_route(0, "lspeaker", 1.00); + m_c352->add_route(1, "rspeaker", 1.00); +} -MACHINE_CONFIG_START(namcos22_state::cybrcomm) +void namcos22_state::cybrcomm(machine_config &config) +{ namcos22(config); SPEAKER(config, "rear_left").rear_left(); SPEAKER(config, "rear_right").rear_right(); - MCFG_DEVICE_MODIFY("c352") - MCFG_SOUND_ROUTE(2, "rear_left", 1.00) - MCFG_SOUND_ROUTE(3, "rear_right", 1.00) -MACHINE_CONFIG_END + m_c352->add_route(2, "rear_left", 1.00); + m_c352->add_route(3, "rear_right", 1.00); +} // System Super22 -MACHINE_CONFIG_START(namcos22_state::namcos22s) +void namcos22_state::namcos22s(machine_config &config) +{ namcos22(config); /* basic machine hardware */ - MCFG_DEVICE_REPLACE("maincpu", M68EC020, 49.152_MHz_XTAL/2) // MC68EC020FG25 - MCFG_DEVICE_PROGRAM_MAP(namcos22s_am) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", namcos22_state, namcos22s_interrupt) + M68EC020(config.replace(), m_maincpu, 49.152_MHz_XTAL/2); // MC68EC020FG25 + m_maincpu->set_addrmap(AS_PROGRAM, &namcos22_state::namcos22s_am); + m_maincpu->set_vblank_int("screen", FUNC(namcos22_state::namcos22s_interrupt)); - MCFG_DEVICE_REPLACE("mcu", M37710S4, 49.152_MHz_XTAL/3) - MCFG_DEVICE_PROGRAM_MAP(mcu_program) - MCFG_DEVICE_IO_MAP(mcu_io) + M37710S4(config.replace(), m_mcu, 49.152_MHz_XTAL/3); + m_mcu->set_addrmap(AS_PROGRAM, &namcos22_state::mcu_program); + m_mcu->set_addrmap(AS_IO, &namcos22_state::mcu_io); TIMER(config, "mcu_irq").configure_scanline(FUNC(namcos22_state::mcu_irq), "screen", 0, 240); config.m_minimum_quantum = attotime::from_hz(9000); // erratic inputs otherwise, probably mcu vs maincpu shareram @@ -3967,72 +3968,71 @@ MACHINE_CONFIG_START(namcos22_state::namcos22s) m_mb87078->gain_changed().set(FUNC(namcos22_state::mb87078_gain_changed)); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(namcos22_state, screen_update_namcos22s) + m_screen->set_screen_update(FUNC(namcos22_state::screen_update_namcos22s)); GFXDECODE(config.replace(), m_gfxdecode, m_palette, gfx_super); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(namcos22_state::airco22b) +void namcos22_state::airco22b(machine_config &config) +{ namcos22s(config); SPEAKER(config, "bodysonic").subwoofer(); - MCFG_DEVICE_MODIFY("c352") - MCFG_SOUND_ROUTE(2, "bodysonic", 0.50) // to subwoofer -MACHINE_CONFIG_END + m_c352->add_route(2, "bodysonic", 0.50); // to subwoofer +} -MACHINE_CONFIG_START(namcos22_state::alpine) +void namcos22_state::alpine(machine_config &config) +{ namcos22s(config); - MCFG_DEVICE_MODIFY("mcu") - MCFG_DEVICE_IO_MAP(alpine_io_map) + m_mcu->set_addrmap(AS_IO, &namcos22_state::alpine_io_map); TIMER(config, m_motor_timer).configure_generic(FUNC(namcos22_state::alpine_steplock_callback)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(namcos22_state::alpinesa) +void namcos22_state::alpinesa(machine_config &config) +{ alpine(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(alpinesa_am) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &namcos22_state::alpinesa_am); +} -MACHINE_CONFIG_START(namcos22_state::cybrcycc) +void namcos22_state::cybrcycc(machine_config &config) +{ namcos22s(config); SPEAKER(config, "tank", 0.0, 0.0, 0.0); - MCFG_DEVICE_MODIFY("c352") - MCFG_SOUND_ROUTE(2, "tank", 1.00) -MACHINE_CONFIG_END + m_c352->add_route(2, "tank", 1.00); +} -MACHINE_CONFIG_START(namcos22_state::dirtdash) +void namcos22_state::dirtdash(machine_config &config) +{ namcos22s(config); SPEAKER(config, "road", 0.0, 0.0, 0.0); - MCFG_DEVICE_MODIFY("c352") - MCFG_SOUND_ROUTE(3, "road", 1.00) -MACHINE_CONFIG_END + m_c352->add_route(3, "road", 1.00); +} -MACHINE_CONFIG_START(namcos22_state::timecris) +void namcos22_state::timecris(machine_config &config) +{ namcos22s(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(timecris_am) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &namcos22_state::timecris_am); +} -MACHINE_CONFIG_START(namcos22_state::tokyowar) +void namcos22_state::tokyowar(machine_config &config) +{ namcos22s(config); SPEAKER(config, "vibration").subwoofer(); SPEAKER(config, "seat").rear_center(); - MCFG_DEVICE_MODIFY("c352") - MCFG_SOUND_ROUTE(2, "vibration", 0.50) // to "bass shaker" - MCFG_SOUND_ROUTE(3, "seat", 1.00) -MACHINE_CONFIG_END + m_c352->add_route(2, "vibration", 0.50); // to "bass shaker" + m_c352->add_route(3, "seat", 1.00); +} void namcos22_state::propcycl(machine_config &config) { @@ -4050,12 +4050,13 @@ MACHINE_START_MEMBER(namcos22_state,adillor) elem = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(namcos22_state::adillor_trackball_interrupt),this)); } -MACHINE_CONFIG_START(namcos22_state::adillor) +void namcos22_state::adillor(machine_config &config) +{ namcos22s(config); TIMER(config, "ar_tb_upd").configure_periodic(FUNC(namcos22_state::adillor_trackball_update), attotime::from_msec(20)); MCFG_MACHINE_START_OVERRIDE(namcos22_state,adillor) -MACHINE_CONFIG_END +} |