diff options
Diffstat (limited to 'src/mame/drivers/dacholer.cpp')
-rw-r--r-- | src/mame/drivers/dacholer.cpp | 65 |
1 files changed, 31 insertions, 34 deletions
diff --git a/src/mame/drivers/dacholer.cpp b/src/mame/drivers/dacholer.cpp index 14b9f91aceb..5b3acce684b 100644 --- a/src/mame/drivers/dacholer.cpp +++ b/src/mame/drivers/dacholer.cpp @@ -667,27 +667,27 @@ void dacholer_state::dacholer_palette(palette_device &palette) const } /* note: clocks are taken from itaten sound reference recording */ -MACHINE_CONFIG_START(dacholer_state::dacholer) - +void dacholer_state::dacholer(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(16'000'000)/4) /* ? */ - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_IO_MAP(main_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dacholer_state, irq0_line_assert) + Z80(config, m_maincpu, XTAL(16'000'000)/4); /* ? */ + m_maincpu->set_addrmap(AS_PROGRAM, &dacholer_state::main_map); + m_maincpu->set_addrmap(AS_IO, &dacholer_state::main_io_map); + m_maincpu->set_vblank_int("screen", FUNC(dacholer_state::irq0_line_assert)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(19'968'000)/8) /* ? */ - MCFG_DEVICE_PROGRAM_MAP(snd_map) - MCFG_DEVICE_IO_MAP(snd_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", dacholer_state, sound_irq) + Z80(config, m_audiocpu, XTAL(19'968'000)/8); /* ? */ + m_audiocpu->set_addrmap(AS_PROGRAM, &dacholer_state::snd_map); + m_audiocpu->set_addrmap(AS_IO, &dacholer_state::snd_io_map); + m_audiocpu->set_vblank_int("screen", FUNC(dacholer_state::sound_irq)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1-16) - MCFG_SCREEN_UPDATE_DRIVER(dacholer_state, screen_update_dacholer) - MCFG_SCREEN_PALETTE(m_palette) + 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(256, 256); + screen.set_visarea(0, 256-1, 16, 256-1-16); + screen.set_screen_update(FUNC(dacholer_state::screen_update_dacholer)); + screen.set_palette(m_palette); PALETTE(config, m_palette, FUNC(dacholer_state::dacholer_palette), 32); GFXDECODE(config, m_gfxdecode, m_palette, gfx_dacholer); @@ -698,31 +698,28 @@ MACHINE_CONFIG_START(dacholer_state::dacholer) GENERIC_LATCH_8(config, "soundlatch").data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI); AY8910(config, "ay1", XTAL(19'968'000)/16).add_route(ALL_OUTPUTS, "mono", 0.15); - AY8910(config, "ay2", XTAL(19'968'000)/16).add_route(ALL_OUTPUTS, "mono", 0.15); - AY8910(config, "ay3", XTAL(19'968'000)/16).add_route(ALL_OUTPUTS, "mono", 0.15); - MCFG_DEVICE_ADD("msm", MSM5205, XTAL(384'000)) - MCFG_MSM5205_VCLK_CB(WRITELINE(*this, dacholer_state, adpcm_int)) /* interrupt function */ - MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 1 / 96 = 3906.25Hz playback - guess */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) -MACHINE_CONFIG_END + MSM5205(config, m_msm, XTAL(384'000)); + m_msm->vck_legacy_callback().set(FUNC(dacholer_state::adpcm_int)); /* interrupt function */ + m_msm->set_prescaler_selector(msm5205_device::S96_4B); /* 1 / 96 = 3906.25Hz playback - guess */ + m_msm->add_route(ALL_OUTPUTS, "mono", 0.30); +} -MACHINE_CONFIG_START(dacholer_state::itaten) +void dacholer_state::itaten(machine_config &config) +{ dacholer(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(itaten_main_map) + m_maincpu->set_addrmap(AS_PROGRAM, &dacholer_state::itaten_main_map); - MCFG_DEVICE_MODIFY("audiocpu") - MCFG_DEVICE_PROGRAM_MAP(itaten_snd_map) - MCFG_DEVICE_IO_MAP(itaten_snd_io_map) - MCFG_DEVICE_VBLANK_INT_REMOVE() + m_audiocpu->set_addrmap(AS_PROGRAM, &dacholer_state::itaten_snd_map); + m_audiocpu->set_addrmap(AS_IO, &dacholer_state::itaten_snd_io_map); + m_audiocpu->set_vblank_int(device_interrupt_delegate(), nullptr); - MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_itaten) + m_gfxdecode->set_info(gfx_itaten); - MCFG_DEVICE_REMOVE("msm") -MACHINE_CONFIG_END + config.device_remove("msm"); +} ROM_START( dacholer ) ROM_REGION( 0x10000, "maincpu", 0 ) |