summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/seta.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/seta.cpp')
-rw-r--r--src/mame/drivers/seta.cpp1686
1 files changed, 830 insertions, 856 deletions
diff --git a/src/mame/drivers/seta.cpp b/src/mame/drivers/seta.cpp
index 8e18531eaf8..10b8e864981 100644
--- a/src/mame/drivers/seta.cpp
+++ b/src/mame/drivers/seta.cpp
@@ -7848,32 +7848,32 @@ TIMER_DEVICE_CALLBACK_MEMBER(seta_state::tndrcade_sub_interrupt)
m_subcpu->set_input_line(0, HOLD_LINE);
}
-MACHINE_CONFIG_START(seta_state::tndrcade)
-
+void seta_state::tndrcade(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */
- MCFG_DEVICE_PROGRAM_MAP(tndrcade_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq2_line_assert)
+ M68000(config, m_maincpu, 16000000/2); /* 8 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::tndrcade_map);
+ m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq2_line_assert));
- MCFG_DEVICE_ADD("sub", M65C02, 16000000/8) /* 2 MHz */
- MCFG_DEVICE_PROGRAM_MAP(tndrcade_sub_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, tndrcade_sub_interrupt, "screen", 0, 1)
+ M65C02(config, m_subcpu, 16000000/8); /* 2 MHz */
+ m_subcpu->set_addrmap(AS_PROGRAM, &seta_state::tndrcade_sub_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::tndrcade_sub_interrupt), "screen", 0, 1);
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta_no_layers));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_tndrcade)
- MCFG_PALETTE_ADD("palette", 512) /* sprites only */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_tndrcade);
+ PALETTE(config, m_palette).set_entries(512); // sprites only
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
@@ -7887,10 +7887,10 @@ MACHINE_CONFIG_START(seta_state::tndrcade)
ym1.add_route(ALL_OUTPUTS, "lspeaker", 0.35);
ym1.add_route(ALL_OUTPUTS, "rspeaker", 0.35);
- MCFG_DEVICE_ADD("ym2", YM3812, 16000000/4) /* 4 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ ym3812_device &ym2(YM3812(config, "ym2", 16000000/4)); /* 4 MHz */
+ ym2.add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ ym2.add_route(ALL_OUTPUTS, "rspeaker", 1.0);
+}
/***************************************************************************
@@ -7903,32 +7903,32 @@ MACHINE_CONFIG_END
/* twineagl lev 3 = lev 2 + lev 1 ! */
-MACHINE_CONFIG_START(seta_state::twineagl)
-
+void seta_state::twineagl(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */
- MCFG_DEVICE_PROGRAM_MAP(downtown_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq3_line_assert)
+ M68000(config, m_maincpu, 16000000/2); /* 8 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::downtown_map);
+ m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq3_line_assert));
- MCFG_DEVICE_ADD("sub", M65C02, 16000000/8) /* 2 MHz */
- MCFG_DEVICE_PROGRAM_MAP(twineagl_sub_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("s_scantimer", seta_state, seta_sub_interrupt, "screen", 0, 1)
+ M65C02(config, m_subcpu, 16000000/8); /* 2 MHz */
+ m_subcpu->set_addrmap(AS_PROGRAM, &seta_state::twineagl_sub_map);
+ TIMER(config, "s_scantimer").configure_scanline(FUNC(seta_state::seta_sub_interrupt), "screen", 0, 1);
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(57.42) // Possibly lower than 60Hz, Correct?
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(57.42); // Possibly lower than 60Hz, Correct?
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_downtown)
- MCFG_PALETTE_ADD("palette", 512)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_downtown);
+ PALETTE(config, m_palette).set_entries(512);
MCFG_VIDEO_START_OVERRIDE(seta_state,twineagl_1_layer)
@@ -7938,9 +7938,9 @@ MACHINE_CONFIG_START(seta_state::twineagl)
GENERIC_LATCH_8(config, m_soundlatch[0]);
GENERIC_LATCH_8(config, m_soundlatch[1]);
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
/***************************************************************************
@@ -7949,32 +7949,32 @@ MACHINE_CONFIG_END
/* downtown lev 3 = lev 2 + lev 1 ! */
-MACHINE_CONFIG_START(seta_state::downtown)
-
+void seta_state::downtown(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)/2) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(downtown_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq2_line_assert)
+ M68000(config, m_maincpu, XTAL(16'000'000)/2); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::downtown_map);
+ m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq2_line_assert));
- MCFG_DEVICE_ADD("sub", M65C02, XTAL(16'000'000)/8) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(downtown_sub_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("s_scantimer", seta_state, seta_sub_interrupt, "screen", 0, 1)
+ M65C02(config, m_subcpu, XTAL(16'000'000)/8); /* verified on pcb */
+ m_subcpu->set_addrmap(AS_PROGRAM, &seta_state::downtown_sub_map);
+ TIMER(config, "s_scantimer").configure_scanline(FUNC(seta_state::seta_sub_interrupt), "screen", 0, 1);
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(57.42) /* verified on pcb */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(57.42); /* verified on pcb */
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_downtown)
- MCFG_PALETTE_ADD("palette", 512)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_downtown);
+ PALETTE(config, m_palette).set_entries(512);
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
@@ -7984,9 +7984,9 @@ MACHINE_CONFIG_START(seta_state::downtown)
GENERIC_LATCH_8(config, m_soundlatch[0]);
GENERIC_LATCH_8(config, m_soundlatch[1]);
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 0.50);
+}
/***************************************************************************
@@ -8017,18 +8017,18 @@ void usclssic_state::machine_start()
}
-MACHINE_CONFIG_START(usclssic_state::usclssic)
-
+void usclssic_state::usclssic(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */
- MCFG_DEVICE_PROGRAM_MAP(usclssic_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", usclssic_state, calibr50_interrupt, "screen", 0, 1)
+ M68000(config, m_maincpu, 16000000/2); /* 8 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &usclssic_state::usclssic_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(usclssic_state::calibr50_interrupt), "screen", 0, 1);
WATCHDOG_TIMER(config, "watchdog");
- MCFG_DEVICE_ADD("sub", M65C02, 16000000/8) /* 2 MHz */
- MCFG_DEVICE_PROGRAM_MAP(calibr50_sub_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", usclssic_state, irq0_line_assert)
+ M65C02(config, m_subcpu, 16000000/8); /* 2 MHz */
+ m_subcpu->set_addrmap(AS_PROGRAM, &usclssic_state::calibr50_sub_map);
+ m_subcpu->set_vblank_int("screen", FUNC(usclssic_state::irq0_line_assert));
UPD4701A(config, m_upd4701);
m_upd4701->set_portx_tag("TRACKX");
@@ -8046,19 +8046,16 @@ MACHINE_CONFIG_START(usclssic_state::usclssic)
m_seta001->set_gfxbank_callback(FUNC(usclssic_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(usclssic_state, screen_update_usclssic)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(usclssic_state::screen_update_usclssic));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_usclssic)
-
- MCFG_PALETTE_ADD("palette", 16*32 + 64*32*2) /* sprites, layer */
- MCFG_PALETTE_INDIRECT_ENTRIES(0x400)
- MCFG_PALETTE_INIT_OWNER(usclssic_state,usclssic) /* layer is 6 planes deep */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_usclssic);
+ PALETTE(config, m_palette, FUNC(usclssic_state::usclssic_palette), 16*32 + 64*32*2, 0x400); // sprites, layer - layer is 6 planes deep
MCFG_VIDEO_START_OVERRIDE(usclssic_state,seta_1_layer)
@@ -8069,9 +8066,9 @@ MACHINE_CONFIG_START(usclssic_state::usclssic)
m_soundlatch[0]->data_pending_callback().set_inputline(m_subcpu, INPUT_LINE_NMI);
m_soundlatch[0]->set_separate_acknowledge(true);
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
/***************************************************************************
@@ -8083,20 +8080,20 @@ MACHINE_CONFIG_END
Test mode shows a 16ms and 4ms counters. I wonder if every game has
5 ints per frame */
-MACHINE_CONFIG_START(seta_state::calibr50)
-
+void seta_state::calibr50(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)/2) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(calibr50_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, calibr50_interrupt, "screen", 0, 1)
+ M68000(config, m_maincpu, XTAL(16'000'000)/2); /* verified on pcb */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::calibr50_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::calibr50_interrupt), "screen", 0, 1);
WATCHDOG_TIMER(config, "watchdog");
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
- MCFG_DEVICE_ADD("sub", M65C02, XTAL(16'000'000)/8) /* verified on pcb */
- MCFG_DEVICE_PROGRAM_MAP(calibr50_sub_map)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(seta_state, irq0_line_assert, 4*60) // IRQ: 4/frame
+ M65C02(config, m_subcpu, XTAL(16'000'000)/8); /* verified on pcb */
+ m_subcpu->set_addrmap(AS_PROGRAM, &seta_state::calibr50_sub_map);
+ m_subcpu->set_periodic_int(FUNC(seta_state::irq0_line_assert), attotime::from_hz(4*60)); // IRQ: 4/frame
upd4701_device &upd4701(UPD4701A(config, "upd4701"));
upd4701.set_portx_tag("ROT1");
@@ -8109,16 +8106,16 @@ MACHINE_CONFIG_START(seta_state::calibr50)
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(57.42) /* verified on pcb */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(57.42); /* verified on pcb */
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_downtown)
- MCFG_PALETTE_ADD("palette", 512)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_downtown);
+ PALETTE(config, m_palette).set_entries(512);
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
@@ -8131,9 +8128,9 @@ MACHINE_CONFIG_START(seta_state::calibr50)
GENERIC_LATCH_8(config, m_soundlatch[1]);
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 0.50);
+}
/***************************************************************************
@@ -8142,32 +8139,32 @@ MACHINE_CONFIG_END
/* metafox lev 3 = lev 2 + lev 1 ! */
-MACHINE_CONFIG_START(seta_state::metafox)
-
+void seta_state::metafox(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */
- MCFG_DEVICE_PROGRAM_MAP(downtown_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq3_line_assert)
+ M68000(config, m_maincpu, 16000000/2); /* 8 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::downtown_map);
+ m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq3_line_assert));
- MCFG_DEVICE_ADD("sub", M65C02, 16000000/8) /* 2 MHz */
- MCFG_DEVICE_PROGRAM_MAP(metafox_sub_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("s_scantimer", seta_state, seta_sub_interrupt, "screen", 0, 1)
+ M65C02(config, m_subcpu, 16000000/8); /* 2 MHz */
+ m_subcpu->set_addrmap(AS_PROGRAM, &seta_state::metafox_sub_map);
+ TIMER(config, "s_scantimer").configure_scanline(FUNC(seta_state::seta_sub_interrupt), "screen", 0, 1);
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_downtown)
- MCFG_PALETTE_ADD("palette", 512)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_downtown);
+ PALETTE(config, m_palette).set_entries(512);
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
@@ -8177,46 +8174,46 @@ MACHINE_CONFIG_START(seta_state::metafox)
GENERIC_LATCH_8(config, m_soundlatch[0]);
GENERIC_LATCH_8(config, m_soundlatch[1]);
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
/***************************************************************************
Athena no Hatena?
***************************************************************************/
-MACHINE_CONFIG_START(seta_state::atehate)
-
+void seta_state::atehate(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(atehate_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_1_and_2, "screen", 0, 1)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::atehate_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta_no_layers));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_tndrcade)
- MCFG_PALETTE_ADD("palette", 512) /* sprites only */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_tndrcade);
+ PALETTE(config, m_palette).set_entries(512); // sprites only
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
/***************************************************************************
@@ -8229,118 +8226,112 @@ MACHINE_CONFIG_END
samples are bankswitched
*/
-MACHINE_CONFIG_START(seta_state::blandia)
-
+void seta_state::blandia(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(blandia_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_2_and_4, "screen", 0, 1)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::blandia_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_2_and_4), "screen", 0, 1);
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, seta_state, screen_vblank_seta_buffer_sprites))
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_blandia)
-
- MCFG_PALETTE_ADD("palette", (16*32+64*32*4)*2) /* sprites, layer1, layer2, palette effect */
- MCFG_PALETTE_INDIRECT_ENTRIES(0x600*2)
- MCFG_PALETTE_INIT_OWNER(seta_state,blandia) /* layers 1&2 are 6 planes deep */
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.screen_vblank().set(FUNC(seta_state::screen_vblank_seta_buffer_sprites));
+ screen.set_palette(m_palette);
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_blandia);
+ PALETTE(config, m_palette, FUNC(seta_state::blandia_palette), (16*32 + 64*32*4)*2, 0x600*2); // sprites, layer1, layer2, palette effect - layers 1&2 are 6 planes deep
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, blandia_x1_map)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(seta_state::blandiap)
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_x1->set_addrmap(0, &seta_state::blandia_x1_map);
+}
+void seta_state::blandiap(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(blandiap_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_2_and_4, "screen", 0, 1)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::blandiap_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_2_and_4), "screen", 0, 1);
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, seta_state, screen_vblank_seta_buffer_sprites))
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_blandia)
-
- MCFG_PALETTE_ADD("palette", (16*32+64*32*4)*2) /* sprites, layer1, layer2, palette effect */
- MCFG_PALETTE_INDIRECT_ENTRIES(0x600*2)
- MCFG_PALETTE_INIT_OWNER(seta_state,blandia) /* layers 1&2 are 6 planes deep */
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.screen_vblank().set(FUNC(seta_state::screen_vblank_seta_buffer_sprites));
+ screen.set_palette(m_palette);
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_blandia);
+ PALETTE(config, m_palette, FUNC(seta_state::blandia_palette), (16*32 + 64*32*4)*2, 0x600*2); // sprites, layer1, layer2, palette effect - layers 1&2 are 6 planes deep
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, blandia_x1_map)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_x1->set_addrmap(0, &seta_state::blandia_x1_map);
+}
/***************************************************************************
Block Carnival
***************************************************************************/
-MACHINE_CONFIG_START(seta_state::blockcar)
-
+void seta_state::blockcar(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */
- MCFG_DEVICE_PROGRAM_MAP(blockcar_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq3_line_hold)
+ M68000(config, m_maincpu, 16000000/2); /* 8 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::blockcar_map);
+ m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq3_line_hold));
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta_no_layers));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_tndrcade)
- MCFG_PALETTE_ADD("palette", 512) /* sprites only */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_tndrcade);
+ PALETTE(config, m_palette).set_entries(512); // sprites only
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
void seta_state::blockcarb_sound_map(address_map &map)
@@ -8359,24 +8350,24 @@ void seta_state::blockcarb_sound_portmap(address_map &map)
// AM_RANGE(0xc0, 0xc0) AM_MIRROR(0x3f) AM_DEVREAD(m_soundlatch[0], generic_latch_8_device, read)
}
-MACHINE_CONFIG_START(seta_state::blockcarb)
+void seta_state::blockcarb(machine_config &config)
+{
blockcar(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(blockcarb_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq3_line_hold)
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::blockcarb_map);
+ m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq3_line_hold));
- MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) // unk freq
- MCFG_DEVICE_PROGRAM_MAP(blockcarb_sound_map)
- MCFG_DEVICE_IO_MAP(blockcarb_sound_portmap)
+ Z80(config, m_audiocpu, 4000000); // unk freq
+ m_audiocpu->set_addrmap(AS_PROGRAM, &seta_state::blockcarb_sound_map);
+ m_audiocpu->set_addrmap(AS_IO, &seta_state::blockcarb_sound_portmap);
/* the sound hardware / program is ripped from Tetris (S16B) */
- MCFG_DEVICE_REMOVE("x1snd")
+ config.device_remove("x1snd");
- MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ OKIM6295(config, "oki", 1000000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
+ .add_route(ALL_OUTPUTS, "mono", 1.0);
+}
@@ -8384,74 +8375,75 @@ MACHINE_CONFIG_END
Daioh
***************************************************************************/
-MACHINE_CONFIG_START(seta_state::daioh)
-
+void seta_state::daioh(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)) /* 16 MHz, MC68000-16, Verified from PCB */
- MCFG_DEVICE_PROGRAM_MAP(daioh_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_1_and_2, "screen", 0, 1)
+ M68000(config, m_maincpu, XTAL(16'000'000)); /* 16 MHz, MC68000-16, Verified from PCB */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::daioh_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(57.42) /* verified on PCB */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(57.42); /* verified on PCB */;
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_msgundam)
- MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer1, layer2 */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_msgundam);
+ PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, XTAL(16'000'000)) /* 16 MHz, Verified from PCB audio */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, XTAL(16'000'000)); /* 16 MHz, Verified from PCB audio */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
/***************************************************************************
Daioh (prototype)
***************************************************************************/
-MACHINE_CONFIG_START(seta_state::daiohp)
-
+void seta_state::daiohp(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)) /* 16 MHz, MC68000-16, Verified from PCB */
- MCFG_DEVICE_PROGRAM_MAP(daiohp_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_1_and_2, "screen", 0, 1)
+ M68000(config, m_maincpu, XTAL(16'000'000)); /* 16 MHz, MC68000-16, Verified from PCB */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::daiohp_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(57.42) /* verified on PCB */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(57.42); /* verified on PCB */;
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_daiohp)
- MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer1, layer2 */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_daiohp);
+ PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, XTAL(16'000'000)) /* 16 MHz, Verified from PCB audio */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, XTAL(16'000'000)); /* 16 MHz, Verified from PCB audio */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
+
/***************************************************************************
Dragon Unit, Quiz Kokology, Strike Gunner
@@ -8463,65 +8455,65 @@ MACHINE_CONFIG_END
lev 2 drives the game
*/
-MACHINE_CONFIG_START(seta_state::drgnunit)
-
+void seta_state::drgnunit(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */
- MCFG_DEVICE_PROGRAM_MAP(drgnunit_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_1_and_2, "screen", 0, 1)
+ M68000(config, m_maincpu, 16000000/2); /* 8 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::drgnunit_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, seta_state, screen_vblank_seta_buffer_sprites))
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_downtown)
- MCFG_PALETTE_ADD("palette", 512)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.screen_vblank().set(FUNC(seta_state::screen_vblank_seta_buffer_sprites));
+ screen.set_palette(m_palette);
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_downtown);
+ PALETTE(config, m_palette).set_entries(512);
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
/* Same as qzkklogy, but with a 16MHz CPU and different
layout for the layer's tiles */
-MACHINE_CONFIG_START(seta_state::qzkklgy2)
-
+void seta_state::qzkklgy2(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(drgnunit_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_1_and_2, "screen", 0, 1)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::drgnunit_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, seta_state, screen_vblank_seta_buffer_sprites))
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_qzkklgy2)
- MCFG_PALETTE_ADD("palette", 512)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.screen_vblank().set(FUNC(seta_state::screen_vblank_seta_buffer_sprites));
+ screen.set_palette(m_palette);
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_qzkklgy2);
+ PALETTE(config, m_palette).set_entries(512);
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_1_layer)
@@ -8529,10 +8521,11 @@ MACHINE_CONFIG_START(seta_state::qzkklgy2)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(0, "lspeaker", 1.0);
+ m_x1->add_route(1, "rspeaker", 1.0);
+}
+
/***************************************************************************
The Roulette
@@ -8551,12 +8544,13 @@ TIMER_DEVICE_CALLBACK_MEMBER(setaroul_state::interrupt)
// lev 6: RS232
}
-MACHINE_CONFIG_START(setaroul_state::setaroul)
-
+void setaroul_state::setaroul(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)/2) /* 8 MHz */
- MCFG_DEVICE_PROGRAM_MAP(setaroul_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", setaroul_state, interrupt, "screen", 0, 1)
+ M68000(config, m_maincpu, XTAL(16'000'000)/2); /* 8 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &setaroul_state::setaroul_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(setaroul_state::interrupt), "screen", 0, 1);
+
WATCHDOG_TIMER(config, "watchdog");
MCFG_MACHINE_START_OVERRIDE(setaroul_state, setaroul)
@@ -8570,23 +8564,21 @@ MACHINE_CONFIG_START(setaroul_state::setaroul)
/* devices */
UPD4992(config, m_rtc); // ! Actually D4911C !
- MCFG_DEVICE_ADD ("acia0", ACIA6850, 0)
- MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(150), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW )
+ ACIA6850(config, "acia0", 0);
+ TICKET_DISPENSER(config, "hopper", attotime::from_msec(150), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(setaroul_state, screen_update)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, setaroul_state, screen_vblank))
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_setaroul)
-
- MCFG_PALETTE_ADD("palette", 512)
- MCFG_PALETTE_INIT_OWNER(setaroul_state,setaroul)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(setaroul_state::screen_update));
+ screen.screen_vblank().set(FUNC(setaroul_state::screen_vblank));
+ screen.set_palette(m_palette);
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_setaroul);
+ PALETTE(config, m_palette, FUNC(setaroul_state::setaroul_palette), 512);
MCFG_VIDEO_START_OVERRIDE(setaroul_state,setaroul_1_layer)
@@ -8594,24 +8586,25 @@ MACHINE_CONFIG_START(setaroul_state::setaroul)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("x1snd", X1_010, XTAL(16'000'000)) /* 16 MHz */
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
+ X1_010(config, m_x1, XTAL(16'000'000)); /* 16 MHz */
+ m_x1->add_route(0, "lspeaker", 1.0);
+ m_x1->add_route(1, "rspeaker", 1.0);
// layout
config.set_default_layout(layout_setaroul);
-MACHINE_CONFIG_END
+}
+
/***************************************************************************
Eight Force
***************************************************************************/
-MACHINE_CONFIG_START(seta_state::eightfrc)
-
+void seta_state::eightfrc(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(wrofaero_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_1_and_2, "screen", 0, 1)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::wrofaero_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
WATCHDOG_TIMER(config, "watchdog");
SETA001_SPRITE(config, m_seta001, 0);
@@ -8619,26 +8612,26 @@ MACHINE_CONFIG_START(seta_state::eightfrc)
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_msgundam)
- MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer1, layer2 */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_msgundam);
+ PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_DEVICE_ADDRESS_MAP(0, blandia_x1_map)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+ m_x1->set_addrmap(0, &seta_state::blandia_x1_map);
+}
/***************************************************************************
@@ -8650,12 +8643,12 @@ MACHINE_CONFIG_END
lev 1 == lev 3 (writes to $500000, bit 4 -> 1 then 0)
lev 2 drives the game
*/
-MACHINE_CONFIG_START(seta_state::extdwnhl)
-
+void seta_state::extdwnhl(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(extdwnhl_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_1_and_2, "screen", 0, 1)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::extdwnhl_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
WATCHDOG_TIMER(config, "watchdog");
SETA001_SPRITE(config, m_seta001, 0);
@@ -8663,19 +8656,16 @@ MACHINE_CONFIG_START(seta_state::extdwnhl)
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_zingzip)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.set_palette(m_palette);
- MCFG_PALETTE_ADD("palette", 16*32+16*32+64*32*2) /* sprites, layer2, layer1 */
- MCFG_PALETTE_INDIRECT_ENTRIES(0x600)
- MCFG_PALETTE_INIT_OWNER(seta_state,zingzip) /* layer 1 gfx is 6 planes deep */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_zingzip);
+ PALETTE(config, m_palette, FUNC(seta_state::zingzip_palette), 16*32 + 16*32 + 64*32*2, 0x600); // sprites, layer2, layer1 - layer 1 gfx is 6 planes deep
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
@@ -8683,10 +8673,10 @@ MACHINE_CONFIG_START(seta_state::extdwnhl)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(0, "lspeaker", 1.0);
+ m_x1->add_route(1, "rspeaker", 1.0);
+}
/***************************************************************************
@@ -8709,15 +8699,15 @@ MACHINE_START_MEMBER(seta_state,wrofaero){ uPD71054_timer_init(); }
lev 2: VBlank
lev 4: Sound (generated by a timer mapped at $d00000-6 ?)
*/
-MACHINE_CONFIG_START(seta_state::gundhara)
-
+void seta_state::gundhara(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(wrofaero_map)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::wrofaero_map);
#if USE_uPD71054_TIMER
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_1_and_2, "screen", 0, 1)
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
#else
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_2_and_4, "screen", 0, 1)
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_2_and_4), "screen", 0, 1);
#endif // USE_uPD71054_TIMER
WATCHDOG_TIMER(config, "watchdog");
@@ -8731,28 +8721,26 @@ MACHINE_CONFIG_START(seta_state::gundhara)
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_jjsquawk)
-
- MCFG_PALETTE_ADD("palette", 16*32+64*32*4) /* sprites, layer2, layer1 */
- MCFG_PALETTE_INDIRECT_ENTRIES(0x600)
- MCFG_PALETTE_INIT_OWNER(seta_state,gundhara) /* layers are 6 planes deep (seta_state,but have only 4 palettes) */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_jjsquawk);
+ PALETTE(config, m_palette, FUNC(seta_state::gundhara_palette), 16*32 + 64*32*4, 0x600); // sprites, layer2, layer1 - layers are 6 planes deep (seta_state,but have only 4 palettes)
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
+
/***************************************************************************
Zombie Raid
@@ -8764,23 +8752,22 @@ MACHINE_START_MEMBER(zombraid_state,zombraid)
m_gun_recoil.resolve();
}
-MACHINE_CONFIG_START(zombraid_state::zombraid)
+void zombraid_state::zombraid(machine_config &config)
+{
gundhara(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(zombraid_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &zombraid_state::zombraid_map);
MCFG_MACHINE_START_OVERRIDE(zombraid_state, zombraid)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
- adc0834_device &adc(ADC0834(config, "adc", 0));
+ adc0834_device &adc(ADC0834(config, "adc"));
adc.set_input_callback(FUNC(zombraid_state::adc_cb));
- MCFG_DEVICE_MODIFY("x1snd")
- MCFG_DEVICE_ADDRESS_MAP(0, zombraid_x1_map)
-MACHINE_CONFIG_END
+ m_x1->set_addrmap(0, &zombraid_state::zombraid_x1_map);
+}
/***************************************************************************
J.J.Squawkers
@@ -8790,12 +8777,12 @@ MACHINE_CONFIG_END
lev 1 == lev 3 (writes to $500000, bit 4 -> 1 then 0)
lev 2 drives the game
*/
-MACHINE_CONFIG_START(seta_state::jjsquawk)
-
+void seta_state::jjsquawk(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(wrofaero_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_1_and_2, "screen", 0, 1)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::wrofaero_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
WATCHDOG_TIMER(config, "watchdog");
SETA001_SPRITE(config, m_seta001, 0);
@@ -8803,75 +8790,71 @@ MACHINE_CONFIG_START(seta_state::jjsquawk)
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_jjsquawk)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.set_palette(m_palette);
- MCFG_PALETTE_ADD("palette", 16*32+64*32*4) /* sprites, layer2, layer1 */
- MCFG_PALETTE_INDIRECT_ENTRIES(0x600)
- MCFG_PALETTE_INIT_OWNER(seta_state,jjsquawk) /* layers are 6 planes deep */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_jjsquawk);
+ PALETTE(config, m_palette, FUNC(seta_state::jjsquawk_palette), 16*32 + 64*32*4, 0x600); // sprites, layer2, layer1 - layers are 6 planes deep
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(seta_state::jjsquawb)
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
+void seta_state::jjsquawb(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(jjsquawb_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_1_and_2, "screen", 0, 1)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::jjsquawb_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_jjsquawk)
-
- MCFG_PALETTE_ADD("palette", 16*32+64*32*4) /* sprites, layer2, layer1 */
- MCFG_PALETTE_INDIRECT_ENTRIES(0x600)
- MCFG_PALETTE_INIT_OWNER(seta_state,jjsquawk) /* layers are 6 planes deep */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_jjsquawk);
+ PALETTE(config, m_palette, FUNC(seta_state::jjsquawk_palette), 16*32 + 64*32*4, 0x600); // sprites, layer2, layer1 - layers are 6 planes deep
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
+
/***************************************************************************
(Kamen) Masked Riders Club Battle Race
***************************************************************************/
/* kamenrid: lev 2 by vblank, lev 4 by timer */
-MACHINE_CONFIG_START(seta_state::kamenrid)
-
+void seta_state::kamenrid(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(kamenrid_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq2_line_assert)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::kamenrid_map);
+ m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq2_line_assert));
+
WATCHDOG_TIMER(config, "watchdog");
pit8254_device &pit(PIT8254(config, "pit", 0)); // uPD71054C
@@ -8883,25 +8866,26 @@ MACHINE_CONFIG_START(seta_state::kamenrid)
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_msgundam)
- MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer2, layer1 */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_msgundam);
+ PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
+
/***************************************************************************
Orbs
@@ -8909,28 +8893,28 @@ MACHINE_CONFIG_END
/* The CPU clock has been verified/measured, PCB only has one OSC and it's 14.318180 MHz */
-MACHINE_CONFIG_START(seta_state::orbs)
-
+void seta_state::orbs(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 14318180/2) /* 7.143 MHz */
- MCFG_DEVICE_PROGRAM_MAP(orbs_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_1_and_2, "screen", 0, 1)
+ M68000(config, m_maincpu, 14318180/2); /* 7.143 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::orbs_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(1*8, 39*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(1*8, 39*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta_no_layers));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_orbs)
- MCFG_PALETTE_ADD("palette", 512) /* sprites only */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_orbs);
+ PALETTE(config, m_palette).set_entries(512); // sprites only
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
@@ -8938,24 +8922,22 @@ MACHINE_CONFIG_START(seta_state::orbs)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("x1snd", X1_010, 14318180) /* 14.318180 MHz */
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
-MACHINE_CONFIG_END
-
-
+ X1_010(config, m_x1, 14318180); /* 14.318180 MHz */
+ m_x1->add_route(0, "lspeaker", 1.0);
+ m_x1->add_route(1, "rspeaker", 1.0);
+}
/***************************************************************************
Kero Kero Keroppi no Issyoni Asobou
***************************************************************************/
-MACHINE_CONFIG_START(seta_state::keroppij)
-
+void seta_state::keroppij(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 14318180/2) /* 7.143 MHz */
- MCFG_DEVICE_PROGRAM_MAP(keroppi_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_1_and_2, "screen", 0, 1)
+ M68000(config, m_maincpu, 14318180/2); /* 7.143 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::keroppi_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
MCFG_MACHINE_START_OVERRIDE(seta_state,keroppi)
@@ -8964,16 +8946,16 @@ MACHINE_CONFIG_START(seta_state::keroppij)
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta_no_layers));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_orbs)
- MCFG_PALETTE_ADD("palette", 512) /* sprites only */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_orbs);
+ PALETTE(config, m_palette).set_entries(512); // sprites only
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
@@ -8981,26 +8963,28 @@ MACHINE_CONFIG_START(seta_state::keroppij)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("x1snd", X1_010, 14318180) /* 14.318180 MHz */
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 14318180); /* 14.318180 MHz */
+ m_x1->add_route(0, "lspeaker", 1.0);
+ m_x1->add_route(1, "rspeaker", 1.0);
+}
-MACHINE_CONFIG_START(seta_state::keroppi)
+void seta_state::keroppi(machine_config &config)
+{
keroppij(config);
- MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_tndrcade)
-MACHINE_CONFIG_END
+ m_gfxdecode->set_info(gfx_tndrcade);
+}
+
/***************************************************************************
Krazy Bowl
***************************************************************************/
-MACHINE_CONFIG_START(seta_state::krzybowl)
-
+void seta_state::krzybowl(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(krzybowl_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_1_and_2, "screen", 0, 1)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::krzybowl_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
upd4701_device &upd1(UPD4701A(config, "upd1"));
upd1.set_portx_tag("TRACK1_X");
@@ -9015,25 +8999,25 @@ MACHINE_CONFIG_START(seta_state::krzybowl)
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(1*8, 39*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(1*8, 39*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta_no_layers));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_tndrcade)
- MCFG_PALETTE_ADD("palette", 512) /* sprites only */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_tndrcade);
+ PALETTE(config, m_palette).set_entries(512); // sprites only
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
/***************************************************************************
@@ -9041,12 +9025,12 @@ MACHINE_CONFIG_END
***************************************************************************/
/* madshark: lev 2 by vblank, lev 4 by timer */
-MACHINE_CONFIG_START(seta_state::madshark)
-
+void seta_state::madshark(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(madshark_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq2_line_assert)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::madshark_map);
+ m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq2_line_assert));
pit8254_device &pit(PIT8254(config, "pit", 0)); // uPD71054C
pit.set_clk<0>(16000000/2/8);
@@ -9059,28 +9043,26 @@ MACHINE_CONFIG_START(seta_state::madshark)
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_jjsquawk)
-
- MCFG_PALETTE_ADD("palette", 16*32+64*32*4) /* sprites, layer2, layer1 */
- MCFG_PALETTE_INDIRECT_ENTRIES(0x600)
- MCFG_PALETTE_INIT_OWNER(seta_state,jjsquawk) /* layers are 6 planes deep */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_jjsquawk);
+ PALETTE(config, m_palette, FUNC(seta_state::jjsquawk_palette), 16*32 + 64*32*4, 0x600); // sprites, layer2, layer1 - layers are 6 planes deep
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
+
/***************************************************************************
Magical Speed
@@ -9089,12 +9071,12 @@ MACHINE_CONFIG_END
MACHINE_START_MEMBER(seta_state,magspeed){ m_leds.resolve(); }
/* magspeed: lev 2 by vblank, lev 4 by timer */
-MACHINE_CONFIG_START(seta_state::magspeed)
-
+void seta_state::magspeed(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(magspeed_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq2_line_assert)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::magspeed_map);
+ m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq2_line_assert));
WATCHDOG_TIMER(config, "watchdog");
@@ -9109,25 +9091,25 @@ MACHINE_CONFIG_START(seta_state::magspeed)
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_msgundam)
- MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer2, layer1 */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_msgundam);
+ PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
/***************************************************************************
@@ -9136,12 +9118,12 @@ MACHINE_CONFIG_END
/* msgundam lev 2 == lev 6 ! */
-MACHINE_CONFIG_START(seta_state::msgundam)
-
+void seta_state::msgundam(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(msgundam_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq2_line_assert)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::msgundam_map);
+ m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq2_line_assert));
pit8254_device &pit(PIT8254(config, "pit", 0)); // uPD71054C
pit.set_clk<0>(16000000/2/8);
@@ -9152,26 +9134,26 @@ MACHINE_CONFIG_START(seta_state::msgundam)
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(56.66) /* between 56 and 57 to match a real PCB's game speed */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, seta_state, screen_vblank_seta_buffer_sprites))
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_msgundam)
- MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer2, layer1 */
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(56.66); /* between 56 and 57 to match a real PCB's game speed */
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.screen_vblank().set(FUNC(seta_state::screen_vblank_seta_buffer_sprites));
+ screen.set_palette(m_palette);
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_msgundam);
+ PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
@@ -9179,28 +9161,28 @@ MACHINE_CONFIG_END
Oishii Puzzle
***************************************************************************/
-MACHINE_CONFIG_START(seta_state::oisipuzl)
-
+void seta_state::oisipuzl(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(oisipuzl_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_1_and_2, "screen", 0, 1)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::oisipuzl_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_msgundam)
- MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer2, layer1 */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_msgundam);
+ PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
MCFG_VIDEO_START_OVERRIDE(seta_state,oisipuzl_2_layers) // flip is inverted for the tilemaps
@@ -9208,10 +9190,11 @@ MACHINE_CONFIG_START(seta_state::oisipuzl)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(0, "lspeaker", 1.0);
+ m_x1->add_route(1, "rspeaker", 1.0);
+}
+
/***************************************************************************
Triple Fun
@@ -9219,28 +9202,28 @@ MACHINE_CONFIG_END
/* same as oisipuzl but with different interrupts and sound */
-MACHINE_CONFIG_START(seta_state::triplfun)
-
+void seta_state::triplfun(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(triplfun_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq3_line_hold)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::triplfun_map);
+ m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq3_line_hold));
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_msgundam)
- MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer2, layer1 */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_msgundam);
+ PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
MCFG_VIDEO_START_OVERRIDE(seta_state,oisipuzl_2_layers) // flip is inverted for the tilemaps
@@ -9248,10 +9231,11 @@ MACHINE_CONFIG_START(seta_state::triplfun)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("oki", OKIM6295, 792000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
-MACHINE_CONFIG_END
+ okim6295_device &oki(OKIM6295(config, "oki", 792000, okim6295_device::PIN7_HIGH)); // clock frequency & pin 7 not verified
+ oki.add_route(ALL_OUTPUTS, "lspeaker", 1.0);
+ oki.add_route(ALL_OUTPUTS, "rspeaker", 1.0);
+}
+
/***************************************************************************
Pro Mahjong Kiwame
@@ -9263,12 +9247,12 @@ WRITE_LINE_MEMBER(kiwame_state::kiwame_vblank)
m_tmp68301->external_interrupt_0();
}
-MACHINE_CONFIG_START(kiwame_state::kiwame)
-
+void kiwame_state::kiwame(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu, M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(kiwame_map)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("tmp68301", tmp68301_device, irq_callback)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &kiwame_state::kiwame_map);
+ m_maincpu->set_irq_acknowledge_callback("tmp68301", FUNC(tmp68301_device::irq_callback));
tmp68301_device &tmp68301(TMP68301(config, "tmp68301", 0));
tmp68301.set_cputag(m_maincpu);
@@ -9281,17 +9265,17 @@ MACHINE_CONFIG_START(kiwame_state::kiwame)
m_seta001->set_gfxbank_callback(FUNC(kiwame_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 56*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(kiwame_state, screen_update_seta_no_layers)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, kiwame_state, kiwame_vblank))
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_tndrcade)
- MCFG_PALETTE_ADD("palette", 512) /* sprites only */
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 56*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(kiwame_state::screen_update_seta_no_layers));
+ screen.screen_vblank().set(FUNC(kiwame_state::kiwame_vblank));
+ screen.set_palette(m_palette);
+
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_tndrcade);
+ PALETTE(config, m_palette).set_entries(512); // sprites only
MCFG_VIDEO_START_OVERRIDE(kiwame_state,seta_no_layers)
@@ -9299,11 +9283,10 @@ MACHINE_CONFIG_START(kiwame_state::kiwame)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
-MACHINE_CONFIG_END
-
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(0, "lspeaker", 1.0);
+ m_x1->add_route(1, "rspeaker", 1.0);
+}
/***************************************************************************
@@ -9312,12 +9295,13 @@ MACHINE_CONFIG_END
/* pretty much like wrofaero, but ints are 1&2, not 2&4 */
-MACHINE_CONFIG_START(seta_state::rezon)
-
+void seta_state::rezon(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(wrofaero_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_1_and_2, "screen", 0, 1)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::wrofaero_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
+
WATCHDOG_TIMER(config, "watchdog");
SETA001_SPRITE(config, m_seta001, 0);
@@ -9325,26 +9309,25 @@ MACHINE_CONFIG_START(seta_state::rezon)
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_msgundam)
- MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer1, layer2 */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_msgundam);
+ PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
-
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
/***************************************************************************
@@ -9353,37 +9336,37 @@ MACHINE_CONFIG_END
/* thunderl lev 2 = lev 3 - other levels lead to an error */
-MACHINE_CONFIG_START(seta_state::thunderl)
-
+void seta_state::thunderl(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */
- MCFG_DEVICE_PROGRAM_MAP(thunderl_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq2_line_assert)
+ M68000(config, m_maincpu, 16000000/2); /* 8 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::thunderl_map);
+ m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq2_line_assert));
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta_no_layers));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_tndrcade)
- MCFG_PALETTE_ADD("palette", 512) /* sprites only */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_tndrcade);
+ PALETTE(config, m_palette).set_entries(512); // sprites only
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
void seta_state::thunderlbl_sound_map(address_map &map)
@@ -9402,18 +9385,17 @@ void seta_state::thunderlbl_sound_portmap(address_map &map)
map(0xc0, 0xc0).mirror(0x3f).r(m_soundlatch[0], FUNC(generic_latch_8_device::read));
}
-
-MACHINE_CONFIG_START(seta_state::thunderlbl)
+void seta_state::thunderlbl(machine_config &config)
+{
thunderl(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(thunderlbl_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq2_line_assert)
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::thunderlbl_map);
+ m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq2_line_assert));
- MCFG_DEVICE_ADD("audiocpu", Z80, 10000000/2)
- MCFG_DEVICE_PROGRAM_MAP(thunderlbl_sound_map)
- MCFG_DEVICE_IO_MAP(thunderlbl_sound_portmap)
+ Z80(config, m_audiocpu, 10000000/2);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &seta_state::thunderlbl_sound_map);
+ m_audiocpu->set_addrmap(AS_IO, &seta_state::thunderlbl_sound_portmap);
/* the sound hardware / program is ripped from Tetris (S16B) */
config.device_remove("x1snd");
@@ -9422,153 +9404,152 @@ MACHINE_CONFIG_START(seta_state::thunderlbl)
GENERIC_LATCH_8(config, m_soundlatch[0]);
m_soundlatch[0]->data_pending_callback().set_inputline(m_audiocpu, 0);
-MACHINE_CONFIG_END
-
+}
-MACHINE_CONFIG_START(seta_state::wiggie)
+void seta_state::wiggie(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */
- MCFG_DEVICE_PROGRAM_MAP(wiggie_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq2_line_assert)
+ M68000(config, m_maincpu, 16000000/2); /* 8 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::wiggie_map);
+ m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq2_line_assert));
- MCFG_DEVICE_ADD("audiocpu", Z80, 16000000/4) /* 4 MHz */
- MCFG_DEVICE_PROGRAM_MAP(wiggie_sound_map)
+ Z80(config, m_audiocpu, 16000000/4); /* 4 MHz */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &seta_state::wiggie_sound_map);
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta_no_layers));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_wiggie)
- MCFG_PALETTE_ADD("palette", 512) /* sprites only */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_wiggie);
+ PALETTE(config, m_palette).set_entries(512); // sprites only
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ OKIM6295(config, "oki", 1000000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0);
GENERIC_LATCH_8(config, m_soundlatch[0]);
m_soundlatch[0]->data_pending_callback().set_inputline(m_audiocpu, 0);
-MACHINE_CONFIG_END
+}
-MACHINE_CONFIG_START(seta_state::superbar)
+void seta_state::superbar(machine_config &config)
+{
wiggie(config);
+ m_gfxdecode->set_info(gfx_superbar);
+}
- MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_superbar)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(seta_state::wits)
-
+void seta_state::wits(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */
- MCFG_DEVICE_PROGRAM_MAP(thunderl_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq2_line_assert)
+ M68000(config, m_maincpu, 16000000/2); /* 8 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::thunderl_map);
+ m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq2_line_assert));
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta_no_layers));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_tndrcade)
- MCFG_PALETTE_ADD("palette", 512) /* sprites only */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_tndrcade);
+ PALETTE(config, m_palette).set_entries(512); // sprites only
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
/***************************************************************************
Ultraman Club / SD Gundam Neo Battling
***************************************************************************/
-MACHINE_CONFIG_START(seta_state::umanclub)
-
+void seta_state::umanclub(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(umanclub_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq3_line_hold)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::umanclub_map);
+ m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq3_line_hold));
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta_no_layers));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_tndrcade)
- MCFG_PALETTE_ADD("palette", 512)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_tndrcade);
+ PALETTE(config, m_palette).set_entries(512);
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
/***************************************************************************
Ultra Toukond Densetsu
***************************************************************************/
-MACHINE_CONFIG_START(seta_state::utoukond)
-
+void seta_state::utoukond(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(utoukond_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_1_and_2, "screen", 0, 1)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::utoukond_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
- MCFG_DEVICE_ADD("audiocpu", Z80, 16000000/4) /* 4 MHz */
- MCFG_DEVICE_PROGRAM_MAP(utoukond_sound_map)
- MCFG_DEVICE_IO_MAP(utoukond_sound_io_map)
+ Z80(config, m_audiocpu, 16000000/4); /* 4 MHz */
+ m_audiocpu->set_addrmap(AS_PROGRAM, &seta_state::utoukond_sound_map);
+ m_audiocpu->set_addrmap(AS_IO, &seta_state::utoukond_sound_io_map);
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_msgundam)
- MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer2, layer1 */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_msgundam);
+ PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
@@ -9580,30 +9561,30 @@ MACHINE_CONFIG_START(seta_state::utoukond)
m_soundlatch[0]->data_pending_callback().set_inputline(m_audiocpu, 0);
m_soundlatch[0]->set_separate_acknowledge(true);
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000)
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
+ X1_010(config, m_x1, 16000000);
+ m_x1->add_route(0, "lspeaker", 1.0);
+ m_x1->add_route(1, "rspeaker", 1.0);
- MCFG_DEVICE_ADD("ymsnd", YM3438, 16000000/4) /* 4 MHz */
- MCFG_YM2612_IRQ_HANDLER(WRITELINE(*this, seta_state, utoukond_ym3438_interrupt))
- MCFG_SOUND_ROUTE(0, "lspeaker", 0.30)
- MCFG_SOUND_ROUTE(1, "rspeaker", 0.30)
-MACHINE_CONFIG_END
+ ym3438_device &ymsnd(YM3438(config, "ymsnd", 16000000/4)); /* 4 MHz */
+ ymsnd.irq_handler().set(FUNC(seta_state::utoukond_ym3438_interrupt));
+ ymsnd.add_route(0, "lspeaker", 0.30);
+ ymsnd.add_route(1, "rspeaker", 0.30);
+}
/***************************************************************************
War of Aero
***************************************************************************/
-MACHINE_CONFIG_START(seta_state::wrofaero)
-
+void seta_state::wrofaero(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(wrofaero_map)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::wrofaero_map);
#if USE_uPD71054_TIMER
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, wrofaero_interrupt)
+ m_maincpu->set_vblank_int("screen", FUNC(seta_state::wrofaero_interrupt));
#else
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_2_and_4, "screen", 0, 1)
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_2_and_4), "screen", 0, 1);
#endif // USE_uPD71054_TIMER
WATCHDOG_TIMER(config, "watchdog");
@@ -9617,27 +9598,25 @@ MACHINE_CONFIG_START(seta_state::wrofaero)
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_msgundam)
- MCFG_PALETTE_ADD("palette", 512 * 3) /* sprites, layer1, layer2 */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_msgundam);
+ PALETTE(config, m_palette).set_entries(512 * 3); // sprites, layer1, layer2
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
-
-
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
/***************************************************************************
@@ -9649,12 +9628,12 @@ MACHINE_CONFIG_END
at int 1 is necessary: it plays the background music.
*/
-MACHINE_CONFIG_START(seta_state::zingzip)
-
+void seta_state::zingzip(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(wrofaero_map)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", seta_state, irq3_line_hold)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::wrofaero_map);
+ m_maincpu->set_vblank_int("screen", FUNC(seta_state::irq3_line_hold));
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
@@ -9663,81 +9642,77 @@ MACHINE_CONFIG_START(seta_state::zingzip)
WATCHDOG_TIMER(config, "watchdog");
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(57.42) // taken from other games but seems to better match PCB videos
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_zingzip)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(57.42); // taken from other games but seems to better match PCB videos
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.set_palette(m_palette);
- MCFG_PALETTE_ADD("palette", 16*32+16*32+64*32*2) /* sprites, layer2, layer1 */
- MCFG_PALETTE_INDIRECT_ENTRIES(0x600)
- MCFG_PALETTE_INIT_OWNER(seta_state,zingzip) /* layer 1 gfx is 6 planes deep */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_zingzip);
+ PALETTE(config, m_palette, FUNC(seta_state::zingzip_palette), 16*32 + 16*32 + 64*32*2, 0x600); // sprites, layer2, layer1 - layer 1 gfx is 6 planes deep
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
-MACHINE_CONFIG_START(seta_state::zingzipbl)
+void seta_state::zingzipbl(machine_config &config)
+{
zingzip(config);
- MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_zingzipbl)
+ m_gfxdecode->set_info(gfx_zingzipbl);
- MCFG_DEVICE_REMOVE("maincpu")
+ M68000(config.replace(), m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::zingzipbl_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(zingzipbl_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_1_and_2, "screen", 0, 1)
+ config.device_remove("x1snd");
- MCFG_DEVICE_REMOVE("x1snd")
+ OKIM6295(config, "oki", 1000000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0);
+}
- MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
/***************************************************************************
Pairs Love
***************************************************************************/
-MACHINE_CONFIG_START(seta_state::pairlove)
-
+void seta_state::pairlove(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */
- MCFG_DEVICE_PROGRAM_MAP(pairlove_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, seta_interrupt_1_and_2, "screen", 0, 1)
+ M68000(config, m_maincpu, 16000000/2); /* 8 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::pairlove_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta_no_layers));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_pairlove)
- MCFG_PALETTE_ADD("palette", 2048) /* sprites only */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_pairlove);
+ PALETTE(config, m_palette).set_entries(2048); // sprites only
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_no_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
+ X1_010(config, m_x1, 16000000); /* 16 MHz */
+ m_x1->add_route(ALL_OUTPUTS, "mono", 1.0);
+}
/***************************************************************************
@@ -9755,43 +9730,41 @@ TIMER_DEVICE_CALLBACK_MEMBER(seta_state::crazyfgt_interrupt)
m_maincpu->set_input_line(1, HOLD_LINE);
}
-MACHINE_CONFIG_START(seta_state::crazyfgt)
-
+void seta_state::crazyfgt(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16 MHz */
- MCFG_DEVICE_PROGRAM_MAP(crazyfgt_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", seta_state, crazyfgt_interrupt, "screen", 0, 1)
+ M68000(config, m_maincpu, 16000000); /* 16 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::crazyfgt_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::crazyfgt_interrupt), "screen", 0, 1);
SETA001_SPRITE(config, m_seta001, 0);
m_seta001->set_gfxdecode_tag(m_gfxdecode);
m_seta001->set_gfxbank_callback(FUNC(seta_state::setac_gfxbank_callback), this);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
- MCFG_SCREEN_PALETTE("palette")
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 2*8, 30*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta));
+ screen.set_palette(m_palette);
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_crazyfgt)
-
- MCFG_PALETTE_ADD("palette", 16*32+64*32*4) /* sprites, layer1, layer2 */
- MCFG_PALETTE_INDIRECT_ENTRIES(0x600)
- MCFG_PALETTE_INIT_OWNER(seta_state,gundhara) /* layers are 6 planes deep (seta_state,but have only 4 palettes) */
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_crazyfgt);
+ PALETTE(config, m_palette, FUNC(seta_state::gundhara_palette), 16*32 + 64*32*4, 0x600); // sprites, layer2, layer1 - layers are 6 planes deep (seta_state,but have only 4 palettes)
MCFG_VIDEO_START_OVERRIDE(seta_state,seta_2_layers)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("ymsnd", YM3812, 16000000/4) /* 4 MHz */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ ym3812_device &ymsnd(YM3812(config, "ymsnd", 16000000/4)); /* 4 MHz */
+ ymsnd.add_route(ALL_OUTPUTS, "mono", 1.0);
+
+ okim6295_device &oki(OKIM6295(config, "oki", 1000000, okim6295_device::PIN7_HIGH)); // clock?
+ oki.add_route(ALL_OUTPUTS, "mono", 1.0);
+}
- MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) // clock?
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
-MACHINE_CONFIG_END
/***************************************************************************
Jockey Club
@@ -9824,12 +9797,13 @@ MACHINE_START_MEMBER(jockeyc_state, jockeyc)
}
-MACHINE_CONFIG_START(jockeyc_state::jockeyc)
-
+void jockeyc_state::jockeyc(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)/2) // TMP68000N-8
- MCFG_DEVICE_PROGRAM_MAP(jockeyc_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", jockeyc_state, interrupt, "screen", 0, 1)
+ M68000(config, m_maincpu, XTAL(16'000'000)/2); // TMP68000N-8
+ m_maincpu->set_addrmap(AS_PROGRAM, &jockeyc_state::jockeyc_map);
+ TIMER(config, "scantimer").configure_scanline(FUNC(jockeyc_state::interrupt), "screen", 0, 1);
+
WATCHDOG_TIMER(config, "watchdog").set_time(attotime::from_seconds(2.0)); // jockeyc: watchdog test error if over 2.5s
SETA001_SPRITE(config, m_seta001, 0);
@@ -9841,23 +9815,21 @@ MACHINE_CONFIG_START(jockeyc_state::jockeyc)
MCFG_MACHINE_START_OVERRIDE(jockeyc_state, jockeyc)
/* devices */
UPD4992(config, m_rtc); // ! Actually D4911C !
- MCFG_DEVICE_ADD ("acia0", ACIA6850, 0)
- MCFG_TICKET_DISPENSER_ADD("hopper1", attotime::from_msec(150), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW )
- MCFG_TICKET_DISPENSER_ADD("hopper2", attotime::from_msec(150), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW )
+ ACIA6850(config, "acia0", 0);
+ TICKET_DISPENSER(config, "hopper1", attotime::from_msec(150), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW);
+ TICKET_DISPENSER(config, "hopper2", attotime::from_msec(150), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW);
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_layers)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_jockeyc)
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ screen.set_size(64*8, 32*8);
+ screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
+ screen.set_screen_update(FUNC(seta_state::screen_update_seta_layers));
+ screen.set_palette(m_palette);
- MCFG_PALETTE_ADD("palette", 512 * 1)
- MCFG_PALETTE_INIT_OWNER(seta_state,palette_init_RRRRRGGGGGBBBBB_proms)
+ GFXDECODE(config, m_gfxdecode, m_palette, gfx_jockeyc);
+ PALETTE(config, m_palette, FUNC(seta_state::palette_init_RRRRRGGGGGBBBBB_proms), 512 * 1);
MCFG_VIDEO_START_OVERRIDE(jockeyc_state,jockeyc_1_layer)
@@ -9865,13 +9837,13 @@ MACHINE_CONFIG_START(jockeyc_state::jockeyc)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
- MCFG_DEVICE_ADD("x1snd", X1_010, 16000000)
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
+ X1_010(config, m_x1, 16000000);
+ m_x1->add_route(0, "lspeaker", 1.0);
+ m_x1->add_route(1, "rspeaker", 1.0);
// layout
config.set_default_layout(layout_jockeyc);
-MACHINE_CONFIG_END
+}
/***************************************************************************
@@ -9884,23 +9856,25 @@ MACHINE_START_MEMBER(jockeyc_state, inttoote)
m_out_itstart.resolve();
}
-MACHINE_CONFIG_START(jockeyc_state::inttoote)
+void jockeyc_state::inttoote(machine_config &config)
+{
jockeyc(config);
- MCFG_DEVICE_REMOVE("maincpu")
- MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)) // TMP68HC000N-16
- MCFG_DEVICE_PROGRAM_MAP(inttoote_map)
+
+ M68000(config.replace(), m_maincpu, XTAL(16'000'000)); // TMP68HC000N-16
+ m_maincpu->set_addrmap(AS_PROGRAM, &jockeyc_state::inttoote_map);
MCFG_MACHINE_START_OVERRIDE(jockeyc_state, inttoote)
+
// I/O board (not hooked up yet)
- MCFG_DEVICE_ADD("pia0", PIA6821, 0)
- MCFG_DEVICE_ADD("pia1", PIA6821, 0)
+ PIA6821(config, "pia0", 0);
+ PIA6821(config, "pia1", 0);
- MCFG_DEVICE_ADD ("acia1", ACIA6850, 0)
- MCFG_DEVICE_ADD ("acia2", ACIA6850, 0)
+ ACIA6850(config, "acia1", 0);
+ ACIA6850(config, "acia2", 0);
// layout
config.set_default_layout(layout_inttoote);
-MACHINE_CONFIG_END
+}