diff options
Diffstat (limited to 'src/mame/drivers/stv.cpp')
-rw-r--r-- | src/mame/drivers/stv.cpp | 116 |
1 files changed, 59 insertions, 57 deletions
diff --git a/src/mame/drivers/stv.cpp b/src/mame/drivers/stv.cpp index 9a0b476484e..ffa8e3ded19 100644 --- a/src/mame/drivers/stv.cpp +++ b/src/mame/drivers/stv.cpp @@ -1122,21 +1122,21 @@ WRITE8_MEMBER( stv_state::pdr2_output_w ) } -MACHINE_CONFIG_START(stv_state::stv) - +void stv_state::stv(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", SH2, MASTER_CLOCK_352/2) // 28.6364 MHz - MCFG_DEVICE_PROGRAM_MAP(stv_mem) - MCFG_SH2_IS_SLAVE(0) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", stv_state, saturn_scanline, "screen", 0, 1) + SH2(config, m_maincpu, MASTER_CLOCK_352/2); // 28.6364 MHz + m_maincpu->set_addrmap(AS_PROGRAM, &stv_state::stv_mem); + m_maincpu->set_is_slave(0); + TIMER(config, "scantimer").configure_scanline(FUNC(stv_state::saturn_scanline), "screen", 0, 1); - MCFG_DEVICE_ADD("slave", SH2, MASTER_CLOCK_352/2) // 28.6364 MHz - MCFG_DEVICE_PROGRAM_MAP(stv_mem) - MCFG_SH2_IS_SLAVE(1) - MCFG_TIMER_DRIVER_ADD_SCANLINE("slave_scantimer", stv_state, saturn_slave_scanline, "screen", 0, 1) + SH2(config, m_slave, MASTER_CLOCK_352/2); // 28.6364 MHz + m_slave->set_addrmap(AS_PROGRAM, &stv_state::stv_mem); + m_slave->set_is_slave(1); + TIMER(config, "slave_scantimer").configure_scanline(FUNC(stv_state::saturn_slave_scanline), "screen", 0, 1); - MCFG_DEVICE_ADD("audiocpu", M68000, 11289600) //11.2896 MHz - MCFG_DEVICE_PROGRAM_MAP(sound_mem) + M68000(config, m_audiocpu, 11289600); //11.2896 MHz + m_audiocpu->set_addrmap(AS_PROGRAM, &stv_state::sound_mem); SEGA_SCU(config, m_scu, 0); m_scu->set_hostcpu(m_maincpu); @@ -1163,13 +1163,13 @@ MACHINE_CONFIG_START(stv_state::stv) EEPROM_93C46_16BIT(config, "eeprom"); /* Actually AK93C45F */ /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) - MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_320/8, 427, 0, 352, 263, 0, 224) - MCFG_SCREEN_UPDATE_DRIVER(stv_state, screen_update_stv_vdp2) - MCFG_PALETTE_ADD("palette", 2048+(2048*2))//standard palette + extra memory for rgb brightness. + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK); + m_screen->set_raw(MASTER_CLOCK_320/8, 427, 0, 352, 263, 0, 224); + m_screen->set_screen_update(FUNC(stv_state::screen_update_stv_vdp2)); + PALETTE(config, m_palette, 2048+(2048*2)); //standard palette + extra memory for rgb brightness. - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_stv) + GFXDECODE(config, m_gfxdecode, m_palette, gfx_stv); MCFG_VIDEO_START_OVERRIDE(stv_state,stv_vdp2) @@ -1182,26 +1182,26 @@ MACHINE_CONFIG_START(stv_state::stv) m_scsp->main_irq_cb().set(m_scu, FUNC(sega_scu_device::sound_req_w)); m_scsp->add_route(0, "lspeaker", 1.0); m_scsp->add_route(1, "rspeaker", 1.0); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(stv_state::stv_5881) +void stv_state::stv_5881(machine_config &config) +{ stv(config); - MCFG_DEVICE_ADD("315_5881", SEGA315_5881_CRYPT, 0) - MCFG_SET_READ_CALLBACK(stv_state, crypt_read_callback) -MACHINE_CONFIG_END + SEGA315_5881_CRYPT(config, m_cryptdevice, 0); + m_cryptdevice->set_read_cb(FUNC(stv_state::crypt_read_callback)); +} -MACHINE_CONFIG_START(stv_state::stvcd) +void stv_state::stvcd(machine_config &config) +{ stv(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(stvcd_mem) - MCFG_DEVICE_MODIFY("slave") - MCFG_DEVICE_PROGRAM_MAP(stvcd_mem) + m_maincpu->set_addrmap(AS_PROGRAM, &stv_state::stvcd_mem); + m_slave->set_addrmap(AS_PROGRAM, &stv_state::stvcd_mem); - MCFG_DEVICE_ADD("stvcd", STVCD, 0) - MCFG_SOUND_ROUTE(0, "scsp", 1.0, 0) - MCFG_SOUND_ROUTE(1, "scsp", 1.0, 1) -MACHINE_CONFIG_END + stvcd_device &stvcd(STVCD(config, "stvcd", 0)); + stvcd.add_route(0, "scsp", 1.0, 0); + stvcd.add_route(1, "scsp", 1.0, 1); +} void stv_state::sega5838_map(address_map &map) @@ -1209,13 +1209,13 @@ void stv_state::sega5838_map(address_map &map) map(0x000000, 0x7fffff).bankr("protbank"); } -MACHINE_CONFIG_START(stv_state::stv_5838) +void stv_state::stv_5838(machine_config &config) +{ stv(config); - MCFG_DEVICE_ADD("315_5838", SEGA315_5838_COMP, 0) - MCFG_DEVICE_ADDRESS_MAP(0, sega5838_map) - -MACHINE_CONFIG_END + SEGA315_5838_COMP(config, m_5838crypt, 0); + m_5838crypt->set_addrmap(0, stv_state::sega5838_map); +} /* @@ -1233,35 +1233,37 @@ WRITE32_MEMBER( stv_state::batmanfr_sound_comms_w ) } -MACHINE_CONFIG_START(stv_state::batmanfr) +void stv_state::batmanfr(machine_config &config) +{ stv(config); - MCFG_DEVICE_ADD("rax", ACCLAIM_RAX, 0) -MACHINE_CONFIG_END - - -#define MCFG_STV_CARTSLOT_ADD(_tag, _load) \ - MCFG_GENERIC_CARTSLOT_ADD(_tag, generic_plain_slot, "stv_cart") \ - MCFG_GENERIC_LOAD(stv_state, _load) + ACCLAIM_RAX(config, "rax", 0); +} -MACHINE_CONFIG_START(stv_state::stv_cartslot) +#define STV_CARTSLOT_ADD(_tag, _load) \ + GENERIC_CARTSLOT(config, _tag, generic_plain_slot, "stv_cart") \ + .set_device_load(device_image_load_delegate(&stv_state::device_image_load_##_load, this)); - MCFG_STV_CARTSLOT_ADD("stv_slot1", stv_cart1) - MCFG_STV_CARTSLOT_ADD("stv_slot2", stv_cart2) - MCFG_STV_CARTSLOT_ADD("stv_slot3", stv_cart3) - MCFG_STV_CARTSLOT_ADD("stv_slot4", stv_cart4) +void stv_state::stv_cartslot(machine_config &config) +{ + STV_CARTSLOT_ADD("stv_slot1", stv_cart1); + STV_CARTSLOT_ADD("stv_slot2", stv_cart2); + STV_CARTSLOT_ADD("stv_slot3", stv_cart3); + STV_CARTSLOT_ADD("stv_slot4", stv_cart4); - MCFG_SOFTWARE_LIST_ADD("cart_list","stv") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "cart_list").set_original("stv"); +} -MACHINE_CONFIG_START(stv_state::stv_slot) +void stv_state::stv_slot(machine_config &config) +{ stv(config); stv_cartslot(config); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(stv_state::hopper) +void stv_state::hopper(machine_config &config) +{ stv(config); - MCFG_HOPPER_ADD("hopper", attotime::from_msec(100), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH) -MACHINE_CONFIG_END + HOPPER(config, m_hopper, attotime::from_msec(100), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH); +} MACHINE_RESET_MEMBER(stv_state,stv) { |