Previous 199869 Revisions Next

r31406 Thursday 24th July, 2014 at 12:37:10 UTC by Robbbert
Game Plan WIP
[src/mame]mame.mak
[src/mame/drivers]gp_1.c gp_2.c
[src/mame/layout]gp_2.lay*

trunk/src/mame/layout/gp_2.lay
r0r31406
1<!-- Game Plan 2 copied from gp_1.lay -->
2
3<!-- 2014-07-24: Initial version.  [Robbbert] -->
4
5<mamelayout version="2">
6
7   <element name="digit" defstate="0">
8      <led7seg>
9         <color red="1.0" green="0.25" blue="0.0" />
10      </led7seg>
11   </element>
12   <element name="red_led">
13      <disk><color red="1.0" green="0.0" blue="0.0" /></disk>
14   </element>
15   <element name="background">
16      <rect>
17         <bounds left="0" top="0" right="1" bottom="1" />
18         <color red="0.0" green="0.0" blue="0.0" />
19      </rect>
20   </element>
21   <element name="P0"><text string="Ball"><color red="1.0" green="1.0" blue="1.0" /></text></element>
22   <element name="P1"><text string="Credits"><color red="1.0" green="1.0" blue="1.0" /></text></element>
23   <element name="P2"><text string="Match"><color red="1.0" green="1.0" blue="1.0" /></text></element>
24   <element name="P3"><text string="Player 1"><color red="1.0" green="1.0" blue="1.0" /></text></element>
25   <element name="P4"><text string="Player 2"><color red="1.0" green="1.0" blue="1.0" /></text></element>
26   <element name="P5"><text string="Player 3"><color red="1.0" green="1.0" blue="1.0" /></text></element>
27   <element name="P6"><text string="Player 4"><color red="1.0" green="1.0" blue="1.0" /></text></element>
28
29   <view name="Default Layout">
30
31      <!-- Background -->
32      <backdrop element="background">
33         <bounds left="0" top="20" right="274" bottom="394" />
34      </backdrop>
35
36      <!-- LEDs -->
37
38      <!-- Player 1 Score -->
39
40      <bezel name="digit5" element="digit">
41         <bounds left="10" top="45" right="44" bottom="84" />
42      </bezel>
43      <bezel name="digit4" element="digit">
44         <bounds left="54" top="45" right="88" bottom="84" />
45      </bezel>
46      <bezel name="digit3" element="digit">
47         <bounds left="98" top="45" right="132" bottom="84" />
48      </bezel>
49      <bezel name="digit2" element="digit">
50         <bounds left="142" top="45" right="176" bottom="84" />
51      </bezel>
52      <bezel name="digit1" element="digit">
53         <bounds left="186" top="45" right="220" bottom="84" />
54      </bezel>
55      <bezel name="digit0" element="digit">
56         <bounds left="230" top="45" right="264" bottom="84" />
57      </bezel>
58
59      <!-- Player 2 Score -->
60      <bezel name="digit13" element="digit">
61         <bounds left="10" top="105" right="44" bottom="144" />
62      </bezel>
63      <bezel name="digit12" element="digit">
64         <bounds left="54" top="105" right="88" bottom="144" />
65      </bezel>
66      <bezel name="digit11" element="digit">
67         <bounds left="98" top="105" right="132" bottom="144" />
68      </bezel>
69      <bezel name="digit10" element="digit">
70         <bounds left="142" top="105" right="176" bottom="144" />
71      </bezel>
72      <bezel name="digit9" element="digit">
73         <bounds left="186" top="105" right="220" bottom="144" />
74      </bezel>
75      <bezel name="digit8" element="digit">
76         <bounds left="230" top="105" right="264" bottom="144" />
77      </bezel>
78
79      <!-- Player 3 Score -->
80      <bezel name="digit21" element="digit">
81         <bounds left="10" top="165" right="44" bottom="204" />
82      </bezel>
83      <bezel name="digit20" element="digit">
84         <bounds left="54" top="165" right="88" bottom="204" />
85      </bezel>
86      <bezel name="digit19" element="digit">
87         <bounds left="98" top="165" right="132" bottom="204" />
88      </bezel>
89      <bezel name="digit18" element="digit">
90         <bounds left="142" top="165" right="176" bottom="204" />
91      </bezel>
92      <bezel name="digit17" element="digit">
93         <bounds left="186" top="165" right="220" bottom="204" />
94      </bezel>
95      <bezel name="digit16" element="digit">
96         <bounds left="230" top="165" right="264" bottom="204" />
97      </bezel>
98
99      <!-- Player 4 Score -->
100      <bezel name="digit29" element="digit">
101         <bounds left="10" top="225" right="44" bottom="264" />
102      </bezel>
103      <bezel name="digit28" element="digit">
104         <bounds left="54" top="225" right="88" bottom="264" />
105      </bezel>
106      <bezel name="digit27" element="digit">
107         <bounds left="98" top="225" right="132" bottom="264" />
108      </bezel>
109      <bezel name="digit26" element="digit">
110         <bounds left="142" top="225" right="176" bottom="264" />
111      </bezel>
112      <bezel name="digit25" element="digit">
113         <bounds left="186" top="225" right="220" bottom="264" />
114      </bezel>
115      <bezel name="digit24" element="digit">
116         <bounds left="230" top="225" right="264" bottom="264" />
117      </bezel>
118
119      <!-- Credits and Balls -->
120      <bezel name="digit36" element="digit">
121         <bounds left="39" top="345" right="73" bottom="384" />
122      </bezel>
123      <bezel name="digit37" element="digit">
124         <bounds left="110" top="345" right="144" bottom="384" />
125      </bezel>
126      <bezel name="digit33" element="digit">
127         <bounds left="171" top="345" right="205" bottom="384" />
128      </bezel>
129      <bezel name="digit32" element="digit">
130         <bounds left="210" top="345" right="244" bottom="384" />
131      </bezel>
132      <bezel element="P2"><bounds left="100" right="158" top="330" bottom="342" /></bezel>
133      <bezel element="P1"><bounds left="200" right="258" top="330" bottom="342" /></bezel>
134      <bezel element="P0"><bounds left="30" right="88" top="330" bottom="342" /></bezel>
135      <bezel name="text3" element="P3"><bounds left="100" right="180" top="30" bottom="42" /></bezel>
136      <bezel name="text2" element="P4"><bounds left="100" right="180" top="90" bottom="102" /></bezel>
137      <bezel name="text1" element="P5"><bounds left="100" right="180" top="150" bottom="162" /></bezel>
138      <bezel name="text0" element="P6"><bounds left="100" right="180" top="210" bottom="222" /></bezel>
139      <bezel name="led0" element="red_led">
140         <bounds left="10" right="25" top="360" bottom="375" /></bezel>
141   </view>
142</mamelayout>
Property changes on: trunk/src/mame/layout/gp_2.lay
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native
trunk/src/mame/drivers/gp_2.c
r31405r31406
1/*
1/*****************************************************************************************
2
3    PINBALL
24    Game Plan MPU-2
3*/
45
6When first turned on, you need to press 9 to enter the setup program, then keep
7pressing 9 until 06 shows in the credits display. Press the credit button to set
8the first high score at which a free credit is awarded. Then press 9 to set the
92nd high score, then 9 to set the 3rd high score. Keep pressing 9 until you exit
10back to normal operation. If this setup is not done, each player will get 3 free
11games at the start of ball 1.
512
6#include "emu.h"
13All the Z80 "maincpu" code is copied from gp_1.c
14Any bug fixes need to be applied both here and there.
15
16
17ToDo:
18- The earlier sets have a sound board with 3x SN76477 and lots of discrete circuitry (not emulated)
19- The later sets (with sound roms) have a sound board with a MC6808 and 6821PIA (not emulated)
20- Each machine has its own set of inputs (not emulated)
21
22
23******************************************************************************************/
24
25
26#include "machine/genpin.h"
727#include "cpu/z80/z80.h"
28#include "cpu/z80/z80daisy.h"
29#include "machine/i8255.h"
30#include "machine/z80ctc.h"
31#include "machine/nvram.h"
32#include "gp_2.lh"
833
9class gp_2_state : public driver_device
34class gp_2_state : public genpin_class
1035{
1136public:
1237   gp_2_state(const machine_config &mconfig, device_type type, const char *tag)
13      : driver_device(mconfig, type, tag),
14         m_maincpu(*this, "maincpu")
38      : genpin_class(mconfig, type, tag)
39      , m_maincpu(*this, "maincpu")
40      , m_ctc(*this, "ctc")
41      , m_io_dsw0(*this, "DSW0")
42      , m_io_dsw1(*this, "DSW1")
43      , m_io_dsw2(*this, "DSW2")
44      , m_io_dsw3(*this, "DSW3")
45      , m_io_x7(*this, "X7")
46      , m_io_x8(*this, "X8")
47      , m_io_x9(*this, "X9")
48      , m_io_xa(*this, "XA")
49      , m_io_xb(*this, "XB")
1550   { }
1651
17protected:
18
19   // devices
52   DECLARE_DRIVER_INIT(gp_2);
53   DECLARE_WRITE8_MEMBER(porta_w);
54   DECLARE_WRITE8_MEMBER(portc_w);
55   DECLARE_READ8_MEMBER(portb_r);
56   TIMER_DEVICE_CALLBACK_MEMBER(zero_timer);
57private:
58   UINT8 m_u14;
59   UINT8 m_digit;
60   UINT8 m_segment[16];
61   virtual void machine_reset();
2062   required_device<cpu_device> m_maincpu;
21
22   // driver_device overrides
23   virtual void machine_reset();
24public:
25   DECLARE_DRIVER_INIT(gp_2);
63   required_device<z80ctc_device> m_ctc;
64   required_ioport m_io_dsw0;
65   required_ioport m_io_dsw1;
66   required_ioport m_io_dsw2;
67   required_ioport m_io_dsw3;
68   required_ioport m_io_x7;
69   required_ioport m_io_x8;
70   required_ioport m_io_x9;
71   required_ioport m_io_xa;
72   required_ioport m_io_xb;
2673};
2774
2875
2976static ADDRESS_MAP_START( gp_2_map, AS_PROGRAM, 8, gp_2_state )
30   AM_RANGE(0x0000, 0xffff) AM_NOP
77   AM_RANGE(0x0000, 0x3fff) AM_ROM AM_REGION("roms", 0)
78   AM_RANGE(0x8c00, 0x8dff) AM_RAM AM_SHARE("nvram")
3179ADDRESS_MAP_END
3280
81static ADDRESS_MAP_START( gp_2_io, AS_IO, 8, gp_2_state )
82   ADDRESS_MAP_GLOBAL_MASK(0x0f)
83   AM_RANGE(0x04, 0x07) AM_DEVREADWRITE("ppi", i8255_device, read, write)
84   AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("ctc", z80ctc_device, read, write)
85ADDRESS_MAP_END
86
87static INPUT_PORTS_START( gp_1 )
88   PORT_START("DSW0")
89   PORT_DIPNAME( 0x1f, 0x02, "Coin Slot 1")
90   PORT_DIPSETTING(    0x00, DEF_STR( 2C_3C )) // same as 01
91   PORT_DIPSETTING(    0x02, DEF_STR( 1C_1C ))
92   PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ))
93   PORT_DIPSETTING(    0x04, DEF_STR( 1C_2C ))
94   PORT_DIPSETTING(    0x05, DEF_STR( 2C_2C ))
95   PORT_DIPSETTING(    0x06, DEF_STR( 1C_3C ))
96   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ))
97   PORT_DIPSETTING(    0x08, DEF_STR( 1C_4C ))
98   PORT_DIPSETTING(    0x09, DEF_STR( 2C_4C ))
99   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_5C ))
100   PORT_DIPSETTING(    0x0b, DEF_STR( 2C_5C ))
101   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_6C ))
102   PORT_DIPSETTING(    0x0d, DEF_STR( 2C_6C ))
103   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_7C ))
104   PORT_DIPSETTING(    0x0f, DEF_STR( 2C_7C ))
105   PORT_DIPSETTING(    0x10, DEF_STR( 1C_8C ))
106   PORT_DIPSETTING(    0x11, DEF_STR( 2C_8C ))
107   PORT_DIPSETTING(    0x12, DEF_STR( 1C_9C ))
108   PORT_DIPSETTING(    0x13, "2 coins 9 credits")
109   PORT_DIPSETTING(    0x14, "1 coin 10 credits")
110   PORT_DIPSETTING(    0x15, "2 coins 10 credits")
111   PORT_DIPSETTING(    0x16, "1 coin 11 credits")
112   PORT_DIPSETTING(    0x17, "2 coins 11 credits")
113   PORT_DIPSETTING(    0x18, "1 coin 12 credits")
114   PORT_DIPSETTING(    0x19, "2 coins 12 credits")
115   PORT_DIPSETTING(    0x1a, "1 coin 13 credits")
116   PORT_DIPSETTING(    0x1b, "2 coins 13 credits")
117   PORT_DIPSETTING(    0x1c, "1 coin 14 credits")
118   PORT_DIPSETTING(    0x1d, "2 coins 14 credits")
119   PORT_DIPSETTING(    0x1e, "1 coin 15 credits")
120   PORT_DIPSETTING(    0x1f, "2 coins 15 credits")
121   PORT_DIPNAME( 0x20, 0x00, "S06")
122   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
123   PORT_DIPSETTING(    0x20, DEF_STR( On ))
124   PORT_DIPNAME( 0x40, 0x00, "S07")
125   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
126   PORT_DIPSETTING(    0x40, DEF_STR( On ))
127   PORT_DIPNAME( 0x80, 0x00, "Free Play")
128   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
129   PORT_DIPSETTING(    0x80, DEF_STR( On ))
130
131   PORT_START("DSW1")
132   PORT_DIPNAME( 0x0f, 0x00, "Coin Slot 2") // S09-12 determine coinage for slot 2
133   PORT_DIPSETTING(    0x00, "Same as Slot 1")
134   PORT_DIPSETTING(    0x01, DEF_STR( 1C_1C ))
135   PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ))
136   PORT_DIPSETTING(    0x03, DEF_STR( 1C_3C ))
137   PORT_DIPSETTING(    0x04, DEF_STR( 1C_4C ))
138   PORT_DIPSETTING(    0x05, DEF_STR( 1C_5C ))
139   PORT_DIPSETTING(    0x06, DEF_STR( 1C_6C ))
140   PORT_DIPSETTING(    0x07, DEF_STR( 1C_7C ))
141   PORT_DIPSETTING(    0x08, DEF_STR( 1C_8C ))
142   PORT_DIPSETTING(    0x09, DEF_STR( 1C_9C ))
143   PORT_DIPSETTING(    0x0a, "1 coin 10 credits")
144   PORT_DIPSETTING(    0x0b, "1 coin 11 credits")
145   PORT_DIPSETTING(    0x0c, "1 coin 12 credits")
146   PORT_DIPSETTING(    0x0d, "1 coin 13 credits")
147   PORT_DIPSETTING(    0x0e, "1 coin 14 credits")
148   PORT_DIPSETTING(    0x0f, "1 coin 15 credits")
149   PORT_DIPNAME( 0x10, 0x00, "S13")
150   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
151   PORT_DIPSETTING(    0x10, DEF_STR( On ))
152   PORT_DIPNAME( 0x20, 0x00, "S14")
153   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
154   PORT_DIPSETTING(    0x20, DEF_STR( On ))
155   PORT_DIPNAME( 0x40, 0x00, "S15")
156   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
157   PORT_DIPSETTING(    0x40, DEF_STR( On ))
158   PORT_DIPNAME( 0x80, 0x00, "Play Tunes")
159   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
160   PORT_DIPSETTING(    0x80, DEF_STR( On ))
161
162   PORT_START("DSW2")
163   PORT_DIPNAME( 0x1f, 0x02, "Coin Slot 3")
164   PORT_DIPSETTING(    0x00, DEF_STR( 2C_3C )) // same as 01
165   PORT_DIPSETTING(    0x02, DEF_STR( 1C_1C ))
166   PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ))
167   PORT_DIPSETTING(    0x04, DEF_STR( 1C_2C ))
168   PORT_DIPSETTING(    0x05, DEF_STR( 2C_2C ))
169   PORT_DIPSETTING(    0x06, DEF_STR( 1C_3C ))
170   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ))
171   PORT_DIPSETTING(    0x08, DEF_STR( 1C_4C ))
172   PORT_DIPSETTING(    0x09, DEF_STR( 2C_4C ))
173   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_5C ))
174   PORT_DIPSETTING(    0x0b, DEF_STR( 2C_5C ))
175   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_6C ))
176   PORT_DIPSETTING(    0x0d, DEF_STR( 2C_6C ))
177   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_7C ))
178   PORT_DIPSETTING(    0x0f, DEF_STR( 2C_7C ))
179   PORT_DIPSETTING(    0x10, DEF_STR( 1C_8C ))
180   PORT_DIPSETTING(    0x11, DEF_STR( 2C_8C ))
181   PORT_DIPSETTING(    0x12, DEF_STR( 1C_9C ))
182   PORT_DIPSETTING(    0x13, "2 coins 9 credits")
183   PORT_DIPSETTING(    0x14, "1 coin 10 credits")
184   PORT_DIPSETTING(    0x15, "2 coins 10 credits")
185   PORT_DIPSETTING(    0x16, "1 coin 11 credits")
186   PORT_DIPSETTING(    0x17, "2 coins 11 credits")
187   PORT_DIPSETTING(    0x18, "1 coin 12 credits")
188   PORT_DIPSETTING(    0x19, "2 coins 12 credits")
189   PORT_DIPSETTING(    0x1a, "1 coin 13 credits")
190   PORT_DIPSETTING(    0x1b, "2 coins 13 credits")
191   PORT_DIPSETTING(    0x1c, "1 coin 14 credits")
192   PORT_DIPSETTING(    0x1d, "2 coins 14 credits")
193   PORT_DIPSETTING(    0x1e, "1 coin 15 credits")
194   PORT_DIPSETTING(    0x1f, "2 coins 15 credits")
195   PORT_DIPNAME( 0x20, 0x00, "S22")
196   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
197   PORT_DIPSETTING(    0x20, DEF_STR( On ))
198   PORT_DIPNAME( 0x40, 0x00, "S23")
199   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
200   PORT_DIPSETTING(    0x40, DEF_STR( On ))
201   PORT_DIPNAME( 0x80, 0x00, "S24")
202   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
203   PORT_DIPSETTING(    0x80, DEF_STR( On ))
204
205   PORT_START("DSW3")
206   PORT_DIPNAME( 0x07, 0x07, "Max number of credits")
207   PORT_DIPSETTING(    0x00, "5" )
208   PORT_DIPSETTING(    0x01, "10")
209   PORT_DIPSETTING(    0x02, "15")
210   PORT_DIPSETTING(    0x03, "20")
211   PORT_DIPSETTING(    0x04, "25")
212   PORT_DIPSETTING(    0x05, "30")
213   PORT_DIPSETTING(    0x06, "35")
214   PORT_DIPSETTING(    0x07, "40")
215   PORT_DIPNAME( 0x08, 0x08, "Balls")
216   PORT_DIPSETTING(    0x00, "3")
217   PORT_DIPSETTING(    0x08, "5")
218   PORT_DIPNAME( 0x10, 0x10, "Award")
219   PORT_DIPSETTING(    0x00, "Extra Ball")
220   PORT_DIPSETTING(    0x10, "Replay")
221   PORT_DIPNAME( 0x20, 0x20, "Match")
222   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
223   PORT_DIPSETTING(    0x20, DEF_STR( On ))
224   PORT_DIPNAME( 0xC0, 0x80, "Credits for exceeding high score")
225   PORT_DIPSETTING(    0x00, "0")
226   PORT_DIPSETTING(    0x40, "1")
227   PORT_DIPSETTING(    0x80, "2")
228   PORT_DIPSETTING(    0xC0, "3")
229
230   PORT_START("X7")
231   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_NAME("Accounting Reset") // This pushbutton on the MPU board is called "S33"
232   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 )
233   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_TILT1 ) PORT_NAME("Slam Tilt")
234   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
235   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN2 )
236   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN3 )
237   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1 )
238   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_TILT )
239
240   PORT_START("X8")
241   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L and R Target") PORT_CODE(KEYCODE_A)
242   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Spinner C") PORT_CODE(KEYCODE_S)
243   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X)
244   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Spinner B") PORT_CODE(KEYCODE_D)
245   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("R. Slingshot") PORT_CODE(KEYCODE_F)
246   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Special when lit") PORT_CODE(KEYCODE_G)
247   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L. Slingshot") PORT_CODE(KEYCODE_H)
248   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Extra when lit") PORT_CODE(KEYCODE_J)
249
250   PORT_START("X9")
251   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("R. Spinner") PORT_CODE(KEYCODE_K)
252   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("1000 and advance") PORT_CODE(KEYCODE_L)
253   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
254   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Advance and Change") PORT_CODE(KEYCODE_Z)
255   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L. Bumper") PORT_CODE(KEYCODE_C)
256   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("R. Bumper") PORT_CODE(KEYCODE_V)
257   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L. Spinner") PORT_CODE(KEYCODE_B)
258   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Spinner A") PORT_CODE(KEYCODE_N)
259
260   PORT_START("XA")
261   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("1000 Rollover") PORT_CODE(KEYCODE_M)
262   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE1 )
263   PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNUSED )
264
265   PORT_START("XB")
266   PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
267INPUT_PORTS_END
268
33269static INPUT_PORTS_START( gp_2 )
270   PORT_START("DSW0")
271   PORT_DIPNAME( 0x1f, 0x02, "Coin Slot 1")
272   PORT_DIPSETTING(    0x00, DEF_STR( 2C_3C )) // same as 01
273   PORT_DIPSETTING(    0x02, DEF_STR( 1C_1C ))
274   PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ))
275   PORT_DIPSETTING(    0x04, DEF_STR( 1C_2C ))
276   PORT_DIPSETTING(    0x05, DEF_STR( 2C_2C ))
277   PORT_DIPSETTING(    0x06, DEF_STR( 1C_3C ))
278   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ))
279   PORT_DIPSETTING(    0x08, DEF_STR( 1C_4C ))
280   PORT_DIPSETTING(    0x09, DEF_STR( 2C_4C ))
281   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_5C ))
282   PORT_DIPSETTING(    0x0b, DEF_STR( 2C_5C ))
283   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_6C ))
284   PORT_DIPSETTING(    0x0d, DEF_STR( 2C_6C ))
285   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_7C ))
286   PORT_DIPSETTING(    0x0f, DEF_STR( 2C_7C ))
287   PORT_DIPSETTING(    0x10, DEF_STR( 1C_8C ))
288   PORT_DIPSETTING(    0x11, DEF_STR( 2C_8C ))
289   PORT_DIPSETTING(    0x12, DEF_STR( 1C_9C ))
290   PORT_DIPSETTING(    0x13, "2 coins 9 credits")
291   PORT_DIPSETTING(    0x14, "1 coin 10 credits")
292   PORT_DIPSETTING(    0x15, "2 coins 10 credits")
293   PORT_DIPSETTING(    0x16, "1 coin 11 credits")
294   PORT_DIPSETTING(    0x17, "2 coins 11 credits")
295   PORT_DIPSETTING(    0x18, "1 coin 12 credits")
296   PORT_DIPSETTING(    0x19, "2 coins 12 credits")
297   PORT_DIPSETTING(    0x1a, "1 coin 13 credits")
298   PORT_DIPSETTING(    0x1b, "2 coins 13 credits")
299   PORT_DIPSETTING(    0x1c, "1 coin 14 credits")
300   PORT_DIPSETTING(    0x1d, "2 coins 14 credits")
301   PORT_DIPSETTING(    0x1e, "1 coin 15 credits")
302   PORT_DIPSETTING(    0x1f, "2 coins 15 credits")
303   PORT_DIPNAME( 0x60, 0x00, "Special lights at")
304   PORT_DIPSETTING(    0x60, "60000")
305   PORT_DIPSETTING(    0x40, "90000")
306   PORT_DIPSETTING(    0x20, "120000")
307   PORT_DIPSETTING(    0x00, "150000")
308   PORT_DIPNAME( 0x80, 0x00, "Free Play")
309   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
310   PORT_DIPSETTING(    0x80, DEF_STR( On ))
311
312   PORT_START("DSW1")
313   PORT_DIPNAME( 0x0f, 0x00, "Coin Slot 2") // S09-12 determine coinage for slot 2
314   PORT_DIPSETTING(    0x00, "Same as Slot 1")
315   PORT_DIPSETTING(    0x01, DEF_STR( 1C_1C ))
316   PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ))
317   PORT_DIPSETTING(    0x03, DEF_STR( 1C_3C ))
318   PORT_DIPSETTING(    0x04, DEF_STR( 1C_4C ))
319   PORT_DIPSETTING(    0x05, DEF_STR( 1C_5C ))
320   PORT_DIPSETTING(    0x06, DEF_STR( 1C_6C ))
321   PORT_DIPSETTING(    0x07, DEF_STR( 1C_7C ))
322   PORT_DIPSETTING(    0x08, DEF_STR( 1C_8C ))
323   PORT_DIPSETTING(    0x09, DEF_STR( 1C_9C ))
324   PORT_DIPSETTING(    0x0a, "1 coin 10 credits")
325   PORT_DIPSETTING(    0x0b, "1 coin 11 credits")
326   PORT_DIPSETTING(    0x0c, "1 coin 12 credits")
327   PORT_DIPSETTING(    0x0d, "1 coin 13 credits")
328   PORT_DIPSETTING(    0x0e, "1 coin 14 credits")
329   PORT_DIPSETTING(    0x0f, "1 coin 15 credits")
330   PORT_DIPNAME( 0x10, 0x10, "Music")
331   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
332   PORT_DIPSETTING(    0x10, DEF_STR( On ))
333   PORT_DIPNAME( 0x20, 0x20, "Extra Ball")
334   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
335   PORT_DIPSETTING(    0x20, DEF_STR( On ))
336   PORT_DIPNAME( 0x40, 0x40, "Remember Saucer Values")
337   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
338   PORT_DIPSETTING(    0x40, DEF_STR( On ))
339   PORT_DIPNAME( 0x80, 0x80, "Extra Ball lights at")
340   PORT_DIPSETTING(    0x80, "100000")
341   PORT_DIPSETTING(    0x00, "150000")
342
343   PORT_START("DSW2")
344   PORT_DIPNAME( 0x1f, 0x02, "Coin Slot 3")
345   PORT_DIPSETTING(    0x00, DEF_STR( 2C_3C )) // same as 01
346   PORT_DIPSETTING(    0x02, DEF_STR( 1C_1C ))
347   PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ))
348   PORT_DIPSETTING(    0x04, DEF_STR( 1C_2C ))
349   PORT_DIPSETTING(    0x05, DEF_STR( 2C_2C ))
350   PORT_DIPSETTING(    0x06, DEF_STR( 1C_3C ))
351   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ))
352   PORT_DIPSETTING(    0x08, DEF_STR( 1C_4C ))
353   PORT_DIPSETTING(    0x09, DEF_STR( 2C_4C ))
354   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_5C ))
355   PORT_DIPSETTING(    0x0b, DEF_STR( 2C_5C ))
356   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_6C ))
357   PORT_DIPSETTING(    0x0d, DEF_STR( 2C_6C ))
358   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_7C ))
359   PORT_DIPSETTING(    0x0f, DEF_STR( 2C_7C ))
360   PORT_DIPSETTING(    0x10, DEF_STR( 1C_8C ))
361   PORT_DIPSETTING(    0x11, DEF_STR( 2C_8C ))
362   PORT_DIPSETTING(    0x12, DEF_STR( 1C_9C ))
363   PORT_DIPSETTING(    0x13, "2 coins 9 credits")
364   PORT_DIPSETTING(    0x14, "1 coin 10 credits")
365   PORT_DIPSETTING(    0x15, "2 coins 10 credits")
366   PORT_DIPSETTING(    0x16, "1 coin 11 credits")
367   PORT_DIPSETTING(    0x17, "2 coins 11 credits")
368   PORT_DIPSETTING(    0x18, "1 coin 12 credits")
369   PORT_DIPSETTING(    0x19, "2 coins 12 credits")
370   PORT_DIPSETTING(    0x1a, "1 coin 13 credits")
371   PORT_DIPSETTING(    0x1b, "2 coins 13 credits")
372   PORT_DIPSETTING(    0x1c, "1 coin 14 credits")
373   PORT_DIPSETTING(    0x1d, "2 coins 14 credits")
374   PORT_DIPSETTING(    0x1e, "1 coin 15 credits")
375   PORT_DIPSETTING(    0x1f, "2 coins 15 credits")
376   PORT_DIPNAME( 0x20, 0x00, "Remember Bonus Multiplier")
377   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
378   PORT_DIPSETTING(    0x20, DEF_STR( On ))
379   PORT_DIPNAME( 0xc0, 0x80, "Balls")
380   PORT_DIPSETTING(    0x00, "1")
381   PORT_DIPSETTING(    0x40, "2")
382   PORT_DIPSETTING(    0x80, "3")
383   PORT_DIPSETTING(    0xc0, "5")
384
385   PORT_START("DSW3")
386   PORT_DIPNAME( 0x01, 0x00, "Remember Special and Extra Ball lanes")
387   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
388   PORT_DIPSETTING(    0x01, DEF_STR( On ))
389   PORT_DIPNAME( 0x06, 0x04, "Max number of credits")
390   PORT_DIPSETTING(    0x00, "10")
391   PORT_DIPSETTING(    0x02, "20")
392   PORT_DIPSETTING(    0x04, "30")
393   PORT_DIPSETTING(    0x06, "40")
394   PORT_DIPNAME( 0x18, 0x18, "Award")
395   PORT_DIPSETTING(    0x00, DEF_STR( None ))
396   PORT_DIPSETTING(    0x08, "50000 points")
397   PORT_DIPSETTING(    0x10, "Extra Ball")
398   PORT_DIPSETTING(    0x18, "Replay")
399   PORT_DIPNAME( 0x20, 0x20, "Match")
400   PORT_DIPSETTING(    0x00, DEF_STR( Off ))
401   PORT_DIPSETTING(    0x20, DEF_STR( On ))
402   PORT_DIPNAME( 0xC0, 0x80, "Credits for exceeding high score")
403   PORT_DIPSETTING(    0x00, "0")
404   PORT_DIPSETTING(    0x40, "1")
405   PORT_DIPSETTING(    0x80, "2")
406   PORT_DIPSETTING(    0xC0, "3")
407
408   // From here is unique per machine, not yet emulated
409   PORT_START("X7")
410   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_NAME("Accounting Reset") // This pushbutton on the MPU board is called "S33"
411   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START1 )
412   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_TILT1 ) PORT_NAME("Slam Tilt")
413   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
414   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN2 )
415   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN3 )
416   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1 )
417   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_TILT )
418
419   PORT_START("X8")
420   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L and R Target") PORT_CODE(KEYCODE_A)
421   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Spinner C") PORT_CODE(KEYCODE_S)
422   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X)
423   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Spinner B") PORT_CODE(KEYCODE_D)
424   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("R. Slingshot") PORT_CODE(KEYCODE_F)
425   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Special when lit") PORT_CODE(KEYCODE_G)
426   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L. Slingshot") PORT_CODE(KEYCODE_H)
427   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Extra when lit") PORT_CODE(KEYCODE_J)
428
429   PORT_START("X9")
430   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("R. Spinner") PORT_CODE(KEYCODE_K)
431   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("1000 and advance") PORT_CODE(KEYCODE_L)
432   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
433   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Advance and Change") PORT_CODE(KEYCODE_Z)
434   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L. Bumper") PORT_CODE(KEYCODE_C)
435   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("R. Bumper") PORT_CODE(KEYCODE_V)
436   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("L. Spinner") PORT_CODE(KEYCODE_B)
437   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Spinner A") PORT_CODE(KEYCODE_N)
438
439   PORT_START("XA")
440   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("1000 Rollover") PORT_CODE(KEYCODE_M)
441   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SERVICE1 )
442   PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNUSED )
443
444   PORT_START("XB")
445   PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
34446INPUT_PORTS_END
35447
448READ8_MEMBER( gp_2_state::portb_r )
449{
450   switch (m_u14)
451   {
452      case 7:
453         return m_io_x7->read();
454      case 8:
455         return m_io_x8->read();
456      case 9:
457         return m_io_x9->read();
458      case 10:
459         return m_io_xa->read();
460      case 11:
461         return m_io_xb->read();
462      case 12:
463         return m_io_dsw0->read();
464      case 13:
465         return m_io_dsw1->read();
466      case 14:
467         return m_io_dsw2->read();
468      case 15:
469         return m_io_dsw3->read();
470   }
471   return 0;
472}
473
474WRITE8_MEMBER( gp_2_state::porta_w )
475{
476   m_u14 = data >> 4;
477   if ((data > 0x0f) && (data < 0x30))
478   {
479      switch (data)
480      {
481         case 0x10: // chime c
482            m_samples->start(0, 3);
483            break;
484         case 0x11: // chime b
485            m_samples->start(0, 2);
486            break;
487         case 0x12: // knocker
488            m_samples->start(0, 6);
489            break;
490         case 0x13: // not used
491         case 0x14: // not used
492            break;
493         case 0x15: // chime a
494            m_samples->start(0, 1);
495            break;
496         case 0x16: // chime d
497            m_samples->start(0, 4);
498            break;
499         case 0x17: // outhole
500         case 0x18: // r sling
501         case 0x19: // l sling
502            m_samples->start(0, 5);
503            break;
504         case 0x1a: // c kickout
505            m_samples->start(0, 5);
506            break;
507         case 0x1b: // r bumper
508            m_samples->start(0, 0);
509            break;
510         case 0x1c: // a kickout
511            m_samples->start(0, 5);
512            break;
513         case 0x1d: // l bumper
514            m_samples->start(0, 0);
515            break;
516         case 0x1e: // a kickout
517            m_samples->start(0, 5);
518            break;
519         case 0x1f: // not used
520            break;
521      }
522   }
523
524   static const UINT8 patterns[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67,0x58,0x4c,0x62,0x69,0x78,0 }; // 7448
525   if (m_digit == 7)
526      m_segment[m_u14] = data & 15;
527   else
528   if (m_u14 == 7)
529   {
530      output_set_digit_value(m_digit, patterns[m_segment[7]]);
531      output_set_digit_value(m_digit+8, patterns[m_segment[8]]);
532      output_set_digit_value(m_digit+16, patterns[m_segment[9]]);
533      output_set_digit_value(m_digit+24, patterns[m_segment[10]]);
534      output_set_digit_value(m_digit+32, patterns[m_segment[11]]);
535   }
536}
537
538WRITE8_MEMBER( gp_2_state::portc_w )
539{
540   output_set_value("led0", BIT(data, 3));
541   m_digit = data & 7;
542}
543
36544void gp_2_state::machine_reset()
37545{
546   m_u14 = 0;
547   m_digit = 0xff;
38548}
39549
40DRIVER_INIT_MEMBER(gp_2_state,gp_2)
550// zero-cross detection
551TIMER_DEVICE_CALLBACK_MEMBER( gp_2_state::zero_timer )
41552{
553   m_ctc->trg2(0);
554   m_ctc->trg2(1);
42555}
43556
557static const z80_daisy_config daisy_chain[] =
558{
559   { "ctc" },
560   { NULL }
561};
562
44563static MACHINE_CONFIG_START( gp_2, gp_2_state )
45564   /* basic machine hardware */
46565   MCFG_CPU_ADD("maincpu", Z80, 2457600)
47566   MCFG_CPU_PROGRAM_MAP(gp_2_map)
567   MCFG_CPU_IO_MAP(gp_2_io)
568   MCFG_CPU_CONFIG(daisy_chain)
569
570   MCFG_NVRAM_ADD_0FILL("nvram")
571
572   /* Video */
573   MCFG_DEFAULT_LAYOUT(layout_gp_2)
574
575   /* Sound */
576   MCFG_FRAGMENT_ADD( genpin_audio )
577
578   /* Devices */
579   MCFG_DEVICE_ADD("ppi", I8255A, 0 )
580   MCFG_I8255_OUT_PORTA_CB(WRITE8(gp_2_state, porta_w))
581   MCFG_I8255_IN_PORTB_CB(READ8(gp_2_state, portb_r))
582   MCFG_I8255_OUT_PORTC_CB(WRITE8(gp_2_state, portc_w))
583
584   MCFG_DEVICE_ADD("ctc", Z80CTC, 2457600 )
585   MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) // Todo: absence of ints will cause a watchdog reset
586   MCFG_TIMER_DRIVER_ADD_PERIODIC("gp1", gp_2_state, zero_timer, attotime::from_hz(120)) // mains freq*2
48587MACHINE_CONFIG_END
49588
50589/*-------------------------------------------------------------------
51590/ Agents 777 (November 1984) - Model #770
52591/-------------------------------------------------------------------*/
53592ROM_START(agent777)
54   ROM_REGION(0x10000, "maincpu", 0)
593   ROM_REGION(0x4000, "roms", 0)
55594   ROM_LOAD( "770a", 0x0000, 0x0800, CRC(fc4eebcd) SHA1(742a201e89c1357d2a1f24b0acf3b78ffec96c74))
56595   ROM_LOAD( "770b", 0x0800, 0x0800, CRC(ea62aece) SHA1(32be10bc76a59e03c3fd3294daefc8d28c20386a))
57596   ROM_LOAD( "770c", 0x1000, 0x0800, CRC(59280db7) SHA1(8f199be7bfbc01466541c07dc4c365e20055a66c))
597
58598   ROM_REGION(0x10000, "cpu2", 0)
59599   ROM_LOAD ("770snd", 0x3800, 0x0800, CRC(e4e66c9f) SHA1(f373facefb18c64377da47308a8bbd5fc80e9c2d))
60600   ROM_CONTINUE(0x7800, 0x0800)
r31405r31406
65605/ Andromeda (August 1985) - Model #850
66606/-------------------------------------------------------------------*/
67607ROM_START(andromep)
68   ROM_REGION(0x10000, "maincpu", 0)
608   ROM_REGION(0x4000, "roms", 0)
69609   ROM_LOAD( "850.a", 0x0000, 0x1000, CRC(67ed03ee) SHA1(efe7c495766ffb73545a77ab24f02925ac0395f1))
70610   ROM_LOAD( "850.b", 0x1000, 0x1000, CRC(37c244e8) SHA1(5cef0a1a6f2c34f2d01bdd12ce11da40c8be4296))
611
71612   ROM_REGION(0x10000, "cpu2", 0)
72613   ROM_LOAD("850.snd", 0x3800, 0x0800, CRC(18e084a6) SHA1(56efbabe60305f168ca479295577bff7f3a4dace))
73614   ROM_RELOAD(0x7800, 0x0800)
r31405r31406
75616ROM_END
76617
77618ROM_START(andromepa)
78   ROM_REGION(0x10000, "maincpu", 0)
619   ROM_REGION(0x4000, "roms", 0)
79620   ROM_LOAD( "850.a", 0x0000, 0x1000, CRC(67ed03ee) SHA1(efe7c495766ffb73545a77ab24f02925ac0395f1))
80621   ROM_LOAD( "850b.rom", 0x1000, 0x1000, CRC(fc1829a5) SHA1(9761543d17c0a5c08b0fec45c35648ce769a3463))
622
81623   ROM_REGION(0x10000, "cpu2", 0)
82624   ROM_LOAD("850.snd", 0x3800, 0x0800, CRC(18e084a6) SHA1(56efbabe60305f168ca479295577bff7f3a4dace))
83625   ROM_RELOAD(0x7800, 0x0800)
r31405r31406
88630/ Attila the Hun (April 1984) - Model #260
89631/-------------------------------------------------------------------*/
90632ROM_START(attila)
91   ROM_REGION(0x10000, "maincpu", 0)
633   ROM_REGION(0x4000, "roms", 0)
92634   ROM_LOAD( "260.a", 0x0000, 0x0800, CRC(b31c11d8) SHA1(d3f2ad84cc28e99acb54349b232dbf8abdf15b21))
93635   ROM_LOAD( "260.b", 0x0800, 0x0800, CRC(e8cca86d) SHA1(ed0797175a573537be2d5119ad68b1847e49e578))
94636   ROM_LOAD( "260.c", 0x1000, 0x0800, CRC(206605c3) SHA1(14f61a2f43c29370bcb6db29969e8dfcfe3da1ab))
637
95638   ROM_REGION(0x10000, "cpu2", 0)
96639   ROM_LOAD ("260.snd", 0x3800, 0x0800, CRC(21e6b188) SHA1(84148942e6007d49bb4085ec3678954d48e4439e))
97640   ROM_CONTINUE(0x7800, 0x0800)
r31405r31406
102645/ Captain Hook (April 1985) - Model #780
103646/-------------------------------------------------------------------*/
104647ROM_START(cpthook)
105   ROM_REGION(0x10000, "maincpu", 0)
648   ROM_REGION(0x4000, "roms", 0)
106649   ROM_LOAD( "780.a", 0x0000, 0x0800, CRC(6bd5a495) SHA1(8462e0c68176daee6b23dce9091f5aee99e62631))
107650   ROM_LOAD( "780.b", 0x0800, 0x0800, CRC(3d1c5555) SHA1(ecb0d40f5e6e37acfc8589816e24b26525273393))
108651   ROM_LOAD( "780.c", 0x1000, 0x0800, CRC(e54bc51f) SHA1(3480e0cdd43f9ac3fda8cd466b2f039210525e8b))
652
109653   ROM_REGION(0x10000, "cpu2", 0)
110654   ROM_LOAD ("780.snd", 0x3800, 0x0800, CRC(95af3392) SHA1(73a2b583b7fc423c2e4390667aebc90ad41f4f93))
111655   ROM_CONTINUE(0x7800, 0x0800)
r31405r31406
116660/ Cyclopes (November 1985) - Model #800
117661/-------------------------------------------------------------------*/
118662ROM_START(cyclopes)
119   ROM_REGION(0x10000, "maincpu", 0)
663   ROM_REGION(0x4000, "roms", 0)
120664   ROM_LOAD( "800.a", 0x0000, 0x1000, CRC(3e9628e5) SHA1(4dad9e082a9f4140162bc155f2b0f0a948ba012f))
121665   ROM_LOAD( "800.b", 0x1000, 0x1000, CRC(3f945c46) SHA1(25eb543e0b0edcd0a0dcf8e4aa1405cda55ebe2e))
122666   ROM_LOAD( "800.c", 0x2000, 0x1000, CRC(7ea18e65) SHA1(e86d82e3ba659499dfbf14920b196252784724f7))
667
123668   ROM_REGION(0x10000, "cpu2", 0)
124669   ROM_LOAD ("800.snd", 0x3800, 0x0800, CRC(290db3d2) SHA1(a236594f7a89969981bd5707d6dfbb5120fb8f46))
125670   ROM_CONTINUE(0x7800, 0x0800)
r31405r31406
130675/ Global Warfare (June 1981)  - Model #240
131676/-------------------------------------------------------------------*/
132677ROM_START(gwarfare)
133   ROM_REGION(0x10000, "maincpu", 0)
678   ROM_REGION(0x4000, "roms", 0)
134679   ROM_LOAD( "240a.716", 0x0000, 0x0800, CRC(30206428) SHA1(7a9029e4fd4c4c00da3256ed06464c0bd8022168))
135680   ROM_LOAD( "240b.716", 0x0800, 0x0800, CRC(a54eb15d) SHA1(b9235bd188c1251eb213789800b7686b5e3c557f))
136681   ROM_LOAD( "240c.716", 0x1000, 0x0800, CRC(60d115a8) SHA1(e970fdd7cbbb2c81ab8c8209edfb681798c683b9))
682
137683   ROM_REGION(0x10000, "cpu2", 0)
138684   ROM_LOAD("gw240bot.rom", 0x3800, 0x0800, CRC(3245a206) SHA1(b321b2d276fbd74199eff2d8c0d1b8a2f5c93604))
139685   ROM_RELOAD(0xf800, 0x0800)
r31405r31406
144690/ Lady Sharpshooter (May 1985) - Cocktail Model #830
145691/-------------------------------------------------------------------*/
146692ROM_START(ladyshot)
147   ROM_REGION(0x10000, "maincpu", 0)
693   ROM_REGION(0x4000, "roms", 0)
148694   ROM_LOAD( "830a.716", 0x0000, 0x0800, CRC(c055b993) SHA1(a9a7156e5ec0a32db1ffe36b3c6280953a2606ff))
149695   ROM_LOAD( "830b.716", 0x0800, 0x0800, CRC(1e3308ea) SHA1(a5955a6a15b33c4cf35105ab524a8e7e03d748b6))
150696   ROM_LOAD( "830c.716", 0x1000, 0x0800, CRC(f5e1db15) SHA1(e8168ab37ba30211045fc96b23dad5f06592b38d))
697
151698   ROM_REGION(0x10000, "cpu2", 0)
152699   ROM_LOAD ("830.snd", 0x3800, 0x0800, NO_DUMP)
153700   ROM_CONTINUE(0x7800, 0x0800)
154701   ROM_RELOAD (0xf000, 0x1000)
155702ROM_END
703
156704ROM_START(ladyshota)
157   ROM_REGION(0x10000, "maincpu", 0)
705   ROM_REGION(0x4000, "roms", 0)
158706   ROM_LOAD( "830a2.716", 0x0000, 0x0800, CRC(2c1f1629) SHA1(9233ce4328d779ff6548cdd5d6819cd368bef313))
159707   ROM_LOAD( "830b2.716", 0x0800, 0x0800, CRC(2105a538) SHA1(0360d3e740d8b6f816cfe7fe1fb32ac476251b9f))
160708   ROM_LOAD( "830c2.716", 0x1000, 0x0800, CRC(2d96bdde) SHA1(7c03a29a91f03fba9ed5e53a93335113a7cbafb3))
709
161710   ROM_REGION(0x10000, "cpu2", 0)
162711   ROM_LOAD ("830.snd", 0x3800, 0x0800, NO_DUMP)
163712   ROM_CONTINUE(0x7800, 0x0800)
r31405r31406
165714ROM_END
166715
167716/*-------------------------------------------------------------------
168/ Loch Ness Monster (November 1985) - Model #???
717/ Loch Ness Monster (November 1985) - Model #??? (prototype only)
169718/-------------------------------------------------------------------*/
170719
171720/*-------------------------------------------------------------------
172/ Mike Bossy (January 1982) - Model #???
721/ Mike Bossy (January 1982) - Model #??? (prototype only)
173722/-------------------------------------------------------------------*/
723// These roms are widely available on the net, but is not complete (1800-1FFF is missing)
724// ROM_LOAD( "mb_a.716", 0x0000, 0x0800, CRC(a811f936) SHA1(f44fed7acd26a621f105925d52405e985d0b5e5d) )
725// ROM_LOAD( "mb_b.716", 0x0800, 0x0800, CRC(75ec7247) SHA1(10fa1e3ac2adbd7b24744a4fb0149bcc74df6b4c) )
726// ROM_LOAD( "mb_c.716", 0x1000, 0x0800, CRC(75dc73c4) SHA1(79fadec7650a1419f47b22875dee6f678114b439) )
727
174728ROM_START(mbossy)
175   ROM_REGION(0x10000, "maincpu", 0)
729   ROM_REGION(0x4000, "roms", 0)
176730   ROM_LOAD( "mb_a.716", 0x0000, 0x0800, NO_DUMP)
177731   ROM_LOAD( "mb_b.716", 0x0800, 0x0800, NO_DUMP)
178732   ROM_LOAD( "mb_c.716", 0x1000, 0x0800, NO_DUMP)
733
179734   ROM_REGION(0x10000, "cpu2", 0)
180735   ROM_LOAD("mb.u9", 0x3800, 0x0800, CRC(dfa98db5) SHA1(65361630f530383e67837c428050bcdb15373c0b))
181736   ROM_RELOAD(0xf800, 0x0800)
r31405r31406
186741/ Old Coney Island! (December 1979) - Model #180
187742/-------------------------------------------------------------------*/
188743ROM_START(coneyis)
189   ROM_REGION(0x10000, "maincpu", 0)
744   ROM_REGION(0x4000, "roms", 0)
190745   ROM_LOAD( "130a.716", 0x0000, 0x0800, CRC(dc402b37) SHA1(90c46391a1e5f000f3b235d580463bf96b45bd3e))
191746   ROM_LOAD( "130b.716", 0x0800, 0x0800, CRC(19a86f5e) SHA1(bc4a87314fc9c4e74e492c3f6e44d5d6cae72939))
192747   ROM_LOAD( "130c.716", 0x1000, 0x0800, CRC(b956f67b) SHA1(ff64383d7f59e9bbec588553e35a21fb94c7203b))
r31405r31406
196751/ Pinball Lizard (June / July 1980) - Model #210
197752/-------------------------------------------------------------------*/
198753ROM_START(lizard)
199   ROM_REGION(0x10000, "maincpu", 0)
754   ROM_REGION(0x4000, "roms", 0)
200755   ROM_LOAD( "130a.716", 0x0000, 0x0800, CRC(dc402b37) SHA1(90c46391a1e5f000f3b235d580463bf96b45bd3e))
201756   ROM_LOAD( "130b.716", 0x0800, 0x0800, CRC(19a86f5e) SHA1(bc4a87314fc9c4e74e492c3f6e44d5d6cae72939))
202757   ROM_LOAD( "130c.716", 0x1000, 0x0800, CRC(b956f67b) SHA1(ff64383d7f59e9bbec588553e35a21fb94c7203b))
758
203759   ROM_REGION(0x10000, "cpu2", 0)
204760   ROM_LOAD("lizard.u9", 0x3800, 0x0800, CRC(2d121b24) SHA1(55c16951538229571165c35a353da53e22d11f81))
205761   ROM_RELOAD(0xf800, 0x0800)
r31405r31406
210766/ Sharp Shooter II (November 1983) - Model #730
211767/-------------------------------------------------------------------*/
212768ROM_START(sshootr2)
213   ROM_REGION(0x10000, "maincpu", 0)
769   ROM_REGION(0x4000, "roms", 0)
214770   ROM_LOAD( "130a.716", 0x0000, 0x0800, CRC(dc402b37) SHA1(90c46391a1e5f000f3b235d580463bf96b45bd3e))
215771   ROM_LOAD( "130b.716", 0x0800, 0x0800, CRC(19a86f5e) SHA1(bc4a87314fc9c4e74e492c3f6e44d5d6cae72939))
216772   ROM_LOAD( "730c", 0x1000, 0x0800, CRC(d1af712b) SHA1(9dce2ec1c2d9630a29dd21f4685c09019e59b147))
773
217774   ROM_REGION(0x10000, "cpu2", 0)
218775   ROM_LOAD("730u9.snd", 0x3800, 0x0800, CRC(dfa98db5) SHA1(65361630f530383e67837c428050bcdb15373c0b))
219776   ROM_RELOAD(0xf800, 0x0800)
r31405r31406
224781/ Sharpshooter (May 1979) - Model #130
225782/-------------------------------------------------------------------*/
226783ROM_START(sshootep)
227   ROM_REGION(0x10000, "maincpu", 0)
784   ROM_REGION(0x4000, "roms", 0)
228785   ROM_LOAD( "130a.716", 0x0000, 0x0800, CRC(dc402b37) SHA1(90c46391a1e5f000f3b235d580463bf96b45bd3e))
229786   ROM_LOAD( "130b.716", 0x0800, 0x0800, CRC(19a86f5e) SHA1(bc4a87314fc9c4e74e492c3f6e44d5d6cae72939))
230787   ROM_LOAD( "130c.716", 0x1000, 0x0800, CRC(b956f67b) SHA1(ff64383d7f59e9bbec588553e35a21fb94c7203b))
r31405r31406
234791/ Super Nova (May 1982) - Model #150
235792/-------------------------------------------------------------------*/
236793ROM_START(suprnova)
237   ROM_REGION(0x10000, "maincpu", 0)
794   ROM_REGION(0x4000, "roms", 0)
238795   ROM_LOAD( "130a.716", 0x0000, 0x0800, CRC(dc402b37) SHA1(90c46391a1e5f000f3b235d580463bf96b45bd3e))
239796   ROM_LOAD( "150b.716", 0x0800, 0x0800, CRC(8980a8bb) SHA1(129816fe85681b760307a713c667737a750b0c04))
240797   ROM_LOAD( "150c.716", 0x1000, 0x0800, CRC(6fe08f96) SHA1(1309619a2400674fa1d05dc9214fdb85419fd1c3))
241798ROM_END
242799
243/*-------------------------------------------------------------------
244/ Vegas (August 1979) - Cocktail Model #140
245/-------------------------------------------------------------------*/
246ROM_START(vegasgp)
247   ROM_REGION(0x10000, "maincpu", 0)
248   ROM_LOAD( "140a.12", 0x0000, 0x0800, CRC(2c00bc19) SHA1(521d4b44f46dea0a08e90cd3aea5799462215863))
249   ROM_LOAD( "140b.13", 0x0800, 0x0800, CRC(cf26d67b) SHA1(05481e880e23a7bc1d1716b52ac1effc0db437f2))
250ROM_END
800// GP1 dips
801GAME(1979,  sshootep,   0,          gp_2,   gp_1, driver_device, 0,   ROT0,   "Game Plan", "Sharpshooter", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
802GAME(1979,  coneyis,    0,          gp_2,   gp_1, driver_device, 0,   ROT0,   "Game Plan", "Old Coney Island!", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
803GAME(1980,  lizard,     0,          gp_2,   gp_1, driver_device, 0,   ROT0,   "Game Plan", "Pinball Lizard", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
804GAME(1982,  suprnova,   0,          gp_2,   gp_1, driver_device, 0,   ROT0,   "Game Plan", "Super Nova", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
805GAME(1983,  sshootr2,   0,          gp_2,   gp_1, driver_device, 0,   ROT0,   "Game Plan", "Sharp Shooter II", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
251806
807// GP2 dips
808GAME(1981,  gwarfare,   0,          gp_2,   gp_2, driver_device, 0,   ROT0,   "Game Plan", "Global Warfare", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
809GAME(1982,  mbossy,     0,          gp_2,   gp_2, driver_device, 0,   ROT0,   "Game Plan", "Mike Bossy", GAME_IS_SKELETON_MECHANICAL)
810GAME(1984,  attila,     0,          gp_2,   gp_2, driver_device, 0,   ROT0,   "Game Plan", "Attila The Hun", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
252811
253GAME(1984,  agent777,   0,          gp_2,   gp_2, gp_2_state,   gp_2,   ROT0,   "Game Plan",    "Agents 777",               GAME_IS_SKELETON_MECHANICAL)
254GAME(1985,  andromep,   0,          gp_2,   gp_2, gp_2_state,   gp_2,   ROT0,   "Game Plan",    "Andromeda (set 1)",        GAME_IS_SKELETON_MECHANICAL)
255GAME(1985,  andromepa,  andromep,   gp_2,   gp_2, gp_2_state,   gp_2,   ROT0,   "Game Plan",    "Andromeda (set 2)",        GAME_IS_SKELETON_MECHANICAL)
256GAME(1984,  attila,     0,          gp_2,   gp_2, gp_2_state,   gp_2,   ROT0,   "Game Plan",    "Attila The Hun",           GAME_IS_SKELETON_MECHANICAL)
257GAME(1985,  cpthook,    0,          gp_2,   gp_2, gp_2_state,   gp_2,   ROT0,   "Game Plan",    "Captain Hook",             GAME_IS_SKELETON_MECHANICAL)
258GAME(1985,  cyclopes,   0,          gp_2,   gp_2, gp_2_state,   gp_2,   ROT0,   "Game Plan",    "Cyclopes",                 GAME_IS_SKELETON_MECHANICAL)
259GAME(1981,  gwarfare,   0,          gp_2,   gp_2, gp_2_state,   gp_2,   ROT0,   "Game Plan",    "Global Warfare",           GAME_IS_SKELETON_MECHANICAL)
260GAME(1985,  ladyshot,   0,          gp_2,   gp_2, gp_2_state,   gp_2,   ROT0,   "Game Plan",    "Lady Sharpshooter",        GAME_IS_SKELETON_MECHANICAL)
261GAME(1985,  ladyshota,  ladyshot,   gp_2,   gp_2, gp_2_state,   gp_2,   ROT0,   "Game Plan",    "Lady Sharpshooter (alternate set)",        GAME_IS_SKELETON_MECHANICAL)
262GAME(1982,  mbossy,     0,          gp_2,   gp_2, gp_2_state,   gp_2,   ROT0,   "Game Plan",    "Mike Bossy",               GAME_IS_SKELETON_MECHANICAL)
263GAME(1979,  coneyis,    0,          gp_2,   gp_2, gp_2_state,   gp_2,   ROT0,   "Game Plan",    "Old Coney Island!",        GAME_IS_SKELETON_MECHANICAL)
264GAME(1980,  lizard,     0,          gp_2,   gp_2, gp_2_state,   gp_2,   ROT0,   "Game Plan",    "Pinball Lizard",           GAME_IS_SKELETON_MECHANICAL)
265GAME(1983,  sshootr2,   0,          gp_2,   gp_2, gp_2_state,   gp_2,   ROT0,   "Game Plan",    "Sharp Shooter II",         GAME_IS_SKELETON_MECHANICAL)
266GAME(1979,  sshootep,   0,          gp_2,   gp_2, gp_2_state,   gp_2,   ROT0,   "Game Plan",    "Sharpshooter",             GAME_IS_SKELETON_MECHANICAL)
267GAME(1982,  suprnova,   0,          gp_2,   gp_2, gp_2_state,   gp_2,   ROT0,   "Game Plan",    "Super Nova",               GAME_IS_SKELETON_MECHANICAL)
268GAME(1979,  vegasgp,    0,          gp_2,   gp_2, gp_2_state,   gp_2,   ROT0,   "Game Plan",    "Vegas (Game Plan)",        GAME_IS_SKELETON_MECHANICAL)
812// revolving match
813GAME(1984,  agent777,   0,          gp_2,   gp_2, driver_device, 0,   ROT0,   "Game Plan", "Agents 777", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
814GAME(1985,  cpthook,    0,          gp_2,   gp_2, driver_device, 0,   ROT0,   "Game Plan", "Captain Hook", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
815GAME(1985,  ladyshot,   0,          gp_2,   gp_2, driver_device, 0,   ROT0,   "Game Plan", "Lady Sharpshooter (set 1)", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
816GAME(1985,  ladyshota,  ladyshot,   gp_2,   gp_2, driver_device, 0,   ROT0,   "Game Plan", "Lady Sharpshooter (set 2)", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
817
818// credit (start) button not working
819GAME(1985,  andromep,   0,          gp_2,   gp_2, driver_device, 0,   ROT0,   "Game Plan", "Andromeda (set 1)", GAME_IS_SKELETON_MECHANICAL)
820GAME(1985,  andromepa,  andromep,   gp_2,   gp_2, driver_device, 0,   ROT0,   "Game Plan", "Andromeda (set 2)", GAME_IS_SKELETON_MECHANICAL)
821GAME(1985,  cyclopes,   0,          gp_2,   gp_2, driver_device, 0,   ROT0,   "Game Plan", "Cyclopes", GAME_IS_SKELETON_MECHANICAL)
trunk/src/mame/drivers/gp_1.c
r31405r31406
1313
1414
1515ToDo:
16- Family Fun / Star Trip, the chimes have been replaced by a SN76477, not yet
17  emulated.
16- Family Fun / Star Trip / Vegas, the chimes have been replaced by a SN76477,
17  not yet emulated.
1818
1919********************************************************************************/
2020
r31405r31406
6969
7070
7171static ADDRESS_MAP_START( gp_1_map, AS_PROGRAM, 8, gp_1_state )
72   AM_RANGE(0x0000, 0x0fff) AM_ROM
72   AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION("roms", 0)
7373   AM_RANGE(0x8c00, 0x8cff) AM_RAM AM_SHARE("nvram")
7474ADDRESS_MAP_END
7575
r31405r31406
403403
404404
405405ROM_START( gp_110 )
406   ROM_REGION(0x10000, "maincpu", 0)
406   ROM_REGION(0x1000, "roms", 0)
407407   ROM_LOAD( "a-110.u12", 0x0000, 0x0800, CRC(ed0d518b) SHA1(8f3ca8792ad907c660d9149a1aa3a3528c7573e3))
408408   ROM_LOAD( "b1-110.u13", 0x0800, 0x0800, CRC(a223f2e8) SHA1(767e15e19e11399935c890c1d1034dccf1ad7f92))
409409ROM_END
r31405r31406
439439/ Family Fun! (April 1979) - Model: Cocktail #120
440440/-------------------------------------------------------------------*/
441441ROM_START(famlyfun)
442   ROM_REGION(0x10000, "maincpu", 0)
442   ROM_REGION(0x1000, "roms", 0)
443443   ROM_LOAD( "family.u12", 0x0000, 0x0800, CRC(98f27fdf) SHA1(8bcff1e13b9b978f91110f1e83a3288723930a1d))
444444   ROM_LOAD( "family.u13", 0x0800, 0x0800, CRC(b941a1a8) SHA1(a43f8acadb3db3e2274162d5305e30006f912339))
445445ROM_END
r31405r31406
448448/ Star Trip (April 1979) - Model: Cocktail #120
449449/-------------------------------------------------------------------*/
450450ROM_START(startrip)
451   ROM_REGION(0x10000, "maincpu", 0)
451   ROM_REGION(0x1000, "roms", 0)
452452   ROM_LOAD( "startrip.u12", 0x0000, 0x0800, CRC(98f27fdf) SHA1(8bcff1e13b9b978f91110f1e83a3288723930a1d))
453453   ROM_LOAD( "startrip.u13", 0x0800, 0x0800, CRC(b941a1a8) SHA1(a43f8acadb3db3e2274162d5305e30006f912339))
454454ROM_END
455455
456/*-------------------------------------------------------------------
457/ Vegas (August 1979) - Cocktail Model #140
458/-------------------------------------------------------------------*/
459ROM_START(vegasgp)
460   ROM_REGION(0x1000, "roms", 0)
461   ROM_LOAD( "140a.12", 0x0000, 0x0800, CRC(2c00bc19) SHA1(521d4b44f46dea0a08e90cd3aea5799462215863))
462   ROM_LOAD( "140b.13", 0x0800, 0x0800, CRC(cf26d67b) SHA1(05481e880e23a7bc1d1716b52ac1effc0db437f2))
463ROM_END
464
456465GAME(1978, gp_110,   0,        gp_1,     gp_1,     driver_device, 0,   ROT0, "Game Plan", "Model 110",    GAME_IS_BIOS_ROOT)
457466GAME(1978, blvelvet, gp_110,   gp_1,     gp_1,     driver_device, 0,   ROT0, "Game Plan", "Black Velvet", GAME_MECHANICAL)
458467GAME(1978, camlight, gp_110,   gp_1,     gp_1,     driver_device, 0,   ROT0, "Game Plan", "Camel Lights", GAME_MECHANICAL)
r31405r31406
462471GAME(1978, chucklck, gp_110,   gp_1,     gp_1,     driver_device, 0,   ROT0, "Game Plan", "Chuck-A-Luck", GAME_MECHANICAL)
463472GAME(1979, famlyfun, 0,        gp_1,     gp_1,     driver_device, 0,   ROT0, "Game Plan", "Family Fun!",  GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
464473GAME(1979, startrip, 0,        gp_1,     gp_1,     driver_device, 0,   ROT0, "Game Plan", "Star Trip",    GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
474GAME(1979, vegasgp,  0,        gp_1,     gp_1,     driver_device, 0,   ROT0, "Game Plan", "Vegas (Game Plan)", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
trunk/src/mame/mame.mak
r31405r31406
26042604
26052605$(DRIVERS)/g627.o:      $(LAYOUT)/g627.lh
26062606$(DRIVERS)/gp_1.o:      $(LAYOUT)/gp_1.lh
2607$(DRIVERS)/gp_2.o:      $(LAYOUT)/gp_2.lh
26072608
26082609$(DRIVERS)/galaxi.o:    $(LAYOUT)/galaxi.lh
26092610

Previous 199869 Revisions Next


© 1997-2024 The MAME Team