summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/by35.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/by35.cpp')
-rw-r--r--src/mame/drivers/by35.cpp469
1 files changed, 362 insertions, 107 deletions
diff --git a/src/mame/drivers/by35.cpp b/src/mame/drivers/by35.cpp
index 8a9099c6a44..06b51ce1882 100644
--- a/src/mame/drivers/by35.cpp
+++ b/src/mame/drivers/by35.cpp
@@ -269,7 +269,6 @@ private:
required_device<bally_as3022_device> m_as3022;
};
-
void by35_state::by35_map(address_map &map)
{
map.global_mask(0x7fff); // A15 is not connected
@@ -289,14 +288,76 @@ void by35_state::nuovo_map(address_map &map)
map(0x1000, 0xffff).rom();
}
-
-
static INPUT_PORTS_START( by35 )
PORT_START("TEST")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Self Test") PORT_CHANGED_MEMBER(DEVICE_SELF, by35_state, self_test, 0)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Activity") PORT_CHANGED_MEMBER(DEVICE_SELF, by35_state, activity_button, 0)
-
+
+ // dip switches vary per "OS" level
PORT_START("DSW0")
+ PORT_START("DSW1")
+ PORT_START("DSW2")
+ PORT_START("DSW3")
+
+ PORT_START("X0")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_STOP)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 )
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT )
+// PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_BACKSPACE)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by35_state, outhole_x0, (void *)0x07) // PORT_CODE(KEYCODE_BACKSPACE)
+
+ PORT_START("X1")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN3 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COLON)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_L)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_TILT2 ) PORT_NAME("Slam Tilt") PORT_CODE(KEYCODE_EQUALS)
+
+ PORT_START("X2")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_K)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_J)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_H)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_G)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_F)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_D)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_S)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_A)
+
+ PORT_START("X3")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_O)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_I)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_U)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Y)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_R)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_E)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_W)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Q)
+
+ PORT_START("X4")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_M)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_N)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_B)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_V)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_C)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_X)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Z)
+INPUT_PORTS_END
+
+/*
+ Dips for os30 - Playboy, SMDM, Super Sonic, KISS, Paragon, Voltan
+*/
+static INPUT_PORTS_START ( by35_os30 )
+ PORT_INCLUDE( by35 )
+
+ PORT_MODIFY("DSW0")
PORT_DIPNAME( 0x1f, 0x02, "Coin Slot 1") PORT_DIPLOCATION("SW0:!1,!2,!3,!4,!5") // same as 03
PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ))
PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ))
@@ -338,7 +399,7 @@ static INPUT_PORTS_START( by35 )
PORT_DIPSETTING( 0x00, DEF_STR( Off ))
PORT_DIPSETTING( 0x80, DEF_STR( On ))
- PORT_START("DSW1")
+ PORT_MODIFY("DSW1")
PORT_DIPNAME( 0x1f, 0x02, "Coin Slot 3") PORT_DIPLOCATION("SW1:!1,!2,!3,!4,!5") // same as 01
PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ))
PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ))
@@ -379,7 +440,7 @@ static INPUT_PORTS_START( by35 )
PORT_DIPSETTING( 0x00, "3")
PORT_DIPSETTING( 0x80, "5")
- PORT_START("DSW2")
+ PORT_MODIFY("DSW2")
PORT_DIPNAME( 0x07, 0x01, "Maximum Credits") PORT_DIPLOCATION("SW2:!1,!2,!3")
PORT_DIPSETTING( 0x00, "5")
PORT_DIPSETTING( 0x01, "10")
@@ -405,10 +466,10 @@ static INPUT_PORTS_START( by35 )
PORT_DIPSETTING( 0x00, DEF_STR( Off ))
PORT_DIPSETTING( 0x80, DEF_STR( On ))
- PORT_START("DSW3")
+ PORT_MODIFY("DSW3")
PORT_DIPNAME( 0x0f, 0x00, "Coin Slot 2") PORT_DIPLOCATION("SW3:!1,!2,!3,!4")
PORT_DIPSETTING( 0x00, "Same as Slot 1")
- PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ))
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ))
PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ))
PORT_DIPSETTING( 0x03, DEF_STR( 1C_3C ))
PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ))
@@ -435,61 +496,160 @@ static INPUT_PORTS_START( by35 )
PORT_DIPNAME( 0x80, 0x80, "Melody Option 2") PORT_DIPLOCATION("SW3:!8")
PORT_DIPSETTING( 0x00, DEF_STR( Off ))
PORT_DIPSETTING( 0x80, DEF_STR( On ))
+INPUT_PORTS_END
- PORT_START("X0")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_STOP)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE)
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH)
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 )
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT )
-// PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_BACKSPACE)
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, by35_state, outhole_x0, (void *)0x07) // PORT_CODE(KEYCODE_BACKSPACE)
+/*
+ dips for os40 - Frontier, Skateball, Xenon
+*/
+static INPUT_PORTS_START( by35_os40 )
+ PORT_INCLUDE( by35 )
- PORT_START("X1")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN3 )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 )
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER)
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE)
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COLON)
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_L)
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_TILT2 ) PORT_NAME("Slam Tilt") PORT_CODE(KEYCODE_EQUALS)
+ PORT_MODIFY("DSW0")
+ PORT_DIPNAME( 0x1f, 0x00, "Coin Slot 1") PORT_DIPLOCATION("SW0:!1,!2,!3,!4,!5") // same as #3
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ))
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ))
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ))
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ))
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ))
+ PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ))
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_7C ))
+ PORT_DIPSETTING( 0x07, DEF_STR( 1C_8C ))
+ PORT_DIPSETTING( 0x08, "1 Coin/9 Credits")
+ PORT_DIPSETTING( 0x09, "1 Coin/12 Credits")
+ PORT_DIPSETTING( 0x0a, "1 Coin/14 Credits")
+ PORT_DIPSETTING( 0x0b, DEF_STR( 2C_1C ))
+ PORT_DIPSETTING( 0x0c, DEF_STR( 2C_2C ))
+ PORT_DIPSETTING( 0x0d, DEF_STR( 2C_3C ))
+ PORT_DIPSETTING( 0x0e, DEF_STR( 2C_4C ))
+ PORT_DIPSETTING( 0x0f, DEF_STR( 2C_5C ))
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_6C ))
+ PORT_DIPSETTING( 0x11, DEF_STR( 2C_7C ))
+ PORT_DIPSETTING( 0x12, DEF_STR( 2C_8C ))
+ PORT_DIPSETTING( 0x13, "2 Coins/9 Credits")
+ PORT_DIPSETTING( 0x14, "2 Coins/12 Credits")
+ PORT_DIPSETTING( 0x15, "2 Coins/14 Credits")
+ PORT_DIPSETTING( 0x16, DEF_STR( 2C_3C ))
+ PORT_DIPSETTING( 0x17, DEF_STR( 4C_3C ))
+ PORT_DIPSETTING( 0x18, DEF_STR( 4C_3C ))
+ PORT_DIPSETTING( 0x19, DEF_STR( 4C_5C ))
+ PORT_DIPSETTING( 0x1a, DEF_STR( 2C_7C ))
+ PORT_DIPSETTING( 0x1b, DEF_STR( 4C_7C ))
+ PORT_DIPSETTING( 0x1c, DEF_STR( 1C_1C ))
+ PORT_DIPSETTING( 0x1d, DEF_STR( 1C_1C ))
+ PORT_DIPSETTING( 0x1e, DEF_STR( 1C_1C ))
+ PORT_DIPSETTING( 0x1f, DEF_STR( 1C_1C ))
+ PORT_DIPNAME( 0x20, 0x00, "S6 (game specific)") PORT_DIPLOCATION("SW0:!6")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x20, DEF_STR( On ))
+ PORT_DIPNAME( 0x40, 0x00, "S7 (game specific)") PORT_DIPLOCATION("SW0:!7")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x40, DEF_STR( On ))
+ PORT_DIPNAME( 0x80, 0x00, "S8 (game specific)") PORT_DIPLOCATION("SW0:!8")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x80, DEF_STR( On ))
- PORT_START("X2")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_K)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_J)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_H)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_G)
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_F)
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_D)
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_S)
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_A)
+ PORT_MODIFY("DSW1")
+ PORT_DIPNAME( 0x1f, 0x00, "Coin Slot 3") PORT_DIPLOCATION("SW1:!1,!2,!3,!4,!5") // same as #1
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ))
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ))
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ))
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_4C ))
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ))
+ PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ))
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_7C ))
+ PORT_DIPSETTING( 0x07, DEF_STR( 1C_8C ))
+ PORT_DIPSETTING( 0x08, "1 Coin/9 Credits")
+ PORT_DIPSETTING( 0x09, "1 Coin/12 Credits")
+ PORT_DIPSETTING( 0x0a, "1 Coin/14 Credits")
+ PORT_DIPSETTING( 0x0b, DEF_STR( 2C_1C ))
+ PORT_DIPSETTING( 0x0c, DEF_STR( 2C_2C ))
+ PORT_DIPSETTING( 0x0d, DEF_STR( 2C_3C ))
+ PORT_DIPSETTING( 0x0e, DEF_STR( 2C_4C ))
+ PORT_DIPSETTING( 0x0f, DEF_STR( 2C_5C ))
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_6C ))
+ PORT_DIPSETTING( 0x11, DEF_STR( 2C_7C ))
+ PORT_DIPSETTING( 0x12, DEF_STR( 2C_8C ))
+ PORT_DIPSETTING( 0x13, "2 Coins/9 Credits")
+ PORT_DIPSETTING( 0x14, "2 Coins/12 Credits")
+ PORT_DIPSETTING( 0x15, "2 Coins/14 Credits")
+ PORT_DIPSETTING( 0x16, DEF_STR( 2C_3C ))
+ PORT_DIPSETTING( 0x17, DEF_STR( 4C_3C ))
+ PORT_DIPSETTING( 0x18, DEF_STR( 4C_3C ))
+ PORT_DIPSETTING( 0x19, DEF_STR( 4C_5C ))
+ PORT_DIPSETTING( 0x1a, DEF_STR( 2C_7C ))
+ PORT_DIPSETTING( 0x1b, DEF_STR( 4C_7C ))
+ PORT_DIPSETTING( 0x1c, DEF_STR( 1C_1C ))
+ PORT_DIPSETTING( 0x1d, DEF_STR( 1C_1C ))
+ PORT_DIPSETTING( 0x1e, DEF_STR( 1C_1C ))
+ PORT_DIPSETTING( 0x1f, DEF_STR( 1C_1C ))
+ PORT_DIPNAME( 0x20, 0x00, "S14 (game specific)") PORT_DIPLOCATION("SW1:!6")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x20, DEF_STR( On ))
+ PORT_DIPNAME( 0x40, 0x00, "S15 (game specific)") PORT_DIPLOCATION("SW1:!7")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x40, DEF_STR( On ))
+ PORT_DIPNAME( 0x80, 0x00, "S16 (game specific)") PORT_DIPLOCATION("SW1:!8")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x80, DEF_STR( On ))
- PORT_START("X3")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_O)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_I)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_U)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Y)
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_R)
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_E)
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_W)
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Q)
+ PORT_MODIFY("DSW2")
+ PORT_DIPNAME( 0xf, 0x00, "Coin Slot 2") PORT_DIPLOCATION("SW2:!1,!2,!3,!4")
+ PORT_DIPSETTING( 0x00, "Same as Slot 1")
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ))
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ))
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_3C ))
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ))
+ PORT_DIPSETTING( 0x05, DEF_STR( 1C_5C ))
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_6C ))
+ PORT_DIPSETTING( 0x07, DEF_STR( 1C_7C ))
+ PORT_DIPSETTING( 0x08, DEF_STR( 1C_8C ))
+ PORT_DIPSETTING( 0x09, "1 Coin/9 Credits")
+ PORT_DIPSETTING( 0x0a, "1 Coin/10 Credits")
+ PORT_DIPSETTING( 0x0b, "1 Coin/11 Credits")
+ PORT_DIPSETTING( 0x0c, "1 Coin/12 Credits")
+ PORT_DIPSETTING( 0x0d, "1 Coin/13 Credits")
+ PORT_DIPSETTING( 0x0e, "1 Coin/14 Credits")
+ PORT_DIPSETTING( 0x0f, "1 Coin/15 Credits")
+ PORT_DIPNAME( 0x10, 0x00, "S21 (game specific)") PORT_DIPLOCATION("SW2:!5")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x10, DEF_STR( On ))
+ PORT_DIPNAME( 0x20, 0x00, "S22 (game specific)") PORT_DIPLOCATION("SW2:!6")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x20, DEF_STR( On ))
+ PORT_DIPNAME( 0x40, 0x00, "S23 (game specific)") PORT_DIPLOCATION("SW2:!7")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x40, DEF_STR( On ))
+ PORT_DIPNAME( 0x80, 0x00, "S24 (game specific)") PORT_DIPLOCATION("SW2:!8")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x80, DEF_STR( On ))
- PORT_START("X4")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_M)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_N)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_B)
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_V)
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_C)
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_X)
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Z)
+ PORT_MODIFY("DSW3")
+ PORT_DIPNAME( 0x03, 0x00, "Maximum Credits") PORT_DIPLOCATION("SW3:!1,!2")
+ PORT_DIPSETTING( 0x00, "10")
+ PORT_DIPSETTING( 0x01, "15")
+ PORT_DIPSETTING( 0x02, "25")
+ PORT_DIPSETTING( 0x03, "40")
+ PORT_DIPNAME( 0xc0, 0x00, "Balls Per Game") PORT_DIPLOCATION("SW3:!7,!8")
+ PORT_DIPSETTING( 0x40, "5")
+ PORT_DIPSETTING( 0x80, "4")
+ PORT_DIPSETTING( 0x00, "3")
+ PORT_DIPSETTING( 0xc0, "2")
+ PORT_DIPNAME( 0x08, 0x08, "Match Feature") PORT_DIPLOCATION("SW3:!4")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x08, DEF_STR( On ))
+ PORT_DIPNAME( 0x04, 0x04, "Credits Displayed") PORT_DIPLOCATION("SW3:!3")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x04, DEF_STR( On ))
+ PORT_DIPNAME( 0x10, 0x00, "S29 (game specific)") PORT_DIPLOCATION("SW3:!5")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x10, DEF_STR( On ))
+ PORT_DIPNAME( 0x20, 0x00, "S30 (game specific)") PORT_DIPLOCATION("SW3:!6")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x20, DEF_STR( On ))
INPUT_PORTS_END
static INPUT_PORTS_START( playboy )
- PORT_INCLUDE( by35 )
+ PORT_INCLUDE( by35_os30 )
PORT_MODIFY("DSW2")
PORT_DIPNAME( 0x20, 0x00, "Drop Target Special") PORT_DIPLOCATION("SW2:!6")
@@ -527,6 +687,102 @@ static INPUT_PORTS_START( playboy )
PORT_ADJUSTER( 50, "RT2 - Tone Sustain" )
INPUT_PORTS_END
+static INPUT_PORTS_START( frontier )
+ PORT_INCLUDE( by35_os40 )
+
+ PORT_MODIFY("DSW0")
+ PORT_DIPNAME( 0x20, 0x00, "A and C Rollover Lane Lite") PORT_DIPLOCATION("SW0:!6")
+ PORT_DIPSETTING( 0x00, "Making A or C Lane Lites Only Puts That Lane Out")
+ PORT_DIPSETTING( 0x20, "Making A or C Lane Puts Both Lites Out")
+ PORT_DIPNAME( 0x40, 0x00, "A-B-C Extra Ball Lite") PORT_DIPLOCATION("SW0:!7")
+ PORT_DIPSETTING( 0x00, "A-B-C Extra Ball Lite Comes On After Making A-B-C Lanes")
+ PORT_DIPSETTING( 0x40, "A-B-C Extra Ball Lite Is On At Start Of Game")
+ PORT_DIPNAME( 0x80, 0x00, "Special Outlane Lite") PORT_DIPLOCATION("SW0:!8")
+ PORT_DIPSETTING( 0x00, "1 Lite Comes On Then Alternates")
+ PORT_DIPSETTING( 0x80, "Both Lites Come On")
+ PORT_MODIFY("DSW1")
+ PORT_DIPNAME( 0x20, 0x00, "Special Outlane Lites And Side Targets Adjustment") PORT_DIPLOCATION("SW1:!6")
+ PORT_DIPSETTING( 0x00, "Special Lites Come On When Side Drop Target Special Is On")
+ PORT_DIPSETTING( 0x20, "Special Lites Come On When Side Drop Target 4X Is On")
+ PORT_DIPNAME( 0x40, 0x00, "A-B-C Lane Lites Recall") PORT_DIPLOCATION("SW1:!7")
+ PORT_DIPSETTING( 0x00, "Any A-B-C Lite Out Will Come Back For Next Ball")
+ PORT_DIPSETTING( 0x40, "Any A-B-C Lite Out Will Not Come Back On For Next Ball")
+ PORT_DIPNAME( 0x80, 0x00, "Frontier Bonus Score") PORT_DIPLOCATION("SW1:!8")
+ PORT_DIPSETTING( 0x00, "Going In Outhole Frontier Bonus Will Not Be Collected")
+ PORT_DIPSETTING( 0x80, "Going In Outhole Frontier Bonus Will Be Collected")
+ PORT_MODIFY("DSW2")
+ PORT_DIPNAME( 0x10, 0x00, "S21 (unused)") PORT_DIPLOCATION("SW2:!5")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x10, DEF_STR( On ))
+ PORT_DIPNAME( 0x20, 0x00, "S22 (unused)") PORT_DIPLOCATION("SW2:!6")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x20, DEF_STR( On ))
+ PORT_DIPNAME( 0x40, 0x00, "Frontier Bonus Lite Adjustment") PORT_DIPLOCATION("SW2:!7")
+ PORT_DIPSETTING( 0x00, "Frontier Bonus Will Stop At 60,000")
+ PORT_DIPSETTING( 0x40, "Frontier Bonus Will Stop At 110,000")
+ PORT_DIPNAME( 0x80, 0x00, "Gate Recall") PORT_DIPLOCATION("SW2:!8")
+ PORT_DIPSETTING( 0x00, "Gate Will Stay Down For Next Ball")
+ PORT_DIPSETTING( 0x80, "Gate Will Keep Up For Next Ball")
+ PORT_MODIFY("DSW3")
+ PORT_DIPNAME( 0x10, 0x00, "S29 (unused)") PORT_DIPLOCATION("SW3:!5")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x10, DEF_STR( On ))
+ PORT_DIPNAME( 0x20, 0x00, "Flipper Feed Lane 15,000") PORT_DIPLOCATION("SW3:!6")
+ PORT_DIPSETTING( 0x00, "1 Lite Comes On Then Alternates")
+ PORT_DIPSETTING( 0x20, "Both Lites Come On")
+
+ PORT_MODIFY("X0")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("30 Point Rebound") PORT_CODE(KEYCODE_STOP)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Right Out Special") PORT_CODE(KEYCODE_SLASH)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Right Flipper Feed Lane") PORT_CODE(KEYCODE_OPENBRACE)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Left Flipper Feed Lane") PORT_CODE(KEYCODE_CLOSEBRACE)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Left Out Special") PORT_CODE(KEYCODE_BACKSLASH)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 ) PORT_NAME("Start")
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT ) PORT_NAME("Tilt")
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_BACKSPACE)
+
+ PORT_MODIFY("X1")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN3 ) PORT_NAME("Coin3")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_NAME("Coin1")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_NAME("Coin2")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Saucer") PORT_CODE(KEYCODE_ENTER)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("A Rollover Lane") PORT_CODE(KEYCODE_QUOTE)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("B Rollover Lane") PORT_CODE(KEYCODE_COLON)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("C Rollover Lane") PORT_CODE(KEYCODE_L)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_TILT2 ) PORT_NAME("Slam Tilt") PORT_CODE(KEYCODE_EQUALS)
+
+ PORT_MODIFY("X2")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_K)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_J)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_H)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_G)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("3rd In Line Drop Target") PORT_CODE(KEYCODE_F)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("2nd In Line Drop Target") PORT_CODE(KEYCODE_D)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("1st In Line Drop Target") PORT_CODE(KEYCODE_S)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Grizzly Target") PORT_CODE(KEYCODE_A)
+
+ PORT_MODIFY("X3")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Saucer Rollover Button") PORT_CODE(KEYCODE_O)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_I)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Spinner") PORT_CODE(KEYCODE_U)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Bit4") PORT_CODE(KEYCODE_Y)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Left Target") PORT_CODE(KEYCODE_R)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Center Target") PORT_CODE(KEYCODE_E)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Right Target") PORT_CODE(KEYCODE_W)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Q)
+
+ PORT_MODIFY("X4")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Bottom Side Drop Target") PORT_CODE(KEYCODE_COMMA)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Middle Side Drop Target") PORT_CODE(KEYCODE_M)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Top Side Drop Target") PORT_CODE(KEYCODE_N)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Right Slingshot") PORT_CODE(KEYCODE_B)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Left Slingshot") PORT_CODE(KEYCODE_V)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Bottom Thumper Bumper") PORT_CODE(KEYCODE_C)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Right Thumper Bumper") PORT_CODE(KEYCODE_X)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Left Thumper Bumper") PORT_CODE(KEYCODE_Z)
+INPUT_PORTS_END
+
+
CUSTOM_INPUT_MEMBER( by35_state::outhole_x0 )
{
@@ -1048,7 +1304,6 @@ by35_state::solenoid_feature_data const playboy_state::s_solenoid_features_playb
/*19*/ { 0xff, 0xff, 0xff, 0x00 }
};
-
void by35_state::machine_start()
{
genpin_class::machine_start();
@@ -2439,37 +2694,37 @@ ROM_START(suprbowl)
ROM_END
// AS-2888 sound
-GAME( 1979, sst, 0, as2888, by35, as2888_state, init_by35_6, ROT0, "Bally", "Supersonic", MACHINE_IS_SKELETON_MECHANICAL)
-GAMEL(1978, playboy, 0, as2888, playboy, playboy_state, init_by35_6, ROT0, "Bally", "Playboy", MACHINE_MECHANICAL | MACHINE_NOT_WORKING, layout_by35_playboy)
-GAME( 1978, lostwrlp, 0, as2888, by35, as2888_state, init_by35_6, ROT0, "Bally", "Lost World", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1978, smman, 0, as2888, by35, as2888_state, init_by35_6, ROT0, "Bally", "Six Million Dollar Man", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1978, voltan, 0, as2888, by35, as2888_state, init_by35_6, ROT0, "Bally", "Voltan Escapes Cosmic Doom", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1979, startrep, 0, as2888, by35, as2888_state, init_by35_6, ROT0, "Bally", "Star Trek (Pinball)", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1979, kiss, 0, as2888, by35, as2888_state, init_by35_6, ROT0, "Bally", "Kiss", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1979, hglbtrtr, 0, as2888, by35, as2888_state, init_by35_6, ROT0, "Bally", "Harlem Globetrotters On Tour", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1979, dollyptn, 0, as2888, by35, as2888_state, init_by35_6, ROT0, "Bally", "Dolly Parton", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1979, paragon, 0, as2888, by35, as2888_state, init_by35_6, ROT0, "Bally", "Paragon", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1979, sst, 0, as2888, by35_os30, as2888_state, init_by35_6, ROT0, "Bally", "Supersonic", MACHINE_IS_SKELETON_MECHANICAL)
+GAMEL(1978, playboy, 0, as2888, playboy, playboy_state, init_by35_6, ROT0, "Bally", "Playboy", MACHINE_MECHANICAL | MACHINE_NOT_WORKING, layout_by35_playboy)
+GAME( 1978, lostwrlp, 0, as2888, by35_os30, as2888_state, init_by35_6, ROT0, "Bally", "Lost World", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1978, smman, 0, as2888, by35_os30, as2888_state, init_by35_6, ROT0, "Bally", "Six Million Dollar Man", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1978, voltan, 0, as2888, by35_os30, as2888_state, init_by35_6, ROT0, "Bally", "Voltan Escapes Cosmic Doom", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1979, startrep, 0, as2888, by35, as2888_state, init_by35_6, ROT0, "Bally", "Star Trek (Pinball)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1979, kiss, 0, as2888, by35_os30, as2888_state, init_by35_6, ROT0, "Bally", "Kiss", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1979, hglbtrtr, 0, as2888, by35, as2888_state, init_by35_6, ROT0, "Bally", "Harlem Globetrotters On Tour", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1979, dollyptn, 0, as2888, by35, as2888_state, init_by35_6, ROT0, "Bally", "Dolly Parton", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1979, paragon, 0, as2888, by35_os30, as2888_state, init_by35_6, ROT0, "Bally", "Paragon", MACHINE_IS_SKELETON_MECHANICAL)
// AS-3022 sound
-GAME( 1980, ngndshkr, 0, as3022, by35, as3022_state, init_by35_6, ROT0, "Bally", "Nitro Ground Shaker", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
-GAME( 1980, slbmania, 0, as3022, by35, as3022_state, init_by35_6, ROT0, "Bally", "Silverball Mania", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
-GAME( 1979, futurspa, 0, as3022, by35, as3022_state, init_by35_6, ROT0, "Bally", "Future Spa", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
-GAME( 1980, spaceinv, 0, as3022, by35, as3022_state, init_by35_6, ROT0, "Bally", "Space Invaders", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
-GAME( 1980, rollston, 0, as3022, by35, as3022_state, init_by35_6, ROT0, "Bally", "Rolling Stones", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
-GAME( 1980, mystic, 0, as3022, by35, as3022_state, init_by35_6, ROT0, "Bally", "Mystic", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
-GAME( 1980, xenon, 0, by35, by35, by35_state, init_by35_6, ROT0, "Bally", "Xenon", MACHINE_IS_SKELETON_MECHANICAL);
-GAME( 1980, xenonf, xenon, by35, by35, by35_state, init_by35_6, ROT0, "Bally", "Xenon (French)", MACHINE_IS_SKELETON_MECHANICAL);
-GAME( 1980, viking, 0, as3022, by35, as3022_state, init_by35_6, ROT0, "Bally", "Viking", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
-GAME( 1980, hotdoggn, 0, as3022, by35, as3022_state, init_by35_6, ROT0, "Bally", "Hotdoggin'", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
-GAME( 1980, skatebll, 0, as3022, by35, as3022_state, init_by35_7, ROT0, "Bally", "Skateball", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
-GAME( 1980, frontier, 0, as3022, by35, as3022_state, init_by35_7, ROT0, "Bally", "Frontier", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
-GAME( 1982, speakesy, 0, by35, by35, by35_state, init_by35_7, ROT0, "Bally", "Speakeasy", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1982, speakesy4p, speakesy, by35, by35, by35_state, init_by35_7, ROT0, "Bally", "Speakeasy 4 Player", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1983, bmx, 0, by35, by35, by35_state, init_by35_7, ROT0, "Bally", "BMX", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1983, granslam, 0, by35, by35, by35_state, init_by35_7, ROT0, "Bally", "Grand Slam", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1983, granslam4, granslam, by35, by35, by35_state, init_by35_7, ROT0, "Bally", "Grand Slam (4 Players)", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1983, goldball, 0, by35, by35, by35_state, init_by35_7, ROT0, "Bally", "Gold Ball (set 1)", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1983, goldballn, goldball, by35, by35, by35_state, init_by35_7, ROT0, "Bally", "Gold Ball (Field Service Upgrade)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1980, ngndshkr, 0, as3022, by35, as3022_state, init_by35_6, ROT0, "Bally", "Nitro Ground Shaker", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
+GAME( 1980, slbmania, 0, as3022, by35, as3022_state, init_by35_6, ROT0, "Bally", "Silverball Mania", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
+GAME( 1979, futurspa, 0, as3022, by35, as3022_state, init_by35_6, ROT0, "Bally", "Future Spa", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
+GAME( 1980, spaceinv, 0, as3022, by35, as3022_state, init_by35_6, ROT0, "Bally", "Space Invaders", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
+GAME( 1980, rollston, 0, as3022, by35, as3022_state, init_by35_6, ROT0, "Bally", "Rolling Stones", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
+GAME( 1980, mystic, 0, as3022, by35, as3022_state, init_by35_6, ROT0, "Bally", "Mystic", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
+GAME( 1980, xenon, 0, by35, by35_os40, by35_state, init_by35_6, ROT0, "Bally", "Xenon", MACHINE_IS_SKELETON_MECHANICAL);
+GAME( 1980, xenonf, xenon, by35, by35_os40, by35_state, init_by35_6, ROT0, "Bally", "Xenon (French)", MACHINE_IS_SKELETON_MECHANICAL);
+GAME( 1980, viking, 0, as3022, by35, as3022_state, init_by35_6, ROT0, "Bally", "Viking", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
+GAME( 1980, hotdoggn, 0, as3022, by35, as3022_state, init_by35_6, ROT0, "Bally", "Hotdoggin'", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
+GAME( 1980, skatebll, 0, as3022, by35_os40, as3022_state, init_by35_7, ROT0, "Bally", "Skateball", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
+GAME( 1980, frontier, 0, as3022, frontier, as3022_state, init_by35_7, ROT0, "Bally", "Frontier", MACHINE_MECHANICAL | MACHINE_NOT_WORKING)
+GAME( 1982, speakesy, 0, by35, by35, by35_state, init_by35_7, ROT0, "Bally", "Speakeasy", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1982, speakesy4p, speakesy, by35, by35, by35_state, init_by35_7, ROT0, "Bally", "Speakeasy 4 Player", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1983, bmx, 0, by35, by35, by35_state, init_by35_7, ROT0, "Bally", "BMX", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1983, granslam, 0, by35, by35, by35_state, init_by35_7, ROT0, "Bally", "Grand Slam", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1983, granslam4, granslam, by35, by35, by35_state, init_by35_7, ROT0, "Bally", "Grand Slam (4 Players)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1983, goldball, 0, by35, by35, by35_state, init_by35_7, ROT0, "Bally", "Gold Ball (set 1)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1983, goldballn, goldball, by35, by35, by35_state, init_by35_7, ROT0, "Bally", "Gold Ball (Field Service Upgrade)", MACHINE_IS_SKELETON_MECHANICAL)
// Squawk & Talk sound
GAME( 1981, flashgdn, 0, by35, by35, by35_state, init_by35_7, ROT0, "Bally", "Flash Gordon", MACHINE_IS_SKELETON_MECHANICAL)
@@ -2498,25 +2753,25 @@ GAME( 1984, blakpyra, 0, by35, by35, by35_state, init_by35_7, ROT0, "Ba
GAME( 1985, cybrnaut, 0, by35, by35, by35_state, init_by35_7, ROT0, "Bally", "Cybernaut", MACHINE_IS_SKELETON_MECHANICAL)
// Other manufacturers
-GAME( 1984, suprbowl, xsandos, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Super Bowl", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1984, tigerrag, kosteel, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Tiger Rag", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1985, cosflash, flashgdn, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Cosmic Flash", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1985, newwave, blakpyra, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "New Wave", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1985, saturn2, spyhuntr, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Saturn 2", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1985, worlddef, 0, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "World Defender", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1986, spacehaw, cybrnaut, by35, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Space Hawks", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1986, darkshad, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Dark Shadow", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1986, skflight, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Skill Flight", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1987, cobrap, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Cobra", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1987, futrquen, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Future Queen", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1987, f1gpp, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "F1 Grand Prix (Nuova Bell Games)", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1988, toppin, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Top Pin", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1988, uboat65, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "U-boat 65", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1986, bullseye, 0, by35, by35, by35_state, init_by35_7, ROT0, "Grand Products", "301/Bullseye (301 Darts Scoring)", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1986, bullseyn, bullseye, by35, by35, by35_state, init_by35_7, ROT0, "Grand Products", "301/Bullseye (Traditional Scoring)", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1988, bbbowlin, 0, by35, by35, by35_state, init_by35_7, ROT0, "United", "Big Ball Bowling (Bowler)", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1988, monrobwl, 0, by35, by35, by35_state, init_by35_7, ROT0, "Monroe Bowling Co.", "Stars & Strikes (Bowler)", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1984, bigbat, 0, by35, by35, by35_state, init_by35_7, ROT0, "Bally Midway", "Big Bat (Bat game)", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1984, mdntmrdr, 0, by35, by35, by35_state, init_by35_6, ROT0, "Bally Midway", "Midnight Marauders (Gun game)", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1988, blbeauty, 0, by35, by35, by35_state, init_by35_7, ROT0, "Stern", "Black Beauty (Shuffle)", MACHINE_IS_SKELETON_MECHANICAL)
-GAME( 1984, myststar, 0, by35, by35, by35_state, init_by35_6, ROT0, "Zaccaria", "Mystic Star", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1984, suprbowl, xsandos, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Super Bowl", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1984, tigerrag, kosteel, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Tiger Rag", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1985, cosflash, flashgdn, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Cosmic Flash", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1985, newwave, blakpyra, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "New Wave", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1985, saturn2, spyhuntr, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "Saturn 2", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1985, worlddef, 0, by35, by35, by35_state, init_by35_7, ROT0, "Bell Games", "World Defender", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1986, spacehaw, cybrnaut, by35, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Space Hawks", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1986, darkshad, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Dark Shadow", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1986, skflight, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Skill Flight", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1987, cobrap, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Cobra", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1987, futrquen, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Future Queen", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1987, f1gpp, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "F1 Grand Prix (Nuova Bell Games)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1988, toppin, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "Top Pin", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1988, uboat65, 0, nuovo, by35, by35_state, init_by35_7, ROT0, "Nuova Bell Games", "U-boat 65", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1986, bullseye, 0, by35, by35, by35_state, init_by35_7, ROT0, "Grand Products", "301/Bullseye (301 Darts Scoring)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1986, bullseyn, bullseye, by35, by35, by35_state, init_by35_7, ROT0, "Grand Products", "301/Bullseye (Traditional Scoring)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1988, bbbowlin, 0, by35, by35, by35_state, init_by35_7, ROT0, "United", "Big Ball Bowling (Bowler)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1988, monrobwl, 0, by35, by35, by35_state, init_by35_7, ROT0, "Monroe Bowling Co.", "Stars & Strikes (Bowler)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1984, bigbat, 0, by35, by35, by35_state, init_by35_7, ROT0, "Bally Midway", "Big Bat (Bat game)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1984, mdntmrdr, 0, by35, by35, by35_state, init_by35_6, ROT0, "Bally Midway", "Midnight Marauders (Gun game)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1988, blbeauty, 0, by35, by35, by35_state, init_by35_7, ROT0, "Stern", "Black Beauty (Shuffle)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1984, myststar, 0, by35, by35, by35_state, init_by35_6, ROT0, "Zaccaria", "Mystic Star", MACHINE_IS_SKELETON_MECHANICAL)