1 /***************************************************************************
2 
3 	Cinematronics vector hardware
4 
5 	driver by Aaron Giles
6 
7 	Special thanks to Neil Bradley, Zonn Moore, and Jeff Mitchell of the
8 	Retrocade Alliance
9 
10 	Games supported:
11 		* Space Wars
12 		* Barrier
13 		* Star Hawk
14 		* Star Castle
15 		* Tailgunner
16 		* Rip Off
17 		* Speed Freak
18 		* Sundance
19 		* Warrior
20 		* Armor Attack
21 		* Solar Quest
22 		* Demon
23 		* War of the Worlds
24 		* Boxing Bugs
25 
26 ***************************************************************************/
27 
28 #include "driver.h"
29 #include "vidhrdw/generic.h"
30 #include "vidhrdw/vector.h"
31 #include "cpu/ccpu/ccpu.h"
32 #include "machine/z80fmly.h"
33 #include "cinemat.h"
34 
35 
36 
37 /*************************************
38  *
39  *	Sundance inputs
40  *
41  *************************************/
42 
READ16_HANDLER(sundance_input_port_1_r)43 static READ16_HANDLER( sundance_input_port_1_r )
44 {
45 	UINT16 val = readinputport(1);
46 
47 	switch (readinputport(4) & 0x1ff) /* player 1 keypad */
48 	{
49 	case 0x0001: val &= ~0x1201; break;
50 	case 0x0002: val &= ~0x1000; break;
51 	case 0x0004: val &= ~0x0001; break;
52 	case 0x0008: val &= ~0x4000; break;
53 	case 0x0010: val &= ~0x1001; break;
54 	case 0x0020: val &= ~0x0200; break;
55 	case 0x0040: val &= ~0x4001; break;
56 	case 0x0080: val &= ~0x1200; break;
57 	case 0x0100: val &= ~0x0201; break;
58 	}
59 
60 	switch (readinputport(5) & 0x1ff) /* player 2 keypad */
61 	{
62 	case 0x0001: val &= ~0x2500; break;
63 	case 0x0002: val &= ~0x2000; break;
64 	case 0x0004: val &= ~0x0400; break;
65 	case 0x0008: val &= ~0x8000; break;
66 	case 0x0010: val &= ~0x2400; break;
67 	case 0x0020: val &= ~0x0100; break;
68 	case 0x0040: val &= ~0x8400; break;
69 	case 0x0080: val &= ~0x2100; break;
70 	case 0x0100: val &= ~0x0500; break;
71 	}
72 
73 	return val;
74 }
75 
76 
77 
78 /*************************************
79  *
80  *	Speed Freak inputs
81  *
82  *************************************/
83 
84 static UINT8 speedfrk_steer[] = {0xe, 0x6, 0x2, 0x0, 0x3, 0x7, 0xf};
85 
READ16_HANDLER(speedfrk_input_port_1_r)86 static READ16_HANDLER( speedfrk_input_port_1_r )
87 {
88     static int last_wheel=0, delta_wheel, last_frame=0, gear=0xe0;
89 	int val, current_frame;
90 
91 	/* check the fake gear input port and determine the bit settings for the gear */
92 	if ((input_port_5_r(0) & 0xf0) != 0xf0)
93         gear = input_port_5_r(0) & 0xf0;
94 
95     val = (input_port_1_word_r(0, 0) & 0xff00) | gear;
96 
97 	/* add the start key into the mix */
98 	if (input_port_1_word_r(0, 0) & 0x80)
99         val |= 0x80;
100 	else
101         val &= ~0x80;
102 
103 	/* and for the cherry on top, we add the scrambled analog steering */
104     current_frame = cpu_getcurrentframe();
105     if (current_frame > last_frame)
106     {
107         /* the shift register is cleared once per 'frame' */
108         delta_wheel = input_port_4_r(0) - last_wheel;
109         last_wheel += delta_wheel;
110         if (delta_wheel > 3)
111             delta_wheel = 3;
112         else if (delta_wheel < -3)
113             delta_wheel = -3;
114     }
115     last_frame = current_frame;
116 
117     val |= speedfrk_steer[delta_wheel + 3];
118 
119 	return val;
120 }
121 
122 
123 
124 /*************************************
125  *
126  *	Boxing Bugs inputs
127  *
128  *************************************/
129 
READ16_HANDLER(boxingb_input_port_1_r)130 static READ16_HANDLER( boxingb_input_port_1_r )
131 {
132 	if (cinemat_output_port_r(0,0) & 0x80)
133 		return ((input_port_4_r(0) & 0x0f) << 12) + input_port_1_word_r(0,0);
134 	else
135 		return ((input_port_4_r(0) & 0xf0) << 8)  + input_port_1_word_r(0,0);
136 }
137 
138 
139 
140 /*************************************
141  *
142  *	Video overlays
143  *
144  *************************************/
145 
146 /* Overlay based on colours shown in videos: */
147 /* https://www.youtube.com/watch?v=D6DkKPy3Q_I */
148 /* https://www.youtube.com/watch?v=8HHRCA6CS8k */
149 /* Overlay is quite visible in a lot of machines so is reproduced */
150 /* faithfully here. */
151 #define STARCAS_RED		MAKE_ARGB(0x24,0xff,0x20,0x20)
152 #define STARCAS_ORANGE		MAKE_ARGB(0x24,0xff,0xa5,0x00)
153 #define STARCAS_YELLOW		MAKE_ARGB(0x24,0xff,0xff,0x20)
154 #define STARCAS_BLUE		MAKE_ARGB(0x24,0x1f,0x75,0xfe)
155 OVERLAY_START( starcas_overlay )
156 	OVERLAY_RECT( 0.0, 0.0, 1.0, 1.0,       STARCAS_BLUE)
157 	OVERLAY_DISK_NOBLEND( 0.5, 0.5, 0.1225, STARCAS_RED)
158 	OVERLAY_DISK_NOBLEND( 0.5, 0.5, 0.0950, STARCAS_ORANGE)
159 	OVERLAY_DISK_NOBLEND( 0.5, 0.5, 0.0725, STARCAS_YELLOW)
160 OVERLAY_END
161 
162 
163 /* Overlay based on colours shown in videos: */
164 /* https://www.youtube.com/watch?v=kbm5sw2eHQs */
165 /* https://www.youtube.com/watch?v=9mMjxeSmUrs */
166 #define TAILG_CYAN		MAKE_ARGB(0x04,0x20,0xff,0xff)
OVERLAY_START(tailg_overlay)167 OVERLAY_START( tailg_overlay )
168 	OVERLAY_RECT( 0.0, 0.0, 1.0, 1.0, TAILG_CYAN)
169 OVERLAY_END
170 
171 
172 /* Overlay based on colours shown in video: */
173 /* https://www.youtube.com/watch?v=MPGpq6iTetk */
174 #define SUNDANCE_YELLOW		MAKE_ARGB(0x04,0xff,0xff,0x20)
175 OVERLAY_START( sundance_overlay )
176 	OVERLAY_RECT( 0.0, 0.0, 1.0, 1.0, SUNDANCE_YELLOW)
177 OVERLAY_END
178 
179 
180 /* Overlay based on colours shown in videos: */
181 /* https://www.youtube.com/watch?v=jQdK9k86Ivw */
182 /* https://www.youtube.com/watch?v=I2fKvSmph8g */
183 #define SOLARQ_BLUE             MAKE_ARGB(0x04,0x1f,0x75,0xfe)
184 #define SOLARQ_RED		MAKE_ARGB(0x04,0xff,0x20,0x20)
185 #define SOLARQ_YELLOW		MAKE_ARGB(0x04,0xff,0xff,0x20)
186 OVERLAY_START( solarq_overlay )
187 	OVERLAY_RECT( 0.0, 0.068, 1.0, 1.0, SOLARQ_BLUE)
188 	OVERLAY_RECT( 0.0, 0.0, 1.0, 0.068, SOLARQ_RED)
189 	OVERLAY_DISK_NOBLEND( 0.5, 0.5, 0.02, SOLARQ_YELLOW)
190 OVERLAY_END
191 
192 
193 
194 /*************************************
195  *
196  *	Main CPU memory handlers
197  *
198  *************************************/
199 
200 static MEMORY_READ16_START( readmem )
201 	{ 0x0000, 0x01ff, MRA16_RAM },
202 	{ 0x8000, 0xffff, MRA16_ROM },
203 MEMORY_END
204 
205 
206 static MEMORY_WRITE16_START( writemem )
207 	{ 0x0000, 0x01ff, MWA16_RAM },
208 	{ 0x8000, 0xffff, MWA16_ROM },
209 MEMORY_END
210 
211 
212 
213 /*************************************
214  *
215  *	Main CPU port handlers
216  *
217  *************************************/
218 
219 static PORT_READ16_START( readport )
220 	{ CCPU_PORT_IOSWITCHES,   CCPU_PORT_IOSWITCHES+1,   input_port_0_word_r },
221 	{ CCPU_PORT_IOINPUTS,     CCPU_PORT_IOINPUTS+1,     input_port_1_word_r },
222 	{ CCPU_PORT_IOOUTPUTS,    CCPU_PORT_IOOUTPUTS+1,    cinemat_output_port_r },
223 	{ CCPU_PORT_IN_JOYSTICKX, CCPU_PORT_IN_JOYSTICKX+1, input_port_2_word_r },
224 	{ CCPU_PORT_IN_JOYSTICKY, CCPU_PORT_IN_JOYSTICKY+1, input_port_3_word_r },
225 PORT_END
226 
227 
228 static PORT_WRITE16_START( writeport )
229 	{ CCPU_PORT_IOOUTPUTS,    CCPU_PORT_IOOUTPUTS+1,    cinemat_output_port_w },
230 PORT_END
231 
232 
233 
234 /*************************************
235  *
236  *	Port definitions
237  *
238  *************************************/
239 
240 /* switch definitions are all mangled; for ease of use, I created these handy macros */
241 
242 #define SW7 0x40
243 #define SW6 0x02
244 #define SW5 0x04
245 #define SW4 0x08
246 #define SW3 0x01
247 #define SW2 0x20
248 #define SW1 0x10
249 
250 #define SW7OFF SW7
251 #define SW6OFF SW6
252 #define SW5OFF SW5
253 #define SW4OFF SW4
254 #define SW3OFF SW3
255 #define SW2OFF SW2
256 #define SW1OFF SW1
257 
258 #define SW7ON  0
259 #define SW6ON  0
260 #define SW5ON  0
261 #define SW4ON  0
262 #define SW3ON  0
263 #define SW2ON  0
264 #define SW1ON  0
265 
266 
267 INPUT_PORTS_START( spacewar )
268 	PORT_START /* switches */
269 	PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1, 1 )
270 	PORT_DIPNAME( SW2|SW1, SW2ON |SW1ON,  "Time" )
271 	PORT_DIPSETTING( 	   SW2OFF|SW1OFF, "0:45/coin" )
272 	PORT_DIPSETTING( 	   SW2ON |SW1ON,  "1:00/coin" )
273 	PORT_DIPSETTING( 	   SW2ON |SW1OFF, "1:30/coin" )
274 	PORT_DIPSETTING( 	   SW2OFF|SW1ON,  "2:00/coin" )
275 	PORT_DIPNAME( SW7,	   SW7OFF,		  DEF_STR( Unknown ) )
276 	PORT_DIPSETTING(	   SW7OFF,		  DEF_STR( Off ) )
277 	PORT_DIPSETTING(	   SW7ON,		  DEF_STR( On ) )
278 	PORT_BIT ( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
279 	PORT_BIT ( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
280 	PORT_BIT ( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
281 	PORT_BIT ( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
282 
283 	PORT_START /* inputs */
284 	PORT_BIT ( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
285 	PORT_BIT ( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_2WAY | IPF_PLAYER2 )
286 	PORT_BIT ( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_PLAYER1 )
287 	PORT_BIT ( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_PLAYER2 )
288 	PORT_BITX( 0x0800, IP_ACTIVE_LOW, 0, "Option 0", KEYCODE_0_PAD, IP_JOY_NONE )
289 	PORT_BITX( 0x0400, IP_ACTIVE_LOW, 0, "Option 5", KEYCODE_5_PAD, IP_JOY_NONE )
290 	PORT_BIT ( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
291 	PORT_BIT ( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_2WAY | IPF_PLAYER1 )
292 	PORT_BITX( 0x0080, IP_ACTIVE_LOW, 0, "Option 7", KEYCODE_7_PAD, IP_JOY_NONE )
293 	PORT_BITX( 0x0040, IP_ACTIVE_LOW, 0, "Option 2", KEYCODE_2_PAD, IP_JOY_NONE )
294 	PORT_BITX( 0x0020, IP_ACTIVE_LOW, 0, "Option 6", KEYCODE_6_PAD, IP_JOY_NONE )
295 	PORT_BITX( 0x0010, IP_ACTIVE_LOW, 0, "Option 1", KEYCODE_1_PAD, IP_JOY_NONE )
296 	PORT_BITX( 0x0008, IP_ACTIVE_LOW, 0, "Option 9", KEYCODE_9_PAD, IP_JOY_NONE )
297 	PORT_BITX( 0x0004, IP_ACTIVE_LOW, 0, "Option 4", KEYCODE_4_PAD, IP_JOY_NONE )
298 	PORT_BITX( 0x0002, IP_ACTIVE_LOW, 0, "Option 8", KEYCODE_8_PAD, IP_JOY_NONE )
299 	PORT_BITX( 0x0001, IP_ACTIVE_LOW, 0, "Option 3", KEYCODE_3_PAD, IP_JOY_NONE )
300 
301 	PORT_START /* analog stick X - unused */
302 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
303 
304 	PORT_START /* analog stick Y - unused */
305 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
306 INPUT_PORTS_END
307 
308 
309 INPUT_PORTS_START( barrier )
310 	PORT_START /* switches */
311 	PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1, 1 )
312 	PORT_DIPNAME( SW1, SW1ON,  DEF_STR( Lives ) )
313 	PORT_DIPSETTING(   SW1ON,  "3" )
314 	PORT_DIPSETTING(   SW1OFF, "5" )
315 	PORT_DIPNAME( SW2, SW2OFF, DEF_STR( Demo_Sounds ) )
316 	PORT_DIPSETTING(   SW2ON,  DEF_STR( Off ) )
317 	PORT_DIPSETTING(   SW2OFF, DEF_STR( On ) )
318 	PORT_DIPNAME( SW3, SW3OFF, DEF_STR( Unknown ) )
319 	PORT_DIPSETTING(   SW3OFF, DEF_STR( Off ) )
320 	PORT_DIPSETTING(   SW3ON,  DEF_STR( On ) )
321 	PORT_DIPNAME( SW4, SW4OFF, DEF_STR( Unknown ) )
322 	PORT_DIPSETTING(   SW4OFF, DEF_STR( Off ) )
323 	PORT_DIPSETTING(   SW4ON,  DEF_STR( On ) )
324 	PORT_DIPNAME( SW5, SW5OFF, DEF_STR( Unknown ) )
325 	PORT_DIPSETTING(   SW5OFF, DEF_STR( Off ) )
326 	PORT_DIPSETTING(   SW5ON,  DEF_STR( On ) )
327 	PORT_DIPNAME( SW6, SW6OFF, DEF_STR( Unknown ) )
328 	PORT_DIPSETTING(   SW6OFF, DEF_STR( Off ) )
329 	PORT_DIPSETTING(   SW6ON,  DEF_STR( On ) )
330 	PORT_DIPNAME( SW7, SW7OFF, DEF_STR( Unknown ) )
331 	PORT_DIPSETTING(   SW7OFF, DEF_STR( Off ) )
332 	PORT_DIPSETTING(   SW7ON,  DEF_STR( On ) )
333 
334 	PORT_START /* inputs */
335 	PORT_BIT ( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_PLAYER2 )
336 	PORT_BIT ( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY | IPF_PLAYER1 )
337 	PORT_BIT ( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY | IPF_PLAYER2 )
338 	PORT_BIT ( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY | IPF_PLAYER1 )
339 	PORT_BIT ( 0x0800, IP_ACTIVE_LOW, IPT_START1 )
340 	PORT_BIT ( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY | IPF_PLAYER2 )
341 	PORT_BIT ( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_PLAYER1 )
342 	PORT_BIT ( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY | IPF_PLAYER2 )
343 	PORT_BIT ( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED )
344 	PORT_BITX( 0x0040, IP_ACTIVE_LOW, 0, "Skill C", KEYCODE_C, IP_JOY_NONE )
345 	PORT_BIT ( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED )
346 	PORT_BIT ( 0x0010, IP_ACTIVE_LOW, IPT_START2 )
347 	PORT_BIT ( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY | IPF_PLAYER1 )
348 	PORT_BITX( 0x0004, IP_ACTIVE_LOW, 0, "Skill B", KEYCODE_B, IP_JOY_NONE )
349 	PORT_BIT ( 0x0002, IP_ACTIVE_LOW, IPT_UNUSED )
350 	PORT_BITX( 0x0001, IP_ACTIVE_LOW, 0, "Skill A", KEYCODE_A, IP_JOY_NONE )
351 
352 	PORT_START /* analog stick X - unused */
353 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
354 
355 	PORT_START /* analog stick Y - unused */
356 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
357 INPUT_PORTS_END
358 
359 
360 /* TODO: 4way or 8way stick? */
361 INPUT_PORTS_START( starhawk )
362 	PORT_START /* switches */
363 	PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1, 2 )
364 	PORT_DIPNAME( SW7,	   SW7OFF,		  DEF_STR( Unknown ) )
365 	PORT_DIPSETTING(	   SW7OFF,		  DEF_STR( Off ) )
366 	PORT_DIPSETTING(	   SW7ON,		  DEF_STR( On ) )
367 	PORT_BIT ( SW6, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
368 	PORT_BIT ( SW5, IP_ACTIVE_LOW, IPT_START2 )
369 	PORT_BIT ( SW4, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
370 	PORT_BIT ( SW3, IP_ACTIVE_LOW, IPT_START1 )
371 	PORT_DIPNAME( SW2|SW1, SW2OFF|SW1OFF, "Game Time" )
372 	PORT_DIPSETTING(	   SW2OFF|SW1OFF, "2:00/4:00" )
373 	PORT_DIPSETTING(	   SW2ON |SW1OFF, "1:30/3:00" )
374 	PORT_DIPSETTING(	   SW2OFF|SW1ON,  "1:00/2:00" )
375 	PORT_DIPSETTING(	   SW2ON |SW1ON,  "0:45/1:30" )
376 
377 	PORT_START /* input */
378 	PORT_BIT ( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER2 )
379 	PORT_BIT ( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
380 	PORT_BIT ( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
381 	PORT_BIT ( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
382 	PORT_BIT ( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER2 )
383 	PORT_BIT ( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER2 )
384 	PORT_BIT ( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER1 )
385 	PORT_BIT ( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
386 	PORT_BIT ( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED )
387 	PORT_BIT ( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED )
388 	PORT_BIT ( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER2 )
389 	PORT_BIT ( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
390 	PORT_BIT ( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER1 )
391 	PORT_BIT ( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
392 	PORT_BIT ( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER1 )
393 	PORT_BIT ( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER1 )
394 
395 	PORT_START /* analog stick X - unused */
396 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
397 
398 	PORT_START /* analog stick Y - unused */
399 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
400 INPUT_PORTS_END
401 
402 
403 INPUT_PORTS_START( starcas )
404 	PORT_START /* switches */
405 	PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1, 1 )
406 	PORT_SERVICE( SW7,     SW7ON )
407 	PORT_DIPNAME( SW4|SW3, SW4OFF|SW3OFF, DEF_STR( Coinage ) )
408 	PORT_DIPSETTING(       SW4ON |SW3OFF, DEF_STR( 2C_1C ) )
409 	PORT_DIPSETTING(       SW4ON |SW3ON,  DEF_STR( 4C_3C ) )
410 	PORT_DIPSETTING(       SW4OFF|SW3OFF, DEF_STR( 1C_1C ) )
411 	PORT_DIPSETTING(       SW4OFF|SW3ON,  DEF_STR( 2C_3C ) )
412 	PORT_DIPNAME( SW2|SW1, SW2OFF|SW1OFF, DEF_STR( Lives ) )
413 	PORT_DIPSETTING(       SW2OFF|SW1OFF, "3" )
414 	PORT_DIPSETTING(       SW2ON |SW1OFF, "4" )
415 	PORT_DIPSETTING(       SW2OFF|SW1ON,  "5" )
416 	PORT_DIPSETTING(       SW2ON |SW1ON,  "6" )
417 	PORT_DIPNAME( SW5,     SW5OFF,        DEF_STR( Unknown ) )
418 	PORT_DIPSETTING(       SW5OFF,        DEF_STR( Off ) )
419 	PORT_DIPSETTING(       SW5ON,         DEF_STR( On ) )
420 	PORT_DIPNAME( SW6,     SW6OFF,        DEF_STR( Unknown ) )
421 	PORT_DIPSETTING(       SW6OFF,        DEF_STR( Off ) )
422 	PORT_DIPSETTING(       SW6ON,         DEF_STR( On ) )
423 
424 	PORT_START /* inputs */
425 	PORT_BIT ( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
426 	PORT_BIT ( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
427 	PORT_BIT ( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
428 	PORT_BIT ( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 )
429 	PORT_BIT ( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
430 	PORT_BIT ( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON2 )
431 	PORT_BIT ( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN )
432 	PORT_BIT ( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY )
433 	PORT_BIT ( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
434 	PORT_BIT ( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_2WAY )
435 	PORT_BIT ( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
436 	PORT_BIT ( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
437 	PORT_BIT ( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
438 	PORT_BIT ( 0x0004, IP_ACTIVE_LOW, IPT_START2 )
439 	PORT_BIT ( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
440 	PORT_BIT ( 0x0001, IP_ACTIVE_LOW, IPT_START1 )
441 
442 	PORT_START /* analog stick X - unused */
443 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
444 
445 	PORT_START /* analog stick Y - unused */
446 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
447 INPUT_PORTS_END
448 
449 
450 INPUT_PORTS_START( tailg )
451 	PORT_START /* switches */
452 	PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1, 1 )
453 	PORT_DIPNAME( SW6|SW2|SW1, SW6OFF|SW2OFF|SW1OFF, "Shield Points" )
454 	PORT_DIPSETTING(		   SW6ON |SW2ON |SW1ON,  "15" )
455 	PORT_DIPSETTING(		   SW6ON |SW2OFF|SW1ON,  "20" )
456 	PORT_DIPSETTING(		   SW6ON |SW2ON |SW1OFF, "30" )
457 	PORT_DIPSETTING(		   SW6ON |SW2OFF|SW1OFF, "40" )
458 	PORT_DIPSETTING(		   SW6OFF|SW2ON |SW1ON,  "50" )
459 	PORT_DIPSETTING(		   SW6OFF|SW2OFF|SW1ON,  "60" )
460 	PORT_DIPSETTING(		   SW6OFF|SW2ON |SW1OFF, "70" )
461 	PORT_DIPSETTING(		   SW6OFF|SW2OFF|SW1OFF, "80" )
462 	PORT_DIPNAME( SW3,		   SW3OFF,				 DEF_STR( Coinage ) )
463 	PORT_DIPSETTING(		   SW3ON,				 DEF_STR( 2C_1C ) )
464 	PORT_DIPSETTING(		   SW3OFF,				 DEF_STR( 1C_1C ) )
465 	PORT_DIPNAME( SW4,		   SW4OFF,				 DEF_STR( Unknown ) )
466 	PORT_DIPSETTING(		   SW4OFF,				 DEF_STR( Off ) )
467 	PORT_DIPSETTING(		   SW4ON, 				 DEF_STR( On ) )
468 	PORT_DIPNAME( SW5,		   SW5OFF,				 DEF_STR( Unknown ) )
469 	PORT_DIPSETTING(		   SW5OFF,				 DEF_STR( Off ) )
470 	PORT_DIPSETTING(		   SW5ON, 				 DEF_STR( On ) )
471 	PORT_DIPNAME( SW7,		   SW7OFF,				 DEF_STR( Unknown ) )
472 	PORT_DIPSETTING(		   SW7OFF,				 DEF_STR( Off ) )
473 	PORT_DIPSETTING(		   SW7ON, 				 DEF_STR( On ) )
474 
475 	PORT_START /* inputs */
476 	PORT_BIT ( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
477 	PORT_BIT ( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
478 	PORT_BIT ( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED )
479 	PORT_BIT ( 0x1000, IP_ACTIVE_LOW, IPT_UNUSED )
480 	PORT_BIT ( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED )
481 	PORT_BIT ( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED )
482 	PORT_BIT ( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED )
483 	PORT_BIT ( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED )
484 	PORT_BIT ( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
485 	PORT_BIT ( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON2 )
486 	PORT_BIT ( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 )
487 	PORT_BIT ( 0x0010, IP_ACTIVE_LOW, IPT_UNUSED )
488 	PORT_BIT ( 0x0008, IP_ACTIVE_LOW, IPT_UNUSED )
489 	PORT_BIT ( 0x0004, IP_ACTIVE_LOW, IPT_UNUSED )
490 	PORT_BIT ( 0x0002, IP_ACTIVE_LOW, IPT_UNUSED )
491 	PORT_BIT ( 0x0001, IP_ACTIVE_LOW, IPT_UNUSED )
492 
493 	PORT_START /* analog stick X */
494 	PORT_ANALOG( 0xfff, 0x800, IPT_AD_STICK_X, 100, 50, 0x200, 0xe00 )
495 
496 	PORT_START /* analog stick Y */
497 	PORT_ANALOG( 0xfff, 0x800, IPT_AD_STICK_Y, 100, 50, 0x200, 0xe00 )
498 INPUT_PORTS_END
499 
500 
501 INPUT_PORTS_START( ripoff )
502 	PORT_START /* switches */
503 	PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1, 1 )
504 	PORT_SERVICE( SW7,	   SW7OFF )
505 	PORT_DIPNAME( SW6,	   SW6ON,		  "Scores" )
506 	PORT_DIPSETTING(	   SW6ON,		  "Individual" )
507 	PORT_DIPSETTING(	   SW6OFF,		  "Combined" )
508 	PORT_DIPNAME( SW5,	   SW5OFF,		  DEF_STR( Demo_Sounds ) )
509 	PORT_DIPSETTING(	   SW5ON,		  DEF_STR( Off ) )
510 	PORT_DIPSETTING(	   SW5OFF,		  DEF_STR( On ) )
511 	PORT_DIPNAME( SW4|SW3, SW4ON |SW3ON,  DEF_STR( Coinage ) )
512 	PORT_DIPSETTING(	   SW4ON |SW3OFF, DEF_STR( 2C_1C ) )
513 	PORT_DIPSETTING(	   SW4OFF|SW3OFF, DEF_STR( 4C_3C ) )
514 	PORT_DIPSETTING(	   SW4ON |SW3ON,  DEF_STR( 1C_1C ) )
515 	PORT_DIPSETTING(	   SW4OFF|SW3ON,  DEF_STR( 2C_3C ) )
516 	PORT_DIPNAME( SW2|SW1, SW2OFF|SW1OFF, DEF_STR( Lives ) )
517 	PORT_DIPSETTING(	   SW2ON |SW1OFF, "4" )
518 	PORT_DIPSETTING(	   SW2OFF|SW1OFF, "8" )
519 	PORT_DIPSETTING(	   SW2ON |SW1ON,  "12" )
520 	PORT_DIPSETTING(	   SW2OFF|SW1ON,  "16" )
521 
522 	PORT_START /* inputs */
523 	PORT_BIT ( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
524 	PORT_BIT ( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_PLAYER1 )
525 	PORT_BIT ( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
526 	PORT_BIT ( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_2WAY | IPF_PLAYER1 )
527 	PORT_BIT ( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED )
528 	PORT_BIT ( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED )
529 	PORT_BIT ( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED )
530 	PORT_BIT ( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED )
531 	PORT_BIT ( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED )
532 	PORT_BIT ( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED )
533 	PORT_BIT ( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
534 	PORT_BIT ( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
535 	PORT_BIT ( 0x0008, IP_ACTIVE_LOW, IPT_START2 )
536 	PORT_BIT ( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_PLAYER2 )
537 	PORT_BIT ( 0x0002, IP_ACTIVE_LOW, IPT_START1 )
538 	PORT_BIT ( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_2WAY | IPF_PLAYER2 )
539 
540 	PORT_START /* analog stick X - unused */
541 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
542 
543 	PORT_START /* analog stick Y - unused */
544 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
545 INPUT_PORTS_END
546 
547 
548 INPUT_PORTS_START( speedfrk )
549 	PORT_START /* switches */
550 	PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1, 1 )
551 	PORT_DIPNAME( SW7,     SW7OFF,        DEF_STR( Unknown ) )
552 	PORT_DIPSETTING(       SW7OFF,        DEF_STR( Off ) )
553 	PORT_DIPSETTING(       SW7ON,         DEF_STR( On ) )
554 	PORT_DIPNAME( SW6,     SW6OFF,        DEF_STR( Unknown ) )
555 	PORT_DIPSETTING(       SW6OFF,        DEF_STR( Off ) )
556 	PORT_DIPSETTING(       SW6ON,         DEF_STR( On ) )
557 	PORT_DIPNAME( SW5,     SW5OFF,        DEF_STR( Unknown ) )
558 	PORT_DIPSETTING(       SW5OFF,        DEF_STR( Off ) )
559 	PORT_DIPSETTING(       SW5ON,         DEF_STR( On ) )
560 	PORT_DIPNAME( SW4,     SW4OFF,        DEF_STR( Unknown ) )
561 	PORT_DIPSETTING(       SW4OFF,        DEF_STR( Off ) )
562 	PORT_DIPSETTING(       SW4ON,         DEF_STR( On ) )
563 	PORT_DIPNAME( SW3,     SW3OFF,        DEF_STR( Unknown ) )
564 	PORT_DIPSETTING(       SW3OFF,        DEF_STR( Off ) )
565 	PORT_DIPSETTING(       SW3ON,         DEF_STR( On ) )
566 	PORT_DIPNAME( SW2|SW1, SW2OFF|SW1ON,  "Extra Time" )
567 	PORT_DIPSETTING(       SW2ON |SW1ON,  "69" )
568 	PORT_DIPSETTING(       SW2ON |SW1OFF, "99" )
569 	PORT_DIPSETTING(       SW2OFF|SW1ON,  "129" )
570 	PORT_DIPSETTING(       SW2OFF|SW1OFF, "159" )
571 
572 	PORT_START /* inputs */
573 	PORT_BIT (  0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
574 	PORT_BIT (  0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
575 	PORT_BIT (  0x2000, IP_ACTIVE_LOW, IPT_UNUSED )
576 	PORT_BIT (  0x1000, IP_ACTIVE_LOW, IPT_UNUSED )
577 	PORT_BIT (  0x0800, IP_ACTIVE_LOW, IPT_UNUSED )
578 	PORT_BIT (  0x0400, IP_ACTIVE_LOW, IPT_UNUSED )
579 	PORT_BIT (  0x0200, IP_ACTIVE_LOW, IPT_UNUSED )
580 	PORT_BIT (  0x0100, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 ) /* gas */
581 	PORT_BIT (  0x0080, IP_ACTIVE_LOW, IPT_START1 )
582 	PORT_BIT (  0x0070, IP_ACTIVE_LOW, IPT_UNUSED ) /* gear shift, fake below */
583 	PORT_BIT (  0x000f, IP_ACTIVE_LOW, IPT_UNUSED ) /* steering wheel, fake below */
584 
585 	PORT_START /* analog stick X - unused */
586 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
587 
588 	PORT_START /* analog stick Y - unused */
589 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
590 
591 	PORT_START /* fake - steering wheel (in4) */
592 	PORT_ANALOG( 0xff, 0x00, IPT_DIAL, 100, 1, 0x00, 0xff )
593 
594 	PORT_START /* fake - gear shift (in5) */
595 	PORT_BIT ( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED )
596 	PORT_BITX( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_PLAYER2, "1st gear", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
597 	PORT_BITX( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER2, "2nd gear", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
598 	PORT_BITX( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER2, "3rd gear", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
599 	PORT_BITX( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_PLAYER2, "4th gear", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
600 INPUT_PORTS_END
601 
602 
603 INPUT_PORTS_START( sundance )
604 	PORT_START /* switches */
605 	PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1, 1 )
606 	PORT_DIPNAME( SW5,	   SW5OFF,		 DEF_STR( Unknown ) )
607 	PORT_DIPSETTING(	   SW5OFF,		 DEF_STR( Off ) )
608 	PORT_DIPSETTING(	   SW5ON, 		 DEF_STR( On ) )
609 	PORT_DIPNAME( SW6,	   SW6OFF,		 DEF_STR( Unknown ) )
610 	PORT_DIPSETTING(	   SW6OFF,		 DEF_STR( Off ) )
611 	PORT_DIPSETTING(	   SW6ON,		 DEF_STR( On ) )
612 	PORT_DIPNAME( SW7,	   SW7OFF,		 DEF_STR( Unknown ) )
613 	PORT_DIPSETTING(	   SW7OFF,		 DEF_STR( Off ) )
614 	PORT_DIPSETTING(	   SW7ON,		 DEF_STR( On ) )
615 	PORT_DIPNAME( SW4,	   SW4OFF,		 DEF_STR( Unknown ) ) /* supposedly coinage, doesn't work */
616 	PORT_DIPSETTING(	   SW4OFF,		 DEF_STR( Off ) )
617 	PORT_DIPSETTING(	   SW4ON,		 DEF_STR( On ) )
618 	PORT_DIPNAME( SW3,	   SW3ON,		 "Language" )
619 	PORT_DIPSETTING(	   SW3OFF,		 "Japanese" )
620 	PORT_DIPSETTING(	   SW3ON,		 "English" )
621 	PORT_DIPNAME( SW2|SW1, SW2OFF|SW1ON, "Time" )
622 	PORT_DIPSETTING(	   SW2ON |SW1ON,  "0:45/coin" )
623 	PORT_DIPSETTING(	   SW2OFF|SW1ON,  "1:00/coin" )
624 	PORT_DIPSETTING(	   SW2ON |SW1OFF, "1:30/coin" )
625 	PORT_DIPSETTING(	   SW2OFF|SW1OFF, "2:00/coin" )
626 
627 	PORT_START /* inputs */
628 	PORT_BIT ( 0x8000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* P2 Pad */
629 	PORT_BIT ( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* P1 Pad */
630 	PORT_BIT ( 0x2000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* P2 Pad */
631 	PORT_BIT ( 0x1000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* P1 Pad */
632 	PORT_BITX( 0x0800, IP_ACTIVE_LOW, 0, "2 Suns", KEYCODE_COMMA, IP_JOY_NONE )
633 	PORT_BIT ( 0x0400, IP_ACTIVE_LOW, IPT_SPECIAL ) /* P2 Pad */
634 	PORT_BIT ( 0x0200, IP_ACTIVE_LOW, IPT_SPECIAL ) /* P1 Pad */
635 	PORT_BIT ( 0x0100, IP_ACTIVE_LOW, IPT_SPECIAL ) /* P2 Pad */
636 	PORT_BITX( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON10 | IPF_PLAYER2, "P2 Shoot", KEYCODE_LCONTROL, IP_JOY_DEFAULT )
637 	PORT_BITX( 0x0040, IP_ACTIVE_LOW, 0, "4 Suns", KEYCODE_SLASH, IP_JOY_NONE )
638 	PORT_BITX( 0x0020, IP_ACTIVE_LOW, 0, "Toggle Grid", KEYCODE_G, IP_JOY_NONE )
639 	PORT_BITX( 0x0010, IP_ACTIVE_LOW, 0, "3 Suns", KEYCODE_STOP, IP_JOY_NONE )
640 	PORT_BIT ( 0x0008, IP_ACTIVE_LOW, IPT_START2 )
641 	PORT_BIT ( 0x0004, IP_ACTIVE_LOW, IPT_START1 )
642 	PORT_BITX( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON10 | IPF_PLAYER1, "P1 Shoot", KEYCODE_0_PAD, IP_JOY_DEFAULT )
643 	PORT_BIT ( 0x0001, IP_ACTIVE_LOW, IPT_SPECIAL ) /* P1 Pad */
644 
645 	PORT_START /* analog stick X - unused */
646 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
647 
648 	PORT_START /* analog stick Y - unused */
649 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
650 
651 	PORT_START
652 	PORT_BITX( 0x0001, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER1, "P1 Pad 1", KEYCODE_7_PAD, IP_JOY_NONE )
653 	PORT_BITX( 0x0002, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER1, "P1 Pad 2", KEYCODE_8_PAD, IP_JOY_NONE )
654 	PORT_BITX( 0x0004, IP_ACTIVE_HIGH, IPT_BUTTON3 | IPF_PLAYER1, "P1 Pad 3", KEYCODE_9_PAD, IP_JOY_NONE )
655 	PORT_BITX( 0x0008, IP_ACTIVE_HIGH, IPT_BUTTON4 | IPF_PLAYER1, "P1 Pad 4", KEYCODE_4_PAD, IP_JOY_NONE )
656 	PORT_BITX( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON5 | IPF_PLAYER1, "P1 Pad 5", KEYCODE_5_PAD, IP_JOY_NONE )
657 	PORT_BITX( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON6 | IPF_PLAYER1, "P1 Pad 6", KEYCODE_6_PAD, IP_JOY_NONE )
658 	PORT_BITX( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON7 | IPF_PLAYER1, "P1 Pad 7", KEYCODE_1_PAD, IP_JOY_NONE )
659 	PORT_BITX( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON8 | IPF_PLAYER1, "P1 Pad 8", KEYCODE_2_PAD, IP_JOY_NONE )
660 	PORT_BITX( 0x0100, IP_ACTIVE_HIGH, IPT_BUTTON9 | IPF_PLAYER1, "P1 Pad 9", KEYCODE_3_PAD, IP_JOY_NONE )
661 
662 	PORT_START
663 	PORT_BITX( 0x0001, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER2, "P2 Pad 1", KEYCODE_Q, IP_JOY_NONE )
664 	PORT_BITX( 0x0002, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER2, "P2 Pad 2", KEYCODE_W, IP_JOY_NONE )
665 	PORT_BITX( 0x0004, IP_ACTIVE_HIGH, IPT_BUTTON3 | IPF_PLAYER2, "P2 Pad 3", KEYCODE_E, IP_JOY_NONE )
666 	PORT_BITX( 0x0008, IP_ACTIVE_HIGH, IPT_BUTTON4 | IPF_PLAYER2, "P2 Pad 4", KEYCODE_A, IP_JOY_NONE )
667 	PORT_BITX( 0x0010, IP_ACTIVE_HIGH, IPT_BUTTON5 | IPF_PLAYER2, "P2 Pad 5", KEYCODE_S, IP_JOY_NONE )
668 	PORT_BITX( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON6 | IPF_PLAYER2, "P2 Pad 6", KEYCODE_D, IP_JOY_NONE )
669 	PORT_BITX( 0x0040, IP_ACTIVE_HIGH, IPT_BUTTON7 | IPF_PLAYER2, "P2 Pad 7", KEYCODE_Z, IP_JOY_NONE )
670 	PORT_BITX( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON8 | IPF_PLAYER2, "P2 Pad 8", KEYCODE_X, IP_JOY_NONE )
671 	PORT_BITX( 0x0100, IP_ACTIVE_HIGH, IPT_BUTTON9 | IPF_PLAYER2, "P2 Pad 9", KEYCODE_C, IP_JOY_NONE )
672 INPUT_PORTS_END
673 
674 
675 INPUT_PORTS_START( warrior )
676 	PORT_START /* switches */
677 	PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1, 1 )
678 	PORT_DIPNAME( SW7, SW7OFF, DEF_STR( Unknown ) )
679 	PORT_DIPSETTING(   SW7OFF, DEF_STR( Off ) )
680 	PORT_DIPSETTING(   SW7ON,  DEF_STR( On ) )
681 	PORT_DIPNAME( SW6, SW6OFF, DEF_STR( Unknown ) )
682 	PORT_DIPSETTING(   SW6OFF, DEF_STR( Off ) )
683 	PORT_DIPSETTING(   SW6ON,  DEF_STR( On ) )
684 	PORT_DIPNAME( SW5, SW5OFF, DEF_STR( Unknown ) )
685 	PORT_DIPSETTING(   SW5OFF, DEF_STR( Off ) )
686 	PORT_DIPSETTING(   SW5ON,  DEF_STR( On ) )
687 	PORT_DIPNAME( SW4, SW4OFF, DEF_STR( Unknown ) )
688 	PORT_DIPSETTING(   SW4OFF, DEF_STR( Off ) )
689 	PORT_DIPSETTING(   SW4ON,  DEF_STR( On ) )
690 	PORT_SERVICE( SW3, SW3ON )
691 	PORT_DIPNAME( SW2, SW2OFF, DEF_STR( Unknown ) )
692 	PORT_DIPSETTING(   SW2OFF, DEF_STR( Off ) )
693 	PORT_DIPSETTING(   SW2ON,  DEF_STR( On ) )
694 	PORT_DIPNAME( SW1, SW1ON,  DEF_STR( Unknown ) )
695 	PORT_DIPSETTING(   SW1OFF, DEF_STR( Off ) )
696 	PORT_DIPSETTING(   SW1ON,  DEF_STR( On ) )
697 
698 	PORT_START /* inputs */
699 	PORT_BIT ( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
700 	PORT_BIT ( 0x4000, IP_ACTIVE_LOW, IPT_START1 )
701 	PORT_BIT ( 0x2000, IP_ACTIVE_LOW, IPT_START2 )
702 	PORT_BIT ( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
703 	PORT_BIT ( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_PLAYER1 )
704 	PORT_BIT ( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_PLAYER1 )
705 	PORT_BIT ( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_PLAYER1 )
706 	PORT_BIT ( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER1 )
707 	PORT_BIT ( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
708 	PORT_BIT ( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
709 	PORT_BIT ( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
710 	PORT_BIT ( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
711 	PORT_BIT ( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_PLAYER2 )
712 	PORT_BIT ( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_PLAYER2 )
713 	PORT_BIT ( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_PLAYER2 )
714 	PORT_BIT ( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER2 )
715 
716 	PORT_START /* analog stick X - unused */
717 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
718 
719 	PORT_START /* analog stick Y - unused */
720 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
721 INPUT_PORTS_END
722 
723 
724 INPUT_PORTS_START( armora )
725 	PORT_START /* switches */
726 	PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1, 1 )
727 	PORT_SERVICE( SW7,     SW7ON )
728 	PORT_DIPNAME( SW5,     SW5ON,         DEF_STR( Demo_Sounds ) )
729 	PORT_DIPSETTING(       SW5OFF,        DEF_STR( Off ) )
730 	PORT_DIPSETTING(       SW5ON,         DEF_STR( On ) )
731 	PORT_DIPNAME( SW4|SW3, SW4OFF|SW3OFF, DEF_STR( Coinage ) )
732 	PORT_DIPSETTING(       SW4ON |SW3OFF, DEF_STR( 2C_1C ) )
733 	PORT_DIPSETTING(       SW4ON |SW3ON,  DEF_STR( 4C_3C ) )
734 	PORT_DIPSETTING(       SW4OFF|SW3OFF, DEF_STR( 1C_1C ) )
735 	PORT_DIPSETTING(       SW4OFF|SW3ON,  DEF_STR( 2C_3C ) )
736 	PORT_DIPNAME( SW2|SW1, SW2OFF|SW1OFF, DEF_STR( Lives ) )
737 	PORT_DIPSETTING(       SW2ON |SW1ON,  "2" )
738 	PORT_DIPSETTING(       SW2OFF|SW1ON,  "3" )
739 	PORT_DIPSETTING(       SW2ON |SW1OFF, "4" )
740 	PORT_DIPSETTING(       SW2OFF|SW1OFF, "5" )
741 
742 	PORT_START /* inputs */
743 	PORT_BIT ( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
744 	PORT_BIT ( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_PLAYER1 )
745 	PORT_BIT ( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
746 	PORT_BIT ( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_2WAY | IPF_PLAYER1 )
747 	PORT_BIT ( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED )
748 	PORT_BIT ( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED )
749 	PORT_BIT ( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED )
750 	PORT_BIT ( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED )
751 	PORT_BIT ( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED )
752 	PORT_BIT ( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED )
753 	PORT_BIT ( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
754 	PORT_BIT ( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
755 	PORT_BIT ( 0x0008, IP_ACTIVE_LOW, IPT_START2 )
756 	PORT_BIT ( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_PLAYER2 )
757 	PORT_BIT ( 0x0002, IP_ACTIVE_LOW, IPT_START1 )
758 	PORT_BIT ( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_2WAY | IPF_PLAYER2 )
759 
760 	PORT_START /* analog stick X - unused */
761 	PORT_BIT ( 0xff, IP_ACTIVE_LOW,  IPT_UNUSED )
762 
763 	PORT_START /* analog stick Y - unused */
764 	PORT_BIT ( 0xff, IP_ACTIVE_LOW,  IPT_UNUSED )
765 INPUT_PORTS_END
766 
767 
768 INPUT_PORTS_START( solarq )
769 	PORT_START /* switches */
770 	PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1, 1 )
771 	PORT_SERVICE( SW7,	   SW7ON )
772 	PORT_DIPNAME( SW2,	   SW2OFF,		  DEF_STR( Bonus_Life ) )
773 	PORT_DIPSETTING(	   SW2OFF,		  "25 captures" )
774 	PORT_DIPSETTING(	   SW2ON, 		  "40 captures" )
775 	PORT_DIPNAME( SW6,	   SW6OFF,		  DEF_STR( Free_Play ) )
776 	PORT_DIPSETTING(	   SW6OFF,		  DEF_STR( Off ) )
777 	PORT_DIPSETTING(	   SW6ON,		  DEF_STR( On ) )
778 	PORT_DIPNAME( SW1|SW3, SW1OFF|SW3OFF, DEF_STR( Coinage ) )
779 	PORT_DIPSETTING(	   SW3ON |SW1OFF, DEF_STR( 2C_1C ) )
780 	PORT_DIPSETTING(	   SW3ON |SW1ON,  DEF_STR( 4C_3C ) )
781 	PORT_DIPSETTING(	   SW3OFF|SW1OFF, DEF_STR( 1C_1C ) )
782 	PORT_DIPSETTING(	   SW3OFF|SW1ON,  DEF_STR( 2C_3C ) )
783 	PORT_DIPNAME( SW5|SW4, SW5OFF|SW5OFF, DEF_STR( Lives ) )
784 	PORT_DIPSETTING(	   SW5OFF|SW4OFF, "2" )
785 	PORT_DIPSETTING(	   SW5ON |SW4OFF, "3" )
786 	PORT_DIPSETTING(	   SW5OFF|SW4ON,  "4" )
787 	PORT_DIPSETTING(	   SW5ON |SW4ON,  "5" )
788 
789 	PORT_START /* inputs */
790 	PORT_BIT ( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
791 	PORT_BIT ( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
792 	PORT_BIT ( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED )
793 	PORT_BIT ( 0x1000, IP_ACTIVE_LOW, IPT_UNUSED )
794 	PORT_BIT ( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED )
795 	PORT_BIT ( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED )
796 	PORT_BIT ( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED )
797 	PORT_BIT ( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED )
798 	PORT_BIT ( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED )
799 	PORT_BIT ( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED )
800 	PORT_BIT ( 0x0020, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_2WAY | IPF_PLAYER1 )
801 	PORT_BIT ( 0x0010, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_PLAYER1 )
802 	PORT_BIT ( 0x0008, IP_ACTIVE_LOW, IPT_START1 ) /* also hyperspace */
803 	PORT_BIT ( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
804 	PORT_BIT ( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
805 	PORT_BIT ( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
806 	PORT_BIT ( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) /* also nova */
807 	PORT_BIT ( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER1 )
808 
809 	PORT_START /* analog stick X - unused */
810 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
811 
812 	PORT_START /* analog stick Y - unused */
813 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
814 INPUT_PORTS_END
815 
816 
817 INPUT_PORTS_START( demon )
818 	PORT_START /* switches */
819 	PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1, 1 )
820 	PORT_DIPNAME( SW7,     SW7OFF,        DEF_STR( Free_Play ) )
821 	PORT_DIPSETTING(       SW7OFF,        DEF_STR( Off ) )
822 	PORT_DIPSETTING(       SW7ON,         DEF_STR( On ) )
823 	PORT_DIPNAME( SW6,     SW6OFF,        DEF_STR( Unknown ) )
824 	PORT_DIPSETTING(       SW6OFF,        DEF_STR( Off ) )
825 	PORT_DIPSETTING(       SW6ON,         DEF_STR( On ) )
826 	PORT_DIPNAME( SW5,     SW5OFF,        DEF_STR( Unknown ) )
827 	PORT_DIPSETTING(       SW5OFF,        DEF_STR( Off ) )
828 	PORT_DIPSETTING(       SW5ON,         DEF_STR( On ) )
829 	PORT_DIPNAME( SW3|SW4, SW3ON |SW4ON,  DEF_STR( Lives ) )
830 	PORT_DIPSETTING(       SW3ON |SW4ON,  "3")
831 	PORT_DIPSETTING(       SW3OFF|SW4ON,  "4" )
832 	PORT_DIPSETTING(       SW3ON |SW4OFF, "5" )
833 	PORT_DIPSETTING(       SW3OFF|SW4OFF, "6" )
834 	PORT_DIPNAME( SW2|SW1, SW2OFF|SW1OFF, DEF_STR( Coinage ) )
835 	PORT_DIPSETTING(       SW2ON |SW1OFF, DEF_STR( 2C_1C ) )
836 	PORT_DIPSETTING(       SW2ON |SW1ON,  DEF_STR( 4C_3C ) )
837 	PORT_DIPSETTING(       SW2OFF|SW1OFF, DEF_STR( 1C_1C ) )
838 	PORT_DIPSETTING(       SW2OFF|SW1ON,  DEF_STR( 2C_3C ) )
839 
840 	PORT_START /* inputs */
841 	PORT_BIT ( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* also mapped to Button 3, player 2 */
842 	PORT_BIT ( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
843 	PORT_BIT ( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
844 	PORT_BIT ( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_PLAYER2 )
845 	PORT_BIT ( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_2WAY | IPF_PLAYER2 )
846 	PORT_BIT ( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
847 	PORT_BIT ( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
848 	PORT_BIT ( 0x0100, IP_ACTIVE_LOW, IPT_TILT )
849 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
850 	PORT_BIT ( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
851 	PORT_BIT ( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
852 	PORT_BIT ( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
853 	PORT_BIT ( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_PLAYER1 )
854 	PORT_BIT ( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_2WAY | IPF_PLAYER1 )
855 	PORT_BIT ( 0x0002, IP_ACTIVE_LOW, IPT_START2 )
856 	PORT_BIT ( 0x0001, IP_ACTIVE_LOW, IPT_START1 )
857 
858 	PORT_START /* analog stick X - unused */
859 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
860 
861 	PORT_START /* analog stick Y - unused */
862 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
863 INPUT_PORTS_END
864 
865 
866 INPUT_PORTS_START( wotw )
867 	PORT_START /* switches */
868 	PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1, 1 )
869 	PORT_SERVICE( SW7, SW7OFF )
870 	PORT_DIPNAME( SW6, SW6OFF, DEF_STR( Free_Play ) )
871 	PORT_DIPSETTING(   SW6OFF, DEF_STR( Off ) )
872 	PORT_DIPSETTING(   SW6ON,  DEF_STR( On ) )
873 	PORT_DIPNAME( SW4, SW4OFF, DEF_STR( Coinage ) )
874 	PORT_DIPSETTING(   SW4OFF, DEF_STR( 1C_1C ) )
875 	PORT_DIPSETTING(   SW4ON,  DEF_STR( 2C_3C ) )
876 	PORT_DIPNAME( SW2, SW2OFF, DEF_STR( Lives ) )
877 	PORT_DIPSETTING(   SW2OFF, "3" )
878 	PORT_DIPSETTING(   SW2ON,  "5" )
879 	PORT_DIPNAME( SW1, SW1OFF, DEF_STR( Unknown ) )
880 	PORT_DIPSETTING(   SW1OFF, DEF_STR( Off ) )
881 	PORT_DIPSETTING(   SW1ON,  DEF_STR( On ) )
882 	PORT_DIPNAME( SW3, SW3OFF, DEF_STR( Unknown ) )
883 	PORT_DIPSETTING(   SW3OFF, DEF_STR( Off ) )
884 	PORT_DIPSETTING(   SW3ON,  DEF_STR( On ) )
885 	PORT_DIPNAME( SW5, SW5OFF, DEF_STR( Unknown ) )
886 	PORT_DIPSETTING(   SW5OFF, DEF_STR( Off ) )
887 	PORT_DIPSETTING(   SW5ON,  DEF_STR( On ) )
888 
889 	PORT_START /* inputs */
890 	PORT_BIT ( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
891 	PORT_BIT ( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
892 	PORT_BIT ( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED )
893 	PORT_BIT ( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 )
894 	PORT_BIT ( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED )
895 	PORT_BIT ( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON2 )
896 	PORT_BIT ( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED )
897 	PORT_BIT ( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY )
898 	PORT_BIT ( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED )
899 	PORT_BIT ( 0x0040, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_2WAY )
900 	PORT_BIT ( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED )
901 	PORT_BIT ( 0x0010, IP_ACTIVE_LOW, IPT_UNUSED )
902 	PORT_BIT ( 0x0008, IP_ACTIVE_LOW, IPT_UNUSED )
903 	PORT_BIT ( 0x0004, IP_ACTIVE_LOW, IPT_START2 )
904 	PORT_BIT ( 0x0002, IP_ACTIVE_LOW, IPT_UNUSED )
905 	PORT_BIT ( 0x0001, IP_ACTIVE_LOW, IPT_START1 )
906 
907 	PORT_START /* analog stick X - unused */
908 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
909 
910 	PORT_START /* analog stick Y - unused */
911 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
912 INPUT_PORTS_END
913 
914 
915 INPUT_PORTS_START( boxingb )
916 	PORT_START /* switches */
917 	PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1, 1 )
918 	PORT_SERVICE( SW7,	   SW7OFF )
919 	PORT_DIPNAME( SW6,	   SW6OFF,		  DEF_STR( Free_Play ) )
920 	PORT_DIPSETTING(	   SW6OFF,		  DEF_STR( Off ) )
921 	PORT_DIPSETTING(	   SW6ON,		  DEF_STR( On ) )
922 	PORT_DIPNAME( SW5,	   SW5ON,		  DEF_STR( Demo_Sounds ) )
923 	PORT_DIPSETTING(	   SW5OFF,		  DEF_STR( Off ) )
924 	PORT_DIPSETTING(	   SW5ON,		  DEF_STR( On ) )
925 	PORT_DIPNAME( SW4,	   SW4ON,		  DEF_STR( Bonus_Life ) )
926 	PORT_DIPSETTING(	   SW4ON,		  "30,000" )
927 	PORT_DIPSETTING(	   SW4OFF,		  "50,000" )
928 	PORT_DIPNAME( SW3,	   SW3ON,		  DEF_STR( Lives ) )
929 	PORT_DIPSETTING(	   SW3OFF,		  "3" )
930 	PORT_DIPSETTING(	   SW3ON,		  "5" )
931 	PORT_DIPNAME( SW2|SW1, SW2OFF|SW1OFF, DEF_STR( Coinage ) )
932 	PORT_DIPSETTING(	   SW2ON |SW1OFF, DEF_STR( 2C_1C ) )
933 	PORT_DIPSETTING(	   SW2ON |SW1ON,  DEF_STR( 4C_3C ) )
934 	PORT_DIPSETTING(	   SW2OFF|SW1OFF, DEF_STR( 1C_1C ) )
935 	PORT_DIPSETTING(	   SW2OFF|SW1ON,  DEF_STR( 2C_3C ) )
936 
937 	PORT_START /* inputs */
938 	PORT_BIT ( 0xf000, IP_ACTIVE_HIGH, IPT_UNUSED )	/* dial */
939 	PORT_BIT ( 0x0800, IP_ACTIVE_LOW,  IPT_UNUSED )
940 	PORT_BIT ( 0x0400, IP_ACTIVE_LOW,  IPT_UNUSED )
941 	PORT_BIT ( 0x0200, IP_ACTIVE_LOW,  IPT_UNUSED )
942 	PORT_BIT ( 0x0100, IP_ACTIVE_LOW,  IPT_UNUSED )
943 	PORT_BIT ( 0x0080, IP_ACTIVE_LOW,  IPT_UNUSED )
944 	PORT_BIT ( 0x0040, IP_ACTIVE_LOW,  IPT_UNUSED )
945 	PORT_BIT ( 0x0020, IP_ACTIVE_LOW,  IPT_BUTTON1 | IPF_PLAYER1 )
946 	PORT_BIT ( 0x0010, IP_ACTIVE_LOW,  IPT_BUTTON2 | IPF_PLAYER1 )
947 	PORT_BIT ( 0x0008, IP_ACTIVE_LOW,  IPT_BUTTON3 | IPF_PLAYER1 )
948 	PORT_BIT ( 0x0008, IP_ACTIVE_LOW,  IPT_START1 )
949 	PORT_BIT ( 0x0004, IP_ACTIVE_LOW,  IPT_BUTTON3 | IPF_PLAYER2 )
950 	PORT_BIT ( 0x0004, IP_ACTIVE_LOW,  IPT_START2 )
951 	PORT_BIT ( 0x0002, IP_ACTIVE_LOW,  IPT_BUTTON2 | IPF_PLAYER2 )
952 	PORT_BIT ( 0x0001, IP_ACTIVE_LOW,  IPT_BUTTON1 | IPF_PLAYER2 )
953 
954 	PORT_START /* analog stick X - unused */
955 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
956 
957 	PORT_START /* analog stick Y - unused */
958 	PORT_BIT ( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
959 
960 	PORT_START /* fake (in4) */
961 	PORT_ANALOG( 0xff, 0x80, IPT_DIAL, 100, 5, 0x00, 0xff )
962 INPUT_PORTS_END
963 
964 
965 
966 /*************************************
967  *
968  *	Machine drivers
969  *
970  *************************************/
971 
972 /* Note: the CPU speed is somewhat arbitrary as the cycle timings in
973    the core are incomplete. */
974 static MACHINE_DRIVER_START( cinemat )
975 
976 	/* basic machine hardware */
977 	MDRV_CPU_ADD(CCPU, 5000000)
978 	MDRV_CPU_MEMORY(readmem,writemem)
979 	MDRV_CPU_PORTS(readport,writeport)
980 
981 	MDRV_FRAMES_PER_SECOND(38)
982 	MDRV_MACHINE_INIT(cinemat_sound)
983 
984 	/* video hardware */
985 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_VECTOR | VIDEO_RGB_DIRECT)
986 	MDRV_SCREEN_SIZE(400, 300)
987 	MDRV_VISIBLE_AREA(0, 1024, 0, 768)
988 	MDRV_PALETTE_LENGTH(32768)
989 
990 	MDRV_PALETTE_INIT(cinemat)
991 	MDRV_VIDEO_START(cinemat)
992 	MDRV_VIDEO_EOF(cinemat)
993 	MDRV_VIDEO_UPDATE(vector)
994 
995 	/* sound hardware */
996 MACHINE_DRIVER_END
997 
998 
999 static MACHINE_DRIVER_START( spacewar )
1000 
1001 	/* basic machine hardware */
1002 	MDRV_IMPORT_FROM(cinemat)
1003 
1004 	/* video hardware */
1005 	MDRV_VIDEO_UPDATE(spacewar)
1006 
1007 	/* sound hardware */
1008 	MDRV_SOUND_ADD(SAMPLES, spacewar_samples_interface)
1009 MACHINE_DRIVER_END
1010 
1011 
1012 static MACHINE_DRIVER_START( starcas )
1013 
1014 	/* basic machine hardware */
1015 	MDRV_IMPORT_FROM(cinemat)
1016 
1017 	/* sound hardware */
1018 	MDRV_SOUND_ADD(SAMPLES, starcas_samples_interface)
1019 MACHINE_DRIVER_END
1020 
1021 
1022 static MACHINE_DRIVER_START( ripoff )
1023 
1024 	/* basic machine hardware */
1025 	MDRV_IMPORT_FROM(cinemat)
1026 
1027 	/* sound hardware */
1028 	MDRV_SOUND_ADD(SAMPLES, ripoff_samples_interface)
1029 MACHINE_DRIVER_END
1030 
1031 
1032 static MACHINE_DRIVER_START( warrior )
1033 
1034 	/* basic machine hardware */
1035 	MDRV_IMPORT_FROM(cinemat)
1036 
1037 	/* video hardware */
1038 	MDRV_VISIBLE_AREA(0, 1024, 0, 780)
1039 
1040 	/* sound hardware */
1041 	MDRV_SOUND_ADD(SAMPLES, warrior_samples_interface)
1042 MACHINE_DRIVER_END
1043 
1044 
1045 static MACHINE_DRIVER_START( armora )
1046 
1047 	/* basic machine hardware */
1048 	MDRV_IMPORT_FROM(cinemat)
1049 
1050 	/* video hardware */
1051 	MDRV_VISIBLE_AREA(0, 1024, 0, 772)
1052         /* sound hardware */
1053 	MDRV_SOUND_ADD(SAMPLES, armora_samples_interface)
1054 MACHINE_DRIVER_END
1055 
1056 
1057 static MACHINE_DRIVER_START( solarq )
1058 
1059 	/* basic machine hardware */
1060 	MDRV_IMPORT_FROM(cinemat)
1061 
1062 	/* sound hardware */
1063 	MDRV_SOUND_ADD(SAMPLES, solarq_samples_interface)
1064 MACHINE_DRIVER_END
1065 
1066 
1067 static MACHINE_DRIVER_START( demon )
1068 
1069 	/* basic machine hardware */
1070 	MDRV_IMPORT_FROM(cinemat)
1071 	MDRV_IMPORT_FROM(demon_sound)
1072 
1073 	/* video hardware */
1074 	MDRV_VISIBLE_AREA(0, 1024, 0, 800)
1075 MACHINE_DRIVER_END
1076 
1077 static MACHINE_DRIVER_START( sundance )
1078 
1079 	/* basic machine hardware */
1080 	MDRV_IMPORT_FROM(cinemat)
1081 
1082 	/* sound hardware */
1083 	MDRV_SOUND_ADD(SAMPLES, sundance_samples_interface)
1084 MACHINE_DRIVER_END
1085 
1086 static MACHINE_DRIVER_START( cincolor )
1087 
1088 	/* basic machine hardware */
1089 	MDRV_IMPORT_FROM(cinemat)
1090 
1091 	/* video hardware */
1092 	MDRV_PALETTE_INIT(cinemat_color)
1093 MACHINE_DRIVER_END
1094 
1095 
1096 
1097 
1098 /*************************************
1099  *
1100  *	ROM definitions
1101  *
1102  *************************************/
1103 
1104 ROM_START( spacewar )
1105 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 4k for code */
1106 	ROM_LOAD16_BYTE( "spacewar.1l", 0x8000, 0x0800, CRC(edf0fd53) SHA1(a543d8b95bc77ec061c6b10161a6f3e07401e251) )
1107 	ROM_LOAD16_BYTE( "spacewar.2r", 0x8001, 0x0800, CRC(4f21328b) SHA1(8889f1a9353d6bb1e1078829c1ba77557853739b) )
1108 ROM_END
1109 
1110 
1111 ROM_START( barrier )
1112 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 4k for code */
1113 	ROM_LOAD16_BYTE( "barrier.t7", 0x8000, 0x0800, CRC(7c3d68c8) SHA1(1138029552b73e94522b3b48096befc057d603c7) )
1114 	ROM_LOAD16_BYTE( "barrier.p7", 0x8001, 0x0800, CRC(aec142b5) SHA1(b268936b82e072f38f1f1dd54e0bc88bcdf19925) )
1115 ROM_END
1116 
1117 
1118 ROM_START( starhawk )
1119 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 4k for code */
1120 	ROM_LOAD16_BYTE( "u7", 0x8000, 0x0800, CRC(376e6c5c) SHA1(7d9530ed2e75464578b541f61408ba64ee9d2a95) )
1121 	ROM_LOAD16_BYTE( "r7", 0x8001, 0x0800, CRC(bb71144f) SHA1(79591cd3ef8df78ec26e158f7e82ca0dcd72260d) )
1122 ROM_END
1123 
1124 
1125 ROM_START( starcas )
1126 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 8k for code */
1127 	ROM_LOAD16_BYTE( "starcas3.t7", 0x8000, 0x0800, CRC(b5838b5d) SHA1(6ac30be55514cba55180c85af69072b5056d1d4c) )
1128 	ROM_LOAD16_BYTE( "starcas3.p7", 0x8001, 0x0800, CRC(f6bc2f4d) SHA1(ef6f01556b154cfb3e37b2a99d6ea6292e5ec844) )
1129 	ROM_LOAD16_BYTE( "starcas3.u7", 0x9000, 0x0800, CRC(188cd97c) SHA1(c021e93a01e9c65013073de551a8c24fd1a68bde) )
1130 	ROM_LOAD16_BYTE( "starcas3.r7", 0x9001, 0x0800, CRC(c367b69d) SHA1(98354d34ceb03e080b1846611d533be7bdff01cc) )
1131 ROM_END
1132 
1133 ROM_START( starcasp )
1134 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 8k for code */
1135 	ROM_LOAD16_BYTE( "starcasp.t7", 0x8000, 0x0800, CRC(d2c551a2) SHA1(90b5e1c6988839b812028f1baaea16420c011c08) )
1136 	ROM_LOAD16_BYTE( "starcasp.p7", 0x8001, 0x0800, CRC(baa4e422) SHA1(9035ac675fcbbb93ae3f658339fdfaef47796dab) )
1137 	ROM_LOAD16_BYTE( "starcasp.u7", 0x9000, 0x0800, CRC(26941991) SHA1(4417f2f3e437c1f39ff389362467928f57045d74) )
1138 	ROM_LOAD16_BYTE( "starcasp.r7", 0x9001, 0x0800, CRC(5dd151e5) SHA1(f3b0e2bd3121ac0649938eb2f676d171bcc7d4dd) )
1139 ROM_END
1140 
1141 
1142 ROM_START( starcas1 )
1143 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 8k for code */
1144 	ROM_LOAD16_BYTE( "starcast.t7", 0x8000, 0x0800, CRC(65d0a225) SHA1(e1fbee5ff42dd040ab2e90bbe2189fcb76d6167e) )
1145 	ROM_LOAD16_BYTE( "starcast.p7", 0x8001, 0x0800, CRC(d8f58d9a) SHA1(abba459431dcacc75099b0d340b957be71b89cfd) )
1146 	ROM_LOAD16_BYTE( "starcast.u7", 0x9000, 0x0800, CRC(d4f35b82) SHA1(cd4561ce8e1d0554ac1a8925bbf46d2c676a3b80) )
1147 	ROM_LOAD16_BYTE( "starcast.r7", 0x9001, 0x0800, CRC(9fd3de54) SHA1(17195a490b190e68660829850ff9d702ca1939bb) )
1148 ROM_END
1149 
1150 ROM_START( starcase )
1151 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 8k for code */
1152 	ROM_LOAD16_BYTE( "starcast.t7", 0x8000, 0x0800, CRC(65d0a225) SHA1(e1fbee5ff42dd040ab2e90bbe2189fcb76d6167e) )
1153 	ROM_LOAD16_BYTE( "starcast.p7", 0x8001, 0x0800, CRC(d8f58d9a) SHA1(abba459431dcacc75099b0d340b957be71b89cfd) )
1154 	ROM_LOAD16_BYTE( "starcast.u7", 0x9000, 0x0800, CRC(d4f35b82) SHA1(cd4561ce8e1d0554ac1a8925bbf46d2c676a3b80) )
1155 	ROM_LOAD16_BYTE( "mottoeis.r7", 0x9001, 0x0800, CRC(a2c1ed52) SHA1(ed9743f44ee98c9e7c2a6819ec681af7c7a97fc9) )
1156 ROM_END
1157 
1158 ROM_START( stellcas )
1159 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 8k for code */
1160 	ROM_LOAD16_BYTE( "starcast.t7", 0x8000, 0x0800, CRC(65d0a225) SHA1(e1fbee5ff42dd040ab2e90bbe2189fcb76d6167e) )
1161 	ROM_LOAD16_BYTE( "starcast.p7", 0x8001, 0x0800, CRC(d8f58d9a) SHA1(abba459431dcacc75099b0d340b957be71b89cfd) )
1162 	ROM_LOAD16_BYTE( "elttron.u7",  0x9000, 0x0800, CRC(d5b44050) SHA1(a5dd6050ab1a3b0275a229845bc5e9524e2da69c) )
1163 	ROM_LOAD16_BYTE( "elttron.r7",  0x9001, 0x0800, CRC(6f1f261e) SHA1(a22a52af12a5cfbb9031fdd12c9c78db28f28ff1) )
1164 ROM_END
1165 
1166 
1167 ROM_START( tailg )
1168 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 8k for code */
1169 	ROM_LOAD16_BYTE( "tgunner.t70", 0x8000, 0x0800, CRC(21ec9a04) SHA1(b442f34360d1d4769e7bca73a2d79ce97d335460) )
1170 	ROM_LOAD16_BYTE( "tgunner.p70", 0x8001, 0x0800, CRC(8d7410b3) SHA1(59ead49bd229a873f15334d0999c872d3d6581d4) )
1171 	ROM_LOAD16_BYTE( "tgunner.t71", 0x9000, 0x0800, CRC(2c954ab6) SHA1(9edf189a19b50a9abf458d4ef8ba25b53934385e) )
1172 	ROM_LOAD16_BYTE( "tgunner.p71", 0x9001, 0x0800, CRC(8e2c8494) SHA1(65e461ec4938f9895e5ac31442193e06c8731dc1) )
1173 ROM_END
1174 
1175 
1176 ROM_START( ripoff )
1177 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 8k for code */
1178 	ROM_LOAD16_BYTE( "ripoff.t7", 0x8000, 0x0800, CRC(40c2c5b8) SHA1(bc1f3b540475c9868443a72790a959b1f36b93c6) )
1179 	ROM_LOAD16_BYTE( "ripoff.p7", 0x8001, 0x0800, CRC(a9208afb) SHA1(ea362494855be27a07014832b01e65c1645385d0) )
1180 	ROM_LOAD16_BYTE( "ripoff.u7", 0x9000, 0x0800, CRC(29c13701) SHA1(5e7672deffac1fa8f289686a5527adf7e51eb0bb) )
1181 	ROM_LOAD16_BYTE( "ripoff.r7", 0x9001, 0x0800, CRC(150bd4c8) SHA1(e1e2f0dfec4f53d8ff67b0e990514c304f496b3a) )
1182 ROM_END
1183 
1184 
1185 ROM_START( speedfrk )
1186 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 8k for code */
1187 	ROM_LOAD16_BYTE( "speedfrk.t7", 0x8000, 0x0800, CRC(3552c03f) SHA1(c233dd064195b336556d7405b51065389b228c78) )
1188 	ROM_LOAD16_BYTE( "speedfrk.p7", 0x8001, 0x0800, CRC(4b90cdec) SHA1(69e2312acdc22ef52236b1c4dfee9f51fcdcaa52) )
1189 	ROM_LOAD16_BYTE( "speedfrk.u7", 0x9000, 0x0800, CRC(616c7cf9) SHA1(3c5bf59a09d85261f69e4b9d499cb7a93d79fb57) )
1190 	ROM_LOAD16_BYTE( "speedfrk.r7", 0x9001, 0x0800, CRC(fbe90d63) SHA1(e42b17133464ae48c90263bba01a7d041e938a05) )
1191 ROM_END
1192 
1193 
1194 ROM_START( sundance )
1195 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 8k for code */
1196 	ROM_LOAD16_BYTE( "sundance.t7", 0x8000, 0x0800, CRC(d5b9cb19) SHA1(72dca386b48a582186898c32123d61b4fd58632e) )
1197 	ROM_LOAD16_BYTE( "sundance.p7", 0x8001, 0x0800, CRC(445c4f20) SHA1(972d0b0613f154ee3347206cae05ee8c36796f84) )
1198 	ROM_LOAD16_BYTE( "sundance.u7", 0x9000, 0x0800, CRC(67887d48) SHA1(be225dbd3508fad2711286834880065a4fc0a2fc) )
1199 	ROM_LOAD16_BYTE( "sundance.r7", 0x9001, 0x0800, CRC(10b77ebd) SHA1(3d43bd47c498d5ea74a7322f8d25dbc0c0187534) )
1200 ROM_END
1201 
1202 
1203 ROM_START( warrior )
1204 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 8k for code */
1205 	ROM_LOAD16_BYTE( "warrior.t7", 0x8000, 0x0800, CRC(ac3646f9) SHA1(515c3acb638fad27fa57f6b438c8ec0b5b76f319) )
1206 	ROM_LOAD16_BYTE( "warrior.p7", 0x8001, 0x0800, CRC(517d3021) SHA1(0483dcaf92c336a07d2c535823348ee886567e85) )
1207 	ROM_LOAD16_BYTE( "warrior.u7", 0x9000, 0x0800, CRC(2e39340f) SHA1(4b3cfb3674dd2a668d4d65e28cb37d7ad20f118d) )
1208 	ROM_LOAD16_BYTE( "warrior.r7", 0x9001, 0x0800, CRC(8e91b502) SHA1(27614c3a8613f49187039cfb05ee96303caf72ba) )
1209 ROM_END
1210 
1211 
1212 ROM_START( armora )
1213 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 16k for code */
1214 	ROM_LOAD16_BYTE( "ar414le.t6", 0x8000, 0x1000, CRC(d7e71f84) SHA1(0b29278a6a698f07eae597bc0a8650e91eaabffa) )
1215 	ROM_LOAD16_BYTE( "ar414lo.p6", 0x8001, 0x1000, CRC(df1c2370) SHA1(b74834d1a591a741892ec41269a831d3590ff766) )
1216 	ROM_LOAD16_BYTE( "ar414ue.u6", 0xa000, 0x1000, CRC(b0276118) SHA1(88f33cb2f46a89819c85f810c7cff812e918391e) )
1217 	ROM_LOAD16_BYTE( "ar414uo.r6", 0xa001, 0x1000, CRC(229d779f) SHA1(0cbdd83eb224146944049346f30d9c72d3ad5f52) )
1218 ROM_END
1219 
1220 ROM_START( armorap )
1221 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 16k for code */
1222 	ROM_LOAD16_BYTE( "ar414le.t6", 0x8000, 0x1000, CRC(d7e71f84) SHA1(0b29278a6a698f07eae597bc0a8650e91eaabffa) )
1223 	ROM_LOAD16_BYTE( "ar414lo.p6", 0x8001, 0x1000, CRC(df1c2370) SHA1(b74834d1a591a741892ec41269a831d3590ff766) )
1224 	ROM_LOAD16_BYTE( "armorp.u7",  0xa000, 0x1000, CRC(4a86bd8a) SHA1(36647805c40688588dde81c7cbf4fe356b0974fc) )
1225 	ROM_LOAD16_BYTE( "armorp.r7",  0xa001, 0x1000, CRC(d2dd4eae) SHA1(09afaeb0b8f88edb17e42bd2d754af0ae53e609a) )
1226 ROM_END
1227 
1228 ROM_START( armorar )
1229 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 16k for code */
1230 	ROM_LOAD16_BYTE( "armorr.t7", 0x8000, 0x0800, CRC(256d1ed9) SHA1(8c101356c3fe93f2f49d5dc9d739f3b37cdb98b5) )
1231 	ROM_LOAD16_BYTE( "armorr.p7", 0x8001, 0x0800, CRC(bf75c158) SHA1(4d52630ae0ea2ad16bb5f577ad6d21f52e2f0a3c) )
1232 	ROM_LOAD16_BYTE( "armorr.u7", 0x9000, 0x0800, CRC(ba68331d) SHA1(871c3f5b6c2845f270e3a272fdb07aed8b527641) )
1233 	ROM_LOAD16_BYTE( "armorr.r7", 0x9001, 0x0800, CRC(fa14c0b3) SHA1(37b233f0dac51eaf7d325628a6cced9367b6b6cb) )
1234 ROM_END
1235 
1236 
1237 ROM_START( solarq )
1238 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 16k for code */
1239 	ROM_LOAD16_BYTE( "solar.6t", 0x8000, 0x1000, CRC(1f3c5333) SHA1(58d847b5f009a0363ae116768b22d0bcfb3d60a4) )
1240 	ROM_LOAD16_BYTE( "solar.6p", 0x8001, 0x1000, CRC(d6c16bcc) SHA1(6953bdc698da060d37f6bc33a810ba44595b1257) )
1241 	ROM_LOAD16_BYTE( "solar.6u", 0xa000, 0x1000, CRC(a5970e5c) SHA1(9ac07924ca86d003964022cffdd6a0436dde5624) )
1242 	ROM_LOAD16_BYTE( "solar.6r", 0xa001, 0x1000, CRC(b763fff2) SHA1(af1fd978e46a4aee3048e6e36c409821d986f7ee) )
1243 ROM_END
1244 
1245 
1246 ROM_START( demon )
1247 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 16k for code */
1248 	ROM_LOAD16_BYTE( "demon.7t",  0x8000, 0x1000, CRC(866596c1) SHA1(65202dcd5c6bf6c11fe76a89682a1505b1870cc9) )
1249 	ROM_LOAD16_BYTE( "demon.7p",  0x8001, 0x1000, CRC(1109e2f1) SHA1(c779b6af1ca09e2e295fc9a0e221ddf283b683ed) )
1250 	ROM_LOAD16_BYTE( "demon.7u",  0xa000, 0x1000, CRC(d447a3c3) SHA1(32f6fb01231aa4f3d93e32d639a89f0cf9624a71) )
1251 	ROM_LOAD16_BYTE( "demon.7r",  0xa001, 0x1000, CRC(64b515f0) SHA1(2dd9a6d784ec1baf31e8c6797ddfdc1423c69470) )
1252 
1253 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for code */
1254 	ROM_LOAD         ( "demon.snd", 0x0000, 0x1000, CRC(1e2cc262) SHA1(2aae537574ac69c92a3c6400b971e994de88d915) )
1255 ROM_END
1256 
1257 
1258 ROM_START( wotw )
1259 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 16k for code */
1260 	ROM_LOAD16_BYTE( "wow_le.t7", 0x8000, 0x1000, CRC(b16440f9) SHA1(9656a26814736f8ff73575063b5ebbb2e8aa7dd0) )
1261 	ROM_LOAD16_BYTE( "wow_lo.p7", 0x8001, 0x1000, CRC(bfdf4a5a) SHA1(db4eceb68e17020d0a597ba105ec3b91ce48b7c1) )
1262 	ROM_LOAD16_BYTE( "wow_ue.u7", 0xa000, 0x1000, CRC(9b5cea48) SHA1(c2bc002e550a0d36e713d07f6aefa79c70b8e284) )
1263 	ROM_LOAD16_BYTE( "wow_uo.r7", 0xa001, 0x1000, CRC(c9d3c866) SHA1(57a47bf06838fe562981321249fe5ae585316f22) )
1264 ROM_END
1265 
1266 
1267 ROM_START( boxingb )
1268 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 32k for code */
1269 	ROM_LOAD16_BYTE( "u1a", 0x8000, 0x1000, CRC(d3115b0f) SHA1(9448e7ac1cdb5c7e0739623151be230ab630c4ea) )
1270 	ROM_LOAD16_BYTE( "u1b", 0x8001, 0x1000, CRC(3a44268d) SHA1(876ebe942ded787cfe357563a33d3e26a1483c5a) )
1271 	ROM_LOAD16_BYTE( "u2a", 0xa000, 0x1000, CRC(c97a9cbb) SHA1(8bdeb9ee6b24c0a4554bbf4532a43481a0360019) )
1272 	ROM_LOAD16_BYTE( "u2b", 0xa001, 0x1000, CRC(98d34ff5) SHA1(6767a02a99a01712383300f9acb96cdeffbc9c69) )
1273 	ROM_LOAD16_BYTE( "u3a", 0xc000, 0x1000, CRC(5bb3269b) SHA1(a9dbc91b1455760f10bad0d2ccf540e040a00d4e) )
1274 	ROM_LOAD16_BYTE( "u3b", 0xc001, 0x1000, CRC(85bf83ad) SHA1(9229042e39c53fae56dc93f8996bf3a3fcd35cb8) )
1275 	ROM_LOAD16_BYTE( "u4a", 0xe000, 0x1000, CRC(25b51799) SHA1(46465fe62907ae66a0ce730581e4e9ba330d4369) )
1276 	ROM_LOAD16_BYTE( "u4b", 0xe001, 0x1000, CRC(7f41de6a) SHA1(d01dffad3cb6e76c535a034ea0277dce5801c5f1) )
1277 ROM_END
1278 
1279 
1280 
1281 /*************************************
1282  *
1283  *	Driver initialization
1284  *
1285  *************************************/
1286 
1287 static DRIVER_INIT( spacewar )
1288 {
1289 	ccpu_Config(0, CCPU_MEMSIZE_4K, CCPU_MONITOR_BILEV);
1290 	cinemat_sound_handler = spacewar_sound_w;
1291 }
1292 
1293 
DRIVER_INIT(barrier)1294 static DRIVER_INIT( barrier )
1295 {
1296 	ccpu_Config(1, CCPU_MEMSIZE_4K, CCPU_MONITOR_BILEV);
1297 	cinemat_sound_handler = 0;
1298 }
1299 
1300 
DRIVER_INIT(starhawk)1301 static DRIVER_INIT( starhawk )
1302 {
1303 	ccpu_Config(1, CCPU_MEMSIZE_4K, CCPU_MONITOR_BILEV);
1304 	cinemat_sound_handler = 0;
1305 }
1306 
1307 
DRIVER_INIT(starcas)1308 static DRIVER_INIT( starcas )
1309 {
1310 	ccpu_Config(1, CCPU_MEMSIZE_8K, CCPU_MONITOR_BILEV);
1311 	cinemat_sound_handler = starcas_sound_w;
1312 	artwork_set_overlay(starcas_overlay);
1313 }
1314 
1315 
DRIVER_INIT(tailg)1316 static DRIVER_INIT( tailg )
1317 {
1318 	ccpu_Config(0, CCPU_MEMSIZE_8K, CCPU_MONITOR_BILEV);
1319 	cinemat_sound_handler = 0;
1320 	artwork_set_overlay(tailg_overlay);
1321 }
1322 
1323 
DRIVER_INIT(ripoff)1324 static DRIVER_INIT( ripoff )
1325 {
1326 	ccpu_Config(1, CCPU_MEMSIZE_8K, CCPU_MONITOR_BILEV);
1327 	cinemat_sound_handler = ripoff_sound_w;
1328 }
1329 
1330 
DRIVER_INIT(speedfrk)1331 static DRIVER_INIT( speedfrk )
1332 {
1333 	ccpu_Config(0, CCPU_MEMSIZE_8K, CCPU_MONITOR_BILEV);
1334 	cinemat_sound_handler = 0;
1335 
1336 	install_port_read16_handler(0, CCPU_PORT_IOINPUTS, CCPU_PORT_IOINPUTS+1, speedfrk_input_port_1_r);
1337 }
1338 
1339 
DRIVER_INIT(sundance)1340 static DRIVER_INIT( sundance )
1341 {
1342 	ccpu_Config(1, CCPU_MEMSIZE_8K, CCPU_MONITOR_16LEV);
1343 	cinemat_sound_handler = sundance_sound_w;
1344 	artwork_set_overlay(sundance_overlay);
1345 
1346 	install_port_read16_handler(0, CCPU_PORT_IOINPUTS, CCPU_PORT_IOINPUTS+1, sundance_input_port_1_r);
1347 }
1348 
1349 
DRIVER_INIT(warrior)1350 static DRIVER_INIT( warrior )
1351 {
1352 	ccpu_Config(1, CCPU_MEMSIZE_8K, CCPU_MONITOR_BILEV);
1353 	cinemat_sound_handler = warrior_sound_w;
1354 }
1355 
1356 
DRIVER_INIT(armora)1357 static DRIVER_INIT( armora )
1358 {
1359 	ccpu_Config(1, CCPU_MEMSIZE_16K, CCPU_MONITOR_BILEV);
1360 	cinemat_sound_handler = armora_sound_w;
1361 }
1362 
1363 
DRIVER_INIT(armorar)1364 static DRIVER_INIT( armorar )
1365 {
1366 	ccpu_Config(1, CCPU_MEMSIZE_8K, CCPU_MONITOR_BILEV);
1367 	cinemat_sound_handler = armora_sound_w;
1368 }
1369 
1370 
DRIVER_INIT(solarq)1371 static DRIVER_INIT( solarq )
1372 {
1373 	ccpu_Config(1, CCPU_MEMSIZE_16K, CCPU_MONITOR_BILEV);
1374 	cinemat_sound_handler = solarq_sound_w;
1375 	artwork_set_overlay(solarq_overlay);
1376 }
1377 
1378 
DRIVER_INIT(demon)1379 static DRIVER_INIT( demon )
1380 {
1381 	unsigned char *RAM = memory_region(REGION_CPU2);
1382 
1383 	ccpu_Config(1, CCPU_MEMSIZE_16K, CCPU_MONITOR_BILEV);
1384 	cinemat_sound_handler = demon_sound_w;
1385 
1386 	RAM[0x0091]=0xcb;	/* bit 7,a */
1387 	RAM[0x0092]=0x7f;
1388 	RAM[0x0093]=0xc2;	/* jp nz,$0088 */
1389 	RAM[0x0094]=0x88;
1390 	RAM[0x0095]=0x00;
1391 	RAM[0x0096]=0xc3;	/* jp $00fd */
1392 	RAM[0x0097]=0xfd;
1393 	RAM[0x0098]=0x00;
1394 }
1395 
1396 
DRIVER_INIT(wotw)1397 static DRIVER_INIT( wotw )
1398 {
1399 	ccpu_Config(1, CCPU_MEMSIZE_16K, CCPU_MONITOR_WOWCOL);
1400 	cinemat_sound_handler = 0;
1401 }
1402 
1403 
DRIVER_INIT(boxingb)1404 static DRIVER_INIT( boxingb )
1405 {
1406 	ccpu_Config(1, CCPU_MEMSIZE_32K, CCPU_MONITOR_WOWCOL);
1407 	cinemat_sound_handler = 0;
1408 
1409 	install_port_read16_handler(0, CCPU_PORT_IOINPUTS, CCPU_PORT_IOINPUTS+1, boxingb_input_port_1_r);
1410 }
1411 
1412 
1413 
1414 /*************************************
1415  *
1416  *	Game drivers
1417  *
1418  *************************************/
1419 
1420 GAMEC( 1978, spacewar, 0,       spacewar, spacewar, spacewar, ROT0,   "Cinematronics", "Space Wars", &spacewar_ctrl, NULL )
1421 GAMEX(1979, barrier,  0,       cinemat,  barrier,  barrier,  ROT270, "Vectorbeam", "Barrier", GAME_NO_SOUND )
1422 GAMEX(1981, starhawk, 0,       cinemat,  starhawk, starhawk, ROT0,   "Cinematronics", "Star Hawk", GAME_NO_SOUND )
1423 GAME( 1980, starcas,  0,       starcas,  starcas,  starcas,  ROT0,   "Cinematronics", "Star Castle (version 3)" )
1424 GAME( 1980, starcas1, starcas, starcas,  starcas,  starcas,  ROT0,   "Cinematronics", "Star Castle (older)" )
1425 GAME( 1980, starcasp, starcas, starcas,  starcas,  starcas,  ROT0,   "Cinematronics", "Star Castle (prototype)" )
1426 GAME( 1980, starcase, starcas, starcas,  starcas,  starcas,  ROT0,   "Cinematronics (Mottoeis license)", "Star Castle (Mottoeis)" )
1427 GAME( 1980, stellcas, starcas, starcas,  starcas,  starcas,  ROT0,   "bootleg", "Stellar Castle (Elettronolo)" )
1428 GAMEX(1979, tailg,    0,       cinemat,  tailg,    tailg,    ROT0,   "Cinematronics", "Tailgunner", GAME_NO_SOUND )
1429 GAME( 1979, ripoff,   0,       ripoff,   ripoff,   ripoff,   ROT0,   "Cinematronics", "Rip Off" )
1430 GAMEX(1979, speedfrk, 0,       cinemat,  speedfrk, speedfrk, ROT0,   "Vectorbeam", "Speed Freak", GAME_NO_SOUND )
1431 GAME( 1979, sundance, 0,       sundance,  sundance, sundance, ROT270, "Cinematronics", "Sundance" )
1432 GAMEC( 1978, warrior,  0,       warrior,  warrior,  warrior,  ROT0,   "Vectorbeam", "Warrior", &warrior_ctrl, NULL )
1433 GAME( 1980, armora,   0,       armora,   armora,   armora,   ROT0,   "Cinematronics", "Armor Attack")
1434 GAME( 1980, armorap,  armora,  armora,   armora,   armora,   ROT0,   "Cinematronics", "Armor Attack (prototype)")
1435 GAME( 1980, armorar,  armora,  armora,   armora,   armorar,  ROT0,  "Cinematronics (Rock-ola license)", "Armor Attack (Rock-ola)" )
1436 GAMEC( 1981, solarq,   0,       solarq,   solarq,   solarq,   ORIENTATION_FLIP_X, "Cinematronics", "Solar Quest", &solarq_ctrl, NULL )
1437 GAME( 1982, demon,    0,       demon,    demon,    demon,    ROT0,   "Rock-ola", "Demon" )
1438 GAMEX( 1981, wotw,     0,       cincolor, wotw,     wotw,     ROT0,   "Cinematronics", "War of the Worlds", GAME_IMPERFECT_COLORS | GAME_NO_SOUND )
1439 GAMEX( 1981, boxingb,  0,       cincolor, boxingb,  boxingb,  ROT0,   "Cinematronics", "Boxing Bugs", GAME_IMPERFECT_COLORS | GAME_NO_SOUND )
1440