diff options
Diffstat (limited to 'src/mame/drivers/eolith.cpp')
-rw-r--r-- | src/mame/drivers/eolith.cpp | 63 |
1 files changed, 32 insertions, 31 deletions
diff --git a/src/mame/drivers/eolith.cpp b/src/mame/drivers/eolith.cpp index 4ce6fcd539e..98a936e4a41 100644 --- a/src/mame/drivers/eolith.cpp +++ b/src/mame/drivers/eolith.cpp @@ -537,10 +537,11 @@ INPUT_PORTS_END * *************************************/ -MACHINE_CONFIG_START(eolith_state::eolith45) - MCFG_DEVICE_ADD("maincpu", E132N, 45000000) /* 45 MHz */ - MCFG_DEVICE_PROGRAM_MAP(eolith_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", eolith_state, eolith_speedup, "screen", 0, 1) +void eolith_state::eolith45(machine_config &config) +{ + E132N(config, m_maincpu, 45000000); /* 45 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &eolith_state::eolith_map); + TIMER(config, "scantimer").configure_scanline(FUNC(eolith_state::eolith_speedup), "screen", 0, 1); /* Sound CPU */ I8032(config, m_soundcpu, XTAL(12'000'000)); @@ -560,15 +561,15 @@ MACHINE_CONFIG_START(eolith_state::eolith45) // MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_SIZE(512, 262) - MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_UPDATE_DRIVER(eolith_state, screen_update_eolith) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + m_screen->set_size(512, 262); + m_screen->set_visarea(0, 319, 0, 239); + m_screen->set_screen_update(FUNC(eolith_state::screen_update_eolith)); + m_screen->set_palette(m_palette); - MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette") + PALETTE(config, m_palette, 32768).set_init("palette", FUNC(palette_device::palette_init_RRRRRGGGGGBBBBB)); MCFG_VIDEO_START_OVERRIDE(eolith_state,eolith) @@ -578,31 +579,31 @@ MACHINE_CONFIG_START(eolith_state::eolith45) GENERIC_LATCH_8(config, "soundlatch").data_pending_callback().set_inputline(m_soundcpu, MCS51_INT0_LINE); - MCFG_DEVICE_ADD("qs1000", QS1000, XTAL(24'000'000)) - MCFG_QS1000_EXTERNAL_ROM(true) - MCFG_QS1000_IN_P1_CB(READ8(*this, eolith_state, qs1000_p1_r)) - MCFG_QS1000_OUT_P1_CB(WRITE8(*this, eolith_state, qs1000_p1_w)) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) -MACHINE_CONFIG_END + qs1000_device &qs1000(QS1000(config, "qs1000", XTAL(24'000'000))); + qs1000.set_external_rom(true); + qs1000.p1_in().set(FUNC(eolith_state::qs1000_p1_r)); + qs1000.p1_out().set(FUNC(eolith_state::qs1000_p1_w)); + qs1000.add_route(0, "lspeaker", 1.0); + qs1000.add_route(1, "rspeaker", 1.0); +} -MACHINE_CONFIG_START(eolith_state::eolith50) +void eolith_state::eolith50(machine_config &config) +{ eolith45(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(50000000) /* 50 MHz */ -MACHINE_CONFIG_END + m_maincpu->set_clock(50000000); /* 50 MHz */ +} -MACHINE_CONFIG_START(eolith_state::ironfort) +void eolith_state::ironfort(machine_config &config) +{ eolith45(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(44900000) /* Normally 45MHz??? but PCB actually had a 44.9MHz OSC, so it's value is used */ -MACHINE_CONFIG_END + m_maincpu->set_clock(44900000); /* Normally 45MHz??? but PCB actually had a 44.9MHz OSC, so it's value is used */ +} -MACHINE_CONFIG_START(eolith_state::hidctch3) +void eolith_state::hidctch3(machine_config &config) +{ eolith50(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(hidctch3_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &eolith_state::hidctch3_map); +} /************************************* |