diff options
Diffstat (limited to 'src/mame/drivers/taito_l.cpp')
-rw-r--r-- | src/mame/drivers/taito_l.cpp | 122 |
1 files changed, 64 insertions, 58 deletions
diff --git a/src/mame/drivers/taito_l.cpp b/src/mame/drivers/taito_l.cpp index 034a0c37395..f2cce198f88 100644 --- a/src/mame/drivers/taito_l.cpp +++ b/src/mame/drivers/taito_l.cpp @@ -321,7 +321,7 @@ READ8_MEMBER(taitol_1cpu_state::extport_select_and_ym2203_r) { for (auto &mux : m_mux) mux->select_w((offset >> 1) & 1); - return m_ymsnd->read(offset & 1); + return m_ymsnd->read(space, offset & 1); } WRITE8_MEMBER(taitol_state::mcu_control_w) @@ -1452,43 +1452,43 @@ WRITE8_MEMBER(fhawk_state::portA_w) //logerror ("YM2203 bank change val=%02x %s\n", data & 0x03, machine().describe_context() ); } -void taitol_state::l_system_video(machine_config &config) -{ +MACHINE_CONFIG_START(taitol_state::l_system_video) for (int bank = 0; bank < 4; bank++) { ADDRESS_MAP_BANK(config, m_ram_bnks[bank]).set_map(&taitol_state::tc0090lvc_map).set_options(ENDIANNESS_LITTLE, 8, 20, 0x1000); } - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_refresh_hz(60); - screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); - screen.set_size(40*8, 32*8); - screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1); - screen.set_screen_update(FUNC(taitol_state::screen_update_taitol)); - screen.screen_vblank().set(FUNC(taitol_state::screen_vblank_taitol)); - screen.set_palette(m_palette); + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(60) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MCFG_SCREEN_SIZE(40*8, 32*8) + MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) + MCFG_SCREEN_UPDATE_DRIVER(taitol_state, screen_update_taitol) + MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, taitol_state, screen_vblank_taitol)) + MCFG_SCREEN_PALETTE(m_palette) GFXDECODE(config, m_gfxdecode, m_palette, taito_l); PALETTE(config, m_palette, palette_device::BLACK).set_format(palette_device::xBGR_444, 256); - TIMER(config, "scantimer").configure_scanline(FUNC(taitol_state::vbl_interrupt), "screen", 0, 1); -} + MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", taitol_state, vbl_interrupt, "screen", 0, 1) +MACHINE_CONFIG_END + + +MACHINE_CONFIG_START(fhawk_state::fhawk) -void fhawk_state::fhawk(machine_config &config) -{ /* basic machine hardware */ - Z80(config, m_main_cpu, XTAL(13'330'560)/2); /* verified freq on pin122 of TC0090LVC cpu */ - m_main_cpu->set_addrmap(AS_PROGRAM, &fhawk_state::fhawk_map); - m_main_cpu->set_irq_acknowledge_callback(FUNC(taitol_state::irq_callback)); + MCFG_DEVICE_ADD("maincpu", Z80, XTAL(13'330'560)/2) /* verified freq on pin122 of TC0090LVC cpu */ + MCFG_DEVICE_PROGRAM_MAP(fhawk_map) + MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(taitol_state, irq_callback) - Z80(config, m_audio_cpu, 12_MHz_XTAL/3); /* verified on pcb */ - m_audio_cpu->set_addrmap(AS_PROGRAM, &fhawk_state::fhawk_3_map); + MCFG_DEVICE_ADD("audiocpu", Z80, 12_MHz_XTAL/3) /* verified on pcb */ + MCFG_DEVICE_PROGRAM_MAP(fhawk_3_map) - z80_device &slave(Z80(config, "slave", 12_MHz_XTAL/3)); /* verified on pcb */ - slave.set_addrmap(AS_PROGRAM, &fhawk_state::fhawk_2_map); - slave.set_vblank_int("screen", FUNC(taitol_state::irq0_line_hold)); + MCFG_DEVICE_ADD("slave", Z80, 12_MHz_XTAL/3) /* verified on pcb */ + MCFG_DEVICE_PROGRAM_MAP(fhawk_2_map) + MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitol_state, irq0_line_hold) - config.m_perfect_cpu_quantum = subtag("maincpu"); + MCFG_QUANTUM_PERFECT_CPU("maincpu") tc0220ioc_device &tc0220ioc(TC0220IOC(config, "tc0220ioc", 0)); tc0220ioc.read_0_callback().set_ioport("DSWA"); @@ -1518,42 +1518,47 @@ void fhawk_state::fhawk(machine_config &config) pc060ha_device &ciu(PC060HA(config, "ciu", 0)); ciu.set_master_tag("slave"); ciu.set_slave_tag(m_audio_cpu); -} +MACHINE_CONFIG_END -void champwr_state::champwr(machine_config &config) -{ + +MACHINE_CONFIG_START(champwr_state::champwr) fhawk(config); /* basic machine hardware */ - m_main_cpu->set_addrmap(AS_PROGRAM, &champwr_state::champwr_map); + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_PROGRAM_MAP(champwr_map) - m_audio_cpu->set_addrmap(AS_PROGRAM, &champwr_state::champwr_3_map); + MCFG_DEVICE_MODIFY("audiocpu") + MCFG_DEVICE_PROGRAM_MAP(champwr_3_map) - subdevice<cpu_device>("slave")->set_addrmap(AS_PROGRAM, &champwr_state::champwr_2_map); + MCFG_DEVICE_MODIFY("slave") + MCFG_DEVICE_PROGRAM_MAP(champwr_2_map) /* sound hardware */ subdevice<ym2203_device>("ymsnd")->port_b_write_callback().set(FUNC(champwr_state::msm5205_volume_w)); - MSM5205(config, m_msm, 384_kHz_XTAL); - m_msm->vck_legacy_callback().set(FUNC(champwr_state::msm5205_vck)); /* VCK function */ - m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 kHz */ - m_msm->add_route(ALL_OUTPUTS, "mono", 0.80); -} + MCFG_DEVICE_ADD("msm", MSM5205, 384_kHz_XTAL) + MCFG_MSM5205_VCLK_CB(WRITELINE(*this, champwr_state, msm5205_vck)) /* VCK function */ + MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) /* 8 kHz */ + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) +MACHINE_CONFIG_END -void taitol_2cpu_state::raimais(machine_config &config) -{ - Z80(config, m_main_cpu, 13330560/2); // needs verification from pin122 of TC0090LVC - m_main_cpu->set_addrmap(AS_PROGRAM, &taitol_2cpu_state::raimais_map); - m_main_cpu->set_irq_acknowledge_callback(FUNC(taitol_state::irq_callback)); - Z80(config, m_audio_cpu, 12000000/3); // not verified - m_audio_cpu->set_addrmap(AS_PROGRAM, &taitol_2cpu_state::raimais_3_map); - z80_device &slave(Z80(config, "slave", 12000000/3)); // not verified - slave.set_addrmap(AS_PROGRAM, &taitol_2cpu_state::raimais_2_map); - slave.set_vblank_int("screen", FUNC(taitol_state::irq0_line_hold)); +MACHINE_CONFIG_START(taitol_2cpu_state::raimais) + + MCFG_DEVICE_ADD("maincpu", Z80, 13330560/2) // needs verification from pin122 of TC0090LVC + MCFG_DEVICE_PROGRAM_MAP(raimais_map) + MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(taitol_state, irq_callback) + + MCFG_DEVICE_ADD("audiocpu", Z80, 12000000/3) // not verified + MCFG_DEVICE_PROGRAM_MAP(raimais_3_map) - config.m_perfect_cpu_quantum = subtag("maincpu"); + MCFG_DEVICE_ADD("slave", Z80, 12000000/3) // not verified + MCFG_DEVICE_PROGRAM_MAP(raimais_2_map) + MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitol_state, irq0_line_hold) + + MCFG_QUANTUM_PERFECT_CPU("maincpu") tc0040ioc_device &tc0040ioc(TC0040IOC(config, "tc0040ioc", 0)); tc0040ioc.read_0_callback().set_ioport("DSWA"); @@ -1583,7 +1588,8 @@ void taitol_2cpu_state::raimais(machine_config &config) tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0)); tc0140syt.set_master_tag("slave"); tc0140syt.set_slave_tag(m_audio_cpu); -} +MACHINE_CONFIG_END + void taitol_2cpu_state::kurikint(machine_config &config) { @@ -1691,7 +1697,7 @@ void horshoes_state::horshoes(machine_config &config) UPD4701A(config, m_upd4701, 0); m_upd4701->set_portx_tag("AN0"); - m_upd4701->set_porty_tag("AN1"); + m_upd4701->set_portx_tag("AN1"); } @@ -1728,18 +1734,18 @@ void taitol_1cpu_state::cachat(machine_config &config) m_ymsnd->port_b_read_callback().set_ioport("DSWB"); } -void taitol_2cpu_state::evilston(machine_config &config) -{ +MACHINE_CONFIG_START(taitol_2cpu_state::evilston) + /* basic machine hardware */ - Z80(config, m_main_cpu, XTAL(13'330'560)/2); /* not verified */ - m_main_cpu->set_addrmap(AS_PROGRAM, &taitol_2cpu_state::evilston_map); - m_main_cpu->set_irq_acknowledge_callback(FUNC(taitol_state::irq_callback)); + MCFG_DEVICE_ADD("maincpu", Z80, XTAL(13'330'560)/2) /* not verified */ + MCFG_DEVICE_PROGRAM_MAP(evilston_map) + MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(taitol_state, irq_callback) - Z80(config, m_audio_cpu, 12_MHz_XTAL/3); /* not verified */ - m_audio_cpu->set_addrmap(AS_PROGRAM, &taitol_2cpu_state::evilston_2_map); - m_audio_cpu->set_vblank_int("screen", FUNC(taitol_state::irq0_line_hold)); + MCFG_DEVICE_ADD("audiocpu", Z80, 12_MHz_XTAL/3) /* not verified */ + MCFG_DEVICE_PROGRAM_MAP(evilston_2_map) + MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitol_state, irq0_line_hold) - config.m_minimum_quantum = attotime::from_hz(6000); + MCFG_QUANTUM_TIME(attotime::from_hz(6000)) tc0510nio_device &tc0510nio(TC0510NIO(config, "tc0510nio", 0)); tc0510nio.read_0_callback().set_ioport("DSWA"); @@ -1766,7 +1772,7 @@ void taitol_2cpu_state::evilston(machine_config &config) ymsnd.add_route(1, "mono", 0.25); ymsnd.add_route(2, "mono", 0.25); ymsnd.add_route(3, "mono", 0.80); -} +MACHINE_CONFIG_END ROM_START( raimais ) |