From 74994d2f8bf26c6429c00883c98119bd564840fe Mon Sep 17 00:00:00 2001 From: Robbbert Date: Sun, 13 Mar 2022 11:23:59 +1100 Subject: gts80b,gts3: added more sound --- src/mame/audio/gottlieb.cpp | 74 +++++++++++++++++++++++++++----- src/mame/audio/gottlieb.h | 32 +++++++++++++- src/mame/drivers/gts3.cpp | 94 +++++++++++++++++++++-------------------- src/mame/drivers/gts80b.cpp | 101 +++++++++++++++++++++++++------------------- 4 files changed, 199 insertions(+), 102 deletions(-) diff --git a/src/mame/audio/gottlieb.cpp b/src/mame/audio/gottlieb.cpp index c5079540fbd..93e56116d9c 100644 --- a/src/mame/audio/gottlieb.cpp +++ b/src/mame/audio/gottlieb.cpp @@ -32,6 +32,7 @@ constexpr XTAL SOUND2_SPEECH_CLOCK(3'120'000); DEFINE_DEVICE_TYPE(GOTTLIEB_SOUND_PIN2, gottlieb_sound_p2_device, "gotsndp2", "Gottlieb Multi-mode Sound Board") DEFINE_DEVICE_TYPE(GOTTLIEB_SOUND_PIN4, gottlieb_sound_p4_device, "gotsndp4", "Gottlieb Sound pin. 4") DEFINE_DEVICE_TYPE(GOTTLIEB_SOUND_PIN5, gottlieb_sound_p5_device, "gotsndp5", "Gottlieb Sound pin. 5") +DEFINE_DEVICE_TYPE(GOTTLIEB_SOUND_PIN6, gottlieb_sound_p6_device, "gotsndp6", "Gottlieb Sound pin. 6") DEFINE_DEVICE_TYPE(GOTTLIEB_SOUND_REV1, gottlieb_sound_r1_device, "gotsndr1", "Gottlieb Sound rev. 1") DEFINE_DEVICE_TYPE(GOTTLIEB_SOUND_REV1_VOTRAX, gottlieb_sound_r1_with_votrax_device, "gotsndr1vt", "Gottlieb Sound rev. 1 with Votrax") DEFINE_DEVICE_TYPE(GOTTLIEB_SOUND_REV2, gottlieb_sound_r2_device, "gotsndr2", "Gottlieb Sound rev. 2") @@ -824,7 +825,7 @@ void gottlieb_sound_p4_device::p4_ymap(address_map &map) map.unmap_value_high(); map(0x0000, 0x07ff).mirror(0x1800).ram(); // 6116 @ H3 map(0x2000, 0x2000).mirror(0x1fff).nopw(); // unemulated variable butterworth filter (HC592, LS74, MF-4) - map(0x4000, 0x4000).mirror(0x1fff).nopw(); // writes lots of stuff to the 'expand' socket (unused?) + map(0x4000, 0x4000).nopr(); map(0x6000, 0x6000).mirror(0x07ff).w(FUNC(gottlieb_sound_p4_device::nmi_rate_w)); map(0x6800, 0x6800).mirror(0x07ff).r(FUNC(gottlieb_sound_p4_device::speech_data_r)); map(0x7000, 0x7000).mirror(0x07ff).rw(FUNC(gottlieb_sound_p4_device::signal_audio_nmi_r), FUNC(gottlieb_sound_p4_device::signal_audio_nmi_w)); @@ -920,31 +921,82 @@ void gottlieb_sound_p4_device::device_timer(emu_timer &timer, device_timer_id id //************************************************************************** -// PIN5 SOUND BOARD: same as p4 + extra 6502 + AD7528 +// PIN5 SOUND BOARD: same as p4 + YM2151 //************************************************************************** //------------------------------------------------- -// gottlieb_sound_r2_device - constructor +// gottlieb_sound_p5_device - constructor //------------------------------------------------- gottlieb_sound_p5_device::gottlieb_sound_p5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : gottlieb_sound_p4_device(mconfig, GOTTLIEB_SOUND_PIN5, tag, owner, clock) + , m_ym2151(*this, "ym2151") +{ +} + +gottlieb_sound_p5_device::gottlieb_sound_p5_device( + const machine_config &mconfig, + device_type type, + const char *tag, + device_t *owner, + uint32_t clock) + : gottlieb_sound_p4_device(mconfig, type, tag, owner, clock) + , m_ym2151(*this, "ym2151") +{ +} + +void gottlieb_sound_p5_device::p5_ymap(address_map &map) +{ + gottlieb_sound_p4_device::p4_ymap(map); + map.unmap_value_high(); + map(0x4000, 0x4000).mirror(0x1fff).lw8(NAME([this] (u8 data) + { if (BIT(m_speech_control, 7)) m_ym2151->data_w(data); else m_ym2151->address_w(data); } )); +} + +//------------------------------------------------- +// device_add_mconfig - add device configuration +//------------------------------------------------- + +void gottlieb_sound_p5_device::device_add_mconfig(machine_config &config) { + gottlieb_sound_p4_device::device_add_mconfig(config); + m_ycpu->set_addrmap(AS_PROGRAM, &gottlieb_sound_p5_device::p5_ymap); + + YM2151(config, m_ym2151, SOUND2_CLOCK).add_route(ALL_OUTPUTS, *this, 0.5); } +void gottlieb_sound_p5_device::device_start() +{ + gottlieb_sound_p4_device::device_start(); +} -uint8_t gottlieb_sound_p5_device::d2_data_r() + +//************************************************************************** +// PIN6 SOUND BOARD: same as p5 + extra 6502 + AD7528 +//************************************************************************** + +//------------------------------------------------- +// gottlieb_sound_p6_device - constructor +//------------------------------------------------- + +gottlieb_sound_p6_device::gottlieb_sound_p6_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : gottlieb_sound_p5_device(mconfig, GOTTLIEB_SOUND_PIN6, tag, owner, clock) +{ +} + + +uint8_t gottlieb_sound_p6_device::d2_data_r() { if (!machine().side_effects_disabled()) m_dcpu2->set_input_line(M6502_IRQ_LINE, CLEAR_LINE); return m_dcpu2_latch; } -void gottlieb_sound_p5_device::p5_dmap(address_map &map) +void gottlieb_sound_p6_device::p6_dmap(address_map &map) { map.unmap_value_high(); map(0x0000, 0x07ff).mirror(0x3800).ram(); - map(0x4000, 0x4000).mirror(0x3fff).r(FUNC(gottlieb_sound_p5_device::d2_data_r)); + map(0x4000, 0x4000).mirror(0x3fff).r(FUNC(gottlieb_sound_p6_device::d2_data_r)); map(0x8000, 0x8000).mirror(0x3ffe).w("dacvol2", FUNC(dac_byte_interface::data_w)); map(0x8001, 0x8001).mirror(0x3ffe).w("dac2", FUNC(dac_byte_interface::data_w)); map(0x8000, 0xffff).rom(); @@ -954,13 +1006,13 @@ void gottlieb_sound_p5_device::p5_dmap(address_map &map) // device_add_mconfig - add device configuration //------------------------------------------------- -void gottlieb_sound_p5_device::device_add_mconfig(machine_config &config) +void gottlieb_sound_p6_device::device_add_mconfig(machine_config &config) { - gottlieb_sound_p4_device::device_add_mconfig(config); + gottlieb_sound_p5_device::device_add_mconfig(config); // extra cpu + dac M6502(config, m_dcpu2, SOUND2_CLOCK/2); - m_dcpu2->set_addrmap(AS_PROGRAM, &gottlieb_sound_p5_device::p5_dmap); + m_dcpu2->set_addrmap(AS_PROGRAM, &gottlieb_sound_p6_device::p6_dmap); AD7528(config, "dac2", 0).add_route(ALL_OUTPUTS, *this, 0.5); AD7528(config, "dacvol2", 0) @@ -969,7 +1021,7 @@ void gottlieb_sound_p5_device::device_add_mconfig(machine_config &config) .add_route(0, "dac2", -1.0, DAC_INPUT_RANGE_LO); } -void gottlieb_sound_p5_device::device_start() +void gottlieb_sound_p6_device::device_start() { - gottlieb_sound_p4_device::device_start(); + gottlieb_sound_p5_device::device_start(); } diff --git a/src/mame/audio/gottlieb.h b/src/mame/audio/gottlieb.h index 91550ba38c2..a9dfced8803 100644 --- a/src/mame/audio/gottlieb.h +++ b/src/mame/audio/gottlieb.h @@ -13,6 +13,7 @@ #include "sound/dac.h" #include "sound/sp0250.h" #include "sound/votrax.h" +#include "sound/ymopm.h" //************************************************************************** @@ -22,6 +23,7 @@ DECLARE_DEVICE_TYPE(GOTTLIEB_SOUND_PIN2, gottlieb_sound_p2_device) DECLARE_DEVICE_TYPE(GOTTLIEB_SOUND_PIN4, gottlieb_sound_p4_device) DECLARE_DEVICE_TYPE(GOTTLIEB_SOUND_PIN5, gottlieb_sound_p5_device) +DECLARE_DEVICE_TYPE(GOTTLIEB_SOUND_PIN6, gottlieb_sound_p6_device) DECLARE_DEVICE_TYPE(GOTTLIEB_SOUND_REV1, gottlieb_sound_r1_device) DECLARE_DEVICE_TYPE(GOTTLIEB_SOUND_REV1_VOTRAX, gottlieb_sound_r1_with_votrax_device) DECLARE_DEVICE_TYPE(GOTTLIEB_SOUND_REV2, gottlieb_sound_r2_device) @@ -236,20 +238,46 @@ private: // ======================> gottlieb_sound_p5_device -// same as p4 plus an extra dac, same as existing audiocpu. For bonebusters. +// same as p5 plus a YM2151 in the expansion socket class gottlieb_sound_p5_device : public gottlieb_sound_p4_device { public: // construction/destruction gottlieb_sound_p5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); +protected: + gottlieb_sound_p5_device( + const machine_config &mconfig, + device_type type, + const char *tag, + device_t *owner, + uint32_t clock); + + // device-level overrides + virtual void device_add_mconfig(machine_config &config) override; + virtual void device_start() override; + +private: + void p5_ymap(address_map &map); + optional_device m_ym2151; +}; + +// ======================> gottlieb_sound_p6_device + +// same as p5 plus an extra dac, same as existing audiocpu. For bonebusters. +class gottlieb_sound_p6_device : public gottlieb_sound_p5_device +{ +public: + // construction/destruction + gottlieb_sound_p6_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); + protected: // device-level overrides virtual void device_add_mconfig(machine_config &config) override; virtual void device_start() override; private: - void p5_dmap(address_map &map); + void p6_dmap(address_map &map); uint8_t d2_data_r(); }; diff --git a/src/mame/drivers/gts3.cpp b/src/mame/drivers/gts3.cpp index 8d411bcafc6..c7c7e962a79 100644 --- a/src/mame/drivers/gts3.cpp +++ b/src/mame/drivers/gts3.cpp @@ -50,14 +50,11 @@ Caribbean Cruise C102 1, enter, hold \ and right until message goes \ Status: -- Display works -- Attract mode works -- Can setup -- Can play a game +- All games are playable +- Various sounds are missing in some games, usually because the cpu concerned runs into the weeds. ToDo: - Sound -- Mechanical sounds - Display flickers a bit *****************************************************************************************************/ @@ -82,14 +79,14 @@ public: , m_maincpu(*this, "maincpu") , m_u4(*this, "u4") , m_u5(*this, "u5") - , m_p4_sound(*this, "p4sound") + , m_p5_sound(*this, "p5sound") , m_io_keyboard(*this, "X%d", 0U) , m_digits(*this, "digit%d", 0U) , m_io_outputs(*this, "out%d", 0U) { } void p0(machine_config &config); // no sound card assigned yet - void p4(machine_config &config); // p4 sound card + void p5(machine_config &config); // p5 sound card DECLARE_INPUT_CHANGED_MEMBER(test_inp); private: @@ -114,7 +111,7 @@ private: required_device m_maincpu; required_device m_u4; required_device m_u5; - optional_device m_p4_sound; + optional_device m_p5_sound; required_ioport_array<12> m_io_keyboard; output_finder<40> m_digits; output_finder<128> m_io_outputs; // 32 solenoids + 96 lamps @@ -123,11 +120,11 @@ private: void gts3_state::mem_map(address_map &map) { - map(0x0000, 0x1fff).ram().share("nvram"); + map(0x0000, 0x1fff).ram().share("nvram"); // sch shows a 6164 labelled as 6116LP, parts list says 6116 map(0x2000, 0x200f).mirror(0x1f80).m(m_u4, FUNC(via6522_device::map)); map(0x2010, 0x201f).mirror(0x1f80).m(m_u5, FUNC(via6522_device::map)); map(0x2020, 0x2023).mirror(0x1f8c).w(FUNC(gts3_state::segbank_w)); - map(0x2030, 0x2033).mirror(0x1f8c).w(FUNC(gts3_state::solenoid_w)); + map(0x2030, 0x2033).mirror(0x1f8c).w(FUNC(gts3_state::solenoid_w)).nopr(); // writing here causes a read?? lca @8CE7 map(0x2040, 0x2040).mirror(0x1f80).w(FUNC(gts3_state::lampret_w)); map(0x2041, 0x207f).mirror(0x1f80).nopw(); // AUX: purpose unknown map(0x4000, 0xffff).rom(); @@ -254,7 +251,14 @@ void gts3_state::solenoid_w(offs_t offset, u8 data) { for (u8 i = 0; i < 8; i++) m_io_outputs[offset*8+i] = BIT(data, i); - // Add knocker + // Mechanical sounds + if (offset == 3) + { + if (data & 0x18) + m_samples->start(0, 9); // outhole + if (data & 0x20) + m_samples->start(1, 6); // knocker + } } void gts3_state::segbank_w(offs_t offset, u8 data) @@ -306,8 +310,8 @@ u8 gts3_state::u4b_r() void gts3_state::u5a_w(u8 data) { - if (m_p4_sound) - m_p4_sound->write(data); + if (m_p5_sound) + m_p5_sound->write(data); } void gts3_state::machine_start() @@ -367,11 +371,11 @@ void gts3_state::p0(machine_config &config) SPEAKER(config, "mono").front_center(); } -void gts3_state::p4(machine_config &config) +void gts3_state::p5(machine_config &config) { p0(config); - GOTTLIEB_SOUND_PIN4(config, m_p4_sound, 0).add_route(ALL_OUTPUTS, "mono", 1.00); + GOTTLIEB_SOUND_PIN5(config, m_p5_sound, 0).add_route(ALL_OUTPUTS, "mono", 1.00); } /*------------------------------------------------------------------- @@ -381,10 +385,10 @@ ROM_START(bellring) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD("br_gprom.bin", 0x0000, 0x10000, CRC(a9a59b36) SHA1(ca6d0e54a5c85ef72485975c632660831a3b8c82)) - ROM_REGION(0x10000, "cpu3", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("br_drom1.bin", 0x8000, 0x8000, CRC(99f38229) SHA1(f63d743e63e88728e8d53320b21b2fda1b6385f8)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("br_yrom1.bin", 0x8000, 0x8000, CRC(d5aab379) SHA1(b3995f8aa2e54f91f2a0fd010c807fbfbf9ae847)) ROM_END @@ -419,10 +423,10 @@ ROM_START(carhop) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD("gprom.bin", 0x0000, 0x10000, CRC(164b2c9c) SHA1(49cf7e3a3acb5de8dbfd2ad22f8bd9a352ff2899)) - ROM_REGION(0x10000, "cpu3", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("drom1.bin", 0x8000, 0x8000, CRC(9dec74e7) SHA1(8234bdca5536d30dc1eabcb3a5505d2fd824ce0f)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("yrom1.bin", 0x8000, 0x8000, CRC(831ee812) SHA1(57056cde36b17cb7d7f34275b1bb5dc3d52bde4e)) ROM_END @@ -476,10 +480,10 @@ ROM_START(deadweap) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD("gprom.bin", 0x0000, 0x10000, CRC(07d84b32) SHA1(25d8772a5c8655b3406df94563076719b07129cd)) - ROM_REGION(0x10000, "cpu3", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("drom1.bin", 0x8000, 0x8000, CRC(f55dd7ec) SHA1(fe306c40bf3d98e4076d0d8a935c3671469d4cff)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("yrom1.bin", 0x8000, 0x8000, CRC(93369ed3) SHA1(3340478ffc00cf9991beabd4f0ecd89d0c88965e)) ROM_END @@ -490,10 +494,10 @@ ROM_START(hoops) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD("gprom.bin", 0x0000, 0x10000, CRC(78391273) SHA1(dbf91597ce2910e526fb5e82355ad862706b4975)) - ROM_REGION(0x10000, "cpu3", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("drom1.bin", 0x8000, 0x8000, CRC(e72c00eb) SHA1(5b9f85083b38d916afb0f9b72b061501504725ff)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("yrom1.bin", 0x8000, 0x8000, CRC(9718b958) SHA1(bac806267bab4852c0f3fdb48f8d872992f61ace)) ROM_END @@ -504,10 +508,10 @@ ROM_START(lca) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD("gprom.bin", 0x8000, 0x8000, CRC(52957d70) SHA1(0c24d824b1aa966eb3af3db3ff02870ba463dcd6)) - ROM_REGION(0x10000, "p4sound:audiocpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("drom1.bin", 0x8000, 0x8000, CRC(a258d72d) SHA1(eeb4768c8b2f57509a088d3ac8d35aa34f2cfc2c)) - ROM_REGION(0x10000, "p4sound:speechcpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("yrom1.bin", 0x8000, 0x8000, CRC(20919ebb) SHA1(a2ea79863b41a04aa23ea596932825408cca64e3)) ROM_END @@ -515,10 +519,10 @@ ROM_START(lca2) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD("gprom2.bin", 0x8000, 0x8000, CRC(937a8426) SHA1(6bc2d1b0c3dc273577376654ba72b60febe32529)) - ROM_REGION(0x10000, "p4sound:audiocpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("drom1.bin", 0x8000, 0x8000, CRC(a258d72d) SHA1(eeb4768c8b2f57509a088d3ac8d35aa34f2cfc2c)) - ROM_REGION(0x10000, "p4sound:speechcpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("yrom1.bin", 0x8000, 0x8000, CRC(20919ebb) SHA1(a2ea79863b41a04aa23ea596932825408cca64e3)) ROM_END @@ -529,10 +533,10 @@ ROM_START(nudgeit) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD("gprom.bin", 0x0000, 0x10000, CRC(3d9e0309) SHA1(caaa28482e7f260668aa05b39b551acb8e4cc41a)) - ROM_REGION(0x10000, "cpu3", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("drom1.bin", 0x8000, 0x8000, CRC(ae0c4b1d) SHA1(c8aa409c9b54fd8ecf70eb2926f4e98fc5eb11fe)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("yrom1.bin", 0x8000, 0x8000, CRC(65fc2e60) SHA1(6377c220753d9e4b5c76d445056409526d95772f)) ROM_END @@ -563,10 +567,10 @@ ROM_START(silvslug) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD("gprom.bin", 0x0000, 0x10000, CRC(a6c524e2) SHA1(dc12dd8e814a37aada021f84c58475efe72cb846)) - ROM_REGION(0x10000, "cpu3", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("drom1.bin", 0x8000, 0x8000, CRC(eac3e1cc) SHA1(2725457231854e4f3d54fbba745b8fc6f55b1688)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("yrom1.bin", 0x8000, 0x8000, CRC(20bc9797) SHA1(5d17b5f0423d8854fb7c4816d53a223ecc7c50c6)) ROM_END @@ -597,10 +601,10 @@ ROM_START(tfight) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD("gprom.bin", 0x0000, 0x10000, CRC(43b3193a) SHA1(bd185fe67c147a6acca8e78da4b77c384124fc46)) - ROM_REGION(0x10000, "cpu3", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("drom1.bin", 0x8000, 0x8000, CRC(9514739f) SHA1(2794549f549d68e064a9a962a4e91fff7dcf0160)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("yrom1.bin", 0x8000, 0x8000, CRC(8591d421) SHA1(74402cf8b419e0cb05069851b0d5616e66b2f0a9)) ROM_END @@ -611,10 +615,10 @@ ROM_START(vegas) ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD("gprom.bin", 0x0000, 0x10000, CRC(48189981) SHA1(95144af4b222158becd4d5748d15b7b6c6021bd2)) - ROM_REGION(0x10000, "cpu3", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("drom1.bin", 0x8000, 0x8000, CRC(46eb5755) SHA1(94ec2d0cf41f68a8c3d7505186b11b4abb4803db)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("yrom1.bin", 0x8000, 0x8000, CRC(af1095f1) SHA1(06609085cd74b969e4f2ec962c427c5c42ebc6ff)) ROM_END @@ -650,16 +654,16 @@ ROM_END } // anonymous namespace -GAME(1989, lca, 0, p4, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Lights...Camera...Action!", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, lca2, lca, p4, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Lights...Camera...Action! (rev.2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, silvslug, 0, p0, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Silver Slugger", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, vegas, 0, p0, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Vegas", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, deadweap, 0, p0, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Deadly Weapon", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, tfight, 0, p0, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Title Fight", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, nudgeit, 0, p0, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Nudge-It", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1990, bellring, 0, p0, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Bell Ringer", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1991, carhop, 0, p0, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Car Hop", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1991, hoops, 0, p0, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Hoops", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, lca, 0, p5, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Lights...Camera...Action!", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, lca2, lca, p5, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Lights...Camera...Action! (rev.2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, silvslug, 0, p5, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Silver Slugger", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, vegas, 0, p5, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Vegas", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, deadweap, 0, p5, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Deadly Weapon", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, tfight, 0, p5, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Title Fight", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, nudgeit, 0, p5, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Nudge-It", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1990, bellring, 0, p5, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Bell Ringer", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1991, carhop, 0, p5, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Car Hop", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1991, hoops, 0, p5, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Hoops", MACHINE_IS_SKELETON_MECHANICAL) GAME(1991, cactjack, 0, p0, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Cactus Jack's", MACHINE_IS_SKELETON_MECHANICAL) GAME(1991, clas1812, 0, p0, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Class of 1812", MACHINE_IS_SKELETON_MECHANICAL) GAME(1991, surfnsaf, 0, p0, gts3, gts3_state, empty_init, ROT0, "Gottlieb", "Surf'n Safari", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/gts80b.cpp b/src/mame/drivers/gts80b.cpp index d40e9764b1b..527ac0f62d0 100644 --- a/src/mame/drivers/gts80b.cpp +++ b/src/mame/drivers/gts80b.cpp @@ -89,6 +89,7 @@ public: //, m_p3_sound(*this, "p3sound") , m_p4_sound(*this, "p4sound") , m_p5_sound(*this, "p5sound") + , m_p6_sound(*this, "p6sound") , m_r2_sound(*this, "r2sound") , m_digits(*this, "digit%d", 0U) , m_io_outputs(*this, "out%d", 0U) @@ -97,7 +98,8 @@ public: void p0(machine_config &config); // base config void p3(machine_config &config); // no schematic available void p4(machine_config &config); // same as r2 but bigger roms, no speech - void p5(machine_config &config); // bonebusters + void p5(machine_config &config); // same as p4 + YM2151 + void p6(machine_config &config); // bonebusters void r2(machine_config &config); // r2 (2x ay, spo250, dac) void master(machine_config &config); DECLARE_INPUT_CHANGED_MEMBER(slam_w); @@ -135,6 +137,7 @@ private: //optional_device m_p3_sound; optional_device m_p4_sound; optional_device m_p5_sound; + optional_device m_p6_sound; optional_device m_r2_sound; output_finder<40> m_digits; output_finder<57> m_io_outputs; // 8 solenoids, 1 outhole, 48 lamps @@ -470,6 +473,9 @@ void gts80b_state::port3a_w(u8 data) else if (m_p5_sound) m_p5_sound->write(sndcmd | m_soundex); + else + if (m_p6_sound) + m_p6_sound->write(sndcmd | m_soundex); // Solenoids group 1 if (!BIT(data, 5)) @@ -646,6 +652,13 @@ void gts80b_state::p5(machine_config &config) GOTTLIEB_SOUND_PIN5(config, m_p5_sound, 0).add_route(ALL_OUTPUTS, "mono", 1.00); } +void gts80b_state::p6(machine_config &config) +{ + p0(config); + + GOTTLIEB_SOUND_PIN6(config, m_p6_sound, 0).add_route(ALL_OUTPUTS, "mono", 1.00); +} + void gts80b_state::r2(machine_config &config) { p0(config); @@ -991,10 +1004,10 @@ ROM_START(badgirls) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "p4sound:audiocpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("drom1.snd", 0x8000, 0x8000, CRC(452dec20) SHA1(a9c41dfb2d83c5671ab96e946f13df774b567976)) - ROM_REGION(0x10000, "p4sound:speechcpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("yrom1.snd", 0x8000, 0x8000, CRC(ab3b8e2d) SHA1(b57a0b804b42b923bb102d295e3b8a69b1033d27)) ROM_END @@ -1009,10 +1022,10 @@ ROM_START(badgirlsf) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "p4sound:audiocpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("drom1.snd", 0x8000, 0x8000, CRC(452dec20) SHA1(a9c41dfb2d83c5671ab96e946f13df774b567976)) - ROM_REGION(0x10000, "p4sound:speechcpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("yrom1.snd", 0x8000, 0x8000, CRC(ab3b8e2d) SHA1(b57a0b804b42b923bb102d295e3b8a69b1033d27)) ROM_END @@ -1027,10 +1040,10 @@ ROM_START(badgirlsg) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "p4sound:audiocpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("drom1.snd", 0x8000, 0x8000, CRC(452dec20) SHA1(a9c41dfb2d83c5671ab96e946f13df774b567976)) - ROM_REGION(0x10000, "p4sound:speechcpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("yrom1.snd", 0x8000, 0x8000, CRC(ab3b8e2d) SHA1(b57a0b804b42b923bb102d295e3b8a69b1033d27)) ROM_END @@ -1048,10 +1061,10 @@ ROM_START(bighouse) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "p4sound:audiocpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("drom1.snd", 0x8000, 0x8000, CRC(f330fd04) SHA1(1288c47f636d9d5b826a2b870b81788a630e489e)) - ROM_REGION(0x10000, "p4sound:speechcpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("yrom1.snd", 0x8000, 0x8000, CRC(0b1ba1cb) SHA1(26327689992018837b1c9957c515ab67248623eb)) ROM_END @@ -1066,10 +1079,10 @@ ROM_START(bighousef) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "p4sound:audiocpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("drom1.snd", 0x8000, 0x8000, CRC(f330fd04) SHA1(1288c47f636d9d5b826a2b870b81788a630e489e)) - ROM_REGION(0x10000, "p4sound:speechcpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("yrom1.snd", 0x8000, 0x8000, CRC(0b1ba1cb) SHA1(26327689992018837b1c9957c515ab67248623eb)) ROM_END @@ -1084,10 +1097,10 @@ ROM_START(bighouseg) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "p4sound:audiocpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("drom1.snd", 0x8000, 0x8000, CRC(f330fd04) SHA1(1288c47f636d9d5b826a2b870b81788a630e489e)) - ROM_REGION(0x10000, "p4sound:speechcpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("yrom1.snd", 0x8000, 0x8000, CRC(0b1ba1cb) SHA1(26327689992018837b1c9957c515ab67248623eb)) ROM_END @@ -1105,13 +1118,13 @@ ROM_START(bonebstr) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "p5sound:dcpu2", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p6sound:dcpu2", ROMREGION_ERASEFF) ROM_LOAD("drom2.snd", 0x8000, 0x8000, CRC(d147d78d) SHA1(f8f6d6a1921685b883b224a9ea85ead52a32a4c3)) - ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p6sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("drom1.snd", 0x8000, 0x8000, CRC(ec43f4e9) SHA1(77b0988700be7a597dca7e5f06ac5d3c6834ce21)) - ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p6sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("yrom1.snd", 0x8000, 0x8000, CRC(a95eedfc) SHA1(5ced2d6869a9895f8ff26d830b21d3c9364b32e7)) ROM_END @@ -1126,13 +1139,13 @@ ROM_START(bonebstrf) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "p5sound:dcpu2", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p6sound:dcpu2", ROMREGION_ERASEFF) ROM_LOAD("drom2.snd", 0x8000, 0x8000, CRC(d147d78d) SHA1(f8f6d6a1921685b883b224a9ea85ead52a32a4c3)) - ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p6sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("drom1.snd", 0x8000, 0x8000, CRC(ec43f4e9) SHA1(77b0988700be7a597dca7e5f06ac5d3c6834ce21)) - ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p6sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("yrom1.snd", 0x8000, 0x8000, CRC(a95eedfc) SHA1(5ced2d6869a9895f8ff26d830b21d3c9364b32e7)) ROM_END @@ -1147,13 +1160,13 @@ ROM_START(bonebstrg) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "p5sound:dcpu2", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p6sound:dcpu2", ROMREGION_ERASEFF) ROM_LOAD("drom2.snd", 0x8000, 0x8000, CRC(d147d78d) SHA1(f8f6d6a1921685b883b224a9ea85ead52a32a4c3)) - ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p6sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("drom1.snd", 0x8000, 0x8000, CRC(ec43f4e9) SHA1(77b0988700be7a597dca7e5f06ac5d3c6834ce21)) - ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p6sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("yrom1.snd", 0x8000, 0x8000, CRC(a95eedfc) SHA1(5ced2d6869a9895f8ff26d830b21d3c9364b32e7)) ROM_END @@ -1526,10 +1539,10 @@ ROM_START(hotshots) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "p4sound:audiocpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("drom1.snd", 0x8000, 0x8000, CRC(42c3cc3d) SHA1(26ca7f3a71b83df18ac6be1d1eb28da20120285e)) - ROM_REGION(0x10000, "p4sound:speechcpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("yrom1.snd", 0x8000, 0x8000, CRC(2933a80e) SHA1(5982b9ed361d90f8ea47047fc29770ef142acbec)) ROM_END @@ -1544,10 +1557,10 @@ ROM_START(hotshotsf) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "p4sound:audiocpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("drom1.snd", 0x8000, 0x8000, CRC(42c3cc3d) SHA1(26ca7f3a71b83df18ac6be1d1eb28da20120285e)) - ROM_REGION(0x10000, "p4sound:speechcpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("yrom1.snd", 0x8000, 0x8000, CRC(2933a80e) SHA1(5982b9ed361d90f8ea47047fc29770ef142acbec)) ROM_END @@ -1562,10 +1575,10 @@ ROM_START(hotshotsg) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "p4sound:audiocpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("drom1.snd", 0x8000, 0x8000, CRC(42c3cc3d) SHA1(26ca7f3a71b83df18ac6be1d1eb28da20120285e)) - ROM_REGION(0x10000, "p4sound:speechcpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("yrom1.snd", 0x8000, 0x8000, CRC(2933a80e) SHA1(5982b9ed361d90f8ea47047fc29770ef142acbec)) ROM_END @@ -1682,10 +1695,10 @@ ROM_START(nmoves) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "p4sound:audiocpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("nmovdrom.256", 0x8000, 0x8000, CRC(90929841) SHA1(e203ccd3552c9843c91fc49a437f60ae2dd49142)) - ROM_REGION(0x10000, "p4sound:speechcpu", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "p5sound:speechcpu", ROMREGION_ERASEFF) ROM_LOAD("nmovyrom.256", 0x8000, 0x8000, CRC(cb74a687) SHA1(af8275807491eb35643cdeb6c898025fde47ceac)) ROM_END @@ -2227,26 +2240,26 @@ GAME(1988, diamondpg, diamondp, p4, gts80b, gts80b_state, empty_init, ROT0, "Got GAME(1988, txsector, 0, p4, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "TX-Sector", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) GAME(1988, txsectorf, txsector, p4, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "TX-Sector (French)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) GAME(1988, txsectorg, txsector, p4, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "TX-Sector (German)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -GAME(1989, bighouse, 0, p4, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Big House", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -GAME(1989, bighousef, bighouse, p4, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Big House (French)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -GAME(1989, bighouseg, bighouse, p4, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Big House (German)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1989, bighouse, 0, p5, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Big House", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1989, bighousef, bighouse, p5, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Big House (French)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1989, bighouseg, bighouse, p5, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Big House (German)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) GAME(1988, robowars, 0, p4, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Robo-War", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) GAME(1988, robowarsf, robowars, p4, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Robo-War (French)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) GAME(1988, excalibr, 0, p4, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Excalibur", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) GAME(1988, excalibrf, excalibr, p4, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Excalibur (French)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) GAME(1988, excalibrg, excalibr, p4, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Excalibur (German)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -GAME(1988, badgirls, 0, p4, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bad Girls", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -GAME(1988, badgirlsf, badgirls, p4, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bad Girls (French)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -GAME(1988, badgirlsg, badgirls, p4, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bad Girls (German)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -GAME(1989, hotshots, 0, p4, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Hot Shots", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -GAME(1989, hotshotsf, hotshots, p4, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Hot Shots (French)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -GAME(1989, hotshotsg, hotshots, p4, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Hot Shots (German)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -GAME(1989, bonebstr, 0, p5, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bone Busters Inc.", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -GAME(1989, bonebstrf, bonebstr, p5, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bone Busters Inc. (French)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -GAME(1989, bonebstrg, bonebstr, p5, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bone Busters Inc. (German)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -GAME(1989, nmoves, 0, p4, gts80b, gts80b_state, init_s80c, ROT0, "International Concepts", "Night Moves", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1988, badgirls, 0, p5, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bad Girls", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1988, badgirlsf, badgirls, p5, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bad Girls (French)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1988, badgirlsg, badgirls, p5, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bad Girls (German)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1989, hotshots, 0, p5, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Hot Shots", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1989, hotshotsf, hotshots, p5, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Hot Shots (French)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1989, hotshotsg, hotshots, p5, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Hot Shots (German)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1989, bonebstr, 0, p6, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bone Busters Inc.", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1989, bonebstrf, bonebstr, p6, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bone Busters Inc. (French)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1989, bonebstrg, bonebstr, p6, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bone Busters Inc. (German)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1989, nmoves, 0, p5, gts80b, gts80b_state, init_s80c, ROT0, "International Concepts", "Night Moves", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) GAME(1987, amazonh3, 0, p4, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Amazon Hunt III (French)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) GAME(1987, amazonh3a, amazonh3, p4, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Amazon Hunt III (rev. 1, French)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -GAME(198?, s80btest, 0, p4, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "System 80B Test", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(198?, s80btest, 0, p0, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "System 80B Test", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) GAME(1988, mmmaster, 0, master, gts80b, gts80b_state, empty_init, ROT0, "ManilaMatic", "Master", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) GAME(1988, topsound, 0, master, gts80b, gts80b_state, empty_init, ROT0, "ManilaMatic", "Top Sound (French)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -- cgit v1.2.3