summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame
diff options
context:
space:
mode:
author Robbbert <Robbbert@users.noreply.github.com>2021-10-21 05:57:01 +1100
committer Robbbert <Robbbert@users.noreply.github.com>2021-10-21 05:57:01 +1100
commit11a98f297b3edc9b8380c5b30ea9511a915e5a23 (patch)
tree6c4740d63f1001917b92d5cc4046a5c403f7092f /src/mame
parentb1c764415931c9700552cd456bfeb20fe41ba622 (diff)
gts80: More WIP
Diffstat (limited to 'src/mame')
-rw-r--r--src/mame/drivers/gts1.cpp96
-rw-r--r--src/mame/drivers/gts80.cpp102
-rw-r--r--src/mame/drivers/gts80a.cpp62
-rw-r--r--src/mame/drivers/gts80b.cpp340
4 files changed, 401 insertions, 199 deletions
diff --git a/src/mame/drivers/gts1.cpp b/src/mame/drivers/gts1.cpp
index c59b5f570a0..a1924cf3d82 100644
--- a/src/mame/drivers/gts1.cpp
+++ b/src/mame/drivers/gts1.cpp
@@ -132,7 +132,7 @@ private:
required_region_ptr<u8> m_pm;
required_shared_ptr<u8> m_nvram;
required_ioport_array<3> m_dips;
- required_ioport_array<6> m_switches;
+ required_ioport_array<7> m_switches;
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
@@ -256,59 +256,62 @@ INPUT_PORTS_END
static INPUT_PORTS_START( gts1_switches )
PORT_START("X0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("Play/Test")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("SW.10")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("SW.20")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("SW.30")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("SW.40")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("SW.50")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("SW.60")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_G) PORT_NAME("SW.70")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("Play/Test")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("INP10")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("INP20")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("INP30")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("INP40")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("INP50")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("INP60")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_G) PORT_NAME("INP70")
PORT_START("X1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_H) PORT_NAME("SW.11")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_I) PORT_NAME("SW.21")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_J) PORT_NAME("SW.31")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_NAME("SW.41")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_L) PORT_NAME("SW.51")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_M) PORT_NAME("SW.61")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) PORT_NAME("SW.71")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_H) PORT_NAME("INP11")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_I) PORT_NAME("INP21")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_J) PORT_NAME("INP31")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_NAME("INP41")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_L) PORT_NAME("INP51")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_M) PORT_NAME("INP61")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) PORT_NAME("INP71")
PORT_START("X2")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_O) PORT_NAME("SW.12")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_P) PORT_NAME("SW.22")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("SW.32")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("SW.42")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("SW.52")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("SW.62")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("SW.72")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_O) PORT_NAME("INP12")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_P) PORT_NAME("INP22")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("INP32")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("INP42")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("INP52")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("INP62")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("INP72")
PORT_START("X3")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("SW.13")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("SW.23")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("SW.33")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("SW.43")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("SW.53")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("SW.63")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("SW.73")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("INP13")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("INP23")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("INP33")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("INP43")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("INP53")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("INP63")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("INP73")
PORT_START("X4")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("Tilt")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("SW.14")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME("SW.24")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("SW.34")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("SW.44")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("SW.54")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("SW.64")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("SW.74")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_NAME("Tilt")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("INP14")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME("INP24")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("INP34")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("INP44")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("INP54")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("INP64")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("INP74")
PORT_START("X5")
+ PORT_BIT( 0xFF, IP_ACTIVE_LOW, IPT_UNUSED ) // not connected but it is tested
+
+ PORT_START("X6")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Reset")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) PORT_NAME("Outhole")
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Slam Tilt")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_NAME("Slam Tilt")
INPUT_PORTS_END
static INPUT_PORTS_START( gts1 )
@@ -454,7 +457,7 @@ u8 gts1_state::gts1_switches_r(offs_t offset) // only switches with offset 0 are
{
u8 data = 0;
if (offset > 7)
- for (u8 i = 0; i < 5; i++)
+ for (u8 i = 0; i < 6; i++)
if (BIT(m_strobe, i))
{
data |= BIT(m_switches[i]->read(), offset & 7);
@@ -466,7 +469,7 @@ u8 gts1_state::gts1_switches_r(offs_t offset) // only switches with offset 0 are
void gts1_state::gts1_switches_w(offs_t offset, u8 data) // WORKS
{
// outputs O-0 to O-4 are the 5 strobe lines
- if (offset < 5)
+ if (offset < 6)
{
if (data)
m_strobe |= (1<<offset);
@@ -552,7 +555,7 @@ u8 gts1_state::gts1_nvram_r(offs_t offset) // WORKS
if (m_nvram_e2)
{
data = m_nvram[m_nvram_addr];
- LOG("%s: NVRAM READ @[%02x] -> %x\n", __FUNCTION__, m_nvram_addr, data);
+ //LOG("%s: NVRAM READ @[%02x] -> %x\n", __FUNCTION__, m_nvram_addr, data);
}
break;
case 1: // group B
@@ -592,7 +595,7 @@ void gts1_state::nvram_w()
{
if (m_nvram_wr && m_nvram_e2)
{
- LOG("%s: NVRAM WRITE @[%02x] <- %x\n", __FUNCTION__, m_nvram_addr, m_nvram_data);
+ //LOG("%s: NVRAM WRITE @[%02x] <- %x\n", __FUNCTION__, m_nvram_addr, m_nvram_data);
m_nvram[m_nvram_addr] = m_nvram_data;
//if (m_nvram_addr == 0xb1) machine().debug_break();
}
@@ -616,7 +619,7 @@ u8 gts1_state::gts1_lamp_apm_r(offs_t offset) // Think this works - dips seem to
data = BIT(m_dips[m_z30_out]->read(),4,4);
break;
case 2: // 3 hardwired switches
- data = m_switches[5]->read();
+ data = m_switches[6]->read();
break;
}
//LOG("%s: offs=%d, m_z30_out=%d, data=%d\n", __FUNCTION__, offset, m_z30_out, data);
@@ -645,11 +648,12 @@ void gts1_state::gts1_lamp_apm_w(offs_t offset, u8 data) // Working for the dips
u8 gts1_state::gts1_pa_r() // TODO: address normal or inverted? data normal or inverted? ***************
{
- u16 addr = m_6351_addr; // ^ 0x3ff;
+ u16 addr = m_6351_addr ^ 0x3ff;
// return nibble from personality module ROM
u8 data = m_pm[addr];
LOG("%s: PROM READ @[%03x]:%02x\n", __FUNCTION__, addr, data);
- return ~data & 15; // inverted = game over at start; normal = test mode at start
+ //machine().debug_break();
+ return ~data; // inverted = game over at start; normal = test mode at start
}
void gts1_state::gts1_do_w(u8 data)
diff --git a/src/mame/drivers/gts80.cpp b/src/mame/drivers/gts80.cpp
index 9d8b663c782..2a1258f9709 100644
--- a/src/mame/drivers/gts80.cpp
+++ b/src/mame/drivers/gts80.cpp
@@ -221,7 +221,7 @@ static INPUT_PORTS_START( gts80 )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("INP03")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("INP04")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("INP05")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP06")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("INP06")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("Play/Test")
PORT_START("X1")
@@ -231,7 +231,7 @@ static INPUT_PORTS_START( gts80 )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_J) PORT_NAME("INP13")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_NAME("INP14")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_L) PORT_NAME("INP15")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP16")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("INP16")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_START("X2")
@@ -241,34 +241,34 @@ static INPUT_PORTS_START( gts80 )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_P) PORT_NAME("INP23")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("INP24")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("INP25")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP26")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("INP26")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_START("X3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("INP30")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("INP31")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("INP32")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("INP33")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("INP34")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("INP35")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP36")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("INP30")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("INP31")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("INP32")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("INP33")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("INP34")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("INP35")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("INP36")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
PORT_START("X4")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("INP40")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("INP41")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("INP42")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("INP43")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_LEFT) PORT_NAME("INP44")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("INP45")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_UP) PORT_NAME("INP46")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("INP40")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("INP41")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("INP42")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME("INP43")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("INP44")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COLON) PORT_NAME("INP45")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("INP46")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START )
PORT_START("X5")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("INP50")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("INP51")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("INP52")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("INP53")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("INP50")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("INP51")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("INP52")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("INP53")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ASTERISK) PORT_NAME("INP54")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS_PAD) PORT_NAME("INP55")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("INP56")
@@ -277,21 +277,21 @@ static INPUT_PORTS_START( gts80 )
PORT_START("X6")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME("INP60")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("INP61")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("INP62")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DEL_PAD) PORT_NAME("INP63")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGUP) PORT_NAME("INP62")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("INP63")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_HOME) PORT_NAME("INP64")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_END) PORT_NAME("INP65")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGUP) PORT_NAME("INP66")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DEL) PORT_NAME("INP66")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) PORT_NAME("Outhole")
PORT_START("X7")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("INP70")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("INP71")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COLON) PORT_NAME("INP72")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("INP73")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("INP74")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_UP) PORT_NAME("INP70")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_LEFT) PORT_NAME("INP71")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("INP72")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DOWN) PORT_NAME("INP73")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F1) PORT_NAME("INP74")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F2) PORT_NAME("INP75")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F4) PORT_NAME("INP76")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("X8")
@@ -542,40 +542,40 @@ void gts80_state::gts80_ss(machine_config &config)
This is a list of known alternate roms. Nothing has been tested. Comments are derived from the roms.
All original games in this driver can be upgraded to 7 digits per player by replacing
- ROM_LOAD("u2_80.bin", 0x2000, 0x1000, CRC(4f0bc7b1) SHA1(612cbacdca5cfa6ad23940796df3b7c385be79fe))
- ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9))
+ROM_LOAD("u2_80.bin", 0x2000, 0x1000, CRC(4f0bc7b1) SHA1(612cbacdca5cfa6ad23940796df3b7c385be79fe))
+ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9))
with
- ROM_LOAD("u2g807dc.bin", 0x2000, 0x1000, CRC(f8a687b3) SHA1(ba7747c04a5967df760ace102e47c91d42e07a12))
- ROM_LOAD("u3g807dc.bin", 0x3000, 0x1000, CRC(6e31242e) SHA1(14e371a0352a6068dec20af1f2b344e34a5b9011))
+ROM_LOAD("u2g807dc.bin", 0x2000, 0x1000, CRC(f8a687b3) SHA1(ba7747c04a5967df760ace102e47c91d42e07a12))
+ROM_LOAD("u3g807dc.bin", 0x3000, 0x1000, CRC(6e31242e) SHA1(14e371a0352a6068dec20af1f2b344e34a5b9011))
Haunted House
- ROM_LOAD( "669-3.cpu", 0x1000, 0x0800, CRC(cf178411) SHA1(284e709ff3a569e84d1499a23f41adcbd8553930) ) Hack set 669_3
- ROM_LOAD( "669-3a.cpu", 0x1000, 0x0800, CRC(effe6851) SHA1(fdf2fdddfebdf9c871d4395c307bf1f3ca2b2d10) ) Hack set 669_3a
- ROM_LOAD( "669-3b.cpu", 0x1000, 0x0800, CRC(2bfceb85) SHA1(9635cd29d5b53a4641b69f1648c1201924edd486) ) Hack set 669_3b
- ROM_LOAD( "669-4.cpu", 0x1000, 0x0800, CRC(8724cdf8) SHA1(9c8d7433ea14b8b50014deb7574c9d5043a794cc) ) Hack set 669_4
- ROM_LOAD( "669-4a.cpu", 0x1000, 0x0800, CRC(7b906d4b) SHA1(b22c5c94e52190fbf514b531674887be42a1f559) ) Hack set 669_4a
- ROM_LOAD( "669-4b.cpu", 0x1000, 0x0800, CRC(71025a8a) SHA1(5a682a6dbff825217e000df4f824dea6ad89223b) ) Hack set 669_4b
+ROM_LOAD( "669-3.cpu", 0x1000, 0x0800, CRC(cf178411) SHA1(284e709ff3a569e84d1499a23f41adcbd8553930) ) Hack set 669_3
+ROM_LOAD( "669-3a.cpu", 0x1000, 0x0800, CRC(effe6851) SHA1(fdf2fdddfebdf9c871d4395c307bf1f3ca2b2d10) ) Hack set 669_3a
+ROM_LOAD( "669-3b.cpu", 0x1000, 0x0800, CRC(2bfceb85) SHA1(9635cd29d5b53a4641b69f1648c1201924edd486) ) Hack set 669_3b
+ROM_LOAD( "669-4.cpu", 0x1000, 0x0800, CRC(8724cdf8) SHA1(9c8d7433ea14b8b50014deb7574c9d5043a794cc) ) Hack set 669_4 (speaking if sc01 added)
+ROM_LOAD( "669-4a.cpu", 0x1000, 0x0800, CRC(7b906d4b) SHA1(b22c5c94e52190fbf514b531674887be42a1f559) ) Hack set 669_4a (speaking if sc01 added)
+ROM_LOAD( "669-4b.cpu", 0x1000, 0x0800, CRC(71025a8a) SHA1(5a682a6dbff825217e000df4f824dea6ad89223b) ) Hack set 669_4b (speaking if sc01 added)
Mars, God of War
- ROM_LOAD("666-2.cpu", 0x1000, 0x0800, CRC(6fb6d10b) SHA1(bd6fcebb52733e56f6fb66ce527cbbe3573b7250)) Hack
+ROM_LOAD("666-2.cpu", 0x1000, 0x0800, CRC(6fb6d10b) SHA1(bd6fcebb52733e56f6fb66ce527cbbe3573b7250)) Hack
Panthera
- ROM_LOAD( "652-1.bin", 0x1000, 0x0200, CRC(0213164b) SHA1(c65c4cb6fb1fbddaf7a09adfd38e984a193219b8) ) 'Game Rom 1'
- ROM_LOAD( "652-2.bin", 0x1200, 0x0200, CRC(bd7bc39f) SHA1(9d0ac37bb3ec8c95990fd37a962a17a95ce97aa0) ) 'Game Rom 2'
+ROM_LOAD( "652-1.bin", 0x1000, 0x0200, CRC(0213164b) SHA1(c65c4cb6fb1fbddaf7a09adfd38e984a193219b8) ) 'Game Rom 1'
+ROM_LOAD( "652-2.bin", 0x1200, 0x0200, CRC(bd7bc39f) SHA1(9d0ac37bb3ec8c95990fd37a962a17a95ce97aa0) ) 'Game Rom 2'
Pink Panther
- ROM_LOAD( "664_flipprojets.snd", 0x0000, 0x0200, CRC(48aeb325) SHA1(49dae08c635f191841188565bd89f07c4ad44c08) )
+ROM_LOAD( "664_flipprojets.snd", 0x0000, 0x0200, CRC(48aeb325) SHA1(49dae08c635f191841188565bd89f07c4ad44c08) )
Spiderman
- ROM_LOAD( "653.gm", 0x0000, 0x0800, CRC(b2b1514a) SHA1(2f8179d171d411080ed5bc18a6c4c737a45a796c) )
- ROM_LOAD( "653.snd", 0x0400, 0x0400, CRC(dfa35ede) SHA1(740bf1e02098b85783374c583b88d2fefe98ede4) )
- ROM_LOAD( "653-cpu3.bin", 0x1000, 0x0800, CRC(10289804) SHA1(13d743ce3f97ffc99470dd9b612836c98034e919) )
- ROM_LOAD( "653cpu3a.bin", 0x1000, 0x0800, CRC(b2b1514a) SHA1(2f8179d171d411080ed5bc18a6c4c737a45a796c) )
+ROM_LOAD( "653.gm", 0x0000, 0x0800, CRC(b2b1514a) SHA1(2f8179d171d411080ed5bc18a6c4c737a45a796c) )
+ROM_LOAD( "653.snd", 0x0400, 0x0400, CRC(dfa35ede) SHA1(740bf1e02098b85783374c583b88d2fefe98ede4) )
+ROM_LOAD( "653-cpu3.bin", 0x1000, 0x0800, CRC(10289804) SHA1(13d743ce3f97ffc99470dd9b612836c98034e919) )
+ROM_LOAD( "653cpu3a.bin", 0x1000, 0x0800, CRC(b2b1514a) SHA1(2f8179d171d411080ed5bc18a6c4c737a45a796c) )
*/
@@ -958,7 +958,7 @@ ROM_END
/* 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 crashes MAME at start
+/* 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 )
+/* 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 )
diff --git a/src/mame/drivers/gts80a.cpp b/src/mame/drivers/gts80a.cpp
index ce4fcf4438a..ce5f502bae6 100644
--- a/src/mame/drivers/gts80a.cpp
+++ b/src/mame/drivers/gts80a.cpp
@@ -214,7 +214,7 @@ static INPUT_PORTS_START( gts80a )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("INP03")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("INP04")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("INP05")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP06")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("INP06")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("Play/Test")
PORT_START("X1")
@@ -224,7 +224,7 @@ static INPUT_PORTS_START( gts80a )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_J) PORT_NAME("INP13")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_NAME("INP14")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_L) PORT_NAME("INP15")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP16")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("INP16")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_START("X2")
@@ -234,34 +234,34 @@ static INPUT_PORTS_START( gts80a )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_P) PORT_NAME("INP23")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("INP24")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("INP25")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP26")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("INP26")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_START("X3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("INP30")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("INP31")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("INP32")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("INP33")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("INP34")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("INP35")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP36")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("INP30")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("INP31")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("INP32")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("INP33")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("INP34")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("INP35")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("INP36")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
PORT_START("X4")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("INP40")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("INP41")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("INP42")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("INP43")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_LEFT) PORT_NAME("INP44")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("INP45")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_UP) PORT_NAME("INP46")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("INP40")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("INP41")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("INP42")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME("INP43")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("INP44")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COLON) PORT_NAME("INP45")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("INP46")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START )
PORT_START("X5")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("INP50")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("INP51")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("INP52")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("INP53")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("INP50")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("INP51")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("INP52")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("INP53")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ASTERISK) PORT_NAME("INP54")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS_PAD) PORT_NAME("INP55")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("INP56")
@@ -270,21 +270,21 @@ static INPUT_PORTS_START( gts80a )
PORT_START("X6")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME("INP60")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("INP61")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("INP62")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DEL_PAD) PORT_NAME("INP63")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGUP) PORT_NAME("INP62")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("INP63")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_HOME) PORT_NAME("INP64")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_END) PORT_NAME("INP65")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGUP) PORT_NAME("INP66")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DEL) PORT_NAME("INP66")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) PORT_NAME("Outhole")
PORT_START("X7")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("INP70")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("INP71")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COLON) PORT_NAME("INP72")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("INP73")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("INP74")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_UP) PORT_NAME("INP70")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_LEFT) PORT_NAME("INP71")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("INP72")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DOWN) PORT_NAME("INP73")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F1) PORT_NAME("INP74")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F2) PORT_NAME("INP75")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F4) PORT_NAME("INP76")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("X8")
diff --git a/src/mame/drivers/gts80b.cpp b/src/mame/drivers/gts80b.cpp
index 7040fdc3484..8bf142a1736 100644
--- a/src/mame/drivers/gts80b.cpp
+++ b/src/mame/drivers/gts80b.cpp
@@ -11,15 +11,14 @@ Some games start up and will accept credits, and the test mode works.
Most games are multiball, and therefore may not respond further to inputs.
-Sound is missing/wrong in all games.
+Sound is missing/wrong in all games. Most sound boards need to be emulated.
-Some games have the slam switch as normally open instead of the usual closed.
- A few of these games can be fooled into starting by holding down the 0 key for a few seconds.
-
-The test rom says U4 is faulty.
+The test rom says U4 is faulty. Using MOS6532_NEW fixes this error, but the games ramdomly slam-tilt instead.
PinMAME used for the display character generator.
+When asked to enter your initials, use the Advance buttons to select a letter, and the Start button to enter it.
+
*****************************************************************************************************************/
#include "emu.h"
@@ -59,6 +58,7 @@ public:
void gts80b_s(machine_config &config);
void gts80b(machine_config &config);
DECLARE_INPUT_CHANGED_MEMBER(slam_w);
+ void init_s80c();
private:
u8 port1a_r();
@@ -76,9 +76,9 @@ private:
u8 m_soundex = 0;
u8 m_sol_state[9][2];
u8 m_dispcmd;
- u8 m_port2b;
bool m_in_cmd_mode[2];
u8 m_digit[2];
+ bool m_slam_low = false;
virtual void machine_reset() override;
virtual void machine_start() override;
@@ -242,34 +242,34 @@ static INPUT_PORTS_START( gts80b )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_P) PORT_NAME("INP23")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("INP24")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("INP25")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP26")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("INP26")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_START("X3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("INP30")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("INP31")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("INP32")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("INP33")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("INP34")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("INP35")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("INP36")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("INP30")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("INP31")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("INP32")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("INP33")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("INP34")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("INP35")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("INP36")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
PORT_START("X4")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("INP40")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("INP41")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("INP42")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("INP43")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_LEFT) PORT_NAME("INP44")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("INP45")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_UP) PORT_NAME("INP46")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("INP40")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("INP41")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("INP42")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME("INP43")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("INP44")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COLON) PORT_NAME("INP45")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("INP46")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START )
PORT_START("X5")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("INP50")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("INP51")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("INP52")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("INP53")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("INP50")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("INP51")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("INP52")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("INP53")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ASTERISK) PORT_NAME("INP54")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS_PAD) PORT_NAME("INP55")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("INP56")
@@ -278,21 +278,21 @@ static INPUT_PORTS_START( gts80b )
PORT_START("X6")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME("INP60")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("INP61")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("INP62")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DEL_PAD) PORT_NAME("INP63")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGUP) PORT_NAME("INP62")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("INP63")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_HOME) PORT_NAME("INP64")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_END) PORT_NAME("INP65")
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGUP) PORT_NAME("INP66")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DEL) PORT_NAME("INP66")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) PORT_NAME("Outhole")
PORT_START("X7")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("INP70")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("INP71")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_COLON) PORT_NAME("INP72")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("INP73")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("INP74")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_UP) PORT_NAME("INP70")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_LEFT) PORT_NAME("INP71")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("INP72")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DOWN) PORT_NAME("INP73")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F1) PORT_NAME("INP74")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F2) PORT_NAME("INP75")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F4) PORT_NAME("INP76")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("X8")
@@ -301,7 +301,8 @@ INPUT_PORTS_END
INPUT_CHANGED_MEMBER( gts80b_state::slam_w )
{
- m_riot2->porta_in_set(newval ? 0x80 : 0, 0x80);
+ u8 val = m_slam_low ? 0 : 0x80;
+ m_riot2->porta_in_set(newval ? val : val^0x80, 0x80);
}
static const uint16_t patterns[] = {
@@ -338,7 +339,8 @@ u8 gts80b_state::port1a_r()
u8 gts80b_state::port2a_r()
{
- return m_io_keyboard[8]->read(); // slam tilt
+ u8 val = m_slam_low ? 0x80 : 0;
+ return m_io_keyboard[8]->read() ^ val; // slam tilt
}
// sw strobes
@@ -350,16 +352,15 @@ void gts80b_state::port1b_w(u8 data)
void gts80b_state::port2a_w(u8 data)
{
if (BIT(data, 4))
- m_dispcmd = (m_dispcmd & 0xf0) | m_port2b;
+ m_dispcmd = (m_dispcmd & 0xf0) | BIT(m_segment, 0, 4);
if (BIT(data, 5))
- m_dispcmd = (m_dispcmd & 0x0f) | (m_port2b << 4);
+ m_dispcmd = (m_dispcmd & 0x0f) | (m_segment << 4);
}
//d0-3 data; d4-5 = which display enabled; d6 = display reset; d7 = dipsw enable
void gts80b_state::port2b_w(u8 data)
{
m_segment = data;
- m_port2b = data & 15;
uint16_t segment;
// crude approximation of the Rockwell display chips
@@ -505,6 +506,9 @@ void gts80b_state::machine_start()
save_item(NAME(m_segment));
save_item(NAME(m_soundex));
save_item(NAME(m_sol_state));
+ save_item(NAME(m_dispcmd));
+ save_item(NAME(m_in_cmd_mode[2]));
+ save_item(NAME(m_digit[2]));
}
void gts80b_state::machine_reset()
@@ -521,6 +525,12 @@ 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)
@@ -535,21 +545,21 @@ void gts80b_state::gts80b(machine_config &config)
config.set_default_layout(layout_gts80b);
/* Devices */
- riot6532_device &riot1(RIOT6532(config, "riot1", XTAL(3'579'545)/4));
- riot1.in_pa_callback().set(FUNC(gts80b_state::port1a_r)); // sw_r
- riot1.out_pb_callback().set(FUNC(gts80b_state::port1b_w)); // sw_w
- riot1.irq_callback().set("irq", FUNC(input_merger_device::in_w<0>));
-
- riot6532_device &riot2(RIOT6532(config, "riot2", XTAL(3'579'545)/4));
- riot2.in_pa_callback().set(FUNC(gts80b_state::port2a_r)); // pa7 - slam tilt
- riot2.out_pa_callback().set(FUNC(gts80b_state::port2a_w)); // digit select
- riot2.out_pb_callback().set(FUNC(gts80b_state::port2b_w)); // seg
- riot2.irq_callback().set("irq", FUNC(input_merger_device::in_w<1>));
-
- riot6532_device &riot3(RIOT6532(config, "riot3", XTAL(3'579'545)/4));
- riot3.out_pa_callback().set(FUNC(gts80b_state::port3a_w)); // sol, snd
- riot3.out_pb_callback().set(FUNC(gts80b_state::port3b_w)); // lamps
- riot3.irq_callback().set("irq", FUNC(input_merger_device::in_w<2>));
+ RIOT6532(config, m_riot1, XTAL(3'579'545)/4);
+ m_riot1->in_pa_callback().set(FUNC(gts80b_state::port1a_r)); // sw_r
+ m_riot1->out_pb_callback().set(FUNC(gts80b_state::port1b_w)); // sw_w
+ m_riot1->irq_callback().set("irq", FUNC(input_merger_device::in_w<0>));
+
+ RIOT6532(config, m_riot2, XTAL(3'579'545)/4);
+ m_riot2->in_pa_callback().set(FUNC(gts80b_state::port2a_r)); // pa7 - slam tilt
+ m_riot2->out_pa_callback().set(FUNC(gts80b_state::port2a_w)); // digit select
+ m_riot2->out_pb_callback().set(FUNC(gts80b_state::port2b_w)); // seg
+ m_riot2->irq_callback().set("irq", FUNC(input_merger_device::in_w<1>));
+
+ RIOT6532(config, m_riot3, XTAL(3'579'545)/4);
+ m_riot3->out_pa_callback().set(FUNC(gts80b_state::port3a_w)); // sol, snd
+ m_riot3->out_pb_callback().set(FUNC(gts80b_state::port3b_w)); // lamps
+ m_riot3->irq_callback().set("irq", FUNC(input_merger_device::in_w<2>));
INPUT_MERGER_ANY_HIGH(config, "irq").output_handler().set_inputline("maincpu", m6502_device::IRQ_LINE);
@@ -602,6 +612,193 @@ void gts80b_state::bonebstr(machine_config &config)
// gts80s_b3a(config);
}
+/* SYSTEM-80B ALTERNATE ROMS =======================================================================
+
+This is a list of known alternate roms. Nothing has been tested. Comments are derived from the roms.
+Loading address is not shown. In some cases, suffix X = French, suffix Y = German, no suffix = English.
+The majority of these are freeplay roms from flipprojets.
+
+Amazon Hunt II
+ROM_LOAD( "prom1_684c.bin", 0x000000, 0x002000, CRC(fe08af7d) SHA1(54ea8205f649c9ab8a62354b023acf823c24fc1f) )
+
+Amazon Hunt III
+ROM_LOAD( "prom1_684d.bin", 0x000000, 0x002000, CRC(7db1a9a9) SHA1(41927730ae4571d0a0488baee4d10b756524440e) )
+ROM_LOAD( "684d-1-cpu_fp.rom", 0x000000, 0x002000, CRC(6110c1f0) SHA1(e478510b02fa7d26c0c619f2bfdadd1503a1f6d1) )
+
+Arena
+ROM_LOAD( "prom1_709.bin", 0x000000, 0x002000, CRC(33ade406) SHA1(daea04b9ccd95b2e4ee3d45ad8ea6e1851cf8cc6) )
+ROM_LOAD( "prom2_709.bin", 0x000000, 0x000800, CRC(4783b689) SHA1(d10d4cbf8d00c9d0db57cdac32ef96498275eea6) )
+ROM_LOAD( "prom1_709x.bin", 0x000000, 0x002000, CRC(7389f4dc) SHA1(3dc72f011ebb2debbc005761da4b9720a279db2a) )
+ROM_LOAD( "prom2_709x.bin", 0x000000, 0x000800, CRC(49b127d8) SHA1(0436f83e969b4bfc7edaf881bf7556a868c88cdc) )
+ROM_LOAD( "prom1_709y.bin", 0x000000, 0x002000, CRC(d41ce2b1) SHA1(044fd0bcabb317d0fa84ff17036f6dba90201cbf) )
+ROM_LOAD( "prom2_709y.bin", 0x000000, 0x000800, CRC(e170d1cd) SHA1(bd7919eb9e480309f794ac25a371c7b818dcd01b) )
+ROM_LOAD( "prom1_709a.bin", 0x000000, 0x002000, CRC(21f500cb) SHA1(ce76a8a5eb71e57aca70880a2e40979f083173ef) )
+ROM_LOAD( "prom2_709a.bin", 0x000000, 0x000800, CRC(13c8813b) SHA1(756e3583fd55b72e0bfb15e9b4a60740b389ca2e) )
+
+Bad Girls
+ROM_LOAD( "prom1_717.bin", 0x000000, 0x002000, CRC(05e8259b) SHA1(d1e4e50e44e215dcfa510e4d45d6c39e136452b1) )
+ROM_LOAD( "prom2_717.bin", 0x000000, 0x001000, CRC(583933ec) SHA1(89da6750d779d68db578715b058f9321695b79b0) )
+ROM_LOAD( "prom1_717x.bin", 0x000000, 0x002000, CRC(32f42091) SHA1(0709f251b5633a68a93066721d105141fb79d74a) )
+ROM_LOAD( "prom2_717x.bin", 0x000000, 0x001000, CRC(58c35099) SHA1(ff76bd28175ea0f5d0437c16c5ae6886339edfe2) )
+ROM_LOAD( "prom1_717y.bin", 0x000000, 0x002000, CRC(34a93b4b) SHA1(14522c5c1c476d5507100d3554db6c2236d48df3) )
+ROM_LOAD( "prom2_717y.bin", 0x000000, 0x001000, CRC(55aa30ac) SHA1(9544485ccf52a2ad51a00cce0c12871db099699f) )
+
+Big House
+ROM_LOAD( "prom1_713.bin", 0x000000, 0x002000, CRC(8a8510a2) SHA1(729a7254d00fee7c4aa29684e944df4eab113565) )
+ROM_LOAD( "prom2_713.bin", 0x000000, 0x001000, CRC(047c8ef5) SHA1(3afa2a0011b724836b69b2ef386597e0953dfadf) )
+ROM_LOAD( "prom1_713x.bin", 0x000000, 0x002000, CRC(51012001) SHA1(5ad45694273234b2d13028b90c2a58245394095e) )
+ROM_LOAD( "prom2_713x.bin", 0x000000, 0x001000, CRC(767efc44) SHA1(6b8f9a580e6a6ad92c9efe9f4345496d5063b7a8) )
+ROM_LOAD( "prom1_713y.bin", 0x000000, 0x002000, CRC(8f51d4c3) SHA1(972582aedfdbccd7a14d841b4ec156ab73e8c88f) )
+ROM_LOAD( "prom2_713y.bin", 0x000000, 0x001000, CRC(214f0afb) SHA1(9874773e4ffa2472e78d42dfa9e21a621bf7b49e) )
+
+Bone Busters
+ROM_LOAD( "prom1_719.bin", 0x000000, 0x002000, CRC(c5914b1f) SHA1(599a6da358d294304e07425fdde3f1ece0f4f57a) )
+ROM_LOAD( "prom2_719.bin", 0x000000, 0x001000, CRC(681643df) SHA1(76af6951e4403b4951298d35a9058bcebfa6bc43) )
+ROM_LOAD( "prom1_719x.bin", 0x000000, 0x002000, CRC(5aa1bb17) SHA1(6499608e83261c1fd152e9bf982ce1470b6edf93) )
+ROM_LOAD( "prom2_719x.bin", 0x000000, 0x001000, CRC(73b6486e) SHA1(1baf17f31b16d564ed5e3bdf9f74b21f83ed76fa) )
+ROM_LOAD( "prom1_719y.bin", 0x000000, 0x002000, CRC(0063411b) SHA1(8bf7350acff3ac7d76ed2dee42aceee1de486497) )
+ROM_LOAD( "prom2_719y.bin", 0x000000, 0x001000, CRC(3b85c8bd) SHA1(5c99349dc3ae05b82932d6ec9d2d1a29c2a7e36d) )
+
+Bounty Hunter
+ROM_LOAD( "prom1_694.bin", 0x000000, 0x002000, CRC(9e68b714) SHA1(bb33b1e8fb50776731c450e2c05c49dcd5535f41) )
+ROM_LOAD( "prom1_694y.bin", 0x000000, 0x002000, CRC(07b9333f) SHA1(1355201be26ac8f7bca96275443e33c9a01eedf3) )
+
+Chicago Cubs Triple Play
+ROM_LOAD( "prom1_f1.cpu", 0x000000, 0x002000, CRC(4b58be44) SHA1(db7734692b3ff158cbd229b2d3ca723cfe963c7b) )
+ROM_LOAD( "prom1_fp.cpu", 0x000000, 0x002000, CRC(521946d4) SHA1(527ed3f221e0ca5fe1778e3095c9b8a414911206) )
+ROM_LOAD( "prom1_696.bin", 0x000000, 0x002000, CRC(4bc2371f) SHA1(fea37984e7b7833ea1fac3f3a82758c87b6d629c) )
+ROM_LOAD( "prom1_696y.bin", 0x000000, 0x002000, CRC(7b6e6819) SHA1(ca2a739301a8be1ff7dd139171cd28f29d5aad59) )
+
+Diamond Lady
+ROM_LOAD( "prom1_711.bin", 0x000000, 0x002000, CRC(eef4da86) SHA1(74b274adfddc29fed91d00af52fc4e477b571fe8) )
+ROM_LOAD( "prom2_711.bin", 0x000000, 0x000800, CRC(862951dc) SHA1(b15899ecf7ec869e3722cef3f5c16b0dadd2514e) )
+ROM_LOAD( "prom2_711x.bin", 0x000000, 0x000800, CRC(943019a8) SHA1(558c3696339bb6e150b4ddb499bc60897d5954ec) )
+ROM_LOAD( "prom1_711x.bin", 0x000000, 0x002000, CRC(1d7feafd) SHA1(70f02157fcd94ff7b66750054b542642a3a051b2) )
+ROM_LOAD( "prom1_711y.bin", 0x000000, 0x002000, CRC(4a070002) SHA1(80f1b2bd36c7133d92a35fb995cf268ff4259e86) )
+ROM_LOAD( "prom2_711y.bin", 0x000000, 0x000800, CRC(f0ef69f6) SHA1(1f48bb656bb20073e2ff261199cb94919f0bb2ab) )
+
+Excalibur
+ROM_LOAD( "prom1_715.bin", 0x000000, 0x002000, CRC(86cf464b) SHA1(c857187e6f3dd1f5b5013c95d3ded8a9a5a2e485) )
+ROM_LOAD( "prom2_715.bin", 0x000000, 0x001000, CRC(082d64ab) SHA1(0eae3b549839fc281d2487d483d0b4e723ebdc48) )
+ROM_LOAD( "prom1_715x.bin", 0x000000, 0x002000, CRC(65601620) SHA1(d8a0f13618f5af4954e0079890ad1ce6ae490d57) )
+ROM_LOAD( "prom2_715x.bin", 0x000000, 0x001000, CRC(499e2e41) SHA1(1e3fcba18882bd7df30a43843916aa5d7968eecc) )
+ROM_LOAD( "prom1_715y.bin", 0x000000, 0x002000, CRC(76d20188) SHA1(fd822702a6ad880b88f88886b752d7a1087095fd) )
+ROM_LOAD( "prom2_715y.bin", 0x000000, 0x001000, CRC(49079396) SHA1(92361a87464e39afeb74fe531b7d4356323405b8) )
+
+Genesis
+ROM_LOAD( "prom1_705.bin", 0x000000, 0x002000, CRC(662722b1) SHA1(1a7cf2f6cf92b5e6a288272ff785f215b241842f) )
+ROM_LOAD( "prom2_705.bin", 0x000000, 0x000800, CRC(ac9f3a0f) SHA1(0e44888dc046121794e824d128628f991245c1cb) )
+ROM_LOAD( "prom1_705x.bin", 0x000000, 0x002000, CRC(4d94f012) SHA1(8da4793345365330d13873edee9ffded173ed935) )
+ROM_LOAD( "prom2_705x.bin", 0x000000, 0x000800, CRC(ea7f824f) SHA1(45f619153e0584cffd33e6e09e6f5a97ab9522b2) )
+ROM_LOAD( "prom1_705y.bin", 0x000000, 0x002000, CRC(24af8cef) SHA1(4b54f5ed32afc11bf3dc8b16e046add6ddbf93ab) )
+ROM_LOAD( "prom2_705y.bin", 0x000000, 0x000800, CRC(e8fc30af) SHA1(2401bff3cf566cae4e6de6167fa004c5fe232928) )
+
+Gold Wings
+ROM_LOAD( "prom1_707.bin", 0x000000, 0x002000, CRC(58f19602) SHA1(b17c7aadcb314e6639446ed08de7666f5ea3dd66) )
+ROM_LOAD( "prom2_707.bin", 0x000000, 0x000800, CRC(a5318c20) SHA1(8b4dcf45b13657ff753237a2e7d0352fda7755ef) )
+ROM_LOAD( "prom1_707x.bin", 0x000000, 0x002000, CRC(90dd07b7) SHA1(0058812c0ba94e4bb62579e84bc3f61918d2e6ab) )
+ROM_LOAD( "prom2_707x.bin", 0x000000, 0x000800, CRC(50337adf) SHA1(dc286d52e6872edd68af442cbd0442babc174b93) )
+ROM_LOAD( "prom1_707y.bin", 0x000000, 0x002000, CRC(912c5086) SHA1(ecd8d42ebc0840098b9ee3a6b9fe8fde4cb1467f) )
+ROM_LOAD( "prom2_707y.bin", 0x000000, 0x000800, CRC(f69c963c) SHA1(9e39344ecfcca1115e12c559c66eaa21716c0ce2) )
+
+Hollywood Heat
+ROM_LOAD( "prom1_703.bin", 0x000000, 0x002000, CRC(63bc8395) SHA1(b4007b5a6b78e162c9b3e0243f01fa30501323ae) )
+ROM_LOAD( "prom2_703.bin", 0x000000, 0x000800, CRC(a465e5f3) SHA1(56afa2f67aebcd17345bba76ecb814653719ee7b) )
+ROM_LOAD( "prom1_703x.bin", 0x000000, 0x002000, CRC(9b7df518) SHA1(02c649370c3424929813dcf8321bcc5f8cc85c88) )
+ROM_LOAD( "prom2_703x.bin", 0x000000, 0x000800, CRC(969ca81f) SHA1(2606a0f63434056c5d2b509a885c9919a7a5d70f) )
+ROM_LOAD( "prom1_703y.bin", 0x000000, 0x002000, CRC(11fa2432) SHA1(c08a7481d5d2f74ead9de1b0c8816d3dbf321f0f) )
+ROM_LOAD( "prom2_703y.bin", 0x000000, 0x000800, CRC(bf60b631) SHA1(944089895d4253dd094a8f6b7168f9e62a75568a) )
+
+Hot Shots
+ROM_LOAD( "prom1_718.bin", 0x000000, 0x002000, CRC(74c0f7d7) SHA1(7af87d03fb604e7192ff4ee7581c034e8b2556da) )
+ROM_LOAD( "prom2_718.bin", 0x000000, 0x001000, CRC(7695c7db) SHA1(90188ff83b888262ba849e5af9d99145c5bc1c30) )
+ROM_LOAD( "prom2_718x.bin", 0x000000, 0x001000, CRC(476e260c) SHA1(2b88920c77462d190f9b98aebf8fcb5c9e853ecd) )
+ROM_LOAD( "prom1_718x.bin", 0x000000, 0x002000, CRC(dedba56b) SHA1(b9b435173f1325e57532c7001777dec862213d97) )
+ROM_LOAD( "prom1_718y.bin", 0x000000, 0x002000, CRC(dca0b300) SHA1(d7473ea1398dff2bd861d4b49b0cee2764599b34) )
+ROM_LOAD( "prom2_718y.bin", 0x000000, 0x001000, CRC(7e2f0d59) SHA1(b8a7b9be3e4d705631e017da87b27be53ed23f30) )
+
+Monte Carlo
+ROM_LOAD( "prom1_708.bin", 0x000000, 0x002000, CRC(5b703cf8) SHA1(dfb3eb886675989a1bbae7a2581e522869d81392) )
+ROM_LOAD( "prom2_708.bin", 0x000000, 0x000800, CRC(6860e315) SHA1(cecb1815334506dfebf29efe3e4e2a838010e8db) )
+ROM_LOAD( "prom1_708x.bin", 0x000000, 0x002000, CRC(dbe0f749) SHA1(2a1fc7606dbc99ac534901ed91943d6dd49bd4e2) )
+ROM_LOAD( "prom2_708x.bin", 0x000000, 0x000800, CRC(f6842631) SHA1(7447994d2055c7fa12aaf35e93436ee829f5b7ae) )
+ROM_LOAD( "prom1_708y.bin", 0x000000, 0x002000, CRC(bcf93933) SHA1(846c7d7c1da7516dbe0d19b4fc87eecfb69b13c1) )
+ROM_LOAD( "prom2_708y.bin", 0x000000, 0x000800, CRC(2a5e0c4f) SHA1(b386168bd911b9977104c47da962d0248f22614b) )
+ROM_LOAD( "prom1_708a.bin", 0x000000, 0x002000, CRC(25787b75) SHA1(f8ad7a22018b5414bf1ea412004ee63cb55c2036) )
+ROM_LOAD( "prom2_708a.bin", 0x000000, 0x000800, CRC(5dd75c06) SHA1(911f7e56b7602c9bc9b51dde7719d3e0562f0702) )
+ROM_LOAD( "prom1_708a.bin", 0x000000, 0x002000, CRC(d47c24ae) SHA1(034ae4515e3ab94b054e85aef96f4376b43a1157) )
+ROM_LOAD( "prom2_708a.bin", 0x000000, 0x000800, CRC(8e72a68f) SHA1(8320c44020f7d5f9e887b17556252f1c617235ac) )
+
+Night Moves
+ROM_LOAD( "prom1_c101.bin", 0x000000, 0x002000, CRC(1cd28cac) SHA1(304139bcd4d496f913399d9945a46aadf32078f9) )
+ROM_LOAD( "prom2_c101.bin", 0x000000, 0x001000, CRC(a2bc00e4) SHA1(5c3e9033f5c72b87058b2f70a0ff0811cc6770fa) )
+
+Raven
+ROM_LOAD( "prom1r.cpu", 0x000000, 0x002000, CRC(51629598) SHA1(a5408fad2baec43633f407665f006fae74f3d9aa) ) // Rambo hack
+ROM_LOAD( "prom2a.cpu", 0x000000, 0x000800, CRC(a693785e) SHA1(7c8878f1c3c5205b3ae46a78c881bbd2b722838d) ) // Rambo hack
+ROM_LOAD( "prom1_702.bin", 0x000000, 0x002000, CRC(d6e5120b) SHA1(1d00bce8170b5ad4185e6517ba1a0f46c8ae7444) )
+ROM_LOAD( "prom2_702.bin", 0x000000, 0x000800, CRC(481f3fb8) SHA1(22ffa55ed362219ebedbc40edcf866ff152a01b9) )
+ROM_LOAD( "prom2_702y.bin", 0x000000, 0x000800, CRC(4ca540a5) SHA1(50bb240465d80b7763574e1261f8d0ddda5ad587) )
+ROM_LOAD( "prom1_702y.bin", 0x000000, 0x002000, CRC(ab3bbef5) SHA1(199ebb3359a1617148264b307b8b294c037f27a4) )
+ROM_LOAD( "prom1_702a.bin", 0x000000, 0x002000, CRC(d6e5120b) SHA1(1d00bce8170b5ad4185e6517ba1a0f46c8ae7444) )
+ROM_LOAD( "prom2_702a.bin", 0x000000, 0x000800, CRC(a693785e) SHA1(7c8878f1c3c5205b3ae46a78c881bbd2b722838d) )
+
+Robo-War
+ROM_LOAD( "prom1_714.bin", 0x000000, 0x002000, CRC(96da77eb) SHA1(402208f5ac52d8f1e7193bf7c86faa106afe3492) )
+ROM_LOAD( "prom2_714.bin", 0x000000, 0x000800, CRC(893177ed) SHA1(791540a64d498979e5b0c8baf4ceb2fd5ff7f047) )
+ROM_LOAD( "prom1_714x.bin", 0x000000, 0x002000, CRC(51cd5108) SHA1(9ba30ba0eaaabc8e60c79dc2322aeec51e4de09a) )
+ROM_LOAD( "prom2_714x.bin", 0x000000, 0x000800, CRC(1afa0e69) SHA1(178813494b877ac9ca36863661596b4df04df1bb) )
+
+Rock
+ROM_LOAD( "prom1_697.bin", 0x000000, 0x002000, CRC(77736ac3) SHA1(30c6322dcda033cbd1cbda5f1bfe97c2067c37f5) )
+ROM_LOAD( "prom1_697y.bin", 0x000000, 0x002000, CRC(792b4be4) SHA1(4ee2755024dcc31aaa4cb3b4266fa48291e49d23) )
+
+Rock Encore
+ROM_LOAD( "prom1c.cpu", 0x000000, 0x002000, CRC(410d02f6) SHA1(87968576bf5dcca886bcadd4ab379fff080e6eeb) ) // Clash hack
+ROM_LOAD( "prom1_704.bin", 0x000000, 0x002000, CRC(77736ac3) SHA1(30c6322dcda033cbd1cbda5f1bfe97c2067c37f5) )
+ROM_LOAD( "prom1_704y.bin", 0x000000, 0x002000, CRC(792b4be4) SHA1(4ee2755024dcc31aaa4cb3b4266fa48291e49d23) )
+
+Spring Break
+ROM_LOAD( "prom1_706.bin", 0x000000, 0x002000, CRC(2424a214) SHA1(d4d48082652e99731833fbb57a1c04fea6b564b0) )
+ROM_LOAD( "prom2_706.bin", 0x000000, 0x000800, CRC(47171062) SHA1(0d2e7777f695ab22170be861019c05ddeade5f85) )
+ROM_LOAD( "prom1_706s.bin", 0x000000, 0x002000, CRC(dc956db7) SHA1(8bdb357c0a4c78967b4bb053f9d807897a28ad88) )
+ROM_LOAD( "prom2_706s.bin", 0x000000, 0x000800, CRC(911cd14f) SHA1(2bc3ff6a3889da69b97f8ec318f93208e3d42cfe) )
+ROM_LOAD( "prom1_706x.bin", 0x000000, 0x002000, CRC(8866bddf) SHA1(e8e54dbd5887241d96f21cb878024436e35f4e40) )
+ROM_LOAD( "prom2_706x.bin", 0x000000, 0x000800, CRC(c0ee0555) SHA1(3d2aef5a8a6452f9f87b4ec2040643dda5843ebd) )
+ROM_LOAD( "prom1_706y.bin", 0x000000, 0x002000, CRC(11ae0ad4) SHA1(b187c31a0fc2aa7f53655820be26e370e379004c) )
+ROM_LOAD( "prom2_706y.bin", 0x000000, 0x000800, CRC(fa4b750d) SHA1(89f797f65fc18473419080810bca4590f77e2502) )
+ROM_LOAD( "prom1_706a.bin", 0x000000, 0x002000, CRC(3638cb30) SHA1(6c19ca94255a3dbceb8dd33b2e56287836b1ecba) )
+ROM_LOAD( "prom2_706a.bin", 0x000000, 0x000800, CRC(d9d841b4) SHA1(8b9773e5ae9917d27089deca3b8311cb74e7f88e) )
+
+Tag Team
+ROM_LOAD( "prom1_698.bin", 0x000000, 0x002000, CRC(3f052c44) SHA1(176fbe35a4ad5832b1ba61889a858b8585dc86be) )
+ROM_LOAD( "prom2_698.bin", 0x000000, 0x000800, CRC(fd1615ce) SHA1(3a6c3525552286b86e5340af2bf196f12adc9b35) )
+ROM_LOAD( "prom1_698y.bin", 0x000000, 0x002000, CRC(ae1ed7a2) SHA1(e1f640bd350c8c9edc8742de897d92bb58950c3c) )
+ROM_LOAD( "prom2_698y.bin", 0x000000, 0x000800, CRC(5e6d2da7) SHA1(9b23d1ac34163edeaceffe806a2a559f3d408b41) )
+ROM_LOAD( "prom1_698a.bin", 0x000000, 0x002000, CRC(9c2c0058) SHA1(92e28a0e5fb454b046d1cd365e39ebdd6fa6baf1) )
+ROM_LOAD( "prom2_698a.bin", 0x000000, 0x000800, CRC(6d56b636) SHA1(8f50f2742be727835e7343307787b4b5daa1623a) )
+
+TX-Sector
+ROM_LOAD( "prom1_712.bin", 0x000000, 0x002000, CRC(13283b01) SHA1(e4e0602ead0ec4d4f54a39df3d08b1aaeb92f1ca) )
+ROM_LOAD( "prom2_712.bin", 0x000000, 0x000800, CRC(f12514e6) SHA1(80bca17c33df99ed1a7acc21f7f70ea90e7c0463) )
+ROM_LOAD( "prom1_712x.bin", 0x000000, 0x002000, CRC(45e47931) SHA1(a92d323c4892cd1aa429cd884a8f1d33f0379667) )
+ROM_LOAD( "prom2_712x.bin", 0x000000, 0x000800, CRC(1bd08247) SHA1(968cc30e5e5c783e73cb3278a58189c4f8b8186f) )
+ROM_LOAD( "prom1_712y.bin", 0x000000, 0x002000, CRC(0c374395) SHA1(52a7035598ba83aaf149550e7d08190f9773c25a) )
+ROM_LOAD( "prom2_712y.bin", 0x000000, 0x000800, CRC(2b17261f) SHA1(a3195190c0d5116b60e487a7b7f3a28c1f110e89) )
+
+Victory
+ROM_LOAD( "prom1_710.bin", 0x000000, 0x002000, CRC(3eba52ec) SHA1(e3cbdd803373e614c5b9bb5e61c9e2dfcf25df6c) )
+ROM_LOAD( "prom2_710.bin", 0x000000, 0x000800, CRC(6a42eaf4) SHA1(3e28b01473266db463986a4283e1be85f2410fb1) )
+ROM_LOAD( "prom1_710x.bin", 0x000000, 0x002000, CRC(a626da77) SHA1(300674ffb48deed503aae62a3b53b9941058605b) )
+ROM_LOAD( "prom2_710x.bin", 0x000000, 0x000800, CRC(dffcfa77) SHA1(3efaca85295ca55268b8d7c7cfe8f09f159d5fbd) )
+ROM_LOAD( "prom1_710y.bin", 0x000000, 0x002000, CRC(6daebe71) SHA1(bc49c074210f3f3cc5314282e32cebb7ce67a81d) )
+ROM_LOAD( "prom2_710y.bin", 0x000000, 0x000800, CRC(b191a87a) SHA1(f205ffb41c5ba34e3cefc96ca870a5d08bee8854) )
+
+Unknown - these are for this hardware, but it's not known which specific machine they work on
+ROM_LOAD( "prom1_bb.cpu", 0x000000, 0x002000, CRC(a035eb2d) SHA1(0f467b506bd514129e4175af3e35a666e09ec41b) ) // Beach Bums hack
+ROM_LOAD( "prom1_b.cpu", 0x000000, 0x002000, CRC(6556d711) SHA1(9d0ccaf05d0aa5a68e5514a2ade7773959868bbb) ) // Bubba the Redneck Werewolf hack
+
+*/
/*-------------------------------------------------------------------
/ Ace High (#700) 1985 (Prototype)
@@ -1879,9 +2076,10 @@ ROM_START(s80btest)
ROM_RELOAD(0xe000, 0x2000)
ROM_REGION(0x10000, "cpu3", ROMREGION_ERASEFF)
+ ROM_LOAD("testd.snd", 0x8000, 0x2000, CRC(5d04a6d9) SHA1(f83bd8692146af7d234c1a32d0b688e76d1b2b85))
ROM_REGION(0x10000, "cpu2", 0)
- ROM_LOAD("testd.snd", 0x8000, 0x2000, CRC(5d04a6d9) SHA1(f83bd8692146af7d234c1a32d0b688e76d1b2b85))
+ ROM_LOAD("testy.snd", 0x8000, 0x2000, CRC(bd998860) SHA1(8a23376cc646c9854af204e32034bf40ebe23656) )
ROM_END
/*-------------------------------------------------------------------
@@ -1983,26 +2181,26 @@ GAME(1988, diamondpg, diamondp, gts80b_s2, gts80b, gts80b_state, empty_init, ROT
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, empty_init, ROT0, "Gottlieb", "Big House", MACHINE_IS_SKELETON_MECHANICAL)
-GAME(1989, bighousef, bighouse, gts80b_s3, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Big House (French)", MACHINE_IS_SKELETON_MECHANICAL)
-GAME(1989, bighouseg, bighouse, gts80b_s3, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Big House (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, empty_init, ROT0, "Gottlieb", "Bad Girls", MACHINE_IS_SKELETON_MECHANICAL)
-GAME(1988, badgirlsf, badgirls, gts80b_s3, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Bad Girls (French)", MACHINE_IS_SKELETON_MECHANICAL)
-GAME(1988, badgirlsg, badgirls, gts80b_s3, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Bad Girls (German)", MACHINE_IS_SKELETON_MECHANICAL)
-GAME(1989, hotshots, 0, gts80b_s2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Hot Shots", MACHINE_IS_SKELETON_MECHANICAL)
-GAME(1989, hotshotsf, hotshots, gts80b_s2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Hot Shots (French)", MACHINE_IS_SKELETON_MECHANICAL)
-GAME(1989, hotshotsg, hotshots, gts80b_s2, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Hot Shots (German)", MACHINE_IS_SKELETON_MECHANICAL)
-GAME(1989, bonebstr, 0, bonebstr, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Bone Busters Inc.", MACHINE_IS_SKELETON_MECHANICAL)
-GAME(1989, bonebstrf, bonebstr, bonebstr, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Bone Busters Inc. (French)", MACHINE_IS_SKELETON_MECHANICAL)
-GAME(1989, bonebstrg, bonebstr, bonebstr, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Bone Busters Inc. (German)", MACHINE_IS_SKELETON_MECHANICAL)
-GAME(1989, nmoves, 0, gts80b_s2, gts80b, gts80b_state, empty_init, ROT0, "International Concepts", "Night Moves", MACHINE_IS_SKELETON_MECHANICAL)
-GAME(1987, amazonh3, 0, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Amazon Hunt III (French)", MACHINE_IS_SKELETON_MECHANICAL)
-GAME(1987, amazonh3a, amazonh3, gts80b_s1, gts80b, gts80b_state, empty_init, ROT0, "Gottlieb", "Amazon Hunt III (rev. 1, French)", 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)