diff options
Diffstat (limited to 'src/mame/drivers/seta.cpp')
-rw-r--r-- | src/mame/drivers/seta.cpp | 1686 |
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 +} |