1 #include "../machine/williams.c"
2 #include "../vidhrdw/williams.c"
3 #include "../sndhrdw/williams.c"
4 
5 /*
6 
7 	Ordering:
8 
9 		* Defender
10 		* Defense Command
11 		* Mayday Mai'dez
12 		* Colony 7
13 
14 		* Stargate
15 		* Robotron
16 		* Joust
17 		* Bubbles
18 		* Splat
19 		* Sinistar
20 
21 		* Blaster
22 
23 		* Mystic Marathon
24 		* Turkey Shoot
25 		* Inferno
26 		* Joust 2
27 
28 */
29 
30 
31 /***************************************************************************
32 
33 Changes:
34 	Mar 12 98 LBO
35 	* Added Sinistar speech samples provided by Howie Cohen
36 	* Fixed clipping circuit with help from Sean Riddle and Pat Lawrence
37 
38 	Mar 22 98 ASG
39 	* Fixed Sinistar head drawing, did another major cleanup
40 	* Rewrote the blitter routines
41 	* Fixed interrupt timing finally!!!
42 
43 Note: the visible area (according to the service mode) seems to be
44 	{ 6, 297-1, 7, 246-1 },
45 however I use
46 	{ 6, 298-1, 7, 247-1 },
47 because the DOS port doesn't support well screen widths which are not multiple of 4.
48 
49 ------- Blaster Bubbles Joust Robotron Sinistar Splat Stargate -------------
50 
51 0000-8FFF ROM   (for Blaster, 0000-3FFF is a bank of 12 ROMs)
52 0000-97FF Video  RAM Bank switched with ROM (96FF for Blaster)
53 9800-BFFF RAM
54 	0xBB00 Blaster only, Color 0 for each line (256 entry)
55 	0xBC00 Blaster only, Color 0 flags, latch color only if bit 0 = 1 (256 entry)
56 	    Do something else with the bit 1, I do not know what
57 C000-CFFF I/O
58 D000-FFFF ROM
59 
60 c000-C00F color_registers  (16 bytes of BBGGGRRR)
61 
62 c804 widget_pia_dataa (widget = I/O board)
63 c805 widget_pia_ctrla
64 c806 widget_pia_datab
65 c807 widget_pia_ctrlb (CB2 select between player 1 and player 2
66 		       controls if Table or Joust)
67       bits 5-3 = 110 = player 2
68       bits 5-3 = 111 = player 1
69 
70 c80c rom_pia_dataa
71 c80d rom_pia_ctrla
72 c80e rom_pia_datab
73       bit 0 \
74       bit 1 |
75       bit 2 |-6 bits to sound board
76       bit 3 |
77       bit 4 |
78       bit 5 /
79       bit 6 \
80       bit 7 /Plus CA2 and CB2 = 4 bits to drive the LED 7 segment
81 c80f rom_pia_ctrlb
82 
83 C900 rom_enable_scr_ctrl  Switch between video ram and rom at 0000-97FF
84 
85 C940 Blaster only: Select bank in the color Prom for color remap
86 C980 Blaster only: Select which ROM is at 0000-3FFF
87 C9C0 Blaster only: bit 0 = enable the color 0 changing each lines
88 		   bit 1 = erase back each frame
89 
90 
91 ***** Blitter ****** (Stargate and Defender do not have blitter)
92 CA00 start_blitter    Each bits has a function
93       1000 0000 Do not process half the byte 4-7
94       0100 0000 Do not process half the byte 0-3
95       0010 0000 Shift the shape one pixel right (to display a shape on an odd pixel)
96       0001 0000 Remap, if shape != 0 then pixel = mask
97       0000 1000 Source  1 = take source 0 = take Mask only
98       0000 0100 ?
99       0000 0010 Transparent
100       0000 0001
101 CA01 blitter_mask     Not really a mask, more a remap color, see Blitter
102 CA02 blitter_source   hi
103 CA03 blitter_source   lo
104 CA04 blitter_dest     hi
105 CA05 blitter_dest     lo
106 CA06 blitter_w_h      H  Do a XOR with 4 to have the real value (Except Splat)
107 CA07 blitter_w_h      W  Do a XOR with 4 to have the real value (Except Splat)
108 
109 CB00 6 bits of the video counters bits 2-7
110 
111 CBFF watchdog
112 
113 CC00-CFFF 1K X 4 CMOS ram battery backed up (8 bits on Sinistar)
114 
115 
116 
117 
118 ------------------ Robotron -------------------
119 c804 widget_pia_dataa (widget = I/O board)
120   bit 0  Move Up
121   bit 1  Move Down
122   bit 2  Move Left
123   bit 3  Move Right
124   bit 4  1 Player
125   bit 5  2 Players
126   bit 6  Fire Up
127   bit 7  Fire Down
128 
129 c806 widget_pia_datab
130   bit 0  Fire Left
131   bit 1  Fire Right
132   bit 2
133   bit 3
134   bit 4
135   bit 5
136   bit 6
137   bit 7
138 
139 c80c rom_pia_dataa
140   bit 0  Auto Up
141   bit 1  Advance
142   bit 2  Right Coin
143   bit 3  High Score Reset
144   bit 4  Left Coin
145   bit 5  Center Coin
146   bit 6  Slam Door Tilt
147   bit 7  Hand Shake from sound board
148 
149 
150 ------------------ Joust -------------------
151 c804 widget_pia_dataa (widget = I/O board)
152   bit 0  Move Left   player 1/2
153   bit 1  Move Right  player 1/2
154   bit 2  Flap        player 1/2
155   bit 3
156   bit 4  2 Player
157   bit 5  1 Players
158   bit 6
159   bit 7
160 
161 c806 widget_pia_datab
162   bit 0
163   bit 1
164   bit 2
165   bit 3
166   bit 4
167   bit 5
168   bit 6
169   bit 7
170 
171 c80c rom_pia_dataa
172   bit 0  Auto Up
173   bit 1  Advance
174   bit 2  Right Coin
175   bit 3  High Score Reset
176   bit 4  Left Coin
177   bit 5  Center Coin
178   bit 6  Slam Door Tilt
179   bit 7  Hand Shake from sound board
180 
181 
182 ------------------ Stargate -------------------
183 c804 widget_pia_dataa (widget = I/O board)
184   bit 0  Fire
185   bit 1  Thrust
186   bit 2  Smart Bomb
187   bit 3  HyperSpace
188   bit 4  2 Players
189   bit 5  1 Player
190   bit 6  Reverse
191   bit 7  Down
192 
193 c806 widget_pia_datab
194   bit 0  Up
195   bit 1  Inviso
196   bit 2
197   bit 3
198   bit 4
199   bit 5
200   bit 6
201   bit 7  0 = Upright  1 = Table
202 
203 c80c rom_pia_dataa
204   bit 0  Auto Up
205   bit 1  Advance
206   bit 2  Right Coin        (High Score Reset in schematics)
207   bit 3  High Score Reset  (Left Coin in schematics)
208   bit 4  Left Coin         (Center Coin in schematics)
209   bit 5  Center Coin       (Right Coin in schematics)
210   bit 6  Slam Door Tilt
211   bit 7  Hand Shake from sound board
212 
213 
214 ------------------ Splat -------------------
215 c804 widget_pia_dataa (widget = I/O board)
216   bit 0  Walk Up
217   bit 1  Walk Down
218   bit 2  Walk Left
219   bit 3  Walk Right
220   bit 4  1 Player
221   bit 5  2 Players
222   bit 6  Throw Up
223   bit 7  Throw Down
224 
225 c806 widget_pia_datab
226   bit 0  Throw Left
227   bit 1  Throw Right
228   bit 2
229   bit 3
230   bit 4
231   bit 5
232   bit 6
233   bit 7
234 
235 c80c rom_pia_dataa
236   bit 0  Auto Up
237   bit 1  Advance
238   bit 2  Right Coin
239   bit 3  High Score Reset
240   bit 4  Left Coin
241   bit 5  Center Coin
242   bit 6  Slam Door Tilt
243   bit 7  Hand Shake from sound board
244 
245 
246 ------------------ Blaster -------------------
247 c804 widget_pia_dataa (widget = I/O board)
248   bit 0  up/down switch a
249   bit 1  up/down switch b
250   bit 2  up/down switch c
251   bit 3  up/down direction
252   bit 4  left/right switch a
253   bit 5  left/right switch b
254   bit 6  left/right switch c
255   bit 7  left/right direction
256 
257 c806 widget_pia_datab
258   bit 0  Thrust (Panel)
259   bit 1  Blast
260   bit 2  Thrust (Joystick)
261   bit 3
262   bit 4  1 Player
263   bit 5  2 Player
264   bit 6
265   bit 7
266 
267 c80c rom_pia_dataa
268   bit 0  Auto Up
269   bit 1  Advance
270   bit 2  Right Coin
271   bit 3  High Score Reset
272   bit 4  Left Coin
273   bit 5  Center Coin
274   bit 6  Slam Door Tilt
275   bit 7  Hand Shake from sound board
276 
277 ------------------------- Sinistar -------------------------------------
278 c804 widget_pia_dataa (widget = I/O board)
279   bit 0  up/down switch a
280   bit 1  up/down switch b
281   bit 2  up/down switch c
282   bit 3  up/down direction
283   bit 4  left/right switch a
284   bit 5  left/right switch b
285   bit 6  left/right switch c
286   bit 7  left/right direction
287 
288 c806 widget_pia_datab
289   bit 0  Fire
290   bit 1  Bomb
291   bit 2
292   bit 3
293   bit 4  1 Player
294   bit 5  2 Player
295   bit 6
296   bit 7
297 
298 c80c rom_pia_dataa
299   bit 0  Auto Up
300   bit 1  Advance
301   bit 2  Right Coin
302   bit 3  High Score Reset
303   bit 4  Left Coin
304   bit 5  Center Coin
305   bit 6  Slam Door Tilt
306   bit 7  Hand Shake from sound board
307 
308 
309 ------------------ Bubbles -------------------
310 c804 widget_pia_dataa (widget = I/O board)
311   bit 0  Up
312   bit 1  Down
313   bit 2  Left
314   bit 3  Right
315   bit 4  2 Players
316   bit 5  1 Player
317   bit 6
318   bit 7
319 
320 c806 widget_pia_datab
321   bit 0
322   bit 1
323   bit 2
324   bit 3
325   bit 4
326   bit 5
327   bit 6
328   bit 7
329 
330 c80c rom_pia_dataa
331   bit 0  Auto Up
332   bit 1  Advance
333   bit 2  Right Coin        (High Score Reset in schematics)
334   bit 3  High Score Reset  (Left Coin in schematics)
335   bit 4  Left Coin         (Center Coin in schematics)
336   bit 5  Center Coin       (Right Coin in schematics)
337   bit 6  Slam Door Tilt
338   bit 7  Hand Shake from sound board
339 
340 ------------------------- Defender -------------------------------------
341 0000-9800 Video RAM
342 C000-CFFF ROM (4 banks) + I/O
343 d000-ffff ROM
344 
345 c000-c00f color_registers  (16 bytes of BBGGGRRR)
346 
347 C3FC      WatchDog
348 
349 C400-C4FF CMOS ram battery backed up
350 
351 C800      6 bits of the video counters bits 2-7
352 
353 cc00 pia1_dataa (widget = I/O board)
354   bit 0  Auto Up
355   bit 1  Advance
356   bit 2  Right Coin
357   bit 3  High Score Reset
358   bit 4  Left Coin
359   bit 5  Center Coin
360   bit 6
361   bit 7
362 cc01 pia1_ctrla
363 
364 cc02 pia1_datab
365   bit 0 \
366   bit 1 |
367   bit 2 |-6 bits to sound board
368   bit 3 |
369   bit 4 |
370   bit 5 /
371   bit 6 \
372   bit 7 /Plus CA2 and CB2 = 4 bits to drive the LED 7 segment
373 cc03 pia1_ctrlb (CB2 select between player 1 and player 2 controls if Table)
374 
375 cc04 pia2_dataa
376   bit 0  Fire
377   bit 1  Thrust
378   bit 2  Smart Bomb
379   bit 3  HyperSpace
380   bit 4  2 Players
381   bit 5  1 Player
382   bit 6  Reverse
383   bit 7  Down
384 cc05 pia2_ctrla
385 
386 cc06 pia2_datab
387   bit 0  Up
388   bit 1
389   bit 2
390   bit 3
391   bit 4
392   bit 5
393   bit 6
394   bit 7
395 cc07 pia2_ctrlb
396   Control the IRQ
397 
398 d000 Select bank (c000-cfff)
399   0 = I/O
400   1 = BANK 1
401   2 = BANK 2
402   3 = BANK 3
403   7 = BANK 4
404 
405 ------------------------------------------------------------------------
406 
407 Mystic Marathon (1983)
408 Turkey Shoot (1984)
409 Inferno (1984)
410 Joust2 Survival of the Fittest (1986)
411 
412 All have two boards, a large board with lots of RAM and
413 three ROMs, and a smaller board with lots of ROMs,
414 the CPU, the 6821 PIAs, and the two "Special Chip 2"
415 custom BIT/BLT chips.
416 Joust 2 has an additional music/speech board that has a
417 68B09E CPU, 68B21 PIA, Harris 55564-5 CVSD, and a YM2151.
418 
419 Contact Michael Soderstrom (ichael@geocities.com) if you
420 have any additional information or corrections.
421 
422 Memory Map:
423 
424 15 14 13 12  11 10  9  8   7  6  5  4   3  2  1  0
425 --------------------------------------------------
426  x  x  x  x   x  x  x  x   x  x  x  x   x  x  x  x	0000-BFFF	48K DRAM
427 
428  0  0  0  x   x  x  x  x   x  x  x  x   x  x  x  x	0000-1FFF	8K ROM
429  0  0  1  x   x  x  x  x   x  x  x  x   x  x  x  x	2000-3FFF	8K ROM
430  0  1  0  x   x  x  x  x   x  x  x  x   x  x  x  x	4000-5FFF	8K ROM
431  0  1  1  x   x  x  x  x   x  x  x  x   x  x  x  x	6000-7FFF	8K ROM
432 
433  1  0  0  0   x  x  x  x   x  x  x  x   x  x  x  x	8000-8FFF	EN_COLOR* (PAGE3 only)
434 
435  0  x  x  x   x  x  x  x   x  x  x  x   x  x  x  x	0000-7FFF	OE_DRAM* (PAGE0 and read only) or:
436  1  0  x  x   x  x  x  x   x  x  x  x   x  x  x  x	9000-BFFF	OE_DRAM* (!EN COLOR and read only)
437 
438  1  1  0  0   x  x  x  x   x  x  x  x   x  x  x  x	C000-CFFF	I/O:
439  1  1  0  0   0  x  x  x   x  x  x  x   x  x  x  x	C000-C7FF	MAP_EN*
440  1  1  0  0   1  0  0  0   0  x  x  x   x  x  x  x	C800-C87F	CS_PAGE
441  1  1  0  0   1  0  0  0   1  x  x  x   x  x  x  x	C880-C87F	CS_INT* (blitter)
442  1  1  0  0   1  0  0  1   0  x  x  x   x  x  x  x	C900-C97F	CS_WDOG* (data = 0x14)
443  1  1  0  0   1  0  0  1   1  x  x  x   x  x  x  x	C980-C9FF	CS_PIA
444  1  1  0  0   1  0  0  1   1  x  x  x   0  0  x  x	C980-C983	PIA IC5
445  1  1  0  0   1  0  0  1   1  x  x  x   0  1  x  x	C984-C987	PIA IC6
446  1  1  0  0   1  0  0  1   1  x  x  x   1  1  x  x	C98C		7 segment LED
447 
448  1  1  0  0   1  0  1  1   0  0  0  x   x  x  x  x	CB00-CB1F	CK_FG
449  1  1  0  0   1  0  1  1   0  0  1  x   x  x  x  x	CB20-CB3F	CK_BG
450  1  1  0  0   1  0  1  1   0  1  0  x   x  x  x  x	CB40-CB5F	CK_SCL
451  1  1  0  0   1  0  1  1   0  1  1  x   x  x  x  x	CB60-CB7F	CK_SCH
452  1  1  0  0   1  0  1  1   1  0  0  x   x  x  x  x	CB80-CB9F	FLIP clk
453  1  1  0  0   1  0  1  1   1  0  1  x   x  x  x  x	CBA0-CBBF	DMA_WRINH clk
454 
455  1  1  0  0   1  0  1  1   1  1  1  0   x  x  x  x	CBE0-CBEF	EN VPOS*
456 
457  1  1  0  0   1  1  0  0   x  x  x  x   x  x  x  x	CC00-CCFF	1Kx4 CMOS RAM MEM_PROT protected
458  1  1  0  0   1  1  x  x   x  x  x  x   x  x  x  x	CD00-CFFF	          not MEM_PROT protected
459 
460  Mystic Marathon/Inferno:
461  1  1  0  1   0  x  x  x   x  x  x  x   x  x  x  x	D000-D7FF	SRAM0*
462  1  1  0  1   1  x  x  x   x  x  x  x   x  x  x  x	D800-DFFF	SRAM1*
463  1  1  1  0   x  x  x  x   x  x  x  x   x  x  x  x	E000-EFFF	EXXX* 4K ROM
464  1  1  1  1   x  x  x  x   x  x  x  x   x  x  x  x	F000-FFFF	FXXX* 4K ROM
465 
466  Turkey Shoot/Joust2:
467  1  1  0  1   x  x  x  x   x  x  x  x   x  x  x  x	D000-DFFF	DXXX* 4K ROM
468  1  1  1  0   x  x  x  x   x  x  x  x   x  x  x  x	E000-EFFF	EXXX* 4K ROM
469  1  1  1  1   x  x  x  x   x  x  x  x   x  x  x  x	F000-FFFF	FXXX* 4K ROM
470 
471 6802/6808 Sound
472 
473  0  0  0  x   x  x  x  x   0  x  x  x   x  x  x  x	0000-007F	128 bytes RAM
474  0  0  1  x   x  x  x  x   x  x  x  x   x  x  x  x	2000-3FFF	CS PIA IC4
475  1  1  1  x   x  x  x  x   x  x  x  x   x  x  x  x	E000-FFFF	8K ROM
476 
477 ***************************************************************************/
478 
479 #include "driver.h"
480 #include "machine/6821pia.h"
481 #include "sndhrdw/williams.h"
482 #include "vidhrdw/generic.h"
483 
484 
485 /**** local stuff ****/
486 
487 static UINT16 cmos_base;
488 static UINT16 cmos_length;
489 
490 
491 
492 /**** from machine/williams.h ****/
493 
494 /* Generic old-Williams PIA interfaces */
495 extern struct pia6821_interface williams_pia_0_intf;
496 extern struct pia6821_interface williams_muxed_pia_0_intf;
497 extern struct pia6821_interface williams_dual_muxed_pia_0_intf;
498 extern struct pia6821_interface williams_49way_pia_0_intf;
499 extern struct pia6821_interface williams_pia_1_intf;
500 extern struct pia6821_interface williams_snd_pia_intf;
501 
502 /* Game-specific old-Williams PIA interfaces */
503 extern struct pia6821_interface defender_pia_0_intf;
504 extern struct pia6821_interface stargate_pia_0_intf;
505 extern struct pia6821_interface sinistar_snd_pia_intf;
506 
507 /* Generic later-Williams PIA interfaces */
508 extern struct pia6821_interface williams2_muxed_pia_0_intf;
509 extern struct pia6821_interface williams2_pia_1_intf;
510 extern struct pia6821_interface williams2_snd_pia_intf;
511 
512 /* Game-specific later-Williams PIA interfaces */
513 extern struct pia6821_interface mysticm_pia_0_intf;
514 extern struct pia6821_interface tshoot_pia_0_intf;
515 extern struct pia6821_interface tshoot_snd_pia_intf;
516 extern struct pia6821_interface joust2_pia_1_intf;
517 
518 /* banking variables */
519 extern UINT8 *defender_bank_base;
520 extern const UINT32 *defender_bank_list;
521 extern UINT8 *williams_bank_base;
522 
523 /* initialization */
524 void defender_init_machine(void);
525 void williams_init_machine(void);
526 void williams2_init_machine(void);
527 void joust2_init_machine(void);
528 
529 /* banking */
530 WRITE_HANDLER( williams_vram_select_w );
531 WRITE_HANDLER( defender_bank_select_w );
532 WRITE_HANDLER( blaster_bank_select_w );
533 WRITE_HANDLER( blaster_vram_select_w );
534 WRITE_HANDLER( williams2_bank_select_w );
535 
536 /* misc */
537 WRITE_HANDLER( williams2_7segment_w );
538 
539 /* Mayday protection */
540 extern UINT8 *mayday_protection;
541 READ_HANDLER( mayday_protection_r );
542 
543 
544 
545 /**** from vidhrdw/williams.h ****/
546 
547 /* blitter variables */
548 extern UINT8 *williams_blitterram;
549 extern UINT8 williams_blitter_xor;
550 extern UINT8 williams_blitter_remap;
551 extern UINT8 williams_blitter_clip;
552 
553 /* tilemap variables */
554 extern UINT8 williams2_tilemap_mask;
555 extern const UINT8 *williams2_row_to_palette;
556 extern UINT8 williams2_M7_flip;
557 extern INT8  williams2_videoshift;
558 extern UINT8 williams2_special_bg_color;
559 
560 /* later-Williams video control variables */
561 extern UINT8 *williams2_blit_inhibit;
562 extern UINT8 *williams2_xscroll_low;
563 extern UINT8 *williams2_xscroll_high;
564 
565 /* Blaster extra variables */
566 extern UINT8 *blaster_color_zero_table;
567 extern UINT8 *blaster_color_zero_flags;
568 extern UINT8 *blaster_video_bits;
569 
570 
571 WRITE_HANDLER( defender_videoram_w );
572 WRITE_HANDLER( williams_videoram_w );
573 WRITE_HANDLER( williams2_videoram_w );
574 WRITE_HANDLER( williams_blitter_w );
575 WRITE_HANDLER( blaster_remap_select_w );
576 WRITE_HANDLER( blaster_video_bits_w );
577 READ_HANDLER( williams_video_counter_r );
578 
579 
580 int williams_vh_start(void);
581 void williams_vh_stop(void);
582 void williams_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
583 
584 int blaster_vh_start(void);
585 void blaster_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
586 
587 int williams2_vh_start(void);
588 void williams2_vh_stop(void);
589 
590 WRITE_HANDLER( williams2_fg_select_w );
591 WRITE_HANDLER( williams2_bg_select_w );
592 
593 
594 
595 /**** configuration macros ****/
596 
597 #define CONFIGURE_CMOS(a,l) \
598 	cmos_base = a;\
599 	cmos_length = l
600 
601 #define CONFIGURE_BLITTER(x,r,c) \
602 	williams_blitter_xor = x;\
603 	williams_blitter_remap = r;\
604 	williams_blitter_clip = c
605 
606 #define CONFIGURE_TILEMAP(m,p,f,s,b) \
607 	williams2_tilemap_mask = m;\
608 	williams2_row_to_palette = p;\
609 	williams2_M7_flip = (f) ? 0x80 : 0x00;\
610 	williams2_videoshift = s;\
611 	williams2_special_bg_color = b
612 
613 #define CONFIGURE_PIAS(a,b,c) \
614 	pia_unconfig();\
615 	pia_config(0, PIA_STANDARD_ORDERING | PIA_8BIT, &a);\
616 	pia_config(1, PIA_STANDARD_ORDERING | PIA_8BIT, &b);\
617 	pia_config(2, PIA_STANDARD_ORDERING | PIA_8BIT, &c)
618 
619 
620 
nvram_handler(void * file,int read_or_write)621 static void nvram_handler(void *file,int read_or_write)
622 {
623 	UINT8 *ram = memory_region(REGION_CPU1);
624 
625 	if (read_or_write)
626 		osd_fwrite(file,&ram[cmos_base],cmos_length);
627 	else
628 	{
629 		if (file)
630 			osd_fread(file,&ram[cmos_base],cmos_length);
631 		else
632 			memset(&ram[cmos_base],0,cmos_length);
633 	}
634 }
635 
636 
637 
638 /*************************************
639  *
640  *	Defender memory handlers
641  *
642  *************************************/
643 
644 static struct MemoryReadAddress defender_readmem[] =
645 {
646 	{ 0x0000, 0x97ff, MRA_BANK1 },
647 	{ 0x9800, 0xbfff, MRA_RAM },
648 	{ 0xc000, 0xcfff, MRA_BANK2 },
649 	{ 0xd000, 0xffff, MRA_ROM },
650 	{ -1 }  /* end of table */
651 };
652 
653 
654 static struct MemoryWriteAddress defender_writemem[] =
655 {
656 	{ 0x0000, 0x97ff, williams_videoram_w, &videoram, &videoram_size },
657 	{ 0x9800, 0xbfff, MWA_RAM },
658 	{ 0xc000, 0xcfff, MWA_BANK2, &defender_bank_base },
659 	{ 0xc000, 0xc00f, MWA_RAM, &paletteram },
660 	{ 0xd000, 0xdfff, defender_bank_select_w },
661 	{ 0xe000, 0xffff, MWA_ROM },
662 	{ -1 }  /* end of table */
663 };
664 
665 
666 
667 /*************************************
668  *
669  *	General Williams memory handlers
670  *
671  *************************************/
672 
673 static struct MemoryReadAddress williams_readmem[] =
674 {
675 	{ 0x0000, 0x97ff, MRA_BANK1 },
676 	{ 0x9800, 0xbfff, MRA_RAM },
677 	{ 0xc804, 0xc807, pia_0_r },
678 	{ 0xc80c, 0xc80f, pia_1_r },
679 	{ 0xcb00, 0xcb00, williams_video_counter_r },
680 	{ 0xcc00, 0xcfff, MRA_RAM },
681 	{ 0xd000, 0xffff, MRA_ROM },
682 	{ -1 }  /* end of table */
683 };
684 
685 
686 static struct MemoryWriteAddress williams_writemem[] =
687 {
688 	{ 0x0000, 0x97ff, williams_videoram_w, &williams_bank_base, &videoram_size },
689 	{ 0x9800, 0xbfff, MWA_RAM },
690 	{ 0xc000, 0xc00f, paletteram_BBGGGRRR_w, &paletteram },
691 	{ 0xc804, 0xc807, pia_0_w },
692 	{ 0xc80c, 0xc80f, pia_1_w },
693 	{ 0xc900, 0xc900, williams_vram_select_w },
694 	{ 0xca00, 0xca07, williams_blitter_w, &williams_blitterram },
695 	{ 0xcbff, 0xcbff, watchdog_reset_w },
696 	{ 0xcc00, 0xcfff, MWA_RAM },
697 	{ 0xd000, 0xffff, MWA_ROM },
698 	{ -1 }  /* end of table */
699 };
700 
701 
702 
703 /*************************************
704  *
705  *	Blaster memory handlers
706  *
707  *************************************/
708 
709 static struct MemoryReadAddress blaster_readmem[] =
710 {
711 	{ 0x0000, 0x3fff, MRA_BANK1 },
712 	{ 0x4000, 0x96ff, MRA_BANK2 },
713 	{ 0x9700, 0xbfff, MRA_RAM },
714 	{ 0xc804, 0xc807, pia_0_r },
715 	{ 0xc80c, 0xc80f, pia_1_r },
716 	{ 0xcb00, 0xcb00, williams_video_counter_r },
717 	{ 0xcc00, 0xcfff, MRA_RAM },
718 	{ 0xd000, 0xffff, MRA_ROM },
719 	{ -1 }  /* end of table */
720 };
721 
722 
723 static struct MemoryWriteAddress blaster_writemem[] =
724 {
725 	{ 0x0000, 0x96ff, williams_videoram_w, &williams_bank_base, &videoram_size },
726 	{ 0x9700, 0xbaff, MWA_RAM },
727 	{ 0xbb00, 0xbbff, MWA_RAM, &blaster_color_zero_table },
728 	{ 0xbc00, 0xbcff, MWA_RAM, &blaster_color_zero_flags },
729 	{ 0xbd00, 0xbfff, MWA_RAM },
730 	{ 0xc000, 0xc00f, paletteram_BBGGGRRR_w, &paletteram },
731 	{ 0xc804, 0xc807, pia_0_w },
732 	{ 0xc80c, 0xc80f, pia_1_w },
733 	{ 0xc900, 0xc900, blaster_vram_select_w },
734 	{ 0xc940, 0xc940, blaster_remap_select_w },
735 	{ 0xc980, 0xc980, blaster_bank_select_w },
736 	{ 0xc9C0, 0xc9c0, blaster_video_bits_w, &blaster_video_bits },
737 	{ 0xca00, 0xca07, williams_blitter_w, &williams_blitterram },
738 	{ 0xcbff, 0xcbff, watchdog_reset_w },
739 	{ 0xcc00, 0xcfff, MWA_RAM },
740 	{ 0xd000, 0xffff, MWA_ROM },
741 	{ -1 }  /* end of table */
742 };
743 
744 
745 
746 /*************************************
747  *
748  *	Later Williams memory handlers
749  *
750  *************************************/
751 
752 static struct MemoryReadAddress williams2_readmem[] =
753 {
754 	{ 0x0000, 0x7fff, MRA_BANK1 },
755 	{ 0x8000, 0x87ff, MRA_BANK2 },
756 	{ 0x8800, 0x8fff, MRA_BANK3 },
757 	{ 0x9000, 0xbfff, MRA_RAM },
758 	{ 0xc000, 0xc7ff, MRA_RAM },
759 	{ 0xc980, 0xc983, pia_1_r },
760 	{ 0xc984, 0xc987, pia_0_r },
761 	{ 0xcbe0, 0xcbe0, williams_video_counter_r },
762 	{ 0xcc00, 0xcfff, MRA_RAM },
763 	{ 0xd000, 0xffff, MRA_ROM },
764 	{ -1 }	/* end of table */
765 };
766 
767 
768 static struct MemoryWriteAddress williams2_writemem[] =
769 {
770 	{ 0x0000, 0x8fff, williams2_videoram_w, &videoram, &videoram_size },
771 	{ 0x9000, 0xbfff, MWA_RAM },
772 	{ 0xc000, 0xc7ff, MWA_RAM },
773 	{ 0xc800, 0xc800, williams2_bank_select_w },
774 	{ 0xc880, 0xc887, williams_blitter_w, &williams_blitterram },
775 	{ 0xc900, 0xc900, watchdog_reset_w },
776 	{ 0xc980, 0xc983, pia_1_w },
777 	{ 0xc984, 0xc987, pia_0_w },
778 	{ 0xc98c, 0xc98c, williams2_7segment_w },
779 	{ 0xcb00, 0xcb00, williams2_fg_select_w },
780 	{ 0xcb20, 0xcb20, williams2_bg_select_w },
781 	{ 0xcb40, 0xcb40, MWA_RAM, &williams2_xscroll_low },
782 	{ 0xcb60, 0xcb60, MWA_RAM, &williams2_xscroll_high },
783 	{ 0xcb80, 0xcb80, MWA_RAM },
784 	{ 0xcba0, 0xcba0, MWA_RAM, &williams2_blit_inhibit },
785 	{ 0xcc00, 0xcfff, MWA_RAM },
786 	{ 0xd000, 0xffff, MWA_ROM },
787 	{ -1 }	/* end of table */
788 };
789 
790 
791 
792 /*************************************
793  *
794  *	Sound board memory handlers
795  *
796  *************************************/
797 
798 static struct MemoryReadAddress sound_readmem[] =
799 {
800 	{ 0x0000, 0x007f, MRA_RAM },
801 	{ 0x0400, 0x0403, pia_2_r },
802 	{ 0x8400, 0x8403, pia_2_r },	/* used by Colony 7, perhaps others? */
803 	{ 0xb000, 0xffff, MRA_ROM },	/* most games start at $F000; Sinistar starts at $B000 */
804 	{ -1 }  /* end of table */
805 };
806 
807 
808 static struct MemoryWriteAddress sound_writemem[] =
809 {
810 	{ 0x0000, 0x007f, MWA_RAM },
811 	{ 0x0400, 0x0403, pia_2_w },
812 	{ 0x8400, 0x8403, pia_2_w },	/* used by Colony 7, perhaps others? */
813 	{ 0xb000, 0xffff, MWA_ROM },	/* most games start at $F000; Sinistar starts at $B000 */
814 	{ -1 }  /* end of table */
815 };
816 
817 
818 
819 /*************************************
820  *
821  *	Later sound board memory handlers
822  *
823  *************************************/
824 
825 static struct MemoryReadAddress williams2_sound_readmem[] =
826 {
827 	{ 0x0000, 0x00ff, MRA_RAM },
828 	{ 0x2000, 0x2003, pia_2_r },
829 	{ 0xe000, 0xffff, MRA_ROM },
830 	{ -1 }	/* end of table */
831 };
832 
833 
834 static struct MemoryWriteAddress williams2_sound_writemem[] =
835 {
836 	{ 0x0000, 0x00ff, MWA_RAM },
837 	{ 0x2000, 0x2003, pia_2_w },
838 	{ 0xe000, 0xffff, MWA_ROM },
839 	{ -1 }	/* end of table */
840 };
841 
842 
843 
844 /*************************************
845  *
846  *	Port definitions
847  *
848  *************************************/
849 
850 INPUT_PORTS_START( defender )
851 	PORT_START      /* IN0 */
852 	PORT_BITX(0x01, IP_ACTIVE_HIGH, IPT_BUTTON1, "Fire", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
853 	PORT_BITX(0x02, IP_ACTIVE_HIGH, IPT_BUTTON2, "Thrust", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
854 	PORT_BITX(0x04, IP_ACTIVE_HIGH, IPT_BUTTON3, "Smart Bomb", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
855 	PORT_BITX(0x08, IP_ACTIVE_HIGH, IPT_BUTTON4, "Hyperspace", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
856 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
857 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 )
858 	PORT_BITX(0x40, IP_ACTIVE_HIGH, IPT_BUTTON6, "Reverse", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
859 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_8WAY )
860 
861 	PORT_START      /* IN1 */
862 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_8WAY )
863 	PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
864 
865 	PORT_START      /* IN2 */
866 	PORT_BITX(0x01, IP_ACTIVE_HIGH, 0, "Auto Up", KEYCODE_F1, IP_JOY_NONE )
867 	PORT_BITX(0x02, IP_ACTIVE_HIGH, 0, "Advance", KEYCODE_F2, IP_JOY_NONE )
868 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 )
869 	PORT_BITX(0x08, IP_ACTIVE_HIGH, 0, "High Score Reset", KEYCODE_7, IP_JOY_NONE )
870 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN1 )
871 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 )
872 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT )
873 
874 	PORT_START      /* IN3 - fake port for better joystick control */
875 	/* This fake port is handled via defender_input_port_1 */
876 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY )
877 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_8WAY )
878 INPUT_PORTS_END
879 
880 INPUT_PORTS_START( colony7 )
881 	PORT_START	/* IN0 */
882 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
883 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
884 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
885 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
886 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
887 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 )
888 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 )
889 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 )
890 
891 	PORT_START	/* IN1 */
892 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 )
893 	PORT_BIT( 0xfe, IP_ACTIVE_HIGH, IPT_UNKNOWN )
894 
895 	PORT_START	/* IN2 */
896 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
897 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
898 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
899 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
900 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN1 )
901 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 )
902 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
903 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
904 INPUT_PORTS_END
905 
906 
907 INPUT_PORTS_START( stargate )
908 	PORT_START      /* IN0 */
909 	PORT_BITX(0x01, IP_ACTIVE_HIGH, IPT_BUTTON1, "Fire", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
910 	PORT_BITX(0x02, IP_ACTIVE_HIGH, IPT_BUTTON2, "Thrust", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
911 	PORT_BITX(0x04, IP_ACTIVE_HIGH, IPT_BUTTON3, "Smart Bomb", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
912 	PORT_BITX(0x08, IP_ACTIVE_HIGH, IPT_BUTTON6, "Hyperspace", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
913 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
914 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 )
915 	PORT_BITX(0x40, IP_ACTIVE_HIGH, IPT_BUTTON4, "Reverse", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
916 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_8WAY )
917 
918 	PORT_START      /* IN1 */
919 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_8WAY )
920 	PORT_BITX(0x02, IP_ACTIVE_HIGH, IPT_BUTTON5, "Inviso", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
921 	PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNKNOWN )
922 
923 	PORT_START      /* IN2 */
924 	PORT_BITX(0x01, IP_ACTIVE_HIGH, 0, "Auto Up", KEYCODE_F1, IP_JOY_NONE )
925 	PORT_BITX(0x02, IP_ACTIVE_HIGH, 0, "Advance", KEYCODE_F2, IP_JOY_NONE )
926 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 )
927 	PORT_BITX(0x08, IP_ACTIVE_HIGH, 0, "High Score Reset", KEYCODE_7, IP_JOY_NONE )
928 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN1 )
929 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 )
930 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT )
931 
932 	PORT_START      /* IN3 - fake port for better joystick control */
933 	/* This fake port is handled via stargate_input_port_0 */
934 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY )
935 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_8WAY )
936 INPUT_PORTS_END
937 
938 
939 INPUT_PORTS_START( joust )
940 	PORT_START      /* IN0 */
941 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_2WAY | IPF_PLAYER2 )
942 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_PLAYER2 )
943 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER2 )
944 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
945 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
946 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 )
947 	PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )
948 
949 	PORT_START      /* IN1 */
950 	PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
951 
952 	PORT_START      /* IN2 */
953 	PORT_BITX(0x01, IP_ACTIVE_HIGH, 0, "Auto Up", KEYCODE_F1, IP_JOY_NONE )
954 	PORT_BITX(0x02, IP_ACTIVE_HIGH, 0, "Advance", KEYCODE_F2, IP_JOY_NONE )
955 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 )
956 	PORT_BITX(0x08, IP_ACTIVE_HIGH, 0, "High Score Reset", KEYCODE_7, IP_JOY_NONE )
957 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN1 )
958 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 )
959 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT )
960 
961 	PORT_START      /* IN3 (muxed with IN0) */
962 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_2WAY | IPF_PLAYER1 )
963 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_PLAYER1 )
964 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER1 )
965 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
966 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
967 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 )
968 	PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )
969 INPUT_PORTS_END
970 
971 
972 INPUT_PORTS_START( robotron )
973 	PORT_START      /* IN0 */
974 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP )
975 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN )
976 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_LEFT )
977 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_RIGHT )
978 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START1 )
979 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START2 )
980 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP )
981 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN )
982 
983 	PORT_START      /* IN1 */
984 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_LEFT )
985 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_RIGHT )
986 	PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNKNOWN )
987 
988 	PORT_START      /* IN2 */
989 	PORT_BITX(0x01, IP_ACTIVE_HIGH, 0, "Auto Up", KEYCODE_F1, IP_JOY_NONE )
990 	PORT_BITX(0x02, IP_ACTIVE_HIGH, 0, "Advance", KEYCODE_F2, IP_JOY_NONE )
991 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 )
992 	PORT_BITX(0x08, IP_ACTIVE_HIGH, 0, "High Score Reset", KEYCODE_7, IP_JOY_NONE )
993 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN1 )
994 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 )
995 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT )
996 INPUT_PORTS_END
997 
998 
999 INPUT_PORTS_START( bubbles )
1000 	PORT_START      /* IN0 */
1001 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
1002 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
1003 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
1004 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
1005 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
1006 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 )
1007 
1008 	PORT_START      /* IN1 */
1009 	PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1010 
1011 	PORT_START      /* IN2 */
1012 	PORT_BITX(0x01, IP_ACTIVE_HIGH, 0, "Auto Up", KEYCODE_F1, IP_JOY_NONE )
1013 	PORT_BITX(0x02, IP_ACTIVE_HIGH, 0, "Advance", KEYCODE_F2, IP_JOY_NONE )
1014 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 )
1015 	PORT_BITX(0x08, IP_ACTIVE_HIGH, 0, "High Score Reset", KEYCODE_7, IP_JOY_NONE )
1016 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN1 )
1017 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 )
1018 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT )
1019 INPUT_PORTS_END
1020 
1021 
1022 INPUT_PORTS_START( splat )
1023 	PORT_START      /* IN0 */
1024 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP | IPF_8WAY | IPF_PLAYER2 )
1025 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN | IPF_8WAY | IPF_PLAYER2 )
1026 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_LEFT | IPF_8WAY | IPF_PLAYER2 )
1027 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_RIGHT | IPF_8WAY | IPF_PLAYER2 )
1028 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START1 )
1029 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START2 )
1030 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP | IPF_8WAY | IPF_PLAYER2 )
1031 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN | IPF_8WAY | IPF_PLAYER2 )
1032 
1033 	PORT_START      /* IN2 */
1034 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_LEFT | IPF_8WAY | IPF_PLAYER2 )
1035 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_RIGHT | IPF_8WAY | IPF_PLAYER2 )
1036 	PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1037 
1038 	PORT_START      /* IN4 */
1039 	PORT_BITX(0x01, IP_ACTIVE_HIGH, 0, "Auto Up", KEYCODE_F1, IP_JOY_NONE )
1040 	PORT_BITX(0x02, IP_ACTIVE_HIGH, 0, "Advance", KEYCODE_F2, IP_JOY_NONE )
1041 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 )
1042 	PORT_BITX(0x08, IP_ACTIVE_HIGH, 0, "High Score Reset", KEYCODE_7, IP_JOY_NONE )
1043 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN1 )
1044 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 )
1045 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT )
1046 
1047 	PORT_START      /* IN3 */
1048 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_UP | IPF_8WAY | IPF_PLAYER1 )
1049 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN | IPF_8WAY | IPF_PLAYER1 )
1050 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_LEFT | IPF_8WAY | IPF_PLAYER1 )
1051 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_RIGHT | IPF_8WAY | IPF_PLAYER1 )
1052 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START1 )
1053 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START2 )
1054 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_UP | IPF_8WAY | IPF_PLAYER1 )
1055 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_DOWN | IPF_8WAY | IPF_PLAYER1 )
1056 
1057 	PORT_START      /* IN4 */
1058 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_LEFT | IPF_8WAY | IPF_PLAYER1 )
1059 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICKRIGHT_RIGHT | IPF_8WAY | IPF_PLAYER1 )
1060 	PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1061 INPUT_PORTS_END
1062 
1063 
1064 INPUT_PORTS_START( sinistar )
1065 	PORT_START      /* IN0 */
1066 	/* pseudo analog joystick, see below */
1067 
1068 	PORT_START      /* IN1 */
1069 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 )
1070 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 )
1071 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START1 )
1072 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START2 )
1073 
1074 	PORT_START      /* IN2 */
1075 	PORT_BITX(0x01, IP_ACTIVE_HIGH, 0, "Auto Up", KEYCODE_F1, IP_JOY_NONE )
1076 	PORT_BITX(0x02, IP_ACTIVE_HIGH, 0, "Advance", KEYCODE_F2, IP_JOY_NONE )
1077 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 )
1078 	PORT_BITX(0x08, IP_ACTIVE_HIGH, 0, "High Score Reset", KEYCODE_7, IP_JOY_NONE )
1079 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN1 )
1080 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 )
1081 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT )
1082 
1083 	PORT_START	/* fake, converted by sinistar_input_port_0() */
1084 	PORT_ANALOG( 0xff, 0x38, IPT_AD_STICK_X, 100, 10, 0x00, 0x6f )
1085 
1086 	PORT_START	/* fake, converted by sinistar_input_port_0() */
1087 	PORT_ANALOG( 0xff, 0x38, IPT_AD_STICK_Y | IPF_REVERSE, 100, 10, 0x00, 0x6f )
1088 INPUT_PORTS_END
1089 
1090 
1091 INPUT_PORTS_START( blaster )
1092 	PORT_START      /* IN0 */
1093 	/* pseudo analog joystick, see below */
1094 
1095 	PORT_START      /* IN1 */
1096 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 )
1097 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 )
1098 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 )
1099 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1100 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START1 )
1101 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START2 )
1102 	PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1103 
1104 	PORT_START      /* IN2 */
1105 	PORT_BITX(0x01, IP_ACTIVE_HIGH, 0, "Auto Up", KEYCODE_F1, IP_JOY_NONE )
1106 	PORT_BITX(0x02, IP_ACTIVE_HIGH, 0, "Advance", KEYCODE_F2, IP_JOY_NONE )
1107 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 )
1108 	PORT_BITX(0x08, IP_ACTIVE_HIGH, 0, "High Score Reset", KEYCODE_7, IP_JOY_NONE )
1109 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN1 )
1110 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 )
1111 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT )
1112 
1113 	PORT_START	/* fake, converted by sinistar_input_port_0() */
1114 	PORT_ANALOG( 0xff, 0x38, IPT_AD_STICK_X, 100, 10, 0x00, 0x6f )
1115 
1116 	PORT_START	/* fake, converted by sinistar_input_port_0() */
1117 	PORT_ANALOG( 0xff, 0x38, IPT_AD_STICK_Y | IPF_REVERSE, 100, 10, 0x00, 0x6f )
1118 INPUT_PORTS_END
1119 
1120 
1121 INPUT_PORTS_START( mysticm )
1122 	PORT_START	/* IN1 */
1123 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
1124 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
1125 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
1126 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
1127 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START1 )
1128 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START2 )
1129 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) /* Key */
1130 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 )
1131 
1132 	PORT_START
1133 	PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
1134 
1135 	PORT_START	/* IN0 */
1136 	PORT_BITX(0x01, IP_ACTIVE_HIGH, 0, "Auto Up", KEYCODE_F1, IP_JOY_NONE )
1137 	PORT_BITX(0x02, IP_ACTIVE_HIGH, 0, "Advance", KEYCODE_F2, IP_JOY_NONE )
1138 	PORT_BITX(0x04, IP_ACTIVE_HIGH, 0, "High Score Reset", KEYCODE_7, IP_JOY_NONE )
1139 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 )
1140 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN2 )
1141 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN3 )
1142 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT )
1143 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
1144 INPUT_PORTS_END
1145 
1146 
1147 INPUT_PORTS_START( tshoot )
1148 	PORT_START	/* IN0 (muxed with IN3)*/
1149 	PORT_ANALOG(0x3F, 0x20, IPT_AD_STICK_Y, 25, 10, 0, 0x3F)
1150 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1151 	PORT_BIT( 0x80, IP_ACTIVE_LOW,  IPT_BUTTON1 )
1152 
1153 	PORT_START	/* IN1 */
1154 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 )
1155 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 )
1156 	PORT_BIT( 0x3C, IP_ACTIVE_HIGH, IPT_UNUSED ) /* 0011-1100 output */
1157 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START1 )
1158 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 )
1159 
1160 	PORT_START	/* IN2 */
1161 	PORT_BITX(0x01, IP_ACTIVE_HIGH, 0, "Auto Up", KEYCODE_F1, IP_JOY_NONE )
1162 	PORT_BITX(0x02, IP_ACTIVE_HIGH, 0, "Advance", KEYCODE_F2, IP_JOY_NONE )
1163 	PORT_BITX(0x04, IP_ACTIVE_HIGH, 0, "High Score Reset", KEYCODE_7, IP_JOY_NONE )
1164 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 )
1165 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN2 )
1166 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN3 )
1167 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT )
1168 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
1169 
1170 	PORT_START	/* IN3 (muxed with IN0) */
1171    	PORT_ANALOG(0x3F, 0x20, IPT_AD_STICK_X, 25, 10, 0, 0x3F)
1172 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1173 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
1174 INPUT_PORTS_END
1175 
1176 
1177 INPUT_PORTS_START( inferno )
1178 	PORT_START	/* IN0 (muxed with IN3) */
1179 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPF_PLAYER1 | IPT_JOYSTICKLEFT_UP )
1180 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPF_PLAYER1 | IPT_JOYSTICKLEFT_LEFT )
1181 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPF_PLAYER1 | IPT_JOYSTICKLEFT_RIGHT )
1182 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPF_PLAYER1 | IPT_JOYSTICKLEFT_DOWN )
1183 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPF_PLAYER1 | IPT_JOYSTICKRIGHT_UP )
1184 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPF_PLAYER1 | IPT_JOYSTICKRIGHT_LEFT )
1185 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPF_PLAYER1 | IPT_JOYSTICKRIGHT_RIGHT )
1186 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPF_PLAYER1 | IPT_JOYSTICKRIGHT_DOWN )
1187 
1188 	PORT_START /* IN1 */
1189 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPF_PLAYER1 | IPT_BUTTON6 )
1190 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPF_PLAYER2 | IPT_BUTTON6 )
1191 	PORT_BIT( 0x3C, IP_ACTIVE_HIGH, IPT_UNUSED )
1192 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START1 )
1193 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 )
1194 
1195 	PORT_START	/* IN2 */
1196 	PORT_BITX(0x01, IP_ACTIVE_HIGH, 0, "Auto Up", KEYCODE_F1, IP_JOY_NONE )
1197 	PORT_BITX(0x02, IP_ACTIVE_HIGH, 0, "Advance", KEYCODE_F2, IP_JOY_NONE )
1198 	PORT_BITX(0x04, IP_ACTIVE_HIGH, 0, "High Score Reset", KEYCODE_7, IP_JOY_NONE )
1199 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 )
1200 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN2 )
1201 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN3 )
1202 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT )
1203 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
1204 
1205 	PORT_START	/* IN3 (muxed with IN0) */
1206 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPF_PLAYER2 | IPT_JOYSTICKLEFT_UP )
1207 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPF_PLAYER2 | IPT_JOYSTICKLEFT_LEFT )
1208 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPF_PLAYER2 | IPT_JOYSTICKLEFT_RIGHT )
1209 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPF_PLAYER2 | IPT_JOYSTICKLEFT_DOWN )
1210 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPF_PLAYER2 | IPT_JOYSTICKRIGHT_UP )
1211 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPF_PLAYER2 | IPT_JOYSTICKRIGHT_LEFT )
1212 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPF_PLAYER2 | IPT_JOYSTICKRIGHT_RIGHT )
1213 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPF_PLAYER2 | IPT_JOYSTICKRIGHT_DOWN )
1214 INPUT_PORTS_END
1215 
1216 
1217 INPUT_PORTS_START( joust2 )
1218 	PORT_START      /* IN0 */
1219 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_2WAY | IPF_PLAYER1 )
1220 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_PLAYER1 )
1221 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
1222 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
1223 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
1224 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
1225 	PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
1226 
1227 	PORT_START      /* IN1 */
1228 	PORT_BIT( 0xFF, IP_ACTIVE_HIGH, IPT_UNUSED )
1229 
1230 	PORT_START	/* IN2 */
1231 	PORT_BITX(0x01, IP_ACTIVE_HIGH, 0, "Auto Up", KEYCODE_F1, IP_JOY_NONE )
1232 	PORT_BITX(0x02, IP_ACTIVE_HIGH, 0, "Advance", KEYCODE_F2, IP_JOY_NONE )
1233 	PORT_BITX(0x04, IP_ACTIVE_HIGH, 0, "High Score Reset", KEYCODE_7, IP_JOY_NONE )
1234 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 )
1235 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN2 )
1236 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN3 )
1237 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT )
1238 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
1239 
1240 	PORT_START /* IN3 (muxed with IN0) */
1241 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_2WAY | IPF_PLAYER2 )
1242 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_PLAYER2 )
1243 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
1244 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
1245 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
1246 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
1247 	PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
1248 INPUT_PORTS_END
1249 
1250 
1251 
1252 /*************************************
1253  *
1254  *	Graphics definitions
1255  *
1256  *************************************/
1257 
1258 static struct GfxLayout williams2_layout =
1259 {
1260 	24, 16,
1261 	256,
1262 	4,
1263 	{ 0, 1, 2, 3 },
1264 	{ 0+0*8, 4+0*8, 0+0*8+0x4000*8, 4+0*8+0x4000*8, 0+0*8+0x8000*8, 4+0*8+0x8000*8,
1265 	  0+1*8, 4+1*8, 0+1*8+0x4000*8, 4+1*8+0x4000*8, 0+1*8+0x8000*8, 4+1*8+0x8000*8,
1266 	  0+2*8, 4+2*8, 0+2*8+0x4000*8, 4+2*8+0x4000*8, 0+2*8+0x8000*8, 4+2*8+0x8000*8,
1267 	  0+3*8, 4+3*8, 0+3*8+0x4000*8, 4+3*8+0x4000*8, 0+3*8+0x8000*8, 4+3*8+0x8000*8
1268 	},
1269 	{ 0*8, 4*8, 8*8, 12*8, 16*8, 20*8, 24*8, 28*8, 32*8, 36*8, 40*8, 44*8, 48*8, 52*8, 56*8, 60*8 },
1270 	4*16*8
1271 };
1272 
1273 
1274 static struct GfxDecodeInfo williams2_gfxdecodeinfo[] =
1275 {
1276 	{ REGION_GFX1, 0, &williams2_layout, 16, 8 },
1277 	{ -1 } /* end of array */
1278 };
1279 
1280 
1281 
1282 /*************************************
1283  *
1284  *	Sound definitions
1285  *
1286  *************************************/
1287 
1288 static struct DACinterface dac_interface =
1289 {
1290 	1,
1291 	{ 50 }
1292 };
1293 
1294 
1295 static struct hc55516_interface sinistar_cvsd_interface =
1296 {
1297 	1,	/* 1 chip */
1298 	{ 80 },
1299 };
1300 
1301 
1302 
1303 /*************************************
1304  *
1305  *	Machine driver
1306  *
1307  *************************************/
1308 
1309 static struct MachineDriver machine_driver_defender =
1310 {
1311 	/* basic machine hardware  */
1312 	{
1313 		{
1314 			CPU_M6809,
1315 			1000000,
1316 			defender_readmem,defender_writemem,0,0,
1317 			ignore_interrupt,1
1318 		},
1319 		{
1320 			CPU_M6808 | CPU_AUDIO_CPU,
1321 			3579000/4,
1322 			sound_readmem,sound_writemem,0,0,
1323 			ignore_interrupt,1
1324 		}
1325 	},
1326 	60, DEFAULT_60HZ_VBLANK_DURATION,
1327 	1,
1328 	defender_init_machine,
1329 
1330 	/* video hardware */
1331 	304, 256,
1332 	{ 6, 298-1, 7, 247-1 },
1333 	0,
1334 	16,16,
1335 	0,
1336 
1337 	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE | VIDEO_SUPPORTS_DIRTY,
1338 	0,
1339 	williams_vh_start,
1340 	williams_vh_stop,
1341 	williams_vh_screenrefresh,
1342 
1343 	/* sound hardware */
1344 	0,0,0,0,
1345 	{
1346 		{
1347 			SOUND_DAC,
1348 			&dac_interface
1349 		}
1350 	},
1351 
1352 	nvram_handler
1353 };
1354 
1355 
1356 static struct MachineDriver machine_driver_williams =
1357 {
1358 	/* basic machine hardware  */
1359 	{
1360 		{
1361 			CPU_M6809,
1362 			1000000,
1363 			williams_readmem,williams_writemem,0,0,
1364 			ignore_interrupt,1
1365 		},
1366 		{
1367 			CPU_M6808 | CPU_AUDIO_CPU,
1368 			3579000/4,
1369 			sound_readmem,sound_writemem,0,0,
1370 			ignore_interrupt,1
1371 		}
1372 	},
1373 	60, DEFAULT_60HZ_VBLANK_DURATION,
1374 	1,
1375 	williams_init_machine,
1376 
1377 	/* video hardware */
1378 	304, 256,
1379 	{ 6, 298-1, 7, 247-1 },
1380 	0,
1381 	16,16,
1382 	0,
1383 
1384 	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE | VIDEO_SUPPORTS_DIRTY,
1385 	0,
1386 	williams_vh_start,
1387 	williams_vh_stop,
1388 	williams_vh_screenrefresh,
1389 
1390 	/* sound hardware */
1391 	0,0,0,0,
1392 	{
1393 		{
1394 			SOUND_DAC,
1395 			&dac_interface
1396 		}
1397 	},
1398 
1399 	nvram_handler
1400 };
1401 
1402 
1403 static struct MachineDriver machine_driver_sinistar =
1404 {
1405 	/* basic machine hardware  */
1406 	{
1407 		{
1408 			CPU_M6809,
1409 			1000000,
1410 			williams_readmem,williams_writemem,0,0,
1411 			ignore_interrupt,1
1412 		},
1413 		{
1414 			CPU_M6808 | CPU_AUDIO_CPU,
1415 			3579000/4,
1416 			sound_readmem,sound_writemem,0,0,
1417 			ignore_interrupt,1
1418 		}
1419 	},
1420 	60, DEFAULT_60HZ_VBLANK_DURATION,
1421 	1,
1422 	williams_init_machine,
1423 
1424 	/* video hardware */
1425 	304, 256,
1426 	{ 6, 298-1, 7, 247-1 },
1427 	0,
1428 	16,16,
1429 	0,
1430 
1431 	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE | VIDEO_SUPPORTS_DIRTY,
1432 	0,
1433 	williams_vh_start,
1434 	williams_vh_stop,
1435 	williams_vh_screenrefresh,
1436 
1437 	/* sound hardware */
1438 	0,0,0,0,
1439 	{
1440 		{
1441 			SOUND_DAC,
1442 			&dac_interface
1443 		},
1444 		{
1445 			SOUND_HC55516,
1446 			&sinistar_cvsd_interface
1447 		}
1448 	},
1449 
1450 	nvram_handler
1451 };
1452 
1453 
1454 static struct MachineDriver machine_driver_blaster =
1455 {
1456 	/* basic machine hardware  */
1457 	{
1458 		{
1459 			CPU_M6809,
1460 			1000000,
1461 			blaster_readmem,blaster_writemem,0,0,
1462 			ignore_interrupt,1
1463 		},
1464 		{
1465 			CPU_M6808 | CPU_AUDIO_CPU,
1466 			3579000/4,
1467 			sound_readmem,sound_writemem,0,0,
1468 			ignore_interrupt,1
1469 		}
1470 	},
1471 	60, DEFAULT_60HZ_VBLANK_DURATION,
1472 	1,
1473 	williams_init_machine,
1474 
1475 	/* video hardware */
1476 	304, 256,
1477 	{ 6, 298-1, 7, 247-1 },
1478 	0,
1479 	16+256,16+256,
1480 	0,
1481 
1482 	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
1483 	0,
1484 	blaster_vh_start,
1485 	williams_vh_stop,
1486 	blaster_vh_screenrefresh,
1487 
1488 	/* sound hardware */
1489 	0,0,0,0,
1490 	{
1491 		{
1492 			SOUND_DAC,
1493 			&dac_interface
1494 		}
1495 	},
1496 
1497 	nvram_handler
1498 };
1499 
1500 
1501 static struct MachineDriver machine_driver_williams2 =
1502 {
1503 	/* basic machine hardware  */
1504 	{
1505 		{
1506 			CPU_M6809,
1507 			1000000,
1508 			williams2_readmem,williams2_writemem,0,0,
1509 			ignore_interrupt,1
1510 		},
1511 		{
1512 			CPU_M6808 | CPU_AUDIO_CPU,
1513 			3579000/4,
1514 			williams2_sound_readmem,williams2_sound_writemem,0,0,
1515 			ignore_interrupt,1
1516 		}
1517 	},
1518 	60, DEFAULT_60HZ_VBLANK_DURATION,
1519 	1,
1520 	williams2_init_machine,
1521 
1522 	/* video hardware */
1523 	288, 256,
1524 	{ 4, 288-1, 8, 248-1 },
1525 	williams2_gfxdecodeinfo,
1526 	16+8*16,16+8*16,
1527 	0,
1528 
1529 	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
1530 	0,
1531 	williams2_vh_start,
1532 	williams2_vh_stop,
1533 	williams_vh_screenrefresh,
1534 
1535 	/* sound hardware */
1536 	0,0,0,0,
1537 	{
1538 		{
1539 			SOUND_DAC,
1540 			&dac_interface
1541 		}
1542 	},
1543 
1544 	nvram_handler
1545 };
1546 
1547 
1548 static struct MachineDriver machine_driver_joust2 =
1549 {
1550 	/* basic machine hardware  */
1551 	{
1552 		{
1553 			CPU_M6809,
1554 			1000000,
1555 			williams2_readmem,williams2_writemem,0,0,
1556 			ignore_interrupt,1
1557 		},
1558 		{
1559 			CPU_M6808 | CPU_AUDIO_CPU,
1560 			3579000/4,
1561 			williams2_sound_readmem,williams2_sound_writemem,0,0,
1562 			ignore_interrupt,1
1563 		},
1564 		SOUND_CPU_WILLIAMS_CVSD
1565 	},
1566 	60, DEFAULT_60HZ_VBLANK_DURATION,
1567 	1,
1568 	joust2_init_machine,
1569 
1570 	/* video hardware */
1571 	288, 256,
1572 	{ 4, 288-1, 8, 248-1 },
1573 	williams2_gfxdecodeinfo,
1574 	16+8*16,16+8*16,
1575 	0,
1576 
1577 	VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
1578 	0,
1579 	williams2_vh_start,
1580 	williams2_vh_stop,
1581 	williams_vh_screenrefresh,
1582 
1583 	/* sound hardware */
1584 	0,0,0,0,
1585 	{
1586 		SOUND_WILLIAMS_CVSD
1587 	},
1588 
1589 	nvram_handler
1590 };
1591 
1592 
1593 
1594 /*************************************
1595  *
1596  *	Driver initialization
1597  *
1598  *************************************/
1599 
init_defender(void)1600 static void init_defender(void)
1601 {
1602 	static const UINT32 bank[8] = { 0x0c000, 0x10000, 0x11000, 0x12000, 0x0c000, 0x0c000, 0x0c000, 0x13000 };
1603 	defender_bank_list = bank;
1604 
1605 	/* CMOS configuration */
1606 	CONFIGURE_CMOS(0xc400, 0x100);
1607 
1608 	/* PIA configuration */
1609 	CONFIGURE_PIAS(defender_pia_0_intf, williams_pia_1_intf, williams_snd_pia_intf);
1610 }
1611 
1612 
init_defndjeu(void)1613 static void init_defndjeu(void)
1614 {
1615 /*
1616 	Note: Please do not remove these comments in BETA versions. They are
1617 			helpful to get the games working. When they will work, useless
1618 			comments may be removed as desired.
1619 
1620 	The encryption in this game is one of the silliest I have ever seen.
1621 	I just wondered if the ROMs were encrypted, and figured out how they
1622 	were in just about 5 mins...
1623 	Very simple: bits 0 and 7 are swapped in the ROMs (not sound).
1624 
1625 	Game does not work due to bad ROMs 16 and 20. However, the others are
1626 	VERY similar (if not nearly SAME) to MAYDAY and DEFENSE ones (and NOT
1627 	DEFENDER), although MAYDAY ROMs are more similar than DEFENSE ones...
1628 	By putting MAYDAY ROMs and encrypting them, I got a first machine test
1629 	and then, reboot... The test was the random graphic drawings, which
1630 	were bad. Each time the full screen was drawn, the game rebooted.
1631 	Unfortunately, I don't remember which roms I took to get that, and I
1632 	could not get the same result anymore (I did not retry ALL the
1633 	possibilities I did at 01:30am). :-(
1634 
1635 	ROM equivalences (not including the sound ROM):
1636 
1637 	MAYDAY      MAYDAY (Alternate)    DEFENSE       JEUTEL's Defender
1638 	-----------------------------------------------------------------
1639 	ROMC.BIN    IC03-3.BIN            DFNDR-C.ROM           15
1640 	ROMB.BIN    IC02-2.BIN            DFNDR-B.ROM           16
1641 	ROMA.BIN    IC01-1.BIN            DFNDR-A.ROM           17
1642 	ROMG.BIN    IC07-7D.BIN           DFNDR-G.ROM           18
1643 	ROMF.BIN    IC06-6.BIN            DFNDR-F.ROM           19
1644 	ROME.BIN    IC05-5.BIN            DFNDR-E.ROM           20
1645 	ROMD.BIN    IC04-4.BIN            DFNDR-D.ROM           21
1646 */
1647 
1648 	UINT8 *rom = memory_region(REGION_CPU1);
1649 	int x;
1650 
1651 	for (x = 0xd000; x < 0x15000; x++)
1652 	{
1653 		UINT8 src = rom[x];
1654 		rom[x] = (src & 0x7e) | (src >> 7) | (src << 7);
1655 	}
1656 }
1657 
1658 #if 0
1659 static void init_defcmnd(void)
1660 {
1661 	static const UINT32 bank[8] = { 0x0c000, 0x10000, 0x11000, 0x12000, 0x13000, 0x0c000, 0x0c000, 0x14000 };
1662 	defender_bank_list = bank;
1663 
1664 	/* CMOS configuration */
1665 	CONFIGURE_CMOS(0xc400, 0x100);
1666 
1667 	/* PIA configuration */
1668 	CONFIGURE_PIAS(williams_pia_0_intf, williams_pia_1_intf, williams_snd_pia_intf);
1669 }
1670 #endif
1671 
init_mayday(void)1672 static void init_mayday(void)
1673 {
1674 	static const UINT32 bank[8] = { 0x0c000, 0x10000, 0x11000, 0x12000, 0x0c000, 0x0c000, 0x0c000, 0x13000 };
1675 	defender_bank_list = bank;
1676 
1677 	/* CMOS configuration */
1678 	CONFIGURE_CMOS(0xc400, 0x100);
1679 
1680 	/* PIA configuration */
1681 	CONFIGURE_PIAS(williams_pia_0_intf, williams_pia_1_intf, williams_snd_pia_intf);
1682 
1683 	/* install a handler to catch protection checks */
1684 	mayday_protection = (UINT8*)install_mem_read_handler(0, 0xa190, 0xa191, mayday_protection_r);
1685 }
1686 
1687 
init_colony7(void)1688 static void init_colony7(void)
1689 {
1690 	static const UINT32 bank[8] = { 0x0c000, 0x10000, 0x11000, 0x12000, 0x0c000, 0x0c000, 0x0c000, 0x0c000 };
1691 	defender_bank_list = bank;
1692 
1693 	/* CMOS configuration */
1694 	CONFIGURE_CMOS(0xc400, 0x100);
1695 
1696 	/* PIA configuration */
1697 	CONFIGURE_PIAS(williams_pia_0_intf, williams_pia_1_intf, williams_snd_pia_intf);
1698 }
1699 
1700 
init_stargate(void)1701 static void init_stargate(void)
1702 {
1703 	/* CMOS configuration */
1704 	CONFIGURE_CMOS(0xcc00, 0x400);
1705 
1706 	/* PIA configuration */
1707 	CONFIGURE_PIAS(stargate_pia_0_intf, williams_pia_1_intf, williams_snd_pia_intf);
1708 }
1709 
1710 
init_joust(void)1711 static void init_joust(void)
1712 {
1713 	/* CMOS configuration */
1714 	CONFIGURE_CMOS(0xcc00, 0x400);
1715 
1716 	/* video configuration */
1717 	CONFIGURE_BLITTER(4, 0, 0);
1718 
1719 	/* PIA configuration */
1720 	CONFIGURE_PIAS(williams_muxed_pia_0_intf, williams_pia_1_intf, williams_snd_pia_intf);
1721 }
1722 
1723 
init_robotron(void)1724 static void init_robotron(void)
1725 {
1726 	/* CMOS configuration */
1727 	CONFIGURE_CMOS(0xcc00, 0x400);
1728 
1729 	/* video configuration */
1730 	CONFIGURE_BLITTER(4, 0, 0);
1731 
1732 	/* PIA configuration */
1733 	CONFIGURE_PIAS(williams_pia_0_intf, williams_pia_1_intf, williams_snd_pia_intf);
1734 }
1735 
1736 
init_bubbles(void)1737 static void init_bubbles(void)
1738 {
1739 	/* CMOS configuration */
1740 	CONFIGURE_CMOS(0xcc00, 0x400);
1741 
1742 	/* video configuration */
1743 	CONFIGURE_BLITTER(4, 0, 0);
1744 
1745 	/* PIA configuration */
1746 	CONFIGURE_PIAS(williams_pia_0_intf, williams_pia_1_intf, williams_snd_pia_intf);
1747 }
1748 
1749 
init_splat(void)1750 static void init_splat(void)
1751 {
1752 	/* CMOS configuration */
1753 	CONFIGURE_CMOS(0xcc00, 0x400);
1754 
1755 	/* video configuration */
1756 	CONFIGURE_BLITTER(0, 0, 0);
1757 
1758 	/* PIA configuration */
1759 	CONFIGURE_PIAS(williams_dual_muxed_pia_0_intf, williams_pia_1_intf, williams_snd_pia_intf);
1760 }
1761 
1762 
init_sinistar(void)1763 static void init_sinistar(void)
1764 {
1765 	/* CMOS configuration */
1766 	CONFIGURE_CMOS(0xcc00, 0x400);
1767 
1768 	/* video configuration */
1769 	CONFIGURE_BLITTER(4, 0, 1);
1770 
1771 	/* PIA configuration */
1772 	CONFIGURE_PIAS(williams_49way_pia_0_intf, williams_pia_1_intf, sinistar_snd_pia_intf);
1773 
1774 	/* install RAM instead of ROM in the Dxxx slot */
1775 	install_mem_read_handler (0, 0xd000, 0xdfff, MRA_RAM);
1776 	install_mem_write_handler(0, 0xd000, 0xdfff, MWA_RAM);
1777 }
1778 
1779 
init_blaster(void)1780 static void init_blaster(void)
1781 {
1782 	/* CMOS configuration */
1783 	CONFIGURE_CMOS(0xcc00, 0x400);
1784 
1785 	/* video configuration */
1786 	CONFIGURE_BLITTER(0, 1, 0);
1787 
1788 	/* PIA configuration */
1789 	CONFIGURE_PIAS(williams_49way_pia_0_intf, williams_pia_1_intf, williams_snd_pia_intf);
1790 }
1791 
1792 
init_tshoot(void)1793 static void init_tshoot(void)
1794 {
1795 	static const UINT8 tilemap_colors[] = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7 };
1796 
1797 	/* CMOS configuration */
1798 	CONFIGURE_CMOS(0xcc00, 0x400);
1799 
1800 	/* video configuration */
1801 	CONFIGURE_BLITTER(0, 0, 0);
1802 	CONFIGURE_TILEMAP(0x7f, tilemap_colors, 1, 0, 0);
1803 
1804 	/* PIA configuration */
1805 	CONFIGURE_PIAS(tshoot_pia_0_intf, williams2_pia_1_intf, tshoot_snd_pia_intf);
1806 }
1807 
1808 
init_joust2(void)1809 static void init_joust2(void)
1810 {
1811 	static const UINT8 tilemap_colors[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
1812 
1813 	/* CMOS configuration */
1814 	CONFIGURE_CMOS(0xcc00, 0x400);
1815 
1816 	/* video configuration */
1817 	CONFIGURE_BLITTER(0, 0, 0);
1818 	CONFIGURE_TILEMAP(0xff, tilemap_colors, 0, -2, 0);
1819 
1820 	/* PIA configuration */
1821 	CONFIGURE_PIAS(williams2_muxed_pia_0_intf, joust2_pia_1_intf, williams2_snd_pia_intf);
1822 
1823 	/* expand the sound ROMs */
1824 	memcpy(&memory_region(REGION_CPU3)[0x18000], &memory_region(REGION_CPU3)[0x10000], 0x08000);
1825 	memcpy(&memory_region(REGION_CPU3)[0x20000], &memory_region(REGION_CPU3)[0x10000], 0x10000);
1826 	memcpy(&memory_region(REGION_CPU3)[0x38000], &memory_region(REGION_CPU3)[0x30000], 0x08000);
1827 	memcpy(&memory_region(REGION_CPU3)[0x40000], &memory_region(REGION_CPU3)[0x30000], 0x10000);
1828 	memcpy(&memory_region(REGION_CPU3)[0x58000], &memory_region(REGION_CPU3)[0x50000], 0x08000);
1829 	memcpy(&memory_region(REGION_CPU3)[0x60000], &memory_region(REGION_CPU3)[0x50000], 0x10000);
1830 }
1831 
1832 
init_mysticm(void)1833 static void init_mysticm(void)
1834 {
1835 	static const UINT8 tilemap_colors[] = { 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
1836 
1837 	/* CMOS configuration */
1838 	CONFIGURE_CMOS(0xcc00, 0x400);
1839 
1840 	/* video configuration */
1841 	CONFIGURE_BLITTER(0, 0, 0);
1842 	CONFIGURE_TILEMAP(0x7f, tilemap_colors, 1, 0, 1);
1843 
1844 	/* PIA configuration */
1845 	CONFIGURE_PIAS(mysticm_pia_0_intf, williams2_pia_1_intf, williams2_snd_pia_intf);
1846 
1847 	/* install RAM instead of ROM in the Dxxx slot */
1848 	install_mem_read_handler (0, 0xd000, 0xdfff, MRA_RAM);
1849 	install_mem_write_handler(0, 0xd000, 0xdfff, MWA_RAM);
1850 }
1851 
1852 
init_inferno(void)1853 static void init_inferno(void)
1854 {
1855 	static const UINT8 tilemap_colors[] = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7 };
1856 
1857 	/* CMOS configuration */
1858 	CONFIGURE_CMOS(0xcc00, 0x400);
1859 
1860 	/* video configuration */
1861 	CONFIGURE_BLITTER(0, 0, 0);
1862 	CONFIGURE_TILEMAP(0x7f, tilemap_colors, 1, 0, 0);
1863 
1864 	/* PIA configuration */
1865 	CONFIGURE_PIAS(williams2_muxed_pia_0_intf, williams2_pia_1_intf, williams2_snd_pia_intf);
1866 
1867 	/* install RAM instead of ROM in the Dxxx slot */
1868 	install_mem_read_handler (0, 0xd000, 0xdfff, MRA_RAM);
1869 	install_mem_write_handler(0, 0xd000, 0xdfff, MWA_RAM);
1870 }
1871 
1872 
1873 
1874 /*************************************
1875  *
1876  *	ROM definitions
1877  *
1878  *************************************/
1879 
1880 ROM_START( defender )
1881 	ROM_REGION( 0x14000, REGION_CPU1 )
1882 	ROM_LOAD( "defend.1",     0x0d000, 0x0800, 0xc3e52d7e )
1883 	ROM_LOAD( "defend.4",     0x0d800, 0x0800, 0x9a72348b )
1884 	ROM_LOAD( "defend.2",     0x0e000, 0x1000, 0x89b75984 )
1885 	ROM_LOAD( "defend.3",     0x0f000, 0x1000, 0x94f51e9b )
1886 	/* bank 0 is the place for CMOS ram */
1887 	ROM_LOAD( "defend.9",     0x10000, 0x0800, 0x6870e8a5 )
1888 	ROM_LOAD( "defend.12",    0x10800, 0x0800, 0xf1f88938 )
1889 	ROM_LOAD( "defend.8",     0x11000, 0x0800, 0xb649e306 )
1890 	ROM_LOAD( "defend.11",    0x11800, 0x0800, 0x9deaf6d9 )
1891 	ROM_LOAD( "defend.7",     0x12000, 0x0800, 0x339e092e )
1892 	ROM_LOAD( "defend.10",    0x12800, 0x0800, 0xa543b167 )
1893 	ROM_RELOAD(               0x13800, 0x0800 )
1894 	ROM_LOAD( "defend.6",     0x13000, 0x0800, 0x65f4efd1 )
1895 
1896 	ROM_REGION( 0x10000, REGION_CPU2 )     /* 64k for the sound CPU */
1897 	ROM_LOAD( "defend.snd",   0xf800, 0x0800, 0xfefd5b48 )
1898 ROM_END
1899 
1900 
1901 ROM_START( defendg )
1902 	ROM_REGION( 0x14000, REGION_CPU1 )
1903 	ROM_LOAD( "defeng01.bin", 0x0d000, 0x0800, 0x6111d74d )
1904 	ROM_LOAD( "defeng04.bin", 0x0d800, 0x0800, 0x3cfc04ce )
1905 	ROM_LOAD( "defeng02.bin", 0x0e000, 0x1000, 0xd184ab6b )
1906 	ROM_LOAD( "defeng03.bin", 0x0f000, 0x1000, 0x788b76d7 )
1907 	/* bank 0 is the place for CMOS ram */
1908 	ROM_LOAD( "defeng09.bin", 0x10000, 0x0800, 0xf57caa62 )
1909 	ROM_LOAD( "defeng12.bin", 0x10800, 0x0800, 0x33db686f )
1910 	ROM_LOAD( "defeng08.bin", 0x11000, 0x0800, 0x9a9eb3d2 )
1911 	ROM_LOAD( "defeng11.bin", 0x11800, 0x0800, 0x5ca4e860 )
1912 	ROM_LOAD( "defeng07.bin", 0x12000, 0x0800, 0x545c3326 )
1913 	ROM_LOAD( "defeng10.bin", 0x12800, 0x0800, 0x941cf34e )
1914 	ROM_RELOAD(               0x13800, 0x0800 )
1915 	ROM_LOAD( "defeng06.bin", 0x13000, 0x0800, 0x3af34c05 )
1916 
1917 	ROM_REGION( 0x10000, REGION_CPU2 )     /* 64k for the sound CPU */
1918 	ROM_LOAD( "defend.snd",   0xf800, 0x0800, 0xfefd5b48 )
1919 ROM_END
1920 
1921 
1922 ROM_START( defendw )
1923 	ROM_REGION( 0x14000, REGION_CPU1 )
1924 	ROM_LOAD( "wb01.bin",     0x0d000, 0x1000, 0x0ee1019d )
1925 	ROM_LOAD( "defeng02.bin", 0x0e000, 0x1000, 0xd184ab6b )
1926 	ROM_LOAD( "wb03.bin",     0x0f000, 0x1000, 0xa732d649 )
1927 	/* bank 0 is the place for CMOS ram */
1928 	ROM_LOAD( "defeng09.bin", 0x10000, 0x0800, 0xf57caa62 )
1929 	ROM_LOAD( "defeng12.bin", 0x10800, 0x0800, 0x33db686f )
1930 	ROM_LOAD( "defeng08.bin", 0x11000, 0x0800, 0x9a9eb3d2 )
1931 	ROM_LOAD( "defeng11.bin", 0x11800, 0x0800, 0x5ca4e860 )
1932 	ROM_LOAD( "defeng07.bin", 0x12000, 0x0800, 0x545c3326 )
1933 	ROM_LOAD( "defeng10.bin", 0x12800, 0x0800, 0x941cf34e )
1934 	ROM_RELOAD(               0x13800, 0x0800 )
1935 	ROM_LOAD( "defeng06.bin", 0x13000, 0x0800, 0x3af34c05 )
1936 
1937 	ROM_REGION( 0x10000, REGION_CPU2 )
1938 	ROM_LOAD( "defend.snd",   0xf800, 0x0800, 0xfefd5b48 )
1939 ROM_END
1940 
1941 
1942 ROM_START( defndjeu )
1943 	ROM_REGION( 0x15000, REGION_CPU1 )
1944 	ROM_LOAD( "15", 0x0d000, 0x1000, 0x706a24bd )
1945 	ROM_LOAD( "16", 0x0e000, 0x1000, 0x03201532 )
1946 	ROM_LOAD( "17", 0x0f000, 0x1000, 0x25287eca )
1947 	/* bank 0 is the place for CMOS ram */
1948 	ROM_LOAD( "18", 0x10000, 0x1000, 0xe99d5679 )
1949 	ROM_LOAD( "19", 0x11000, 0x1000, 0x769f5984 )
1950 	ROM_LOAD( "20", 0x12000, 0x1000, 0x12fa0788 )
1951 	ROM_LOAD( "21", 0x13000, 0x1000, 0xbddb71a3 )
1952 	ROM_RELOAD(     0x14000, 0x1000 )
1953 
1954 	ROM_REGION( 0x10000, REGION_CPU2 )     /* 64k for the sound CPU */
1955 	ROM_LOAD( "s", 0xf800, 0x0800, 0xcb79ae42 )
1956 ROM_END
1957 
1958 
1959 ROM_START( defcmnd )
1960 	ROM_REGION( 0x15000, REGION_CPU1 )
1961 	ROM_LOAD( "defcmnda.1",   0x0d000, 0x1000, 0x68effc1d )
1962 	ROM_LOAD( "defcmnda.2",   0x0e000, 0x1000, 0x1126adc9 )
1963 	ROM_LOAD( "defcmnda.3",   0x0f000, 0x1000, 0x7340209d )
1964 	/* bank 0 is the place for CMOS ram */
1965 	ROM_LOAD( "defcmnda.10",  0x10000, 0x0800, 0x3dddae75 )
1966 	ROM_LOAD( "defcmnda.7",   0x10800, 0x0800, 0x3f1e7cf8 )
1967 	ROM_LOAD( "defcmnda.9",   0x11000, 0x0800, 0x8882e1ff )
1968 	ROM_LOAD( "defcmnda.6",   0x11800, 0x0800, 0xd068f0c5 )
1969 	ROM_LOAD( "defcmnda.8",   0x12000, 0x0800, 0xfef4cb77 )
1970 	ROM_LOAD( "defcmnda.5",   0x12800, 0x0800, 0x49b50b40 )
1971 	ROM_LOAD( "defcmnda.4",   0x13000, 0x0800, 0x43d42a1b )
1972 
1973 	ROM_REGION( 0x10000, REGION_CPU2 )     /* 64k for the sound CPU */
1974 	ROM_LOAD( "defcmnda.snd", 0xf800, 0x0800, 0xf122d9c9 )
1975 ROM_END
1976 
1977 
1978 ROM_START( defence )
1979 	ROM_REGION( 0x15000, REGION_CPU1 )
1980 	ROM_LOAD( "1",            0x0d000, 0x1000, 0xebc93622 )
1981 	ROM_LOAD( "2",            0x0e000, 0x1000, 0x2a4f4f44 )
1982 	ROM_LOAD( "3",            0x0f000, 0x1000, 0xa4112f91 )
1983 	/* bank 0 is the place for CMOS ram */
1984 	ROM_LOAD( "0",            0x10000, 0x0800, 0x7a1e5998 )
1985 	ROM_LOAD( "7",            0x10800, 0x0800, 0x4c2616a3 )
1986 	ROM_LOAD( "9",            0x11000, 0x0800, 0x7b146003 )
1987 	ROM_LOAD( "6",            0x11800, 0x0800, 0x6d748030 )
1988 	ROM_LOAD( "8",            0x12000, 0x0800, 0x52d5438b )
1989 	ROM_LOAD( "5",            0x12800, 0x0800, 0x4a270340 )
1990 	ROM_LOAD( "4",            0x13000, 0x0800, 0xe13f457c )
1991 
1992 	ROM_REGION( 0x10000, REGION_CPU2 )     /* 64k for the sound CPU */
1993 	ROM_LOAD( "defcmnda.snd", 0xf800, 0x0800, 0xf122d9c9 )
1994 ROM_END
1995 
1996 
1997 ROM_START( mayday )
1998 	ROM_REGION( 0x15000, REGION_CPU1 )
1999 	ROM_LOAD( "ic03-3.bin",  0x0d000, 0x1000, 0xa1ff6e62 )
2000 	ROM_LOAD( "ic02-2.bin",  0x0e000, 0x1000, 0x62183aea )
2001 	ROM_LOAD( "ic01-1.bin",  0x0f000, 0x1000, 0x5dcb113f )
2002 	/* bank 0 is the place for CMOS ram */
2003 	ROM_LOAD( "ic04-4.bin",  0x10000, 0x1000, 0xea6a4ec8 )
2004 	ROM_LOAD( "ic05-5.bin",  0x11000, 0x1000, 0x0d797a3e )
2005 	ROM_LOAD( "ic06-6.bin",  0x12000, 0x1000, 0xee8bfcd6 )
2006 	ROM_LOAD( "ic07-7d.bin", 0x13000, 0x1000, 0xd9c065e7 )
2007 	ROM_RELOAD(              0x14000, 0x1000 )
2008 
2009 	ROM_REGION( 0x10000, REGION_CPU2 )     /* 64k for the sound CPU */
2010 	ROM_LOAD( "ic28-8.bin",  0xf800, 0x0800, 0xfefd5b48 )
2011 	/* Sound ROM is same in both versions. Can be merged !!! */
2012 ROM_END
2013 
2014 
2015 ROM_START( maydaya )
2016 	ROM_REGION( 0x15000, REGION_CPU1 )
2017 	ROM_LOAD( "mayday.c", 0x0d000, 0x1000, 0x872a2f2d )
2018 	ROM_LOAD( "mayday.b", 0x0e000, 0x1000, 0xc4ab5e22 )
2019 	ROM_LOAD( "mayday.a", 0x0f000, 0x1000, 0x329a1318 )
2020 	/* bank 0 is the place for CMOS ram */
2021 	ROM_LOAD( "mayday.d", 0x10000, 0x1000, 0xc2ae4716 )
2022 	ROM_LOAD( "mayday.e", 0x11000, 0x1000, 0x41225666 )
2023 	ROM_LOAD( "mayday.f", 0x12000, 0x1000, 0xc39be3c0 )
2024 	ROM_LOAD( "mayday.g", 0x13000, 0x1000, 0x2bd0f106 )
2025 	ROM_RELOAD(           0x14000, 0x1000 )
2026 
2027 	ROM_REGION( 0x10000, REGION_CPU2 )     /* 64k for the sound CPU */
2028 	ROM_LOAD( "ic28-8.bin", 0xf800, 0x0800, 0xfefd5b48 )
2029 ROM_END
2030 
2031 
2032 ROM_START( colony7 )
2033 	ROM_REGION( 0x14000, REGION_CPU1 )
2034 	ROM_LOAD( "cs03.bin",     0x0d000, 0x1000, 0x7ee75ae5 )
2035 	ROM_LOAD( "cs02.bin",     0x0e000, 0x1000, 0xc60b08cb )
2036 	ROM_LOAD( "cs01.bin",     0x0f000, 0x1000, 0x1bc97436 )
2037 	/* bank 0 is the place for CMOS ram */
2038 	ROM_LOAD( "cs06.bin",     0x10000, 0x0800, 0x318b95af )
2039 	ROM_LOAD( "cs04.bin",     0x10800, 0x0800, 0xd740faee )
2040 	ROM_LOAD( "cs07.bin",     0x11000, 0x0800, 0x0b23638b )
2041 	ROM_LOAD( "cs05.bin",     0x11800, 0x0800, 0x59e406a8 )
2042 	ROM_LOAD( "cs08.bin",     0x12000, 0x0800, 0x3bfde87a )
2043 	ROM_RELOAD(           0x12800, 0x0800 )
2044 
2045 	ROM_REGION( 0x10000, REGION_CPU2 )
2046 	ROM_LOAD( "cs11.bin",     0xf800, 0x0800, 0x6032293c ) /* Sound ROM */
2047 ROM_END
2048 
2049 
2050 ROM_START( colony7a )
2051 	ROM_REGION( 0x14000, REGION_CPU1 )
2052 	ROM_LOAD( "cs03a.bin",    0x0d000, 0x1000, 0xe0b0d23b )
2053 	ROM_LOAD( "cs02a.bin",    0x0e000, 0x1000, 0x370c6f41 )
2054 	ROM_LOAD( "cs01a.bin",    0x0f000, 0x1000, 0xba299946 )
2055 	/* bank 0 is the place for CMOS ram */
2056 	ROM_LOAD( "cs06.bin",     0x10000, 0x0800, 0x318b95af )
2057 	ROM_LOAD( "cs04.bin",     0x10800, 0x0800, 0xd740faee )
2058 	ROM_LOAD( "cs07.bin",     0x11000, 0x0800, 0x0b23638b )
2059 	ROM_LOAD( "cs05.bin",     0x11800, 0x0800, 0x59e406a8 )
2060 	ROM_LOAD( "cs08.bin",     0x12000, 0x0800, 0x3bfde87a )
2061 	ROM_RELOAD(            0x12800, 0x0800 )
2062 
2063 	ROM_REGION( 0x10000, REGION_CPU2 )
2064 	ROM_LOAD( "cs11.bin",     0xf800, 0x0800, 0x6032293c ) /* Sound ROM */
2065 ROM_END
2066 
2067 
2068 ROM_START( stargate )
2069 	ROM_REGION( 0x10000, REGION_CPU1 )     /* 64k for code */
2070 	ROM_LOAD( "01",           0x0000, 0x1000, 0x88824d18 )
2071 	ROM_LOAD( "02",           0x1000, 0x1000, 0xafc614c5 )
2072 	ROM_LOAD( "03",           0x2000, 0x1000, 0x15077a9d )
2073 	ROM_LOAD( "04",           0x3000, 0x1000, 0xa8b4bf0f )
2074 	ROM_LOAD( "05",           0x4000, 0x1000, 0x2d306074 )
2075 	ROM_LOAD( "06",           0x5000, 0x1000, 0x53598dde )
2076 	ROM_LOAD( "07",           0x6000, 0x1000, 0x23606060 )
2077 	ROM_LOAD( "08",           0x7000, 0x1000, 0x4ec490c7 )
2078 	ROM_LOAD( "09",           0x8000, 0x1000, 0x88187b64 )
2079 	ROM_LOAD( "10",           0xd000, 0x1000, 0x60b07ff7 )
2080 	ROM_LOAD( "11",           0xe000, 0x1000, 0x7d2c5daf )
2081 	ROM_LOAD( "12",           0xf000, 0x1000, 0xa0396670 )
2082 
2083 	ROM_REGION( 0x10000, REGION_CPU2 )     /* 64k for the sound CPU */
2084 	ROM_LOAD( "sg.snd",       0xf800, 0x0800, 0x2fcf6c4d )
2085 ROM_END
2086 
2087 
2088 ROM_START( joust )
2089 	ROM_REGION( 0x10000, REGION_CPU1 )     /* 64k for code */
2090 	ROM_LOAD( "joust.wg1",    0x0000, 0x1000, 0xfe41b2af )
2091 	ROM_LOAD( "joust.wg2",    0x1000, 0x1000, 0x501c143c )
2092 	ROM_LOAD( "joust.wg3",    0x2000, 0x1000, 0x43f7161d )
2093 	ROM_LOAD( "joust.wg4",    0x3000, 0x1000, 0xdb5571b6 )
2094 	ROM_LOAD( "joust.wg5",    0x4000, 0x1000, 0xc686bb6b )
2095 	ROM_LOAD( "joust.wg6",    0x5000, 0x1000, 0xfac5f2cf )
2096 	ROM_LOAD( "joust.wg7",    0x6000, 0x1000, 0x81418240 )
2097 	ROM_LOAD( "joust.wg8",    0x7000, 0x1000, 0xba5359ba )
2098 	ROM_LOAD( "joust.wg9",    0x8000, 0x1000, 0x39643147 )
2099 	ROM_LOAD( "joust.wga",    0xd000, 0x1000, 0x3f1c4f89 )
2100 	ROM_LOAD( "joust.wgb",    0xe000, 0x1000, 0xea48b359 )
2101 	ROM_LOAD( "joust.wgc",    0xf000, 0x1000, 0xc710717b )
2102 
2103 	ROM_REGION( 0x10000, REGION_CPU2 )     /* 64k for the sound CPU */
2104 	ROM_LOAD( "joust.snd",    0xf000, 0x1000, 0xf1835bdd )
2105 ROM_END
2106 
2107 
2108 ROM_START( joustwr )
2109 	ROM_REGION( 0x10000, REGION_CPU1 )     /* 64k for code */
2110 	ROM_LOAD( "joust.wg1",    0x0000, 0x1000, 0xfe41b2af )
2111 	ROM_LOAD( "joust.wg2",    0x1000, 0x1000, 0x501c143c )
2112 	ROM_LOAD( "joust.wg3",    0x2000, 0x1000, 0x43f7161d )
2113 	ROM_LOAD( "joust.wg4",    0x3000, 0x1000, 0xdb5571b6 )
2114 	ROM_LOAD( "joust.wg5",    0x4000, 0x1000, 0xc686bb6b )
2115 	ROM_LOAD( "joust.wg6",    0x5000, 0x1000, 0xfac5f2cf )
2116 	ROM_LOAD( "joust.wr7",    0x6000, 0x1000, 0xe6f439c4 )
2117 	ROM_LOAD( "joust.wg8",    0x7000, 0x1000, 0xba5359ba )
2118 	ROM_LOAD( "joust.wg9",    0x8000, 0x1000, 0x39643147 )
2119 	ROM_LOAD( "joust.wra",    0xd000, 0x1000, 0x2039014a )
2120 	ROM_LOAD( "joust.wgb",    0xe000, 0x1000, 0xea48b359 )
2121 	ROM_LOAD( "joust.wgc",    0xf000, 0x1000, 0xc710717b )
2122 
2123 	ROM_REGION( 0x10000, REGION_CPU2 )     /* 64k for the sound CPU */
2124 	ROM_LOAD( "joust.snd",    0xf000, 0x1000, 0xf1835bdd )
2125 ROM_END
2126 
2127 
2128 ROM_START( joustr )
2129 	ROM_REGION( 0x10000, REGION_CPU1 )     /* 64k for code */
2130 	ROM_LOAD( "joust.wg1",    0x0000, 0x1000, 0xfe41b2af )
2131 	ROM_LOAD( "joust.wg2",    0x1000, 0x1000, 0x501c143c )
2132 	ROM_LOAD( "joust.wg3",    0x2000, 0x1000, 0x43f7161d )
2133 	ROM_LOAD( "joust.sr4",    0x3000, 0x1000, 0xab347170 )
2134 	ROM_LOAD( "joust.wg5",    0x4000, 0x1000, 0xc686bb6b )
2135 	ROM_LOAD( "joust.sr6",    0x5000, 0x1000, 0x3d9a6fac )
2136 	ROM_LOAD( "joust.sr7",    0x6000, 0x1000, 0x0a70b3d1 )
2137 	ROM_LOAD( "joust.sr8",    0x7000, 0x1000, 0xa7f01504 )
2138 	ROM_LOAD( "joust.sr9",    0x8000, 0x1000, 0x978687ad )
2139 	ROM_LOAD( "joust.sra",    0xd000, 0x1000, 0xc0c6e52a )
2140 	ROM_LOAD( "joust.srb",    0xe000, 0x1000, 0xab11bcf9 )
2141 	ROM_LOAD( "joust.src",    0xf000, 0x1000, 0xea14574b )
2142 
2143 	ROM_REGION( 0x10000, REGION_CPU2 )     /* 64k for the sound CPU */
2144 	ROM_LOAD( "joust.snd",    0xf000, 0x1000, 0xf1835bdd )
2145 ROM_END
2146 
2147 
2148 ROM_START( robotron )
2149 	ROM_REGION( 0x10000, REGION_CPU1 )     /* 64k for code */
2150 	ROM_LOAD( "robotron.sb1", 0x0000, 0x1000, 0x66c7d3ef )
2151 	ROM_LOAD( "robotron.sb2", 0x1000, 0x1000, 0x5bc6c614 )
2152 	ROM_LOAD( "robotron.sb3", 0x2000, 0x1000, 0xe99a82be )
2153 	ROM_LOAD( "robotron.sb4", 0x3000, 0x1000, 0xafb1c561 )
2154 	ROM_LOAD( "robotron.sb5", 0x4000, 0x1000, 0x62691e77 )
2155 	ROM_LOAD( "robotron.sb6", 0x5000, 0x1000, 0xbd2c853d )
2156 	ROM_LOAD( "robotron.sb7", 0x6000, 0x1000, 0x49ac400c )
2157 	ROM_LOAD( "robotron.sb8", 0x7000, 0x1000, 0x3a96e88c )
2158 	ROM_LOAD( "robotron.sb9", 0x8000, 0x1000, 0xb124367b )
2159 	ROM_LOAD( "robotron.sba", 0xd000, 0x1000, 0x13797024 )
2160 	ROM_LOAD( "robotron.sbb", 0xe000, 0x1000, 0x7e3c1b87 )
2161 	ROM_LOAD( "robotron.sbc", 0xf000, 0x1000, 0x645d543e )
2162 
2163 	ROM_REGION( 0x10000, REGION_CPU2 )     /* 64k for the sound CPU */
2164 	ROM_LOAD( "robotron.snd", 0xf000, 0x1000, 0xc56c1d28 )
2165 ROM_END
2166 
2167 
2168 ROM_START( robotryo )
2169 	ROM_REGION( 0x10000, REGION_CPU1 )     /* 64k for code */
2170 	ROM_LOAD( "robotron.sb1", 0x0000, 0x1000, 0x66c7d3ef )
2171 	ROM_LOAD( "robotron.sb2", 0x1000, 0x1000, 0x5bc6c614 )
2172 	ROM_LOAD( "robotron.yo3", 0x2000, 0x1000, 0x67a369bc )
2173 	ROM_LOAD( "robotron.yo4", 0x3000, 0x1000, 0xb0de677a )
2174 	ROM_LOAD( "robotron.yo5", 0x4000, 0x1000, 0x24726007 )
2175 	ROM_LOAD( "robotron.yo6", 0x5000, 0x1000, 0x028181a6 )
2176 	ROM_LOAD( "robotron.yo7", 0x6000, 0x1000, 0x4dfcceae )
2177 	ROM_LOAD( "robotron.sb8", 0x7000, 0x1000, 0x3a96e88c )
2178 	ROM_LOAD( "robotron.sb9", 0x8000, 0x1000, 0xb124367b )
2179 	ROM_LOAD( "robotron.yoa", 0xd000, 0x1000, 0x4a9d5f52 )
2180 	ROM_LOAD( "robotron.yob", 0xe000, 0x1000, 0x2afc5e7f )
2181 	ROM_LOAD( "robotron.yoc", 0xf000, 0x1000, 0x45da9202 )
2182 
2183 	ROM_REGION( 0x10000, REGION_CPU2 )     /* 64k for the sound CPU */
2184 	ROM_LOAD( "robotron.snd", 0xf000, 0x1000, 0xc56c1d28 )
2185 ROM_END
2186 
2187 
2188 ROM_START( bubbles )
2189 	ROM_REGION( 0x10000, REGION_CPU1 )     /* 64k for code */
2190 	ROM_LOAD( "bubbles.1b",   0x0000, 0x1000, 0x8234f55c )
2191 	ROM_LOAD( "bubbles.2b",   0x1000, 0x1000, 0x4a188d6a )
2192 	ROM_LOAD( "bubbles.3b",   0x2000, 0x1000, 0x7728f07f )
2193 	ROM_LOAD( "bubbles.4b",   0x3000, 0x1000, 0x040be7f9 )
2194 	ROM_LOAD( "bubbles.5b",   0x4000, 0x1000, 0x0b5f29e0 )
2195 	ROM_LOAD( "bubbles.6b",   0x5000, 0x1000, 0x4dd0450d )
2196 	ROM_LOAD( "bubbles.7b",   0x6000, 0x1000, 0xe0a26ec0 )
2197 	ROM_LOAD( "bubbles.8b",   0x7000, 0x1000, 0x4fd23d8d )
2198 	ROM_LOAD( "bubbles.9b",   0x8000, 0x1000, 0xb48559fb )
2199 	ROM_LOAD( "bubbles.10b",  0xd000, 0x1000, 0x26e7869b )
2200 	ROM_LOAD( "bubbles.11b",  0xe000, 0x1000, 0x5a5b572f )
2201 	ROM_LOAD( "bubbles.12b",  0xf000, 0x1000, 0xce22d2e2 )
2202 
2203 	ROM_REGION( 0x10000, REGION_CPU2 )     /* 64k for the sound CPU */
2204 	ROM_LOAD( "bubbles.snd",  0xf000, 0x1000, 0x689ce2aa )
2205 ROM_END
2206 
2207 
2208 ROM_START( bubblesr )
2209 	ROM_REGION( 0x10000, REGION_CPU1 )     /* 64k for code */
2210 	ROM_LOAD( "bubblesr.1b",  0x0000, 0x1000, 0xdda4e782 )
2211 	ROM_LOAD( "bubblesr.2b",  0x1000, 0x1000, 0x3c8fa7f5 )
2212 	ROM_LOAD( "bubblesr.3b",  0x2000, 0x1000, 0xf869bb9c )
2213 	ROM_LOAD( "bubblesr.4b",  0x3000, 0x1000, 0x0c65eaab )
2214 	ROM_LOAD( "bubblesr.5b",  0x4000, 0x1000, 0x7ece4e13 )
2215 	ROM_LOAD( "bubbles.6b",   0x5000, 0x1000, 0x4dd0450d )
2216 	ROM_LOAD( "bubbles.7b",   0x6000, 0x1000, 0xe0a26ec0 )
2217 	ROM_LOAD( "bubblesr.8b",  0x7000, 0x1000, 0x598b9bd6 )
2218 	ROM_LOAD( "bubbles.9b",   0x8000, 0x1000, 0xb48559fb )
2219 	ROM_LOAD( "bubblesr.10b", 0xd000, 0x1000, 0x8b396db0 )
2220 	ROM_LOAD( "bubblesr.11b", 0xe000, 0x1000, 0x096af43e )
2221 	ROM_LOAD( "bubblesr.12b", 0xf000, 0x1000, 0x5c1244ef )
2222 
2223 	ROM_REGION( 0x10000, REGION_CPU2 )     /* 64k for the sound CPU */
2224 	ROM_LOAD( "bubbles.snd",  0xf000, 0x1000, 0x689ce2aa )
2225 ROM_END
2226 
2227 
2228 ROM_START( splat )
2229 	ROM_REGION( 0x10000, REGION_CPU1 )     /* 64k for code */
2230 	ROM_LOAD( "splat.01",     0x0000, 0x1000, 0x1cf26e48 )
2231 	ROM_LOAD( "splat.02",     0x1000, 0x1000, 0xac0d4276 )
2232 	ROM_LOAD( "splat.03",     0x2000, 0x1000, 0x74873e59 )
2233 	ROM_LOAD( "splat.04",     0x3000, 0x1000, 0x70a7064e )
2234 	ROM_LOAD( "splat.05",     0x4000, 0x1000, 0xc6895221 )
2235 	ROM_LOAD( "splat.06",     0x5000, 0x1000, 0xea4ab7fd )
2236 	ROM_LOAD( "splat.07",     0x6000, 0x1000, 0x82fd8713 )
2237 	ROM_LOAD( "splat.08",     0x7000, 0x1000, 0x7dded1b4 )
2238 	ROM_LOAD( "splat.09",     0x8000, 0x1000, 0x71cbfe5a )
2239 	ROM_LOAD( "splat.10",     0xd000, 0x1000, 0xd1a1f632 )
2240 	ROM_LOAD( "splat.11",     0xe000, 0x1000, 0xca8cde95 )
2241 	ROM_LOAD( "splat.12",     0xf000, 0x1000, 0x5bee3e60 )
2242 
2243 	ROM_REGION( 0x10000, REGION_CPU2 )     /* 64k for the sound CPU */
2244 	ROM_LOAD( "splat.snd",    0xf000, 0x1000, 0xa878d5f3 )
2245 ROM_END
2246 
2247 
2248 ROM_START( sinistar )
2249 	ROM_REGION( 0x10000, REGION_CPU1 )     /* 64k for code */
2250 	ROM_LOAD( "sinistar.01",  0x0000, 0x1000, 0xf6f3a22c )
2251 	ROM_LOAD( "sinistar.02",  0x1000, 0x1000, 0xcab3185c )
2252 	ROM_LOAD( "sinistar.03",  0x2000, 0x1000, 0x1ce1b3cc )
2253 	ROM_LOAD( "sinistar.04",  0x3000, 0x1000, 0x6da632ba )
2254 	ROM_LOAD( "sinistar.05",  0x4000, 0x1000, 0xb662e8fc )
2255 	ROM_LOAD( "sinistar.06",  0x5000, 0x1000, 0x2306183d )
2256 	ROM_LOAD( "sinistar.07",  0x6000, 0x1000, 0xe5dd918e )
2257 	ROM_LOAD( "sinistar.08",  0x7000, 0x1000, 0x4785a787 )
2258 	ROM_LOAD( "sinistar.09",  0x8000, 0x1000, 0x50cb63ad )
2259 	ROM_LOAD( "sinistar.10",  0xe000, 0x1000, 0x3d670417 )
2260 	ROM_LOAD( "sinistar.11",  0xf000, 0x1000, 0x3162bc50 )
2261 
2262 	ROM_REGION( 0x10000, REGION_CPU2 )     /* 64k for the sound CPU */
2263 	ROM_LOAD( "speech.ic7",   0xb000, 0x1000, 0xe1019568 )
2264 	ROM_LOAD( "speech.ic5",   0xc000, 0x1000, 0xcf3b5ffd )
2265 	ROM_LOAD( "speech.ic6",   0xd000, 0x1000, 0xff8d2645 )
2266 	ROM_LOAD( "speech.ic4",   0xe000, 0x1000, 0x4b56a626 )
2267 	ROM_LOAD( "sinistar.snd", 0xf000, 0x1000, 0xb82f4ddb )
2268 ROM_END
2269 
2270 
2271 ROM_START( sinista1 )
2272 	ROM_REGION( 0x10000, REGION_CPU1 ) /* 64k for code */
2273 	ROM_LOAD( "sinrev1.01",   0x0000, 0x1000, 0x3810d7b8 )
2274 	ROM_LOAD( "sinistar.02",  0x1000, 0x1000, 0xcab3185c )
2275 	ROM_LOAD( "sinrev1.03",   0x2000, 0x1000, 0x7c984ca9 )
2276 	ROM_LOAD( "sinrev1.04",   0x3000, 0x1000, 0xcc6c4f24 )
2277 	ROM_LOAD( "sinrev1.05",   0x4000, 0x1000, 0x12285bfe )
2278 	ROM_LOAD( "sinrev1.06",   0x5000, 0x1000, 0x7a675f35 )
2279 	ROM_LOAD( "sinrev1.07",   0x6000, 0x1000, 0xb0463243 )
2280 	ROM_LOAD( "sinrev1.08",   0x7000, 0x1000, 0x909040d4 )
2281 	ROM_LOAD( "sinrev1.09",   0x8000, 0x1000, 0xcc949810 )
2282 	ROM_LOAD( "sinrev1.10",   0xe000, 0x1000, 0xea87a53f )
2283 	ROM_LOAD( "sinrev1.11",   0xf000, 0x1000, 0x88d36e80 )
2284 
2285 	ROM_REGION( 0x10000, REGION_CPU2 ) /* 64k for the sound CPU */
2286 	ROM_LOAD( "speech.ic7",   0xb000, 0x1000, 0xe1019568 )
2287 	ROM_LOAD( "speech.ic5",   0xc000, 0x1000, 0xcf3b5ffd )
2288 	ROM_LOAD( "speech.ic6",   0xd000, 0x1000, 0xff8d2645 )
2289 	ROM_LOAD( "speech.ic4",   0xe000, 0x1000, 0x4b56a626 )
2290 	ROM_LOAD( "sinistar.snd", 0xf000, 0x1000, 0xb82f4ddb )
2291 ROM_END
2292 
2293 
2294 ROM_START( sinista2 )
2295 	ROM_REGION( 0x10000, REGION_CPU1 )     /* 64k for code */
2296 	ROM_LOAD( "sinistar.01",  0x0000, 0x1000, 0xf6f3a22c )
2297 	ROM_LOAD( "sinistar.02",  0x1000, 0x1000, 0xcab3185c )
2298 	ROM_LOAD( "sinistar.03",  0x2000, 0x1000, 0x1ce1b3cc )
2299 	ROM_LOAD( "sinistar.04",  0x3000, 0x1000, 0x6da632ba )
2300 	ROM_LOAD( "sinistar.05",  0x4000, 0x1000, 0xb662e8fc )
2301 	ROM_LOAD( "sinistar.06",  0x5000, 0x1000, 0x2306183d )
2302 	ROM_LOAD( "sinistar.07",  0x6000, 0x1000, 0xe5dd918e )
2303 	ROM_LOAD( "sinrev2.08",   0x7000, 0x1000, 0xd7ecee45 )
2304 	ROM_LOAD( "sinistar.09",  0x8000, 0x1000, 0x50cb63ad )
2305 	ROM_LOAD( "sinistar.10",  0xe000, 0x1000, 0x3d670417 )
2306 	ROM_LOAD( "sinrev2.11",   0xf000, 0x1000, 0x792c8b00 )
2307 
2308 	ROM_REGION( 0x10000, REGION_CPU2 ) /* 64k for the sound CPU */
2309 	ROM_LOAD( "speech.ic7",   0xb000, 0x1000, 0xe1019568 )
2310 	ROM_LOAD( "speech.ic5",   0xc000, 0x1000, 0xcf3b5ffd )
2311 	ROM_LOAD( "speech.ic6",   0xd000, 0x1000, 0xff8d2645 )
2312 	ROM_LOAD( "speech.ic4",   0xe000, 0x1000, 0x4b56a626 )
2313 	ROM_LOAD( "sinistar.snd", 0xf000, 0x1000, 0xb82f4ddb )
2314 ROM_END
2315 
2316 
2317 ROM_START( blaster )
2318 	ROM_REGION( 0x3c000, REGION_CPU1 )
2319 	ROM_LOAD( "blaster.11",   0x04000, 0x2000, 0x6371e62f )
2320 	ROM_LOAD( "blaster.12",   0x06000, 0x2000, 0x9804faac )
2321 	ROM_LOAD( "blaster.17",   0x08000, 0x1000, 0xbf96182f )
2322 	ROM_LOAD( "blaster.16",   0x0d000, 0x1000, 0x54a40b21 )
2323 	ROM_LOAD( "blaster.13",   0x0e000, 0x2000, 0xf4dae4c8 )
2324 
2325 	ROM_LOAD( "blaster.15",   0x00000, 0x4000, 0x1ad146a4 )
2326 	ROM_LOAD( "blaster.8",    0x10000, 0x4000, 0xf110bbb0 )
2327 	ROM_LOAD( "blaster.9",    0x14000, 0x4000, 0x5c5b0f8a )
2328 	ROM_LOAD( "blaster.10",   0x18000, 0x4000, 0xd47eb67f )
2329 	ROM_LOAD( "blaster.6",    0x1c000, 0x4000, 0x47fc007e )
2330 	ROM_LOAD( "blaster.5",    0x20000, 0x4000, 0x15c1b94d )
2331 	ROM_LOAD( "blaster.14",   0x24000, 0x4000, 0xaea6b846 )
2332 	ROM_LOAD( "blaster.7",    0x28000, 0x4000, 0x7a101181 )
2333 	ROM_LOAD( "blaster.1",    0x2c000, 0x4000, 0x8d0ea9e7 )
2334 	ROM_LOAD( "blaster.2",    0x30000, 0x4000, 0x03c4012c )
2335 	ROM_LOAD( "blaster.4",    0x34000, 0x4000, 0xfc9d39fb )
2336 	ROM_LOAD( "blaster.3",    0x38000, 0x4000, 0x253690fb )
2337 
2338 	ROM_REGION( 0x10000, REGION_CPU2 )     /* 64k for the sound CPU */
2339 	ROM_LOAD( "blaster.18",   0xf000, 0x1000, 0xc33a3145 )
2340 
2341 	ROM_REGION( 0x0800, REGION_PROMS )		/* color PROM data */
2342 	ROM_LOAD( "blaster.col",  0x0000, 0x0800, 0xbac50bc4 )
2343 ROM_END
2344 
2345 
2346 ROM_START( tshoot )
2347 	ROM_REGION( 0x48000, REGION_CPU1 )
2348 	ROM_LOAD( "rom18.cpu", 0x0D000, 0x1000, 0xeffc33f1 )	/* IC55 */
2349 	ROM_LOAD( "rom2.cpu",  0x0E000, 0x1000, 0xfd982687 )	/* IC9	*/
2350 	ROM_LOAD( "rom3.cpu",  0x0F000, 0x1000, 0x9617054d )	/* IC10 */
2351 
2352 	ROM_LOAD( "rom11.cpu", 0x10000, 0x2000, 0x60d5fab8 )	/* IC18 */
2353 	ROM_LOAD( "rom9.cpu",  0x12000, 0x2000, 0xa4dd4a0e )	/* IC16 */
2354 	ROM_LOAD( "rom7.cpu",  0x14000, 0x2000, 0xf25505e6 )	/* IC14 */
2355 	ROM_LOAD( "rom5.cpu",  0x16000, 0x2000, 0x94a7c0ed )	/* IC12 */
2356 
2357 	ROM_LOAD( "rom17.cpu", 0x20000, 0x2000, 0xb02d1ccd )	/* IC26 */
2358 	ROM_LOAD( "rom15.cpu", 0x22000, 0x2000, 0x11709935 )	/* IC24 */
2359 
2360 	ROM_LOAD( "rom10.cpu", 0x30000, 0x2000, 0x0f32bad8 )	/* IC17 */
2361 	ROM_LOAD( "rom8.cpu",  0x32000, 0x2000, 0xe9b6cbf7 )	/* IC15 */
2362 	ROM_LOAD( "rom6.cpu",  0x34000, 0x2000, 0xa49f617f )	/* IC13 */
2363 	ROM_LOAD( "rom4.cpu",  0x36000, 0x2000, 0xb026dc00 )	/* IC11 */
2364 
2365 	ROM_LOAD( "rom16.cpu", 0x40000, 0x2000, 0x69ce38f8 )	/* IC25 */
2366 	ROM_LOAD( "rom14.cpu", 0x42000, 0x2000, 0x769a4ae5 )	/* IC23 */
2367 	ROM_LOAD( "rom13.cpu", 0x44000, 0x2000, 0xec016c9b )	/* IC21 */
2368 	ROM_LOAD( "rom12.cpu", 0x46000, 0x2000, 0x98ae7afa )	/* IC19 */
2369 
2370 	/* sound CPU */
2371 	ROM_REGION( 0x10000, REGION_CPU2 )
2372 	ROM_LOAD( "rom1.cpu", 0xE000, 0x2000, 0x011a94a7 )		/* IC8	*/
2373 
2374 	ROM_REGION( 0xc000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2375 	ROM_LOAD( "rom20.cpu", 0x00000, 0x2000, 0xc6e1d253 )	/* IC57 */
2376 	ROM_LOAD( "rom21.cpu", 0x04000, 0x2000, 0x9874e90f )	/* IC58 */
2377 	ROM_LOAD( "rom19.cpu", 0x08000, 0x2000, 0xb9ce4d2a )	/* IC41 */
2378 ROM_END
2379 
2380 
2381 ROM_START( joust2 )
2382 	ROM_REGION( 0x48000, REGION_CPU1 )
2383 	ROM_LOAD( "ic55_r1.cpu", 0x0D000, 0x1000, 0x08b0d5bd )	/* IC55 ROM02 */
2384 	ROM_LOAD( "ic09_r2.cpu", 0x0E000, 0x1000, 0x951175ce )	/* IC09 ROM03 */
2385 	ROM_LOAD( "ic10_r2.cpu", 0x0F000, 0x1000, 0xba6e0f6c )	/* IC10 ROM04 */
2386 
2387 	ROM_LOAD( "ic18_r1.cpu", 0x10000, 0x2000, 0x9dc986f9 )	/* IC18 ROM11 */
2388 	ROM_LOAD( "ic16_r2.cpu", 0x12000, 0x2000, 0x56e2b550 )	/* IC16 ROM09 */
2389 	ROM_LOAD( "ic14_r2.cpu", 0x14000, 0x2000, 0xf3bce576 )	/* IC14 ROM07 */
2390 	ROM_LOAD( "ic12_r2.cpu", 0x16000, 0x2000, 0x5f8b4919 )	/* IC12 ROM05 */
2391 
2392 	ROM_LOAD( "ic26_r1.cpu", 0x20000, 0x2000, 0x4ef5e805 )	/* IC26 ROM19 */
2393 	ROM_LOAD( "ic24_r1.cpu", 0x22000, 0x2000, 0x4861f063 )	/* IC24 ROM17 */
2394 	ROM_LOAD( "ic22_r1.cpu", 0x24000, 0x2000, 0x421aafa8 )	/* IC22 ROM15 */
2395 	ROM_LOAD( "ic20_r1.cpu", 0x26000, 0x2000, 0x3432ff55 )	/* IC20 ROM13 */
2396 
2397 	ROM_LOAD( "ic17_r1.cpu", 0x30000, 0x2000, 0x3e01b597 )	/* IC17 ROM10 */
2398 	ROM_LOAD( "ic15_r1.cpu", 0x32000, 0x2000, 0xff26fb29 )	/* IC15 ROM08 */
2399 	ROM_LOAD( "ic13_r2.cpu", 0x34000, 0x2000, 0x5f107db5 )	/* IC13 ROM06 */
2400 
2401 	ROM_LOAD( "ic25_r1.cpu", 0x40000, 0x2000, 0x47580af5 )	/* IC25 ROM18 */
2402 	ROM_LOAD( "ic23_r1.cpu", 0x42000, 0x2000, 0x869b5942 )	/* IC23 ROM16 */
2403 	ROM_LOAD( "ic21_r1.cpu", 0x44000, 0x2000, 0x0bbd867c )	/* IC21 ROM14 */
2404 	ROM_LOAD( "ic19_r1.cpu", 0x46000, 0x2000, 0xb9221ed1 )	/* IC19 ROM12 */
2405 
2406 	/* sound CPU */
2407 	ROM_REGION( 0x10000, REGION_CPU2 )
2408 	ROM_LOAD( "ic08_r1.cpu", 0x0E000, 0x2000, 0x84517c3c )	/* IC08 ROM08 */
2409 
2410 	/* sound board */
2411 	ROM_REGION( 0x70000, REGION_CPU3 )
2412 	ROM_LOAD( "u04_r1.snd", 0x10000, 0x8000, 0x3af6b47d )	/* IC04 ROM23 */
2413 	ROM_LOAD( "u19_r1.snd", 0x30000, 0x8000, 0xe7f9ed2e )	/* IC19 ROM24 */
2414 	ROM_LOAD( "u20_r1.snd", 0x50000, 0x8000, 0xc85b29f7 )	/* IC20 ROM25 */
2415 
2416 	ROM_REGION( 0xc000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2417 	ROM_LOAD( "ic57_r1.vid", 0x00000, 0x4000, 0x572c6b01 )	/* IC57 ROM20 */
2418 	ROM_LOAD( "ic58_r1.vid", 0x04000, 0x4000, 0xaa94bf05 )	/* IC58 ROM21 */
2419 	ROM_LOAD( "ic41_r1.vid", 0x08000, 0x4000, 0xc41e3daa )	/* IC41 ROM22 */
2420 ROM_END
2421 
2422 
2423 ROM_START( mysticm )
2424 	ROM_REGION( 0x48000, REGION_CPU1 )
2425 	ROM_LOAD( "mm02_2.a09", 0x0E000, 0x1000, 0x3a776ea8 )	/* IC9	*/
2426 	ROM_LOAD( "mm03_2.a10", 0x0F000, 0x1000, 0x6e247c75 )	/* IC10 */
2427 
2428 	ROM_LOAD( "mm11_1.a18", 0x10000, 0x2000, 0xf537968e )	/* IC18 */
2429 	ROM_LOAD( "mm09_1.a16", 0x12000, 0x2000, 0x3bd12f6c )	/* IC16 */
2430 	ROM_LOAD( "mm07_1.a14", 0x14000, 0x2000, 0xea2a2a68 )	/* IC14 */
2431 	ROM_LOAD( "mm05_1.a12", 0x16000, 0x2000, 0xb514eef3 )	/* IC12 */
2432 
2433 	ROM_LOAD( "mm18_1.a26", 0x20000, 0x2000, 0x9b391a81 )	/* IC26 */
2434 	ROM_LOAD( "mm16_1.a24", 0x22000, 0x2000, 0x399e175d )	/* IC24 */
2435 	ROM_LOAD( "mm14_1.a22", 0x24000, 0x2000, 0x191153b1 )	/* IC22 */
2436 
2437 	ROM_LOAD( "mm10_1.a17", 0x30000, 0x2000, 0xd6a37509 )	/* IC17 */
2438 	ROM_LOAD( "mm08_1.a15", 0x32000, 0x2000, 0x6f1a64f2 )	/* IC15 */
2439 	ROM_LOAD( "mm06_1.a13", 0x34000, 0x2000, 0x2e6795d4 )	/* IC13 */
2440 	ROM_LOAD( "mm04_1.a11", 0x36000, 0x2000, 0xc222fb64 )	/* IC11 */
2441 
2442 	ROM_LOAD( "mm17_1.a25", 0x40000, 0x2000, 0xd36f0a96 )	/* IC25 */
2443 	ROM_LOAD( "mm15_1.a23", 0x42000, 0x2000, 0xcd5d99da )	/* IC23 */
2444 	ROM_LOAD( "mm13_1.a21", 0x44000, 0x2000, 0xef4b79db )	/* IC21 */
2445 	ROM_LOAD( "mm12_1.a19", 0x46000, 0x2000, 0xa1f04bf0 )	/* IC19 */
2446 
2447 	/* sound CPU */
2448 	ROM_REGION( 0x10000, REGION_CPU2 )
2449 	ROM_LOAD( "mm01_1.a08", 0x0E000, 0x2000, 0x65339512 )	/* IC8	*/
2450 
2451 	ROM_REGION( 0xc000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2452 	ROM_LOAD( "mm20_1.b57", 0x00000, 0x2000, 0x5c0f4f46 )	/* IC57 */
2453 	ROM_LOAD( "mm21_1.b58", 0x04000, 0x2000, 0xcb90b3c5 )	/* IC58 */
2454 	ROM_LOAD( "mm19_1.b41", 0x08000, 0x2000, 0xe274df86 )	/* IC41 */
2455 ROM_END
2456 
2457 
2458 ROM_START( inferno )
2459 	ROM_REGION( 0x48000, REGION_CPU1 )
2460 	ROM_LOAD( "ic9.inf", 0x0E000, 0x1000, 0x1a013185 )		/* IC9	*/
2461 	ROM_LOAD( "ic10.inf", 0x0F000, 0x1000, 0xdbf64a36 ) 	/* IC10 */
2462 
2463 	ROM_LOAD( "ic18.inf", 0x10000, 0x2000, 0x95bcf7b1 )		/* IC18 */
2464 	ROM_LOAD( "ic16.inf", 0x12000, 0x2000, 0x8bc4f935 )		/* IC16 */
2465 	ROM_LOAD( "ic14.inf", 0x14000, 0x2000, 0xa70508a7 )		/* IC14 */
2466 	ROM_LOAD( "ic12.inf", 0x16000, 0x2000, 0x7ffb87f9 )		/* IC12 */
2467 
2468 	ROM_LOAD( "ic17.inf", 0x30000, 0x2000, 0xb4684139 ) 	/* IC17 */
2469 	ROM_LOAD( "ic15.inf", 0x32000, 0x2000, 0x128a6ad6 ) 	/* IC15 */
2470 	ROM_LOAD( "ic13.inf", 0x34000, 0x2000, 0x83a9e4d6 ) 	/* IC13 */
2471 	ROM_LOAD( "ic11.inf", 0x36000, 0x2000, 0xc2e9c909 ) 	/* IC11 */
2472 
2473 	ROM_LOAD( "ic25.inf", 0x40000, 0x2000, 0x103a5951 ) 	/* IC25 */
2474 	ROM_LOAD( "ic23.inf", 0x42000, 0x2000, 0xc04749a0 ) 	/* IC23 */
2475 	ROM_LOAD( "ic21.inf", 0x44000, 0x2000, 0xc405f853 ) 	/* IC21 */
2476 	ROM_LOAD( "ic19.inf", 0x46000, 0x2000, 0xade7645a ) 	/* IC19 */
2477 
2478 	/* sound CPU */
2479 	ROM_REGION( 0x10000, REGION_CPU2 )
2480 	ROM_LOAD( "ic8.inf", 0x0E000, 0x2000, 0x4e3123b8 )		/* IC8	*/
2481 
2482 	ROM_REGION( 0xc000, REGION_GFX1 | REGIONFLAG_DISPOSE )
2483 	ROM_LOAD( "ic57.inf", 0x00000, 0x2000, 0x65a4ef79 ) 	/* IC57 */
2484 	ROM_LOAD( "ic58.inf", 0x04000, 0x2000, 0x4bb1c2a0 ) 	/* IC58 */
2485 	ROM_LOAD( "ic41.inf", 0x08000, 0x2000, 0xf3f7238f ) 	/* IC41 */
2486 ROM_END
2487 
2488 
2489 
2490 /*************************************
2491  *
2492  *	Game drivers
2493  *
2494  *************************************/
2495 
2496 GAME( 1980, defender, 0,        defender, defender, defender, ROT0,   "Williams", "Defender (Red label)" )
2497 GAME( 1980, defendg,  defender, defender, defender, defender, ROT0,   "Williams", "Defender (Green label)" )
2498 GAME( 1980, defendw,  defender, defender, defender, defender, ROT0,   "Williams", "Defender (White label)" )
2499 GAMEX(1980, defndjeu, defender, defender, defender, defndjeu, ROT0,   "Jeutel", "Defender ? (bootleg)", GAME_NOT_WORKING )
2500 GAME( 1980, defcmnd,  defender, defender, defender, defender, ROT0,   "bootleg", "Defense Command (set 1)" )
2501 GAME( 1981, defence,  defender, defender, defender, defender, ROT0,   "Outer Limits", "Defence Command" )
2502 
2503 GAME( 1980, mayday,   0,        defender, defender, mayday,   ROT0,   "<unknown>", "Mayday (set 1)" )
2504 GAME( 1980, maydaya,  mayday,   defender, defender, mayday,   ROT0,   "<unknown>", "Mayday (set 2)" )
2505 
2506 GAME( 1981, colony7,  0,        defender, colony7,  colony7,  ROT270, "Taito", "Colony 7 (set 1)" )
2507 GAME( 1981, colony7a, colony7,  defender, colony7,  colony7,  ROT270, "Taito", "Colony 7 (set 2)" )
2508 
2509 GAME( 1981, stargate, 0,        williams, stargate, stargate, ROT0,   "Williams", "Stargate" )
2510 
2511 GAME( 1982, robotron, 0,        williams, robotron, robotron, ROT0,   "Williams", "Robotron (Solid Blue label)" )
2512 GAME( 1982, robotryo, robotron, williams, robotron, robotron, ROT0,   "Williams", "Robotron (Yellow/Orange label)" )
2513 
2514 GAME( 1982, joust,    0,        williams, joust,    joust,    ROT0,   "Williams", "Joust (White/Green label)" )
2515 GAME( 1982, joustr,   joust,    williams, joust,    joust,    ROT0,   "Williams", "Joust (Solid Red label)" )
2516 GAME( 1982, joustwr,  joust,    williams, joust,    joust,    ROT0,   "Williams", "Joust (White/Red label)" )
2517 
2518 GAME( 1982, bubbles,  0,        williams, bubbles,  bubbles,  ROT0,   "Williams", "Bubbles" )
2519 GAME( 1982, bubblesr, bubbles,  williams, bubbles,  bubbles,  ROT0,   "Williams", "Bubbles (Solid Red label)" )
2520 
2521 GAME( 1982, splat,    0,        williams, splat,    splat,    ROT0,   "Williams", "Splat!" )
2522 
2523 GAME( 1982, sinistar, 0,        sinistar, sinistar, sinistar, ROT270, "Williams", "Sinistar (revision 3)" )
2524 GAME( 1982, sinista1, sinistar, sinistar, sinistar, sinistar, ROT270, "Williams", "Sinistar (prototype version)" )
2525 GAME( 1982, sinista2, sinistar, sinistar, sinistar, sinistar, ROT270, "Williams", "Sinistar (revision 2)" )
2526 
2527 GAME( 1983, blaster,  0,        blaster,  blaster,  blaster,  ROT0,   "Williams", "Blaster" )
2528 
2529 GAME( 1983, mysticm,  0,        williams2,mysticm,  mysticm,  ROT0,   "Williams", "Mystic Marathon" )
2530 GAME( 1984, tshoot,   0,        williams2,tshoot,   tshoot,   ROT0,   "Williams", "Turkey Shoot" )
2531 GAMEX(1984, inferno,  0,        williams2,inferno,  inferno,  ROT0,   "Williams", "Inferno", GAME_IMPERFECT_SOUND )
2532 GAME( 1986, joust2,   0,        joust2,   joust2,   joust2,   ROT270, "Williams", "Joust 2 - Survival of the Fittest (set 1)" )
2533