summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/sauro.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/sauro.cpp')
-rw-r--r--src/mame/drivers/sauro.cpp69
1 files changed, 31 insertions, 38 deletions
diff --git a/src/mame/drivers/sauro.cpp b/src/mame/drivers/sauro.cpp
index 17ce062c4e8..fa40c602acc 100644
--- a/src/mame/drivers/sauro.cpp
+++ b/src/mame/drivers/sauro.cpp
@@ -446,10 +446,10 @@ static GFXDECODE_START( gfx_trckydoc )
GFXDECODE_END
-MACHINE_CONFIG_START(sauro_state::tecfri)
-
+void sauro_state::tecfri(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(20'000'000)/4) /* verified on pcb */
+ Z80(config, m_maincpu, XTAL(20'000'000)/4); /* verified on pcb */
LS259(config, m_mainlatch);
m_mainlatch->q_out_cb<4>().set(FUNC(sauro_state::irq_reset_w));
@@ -459,29 +459,27 @@ MACHINE_CONFIG_START(sauro_state::tecfri)
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(55.72) /* verified on pcb */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(5000)) // frames per second, vblank duration (otherwise sprites lag)
- MCFG_SCREEN_SIZE(32 * 8, 32 * 8)
- MCFG_SCREEN_VISIBLE_AREA(1 * 8, 31 * 8 - 1, 2 * 8, 30 * 8 - 1)
- MCFG_SCREEN_PALETTE(m_palette)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, sauro_state, vblank_irq))
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(55.72); /* verified on pcb */
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(5000)); // frames per second, vblank duration (otherwise sprites lag)
+ screen.set_size(32 * 8, 32 * 8);
+ screen.set_visarea(1 * 8, 31 * 8 - 1, 2 * 8, 30 * 8 - 1);
+ screen.set_palette(m_palette);
+ screen.screen_vblank().set(FUNC(sauro_state::vblank_irq));
PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 1024);
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("ymsnd", YM3812, XTAL(20'000'000)/8) /* verified on pcb */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-
-MACHINE_CONFIG_END
+ YM3812(config, "ymsnd", XTAL(20'000'000)/8).add_route(ALL_OUTPUTS, "mono", 1.0); /* verified on pcb */
+}
-MACHINE_CONFIG_START(sauro_state::trckydoc)
+void sauro_state::trckydoc(machine_config &config)
+{
tecfri(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(trckydoc_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &sauro_state::trckydoc_map);
m_mainlatch->q_out_cb<1>().set(FUNC(sauro_state::flip_screen_w));
m_mainlatch->q_out_cb<2>().set(FUNC(sauro_state::coin1_w));
@@ -490,17 +488,15 @@ MACHINE_CONFIG_START(sauro_state::trckydoc)
GFXDECODE(config, m_gfxdecode, m_palette, gfx_trckydoc);
MCFG_VIDEO_START_OVERRIDE(sauro_state,trckydoc)
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(sauro_state, screen_update_trckydoc)
-
-MACHINE_CONFIG_END
+ subdevice<screen_device>("screen")->set_screen_update(FUNC(sauro_state::screen_update_trckydoc));
+}
-MACHINE_CONFIG_START(sauro_state::sauro)
+void sauro_state::sauro(machine_config &config)
+{
tecfri(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(sauro_map)
- MCFG_DEVICE_IO_MAP(sauro_io_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &sauro_state::sauro_map);
+ m_maincpu->set_addrmap(AS_IO, &sauro_state::sauro_io_map);
// Z3
m_mainlatch->q_out_cb<0>().set(FUNC(sauro_state::flip_screen_w));
@@ -510,36 +506,33 @@ MACHINE_CONFIG_START(sauro_state::sauro)
m_mainlatch->q_out_cb<5>().set(FUNC(sauro_state::sauro_palette_bank0_w));
m_mainlatch->q_out_cb<6>().set(FUNC(sauro_state::sauro_palette_bank1_w));
- MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(20'000'000) / 5) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(sauro_sound_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(sauro_state, irq0_line_hold, 8 * 60) // ?
+ z80_device &audiocpu(Z80(config, "audiocpu", XTAL(20'000'000) / 5)); /* verified on pcb */
+ audiocpu.set_addrmap(AS_PROGRAM, &sauro_state::sauro_sound_map);
+ audiocpu.set_periodic_int(FUNC(sauro_state::irq0_line_hold), attotime::from_hz(8 * 60)); // ?
GFXDECODE(config, m_gfxdecode, m_palette, gfx_sauro);
MCFG_VIDEO_START_OVERRIDE(sauro_state, sauro)
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(sauro_state, screen_update_sauro)
+ subdevice<screen_device>("screen")->set_screen_update(FUNC(sauro_state::screen_update_sauro));
GENERIC_LATCH_8(config, m_soundlatch);
- MCFG_DEVICE_MODIFY("ymsnd")
- MCFG_DEVICE_CLOCK(XTAL(20'000'000) / 5) /* verified on pcb */
+ subdevice<ym3812_device>("ymsnd")->set_clock(XTAL(20'000'000) / 5); /* verified on pcb */
SP0256(config, m_sp0256, XTAL(20'000'000) / 5); /* verified on pcb */
m_sp0256->data_request_callback().set_inputline("audiocpu", INPUT_LINE_NMI);
m_sp0256->add_route(ALL_OUTPUTS, "mono", 1.0);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(sauro_state::saurob)
+void sauro_state::saurob(machine_config &config)
+{
sauro(config);
- MCFG_DEVICE_MODIFY("audiocpu")
- MCFG_DEVICE_PROGRAM_MAP(saurob_sound_map)
+ subdevice<z80_device>("audiocpu")->set_addrmap(AS_PROGRAM, &sauro_state::saurob_sound_map);
/* sound hardware */
config.device_remove("speech");
-
-MACHINE_CONFIG_END
+}
/***************************************************************************