diff options
Diffstat (limited to 'src/mame/drivers/klax.cpp')
-rw-r--r-- | src/mame/drivers/klax.cpp | 55 |
1 files changed, 27 insertions, 28 deletions
diff --git a/src/mame/drivers/klax.cpp b/src/mame/drivers/klax.cpp index fe67297a324..bec9aec2143 100644 --- a/src/mame/drivers/klax.cpp +++ b/src/mame/drivers/klax.cpp @@ -194,67 +194,66 @@ GFXDECODE_END * *************************************/ -MACHINE_CONFIG_START(klax_state::klax) - +void klax_state::klax(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2) - MCFG_DEVICE_PROGRAM_MAP(klax_map) + M68000(config, m_maincpu, ATARI_CLOCK_14MHz/2); + m_maincpu->set_addrmap(AS_PROGRAM, &klax_state::klax_map); EEPROM_2816(config, "eeprom").lock_after_write(true); WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_klax) + GFXDECODE(config, m_gfxdecode, "palette", gfx_klax); PALETTE(config, "palette").set_format(palette_device::IRGB_1555, 512).set_membits(8); - MCFG_TILEMAP_ADD_STANDARD("playfield", "gfxdecode", 2, klax_state, get_playfield_tile_info, 8,8, SCAN_COLS, 64,32) + TILEMAP(config, m_playfield_tilemap, m_gfxdecode, 2, 8, 8, TILEMAP_SCAN_COLS, 64, 32); + m_playfield_tilemap->set_info_callback(FUNC(klax_state::get_playfield_tile_info)); ATARI_MOTION_OBJECTS(config, m_mob, 0, m_screen, klax_state::s_mob_config); m_mob->set_gfxdecode(m_gfxdecode); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); /* note: these parameters are from published specs, not derived */ /* the board uses an SOS-2 chip to generate video signals */ - MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_DRIVER(klax_state, screen_update_klax) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, klax_state, video_int_write_line)) + m_screen->set_raw(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240); + m_screen->set_screen_update(FUNC(klax_state::screen_update_klax)); + m_screen->set_palette("palette"); + m_screen->screen_vblank().set(FUNC(klax_state::video_int_write_line)); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, ATARI_CLOCK_14MHz/4/4, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, "oki", ATARI_CLOCK_14MHz/4/4, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); +} void klax_state::bootleg_sound_map(address_map &map) { map(0x0000, 0x7fff).rom(); } -MACHINE_CONFIG_START(klax_state::klax2bl) +void klax_state::klax2bl(machine_config &config) +{ klax(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(klax2bl_map) + m_maincpu->set_addrmap(AS_PROGRAM, &klax_state::klax2bl_map); - MCFG_DEVICE_REMOVE("oki") // no 6295 here + config.device_remove("oki"); // no 6295 here - MCFG_DEVICE_ADD("audiocpu", Z80, 6000000) /* ? */ - MCFG_DEVICE_PROGRAM_MAP(bootleg_sound_map) + z80_device &audiocpu(Z80(config, "audiocpu", 6000000)); /* ? */ + audiocpu.set_addrmap(AS_PROGRAM, &klax_state::bootleg_sound_map); - MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_klax2bl) + m_gfxdecode->set_info(gfx_klax2bl); // guess, probably something like this // 2 x msm at least on bootleg set 2 (ic18 and ic19) - MCFG_DEVICE_ADD("msm", MSM5205, 375000) /* ? */ -// MCFG_MSM5205_VCLK_CB(WRITELINE(*this, klax_state, m5205_int1)) /* interrupt function */ -// MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */ -// MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - -MACHINE_CONFIG_END + MSM5205(config, "msm", 375000); /* ? */ +// msm.vck_legacy_callback().set(FUNC(klax_state::m5205_int1)); /* interrupt function */ +// msm.set_prescaler_selector(msm5205_device::MSM5205_S96_4B); /* 4KHz 4-bit */ +// msm.add_route(ALL_OUTPUTS, "mono", 0.25); +} /************************************* * |