diff options
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 |
commit | 5ce15c1ca445244073cab2b73449236f65717e03 (patch) | |
tree | c60e3d2cf09b63dd203d41213766cda14d241c80 | |
parent | 34e3059cd6205ec66d45ee951d0b73b790d4c815 (diff) |
GamePlan 1: WIP
-rw-r--r-- | .gitattributes | 1 | ||||
-rw-r--r-- | src/mame/drivers/gp_1.c | 294 | ||||
-rw-r--r-- | src/mame/layout/gp_1.lay | 140 | ||||
-rw-r--r-- | src/mame/mame.mak | 43 |
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 |