diff options
Diffstat (limited to 'src/mame/drivers/namcos22.cpp')
-rw-r--r-- | src/mame/drivers/namcos22.cpp | 164 |
1 files changed, 81 insertions, 83 deletions
diff --git a/src/mame/drivers/namcos22.cpp b/src/mame/drivers/namcos22.cpp index c91fc4628c6..9fdb6eeeed2 100644 --- a/src/mame/drivers/namcos22.cpp +++ b/src/mame/drivers/namcos22.cpp @@ -3377,8 +3377,8 @@ static INPUT_PORTS_START( alpiner ) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_START1 ) // Decision / View Change PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY // L Selection PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_16WAY // R Selection - PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, namcos22_state, alpine_motor_read, 0) // steps are free - PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, namcos22_state, alpine_motor_read, 1) // steps are locked + PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, namcos22_state, alpine_motor_read, (void *)0) // steps are free + PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, namcos22_state, alpine_motor_read, (void *)1) // steps are locked PORT_BIT( 0xfe00, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("ADC.0") @@ -3877,12 +3877,12 @@ void namcos22_state::machine_start() } // System22 -void namcos22_state::namcos22(machine_config &config) -{ +MACHINE_CONFIG_START(namcos22_state::namcos22) + /* basic machine hardware */ - 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)); + 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) tms32025_device& master(TMS32025(config, m_master, 40_MHz_XTAL)); master.set_addrmap(AS_PROGRAM, &namcos22_state::master_dsp_program); @@ -3894,7 +3894,7 @@ void namcos22_state::namcos22(machine_config &config) master.xf_out_cb().set(FUNC(namcos22_state::dsp_xf_output_w)); master.dr_in_cb().set(FUNC(namcos22_state::master_serial_io_r)); master.set_vblank_int("screen", FUNC(namcos22_state::dsp_vblank_irq)); - TIMER(config, "dsp_serial").configure_periodic(FUNC(namcos22_state::dsp_serial_pulse), attotime::from_hz(SERIAL_IO_PERIOD)); + MCFG_TIMER_DRIVER_ADD_PERIODIC("dsp_serial", namcos22_state, dsp_serial_pulse, attotime::from_hz(SERIAL_IO_PERIOD)) tms32025_device& slave(TMS32025(config, m_slave, 40_MHz_XTAL)); slave.set_addrmap(AS_PROGRAM, &namcos22_state::slave_dsp_program); @@ -3906,141 +3906,140 @@ void namcos22_state::namcos22(machine_config &config) slave.xf_out_cb().set(FUNC(namcos22_state::dsp_xf_output_w)); slave.dx_out_cb().set(FUNC(namcos22_state::slave_serial_io_w)); - 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("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_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); + MCFG_DEVICE_ADD("iomcu", NAMCO_C74, 6.144_MHz_XTAL) + MCFG_DEVICE_PROGRAM_MAP(iomcu_s22_program) + MCFG_DEVICE_IO_MAP(iomcu_s22_io) EEPROM_2864(config, "eeprom").write_time(attotime::zero); /* video hardware */ - 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_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)) - PALETTE(config, m_palette).set_entries(0x8000); - GFXDECODE(config, m_gfxdecode, m_palette, gfx_namcos22); + MCFG_PALETTE_ADD("palette", 0x8000) + MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_namcos22) /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - 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); -} + 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 -void namcos22_state::cybrcomm(machine_config &config) -{ +MACHINE_CONFIG_START(namcos22_state::cybrcomm) namcos22(config); SPEAKER(config, "rear_left").rear_left(); SPEAKER(config, "rear_right").rear_right(); - m_c352->add_route(2, "rear_left", 1.00); - m_c352->add_route(3, "rear_right", 1.00); -} + MCFG_DEVICE_MODIFY("c352") + MCFG_SOUND_ROUTE(2, "rear_left", 1.00) + MCFG_SOUND_ROUTE(3, "rear_right", 1.00) +MACHINE_CONFIG_END // System Super22 -void namcos22_state::namcos22s(machine_config &config) -{ +MACHINE_CONFIG_START(namcos22_state::namcos22s) namcos22(config); /* basic machine hardware */ - 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("maincpu", M68EC020, 49.152_MHz_XTAL/2) // MC68EC020FG25 + MCFG_DEVICE_PROGRAM_MAP(namcos22s_am) + MCFG_DEVICE_VBLANK_INT_DRIVER("screen", namcos22_state, namcos22s_interrupt) - 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 + MCFG_DEVICE_REPLACE("mcu", M37710S4, 49.152_MHz_XTAL/3) + MCFG_DEVICE_PROGRAM_MAP(mcu_program) + MCFG_DEVICE_IO_MAP(mcu_io) + MCFG_TIMER_DRIVER_ADD_SCANLINE("mcu_irq", namcos22_state, mcu_irq, "screen", 0, 240) + MCFG_QUANTUM_TIME(attotime::from_hz(9000)) // erratic inputs otherwise, probably mcu vs maincpu shareram - config.device_remove("iomcu"); + MCFG_DEVICE_REMOVE("iomcu") MB87078(config, m_mb87078); m_mb87078->gain_changed().set(FUNC(namcos22_state::mb87078_gain_changed)); /* video hardware */ - m_screen->set_screen_update(FUNC(namcos22_state::screen_update_namcos22s)); + MCFG_SCREEN_MODIFY("screen") + MCFG_SCREEN_UPDATE_DRIVER(namcos22_state, screen_update_namcos22s) - GFXDECODE(config.replace(), m_gfxdecode, m_palette, gfx_super); -} + MCFG_DEVICE_REPLACE("gfxdecode", GFXDECODE, "palette", gfx_super) +MACHINE_CONFIG_END -void namcos22_state::airco22b(machine_config &config) -{ +MACHINE_CONFIG_START(namcos22_state::airco22b) namcos22s(config); SPEAKER(config, "bodysonic").subwoofer(); - m_c352->add_route(2, "bodysonic", 0.50); // to subwoofer -} + MCFG_DEVICE_MODIFY("c352") + MCFG_SOUND_ROUTE(2, "bodysonic", 0.50) // to subwoofer +MACHINE_CONFIG_END -void namcos22_state::alpine(machine_config &config) -{ +MACHINE_CONFIG_START(namcos22_state::alpine) namcos22s(config); - m_mcu->set_addrmap(AS_IO, &namcos22_state::alpine_io_map); + MCFG_DEVICE_MODIFY("mcu") + MCFG_DEVICE_IO_MAP(alpine_io_map) - TIMER(config, m_motor_timer).configure_generic(FUNC(namcos22_state::alpine_steplock_callback)); -} + MCFG_TIMER_DRIVER_ADD("motor_timer", namcos22_state, alpine_steplock_callback) +MACHINE_CONFIG_END -void namcos22_state::alpinesa(machine_config &config) -{ +MACHINE_CONFIG_START(namcos22_state::alpinesa) alpine(config); - m_maincpu->set_addrmap(AS_PROGRAM, &namcos22_state::alpinesa_am); -} + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_PROGRAM_MAP(alpinesa_am) +MACHINE_CONFIG_END -void namcos22_state::cybrcycc(machine_config &config) -{ +MACHINE_CONFIG_START(namcos22_state::cybrcycc) namcos22s(config); SPEAKER(config, "tank", 0.0, 0.0, 0.0); - m_c352->add_route(2, "tank", 1.00); -} + MCFG_DEVICE_MODIFY("c352") + MCFG_SOUND_ROUTE(2, "tank", 1.00) +MACHINE_CONFIG_END -void namcos22_state::dirtdash(machine_config &config) -{ +MACHINE_CONFIG_START(namcos22_state::dirtdash) namcos22s(config); SPEAKER(config, "road", 0.0, 0.0, 0.0); - m_c352->add_route(3, "road", 1.00); -} + MCFG_DEVICE_MODIFY("c352") + MCFG_SOUND_ROUTE(3, "road", 1.00) +MACHINE_CONFIG_END -void namcos22_state::timecris(machine_config &config) -{ +MACHINE_CONFIG_START(namcos22_state::timecris) namcos22s(config); - m_maincpu->set_addrmap(AS_PROGRAM, &namcos22_state::timecris_am); -} + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_PROGRAM_MAP(timecris_am) +MACHINE_CONFIG_END -void namcos22_state::tokyowar(machine_config &config) -{ +MACHINE_CONFIG_START(namcos22_state::tokyowar) namcos22s(config); SPEAKER(config, "vibration").subwoofer(); SPEAKER(config, "seat").rear_center(); - m_c352->add_route(2, "vibration", 0.50); // to "bass shaker" - m_c352->add_route(3, "seat", 1.00); -} + MCFG_DEVICE_MODIFY("c352") + MCFG_SOUND_ROUTE(2, "vibration", 0.50) // to "bass shaker" + MCFG_SOUND_ROUTE(3, "seat", 1.00) +MACHINE_CONFIG_END -void namcos22_state::propcycl(machine_config &config) -{ +MACHINE_CONFIG_START(namcos22_state::propcycl) namcos22s(config); - TIMER(config, "pc_p_upd").configure_periodic(FUNC(namcos22_state::propcycl_pedal_update), attotime::from_msec(20)); - TIMER(config, m_pc_pedal_interrupt).configure_generic(FUNC(namcos22_state::propcycl_pedal_interrupt)); -} + MCFG_TIMER_DRIVER_ADD_PERIODIC("pc_p_upd", namcos22_state, propcycl_pedal_update, attotime::from_msec(20)) + MCFG_TIMER_DRIVER_ADD("pc_p_int", namcos22_state, propcycl_pedal_interrupt) +MACHINE_CONFIG_END MACHINE_START_MEMBER(namcos22_state,adillor) { @@ -4050,13 +4049,12 @@ MACHINE_START_MEMBER(namcos22_state,adillor) elem = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(namcos22_state::adillor_trackball_interrupt),this)); } -void namcos22_state::adillor(machine_config &config) -{ +MACHINE_CONFIG_START(namcos22_state::adillor) namcos22s(config); - TIMER(config, "ar_tb_upd").configure_periodic(FUNC(namcos22_state::adillor_trackball_update), attotime::from_msec(20)); + MCFG_TIMER_DRIVER_ADD_PERIODIC("ar_tb_upd", namcos22_state, adillor_trackball_update, attotime::from_msec(20)) MCFG_MACHINE_START_OVERRIDE(namcos22_state,adillor) -} +MACHINE_CONFIG_END |