summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Robbbert <robbbert@users.noreply.github.com>2014-07-22 13:04:49 +0000
committer Robbbert <robbbert@users.noreply.github.com>2014-07-22 13:04:49 +0000
commit5ce15c1ca445244073cab2b73449236f65717e03 (patch)
treec60e3d2cf09b63dd203d41213766cda14d241c80
parent34e3059cd6205ec66d45ee951d0b73b790d4c815 (diff)
GamePlan 1: WIP
-rw-r--r--.gitattributes1
-rw-r--r--src/mame/drivers/gp_1.c294
-rw-r--r--src/mame/layout/gp_1.lay140
-rw-r--r--src/mame/mame.mak43
4 files changed, 313 insertions, 165 deletions
diff --git a/.gitattributes b/.gitattributes
index 105d9b950d0..3bba70f1081 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -6516,6 +6516,7 @@ src/mame/layout/goldenc.lay svneol=native#text/xml
src/mame/layout/goldnpkr.lay svneol=native#text/xml
src/mame/layout/goldstar.lay svneol=native#text/xml
src/mame/layout/gorf.lay svneol=native#text/xml
+src/mame/layout/gp_1.lay svneol=native#text/plain
src/mame/layout/grchamp.lay svneol=native#text/xml
src/mame/layout/gridiron.lay svneol=native#text/xml
src/mame/layout/gunchamp.lay svneol=native#text/xml
diff --git a/src/mame/drivers/gp_1.c b/src/mame/drivers/gp_1.c
index 36a1ac05d02..3c360fe323a 100644
--- a/src/mame/drivers/gp_1.c
+++ b/src/mame/drivers/gp_1.c
@@ -11,6 +11,7 @@
#include "cpu/z80/z80daisy.h"
#include "machine/i8255.h"
#include "machine/z80ctc.h"
+#include "gp_1.lh"
class gp_1_state : public genpin_class
{
@@ -29,7 +30,7 @@ public:
private:
UINT8 m_u14;
UINT8 m_digit;
- UINT8 m_sol;
+ UINT8 m_segment;
virtual void machine_reset();
required_device<cpu_device> m_maincpu;
required_device<z80ctc_device> m_ctc;
@@ -48,149 +49,146 @@ static ADDRESS_MAP_START( gp_1_io, AS_IO, 8, gp_1_state )
ADDRESS_MAP_END
static INPUT_PORTS_START( gp_1 )
- PORT_START("TEST")
- //PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Self Test") PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, gp_1_state, self_test, 0)
-
PORT_START("DSW0")
- PORT_DIPNAME( 0x01, 0x01, "S01") // S1-5: 32 combinations of coins/credits of coin slot 1.
- PORT_DIPSETTING( 0x01, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME( 0x02, 0x00, "S02")
- PORT_DIPSETTING( 0x02, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME( 0x04, 0x04, "S03")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME( 0x08, 0x08, "S04")
- PORT_DIPSETTING( 0x08, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME( 0x10, 0x10, "S05")
- PORT_DIPSETTING( 0x10, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME( 0x20, 0x20, "S06")
- PORT_DIPSETTING( 0x20, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME( 0x40, 0x40, "S07")
- PORT_DIPSETTING( 0x40, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME( 0x80, 0x80, "Free Play")
- PORT_DIPSETTING( 0x80, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
+ PORT_DIPNAME( 0x01, 0x00, "S01") // S1-5: 32 combinations of coins/credits of coin slot 1.
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x01, DEF_STR( On ))
+ PORT_DIPNAME( 0x02, 0x02, "S02")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x02, DEF_STR( On ))
+ PORT_DIPNAME( 0x04, 0x00, "S03")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x04, DEF_STR( On ))
+ PORT_DIPNAME( 0x08, 0x00, "S04")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x08, DEF_STR( On ))
+ PORT_DIPNAME( 0x10, 0x00, "S05")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x10, DEF_STR( On ))
+ PORT_DIPNAME( 0x20, 0x00, "S06")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x20, DEF_STR( On ))
+ PORT_DIPNAME( 0x40, 0x00, "S07")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x40, DEF_STR( On ))
+ PORT_DIPNAME( 0x80, 0x00, "Free Play")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x80, DEF_STR( On ))
PORT_START("DSW1")
- PORT_DIPNAME( 0x01, 0x01, "S09") // S09-12 determine coinage for slot 2
- PORT_DIPSETTING( 0x01, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME( 0x02, 0x02, "S10")
- PORT_DIPSETTING( 0x02, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME( 0x04, 0x04, "S11")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME( 0x08, 0x08, "S12")
- PORT_DIPSETTING( 0x08, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME( 0x10, 0x10, "S13")
- PORT_DIPSETTING( 0x10, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME( 0x20, 0x20, "S14")
- PORT_DIPSETTING( 0x20, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME( 0x40, 0x40, "S15")
- PORT_DIPSETTING( 0x40, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
+ PORT_DIPNAME( 0x01, 0x00, "S09") // S09-12 determine coinage for slot 2
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x01, DEF_STR( On ))
+ PORT_DIPNAME( 0x02, 0x00, "S10")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x02, DEF_STR( On ))
+ PORT_DIPNAME( 0x04, 0x00, "S11")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x04, DEF_STR( On ))
+ PORT_DIPNAME( 0x08, 0x00, "S12")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x08, DEF_STR( On ))
+ PORT_DIPNAME( 0x10, 0x00, "S13")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x10, DEF_STR( On ))
+ PORT_DIPNAME( 0x20, 0x00, "S14")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x20, DEF_STR( On ))
+ PORT_DIPNAME( 0x40, 0x00, "S15")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x40, DEF_STR( On ))
PORT_DIPNAME( 0x80, 0x00, "Play Tunes")
- PORT_DIPSETTING( 0x80, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x80, DEF_STR( On ))
PORT_START("DSW2")
- PORT_DIPNAME( 0x01, 0x01, "S17") // S17-21 coins for slot 3
- PORT_DIPSETTING( 0x01, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME( 0x02, 0x00, "S18")
- PORT_DIPSETTING( 0x02, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME( 0x04, 0x04, "S19")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME( 0x08, 0x08, "S20")
- PORT_DIPSETTING( 0x08, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME( 0x10, 0x10, "S21")
- PORT_DIPSETTING( 0x10, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME( 0x20, 0x20, "S22")
- PORT_DIPSETTING( 0x20, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME( 0x40, 0x40, "S23")
- PORT_DIPSETTING( 0x40, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME( 0x80, 0x80, "S24")
- PORT_DIPSETTING( 0x80, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
+ PORT_DIPNAME( 0x01, 0x00, "S17") // S17-21 coins for slot 3
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x01, DEF_STR( On ))
+ PORT_DIPNAME( 0x02, 0x02, "S18")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x02, DEF_STR( On ))
+ PORT_DIPNAME( 0x04, 0x00, "S19")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x04, DEF_STR( On ))
+ PORT_DIPNAME( 0x08, 0x00, "S20")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x08, DEF_STR( On ))
+ PORT_DIPNAME( 0x10, 0x00, "S21")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x10, DEF_STR( On ))
+ PORT_DIPNAME( 0x20, 0x00, "S22")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x20, DEF_STR( On ))
+ PORT_DIPNAME( 0x40, 0x00, "S23")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x40, DEF_STR( On ))
+ PORT_DIPNAME( 0x80, 0x00, "S24")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x80, DEF_STR( On ))
PORT_START("DSW3")
- PORT_DIPNAME( 0x07, 0x00, "Max number of credits")
- PORT_DIPSETTING( 0x07, "5" )
- PORT_DIPSETTING( 0x06, "10")
- PORT_DIPSETTING( 0x05, "15")
- PORT_DIPSETTING( 0x04, "20")
- PORT_DIPSETTING( 0x03, "25")
- PORT_DIPSETTING( 0x02, "30")
- PORT_DIPSETTING( 0x01, "35")
- PORT_DIPSETTING( 0x00, "40")
- PORT_DIPNAME( 0x08, 0x00, "Balls")
- PORT_DIPSETTING( 0x00, "5")
- PORT_DIPSETTING( 0x08, "3")
- PORT_DIPNAME( 0x10, 0x00, "Award")
- PORT_DIPSETTING( 0x00, "Replay")
- PORT_DIPSETTING( 0x10, "Extra Ball")
- PORT_DIPNAME( 0x20, 0x00, "Match")
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPSETTING( 0x20, DEF_STR( Off ))
- PORT_DIPNAME( 0xC0, 0x40, "Credits for exceeding high score")
- PORT_DIPSETTING( 0xC0, "0")
- PORT_DIPSETTING( 0x80, "1")
- PORT_DIPSETTING( 0x40, "2")
+ PORT_DIPNAME( 0x07, 0x07, "Max number of credits")
+ PORT_DIPSETTING( 0x00, "5" )
+ PORT_DIPSETTING( 0x01, "10")
+ PORT_DIPSETTING( 0x02, "15")
+ PORT_DIPSETTING( 0x03, "20")
+ PORT_DIPSETTING( 0x04, "25")
+ PORT_DIPSETTING( 0x05, "30")
+ PORT_DIPSETTING( 0x06, "35")
+ PORT_DIPSETTING( 0x07, "40")
+ PORT_DIPNAME( 0x08, 0x08, "Balls")
PORT_DIPSETTING( 0x00, "3")
+ PORT_DIPSETTING( 0x08, "5")
+ PORT_DIPNAME( 0x10, 0x10, "Award")
+ PORT_DIPSETTING( 0x00, "Extra Ball")
+ PORT_DIPSETTING( 0x10, "Replay")
+ PORT_DIPNAME( 0x20, 0x20, "Match")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x20, DEF_STR( On ))
+ PORT_DIPNAME( 0xC0, 0x80, "Credits for exceeding high score")
+ PORT_DIPSETTING( 0x00, "0")
+ PORT_DIPSETTING( 0x40, "1")
+ PORT_DIPSETTING( 0x80, "2")
+ PORT_DIPSETTING( 0xC0, "3")
PORT_START("X7")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Accounting Reset")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT1 ) PORT_NAME("Slam Tilt")
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN3 )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_TILT )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_NAME("Accounting Reset")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_TILT1 ) PORT_NAME("Slam Tilt")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN2 )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN3 )
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1 )
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_TILT )
PORT_START("X8")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("L and R Target") PORT_CODE(KEYCODE_A)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Spinner C") PORT_CODE(KEYCODE_S)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Spinner B") PORT_CODE(KEYCODE_D)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("R. Slingshot") PORT_CODE(KEYCODE_F)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Special when lit") PORT_CODE(KEYCODE_G)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("L. Slingshot") PORT_CODE(KEYCODE_H)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Extra when lit") PORT_CODE(KEYCODE_J)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L and R Target") PORT_CODE(KEYCODE_A)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Spinner C") PORT_CODE(KEYCODE_S)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Spinner B") PORT_CODE(KEYCODE_D)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("R. Slingshot") PORT_CODE(KEYCODE_F)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Special when lit") PORT_CODE(KEYCODE_G)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L. Slingshot") PORT_CODE(KEYCODE_H)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Extra when lit") PORT_CODE(KEYCODE_J)
PORT_START("X9")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("R. Spinner") PORT_CODE(KEYCODE_K)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("1000 and advance") PORT_CODE(KEYCODE_L)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Advance and Change") PORT_CODE(KEYCODE_Z)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("L. Bumper") PORT_CODE(KEYCODE_C)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("R. Bumper") PORT_CODE(KEYCODE_V)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("L. Spinner") PORT_CODE(KEYCODE_B)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Spinner A") PORT_CODE(KEYCODE_N)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("R. Spinner") PORT_CODE(KEYCODE_K)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("1000 and advance") PORT_CODE(KEYCODE_L)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Advance and Change") PORT_CODE(KEYCODE_Z)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L. Bumper") PORT_CODE(KEYCODE_C)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("R. Bumper") PORT_CODE(KEYCODE_V)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L. Spinner") PORT_CODE(KEYCODE_B)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Spinner A") PORT_CODE(KEYCODE_N)
PORT_START("XA")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("1000 Rollover") PORT_CODE(KEYCODE_M)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("1000 Rollover") PORT_CODE(KEYCODE_M)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE1 )
+ PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("XB")
- PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
INPUT_PORTS_END
READ8_MEMBER( gp_1_state::portb_r )
@@ -222,10 +220,10 @@ READ8_MEMBER( gp_1_state::portb_r )
WRITE8_MEMBER( gp_1_state::porta_w )
{
m_u14 = data >> 4;
+ /*if (m_u14 >= 8)*/ m_segment = data & 15;
if ((data > 0x0f) && (data < 0x30))
{
- m_sol = data;
- switch (m_sol)
+ switch (data)
{
case 0x10:
break;
@@ -265,14 +263,23 @@ WRITE8_MEMBER( gp_1_state::porta_w )
break;
}
}
+ static const UINT8 patterns[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67,0x58,0x4c,0x62,0x69,0x78,0x00 }; // 7448
+ if ((m_u14 >= 8) && (m_u14 <= 11))
+ {
+ output_set_digit_value(m_digit+(m_u14-8)*8, patterns[m_segment]);
+ }
}
WRITE8_MEMBER( gp_1_state::portc_w )
{
- if (BIT(data, 4))
- m_digit = data & 7;
- else
- m_digit = 0xff;
+ output_set_value("led0", BIT(data, 3));
+
+ m_digit = data & 7;
+ static const UINT8 patterns[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67,0x58,0x4c,0x62,0x69,0x78,0x00 }; // 7448
+ if ((m_digit) && (m_u14 >= 8) && (m_u14 <= 11))
+ {
+ output_set_digit_value(m_digit+(m_u14-8)*8, patterns[m_segment]);
+ }
}
void gp_1_state::machine_reset()
@@ -281,10 +288,6 @@ void gp_1_state::machine_reset()
m_digit = 0xff;
}
-DRIVER_INIT_MEMBER(gp_1_state,gp_1)
-{
-}
-
// zero-cross detection
TIMER_DEVICE_CALLBACK_MEMBER( gp_1_state::zero_timer )
{
@@ -305,6 +308,9 @@ static MACHINE_CONFIG_START( gp_1, gp_1_state )
MCFG_CPU_IO_MAP(gp_1_io)
MCFG_CPU_CONFIG(daisy_chain)
+ /* Video */
+ MCFG_DEFAULT_LAYOUT(layout_gp_1)
+
/* Sound */
MCFG_FRAGMENT_ADD( genpin_audio )
@@ -371,12 +377,12 @@ ROM_START(startrip)
ROM_LOAD( "startrip.u13", 0x0800, 0x0800, CRC(b941a1a8) SHA1(a43f8acadb3db3e2274162d5305e30006f912339))
ROM_END
-GAME(1978, gp_110, 0, gp_1, gp_1, gp_1_state, gp_1, ROT0, "Game Plan", "Model 110", GAME_IS_BIOS_ROOT)
-GAME(1978, blvelvet, gp_110, gp_1, gp_1, gp_1_state, gp_1, ROT0, "Game Plan", "Black Velvet", GAME_IS_SKELETON_MECHANICAL)
-GAME(1978, camlight, gp_110, gp_1, gp_1, gp_1_state, gp_1, ROT0, "Game Plan", "Camel Lights", GAME_IS_SKELETON_MECHANICAL)
-GAME(1978, foxylady, gp_110, gp_1, gp_1, gp_1_state, gp_1, ROT0, "Game Plan", "Foxy Lady", GAME_IS_SKELETON_MECHANICAL)
-GAME(1978, real, gp_110, gp_1, gp_1, gp_1_state, gp_1, ROT0, "Game Plan", "Real", GAME_IS_SKELETON_MECHANICAL)
-GAME(1978, rio, gp_110, gp_1, gp_1, gp_1_state, gp_1, ROT0, "Game Plan", "Rio", GAME_IS_SKELETON_MECHANICAL)
-GAME(1978, chucklck, gp_110, gp_1, gp_1, gp_1_state, gp_1, ROT0, "Game Plan", "Chuck-A-Luck", GAME_IS_SKELETON_MECHANICAL)
-GAME(1979, famlyfun, 0, gp_1, gp_1, gp_1_state, gp_1, ROT0, "Game Plan", "Family Fun!", GAME_IS_SKELETON_MECHANICAL)
-GAME(1979, startrip, 0, gp_1, gp_1, gp_1_state, gp_1, ROT0, "Game Plan", "Star Trip", GAME_IS_SKELETON_MECHANICAL)
+GAME(1978, gp_110, 0, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Model 110", GAME_IS_BIOS_ROOT)
+GAME(1978, blvelvet, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Black Velvet", GAME_IS_SKELETON_MECHANICAL)
+GAME(1978, camlight, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Camel Lights", GAME_IS_SKELETON_MECHANICAL)
+GAME(1978, foxylady, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Foxy Lady", GAME_IS_SKELETON_MECHANICAL)
+GAME(1978, real, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Real", GAME_IS_SKELETON_MECHANICAL)
+GAME(1978, rio, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Rio", GAME_IS_SKELETON_MECHANICAL)
+GAME(1978, chucklck, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Chuck-A-Luck", GAME_IS_SKELETON_MECHANICAL)
+GAME(1979, famlyfun, 0, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Family Fun!", GAME_IS_SKELETON_MECHANICAL)
+GAME(1979, startrip, 0, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Star Trip", GAME_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/layout/gp_1.lay b/src/mame/layout/gp_1.lay
new file mode 100644
index 00000000000..f79375dc33b
--- /dev/null
+++ b/src/mame/layout/gp_1.lay
@@ -0,0 +1,140 @@
+<!-- Game Plan 1 copied from s6.lay -->
+
+<!-- 2014-07-22: Initial version. [Robbbert] -->
+
+<mamelayout version="2">
+
+ <element name="digit" defstate="0">
+ <led7seg>
+ <color red="1.0" green="0.25" blue="0.0" />
+ </led7seg>
+ </element>
+ <element name="red_led">
+ <disk><color red="1.0" green="0.0" blue="0.0" /></disk>
+ </element>
+ <element name="background">
+ <rect>
+ <bounds left="0" top="0" right="1" bottom="1" />
+ <color red="0.0" green="0.0" blue="0.0" />
+ </rect>
+ </element>
+ <element name="P0"><text string="Ball / Match"><color red="1.0" green="1.0" blue="1.0" /></text></element>
+ <element name="P1"><text string="Credits"><color red="1.0" green="1.0" blue="1.0" /></text></element>
+ <element name="P3"><text string="Player 1"><color red="1.0" green="1.0" blue="1.0" /></text></element>
+ <element name="P4"><text string="Player 2"><color red="1.0" green="1.0" blue="1.0" /></text></element>
+ <element name="P5"><text string="Player 3"><color red="1.0" green="1.0" blue="1.0" /></text></element>
+ <element name="P6"><text string="Player 4"><color red="1.0" green="1.0" blue="1.0" /></text></element>
+
+ <view name="Default Layout">
+
+ <!-- Background -->
+ <backdrop element="background">
+ <bounds left="0" top="20" right="274" bottom="394" />
+ </backdrop>
+
+ <!-- LEDs -->
+
+ <!-- Player 1 Score -->
+
+ <bezel name="digit0" element="digit">
+ <bounds left="10" top="45" right="44" bottom="84" />
+ </bezel>
+ <bezel name="digit1" element="digit">
+ <bounds left="54" top="45" right="88" bottom="84" />
+ </bezel>
+ <bezel name="digit2" element="digit">
+ <bounds left="98" top="45" right="132" bottom="84" />
+ </bezel>
+ <bezel name="digit3" element="digit">
+ <bounds left="142" top="45" right="176" bottom="84" />
+ </bezel>
+ <bezel name="digit4" element="digit">
+ <bounds left="186" top="45" right="220" bottom="84" />
+ </bezel>
+ <bezel name="digit5" element="digit">
+ <bounds left="230" top="45" right="264" bottom="84" />
+ </bezel>
+
+ <!-- Player 2 Score -->
+ <bezel name="digit8" element="digit">
+ <bounds left="10" top="105" right="44" bottom="144" />
+ </bezel>
+ <bezel name="digit9" element="digit">
+ <bounds left="54" top="105" right="88" bottom="144" />
+ </bezel>
+ <bezel name="digit10" element="digit">
+ <bounds left="98" top="105" right="132" bottom="144" />
+ </bezel>
+ <bezel name="digit11" element="digit">
+ <bounds left="142" top="105" right="176" bottom="144" />
+ </bezel>
+ <bezel name="digit12" element="digit">
+ <bounds left="186" top="105" right="220" bottom="144" />
+ </bezel>
+ <bezel name="digit13" element="digit">
+ <bounds left="230" top="105" right="264" bottom="144" />
+ </bezel>
+
+ <!-- Player 3 Score -->
+ <bezel name="digit16" element="digit">
+ <bounds left="10" top="165" right="44" bottom="204" />
+ </bezel>
+ <bezel name="digit17" element="digit">
+ <bounds left="54" top="165" right="88" bottom="204" />
+ </bezel>
+ <bezel name="digit18" element="digit">
+ <bounds left="98" top="165" right="132" bottom="204" />
+ </bezel>
+ <bezel name="digit19" element="digit">
+ <bounds left="142" top="165" right="176" bottom="204" />
+ </bezel>
+ <bezel name="digit20" element="digit">
+ <bounds left="186" top="165" right="220" bottom="204" />
+ </bezel>
+ <bezel name="digit21" element="digit">
+ <bounds left="230" top="165" right="264" bottom="204" />
+ </bezel>
+
+ <!-- Player 4 Score -->
+ <bezel name="digit24" element="digit">
+ <bounds left="10" top="225" right="44" bottom="264" />
+ </bezel>
+ <bezel name="digit25" element="digit">
+ <bounds left="54" top="225" right="88" bottom="264" />
+ </bezel>
+ <bezel name="digit26" element="digit">
+ <bounds left="98" top="225" right="132" bottom="264" />
+ </bezel>
+ <bezel name="digit27" element="digit">
+ <bounds left="142" top="225" right="176" bottom="264" />
+ </bezel>
+ <bezel name="digit28" element="digit">
+ <bounds left="186" top="225" right="220" bottom="264" />
+ </bezel>
+ <bezel name="digit29" element="digit">
+ <bounds left="230" top="225" right="264" bottom="264" />
+ </bezel>
+
+ <!-- Credits and Balls -->
+ <bezel name="digit14" element="digit">
+ <bounds left="10" top="345" right="44" bottom="384" />
+ </bezel>
+ <bezel name="digit15" element="digit">
+ <bounds left="54" top="345" right="88" bottom="384" />
+ </bezel>
+ <bezel name="digit6" element="digit">
+ <bounds left="186" top="345" right="220" bottom="384" />
+ </bezel>
+ <bezel name="digit7" element="digit">
+ <bounds left="230" top="345" right="264" bottom="384" />
+ </bezel>
+ <bezel element="P0"><bounds left="200" right="258" top="330" bottom="342" /></bezel>
+ <bezel element="P1"><bounds left="30" right="88" top="330" bottom="342" /></bezel>
+ <bezel name="text3" element="P3"><bounds left="100" right="180" top="30" bottom="42" /></bezel>
+ <bezel name="text2" element="P4"><bounds left="100" right="180" top="90" bottom="102" /></bezel>
+ <bezel name="text1" element="P5"><bounds left="100" right="180" top="150" bottom="162" /></bezel>
+ <bezel name="text0" element="P6"><bounds left="100" right="180" top="210" bottom="222" /></bezel>
+ <bezel name="led0" element="red_led">
+ <bounds left="110" right="125" top="360" bottom="375" /></bezel>
+ </view>
+</mamelayout>
diff --git a/src/mame/mame.mak b/src/mame/mame.mak
index 9ca7a85787d..93b6867602f 100644
--- a/src/mame/mame.mak
+++ b/src/mame/mame.mak
@@ -2602,7 +2602,8 @@ $(DRIVERS)/funworld.o: $(LAYOUT)/jollycrd.lh \
$(LAYOUT)/novoplay.lh \
$(LAYOUT)/royalcrd.lh
-$(DRIVERS)/g627.o: $(LAYOUT)/g627.lh
+$(DRIVERS)/g627.o: $(LAYOUT)/g627.lh
+$(DRIVERS)/gp_1.o: $(LAYOUT)/gp_1.lh
$(DRIVERS)/galaxi.o: $(LAYOUT)/galaxi.lh
@@ -2639,7 +2640,7 @@ $(DRIVERS)/jankenmn.o: $(LAYOUT)/jankenmn.lh
$(DRIVERS)/jpmimpct.o: $(LAYOUT)/jpmimpct.lh
-$(DRIVERS)/jpmmps.o: $(LAYOUT)/jpmmps.lh
+$(DRIVERS)/jpmmps.o: $(LAYOUT)/jpmmps.lh
$(DRIVERS)/jpmsys5.o: $(LAYOUT)/jpmsys5.lh
@@ -2674,7 +2675,7 @@ $(DRIVERS)/mcr3.o: $(LAYOUT)/spyhunt.lh \
$(DRIVERS)/mpoker.o: $(LAYOUT)/mpoker.lh
-$(DRIVERS)/mpu3.o: $(LAYOUT)/mpu3.lh
+$(DRIVERS)/mpu3.o: $(LAYOUT)/mpu3.lh
$(DRIVERS)/mpu4mod2sw.o: $(LAYOUT)/connect4.lh \
@@ -2733,7 +2734,7 @@ $(DRIVERS)/neogeo.o: $(LAYOUT)/neogeo.lh
$(DRIVERS)/norautp.o: $(LAYOUT)/noraut11.lh \
$(LAYOUT)/noraut12.lh
-$(DRIVERS)/nsm.o: $(LAYOUT)/nsm.lh
+$(DRIVERS)/nsm.o: $(LAYOUT)/nsm.lh
$(DRIVERS)/omegrace.o: $(LAYOUT)/omegrace.lh
@@ -2761,24 +2762,24 @@ $(DRIVERS)/roul.o: $(LAYOUT)/roul.lh
$(DRIVERS)/rowamet.o: $(LAYOUT)/rowamet.lh
-$(DRIVERS)/s3.o: $(LAYOUT)/s3.lh
+$(DRIVERS)/s3.o: $(LAYOUT)/s3.lh
-$(DRIVERS)/s4.o: $(LAYOUT)/s4.lh
+$(DRIVERS)/s4.o: $(LAYOUT)/s4.lh
-$(DRIVERS)/s6.o: $(LAYOUT)/s6.lh
+$(DRIVERS)/s6.o: $(LAYOUT)/s6.lh
-$(DRIVERS)/s6a.o: $(LAYOUT)/s6a.lh
+$(DRIVERS)/s6a.o: $(LAYOUT)/s6a.lh
-$(DRIVERS)/s7.o: $(LAYOUT)/s7.lh
+$(DRIVERS)/s7.o: $(LAYOUT)/s7.lh
-$(DRIVERS)/s8.o: $(LAYOUT)/s8.lh
+$(DRIVERS)/s8.o: $(LAYOUT)/s8.lh
-$(DRIVERS)/s9.o: $(LAYOUT)/s9.lh
+$(DRIVERS)/s9.o: $(LAYOUT)/s9.lh
-$(DRIVERS)/s11.o: $(LAYOUT)/s11.lh
-$(DRIVERS)/s11a.o: $(LAYOUT)/s11a.lh
-$(DRIVERS)/s11b.o: $(LAYOUT)/s11b.lh
-$(DRIVERS)/s11c.o: $(LAYOUT)/s11c.lh
+$(DRIVERS)/s11.o: $(LAYOUT)/s11.lh
+$(DRIVERS)/s11a.o: $(LAYOUT)/s11a.lh
+$(DRIVERS)/s11b.o: $(LAYOUT)/s11b.lh
+$(DRIVERS)/s11c.o: $(LAYOUT)/s11c.lh
$(DRIVERS)/sanremo.o: $(LAYOUT)/sanremo.lh
@@ -2851,11 +2852,11 @@ $(DRIVERS)/thayers.o: $(LAYOUT)/dlair.lh
$(DRIVERS)/topspeed.o: $(LAYOUT)/topspeed.lh
-$(DRIVERS)/turbo.o: $(LAYOUT)/turbo.lh \
+$(DRIVERS)/turbo.o: $(LAYOUT)/turbo.lh \
$(LAYOUT)/subroc3d.lh \
$(LAYOUT)/buckrog.lh
-$(DRIVERS)/tx1.o: $(LAYOUT)/buggybjr.lh \
+$(DRIVERS)/tx1.o: $(LAYOUT)/buggybjr.lh \
$(LAYOUT)/buggyboy.lh \
$(LAYOUT)/tx1.lh
@@ -2863,7 +2864,7 @@ $(DRIVERS)/umipoker.o: $(LAYOUT)/saiyukip.lh
$(DRIVERS)/undrfire.o: $(LAYOUT)/cbombers.lh
-$(DRIVERS)/vd.o: $(LAYOUT)/vd.lh
+$(DRIVERS)/vd.o: $(LAYOUT)/vd.lh
$(DRIVERS)/vicdual.o: $(LAYOUT)/depthch.lh
@@ -2883,13 +2884,13 @@ $(DRIVERS)/wpc_an.o: $(LAYOUT)/wpc_an.lh
$(DRIVERS)/wecleman.o: $(LAYOUT)/wecleman.lh
-$(DRIVERS)/wico.o: $(LAYOUT)/wico.lh
+$(DRIVERS)/wico.o: $(LAYOUT)/wico.lh
$(DRIVERS)/zac2650.o: $(LAYOUT)/tinv2650.lh
-$(DRIVERS)/zac_1.o: $(LAYOUT)/zac_1.lh
+$(DRIVERS)/zac_1.o: $(LAYOUT)/zac_1.lh
-$(DRIVERS)/zac_2.o: $(LAYOUT)/zac_2.lh
+$(DRIVERS)/zac_2.o: $(LAYOUT)/zac_2.lh
$(DRIVERS)/zac_proto.o: $(LAYOUT)/zac_proto.lh