From a0613f2542e679de9217996d57e2f3191d9ed820 Mon Sep 17 00:00:00 2001 From: Robbbert Date: Fri, 11 Mar 2022 00:18:09 +1100 Subject: gts1,gts80: Improved sound. Added bonus display. --- src/mame/audio/gottlieb.cpp | 44 +++-- src/mame/audio/gottlieb.h | 13 +- src/mame/drivers/gts1.cpp | 144 ++++++++------ src/mame/drivers/gts80.cpp | 184 +++++++++--------- src/mame/drivers/gts80a.cpp | 129 ++++++++----- src/mame/drivers/gts80b.cpp | 461 ++++++++++++++++++++++---------------------- src/mame/layout/gts80.lay | 32 ++- src/mame/layout/gts80a.lay | 35 +++- 8 files changed, 562 insertions(+), 480 deletions(-) diff --git a/src/mame/audio/gottlieb.cpp b/src/mame/audio/gottlieb.cpp index d89c6b2f6c8..61cda84188c 100644 --- a/src/mame/audio/gottlieb.cpp +++ b/src/mame/audio/gottlieb.cpp @@ -29,7 +29,7 @@ constexpr XTAL SOUND2_SPEECH_CLOCK(3'120'000); // GLOBAL VARIABLES //************************************************************************** -DEFINE_DEVICE_TYPE(GOTTLIEB_SOUND_REV0, gottlieb_sound_r0_device, "gotsndr0", "Gottlieb Sound rev. 0") +DEFINE_DEVICE_TYPE(GOTTLIEB_SOUND_PIN2, gottlieb_sound_p2_device, "gotsndp2", "Gottlieb Multi-mode Sound Board") 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") @@ -40,11 +40,11 @@ DEFINE_DEVICE_TYPE(GOTTLIEB_SOUND_REV2, gottlieb_sound_r2_device, //************************************************************************** //------------------------------------------------- -// gottlieb_sound_r0_device - constructors +// gottlieb_sound_p2_device - constructors //------------------------------------------------- -gottlieb_sound_r0_device::gottlieb_sound_r0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, GOTTLIEB_SOUND_REV0, tag, owner, clock) +gottlieb_sound_p2_device::gottlieb_sound_p2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, GOTTLIEB_SOUND_PIN2, tag, owner, clock) , device_mixer_interface(mconfig, *this) , m_audiocpu(*this, "audiocpu") , m_r6530(*this, "r6530") @@ -57,7 +57,7 @@ gottlieb_sound_r0_device::gottlieb_sound_r0_device(const machine_config &mconfig // read port - //------------------------------------------------- -uint8_t gottlieb_sound_r0_device::r6530b_r() +uint8_t gottlieb_sound_p2_device::r6530b_r() { return m_sndcmd; } @@ -67,7 +67,7 @@ uint8_t gottlieb_sound_r0_device::r6530b_r() // write - handle an external command write //------------------------------------------------- -void gottlieb_sound_r0_device::write(uint8_t data) +void gottlieb_sound_p2_device::write(uint8_t data) { // write the command data to bits 0-3 (also bit 6 used in system1 pinballs) uint8_t pb0_3 = ~data & 0x4f; // U7 @@ -81,7 +81,7 @@ void gottlieb_sound_r0_device::write(uint8_t data) // audio CPU map //------------------------------------------------- -void gottlieb_sound_r0_device::gottlieb_sound_r0_map(address_map &map) +void gottlieb_sound_p2_device::gottlieb_sound_p2_map(address_map &map) { map.global_mask(0x0fff); map.unmap_value_high(); @@ -95,10 +95,10 @@ void gottlieb_sound_r0_device::gottlieb_sound_r0_map(address_map &map) // input ports //------------------------------------------------- -INPUT_PORTS_START( gottlieb_sound_r0 ) +INPUT_PORTS_START( gottlieb_sound_p2 ) PORT_START("SB0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Sound Test") PORT_CODE(KEYCODE_7_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, gottlieb_sound_r0_device, audio_nmi, 0) - PORT_DIPNAME( 0x80, 0x00, "Sound or Tones" ) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Sound Test") PORT_CODE(KEYCODE_7_PAD) PORT_CHANGED_MEMBER(DEVICE_SELF, gottlieb_sound_p2_device, audio_nmi, 0) + PORT_DIPNAME( 0x80, 0x80, "Sound or Tones" ) PORT_DIPSETTING( 0x80, "Sound" ) PORT_DIPSETTING( 0x00, "Tones" ) PORT_DIPNAME( 0x10, 0x00, "Attract Sound" ) @@ -107,7 +107,7 @@ INPUT_PORTS_START( gottlieb_sound_r0 ) INPUT_PORTS_END // The sound test will only work if the 2 above dips are in opposing directions (one off and one on) -INPUT_CHANGED_MEMBER( gottlieb_sound_r0_device::audio_nmi ) +INPUT_CHANGED_MEMBER( gottlieb_sound_p2_device::audio_nmi ) { // Diagnostic button sends a pulse to NMI pin if (newval==CLEAR_LINE) @@ -119,16 +119,16 @@ INPUT_CHANGED_MEMBER( gottlieb_sound_r0_device::audio_nmi ) // device_add_mconfig - add device configuration //------------------------------------------------- -void gottlieb_sound_r0_device::device_add_mconfig(machine_config &config) +void gottlieb_sound_p2_device::device_add_mconfig(machine_config &config) { // audio CPU M6502(config, m_audiocpu, 800'000); // M6503 - clock is a gate, a resistor and a capacitor. Freq 675-1000kHz. - m_audiocpu->set_addrmap(AS_PROGRAM, &gottlieb_sound_r0_device::gottlieb_sound_r0_map); + m_audiocpu->set_addrmap(AS_PROGRAM, &gottlieb_sound_p2_device::gottlieb_sound_p2_map); // I/O configuration MOS6530(config, m_r6530, 800'000); // same as cpu m_r6530->out_pa_callback().set("dac", FUNC(dac_byte_interface::data_w)); - m_r6530->in_pb_callback().set(FUNC(gottlieb_sound_r0_device::r6530b_r)); + m_r6530->in_pb_callback().set(FUNC(gottlieb_sound_p2_device::r6530b_r)); // sound devices MC1408(config, "dac", 0).add_route(ALL_OUTPUTS, *this, 0.50); // SSS1408-6P @@ -140,9 +140,9 @@ void gottlieb_sound_r0_device::device_add_mconfig(machine_config &config) // the device's I/O ports //------------------------------------------------- -ioport_constructor gottlieb_sound_r0_device::device_input_ports() const +ioport_constructor gottlieb_sound_p2_device::device_input_ports() const { - return INPUT_PORTS_NAME( gottlieb_sound_r0 ); + return INPUT_PORTS_NAME( gottlieb_sound_p2 ); } @@ -150,7 +150,7 @@ ioport_constructor gottlieb_sound_r0_device::device_input_ports() const // device_start - device-specific startup //------------------------------------------------- -void gottlieb_sound_r0_device::device_start() +void gottlieb_sound_p2_device::device_start() { save_item(NAME(m_sndcmd)); } @@ -263,7 +263,7 @@ void gottlieb_sound_r1_device::device_add_mconfig(machine_config &config) m_riot->irq_callback().set_inputline("audiocpu", M6502_IRQ_LINE); // sound devices - DAC_8BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, *this, 0.25); // unknown DAC + DAC_8BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, *this, 0.25); // MC1408 } @@ -284,6 +284,8 @@ ioport_constructor gottlieb_sound_r1_device::device_input_ports() const void gottlieb_sound_r1_device::device_start() { + // register for save states + save_item(NAME(m_dummy)); } @@ -636,7 +638,7 @@ void gottlieb_sound_r2_device::gottlieb_sound_r2_map(address_map &map) //------------------------------------------------- -// sppech CPU address map +// speech CPU address map //------------------------------------------------- void gottlieb_sound_r2_device::gottlieb_speech_r2_map(address_map &map) @@ -686,11 +688,11 @@ void gottlieb_sound_r2_device::device_add_mconfig(machine_config &config) m_speechcpu->set_addrmap(AS_PROGRAM, &gottlieb_sound_r2_device::gottlieb_speech_r2_map); // sound hardware - DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, *this, 0.075); // unknown DAC + DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, *this, 0.075); // AD7528 DAC_8BIT_R2R(config, "dacvol", 0) .set_output_range(0, 1) .add_route(0, "dac", 1.0, DAC_INPUT_RANGE_HI) - .add_route(0, "dac", -1.0, DAC_INPUT_RANGE_LO); // unknown DAC + .add_route(0, "dac", -1.0, DAC_INPUT_RANGE_LO); // AD7528 dual DAC AY8913(config, m_ay1, SOUND2_CLOCK/2).add_route(ALL_OUTPUTS, *this, 0.15); diff --git a/src/mame/audio/gottlieb.h b/src/mame/audio/gottlieb.h index a2b64bcac83..30370698e27 100644 --- a/src/mame/audio/gottlieb.h +++ b/src/mame/audio/gottlieb.h @@ -19,7 +19,7 @@ // GLOBAL VARIABLES //************************************************************************** -DECLARE_DEVICE_TYPE(GOTTLIEB_SOUND_REV0, gottlieb_sound_r0_device) +DECLARE_DEVICE_TYPE(GOTTLIEB_SOUND_PIN2, gottlieb_sound_p2_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) @@ -29,14 +29,14 @@ DECLARE_DEVICE_TYPE(GOTTLIEB_SOUND_REV2, gottlieb_sound_r2_device) // TYPE DEFINITIONS //************************************************************************** -// ======================> gottlieb_sound_r0_device +// ======================> gottlieb_sound_p2_device // rev 0 sound board -class gottlieb_sound_r0_device : public device_t, public device_mixer_interface +class gottlieb_sound_p2_device : public device_t, public device_mixer_interface { public: // construction/destruction - gottlieb_sound_r0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); + gottlieb_sound_p2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); // read/write void write(uint8_t data); @@ -50,7 +50,7 @@ protected: virtual ioport_constructor device_input_ports() const override; virtual void device_start() override; - void gottlieb_sound_r0_map(address_map &map); + void gottlieb_sound_p2_map(address_map &map); private: // devices @@ -95,6 +95,7 @@ protected: private: // devices required_device m_riot; + u8 m_dummy = 0; // needed for save-state support }; // fully populated rev 1 sound board @@ -122,7 +123,7 @@ private: required_device m_votrax; // internal state - uint8_t m_last_speech_clock; + uint8_t m_last_speech_clock = 0; }; diff --git a/src/mame/drivers/gts1.cpp b/src/mame/drivers/gts1.cpp index 4ed5d3a86d7..8b2b9fa4697 100644 --- a/src/mame/drivers/gts1.cpp +++ b/src/mame/drivers/gts1.cpp @@ -73,9 +73,6 @@ ToDo: - Z80-based sound board for hexagone and sahalove. -- Outputs to lamps and to optional solenoids. - - *****************************************************************************************************/ @@ -86,6 +83,7 @@ ToDo: #include "machine/r10788.h" #include "cpu/pps4/pps4.h" #include "audio/gottlieb.h" +#include "sound/beep.h" #include "speaker.h" #include "gts1.lh" @@ -104,14 +102,16 @@ public: , m_nvram(*this, "nvram") , m_dips(*this, "DSW%u", 0U) , m_switches(*this, "X%u", 0U) - , m_r0_sound(*this, "r0sound") + , m_p1_sound(*this, "beeper") + , m_p2_sound(*this, "p2sound") , m_digit8(*this, "digit8_%u", 0U) , m_digit7(*this, "digit7_%u", 0U) , m_io_outputs(*this, "out%d", 0U) { } - void gts1(machine_config &config); - void gts1s(machine_config &config); + void p0(machine_config &config); // chimes + void p1(machine_config &config); // ne555 tones + void p2(machine_config &config); // multi-mode sound card private: u8 gts1_solenoid_r(offs_t offset); @@ -140,18 +140,19 @@ private: required_shared_ptr m_nvram; required_ioport_array<3> m_dips; required_ioport_array<7> m_switches; - optional_device m_r0_sound; + optional_device m_p1_sound; + optional_device m_p2_sound; output_finder<32> m_digit8; // digits 0-5,8-13,16-21,24-29 output_finder<32> m_digit7; // digits 6,7,14,15 on repurposed digital clock display output_finder<44> m_io_outputs; // 8 solenoids + 36 lamps - u8 m_strobe = 0; //!< switches strobe lines (5 lower bits used) - u8 m_nvram_addr = 0xff; //!< NVRAM address - u8 m_nvram_data = 0; - bool m_nvram_e2 = 0; //!< NVRWAM enable (E2 line) - bool m_nvram_wr = 0; //!< NVRWAM write (W/R line) - u16 m_6351_addr = 0; //!< ROM MM6351 address (12 bits) - u8 m_z30_out = 0; //!< 4-to-16 decoder outputs + u8 m_strobe = 0U; //!< switches strobe lines (5 lower bits used) + u8 m_nvram_addr = 0xffU; //!< NVRAM address + u8 m_nvram_data = 0U; + bool m_nvram_e2 = 0; //!< NVRWAM enable (E2 line) + bool m_nvram_wr = 0; //!< NVRWAM write (W/R line) + u16 m_6351_addr = 0U; //!< ROM MM6351 address (12 bits) + u8 m_z30_out = 0U; //!< 4-to-16 decoder outputs u8 m_lamp_data = 0U; u8 m_snd_save = 0U; }; @@ -170,8 +171,8 @@ void gts1_state::gts1_data(address_map &map) void gts1_state::gts1_io(address_map &map) { map(0x20, 0x2f).rw("u5", FUNC(ra17xx_device::io_r), FUNC(ra17xx_device::io_w)); // (U5) switch matrix - map(0x30, 0x3f).rw("u3", FUNC(r10696_device::io_r), FUNC(r10696_device::io_w)); // (U3) solenoid + dips - map(0x40, 0x4f).rw("u4", FUNC(ra17xx_device::io_r), FUNC(ra17xx_device::io_w)); // (U4) solenoid + map(0x30, 0x3f).rw("u3", FUNC(r10696_device::io_r), FUNC(r10696_device::io_w)); // (U3) lamps, display, dips + map(0x40, 0x4f).rw("u4", FUNC(ra17xx_device::io_r), FUNC(ra17xx_device::io_w)); // (U4) solenoids, nvram control map(0x60, 0x6f).rw("u2", FUNC(r10696_device::io_r), FUNC(r10696_device::io_w)); // (U2) NVRAM io chip map(0xd0, 0xdf).rw("u6", FUNC(r10788_device::io_r), FUNC(r10788_device::io_w)); // (U6) display chip } @@ -432,17 +433,35 @@ void gts1_state::gts1_solenoid_w(offs_t offset, u8 data) // WORKS break; case 2: // tens chime m_snd_save = data ? (m_snd_save | 4) : (m_snd_save & 0xfb); - if (!m_r0_sound && data) + if (m_p1_sound) + { + m_p1_sound->set_clock(593); + m_p1_sound->set_state(data); + } + else + if (!m_p2_sound && data) m_samples->start(3, 3); break; case 3: // hundreds chime m_snd_save = data ? (m_snd_save | 2) : (m_snd_save & 0xfd); - if (!m_r0_sound && data) + if (m_p1_sound) + { + m_p1_sound->set_clock(265); + m_p1_sound->set_state(data); + } + else + if (!m_p2_sound && data) m_samples->start(2, 2); break; case 4: // thousands chime m_snd_save = data ? (m_snd_save | 1) : (m_snd_save & 0xfe); - if (!m_r0_sound && data) + if (m_p1_sound) + { + m_p1_sound->set_clock(153); + m_p1_sound->set_state(data); + } + else + if (!m_p2_sound && data) m_samples->start(1, 1); break; case 5: // optional per machine @@ -466,8 +485,8 @@ void gts1_state::gts1_solenoid_w(offs_t offset, u8 data) // WORKS case 15: // spare break; } - if (m_r0_sound) - m_r0_sound->write(m_snd_save); + if (m_p2_sound) + m_p2_sound->write(m_snd_save); if (offset < 8) m_io_outputs[offset] = data; @@ -657,22 +676,22 @@ u8 gts1_state::gts1_lamp_apm_r(offs_t offset) // Think this works - dips seem to * @param offset 0 ... 2 = group * @param data 4 bit value to write */ -void gts1_state::gts1_lamp_apm_w(offs_t offset, u8 data) // Working for the dips, not sure about the PM address. Lamps to be done. *********** +void gts1_state::gts1_lamp_apm_w(offs_t offset, u8 data) // Working for the dips, not sure about the PM address. *********** { switch (offset) { - case 0: // LD1-LD4 on jumper J5 // lamps - TODO ********* + case 0: // LD1-LD4 on jumper J5 m_lamp_data = data & 15; break; - case 1: // Z30 1-of-16 decoder // lamps - TODO ********* + case 1: // Z30 1-of-16 decoder m_z30_out = ~data & 15; if (m_z30_out == 1) { - if (m_r0_sound) + if (m_p2_sound) { // Sound card has inputs from tilt and game over relays m_snd_save = BIT(m_lamp_data, 0) ? (m_snd_save | 0x40) : (m_snd_save & 0xbf); m_snd_save = BIT(m_lamp_data, 1) ? (m_snd_save | 0x08) : (m_snd_save & 0xf7); - m_r0_sound->write(m_snd_save); + m_p2_sound->write(m_snd_save); } } if ((m_z30_out >= 1) && (m_z30_out <= 9)) @@ -704,7 +723,7 @@ void gts1_state::gts1_do_w(u8 data) } -void gts1_state::gts1(machine_config & config) +void gts1_state::p0(machine_config & config) { /* basic machine hardware */ PPS4_2(config, m_maincpu, XTAL(3'579'545)); // divided by 18 in the CPU @@ -749,11 +768,18 @@ void gts1_state::gts1(machine_config & config) genpin_audio(config); } -void gts1_state::gts1s(machine_config &config) +void gts1_state::p1(machine_config &config) +{ + p0(config); + SPEAKER(config, "mono").front_center(); + BEEP(config, m_p1_sound, 387).add_route(ALL_OUTPUTS, "mono", 0.50); +} + +void gts1_state::p2(machine_config &config) { - gts1(config); - SPEAKER(config, "speaker").front_center(); - GOTTLIEB_SOUND_REV0(config, m_r0_sound, 0).add_route(ALL_OUTPUTS, "speaker", 1.0); + p0(config); + SPEAKER(config, "mono").front_center(); + GOTTLIEB_SOUND_PIN2(config, m_p2_sound, 0).add_route(ALL_OUTPUTS, "mono", 1.0); } @@ -778,7 +804,7 @@ ROM_START(astannie) ROM_REGION( 0x0400, "module", 0 ) ROM_LOAD("442.cpu", 0x0000, 0x0400, CRC(579521e0) SHA1(b1b19473e1ca3373955ee96104b87f586c4c311c)) - ROM_REGION( 0x1000, "r0sound:audiocpu", 0) + ROM_REGION( 0x1000, "p2sound:audiocpu", 0) ROM_LOAD("442.snd", 0x0400, 0x0400, CRC(c70195b4) SHA1(ff06197f07111d6a4b8942dcfe8d2279bda6f281)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sys1.bin", 0x0c00, 0x0400, CRC(b7831321) SHA1(c94f4bee97854d0373653a6867016e27d3fc1340)) @@ -793,7 +819,7 @@ ROM_START(buckrgrs) ROM_REGION( 0x0400, "module", 0 ) ROM_LOAD("437.cpu", 0x0000, 0x0400, CRC(e57d9278) SHA1(dfc4ebff1e14b9a074468671a8e5ac7948d5b352)) - ROM_REGION( 0x1000, "r0sound:audiocpu", 0) + ROM_REGION( 0x1000, "p2sound:audiocpu", 0) ROM_LOAD("437.snd", 0x0400, 0x0400, CRC(732b5a27) SHA1(7860ea54e75152246c3ac3205122d750b243b40c)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sys1.bin", 0x0c00, 0x0400, CRC(b7831321) SHA1(c94f4bee97854d0373653a6867016e27d3fc1340)) @@ -857,7 +883,7 @@ ROM_START(geniep) ROM_REGION( 0x0400, "module", 0 ) ROM_LOAD("435.cpu", 0x0000, 0x0400, CRC(7749fd92) SHA1(9cd3e799842392e3939877bf295759c27f199e58)) - ROM_REGION( 0x1000, "r0sound:audiocpu", 0) + ROM_REGION( 0x1000, "p2sound:audiocpu", 0) ROM_LOAD("435.snd", 0x0400, 0x0400, CRC(4a98ceed) SHA1(f1d7548e03107033c39953ee04b043b5301dbb47)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sys1.bin", 0x0c00, 0x0400, CRC(b7831321) SHA1(c94f4bee97854d0373653a6867016e27d3fc1340)) @@ -914,7 +940,7 @@ ROM_START(roldisco) ROM_REGION( 0x0400, "module", 0 ) ROM_LOAD("440.cpu", 0x0000, 0x0400, CRC(bc50631f) SHA1(6aa3124d09fc4e369d087a5ad6dd1737ace55e41)) - ROM_REGION( 0x1000, "r0sound:audiocpu", 0) + ROM_REGION( 0x1000, "p2sound:audiocpu", 0) ROM_LOAD("440.snd", 0x0400, 0x0400, CRC(4a0a05ae) SHA1(88f21b5638494d8e78dc0b6b7d69873b76b5f75d)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sys1.bin", 0x0c00, 0x0400, CRC(b7831321) SHA1(c94f4bee97854d0373653a6867016e27d3fc1340)) @@ -976,7 +1002,7 @@ ROM_START(hulk) ROM_REGION( 0x0400, "module", 0 ) ROM_LOAD("433.cpu", 0x0000, 0x0400, CRC(c05d2b52) SHA1(393fe063b029246317c90ee384db95a84d61dbb7)) - ROM_REGION( 0x1000, "r0sound:audiocpu", 0) + ROM_REGION( 0x1000, "p2sound:audiocpu", 0) ROM_LOAD("433.snd", 0x0400, 0x0400, CRC(20cd1dff) SHA1(93e7c47ff7051c3c0dc9f8f95aa33ba094e7cf25)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sys1.bin", 0x0c00, 0x0400, CRC(b7831321) SHA1(c94f4bee97854d0373653a6867016e27d3fc1340)) @@ -991,7 +1017,7 @@ ROM_START(torch) ROM_REGION( 0x0400, "module", 0 ) ROM_LOAD("438.cpu", 0x0000, 0x0400, CRC(2d396a64) SHA1(38a1862771500faa471071db08dfbadc6e8759e8)) - ROM_REGION( 0x1000, "r0sound:audiocpu", 0) + ROM_REGION( 0x1000, "p2sound:audiocpu", 0) ROM_LOAD("438.snd", 0x0400, 0x0400, CRC(a9619b48) SHA1(1906bc1b059bf31082e3b4546f5a30159479ad3c)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sys1.bin", 0x0c00, 0x0400, CRC(b7831321) SHA1(c94f4bee97854d0373653a6867016e27d3fc1340)) @@ -1006,7 +1032,7 @@ ROM_START(totem) ROM_REGION( 0x0400, "module", 0 ) ROM_LOAD("429.cpu", 0x0000, 0x0400, CRC(7885a384) SHA1(1770662af7d48ad8297097a9877c5c497119978d)) - ROM_REGION( 0x1000, "r0sound:audiocpu", 0) + ROM_REGION( 0x1000, "p2sound:audiocpu", 0) ROM_LOAD("429.snd", 0x0400, 0x0400, CRC(5d1b7ed4) SHA1(4a584f880e907fb21da78f3b3a0617f20599688f)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sys1.bin", 0x0c00, 0x0400, CRC(b7831321) SHA1(c94f4bee97854d0373653a6867016e27d3fc1340)) @@ -1024,32 +1050,32 @@ ROM_END } // Anonymous namespace -GAME(1977, gts1, 0, gts1, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "System 1", MACHINE_IS_BIOS_ROOT | MACHINE_NOT_WORKING) -GAME(19??, sys1test, gts1, gts1, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "System 1 Test prom", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1977, gts1, 0, p0, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "System 1", MACHINE_IS_BIOS_ROOT | MACHINE_NOT_WORKING) +GAME(19??, sys1test, gts1, p0, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "System 1 Test prom", MACHINE_IS_SKELETON_MECHANICAL) // chimes -GAME(1977, cleoptra, gts1, gts1, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Cleopatra", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1978, sinbad, gts1, gts1, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Sinbad", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1978, sinbadn, sinbad, gts1, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Sinbad (Norway)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1978, jokrpokr, gts1, gts1, jokrpokr, gts1_state, empty_init, ROT0, "Gottlieb", "Joker Poker", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1978, dragon, gts1, gts1, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Dragon", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1979, solaride, gts1, gts1, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Solar Ride", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1979, countdwn, gts1, gts1, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Count-Down", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1977, cleoptra, gts1, p0, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Cleopatra", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1978, sinbad, gts1, p0, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Sinbad", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1978, sinbadn, sinbad, p0, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Sinbad (Norway)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1978, jokrpokr, gts1, p0, jokrpokr, gts1_state, empty_init, ROT0, "Gottlieb", "Joker Poker", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1978, dragon, gts1, p0, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Dragon", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1979, solaride, gts1, p0, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Solar Ride", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1979, countdwn, gts1, p0, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Count-Down", MACHINE_IS_SKELETON_MECHANICAL) // NE555 beeper -GAME(1978, closeenc, gts1, gts1, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Close Encounters of the Third Kind", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1978, charlies, gts1, gts1, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Charlie's Angels", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1979, pinpool, gts1, gts1, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Pinball Pool", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1978, closeenc, gts1, p1, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Close Encounters of the Third Kind", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1978, charlies, gts1, p1, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Charlie's Angels", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1979, pinpool, gts1, p1, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Pinball Pool", MACHINE_IS_SKELETON_MECHANICAL) // sound card -GAME(1979, totem, gts1, gts1s, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Totem", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1979, hulk, gts1, gts1s, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "The Incredible Hulk", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1979, geniep, gts1, gts1s, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Genie (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1980, buckrgrs, gts1, gts1s, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Buck Rogers", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1980, torch, gts1, gts1s, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Torch", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1980, roldisco, gts1, gts1s, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Roller Disco", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1980, astannie, gts1, gts1s, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Asteroid Annie and the Aliens", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1979, totem, gts1, p2, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Totem", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1979, hulk, gts1, p2, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "The Incredible Hulk", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1979, geniep, gts1, p2, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Genie (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1980, buckrgrs, gts1, p2, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Buck Rogers", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1980, torch, gts1, p2, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Torch", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1980, roldisco, gts1, p2, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Roller Disco", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1980, astannie, gts1, p2, gts1, gts1_state, empty_init, ROT0, "Gottlieb", "Asteroid Annie and the Aliens", MACHINE_IS_SKELETON_MECHANICAL) // homebrew -GAME(1984, sahalove, sinbad, gts1, gts1, gts1_state, empty_init, ROT0, "Christian Tabart", "Sahara Love (France)", MACHINE_IS_SKELETON_MECHANICAL) // based on sinbad, 150 units produced, not sure it's 'homebrew' -GAME(1986, hexagone, gts1, gts1, gts1, gts1_state, empty_init, ROT0, "Christian Tabart", "L'Hexagone (France)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1984, sahalove, sinbad, p0, gts1, gts1_state, empty_init, ROT0, "Christian Tabart", "Sahara Love (France)", MACHINE_IS_SKELETON_MECHANICAL) // based on sinbad, 150 units produced, not sure it's 'homebrew' +GAME(1986, hexagone, gts1, p0, gts1, gts1_state, empty_init, ROT0, "Christian Tabart", "L'Hexagone (France)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/gts80.cpp b/src/mame/drivers/gts80.cpp index d1048191ff1..75e573513e2 100644 --- a/src/mame/drivers/gts80.cpp +++ b/src/mame/drivers/gts80.cpp @@ -13,42 +13,34 @@ added. Here are the key codes to enable play: (may need to hit X to start a ball) -Game NUM Start game End ball --------------------------------------------------------------------------------------------------- -Panthera 652 1 X -Le Grand 8 --- 1 X -The Amazing Spider-man 653 1 X -Circus 654 1 X -Counterforce 656 1 X -Star Race 657 1 X -James Bond 658 1 X -Timeline 659 1 X -Force II 661 1 then PgDn and Down Down then PgDn -Pink Panther 664 1 then PgDn and Down PgDn -Mars God of War 666 1 them Home and \ Home then \ (wait for flash or match) -Volcano 667 1 then M= M then = (wait for flash or match) -Black Hole 668 1 then R (wait for score to flash) L then R (wait for flash or match) -Haunted House 669 1 X -Eclipse 671 1 then RW X +Game NUM Start game End ball +------------------------------------------------------------------------------------------------------------- +Panthera 652 1 X +Le Grand 8 (Panthera conversion) --- 1 X +The Amazing Spider-man 653 1 X +Circus 654 1 X +Counterforce 656 1 X +Star Race 657 1 X +James Bond 658 1 X +Timeline 659 1 X +Force II 661 1 then PgDn and Down Down then PgDn +Pink Panther 664 1 then PgDn and Down PgDn +Mars God of War 666 1 them Home and \ Home then \ (wait for flash or match) +Volcano 667 1 then M= M then = (wait for flash or match) +Black Hole 668 1 then R (wait for score to flash) L then R (wait for flash or match) +Haunted House 669 1 X +Eclipse 671 1 then RW X Status: -- Machines boot up, coins can be inserted, and a game begun. - -Notes: -- Jamesb is a timed game and appears to be never-ending. -- Haunted House uses the R1 sound card which doesn't have anything for save-states. If the game has save-state - support, it will fatal-error at start. +- All machines are playable but read notes below. +- jamesb is a timed game +- If 'tones' is selected, sound might not work. ToDO: -- Sounds are mostly not correct. The games only seem to use 2 or 3 sounds each. -- The Sound & Speech board has extra control lines (Sound16 and Sound32). Sound16 comes from a lamp output, - while Sound32 hasn't been tracked down yet. -- Mars, Pink Panther: Sound board CPU runs into the weeds +- Mars (all versions): no sound, audio cpu runs into the weeds +- Volcano (all versions): Unstable, certain inputs will freeze the machine (E for example) - Grand8: Z80-based sound board -- None of the "talking" machines talk. - - ************************************************************************************************************/ @@ -73,16 +65,16 @@ public: , m_riot3(*this, "riot3") , m_io_dips(*this, "DSW%d", 0U) , m_io_keyboard(*this, "X%d", 0U) - , m_r0_sound(*this, "r0sound") + , m_p2_sound(*this, "p2sound") , m_r1_sound(*this, "r1sound") , m_digits(*this, "digit%d", 0U) , m_io_outputs(*this, "out%d", 0U) { } - void gts80(machine_config &config); - void gts80_ss(machine_config &config); - void gts80_s(machine_config &config); - void gts80_hh(machine_config &config); + void p0(machine_config &config); // no sound card + void p2(machine_config &config); // multi-mode card + void r1v(machine_config &config); // r1 with votrax + void r1(machine_config &config); // r1 DECLARE_INPUT_CHANGED_MEMBER(slam_w); private: @@ -108,9 +100,9 @@ private: required_device m_riot3; required_ioport_array<4> m_io_dips; required_ioport_array<9> m_io_keyboard; - optional_device m_r0_sound; + optional_device m_p2_sound; optional_device m_r1_sound; - output_finder<56> m_digits; + output_finder<76> m_digits; output_finder<57> m_io_outputs; // 8 solenoids, 1 outhole, 48 lamps }; @@ -364,7 +356,9 @@ void gts80_state::port2a_w(u8 data) break; case 0x40: // credits & balls if (!BIT(m_segment, 7)) m_segment = 1; // turn '1' back to normal - m_digits[(data & 15)+40] = patterns[m_segment & 15]; + m_digits[(data & 15)+60] = patterns[m_segment & 15]; + if (!BIT(m_segment, 7)) seg2 |= 0x300; // put '1' in the middle + m_digits[(data & 15)+40] = seg2; break; } } @@ -386,8 +380,8 @@ void gts80_state::port3a_w(u8 data) sndcmd = 0; sndcmd ^= 15; // inverted again by Z13 on the A3 board - if (m_r0_sound) - m_r0_sound->write(sndcmd); + if (m_p2_sound) + m_p2_sound->write(sndcmd | 0x40); else if (m_r1_sound) m_r1_sound->write(sndcmd | m_soundex); @@ -475,13 +469,12 @@ void gts80_state::port3b_w(u8 data) if (m_lamprow && (m_lamprow < 13)) for (u8 i = 0; i < 4; i++) m_io_outputs[m_lamprow*4+i+5] = BIT(data, i); - m_soundex = m_io_outputs[18] << 4; // Sound16 line (there's a Sound32 line, but haven't found its source) + m_soundex = m_io_outputs[18] << 4; // Sound16 line + m_soundex = m_soundex ? 32 : 16; // This gives working speech for Black Hole } void gts80_state::machine_start() { - genpin_class::machine_start(); - m_digits.resolve(); m_io_outputs.resolve(); @@ -494,7 +487,6 @@ void gts80_state::machine_start() void gts80_state::machine_reset() { - genpin_class::machine_reset(); m_lamprow = 0; m_swrow = 0; m_segment = 0; @@ -503,7 +495,7 @@ void gts80_state::machine_reset() /* with Sound Board */ -void gts80_state::gts80(machine_config &config) +void gts80_state::p0(machine_config &config) { /* basic machine hardware */ M6502(config, m_maincpu, XTAL(3'579'545)/4); @@ -535,25 +527,25 @@ void gts80_state::gts80(machine_config &config) /* Sound */ genpin_audio(config); - SPEAKER(config, "speaker").front_center(); + SPEAKER(config, "mono").front_center(); } -void gts80_state::gts80_s(machine_config &config) +void gts80_state::p2(machine_config &config) { - gts80(config); - GOTTLIEB_SOUND_REV0(config, m_r0_sound, 0).add_route(ALL_OUTPUTS, "speaker", 0.75); + p0(config); + GOTTLIEB_SOUND_PIN2(config, m_p2_sound, 0).add_route(ALL_OUTPUTS, "mono", 0.75); } -void gts80_state::gts80_hh(machine_config &config) +void gts80_state::r1(machine_config &config) { - gts80(config); - GOTTLIEB_SOUND_REV1(config, m_r1_sound, 0).add_route(ALL_OUTPUTS, "speaker", 0.75); + p0(config); + GOTTLIEB_SOUND_REV1(config, m_r1_sound, 0).add_route(ALL_OUTPUTS, "mono", 0.75); } -void gts80_state::gts80_ss(machine_config &config) +void gts80_state::r1v(machine_config &config) { - gts80(config); - GOTTLIEB_SOUND_REV1_VOTRAX(config, m_r1_sound, 0).add_route(ALL_OUTPUTS, "speaker", 0.75); + p0(config); + GOTTLIEB_SOUND_REV1_VOTRAX(config, m_r1_sound, 0).add_route(ALL_OUTPUTS, "mono", 0.75); } /* SYSTEM-80 ALTERNATE ROMS ======================================================================= @@ -627,7 +619,7 @@ ROM_START(blckhols) GTS80_BIOS ROM_LOAD("668-a2.cpu", 0x1000, 0x0800, CRC(df56f896) SHA1(1ec945a7ed8d25064476791adab2b554371dadbe)) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("668-a-s.snd", 0x0400, 0x0400, CRC(5175f307) SHA1(97be8f2bbc393cc45a07fa43daec4bbba2336af8)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) @@ -643,7 +635,7 @@ ROM_START(circusp) ROM_LOAD("654-2.cpu", 0x1200, 0x0200, CRC(01e23569) SHA1(47088421254e487aa1d1e87ea911dc1634e7d9ad)) ROM_RELOAD(0x1600, 0x0200) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("654.snd", 0x0400, 0x0400, CRC(75c3ad67) SHA1(4f59c451b8659d964d5242728814c2d97f68445b)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) @@ -659,7 +651,7 @@ ROM_START(cntforce) ROM_LOAD("656-2.cpu", 0x1200, 0x0200, CRC(0e185c30) SHA1(01d9fb5d335c24bed9f747d6e23f57adb6ef09a5)) ROM_RELOAD(0x1600, 0x0200) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("656.snd", 0x0400, 0x0400, CRC(0be2cbe9) SHA1(306a3e7d93733562360285de35b331b5daae7250)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) @@ -677,7 +669,7 @@ ROM_START(eclipse) GTS80_BIOS ROM_LOAD("671-a.cpu", 0x1000, 0x0800, CRC(efad7312) SHA1(fcfd5e5c7924d65ac42561994797156a80018667)) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("671-a-s.snd", 0x0400, 0x0400, CRC(5175f307) SHA1(97be8f2bbc393cc45a07fa43daec4bbba2336af8)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) @@ -690,7 +682,7 @@ ROM_START(forceii) GTS80_BIOS ROM_LOAD("661-2.cpu", 0x1000, 0x0800, CRC(a4fa42a4) SHA1(c17af4f0da6d5630e43db44655bece0e26b0112a)) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) // no sound ROM_LOAD("661.snd", 0x0400, 0x0400, CRC(650158a7) SHA1(c7a9d521d1e7de1e00e7abc3a97aaaee04f8052e)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) @@ -724,7 +716,7 @@ ROM_START(jamesb) GTS80_BIOS ROM_LOAD("658-1.cpu", 0x1000, 0x0800, CRC(b841ad7a) SHA1(3396e82351c975781cac9112bfa341a3b799f296)) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("658.snd", 0x0400, 0x0400, CRC(962c03df) SHA1(e8ff5d502a038531a921380b75c27ef79b6feac8)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) @@ -734,7 +726,7 @@ ROM_START(jamesb2) GTS80_BIOS ROM_LOAD("658-x.cpu", 0x1000, 0x0800, CRC(e7e0febf) SHA1(2c101a88b61229f30ed15d38f395bc538999d766)) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("658.snd", 0x0400, 0x0400, CRC(962c03df) SHA1(e8ff5d502a038531a921380b75c27ef79b6feac8)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) @@ -777,7 +769,7 @@ ROM_START(panthera) GTS80_BIOS ROM_LOAD("652.cpu", 0x1000, 0x0800, CRC(5386e5fb) SHA1(822f47951b702f9c6a1ce674baaab0a596f34413)) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("652.snd", 0x0400, 0x0400, CRC(4d0cf2c0) SHA1(0da5d118ffd19b1e78dfaaee3e31c43750d45c8d)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) @@ -799,7 +791,7 @@ ROM_START(pnkpnthr) GTS80_BIOS ROM_LOAD("664-1.cpu", 0x1000, 0x0800, CRC(a0d3e69a) SHA1(590e68dc28067e61832927cd4b3eefcc066f0a92)) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("664.snd", 0x0400, 0x0400, CRC(18f4abfd) SHA1(9e85eb7e9b1e2fe71be828ff1b5752424ed42588)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) @@ -815,7 +807,7 @@ ROM_START(starrace) ROM_LOAD("657-2.cpu", 0x1200, 0x0200, CRC(c56e31c8) SHA1(1e129fb6309e015a16f2bdb1e389cbc85d1919a7)) ROM_RELOAD(0x1600, 0x0200) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("657.snd", 0x0400, 0x0400, CRC(3a1d3995) SHA1(6f0bdb34c4fa11d5f8ecbb98ae55bafeb5d62c9e)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) @@ -831,7 +823,7 @@ ROM_START(spidermn) ROM_LOAD("653-2.cpu", 0x1200, 0x0200, CRC(ff1ddfd7) SHA1(dd7b98e491045916153b760f36432506277a4093)) ROM_RELOAD(0x1600, 0x0200) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("653.snd", 0x0400, 0x0400, CRC(f5650c46) SHA1(2d0e50fa2f4b3d633daeaa7454630e3444453cb2)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) @@ -849,7 +841,7 @@ ROM_START(timeline) GTS80_BIOS ROM_LOAD("659.cpu", 0x1000, 0x0800, CRC(d6950e3b) SHA1(939b45a9ee4bb122fbea534ad728ec6b85120416)) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("659.snd", 0x0400, 0x0400, CRC(28185568) SHA1(2fd26e7e0a8f050d67159f17634df2b1fc47cbd3)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) @@ -871,7 +863,7 @@ ROM_START(vlcno_1c) GTS80_BIOS ROM_LOAD("667-1c.cpu", 0x1000, 0x0800, CRC(e364202d) SHA1(128eaa5b390e309f4cf89f3631da0341f1419ffe)) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("667-a-s.snd", 0x0400, 0x0400, CRC(894b4e2e) SHA1(d888f8e00b2b50cef5cc916d46e4c5e6699914a1)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) @@ -881,7 +873,7 @@ ROM_START(vlcno_1b) GTS80_BIOS ROM_LOAD("667-1b.cpu", 0x1000, 0x0800, CRC(a422d862) SHA1(2785388eb43c08405774a9413ffa52c1591a84f2)) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("667-a-s.snd", 0x0400, 0x0400, CRC(894b4e2e) SHA1(d888f8e00b2b50cef5cc916d46e4c5e6699914a1)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) @@ -891,7 +883,7 @@ ROM_START(vlcno_1a) GTS80_BIOS ROM_LOAD("667-1a.cpu", 0x1000, 0x0800, CRC(5931c6f7) SHA1(e104a6c3ca2175bb49199e06963e26185dd563d2)) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("667-a-s.snd", 0x0400, 0x0400, CRC(894b4e2e) SHA1(d888f8e00b2b50cef5cc916d46e4c5e6699914a1)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) @@ -911,29 +903,29 @@ ROM_END } // Anonymous namespace -/* disp1 */GAME(1981, s80tst, 0, gts80_ss, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "System 80 Test", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) - -/* disp1 */GAME(1980, panthera, 0, gts80_s, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Panthera", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -/* disp1 */GAME(1980, grand8, panthera, gts80, gts80, gts80_state, empty_init, ROT0, "Christian Tabart", "Le Grand 8", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) // Panthera conversion -/* disp1 */GAME(1980, spidermn, 0, gts80_s, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "The Amazing Spider-Man", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -/* disp1 */GAME(1980, circusp, 0, gts80_s, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Circus", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -/* disp1 */GAME(1980, cntforce, 0, gts80_s, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Counterforce", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -/* disp1 */GAME(1980, starrace, 0, gts80_s, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Star Race", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -/* disp2 */GAME(1980, jamesb, 0, gts80_s, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "James Bond (Timed Play)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -/* disp2 */GAME(1980, jamesb2, jamesb, gts80_s, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "James Bond (3/5-Ball)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -/* cust */GAME(1980, timeline, 0, gts80_s, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Time Line", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -/* disp1 */GAME(1981, forceii, 0, gts80_s, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Force II", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -/* cust */GAME(1981, pnkpnthr, 0, gts80_s, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Pink Panther", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -/* disp1 */GAME(1981, marsp, 0, gts80_ss, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Mars - God of War", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -/* disp1 */GAME(1981, marspf, marsp, gts80_ss, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Mars - God of War (French speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -/* disp1 */GAME(1981, marspp, marsp, gts80_ss, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Mars - God of War (Prototype)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -/* disp1 */GAME(1981, vlcno_ax, 0, gts80_ss, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Volcano", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -/* disp1 */GAME(1981, vlcno_1c, 0, gts80_s, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Volcano (Sound Only set 1)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -/* disp1 */GAME(1981, vlcno_1b, vlcno_1c, gts80_s, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Volcano (Sound Only set 2)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -/* disp1 */GAME(1981, vlcno_1a, vlcno_1c, gts80_s, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Volcano (Sound Only set 3)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -/* disp2 */GAME(1981, blckhole, 0, gts80_ss, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Black Hole (Rev. 4)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -/* disp2 */GAME(1981, blckhole2, blckhole, gts80_ss, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Black Hole (Rev. 2)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -/* disp2 */GAME(1981, blckhols, 0, gts80_s, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Black Hole (Sound Only)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) -/* disp2 */GAME(1982, hh, 0, gts80_hh, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Haunted House (Rev. 2)", MACHINE_IS_SKELETON_MECHANICAL ) // MACHINE_SUPPORTS_SAVE crashes MAME at start -/* disp2 */GAME(1982, hh_1, hh, gts80_hh, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Haunted House (Rev. 1)", MACHINE_IS_SKELETON_MECHANICAL ) // MACHINE_SUPPORTS_SAVE crashes MAME at start -/* disp2 */GAME(1981, eclipse, 0, gts80_s, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Eclipse", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1981, s80tst, 0, r1v, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "System 80 Test", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) + +GAME(1980, panthera, 0, p2, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Panthera", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1980, grand8, panthera, p0, gts80, gts80_state, empty_init, ROT0, "Christian Tabart", "Le Grand 8", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1980, spidermn, 0, p2, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "The Amazing Spider-Man", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1980, circusp, 0, p2, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Circus", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1980, cntforce, 0, p2, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Counterforce", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1980, starrace, 0, p2, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Star Race", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1980, jamesb, 0, p2, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "James Bond (Timed Play)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1980, jamesb2, jamesb, p2, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "James Bond (3/5-Ball)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1980, timeline, 0, p2, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Time Line", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1981, forceii, 0, p2, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Force II", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1981, pnkpnthr, 0, p2, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Pink Panther", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1981, marsp, 0, r1v, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Mars - God of War", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1981, marspf, marsp, r1v, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Mars - God of War (French speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1981, marspp, marsp, r1v, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Mars - God of War (Prototype)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1981, vlcno_ax, 0, r1v, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Volcano", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1981, vlcno_1c, 0, p2, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Volcano (Sound Only set 1)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1981, vlcno_1b, vlcno_1c, p2, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Volcano (Sound Only set 2)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1981, vlcno_1a, vlcno_1c, p2, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Volcano (Sound Only set 3)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1981, blckhole, 0, r1v, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Black Hole (Rev. 4)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1981, blckhole2, blckhole, r1v, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Black Hole (Rev. 2)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1981, blckhols, 0, p2, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Black Hole (Sound Only)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1982, hh, 0, r1, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Haunted House (Rev. 2)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1982, hh_1, hh, r1, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Haunted House (Rev. 1)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) +GAME(1981, eclipse, 0, p2, gts80, gts80_state, empty_init, ROT0, "Gottlieb", "Eclipse", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/gts80a.cpp b/src/mame/drivers/gts80a.cpp index 98536b101a3..5dd4dc2b3a4 100644 --- a/src/mame/drivers/gts80a.cpp +++ b/src/mame/drivers/gts80a.cpp @@ -44,6 +44,14 @@ El Dorado 692 1 X Ice Fever 695 1 then unknown X Caveman PV810 1 then unknown X + +Status: +- All games are playable +- Lots of issues with the sound + +ToDo: +- rflshdlx: no sound + *****************************************************************************************************************/ #include "emu.h" @@ -71,15 +79,17 @@ public: , m_riot3(*this, "riot3") , m_io_dips(*this, "DSW%d", 0U) , m_io_keyboard(*this, "X%d", 0U) - , m_r0_sound(*this, "r0sound") + , m_p2_sound(*this, "p2sound") , m_r1_sound(*this, "r1sound") , m_digits(*this, "digit%d", 0U) , m_io_outputs(*this, "out%d", 0U) { } - void gts80a(machine_config &config); - void gts80a_s(machine_config &config); - void gts80a_ss(machine_config &config); + void p0(machine_config &config); // base config + void p2(machine_config &config); // multi-mode card + void p3(machine_config &config); // unknown card + void r1(machine_config &config); // r1 + void r1v(machine_config &config); // r1 with votrax DECLARE_INPUT_CHANGED_MEMBER(slam_w); private: @@ -105,9 +115,9 @@ private: required_device m_riot3; required_ioport_array<4> m_io_dips; required_ioport_array<9> m_io_keyboard; - optional_device m_r0_sound; + optional_device m_p2_sound; optional_device m_r1_sound; - output_finder<60> m_digits; + output_finder<80> m_digits; output_finder<57> m_io_outputs; // 8 solenoids, 1 outhole, 48 lamps }; @@ -361,7 +371,9 @@ void gts80a_state::port2a_w(u8 data) break; case 0x40: // credits & balls if (!BIT(m_segment, 7)) m_segment = 1; // turn '1' back to normal - m_digits[(data & 15)+40] = patterns[m_segment & 15]; + m_digits[(data & 15)+60] = patterns[m_segment & 15]; + if (!BIT(m_segment, 7)) seg2 |= 0x300; // put '1' in the middle + m_digits[(data & 15)+40] = seg2; break; } } @@ -383,8 +395,8 @@ void gts80a_state::port3a_w(u8 data) sndcmd = 0; sndcmd ^= 15; // inverted again by Z13 on the A3 board - if (m_r0_sound) - m_r0_sound->write(sndcmd); + if (m_p2_sound) + m_p2_sound->write(sndcmd | 0x40); else if (m_r1_sound) m_r1_sound->write(sndcmd | m_soundex); @@ -472,13 +484,12 @@ void gts80a_state::port3b_w(u8 data) if (m_lamprow && (m_lamprow < 13)) for (u8 i = 0; i < 4; i++) m_io_outputs[m_lamprow*4+i+5] = BIT(data, i); - m_soundex = m_io_outputs[18] << 4; // Sound16 line (there's a Sound32 line, but haven't found its source) + m_soundex = m_io_outputs[18] << 4; // Sound16 line + m_soundex = m_soundex ? 32 : 16; } void gts80a_state::machine_start() { - genpin_class::machine_start(); - m_digits.resolve(); m_io_outputs.resolve(); @@ -491,7 +502,6 @@ void gts80a_state::machine_start() void gts80a_state::machine_reset() { - genpin_class::machine_reset(); for (u8 i = 0; i < m_io_outputs.size(); i++) m_io_outputs[i] = 0; @@ -503,7 +513,7 @@ void gts80a_state::machine_reset() /* with Sound Board */ -void gts80a_state::gts80a(machine_config &config) +void gts80a_state::p0(machine_config &config) { /* basic machine hardware */ M6502(config, m_maincpu, XTAL(3'579'545)/4); @@ -535,19 +545,32 @@ void gts80a_state::gts80a(machine_config &config) /* Sound */ genpin_audio(config); - SPEAKER(config, "speaker").front_center(); + SPEAKER(config, "mono").front_center(); +} + +void gts80a_state::p2(machine_config &config) +{ + p0(config); + GOTTLIEB_SOUND_PIN2(config, m_p2_sound, 0).add_route(ALL_OUTPUTS, "mono", 0.75); +} + +void gts80a_state::p3(machine_config &config) +{ + p0(config); + // To be developed - no schematic has been found + //GOTTLIEB_SOUND_PIN3(config, m_p3_sound, 0).add_route(ALL_OUTPUTS, "mono", 0.75); } -void gts80a_state::gts80a_s(machine_config &config) +void gts80a_state::r1(machine_config &config) { - gts80a(config); - GOTTLIEB_SOUND_REV0(config, m_r0_sound, 0).add_route(ALL_OUTPUTS, "speaker", 0.75); + p0(config); + GOTTLIEB_SOUND_REV1(config, m_r1_sound, 0).add_route(ALL_OUTPUTS, "mono", 0.75); } -void gts80a_state::gts80a_ss(machine_config &config) +void gts80a_state::r1v(machine_config &config) { - gts80a(config); - GOTTLIEB_SOUND_REV1_VOTRAX(config, m_r1_sound, 0).add_route(ALL_OUTPUTS, "speaker", 0.75); + p0(config); + GOTTLIEB_SOUND_REV1_VOTRAX(config, m_r1_sound, 0).add_route(ALL_OUTPUTS, "mono", 0.75); } //******************* CAVEMAN **************************************************************** @@ -615,7 +638,7 @@ void caveman_state::video_io_map(address_map &map) void caveman_state::caveman(machine_config &config) { - gts80a_ss(config); + r1v(config); I8088(config, m_videocpu, 5000000); m_videocpu->set_addrmap(AS_PROGRAM, &caveman_state::video_map); m_videocpu->set_addrmap(AS_IO, &caveman_state::video_io_map); @@ -650,7 +673,7 @@ ROM_START(alienstr) GTS80A_BIOS ROM_LOAD("689.cpu", 0x1000, 0x0800, CRC(4262006b) SHA1(66520b66c31efd0dc654630b2d3567da799b4d89)) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("689-s.snd", 0x0800, 0x0800, CRC(e1e7a610) SHA1(d4eddfc970127cf3a7d086ad46cbc7b95fdc269d)) ROM_END @@ -734,7 +757,7 @@ ROM_START(dvlsdre2) GTS80A_BIOS ROM_LOAD("670-a.cpu", 0x1000, 0x0800, CRC(353b2e18) SHA1(270365ea8276b64e38939f0bf88ddb955d59cd4d)) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("670-a-s.snd", 0x0400, 0x0400, CRC(f141d535) SHA1(91e4ab9ce63b5ff3e395b6447a104286327b5533)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) @@ -747,7 +770,7 @@ ROM_START(eldorado) GTS80A_BIOS ROM_LOAD("692-2.cpu", 0x1000, 0x0800, CRC(4ee6d09b) SHA1(5da0556204e76029380366f9fbb5662715cc3257)) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("692-s.snd", 0x0800, 0x0800, CRC(9bfbf400) SHA1(58aed9c0b1f52bcd0b53edcdf7af576bb175e3d6)) ROM_END @@ -770,7 +793,7 @@ ROM_START(icefever) GTS80A_BIOS ROM_LOAD("695.cpu", 0x1000, 0x0800, CRC(2f6e9caf) SHA1(4f9eeafcbaf758ee6bbad74611b4912ff75b8576)) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("695-s.snd", 0x0800, 0x0800, CRC(daededc2) SHA1(b43303c1e39b21f3fcbc339d440ea051ced1ea26)) ROM_END @@ -781,7 +804,7 @@ ROM_START(jack2opn) GTS80A_BIOS ROM_LOAD("687.cpu", 0x1000, 0x0800, CRC(0080565e) SHA1(c08412ba24d2ffccf11431e80bd2fc95fc4ce02b)) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("687-s.snd", 0x0800, 0x0800, CRC(f9d10b7a) SHA1(db255711ed6cb46d183c0ae3894df447f3d8a8e3)) ROM_END @@ -828,7 +851,7 @@ ROM_START(rackempp) GTS80A_BIOS ROM_LOAD("685.cpu", 0x1000, 0x0800, CRC(4754d68d) SHA1(2af743287c1a021f3e130d3d6e191ec9724d640c)) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("685-s.snd", 0x0800, 0x0800, CRC(d4219987) SHA1(7385d8723bdc937e7c9d6bf7f26ca06f64a9a212)) ROM_END @@ -839,7 +862,7 @@ ROM_START(raimfire) GTS80A_BIOS ROM_LOAD("686.cpu", 0x1000, 0x0800, CRC(d1e7a0de) SHA1(b9af2fcaadc55d37c7d9d22621c3817eb751de6b)) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("686-s.snd", 0x0800, 0x0800, CRC(09740682) SHA1(4f36d78207bd5b8e7abb7118f03acbb3885173c2)) ROM_END @@ -920,7 +943,7 @@ ROM_START(thegames) GTS80A_BIOS ROM_LOAD("691.cpu", 0x1000, 0x0800, CRC(50f620ea) SHA1(2f997a637eba4eb362586d3aa8caac44acccc795)) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("691-s.snd", 0x0800, 0x0800, CRC(d7011a31) SHA1(edf5de6cf5ddc1eb577dd1d8dcc9201522df8315)) ROM_END @@ -931,34 +954,34 @@ ROM_START(touchdn) GTS80A_BIOS ROM_LOAD("688.cpu", 0x1000, 0x0800, CRC(e531ab3f) SHA1(695aef0dd911fee27ac2d1493a9646b5430a07d5)) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p2sound:audiocpu", 0) ROM_LOAD("688-s.snd", 0x0800, 0x0800, CRC(5e9988a6) SHA1(5f531491722d3c30cf4a7c17982813a7c548387a)) ROM_END } // Anonymous namespace -/* cust */GAME( 1981, dvlsdre, 0, gts80a_ss, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Devil's Dare", MACHINE_IS_SKELETON_MECHANICAL) -/* cust */GAME( 1981, dvlsdre2, 0, gts80a_s, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Devil's Dare (Sound Only)", MACHINE_IS_SKELETON_MECHANICAL) -/* cust */GAME( 1982, rocky, 0, gts80a_ss, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Rocky", MACHINE_IS_SKELETON_MECHANICAL) -/* cust */GAME( 1982, rockyf, rocky, gts80a_ss, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Rocky (French speech)", MACHINE_IS_SKELETON_MECHANICAL) -/* cust */GAME( 1982, spirit, 0, gts80a_ss, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Spirit", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME( 1982, punk, 0, gts80a_ss, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Punk!", MACHINE_IS_SKELETON_MECHANICAL) -/* cust */GAME( 1982, striker, 0, gts80a_ss, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Striker (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) -/* cust */GAME( 1983, krullp, 0, gts80a_ss, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Krull (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME( 1983, qbquest, 0, gts80a_ss, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Q*Bert's Quest", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME( 1983, sorbit, 0, gts80a_ss, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Super Orbit", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME( 1983, rflshdlx, 0, gts80a_ss, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Royal Flush Deluxe", MACHINE_IS_SKELETON_MECHANICAL) -/* cust */GAME( 1983, goinnuts, 0, gts80a_ss, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Goin' Nuts", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME( 1983, amazonh, 0, gts80a_ss, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Amazon Hunt", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME( 1983, amazonha, amazonh, gts80a_ss, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Amazon Hunt (alternate set)", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME( 1983, rackempp, 0, gts80a_s, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Rack 'em Up! (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME( 1983, raimfire, 0, gts80a_s, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Ready...Aim...Fire!", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME( 1984, jack2opn, 0, gts80a_s, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Jacks to Open", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME( 1984, touchdn, 0, gts80a_s, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Touchdown", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME( 1984, alienstr, 0, gts80a_s, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Alien Star", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME( 1984, thegames, 0, gts80a_s, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "The Games", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME( 1984, eldorado, 0, gts80a_s, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "El Dorado City of Gold", MACHINE_IS_SKELETON_MECHANICAL) -/* disp3 */GAME( 1985, icefever, 0, gts80a_s, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Ice Fever", MACHINE_IS_SKELETON_MECHANICAL) +/* cust */GAME( 1981, dvlsdre, 0, r1v, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Devil's Dare", MACHINE_IS_SKELETON_MECHANICAL) +/* cust */GAME( 1981, dvlsdre2, 0, p2, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Devil's Dare (Sound Only)", MACHINE_IS_SKELETON_MECHANICAL) +/* cust */GAME( 1982, rocky, 0, r1v, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Rocky", MACHINE_IS_SKELETON_MECHANICAL) +/* cust */GAME( 1982, rockyf, rocky, r1v, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Rocky (French speech)", MACHINE_IS_SKELETON_MECHANICAL) +/* cust */GAME( 1982, spirit, 0, r1v, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Spirit", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME( 1982, punk, 0, r1v, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Punk!", MACHINE_IS_SKELETON_MECHANICAL) +/* cust */GAME( 1982, striker, 0, r1v, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Striker (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) +/* cust */GAME( 1983, krullp, 0, r1v, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Krull (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME( 1983, qbquest, 0, r1v, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Q*Bert's Quest", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME( 1983, sorbit, 0, r1v, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Super Orbit", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME( 1983, rflshdlx, 0, r1v, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Royal Flush Deluxe", MACHINE_IS_SKELETON_MECHANICAL) +/* cust */GAME( 1983, goinnuts, 0, r1, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Goin' Nuts", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME( 1983, amazonh, 0, r1v, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Amazon Hunt", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME( 1983, amazonha, amazonh, r1v, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Amazon Hunt (alternate set)", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME( 1983, rackempp, 0, p3, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Rack 'em Up! (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME( 1983, raimfire, 0, p3, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Ready...Aim...Fire!", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME( 1984, jack2opn, 0, p3, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Jacks to Open", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME( 1984, touchdn, 0, p3, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Touchdown", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME( 1984, alienstr, 0, p3, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Alien Star", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME( 1984, thegames, 0, p3, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "The Games", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME( 1984, eldorado, 0, p3, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "El Dorado City of Gold", MACHINE_IS_SKELETON_MECHANICAL) +/* disp3 */GAME( 1985, icefever, 0, p3, gts80a, gts80a_state, empty_init, ROT0, "Gottlieb", "Ice Fever", MACHINE_IS_SKELETON_MECHANICAL) /* custom (+video) */ GAME( 1981, caveman, 0, caveman, caveman, caveman_state, empty_init, ROT0, "Gottlieb", "Caveman (Pinball/Video Combo, set 1)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/gts80b.cpp b/src/mame/drivers/gts80b.cpp index 53dddfcffdf..bd1059d0cb1 100644 --- a/src/mame/drivers/gts80b.cpp +++ b/src/mame/drivers/gts80b.cpp @@ -60,6 +60,8 @@ ManilaMatic Games: ToDo: - Electronic sounds - Most sound boards to be emulated +- The r2 sound board can crash (cpu jumps to 0000 because of a stack overflow). +- p3 sound card to be written, haven't found a schematic as manuals are hard to obtain *****************************************************************************************************************/ @@ -87,20 +89,23 @@ public: , m_riot3(*this, "riot3") , m_io_dips(*this, "DSW%d", 0U) , m_io_keyboard(*this, "X%d", 0U) - , m_r0_sound(*this, "r0sound") - , m_r1_sound(*this, "r1sound") + //, 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) { } - void gts80b_s2(machine_config &config); - void gts80b_s3(machine_config &config); - void bonebstr(machine_config &config); - void gts80b_s1(machine_config &config); - void gts80b_s(machine_config &config); - void gts80b(machine_config &config); + 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); // same as p4 but no ay chips + void p6(machine_config &config); // no schematic available + void r2(machine_config &config); // r2 (2x ay, spo250, dac) DECLARE_INPUT_CHANGED_MEMBER(slam_w); - void init_s80c(); + void init_s80c() { m_slam_low = true; } private: u8 port1a_r(); @@ -130,8 +135,11 @@ private: required_device m_riot3; required_ioport_array<4> m_io_dips; required_ioport_array<9> m_io_keyboard; - optional_device m_r0_sound; - optional_device m_r1_sound; + //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 }; @@ -444,11 +452,12 @@ void gts80b_state::port3a_w(u8 data) sndcmd = 0; sndcmd ^= 15; // inverted again by Z13 on the A3 board - if (m_r0_sound) - m_r0_sound->write(sndcmd); - else - if (m_r1_sound) - m_r1_sound->write(sndcmd | m_soundex); + if (m_r2_sound) + { + if (sndcmd == 15) + m_soundex = 0xf0; + m_r2_sound->write(sndcmd | m_soundex); + } // Solenoids group 1 if (!BIT(data, 5)) @@ -533,13 +542,12 @@ void gts80b_state::port3b_w(u8 data) if (m_lamprow && (m_lamprow < 13)) for (u8 i = 0; i < 4; i++) m_io_outputs[m_lamprow*4+i+5] = BIT(data, i); - m_soundex = m_io_outputs[18] << 4; // Sound16 line (there's a Sound32 line, but haven't found its source) + // confirmed with Hollywood Heat - ball must start with siren + m_soundex = m_io_outputs[13] ? 0xe0 : 0xf0; // r2 sound16 } void gts80b_state::machine_start() { - genpin_class::machine_start(); - m_digits.resolve(); m_io_outputs.resolve(); @@ -555,7 +563,6 @@ void gts80b_state::machine_start() void gts80b_state::machine_reset() { - genpin_class::machine_reset(); for (u8 i = 0; i < m_io_outputs.size(); i++) m_io_outputs[i] = 0; @@ -570,15 +577,8 @@ void gts80b_state::machine_reset() m_digit[1] = 0; } -// The last bunch of machines has slam-tilt normally open -void gts80b_state::init_s80c() -{ - m_slam_low = true; -} - - /* with Sound Board */ -void gts80b_state::gts80b(machine_config &config) +void gts80b_state::p0(machine_config &config) { /* basic machine hardware */ M6502(config, m_maincpu, XTAL(3'579'545)/4); @@ -610,53 +610,44 @@ void gts80b_state::gts80b(machine_config &config) /* Sound */ genpin_audio(config); - SPEAKER(config, "speaker").front_center(); + SPEAKER(config, "mono").front_center(); } -void gts80b_state::gts80b_s(machine_config &config) +void gts80b_state::p3(machine_config &config) { - gts80b(config); - GOTTLIEB_SOUND_REV0(config, m_r0_sound, 0).add_route(ALL_OUTPUTS, "speaker", 0.75); -} + p0(config); -//void gts80b_state::gts80b_ss(machine_config &config) -//{ -// gts80b(config); -// GOTTLIEB_SOUND_REV1_VOTRAX(config, m_r1_sound, 0).add_route(ALL_OUTPUTS, "speaker", 0.75); -//} + //GOTTLIEB_SOUND_PIN3(config, m_p3_sound, 0).add_route(ALL_OUTPUTS, "mono", 1.00); +} -void gts80b_state::gts80b_s1(machine_config &config) +void gts80b_state::p4(machine_config &config) { - gts80b(config); + p0(config); - /* related to src/mame/audio/gottlieb.cpp? */ -// gts80s_b1(config); + //GOTTLIEB_SOUND_PIN4(config, m_p4_sound, 0).add_route(ALL_OUTPUTS, "mono", 1.00); } -void gts80b_state::gts80b_s2(machine_config &config) +void gts80b_state::p5(machine_config &config) { - gts80b(config); + p0(config); - /* related to src/mame/audio/gottlieb.cpp? */ -// gts80s_b2(config); + //GOTTLIEB_SOUND_PIN5(config, m_p5_sound, 0).add_route(ALL_OUTPUTS, "mono", 1.00); } -void gts80b_state::gts80b_s3(machine_config &config) +void gts80b_state::p6(machine_config &config) { - gts80b(config); + p0(config); - /* related to src/mame/audio/gottlieb.cpp? */ -// gts80s_b3(config); + //GOTTLIEB_SOUND_PIN6(config, m_p6_sound, 0).add_route(ALL_OUTPUTS, "mono", 1.00); } -void gts80b_state::bonebstr(machine_config &config) +void gts80b_state::r2(machine_config &config) { - gts80b(config); - - /* related to src/mame/audio/gottlieb.cpp? */ -// gts80s_b3a(config); + p0(config); + GOTTLIEB_SOUND_REV2(config, m_r2_sound, 0).add_route(ALL_OUTPUTS, "mono", 1.00); } + /* SYSTEM-80B ALTERNATE ROMS ======================================================================= This is a list of known alternate roms. Nothing has been tested. Comments are derived from the roms. @@ -860,10 +851,14 @@ ROM_START(amazonh2) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", ROMREGION_ERASEFF) + ROM_REGION(0x10000, "r2sound:speechcpu", ROMREGION_ERASEFF) + // small program to stop the error log from filling up + ROM_FILL(0xdddd,1,0x4c) + ROM_FILL(0xddde,2,0xdd) + ROM_FILL(0xfff8,8,0xdd) - ROM_REGION(0x10000, "cpu2", 0) - ROM_LOAD("684c-snd.rom",0xe000,0x2000, CRC(182d64e1) SHA1(c0aaa646a3d53cf00aa23e0b8d46bbb70ce46e5c)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("684c-snd.rom",0xc000,0x2000, CRC(182d64e1) SHA1(c0aaa646a3d53cf00aa23e0b8d46bbb70ce46e5c)) ROM_END /*------------------------------------------------------------------- @@ -910,10 +905,10 @@ ROM_START(arena) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(78e6cbf1) SHA1(7b66a0cb211a93cf475172aa0465a952009e1a59)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(78e6cbf1) SHA1(7b66a0cb211a93cf475172aa0465a952009e1a59)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(f7a951c2) SHA1(12d7a6119d9033ae02c6312c9af888bfc7c63ad1)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(cc2aef4e) SHA1(a6e243de99f6a76eb527e879f4441c036dd379b6)) ROM_END @@ -929,10 +924,10 @@ ROM_START(arenaa) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(78e6cbf1) SHA1(7b66a0cb211a93cf475172aa0465a952009e1a59)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(78e6cbf1) SHA1(7b66a0cb211a93cf475172aa0465a952009e1a59)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(f7a951c2) SHA1(12d7a6119d9033ae02c6312c9af888bfc7c63ad1)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(cc2aef4e) SHA1(a6e243de99f6a76eb527e879f4441c036dd379b6)) ROM_END @@ -948,10 +943,10 @@ ROM_START(arenaf) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(78e6cbf1) SHA1(7b66a0cb211a93cf475172aa0465a952009e1a59)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(78e6cbf1) SHA1(7b66a0cb211a93cf475172aa0465a952009e1a59)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(f7a951c2) SHA1(12d7a6119d9033ae02c6312c9af888bfc7c63ad1)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(cc2aef4e) SHA1(a6e243de99f6a76eb527e879f4441c036dd379b6)) ROM_END @@ -967,10 +962,10 @@ ROM_START(arenag) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(78e6cbf1) SHA1(7b66a0cb211a93cf475172aa0465a952009e1a59)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(78e6cbf1) SHA1(7b66a0cb211a93cf475172aa0465a952009e1a59)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(f7a951c2) SHA1(12d7a6119d9033ae02c6312c9af888bfc7c63ad1)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(cc2aef4e) SHA1(a6e243de99f6a76eb527e879f4441c036dd379b6)) ROM_END @@ -1165,7 +1160,7 @@ ROM_START(bountyh) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p3sound:audiocpu", 0) ROM_LOAD("694-s.snd", 0x0800, 0x0800, CRC(a0383e41) SHA1(156514d2b52fcd89b608b85991c5066780949979)) ROM_END @@ -1176,7 +1171,7 @@ ROM_START(bountyhg) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p3sound:audiocpu", 0) ROM_LOAD("694-s.snd", 0x0800, 0x0800, CRC(a0383e41) SHA1(156514d2b52fcd89b608b85991c5066780949979)) ROM_END @@ -1190,7 +1185,7 @@ ROM_START(triplay) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p3sound:audiocpu", 0) ROM_LOAD("696-s.snd", 0x0800, 0x0800, CRC(deedea61) SHA1(6aec221397f250d5dd99faefa313e8028c8818f7)) ROM_END @@ -1201,7 +1196,7 @@ ROM_START(triplaya) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p3sound:audiocpu", 0) ROM_LOAD("696-s.snd", 0x0800, 0x0800, CRC(deedea61) SHA1(6aec221397f250d5dd99faefa313e8028c8818f7)) ROM_END @@ -1212,7 +1207,7 @@ ROM_START(triplayg) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p3sound:audiocpu", 0) ROM_LOAD("696-s.snd", 0x0800, 0x0800, CRC(deedea61) SHA1(6aec221397f250d5dd99faefa313e8028c8818f7)) ROM_END @@ -1344,10 +1339,10 @@ ROM_START(genesisp) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(758e1743) SHA1(6df3011c044796afcd88e52d1ca69692cb489ff4)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(758e1743) SHA1(6df3011c044796afcd88e52d1ca69692cb489ff4)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(4869b0ec) SHA1(b8a56753257205af56e06105515b8a700bb1935b)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(0528c024) SHA1(d24ff7e088b08c1f35b54be3c806f8a8757d96c7)) ROM_END @@ -1363,10 +1358,10 @@ ROM_START(genesispf) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(758e1743) SHA1(6df3011c044796afcd88e52d1ca69692cb489ff4)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(758e1743) SHA1(6df3011c044796afcd88e52d1ca69692cb489ff4)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(4869b0ec) SHA1(b8a56753257205af56e06105515b8a700bb1935b)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(0528c024) SHA1(d24ff7e088b08c1f35b54be3c806f8a8757d96c7)) ROM_END @@ -1382,10 +1377,10 @@ ROM_START(genesispg) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(758e1743) SHA1(6df3011c044796afcd88e52d1ca69692cb489ff4)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(758e1743) SHA1(6df3011c044796afcd88e52d1ca69692cb489ff4)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(4869b0ec) SHA1(b8a56753257205af56e06105515b8a700bb1935b)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(0528c024) SHA1(d24ff7e088b08c1f35b54be3c806f8a8757d96c7)) ROM_END @@ -1404,10 +1399,10 @@ ROM_START(goldwing) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(892dbb21) SHA1(e24611544693e95dd2b9c0f2532c4d1f0b8ac10c)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(892dbb21) SHA1(e24611544693e95dd2b9c0f2532c4d1f0b8ac10c)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(e17e9b1f) SHA1(ada9a6139a13ef31173801d560ec732d5a285140)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(4e482023) SHA1(62e97d229eb28ff67f0ebc4ee04c1b4918a4affe)) ROM_END @@ -1423,10 +1418,10 @@ ROM_START(goldwingf) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(892dbb21) SHA1(e24611544693e95dd2b9c0f2532c4d1f0b8ac10c)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(892dbb21) SHA1(e24611544693e95dd2b9c0f2532c4d1f0b8ac10c)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(e17e9b1f) SHA1(ada9a6139a13ef31173801d560ec732d5a285140)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(4e482023) SHA1(62e97d229eb28ff67f0ebc4ee04c1b4918a4affe)) ROM_END @@ -1442,10 +1437,10 @@ ROM_START(goldwingg) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(892dbb21) SHA1(e24611544693e95dd2b9c0f2532c4d1f0b8ac10c)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(892dbb21) SHA1(e24611544693e95dd2b9c0f2532c4d1f0b8ac10c)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(e17e9b1f) SHA1(ada9a6139a13ef31173801d560ec732d5a285140)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(4e482023) SHA1(62e97d229eb28ff67f0ebc4ee04c1b4918a4affe)) ROM_END @@ -1464,10 +1459,10 @@ ROM_START(hlywoodh) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(a698ec33) SHA1(e7c1d28279ec4f12095c3a106c6cefcc2a84b31e)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(a698ec33) SHA1(e7c1d28279ec4f12095c3a106c6cefcc2a84b31e)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(9232591e) SHA1(72883e0c542c572226c6c654bea14749cc9e351f)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(51709c2f) SHA1(5834d7b72bd36e30c87377dc7c3ad0cf26ff303a)) ROM_END @@ -1483,10 +1478,10 @@ ROM_START(hlywoodhf) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(a698ec33) SHA1(e7c1d28279ec4f12095c3a106c6cefcc2a84b31e)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(a698ec33) SHA1(e7c1d28279ec4f12095c3a106c6cefcc2a84b31e)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(9232591e) SHA1(72883e0c542c572226c6c654bea14749cc9e351f)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(51709c2f) SHA1(5834d7b72bd36e30c87377dc7c3ad0cf26ff303a)) ROM_END @@ -1502,10 +1497,10 @@ ROM_START(hlywoodhg) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(a698ec33) SHA1(e7c1d28279ec4f12095c3a106c6cefcc2a84b31e)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(a698ec33) SHA1(e7c1d28279ec4f12095c3a106c6cefcc2a84b31e)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(9232591e) SHA1(72883e0c542c572226c6c654bea14749cc9e351f)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(51709c2f) SHA1(5834d7b72bd36e30c87377dc7c3ad0cf26ff303a)) ROM_END @@ -1581,10 +1576,10 @@ ROM_START(mntecrlo) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(1a53ac15) SHA1(f2751664a09431e908873580ddf4f44df9b4eda7)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(1a53ac15) SHA1(f2751664a09431e908873580ddf4f44df9b4eda7)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(6e234c49) SHA1(fdb4126ecdaac378d144e9dd3c29b4e79290da2a)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(a95d1a6b) SHA1(91946ef7af0e4dd96db6d2d6f4f2e9a3a7279b81)) ROM_END @@ -1600,10 +1595,10 @@ ROM_START(mntecrloa) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(1a53ac15) SHA1(f2751664a09431e908873580ddf4f44df9b4eda7)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(1a53ac15) SHA1(f2751664a09431e908873580ddf4f44df9b4eda7)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(6e234c49) SHA1(fdb4126ecdaac378d144e9dd3c29b4e79290da2a)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(a95d1a6b) SHA1(91946ef7af0e4dd96db6d2d6f4f2e9a3a7279b81)) ROM_END @@ -1619,10 +1614,10 @@ ROM_START(mntecrlof) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(1a53ac15) SHA1(f2751664a09431e908873580ddf4f44df9b4eda7)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(1a53ac15) SHA1(f2751664a09431e908873580ddf4f44df9b4eda7)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(6e234c49) SHA1(fdb4126ecdaac378d144e9dd3c29b4e79290da2a)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(a95d1a6b) SHA1(91946ef7af0e4dd96db6d2d6f4f2e9a3a7279b81)) ROM_END @@ -1638,10 +1633,10 @@ ROM_START(mntecrlog) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(1a53ac15) SHA1(f2751664a09431e908873580ddf4f44df9b4eda7)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(1a53ac15) SHA1(f2751664a09431e908873580ddf4f44df9b4eda7)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(6e234c49) SHA1(fdb4126ecdaac378d144e9dd3c29b4e79290da2a)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(a95d1a6b) SHA1(91946ef7af0e4dd96db6d2d6f4f2e9a3a7279b81)) ROM_END @@ -1657,10 +1652,10 @@ ROM_START(mntecrlo2) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(1a53ac15) SHA1(f2751664a09431e908873580ddf4f44df9b4eda7)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(1a53ac15) SHA1(f2751664a09431e908873580ddf4f44df9b4eda7)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(6e234c49) SHA1(fdb4126ecdaac378d144e9dd3c29b4e79290da2a)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(a95d1a6b) SHA1(91946ef7af0e4dd96db6d2d6f4f2e9a3a7279b81)) ROM_END @@ -1701,10 +1696,10 @@ ROM_START(raven) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(a04bf7d0) SHA1(5be5d445b199e7dc9d42e7ee5e9b31c18dec3881)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(a04bf7d0) SHA1(5be5d445b199e7dc9d42e7ee5e9b31c18dec3881)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(ee5f868b) SHA1(23ef4112b94109ad4d4a6b9bb5215acec20e5e55)) ROM_END @@ -1719,10 +1714,10 @@ ROM_START(raveng) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(a04bf7d0) SHA1(5be5d445b199e7dc9d42e7ee5e9b31c18dec3881)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(a04bf7d0) SHA1(5be5d445b199e7dc9d42e7ee5e9b31c18dec3881)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(ee5f868b) SHA1(23ef4112b94109ad4d4a6b9bb5215acec20e5e55)) ROM_END @@ -1737,10 +1732,10 @@ ROM_START(ravena) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(a04bf7d0) SHA1(5be5d445b199e7dc9d42e7ee5e9b31c18dec3881)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(a04bf7d0) SHA1(5be5d445b199e7dc9d42e7ee5e9b31c18dec3881)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(ee5f868b) SHA1(23ef4112b94109ad4d4a6b9bb5215acec20e5e55)) ROM_END @@ -1793,10 +1788,10 @@ ROM_START(rock) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(03830e81) SHA1(786f85eba5a8f5e9cc659305623e1d178b5410f6)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(03830e81) SHA1(786f85eba5a8f5e9cc659305623e1d178b5410f6)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(effba2ad) SHA1(2288a4f655376e0aa18f8ecd9a3818ed4d6c6891)) ROM_END @@ -1807,10 +1802,10 @@ ROM_START(rockg) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(03830e81) SHA1(786f85eba5a8f5e9cc659305623e1d178b5410f6)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(03830e81) SHA1(786f85eba5a8f5e9cc659305623e1d178b5410f6)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(effba2ad) SHA1(2288a4f655376e0aa18f8ecd9a3818ed4d6c6891)) ROM_END @@ -1824,10 +1819,10 @@ ROM_START(rock_enc) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1a.snd",0xe000,0x2000, CRC(b8aa8912) SHA1(abff690256c0030807b2d4dfa0516496516384e8)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1a.snd",0xc000,0x2000, CRC(b8aa8912) SHA1(abff690256c0030807b2d4dfa0516496516384e8)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1a.snd",0xe000,0x2000, CRC(a62e3b94) SHA1(59636c2ac7ebbd116a0eb39479c97299ba391906)) ROM_LOAD("yrom2a.snd",0xc000,0x2000, CRC(66645a3f) SHA1(f06261af81e6b1829d639933297d2461a8c993fc)) ROM_END @@ -1839,10 +1834,10 @@ ROM_START(rock_encg) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1a.snd",0xe000,0x2000, CRC(b8aa8912) SHA1(abff690256c0030807b2d4dfa0516496516384e8)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1a.snd",0xc000,0x2000, CRC(b8aa8912) SHA1(abff690256c0030807b2d4dfa0516496516384e8)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1a.snd",0xe000,0x2000, CRC(a62e3b94) SHA1(59636c2ac7ebbd116a0eb39479c97299ba391906)) ROM_LOAD("yrom2a.snd",0xc000,0x2000, CRC(66645a3f) SHA1(f06261af81e6b1829d639933297d2461a8c993fc)) ROM_END @@ -1861,10 +1856,10 @@ ROM_START(sprbreak) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(97d3f9ba) SHA1(1b34c7e51373c26d29d757c57a2b0333fe38d19e)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(97d3f9ba) SHA1(1b34c7e51373c26d29d757c57a2b0333fe38d19e)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(5ea89df9) SHA1(98ce7661a4d862fd02c77e69b0f6e9372c3ade2b)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(0fb0128e) SHA1(3bdc5ed11b8e062f71f2a78b955830bd985e80a3)) ROM_END @@ -1880,10 +1875,10 @@ ROM_START(sprbreaka) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(97d3f9ba) SHA1(1b34c7e51373c26d29d757c57a2b0333fe38d19e)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(97d3f9ba) SHA1(1b34c7e51373c26d29d757c57a2b0333fe38d19e)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(5ea89df9) SHA1(98ce7661a4d862fd02c77e69b0f6e9372c3ade2b)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(0fb0128e) SHA1(3bdc5ed11b8e062f71f2a78b955830bd985e80a3)) ROM_END @@ -1899,10 +1894,10 @@ ROM_START(sprbreakf) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(97d3f9ba) SHA1(1b34c7e51373c26d29d757c57a2b0333fe38d19e)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(97d3f9ba) SHA1(1b34c7e51373c26d29d757c57a2b0333fe38d19e)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(5ea89df9) SHA1(98ce7661a4d862fd02c77e69b0f6e9372c3ade2b)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(0fb0128e) SHA1(3bdc5ed11b8e062f71f2a78b955830bd985e80a3)) ROM_END @@ -1918,10 +1913,10 @@ ROM_START(sprbreakg) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(97d3f9ba) SHA1(1b34c7e51373c26d29d757c57a2b0333fe38d19e)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(97d3f9ba) SHA1(1b34c7e51373c26d29d757c57a2b0333fe38d19e)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(5ea89df9) SHA1(98ce7661a4d862fd02c77e69b0f6e9372c3ade2b)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(0fb0128e) SHA1(3bdc5ed11b8e062f71f2a78b955830bd985e80a3)) ROM_END @@ -1937,10 +1932,10 @@ ROM_START(sprbreaks) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(97d3f9ba) SHA1(1b34c7e51373c26d29d757c57a2b0333fe38d19e)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(97d3f9ba) SHA1(1b34c7e51373c26d29d757c57a2b0333fe38d19e)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(5ea89df9) SHA1(98ce7661a4d862fd02c77e69b0f6e9372c3ade2b)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(0fb0128e) SHA1(3bdc5ed11b8e062f71f2a78b955830bd985e80a3)) ROM_END @@ -1959,7 +1954,7 @@ ROM_START(tagteamp) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p3sound:audiocpu", 0) ROM_LOAD("698-s.snd", 0x0800, 0x0800, CRC(9c8191b7) SHA1(12b017692f078dcdc8e4bbf1ffcea1c5d0293d06)) ROM_END @@ -1974,7 +1969,7 @@ ROM_START(tagteampg) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p3sound:audiocpu", 0) ROM_LOAD("698-s.snd", 0x0800, 0x0800, CRC(9c8191b7) SHA1(12b017692f078dcdc8e4bbf1ffcea1c5d0293d06)) ROM_END @@ -1989,7 +1984,7 @@ ROM_START(tagteamp2) ROM_RELOAD(0xa000, 0x2000) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x1000, "r0sound:audiocpu", 0) + ROM_REGION(0x1000, "p3sound:audiocpu", 0) ROM_LOAD("698-s.snd", 0x0800, 0x0800, CRC(9c8191b7) SHA1(12b017692f078dcdc8e4bbf1ffcea1c5d0293d06)) ROM_END @@ -2150,10 +2145,10 @@ ROM_START(mmmaster) ROM_LOAD("gprom.cpu", 0x0000, 0x8000, CRC(0ffacb1d) SHA1(c609f49e0933ceb3d7eb1725a3ba0f1486978bd6)) ROM_RELOAD(0x8000, 0x8000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1.snd",0xe000,0x2000, CRC(758e1743) SHA1(6df3011c044796afcd88e52d1ca69692cb489ff4)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1.snd",0xc000,0x2000, CRC(758e1743) SHA1(6df3011c044796afcd88e52d1ca69692cb489ff4)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1.snd",0xe000,0x2000, CRC(4869b0ec) SHA1(b8a56753257205af56e06105515b8a700bb1935b)) ROM_LOAD("yrom2.snd",0xc000,0x2000, CRC(0528c024) SHA1(d24ff7e088b08c1f35b54be3c806f8a8757d96c7)) ROM_END @@ -2168,10 +2163,10 @@ ROM_START(topsound) ROM_LOAD("mm_ts_2.cpu", 0x2000, 0x2000, CRC(a525aac8) SHA1(9389688e053beb7db45278524c4d62cf067f817d)) ROM_RELOAD(0xe000, 0x2000) - ROM_REGION(0x10000, "cpu3", 0) - ROM_LOAD("drom1a.snd",0xe000,0x2000, CRC(b8aa8912) SHA1(abff690256c0030807b2d4dfa0516496516384e8)) + ROM_REGION(0x10000, "r2sound:audiocpu", 0) + ROM_LOAD("drom1a.snd",0xc000,0x2000, CRC(b8aa8912) SHA1(abff690256c0030807b2d4dfa0516496516384e8)) - ROM_REGION(0x10000, "cpu2", 0) + ROM_REGION(0x10000, "r2sound:speechcpu", 0) ROM_LOAD("yrom1a.snd",0xe000,0x2000, CRC(a62e3b94) SHA1(59636c2ac7ebbd116a0eb39479c97299ba391906)) ROM_LOAD("yrom2a.snd",0xc000,0x2000, CRC(66645a3f) SHA1(f06261af81e6b1829d639933297d2461a8c993fc)) ROM_END @@ -2179,74 +2174,74 @@ ROM_END } // Anonymous namespace -GAME(1985, bountyh, 0, gts80b_s, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Bounty Hunter", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, bountyhg, bountyh, gts80b_s, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Bounty Hunter (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, triplay, 0, gts80b_s, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Chicago Cubs' Triple Play", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, triplaya, triplay, gts80b_s, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Chicago Cubs' Triple Play (alternate set)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, triplayg, triplay, gts80b_s, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Chicago Cubs' Triple Play (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, rock, 0, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Rock", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, rockg, rock, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Rock (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, tagteamp, 0, gts80b_s, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Tag-Team Wrestling", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, tagteampg, tagteamp, gts80b_s, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Tag-Team Wrestling (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1985, tagteamp2, tagteamp, gts80b_s, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Tag-Team Wrestling (rev.2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, raven, 0, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Raven", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, ravena, raven, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Raven (alternate set)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, raveng, raven, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Raven (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, hlywoodh, 0, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Hollywood Heat", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, hlywoodhf, hlywoodh, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Hollywood Heat (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, hlywoodhg, hlywoodh, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Hollywood Heat (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, rock_enc, rock, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Rock Encore", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, rock_encg, rock, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Rock Encore (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, genesisp, 0, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Genesis", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, genesispf, genesisp, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Genesis (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, genesispg, genesisp, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Genesis (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, amazonh2, 0, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Amazon Hunt II (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, sprbreak, 0, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Spring Break", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, sprbreaka, sprbreak, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Spring Break (alternate set)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, sprbreakf, sprbreak, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Spring Break (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, sprbreakg, sprbreak, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Spring Break (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, sprbreaks, sprbreak, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Spring Break (single ball game)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, goldwing, 0, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Gold Wings", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, goldwingf, goldwing, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Gold Wings (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1986, goldwingg, goldwing, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Gold Wings (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, mntecrlo, 0, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Monte Carlo (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, mntecrloa, mntecrlo, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Monte Carlo (Pinball, alternate set)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, mntecrlof, mntecrlo, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Monte Carlo (Pinball, French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, mntecrlog, mntecrlo, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Monte Carlo (Pinball, German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, mntecrlo2, mntecrlo, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Monte Carlo (Pinball, rev. 2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, arena, 0, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Arena", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, arenaa, arena, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Arena (alternate set)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, arenaf, arena, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Arena (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, arenag, arena, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Arena (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, victoryp, 0, gts80b_s2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Victory (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, victorypf, victoryp, gts80b_s2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Victory (Pinball, French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, victorypg, victoryp, gts80b_s2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Victory (Pinball, German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, diamondp, 0, gts80b_s2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Diamond Lady", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, diamondpf, diamondp, gts80b_s2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Diamond Lady (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, diamondpg, diamondp, gts80b_s2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Diamond Lady (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, txsector, 0, gts80b_s2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "TX-Sector", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, txsectorf, txsector, gts80b_s2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "TX-Sector (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, txsectorg, txsector, gts80b_s2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "TX-Sector (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, bighouse, 0, gts80b_s3, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Big House", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, bighousef, bighouse, gts80b_s3, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Big House (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, bighouseg, bighouse, gts80b_s3, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Big House (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, robowars, 0, gts80b_s2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Robo-War", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, robowarsf, robowars, gts80b_s2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Robo-War (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, excalibr, 0, gts80b_s3, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Excalibur", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, excalibrf, excalibr, gts80b_s3, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Excalibur (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, excalibrg, excalibr, gts80b_s3, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Excalibur (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, badgirls, 0, gts80b_s3, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bad Girls", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, badgirlsf, badgirls, gts80b_s3, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bad Girls (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, badgirlsg, badgirls, gts80b_s3, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bad Girls (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, hotshots, 0, gts80b_s2, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Hot Shots", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, hotshotsf, hotshots, gts80b_s2, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Hot Shots (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, hotshotsg, hotshots, gts80b_s2, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Hot Shots (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, bonebstr, 0, bonebstr, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bone Busters Inc.", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, bonebstrf, bonebstr, bonebstr, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bone Busters Inc. (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, bonebstrg, bonebstr, bonebstr, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bone Busters Inc. (German)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1989, nmoves, 0, gts80b_s2, gts80b, gts80b_state, init_s80c, ROT0, "International Concepts", "Night Moves", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, amazonh3, 0, gts80b_s1, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Amazon Hunt III (French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, amazonh3a, amazonh3, gts80b_s1, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Amazon Hunt III (rev. 1, French)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(198?, s80btest, 0, gts80b_s2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "System 80B Test", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, mmmaster, 0, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "ManilaMatic", "Master", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1988, topsound, 0, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "ManilaMatic", "Top Sound (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, bountyh, 0, p3, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Bounty Hunter", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, bountyhg, bountyh, p3, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Bounty Hunter (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, triplay, 0, p3, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Chicago Cubs' Triple Play", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, triplaya, triplay, p3, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Chicago Cubs' Triple Play (alternate set)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, triplayg, triplay, p3, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Chicago Cubs' Triple Play (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, rock, 0, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Rock", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, rockg, rock, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Rock (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, tagteamp, 0, p3, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Tag-Team Wrestling", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, tagteampg, tagteamp, p3, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Tag-Team Wrestling (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1985, tagteamp2, tagteamp, p3, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Tag-Team Wrestling (rev.2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, raven, 0, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Raven", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, ravena, raven, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Raven (alternate set)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, raveng, raven, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Raven (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, hlywoodh, 0, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Hollywood Heat", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, hlywoodhf, hlywoodh, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Hollywood Heat (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, hlywoodhg, hlywoodh, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Hollywood Heat (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, rock_enc, rock, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Rock Encore", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, rock_encg, rock, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Rock Encore (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, genesisp, 0, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Genesis", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, genesispf, genesisp, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Genesis (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, genesispg, genesisp, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Genesis (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, amazonh2, 0, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Amazon Hunt II (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, sprbreak, 0, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Spring Break", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, sprbreaka, sprbreak, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Spring Break (alternate set)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, sprbreakf, sprbreak, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Spring Break (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, sprbreakg, sprbreak, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Spring Break (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, sprbreaks, sprbreak, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Spring Break (single ball game)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, goldwing, 0, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Gold Wings", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, goldwingf, goldwing, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Gold Wings (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1986, goldwingg, goldwing, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Gold Wings (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, mntecrlo, 0, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Monte Carlo (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, mntecrloa, mntecrlo, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Monte Carlo (Pinball, alternate set)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, mntecrlof, mntecrlo, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Monte Carlo (Pinball, French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, mntecrlog, mntecrlo, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Monte Carlo (Pinball, German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, mntecrlo2, mntecrlo, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Monte Carlo (Pinball, rev. 2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, arena, 0, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Arena", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, arenaa, arena, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Arena (alternate set)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, arenaf, arena, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Arena (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, arenag, arena, r2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Arena (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, victoryp, 0, p4, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Victory (Pinball)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, victorypf, victoryp, p4, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Victory (Pinball, French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, victorypg, victoryp, p4, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Victory (Pinball, German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, diamondp, 0, p4, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Diamond Lady", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, diamondpf, diamondp, p4, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Diamond Lady (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, diamondpg, diamondp, p4, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Diamond Lady (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, txsector, 0, p4, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "TX-Sector", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, txsectorf, txsector, p4, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "TX-Sector (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, txsectorg, txsector, p4, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "TX-Sector (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, bighouse, 0, p5, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Big House", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, bighousef, bighouse, p5, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Big House (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, bighouseg, bighouse, p5, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Big House (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, robowars, 0, p4, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Robo-War", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, robowarsf, robowars, p4, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Robo-War (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, excalibr, 0, p5, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Excalibur", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, excalibrf, excalibr, p5, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Excalibur (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, excalibrg, excalibr, p5, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Excalibur (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, badgirls, 0, p5, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bad Girls", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, badgirlsf, badgirls, p5, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bad Girls (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, badgirlsg, badgirls, p5, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bad Girls (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, hotshots, 0, p4, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Hot Shots", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, hotshotsf, hotshots, p4, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Hot Shots (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, hotshotsg, hotshots, p4, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Hot Shots (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, bonebstr, 0, p6, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bone Busters Inc.", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, bonebstrf, bonebstr, p6, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bone Busters Inc. (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, bonebstrg, bonebstr, p6, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Bone Busters Inc. (German)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1989, nmoves, 0, p4, gts80b, gts80b_state, init_s80c, ROT0, "International Concepts", "Night Moves", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, amazonh3, 0, p4, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Amazon Hunt III (French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, amazonh3a, amazonh3, p4, gts80b, gts80b_state, init_s80c, ROT0, "Gottlieb", "Amazon Hunt III (rev. 1, French)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(198?, s80btest, 0, p4, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "System 80B Test", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, mmmaster, 0, r2, gts80b, gts80b_state, empty_init, ROT0, "ManilaMatic", "Master", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1988, topsound, 0, r2, gts80b, gts80b_state, empty_init, ROT0, "ManilaMatic", "Top Sound (French)", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/layout/gts80.lay b/src/mame/layout/gts80.lay index 2a271cb8fd9..b172f8dbcde 100644 --- a/src/mame/layout/gts80.lay +++ b/src/mame/layout/gts80.lay @@ -21,6 +21,7 @@ copyright-holders:Robbbert + @@ -29,8 +30,6 @@ copyright-holders:Robbbert - - @@ -112,21 +111,42 @@ copyright-holders:Robbbert + + + + + + + + + + + + + + + + + + + + - + - + - + - + + diff --git a/src/mame/layout/gts80a.lay b/src/mame/layout/gts80a.lay index 548c385be00..4243977c08c 100644 --- a/src/mame/layout/gts80a.lay +++ b/src/mame/layout/gts80a.lay @@ -24,6 +24,7 @@ copyright-holders:Robbbert + @@ -32,8 +33,6 @@ copyright-holders:Robbbert - - @@ -127,21 +126,45 @@ copyright-holders:Robbbert + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + + -- cgit v1.2.3