summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Robbbert <Robbbert@users.noreply.github.com>2022-03-11 00:18:09 +1100
committer Robbbert <Robbbert@users.noreply.github.com>2022-03-11 00:18:09 +1100
commita0613f2542e679de9217996d57e2f3191d9ed820 (patch)
treeeb7337947efdf3da88cb85c6fcd56fa4f77fd2da
parent5fc61335781782051bddfbe424f86886ffcc55e0 (diff)
gts1,gts80: Improved sound. Added bonus display.
-rw-r--r--src/mame/audio/gottlieb.cpp44
-rw-r--r--src/mame/audio/gottlieb.h13
-rw-r--r--src/mame/drivers/gts1.cpp144
-rw-r--r--src/mame/drivers/gts80.cpp184
-rw-r--r--src/mame/drivers/gts80a.cpp129
-rw-r--r--src/mame/drivers/gts80b.cpp461
-rw-r--r--src/mame/layout/gts80.lay32
-rw-r--r--src/mame/layout/gts80a.lay35
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<riot6532_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<votrax_sc01_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<u8> m_nvram;
required_ioport_array<3> m_dips;
required_ioport_array<7> m_switches;
- optional_device<gottlieb_sound_r0_device> m_r0_sound;
+ optional_device<beep_device> m_p1_sound;
+ optional_device<gottlieb_sound_p2_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<riot6532_device> m_riot3;
required_ioport_array<4> m_io_dips;
required_ioport_array<9> m_io_keyboard;
- optional_device<gottlieb_sound_r0_device> m_r0_sound;
+ optional_device<gottlieb_sound_p2_device> m_p2_sound;
optional_device<gottlieb_sound_r1_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<riot6532_device> m_riot3;
required_ioport_array<4> m_io_dips;
required_ioport_array<9> m_io_keyboard;
- optional_device<gottlieb_sound_r0_device> m_r0_sound;
+ optional_device<gottlieb_sound_p2_device> m_p2_sound;
optional_device<gottlieb_sound_r1_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<riot6532_device> m_riot3;
required_ioport_array<4> m_io_dips;
required_ioport_array<9> m_io_keyboard;
- optional_device<gottlieb_sound_r0_device> m_r0_sound;
- optional_device<gottlieb_sound_r1_device> m_r1_sound;
+ //optional_device<gottlieb_sound_p3_device> m_p3_sound;
+ //optional_device<gottlieb_sound_p4_device> m_p4_sound;
+ //optional_device<gottlieb_sound_p5_device> m_p5_sound;
+ //optional_device<gottlieb_sound_p6_device> m_p6_sound;
+ optional_device<gottlieb_sound_r2_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
</element>
<element name="P0"><text string="Ball / Match"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P1"><text string="Credits"><color red="1.0" green="1.0" blue="1.0" /></text></element>
+ <element name="P2"><text string="Bonus"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P3"><text string="Player 1"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P4"><text string="Player 2"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P5"><text string="Player 3"><color red="1.0" green="1.0" blue="1.0" /></text></element>
@@ -29,8 +30,6 @@ copyright-holders:Robbbert
<view name="Default Layout">
<bounds left="0" top="20" right="274" bottom="394" />
- <!-- LEDs -->
-
<!-- Player 1 Score -->
<element name="digit5" ref="digit">
@@ -112,21 +111,42 @@ copyright-holders:Robbbert
<bounds left="230" top="225" right="264" bottom="264" />
</element>
+ <!-- Bonus Score -->
+ <element name="digit45" ref="digit">
+ <bounds left="10" top="285" right="44" bottom="324" />
+ </element>
+ <element name="digit44" ref="digit">
+ <bounds left="54" top="285" right="88" bottom="324" />
+ </element>
+ <element name="digit43" ref="digit">
+ <bounds left="98" top="285" right="132" bottom="324" />
+ </element>
+ <element name="digit42" ref="digit">
+ <bounds left="142" top="285" right="176" bottom="324" />
+ </element>
+ <element name="digit41" ref="digit">
+ <bounds left="186" top="285" right="220" bottom="324" />
+ </element>
+ <element name="digit40" ref="digit">
+ <bounds left="230" top="285" right="264" bottom="324" />
+ </element>
+
<!-- Credits and Balls -->
- <element name="digit55" ref="digit7">
+ <element name="digit75" ref="digit7">
<bounds left="30" top="345" right="64" bottom="384" />
</element>
- <element name="digit54" ref="digit7">
+ <element name="digit74" ref="digit7">
<bounds left="69" top="345" right="103" bottom="384" />
</element>
- <element name="digit53" ref="digit7">
+ <element name="digit73" ref="digit7">
<bounds left="171" top="345" right="205" bottom="384" />
</element>
- <element name="digit52" ref="digit7">
+ <element name="digit72" ref="digit7">
<bounds left="210" top="345" right="244" bottom="384" />
</element>
<element ref="P0"><bounds left="200" right="258" top="330" bottom="342" /></element>
<element ref="P1"><bounds left="50" right="108" top="330" bottom="342" /></element>
+ <element ref="P2"><bounds left="100" right="180" top="270" bottom="282" /></element>
<element name="text3" ref="P3"><bounds left="100" right="180" top="30" bottom="42" /></element>
<element name="text2" ref="P4"><bounds left="100" right="180" top="90" bottom="102" /></element>
<element name="text1" ref="P5"><bounds left="100" right="180" top="150" bottom="162" /></element>
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
</element>
<element name="P0"><text string="Ball / Match"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P1"><text string="Credits"><color red="1.0" green="1.0" blue="1.0" /></text></element>
+ <element name="P2"><text string="Bonus"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P3"><text string="Player 1"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P4"><text string="Player 2"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P5"><text string="Player 3"><color red="1.0" green="1.0" blue="1.0" /></text></element>
@@ -32,8 +33,6 @@ copyright-holders:Robbbert
<view name="Default Layout">
<bounds left="0" top="20" right="318" bottom="394" />
- <!-- LEDs -->
-
<!-- Player 1 Score -->
<element name="digit5" ref="digit">
@@ -127,21 +126,45 @@ copyright-holders:Robbbert
<bounds left="274" top="225" right="308" bottom="264" />
</element>
+ <!-- Bonus Score -->
+ <element name="digit45" ref="digit">
+ <bounds left="10" top="285" right="44" bottom="324" />
+ </element>
+ <element name="digit44" ref="digit">
+ <bounds left="54" top="285" right="88" bottom="324" />
+ </element>
+ <element name="digit43" ref="digit">
+ <bounds left="98" top="285" right="132" bottom="324" />
+ </element>
+ <element name="digit42" ref="digit">
+ <bounds left="142" top="285" right="176" bottom="324" />
+ </element>
+ <element name="digit41" ref="digit">
+ <bounds left="186" top="285" right="220" bottom="324" />
+ </element>
+ <element name="digit40" ref="digit">
+ <bounds left="230" top="285" right="264" bottom="324" />
+ </element>
+ <element name="digit55" ref="digit">
+ <bounds left="274" top="285" right="308" bottom="324" />
+ </element>
+
<!-- Credits and Balls -->
- <element name="digit55" ref="digit7">
+ <element name="digit75" ref="digit7">
<bounds left="30" top="345" right="64" bottom="384" />
</element>
- <element name="digit54" ref="digit7">
+ <element name="digit74" ref="digit7">
<bounds left="69" top="345" right="103" bottom="384" />
</element>
- <element name="digit53" ref="digit7">
+ <element name="digit73" ref="digit7">
<bounds left="171" top="345" right="205" bottom="384" />
</element>
- <element name="digit52" ref="digit7">
+ <element name="digit72" ref="digit7">
<bounds left="210" top="345" right="244" bottom="384" />
</element>
<element ref="P0"><bounds left="200" right="258" top="330" bottom="342" /></element>
<element ref="P1"><bounds left="50" right="108" top="330" bottom="342" /></element>
+ <element ref="P2"><bounds left="100" right="180" top="270" bottom="282" /></element>
<element name="text3" ref="P3"><bounds left="100" right="180" top="30" bottom="42" /></element>
<element name="text2" ref="P4"><bounds left="100" right="180" top="90" bottom="102" /></element>
<element name="text1" ref="P5"><bounds left="100" right="180" top="150" bottom="162" /></element>