summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/sms_bootleg.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/sms_bootleg.cpp')
-rw-r--r--src/mame/drivers/sms_bootleg.cpp42
1 files changed, 22 insertions, 20 deletions
diff --git a/src/mame/drivers/sms_bootleg.cpp b/src/mame/drivers/sms_bootleg.cpp
index 6a6b1e51019..bd9dba5a882 100644
--- a/src/mame/drivers/sms_bootleg.cpp
+++ b/src/mame/drivers/sms_bootleg.cpp
@@ -264,7 +264,7 @@ void smsbootleg_state::sms_supergame_io(address_map &map)
map(0x14, 0x14).nopr(); //AM_READ_PORT("IN1") // seem to be from a coinage / timer MCU, changing them directly changes the credits / time value
map(0x18, 0x18).w(FUNC(smsbootleg_state::port18_w));
- map(0x40, 0x7f).r(FUNC(smsbootleg_state::sms_count_r)).w(m_vdp, FUNC(sega315_5124_device::psg_w));
+ map(0x40, 0x7f).rw(FUNC(smsbootleg_state::sms_count_r), FUNC(smsbootleg_state::sms_psg_w));
map(0x80, 0x80).mirror(0x3e).rw(m_vdp, FUNC(sega315_5124_device::data_read), FUNC(sega315_5124_device::data_write));
map(0x81, 0x81).mirror(0x3e).rw(m_vdp, FUNC(sega315_5124_device::control_read), FUNC(sega315_5124_device::control_write));
@@ -273,32 +273,34 @@ void smsbootleg_state::sms_supergame_io(address_map &map)
-void smsbootleg_state::sms_supergame(machine_config &config)
-{
+MACHINE_CONFIG_START(smsbootleg_state::sms_supergame)
/* basic machine hardware */
- Z80(config, m_maincpu, XTAL(10'738'635)/3);
- m_maincpu->set_addrmap(AS_PROGRAM, &smsbootleg_state::sms_supergame_map);
- m_maincpu->set_addrmap(AS_IO, &smsbootleg_state::sms_supergame_io);
+ MCFG_DEVICE_ADD("maincpu", Z80, XTAL(10'738'635)/3)
+ MCFG_DEVICE_PROGRAM_MAP(sms_supergame_map)
+ MCFG_DEVICE_IO_MAP(sms_supergame_io)
- config.m_minimum_quantum = attotime::from_hz(60);
+ MCFG_QUANTUM_TIME(attotime::from_hz(60))
/* sound hardware */
SPEAKER(config, "mono").front_center();
- SCREEN(config, m_main_scr, SCREEN_TYPE_RASTER);
- m_main_scr->set_raw(XTAL(10'738'635)/2, \
+ MCFG_DEVICE_ADD("segapsg", SEGAPSG, XTAL(10'738'635)/3)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
+
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL(10'738'635)/2, \
sega315_5124_device::WIDTH , sega315_5124_device::LBORDER_START + sega315_5124_device::LBORDER_WIDTH - 2, sega315_5124_device::LBORDER_START + sega315_5124_device::LBORDER_WIDTH + 256 + 10, \
- sega315_5124_device::HEIGHT_NTSC, sega315_5124_device::TBORDER_START + sega315_5124_device::NTSC_224_TBORDER_HEIGHT, sega315_5124_device::TBORDER_START + sega315_5124_device::NTSC_224_TBORDER_HEIGHT + 224);
- m_main_scr->set_refresh_hz(XTAL(10'738'635)/2 / (sega315_5124_device::WIDTH * sega315_5124_device::HEIGHT_NTSC));
- m_main_scr->set_screen_update(FUNC(sms_state::screen_update_sms));
-
- SEGA315_5246(config, m_vdp, XTAL(10'738'635));
- m_vdp->set_screen(m_main_scr);
- m_vdp->set_is_pal(false);
- m_vdp->irq().set_inputline(m_maincpu, 0);
- m_vdp->pause().set(FUNC(sms_state::sms_pause_callback));
- m_vdp->add_route(ALL_OUTPUTS, "mono", 1.00);
-}
+ sega315_5124_device::HEIGHT_NTSC, sega315_5124_device::TBORDER_START + sega315_5124_device::NTSC_224_TBORDER_HEIGHT, sega315_5124_device::TBORDER_START + sega315_5124_device::NTSC_224_TBORDER_HEIGHT + 224)
+ MCFG_SCREEN_REFRESH_RATE(XTAL(10'738'635)/2 / (sega315_5124_device::WIDTH * sega315_5124_device::HEIGHT_NTSC))
+ MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms)
+
+ MCFG_DEVICE_ADD("sms_vdp", SEGA315_5246, 0)
+ MCFG_SEGA315_5246_SET_SCREEN("screen")
+ MCFG_SEGA315_5246_IS_PAL(false)
+ MCFG_SEGA315_5246_INT_CB(INPUTLINE("maincpu", 0))
+ MCFG_SEGA315_5246_PAUSE_CB(WRITELINE(*this, sms_state, sms_pause_callback))
+
+MACHINE_CONFIG_END