diff options
Diffstat (limited to 'src/mame/drivers/gaelco2.cpp')
-rw-r--r-- | src/mame/drivers/gaelco2.cpp | 453 |
1 files changed, 230 insertions, 223 deletions
diff --git a/src/mame/drivers/gaelco2.cpp b/src/mame/drivers/gaelco2.cpp index 45b0f2886fa..eeca65e1fa1 100644 --- a/src/mame/drivers/gaelco2.cpp +++ b/src/mame/drivers/gaelco2.cpp @@ -178,26 +178,27 @@ static INPUT_PORTS_START( maniacsq ) PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END -MACHINE_CONFIG_START(gaelco2_state::maniacsq) +void gaelco2_state::maniacsq(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(26'000'000) / 2) /* 13 MHz? */ - MCFG_DEVICE_PROGRAM_MAP(maniacsq_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gaelco2_state, irq6_line_hold) + M68000(config, m_maincpu, XTAL(26'000'000) / 2); /* 13 MHz? */ + m_maincpu->set_addrmap(AS_PROGRAM, &gaelco2_state::maniacsq_map); + m_maincpu->set_vblank_int("screen", FUNC(gaelco2_state::irq6_line_hold)); /* video hardware */ - MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM16) + BUFFERED_SPRITERAM16(config, m_spriteram); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59.1) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(64*16, 32*16) - MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram16_device, vblank_copy_rising)) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(59.1); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(64*16, 32*16); + screen.set_visarea(0, 320-1, 16, 256-1); + screen.set_screen_update(FUNC(gaelco2_state::screen_update_gaelco2)); + screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram16_device::vblank_copy_rising)); + screen.set_palette(m_palette); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_0x0080000) - MCFG_PALETTE_ADD("palette", 4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ + GFXDECODE(config, m_gfxdecode, m_palette, gfx_0x0080000); + PALETTE(config, m_palette, 4096*16 - 16); /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2) @@ -205,18 +206,18 @@ MACHINE_CONFIG_START(gaelco2_state::maniacsq) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("gaelco", GAELCO_GAE1, 0) - MCFG_GAELCO_SND_DATA("gfx1") - MCFG_GAELCO_BANKS(0 * 0x0080000, 1 * 0x0080000, 0, 0) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) -MACHINE_CONFIG_END + gaelco_gae1_device &gaelco(GAELCO_GAE1(config, "gaelco")); + gaelco.set_snd_data_tag("gfx1"); + gaelco.set_bank_offsets(0 * 0x0080000, 1 * 0x0080000, 0, 0); + gaelco.add_route(0, "lspeaker", 1.0); + gaelco.add_route(1, "rspeaker", 1.0); +} -MACHINE_CONFIG_START(gaelco2_state::maniacsq_d5002fp) +void gaelco2_state::maniacsq_d5002fp(machine_config &config) +{ maniacsq(config); - MCFG_DEVICE_ADD("gaelco_ds5002fp", GAELCO_DS5002FP, XTAL(24'000'000) / 2) /* ? */ - MCFG_DEVICE_ADDRESS_MAP(0, mcu_hostmem_map) -MACHINE_CONFIG_END + GAELCO_DS5002FP(config, "gaelco_ds5002fp", XTAL(24'000'000) / 2).set_addrmap(0, &gaelco2_state::mcu_hostmem_map); // clock unknown +} ROM_START( maniacsq ) // REF 940411 @@ -460,26 +461,27 @@ void gaelco2_state::saltcrdi_map(address_map &map) } // 34'000'000 XTAL for the video? -MACHINE_CONFIG_START(gaelco2_state::saltcrdi) +void gaelco2_state::saltcrdi(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000) / 2) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(saltcrdi_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gaelco2_state, irq6_line_hold) + M68000(config, m_maincpu, XTAL(24'000'000) / 2); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &gaelco2_state::saltcrdi_map); + m_maincpu->set_vblank_int("screen", FUNC(gaelco2_state::irq6_line_hold)); /* video hardware */ - MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM16) + BUFFERED_SPRITERAM16(config, m_spriteram); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59.1) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(64*16, 32*16) - MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram16_device, vblank_copy_rising)) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(59.1); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(64*16, 32*16); + screen.set_visarea(0, 384-1, 16, 256-1); + screen.set_screen_update(FUNC(gaelco2_state::screen_update_gaelco2)); + screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram16_device::vblank_copy_rising)); + screen.set_palette(m_palette); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_0x0080000) /* gfx_0x0040000 */ - MCFG_PALETTE_ADD("palette", 4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ + GFXDECODE(config, m_gfxdecode, m_palette, gfx_0x0080000); /* gfx_0x0040000 */ + PALETTE(config, m_palette, 4096*16 - 16); /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2) @@ -487,12 +489,12 @@ MACHINE_CONFIG_START(gaelco2_state::saltcrdi) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("gaelco", GAELCO_GAE1, 0) /* unused? ROMs contain no sound data */ - MCFG_GAELCO_SND_DATA("gfx1") - MCFG_GAELCO_BANKS(0 * 0x0080000, 1 * 0x0080000, 0, 0) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) -MACHINE_CONFIG_END + gaelco_gae1_device &gaelco(GAELCO_GAE1(config, "gaelco")); /* unused? ROMs contain no sound data */ + gaelco.set_snd_data_tag("gfx1"); + gaelco.set_bank_offsets(0 * 0x0080000, 1 * 0x0080000, 0, 0); + gaelco.add_route(0, "lspeaker", 1.0); + gaelco.add_route(1, "rspeaker", 1.0); +} ROM_START( saltcrdi ) // REF 970410 ROM_REGION( 0x040000, "maincpu", 0 ) /* 68000 code */ @@ -718,29 +720,30 @@ ROM_START( play2000a ) ROM_LOAD( "palce16v8h.u29", 0x0000, 0x0117, BAD_DUMP CRC(4a0a6f39) SHA1(57351e471649391c9abf110828fe2f128fe84eee) ) ROM_END -MACHINE_CONFIG_START(gaelco2_state::play2000) +void gaelco2_state::play2000(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(11'059'200)) /* or from the 34MHz? (34MHz drives the CG-1V-149 PLD?) */ - MCFG_DEVICE_PROGRAM_MAP(play2000_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gaelco2_state, irq6_line_hold) + M68000(config, m_maincpu, XTAL(11'059'200)); /* or from the 34MHz? (34MHz drives the CG-1V-149 PLD?) */ + m_maincpu->set_addrmap(AS_PROGRAM, &gaelco2_state::play2000_map); + m_maincpu->set_vblank_int("screen", FUNC(gaelco2_state::irq6_line_hold)); // MCFG_DEVICE_ADD("gaelco_ds5002fp", GAELCO_DS5002FP, XTAL(11'059'200)) /* 11.0592MHz */ // MCFG_DEVICE_ADDRESS_MAP(0, mcu_hostmem_map) /* video hardware */ - MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM16) + BUFFERED_SPRITERAM16(config, m_spriteram); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59.1) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(64*16, 32*16) - MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram16_device, vblank_copy_rising)) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(59.1); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(64*16, 32*16); + screen.set_visarea(0, 384-1, 16, 256-1); + screen.set_screen_update(FUNC(gaelco2_state::screen_update_gaelco2)); + screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram16_device::vblank_copy_rising)); + screen.set_palette(m_palette); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_0x0200000) - MCFG_PALETTE_ADD("palette", 4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ + GFXDECODE(config, m_gfxdecode, m_palette, gfx_0x0200000); + PALETTE(config, m_palette, 4096*16 - 16); /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2) @@ -748,12 +751,12 @@ MACHINE_CONFIG_START(gaelco2_state::play2000) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("gaelco", GAELCO_GAE1, 0) - MCFG_GAELCO_SND_DATA("gfx1") - MCFG_GAELCO_BANKS(1 * 0x0080000, 1 * 0x0080000, 1 * 0x0080000, 1 * 0x0080000) // ? - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) -MACHINE_CONFIG_END + gaelco_gae1_device &gaelco(GAELCO_GAE1(config, "gaelco")); /* unused? ROMs contain no sound data */ + gaelco.set_snd_data_tag("gfx1"); + gaelco.set_bank_offsets(1 * 0x0080000, 1 * 0x0080000, 1 * 0x0080000, 1 * 0x0080000); // ? + gaelco.add_route(0, "lspeaker", 1.0); + gaelco.add_route(1, "rspeaker", 1.0); +} /*============================================================================ @@ -817,13 +820,14 @@ static INPUT_PORTS_START( bang ) PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, -6.0 / 240, 0) PORT_SENSITIVITY(35) PORT_KEYDELTA(15) PORT_PLAYER(2) INPUT_PORTS_END -MACHINE_CONFIG_START(bang_state::bang) +void bang_state::bang(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(30'000'000) / 2) /* 15 MHz */ - MCFG_DEVICE_PROGRAM_MAP(bang_map) - MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", bang_state, bang_irq, "screen", 0, 1) + M68000(config, m_maincpu, XTAL(30'000'000) / 2); /* 15 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &bang_state::bang_map); + TIMER(config, "scantimer").configure_scanline(FUNC(bang_state::bang_irq), "screen", 0, 1); - EEPROM_93C66_16BIT(config, "eeprom"); + EEPROM_93C66_16BIT(config, m_eeprom); LS259(config, m_mainlatch); m_mainlatch->q_out_cb<0>().set(FUNC(gaelco2_state::coin1_counter_w)); @@ -833,19 +837,19 @@ MACHINE_CONFIG_START(bang_state::bang) m_mainlatch->q_out_cb<6>().set("eeprom", FUNC(eeprom_serial_93cxx_device::cs_write)); /* EEPROM chip select */ /* video hardware */ - MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM16) + BUFFERED_SPRITERAM16(config, m_spriteram); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59.1) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(64*16, 32*16) - MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram16_device, vblank_copy_rising)) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(59.1); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(64*16, 32*16); + screen.set_visarea(0, 320-1, 16, 256-1); + screen.set_screen_update(FUNC(gaelco2_state::screen_update_gaelco2)); + screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram16_device::vblank_copy_rising)); + screen.set_palette(m_palette); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_0x0200000) - MCFG_PALETTE_ADD("palette", 4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ + GFXDECODE(config, m_gfxdecode, m_palette, gfx_0x0200000); + PALETTE(config, m_palette, 4096*16 - 16); /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2) @@ -853,12 +857,12 @@ MACHINE_CONFIG_START(bang_state::bang) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("gaelco", GAELCO_CG1V, 0) - MCFG_GAELCO_SND_DATA("gfx1") - MCFG_GAELCO_BANKS(0 * 0x0200000, 1 * 0x0200000, 2 * 0x0200000, 3 * 0x0200000) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) -MACHINE_CONFIG_END + gaelco_cg1v_device &gaelco(GAELCO_CG1V(config, "gaelco")); + gaelco.set_snd_data_tag("gfx1"); + gaelco.set_bank_offsets(0 * 0x0200000, 1 * 0x0200000, 2 * 0x0200000, 3 * 0x0200000); + gaelco.add_route(0, "lspeaker", 1.0); + gaelco.add_route(1, "rspeaker", 1.0); +} /* @@ -1064,26 +1068,27 @@ static INPUT_PORTS_START( alighunt ) PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END -MACHINE_CONFIG_START(gaelco2_state::alighunt) +void gaelco2_state::alighunt(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000) / 2) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(alighunt_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gaelco2_state, irq6_line_hold) + M68000(config, m_maincpu, XTAL(24'000'000) / 2); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &gaelco2_state::alighunt_map); + m_maincpu->set_vblank_int("screen", FUNC(gaelco2_state::irq6_line_hold)); /* video hardware */ - MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM16) + BUFFERED_SPRITERAM16(config, m_spriteram); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59.1) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(64*16, 32*16) - MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram16_device, vblank_copy_rising)) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(59.1); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(64*16, 32*16); + screen.set_visarea(0, 320-1, 16, 256-1); + screen.set_screen_update(FUNC(gaelco2_state::screen_update_gaelco2)); + screen.screen_vblank().set("spriteram", FUNC(buffered_spriteram16_device::vblank_copy_rising)); + screen.set_palette(m_palette); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_0x0400000) - MCFG_PALETTE_ADD("palette", 4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ + GFXDECODE(config, m_gfxdecode, m_palette, gfx_0x0400000); + PALETTE(config, m_palette, 4096*16 - 16); /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2) @@ -1091,18 +1096,18 @@ MACHINE_CONFIG_START(gaelco2_state::alighunt) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("gaelco", GAELCO_GAE1, 0) - MCFG_GAELCO_SND_DATA("gfx1") - MCFG_GAELCO_BANKS(0 * 0x0400000, 1 * 0x0400000, 2 * 0x0400000, 3 * 0x0400000) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) -MACHINE_CONFIG_END + gaelco_gae1_device &gaelco(GAELCO_GAE1(config, "gaelco")); + gaelco.set_snd_data_tag("gfx1"); + gaelco.set_bank_offsets(0 * 0x0400000, 1 * 0x0400000, 2 * 0x0400000, 3 * 0x0400000); + gaelco.add_route(0, "lspeaker", 1.0); + gaelco.add_route(1, "rspeaker", 1.0); +} -MACHINE_CONFIG_START(gaelco2_state::alighunt_d5002fp) +void gaelco2_state::alighunt_d5002fp(machine_config &config) +{ alighunt(config); - MCFG_DEVICE_ADD("gaelco_ds5002fp", GAELCO_DS5002FP, XTAL(24'000'000) / 2) /* 12 MHz */ - MCFG_DEVICE_ADDRESS_MAP(0, mcu_hostmem_map) -MACHINE_CONFIG_END + GAELCO_DS5002FP(config, "gaelco_ds5002fp", XTAL(24'000'000) / 2).set_addrmap(0, &gaelco2_state::mcu_hostmem_map); /* 12 MHz */ +} /* PCB Layout: @@ -1363,11 +1368,12 @@ static INPUT_PORTS_START( touchgo ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE4 ) PORT_TOGGLE INPUT_PORTS_END -MACHINE_CONFIG_START(gaelco2_state::touchgo) +void gaelco2_state::touchgo(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(32'000'000) / 2) /* 16 MHz */ - MCFG_DEVICE_PROGRAM_MAP(touchgo_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("lscreen", gaelco2_state, irq6_line_hold) + M68000(config, m_maincpu, XTAL(32'000'000) / 2); /* 16 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &gaelco2_state::touchgo_map); + m_maincpu->set_vblank_int("lscreen", FUNC(gaelco2_state::irq6_line_hold)); LS259(config, m_mainlatch); // IC6 m_mainlatch->q_out_cb<0>().set(FUNC(gaelco2_state::coin1_counter_w)); @@ -1376,27 +1382,27 @@ MACHINE_CONFIG_START(gaelco2_state::touchgo) m_mainlatch->q_out_cb<3>().set(FUNC(gaelco2_state::coin4_counter_w)); /* video hardware */ - MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM16) - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_0x0400000) - MCFG_PALETTE_ADD("palette", 4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ + BUFFERED_SPRITERAM16(config, m_spriteram); + GFXDECODE(config, m_gfxdecode, m_palette, gfx_0x0400000); + PALETTE(config, m_palette, 4096*16 - 16); /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ config.set_default_layout(layout_dualhsxs); - MCFG_SCREEN_ADD("lscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59.1) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(64*16, 32*16) - MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 16, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2_left) - MCFG_SCREEN_PALETTE("palette") - - MCFG_SCREEN_ADD("rscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59.1) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(64*16, 32*16) - MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 16, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2_right) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram16_device, vblank_copy_rising)) - MCFG_SCREEN_PALETTE("palette") + screen_device &lscreen(SCREEN(config, "lscreen", SCREEN_TYPE_RASTER)); + lscreen.set_refresh_hz(59.1); + lscreen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + lscreen.set_size(64*16, 32*16); + lscreen.set_visarea(0, 480-1, 16, 256-1); + lscreen.set_screen_update(FUNC(gaelco2_state::screen_update_gaelco2_left)); + lscreen.set_palette(m_palette); + + screen_device &rscreen(SCREEN(config, "rscreen", SCREEN_TYPE_RASTER)); + rscreen.set_refresh_hz(59.1); + rscreen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + rscreen.set_size(64*16, 32*16); + rscreen.set_visarea(0, 480-1, 16, 256-1); + rscreen.set_screen_update(FUNC(gaelco2_state::screen_update_gaelco2_right)); + rscreen.screen_vblank().set("spriteram", FUNC(buffered_spriteram16_device::vblank_copy_rising)); + rscreen.set_palette(m_palette); MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2_dual) @@ -1406,18 +1412,18 @@ MACHINE_CONFIG_START(gaelco2_state::touchgo) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("gaelco", GAELCO_GAE1, 0) - MCFG_GAELCO_SND_DATA("gfx1") - MCFG_GAELCO_BANKS(0 * 0x0400000, 1 * 0x0400000, 0, 0) - MCFG_SOUND_ROUTE(0, "rspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) -MACHINE_CONFIG_END + gaelco_gae1_device &gaelco(GAELCO_GAE1(config, "gaelco")); + gaelco.set_snd_data_tag("gfx1"); + gaelco.set_bank_offsets(0 * 0x0400000, 1 * 0x0400000, 0, 0); + gaelco.add_route(0, "rspeaker", 1.0); + gaelco.add_route(1, "lspeaker", 1.0); +} -MACHINE_CONFIG_START(gaelco2_state::touchgo_d5002fp) +void gaelco2_state::touchgo_d5002fp(machine_config &config) +{ touchgo(config); - MCFG_DEVICE_ADD("gaelco_ds5002fp", GAELCO_DS5002FP, XTAL(32'000'000) / 2) /* 16 MHz */ - MCFG_DEVICE_ADDRESS_MAP(0, mcu_hostmem_map) -MACHINE_CONFIG_END + GAELCO_DS5002FP(config, "gaelco_ds5002fp", XTAL(32'000'000) / 2).set_addrmap(0, &gaelco2_state::mcu_hostmem_map); /* 16 MHz */ +} /* PCB Layout: @@ -1667,13 +1673,14 @@ static INPUT_PORTS_START( snowboar ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_CUSTOM ) INPUT_PORTS_END -MACHINE_CONFIG_START(gaelco2_state::snowboar) +void gaelco2_state::snowboar(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(30'000'000) / 2) /* 15 MHz */ - MCFG_DEVICE_PROGRAM_MAP(snowboar_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gaelco2_state, irq6_line_hold) + M68000(config, m_maincpu, XTAL(30'000'000) / 2); /* 15 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &gaelco2_state::snowboar_map); + m_maincpu->set_vblank_int("screen", FUNC(gaelco2_state::irq6_line_hold)); - EEPROM_93C66_16BIT(config, "eeprom"); + EEPROM_93C66_16BIT(config, m_eeprom); LS259(config, m_mainlatch); m_mainlatch->q_out_cb<0>().set(FUNC(gaelco2_state::coin1_counter_w)); @@ -1683,19 +1690,19 @@ MACHINE_CONFIG_START(gaelco2_state::snowboar) m_mainlatch->q_out_cb<6>().set("eeprom", FUNC(eeprom_serial_93cxx_device::cs_write)); /* EEPROM chip select */ /* video hardware */ - MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM16) + BUFFERED_SPRITERAM16(config, m_spriteram); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59.1) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(64*16, 32*16) - MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram16_device, vblank_copy_rising)) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(59.1); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(64*16, 32*16); + screen.set_visarea(0, 384-1, 16, 256-1); + screen.set_screen_update(FUNC(gaelco2_state::screen_update_gaelco2)); + screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram16_device::vblank_copy_rising)); + screen.set_palette(m_palette); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_0x0400000) - MCFG_PALETTE_ADD("palette", 4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ + GFXDECODE(config, m_gfxdecode, m_palette, gfx_0x0400000); + PALETTE(config, m_palette, 4096*16 - 16); /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2) @@ -1703,20 +1710,21 @@ MACHINE_CONFIG_START(gaelco2_state::snowboar) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("gaelco", GAELCO_CG1V, 0) - MCFG_GAELCO_SND_DATA("gfx1") - MCFG_GAELCO_BANKS(0 * 0x0400000, 1 * 0x0400000, 0, 0) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) -MACHINE_CONFIG_END + gaelco_cg1v_device &gaelco(GAELCO_CG1V(config, "gaelco")); + gaelco.set_snd_data_tag("gfx1"); + gaelco.set_bank_offsets(0 * 0x0400000, 1 * 0x0400000, 0, 0); + gaelco.add_route(0, "lspeaker", 1.0); + gaelco.add_route(1, "rspeaker", 1.0); +} -MACHINE_CONFIG_START(gaelco2_state::maniacsqs) +void gaelco2_state::maniacsqs(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000) / 2) /* 12 MHz - see PCB layout above with ROM set */ - MCFG_DEVICE_PROGRAM_MAP(snowboar_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gaelco2_state, irq6_line_hold) + M68000(config, m_maincpu, XTAL(24'000'000) / 2); /* 12 MHz - see PCB layout above with ROM set */ + m_maincpu->set_addrmap(AS_PROGRAM, &gaelco2_state::snowboar_map); + m_maincpu->set_vblank_int("screen", FUNC(gaelco2_state::irq6_line_hold)); - EEPROM_93C66_16BIT(config, "eeprom"); + EEPROM_93C66_16BIT(config, m_eeprom); LS259(config, m_mainlatch); m_mainlatch->q_out_cb<0>().set(FUNC(gaelco2_state::coin1_counter_w)); @@ -1726,19 +1734,19 @@ MACHINE_CONFIG_START(gaelco2_state::maniacsqs) m_mainlatch->q_out_cb<6>().set("eeprom", FUNC(eeprom_serial_93cxx_device::cs_write)); /* EEPROM chip select */ /* video hardware */ - MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM16) + BUFFERED_SPRITERAM16(config, m_spriteram); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59.1) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(64*16, 32*16) - MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram16_device, vblank_copy_rising)) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(59.1); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(64*16, 32*16); + screen.set_visarea(0, 320-1, 16, 256-1); + screen.set_screen_update(FUNC(gaelco2_state::screen_update_gaelco2)); + screen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram16_device::vblank_copy_rising)); + screen.set_palette(m_palette); - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_0x0080000) - MCFG_PALETTE_ADD("palette", 4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ + GFXDECODE(config, m_gfxdecode, m_palette, gfx_0x0080000); + PALETTE(config, m_palette, 4096*16 - 16); /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2) @@ -1746,12 +1754,12 @@ MACHINE_CONFIG_START(gaelco2_state::maniacsqs) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("gaelco", GAELCO_GAE1, 0) - MCFG_GAELCO_SND_DATA("gfx1") - MCFG_GAELCO_BANKS(0 * 0x0080000, 1 * 0x0080000, 0, 0) - MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) -MACHINE_CONFIG_END + gaelco_gae1_device &gaelco(GAELCO_GAE1(config, "gaelco")); + gaelco.set_snd_data_tag("gfx1"); + gaelco.set_bank_offsets(0 * 0x0080000, 1 * 0x0080000, 0, 0); + gaelco.add_route(0, "lspeaker", 1.0); + gaelco.add_route(1, "rspeaker", 1.0); +} /* @@ -1956,14 +1964,14 @@ static INPUT_PORTS_START( wrally2 ) PORT_BIT( 0xff, 0x8A, IPT_PADDLE_V ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(25) PORT_REVERSE PORT_NAME("P2 Wheel") INPUT_PORTS_END -MACHINE_CONFIG_START(wrally2_state::wrally2) +void wrally2_state::wrally2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(26'000'000) / 2) /* 13 MHz */ - MCFG_DEVICE_PROGRAM_MAP(wrally2_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("lscreen", gaelco2_state, irq6_line_hold) + M68000(config, m_maincpu, XTAL(26'000'000) / 2); /* 13 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &wrally2_state::wrally2_map); + m_maincpu->set_vblank_int("lscreen", FUNC(gaelco2_state::irq6_line_hold)); - MCFG_DEVICE_ADD("gaelco_ds5002fp", GAELCO_DS5002FP, XTAL(26'000'000) / 2) /* 13 MHz */ - MCFG_DEVICE_ADDRESS_MAP(0, mcu_hostmem_map) + GAELCO_DS5002FP(config, "gaelco_ds5002fp", XTAL(26'000'000) / 2).set_addrmap(0, &wrally2_state::mcu_hostmem_map); /* 13 MHz */ LS259(config, m_mainlatch); // IC6 m_mainlatch->q_out_cb<0>().set(FUNC(gaelco2_state::coin1_counter_w)); @@ -1972,28 +1980,27 @@ MACHINE_CONFIG_START(wrally2_state::wrally2) m_mainlatch->q_out_cb<6>().set(FUNC(wrally2_state::wrally2_adc_cs)); /* ADCs chip select line */ /* video hardware */ - MCFG_DEVICE_ADD("spriteram", BUFFERED_SPRITERAM16) - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_0x0200000) - MCFG_PALETTE_ADD("palette", 4096*16 - 16) /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ + BUFFERED_SPRITERAM16(config, m_spriteram); + GFXDECODE(config, m_gfxdecode, m_palette, gfx_0x0200000); + PALETTE(config, m_palette, 4096*16 - 16); /* game's palette is 4096 but we allocate 15 more for shadows & highlights */ config.set_default_layout(layout_dualhsxs); - MCFG_SCREEN_ADD("lscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59.1) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(384, 32*16) - MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2_left) - MCFG_SCREEN_PALETTE("palette") - - MCFG_SCREEN_ADD("rscreen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59.1) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(384, 32*16) - MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2_right) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE("spriteram", buffered_spriteram16_device, vblank_copy_rising)) - MCFG_SCREEN_PALETTE("palette") - + screen_device &lscreen(SCREEN(config, "lscreen", SCREEN_TYPE_RASTER)); + lscreen.set_refresh_hz(59.1); + lscreen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + lscreen.set_size(384, 32*16); + lscreen.set_visarea(0, 384-1, 16, 256-1); + lscreen.set_screen_update(FUNC(gaelco2_state::screen_update_gaelco2_left)); + lscreen.set_palette(m_palette); + + screen_device &rscreen(SCREEN(config, "rscreen", SCREEN_TYPE_RASTER)); + rscreen.set_refresh_hz(59.1); + rscreen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + rscreen.set_size(384, 32*16); + rscreen.set_visarea(0, 384-1, 16, 256-1); + rscreen.set_screen_update(FUNC(gaelco2_state::screen_update_gaelco2_right)); + rscreen.screen_vblank().set(m_spriteram, FUNC(buffered_spriteram16_device::vblank_copy_rising)); + rscreen.set_palette(m_palette); MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2_dual) @@ -2003,12 +2010,12 @@ MACHINE_CONFIG_START(wrally2_state::wrally2) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("gaelco", GAELCO_GAE1, 0) - MCFG_GAELCO_SND_DATA("gfx1") - MCFG_GAELCO_BANKS(0 * 0x0200000, 1 * 0x0200000, 0, 0) - MCFG_SOUND_ROUTE(0, "rspeaker", 1.0) - MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) -MACHINE_CONFIG_END + gaelco_gae1_device &gaelco(GAELCO_GAE1(config, "gaelco")); + gaelco.set_snd_data_tag("gfx1"); + gaelco.set_bank_offsets(0 * 0x0200000, 1 * 0x0200000, 0, 0); + gaelco.add_route(0, "lspeaker", 1.0); + gaelco.add_route(1, "rspeaker", 1.0); +} /* PCB Layout: |