1 /***************************************************************************
2 
3 							-= Seta Hardware =-
4 
5 					driver by	Luca Elia (l.elia@tin.it)
6 
7 
8 CPU    :	68000 + [65C02] (only in the earlier games)
9 Custom :	X1-001A  X1-002A			Sprites
10 			X1-001
11 			X1-002
12 			X1-003
13 			X1-004
14 			X1-005   X0-005
15 			X1-006   X0-006
16 			X1-007
17 			X1-010						Sound: 16 Bit PCM
18 			X1-011 [x2]  X1-012 [x2]	Tilemaps
19 			X1-014						Sprites?
20 
21 -------------------------------------------------------------------------------
22 Ordered by Board		Year + Game							Licensed To
23 -------------------------------------------------------------------------------
24 P0-029-A (M6100287A)	88 Thundercade / Twin Formation	(1)	Taito
25 ?        (M6100326A)	88 Twin Eagle						Taito
26 ?						89 DownTown							Taito / RomStar
27 ?        (M6100430A)	89 U.S. Classic(2)					Taito / RomStar
28 ?						88 Caliber 50						Taito / RomStar
29 ?						89 Arbalester						Taito / RomStar
30 P1-036-A + P0-045-A +
31 P1-049-A				89 Meta Fox							Taito / RomStar
32 P0-053-1				89 Castle of Dragon/Dragon Unit		Taito / RomStar / Athena
33 P0-053-A				91 Strike Gunner S.T.G				Athena / Tecmo
34 P0-053-A				92 Quiz Kokology					Tecmo
35 P0-055-B				89 Wit's							Athena
36 P0-055-D				90 Thunder & Lightning				Romstar / Visco
37 P0-063-A				91 Rezon							Allumer
38 P0-068-B (M6100723A)	92 Block Carnival					Visco
39 P0-072-2 (prototype)	92 Blandia (prototype)				Allumer
40 P0-077-A (BP922)		92 Ultraman Club					Banpresto
41 PO-078-A				92 Blandia							Allumer
42 P0-079-A				92 Zing Zing Zip					Allumer + Tecmo
43 P0-079-A				94 Eight Forces						Tecmo
44 PO-080-A (BP923)		92 SD Gundam Neo Battling (3)		Banpresto
45 ?						93 Athena no Hatena?				Athena
46 ?						93 J.J.Squawkers					Athena / Able
47 ?        (93111A)		93 War Of Aero						Yang Cheng
48 P0-081-A				93 Mobile Suit Gundam				Banpresto
49 PO-083-A (BP931)		93 Ultra Toukon Densetsu			Banpresto + Tsuburaya Prod.
50 PO-092-A				93 Daioh							Athena
51 PO-096-A (BP934KA)		93 Kamen Rider						Banpresto
52 P0-097-A				93 Oishii Puzzle ..					Sunsoft + Atlus
53 bootleg					9? Triple Fun (4)					bootleg (Comad?)
54 P0-100-A				93 Quiz Kokology 2					Tecmo
55 P0-101-1				94 Pro Mahjong Kiwame				Athena
56 PO-102-A				93 Mad Shark						Allumer
57 P0-114-A (SKB-001)		94 Krazy Bowl						American Sammy
58 P0-117-A (DH-01)		95 Extreme Downhill					Sammy Japan
59 P0-117-A?				95 Sokonuke Taisen Game				Sammy Industries
60 P0-120-A (BP954KA)		95 Gundhara							Banpresto
61 PO-122-A (SZR-001)		95 Zombie Raid						American Sammy
62 
63 -------------------------------------------------------------------------------
64 (1) YM2203 + YM3812 instead of X1-010
65 (2) wrong colors
66 (3) Same board as "Ultraman Club" despite the different PCB number
67 (4) this is a bootleg of Oishii Puzzle, in english, is there an official
68     version?  the sound system has been replaced with an OKI M6295
69     hardware is definitely bootleg. standard simple layout board with no
70     custom chips and no manufacturer on the pcb.
71 
72 Notes:
73 - The NEC D4701 used by Caliber 50 is a mouse interface IC (uPD4701c).
74   Of course it's used to control the spinner. DownTown probably has it as well.
75 
76 TODO:
77 - I think the best way to correctly align tilemaps and sprites and account for
78   both flipping and different visible areas is to have a table with per game
79   vertical and horizontal offsets for sprites, tilemaps and possibly the "floating
80   tilemaps" (made of sprites) for both the flipped and normal screen cases.
81   Current issues: metafox test grid not aligned when screen flipped, madshark & utoukond
82   ("floating tilemaps" sprites when flipped)
83   krzybowl not aligned vertically when screen flipped
84 
85 - bad sound in sokonuke?
86 - in msgunda1, colors for the score display screw up after the second animation
87   in attract mode. The end of the animation also has garbled sprites.
88   Note that the animation is not present in msgundam.
89 - Some games: battery backed portion of RAM (e.g. downtown, kiwame, zombraid)
90 - the zombraid crosshair hack can go if the nvram regions are figured out.
91 - Some games: programmable timer that generates IRQ. See e.g. gundhara:
92   lev 4 is triggerd by writes at d00000-6 and drives the sound.
93   See also msgundam.
94 
95 - tndrcade: lots of flickering sprites
96 - drgnunit sprite/bg unaligned when screen flipped (check I/O test in service mode)
97 - extdwnhl has some wrong colored tiles in one of the attract mode images and in
98   later tracks.
99 - oisipuzl doesn't support screen flip? tilemap flipping is also kludged in the video driver.
100 - eightfrc has alignment problems both flipped and not
101 - flip screen and mirror support not working correctly in zombraid
102 - gundhara visible area might be smaller (zombraid uses the same MachineDriver, and
103   the current area is right for it)
104 
105 ***************************************************************************/
106 
107 /***************************************************************************
108 
109 						Thundercade / Twin Formation
110 
111 CPU: HD68000PS8
112 SND: YM3812, YM2203C
113 OSC: 16MHz
114 
115 This PCB is loaded with custom SETA chips as follows
116 X1-001 (also has written YM3906)
117 X1-002 (also has written YM3909)
118 X1-003
119 X1-004
120 X1-006
121 
122 Rom code is UAO, M/B code is M6100287A (the TAITO logo is written also)
123 
124 P0-029-A
125 
126   UA0-4 UA0-3 4364 UA0-2 UA0-1 4364  X1-001  16MHz  X1-002
127   68000-8
128                          4364 4364   UA0-9  UA0-8  UA0-7  UA0-6
129                                      UA0-13 UA0-12 UA0-11 UA0-10
130      X0-006
131   UA10-5 2016 YM3812 YM2203  SW1
132                              SW2                   X1-006
133                                      X1-004
134                                                  X1-003
135 
136 ***************************************************************************/
137 
138 /***************************************************************************
139 
140 								Twin Eagle
141 
142 M6100326A	Taito (Seta)
143 
144 ua2-4              68000
145 ua2-3
146 ua2-6
147 ua2-5
148 ua2-8
149 ua2-10
150 ua2-7               ua2-1
151 ua2-9
152 ua2-12
153 ua2-11              ua2-2
154 
155 ***************************************************************************/
156 
157 /***************************************************************************
158 
159 								U.S. Classic
160 
161 M6100430A (Taito 1989)
162 
163        u7 119  u6 118   u5 117   u4 116
164                                          68000-8
165 u13  120                                 000
166 u19  121                                 001
167 u21  122                                 002
168 u29  123                                 003
169 u33  124
170 u40  125
171 u44  126
172 u51  127
173 u58  128
174 u60  129                                 65c02
175 u68  130
176 u75  131                                 u61 004
177 
178                                          u83 132
179 
180 ***************************************************************************/
181 /***************************************************************************
182 
183 								Caliber 50
184 
185 CPU:   TMP 68000N-8, 65C02
186 Other: NEC D4701
187 
188 UH-001-006        SW2  SW1
189 UH-001-007
190 UH-001-008                    8464         68000-8
191 UH-001-009  X1-002A X1-001A   8464         Uh-002-001=T01
192 UH-001-010                    8464            51832
193 UH-001-011                    8464            51832
194                                            UH-001-002
195 UH-001-012            X1-012               UH-001-003
196 UH-001-013                               UH-002-004-T02
197                       X1-011               5116-10
198                                            BAT
199                          16MHz
200              X1-010   65C02      X1-006
201                       UH-001-005 X1-007
202                       4701       X1-004
203 
204 ***************************************************************************/
205 /***************************************************************************
206 
207 									Meta Fox
208 
209 (Seta 1990)
210 
211 P0-045A
212 
213 P1-006-163                    8464   68000-8
214 P1-007-164    X1-002A X1-001A 8464
215 P1-008-165                    8464
216 P1-009-166                    8464     256K-12
217                                        256K-12
218 
219                  X1-012
220                  X1-011
221 
222 
223    2063    X1-010     X1-006     X0-006
224                       X1-007
225                       X1-004     X1-004
226 
227 ----------------------
228 P1-036-A
229 
230 UP-001-010
231 UP-001-011
232 UP-001-012
233 UP-001-013
234 
235 
236 UP-001-014
237 UP-001-015
238 
239 -----------------------
240 P1-049-A
241 
242               UP-001-001
243               UP-001-002
244               P1-003-161
245               P1-004-162
246 
247 
248               UP-001-005
249               x
250 
251 ***************************************************************************/
252 
253 
254 /***************************************************************************
255 
256 								Dragon Unit
257 					 [Prototype of "Castle Of Dragon"]
258 
259 PCB:	P0-053-1
260 CPU:	68000-8
261 Sound:	X1-010
262 OSC:	16.0000MHz
263 
264 Chips:	X1-001A, X1-002A, X1-004, X1-006, X1-007, X1-010, X1-011, X1-012
265 
266 ***************************************************************************/
267 /***************************************************************************
268 
269 									Wit's
270 
271 (c)1989 Athena (distributed by Visco)
272 P0-055B (board is made by Seta)
273 
274 CPU  : TMP68000N-8
275 Sound: X1-010
276 OSC  : 16.000MHz
277 
278 ROMs:
279 UN001001.U1 - Main program (27256)
280 UN001002.U4 - Main program (27256)
281 
282 UN001003.10A - Samples (28pin mask)
283 UN001004.12A /
284 
285 UN001005.2L - Graphics (28pin mask)
286 UN001006.4L |
287 UN001007.5L |
288 UN001008.7L /
289 
290 Custom chips:	X1-001A		X1-002A
291 				X1-004 (x2)
292 				X1-006
293 				X1-007
294 				X1-010
295 
296 ***************************************************************************/
297 /***************************************************************************
298 
299 							Thunder & Lightning
300 
301 Location      Device      File ID      Checksum
302 -----------------------------------------------
303 U1  1A        27C256        M4           C18C   [ MAIN PROG ] [ EVEN ]
304 U4  3A        27C256        M5           12E1   [ MAIN PROG ] [ ODD  ]
305 U29 10A      23C4001        R27          37F2   [   HIGH    ]
306 U39 12A      23C4001        R28          0070   [   LOW     ]
307 U6  2K       23C1000        T14          1F7D   [   C40     ]
308 U9  4K       23C1000        T15          7A15   [   C30     ]
309 U14 5K       23C1000        T16          BFFD   [   C20     ]
310 U20 7K       23C1000        T17          7AE7   [   C10     ]
311 
312 PCB: PO055D
313 
314 CPU: 68000 8MHz
315 
316 Custom:	X1-001A		X1-002A
317 		X1-004
318 		X1-006
319 		X1-007
320 		X1-010
321 
322 ***************************************************************************/
323 
324 
325 
326 /***************************************************************************
327 
328 								Athena no Hatena?
329 
330 CPU  : 68000-16
331 Sound: X1-010
332 OSC  : 16.0000MHz
333 
334 ROMs:
335 fs001001.evn - Main programs (27c4001)
336 fs001002.odd /
337 
338 fs001004.pcm - Samples (8M mask - read as 27c800)
339 fs001003.gfx - Graphics (16M mask - read as 27c160)
340 
341 Chips:	X1-001A	X1-002A
342 		X1-004
343 		X1-006
344 		X1-007
345 		X1-010
346 
347 ***************************************************************************/
348 
349 /***************************************************************************
350 
351 								Blandia
352 
353 Blandia by Allumer
354 
355 This set is coming from an original Blandia PCB ref : PO-078A
356 
357 As usually, it use a lot of customs allumer chips !
358 
359 ***************************************************************************/
360 /***************************************************************************
361 
362 								Blandia (prototype)
363 
364 PCB:	P0-072-2
365 CPU:	68000-16
366 Sound:	X1-010
367 OSC:	16.0000MHz
368 
369 Chips:	X1-001A		X1-002A
370 		X1-004
371 		X1-007
372 		X1-010
373 		X1-011 x2	X1-012 x2
374 
375 ***************************************************************************/
376 
377 /***************************************************************************
378 
379 					Block Carnival / Thunder & Lightning 2
380 
381 P0-068B, M6100723A
382 
383 CPU  : MC68000B8
384 Sound: X1-010
385 OSC  : 16.000MHz
386 
387 ROMs:
388 u1.a1 - Main programs (27c010)
389 u4.a3 /
390 
391 bl-chr-0.j3 - Graphics (4M mask)
392 bl-chr-1.l3 /
393 
394 bl-snd-0.a13 - Sound (4M mask)
395 
396 Custom chips:	X1-001A	X1-002A
397 				X1-004
398 				X1-006
399 				X1-007
400 				X1-009
401 				X1-010
402 
403 Other:
404 Lithium battery x1
405 
406 ***************************************************************************/
407 
408 
409 
410 
411 /***************************************************************************
412 
413 							Daioh
414 
415 DAIOH
416 Alumer 1993, Sammy license
417 PO-092A
418 
419 
420 FG-001-003
421 FG-001-004  X1-002A X1-001A             FG-001-001
422                                         FG-001-002
423 FG-001-005   X1-11 X1-12
424 FG-001-006   X1-11 X1-12
425                                        68000-16
426 FG-001-007
427 
428    X1-10                           16MHz
429 
430                             X1-007  X1-004
431 
432 ***************************************************************************/
433 
434 
435 /***************************************************************************
436 
437 								Eight Forces
438 
439 PO-079A (Same board as ZingZingZip)
440 
441 CPU  : MC68000B16
442 Sound: X1-010
443 OSC  : 16.000MHz
444 
445 ROMs:
446 uy2-u4.u3 - Main program (even)(27c2001)
447 uy2-u3.u4 - Main program (odd) (27c2001)
448 
449 u63.bin - Sprites (HN62434, read as 27c4200)
450 u64.bin /
451 
452 u69.bin - Samples (HN62318, read as 27c8001)
453 u70.bin /
454 
455 u66.bin - Layer 1 (HN62418, read as 27c800)
456 u68.bin - Layer 2 (HN62418, read as 27c800)
457 
458 PALs (not dumped):
459 uy-012.206 (PAL16L8A)
460 uy-013.14  (PAL16L8A)
461 uy-014.35  (PAL16L8A)
462 uy-015.36  (PALCE16V8)
463 uy-016.76  (PAL16L8A)
464 uy-017.116 (PAL16L8A)
465 
466 Custom:		X1-001A	X1-002A
467 			X1-004
468 			X1-007
469 			X1-010
470 			X1-011 (x2)		X1-012 (x2)
471 
472 ***************************************************************************/
473 
474 /***************************************************************************
475 
476 								Extreme Downhill
477 
478 (c)1995 Sammy
479 DH-01
480 PO-117A (board is made by Seta/Allumer)
481 
482 CPU  : MC68HC000B16
483 Sound: X1-010
484 OSC: 16.0000MHz (X1), 14.3180MHz (X2)
485 
486 ROMs:
487 fw001002.201 - Main program (even) (Macronics 27c4000)
488 fw001001.200 - Main program (odd)  (Macronics 27c4000)
489 
490 fw001005.205 - (32pin mask, read as 27c8001)
491 fw001007.026 /
492 
493 fw001003.202 - (42pin mask, read as 27c160)
494 fw001004.206 |
495 fw001006.152 /
496 
497 PALs (16L8ACN, not dumped):
498 FW-001
499 FW-002
500 FW-003
501 FW-005
502 
503 Custom chips:	X1-001A		X1-002A
504 				X1-004
505 				X1-007
506 				X1-010
507 				X1-011 (x2)	X1-012 (x2)
508 
509 ***************************************************************************/
510 
511 
512 /***************************************************************************
513 
514 									GundHara
515 
516 (C) 1995 Banpresto
517 Seta/Allumer Hardware
518 
519 PCB: BP954KA
520 PCB: PO-120A
521 CPU: TMP68HC000N16 (68000, 64 pin DIP)
522 SND: ?
523 OSC: 16.000MHz
524 RAM: 6264 x 8, 62256 x 4
525 DIPS: 2 x 8 position
526 Other Chips:	PALs x 6 (not dumped)
527 				NEC 71054C
528 				X1-004
529 				X1-007
530 				X1-010
531 				X1-011 x2	X1-012 x2
532 				X1-001A		X1-002A
533 
534 On PCB near JAMMA connector is a small push button to reset the PCB.
535 
536 ROMS:
537 BPGH-001.102	27C040
538 BPGH-002.103	27C4000
539 BPGH-003.U3		27C4000
540 BPGH-004.U4		23C4000
541 BPGH-005.200	23C16000
542 BPGH-006.201	23C16000
543 BPGH-007.U63	23C16000
544 BPGH-008.U64	23C16000
545 BPGH-009.U65	27C4000
546 BPGH-010.U66	TC538200
547 BPGH-011.U67	TC538000
548 BPGH-012.U68	TC5316200
549 BPGH-013.U70	TC538000
550 
551 ***************************************************************************/
552 
553 /***************************************************************************
554 
555 Zombie Raid
556 Sammy, 1996
557 
558 This is a gun shooting game using Seta/Allumer hardware.
559 
560 PCB Layout
561 ----------
562 
563 SZR-001
564 PO-122A
565 ------------------------------------------------------------------
566         FY001012.12L*       FY001009.U67      FY001007.U65
567    FY001011.13L*    FY001010.U68     FY001008.U66    FY001006.U200
568    X1-010    6264
569 
570     CONN1          X1-011(x2)     X1-002A
571                    X1-012(x2)     X1-001A
572 
573                                             3V_BATT
574                                                     4464
575 
576 X1-007   6264(x2)   6264(x2)    6264(x2)    6264(x2)
577 
578        16.000MHz                                 HM9253101(x2)
579 
580 X1-004 DSW2        D71054C
581        DSW1    TMP68HC000N-16  FY001004.U4     FY001001.U102
582                                       FY001003.U3    FY001002.U103
583 ------------------------------------------------------------------
584 
585 Notes:
586 *     = These ROMs located on a small daughterboard. Main PCB locations used as filename extension.
587 CONN1 = 8 pin header for gun connection
588 
589 ***************************************************************************/
590 
591 
592 /***************************************************************************
593 
594 								J.J. Squawkers
595 
596 68HC000N -16N
597 
598 2)   Alumer  X1-012
599 2)   Alumer  X1-011
600 2)   Alumer  X1-014
601 
602 X1-010
603 X1-007
604 X1-004
605 16.000MHz
606 
607 NEC 71054C  ----???
608 
609 ***************************************************************************/
610 
611 /***************************************************************************
612 
613 								Kamen Rider
614 Kamen Riderclub Battleracer
615 Banpresto, 1993
616 
617 Runs on Seta/Allumer hardware
618 
619 PCB No: BP934KA   PO-096A
620 CPU   : MC68HC000B16
621 OSC   : 16.000MHz
622 RAM   : LH5160D-10L (x9), CXK58257AP-10L (x2)
623 DIPSW : 8 position (x2)
624 CUSTOM: X1-010
625         X1-007
626         X1-004
627         X1-011 (x2)
628         X1-012 (x2)
629         X1-002A
630         X1-001A
631 OTHER : NEC71054C, some PALs
632 
633 ROMs  :
634         FJ001007.152	27c4096     near X1-011 & X1-010 (sound program?)
635         FJ001008.26     8M Mask     connected to X1-010, near FJ001007
636         FJ001003.25     27c4096     main program for 68k
637         FJ001006.22     16M Mask    gfx
638         FJ001005.21     16M Mask    gfx
639 
640 ***************************************************************************/
641 
642 /***************************************************************************
643 
644 								Krazy Bowl
645 
646 PCB:	SKB-001
647 		PO-114A
648 
649 FV   FV                           2465
650 001  001                          2465           X1-005
651 004  003      X1-002A  X1-001A
652                                        58257     FV
653                                                  001
654                                                  002 (even)
655                                        58257
656                   14.318MHz                      FV
657                                                  001
658 FV 001 005                                       001 (odd)
659 FV 001 006
660   2465                                      68HC000B16
661                  NEC4701  NEC4701
662 
663 X1-010           X1-006
664                  X1-007      X1-004
665 
666 ***************************************************************************/
667 
668 
669 /***************************************************************************
670 
671 
672 									Mad Shark
673 
674 Allumer, 1993
675 This game is a vertical shoot'em-up and runs on fairly standard Allumer hardware.
676 
677 PCB Layout
678 ----------
679 
680 PO-102A
681 ----------------------------------------------------
682 |     X1-010   FQ001007 FQ001006 FQ001005 FQ001004 |
683 |           LH5160                                 |
684 |                    X1-011  X1-011       X1-002A  |
685 |                                                  |
686 |J                   X1-012  X1-012       X1-001A  |
687 |A X1-007                                          |
688 |M   LH5160           LH5160 LH5160 LH5160         |
689 |M                                                 |
690 |A   LH5160           LH5160 LH5160 LH5160         |
691 |                                         FQ001002 |
692 |*           MC68HC000B16                          |
693 |  X1-004                                          |
694 |                                         FQ001001 |
695 |                        LH52250                   |
696 | DSW2(8) DSW1(8) 16MHz  LH52250    D71054         |
697 ----------------------------------------------------
698 
699 Notes:
700       *: 4 jumper pads for region selection (hardwired)
701 
702 ***************************************************************************/
703 
704 /***************************************************************************
705 
706 							Mobile Suit Gundam
707 
708 Banpresto 1993
709 P0-081A
710                                SW2  SW1
711 
712 FA-001-008                          FA-001-001
713 FA-001-007    X1-002A X1-001A       FA-002-002
714                               5160
715                               5160
716                                         71054
717 FA-001-006                    5160     62256
718 FA-001-005    X1-011  X1-012  5160     62256
719 
720 FA-001-004    X1-011  X1-012  5160
721 5160                          5160
722 
723                                 68000-16
724 
725                                          16MHz
726   X1-010
727                     X1-007   X1-004     X1-005
728 
729 ***************************************************************************/
730 
731 /***************************************************************************
732 
733 							Oishii Puzzle Ha Irimasenka
734 
735 PCB  : PO-097A
736 CPU  : 68000
737 Sound: X1-010
738 OSC  : 14.31818MHz
739 
740 All ROMs are 23c4000
741 
742 Custom chips:	X1-001A	X1-002A
743 				X1-004
744 				X1-007
745 				X1-010
746 				X1-011 (x2)	X1-012 (x2)
747 
748 ***************************************************************************/
749 
750 /***************************************************************************
751 
752 							Triple Fun
753 
754 Triple Fun
755 ??, 19??
756 
757 
758 CPU   : TMP68HC000P-16 (68000)
759 SOUND : OKI M6295
760 DIPSW : 8 position (x2)
761 XTAL  : 16.000 MHz (8MHz written on PCB, located near OKI chip)
762         14.31818MHz (near 68000)
763 RAM   : 62256 (x2), 6264 (x8), 2018 (x14)
764 PROMs : None
765 PALs  : PALCE16V8H (x13)
766 OTHER : TPC1020AFN-084C (84 pin PLCC)
767 
768 ROMs  :
769 
770 04.bin + 05.bin    Main Program
771 01.bin             Sound Program
772 02.bin + 03.bin    OKI Samples
773 06.bin to 11.bin   GFX
774 
775 
776 
777 ***************************************************************************/
778 
779 /***************************************************************************
780 
781 							Pro Mahjong Kiwame
782 
783 PCB  : PO-101-1 (the board is made by Allumer/Seta)
784 CPU  : TMP68301AF-16 (68000 core)
785 Sound: X1-010
786 OSC  : 20.0000MHz
787 
788 ROMs:
789 fp001001.bin - Main program (27c2001, even)
790 fp001002.bin - Main program (27c2001, odd)
791 fp001003.bin - Graphics (23c4000)
792 fp001005.bin - Samples (27c4000, high)
793 fp001006.bin - Samples (27c4000, low)
794 
795 Chips:	X1-001A
796 		X1-002A
797 		X1-004
798 		X1-006
799 		X1-007
800 		X1-010
801 
802 - To initialize high scores, power-on holding start button in service mode
803 
804 ***************************************************************************/
805 
806 
807 /***************************************************************************
808 
809 								Quiz Kokology
810 
811 (c)1992 Tecmo
812 
813 PO-053A
814 
815 CPU  : MC68000B8
816 Sound: X1-010
817 OSC  : 16.000MHz
818 
819 Custom chips:	X1-001A	X1-002A
820 				X1-004
821 				X1-006	X1-007
822 				X1-010
823 				X1-011	X1-012
824 
825 ***************************************************************************/
826 
827 
828 /***************************************************************************
829 
830 								Quiz Koko-logy 2
831 
832 (c)1992 Tecmo
833 
834 P0-100A
835 
836 CPU  : MC68HC000B16
837 Sound: X1-010
838 OSC  : 16.000MHz
839 
840 FN001001.106 - Main program (27C4096)
841 FN001003.107 / (40pin 2M mask)
842 
843 FN001004.100 - OBJ chr. (42pin mask)
844 FN001005.104 - BG chr. (42pin mask)
845 FN001006.105 - Samples (32pin mask)
846 
847 Custom chips:	X1-001A		X1-002A
848 				X1-004
849 				X1-006
850 				X1-007
851 				X1-010
852 				X1-011		X1-012
853 
854 ***************************************************************************/
855 
856 
857 /***************************************************************************
858 
859 								Rezon (Japan)
860 
861 PCB 	: PO-063A
862 CPU 	: TOSHIBA TMP68HC000N-16
863 Sound	: X1-010
864 OSC 	: 16.000MHz
865 Other	: Allumer
866 			X1-001A			X1-002A
867 			X1-004
868 			X1-007
869 			X1-011 x 2		X1-012 x 2
870 
871 ***************************************************************************/
872 
873 
874 /***************************************************************************
875 
876 							SD Gundam Neo Battling
877 
878 Banpresto, 1992
879 This game runs on Seta/Allumer hardware
880 
881 PCB Layout
882 ----------
883 
884 PO-080A
885 BP923
886 |----------------------------------------------
887 |DSW1  DSW2                   LH5168  62256   |
888 |                             LH5168  62256   |
889 |LH5168                                       |
890 |                                             |
891 |         BP923004                   BP923001 |
892 |BP923005 BP923003 X1-002A X1-001A   BP923002 |
893 |                                  16MHz      |
894 |                              TMP68HC000N-16 |
895 |X1-010                           PAL         |
896 |                                 PAL  X1-006 |
897 |                                             |
898 |                                             |
899 |                              X1-004  X1-007 |
900 |                                             |
901 |                                             |
902 |                                             |
903 |                                             |
904 |                 J A M M A                   |
905 -----------------------------------------------
906 
907 Notes:
908       68k clock: 16.000MHz
909       VSync: 58Hz
910       HSync: 15.22kHz
911 
912 
913 ***************************************************************************/
914 
915 
916 /***************************************************************************
917 
918 							Sokonuke Taisen Game (Japan)
919 
920 (c)1995 Sammy
921 
922 CPU:	68HC000
923 Sound:	All PCM ?
924 OSC:	16MHz
925 
926 ***************************************************************************/
927 
928 
929 /***************************************************************************
930 
931 								Strike Gunner
932 
933 (c)1991 Athena (distributed by Tecmo)
934 
935 PO-053A
936 
937 CPU  : TMP68000N-8
938 Sound: X1-010
939 OSC  : 16.000MHz
940 
941 Custom chips:	X1-001A	X1-002A
942 				X1-004
943 				X1-006	X1-007
944 				X1-010
945 				X1-011	X1-012
946 
947 ***************************************************************************/
948 
949 /***************************************************************************
950 
951 								Ultraman Club
952 
953 Banpresto, 1992
954 Board looks similar to Castle of Dragon PCB.
955 
956 PCB No: PO-077A (Seta Number)
957         BP922   (Banpresto Number)
958 
959 CPU: MC68HC000B16
960 OSC: 16.000MHz
961 DIP SW x 2 (8 position)
962 
963 RAM: Sharp LH5160D-10L x 3, Hitachi S256KLP-12 x 2
964 PALs (2 x PAL16L8, not dumped)
965 SETA Chips:	X1-010
966 			X1-004
967 			X1-007
968 			X1-006
969 			X1-002A
970 			X1-001A
971 
972 Controls are 8 way Joystick and 2 buttons.
973 
974 ROMs:
975 
976 UW001006.U48      27C010                                               \  Main Program
977 UW001007.U49      27C010                                               /
978 
979 BP-U-001.U1       4M mask (40 pin, 512k x 8), read as MX27C4100        \  GFX
980 BP-U-002.U2       4M mask (40 pin, 512k x 8), read as MX27C4100        /
981 
982 BP-U-003.U13      8M mask (32 pin, 1M x 8),   read as MX27C8000           Sound
983 
984 
985 ***************************************************************************/
986 
987 /***************************************************************************
988 Ultra Toukon Densetsu
989 Banpresto, 1993
990 
991 This game runs on fairly standard Allumer hardware.
992 
993 PCB Layout
994 ----------
995 
996 PO-083A
997 BP931
998 ----------------------------------------------------
999 |     X1-010  93UTA08  93UTA06 93UTA04  93UTA02    |
1000 |                93UTA07 93UTA05  93UTA03  93UTA01 |
1001 |  YM3438   LH5116                                 |
1002 |  LH5116            X1-011  X1-011       X1-002A  |
1003 |  Z80 93UTA009                                    |
1004 |J                   X1-012  X1-012       X1-001A  |
1005 |A X1-007                                          |
1006 |M   LH5116           LH5160 LH5160 LH5160         |
1007 |M                                                 |
1008 |A   LH5116           LH5160 LH5160 LH5160         |
1009 |                                                  |
1010 |*      16MHz                                      |
1011 |  X1-004                                   62256  |
1012 |                                           62256  |
1013 | DSW1(8)               93UTA011  93UTA010         |
1014 | DSW2(8)   68HC000N-16                            |
1015 ----------------------------------------------------
1016 
1017 Notes:
1018       *: 4 jumper pads for region selection (hardwired)
1019       Z80 clock = 4.000MHz
1020       VSync: 60Hz
1021       HSync: 15.21kHz
1022 
1023 
1024 1.048.576 93uta03.63
1025 1.048.576 93uta04.64
1026 1.048.576 93uta05.66
1027 1.048.576 93uta06.67
1028 1.048.576 93uta07.68
1029 1.048.576 93uta08.69
1030 
1031 ***************************************************************************/
1032 
1033 /***************************************************************************
1034 
1035 							   War of Aero
1036 							Project M E I O U
1037 
1038 93111A	YANG CHENG
1039 
1040 CPU   : TOSHIBA TMP68HC000N-16
1041 Sound : Allumer X1-010
1042 OSC   : 16.000000MHz
1043 Other : Allumer
1044 			X1-001A  X1-002A
1045 			X1-004
1046 			X1-007
1047 			X1-011 x 2
1048 			X1-012 x 2
1049 		NEC
1050 			C324C
1051 			D71054C
1052 
1053 ***************************************************************************/
1054 
1055 
1056 
1057 /***************************************************************************
1058 
1059 								Zing Zing Zip
1060 
1061 P0-079A
1062 
1063 UY-001-005   X1-002A   X1-001A   5168-10      256k-12
1064 UY-001-006                       5168-10      UY-001-001
1065 UY-001-007                                    UY-001-002
1066 UY-001-008   X1-011 X1-012                    58257-12
1067                                  5168-10
1068 UY-001-010   X1-011 X1-012       5168-10
1069 UY-001-017
1070 UY-001-018
1071                                  5168-10
1072 X1-010                           5168-10       68000-16
1073 
1074 
1075                            8464-80
1076                            8464-80       16MHz
1077 
1078 
1079                              X1-007    X1-004
1080 
1081 ***************************************************************************/
1082 
1083 #include "driver.h"
1084 #include "vidhrdw/generic.h"
1085 #include "seta.h"
1086 
1087 /* Variables and functions only used here */
1088 
1089 static unsigned char *sharedram;
1090 
1091 
1092 #if __uPD71054_TIMER
1093 
1094 #define	USED_TIMER_NUM	1
1095 /*------------------------------
1096 	timer(uPD71054) struct
1097 ------------------------------*/
1098 static struct st_chip {
1099 	void			*timer[3];			/* Timer*/
1100 	unsigned short	max[3];				/* Max counter*/
1101 	unsigned short	write_select;		/* Max counter write select*/
1102 	unsigned char	reg[4];				/**/
1103 } uPD71054;
1104 
1105 /*------------------------------
1106 	uppdate timer
1107 ------------------------------*/
uPD71054_update_timer(int no)1108 void uPD71054_update_timer( int no )
1109 {
1110 	int		max = 0;
1111 	double	duration = 0;
1112 
1113 	timer_adjust( uPD71054.timer[no], TIME_NEVER, no, 0 );
1114 
1115 	max = (int)uPD71054.max[no]&0xffff;
1116 
1117 	if( max != 0 ) {
1118 		duration = (double)Machine->drv->cpu[0].cpu_clock/16/max;
1119 	}
1120 	if( duration != 0 ) {
1121 		timer_adjust( uPD71054.timer[no], TIME_IN_HZ(duration), no, 0 );
1122 	} else {
1123 		logerror( "CPU #0 PC %06X: uPD71054 error, timer %d duration is 0\n",
1124 				activecpu_get_pc(), no );
1125 	}
1126 }
1127 
1128 
1129 
1130 /*------------------------------
1131 	callback
1132 ------------------------------*/
uPD71054_timer_callback(int no)1133 void uPD71054_timer_callback( int no )
1134 {
1135 	cpu_set_irq_line( 0, 4, HOLD_LINE );
1136 	uPD71054_update_timer( no );
1137 }
1138 
1139 
1140 
1141 /*------------------------------
1142 	initialize
1143 ------------------------------*/
uPD71054_timer_init(void)1144 void uPD71054_timer_init( void )
1145 {
1146 	int no;
1147 
1148 	uPD71054.write_select = 0;
1149 
1150 	for( no = 0; no < USED_TIMER_NUM; no++ ) {
1151 		uPD71054.max[no] = 0xffff;
1152 	}
1153 	for( no = 0; no < USED_TIMER_NUM; no++ ) {
1154 		uPD71054.timer[no] = timer_alloc( uPD71054_timer_callback );
1155 	}
1156 }
1157 
1158 
1159 
1160 /*------------------------------
1161 	exit
1162 ------------------------------*/
uPD71054_timer_stop(void)1163 void uPD71054_timer_stop( void )
1164 {
1165 	timer_free();
1166 }
1167 
1168 
1169 
1170 /*------------------------------
1171 	timer write handler
1172 ------------------------------*/
WRITE16_HANDLER(timer_regs_w)1173 WRITE16_HANDLER( timer_regs_w )
1174 {
1175 	data &= 0xff;
1176 
1177 	uPD71054.reg[offset] = data;
1178 
1179 	switch( offset ) {
1180 	  case 0x0000:
1181 	  case 0x0001:
1182 	  case 0x0002:
1183 		if( uPD71054.write_select == 0 ) {
1184 			uPD71054.max[offset] = (uPD71054.max[offset]&0xff00)+data;
1185 			if( ((uPD71054.reg[3]>>4)&3) == 3 ) {
1186 				uPD71054.write_select = 1;
1187 			}
1188 		} else {
1189 			uPD71054.max[offset] = (uPD71054.max[offset]&0x00ff)+(data<<8);
1190 		}
1191 		if( uPD71054.max[offset] != 0 ) {
1192 			uPD71054_update_timer( offset );
1193 		}
1194 		break;
1195 	  case 0x0003:
1196 		switch( (data>>4)&3 ) {
1197 		  case 2: uPD71054.write_select = 1; break;
1198 		  case 1:
1199 		  case 3: uPD71054.write_select = 0; break;
1200 		}
1201 		break;
1202 	}
1203 }
1204 #endif	/* __uPD71054_TIMER*/
1205 
1206 
1207 
1208 
1209 /***************************************************************************
1210 
1211 
1212 									Sound
1213 
1214 
1215 ***************************************************************************/
1216 
1217 static struct x1_010_interface seta_sound_intf_8MHz =
1218 {
1219 	8000000,	/* clock */
1220 	YM3012_VOL(100,MIXER_PAN_LEFT,100,MIXER_PAN_RIGHT),	/* volume */
1221 	0x0000,		/* address */
1222 };
1223 static struct x1_010_interface seta_sound_intf_16MHz =
1224 {
1225 	16000000,	/* clock */
1226 	YM3012_VOL(100,MIXER_PAN_LEFT,100,MIXER_PAN_RIGHT),	/* volume */
1227 	0x0000,		/* address */
1228 };
1229 static struct x1_010_interface seta_sound_intf_16MHz2 =
1230 {
1231 	16000000,	/* clock */
1232 	YM3012_VOL(100,MIXER_PAN_LEFT,100,MIXER_PAN_RIGHT),	/* volume */
1233 	0x1000,		/* address */
1234 };
1235 
utoukond_ym3438_interrupt(int linestate)1236 static void utoukond_ym3438_interrupt(int linestate)
1237 {
1238 	cpu_set_nmi_line(1,linestate);
1239 }
1240 
1241 static struct YM2612interface utoukond_ym3438_intf =
1242 {
1243 	1,
1244 	6000000,	/* ?*/
1245 	{ YM3012_VOL(30,MIXER_PAN_LEFT,30,MIXER_PAN_RIGHT) },
1246 	{ 0 },		/* port I/O*/
1247 	{ 0 },
1248 	{ 0 },
1249 	{ 0 },
1250 	{ utoukond_ym3438_interrupt }	/* IRQ handler*/
1251 };
1252 
1253 /***************************************************************************
1254 
1255 
1256 								Common Routines
1257 
1258 
1259 ***************************************************************************/
1260 
1261 /*
1262 
1263  Mirror RAM
1264 
1265 */
1266 static data16_t *mirror_ram;
1267 
READ16_HANDLER(mirror_ram_r)1268 READ16_HANDLER( mirror_ram_r )
1269 {
1270 	return mirror_ram[offset];
1271 }
1272 
WRITE16_HANDLER(mirror_ram_w)1273 WRITE16_HANDLER( mirror_ram_w )
1274 {
1275 	COMBINE_DATA(&mirror_ram[offset]);
1276 /*	log_cb(RETRO_LOG_DEBUG, LOGPRE "PC %06X - Mirror RAM Written: %04X <- %04X\n", activecpu_get_pc(), offset*2, data);*/
1277 }
1278 
1279 
1280 
1281 /*
1282 
1283  Shared RAM:
1284 
1285  The 65c02 sees a linear array of bytes that is mapped, for the 68000,
1286  to a linear array of words whose low order bytes hold the data
1287 
1288 */
1289 
READ16_HANDLER(sharedram_68000_r)1290 static READ16_HANDLER( sharedram_68000_r )
1291 {
1292 	return ((data16_t) sharedram[offset]) & 0xff;
1293 }
1294 
WRITE16_HANDLER(sharedram_68000_w)1295 static WRITE16_HANDLER( sharedram_68000_w )
1296 {
1297 	if (ACCESSING_LSB)	sharedram[offset] = data & 0xff;
1298 }
1299 
1300 
1301 
1302 
1303 /*
1304 
1305  Sub CPU Control
1306 
1307 */
1308 
WRITE16_HANDLER(sub_ctrl_w)1309 static WRITE16_HANDLER( sub_ctrl_w )
1310 {
1311 	static int old_data = 0;
1312 
1313 	switch(offset)
1314 	{
1315 		case 0/2:	/* bit 0: reset sub cpu?*/
1316 			if (ACCESSING_LSB)
1317 			{
1318 				if ( !(old_data&1) && (data&1) )
1319 					cpu_set_reset_line(1,PULSE_LINE);
1320 				old_data = data;
1321 			}
1322 			break;
1323 
1324 		case 2/2:	/* ?*/
1325 			break;
1326 
1327 		case 4/2:	/* not sure*/
1328 			if (ACCESSING_LSB)	soundlatch_w(0, data & 0xff);
1329 			break;
1330 
1331 		case 6/2:	/* not sure*/
1332 			if (ACCESSING_LSB)	soundlatch2_w(0, data & 0xff);
1333 			break;
1334 	}
1335 
1336 }
1337 
1338 
1339 const struct GameDriver driver_blandia;
1340 const struct GameDriver driver_gundhara;
1341 const struct GameDriver driver_kamenrid;
1342 const struct GameDriver driver_zingzip;
1343 
1344 /*	---- 3---		Coin #1 Lock Out
1345 	---- -2--		Coin #0 Lock Out
1346 	---- --1-		Coin #1 Counter
1347 	---- ---0		Coin #0 Counter		*/
1348 
seta_coin_lockout_w(int data)1349 void seta_coin_lockout_w(int data)
1350 {
1351 	coin_counter_w		(0, (( data) >> 0) & 1 );
1352 	coin_counter_w		(1, (( data) >> 1) & 1 );
1353 
1354 	/* blandia, gundhara, kamenrid & zingzip haven't the coin lockout device */
1355 	if (Machine->gamedrv			==	&driver_blandia  ||
1356 		Machine->gamedrv->clone_of	==	&driver_blandia  ||
1357 
1358 		Machine->gamedrv			==	&driver_gundhara ||
1359 		Machine->gamedrv->clone_of	==	&driver_gundhara ||
1360 
1361 		Machine->gamedrv			==	&driver_kamenrid ||
1362 		Machine->gamedrv->clone_of	==	&driver_kamenrid ||
1363 
1364 		Machine->gamedrv			==	&driver_zingzip  ||
1365 		Machine->gamedrv->clone_of	==	&driver_zingzip     )
1366 		return;
1367 	coin_lockout_w		(0, ((~data) >> 2) & 1 );
1368 	coin_lockout_w		(1, ((~data) >> 3) & 1 );
1369 }
1370 
1371 
1372 /* DSW reading for 16 bit CPUs */
READ16_HANDLER(seta_dsw_r)1373 static READ16_HANDLER( seta_dsw_r )
1374 {
1375 	data16_t dsw = readinputport(3);
1376 	if (offset == 0)	return (dsw >> 8) & 0xff;
1377 	else				return (dsw >> 0) & 0xff;
1378 }
1379 
1380 
1381 /* DSW reading for 8 bit CPUs */
1382 
READ_HANDLER(dsw1_r)1383 static READ_HANDLER( dsw1_r )
1384 {
1385 	return (readinputport(3) >> 8) & 0xff;
1386 }
1387 
READ_HANDLER(dsw2_r)1388 static READ_HANDLER( dsw2_r )
1389 {
1390 	return (readinputport(3) >> 0) & 0xff;
1391 }
1392 
1393 
1394 /*
1395 
1396  Sprites Buffering
1397 
1398 */
VIDEO_EOF(seta_buffer_sprites)1399 VIDEO_EOF( seta_buffer_sprites )
1400 {
1401 	int ctrl2	=	spriteram16[ 0x602/2 ];
1402 	if (~ctrl2 & 0x20)
1403 	{
1404 		if (ctrl2 & 0x40)
1405 			memcpy(&spriteram16_2[0x0000/2],&spriteram16_2[0x2000/2],0x2000/2);
1406 		else
1407 			memcpy(&spriteram16_2[0x2000/2],&spriteram16_2[0x0000/2],0x2000/2);
1408 	}
1409 }
1410 
1411 
1412 /***************************************************************************
1413 
1414 
1415 									Main CPU
1416 
1417 (for debugging it is useful to be able to peek at some memory regions that
1418  the game writes to but never reads from. I marked this regions with an empty
1419  comment to distinguish them, since there's always the possibility that some
1420  games actually read from this kind of regions, expecting some hardware
1421  register's value there, instead of the data they wrote)
1422 
1423 ***************************************************************************/
1424 
1425 
1426 /***************************************************************************
1427 								Thundercade
1428 ***************************************************************************/
1429 
1430 /* Mirror RAM seems necessary since the e00000-e03fff area is not cleared
1431    on startup. Level 2 int uses $e0000a as a counter that controls when
1432    to write a value to the sub cpu, and when to read the result back.
1433    If the check fails "error x0-006" is displayed. Hence if the counter
1434    is not cleared at startup the game could check for the result before
1435    writing to sharedram! */
1436 
1437 
MEMORY_READ16_START(tndrcade_readmem)1438 static MEMORY_READ16_START( tndrcade_readmem )
1439 	{ 0x000000, 0x07ffff, MRA16_ROM				},	/* ROM*/
1440 	{ 0x380000, 0x3803ff, MRA16_RAM				},	/* Palette*/
1441 /**/{ 0x400000, 0x400001, MRA16_RAM				},	/* ? $4000*/
1442 /**/{ 0x600000, 0x600607, MRA16_RAM				},	/* Sprites Y*/
1443 	{ 0xa00000, 0xa00fff, sharedram_68000_r		},	/* Shared RAM*/
1444 	{ 0xc00000, 0xc03fff, MRA16_RAM				},	/* Sprites Code + X + Attr*/
1445 	{ 0xe00000, 0xe03fff, MRA16_RAM				},	/* RAM (Mirrored?)*/
1446 	{ 0xffc000, 0xffffff, mirror_ram_r			},	/* RAM (Mirrored?)*/
1447 MEMORY_END
1448 
1449 static MEMORY_WRITE16_START( tndrcade_writemem )
1450 	{ 0x000000, 0x07ffff, MWA16_ROM						},	/* ROM*/
1451 	{ 0x200000, 0x200001, MWA16_NOP						},	/* ? 0*/
1452 	{ 0x280000, 0x280001, MWA16_NOP						},	/* ? 0 / 1 (sub cpu related?)*/
1453 	{ 0x300000, 0x300001, MWA16_NOP						},	/* ? 0 / 1*/
1454 	{ 0x380000, 0x3803ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	/* Palette*/
1455 	{ 0x400000, 0x400001, MWA16_RAM						},	/* ? $4000*/
1456 	{ 0x600000, 0x600607, MWA16_RAM, &spriteram16		},	/* Sprites Y*/
1457 	{ 0x800000, 0x800007, sub_ctrl_w					},	/* Sub CPU Control?*/
1458 	{ 0xa00000, 0xa00fff, sharedram_68000_w				},	/* Shared RAM*/
1459 	{ 0xc00000, 0xc03fff, MWA16_RAM, &spriteram16_2		},	/* Sprites Code + X + Attr*/
1460 	{ 0xe00000, 0xe03fff, MWA16_RAM, &mirror_ram		},	/* RAM (Mirrored?)*/
1461 	{ 0xffc000, 0xffffff, mirror_ram_w					},	/* RAM (Mirrored?)*/
1462 MEMORY_END
1463 
1464 
1465 /***************************************************************************
1466 				Twin Eagle, DownTown, Arbalester, Meta Fox
1467 		(with slight variations, and Meta Fox protection hooked in)
1468 ***************************************************************************/
1469 
1470 static MEMORY_READ16_START( downtown_readmem )
1471 	{ 0x000000, 0x09ffff, MRA16_ROM				},	/* ROM*/
1472 	{ 0x100000, 0x103fff, seta_sound_word_r		},	/* Sound*/
1473 	{ 0x200000, 0x200001, MRA16_NOP				},	/* watchdog? (twineagl)*/
1474 	{ 0x600000, 0x600003, seta_dsw_r			},	/* DSW*/
1475 	{ 0x700000, 0x7003ff, MRA16_RAM				},	/* Palette*/
1476 	{ 0x900000, 0x901fff, MRA16_RAM				},	/* VRAM*/
1477 	{ 0x902000, 0x903fff, MRA16_RAM				},	/* VRAM*/
1478 	{ 0xb00000, 0xb00fff, sharedram_68000_r		},	/* Shared RAM*/
1479 	{ 0xd00000, 0xd003ff, MRA16_RAM				},	/* Sprites Y*/
1480 	{ 0xe00000, 0xe03fff, MRA16_RAM				},	/* Sprites Code + X + Attr*/
1481 	{ 0xf00000, 0xffffff, MRA16_RAM				},	/* RAM*/
1482 MEMORY_END
1483 
1484 static MEMORY_WRITE16_START( downtown_writemem )
1485 	{ 0x000000, 0x09ffff, MWA16_ROM						},	/* ROM*/
1486 	{ 0x100000, 0x103fff, seta_sound_word_w				},	/* Sound*/
1487 	{ 0x200000, 0x200001, MWA16_NOP						},	/* watchdog?*/
1488 	{ 0x300000, 0x300001, MWA16_NOP 					},	/* IRQ enable/acknowledge?*/
1489 	{ 0x400000, 0x400007, twineagl_tilebank_w			},	/* special tile banking to animate water in twineagl*/
1490 	{ 0x500000, 0x500001, MWA16_NOP						},	/* ?*/
1491 	{ 0x700000, 0x7003ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	/* Palette*/
1492 	{ 0x800000, 0x800005, MWA16_RAM, &seta_vctrl_0		},	/* VRAM Ctrl*/
1493 	{ 0x900000, 0x903fff, seta_vram_0_w, &seta_vram_0	},	/* VRAM*/
1494 	{ 0xa00000, 0xa00007, sub_ctrl_w					},	/* Sub CPU Control?*/
1495 	{ 0xb00000, 0xb00fff, sharedram_68000_w				},	/* Shared RAM*/
1496 	{ 0xc00000, 0xc00001, MWA16_RAM						},	/* ? $4000*/
1497 	{ 0xd00000, 0xd00607, MWA16_RAM, &spriteram16		},	/* Sprites Y*/
1498 	{ 0xe00000, 0xe03fff, MWA16_RAM, &spriteram16_2		},	/* Sprites Code + X + Attr*/
1499 	{ 0xf00000, 0xffffff, MWA16_RAM						},	/* RAM*/
1500 MEMORY_END
1501 
1502 
1503 /***************************************************************************
1504 								Caliber 50
1505 ***************************************************************************/
1506 
1507 READ16_HANDLER ( calibr50_ip_r )
1508 {
1509 	int dir1 = readinputport(4) & 0xfff;	/* analog port*/
1510 	int dir2 = readinputport(5) & 0xfff;	/* analog port*/
1511 
1512 	switch (offset)
1513 	{
1514 		case 0x00/2:	return readinputport(0);	/* p1*/
1515 		case 0x02/2:	return readinputport(1);	/* p2*/
1516 
1517 		case 0x08/2:	return readinputport(2);	/* Coins*/
1518 
1519 		case 0x10/2:	return (dir1&0xff);			/* lower 8 bits of p1 rotation*/
1520 		case 0x12/2:	return (dir1>>8);			/* upper 4 bits of p1 rotation*/
1521 		case 0x14/2:	return (dir2&0xff);			/* lower 8 bits of p2 rotation*/
1522 		case 0x16/2:	return (dir2>>8);			/* upper 4 bits of p2 rotation*/
1523 		case 0x18/2:	return 0xffff;				/* ? (value's read but not used)*/
1524 		default:
1525 			log_cb(RETRO_LOG_DEBUG, LOGPRE "PC %06X - Read input %02X !\n", activecpu_get_pc(), offset*2);
1526 			return 0;
1527 	}
1528 }
1529 
WRITE16_HANDLER(calibr50_soundlatch_w)1530 WRITE16_HANDLER( calibr50_soundlatch_w )
1531 {
1532 	if (ACCESSING_LSB)
1533 	{
1534 		soundlatch_word_w(0,data,mem_mask);
1535 		cpu_set_nmi_line(1,PULSE_LINE);
1536 		cpu_spinuntil_time(TIME_IN_USEC(50));	/* Allow the other cpu to reply*/
1537 	}
1538 }
1539 
MEMORY_READ16_START(calibr50_readmem)1540 static MEMORY_READ16_START( calibr50_readmem )
1541 	{ 0x000000, 0x09ffff, MRA16_ROM				},	/* ROM*/
1542 	{ 0xff0000, 0xffffff, MRA16_RAM				},	/* RAM*/
1543 	{ 0x100000, 0x100007, MRA16_NOP				},	/* ? (same as a00010-a00017?)*/
1544 	{ 0x200000, 0x200fff, MRA16_RAM				},	/* NVRAM*/
1545 	{ 0x300000, 0x300001, MRA16_NOP				},	/* ? (value's read but not used)*/
1546 	{ 0x400000, 0x400001, watchdog_reset16_r	},	/* Watchdog*/
1547 	{ 0x600000, 0x600003, seta_dsw_r			},	/* DSW*/
1548 	{ 0x700000, 0x7003ff, MRA16_RAM				},	/* Palette*/
1549 	{ 0x900000, 0x901fff, MRA16_RAM				},	/* VRAM*/
1550 	{ 0x902000, 0x903fff, MRA16_RAM				},	/* VRAM*/
1551 	{ 0x904000, 0x904fff, MRA16_RAM				},	/**/
1552 	{ 0xa00000, 0xa00019, calibr50_ip_r			},	/* Input Ports*/
1553 /**/{ 0xd00000, 0xd00607, MRA16_RAM				},	/* Sprites Y*/
1554 	{ 0xe00000, 0xe03fff, MRA16_RAM				},	/* Sprites Code + X + Attr*/
1555 	{ 0xb00000, 0xb00001, soundlatch2_word_r	},	/* From Sub CPU*/
1556 /**/{ 0xc00000, 0xc00001, MRA16_RAM				},	/* ? $4000*/
1557 MEMORY_END
1558 
1559 static MEMORY_WRITE16_START( calibr50_writemem )
1560 	{ 0x000000, 0x09ffff, MWA16_ROM						},	/* ROM*/
1561 	{ 0xff0000, 0xffffff, MWA16_RAM						},	/* RAM*/
1562 	{ 0x200000, 0x200fff, MWA16_RAM						},	/* NVRAM*/
1563 	{ 0x300000, 0x300001, MWA16_NOP						},	/* ? (random value)*/
1564 	{ 0x500000, 0x500001, MWA16_NOP						},	/* ?*/
1565 	{ 0x700000, 0x7003ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	/* Palette*/
1566 	{ 0x800000, 0x800005, MWA16_RAM, &seta_vctrl_0		},	/* VRAM Ctrl*/
1567 	{ 0x900000, 0x903fff, seta_vram_0_w, &seta_vram_0	},	/* VRAM*/
1568 	{ 0x904000, 0x904fff, MWA16_RAM						},	/**/
1569 	{ 0xd00000, 0xd00607, MWA16_RAM, &spriteram16		},	/* Sprites Y*/
1570 	{ 0xe00000, 0xe03fff, MWA16_RAM, &spriteram16_2		},	/* Sprites Code + X + Attr*/
1571 	{ 0xb00000, 0xb00001, calibr50_soundlatch_w			},	/* To Sub CPU*/
1572 	{ 0xc00000, 0xc00001, MWA16_RAM						},	/* ? $4000*/
1573 MEMORY_END
1574 
1575 
1576 /***************************************************************************
1577 								U.S. Classic
1578 ***************************************************************************/
1579 
1580 READ16_HANDLER( usclssic_dsw_r )
1581 {
1582 	switch (offset)
1583 	{
1584 		case 0/2:	return (readinputport(3) >>  8) & 0xf;
1585 		case 2/2:	return (readinputport(3) >> 12) & 0xf;
1586 		case 4/2:	return (readinputport(3) >>  0) & 0xf;
1587 		case 6/2:	return (readinputport(3) >>  4) & 0xf;
1588 	}
1589 	return 0;
1590 }
1591 
READ16_HANDLER(usclssic_trackball_x_r)1592 READ16_HANDLER( usclssic_trackball_x_r )
1593 {
1594 	switch (offset)
1595 	{
1596 		case 0/2:	return (readinputport(0) >> 0) & 0xff;
1597 		case 2/2:	return (readinputport(0) >> 8) & 0xff;
1598 	}
1599 	return 0;
1600 }
1601 
READ16_HANDLER(usclssic_trackball_y_r)1602 READ16_HANDLER( usclssic_trackball_y_r )
1603 {
1604 	switch (offset)
1605 	{
1606 		case 0/2:	return (readinputport(1) >> 0) & 0xff;
1607 		case 2/2:	return (readinputport(1) >> 8) & 0xff;
1608 	}
1609 	return 0;
1610 }
1611 
1612 
WRITE16_HANDLER(usclssic_lockout_w)1613 WRITE16_HANDLER( usclssic_lockout_w )
1614 {
1615 	static int old_tiles_offset = 0;
1616 
1617 	if (ACCESSING_LSB)
1618 	{
1619 		seta_tiles_offset = (data & 0x10) ? 0x4000: 0;
1620 		if (old_tiles_offset != seta_tiles_offset)	tilemap_mark_all_tiles_dirty(ALL_TILEMAPS);
1621 		old_tiles_offset = seta_tiles_offset;
1622 
1623 		seta_coin_lockout_w(data);
1624 	}
1625 }
1626 
1627 
MEMORY_READ16_START(usclssic_readmem)1628 static MEMORY_READ16_START( usclssic_readmem )
1629 	{ 0x000000, 0x07ffff, MRA16_ROM					},	/* ROM*/
1630 	{ 0xff0000, 0xffffff, MRA16_RAM					},	/* RAM*/
1631 	{ 0x800000, 0x800607, MRA16_RAM					},	/* Sprites Y*/
1632 /**/{ 0x900000, 0x900001, MRA16_RAM					},	/* ?*/
1633 	{ 0xa00000, 0xa00005, MRA16_RAM					},	/* VRAM Ctrl*/
1634 /**/{ 0xb00000, 0xb003ff, MRA16_RAM					},	/* Palette*/
1635 	{ 0xb40000, 0xb40003, usclssic_trackball_x_r	},	/* TrackBall X*/
1636 	{ 0xb40004, 0xb40007, usclssic_trackball_y_r	},	/* TrackBall Y + Buttons*/
1637 	{ 0xb40010, 0xb40011, input_port_2_word_r		},	/* Coins*/
1638 	{ 0xb40018, 0xb4001f, usclssic_dsw_r			},	/* 2 DSWs*/
1639 	{ 0xb80000, 0xb80001, MRA16_NOP					},	/* watchdog (value is discarded)?*/
1640 	{ 0xc00000, 0xc03fff, MRA16_RAM					},	/* Sprites Code + X + Attr*/
1641 	{ 0xd00000, 0xd01fff, MRA16_RAM					},	/* VRAM*/
1642 	{ 0xd02000, 0xd03fff, MRA16_RAM					},	/* VRAM*/
1643 	{ 0xd04000, 0xd04fff, MRA16_RAM					},	/**/
1644 	{ 0xe00000, 0xe00fff, MRA16_RAM					},	/* NVRAM? (odd bytes)*/
1645 MEMORY_END
1646 
1647 static MEMORY_WRITE16_START( usclssic_writemem )
1648 	{ 0x000000, 0x07ffff, MWA16_ROM						},	/* ROM*/
1649 	{ 0xff0000, 0xffffff, MWA16_RAM						},	/* RAM*/
1650 	{ 0x800000, 0x800607, MWA16_RAM , &spriteram16		},	/* Sprites Y*/
1651 	{ 0x900000, 0x900001, MWA16_RAM						},	/* ? $4000*/
1652 	{ 0xa00000, 0xa00005, MWA16_RAM, &seta_vctrl_0		},	/* VRAM Ctrl*/
1653 	{ 0xb00000, 0xb003ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	/* Palette*/
1654 	{ 0xb40000, 0xb40001, usclssic_lockout_w			},	/* Coin Lockout + Tiles Banking*/
1655 	{ 0xb40010, 0xb40011, calibr50_soundlatch_w			},	/* To Sub CPU*/
1656 	{ 0xb40018, 0xb40019, watchdog_reset16_w			},	/* Watchdog*/
1657 	{ 0xb4000a, 0xb4000b, MWA16_NOP						},	/* ? (value's not important. In lev2&6)*/
1658 	{ 0xc00000, 0xc03fff, MWA16_RAM , &spriteram16_2	},	/* Sprites Code + X + Attr*/
1659 	{ 0xd00000, 0xd03fff, seta_vram_0_w, &seta_vram_0	},	/* VRAM*/
1660 	{ 0xd04000, 0xd04fff, MWA16_RAM						},	/**/
1661 	{ 0xe00000, 0xe00fff, MWA16_RAM						},	/* NVRAM? (odd bytes)*/
1662 MEMORY_END
1663 
1664 
1665 
1666 /***************************************************************************
1667 								Athena no Hatena?
1668 ***************************************************************************/
1669 
1670 static MEMORY_READ16_START( atehate_readmem )
1671 	{ 0x000000, 0x0fffff, MRA16_ROM				},	/* ROM*/
1672 	{ 0x900000, 0x9fffff, MRA16_RAM				},	/* RAM*/
1673 	{ 0x100000, 0x103fff, seta_sound_word_r		},	/* Sound*/
1674 	{ 0x600000, 0x600003, seta_dsw_r			},	/* DSW*/
1675 	{ 0x700000, 0x7003ff, MRA16_RAM				},	/* Palette*/
1676 	{ 0xa00000, 0xa00607, MRA16_RAM				},	/* Sprites Y*/
1677 	{ 0xb00000, 0xb00001, input_port_0_word_r	},	/* P1*/
1678 	{ 0xb00002, 0xb00003, input_port_1_word_r	},	/* P2*/
1679 	{ 0xb00004, 0xb00005, input_port_2_word_r	},	/* Coins*/
1680 /**/{ 0xc00000, 0xc00001, MRA16_RAM				},	/* ? 0x4000*/
1681 	{ 0xe00000, 0xe03fff, MRA16_RAM				},	/* Sprites Code + X + Attr*/
1682 MEMORY_END
1683 
1684 static MEMORY_WRITE16_START( atehate_writemem )
1685 	{ 0x000000, 0x0fffff, MWA16_ROM					},	/* ROM*/
1686 	{ 0x900000, 0x9fffff, MWA16_RAM					},	/* RAM*/
1687 	{ 0x100000, 0x103fff, seta_sound_word_w			},	/* Sound*/
1688 	{ 0x200000, 0x200001, MWA16_NOP					},	/* ? watchdog ?*/
1689 	{ 0x300000, 0x300001, MWA16_NOP					},	/* ? 0 (irq ack lev 2?)*/
1690 	{ 0x500000, 0x500001, MWA16_NOP					},	/* ? (end of lev 1: bit 4 goes 1,0,1)*/
1691 	{ 0x700000, 0x7003ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	/* Palette*/
1692 	{ 0xa00000, 0xa00607, MWA16_RAM, &spriteram16	},	/* Sprites Y*/
1693 	{ 0xc00000, 0xc00001, MWA16_RAM					},	/* ? 0x4000*/
1694 	{ 0xe00000, 0xe03fff, MWA16_RAM, &spriteram16_2	},	/* Sprites Code + X + Attr*/
1695 MEMORY_END
1696 
1697 /***************************************************************************
1698 						Blandia
1699 ***************************************************************************/
1700 
1701 static MEMORY_READ16_START( blandia_readmem )
1702 	{ 0x000000, 0x1fffff, MRA16_ROM				},	/* ROM (up to 2MB)*/
1703 	{ 0x200000, 0x20ffff, MRA16_RAM				},	/* RAM (main ram for zingzip, wrofaero writes to 20f000-20ffff)*/
1704 	{ 0x210000, 0x21ffff, MRA16_RAM				},	/* RAM (gundhara)*/
1705 	{ 0x300000, 0x30ffff, MRA16_RAM				},	/* RAM (wrofaero only?)*/
1706 	{ 0x500000, 0x500005, MRA16_RAM				},	/* (gundhara)*/
1707 	{ 0x400000, 0x400001, input_port_0_word_r	},	/* P1*/
1708 	{ 0x400002, 0x400003, input_port_1_word_r	},	/* P2*/
1709 	{ 0x400004, 0x400005, input_port_2_word_r	},	/* Coins*/
1710 	{ 0x600000, 0x600003, seta_dsw_r			},	/* DSW*/
1711 	{ 0x700000, 0x7003ff, MRA16_RAM				},	/* (rezon,jjsquawk)*/
1712 	{ 0x700400, 0x700fff, MRA16_RAM				},	/* Palette*/
1713 	{ 0x701000, 0x70ffff, MRA16_RAM				},	/**/
1714 /**/{ 0x800000, 0x800607, MRA16_RAM				},	/* Sprites Y*/
1715 	{ 0x880000, 0x880001, MRA16_RAM				},	/* ? 0xc000*/
1716 	{ 0x900000, 0x903fff, MRA16_RAM				},	/* Sprites Code + X + Attr*/
1717 /**/{ 0xa00000, 0xa00005, MRA16_RAM				},	/* VRAM 0&1 Ctrl*/
1718 /**/{ 0xa80000, 0xa80005, MRA16_RAM				},	/* VRAM 2&3 Ctrl*/
1719 	{ 0xb00000, 0xb03fff, MRA16_RAM				},	/* VRAM 0&1*/
1720 	{ 0xb04000, 0xb0ffff, MRA16_RAM				},	/* (jjsquawk)*/
1721 	{ 0xb80000, 0xb83fff, MRA16_RAM				},	/* VRAM 2&3*/
1722 	{ 0xb84000, 0xb8ffff, MRA16_RAM				},	/* (jjsquawk)*/
1723 	{ 0xc00000, 0xc03fff, seta_sound_word_r		},	/* Sound*/
1724 MEMORY_END
1725 
1726 static MEMORY_WRITE16_START( blandia_writemem )
1727 	{ 0x000000, 0x1fffff, MWA16_ROM						},	/* ROM (up to 2MB)*/
1728 	{ 0x200000, 0x20ffff, MWA16_RAM						},	/* RAM*/
1729 	{ 0x210000, 0x21ffff, MWA16_RAM						},	/* RAM (gundhara)*/
1730 	{ 0x300000, 0x30ffff, MWA16_RAM						},	/* RAM (wrofaero only?)*/
1731 	{ 0x500000, 0x500005, seta_vregs_w, &seta_vregs		},	/* Coin Lockout + Video Registers*/
1732 	{ 0x700000, 0x7003ff, MWA16_RAM						},	/* (rezon,jjsquawk)*/
1733 	{ 0x700400, 0x700fff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	/* Palette*/
1734 	{ 0x701000, 0x70ffff, MWA16_RAM						},	/**/
1735 	{ 0x800000, 0x800607, MWA16_RAM, &spriteram16		},	/* Sprites Y*/
1736 	{ 0x880000, 0x880001, MWA16_RAM						},	/* ? 0xc000*/
1737 	{ 0x900000, 0x903fff, MWA16_RAM, &spriteram16_2		},	/* Sprites Code + X + Attr*/
1738 	{ 0xa00000, 0xa00005, MWA16_RAM, &seta_vctrl_0		},	/* VRAM 0&1 Ctrl*/
1739 	{ 0xa80000, 0xa80005, MWA16_RAM, &seta_vctrl_2		},	/* VRAM 2&3 Ctrl*/
1740 	{ 0xb00000, 0xb03fff, seta_vram_0_w, &seta_vram_0	},	/* VRAM 0*/
1741 	{ 0xb04000, 0xb0ffff, MWA16_RAM						},	/* (jjsquawk)*/
1742 	{ 0xb80000, 0xb83fff, seta_vram_2_w, &seta_vram_2	},	/* VRAM 2*/
1743 	{ 0xb84000, 0xb8ffff, MWA16_RAM						},	/* (jjsquawk)*/
1744 	{ 0xc00000, 0xc03fff, seta_sound_word_w				},	/* Sound*/
1745 	{ 0xd00000, 0xd00007, MWA16_NOP						},	/* ?*/
1746 	{ 0xe00000, 0xe00001, MWA16_NOP						},	/* ? VBlank IRQ Ack*/
1747 	{ 0xf00000, 0xf00001, MWA16_NOP						},	/* ? Sound  IRQ Ack*/
1748 MEMORY_END
1749 
1750 
1751 /***************************************************************************
1752 	Blandia (proto), Gundhara, J.J.Squawkers, Rezon, War of Aero, Zing Zing Zip
1753 						(with slight variations)
1754 ***************************************************************************/
1755 
1756 static MEMORY_READ16_START( blandiap_readmem )
1757 	{ 0x000000, 0x1fffff, MRA16_ROM				},	/* ROM (up to 2MB)*/
1758 	{ 0x200000, 0x20ffff, MRA16_RAM				},	/* RAM (main ram for zingzip, wrofaero writes to 20f000-20ffff)*/
1759 	{ 0x210000, 0x21ffff, MRA16_RAM				},	/* RAM (gundhara)*/
1760 	{ 0x300000, 0x30ffff, MRA16_RAM				},	/* RAM (wrofaero only?)*/
1761 	{ 0x500000, 0x500005, MRA16_RAM				},	/* (gundhara)*/
1762 	{ 0x400000, 0x400001, input_port_0_word_r	},	/* P1*/
1763 	{ 0x400002, 0x400003, input_port_1_word_r	},	/* P2*/
1764 	{ 0x400004, 0x400005, input_port_2_word_r	},	/* Coins*/
1765 	{ 0x600000, 0x600003, seta_dsw_r			},	/* DSW*/
1766 	{ 0x700000, 0x7003ff, MRA16_RAM				},	/* (rezon,jjsquawk)*/
1767 	{ 0x700400, 0x700fff, MRA16_RAM				},	/* Palette*/
1768 	{ 0x701000, 0x70ffff, MRA16_RAM				},	/**/
1769 	{ 0x800000, 0x803fff, MRA16_RAM				},	/* VRAM 0&1*/
1770 	{ 0x804000, 0x80ffff, MRA16_RAM				},	/* (jjsquawk)*/
1771 	{ 0x880000, 0x883fff, MRA16_RAM				},	/* VRAM 2&3*/
1772 	{ 0x884000, 0x88ffff, MRA16_RAM				},	/* (jjsquawk)*/
1773 /**/{ 0x900000, 0x900005, MRA16_RAM				},	/* VRAM 0&1 Ctrl*/
1774 /**/{ 0x980000, 0x980005, MRA16_RAM				},	/* VRAM 2&3 Ctrl*/
1775 /**/{ 0xa00000, 0xa00607, MRA16_RAM				},	/* Sprites Y*/
1776 /**/{ 0xa80000, 0xa80001, MRA16_RAM				},	/* ? 0x4000*/
1777 	{ 0xb00000, 0xb03fff, MRA16_RAM				},	/* Sprites Code + X + Attr*/
1778 	{ 0xc00000, 0xc03fff, seta_sound_word_r		},	/* Sound*/
1779 MEMORY_END
1780 
1781 static MEMORY_WRITE16_START( blandiap_writemem )
1782 	{ 0x000000, 0x1fffff, MWA16_ROM						},	/* ROM (up to 2MB)*/
1783 	{ 0x200000, 0x20ffff, MWA16_RAM						},	/* RAM*/
1784 	{ 0x210000, 0x21ffff, MWA16_RAM						},	/* RAM (gundhara)*/
1785 	{ 0x300000, 0x30ffff, MWA16_RAM						},	/* RAM (wrofaero only?)*/
1786 	{ 0x500000, 0x500005, seta_vregs_w, &seta_vregs		},	/* Coin Lockout + Video Registers*/
1787 	{ 0x700000, 0x7003ff, MWA16_RAM						},	/* (rezon,jjsquawk)*/
1788 	{ 0x700400, 0x700fff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	/* Palette*/
1789 	{ 0x701000, 0x70ffff, MWA16_RAM						},	/**/
1790 	{ 0x800000, 0x803fff, seta_vram_0_w, &seta_vram_0	},	/* VRAM 0*/
1791 	{ 0x804000, 0x80ffff, MWA16_RAM						},	/* (jjsquawk)*/
1792 	{ 0x880000, 0x883fff, seta_vram_2_w, &seta_vram_2	},	/* VRAM 2*/
1793 	{ 0x884000, 0x88ffff, MWA16_RAM						},	/* (jjsquawk)*/
1794 	{ 0x900000, 0x900005, MWA16_RAM, &seta_vctrl_0		},	/* VRAM 0&1 Ctrl*/
1795 	{ 0x980000, 0x980005, MWA16_RAM, &seta_vctrl_2		},	/* VRAM 2&3 Ctrl*/
1796 	{ 0xa00000, 0xa00607, MWA16_RAM, &spriteram16		},	/* Sprites Y*/
1797 	{ 0xa80000, 0xa80001, MWA16_RAM						},	/* ? 0x4000*/
1798 	{ 0xb00000, 0xb03fff, MWA16_RAM, &spriteram16_2		},	/* Sprites Code + X + Attr*/
1799 	{ 0xc00000, 0xc03fff, seta_sound_word_w				},	/* Sound*/
1800 	{ 0xd00000, 0xd00007, MWA16_NOP						},	/* ?*/
1801 	{ 0xe00000, 0xe00001, MWA16_NOP						},	/* ? VBlank IRQ Ack*/
1802 	{ 0xf00000, 0xf00001, MWA16_NOP						},	/* ? Sound  IRQ Ack*/
1803 MEMORY_END
1804 
1805 
1806 /***************************************************************************
1807 	Blandia, Gundhara, J.J.Squawkers, Rezon, War of Aero, Zing Zing Zip
1808 					and Zombie Raid (with slight variations)
1809 ***************************************************************************/
1810 
1811 static int gun_input_bit = 0, gun_input_src = 0;
1812 
READ16_HANDLER(zombraid_gun_r)1813 static READ16_HANDLER( zombraid_gun_r ) /* Serial interface*/
1814 {
1815 	int data = readinputport(4 + gun_input_src); /* Input Ports 5-8*/
1816 	return (data >> gun_input_bit) & 1;
1817 }
1818 
1819 /* Bit 0 is clock, 1 is data, 2 is reset*/
WRITE16_HANDLER(zombraid_gun_w)1820 static WRITE16_HANDLER( zombraid_gun_w )
1821 {
1822 	static int bit_count = 0, old_clock = 0;
1823 
1824 	if(data&4) { bit_count = 0; return; } /* Reset*/
1825 
1826 	if((data&1) == old_clock) return; /* No change*/
1827 
1828 	if(old_clock == 0) /* Rising edge*/
1829 	{
1830 		switch (bit_count)
1831 		{
1832 			case 0:
1833 			case 1: /* Starting sequence 2,3,2,3. Other inputs?*/
1834 				break;
1835 			case 2: /* First bit of source*/
1836 				gun_input_src = (gun_input_src&2) | (data>>1);
1837 				break;
1838 			case 3: /* Second bit of source*/
1839 				gun_input_src = (gun_input_src&1) | (data&2);
1840 				break;
1841 			default:
1842 				gun_input_bit = bit_count - 4;
1843 				gun_input_bit = 8 - gun_input_bit; /* Reverse order*/
1844 				break;
1845 		}
1846 		bit_count++;
1847 	}
1848 
1849 	old_clock = data & 1;
1850 }
1851 
MEMORY_READ16_START(wrofaero_readmem)1852 static MEMORY_READ16_START( wrofaero_readmem )
1853 	{ 0x000000, 0x1fffff, MRA16_ROM				},	/* ROM (up to 2MB)*/
1854 	{ 0x200000, 0x20ffff, MRA16_RAM				},	/* RAM (main ram for zingzip, wrofaero writes to 20f000-20ffff)*/
1855 	{ 0x210000, 0x21ffff, MRA16_RAM				},	/* RAM (gundhara)*/
1856 	{ 0x300000, 0x30ffff, MRA16_RAM				},	/* RAM (wrofaero only?)*/
1857 	{ 0x500000, 0x500005, MRA16_RAM				},	/* (gundhara)*/
1858 	{ 0x400000, 0x400001, input_port_0_word_r	},	/* P1*/
1859 	{ 0x400002, 0x400003, input_port_1_word_r	},	/* P2*/
1860 	{ 0x400004, 0x400005, input_port_2_word_r	},	/* Coins*/
1861 	{ 0x600000, 0x600003, seta_dsw_r			},	/* DSW*/
1862 	{ 0x700000, 0x7003ff, MRA16_RAM				},	/* (rezon,jjsquawk)*/
1863 	{ 0x700400, 0x700fff, MRA16_RAM				},	/* Palette*/
1864 	{ 0x701000, 0x70ffff, MRA16_RAM				},	/**/
1865 	{ 0x800000, 0x803fff, MRA16_RAM				},	/* VRAM 0&1*/
1866 	{ 0x804000, 0x80ffff, MRA16_RAM				},	/* (jjsquawk)*/
1867 	{ 0x880000, 0x883fff, MRA16_RAM				},	/* VRAM 2&3*/
1868 	{ 0x884000, 0x88ffff, MRA16_RAM				},	/* (jjsquawk)*/
1869 /**/{ 0x900000, 0x900005, MRA16_RAM				},	/* VRAM 0&1 Ctrl*/
1870 /**/{ 0x980000, 0x980005, MRA16_RAM				},	/* VRAM 2&3 Ctrl*/
1871 /**/{ 0xa00000, 0xa00607, MRA16_RAM				},	/* Sprites Y*/
1872 /**/{ 0xa80000, 0xa80001, MRA16_RAM				},	/* ? 0x4000*/
1873 	{ 0xb00000, 0xb03fff, MRA16_RAM				},	/* Sprites Code + X + Attr*/
1874 	{ 0xc00000, 0xc03fff, seta_sound_word_r		},	/* Sound*/
1875 MEMORY_END
1876 
1877 static MEMORY_WRITE16_START( wrofaero_writemem )
1878 	{ 0x000000, 0x1fffff, MWA16_ROM						},	/* ROM (up to 2MB)*/
1879 	{ 0x200000, 0x20ffff, MWA16_RAM, &seta_workram		},	/* RAM (pointer for zombraid crosshair hack)*/
1880 	{ 0x210000, 0x21ffff, MWA16_RAM						},	/* RAM (gundhara)*/
1881 	{ 0x300000, 0x30ffff, MWA16_RAM						},	/* RAM (wrofaero only?)*/
1882 	{ 0x500000, 0x500005, seta_vregs_w, &seta_vregs		},	/* Coin Lockout + Video Registers*/
1883 	{ 0x700000, 0x7003ff, MWA16_RAM						},	/* (rezon,jjsquawk)*/
1884 	{ 0x700400, 0x700fff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	/* Palette*/
1885 	{ 0x701000, 0x70ffff, MWA16_RAM						},	/**/
1886 	{ 0x800000, 0x803fff, seta_vram_0_w, &seta_vram_0	},	/* VRAM 0*/
1887 	{ 0x804000, 0x80ffff, MWA16_RAM						},	/* (jjsquawk)*/
1888 	{ 0x880000, 0x883fff, seta_vram_2_w, &seta_vram_2	},	/* VRAM 2*/
1889 	{ 0x884000, 0x88ffff, MWA16_RAM						},	/* (jjsquawk)*/
1890 	{ 0x900000, 0x900005, MWA16_RAM, &seta_vctrl_0		},	/* VRAM 0&1 Ctrl*/
1891 	{ 0x980000, 0x980005, MWA16_RAM, &seta_vctrl_2		},	/* VRAM 2&3 Ctrl*/
1892 	{ 0xa00000, 0xa00607, MWA16_RAM, &spriteram16		},	/* Sprites Y*/
1893 	{ 0xa80000, 0xa80001, MWA16_RAM						},	/* ? 0x4000*/
1894 	{ 0xb00000, 0xb03fff, MWA16_RAM, &spriteram16_2		},	/* Sprites Code + X + Attr*/
1895 	{ 0xc00000, 0xc03fff, seta_sound_word_w				},	/* Sound*/
1896 #if __uPD71054_TIMER
1897 	{ 0xd00000, 0xd00007, timer_regs_w					},	/* ?*/
1898 #else
1899 	{ 0xd00000, 0xd00007, MWA16_NOP						},	/* ?*/
1900 #endif
1901 	{ 0xe00000, 0xe00001, MWA16_NOP						},	/* ? VBlank IRQ Ack*/
1902 	{ 0xf00000, 0xf00001, MWA16_NOP						},	/* ? Sound  IRQ Ack*/
1903 MEMORY_END
1904 
1905 
1906 
1907 /***************************************************************************
1908 								Block Carnival
1909 ***************************************************************************/
1910 
1911 /* similar to krzybowl */
1912 static MEMORY_READ16_START( blockcar_readmem )
1913 	{ 0x000000, 0x03ffff, MRA16_ROM				},	/* ROM*/
1914 	{ 0xf00000, 0xf03fff, MRA16_RAM				},	/* RAM*/
1915 	{ 0xf04000, 0xf041ff, MRA16_RAM				},	/* Backup RAM?*/
1916 	{ 0xf05000, 0xf050ff, MRA16_RAM				},	/* Backup RAM?*/
1917 	{ 0x300000, 0x300003, seta_dsw_r			},	/* DSW*/
1918 	{ 0x500000, 0x500001, input_port_0_word_r	},	/* P1*/
1919 	{ 0x500002, 0x500003, input_port_1_word_r	},	/* P2*/
1920 	{ 0x500004, 0x500005, input_port_2_word_r	},	/* Coins*/
1921 	{ 0xa00000, 0xa03fff, seta_sound_word_r		},	/* Sound*/
1922 	{ 0xb00000, 0xb003ff, MRA16_RAM				},	/* Palette*/
1923 	{ 0xc00000, 0xc03fff, MRA16_RAM				},	/* Sprites Code + X + Attr*/
1924 /**/{ 0xd00000, 0xd00001, MRA16_RAM				},	/* ? 0x4000*/
1925 /**/{ 0xe00000, 0xe00607, MRA16_RAM				},	/* Sprites Y*/
1926 MEMORY_END
1927 
1928 static MEMORY_WRITE16_START( blockcar_writemem )
1929 	{ 0x000000, 0x03ffff, MWA16_ROM					},	/* ROM*/
1930 	{ 0xf00000, 0xf03fff, MWA16_RAM					},	/* RAM*/
1931 	{ 0xf04000, 0xf041ff, MWA16_RAM					},	/* Backup RAM?*/
1932 	{ 0xf05000, 0xf050ff, MWA16_RAM					},	/* Backup RAM?*/
1933 	{ 0x100000, 0x100001, MWA16_NOP					},	/* ? 1 (start of interrupts, main loop: watchdog?)*/
1934 	{ 0x200000, 0x200001, MWA16_NOP					},	/* ? 0/1 (IRQ acknowledge?)*/
1935 	{ 0x400000, 0x400001, seta_vregs_w, &seta_vregs	},	/* Coin Lockout + Sound Enable (bit 4?)*/
1936 	{ 0xa00000, 0xa03fff, seta_sound_word_w			},	/* Sound*/
1937 	{ 0xb00000, 0xb003ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	/* Palette*/
1938 	{ 0xc00000, 0xc03fff, MWA16_RAM, &spriteram16_2	},	/* Sprites Code + X + Attr*/
1939 	{ 0xd00000, 0xd00001, MWA16_RAM					},	/* ? 0x4000*/
1940 	{ 0xe00000, 0xe00607, MWA16_RAM, &spriteram16	},	/* Sprites Y*/
1941 MEMORY_END
1942 
1943 
1944 
1945 /***************************************************************************
1946 								Daioh
1947 ***************************************************************************/
1948 
1949 static MEMORY_READ16_START( daioh_readmem )
1950 	{ 0x000000, 0x0fffff, MRA16_ROM				},	/* ROM*/
1951 	{ 0x100000, 0x10ffff, MRA16_RAM				},	/* RAM*/
1952 	{ 0x400000, 0x400001, input_port_0_word_r	},	/* P1*/
1953 	{ 0x400002, 0x400003, input_port_1_word_r	},	/* P2*/
1954 	{ 0x400004, 0x400005, input_port_2_word_r	},	/* Coins*/
1955 	{ 0x500006, 0x500007, input_port_4_word_r	},	/* Buttons 4,5,6*/
1956 	{ 0x600000, 0x600003, seta_dsw_r			},	/* DSW*/
1957 	{ 0x700000, 0x7003ff, MRA16_RAM				},
1958 	{ 0x700400, 0x700fff, MRA16_RAM				},  /* Palette*/
1959 	{ 0x701000, 0x70ffff, MRA16_RAM				},
1960 	{ 0x800000, 0x803fff, MRA16_RAM				},	/* VRAM 0&1*/
1961 	{ 0x804000, 0x80ffff, MRA16_RAM				},	/**/
1962 	{ 0x880000, 0x883fff, MRA16_RAM				},	/* VRAM 2&3*/
1963 	{ 0x884000, 0x88ffff, MRA16_RAM				},	/**/
1964 	{ 0x900000, 0x900005, MRA16_RAM				},	/* VRAM 0&1 Ctrl*/
1965 	{ 0x980000, 0x980005, MRA16_RAM				},	/* VRAM 2&3 Ctrl*/
1966 	{ 0xa00000, 0xa00607, MRA16_RAM				},	/* Sprites Y*/
1967 	{ 0xa80000, 0xa80001, MRA16_RAM				},	/* ? 0x4000*/
1968 	{ 0xb00000, 0xb03fff, MRA16_RAM				},	/* Sprites Code + X + Attr*/
1969 	{ 0xb04000, 0xb13fff, MRA16_RAM				},	/**/
1970 	{ 0xc00000, 0xc03fff, seta_sound_word_r		},	/* Sound*/
1971 MEMORY_END
1972 
1973 static MEMORY_WRITE16_START( daioh_writemem )
1974 	{ 0x000000, 0x0fffff, MWA16_ROM						},	/* ROM*/
1975 	{ 0x100000, 0x10ffff, MWA16_RAM						},	/* RAM*/
1976 	{ 0x500000, 0x500005, seta_vregs_w, &seta_vregs		},	/* Coin Lockout + Video Registers*/
1977 	{ 0x700000, 0x7003ff, MWA16_RAM						},
1978 	{ 0x700400, 0x700fff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	/* Palette*/
1979 	{ 0x701000, 0x70ffff, MWA16_RAM						},	/**/
1980 	{ 0x800000, 0x803fff, seta_vram_0_w, &seta_vram_0	},	/* VRAM 0*/
1981 	{ 0x804000, 0x80ffff, MWA16_RAM						},	/**/
1982 	{ 0x880000, 0x883fff, seta_vram_2_w, &seta_vram_2	},	/* VRAM 2*/
1983 	{ 0x884000, 0x88ffff, MWA16_RAM						},	/**/
1984 	{ 0x900000, 0x900005, MWA16_RAM, &seta_vctrl_0		},	/* VRAM 0&1 Ctrl*/
1985 	{ 0x980000, 0x980005, MWA16_RAM, &seta_vctrl_2		},	/* VRAM 2&3 Ctrl*/
1986 	{ 0xa00000, 0xa00607, MWA16_RAM, &spriteram16		},	/* Sprites Y*/
1987 	{ 0xa80000, 0xa80001, MWA16_RAM						},	/* ? 0x4000*/
1988 	{ 0xb00000, 0xb03fff, MWA16_RAM, &spriteram16_2		},	/* Sprites Code + X + Attr*/
1989 	{ 0xb04000, 0xb13fff, MWA16_RAM						},	/**/
1990 	{ 0xc00000, 0xc03fff, seta_sound_word_w				},	/* Sound*/
1991 	{ 0xe00000, 0xe00001, MWA16_NOP						},	/**/
1992 MEMORY_END
1993 
1994 
1995 /***************************************************************************
1996 		Dragon Unit, Quiz Kokology, Quiz Kokology 2, Strike Gunner
1997 ***************************************************************************/
1998 
1999 static MEMORY_READ16_START( drgnunit_readmem )
2000 	{ 0x000000, 0x07ffff, MRA16_ROM				},	/* ROM*/
2001 	{ 0x080000, 0x0bffff, MRA16_RAM				},	/* ROM (qzkklgy2)*/
2002 	{ 0xf00000, 0xf0ffff, MRA16_RAM				},	/* RAM (qzkklogy)*/
2003 	{ 0xffc000, 0xffffff, MRA16_RAM				},	/* RAM (drgnunit,stg)*/
2004 	{ 0x100000, 0x103fff, seta_sound_word_r		},	/* Sound*/
2005 	{ 0x600000, 0x600003, seta_dsw_r			},	/* DSW*/
2006 	{ 0x700000, 0x7003ff, MRA16_RAM				},	/* Palette*/
2007 	{ 0x900000, 0x901fff, MRA16_RAM				},	/* VRAM*/
2008 	{ 0x902000, 0x903fff, MRA16_RAM				},	/* VRAM*/
2009 	{ 0xb00000, 0xb00001, input_port_0_word_r	},	/* P1*/
2010 	{ 0xb00002, 0xb00003, input_port_1_word_r	},	/* P2*/
2011 	{ 0xb00004, 0xb00005, input_port_2_word_r	},	/* Coins*/
2012 	{ 0xb00006, 0xb00007, MRA16_NOP				},	/* unused (qzkklogy)*/
2013 /**/{ 0xc00000, 0xc00001, MRA16_RAM				},	/* ? $4000*/
2014 /**/{ 0xd00000, 0xd00607, MRA16_RAM				},	/* Sprites Y*/
2015 	{ 0xe00000, 0xe03fff, MRA16_RAM				},	/* Sprites Code + X + Attr*/
2016 MEMORY_END
2017 
2018 static MEMORY_WRITE16_START( drgnunit_writemem )
2019 	{ 0x000000, 0x07ffff, MWA16_ROM						},	/* ROM*/
2020 	{ 0x080000, 0x0bffff, MWA16_RAM						},	/* ROM (qzkklgy2)*/
2021 	{ 0xf00000, 0xf0ffff, MWA16_RAM						},	/* RAM (qzkklogy)*/
2022 	{ 0xffc000, 0xffffff, MWA16_RAM						},	/* RAM (drgnunit,stg)*/
2023 	{ 0x100000, 0x103fff, seta_sound_word_w				},	/* Sound*/
2024 	{ 0x200000, 0x200001, MWA16_NOP						},	/* Watchdog*/
2025 	{ 0x300000, 0x300001, MWA16_NOP						},	/* ? IRQ Ack*/
2026 	{ 0x500000, 0x500001, seta_vregs_w, &seta_vregs		},	/* Coin Lockout + Video Registers*/
2027 	{ 0x700000, 0x7003ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	/* Palette*/
2028 	{ 0x800000, 0x800005, MWA16_RAM, &seta_vctrl_0		},	/* VRAM Ctrl*/
2029 	{ 0x900000, 0x903fff, seta_vram_0_w, &seta_vram_0	},	/* VRAM*/
2030 	{ 0x904000, 0x90ffff, MWA16_NOP						},	/* unused (qzkklogy)*/
2031 	{ 0xc00000, 0xc00001, MWA16_RAM						},	/* ? $4000*/
2032 	{ 0xd00000, 0xd00607, MWA16_RAM, &spriteram16		},	/* Sprites Y*/
2033 	{ 0xe00000, 0xe03fff, MWA16_RAM, &spriteram16_2		},	/* Sprites Code + X + Attr*/
2034 MEMORY_END
2035 
2036 
2037 /***************************************************************************
2038 						Extreme Downhill / Sokonuke
2039 ***************************************************************************/
2040 
2041 static MEMORY_READ16_START( extdwnhl_readmem )
2042 	{ 0x000000, 0x0fffff, MRA16_ROM				},	/* ROM*/
2043 	{ 0x200000, 0x20ffff, MRA16_RAM				},	/* RAM*/
2044 	{ 0x210000, 0x21ffff, MRA16_RAM				},	/* RAM*/
2045 	{ 0x220000, 0x23ffff, MRA16_RAM				},	/* RAM (sokonuke)*/
2046 	{ 0x400000, 0x400001, input_port_0_word_r	},	/* P1*/
2047 	{ 0x400002, 0x400003, input_port_1_word_r	},	/* P2*/
2048 	{ 0x400004, 0x400005, input_port_2_word_r	},	/* Coins*/
2049 	{ 0x400008, 0x40000b, seta_dsw_r			},	/* DSW*/
2050 	{ 0x40000c, 0x40000d, watchdog_reset16_r	},	/* Watchdog (extdwnhl, MUST RETURN $FFFF)*/
2051 	{ 0x500004, 0x500007, MRA16_NOP				},	/* IRQ Ack  (extdwnhl)*/
2052 	{ 0x600400, 0x600fff, MRA16_RAM				},	/* Palette*/
2053 	{ 0x601000, 0x610bff, MRA16_RAM				},	/**/
2054 	{ 0x800000, 0x803fff, MRA16_RAM				},	/* VRAM 0&1*/
2055 	{ 0x804000, 0x80ffff, MRA16_RAM				},	/**/
2056 	{ 0x880000, 0x883fff, MRA16_RAM				},	/* VRAM 2&3*/
2057 	{ 0x884000, 0x88ffff, MRA16_RAM				},	/**/
2058 /**/{ 0x900000, 0x900005, MRA16_RAM				},	/* VRAM 0&1 Ctrl*/
2059 /**/{ 0x980000, 0x980005, MRA16_RAM				},	/* VRAM 2&3 Ctrl*/
2060 /**/{ 0xa00000, 0xa00607, MRA16_RAM				},	/* Sprites Y*/
2061 /**/{ 0xa80000, 0xa80001, MRA16_RAM				},	/* ? 0x4000*/
2062 	{ 0xb00000, 0xb03fff, MRA16_RAM				},	/* Sprites Code + X + Attr*/
2063 	{ 0xb04000, 0xb13fff, MRA16_RAM				},	/**/
2064 	{ 0xe00000, 0xe03fff, seta_sound_word_r		},	/* Sound*/
2065 MEMORY_END
2066 
2067 static MEMORY_WRITE16_START( extdwnhl_writemem )
2068 	{ 0x000000, 0x0fffff, MWA16_ROM						},	/* ROM*/
2069 	{ 0x200000, 0x20ffff, MWA16_RAM						},	/* RAM*/
2070 	{ 0x210000, 0x21ffff, MWA16_RAM						},	/* RAM*/
2071 	{ 0x220000, 0x23ffff, MWA16_RAM						},	/* RAM (sokonuke)*/
2072 	{ 0x40000c, 0x40000d, watchdog_reset16_w			},	/* Watchdog (sokonuke)*/
2073 	{ 0x500000, 0x500003, seta_vregs_w, &seta_vregs		},	/* Coin Lockout + Video Registers*/
2074 	{ 0x500004, 0x500007, MWA16_NOP						},	/* IRQ Ack (sokonuke)*/
2075 	{ 0x600400, 0x600fff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	/* Palette*/
2076 	{ 0x601000, 0x610bff, MWA16_RAM						},	/**/
2077 	{ 0x800000, 0x803fff, seta_vram_0_w, &seta_vram_0	},	/* VRAM 0*/
2078 	{ 0x804000, 0x80ffff, MWA16_RAM						},	/**/
2079 	{ 0x880000, 0x883fff, seta_vram_2_w, &seta_vram_2	},	/* VRAM 2*/
2080 	{ 0x884000, 0x88ffff, MWA16_RAM						},	/**/
2081 	{ 0x900000, 0x900005, MWA16_RAM, &seta_vctrl_0		},	/* VRAM 0&1 Ctrl*/
2082 	{ 0x980000, 0x980005, MWA16_RAM, &seta_vctrl_2		},	/* VRAM 2&3 Ctrl*/
2083 	{ 0xa00000, 0xa00607, MWA16_RAM, &spriteram16		},	/* Sprites Y*/
2084 	{ 0xa80000, 0xa80001, MWA16_RAM						},	/* ? 0x4000*/
2085 	{ 0xb00000, 0xb03fff, MWA16_RAM, &spriteram16_2		},	/* Sprites Code + X + Attr*/
2086 	{ 0xb04000, 0xb13fff, MWA16_RAM						},	/**/
2087 	{ 0xe00000, 0xe03fff, seta_sound_word_w				},	/* Sound*/
2088 MEMORY_END
2089 
2090 /***************************************************************************
2091 		(Kamen) Masked Riders Club Battle Race / Mad Shark
2092 ***************************************************************************/
2093 
2094 static MEMORY_READ16_START( kamenrid_readmem )
2095 	{ 0x000000, 0x07ffff, MRA16_ROM				},	/* ROM*/
2096 	{ 0x200000, 0x20ffff, MRA16_RAM				},	/* ROM*/
2097 	{ 0x500000, 0x500001, input_port_0_word_r	},	/* P1*/
2098 	{ 0x500002, 0x500003, input_port_1_word_r	},	/* P2*/
2099 	{ 0x500004, 0x500007, seta_dsw_r		},	/* DSW*/
2100 	{ 0x500008, 0x500009, input_port_2_word_r	},	/* Coins*/
2101 	{ 0x50000c, 0x50000d, watchdog_reset16_r	},	/* xx Watchdog?*/
2102 	{ 0x700000, 0x7003ff, MRA16_RAM				},	/* Palette*/
2103 	{ 0x700400, 0x700fff, MRA16_RAM				},	/* Palette*/
2104 	{ 0x701000, 0x703fff, MRA16_RAM				},	/* Palette*/
2105 	{ 0x800000, 0x801fff, MRA16_RAM				},	/* VRAM 0*/
2106 	{ 0x802000, 0x803fff, MRA16_RAM				},	/* VRAM 1*/
2107 	{ 0x804000, 0x807fff, MRA16_RAM				},	/* tested*/
2108 	{ 0x880000, 0x881fff, MRA16_RAM				},	/* VRAM 2*/
2109 	{ 0x882000, 0x883fff, MRA16_RAM				},	/* VRAM 3*/
2110 	{ 0x884000, 0x887fff, MRA16_RAM				},	/* tested*/
2111 	{ 0xa00000, 0xa00607, MRA16_RAM			 	},	/* Sprites Y*/
2112 	{ 0xb00000, 0xb03fff, MRA16_RAM				},	/* Sprites Code + X + Attr*/
2113 	{ 0xb04000, 0xb07fff, MRA16_RAM				},	/* tested*/
2114 	{ 0xd00000, 0xd03fff, seta_sound_word_r		},	/* Sound*/
2115 MEMORY_END
2116 
2117 static MEMORY_WRITE16_START( kamenrid_writemem )
2118 	{ 0x000000, 0x07ffff, MWA16_ROM						},	/* ROM*/
2119 	{ 0x200000, 0x20ffff, MWA16_RAM						},	/* ROM*/
2120 	{ 0x50000c, 0x50000d, watchdog_reset16_w			},	/* Watchdog (sokonuke)*/
2121 	{ 0x600000, 0x600005, seta_vregs_w, &seta_vregs		},	/* ? Coin Lockout + Video Registers*/
2122 	{ 0x600006, 0x600007, MWA16_NOP						},	/* ?*/
2123 	{ 0x700000, 0x7003ff, MWA16_RAM						},	/* Palette RAM (tested)*/
2124 	{ 0x700400, 0x700fff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	/* Palette*/
2125 	{ 0x701000, 0x703fff, MWA16_RAM	},	/* Palette*/
2126 	{ 0x800000, 0x803fff, seta_vram_0_w, &seta_vram_0	},	/* VRAM 0*/
2127 	{ 0x804000, 0x807fff, MWA16_RAM	},	/* tested*/
2128 	{ 0x880000, 0x883fff, seta_vram_2_w, &seta_vram_2	},	/* VRAM 2*/
2129 	{ 0x884000, 0x887fff, MWA16_RAM	},	/* tested*/
2130 	{ 0x900000, 0x900005, MWA16_RAM, &seta_vctrl_0		},	/* VRAM 0&1 Ctrl*/
2131 	{ 0x980000, 0x980005, MWA16_RAM, &seta_vctrl_2		},	/* VRAM 2&3 Ctrl*/
2132 	{ 0xa00000, 0xa00607, MWA16_RAM , &spriteram16		},	/* Sprites Y*/
2133 	{ 0xa80000, 0xa80001, MWA16_RAM						},	/* ? $4000*/
2134 	{ 0xb00000, 0xb03fff, MWA16_RAM , &spriteram16_2	},	/* Sprites Code + X + Attr*/
2135 	{ 0xb04000, 0xb07fff, MWA16_RAM },	/* tested*/
2136 #if __uPD71054_TIMER
2137 	{ 0xc00000, 0xc00007, timer_regs_w					},	/* ?*/
2138 #else
2139 	{ 0xc00000, 0xc00007, MWA16_NOP						},	/* ?*/
2140 #endif
2141 	{ 0xd00000, 0xd03fff, seta_sound_word_w				},	/* Sound*/
2142 MEMORY_END
2143 
2144 /* almast identical to kamenrid */
2145 static MEMORY_READ16_START( madshark_readmem )
2146 	{ 0x000000, 0x0fffff, MRA16_ROM				},	/* ROM*/
2147 	{ 0x200000, 0x20ffff, MRA16_RAM				},	/* ROM*/
2148 	{ 0x500000, 0x500001, input_port_0_word_r	},	/* P1*/
2149 	{ 0x500002, 0x500003, input_port_1_word_r	},	/* P2*/
2150 	{ 0x500004, 0x500005, input_port_2_word_r	},	/* Coins*/
2151 	{ 0x500008, 0x50000b, seta_dsw_r			},	/* DSW*/
2152 	{ 0x700400, 0x700fff, MRA16_RAM				},	/* Palette*/
2153 	{ 0x800000, 0x801fff, MRA16_RAM				},	/* VRAM 0*/
2154 	{ 0x802000, 0x803fff, MRA16_RAM				},	/* VRAM 1*/
2155 	{ 0x880000, 0x881fff, MRA16_RAM				},	/* VRAM 2*/
2156 	{ 0x882000, 0x883fff, MRA16_RAM				},	/* VRAM 3*/
2157 	{ 0xa00000, 0xa00607, MRA16_RAM			 	},	/* Sprites Y*/
2158 	{ 0xb00000, 0xb03fff, MRA16_RAM				},	/* Sprites Code + X + Attr*/
2159 	{ 0xd00000, 0xd03fff, seta_sound_word_r		},	/* Sound*/
2160 MEMORY_END
2161 
2162 static MEMORY_WRITE16_START( madshark_writemem )
2163 	{ 0x000000, 0x0fffff, MWA16_ROM						},	/* ROM*/
2164 	{ 0x200000, 0x20ffff, MWA16_RAM						},	/* ROM*/
2165 	{ 0x50000c, 0x50000d, watchdog_reset16_w			},	/* Watchdog*/
2166 	{ 0x600000, 0x600005, seta_vregs_w, &seta_vregs		},	/* ? Coin Lockout + Video Registers*/
2167 	{ 0x600006, 0x600007, MWA16_NOP						},	/* ?*/
2168 	{ 0x700400, 0x700fff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	/* Palette*/
2169 	{ 0x800000, 0x803fff, seta_vram_0_w, &seta_vram_0	},	/* VRAM 0*/
2170 	{ 0x880000, 0x883fff, seta_vram_2_w, &seta_vram_2	},	/* VRAM 2*/
2171 	{ 0x900000, 0x900005, MWA16_RAM, &seta_vctrl_0		},	/* VRAM 0&1 Ctrl*/
2172 	{ 0x980000, 0x980005, MWA16_RAM, &seta_vctrl_2		},	/* VRAM 2&3 Ctrl*/
2173 	{ 0xa00000, 0xa00607, MWA16_RAM , &spriteram16		},	/* Sprites Y*/
2174 	{ 0xa80000, 0xa80001, MWA16_RAM						},	/* ? $4000*/
2175 	{ 0xb00000, 0xb03fff, MWA16_RAM , &spriteram16_2	},	/* Sprites Code + X + Attr*/
2176 #if __uPD71054_TIMER
2177 	{ 0xc00000, 0xc00007, timer_regs_w					},	/* ?*/
2178 #else
2179 	{ 0xc00000, 0xc00007, MWA16_NOP						},	/* ?*/
2180 #endif
2181 	{ 0xd00000, 0xd03fff, seta_sound_word_w				},	/* Sound*/
2182 MEMORY_END
2183 
2184 
2185 
2186 /***************************************************************************
2187 								Krazy Bowl
2188 ***************************************************************************/
2189 
2190 static READ16_HANDLER( krzybowl_input_r )
2191 {
2192 	/* analog ports*/
2193 	int dir1x = readinputport(4) & 0xfff;
2194 	int dir1y = readinputport(5) & 0xfff;
2195 	int dir2x = readinputport(6) & 0xfff;
2196 	int dir2y = readinputport(7) & 0xfff;
2197 
2198 	switch (offset)
2199 	{
2200 		case 0x0/2:	return dir1x & 0xff;
2201 		case 0x2/2:	return dir1x >> 8;
2202 		case 0x4/2:	return dir1y & 0xff;
2203 		case 0x6/2:	return dir1y >> 8;
2204 		case 0x8/2:	return dir2x & 0xff;
2205 		case 0xa/2:	return dir2x >> 8;
2206 		case 0xc/2:	return dir2y & 0xff;
2207 		case 0xe/2:	return dir2y >> 8;
2208 		default:
2209 			log_cb(RETRO_LOG_DEBUG, LOGPRE "PC %06X - Read input %02X !\n", activecpu_get_pc(), offset*2);
2210 			return 0;
2211 	}
2212 }
2213 
MEMORY_READ16_START(krzybowl_readmem)2214 static MEMORY_READ16_START( krzybowl_readmem )
2215 	{ 0x000000, 0x07ffff, MRA16_ROM				},	/* ROM*/
2216 	{ 0xf00000, 0xf0ffff, MRA16_RAM				},	/* RAM*/
2217 	{ 0x100000, 0x100001, MRA16_NOP				},	/* ?*/
2218 	{ 0x200000, 0x200001, MRA16_NOP				},	/* ?*/
2219 	{ 0x300000, 0x300003, seta_dsw_r			},	/* DSW*/
2220 	{ 0x500000, 0x500001, input_port_0_word_r	},	/* P1*/
2221 	{ 0x500002, 0x500003, input_port_1_word_r	},	/* P2*/
2222 	{ 0x500004, 0x500005, input_port_2_word_r	},	/* Coins*/
2223 	{ 0x600000, 0x60000f, krzybowl_input_r		},	/* P1*/
2224 	{ 0x8000f0, 0x8000f1, MRA16_RAM				},	/* NVRAM*/
2225 	{ 0x800100, 0x8001ff, MRA16_RAM				},	/* NVRAM*/
2226 	{ 0xa00000, 0xa03fff, seta_sound_word_r		},	/* Sound*/
2227 	{ 0xb00000, 0xb003ff, MRA16_RAM				},	/* Palette*/
2228 	{ 0xc00000, 0xc03fff, MRA16_RAM				},	/* Sprites Code + X + Attr*/
2229 /**/{ 0xd00000, 0xd00001, MRA16_RAM				},	/* ? 0x4000*/
2230 /**/{ 0xe00000, 0xe00607, MRA16_RAM				},	/* Sprites Y*/
2231 MEMORY_END
2232 
2233 static MEMORY_WRITE16_START( krzybowl_writemem )
2234 	{ 0x000000, 0x07ffff, MWA16_ROM					},	/* ROM*/
2235 	{ 0xf00000, 0xf0ffff, MWA16_RAM					},	/* RAM*/
2236 	{ 0x400000, 0x400001, MWA16_NOP					},	/* ?*/
2237 	{ 0x8000f0, 0x8000f1, MWA16_RAM					},	/* NVRAM*/
2238 	{ 0x800100, 0x8001ff, MWA16_RAM					},	/* NVRAM*/
2239 	{ 0xa00000, 0xa03fff, seta_sound_word_w			},	/* Sound*/
2240 	{ 0xb00000, 0xb003ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	/* Palette*/
2241 	{ 0xc00000, 0xc03fff, MWA16_RAM, &spriteram16_2	},	/* Sprites Code + X + Attr*/
2242 	{ 0xd00000, 0xd00001, MWA16_RAM					},	/* ? 0x4000*/
2243 	{ 0xe00000, 0xe00607, MWA16_RAM, &spriteram16	},	/* Sprites Y*/
2244 MEMORY_END
2245 
2246 
2247 /***************************************************************************
2248 							Mobile Suit Gundam
2249 ***************************************************************************/
2250 
2251 WRITE16_HANDLER( msgundam_vregs_w )
2252 {
2253 	/* swap $500002 with $500004*/
2254 	switch( offset )
2255 	{
2256 		case 1:	offset = 2;	break;
2257 		case 2:	offset = 1;	break;
2258 	}
2259 	seta_vregs_w(offset,data,mem_mask);
2260 }
2261 
2262 /* Mirror RAM is necessary or startup, to clear Work RAM after the test */
2263 
MEMORY_READ16_START(msgundam_readmem)2264 static MEMORY_READ16_START( msgundam_readmem )
2265 	{ 0x000000, 0x07ffff, MRA16_ROM				},	/* ROM*/
2266 	{ 0x100000, 0x1fffff, MRA16_ROM				},	/* ROM*/
2267 	{ 0x200000, 0x20ffff, MRA16_RAM				},	/* RAM*/
2268 	{ 0x400000, 0x400001, input_port_0_word_r	},	/* P1*/
2269 	{ 0x400002, 0x400003, input_port_1_word_r	},	/* P2*/
2270 	{ 0x400004, 0x400005, input_port_2_word_r	},	/* Coins*/
2271 	{ 0x600000, 0x600003, seta_dsw_r			},	/* DSW*/
2272 	{ 0x700400, 0x700fff, MRA16_RAM				},	/* Palette*/
2273 	{ 0x800000, 0x800607, MRA16_RAM				},	/* Sprites Y*/
2274 	{ 0x900000, 0x903fff, MRA16_RAM				},	/* Sprites Code + X + Attr*/
2275 	{ 0xa00000, 0xa03fff, MRA16_RAM				},	/* VRAM 0&1*/
2276 	{ 0xa80000, 0xa83fff, MRA16_RAM				},	/* VRAM 2&3*/
2277 	{ 0xb00000, 0xb00005, MRA16_RAM				},	/* VRAM 0&1 Ctrl*/
2278 	{ 0xb80000, 0xb80005, MRA16_RAM				},	/* VRAM 1&2 Ctrl*/
2279 	{ 0xc00000, 0xc03fff, seta_sound_word_r		},	/* Sound*/
2280 MEMORY_END
2281 
2282 static MEMORY_WRITE16_START( msgundam_writemem )
2283 	{ 0x000000, 0x07ffff, MWA16_ROM						},	/* ROM*/
2284 	{ 0x100000, 0x1fffff, MWA16_ROM						},	/* ROM*/
2285 	{ 0x200000, 0x20ffff, MWA16_RAM, &mirror_ram		},	/* RAM*/
2286 	{ 0x210000, 0x21ffff, mirror_ram_w					},	/* Mirrored RAM*/
2287 	{ 0x220000, 0x22ffff, mirror_ram_w					},
2288 	{ 0x230000, 0x23ffff, mirror_ram_w					},
2289 	{ 0x240000, 0x24ffff, mirror_ram_w					},
2290 	{ 0x400000, 0x400001, MWA16_NOP						},	/* Lev 2 IRQ Ack*/
2291 	{ 0x400004, 0x400005, MWA16_NOP						},	/* Lev 4 IRQ Ack*/
2292 	{ 0x500000, 0x500005, msgundam_vregs_w, &seta_vregs		},	/* Coin Lockout + Video Registers*/
2293 	{ 0x700400, 0x700fff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	/* Palette*/
2294 	{ 0x800000, 0x800607, MWA16_RAM , &spriteram16		},	/* Sprites Y*/
2295 	{ 0x880000, 0x880001, MWA16_RAM						},	/* ? 0x4000*/
2296 	{ 0x900000, 0x903fff, MWA16_RAM , &spriteram16_2	},	/* Sprites Code + X + Attr*/
2297 	{ 0xa00000, 0xa03fff, seta_vram_0_w, &seta_vram_0	},	/* VRAM 0*/
2298 	{ 0xa80000, 0xa83fff, seta_vram_2_w, &seta_vram_2	},	/* VRAM 2*/
2299 	{ 0xb00000, 0xb00005, MWA16_RAM, &seta_vctrl_0		},	/* VRAM 0&1 Ctrl*/
2300 	{ 0xb80000, 0xb80005, MWA16_RAM, &seta_vctrl_2		},	/* VRAM 2&3 Ctrl*/
2301 	{ 0xc00000, 0xc03fff, seta_sound_word_w				},	/* Sound*/
2302 #if __uPD71054_TIMER
2303 	{ 0xd00000, 0xd00007, timer_regs_w					},	/* ?*/
2304 #else
2305 	{ 0xd00000, 0xd00007, MWA16_NOP						},	/* ?*/
2306 #endif
2307 MEMORY_END
2308 
2309 
2310 
2311 
2312 /***************************************************************************
2313 								Oishii Puzzle
2314 ***************************************************************************/
2315 
2316 /* similar to wrofaero */
2317 
2318 static MEMORY_READ16_START( oisipuzl_readmem )
2319 	{ 0x000000, 0x07ffff, MRA16_ROM				},	/* ROM*/
2320 	{ 0x100000, 0x17ffff, MRA16_ROM				},	/* ROM*/
2321 	{ 0x200000, 0x20ffff, MRA16_RAM				},	/* RAM*/
2322 	{ 0x300000, 0x300003, seta_dsw_r			},	/* DSW*/
2323 	{ 0x400000, 0x400001, input_port_0_word_r	},	/* P1*/
2324 	{ 0x400002, 0x400003, input_port_1_word_r	},	/* P2*/
2325 	{ 0x400004, 0x400005, input_port_2_word_r	},	/* Coins*/
2326 	{ 0x700000, 0x703fff, seta_sound_word_r		},	/* Sound*/
2327 	{ 0x800000, 0x803fff, MRA16_RAM				},	/* VRAM 0&1*/
2328 	{ 0x880000, 0x883fff, MRA16_RAM				},	/* VRAM 2&3*/
2329 /**/{ 0x900000, 0x900005, MRA16_RAM				},	/* VRAM 0&1 Ctrl*/
2330 /**/{ 0x980000, 0x980005, MRA16_RAM				},	/* VRAM 2&3 Ctrl*/
2331 /**/{ 0xa00000, 0xa00607, MRA16_RAM				},	/* Sprites Y*/
2332 /**/{ 0xa80000, 0xa80001, MRA16_RAM				},	/* ? 0x4000*/
2333 	{ 0xb00000, 0xb03fff, MRA16_RAM				},	/* Sprites Code + X + Attr*/
2334 	{ 0xc00400, 0xc00fff, MRA16_RAM				},	/* Palette*/
2335 MEMORY_END
2336 
2337 static MEMORY_WRITE16_START( oisipuzl_writemem )
2338 	{ 0x000000, 0x07ffff, MWA16_ROM						},	/* ROM*/
2339 	{ 0x100000, 0x17ffff, MWA16_ROM						},	/* ROM*/
2340 	{ 0x200000, 0x20ffff, MWA16_RAM						},	/* RAM*/
2341 	{ 0x400000, 0x400001, MWA16_NOP						},	/* ? IRQ Ack*/
2342 	{ 0x500000, 0x500005, seta_vregs_w, &seta_vregs		},	/* Coin Lockout + Video Registers*/
2343 	{ 0x700000, 0x703fff, seta_sound_word_w				},	/* Sound*/
2344 	{ 0x800000, 0x803fff, seta_vram_0_w, &seta_vram_0	},	/* VRAM 0*/
2345 	{ 0x880000, 0x883fff, seta_vram_2_w, &seta_vram_2	},	/* VRAM 2*/
2346 	{ 0x900000, 0x900005, MWA16_RAM, &seta_vctrl_0		},	/* VRAM 0&1 Ctrl*/
2347 	{ 0x980000, 0x980005, MWA16_RAM, &seta_vctrl_2		},	/* VRAM 2&3 Ctrl*/
2348 	{ 0xa00000, 0xa00607, MWA16_RAM, &spriteram16		},	/* Sprites Y*/
2349 	{ 0xa80000, 0xa80001, MWA16_RAM						},	/* ? 0x4000*/
2350 	{ 0xb00000, 0xb03fff, MWA16_RAM, &spriteram16_2		},	/* Sprites Code + X + Attr*/
2351 	{ 0xc00400, 0xc00fff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	/* Palette*/
2352 MEMORY_END
2353 
2354 /***************************************************************************
2355 								Triple Fun
2356 ***************************************************************************/
2357 
2358 /* the same as oisipuzl with the sound system replaced */
2359 
2360 static MEMORY_READ16_START( triplfun_readmem )
2361 	{ 0x000000, 0x07ffff, MRA16_ROM				},	/* ROM*/
2362 	{ 0x100000, 0x17ffff, MRA16_ROM				},	/* ROM*/
2363 	{ 0x200000, 0x20ffff, MRA16_RAM				},	/* RAM*/
2364 	{ 0x300000, 0x300003, seta_dsw_r			},	/* DSW*/
2365 	{ 0x400000, 0x400001, input_port_0_word_r	},	/* P1*/
2366 	{ 0x400002, 0x400003, input_port_1_word_r	},	/* P2*/
2367 	{ 0x400004, 0x400005, input_port_2_word_r	},	/* Coins*/
2368 	{ 0x500006, 0x500007, OKIM6295_status_0_lsb_r }, /* tfun sound*/
2369 	{ 0x700000, 0x703fff, MRA16_RAM				},	/* old sound*/
2370 	{ 0x800000, 0x803fff, MRA16_RAM				},	/* VRAM 0&1*/
2371 	{ 0x880000, 0x883fff, MRA16_RAM				},	/* VRAM 2&3*/
2372 /**/{ 0x900000, 0x900005, MRA16_RAM				},	/* VRAM 0&1 Ctrl*/
2373 /**/{ 0x980000, 0x980005, MRA16_RAM				},	/* VRAM 2&3 Ctrl*/
2374 /**/{ 0xa00000, 0xa00607, MRA16_RAM				},	/* Sprites Y*/
2375 /**/{ 0xa80000, 0xa80001, MRA16_RAM				},	/* ? 0x4000*/
2376 	{ 0xb00000, 0xb03fff, MRA16_RAM				},	/* Sprites Code + X + Attr*/
2377 	{ 0xc00400, 0xc00fff, MRA16_RAM				},	/* Palette*/
2378 MEMORY_END
2379 
2380 static MEMORY_WRITE16_START( triplfun_writemem )
2381 	{ 0x000000, 0x07ffff, MWA16_ROM						},	/* ROM*/
2382 	{ 0x100000, 0x17ffff, MWA16_ROM						},	/* ROM*/
2383 	{ 0x200000, 0x20ffff, MWA16_RAM						},	/* RAM*/
2384 	{ 0x400000, 0x400001, MWA16_NOP						},	/* ? IRQ Ack*/
2385 	{ 0x500000, 0x500005, seta_vregs_w, &seta_vregs		},	/* Coin Lockout + Video Registers*/
2386 	{ 0x500006, 0x500007, OKIM6295_data_0_lsb_w         },  /* tfun sound*/
2387 	{ 0x700000, 0x703fff, MWA16_RAM						},	/* old sound*/
2388 	{ 0x800000, 0x803fff, seta_vram_0_w, &seta_vram_0	},	/* VRAM 0*/
2389 	{ 0x880000, 0x883fff, seta_vram_2_w, &seta_vram_2	},	/* VRAM 2*/
2390 	{ 0x900000, 0x900005, MWA16_RAM, &seta_vctrl_0		},	/* VRAM 0&1 Ctrl*/
2391 	{ 0x980000, 0x980005, MWA16_RAM, &seta_vctrl_2		},	/* VRAM 2&3 Ctrl*/
2392 	{ 0xa00000, 0xa00607, MWA16_RAM, &spriteram16		},	/* Sprites Y*/
2393 	{ 0xa80000, 0xa80001, MWA16_RAM						},	/* ? 0x4000*/
2394 	{ 0xb00000, 0xb03fff, MWA16_RAM, &spriteram16_2		},	/* Sprites Code + X + Attr*/
2395 	{ 0xc00400, 0xc00fff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	/* Palette*/
2396 MEMORY_END
2397 
2398 /***************************************************************************
2399 							Pro Mahjong Kiwame
2400 ***************************************************************************/
2401 
2402 data16_t *kiwame_nvram;
2403 
READ16_HANDLER(kiwame_nvram_r)2404 READ16_HANDLER( kiwame_nvram_r )
2405 {
2406 	return kiwame_nvram[offset] & 0xff;
2407 }
2408 
WRITE16_HANDLER(kiwame_nvram_w)2409 WRITE16_HANDLER( kiwame_nvram_w )
2410 {
2411 	if (ACCESSING_LSB)	COMBINE_DATA( &kiwame_nvram[offset] );
2412 }
2413 
READ16_HANDLER(kiwame_input_r)2414 READ16_HANDLER( kiwame_input_r )
2415 {
2416 	int row_select = kiwame_nvram_r( 0x10a/2,0 ) & 0x1f;
2417 	int i;
2418 
2419 	for(i = 0; i < 5; i++)
2420 		if (row_select & (1<<i))	break;
2421 
2422 	i = 4 + (i % 5);
2423 
2424 	switch( offset )
2425 	{
2426 		case 0x00/2:	return readinputport( i );
2427 		case 0x02/2:	return 0xffff;
2428 		case 0x04/2:	return readinputport( 2 );
2429 /*		case 0x06/2:*/
2430 		case 0x08/2:	return 0xffff;
2431 
2432 		default:
2433 			log_cb(RETRO_LOG_DEBUG, LOGPRE "PC %06X - Read input %02X !\n", activecpu_get_pc(), offset*2);
2434 			return 0x0000;
2435 	}
2436 }
2437 
MEMORY_READ16_START(kiwame_readmem)2438 static MEMORY_READ16_START( kiwame_readmem )
2439 	{ 0x000000, 0x07ffff, MRA16_ROM				},	/* ROM*/
2440 	{ 0x200000, 0x20ffff, MRA16_RAM				},	/* RAM*/
2441 	{ 0xfffc00, 0xffffff, kiwame_nvram_r		},	/* NVRAM + Regs ?*/
2442 	{ 0x800000, 0x803fff, MRA16_RAM				},	/* Sprites Code + X + Attr*/
2443 /**/{ 0x900000, 0x900001, MRA16_RAM				},	/* ? 0x4000*/
2444 /**/{ 0xa00000, 0xa00607, MRA16_RAM				},	/* Sprites Y*/
2445 	{ 0xb00000, 0xb003ff, MRA16_RAM				},	/* Palette*/
2446 	{ 0xc00000, 0xc03fff, seta_sound_word_r		},	/* Sound*/
2447 	{ 0xd00000, 0xd00009, kiwame_input_r		},
2448 	{ 0xe00000, 0xe00003, seta_dsw_r			},	/* DSW*/
2449 MEMORY_END
2450 
2451 static MEMORY_WRITE16_START( kiwame_writemem )
2452 	{ 0x000000, 0x07ffff, MWA16_ROM						},	/* ROM*/
2453 	{ 0x200000, 0x20ffff, MWA16_RAM						},	/* RAM*/
2454 	{ 0xfffc00, 0xffffff, kiwame_nvram_w, &kiwame_nvram	},	/* NVRAM + Regs ?*/
2455 	{ 0x800000, 0x803fff, MWA16_RAM, &spriteram16_2		},	/* Sprites Code + X + Attr*/
2456 	{ 0x900000, 0x900001, MWA16_RAM						},	/* ? 0x4000*/
2457 	{ 0xa00000, 0xa00607, MWA16_RAM, &spriteram16		},	/* Sprites Y*/
2458 	{ 0xb00000, 0xb003ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	/* Palette*/
2459 	{ 0xc00000, 0xc03fff, seta_sound_word_w				},	/* Sound*/
2460 MEMORY_END
2461 
2462 
2463 /***************************************************************************
2464 						Thunder & Lightning / Wit's
2465 ***************************************************************************/
2466 
2467 static READ16_HANDLER( thunderl_protection_r )
2468 {
2469 /*	log_cb(RETRO_LOG_DEBUG, LOGPRE "PC %06X - Protection Read\n", activecpu_get_pc());*/
2470 	return 0x00dd;
2471 }
WRITE16_HANDLER(thunderl_protection_w)2472 static WRITE16_HANDLER( thunderl_protection_w )
2473 {
2474 /*	log_cb(RETRO_LOG_DEBUG, LOGPRE "PC %06X - Protection Written: %04X <- %04X\n", activecpu_get_pc(), offset*2, data);*/
2475 }
2476 
2477 /* Similar to downtown etc. */
2478 
MEMORY_READ16_START(thunderl_readmem)2479 static MEMORY_READ16_START( thunderl_readmem )
2480 	{ 0x000000, 0x00ffff, MRA16_ROM				},	/* ROM*/
2481 	{ 0xffc000, 0xffffff, MRA16_RAM				},	/* RAM*/
2482 	{ 0x100000, 0x103fff, seta_sound_word_r		},	/* Sound*/
2483 	{ 0x600000, 0x600003, seta_dsw_r			},	/* DSW*/
2484 	{ 0x700000, 0x7003ff, MRA16_RAM				},	/* Palette*/
2485 	{ 0xb00000, 0xb00001, input_port_0_word_r	},	/* P1*/
2486 	{ 0xb00002, 0xb00003, input_port_1_word_r	},	/* P2*/
2487 	{ 0xb00004, 0xb00005, input_port_2_word_r	},	/* Coins*/
2488 	{ 0xb0000c, 0xb0000d, thunderl_protection_r	},	/* Protection (not in wits)*/
2489 	{ 0xb00008, 0xb00009, input_port_4_word_r	},	/* P3 (wits)*/
2490 	{ 0xb0000a, 0xb0000b, input_port_5_word_r	},	/* P4 (wits)*/
2491 /**/{ 0xc00000, 0xc00001, MRA16_RAM				},	/* ? 0x4000*/
2492 /**/{ 0xd00000, 0xd00607, MRA16_RAM				},	/* Sprites Y*/
2493 	{ 0xe00000, 0xe03fff, MRA16_RAM				},	/* Sprites Code + X + Attr*/
2494 	{ 0xe04000, 0xe07fff, MRA16_RAM				},	/* (wits)*/
2495 MEMORY_END
2496 
2497 static MEMORY_WRITE16_START( thunderl_writemem )
2498 	{ 0x000000, 0x00ffff, MWA16_ROM					},	/* ROM*/
2499 	{ 0xffc000, 0xffffff, MWA16_RAM					},	/* RAM*/
2500 	{ 0x100000, 0x103fff, seta_sound_word_w			},	/* Sound*/
2501 	{ 0x200000, 0x200001, MWA16_NOP					},	/* ?*/
2502 	{ 0x300000, 0x300001, MWA16_NOP					},	/* ?*/
2503 	{ 0x400000, 0x40ffff, thunderl_protection_w		},	/* Protection (not in wits)*/
2504 	{ 0x500000, 0x500001, seta_vregs_w, &seta_vregs	},	/* Coin Lockout*/
2505 	{ 0x700000, 0x7003ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	/* Palette*/
2506 	{ 0xc00000, 0xc00001, MWA16_RAM					},	/* ? 0x4000*/
2507 	{ 0xd00000, 0xd00607, MWA16_RAM, &spriteram16	},	/* Sprites Y*/
2508 	{ 0xe00000, 0xe03fff, MWA16_RAM, &spriteram16_2	},	/* Sprites Code + X + Attr*/
2509 	{ 0xe04000, 0xe07fff, MWA16_RAM					},	/* (wits)*/
2510 MEMORY_END
2511 
2512 
2513 /***************************************************************************
2514 					Ultraman Club / SD Gundam Neo Battling
2515 ***************************************************************************/
2516 
2517 static MEMORY_READ16_START( umanclub_readmem )
2518 	{ 0x000000, 0x03ffff, MRA16_ROM				},	/* ROM*/
2519 	{ 0x200000, 0x20ffff, MRA16_RAM				},	/* RAM*/
2520 	{ 0x300000, 0x3003ff, MRA16_RAM				},	/* Palette*/
2521 	{ 0x300400, 0x300fff, MRA16_RAM				},	/**/
2522 	{ 0x400000, 0x400001, input_port_0_word_r	},	/* P1*/
2523 	{ 0x400002, 0x400003, input_port_1_word_r	},	/* P2*/
2524 	{ 0x400004, 0x400005, input_port_2_word_r	},	/* Coins*/
2525 	{ 0x600000, 0x600003, seta_dsw_r			},	/* DSW*/
2526 	{ 0xa00000, 0xa00607, MRA16_RAM				},	/* Sprites Y*/
2527 /**/{ 0xa80000, 0xa80001, MRA16_RAM				},	/* ? 0x4000*/
2528 	{ 0xb00000, 0xb03fff, MRA16_RAM				},	/* Sprites Code + X + Attr*/
2529 	{ 0xc00000, 0xc03fff, seta_sound_word_r		},	/* Sound*/
2530 MEMORY_END
2531 
2532 static MEMORY_WRITE16_START( umanclub_writemem )
2533 	{ 0x000000, 0x03ffff, MWA16_ROM					},	/* ROM*/
2534 	{ 0x200000, 0x20ffff, MWA16_RAM					},	/* RAM*/
2535 	{ 0x300000, 0x3003ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	/* Palette*/
2536 	{ 0x300400, 0x300fff, MWA16_RAM					},	/**/
2537 	{ 0x400000, 0x400001, MWA16_NOP					},	/* ? (end of lev 2)*/
2538 	{ 0x400004, 0x400005, MWA16_NOP					},	/* ? (end of lev 2)*/
2539 	{ 0x500000, 0x500001, seta_vregs_w, &seta_vregs	},	/* Coin Lockout + Video Registers*/
2540 	{ 0xa00000, 0xa00607, MWA16_RAM, &spriteram16	},	/* Sprites Y*/
2541 	{ 0xa80000, 0xa80001, MWA16_RAM					},	/* ? 0x4000*/
2542 	{ 0xb00000, 0xb03fff, MWA16_RAM, &spriteram16_2	},	/* Sprites Code + X + Attr*/
2543 	{ 0xc00000, 0xc03fff, seta_sound_word_w			},	/* Sound*/
2544 MEMORY_END
2545 
2546 /***************************************************************************
2547 							Ultra Toukond Densetsu
2548 ***************************************************************************/
2549 
2550 static WRITE16_HANDLER( utoukond_soundlatch_w )
2551 {
2552 	if (ACCESSING_LSB)
2553 	{
2554 		cpu_set_irq_line(1,0,HOLD_LINE);
2555 		soundlatch_w(0,data & 0xff);
2556 	}
2557 }
2558 
MEMORY_READ16_START(utoukond_readmem)2559 static MEMORY_READ16_START( utoukond_readmem )
2560 	{ 0x000000, 0x0fffff, MRA16_ROM				},	/* ROM*/
2561 	{ 0x200000, 0x20ffff, MRA16_RAM				},	/* ROM*/
2562 	{ 0x400000, 0x400001, input_port_0_word_r	},	/* P1*/
2563 	{ 0x400002, 0x400003, input_port_1_word_r	},	/* P2*/
2564 	{ 0x400004, 0x400005, input_port_2_word_r	},	/* Coins*/
2565 	{ 0x600000, 0x600003, seta_dsw_r			},	/* DSW*/
2566 	{ 0x700400, 0x700fff, MRA16_RAM				},	/* Palette*/
2567 	{ 0x800000, 0x801fff, MRA16_RAM				},	/* VRAM 0*/
2568 	{ 0x802000, 0x803fff, MRA16_RAM				},	/* VRAM 1*/
2569 	{ 0x880000, 0x881fff, MRA16_RAM				},	/* VRAM 2*/
2570 	{ 0x882000, 0x883fff, MRA16_RAM				},	/* VRAM 3*/
2571 	{ 0xa00000, 0xa00607, MRA16_RAM			 	},	/* Sprites Y*/
2572 	{ 0xb00000, 0xb03fff, MRA16_RAM				},	/* Sprites Code + X + Attr*/
2573 MEMORY_END
2574 
2575 static MEMORY_WRITE16_START( utoukond_writemem )
2576 	{ 0x000000, 0x0fffff, MWA16_ROM						},	/* ROM*/
2577 	{ 0x200000, 0x20ffff, MWA16_RAM						},	/* ROM*/
2578 	{ 0x500000, 0x500005, seta_vregs_w, &seta_vregs		},	/* ? Coin Lockout + Video Registers*/
2579 	{ 0x700400, 0x700fff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	/* Palette*/
2580 	{ 0x800000, 0x803fff, seta_vram_0_w, &seta_vram_0	},	/* VRAM 0*/
2581 	{ 0x880000, 0x883fff, seta_vram_2_w, &seta_vram_2	},	/* VRAM 2*/
2582 	{ 0x900000, 0x900005, MWA16_RAM, &seta_vctrl_0		},	/* VRAM 0&1 Ctrl*/
2583 	{ 0x980000, 0x980005, MWA16_RAM, &seta_vctrl_2		},	/* VRAM 2&3 Ctrl*/
2584 	{ 0xa00000, 0xa00607, MWA16_RAM , &spriteram16		},	/* Sprites Y*/
2585 	{ 0xb00000, 0xb03fff, MWA16_RAM , &spriteram16_2	},	/* Sprites Code + X + Attr*/
2586 	{ 0xc00000, 0xc00001, utoukond_soundlatch_w			},	/* To Sound CPU (cause an IRQ)*/
2587 	{ 0xe00000, 0xe00001, MWA16_NOP						},	/* ? ack*/
2588 MEMORY_END
2589 
2590 
2591 
2592 /***************************************************************************
2593 
2594 
2595 								Sub / Sound CPU
2596 
2597 
2598 ***************************************************************************/
2599 
2600 static WRITE_HANDLER( sub_bankswitch_w )
2601 {
2602 	data8_t *rom = memory_region(REGION_CPU2);
2603 	int bank = data >> 4;
2604 
2605 	cpu_setbank(1, &rom[bank * 0x4000 + 0xc000]);
2606 }
2607 
WRITE_HANDLER(sub_bankswitch_lockout_w)2608 static WRITE_HANDLER( sub_bankswitch_lockout_w )
2609 {
2610 	sub_bankswitch_w(offset,data);
2611 	seta_coin_lockout_w(data);
2612 }
2613 
2614 
2615 /***************************************************************************
2616 								Thundercade
2617 ***************************************************************************/
2618 
READ_HANDLER(ff_r)2619 static READ_HANDLER( ff_r )	{return 0xff;}
2620 
MEMORY_READ_START(tndrcade_sub_readmem)2621 static MEMORY_READ_START( tndrcade_sub_readmem )
2622 	{ 0x0000, 0x01ff, MRA_RAM				},	/* RAM*/
2623 	{ 0x0800, 0x0800, ff_r					},	/* ? (bits 0/1/2/3: 1 -> do test 0-ff/100-1e0/5001-57ff/banked rom)*/
2624 /*	{ 0x0800, 0x0800, soundlatch_r			},	*/ /**/
2625 /*	{ 0x0801, 0x0801, soundlatch2_r			},	*/ /**/
2626 	{ 0x1000, 0x1000, input_port_0_r		},	/* P1*/
2627 	{ 0x1001, 0x1001, input_port_1_r		},	/* P2*/
2628 	{ 0x1002, 0x1002, input_port_2_r		},	/* Coins*/
2629 	{ 0x2001, 0x2001, YM2203_read_port_0_r	},
2630 	{ 0x5000, 0x57ff, MRA_RAM				},	/* Shared RAM*/
2631 	{ 0x6000, 0x7fff, MRA_ROM				},	/* ROM*/
2632 	{ 0x8000, 0xbfff, MRA_BANK1				},	/* Banked ROM*/
2633 	{ 0xc000, 0xffff, MRA_ROM				},	/* ROM*/
2634 MEMORY_END
2635 
2636 static MEMORY_WRITE_START( tndrcade_sub_writemem )
2637 	{ 0x0000, 0x01ff, MWA_RAM					},	/* RAM*/
2638 	{ 0x1000, 0x1000, sub_bankswitch_lockout_w	},	/* ROM Bank + Coin Lockout*/
2639 	{ 0x2000, 0x2000, YM2203_control_port_0_w	},
2640 	{ 0x2001, 0x2001, YM2203_write_port_0_w		},
2641 	{ 0x3000, 0x3000, YM3812_control_port_0_w	},
2642 	{ 0x3001, 0x3001, YM3812_write_port_0_w		},
2643 	{ 0x5000, 0x57ff, MWA_RAM, &sharedram		},	/* Shared RAM*/
2644 	{ 0x6000, 0xffff, MWA_ROM					},	/* ROM*/
2645 MEMORY_END
2646 
2647 /***************************************************************************
2648 								Twin Eagle
2649 ***************************************************************************/
2650 
2651 static MEMORY_READ_START( twineagl_sub_readmem )
2652 	{ 0x0000, 0x01ff, MRA_RAM			},	/* RAM*/
2653 	{ 0x0800, 0x0800, soundlatch_r		},	/**/
2654 	{ 0x0801, 0x0801, soundlatch2_r		},	/**/
2655 	{ 0x1000, 0x1000, input_port_0_r	},	/* P1*/
2656 	{ 0x1001, 0x1001, input_port_1_r	},	/* P2*/
2657 	{ 0x1002, 0x1002, input_port_2_r	},	/* Coins*/
2658 	{ 0x5000, 0x57ff, MRA_RAM			},	/* Shared RAM*/
2659 	{ 0x7000, 0x7fff, MRA_ROM			},	/* ROM*/
2660 	{ 0x8000, 0xbfff, MRA_BANK1			},	/* Banked ROM*/
2661 	{ 0xc000, 0xffff, MRA_ROM			},	/* ROM*/
2662 MEMORY_END
2663 
2664 static MEMORY_WRITE_START( twineagl_sub_writemem )
2665 	{ 0x0000, 0x01ff, MWA_RAM				},	/* RAM*/
2666 	{ 0x1000, 0x1000, sub_bankswitch_lockout_w	},	/* ROM Bank + Coin Lockout*/
2667 	{ 0x5000, 0x57ff, MWA_RAM, &sharedram	},	/* Shared RAM*/
2668 	{ 0x7000, 0x7fff, MWA_ROM				},	/* ROM*/
2669 	{ 0x8000, 0xbfff, MWA_ROM				},	/* ROM*/
2670 	{ 0xc000, 0xffff, MWA_ROM				},	/* ROM*/
2671 MEMORY_END
2672 
2673 /***************************************************************************
2674 								DownTown
2675 ***************************************************************************/
2676 
2677 READ_HANDLER( downtown_ip_r )
2678 {
2679 	int dir1 = readinputport(4);	/* analog port*/
2680 	int dir2 = readinputport(5);	/* analog port*/
2681 
2682 	dir1 = (~ (0x800 >> ((dir1 * 12)/0x100)) ) & 0xfff;
2683 	dir2 = (~ (0x800 >> ((dir2 * 12)/0x100)) ) & 0xfff;
2684 
2685 	switch (offset)
2686 	{
2687 		case 0:	return (readinputport(2) & 0xf0) + (dir1>>8);	/* upper 4 bits of p1 rotation + coins*/
2688 		case 1:	return (dir1&0xff);			/* lower 8 bits of p1 rotation*/
2689 		case 2:	return readinputport(0);	/* p1*/
2690 		case 3:	return 0xff;				/* ?*/
2691 		case 4:	return (dir2>>8);			/* upper 4 bits of p2 rotation + ?*/
2692 		case 5:	return (dir2&0xff);			/* lower 8 bits of p2 rotation*/
2693 		case 6:	return readinputport(1);	/* p2*/
2694 		case 7:	return 0xff;				/* ?*/
2695 	}
2696 
2697 	return 0;
2698 }
2699 
MEMORY_READ_START(downtown_sub_readmem)2700 static MEMORY_READ_START( downtown_sub_readmem )
2701 	{ 0x0000, 0x01ff, MRA_RAM			},	/* RAM*/
2702 	{ 0x0800, 0x0800, soundlatch_r		},	/**/
2703 	{ 0x0801, 0x0801, soundlatch2_r		},	/**/
2704 	{ 0x1000, 0x1007, downtown_ip_r		},	/* Input Ports*/
2705 	{ 0x5000, 0x57ff, MRA_RAM			},	/* Shared RAM*/
2706 	{ 0x7000, 0x7fff, MRA_ROM			},	/* ROM*/
2707 	{ 0x8000, 0xbfff, MRA_BANK1			},	/* Banked ROM*/
2708 	{ 0xc000, 0xffff, MRA_ROM			},	/* ROM*/
2709 MEMORY_END
2710 
2711 static MEMORY_WRITE_START( downtown_sub_writemem )
2712 	{ 0x0000, 0x01ff, MWA_RAM				},	/* RAM*/
2713 	{ 0x1000, 0x1000, sub_bankswitch_lockout_w		},	/* ROM Bank + Coin Lockout*/
2714 	{ 0x5000, 0x57ff, MWA_RAM, &sharedram	},	/* Shared RAM*/
2715 	{ 0x7000, 0xffff, MWA_ROM				},	/* ROM*/
2716 MEMORY_END
2717 
2718 /***************************************************************************
2719 						Caliber 50 / U.S. Classic
2720 ***************************************************************************/
2721 
2722 WRITE_HANDLER( calibr50_soundlatch2_w )
2723 {
2724 	soundlatch2_w(0,data);
2725 	cpu_spinuntil_time(TIME_IN_USEC(50));	/* Allow the other cpu to reply*/
2726 }
2727 
MEMORY_READ_START(calibr50_sub_readmem)2728 static MEMORY_READ_START( calibr50_sub_readmem )
2729 	{ 0x0000, 0x1fff, seta_sound_r		},	/* Sound*/
2730 	{ 0x4000, 0x4000, soundlatch_r		},	/* From Main CPU*/
2731 	{ 0x8000, 0xbfff, MRA_BANK1			},	/* Banked ROM*/
2732 	{ 0xc000, 0xffff, MRA_ROM			},	/* ROM*/
2733 MEMORY_END
2734 
2735 static MEMORY_WRITE_START( calibr50_sub_writemem )
2736 	{ 0x0000, 0x1fff, seta_sound_w				},	/* Sound*/
2737 	{ 0x4000, 0x4000, sub_bankswitch_w			},	/* Bankswitching*/
2738 	{ 0x8000, 0xbfff, MWA_ROM					},	/* Banked ROM*/
2739 	{ 0xc000, 0xc000, calibr50_soundlatch2_w	},	/* To Main CPU*/
2740 	{ 0xc000, 0xffff, MWA_ROM					},	/* ROM*/
2741 MEMORY_END
2742 
2743 /***************************************************************************
2744 								Meta Fox
2745 ***************************************************************************/
2746 
2747 static MEMORY_READ_START( metafox_sub_readmem )
2748 	{ 0x0000, 0x01ff, MRA_RAM			},	/* RAM*/
2749 	{ 0x0800, 0x0800, soundlatch_r		},	/**/
2750 	{ 0x0801, 0x0801, soundlatch2_r		},	/**/
2751 	{ 0x1000, 0x1000, input_port_2_r	},	/* Coins*/
2752 	{ 0x1002, 0x1002, input_port_0_r	},	/* P1*/
2753 /*	{ 0x1004, 0x1004, MRA_NOP			},	*/ /* ?*/
2754 	{ 0x1006, 0x1006, input_port_1_r	},	/* P2*/
2755 	{ 0x5000, 0x57ff, MRA_RAM			},	/* Shared RAM*/
2756 	{ 0x7000, 0x7fff, MRA_ROM			},	/* ROM*/
2757 	{ 0x8000, 0xbfff, MRA_BANK1			},	/* Banked ROM*/
2758 	{ 0xc000, 0xffff, MRA_ROM			},	/* ROM*/
2759 MEMORY_END
2760 
2761 static MEMORY_WRITE_START( metafox_sub_writemem )
2762 	{ 0x0000, 0x01ff, MWA_RAM				},	/* RAM*/
2763 	{ 0x1000, 0x1000, sub_bankswitch_lockout_w		},	/* ROM Bank + Coin Lockout*/
2764 	{ 0x5000, 0x57ff, MWA_RAM, &sharedram	},	/* Shared RAM*/
2765 	{ 0x7000, 0x7fff, MWA_ROM				},	/* ROM*/
2766 	{ 0x8000, 0xbfff, MWA_ROM				},	/* ROM*/
2767 	{ 0xc000, 0xffff, MWA_ROM				},	/* ROM*/
2768 MEMORY_END
2769 
2770 
2771 /***************************************************************************
2772 							Ultra Toukon Densetsu
2773 ***************************************************************************/
2774 
2775 static MEMORY_READ_START( utoukond_sound_readmem )
2776 	{ 0x0000, 0xdfff, MRA_ROM },
2777 	{ 0xe000, 0xefff, MRA_RAM },
2778 	{ 0xf000, 0xffff, seta_sound_r },
2779 MEMORY_END
2780 static MEMORY_WRITE_START( utoukond_sound_writemem )
2781 	{ 0x0000, 0xdfff, MWA_ROM },
2782 	{ 0xe000, 0xefff, MWA_RAM },
2783 	{ 0xf000, 0xffff, seta_sound_w },
2784 MEMORY_END
2785 
2786 static PORT_READ_START( utoukond_sound_readport )
2787 	{ 0x00, 0x00, YM2612_status_port_0_A_r },
2788 	{ 0xc0, 0xc0, soundlatch_r },
2789 PORT_END
2790 static PORT_WRITE_START( utoukond_sound_writeport )
2791 	{ 0x00, 0x00, YM2612_control_port_0_A_w },
2792 	{ 0x01, 0x01, YM2612_data_port_0_A_w },
2793 	{ 0x02, 0x02, YM2612_control_port_0_B_w },
2794 	{ 0x03, 0x03, YM2612_data_port_0_B_w },
2795 	{ 0x80, 0x80, IOWP_NOP }, /*?*/
2796 PORT_END
2797 
2798 
2799 
2800 
2801 /***************************************************************************
2802 
2803 
2804 								Input Ports
2805 
2806 
2807 ***************************************************************************/
2808 
2809 #define	JOY_TYPE1_1BUTTON(_n_) \
2810 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT	|	IPF_PLAYER##_n_	) \
2811 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT|	IPF_PLAYER##_n_	) \
2812 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	|	IPF_PLAYER##_n_	) \
2813 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN	|	IPF_PLAYER##_n_	) \
2814 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1		|	IPF_PLAYER##_n_	) \
2815 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN						) \
2816 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN						) \
2817 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START##_n_					)
2818 
2819 #define	JOY_TYPE1_2BUTTONS(_n_) \
2820 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT	|	IPF_PLAYER##_n_	) \
2821 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT|	IPF_PLAYER##_n_	) \
2822 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	|	IPF_PLAYER##_n_	) \
2823 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN	|	IPF_PLAYER##_n_	) \
2824 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1		|	IPF_PLAYER##_n_	) \
2825 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_BUTTON2		|	IPF_PLAYER##_n_	) \
2826 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN						) \
2827 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START##_n_					)
2828 
2829 #define	JOY_TYPE1_3BUTTONS(_n_) \
2830 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT	|	IPF_PLAYER##_n_	) \
2831 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT|	IPF_PLAYER##_n_	) \
2832 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	|	IPF_PLAYER##_n_	) \
2833 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN	|	IPF_PLAYER##_n_	) \
2834 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1		|	IPF_PLAYER##_n_	) \
2835 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_BUTTON2		|	IPF_PLAYER##_n_	) \
2836 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_BUTTON3		|	IPF_PLAYER##_n_	) \
2837 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START##_n_					)
2838 
2839 
2840 
2841 #define	JOY_TYPE2_1BUTTON(_n_) \
2842 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	|	IPF_PLAYER##_n_	) \
2843 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN	|	IPF_PLAYER##_n_	) \
2844 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT	|	IPF_PLAYER##_n_	) \
2845 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT|	IPF_PLAYER##_n_	) \
2846 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1		|	IPF_PLAYER##_n_	) \
2847 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN						) \
2848 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN						) \
2849 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START##_n_					)
2850 
2851 #define	JOY_TYPE2_2BUTTONS(_n_) \
2852 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	|	IPF_PLAYER##_n_	) \
2853 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN	|	IPF_PLAYER##_n_	) \
2854 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT	|	IPF_PLAYER##_n_	) \
2855 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT|	IPF_PLAYER##_n_	) \
2856 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1		|	IPF_PLAYER##_n_	) \
2857 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_BUTTON2		|	IPF_PLAYER##_n_	) \
2858 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN						) \
2859 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START##_n_					)
2860 
2861 #define	JOY_TYPE2_3BUTTONS(_n_) \
2862 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	|	IPF_PLAYER##_n_	) \
2863 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN	|	IPF_PLAYER##_n_	) \
2864 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT	|	IPF_PLAYER##_n_	) \
2865 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT|	IPF_PLAYER##_n_	) \
2866 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1		|	IPF_PLAYER##_n_	) \
2867 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_BUTTON2		|	IPF_PLAYER##_n_	) \
2868 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_BUTTON3		|	IPF_PLAYER##_n_	) \
2869 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START##_n_					)
2870 
2871 
2872 #define JOY_ROTATION(_n_, _left_, _right_ ) \
2873 	PORT_ANALOGX( 0xff, 0x00, IPT_DIAL | IPF_PLAYER##_n_, 15, 15, 0, 0, KEYCODE_##_left_, KEYCODE_##_right_, IP_JOY_NONE, IP_JOY_NONE )
2874 
2875 
2876 
2877 /***************************************************************************
2878 								Arbalester
2879 ***************************************************************************/
2880 
2881 INPUT_PORTS_START( arbalest )
2882 	PORT_START	/* IN0 - Player 1*/
2883 	JOY_TYPE2_2BUTTONS(1)
2884 
2885 	PORT_START	/* IN1 - Player 2*/
2886 	JOY_TYPE2_2BUTTONS(2)
2887 
2888 	PORT_START	/* IN2 - Coins*/
2889 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN  )
2890 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN  )
2891 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN  )
2892 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN  )
2893 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_TILT     )
2894 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_SERVICE1 )
2895 	PORT_BIT_IMPULSE( 0x0040, IP_ACTIVE_LOW, IPT_COIN2, 5 )
2896 	PORT_BIT_IMPULSE( 0x0080, IP_ACTIVE_LOW, IPT_COIN1, 5 )
2897 
2898 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
2899 	PORT_DIPNAME( 0x4001, 0x0000, "Licensed To" )
2900 	PORT_DIPSETTING(      0x0000, "Taito" )
2901 /*	PORT_DIPSETTING(      0x4000, "Taito" )*/
2902 	PORT_DIPSETTING(      0x4001, "Romstar" )
2903 	PORT_DIPSETTING(      0x0001, "Jordan" )
2904 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )
2905 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
2906 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
2907 	PORT_SERVICE( 0x0004, IP_ACTIVE_LOW )
2908 	PORT_DIPNAME( 0x0008, 0x0008, "Unknown 2-4" )	/* not used, according to manual*/
2909 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
2910 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
2911 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
2912 	PORT_DIPSETTING(      0x0010, DEF_STR( 2C_1C ) )
2913 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_1C ) )
2914 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
2915 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_2C ) )
2916 	PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
2917 	PORT_DIPSETTING(      0x0040, DEF_STR( 2C_1C ) )
2918 	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_1C ) )
2919 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
2920 	PORT_DIPSETTING(      0x0080, DEF_STR( 1C_2C ) )
2921 
2922 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) )
2923 	PORT_DIPSETTING(      0x0300, "Easy" )
2924 	PORT_DIPSETTING(      0x0200, "Hard" )
2925 	PORT_DIPSETTING(      0x0100, "Harder" )
2926 	PORT_DIPSETTING(      0x0000, "Hardest" )
2927 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Bonus_Life ) )
2928 	PORT_DIPSETTING(      0x0c00, "Never" )
2929 	PORT_DIPSETTING(      0x0800, "300k Only" )
2930 	PORT_DIPSETTING(      0x0400, "600k Only" )
2931 	PORT_DIPSETTING(      0x0000, "300k & 600k" )
2932 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) )
2933 	PORT_DIPSETTING(      0x1000, "1" )
2934 	PORT_DIPSETTING(      0x0000, "2" )
2935 	PORT_DIPSETTING(      0x3000, "3" )
2936 	PORT_DIPSETTING(      0x2000, "5" )
2937 /*                        0x4000  License (see first dsw)*/
2938 	PORT_DIPNAME( 0x8000, 0x8000, "Coinage Type" )	/* not supported*/
2939 	PORT_DIPSETTING(      0x8000, "1" )
2940 	PORT_DIPSETTING(      0x0000, "2" )
2941 INPUT_PORTS_END
2942 
2943 
2944 /***************************************************************************
2945 								Athena no Hatena?
2946 ***************************************************************************/
2947 
2948 INPUT_PORTS_START( atehate )
2949 	PORT_START	/* IN0 - Player 1*/
2950 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_BUTTON3  |  IPF_PLAYER1 )
2951 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_BUTTON4  |  IPF_PLAYER1 )
2952 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_BUTTON1  |  IPF_PLAYER1 )
2953 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_BUTTON2  |  IPF_PLAYER1 )
2954 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
2955 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
2956 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
2957 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START1  )
2958 
2959 	PORT_START	/* IN1 - Player 2*/
2960 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_BUTTON3  |  IPF_PLAYER2 )
2961 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_BUTTON4  |  IPF_PLAYER2 )
2962 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_BUTTON1  |  IPF_PLAYER2 )
2963 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_BUTTON2  |  IPF_PLAYER2 )
2964 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
2965 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
2966 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
2967 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START2  )
2968 
2969 	PORT_START	/* IN2 - Coins*/
2970 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
2971 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
2972 	PORT_BIT_IMPULSE( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1, 5 )
2973 	PORT_BIT(  0x0008, IP_ACTIVE_LOW,  IPT_UNKNOWN )
2974 	PORT_BIT(  0x0010, IP_ACTIVE_LOW,  IPT_UNKNOWN ) /* 4 Bits Called "Cut DSW"*/
2975 	PORT_BIT(  0x0020, IP_ACTIVE_LOW,  IPT_UNKNOWN )
2976 	PORT_BIT(  0x0040, IP_ACTIVE_LOW,  IPT_UNKNOWN )
2977 	PORT_BIT(  0x0080, IP_ACTIVE_LOW,  IPT_UNKNOWN )
2978 
2979 	PORT_START	/* IN3 - 2 DSWs - $e00001 & 3.b*/
2980 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
2981 	PORT_DIPSETTING(      0x0001, DEF_STR( 4C_1C ) )
2982 	PORT_DIPSETTING(      0x0002, DEF_STR( 3C_1C ) )
2983 	PORT_DIPSETTING(      0x0004, DEF_STR( 2C_1C ) )
2984 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
2985 	PORT_DIPSETTING(      0x0003, DEF_STR( 2C_3C ) )
2986 	PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
2987 	PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
2988 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
2989 	PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
2990 	PORT_DIPSETTING(      0x0008, DEF_STR( 4C_1C ) )
2991 	PORT_DIPSETTING(      0x0010, DEF_STR( 3C_1C ) )
2992 	PORT_DIPSETTING(      0x0020, DEF_STR( 2C_1C ) )
2993 	PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
2994 	PORT_DIPSETTING(      0x0018, DEF_STR( 2C_3C ) )
2995 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_2C ) )
2996 	PORT_DIPSETTING(      0x0028, DEF_STR( 1C_3C ) )
2997 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
2998 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) )
2999 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
3000 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
3001 	PORT_DIPNAME( 0x0080, 0x0080, "Unknown 2-7" )	/* manual: unused*/
3002 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
3003 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3004 
3005 	PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) )
3006 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
3007 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3008 	PORT_SERVICE( 0x0200, IP_ACTIVE_LOW )
3009 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
3010 	PORT_DIPSETTING(      0x0800, "Easy"    )
3011 	PORT_DIPSETTING(      0x0c00, "Normal"  )
3012 	PORT_DIPSETTING(      0x0400, "Hard"    )
3013 	PORT_DIPSETTING(      0x0000, "Hardest" )
3014 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) )
3015 	PORT_DIPSETTING(      0x0000, "2" )
3016 	PORT_DIPSETTING(      0x3000, "3" )
3017 	PORT_DIPSETTING(      0x1000, "4" )
3018 	PORT_DIPSETTING(      0x2000, "5" )
3019 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Bonus_Life ) )
3020 	PORT_DIPSETTING(      0xc000, "None" )
3021 	PORT_DIPSETTING(      0x0000, "20K Only" )
3022 	PORT_DIPSETTING(      0x8000, "20K, Every 30K" )
3023 	PORT_DIPSETTING(      0x4000, "30K, Every 40K" )
3024 INPUT_PORTS_END
3025 
3026 
3027 /***************************************************************************
3028 								Blandia
3029 ***************************************************************************/
3030 
3031 INPUT_PORTS_START( blandia )
3032 	PORT_START	/* IN0 - Player 1 - $400000.w*/
3033 	JOY_TYPE1_3BUTTONS(1)
3034 
3035 	PORT_START	/* IN1 - Player 2 - $400002.w*/
3036 	JOY_TYPE1_3BUTTONS(2)
3037 
3038 	PORT_START	/* IN2 - Coins - $400004.w*/
3039 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
3040 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
3041 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
3042 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
3043 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3044 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3045 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3046 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3047 
3048 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
3049 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) )
3050 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
3051 	PORT_DIPSETTING(      0x0001, DEF_STR( On ) )
3052 	PORT_DIPNAME( 0x0002, 0x0002, "Coinage Type" )	/* not supported*/
3053 	PORT_DIPSETTING(      0x0002, "1" )
3054 	PORT_DIPSETTING(      0x0000, "2" )
3055 	PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_A ) )
3056 	PORT_DIPSETTING(      0x0010, DEF_STR( 3C_1C ) )
3057 	PORT_DIPSETTING(      0x000c, DEF_STR( 2C_1C ) )
3058 	PORT_DIPSETTING(      0x001c, DEF_STR( 1C_1C ) )
3059 	PORT_DIPSETTING(      0x0004, DEF_STR( 2C_3C ) )
3060 	PORT_DIPSETTING(      0x0018, DEF_STR( 1C_2C ) )
3061 	PORT_DIPSETTING(      0x0008, DEF_STR( 2C_5C ) )
3062 	PORT_DIPSETTING(      0x0014, DEF_STR( 1C_3C ) )
3063 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
3064 	PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_B ) )
3065 	PORT_DIPSETTING(      0x00e0, DEF_STR( 1C_1C ) )
3066 	PORT_DIPSETTING(      0x0060, DEF_STR( 2C_4C ) )
3067 	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_2C ) )
3068 	PORT_DIPSETTING(      0x0080, "3 Coins/7 Credit" )
3069 	PORT_DIPSETTING(      0x0020, DEF_STR( 2C_5C ) )
3070 	PORT_DIPSETTING(      0x0040, DEF_STR( 2C_6C ) )
3071 	PORT_DIPSETTING(      0x00a0, DEF_STR( 1C_3C ) )
3072 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
3073 
3074 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )
3075 	PORT_DIPSETTING(      0x0200, "1" )
3076 	PORT_DIPSETTING(      0x0300, "2" )
3077 	PORT_DIPSETTING(      0x0100, "3" )
3078 	PORT_DIPSETTING(      0x0000, "4" )
3079 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
3080 	PORT_DIPSETTING(      0x0800, "Easy"    )
3081 	PORT_DIPSETTING(      0x0c00, "Normal"  )
3082 	PORT_DIPSETTING(      0x0400, "Hard"    )
3083 	PORT_DIPSETTING(      0x0000, "Hardest" )
3084 	PORT_DIPNAME( 0x1000, 0x1000, "2 Player Game" )
3085 	PORT_DIPSETTING(      0x1000, "2 Credits" )
3086 	PORT_DIPSETTING(      0x0000, "1 Credit"  )
3087 	PORT_DIPNAME( 0x2000, 0x2000, "Continue" )
3088 	PORT_DIPSETTING(      0x2000, "1 Credit" )
3089 	PORT_DIPSETTING(      0x0000, "1 Coin"   )
3090 	PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Flip_Screen ) )
3091 	PORT_DIPSETTING(      0x4000, DEF_STR( Off ) )
3092 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3093 	PORT_SERVICE( 0x8000, IP_ACTIVE_LOW )
3094 INPUT_PORTS_END
3095 
3096 
3097 
3098 /***************************************************************************
3099 								Block Carnival
3100 ***************************************************************************/
3101 
3102 INPUT_PORTS_START( blockcar )
3103 	PORT_START	/* IN0 - Player 1 - $500001.b*/
3104 	JOY_TYPE1_2BUTTONS(1)	/* button2 = speed up*/
3105 
3106 	PORT_START	/* IN1 - Player 2 - $500003.b*/
3107 	JOY_TYPE1_2BUTTONS(2)
3108 
3109 	PORT_START	/* IN2 - Coins + DSW - $500005.b*/
3110 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
3111 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
3112 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
3113 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
3114 	PORT_DIPNAME( 0x0010, 0x0000, "Title" )
3115 	PORT_DIPSETTING(      0x0010, "Thunder & Lightning 2" )
3116 	PORT_DIPSETTING(      0x0000, "Block Carnival" )
3117 
3118 	PORT_START	/* IN3 - 2 DSWs - $300003 & 1.b*/
3119 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )
3120 	PORT_DIPSETTING(      0x0002, "Easy"    )
3121 	PORT_DIPSETTING(      0x0003, "Normal"  )
3122 	PORT_DIPSETTING(      0x0001, "Hard"    )
3123 	PORT_DIPSETTING(      0x0000, "Hardest" )
3124 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Bonus_Life ) )
3125 	PORT_DIPSETTING(      0x000c, "20K, Every 50K" )
3126 	PORT_DIPSETTING(      0x0004, "20K, Every 70K" )
3127 	PORT_DIPSETTING(      0x0008, "30K, Every 60K" )
3128 	PORT_DIPSETTING(      0x0000, "30K, Every 90K" )
3129 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )
3130 	PORT_DIPSETTING(      0x0000, "1" )
3131 	PORT_DIPSETTING(      0x0030, "2" )
3132 	PORT_DIPSETTING(      0x0020, "3" )
3133 	PORT_DIPSETTING(      0x0010, "4" )
3134 	PORT_DIPNAME( 0x0040, 0x0040, "Unknown 2-6" )
3135 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
3136 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3137 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) )
3138 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
3139 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3140 
3141 	PORT_DIPNAME( 0x0100, 0x0100, "Unknown 1-0" )
3142 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
3143 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3144 	PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) )
3145 	PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
3146 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3147 	PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Demo_Sounds ) )
3148 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
3149 	PORT_DIPSETTING(      0x0400, DEF_STR( On ) )
3150 	PORT_DIPNAME( 0x0800, 0x0800, "Unknown 1-3" )	/* service mode, according to a file in the archive*/
3151 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
3152 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3153 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Coin_A ) )
3154 	PORT_DIPSETTING(      0x1000, DEF_STR( 2C_1C ) )
3155 	PORT_DIPSETTING(      0x3000, DEF_STR( 1C_1C ) )
3156 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
3157 	PORT_DIPSETTING(      0x2000, DEF_STR( 1C_2C ) )
3158 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Coin_B ) )
3159 	PORT_DIPSETTING(      0x4000, DEF_STR( 2C_1C ) )
3160 	PORT_DIPSETTING(      0xc000, DEF_STR( 1C_1C ) )
3161 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
3162 	PORT_DIPSETTING(      0x8000, DEF_STR( 1C_2C ) )
3163 INPUT_PORTS_END
3164 
3165 
3166 
3167 /***************************************************************************
3168 								Caliber 50
3169 ***************************************************************************/
3170 
3171 INPUT_PORTS_START( calibr50 )
3172 	PORT_START	/* IN0 - Player 1*/
3173 	JOY_TYPE2_2BUTTONS(1)
3174 
3175 	PORT_START	/* IN1 - Player 2*/
3176 	JOY_TYPE2_2BUTTONS(2)
3177 
3178 	PORT_START	/* IN2 - Coins*/
3179 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3180 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3181 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3182 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3183 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_TILT     )
3184 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_SERVICE1 )
3185 	PORT_BIT_IMPULSE( 0x0040, IP_ACTIVE_LOW, IPT_COIN2, 5 )
3186 	PORT_BIT_IMPULSE( 0x0080, IP_ACTIVE_LOW, IPT_COIN1, 5 )
3187 
3188 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
3189 	PORT_DIPNAME( 0x4001, 0x4000, "Licensed To" )
3190 	PORT_DIPSETTING(      0x0001, "Romstar"       )
3191 	PORT_DIPSETTING(      0x4001, "Taito America" )
3192 	PORT_DIPSETTING(      0x4000, "Taito"         )
3193 	PORT_DIPSETTING(      0x0000, "None (Japan)"  )
3194 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )
3195 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
3196 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3197 	PORT_SERVICE( 0x0004, IP_ACTIVE_LOW )
3198 	PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )
3199 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
3200 	PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
3201 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
3202 	PORT_DIPSETTING(      0x0010, DEF_STR( 2C_1C ) )
3203 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_1C ) )
3204 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
3205 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_2C ) )
3206 	PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
3207 	PORT_DIPSETTING(      0x0040, DEF_STR( 2C_1C ) )
3208 	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_1C ) )
3209 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
3210 	PORT_DIPSETTING(      0x0080, DEF_STR( 1C_2C ) )
3211 
3212 	PORT_DIPNAME( 0x0300, 0x0100, DEF_STR( Difficulty ) )
3213 	PORT_DIPSETTING(      0x0300, "Easiest" )
3214 	PORT_DIPSETTING(      0x0200, "Easy" )
3215 	PORT_DIPSETTING(      0x0100, "Normal" )
3216 	PORT_DIPSETTING(      0x0000, "Hard" )
3217 	PORT_DIPNAME( 0x0400, 0x0400, "Score Digits" )
3218 	PORT_DIPSETTING(      0x0400, "7" )
3219 	PORT_DIPSETTING(      0x0000, "3" )
3220 	PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Lives ) )
3221 	PORT_DIPSETTING(      0x0800, "3" )
3222 	PORT_DIPSETTING(      0x0000, "4" )
3223 	PORT_DIPNAME( 0x1000, 0x1000, "Display Score" )
3224 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
3225 	PORT_DIPSETTING(      0x1000, DEF_STR( On ) )
3226 	PORT_DIPNAME( 0x2000, 0x2000, "Erase Backup Ram" )
3227 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
3228 	PORT_DIPSETTING(      0x2000, DEF_STR( On ) )
3229 	/*                    0x4000  Country / License (see first dsw)*/
3230 	PORT_DIPNAME( 0x8000, 0x8000, "Unknown 2-7" )	/* manual: "Don't Touch" */
3231 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
3232 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3233 
3234 	PORT_START	/* IN4 - Rotation Player 1*/
3235 	JOY_ROTATION(1, Z, X)
3236 
3237 	PORT_START	/* IN5 - Rotation Player 2*/
3238 	JOY_ROTATION(2, N, M)
3239 INPUT_PORTS_END
3240 
3241 /***************************************************************************
3242 								Daioh
3243 ***************************************************************************/
3244 
3245 INPUT_PORTS_START( daioh )
3246 	PORT_START
3247 	JOY_TYPE1_3BUTTONS(1)
3248 
3249 	PORT_START
3250 	JOY_TYPE1_3BUTTONS(2)
3251 
3252 	PORT_START
3253 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
3254 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
3255 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
3256 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
3257 	/* These are NOT Dip Switches but jumpers */
3258 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) )	/* JP9*/
3259 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
3260 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3261 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) )	/* JP8*/
3262 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
3263 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3264 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )	/* JP7*/
3265 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
3266 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3267 	PORT_DIPNAME( 0x0080, 0x0080, "Country" )			/* JP6*/
3268 	PORT_DIPSETTING(      0x0080, "USA (6 buttons)" )
3269 	PORT_DIPSETTING(      0x0000, "Japan (2 buttons)" )
3270 
3271 	PORT_START
3272 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
3273 	PORT_DIPSETTING(      0x0001, DEF_STR( 4C_1C ) )
3274 	PORT_DIPSETTING(      0x0002, DEF_STR( 3C_1C ) )
3275 	PORT_DIPSETTING(      0x0004, DEF_STR( 2C_1C ) )
3276 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
3277 	PORT_DIPSETTING(      0x0003, DEF_STR( 2C_3C ) )
3278 	PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
3279 	PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
3280 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
3281 	PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
3282 	PORT_DIPSETTING(      0x0008, DEF_STR( 4C_1C ))
3283 	PORT_DIPSETTING(      0x0010, DEF_STR( 3C_1C ) )
3284 	PORT_DIPSETTING(      0x0020, DEF_STR( 2C_1C ) )
3285 	PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
3286 	PORT_DIPSETTING(      0x0018, DEF_STR( 2C_3C ) )
3287 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_2C ) )
3288 	PORT_DIPSETTING(      0x0028, DEF_STR( 1C_3C ) )
3289 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
3290 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) )
3291 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
3292 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
3293 	PORT_DIPNAME( 0x0080, 0x0000, "Auto Shot" )
3294 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
3295 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3296 
3297 	PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) )
3298 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
3299 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3300 	PORT_SERVICE( 0x0200, IP_ACTIVE_LOW )
3301 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
3302 	PORT_DIPSETTING(      0x0800, "Easy" )
3303 	PORT_DIPSETTING(      0x0c00, "Normal" )
3304 	PORT_DIPSETTING(      0x0400, "Hard" )
3305 	PORT_DIPSETTING(      0x0000, "Hardest" )
3306 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) )
3307 	PORT_DIPSETTING(      0x0000, "1" )
3308 	PORT_DIPSETTING(      0x1000, "2" )
3309 	PORT_DIPSETTING(      0x3000, "3" )
3310 	PORT_DIPSETTING(      0x2000, "5" )
3311 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Bonus_Life ) )
3312 	PORT_DIPSETTING(      0x8000, "300k and every 800k" )
3313 	PORT_DIPSETTING(      0xc000, "500k and every 1000k" )
3314 	PORT_DIPSETTING(      0x4000, "800k and 2000k only" )
3315 	PORT_DIPSETTING(      0x0000, "1000k Only" )
3316 
3317 	PORT_START
3318 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER1 )
3319 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER1 )
3320 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_BUTTON6 | IPF_PLAYER1 )
3321 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER2 )
3322 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER2 )
3323 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_BUTTON6 | IPF_PLAYER2 )
3324 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
3325 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
3326 INPUT_PORTS_END
3327 
3328 /***************************************************************************
3329 								Dragon Unit
3330 ***************************************************************************/
3331 
3332 INPUT_PORTS_START( drgnunit )
3333 	PORT_START	/* IN0 - Player 1*/
3334 	JOY_TYPE1_3BUTTONS(1)
3335 
3336 	PORT_START	/* IN1 - Player 2*/
3337 	JOY_TYPE1_3BUTTONS(2)
3338 
3339 	PORT_START	/* IN2 - Coins*/
3340 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
3341 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
3342 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
3343 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
3344 	PORT_DIPNAME( 0x0010, 0x0010, "Coinage Type" ) /* not supported*/
3345 	PORT_DIPSETTING(      0x0010, "1" )
3346 	PORT_DIPSETTING(      0x0000, "2" )
3347 	PORT_DIPNAME( 0x0020, 0x0020, "Title" )
3348 	PORT_DIPSETTING(      0x0020, "Dragon Unit" )
3349 	PORT_DIPSETTING(      0x0000, "Castle of Dragon" )
3350 	PORT_DIPNAME( 0x00c0, 0x00c0, "(C) / License" )
3351 	PORT_DIPSETTING(      0x00c0, "Athena (Japan)" )
3352 	PORT_DIPSETTING(      0x0080, "Athena / Taito (Japan)" )
3353 	PORT_DIPSETTING(      0x0040, "Seta USA / Taito America" )
3354 	PORT_DIPSETTING(      0x0000, "Seta USA / Romstar" )
3355 
3356 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
3357 	PORT_DIPNAME( 0x0003, 0x0002, DEF_STR( Difficulty ) )
3358 	PORT_DIPSETTING(      0x0003, "Easy" )
3359 	PORT_DIPSETTING(      0x0002, "Normal" )
3360 	PORT_DIPSETTING(      0x0001, "Hard" )
3361 	PORT_DIPSETTING(      0x0000, "Hardest" )
3362 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Bonus_Life ) )
3363 	PORT_DIPSETTING(      0x0008, "150K, Every 300K" )
3364 	PORT_DIPSETTING(      0x000c, "200K, Every 400K" )
3365 	PORT_DIPSETTING(      0x0004, "300K, Every 500K" )
3366 	PORT_DIPSETTING(      0x0000, "400K Only" )
3367 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )
3368 	PORT_DIPSETTING(      0x0000, "1" )
3369 	PORT_DIPSETTING(      0x0010, "2" )
3370 	PORT_DIPSETTING(      0x0030, "3" )
3371 	PORT_DIPSETTING(      0x0020, "5" )
3372 	PORT_DIPNAME( 0x0040, 0x0040, "Unknown 1-6" )
3373 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
3374 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3375 	PORT_DIPNAME( 0x0080, 0x0080, "Unknown 1-7*" )
3376 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
3377 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3378 
3379 	PORT_DIPNAME( 0x0100, 0x0100, "Unknown 2-0" )
3380 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
3381 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3382 	PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) )
3383 	PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
3384 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3385 	PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Demo_Sounds ) )
3386 	PORT_DIPSETTING(      0x0400, "1 of 4 Scenes" )
3387 	PORT_DIPSETTING(      0x0000, "1 of 8 Scenes" )
3388 	PORT_SERVICE( 0x0800, IP_ACTIVE_LOW )
3389 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Coin_A ) )
3390 	PORT_DIPSETTING(      0x1000, DEF_STR( 2C_1C ) )
3391 	PORT_DIPSETTING(      0x3000, DEF_STR( 1C_1C ) )
3392 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
3393 	PORT_DIPSETTING(      0x2000, DEF_STR( 1C_2C ) )
3394 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Coin_B ) )
3395 	PORT_DIPSETTING(      0x4000, DEF_STR( 2C_1C ) )
3396 	PORT_DIPSETTING(      0xc000, DEF_STR( 1C_1C ) )
3397 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
3398 	PORT_DIPSETTING(      0x8000, DEF_STR( 1C_2C ) )
3399 INPUT_PORTS_END
3400 
3401 
3402 
3403 /***************************************************************************
3404 								DownTown
3405 ***************************************************************************/
3406 
3407 INPUT_PORTS_START( downtown )
3408 	PORT_START	/* IN0 - Player 1*/
3409 	JOY_TYPE2_2BUTTONS(1)
3410 
3411 	PORT_START	/* IN1 - Player 2*/
3412 	JOY_TYPE2_2BUTTONS(2)
3413 
3414 	PORT_START	/* IN2 - Coins*/
3415 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3416 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3417 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3418 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3419 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_TILT     )
3420 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_SERVICE1 )
3421 	PORT_BIT_IMPULSE( 0x0040, IP_ACTIVE_LOW, IPT_COIN2, 5 )
3422 	PORT_BIT_IMPULSE( 0x0080, IP_ACTIVE_LOW, IPT_COIN1, 5 )
3423 
3424 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
3425 	PORT_DIPNAME( 0x0001, 0x0000, "Sales" )
3426 	PORT_DIPSETTING(      0x0001, "Japan Only" )
3427 	PORT_DIPSETTING(      0x0000, "World" )
3428 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )
3429 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
3430 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3431 	PORT_SERVICE( 0x0004, IP_ACTIVE_LOW )
3432 	PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Demo_Sounds ) )
3433 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
3434 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3435 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
3436 	PORT_DIPSETTING(      0x0010, DEF_STR( 2C_1C ) )
3437 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_1C ) )
3438 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
3439 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_2C ) )
3440 	PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
3441 	PORT_DIPSETTING(      0x0040, DEF_STR( 2C_1C ) )
3442 	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_1C ) )
3443 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
3444 	PORT_DIPSETTING(      0x0080, DEF_STR( 1C_2C ) )
3445 /* other coinage*/
3446 #if 0
3447 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
3448 	PORT_DIPSETTING(      0x0000, DEF_STR( 4C_1C ) )
3449 	PORT_DIPSETTING(      0x0010, DEF_STR( 3C_1C ) )
3450 	PORT_DIPSETTING(      0x0020, DEF_STR( 2C_1C ) )
3451 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_1C ) )
3452 	PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
3453 	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_2C ) )
3454 	PORT_DIPSETTING(      0x0080, DEF_STR( 1C_3C ) )
3455 	PORT_DIPSETTING(      0x0040, DEF_STR( 1C_4C ) )
3456 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
3457 #endif
3458 
3459 	PORT_DIPNAME( 0x0300, 0x0300, "Unknown 2-0&1" )
3460 	PORT_DIPSETTING(      0x0200, "2" )
3461 	PORT_DIPSETTING(      0x0300, "3" )
3462 	PORT_DIPSETTING(      0x0100, "4" )
3463 	PORT_DIPSETTING(      0x0000, "5" )
3464 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Bonus_Life ) )
3465 	PORT_DIPSETTING(      0x0c00, "Never" )
3466 	PORT_DIPSETTING(      0x0800, "50K Only" )
3467 	PORT_DIPSETTING(      0x0400, "100K Only" )
3468 	PORT_DIPSETTING(      0x0000, "50K, Every 150K" )
3469 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) )
3470 	PORT_DIPSETTING(      0x1000, "2" )
3471 	PORT_DIPSETTING(      0x3000, "3" )
3472 	PORT_DIPSETTING(      0x0000, "4" )
3473 	PORT_DIPSETTING(      0x2000, "5" )
3474 	PORT_DIPNAME( 0x4000, 0x0000, "World License" )
3475 	PORT_DIPSETTING(      0x4000, "Romstar" )
3476 	PORT_DIPSETTING(      0x0000, "Taito" )
3477 	PORT_DIPNAME( 0x8000, 0x8000, "Coinage Type" )	/* not supported*/
3478 	PORT_DIPSETTING(      0x8000, "1" )
3479 	PORT_DIPSETTING(      0x0000, "2" )
3480 
3481 	PORT_START	/* IN4 - Rotation Player 1*/
3482 	JOY_ROTATION(1, Z, X)
3483 
3484 	PORT_START	/* IN5 - Rotation Player 2*/
3485 	JOY_ROTATION(1, N, M)
3486 INPUT_PORTS_END
3487 
3488 
3489 
3490 /***************************************************************************
3491 								Eight Force
3492 ***************************************************************************/
3493 
3494 INPUT_PORTS_START( eightfrc )
3495 	PORT_START	/* IN0 - Player 1*/
3496 	JOY_TYPE1_2BUTTONS(1)
3497 
3498 	PORT_START	/* IN1 - Player 2*/
3499 	JOY_TYPE1_2BUTTONS(2)
3500 
3501 	PORT_START	/* IN2 - Coins*/
3502 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
3503 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
3504 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
3505 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
3506 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
3507 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
3508 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
3509 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
3510 
3511 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
3512 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
3513 	PORT_DIPSETTING(      0x0004, DEF_STR( 4C_1C ) )
3514 	PORT_DIPSETTING(      0x0005, DEF_STR( 3C_1C ) )
3515 	PORT_DIPSETTING(      0x0006, DEF_STR( 2C_1C ) )
3516 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
3517 	PORT_DIPSETTING(      0x0003, DEF_STR( 1C_2C ) )
3518 	PORT_DIPSETTING(      0x0002, DEF_STR( 1C_3C ) )
3519 	PORT_DIPSETTING(      0x0001, DEF_STR( 1C_4C ) )
3520 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
3521 	PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
3522 	PORT_DIPSETTING(      0x0020, DEF_STR( 4C_1C ) )
3523 	PORT_DIPSETTING(      0x0028, DEF_STR( 3C_1C ) )
3524 	PORT_DIPSETTING(      0x0030, DEF_STR( 2C_1C ) )
3525 	PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
3526 	PORT_DIPSETTING(      0x0018, DEF_STR( 1C_2C ) )
3527 	PORT_DIPSETTING(      0x0010, DEF_STR( 1C_3C ) )
3528 	PORT_DIPSETTING(      0x0008, DEF_STR( 1C_4C ) )
3529 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
3530 	PORT_DIPNAME( 0x0040, 0x0040, "Shared Credits" )
3531 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
3532 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
3533 	PORT_DIPNAME( 0x0080, 0x0080, "Credits To Start" )
3534 	PORT_DIPSETTING(      0x0080, "1" )
3535 	PORT_DIPSETTING(      0x0000, "2" )
3536 
3537 	PORT_SERVICE( 0x0100, IP_ACTIVE_LOW )
3538 	PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) )
3539 	PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
3540 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3541 	PORT_DIPNAME( 0x0400, 0x0000, DEF_STR( Demo_Sounds ) )
3542 	PORT_DIPSETTING(      0x0400, DEF_STR( Off ) )
3543 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3544 	PORT_DIPNAME( 0x1800, 0x1800, DEF_STR( Difficulty ) )
3545 	PORT_DIPSETTING(      0x1000, "Easy" )
3546 	PORT_DIPSETTING(      0x1800, "Normal" )
3547 	PORT_DIPSETTING(      0x0800, "Hard" )
3548 	PORT_DIPSETTING(      0x0000, "Hardest" )
3549 	PORT_DIPNAME( 0x6000, 0x6000, DEF_STR( Lives ) )
3550 	PORT_DIPSETTING(      0x4000, "2" )
3551 	PORT_DIPSETTING(      0x6000, "3" )
3552 	PORT_DIPSETTING(      0x2000, "4" )
3553 	PORT_DIPSETTING(      0x0000, "5" )
3554 	PORT_DIPNAME( 0x8000, 0x0000, "Language" )
3555 	PORT_DIPSETTING(      0x0000, "English" )
3556 	PORT_DIPSETTING(      0x8000, "Japanese" )
3557 INPUT_PORTS_END
3558 
3559 
3560 
3561 /***************************************************************************
3562 								Extreme Downhill
3563 ***************************************************************************/
3564 
3565 INPUT_PORTS_START( extdwnhl )
3566 	PORT_START	/* IN0 - Player 1*/
3567 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER1 | IPF_2WAY )
3568 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER1 | IPF_2WAY )
3569 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
3570 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
3571 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
3572 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
3573 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
3574 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START1  )
3575 
3576 	PORT_START	/* IN1 - Player 2*/
3577 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER2 | IPF_2WAY )
3578 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER2 | IPF_2WAY )
3579 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
3580 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
3581 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
3582 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
3583 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
3584 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START2  )
3585 
3586 	PORT_START	/* IN2 - Coins*/
3587 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
3588 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
3589 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
3590 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_SERVICE )	/* "test"*/
3591 	/* These are NOT Dip Switches but jumpers */
3592 	PORT_DIPNAME( 0x0030, 0x0030, "Country" )
3593 	PORT_DIPSETTING(      0x0030, "World" )
3594 /*	PORT_DIPSETTING(      0x0020, "World" )	*/ /* duplicated settings*/
3595 	PORT_DIPSETTING(      0x0010, "USA" )
3596 	PORT_DIPSETTING(      0x0000, "Japan" )
3597 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )
3598 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
3599 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3600 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) )
3601 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
3602 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3603 
3604 	PORT_START	/* IN3 - 2 DSWs - $400009 & b.b*/
3605 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
3606 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
3607 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3608 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )
3609 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
3610 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
3611 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )
3612 	PORT_DIPSETTING(      0x0008, "Easy" )
3613 	PORT_DIPSETTING(      0x000c, "Normal" )
3614 	PORT_DIPSETTING(      0x0004, "Hard" )
3615 	PORT_DIPSETTING(      0x0000, "Hardest" )
3616 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Free_Play ) )
3617 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
3618 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3619 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Cabinet ) )
3620 	PORT_DIPSETTING(      0x0020, DEF_STR( Upright ) )
3621 	PORT_DIPSETTING(      0x0000, DEF_STR( Cocktail ) )
3622 	PORT_DIPNAME( 0x0040, 0x0040, "Controls" )
3623 	PORT_DIPSETTING(      0x0040, "2" )
3624 	PORT_DIPSETTING(      0x0000, "1" )
3625 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
3626 
3627 	PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) )
3628 	PORT_DIPSETTING(      0x0500, DEF_STR( 3C_1C ) )
3629 	PORT_DIPSETTING(      0x0600, DEF_STR( 2C_1C ) )
3630 	PORT_DIPSETTING(      0x0700, DEF_STR( 1C_1C ) )
3631 	PORT_DIPSETTING(      0x0400, DEF_STR( 1C_2C ) )
3632 	PORT_DIPSETTING(      0x0300, DEF_STR( 1C_3C ) )
3633 	PORT_DIPSETTING(      0x0200, DEF_STR( 1C_4C ) )
3634 	PORT_DIPSETTING(      0x0100, DEF_STR( 1C_5C ) )
3635 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
3636 	PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) )
3637 	PORT_DIPSETTING(      0x2800, DEF_STR( 3C_1C ) )
3638 	PORT_DIPSETTING(      0x3000, DEF_STR( 2C_1C ) )
3639 	PORT_DIPSETTING(      0x3800, DEF_STR( 1C_1C ) )
3640 	PORT_DIPSETTING(      0x2000, DEF_STR( 1C_2C ) )
3641 	PORT_DIPSETTING(      0x1800, DEF_STR( 1C_3C ) )
3642 	PORT_DIPSETTING(      0x1000, DEF_STR( 1C_4C ) )
3643 	PORT_DIPSETTING(      0x0800, DEF_STR( 1C_5C ) )
3644 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
3645 	PORT_DIPNAME( 0x4000, 0x4000, "Cheap Continue" )
3646 	PORT_DIPSETTING(      0x4000, DEF_STR( No ) )
3647 	PORT_DIPSETTING(      0x0000, DEF_STR( Yes ) )
3648 	PORT_DIPNAME( 0x8000, 0x8000, "Game Mode" )
3649 	PORT_DIPSETTING(      0x8000, "Finals Only" )
3650 	PORT_DIPSETTING(      0x0000, "Semi-Finals & Finals" )
3651 INPUT_PORTS_END
3652 
3653 
3654 
3655 /***************************************************************************
3656 								Gundhara
3657 ***************************************************************************/
3658 
3659 INPUT_PORTS_START( gundhara )
3660 	PORT_START	/* IN0 - Player 1*/
3661 	JOY_TYPE1_3BUTTONS(1)
3662 
3663 	PORT_START	/* IN1 - Player 2*/
3664 	JOY_TYPE1_3BUTTONS(2)
3665 
3666 	PORT_START	/* IN2 - Coins*/
3667 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
3668 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
3669 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
3670 	PORT_BITX( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
3671 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3672 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3673 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3674 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3675 
3676 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
3677 	PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_A ) )
3678 	PORT_DIPSETTING(      0x0002, DEF_STR( 4C_1C ) )
3679 	PORT_DIPSETTING(      0x0005, DEF_STR( 3C_1C ) )
3680 	PORT_DIPSETTING(      0x0008, DEF_STR( 2C_1C ) )
3681 	PORT_DIPSETTING(      0x0004, DEF_STR( 3C_2C ) )
3682 	PORT_DIPSETTING(      0x0001, DEF_STR( 4C_3C ) )
3683 	PORT_DIPSETTING(      0x000f, DEF_STR( 1C_1C ) )
3684 	PORT_DIPSETTING(      0x0003, DEF_STR( 3C_4C ) )
3685 	PORT_DIPSETTING(      0x0007, DEF_STR( 2C_3C ) )
3686 	PORT_DIPSETTING(      0x000e, DEF_STR( 1C_2C ) )
3687 	PORT_DIPSETTING(      0x0006, DEF_STR( 2C_5C ) )
3688 	PORT_DIPSETTING(      0x000d, DEF_STR( 1C_3C ) )
3689 	PORT_DIPSETTING(      0x000c, DEF_STR( 1C_4C ) )
3690 	PORT_DIPSETTING(      0x000b, DEF_STR( 1C_5C ) )
3691 	PORT_DIPSETTING(      0x000a, DEF_STR( 1C_6C ) )
3692 	PORT_DIPSETTING(      0x0009, DEF_STR( 1C_7C ) )
3693 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
3694 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_B ) )
3695 	PORT_DIPSETTING(      0x0000, DEF_STR( 3C_1C ) )
3696 	PORT_DIPSETTING(      0x0010, DEF_STR( 2C_1C ) )
3697 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_1C ) )
3698 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_2C ) )
3699 	PORT_DIPNAME( 0x00c0, 0x00c0, "Country" )
3700 	PORT_DIPSETTING(      0x00c0, "Japan" )
3701 	PORT_DIPSETTING(      0x0000, "World" )
3702 
3703 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) )
3704 	PORT_DIPSETTING(      0x0200, "Easy" )
3705 	PORT_DIPSETTING(      0x0300, "Normal" )
3706 	PORT_DIPSETTING(      0x0100, "Hard" )
3707 	PORT_DIPSETTING(      0x0000, "Hardest" )
3708 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Lives ) )
3709 	PORT_DIPSETTING(      0x0800, "1" )
3710 	PORT_DIPSETTING(      0x0c00, "2" )
3711 	PORT_DIPSETTING(      0x0400, "3" )
3712 	PORT_DIPSETTING(      0x0000, "4" )
3713 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Bonus_Life ) )
3714 	PORT_DIPSETTING(      0x3000, "200K" )
3715 	PORT_DIPSETTING(      0x2000, "200K, Every 200K" )
3716 	PORT_DIPSETTING(      0x1000, "400K" )
3717 	PORT_DIPSETTING(      0x0000, "None" )
3718 	PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Demo_Sounds ) )
3719 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
3720 	PORT_DIPSETTING(      0x4000, DEF_STR( On ) )
3721 	PORT_SERVICE( 0x8000, IP_ACTIVE_LOW )
3722 INPUT_PORTS_END
3723 
3724 /***************************************************************************
3725 								Zombie Raid
3726 ***************************************************************************/
3727 
3728 INPUT_PORTS_START( zombraid )
3729 	PORT_START	/* IN0 - Player 1*/
3730 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3731 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3732 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3733 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3734 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1		|	IPF_PLAYER1  )	/* Trigger*/
3735 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_BUTTON2		|	IPF_PLAYER1  )	/* Reload*/
3736 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3737 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START1   )
3738 
3739 	PORT_START	/* IN1 - Player 2*/
3740 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3741 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3742 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3743 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3744 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1		|	IPF_PLAYER2  )	/* Trigger*/
3745 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_BUTTON2		|	IPF_PLAYER2  )	/* Reload*/
3746 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3747 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START2   )
3748 
3749 	PORT_START	/* IN2 - Coins*/
3750 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
3751 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
3752 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
3753 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
3754 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3755 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3756 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3757 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3758 
3759 	PORT_START
3760 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
3761 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
3762 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3763 	PORT_DIPNAME( 0x0002, 0x0000, "Mirror" )
3764 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
3765 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
3766 	PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Demo_Sounds ) )
3767 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
3768 	PORT_DIPSETTING(      0x0004, DEF_STR( On ) )
3769 	PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Difficulty ) )
3770 	PORT_DIPSETTING(      0x0010, "Easy"    )
3771 	PORT_DIPSETTING(      0x0018, "Normal"  )
3772 	PORT_DIPSETTING(      0x0008, "Hard"    )
3773 	PORT_DIPSETTING(      0x0000, "Hardest" )
3774 	PORT_DIPNAME( 0x0020, 0x0020, "Allow Continue" )
3775 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
3776 	PORT_DIPSETTING(      0x0020, DEF_STR( On ) )
3777 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )
3778 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
3779 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3780 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
3781 
3782 	PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) )
3783 	PORT_DIPSETTING(      0x0500, DEF_STR( 3C_1C ) )
3784 	PORT_DIPSETTING(      0x0600, DEF_STR( 2C_1C ) )
3785 	PORT_DIPSETTING(      0x0700, DEF_STR( 1C_1C ) )
3786 	PORT_DIPSETTING(      0x0400, DEF_STR( 1C_2C ) )
3787 	PORT_DIPSETTING(      0x0300, DEF_STR( 1C_3C ) )
3788 	PORT_DIPSETTING(      0x0200, DEF_STR( 1C_4C ) )
3789 	PORT_DIPSETTING(      0x0100, DEF_STR( 1C_5C ) )
3790 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
3791 	PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) )
3792 	PORT_DIPSETTING(      0x2800, DEF_STR( 3C_1C ) )
3793 	PORT_DIPSETTING(      0x3000, DEF_STR( 2C_1C ) )
3794 	PORT_DIPSETTING(      0x3800, DEF_STR( 1C_1C ) )
3795 	PORT_DIPSETTING(      0x2000, DEF_STR( 1C_2C ) )
3796 	PORT_DIPSETTING(      0x1800, DEF_STR( 1C_3C ) )
3797 	PORT_DIPSETTING(      0x1000, DEF_STR( 1C_4C ) )
3798 	PORT_DIPSETTING(      0x0800, DEF_STR( 1C_5C ) )
3799 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
3800 	PORT_DIPNAME( 0x4000, 0x4000, "2 Coins to Start, 1 to Continue" )
3801 	PORT_DIPSETTING(      0x4000, DEF_STR( No ) )
3802 	PORT_DIPSETTING(      0x0000, DEF_STR( Yes ) )
3803 	PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unused ) )
3804 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
3805 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3806 
3807 	PORT_START	/* IN5 Player 1 Gun X		($f00003) */
3808 	PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_X | IPF_PLAYER1 | IPF_REVERSE, 25, 15, 0, 0xff )
3809 	PORT_START	/* IN6 Player 1 Gun Y		($f00003) */
3810 	PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_Y | IPF_PLAYER1, 25, 15, 0, 0xff )
3811 
3812 	PORT_START	/* IN7 Player 2 Gun X		($f00003) */
3813 	PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_X | IPF_PLAYER2 | IPF_REVERSE, 25, 15, 0, 0xff )
3814 	PORT_START	/* IN8 Player 2 Gun Y		($f00003) */
3815 	PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_Y | IPF_PLAYER2, 25, 15, 0, 0xff )
3816 INPUT_PORTS_END
3817 
3818 
3819 /***************************************************************************
3820 								J.J.Squawkers
3821 ***************************************************************************/
3822 
3823 INPUT_PORTS_START( jjsquawk )
3824 	PORT_START	/* IN0 - Player 1 - $400000.w*/
3825 	JOY_TYPE1_2BUTTONS(1)
3826 
3827 	PORT_START	/* IN1 - Player 2 - $400002.w*/
3828 	JOY_TYPE1_2BUTTONS(2)
3829 
3830 	PORT_START	/* IN2 - Coins - $400004.w*/
3831 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
3832 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
3833 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
3834 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3835 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3836 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3837 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3838 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  )
3839 
3840 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
3841 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
3842 	PORT_DIPSETTING(      0x0001, DEF_STR( 4C_1C ) )
3843 	PORT_DIPSETTING(      0x0002, DEF_STR( 3C_1C ) )
3844 	PORT_DIPSETTING(      0x0004, DEF_STR( 2C_1C ) )
3845 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
3846 	PORT_DIPSETTING(      0x0003, DEF_STR( 2C_3C ) )
3847 	PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
3848 	PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
3849 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
3850 	PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
3851 	PORT_DIPSETTING(      0x0008, DEF_STR( 4C_1C ) )
3852 	PORT_DIPSETTING(      0x0010, DEF_STR( 3C_1C ) )
3853 	PORT_DIPSETTING(      0x0020, DEF_STR( 2C_1C ) )
3854 	PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
3855 	PORT_DIPSETTING(      0x0018, DEF_STR( 2C_3C ) )
3856 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_2C ) )
3857 	PORT_DIPSETTING(      0x0028, DEF_STR( 1C_3C ) )
3858 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
3859 	PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Demo_Sounds ) )
3860 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
3861 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3862 	PORT_DIPNAME( 0x0080, 0x0080, "Unknown 2-7" )	/* ?? screen related*/
3863 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
3864 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3865 
3866 	PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) )
3867 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
3868 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3869 	PORT_SERVICE( 0x0200, IP_ACTIVE_LOW )
3870 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
3871 	PORT_DIPSETTING(      0x0800, "Easy"    )
3872 	PORT_DIPSETTING(      0x0c00, "Normal"  )
3873 	PORT_DIPSETTING(      0x0400, "Hard"    )
3874 	PORT_DIPSETTING(      0x0000, "Hardest" )
3875 	PORT_DIPNAME( 0x3000, 0x3000, "Energy" )
3876 	PORT_DIPSETTING(      0x2000, "2" )
3877 	PORT_DIPSETTING(      0x3000, "3" )
3878 	PORT_DIPSETTING(      0x1000, "4" )
3879 	PORT_DIPSETTING(      0x0000, "5" )
3880 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Bonus_Life ) )
3881 	PORT_DIPSETTING(      0x8000, "20K, Every 100K" )
3882 	PORT_DIPSETTING(      0xc000, "50K, Every 200K" )
3883 	PORT_DIPSETTING(      0x4000, "70K, 200K Only" )
3884 	PORT_DIPSETTING(      0x0000, "100K Only" )
3885 INPUT_PORTS_END
3886 
3887 /***************************************************************************
3888 				(Kamen) Masked Riders Club Battle Race
3889 ***************************************************************************/
3890 
3891 INPUT_PORTS_START( kamenrid )
3892 	PORT_START	/* IN0 - Player 1*/
3893 	JOY_TYPE1_2BUTTONS(1)	/* BUTTON3 in "test mode" only*/
3894 
3895 	PORT_START	/* IN1 - Player 2*/
3896 	JOY_TYPE1_2BUTTONS(2)	/* BUTTON3 in "test mode" only*/
3897 
3898 	PORT_START	/* IN2 - Coins*/
3899 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
3900 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
3901 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
3902 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
3903 	/* These are NOT Dip Switches but jumpers */
3904 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) )
3905 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
3906 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3907 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) )
3908 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
3909 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3910 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )
3911 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
3912 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3913 	PORT_DIPNAME( 0x0080, 0x0080, "Country" )
3914 	PORT_DIPSETTING(      0x0080, "USA" )
3915 	PORT_DIPSETTING(      0x0000, "Japan" )
3916 
3917 	PORT_START	/* IN3 - 2 DSWs - $500005 & 7.b*/
3918 	PORT_SERVICE( 0x0001, IP_ACTIVE_LOW )
3919 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unused ) )
3920 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
3921 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3922 	PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) )		/* masked at 0x001682*/
3923 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
3924 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3925 	PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unused ) )
3926 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
3927 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3928 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) )		/* masked at 0x001682*/
3929 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
3930 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )			/* (displays debug infos)*/
3931 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) )		/* masked at 0x001682*/
3932 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
3933 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )			/* (unknown effect at 0x00606a, 0x0060de, 0x00650a)*/
3934 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )		/* check code at 0x001792*/
3935 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
3936 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3937 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Flip_Screen ) )
3938 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
3939 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3940 	PORT_DIPNAME( 0x0f00, 0x0f00, DEF_STR( Coinage ) )
3941 	PORT_DIPSETTING(      0x0500, DEF_STR( 6C_1C ) )
3942 	PORT_DIPSETTING(      0x0d00, DEF_STR( 5C_1C ) )
3943 	PORT_DIPSETTING(      0x0300, DEF_STR( 4C_1C ) )
3944 	PORT_DIPSETTING(      0x0b00, DEF_STR( 3C_1C ) )
3945 	PORT_DIPSETTING(      0x0800, DEF_STR( 8C_3C ) )
3946 	PORT_DIPSETTING(      0x0700, DEF_STR( 2C_1C ) )
3947 	PORT_DIPSETTING(      0x0400, DEF_STR( 5C_3C ) )
3948 	PORT_DIPSETTING(      0x0c00, DEF_STR( 3C_2C ) )
3949 	PORT_DIPSETTING(      0x0f00, DEF_STR( 1C_1C ) )
3950 	PORT_DIPSETTING(      0x0200, DEF_STR( 2C_3C ) )
3951 	PORT_DIPSETTING(      0x0900, DEF_STR( 1C_2C ) )
3952 	PORT_DIPSETTING(      0x0100, DEF_STR( 1C_3C ) )
3953 	PORT_DIPSETTING(      0x0e00, DEF_STR( 1C_4C ) )
3954 	PORT_DIPSETTING(      0x0600, DEF_STR( 1C_5C ) )
3955 	PORT_DIPSETTING(      0x0a00, DEF_STR( 1C_6C ) )
3956 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
3957 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Difficulty ) )
3958 	PORT_DIPSETTING(      0x1000, "Easy" )
3959 	PORT_DIPSETTING(      0x3000, "Normal" )
3960 	PORT_DIPSETTING(      0x2000, "Hard" )
3961 	PORT_DIPSETTING(      0x0000, "Hardest" )
3962 	PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unused ) )
3963 	PORT_DIPSETTING(      0x4000, DEF_STR( Off ) )
3964 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3965 	PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unused ) )
3966 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
3967 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3968 INPUT_PORTS_END
3969 
3970 /***************************************************************************
3971 								Krazy Bowl
3972 ***************************************************************************/
3973 
3974 #define KRZYBOWL_TRACKBALL(_dir_, _n_ ) \
3975 	PORT_ANALOG( 0x0fff, 0x0000, IPT_TRACKBALL_##_dir_ | IPF_PLAYER##_n_ | IPF_REVERSE, 70, 30, 0, 0 )
3976 
3977 INPUT_PORTS_START( krzybowl )
3978 	PORT_START	/* IN0 - Player 1*/
3979 	JOY_TYPE1_3BUTTONS(1)
3980 
3981 	PORT_START	/* IN1 - Player 2*/
3982 	JOY_TYPE1_3BUTTONS(2)
3983 
3984 	PORT_START	/* IN2 - Coins*/
3985 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
3986 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
3987 	PORT_BIT_IMPULSE( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1, 5 )
3988 	PORT_BIT(  0x0008, IP_ACTIVE_LOW,  IPT_UNKNOWN )
3989 	PORT_BIT(  0x0010, IP_ACTIVE_LOW,  IPT_UNKNOWN )
3990 	PORT_BIT(  0x0020, IP_ACTIVE_LOW,  IPT_UNKNOWN )
3991 	PORT_BIT(  0x0040, IP_ACTIVE_LOW,  IPT_UNKNOWN )
3992 	PORT_BIT(  0x0080, IP_ACTIVE_LOW,  IPT_UNKNOWN )
3993 
3994 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
3995 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
3996 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
3997 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
3998 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )
3999 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
4000 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
4001 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )
4002 	PORT_DIPSETTING(      0x0008, "Easy" )
4003 	PORT_DIPSETTING(      0x000c, "Normal" )
4004 	PORT_DIPSETTING(      0x0004, "Hard" )
4005 	PORT_DIPSETTING(      0x0000, "Hardest" )
4006 	PORT_DIPNAME( 0x0010, 0x0010, "Frames" )
4007 	PORT_DIPSETTING(      0x0010, "10" )
4008 	PORT_DIPSETTING(      0x0000, "5" )
4009 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Cabinet ) )
4010 	PORT_DIPSETTING(      0x0020, DEF_STR( Upright ) )
4011 	PORT_DIPSETTING(      0x0000, DEF_STR( Cocktail ) )
4012 	PORT_DIPNAME( 0x0040, 0x0040, "Controls" )
4013 	PORT_DIPSETTING(      0x0040, "Trackball" )
4014 	PORT_DIPSETTING(      0x0000, "Joystick" )
4015 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
4016 
4017 	PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) )
4018 	PORT_DIPSETTING(      0x0500, DEF_STR( 3C_1C ) )
4019 	PORT_DIPSETTING(      0x0600, DEF_STR( 2C_1C ) )
4020 	PORT_DIPSETTING(      0x0700, DEF_STR( 1C_1C ) )
4021 	PORT_DIPSETTING(      0x0400, DEF_STR( 1C_2C ) )
4022 	PORT_DIPSETTING(      0x0300, DEF_STR( 1C_3C ) )
4023 	PORT_DIPSETTING(      0x0200, DEF_STR( 1C_4C ) )
4024 	PORT_DIPSETTING(      0x0100, DEF_STR( 1C_5C ) )
4025 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
4026 	PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) )
4027 	PORT_DIPSETTING(      0x2800, DEF_STR( 3C_1C ) )
4028 	PORT_DIPSETTING(      0x3000, DEF_STR( 2C_1C ) )
4029 	PORT_DIPSETTING(      0x3800, DEF_STR( 1C_1C ) )
4030 	PORT_DIPSETTING(      0x2000, DEF_STR( 1C_2C ) )
4031 	PORT_DIPSETTING(      0x1800, DEF_STR( 1C_3C ) )
4032 	PORT_DIPSETTING(      0x1000, DEF_STR( 1C_4C ) )
4033 	PORT_DIPSETTING(      0x0800, DEF_STR( 1C_5C ) )
4034 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
4035 	PORT_DIPNAME( 0x4000, 0x4000, "Force Coinage" )
4036 	PORT_DIPSETTING(      0x4000, DEF_STR( No ) )
4037 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_1C ) )
4038 	PORT_DIPNAME( 0x8000, 0x8000, "Unknown 2-7" )
4039 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
4040 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4041 
4042 	PORT_START	/* IN4 - Rotation X Player 1*/
4043 	KRZYBOWL_TRACKBALL(X,1)
4044 
4045 	PORT_START	/* IN5 - Rotation Y Player 1*/
4046 	KRZYBOWL_TRACKBALL(Y,1)
4047 
4048 	PORT_START	/* IN6 - Rotation X Player 2*/
4049 	KRZYBOWL_TRACKBALL(X|IPF_REVERSE,2)
4050 
4051 	PORT_START	/* IN7 - Rotation Y Player 2*/
4052 	KRZYBOWL_TRACKBALL(Y,2)
4053 INPUT_PORTS_END
4054 
4055 
4056 /***************************************************************************
4057 								Mad Shark
4058 ***************************************************************************/
4059 
4060 INPUT_PORTS_START( madshark )
4061 	PORT_START	/* IN0 - Player 1*/
4062 	JOY_TYPE1_2BUTTONS(1)
4063 
4064 	PORT_START	/* IN1 - Player 2*/
4065 	JOY_TYPE1_2BUTTONS(2)
4066 
4067 	PORT_START	/* IN2 - Coins*/
4068 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
4069 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
4070 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
4071 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
4072 	/* These are NOT Dip Switches but jumpers */
4073 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) )
4074 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
4075 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4076 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) )
4077 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
4078 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4079 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )
4080 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
4081 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4082 	PORT_DIPNAME( 0x0080, 0x0000, "Country" )
4083 	PORT_DIPSETTING(      0x0080, "Japan" )
4084 	PORT_DIPSETTING(      0x0000, "World" )
4085 
4086 	PORT_START	/* IN3 - 2 DSWs*/
4087 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
4088 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
4089 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4090 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )
4091 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
4092 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
4093 	PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
4094 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
4095 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4096 	PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Bonus_Life ) )
4097 	PORT_DIPSETTING(      0x0018, "1000k" )
4098 	PORT_DIPSETTING(      0x0008, "1000k 2000k" )
4099 	PORT_DIPSETTING(      0x0010, "1500k 3000k" )
4100 	PORT_DIPSETTING(      0x0000, DEF_STR( No ) )
4101 	PORT_DIPNAME( 0x0060, 0x0060, DEF_STR( Difficulty ) )
4102 	PORT_DIPSETTING(      0x0040, "Easy" )
4103 	PORT_DIPSETTING(      0x0060, "Normal" )
4104 	PORT_DIPSETTING(      0x0020, "Hard" )
4105 	PORT_DIPSETTING(      0x0000, "Hardest" )
4106 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
4107 
4108 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )
4109 	PORT_DIPSETTING(      0x0200, "2" )
4110 	PORT_DIPSETTING(      0x0300, "3" )
4111 	PORT_DIPSETTING(      0x0100, "4" )
4112 	PORT_DIPSETTING(      0x0000, "5" )
4113 	PORT_DIPNAME( 0x1c00, 0x1c00, DEF_STR( Coin_A ) )
4114 	PORT_DIPSETTING(      0x0400, DEF_STR( 4C_1C ) )
4115 	PORT_DIPSETTING(      0x0800, DEF_STR( 3C_1C ) )
4116 	PORT_DIPSETTING(      0x1000, DEF_STR( 2C_1C ) )
4117 	PORT_DIPSETTING(      0x1c00, DEF_STR( 1C_1C ) )
4118 	PORT_DIPSETTING(      0x0c00, DEF_STR( 2C_3C ) )
4119 	PORT_DIPSETTING(      0x1800, DEF_STR( 1C_2C ) )
4120 	PORT_DIPSETTING(      0x1400, DEF_STR( 1C_3C ) )
4121 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_4C ) )
4122 	PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coin_A ) )
4123 	PORT_DIPSETTING(      0x2000, DEF_STR( 4C_1C ) )
4124 	PORT_DIPSETTING(      0x4000, DEF_STR( 3C_1C ) )
4125 	PORT_DIPSETTING(      0x8000, DEF_STR( 2C_1C ) )
4126 	PORT_DIPSETTING(      0xe000, DEF_STR( 1C_1C ) )
4127 	PORT_DIPSETTING(      0x6000, DEF_STR( 2C_3C ) )
4128 	PORT_DIPSETTING(      0xc000, DEF_STR( 1C_2C ) )
4129 	PORT_DIPSETTING(      0xa000, DEF_STR( 1C_3C ) )
4130 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_4C ) )
4131 INPUT_PORTS_END
4132 
4133 
4134 /***************************************************************************
4135 								Meta Fox
4136 ***************************************************************************/
4137 
4138 INPUT_PORTS_START( metafox )
4139 	PORT_START	/* IN0*/
4140 	JOY_TYPE2_2BUTTONS(1)
4141 
4142 	PORT_START	/* IN1*/
4143 	JOY_TYPE2_2BUTTONS(2)
4144 
4145 	PORT_START	/* IN2*/
4146 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN  )
4147 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN  )
4148 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN  )
4149 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN  )
4150 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_TILT     )
4151 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_SERVICE1 )
4152 	PORT_BIT_IMPULSE( 0x0040, IP_ACTIVE_LOW, IPT_COIN2, 5 )
4153 	PORT_BIT_IMPULSE( 0x0080, IP_ACTIVE_LOW, IPT_COIN1, 5 )
4154 
4155 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
4156 	PORT_DIPNAME( 0x4001, 0x4001, "Licensed To"    )
4157 	PORT_DIPSETTING(      0x0001, "Jordan"        )
4158 	PORT_DIPSETTING(      0x4001, "Romstar"       )
4159 	PORT_DIPSETTING(      0x4000, "Taito"         )
4160 	PORT_DIPSETTING(      0x0000, "Taito America" )
4161 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )
4162 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
4163 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4164 	PORT_SERVICE( 0x0004, IP_ACTIVE_LOW )
4165 	PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )
4166 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
4167 	PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
4168 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
4169 	PORT_DIPSETTING(      0x0010, DEF_STR( 2C_1C ) )
4170 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_1C ) )
4171 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
4172 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_2C ) )
4173 	PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
4174 	PORT_DIPSETTING(      0x0040, DEF_STR( 2C_1C ) )
4175 	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_1C ) )
4176 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
4177 	PORT_DIPSETTING(      0x0080, DEF_STR( 1C_2C ) )
4178 
4179 	PORT_DIPNAME( 0x0300, 0x0100, DEF_STR( Difficulty ) )
4180 	PORT_DIPSETTING(      0x0300, "Normal"  )
4181 	PORT_DIPSETTING(      0x0200, "Easy"    )
4182 	PORT_DIPSETTING(      0x0100, "Hard"    )
4183 	PORT_DIPSETTING(      0x0000, "Hardest" )
4184 	PORT_DIPNAME( 0x0400, 0x0400, "Unknown 2-2" )
4185 	PORT_DIPSETTING(      0x0400, DEF_STR( Off ) )
4186 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4187 	PORT_DIPNAME( 0x0800, 0x0800, "Unknown 2-3" )
4188 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
4189 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4190 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) )
4191 	PORT_DIPSETTING(      0x1000, "1" )
4192 	PORT_DIPSETTING(      0x0000, "2" )
4193 	PORT_DIPSETTING(      0x3000, "3" )
4194 	PORT_DIPSETTING(      0x2000, "5" )
4195 /*	PORT_DIPNAME( 0x4000, 0x4000, "License" )*/
4196 	PORT_DIPNAME( 0x8000, 0x8000, "Coinage Type" )	/* not supported*/
4197 	PORT_DIPSETTING(      0x8000, "1" )
4198 	PORT_DIPSETTING(      0x0000, "2" )
4199 INPUT_PORTS_END
4200 
4201 
4202 
4203 /***************************************************************************
4204 							Mobile Suit Gundam
4205 ***************************************************************************/
4206 
4207 
4208 INPUT_PORTS_START( msgundam )
4209 	PORT_START	/* IN0 - Player 1 - $400000.w*/
4210 	JOY_TYPE1_2BUTTONS(1)
4211 
4212 	PORT_START	/* IN1 - Player 2 - $400002.w*/
4213 	JOY_TYPE1_2BUTTONS(2)
4214 
4215 	PORT_START	/* IN2 - Coins - $400004.w*/
4216 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
4217 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
4218 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
4219 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
4220 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  )
4221 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN  )
4222 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
4223 	PORT_DIPNAME( 0x0080, 0x0080, "Language" )
4224 	PORT_DIPSETTING(      0x0080, "English" )
4225 	PORT_DIPSETTING(      0x0000, "Japanese" )
4226 
4227 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
4228 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
4229 	PORT_DIPSETTING(      0x0000, DEF_STR( 4C_1C ) )
4230 	PORT_DIPSETTING(      0x0001, DEF_STR( 3C_1C ) )
4231 	PORT_DIPSETTING(      0x0002, DEF_STR( 2C_1C ) )
4232 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
4233 	PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
4234 	PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
4235 	PORT_DIPSETTING(      0x0003, DEF_STR( 1C_4C ) )
4236 	PORT_DIPSETTING(      0x0004, DEF_STR( 1C_5C ) )
4237 	PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
4238 	PORT_DIPSETTING(      0x0000, DEF_STR( 4C_1C ) )
4239 	PORT_DIPSETTING(      0x0008, DEF_STR( 3C_1C ) )
4240 	PORT_DIPSETTING(      0x0010, DEF_STR( 2C_1C ) )
4241 	PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
4242 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_2C ) )
4243 	PORT_DIPSETTING(      0x0028, DEF_STR( 1C_3C ) )
4244 	PORT_DIPSETTING(      0x0018, DEF_STR( 1C_4C ) )
4245 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_5C ) )
4246 	PORT_DIPNAME( 0x0040, 0x0040, "Unknown 2-6" )
4247 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
4248 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4249 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) )
4250 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
4251 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4252 
4253 	PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Demo_Sounds ) )
4254 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
4255 	PORT_DIPSETTING(      0x0100, DEF_STR( On ) )
4256 	PORT_DIPNAME( 0x0600, 0x0600, DEF_STR( Difficulty ) )	/* unverified, from the manual*/
4257 	PORT_DIPSETTING(      0x0400, "Easy"    )
4258 	PORT_DIPSETTING(      0x0600, "Normal"  )
4259 	PORT_DIPSETTING(      0x0200, "Hard"    )
4260 	PORT_DIPSETTING(      0x0000, "Hardest" )
4261 	PORT_DIPNAME( 0x0800, 0x0800, "Unknown 1-3" )
4262 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
4263 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4264 	PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Flip_Screen ) )
4265 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
4266 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4267 	PORT_DIPNAME( 0x2000, 0x2000, "Memory Check" )
4268 	PORT_DIPSETTING(      0x2000, DEF_STR( Off ) )
4269 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4270 	PORT_DIPNAME( 0x4000, 0x4000, "Unknown 1-6" )
4271 	PORT_DIPSETTING(      0x4000, DEF_STR( Off ) )
4272 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4273 	PORT_SERVICE( 0x8000, IP_ACTIVE_LOW )
4274 INPUT_PORTS_END
4275 
4276 INPUT_PORTS_START( msgunda1 )
4277 	PORT_START	/* IN0 - Player 1 - $400000.w*/
4278 	JOY_TYPE1_2BUTTONS(1)
4279 
4280 	PORT_START	/* IN1 - Player 2 - $400002.w*/
4281 	JOY_TYPE1_2BUTTONS(2)
4282 
4283 	PORT_START	/* IN2 - Coins - $400004.w*/
4284 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
4285 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
4286 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
4287 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
4288 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  )
4289 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN  )
4290 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
4291 	/* this set seems to be a japan set, english mode doesn't work correctly */
4292 	PORT_DIPNAME( 0x0080, 0x0000, "Language" )
4293 /*	PORT_DIPSETTING(      0x0080, "English" )*/
4294 	PORT_DIPSETTING(      0x0000, "Japanese" )
4295 
4296 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
4297 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
4298 	PORT_DIPSETTING(      0x0000, DEF_STR( 4C_1C ) )
4299 	PORT_DIPSETTING(      0x0001, DEF_STR( 3C_1C ) )
4300 	PORT_DIPSETTING(      0x0002, DEF_STR( 2C_1C ) )
4301 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
4302 	PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
4303 	PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
4304 	PORT_DIPSETTING(      0x0003, DEF_STR( 1C_4C ) )
4305 	PORT_DIPSETTING(      0x0004, DEF_STR( 1C_5C ) )
4306 	PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
4307 	PORT_DIPSETTING(      0x0000, DEF_STR( 4C_1C ) )
4308 	PORT_DIPSETTING(      0x0008, DEF_STR( 3C_1C ) )
4309 	PORT_DIPSETTING(      0x0010, DEF_STR( 2C_1C ) )
4310 	PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
4311 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_2C ) )
4312 	PORT_DIPSETTING(      0x0028, DEF_STR( 1C_3C ) )
4313 	PORT_DIPSETTING(      0x0018, DEF_STR( 1C_4C ) )
4314 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_5C ) )
4315 	PORT_DIPNAME( 0x0040, 0x0040, "Unknown 2-6" )
4316 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
4317 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4318 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) )
4319 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
4320 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4321 
4322 	PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Demo_Sounds ) )
4323 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
4324 	PORT_DIPSETTING(      0x0100, DEF_STR( On ) )
4325 	PORT_DIPNAME( 0x0600, 0x0600, DEF_STR( Difficulty ) )	/* unverified, from the manual*/
4326 	PORT_DIPSETTING(      0x0400, "Easy"    )
4327 	PORT_DIPSETTING(      0x0600, "Normal"  )
4328 	PORT_DIPSETTING(      0x0200, "Hard"    )
4329 	PORT_DIPSETTING(      0x0000, "Hardest" )
4330 	PORT_DIPNAME( 0x0800, 0x0800, "Unknown 1-3" )
4331 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
4332 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4333 	PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Flip_Screen ) )
4334 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
4335 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4336 	PORT_DIPNAME( 0x2000, 0x2000, "Memory Check" )
4337 	PORT_DIPSETTING(      0x2000, DEF_STR( Off ) )
4338 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4339 	PORT_DIPNAME( 0x4000, 0x4000, "Unknown 1-6" )
4340 	PORT_DIPSETTING(      0x4000, DEF_STR( Off ) )
4341 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4342 	PORT_SERVICE( 0x8000, IP_ACTIVE_LOW )
4343 INPUT_PORTS_END
4344 
4345 
4346 /***************************************************************************
4347 							Oishii Puzzle
4348 ***************************************************************************/
4349 
4350 INPUT_PORTS_START( oisipuzl )
4351 	PORT_START	/* IN0 - Player 1*/
4352 	JOY_TYPE1_2BUTTONS(1)
4353 
4354 	PORT_START	/* IN1 - Player 2*/
4355 	JOY_TYPE1_2BUTTONS(2)
4356 
4357 	PORT_START	/* IN2 - Coins*/
4358 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
4359 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
4360 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
4361 	PORT_BITX( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
4362 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
4363 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
4364 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
4365 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
4366 
4367 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
4368 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )
4369 	PORT_DIPSETTING(      0x0002, "Easy" )
4370 	PORT_DIPSETTING(      0x0003, "Normal" )
4371 	PORT_DIPSETTING(      0x0001, "Hard" )
4372 	PORT_DIPSETTING(      0x0000, "Hardest" )
4373 	PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Demo_Sounds ) )
4374 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
4375 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4376 	PORT_DIPNAME( 0x0008, 0x0008, "Unknown 1-3" )	/* these seem unused*/
4377 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
4378 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4379 	PORT_DIPNAME( 0x0010, 0x0010, "Unknown 1-4" )
4380 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
4381 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4382 	PORT_DIPNAME( 0x0020, 0x0020, "Unknown 1-5" )
4383 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
4384 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4385 	PORT_DIPNAME( 0x0040, 0x0040, "Unknown 1-6" )
4386 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
4387 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4388 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
4389 
4390 	PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) )
4391 	PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
4392 	PORT_DIPSETTING(      0x0100, DEF_STR( 4C_1C ) )
4393 	PORT_DIPSETTING(      0x0200, DEF_STR( 3C_1C ) )
4394 	PORT_DIPSETTING(      0x0300, DEF_STR( 2C_1C ) )
4395 	PORT_DIPSETTING(      0x0700, DEF_STR( 1C_1C ) )
4396 	PORT_DIPSETTING(      0x0600, DEF_STR( 1C_2C ) )
4397 	PORT_DIPSETTING(      0x0500, DEF_STR( 1C_3C ) )
4398 	PORT_DIPSETTING(      0x0400, DEF_STR( 1C_4C ) )
4399 	PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) )
4400 	PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
4401 	PORT_DIPSETTING(      0x0800, DEF_STR( 4C_1C ) )
4402 	PORT_DIPSETTING(      0x1000, DEF_STR( 3C_1C ) )
4403 	PORT_DIPSETTING(      0x1800, DEF_STR( 2C_1C ) )
4404 	PORT_DIPSETTING(      0x3800, DEF_STR( 1C_1C ) )
4405 	PORT_DIPSETTING(      0x3000, DEF_STR( 1C_2C ) )
4406 	PORT_DIPSETTING(      0x2800, DEF_STR( 1C_3C ) )
4407 	PORT_DIPSETTING(      0x2000, DEF_STR( 1C_4C ) )
4408 	PORT_DIPNAME( 0x8000, 0x8000, "Unknown 2-7" )		/* this seems unused*/
4409 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
4410 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4411 INPUT_PORTS_END
4412 
4413 
4414 
4415 /***************************************************************************
4416 							Pro Mahjong Kiwame
4417 ***************************************************************************/
4418 
4419 INPUT_PORTS_START( kiwame )
4420 	PORT_START	/* IN0 - Unused*/
4421 	PORT_START	/* IN1 - Unused*/
4422 
4423 	PORT_START	/* IN2 - Coins*/
4424 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
4425 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
4426 	PORT_BIT_IMPULSE( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1, 5 )
4427 
4428 	PORT_START	/* IN3 - 2 DSWs - $e00001 & 3.b*/
4429 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
4430 	PORT_DIPSETTING(      0x0001, DEF_STR( 4C_1C ) )
4431 	PORT_DIPSETTING(      0x0002, DEF_STR( 3C_1C ) )
4432 	PORT_DIPSETTING(      0x0004, DEF_STR( 2C_1C ) )
4433 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
4434 	PORT_DIPSETTING(      0x0003, DEF_STR( 2C_3C ) )
4435 	PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
4436 	PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
4437 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
4438 	PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
4439 	PORT_DIPSETTING(      0x0008, DEF_STR( 4C_1C ) )
4440 	PORT_DIPSETTING(      0x0010, DEF_STR( 3C_1C ) )
4441 	PORT_DIPSETTING(      0x0020, DEF_STR( 2C_1C ) )
4442 	PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
4443 	PORT_DIPSETTING(      0x0018, DEF_STR( 2C_3C ) )
4444 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_2C ) )
4445 	PORT_DIPSETTING(      0x0028, DEF_STR( 1C_3C ) )
4446 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
4447 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) )
4448 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
4449 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
4450 	PORT_DIPNAME( 0x0080, 0x0080, "Player's TSUMO" )
4451 	PORT_DIPSETTING(      0x0080, "Manual" )
4452 	PORT_DIPSETTING(      0x0000, "Auto"   )
4453 
4454 	PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) )
4455 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
4456 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4457 	PORT_SERVICE( 0x0200, IP_ACTIVE_LOW )
4458 	PORT_DIPNAME( 0x1c00, 0x1c00, DEF_STR( Difficulty ) )
4459 	PORT_DIPSETTING(      0x1c00, "None" )
4460 	PORT_DIPSETTING(      0x1800, "Prelim  1" )
4461 	PORT_DIPSETTING(      0x1400, "Prelim  2" )
4462 	PORT_DIPSETTING(      0x1000, "Final   1" )
4463 	PORT_DIPSETTING(      0x0c00, "Final   2" )
4464 	PORT_DIPSETTING(      0x0800, "Final   3" )
4465 	PORT_DIPSETTING(      0x0400, "Qrt Final" )
4466 	PORT_DIPSETTING(      0x0000, "SemiFinal" )
4467 	PORT_DIPNAME( 0xe000, 0xe000, "Points Gap" )
4468 	PORT_DIPSETTING(      0xe000, "None" )
4469 	PORT_DIPSETTING(      0xc000, "+6000" )
4470 	PORT_DIPSETTING(      0xa000, "+4000" )
4471 	PORT_DIPSETTING(      0x8000, "+2000" )
4472 	PORT_DIPSETTING(      0x6000, "-2000" )
4473 	PORT_DIPSETTING(      0x4000, "-4000" )
4474 	PORT_DIPSETTING(      0x2000, "-6000" )
4475 	PORT_DIPSETTING(      0x0000, "-8000" )
4476 
4477 /*
4478 		row 0	1	2	3	4
4479 bit	0		a	b	c	d	lc
4480 	1		e	f	g	h
4481 	2		i	j	k	l
4482 	3		m	n	ch	po	ff
4483 	4		ka	re	ro
4484 	5		st	bt
4485 */
4486 
4487 	PORT_START	/* IN4*/
4488 	PORT_BITX(0x0001, IP_ACTIVE_LOW, 0, "P1 LC",  KEYCODE_RCONTROL, IP_JOY_NONE )
4489 	PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
4490 	PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
4491 	PORT_BITX(0x0008, IP_ACTIVE_LOW, 0, "P1 FF",  KEYCODE_RALT,     IP_JOY_NONE )
4492 	PORT_BIT (0xfff0, IP_ACTIVE_LOW, IPT_UNKNOWN )
4493 
4494 	PORT_START	/* IN5*/
4495 	PORT_BITX(0x0001, IP_ACTIVE_LOW, 0, "P1 B",     KEYCODE_B,      IP_JOY_NONE )
4496 	PORT_BITX(0x0002, IP_ACTIVE_LOW, 0, "P1 F",     KEYCODE_F,      IP_JOY_NONE )
4497 	PORT_BITX(0x0004, IP_ACTIVE_LOW, 0, "P1 J",     KEYCODE_J,      IP_JOY_NONE )
4498 	PORT_BITX(0x0008, IP_ACTIVE_LOW, 0, "P1 N",     KEYCODE_N,      IP_JOY_NONE )
4499 	PORT_BITX(0x0010, IP_ACTIVE_LOW, 0, "P1 Reach", KEYCODE_LSHIFT, IP_JOY_NONE )
4500 	PORT_BITX(0x0020, IP_ACTIVE_LOW, 0, "P1 BT",    KEYCODE_X,      IP_JOY_NONE )
4501 	PORT_BIT (0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
4502 
4503 	PORT_START	/* IN6*/
4504 	PORT_BITX(0x0001, IP_ACTIVE_LOW, 0, "P1 A",   KEYCODE_A,        IP_JOY_NONE )
4505 	PORT_BITX(0x0002, IP_ACTIVE_LOW, 0, "P1 E",   KEYCODE_E,        IP_JOY_NONE )
4506 	PORT_BITX(0x0004, IP_ACTIVE_LOW, 0, "P1 I",   KEYCODE_I,        IP_JOY_NONE )
4507 	PORT_BITX(0x0008, IP_ACTIVE_LOW, 0, "P1 M",   KEYCODE_M,        IP_JOY_NONE )
4508 	PORT_BITX(0x0010, IP_ACTIVE_LOW, 0, "P1 Kan", KEYCODE_LCONTROL, IP_JOY_NONE )
4509 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START1  )
4510 	PORT_BIT (0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
4511 
4512 	PORT_START	/* IN7*/
4513 	PORT_BITX(0x0001, IP_ACTIVE_LOW, 0, "P1 C",   KEYCODE_C,     IP_JOY_NONE )
4514 	PORT_BITX(0x0002, IP_ACTIVE_LOW, 0, "P1 G",   KEYCODE_G,     IP_JOY_NONE )
4515 	PORT_BITX(0x0004, IP_ACTIVE_LOW, 0, "P1 K",   KEYCODE_K,     IP_JOY_NONE )
4516 	PORT_BITX(0x0008, IP_ACTIVE_LOW, 0, "P1 Chi", KEYCODE_SPACE, IP_JOY_NONE )
4517 	PORT_BITX(0x0010, IP_ACTIVE_LOW, 0, "P1 Ron", KEYCODE_Z,     IP_JOY_NONE )
4518 	PORT_BIT (0xffe0, IP_ACTIVE_LOW, IPT_UNKNOWN )
4519 
4520 	PORT_START	/* IN8*/
4521 	PORT_BITX(0x0001, IP_ACTIVE_LOW, 0, "P1 D",   KEYCODE_D,    IP_JOY_NONE )
4522 	PORT_BITX(0x0002, IP_ACTIVE_LOW, 0, "P1 H",   KEYCODE_H,    IP_JOY_NONE )
4523 	PORT_BITX(0x0004, IP_ACTIVE_LOW, 0, "P1 L",   KEYCODE_L,    IP_JOY_NONE )
4524 	PORT_BITX(0x0008, IP_ACTIVE_LOW, 0, "P1 Pon", KEYCODE_LALT, IP_JOY_NONE )
4525 	PORT_BIT (0xfff0, IP_ACTIVE_LOW, IPT_UNKNOWN )
4526 INPUT_PORTS_END
4527 
4528 
4529 
4530 /***************************************************************************
4531 								Quiz Kokology
4532 ***************************************************************************/
4533 
4534 INPUT_PORTS_START( qzkklogy )
4535 	PORT_START	/* IN0 - Player 1 - $b00001.b*/
4536 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
4537 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER1 )
4538 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
4539 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
4540 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* pause (cheat)*/
4541 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
4542 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
4543 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START1  )
4544 
4545 	PORT_START	/* IN1 - Player 2 - $b00003.b*/
4546 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
4547 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER2 )
4548 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
4549 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
4550 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* pause (cheat)*/
4551 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
4552 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
4553 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START2  )
4554 
4555 	PORT_START	/* IN2 - Coins - $b00005.b*/
4556 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
4557 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
4558 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
4559 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN  )
4560 
4561 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
4562 	PORT_DIPNAME( 0x0003, 0x0003, "Unknown 1-0&1*" )
4563 	PORT_DIPSETTING(      0x0000, "0" )
4564 	PORT_DIPSETTING(      0x0001, "1" )
4565 	PORT_DIPSETTING(      0x0002, "2" )
4566 	PORT_DIPSETTING(      0x0003, "3" )
4567 	PORT_BITX(    0x0004, 0x0004, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Highlight Right Answer", IP_KEY_NONE, IP_JOY_NONE )
4568 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
4569 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4570 	PORT_DIPNAME( 0x0008, 0x0008, "Unknown 1-3" )
4571 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
4572 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4573 	PORT_DIPNAME( 0x0010, 0x0010, "Unknown 1-4" )
4574 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
4575 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4576 	PORT_SERVICE( 0x0020, IP_ACTIVE_LOW )
4577 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) )
4578 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
4579 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
4580 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Flip_Screen ) )
4581 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
4582 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4583 
4584 	PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) )
4585 	PORT_DIPSETTING(      0x0400, DEF_STR( 4C_1C ) )
4586 	PORT_DIPSETTING(      0x0500, DEF_STR( 3C_1C ) )
4587 	PORT_DIPSETTING(      0x0600, DEF_STR( 2C_1C ) )
4588 	PORT_DIPSETTING(      0x0700, DEF_STR( 1C_1C ) )
4589 	PORT_DIPSETTING(      0x0100, DEF_STR( 2C_3C ) )
4590 	PORT_DIPSETTING(      0x0300, DEF_STR( 1C_2C ) )
4591 	PORT_DIPSETTING(      0x0200, DEF_STR( 1C_3C ) )
4592 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
4593 	PORT_DIPNAME( 0x0800, 0x0800, "Unknown 2-3" )
4594 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
4595 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4596 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Difficulty ) )
4597 	PORT_DIPSETTING(      0x2000, "Easy" )
4598 	PORT_DIPSETTING(      0x3000, "Normal" )
4599 	PORT_DIPSETTING(      0x1000, "Hard" )
4600 	PORT_DIPSETTING(      0x0000, "Very Hard" )
4601 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) )
4602 	PORT_DIPSETTING(      0x8000, "2" )
4603 	PORT_DIPSETTING(      0xc000, "3" )
4604 	PORT_DIPSETTING(      0x4000, "4" )
4605 	PORT_DIPSETTING(      0x0000, "5" )
4606 INPUT_PORTS_END
4607 
4608 
4609 
4610 /***************************************************************************
4611 								Quiz Kokology 2
4612 ***************************************************************************/
4613 
4614 INPUT_PORTS_START( qzkklgy2 )
4615 	PORT_START	/* IN0 - Player 1 - $b00001.b*/
4616 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
4617 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER1 )
4618 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
4619 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
4620 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
4621 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
4622 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
4623 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START1  )
4624 
4625 	PORT_START	/* IN1 - Player 2 - $b00003.b*/
4626 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
4627 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER2 )
4628 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
4629 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
4630 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
4631 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
4632 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
4633 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START2  )
4634 
4635 	PORT_START	/* IN2 - Coins - $b00005.b*/
4636 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
4637 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
4638 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
4639 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN  )
4640 
4641 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
4642 	PORT_DIPNAME( 0x0003, 0x0003, "Unknown 1-0&1*" )
4643 	PORT_DIPSETTING(      0x0000, "0" )
4644 	PORT_DIPSETTING(      0x0001, "1" )
4645 	PORT_DIPSETTING(      0x0002, "2" )
4646 	PORT_DIPSETTING(      0x0003, "3" )
4647 	PORT_BITX(    0x0004, 0x0004, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Highlight Right Answer", IP_KEY_NONE, IP_JOY_NONE )
4648 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
4649 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4650 	PORT_DIPNAME( 0x0008, 0x0008, "Unknown 1-3" )
4651 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
4652 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4653 	PORT_DIPNAME( 0x0010, 0x0010, "Unknown 1-4" )
4654 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
4655 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4656 	PORT_SERVICE( 0x0020, IP_ACTIVE_LOW )
4657 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) )
4658 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
4659 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
4660 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Flip_Screen ) )
4661 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
4662 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4663 
4664 	PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coinage ) )
4665 	PORT_DIPSETTING(      0x0400, DEF_STR( 4C_1C ) )
4666 	PORT_DIPSETTING(      0x0500, DEF_STR( 3C_1C ) )
4667 	PORT_DIPSETTING(      0x0600, DEF_STR( 2C_1C ) )
4668 	PORT_DIPSETTING(      0x0700, DEF_STR( 1C_1C ) )
4669 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
4670 	PORT_DIPSETTING(      0x0300, DEF_STR( 1C_2C ) )
4671 	PORT_DIPSETTING(      0x0200, DEF_STR( 1C_3C ) )
4672 	PORT_DIPSETTING(      0x0100, DEF_STR( 1C_4C ) )
4673 	PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Free_Play ) )
4674 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
4675 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4676 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Difficulty ) )
4677 	PORT_DIPSETTING(      0x3000, "Easy" )
4678 	PORT_DIPSETTING(      0x2000, "Normal" )
4679 	PORT_DIPSETTING(      0x1000, "Hard" )
4680 	PORT_DIPSETTING(      0x0000, "Hardest" )
4681 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) )
4682 	PORT_DIPSETTING(      0x8000, "2" )
4683 	PORT_DIPSETTING(      0xc000, "3" )
4684 	PORT_DIPSETTING(      0x4000, "4" )
4685 	PORT_DIPSETTING(      0x0000, "5" )
4686 INPUT_PORTS_END
4687 
4688 
4689 /***************************************************************************
4690 									Rezon
4691 ***************************************************************************/
4692 
4693 INPUT_PORTS_START( rezon )
4694 	PORT_START	/* IN0 - Player 1*/
4695 	JOY_TYPE1_3BUTTONS(1)	/* 1 used??*/
4696 
4697 	PORT_START	/* IN1 - Player 2*/
4698 	JOY_TYPE1_3BUTTONS(2)	/* 1 used ??*/
4699 
4700 	PORT_START	/* IN2 - Coins*/
4701 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
4702 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
4703 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
4704 	PORT_BITX( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
4705 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
4706 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
4707 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
4708 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
4709 
4710 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
4711 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
4712 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
4713 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4714 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )
4715 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
4716 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
4717 	PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) )
4718 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
4719 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4720 	PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Cabinet ) )
4721 	PORT_DIPSETTING(      0x0000, "Upright 1 Controller" )
4722 	PORT_DIPSETTING(      0x0018, "Upright 2 Controllers" )
4723 	PORT_DIPSETTING(      0x0008, DEF_STR( Cocktail ) )
4724 /*	PORT_DIPSETTING(      0x0010, "10" )				 // Unused / Not Defined /*/
4725 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) )
4726 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
4727 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4728 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )
4729 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
4730 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4731 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
4732 
4733 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )
4734 	PORT_DIPSETTING(      0x0200, "2" )
4735 	PORT_DIPSETTING(      0x0300, "3" )
4736 	PORT_DIPSETTING(      0x0100, "4" )
4737 	PORT_DIPSETTING(      0x0000, "5" )
4738 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
4739 	PORT_DIPSETTING(      0x0800, "Easy" )
4740 	PORT_DIPSETTING(      0x0c00, "Normal" )
4741 	PORT_DIPSETTING(      0x0400, "Hard" )
4742 	PORT_DIPSETTING(      0x0000, "Hardest" )
4743 	PORT_DIPNAME( 0xf000, 0xf000, DEF_STR( Coinage ) )
4744 	PORT_DIPSETTING(      0xa000, DEF_STR( 6C_1C ) )
4745 	PORT_DIPSETTING(      0xb000, DEF_STR( 5C_1C ) )
4746 	PORT_DIPSETTING(      0xc000, DEF_STR( 4C_1C ) )
4747 	PORT_DIPSETTING(      0xd000, DEF_STR( 3C_1C ) )
4748 	PORT_DIPSETTING(      0x1000, DEF_STR( 8C_3C ) )
4749 	PORT_DIPSETTING(      0xe000, DEF_STR( 2C_1C ) )
4750 	PORT_DIPSETTING(      0x2000, DEF_STR( 5C_3C ) )
4751 	PORT_DIPSETTING(      0x3000, DEF_STR( 3C_2C ) )
4752 	PORT_DIPSETTING(      0xf000, DEF_STR( 1C_1C ) )
4753 	PORT_DIPSETTING(      0x4000, DEF_STR( 2C_3C ) )
4754 	PORT_DIPSETTING(      0x9000, DEF_STR( 1C_2C ) )
4755 	PORT_DIPSETTING(      0x8000, DEF_STR( 1C_3C ) )
4756 	PORT_DIPSETTING(      0x7000, DEF_STR( 1C_4C ) )
4757 	PORT_DIPSETTING(      0x6000, DEF_STR( 1C_5C ) )
4758 	PORT_DIPSETTING(      0x5000, DEF_STR( 1C_6C ) )
4759 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
4760 INPUT_PORTS_END
4761 
4762 
4763 /***************************************************************************
4764 							SD Gundam Neo Battling
4765 ***************************************************************************/
4766 
4767 /*
4768 	When the "Stage Select" dip switch is on and button1 is pressed during boot,
4769 	pressing P1's button3 freezes the game (pressing P2's button3 resumes it).
4770 */
4771 INPUT_PORTS_START( neobattl )
4772 	PORT_START	/* IN0 - Player 1 - $400000.w*/
4773 	JOY_TYPE1_1BUTTON(1)	/* bump to 3 buttons for freezing to work*/
4774 
4775 	PORT_START	/* IN1 - Player 2 - $400002.w*/
4776 	JOY_TYPE1_1BUTTON(2)	/* bump to 3 buttons for freezing to work*/
4777 
4778 	PORT_START	/* IN2 - Coins - $400004.w*/
4779 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
4780 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
4781 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
4782 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
4783 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  )
4784 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN  )
4785 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
4786 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  )
4787 
4788 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
4789 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
4790 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
4791 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4792 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )
4793 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
4794 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
4795 	PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )	/* used*/
4796 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
4797 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4798 	PORT_BITX(    0x0008, 0x0008, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stage Select", IP_KEY_NONE, IP_JOY_NONE )
4799 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
4800 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4801 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )	/* unused?*/
4802 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
4803 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4804 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )	/* unused?*/
4805 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
4806 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4807 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )	/* unused?*/
4808 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
4809 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4810 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
4811 
4812 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )
4813 	PORT_DIPSETTING(      0x0200, "1" )
4814 	PORT_DIPSETTING(      0x0300, "2" )
4815 	PORT_DIPSETTING(      0x0100, "3" )
4816 	PORT_DIPSETTING(      0x0000, "4" )
4817 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
4818 	PORT_DIPSETTING(      0x0800, "Easy"    )
4819 	PORT_DIPSETTING(      0x0c00, "Normal"  )
4820 	PORT_DIPSETTING(      0x0400, "Hard"    )
4821 	PORT_DIPSETTING(      0x0000, "Hardest" )
4822 	PORT_DIPNAME( 0xf000, 0xf000, DEF_STR( Coinage ) )
4823 	PORT_DIPSETTING(      0xa000, DEF_STR( 6C_1C ) )
4824 	PORT_DIPSETTING(      0xb000, DEF_STR( 5C_1C ) )
4825 	PORT_DIPSETTING(      0xc000, DEF_STR( 4C_1C ) )
4826 	PORT_DIPSETTING(      0xd000, DEF_STR( 3C_1C ) )
4827 	PORT_DIPSETTING(      0x1000, DEF_STR( 8C_3C ) )
4828 	PORT_DIPSETTING(      0xe000, DEF_STR( 2C_1C ) )
4829 	PORT_DIPSETTING(      0x2000, DEF_STR( 5C_3C ) )
4830 	PORT_DIPSETTING(      0x3000, DEF_STR( 3C_2C ) )
4831 	PORT_DIPSETTING(      0xf000, DEF_STR( 1C_1C ) )
4832 	PORT_DIPSETTING(      0x4000, DEF_STR( 2C_3C ) )
4833 	PORT_DIPSETTING(      0x9000, DEF_STR( 1C_2C ) )
4834 	PORT_DIPSETTING(      0x8000, DEF_STR( 1C_3C ) )
4835 	PORT_DIPSETTING(      0x7000, DEF_STR( 1C_4C ) )
4836 	PORT_DIPSETTING(      0x6000, DEF_STR( 1C_5C ) )
4837 	PORT_DIPSETTING(      0x5000, DEF_STR( 1C_6C ) )
4838 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
4839 INPUT_PORTS_END
4840 
4841 
4842 
4843 /***************************************************************************
4844 								Sokonuke
4845 ***************************************************************************/
4846 
4847 INPUT_PORTS_START( sokonuke )
4848 	PORT_START	/* IN0 - Player 1*/
4849 	JOY_TYPE1_1BUTTON(1)
4850 
4851 	PORT_START	/* IN1 - Player 2*/
4852 	JOY_TYPE1_1BUTTON(2)
4853 
4854 	PORT_START	/* IN2 - Coins*/
4855 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
4856 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
4857 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
4858 	PORT_BITX( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
4859 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
4860 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
4861 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
4862 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
4863 
4864 	PORT_START	/* IN3 - 2 DSWs - $400009 & b.b*/
4865 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
4866 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
4867 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4868 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )
4869 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
4870 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
4871 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )
4872 	PORT_DIPSETTING(      0x0008, "Easy" )
4873 	PORT_DIPSETTING(      0x000c, "Normal" )
4874 	PORT_DIPSETTING(      0x0004, "Hard" )
4875 	PORT_DIPSETTING(      0x0000, "Hardest" )
4876 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Free_Play ) )
4877 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
4878 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4879 	PORT_DIPNAME( 0x0020, 0x0020, "Unknown 1-5*" )
4880 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
4881 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4882 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )	/* unused?*/
4883 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
4884 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4885 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
4886 
4887 	PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) )
4888 	PORT_DIPSETTING(      0x0500, DEF_STR( 3C_1C ) )
4889 	PORT_DIPSETTING(      0x0600, DEF_STR( 2C_1C ) )
4890 	PORT_DIPSETTING(      0x0700, DEF_STR( 1C_1C ) )
4891 	PORT_DIPSETTING(      0x0400, DEF_STR( 1C_2C ) )
4892 	PORT_DIPSETTING(      0x0300, DEF_STR( 1C_3C ) )
4893 	PORT_DIPSETTING(      0x0200, DEF_STR( 1C_4C ) )
4894 	PORT_DIPSETTING(      0x0100, DEF_STR( 1C_5C ) )
4895 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
4896 	PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) )
4897 	PORT_DIPSETTING(      0x2800, DEF_STR( 3C_1C ) )
4898 	PORT_DIPSETTING(      0x3000, DEF_STR( 2C_1C ) )
4899 	PORT_DIPSETTING(      0x3800, DEF_STR( 1C_1C ) )
4900 	PORT_DIPSETTING(      0x2000, DEF_STR( 1C_2C ) )
4901 	PORT_DIPSETTING(      0x1800, DEF_STR( 1C_3C ) )
4902 	PORT_DIPSETTING(      0x1000, DEF_STR( 1C_4C ) )
4903 	PORT_DIPSETTING(      0x0800, DEF_STR( 1C_5C ) )
4904 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
4905 	PORT_DIPNAME( 0x4000, 0x4000, "Cheap Continue" )
4906 	PORT_DIPSETTING(      0x4000, DEF_STR( No ) )
4907 	PORT_DIPSETTING(      0x0000, DEF_STR( Yes ) )
4908 	PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )	/* unused?*/
4909 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
4910 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4911 INPUT_PORTS_END
4912 
4913 
4914 
4915 /***************************************************************************
4916 								Strike Gunner
4917 ***************************************************************************/
4918 
4919 INPUT_PORTS_START( stg )
4920 	PORT_START	/* IN0 - Player 1 - $b00001.b*/
4921 	JOY_TYPE1_2BUTTONS(1)
4922 
4923 	PORT_START	/* IN1 - Player 2 - $b00003.b*/
4924 	JOY_TYPE1_2BUTTONS(2)
4925 
4926 	PORT_START	/* IN2 - Coins - $b00005.b*/
4927 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
4928 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN  )
4929 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
4930 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN  )
4931 /*	PORT_DIPNAME( 0x00f0, 0x00f0, "Title" )*/
4932 	/* This is the index in a table with pointers to the
4933 	   title logo, but the table is filled with just 1 value */
4934 
4935 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
4936 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )
4937 	PORT_DIPSETTING(      0x0002, "Easy"    ) /* 0*/
4938 	PORT_DIPSETTING(      0x0003, "Normal"  ) /* 4*/
4939 	PORT_DIPSETTING(      0x0001, "Hard"    ) /* 8*/
4940 	PORT_DIPSETTING(      0x0000, "Hardest" ) /* b*/
4941 	PORT_DIPNAME( 0x0004, 0x0004, "Unknown 1-2" )
4942 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
4943 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4944 	PORT_DIPNAME( 0x0008, 0x0008, "Unknown 1-3" )
4945 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
4946 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4947 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )
4948 	PORT_DIPSETTING(      0x0010, "1" )
4949 	PORT_DIPSETTING(      0x0000, "2" )
4950 	PORT_DIPSETTING(      0x0030, "3" )
4951 	PORT_DIPSETTING(      0x0020, "5" )
4952 	PORT_DIPNAME( 0x0040, 0x0040, "Unknown 1-6" )
4953 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
4954 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4955 	PORT_DIPNAME( 0x0080, 0x0080, "Unknown 1-7" )
4956 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
4957 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4958 
4959 	PORT_DIPNAME( 0x0100, 0x0100, "Unknown 2-0" )
4960 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
4961 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4962 	PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) )
4963 	PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
4964 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4965 	PORT_SERVICE( 0x0400, IP_ACTIVE_LOW )
4966 	PORT_DIPNAME( 0x0800, 0x0800, "Unknown 2-3" )
4967 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
4968 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4969 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Coin_A ) )
4970 	PORT_DIPSETTING(      0x1000, DEF_STR( 2C_1C ) )
4971 	PORT_DIPSETTING(      0x3000, DEF_STR( 1C_1C ) )
4972 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
4973 	PORT_DIPSETTING(      0x2000, DEF_STR( 1C_2C ) )
4974 	PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Demo_Sounds ) )
4975 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
4976 	PORT_DIPSETTING(      0x4000, DEF_STR( On ) )
4977 	PORT_DIPNAME( 0x8000, 0x8000, "Unknown 2-7" )
4978 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
4979 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
4980 INPUT_PORTS_END
4981 
4982 
4983 
4984 /***************************************************************************
4985 							Thunder & Lightning
4986 ***************************************************************************/
4987 
4988 INPUT_PORTS_START( thunderl )
4989 	PORT_START	/* IN0 - Player 1*/
4990 	JOY_TYPE1_2BUTTONS(1)	/* button2 = speed up*/
4991 
4992 	PORT_START	/* IN1 - Player 2*/
4993 	JOY_TYPE1_2BUTTONS(2)
4994 
4995 	PORT_START	/* IN2 - Coins + DSW*/
4996 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
4997 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
4998 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
4999 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
5000 	PORT_DIPNAME( 0x0010, 0x0000, "Force 1 Life" )
5001 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
5002 	PORT_DIPSETTING(      0x0010, DEF_STR( On ) )
5003 	PORT_DIPNAME( 0x00e0, 0x00e0, "Copyright" )
5004 	PORT_DIPSETTING(      0x0080, "Romstar" )
5005 	PORT_DIPSETTING(      0x00c0, "Seta (Romstar License)" )
5006 	PORT_DIPSETTING(      0x00e0, "Seta (Visco License)" )
5007 	PORT_DIPSETTING(      0x00a0, "Visco" )
5008 	PORT_DIPSETTING(      0x0060, "None" )
5009 /*	PORT_DIPSETTING(      0x0040, "None" )*/
5010 /*	PORT_DIPSETTING(      0x0020, "None" )*/
5011 /*	PORT_DIPSETTING(      0x0000, "None" )*/
5012 
5013 	PORT_START	/* IN3 - 2 DSWs - $600003 & 1.b*/
5014 	PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_A ) )
5015 	PORT_DIPSETTING(      0x000c, DEF_STR( 4C_1C ) )
5016 	PORT_DIPSETTING(      0x000d, DEF_STR( 3C_1C ) )
5017 	PORT_DIPSETTING(      0x0008, DEF_STR( 4C_2C ) )
5018 	PORT_DIPSETTING(      0x000e, DEF_STR( 2C_1C ) )
5019 	PORT_DIPSETTING(      0x0009, DEF_STR( 3C_2C ) )
5020 	PORT_DIPSETTING(      0x0004, DEF_STR( 4C_3C ) )
5021 	PORT_DIPSETTING(      0x0000, DEF_STR( 4C_4C ) )
5022 	PORT_DIPSETTING(      0x0005, DEF_STR( 3C_3C ) )
5023 	PORT_DIPSETTING(      0x000a, DEF_STR( 2C_2C ) )
5024 	PORT_DIPSETTING(      0x000f, DEF_STR( 1C_1C ) )
5025 	PORT_DIPSETTING(      0x0001, DEF_STR( 3C_4C ) )
5026 	PORT_DIPSETTING(      0x0006, DEF_STR( 2C_3C ) )
5027 	PORT_DIPSETTING(      0x0002, DEF_STR( 2C_4C ) )
5028 	PORT_DIPSETTING(      0x000b, DEF_STR( 1C_2C ) )
5029 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_3C ) )
5030 	PORT_DIPSETTING(      0x0003, DEF_STR( 1C_4C ) )
5031 	PORT_DIPNAME( 0x00f0, 0x00f0, DEF_STR( Coin_B ) )
5032 	PORT_DIPSETTING(      0x00c0, DEF_STR( 4C_1C ) )
5033 	PORT_DIPSETTING(      0x00d0, DEF_STR( 3C_1C ) )
5034 	PORT_DIPSETTING(      0x0080, DEF_STR( 4C_2C ) )
5035 	PORT_DIPSETTING(      0x00e0, DEF_STR( 2C_1C ) )
5036 	PORT_DIPSETTING(      0x0090, DEF_STR( 3C_2C ) )
5037 	PORT_DIPSETTING(      0x0040, DEF_STR( 4C_3C ) )
5038 	PORT_DIPSETTING(      0x0000, DEF_STR( 4C_4C ) )
5039 	PORT_DIPSETTING(      0x0050, DEF_STR( 3C_3C ) )
5040 	PORT_DIPSETTING(      0x00a0, DEF_STR( 2C_2C ) )
5041 	PORT_DIPSETTING(      0x00f0, DEF_STR( 1C_1C ) )
5042 	PORT_DIPSETTING(      0x0010, DEF_STR( 3C_4C ) )
5043 	PORT_DIPSETTING(      0x0060, DEF_STR( 2C_3C ) )
5044 	PORT_DIPSETTING(      0x0020, DEF_STR( 2C_4C ) )
5045 	PORT_DIPSETTING(      0x00b0, DEF_STR( 1C_2C ) )
5046 	PORT_DIPSETTING(      0x0070, DEF_STR( 1C_3C ) )
5047 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_4C ) )
5048 
5049 	PORT_SERVICE( 0x0100, IP_ACTIVE_LOW )
5050 	PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Flip_Screen ) )
5051 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )		/* WEIRD!*/
5052 	PORT_DIPSETTING(      0x0200, DEF_STR( On ) )
5053 	PORT_DIPNAME( 0x0400, 0x0000, DEF_STR( Cabinet ) )
5054 	PORT_DIPSETTING(      0x0000, DEF_STR( Upright ) )
5055 	PORT_DIPSETTING(      0x0400, DEF_STR( Cocktail ) )
5056 	PORT_DIPNAME( 0x0800, 0x0800, "Controls" )
5057 	PORT_DIPSETTING(      0x0800, "2" )
5058 	PORT_DIPSETTING(      0x0000, "1" )
5059 	PORT_DIPNAME( 0x1000, 0x0000, DEF_STR( Demo_Sounds ) )
5060 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
5061 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5062 	PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Lives ) )
5063 	PORT_DIPSETTING(      0x2000, "3" )
5064 	PORT_DIPSETTING(      0x0000, "2" )
5065 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Difficulty ) )
5066 	PORT_DIPSETTING(      0x8000, "Easy" )
5067 	PORT_DIPSETTING(      0xc000, "Normal" )
5068 	PORT_DIPSETTING(      0x4000, "Hard" )
5069 	PORT_DIPSETTING(      0x0000, "Hardest" )
5070 INPUT_PORTS_END
5071 
5072 
5073 
5074 /***************************************************************************
5075 								Thundercade (US)
5076 ***************************************************************************/
5077 
5078 INPUT_PORTS_START( tndrcade )
5079 	PORT_START	/* IN0 - Player 1*/
5080 	JOY_TYPE1_2BUTTONS(1)
5081 
5082 	PORT_START	/* IN1 - Player 2*/
5083 	JOY_TYPE1_2BUTTONS(2)
5084 
5085 	PORT_START	/* IN2 - Coins*/
5086 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
5087 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
5088 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_START1   )
5089 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_START2   )
5090 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_SERVICE1 )
5091 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_TILT     )
5092 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
5093 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  )
5094 
5095 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
5096 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )
5097 	PORT_DIPSETTING(      0x0002, "Easy"    )
5098 	PORT_DIPSETTING(      0x0003, "Normal"  )
5099 	PORT_DIPSETTING(      0x0001, "Hard"    )
5100 	PORT_DIPSETTING(      0x0000, "Hardest" )
5101 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Bonus_Life ) )
5102 	PORT_DIPSETTING(      0x000c, "50K  Only" )
5103 	PORT_DIPSETTING(      0x0004, "50K, Every 150K" )
5104 	PORT_DIPSETTING(      0x0004, "70K, Every 200K" )
5105 	PORT_DIPSETTING(      0x0008, "100K Only" )
5106 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )
5107 	PORT_DIPSETTING(      0x0010, "1" )
5108 	PORT_DIPSETTING(      0x0000, "2" )
5109 	PORT_DIPSETTING(      0x0030, "3" )
5110 	PORT_DIPSETTING(      0x0020, "5" )
5111 	PORT_DIPNAME( 0x0040, 0x0040, "Allow Continue" )
5112 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
5113 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
5114 	PORT_DIPNAME( 0x0080, 0x0000, "Licensed To" )	/* + coin mode (not supported)*/
5115 	PORT_DIPSETTING(      0x0080, "Taito America Corp." )
5116 	PORT_DIPSETTING(      0x0000, "Taito Corp. Japan" )
5117 
5118 	PORT_DIPNAME( 0x0100, 0x0100, "Title" )
5119 	PORT_DIPSETTING(      0x0100, "Thundercade" )
5120 	PORT_DIPSETTING(      0x0000, "Twin Formation" )
5121 	PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) )
5122 	PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
5123 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5124 	PORT_SERVICE( 0x0400, IP_ACTIVE_LOW )
5125 	PORT_DIPNAME( 0x0800, 0x0000, DEF_STR( Demo_Sounds ) )
5126 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
5127 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5128 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Coin_A ) )
5129 	PORT_DIPSETTING(      0x1000, DEF_STR( 2C_1C ) )
5130 	PORT_DIPSETTING(      0x3000, DEF_STR( 1C_1C ) )
5131 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
5132 	PORT_DIPSETTING(      0x2000, DEF_STR( 1C_2C ) )
5133 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Coin_B ) )
5134 	PORT_DIPSETTING(      0x4000, DEF_STR( 2C_1C ) )
5135 	PORT_DIPSETTING(      0xc000, DEF_STR( 1C_1C ) )
5136 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
5137 	PORT_DIPSETTING(      0x8000, DEF_STR( 1C_2C ) )
5138 INPUT_PORTS_END
5139 
5140 
5141 /***************************************************************************
5142 								Thundercade (Japan)
5143 ***************************************************************************/
5144 
5145 INPUT_PORTS_START( tndrcadj )
5146 	PORT_START	/* IN0 - Player 1*/
5147 	JOY_TYPE1_2BUTTONS(1)
5148 
5149 	PORT_START	/* IN1 - Player 2*/
5150 	JOY_TYPE1_2BUTTONS(2)
5151 
5152 	PORT_START	/* IN2 - Coins*/
5153 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
5154 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
5155 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_START1   )
5156 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_START2   )
5157 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_SERVICE1 )
5158 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_TILT     )
5159 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
5160 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  )
5161 
5162 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
5163 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )
5164 	PORT_DIPSETTING(      0x0002, "Easy"    )
5165 	PORT_DIPSETTING(      0x0003, "Normal"  )
5166 	PORT_DIPSETTING(      0x0001, "Hard"    )
5167 	PORT_DIPSETTING(      0x0000, "Hardest" )
5168 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Bonus_Life ) )
5169 	PORT_DIPSETTING(      0x000c, "50K  Only" )
5170 	PORT_DIPSETTING(      0x0004, "50K, Every 150K" )
5171 	PORT_DIPSETTING(      0x0004, "70K, Every 200K" )
5172 	PORT_DIPSETTING(      0x0008, "100K Only" )
5173 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )
5174 	PORT_DIPSETTING(      0x0010, "1" )
5175 	PORT_DIPSETTING(      0x0000, "2" )
5176 	PORT_DIPSETTING(      0x0030, "3" )
5177 	PORT_DIPSETTING(      0x0020, "5" )
5178 	PORT_DIPNAME( 0x0040, 0x0040, "Allow Continue" )
5179 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
5180 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
5181 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) )
5182 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
5183 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5184 
5185 	PORT_BITX(    0x0100, 0x0100, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
5186 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
5187 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5188 	PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) )
5189 	PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
5190 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5191 	PORT_SERVICE( 0x0400, IP_ACTIVE_LOW )
5192 	PORT_DIPNAME( 0x0800, 0x0000, DEF_STR( Demo_Sounds ) )
5193 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
5194 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5195 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Coin_A ) )
5196 	PORT_DIPSETTING(      0x1000, DEF_STR( 2C_1C ) )
5197 	PORT_DIPSETTING(      0x3000, DEF_STR( 1C_1C ) )
5198 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
5199 	PORT_DIPSETTING(      0x2000, DEF_STR( 1C_2C ) )
5200 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Coin_B ) )
5201 	PORT_DIPSETTING(      0x4000, DEF_STR( 2C_1C ) )
5202 	PORT_DIPSETTING(      0xc000, DEF_STR( 1C_1C ) )
5203 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
5204 	PORT_DIPSETTING(      0x8000, DEF_STR( 1C_2C ) )
5205 INPUT_PORTS_END
5206 
5207 
5208 
5209 /***************************************************************************
5210 								Twin Eagle
5211 ***************************************************************************/
5212 
5213 INPUT_PORTS_START( twineagl )
5214 	PORT_START	/* IN0 - Player 1*/
5215 	JOY_TYPE1_2BUTTONS(1)
5216 
5217 	PORT_START	/* IN1 - Player 2*/
5218 	JOY_TYPE1_2BUTTONS(2)
5219 
5220 	PORT_START	/* IN2 - Coins*/
5221 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
5222 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
5223 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_START1   )
5224 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_START2   )
5225 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_SERVICE1 )
5226 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_TILT     )
5227 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
5228 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  )
5229 
5230 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
5231 	PORT_DIPNAME( 0x4001, 0x4001, "Copyright" )		/* Always "Seta" if sim. players = 1*/
5232 	PORT_DIPSETTING(      0x4001, "Seta (Taito license)" )
5233 	PORT_DIPSETTING(      0x0001, "Taito" )
5234 	PORT_DIPSETTING(      0x4000, "Taito America" )
5235 	PORT_DIPSETTING(      0x0000, "Taito America (Romstar license)" )
5236 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )
5237 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
5238 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5239 	PORT_SERVICE( 0x0004, IP_ACTIVE_LOW )
5240 	PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Cabinet ) )	/* Only if simultaneous players = 1*/
5241 	PORT_DIPSETTING(      0x0000, DEF_STR( Upright ) )
5242 	PORT_DIPSETTING(      0x0008, DEF_STR( Cocktail ) )
5243 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
5244 	PORT_DIPSETTING(      0x0010, DEF_STR( 2C_1C ) )
5245 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_1C ) )
5246 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
5247 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_2C ) )
5248 	PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
5249 	PORT_DIPSETTING(      0x0040, DEF_STR( 2C_1C ) )
5250 	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_1C ) )
5251 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
5252 	PORT_DIPSETTING(      0x0080, DEF_STR( 1C_2C ) )
5253 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) )
5254 	PORT_DIPSETTING(      0x0300, "Normal"  )
5255 	PORT_DIPSETTING(      0x0200, "Easy"    )
5256 	PORT_DIPSETTING(      0x0100, "Hard"    )
5257 	PORT_DIPSETTING(      0x0000, "Hardest" )
5258 	PORT_DIPNAME( 0x0c00, 0x0000, DEF_STR( Bonus_Life ) )
5259 	PORT_DIPSETTING(      0x0c00, "Never" )
5260 	PORT_DIPSETTING(      0x0800, "500K Only" )
5261 	PORT_DIPSETTING(      0x0400, "1000K Only" )
5262 	PORT_DIPSETTING(      0x0000, "500K, Every 1500K" )
5263 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) )
5264 	PORT_DIPSETTING(      0x1000, "1" )
5265 	PORT_DIPSETTING(      0x0000, "2" )
5266 	PORT_DIPSETTING(      0x3000, "3" )
5267 	PORT_DIPSETTING(      0x2000, "5" )
5268 	PORT_DIPNAME( 0x8000, 0x8000, "Coinage Type" )	/* not supported*/
5269 	PORT_DIPSETTING(      0x8000, "1" )
5270 	PORT_DIPSETTING(      0x0000, "2" )
5271 INPUT_PORTS_END
5272 
5273 
5274 
5275 /***************************************************************************
5276 								Ultraman Club
5277 ***************************************************************************/
5278 
5279 INPUT_PORTS_START( umanclub )
5280 	PORT_START	/* IN0 - Player 1*/
5281 	JOY_TYPE1_2BUTTONS(1)
5282 
5283 	PORT_START	/* IN1 - Player 2*/
5284 	JOY_TYPE1_2BUTTONS(2)
5285 
5286 	PORT_START	/* IN2 - Coins*/
5287 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
5288 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
5289 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
5290 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
5291 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  )
5292 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN  )
5293 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
5294 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  )
5295 
5296 	PORT_START	/* IN3 - 2 DSWs*/
5297 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
5298 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
5299 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5300 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )
5301 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
5302 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
5303 	PORT_DIPNAME( 0x0004, 0x0004, "Unknown 2-2*" )	/*?*/
5304 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
5305 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5306 	PORT_BITX(    0x0008, 0x0008, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stage Select", IP_KEY_NONE, IP_JOY_NONE )
5307 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
5308 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5309 	PORT_DIPNAME( 0x0010, 0x0010, "Unknown 2-4" )
5310 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
5311 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5312 	PORT_DIPNAME( 0x0020, 0x0020, "Unknown 2-5" )
5313 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
5314 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5315 	PORT_DIPNAME( 0x0040, 0x0040, "Unknown 2-6" )
5316 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
5317 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5318 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
5319 
5320 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )
5321 	PORT_DIPSETTING(      0x0200, "1" )
5322 	PORT_DIPSETTING(      0x0300, "2" )
5323 	PORT_DIPSETTING(      0x0100, "3" )
5324 	PORT_DIPSETTING(      0x0000, "4" )
5325 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
5326 	PORT_DIPSETTING(      0x0800, "Easy"    )
5327 	PORT_DIPSETTING(      0x0c00, "Normal"  )
5328 	PORT_DIPSETTING(      0x0400, "Hard"    )
5329 	PORT_DIPSETTING(      0x0000, "Hardest" )
5330 	PORT_DIPNAME( 0xf000, 0xf000, DEF_STR( Coinage ) )
5331 	PORT_DIPSETTING(      0xa000, DEF_STR( 6C_1C ) )
5332 	PORT_DIPSETTING(      0xb000, DEF_STR( 5C_1C ) )
5333 	PORT_DIPSETTING(      0xc000, DEF_STR( 4C_1C ) )
5334 	PORT_DIPSETTING(      0xd000, DEF_STR( 3C_1C ) )
5335 	PORT_DIPSETTING(      0x1000, DEF_STR( 8C_3C ) )
5336 	PORT_DIPSETTING(      0xe000, DEF_STR( 2C_1C ) )
5337 	PORT_DIPSETTING(      0x2000, DEF_STR( 5C_3C ) )
5338 	PORT_DIPSETTING(      0x3000, DEF_STR( 3C_2C ) )
5339 	PORT_DIPSETTING(      0xf000, DEF_STR( 1C_1C ) )
5340 	PORT_DIPSETTING(      0x4000, DEF_STR( 2C_3C ) )
5341 	PORT_DIPSETTING(      0x9000, DEF_STR( 1C_2C ) )
5342 	PORT_DIPSETTING(      0x8000, DEF_STR( 1C_3C ) )
5343 	PORT_DIPSETTING(      0x7000, DEF_STR( 1C_4C ) )
5344 	PORT_DIPSETTING(      0x6000, DEF_STR( 1C_5C ) )
5345 	PORT_DIPSETTING(      0x5000, DEF_STR( 1C_6C ) )
5346 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
5347 INPUT_PORTS_END
5348 
5349 
5350 /***************************************************************************
5351 							Ultra Toukon Densetsu
5352 ***************************************************************************/
5353 
5354 INPUT_PORTS_START( utoukond )
5355 	PORT_START	/* IN0 - Player 1*/
5356 	JOY_TYPE1_3BUTTONS(1)
5357 
5358 	PORT_START	/* IN1 - Player 2*/
5359 	JOY_TYPE1_3BUTTONS(2)
5360 
5361 	PORT_START	/* IN2 - Coins*/
5362 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
5363 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
5364 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
5365 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN  )
5366 	/* These are NOT Dip Switches but jumpers */
5367 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) )
5368 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
5369 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5370 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) )
5371 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
5372 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5373 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )
5374 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
5375 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5376 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) )
5377 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
5378 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5379 
5380 	PORT_START	/* IN3 - 2 DSWs*/
5381 	PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_A ) )
5382 	PORT_DIPSETTING(      0x0002, DEF_STR( 4C_1C ) )
5383 	PORT_DIPSETTING(      0x0005, DEF_STR( 3C_1C ) )
5384 	PORT_DIPSETTING(      0x0008, DEF_STR( 2C_1C ) )
5385 	PORT_DIPSETTING(      0x0004, DEF_STR( 3C_2C ) )
5386 	PORT_DIPSETTING(      0x0001, DEF_STR( 4C_3C ) )
5387 	PORT_DIPSETTING(      0x000f, DEF_STR( 1C_1C ) )
5388 	PORT_DIPSETTING(      0x0003, DEF_STR( 3C_4C ) )
5389 	PORT_DIPSETTING(      0x0007, DEF_STR( 2C_3C ) )
5390 	PORT_DIPSETTING(      0x000e, DEF_STR( 1C_2C ) )
5391 	PORT_DIPSETTING(      0x0006, DEF_STR( 2C_5C ) )
5392 	PORT_DIPSETTING(      0x000d, DEF_STR( 1C_3C ) )
5393 	PORT_DIPSETTING(      0x000c, DEF_STR( 1C_4C ) )
5394 	PORT_DIPSETTING(      0x000b, DEF_STR( 1C_5C ) )
5395 	PORT_DIPSETTING(      0x000a, DEF_STR( 1C_6C ) )
5396 	PORT_DIPSETTING(      0x0009, DEF_STR( 1C_7C ) )
5397 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
5398 	PORT_DIPNAME( 0x00f0, 0x00f0, DEF_STR( Coin_B ) )
5399 	PORT_DIPSETTING(      0x0020, DEF_STR( 4C_1C ) )
5400 	PORT_DIPSETTING(      0x0050, DEF_STR( 3C_1C ) )
5401 	PORT_DIPSETTING(      0x0080, DEF_STR( 2C_1C ) )
5402 	PORT_DIPSETTING(      0x0000, DEF_STR( 5C_3C ) )
5403 	PORT_DIPSETTING(      0x0040, DEF_STR( 3C_2C ) )
5404 	PORT_DIPSETTING(      0x0010, DEF_STR( 4C_3C ) )
5405 	PORT_DIPSETTING(      0x00f0, DEF_STR( 1C_1C ) )
5406 	PORT_DIPSETTING(      0x0030, DEF_STR( 3C_4C ) )
5407 	PORT_DIPSETTING(      0x0070, DEF_STR( 2C_3C ) )
5408 	PORT_DIPSETTING(      0x00e0, DEF_STR( 1C_2C ) )
5409 	PORT_DIPSETTING(      0x0060, DEF_STR( 2C_5C ) )
5410 	PORT_DIPSETTING(      0x00d0, DEF_STR( 1C_3C ) )
5411 	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_4C ) )
5412 	PORT_DIPSETTING(      0x00b0, DEF_STR( 1C_5C ) )
5413 	PORT_DIPSETTING(      0x00a0, DEF_STR( 1C_6C ) )
5414 	PORT_DIPSETTING(      0x0090, DEF_STR( 1C_7C ) )
5415 
5416 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )
5417 	PORT_DIPSETTING(      0x0000, "1" )
5418 	PORT_DIPSETTING(      0x0200, "2" )
5419 	PORT_DIPSETTING(      0x0300, "3" )
5420 	PORT_DIPSETTING(      0x0100, "4" )
5421 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
5422 	PORT_DIPSETTING(      0x0800, "Easy" )
5423 	PORT_DIPSETTING(      0x0c00, "Normal" )
5424 	PORT_DIPSETTING(      0x0400, "Hard" )
5425 	PORT_DIPSETTING(      0x0000, "Hardest" )
5426 	PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Flip_Screen ) )
5427 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
5428 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5429 	PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Demo_Sounds ) )
5430 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
5431 	PORT_DIPSETTING(      0x2000, DEF_STR( On ) )
5432 	PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Bonus_Life ) )
5433 	PORT_DIPSETTING(      0x4000, "100k" )
5434 	PORT_DIPSETTING(      0x0000, "150k" )
5435 	PORT_SERVICE( 0x8000, IP_ACTIVE_LOW )
5436 INPUT_PORTS_END
5437 
5438 /***************************************************************************
5439 								U.S. Classic
5440 ***************************************************************************/
5441 
5442 #define TRACKBALL(_dir_) \
5443 	PORT_ANALOG( 0x0fff, 0x0000, IPT_TRACKBALL_##_dir_ | IPF_CENTER, 70, 30, 0, 0 )
5444 
5445 INPUT_PORTS_START( usclssic )
5446 	PORT_START	/* IN0*/
5447 	TRACKBALL(X)
5448 	PORT_BIT   ( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
5449 	PORT_BIT   ( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
5450 	PORT_BIT   ( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
5451 	PORT_BIT   ( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
5452 
5453 	PORT_START	/* IN1*/
5454 	TRACKBALL(Y)
5455 	PORT_BIT   ( 0x1000, IP_ACTIVE_LOW,  IPT_UNKNOWN )
5456 	PORT_BIT   ( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON1 )
5457 	PORT_BIT   ( 0x4000, IP_ACTIVE_HIGH, IPT_START1  )
5458 	PORT_BIT   ( 0x8000, IP_ACTIVE_LOW,  IPT_UNKNOWN )
5459 
5460 	PORT_START	/* IN2*/
5461 	PORT_BIT(  0x0001, IP_ACTIVE_LOW,  IPT_UNKNOWN  )	/* tested (sound related?)*/
5462 	PORT_BIT(  0x0002, IP_ACTIVE_LOW,  IPT_UNKNOWN  )
5463 	PORT_BIT(  0x0004, IP_ACTIVE_LOW,  IPT_UNKNOWN  )
5464 	PORT_BIT(  0x0008, IP_ACTIVE_LOW,  IPT_UNKNOWN  )
5465 	PORT_BIT_IMPULSE( 0x0010, IP_ACTIVE_HIGH, IPT_COIN1, 5 )
5466 	PORT_BIT_IMPULSE( 0x0020, IP_ACTIVE_HIGH, IPT_COIN2, 5 )
5467 	PORT_BIT(  0x0040, IP_ACTIVE_HIGH, IPT_SERVICE1 )
5468 	PORT_BIT(  0x0080, IP_ACTIVE_HIGH, IPT_TILT     )
5469 
5470 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
5471 	PORT_DIPNAME( 0x0001, 0x0001, "Credits For 9-Hole" )
5472 	PORT_DIPSETTING(      0x0001, "2" )
5473 	PORT_DIPSETTING(      0x0000, "3" )
5474 	PORT_DIPNAME( 0x0002, 0x0002, "Game Type" )
5475 	PORT_DIPSETTING(      0x0002, "Domestic" )
5476 	PORT_DIPSETTING(      0x0000, "Foreign" )
5477 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Lives ) )
5478 	PORT_DIPSETTING(      0x0004, "1" )
5479 	PORT_DIPSETTING(      0x0008, "2" )
5480 	PORT_DIPSETTING(      0x000c, "3" )
5481 	PORT_DIPSETTING(      0x0000, "4" )
5482 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
5483 	PORT_DIPSETTING(      0x0010, DEF_STR( 2C_1C ) )
5484 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_1C ) )
5485 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
5486 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_2C ) )
5487 	PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
5488 	PORT_DIPSETTING(      0x0040, DEF_STR( 2C_1C ) )
5489 	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_1C ) )
5490 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
5491 	PORT_DIPSETTING(      0x0080, DEF_STR( 1C_2C ) )
5492 
5493 	PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Cabinet ) )
5494 	PORT_DIPSETTING(      0x0000, DEF_STR( Upright ) )
5495 	PORT_DIPSETTING(      0x0100, DEF_STR( Cocktail ) )
5496 	PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) )
5497 	PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
5498 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5499 	PORT_SERVICE( 0x0400, IP_ACTIVE_LOW )
5500 	PORT_DIPNAME( 0x3800, 0x3800, "Flight Distance" )
5501 	PORT_DIPSETTING(      0x3800, "Normal" )
5502 	PORT_DIPSETTING(      0x3000, "-30 Yards" )
5503 	PORT_DIPSETTING(      0x2800, "+10 Yards" )
5504 	PORT_DIPSETTING(      0x2000, "+20 Yards" )
5505 	PORT_DIPSETTING(      0x1800, "+30 Yards" )
5506 	PORT_DIPSETTING(      0x1000, "+40 Yards" )
5507 	PORT_DIPSETTING(      0x0800, "+50 Yards" )
5508 	PORT_DIPSETTING(      0x0000, "+60 Yards" )
5509 	PORT_DIPNAME( 0xc000, 0xc000, "Licensed To"     )
5510 	PORT_DIPSETTING(      0xc000, "Romstar"       )
5511 	PORT_DIPSETTING(      0x8000, "None (Japan)"  )
5512 	PORT_DIPSETTING(      0x4000, "Taito"         )
5513 	PORT_DIPSETTING(      0x0000, "Taito America" )
5514 INPUT_PORTS_END
5515 
5516 
5517 
5518 /***************************************************************************
5519 								War of Aero
5520 ***************************************************************************/
5521 
5522 INPUT_PORTS_START( wrofaero )
5523 	PORT_START	/* IN0 - Player 1 - $400000.w*/
5524 	JOY_TYPE1_3BUTTONS(1)	/* 3rd button selects the weapon*/
5525 							/* when the dsw for cheating is on*/
5526 
5527 	PORT_START	/* IN1 - Player 2 - $400002.w*/
5528 	JOY_TYPE1_3BUTTONS(2)
5529 
5530 	PORT_START	/* IN2 - Coins - $400004.w*/
5531 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
5532 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
5533 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
5534 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
5535 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  )
5536 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN  )
5537 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
5538 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  )
5539 
5540 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
5541 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
5542 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
5543 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5544 	PORT_DIPNAME( 0x0002, 0x0002, "Unknown 1-1*" )	/* tested*/
5545 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
5546 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5547 	PORT_DIPNAME( 0x0004, 0x0004, "Unknown 1-2*" )	/* tested*/
5548 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
5549 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5550 	PORT_BITX(    0x0008, 0x0008, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stage & Weapon Select", IP_KEY_NONE, IP_JOY_NONE )	/* P2 Start Is Freeze Screen...*/
5551 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
5552 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5553 	PORT_DIPNAME( 0x0010, 0x0010, "Unknown 1-4" )
5554 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
5555 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5556 	PORT_DIPNAME( 0x0020, 0x0020, "Unknown 1-5" )
5557 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
5558 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5559 	PORT_DIPNAME( 0x0040, 0x0040, "Unknown 1-6" )
5560 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
5561 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5562 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
5563 
5564 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )
5565 	PORT_DIPSETTING(      0x0200, "2" )
5566 	PORT_DIPSETTING(      0x0300, "3" )
5567 	PORT_DIPSETTING(      0x0100, "4" )
5568 	PORT_DIPSETTING(      0x0000, "5" )
5569 	PORT_DIPNAME( 0x0c00, 0x0c00, "Unknown 2-2&3" )
5570 	PORT_DIPSETTING(      0x0800, "0" )
5571 	PORT_DIPSETTING(      0x0c00, "1" )
5572 	PORT_DIPSETTING(      0x0400, "2" )
5573 	PORT_DIPSETTING(      0x0000, "3" )
5574 	PORT_DIPNAME( 0xf000, 0xf000, DEF_STR( Coinage ) )
5575 	PORT_DIPSETTING(      0xa000, DEF_STR( 6C_1C ) )
5576 	PORT_DIPSETTING(      0xb000, DEF_STR( 5C_1C ) )
5577 	PORT_DIPSETTING(      0xc000, DEF_STR( 4C_1C ) )
5578 	PORT_DIPSETTING(      0xd000, DEF_STR( 3C_1C ) )
5579 	PORT_DIPSETTING(      0x1000, DEF_STR( 8C_3C ) )
5580 	PORT_DIPSETTING(      0xe000, DEF_STR( 2C_1C ) )
5581 	PORT_DIPSETTING(      0x2000, DEF_STR( 5C_3C ) )
5582 	PORT_DIPSETTING(      0x3000, DEF_STR( 3C_2C ) )
5583 	PORT_DIPSETTING(      0xf000, DEF_STR( 1C_1C ) )
5584 	PORT_DIPSETTING(      0x4000, DEF_STR( 2C_3C ) )
5585 	PORT_DIPSETTING(      0x9000, DEF_STR( 1C_2C ) )
5586 	PORT_DIPSETTING(      0x8000, DEF_STR( 1C_3C ) )
5587 	PORT_DIPSETTING(      0x7000, DEF_STR( 1C_4C ) )
5588 	PORT_DIPSETTING(      0x6000, DEF_STR( 1C_5C ) )
5589 	PORT_DIPSETTING(      0x5000, DEF_STR( 1C_6C ) )
5590 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
5591 INPUT_PORTS_END
5592 
5593 
5594 
5595 /***************************************************************************
5596 									Wit's
5597 ***************************************************************************/
5598 
5599 INPUT_PORTS_START( wits )
5600 	PORT_START	/* IN0 - Player 1*/
5601 	JOY_TYPE1_2BUTTONS(1)
5602 
5603 	PORT_START	/* IN1 - Player 2*/
5604 	JOY_TYPE1_2BUTTONS(2)
5605 
5606 	PORT_START	/* IN2 - Coins + DSW*/
5607 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
5608 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
5609 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
5610 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
5611 	PORT_DIPNAME( 0x0010, 0x0010, "Unknown 3-4*" )	/* Jumpers, I guess*/
5612 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
5613 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5614 	PORT_DIPNAME( 0x0020, 0x0020, "Unknown 3-5*" )
5615 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
5616 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5617 	PORT_DIPNAME( 0x00c0, 0x0040, "License" )
5618 	PORT_DIPSETTING(      0x00c0, "Romstar" )
5619 	PORT_DIPSETTING(      0x0080, "Seta U.S.A" )
5620 	PORT_DIPSETTING(      0x0040, "Visco (Japan Only)" )
5621 	PORT_DIPSETTING(      0x0000, "Athena (Japan Only)" )
5622 
5623 	PORT_START	/* IN3 - 2 DSWs - $600003 & 1.b*/
5624 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )
5625 	PORT_DIPSETTING(      0x0002, "Easy" )
5626 	PORT_DIPSETTING(      0x0003, "Normal" )
5627 	PORT_DIPSETTING(      0x0001, "Hard" )
5628 	PORT_DIPSETTING(      0x0000, "Hardest" )
5629 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Bonus_Life ) )
5630 	PORT_DIPSETTING(      0x0008, "150k, 350k" )
5631 	PORT_DIPSETTING(      0x000c, "200k, 500k" )
5632 	PORT_DIPSETTING(      0x0004, "300k, 600k" )
5633 	PORT_DIPSETTING(      0x0000, "400k" )
5634 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )
5635 	PORT_DIPSETTING(      0x0000, "1" )
5636 	PORT_DIPSETTING(      0x0010, "2" )
5637 	PORT_DIPSETTING(      0x0030, "3" )
5638 	PORT_DIPSETTING(      0x0020, "5" )
5639 	PORT_DIPNAME( 0x0040, 0x0000, "Max Players" )
5640 	PORT_DIPSETTING(      0x0040, "2" )
5641 	PORT_DIPSETTING(      0x0000, "4" )
5642 	PORT_DIPNAME( 0x0080, 0x0080, "Unknown 1-7*" )
5643 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
5644 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5645 
5646 	PORT_DIPNAME( 0x0100, 0x0100, "Unknown 2-0" )
5647 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
5648 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5649 	PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) )
5650 	PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
5651 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5652 	PORT_DIPNAME( 0x0400, 0x0400, "Unknown 2-2*" )
5653 	PORT_DIPSETTING(      0x0400, DEF_STR( Off ) )
5654 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5655 	PORT_SERVICE( 0x0800, IP_ACTIVE_LOW )
5656 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Coin_A ) )
5657 	PORT_DIPSETTING(      0x0000, DEF_STR( 4C_1C ) )
5658 	PORT_DIPSETTING(      0x1000, DEF_STR( 3C_1C ) )
5659 	PORT_DIPSETTING(      0x2000, DEF_STR( 2C_1C ) )
5660 	PORT_DIPSETTING(      0x3000, DEF_STR( 1C_1C ) )
5661 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Coin_B ) )
5662 	PORT_DIPSETTING(      0xc000, DEF_STR( 1C_2C ) )
5663 	PORT_DIPSETTING(      0x8000, DEF_STR( 1C_3C ) )
5664 	PORT_DIPSETTING(      0x4000, DEF_STR( 1C_4C ) )
5665 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
5666 
5667 	PORT_START	/* IN4 - Player 3*/
5668 	JOY_TYPE1_2BUTTONS(3)
5669 
5670 	PORT_START	/* IN5 - Player 4*/
5671 	JOY_TYPE1_2BUTTONS(4)
5672 INPUT_PORTS_END
5673 
5674 
5675 /***************************************************************************
5676 								Zing Zing Zip
5677 ***************************************************************************/
5678 
5679 INPUT_PORTS_START( zingzip )
5680 	PORT_START	/* IN0 - Player 1 - $400000.w*/
5681 	JOY_TYPE1_2BUTTONS(1)
5682 
5683 	PORT_START	/* IN1 - Player 2 - $400002.w*/
5684 	JOY_TYPE1_2BUTTONS(2)
5685 
5686 	PORT_START	/* IN2 - Coins - $400004.w*/
5687 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
5688 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN  ) /* no coin 2*/
5689 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
5690 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
5691 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  )
5692 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN  )
5693 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
5694 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  )
5695 
5696 	PORT_START	/* IN3 - 2 DSWs - $600001 & 3.b*/
5697 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
5698 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
5699 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5700 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )
5701 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
5702 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
5703 	PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) )
5704 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
5705 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5706 	PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unused ) )
5707 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
5708 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5709 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) )
5710 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
5711 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5712 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) )
5713 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
5714 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5715 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )
5716 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
5717 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
5718 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
5719 
5720 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )
5721 	PORT_DIPSETTING(      0x0200, "2" )
5722 	PORT_DIPSETTING(      0x0300, "3" )
5723 	PORT_DIPSETTING(      0x0100, "4" )
5724 	PORT_DIPSETTING(      0x0000, "5" )
5725 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
5726 	PORT_DIPSETTING(      0x0800, "Easy"    )
5727 	PORT_DIPSETTING(      0x0c00, "Normal"  )
5728 	PORT_DIPSETTING(      0x0400, "Hard"    )
5729 	PORT_DIPSETTING(      0x0000, "Hardest" )
5730 	PORT_DIPNAME( 0xf000, 0xf000, DEF_STR( Coinage ) )
5731 	PORT_DIPSETTING(      0xa000, DEF_STR( 6C_1C ) )
5732 	PORT_DIPSETTING(      0xb000, DEF_STR( 5C_1C ) )
5733 	PORT_DIPSETTING(      0xc000, DEF_STR( 4C_1C ) )
5734 	PORT_DIPSETTING(      0xd000, DEF_STR( 3C_1C ) )
5735 	PORT_DIPSETTING(      0x1000, DEF_STR( 8C_3C ) )
5736 	PORT_DIPSETTING(      0xe000, DEF_STR( 2C_1C ) )
5737 	PORT_DIPSETTING(      0x2000, DEF_STR( 5C_3C ) )
5738 	PORT_DIPSETTING(      0x3000, DEF_STR( 3C_2C ) )
5739 	PORT_DIPSETTING(      0xf000, DEF_STR( 1C_1C ) )
5740 	PORT_DIPSETTING(      0x4000, DEF_STR( 2C_3C ) )
5741 	PORT_DIPSETTING(      0x9000, DEF_STR( 1C_2C ) )
5742 	PORT_DIPSETTING(      0x8000, DEF_STR( 1C_3C ) )
5743 	PORT_DIPSETTING(      0x7000, DEF_STR( 1C_4C ) )
5744 	PORT_DIPSETTING(      0x6000, DEF_STR( 1C_5C ) )
5745 	PORT_DIPSETTING(      0x5000, DEF_STR( 1C_6C ) )
5746 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
5747 INPUT_PORTS_END
5748 
5749 
5750 /***************************************************************************
5751 
5752 
5753 								Graphics Layouts
5754 
5755 Sprites and layers use 16x16 tile, made of four 8x8 tiles. They can be 4
5756 or 6 planes deep and are stored in a wealth of formats.
5757 
5758 ***************************************************************************/
5759 
5760 						/* First the 4 bit tiles */
5761 
5762 
5763 /* The bitplanes are packed togheter */
5764 static struct GfxLayout layout_packed =
5765 {
5766 	16,16,
5767 	RGN_FRAC(1,1),
5768 	4,
5769 	{2*4,3*4,0*4,1*4},
5770 	{256+128,256+129,256+130,256+131, 256+0,256+1,256+2,256+3,
5771 	 128,129,130,131, 0,1,2,3},
5772 	{0*16,1*16,2*16,3*16,4*16,5*16,6*16,7*16,
5773 	 32*16,33*16,34*16,35*16,36*16,37*16,38*16,39*16},
5774 	16*16*4
5775 };
5776 
5777 
5778 /* The bitplanes are separated (but there are 2 per rom) */
5779 static struct GfxLayout layout_planes_2roms =
5780 {
5781 	16,16,
5782 	RGN_FRAC(1,2),
5783 	4,
5784 	{RGN_FRAC(1,2)+8, RGN_FRAC(1,2)+0, 8, 0},
5785 	{0,1,2,3,4,5,6,7, 128,129,130,131,132,133,134,135},
5786 	{0*16,1*16,2*16,3*16,4*16,5*16,6*16,7*16,
5787 	 16*16,17*16,18*16,19*16,20*16,21*16,22*16,23*16 },
5788 	16*16*2
5789 };
5790 
5791 
5792 /* The bitplanes are separated (but there are 2 per rom).
5793    Each 8x8 tile is additionally split in 2 vertical halves four bits wide,
5794    stored one after the other */
5795 static struct GfxLayout layout_planes_2roms_split =
5796 {
5797 	16,16,
5798 	RGN_FRAC(1,2),
5799 	4,
5800 	{0,4, RGN_FRAC(1,2)+0,RGN_FRAC(1,2)+4},
5801 	{128+64,128+65,128+66,128+67, 128+0,128+1,128+2,128+3,
5802 	 8*8+0,8*8+1,8*8+2,8*8+3, 0,1,2,3},
5803 	{0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8,
5804 	 32*8,33*8,34*8,35*8,36*8,37*8,38*8,39*8},
5805 	16*16*2
5806 };
5807 
5808 
5809 
5810 
5811 						/* Then the 6 bit tiles */
5812 
5813 
5814 /* The bitplanes are packed together: 3 roms with 2 bits in each */
5815 static struct GfxLayout layout_packed_6bits_3roms =
5816 {
5817 	16,16,
5818 	RGN_FRAC(1,3),
5819 	6,
5820 	{RGN_FRAC(0,3)+0,RGN_FRAC(0,3)+4,  RGN_FRAC(1,3)+0,RGN_FRAC(1,3)+4,  RGN_FRAC(2,3)+0,RGN_FRAC(2,3)+4},
5821 	{128+64,128+65,128+66,128+67, 128+0,128+1,128+2,128+3,
5822 	 64,65,66,67, 0,1,2,3},
5823 	{0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8,
5824 	 32*8,33*8,34*8,35*8,36*8,37*8,38*8,39*8},
5825 	16*16*2
5826 };
5827 
5828 
5829 /* The bitplanes are packed togheter: 4 bits in one rom, 2 bits in another.
5830    Since there isn't simmetry between the two roms, we load the latter with
5831    ROM_LOAD16_BYTE. This way we can think of it as a 4 planes rom, with the
5832    upper 2 planes unused.	 */
5833 
5834 static struct GfxLayout layout_packed_6bits_2roms =
5835 {
5836 	16,16,
5837 	RGN_FRAC(1,2),
5838 	6,
5839 	{RGN_FRAC(1,2)+0*4, RGN_FRAC(1,2)+1*4, 2*4,3*4,0*4,1*4},
5840 	{256+128,256+129,256+130,256+131, 256+0,256+1,256+2,256+3,
5841 	 128,129,130,131, 0,1,2,3},
5842 	{0*16,1*16,2*16,3*16,4*16,5*16,6*16,7*16,
5843 	 32*16,33*16,34*16,35*16,36*16,37*16,38*16,39*16},
5844 	16*16*4
5845 };
5846 
5847 
5848 
5849 /***************************************************************************
5850 								Blandia
5851 ***************************************************************************/
5852 
5853 static struct GfxDecodeInfo blandia_gfxdecodeinfo[] =
5854 {
5855 	{ REGION_GFX1, 0, &layout_planes_2roms,       0,           32 }, /* [0] Sprites*/
5856 	{ REGION_GFX2, 0, &layout_packed_6bits_3roms, 16*32+64*32, 32 }, /* [1] Layer 1*/
5857 	{ REGION_GFX3, 0, &layout_packed_6bits_3roms, 16*32,       32 }, /* [2] Layer 2*/
5858 	{ -1 }
5859 };
5860 
5861 /***************************************************************************
5862 								DownTown
5863 ***************************************************************************/
5864 
5865 static struct GfxDecodeInfo downtown_gfxdecodeinfo[] =
5866 {
5867 	{ REGION_GFX1, 0, &layout_planes_2roms,       512*0, 32 }, /* [0] Sprites*/
5868 	{ REGION_GFX2, 0, &layout_planes_2roms_split, 512*0, 32 }, /* [1] Layer 1*/
5869 	{ -1 }
5870 };
5871 
5872 /***************************************************************************
5873 								J.J.Squawkers
5874 ***************************************************************************/
5875 
5876 static struct GfxDecodeInfo jjsquawk_gfxdecodeinfo[] =
5877 {
5878 	{ REGION_GFX1, 0, &layout_planes_2roms,       0,             32 }, /* [0] Sprites*/
5879 	{ REGION_GFX2, 0, &layout_packed_6bits_2roms, 512 + 64*32*0, 32 }, /* [1] Layer 1*/
5880 	{ REGION_GFX3, 0, &layout_packed_6bits_2roms, 512 + 64*32*1, 32 }, /* [2] Layer 2*/
5881 	{ -1 }
5882 };
5883 
5884 /***************************************************************************
5885 							Mobile Suit Gundam
5886 ***************************************************************************/
5887 
5888 static struct GfxDecodeInfo msgundam_gfxdecodeinfo[] =
5889 {
5890 	{ REGION_GFX1, 0, &layout_planes_2roms, 512*0, 32 }, /* [0] Sprites*/
5891 	{ REGION_GFX2, 0, &layout_packed,       512*2, 32 }, /* [1] Layer 1*/
5892 	{ REGION_GFX3, 0, &layout_packed,       512*1, 32 }, /* [2] Layer 2*/
5893 	{ -1 }
5894 };
5895 
5896 /***************************************************************************
5897 								Quiz Kokology 2
5898 ***************************************************************************/
5899 
5900 static struct GfxDecodeInfo qzkklgy2_gfxdecodeinfo[] =
5901 {
5902 	{ REGION_GFX1, 0, &layout_planes_2roms,	512*0, 32 }, /* [0] Sprites*/
5903 	{ REGION_GFX2, 0, &layout_packed, 		512*0, 32 }, /* [1] Layer 1*/
5904 	{ -1 }
5905 };
5906 
5907 /***************************************************************************
5908 								Thundercade
5909 ***************************************************************************/
5910 
5911 static struct GfxDecodeInfo tndrcade_gfxdecodeinfo[] =
5912 {
5913 	{ REGION_GFX1, 0, &layout_planes_2roms, 512*0, 32 }, /* [0] Sprites*/
5914 	{ -1 }
5915 };
5916 
5917 /***************************************************************************
5918 								U.S. Classic
5919 ***************************************************************************/
5920 
5921 /* 6 bit layer. The colors are still WRONG.
5922    Remember there's a vh_init_palette function */
5923 
5924 static struct GfxDecodeInfo usclssic_gfxdecodeinfo[] =
5925 {
5926 	{ REGION_GFX1, 0, &layout_planes_2roms,       512*0+256, 32/2 }, /* [0] Sprites*/
5927 	{ REGION_GFX2, 0, &layout_packed_6bits_3roms, 512*1, 32 }, /* [1] Layer 1*/
5928 	{ -1 }
5929 };
5930 
5931 /***************************************************************************
5932 								Zing Zing Zip
5933 ***************************************************************************/
5934 
5935 static struct GfxDecodeInfo zingzip_gfxdecodeinfo[] =
5936 {
5937 	{ REGION_GFX1, 0, &layout_planes_2roms,       512*0, 32 }, /* [0] Sprites*/
5938 	{ REGION_GFX2, 0, &layout_packed_6bits_2roms, 512*2, 32 }, /* [1] Layer 1*/
5939 	{ REGION_GFX3, 0, &layout_packed,             512*1, 32 }, /* [2] Layer 2*/
5940 	{ -1 }
5941 };
5942 
5943 
5944 
5945 
5946 
5947 
5948 
5949 
5950 
5951 
5952 /***************************************************************************
5953 
5954 								Machine drivers
5955 
5956 ***************************************************************************/
5957 
5958 #define SETA_INTERRUPTS_NUM 2
5959 
INTERRUPT_GEN(seta_interrupt_1_and_2)5960 static INTERRUPT_GEN( seta_interrupt_1_and_2 )
5961 {
5962 	switch (cpu_getiloops())
5963 	{
5964 		case 0:		cpu_set_irq_line(0, 1, HOLD_LINE);	break;
5965 		case 1:		cpu_set_irq_line(0, 2, HOLD_LINE);	break;
5966 	}
5967 }
5968 
INTERRUPT_GEN(seta_interrupt_2_and_4)5969 static INTERRUPT_GEN( seta_interrupt_2_and_4 )
5970 {
5971 	switch (cpu_getiloops())
5972 	{
5973 		case 0:		cpu_set_irq_line(0, 2, HOLD_LINE);	break;
5974 		case 1:		cpu_set_irq_line(0, 4, HOLD_LINE);	break;
5975 	}
5976 }
5977 
5978 
5979 #define SETA_SUB_INTERRUPTS_NUM 2
5980 
INTERRUPT_GEN(seta_sub_interrupt)5981 static INTERRUPT_GEN( seta_sub_interrupt )
5982 {
5983 	switch (cpu_getiloops())
5984 	{
5985 		case 0:		cpu_set_irq_line(1, IRQ_LINE_NMI, PULSE_LINE);	break;
5986 		case 1:		cpu_set_irq_line(1, 0, HOLD_LINE);				break;
5987 	}
5988 }
5989 
5990 
5991 /***************************************************************************
5992 								Thundercade
5993 ***************************************************************************/
5994 
5995 static struct YM2203interface tndrcade_ym2203_interface =
5996 {
5997 	1,
5998 	2000000,		/* ? */
5999 	{ YM2203_VOL(35,35) },
6000 	{ dsw1_r },		/* input A: DSW 1 */
6001 	{ dsw2_r },		/* input B: DSW 2 */
6002 	{ 0 },
6003 	{ 0 },
6004 	{ NULL }
6005 };
6006 
6007 static struct YM3812interface ym3812_interface =
6008 {
6009 	1,
6010 	4000000,	/* ? */
6011 	{ 100,100 },	/* mixing level */
6012 	{ NULL },
6013 };
6014 
6015 
6016 #define TNDRCADE_SUB_INTERRUPTS_NUM	32	/* 16 IRQ, 1 NMI */
INTERRUPT_GEN(tndrcade_sub_interrupt)6017 static INTERRUPT_GEN( tndrcade_sub_interrupt )
6018 {
6019 	if (cpu_getiloops() & 1)
6020 		cpu_set_irq_line(1, 0, HOLD_LINE);
6021 	else if (cpu_getiloops() == 0)
6022 		cpu_set_irq_line(1, IRQ_LINE_NMI, PULSE_LINE);
6023 }
6024 
6025 static MACHINE_DRIVER_START( tndrcade )
6026 
6027 	/* basic machine hardware */
6028 	MDRV_CPU_ADD(M68000, 16000000/2)
MDRV_CPU_MEMORY(tndrcade_readmem,tndrcade_writemem)6029 	MDRV_CPU_MEMORY(tndrcade_readmem,tndrcade_writemem)
6030 	MDRV_CPU_VBLANK_INT(irq2_line_hold,1)
6031 
6032 	MDRV_CPU_ADD(M65C02, 2000000)	/* ?? */
6033 	MDRV_CPU_MEMORY(tndrcade_sub_readmem,tndrcade_sub_writemem)
6034 	MDRV_CPU_VBLANK_INT(tndrcade_sub_interrupt,TNDRCADE_SUB_INTERRUPTS_NUM)
6035 
6036 	MDRV_FRAMES_PER_SECOND(60)
6037 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6038 
6039 	/* video hardware */
6040 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6041 	MDRV_SCREEN_SIZE(64*8, 32*8)
6042 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
6043 	MDRV_GFXDECODE(tndrcade_gfxdecodeinfo)
6044 	MDRV_PALETTE_LENGTH(512)	/* sprites only */
6045 
6046 	MDRV_VIDEO_START(seta_no_layers)
6047 	MDRV_VIDEO_UPDATE(seta_no_layers) /* just draw the sprites */
6048 
6049 	/* sound hardware */
6050 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6051 	MDRV_SOUND_ADD(YM2203, tndrcade_ym2203_interface)
6052 	MDRV_SOUND_ADD(YM3812, ym3812_interface)
6053 MACHINE_DRIVER_END
6054 
6055 
6056 
6057 /***************************************************************************
6058 								Twin Eagle
6059 ***************************************************************************/
6060 
6061 /* Just like metafox, but:
6062    the sub cpu reads the ip at different locations,
6063    the visible area seems different. */
6064 
6065 /* twineagl lev 3 = lev 2 + lev 1 ! */
6066 
6067 static MACHINE_DRIVER_START( twineagl )
6068 
6069 	/* basic machine hardware */
6070 	MDRV_CPU_ADD(M68000, 16000000/2)
6071 	MDRV_CPU_MEMORY(downtown_readmem,downtown_writemem)
6072 	MDRV_CPU_VBLANK_INT(irq3_line_hold,1)
6073 
6074 	MDRV_CPU_ADD(M65C02, 1000000)	/* ?? */
6075 	MDRV_CPU_MEMORY(twineagl_sub_readmem,twineagl_sub_writemem)
6076 	MDRV_CPU_VBLANK_INT(seta_sub_interrupt,SETA_SUB_INTERRUPTS_NUM)
6077 
6078 	MDRV_FRAMES_PER_SECOND(60)
6079 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6080 
6081 	/* video hardware */
6082 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6083 	MDRV_SCREEN_SIZE(64*8, 32*8)
6084 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
6085 	MDRV_GFXDECODE(downtown_gfxdecodeinfo)
6086 	MDRV_PALETTE_LENGTH(512)
6087 
6088 	MDRV_VIDEO_START(twineagl_1_layer)
6089 	MDRV_VIDEO_UPDATE(seta)
6090 
6091 	/* sound hardware */
6092 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6093 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
6094 MACHINE_DRIVER_END
6095 
6096 
6097 
6098 /***************************************************************************
6099 								DownTown
6100 ***************************************************************************/
6101 
6102 /* downtown lev 3 = lev 2 + lev 1 ! */
6103 
6104 static MACHINE_DRIVER_START( downtown )
6105 
6106 	/* basic machine hardware */
6107 	MDRV_CPU_ADD(M68000, 16000000/2)
6108 	MDRV_CPU_MEMORY(downtown_readmem,downtown_writemem)
6109 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
6110 
6111 	MDRV_CPU_ADD(M65C02, 1000000)	/* ?? */
6112 	MDRV_CPU_MEMORY(downtown_sub_readmem,downtown_sub_writemem)
6113 	MDRV_CPU_VBLANK_INT(seta_sub_interrupt,SETA_SUB_INTERRUPTS_NUM)
6114 
6115 	MDRV_FRAMES_PER_SECOND(60)
6116 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6117 
6118 	/* video hardware */
6119 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6120 	MDRV_SCREEN_SIZE(64*8, 32*8)
6121 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
6122 	MDRV_GFXDECODE(downtown_gfxdecodeinfo)
6123 	MDRV_PALETTE_LENGTH(512)
6124 
6125 	MDRV_VIDEO_START(seta_1_layer)
6126 	MDRV_VIDEO_UPDATE(seta)
6127 
6128 	/* sound hardware */
6129 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6130 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_8MHz)
6131 MACHINE_DRIVER_END
6132 
6133 
6134 
6135 /***************************************************************************
6136 								U.S. Classic
6137 ***************************************************************************/
6138 
6139 
6140 /*	usclssic lev 6 = lev 2+4 !
6141 	Test mode shows a 16ms and 4ms counters. I wonder if every game has
6142 	5 ints per frame
6143 */
6144 
6145 #define calibr50_INTERRUPTS_NUM (4+1)
6146 INTERRUPT_GEN( calibr50_interrupt )
6147 {
6148 	switch (cpu_getiloops())
6149 	{
6150 		case 0:
6151 		case 1:
6152 		case 2:
6153 		case 3:		cpu_set_irq_line(0, 4, HOLD_LINE);	break;
6154 		case 4:		cpu_set_irq_line(0, 2, HOLD_LINE);	break;
6155 	}
6156 }
6157 
6158 
6159 static MACHINE_DRIVER_START( usclssic )
6160 
6161 	/* basic machine hardware */
6162 	MDRV_CPU_ADD(M68000, 16000000/2)
MDRV_CPU_MEMORY(usclssic_readmem,usclssic_writemem)6163 	MDRV_CPU_MEMORY(usclssic_readmem,usclssic_writemem)
6164 	MDRV_CPU_VBLANK_INT(calibr50_interrupt,calibr50_INTERRUPTS_NUM)
6165 
6166 	MDRV_CPU_ADD(M65C02, 1000000)	/* ?? */
6167 	MDRV_CPU_MEMORY(calibr50_sub_readmem,calibr50_sub_writemem)
6168 	MDRV_CPU_VBLANK_INT(irq0_line_hold,1)	/* NMI caused by main cpu when writing to the sound latch */
6169 
6170 	MDRV_FRAMES_PER_SECOND(60)
6171 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6172 
6173 	/* video hardware */
6174 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6175 	MDRV_SCREEN_SIZE(64*8, 32*8)
6176 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
6177 	MDRV_GFXDECODE(usclssic_gfxdecodeinfo)
6178 	MDRV_PALETTE_LENGTH(16*32)
6179 	MDRV_COLORTABLE_LENGTH(16*32 + 64*32)		/* sprites, layer */
6180 
6181 	MDRV_PALETTE_INIT(usclssic)	/* layer is 6 planes deep */
6182 	MDRV_VIDEO_START(seta_1_layer)
6183 	MDRV_VIDEO_UPDATE(seta)
6184 
6185 	/* sound hardware */
6186 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6187 	MDRV_SOUND_ADD( X1_010, seta_sound_intf_16MHz2 )
6188 MACHINE_DRIVER_END
6189 
6190 
6191 /***************************************************************************
6192 								Caliber 50
6193 ***************************************************************************/
6194 
6195 /*	calibr50 lev 6 = lev 2 + lev 4 !
6196              lev 3 = lev 2 + lev 1 !
6197 	Test mode shows a 16ms and 4ms counters. I wonder if every game has
6198 	5 ints per frame */
6199 
6200 static MACHINE_DRIVER_START( calibr50 )
6201 
6202 	/* basic machine hardware */
6203 	MDRV_CPU_ADD(M68000, 16000000/2)
6204 	MDRV_CPU_MEMORY(calibr50_readmem,calibr50_writemem)
6205 	MDRV_CPU_VBLANK_INT(calibr50_interrupt,calibr50_INTERRUPTS_NUM)
6206 
6207 	MDRV_CPU_ADD(M65C02, 2000000)	/* ?? */
6208 	MDRV_CPU_MEMORY(calibr50_sub_readmem,calibr50_sub_writemem)
6209 	MDRV_CPU_VBLANK_INT(irq0_line_hold,4)	/* IRQ: 4/frame
6210 							   NMI: when the 68k writes the sound latch */
6211 	MDRV_FRAMES_PER_SECOND(60)
6212 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6213 
6214 	/* video hardware */
6215 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6216 	MDRV_SCREEN_SIZE(64*8, 32*8)
6217 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
6218 	MDRV_GFXDECODE(downtown_gfxdecodeinfo)
6219 	MDRV_PALETTE_LENGTH(512)
6220 
6221 	MDRV_VIDEO_START(seta_1_layer)
6222 	MDRV_VIDEO_UPDATE(seta)
6223 
6224 	/* sound hardware */
6225 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6226 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz2)
6227 MACHINE_DRIVER_END
6228 
6229 
6230 /***************************************************************************
6231 								Meta Fox
6232 ***************************************************************************/
6233 
6234 /* metafox lev 3 = lev 2 + lev 1 ! */
6235 
6236 static MACHINE_DRIVER_START( metafox )
6237 
6238 	/* basic machine hardware */
6239 	MDRV_CPU_ADD(M68000, 16000000/2)
6240 	MDRV_CPU_MEMORY(downtown_readmem,downtown_writemem)
6241 	MDRV_CPU_VBLANK_INT(irq3_line_hold,1)
6242 
6243 	MDRV_CPU_ADD(M65C02, 1000000)	/* ?? */
6244 	MDRV_CPU_MEMORY(metafox_sub_readmem,metafox_sub_writemem)
6245 	MDRV_CPU_VBLANK_INT(seta_sub_interrupt,SETA_SUB_INTERRUPTS_NUM)
6246 
6247 	MDRV_FRAMES_PER_SECOND(60)
6248 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6249 
6250 	/* video hardware */
6251 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6252 	MDRV_SCREEN_SIZE(64*8, 32*8)
6253 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
6254 	MDRV_GFXDECODE(downtown_gfxdecodeinfo)
6255 	MDRV_PALETTE_LENGTH(512)
6256 
6257 	MDRV_VIDEO_START(seta_1_layer)
6258 	MDRV_VIDEO_UPDATE(seta)
6259 
6260 	/* sound hardware */
6261 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6262 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
6263 MACHINE_DRIVER_END
6264 
6265 
6266 
6267 
6268 
6269 
6270 /***************************************************************************
6271 								Athena no Hatena?
6272 ***************************************************************************/
6273 
6274 static MACHINE_DRIVER_START( atehate )
6275 
6276 	/* basic machine hardware */
6277 	MDRV_CPU_ADD(M68000, 16000000)
6278 	MDRV_CPU_MEMORY(atehate_readmem,atehate_writemem)
6279 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
6280 
6281 	MDRV_FRAMES_PER_SECOND(60)
6282 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6283 
6284 	/* video hardware */
6285 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6286 	MDRV_SCREEN_SIZE(64*8, 32*8)
6287 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
6288 	MDRV_GFXDECODE(tndrcade_gfxdecodeinfo)
6289 	MDRV_PALETTE_LENGTH(512)	/* sprites only */
6290 
6291 	MDRV_VIDEO_START(seta_no_layers)
6292 	MDRV_VIDEO_UPDATE(seta_no_layers) /* just draw the sprites */
6293 
6294 	/* sound hardware */
6295 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6296 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
6297 MACHINE_DRIVER_END
6298 
6299 
6300 /***************************************************************************
6301 								Blandia
6302 ***************************************************************************/
6303 
6304 /*
6305 	Similar to wrofaero, but the layers are 6 planes deep (and
6306 	the pens are strangely mapped to palette entries) + the
6307 	samples are bankswitched
6308 */
6309 
6310 static MACHINE_DRIVER_START( blandia )
6311 
6312 	/* basic machine hardware */
6313 	MDRV_CPU_ADD(M68000, 16000000)
6314 	MDRV_CPU_MEMORY(blandia_readmem,blandia_writemem)
6315 
6316 	MDRV_CPU_VBLANK_INT(seta_interrupt_2_and_4,SETA_INTERRUPTS_NUM)
6317 
6318 	MDRV_FRAMES_PER_SECOND(60)
6319 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6320 
6321 	/* video hardware */
6322 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6323 	MDRV_SCREEN_SIZE(64*8, 32*8)
6324 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
6325 	MDRV_GFXDECODE(blandia_gfxdecodeinfo)
6326 	MDRV_PALETTE_LENGTH(16*32+16*32+16*32)
6327 	MDRV_COLORTABLE_LENGTH(16*32+64*32+64*32)	/* sprites, layer1, layer2 */
6328 
6329 	MDRV_PALETTE_INIT(blandia)				/* layers 1&2 are 6 planes deep */
6330 	MDRV_VIDEO_START(seta_2_layers)
6331 	MDRV_VIDEO_EOF(seta_buffer_sprites)		/* Blandia uses sprite buffering */
6332 	MDRV_VIDEO_UPDATE(seta)
6333 
6334 	/* sound hardware */
6335 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6336 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
6337 MACHINE_DRIVER_END
6338 
6339 static MACHINE_DRIVER_START( blandiap )
6340 
6341 	/* basic machine hardware */
6342 	MDRV_CPU_ADD(M68000, 16000000)
6343 	MDRV_CPU_MEMORY(blandiap_readmem,blandiap_writemem)
6344 	MDRV_CPU_VBLANK_INT(seta_interrupt_2_and_4,SETA_INTERRUPTS_NUM)
6345 
6346 	MDRV_FRAMES_PER_SECOND(60)
6347 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6348 
6349 	/* video hardware */
6350 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6351 	MDRV_SCREEN_SIZE(64*8, 32*8)
6352 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
6353 	MDRV_GFXDECODE(blandia_gfxdecodeinfo)
6354 	MDRV_PALETTE_LENGTH(16*32+16*32+16*32)
6355 	MDRV_COLORTABLE_LENGTH(16*32+64*32+64*32)	/* sprites, layer1, layer2 */
6356 
6357 	MDRV_PALETTE_INIT(blandia)				/* layers 1&2 are 6 planes deep */
6358 	MDRV_VIDEO_START(seta_2_layers)
6359 	MDRV_VIDEO_EOF(seta_buffer_sprites)		/* Blandia uses sprite buffering */
6360 	MDRV_VIDEO_UPDATE(seta)
6361 
6362 	/* sound hardware */
6363 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6364 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
6365 MACHINE_DRIVER_END
6366 
6367 
6368 /***************************************************************************
6369 								Block Carnival
6370 ***************************************************************************/
6371 
6372 static MACHINE_DRIVER_START( blockcar )
6373 
6374 	/* basic machine hardware */
6375 	MDRV_CPU_ADD(M68000, 8000000)
6376 	MDRV_CPU_MEMORY(blockcar_readmem,blockcar_writemem)
6377 	MDRV_CPU_VBLANK_INT(irq3_line_hold,1)
6378 
6379 	MDRV_FRAMES_PER_SECOND(60)
6380 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6381 
6382 	/* video hardware */
6383 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6384 	MDRV_SCREEN_SIZE(64*8, 32*8)
6385 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
6386 	MDRV_GFXDECODE(tndrcade_gfxdecodeinfo)
6387 	MDRV_PALETTE_LENGTH(512)	/* sprites only */
6388 
6389 	MDRV_VIDEO_START(seta_no_layers)
6390 	MDRV_VIDEO_UPDATE(seta_no_layers) /* just draw the sprites */
6391 
6392 	/* sound hardware */
6393 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6394 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
6395 MACHINE_DRIVER_END
6396 
6397 
6398 /***************************************************************************
6399 								Daioh
6400 ***************************************************************************/
6401 
6402 static MACHINE_DRIVER_START( daioh )
6403 
6404 	/* basic machine hardware */
6405 	MDRV_CPU_ADD(M68000, 16000000)
6406 	MDRV_CPU_MEMORY(daioh_readmem,daioh_writemem)
6407 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
6408 
6409 	MDRV_FRAMES_PER_SECOND(60)
6410 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6411 
6412 	/* video hardware */
6413 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6414 	MDRV_SCREEN_SIZE(64*8, 32*8)
6415 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
6416 	MDRV_GFXDECODE(msgundam_gfxdecodeinfo)
6417 	MDRV_PALETTE_LENGTH(512 * 3)	/* sprites, layer1, layer2 */
6418 
6419 	MDRV_VIDEO_START(seta_2_layers)
6420 	MDRV_VIDEO_UPDATE(seta)
6421 
6422 	/* sound hardware */
6423 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6424 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
6425 MACHINE_DRIVER_END
6426 
6427 /***************************************************************************
6428 				Dragon Unit, Quiz Kokology, Strike Gunner
6429 ***************************************************************************/
6430 
6431 /*
6432 	drgnunit,qzkklogy,stg:
6433 	lev 1 == lev 3 (writes to $500000, bit 4 -> 1 then 0)
6434 	lev 2 drives the game
6435 */
6436 
6437 static MACHINE_DRIVER_START( drgnunit )
6438 
6439 	/* basic machine hardware */
6440 	MDRV_CPU_ADD(M68000, 8000000)
6441 	MDRV_CPU_MEMORY(drgnunit_readmem,drgnunit_writemem)
6442 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
6443 
6444 	MDRV_FRAMES_PER_SECOND(60)
6445 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6446 
6447 	/* video hardware */
6448 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6449 	MDRV_SCREEN_SIZE(64*8, 32*8)
6450 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
6451 	MDRV_GFXDECODE(downtown_gfxdecodeinfo)
6452 	MDRV_PALETTE_LENGTH(512)
6453 
6454 	MDRV_VIDEO_START(seta_1_layer)
6455 	MDRV_VIDEO_EOF(seta_buffer_sprites)	/* qzkklogy uses sprite buffering */
6456 	MDRV_VIDEO_UPDATE(seta)
6457 
6458 	/* sound hardware */
6459 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6460 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
6461 MACHINE_DRIVER_END
6462 
6463 /*	Same as qzkklogy, but with a 16MHz CPU and different
6464 	layout for the layer's tiles	*/
6465 
6466 static MACHINE_DRIVER_START( qzkklgy2 )
6467 
6468 	/* basic machine hardware */
6469 	MDRV_CPU_ADD(M68000, 16000000)
6470 	MDRV_CPU_MEMORY(drgnunit_readmem,drgnunit_writemem)
6471 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
6472 
6473 	MDRV_FRAMES_PER_SECOND(60)
6474 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6475 
6476 	/* video hardware */
6477 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6478 	MDRV_SCREEN_SIZE(64*8, 32*8)
6479 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
6480 	MDRV_GFXDECODE(qzkklgy2_gfxdecodeinfo)
6481 	MDRV_PALETTE_LENGTH(512)
6482 
6483 	MDRV_VIDEO_START(seta_1_layer)
6484 	MDRV_VIDEO_EOF(seta_buffer_sprites)	/* qzkklogy uses sprite buffering */
6485 	MDRV_VIDEO_UPDATE(seta)
6486 
6487 	/* sound hardware */
6488 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6489 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
6490 MACHINE_DRIVER_END
6491 
6492 
6493 /***************************************************************************
6494 								Eight Force
6495 ***************************************************************************/
6496 
6497 static MACHINE_DRIVER_START( eightfrc )
6498 
6499 	/* basic machine hardware */
6500 	MDRV_CPU_ADD(M68000, 16000000)
6501 	MDRV_CPU_MEMORY(wrofaero_readmem,wrofaero_writemem)
6502 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
6503 
6504 	MDRV_FRAMES_PER_SECOND(60)
6505 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6506 
6507 	/* video hardware */
6508 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6509 	MDRV_SCREEN_SIZE(64*8, 32*8)
6510 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
6511 	MDRV_GFXDECODE(msgundam_gfxdecodeinfo)
6512 	MDRV_PALETTE_LENGTH(512 * 3)	/* sprites, layer1, layer2 */
6513 
6514 	MDRV_VIDEO_START(seta_2_layers)
6515 	MDRV_VIDEO_UPDATE(seta)
6516 
6517 	/* sound hardware */
6518 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6519 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
6520 MACHINE_DRIVER_END
6521 
6522 
6523 /***************************************************************************
6524 						Extreme Downhill / Sokonuke
6525 ***************************************************************************/
6526 
6527 /*
6528 	extdwnhl:
6529 	lev 1 == lev 3 (writes to $500000, bit 4 -> 1 then 0)
6530 	lev 2 drives the game
6531 */
6532 static MACHINE_DRIVER_START( extdwnhl )
6533 
6534 	/* basic machine hardware */
6535 	MDRV_CPU_ADD(M68000, 16000000)
6536 	MDRV_CPU_MEMORY(extdwnhl_readmem,extdwnhl_writemem)
6537 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
6538 
6539 	MDRV_FRAMES_PER_SECOND(60)
6540 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6541 
6542 	/* video hardware */
6543 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6544 	MDRV_SCREEN_SIZE(64*8, 32*8)
6545 	MDRV_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
6546 	MDRV_GFXDECODE(zingzip_gfxdecodeinfo)
6547 	MDRV_PALETTE_LENGTH(16*32+16*32+16*32)
6548 	MDRV_COLORTABLE_LENGTH(16*32+16*32+64*32)	/* sprites, layer2, layer1 */
6549 
6550 	MDRV_PALETTE_INIT(zingzip)			/* layer 1 gfx is 6 planes deep */
6551 	MDRV_VIDEO_START(seta_2_layers)
6552 	MDRV_VIDEO_UPDATE(seta)
6553 
6554 	/* sound hardware */
6555 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6556 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
6557 MACHINE_DRIVER_END
6558 
6559 
6560 /***************************************************************************
6561 								Gundhara
6562 ***************************************************************************/
6563 #if __uPD71054_TIMER
6564 static INTERRUPT_GEN( wrofaero_interrupt )
6565 {
6566 	cpu_set_irq_line( 0, 2, HOLD_LINE );
6567 }
6568 
MACHINE_INIT(wrofaero)6569 MACHINE_INIT( wrofaero ) { uPD71054_timer_init(); }
MACHINE_STOP(wrofaero)6570 MACHINE_STOP( wrofaero ) { uPD71054_timer_stop(); }
6571 #endif	/* __uPD71054_TIMER*/
6572 
6573 
6574 
6575 /*
6576 	lev 1: sample end? (needed in zombraid otherwise music stops)
6577 		   gundhara's debug code calls it "BUT_IPL" and does nothing
6578 	lev 2: VBlank
6579 	lev 4: Sound (generated by a timer mapped at $d00000-6 ?)
6580 */
6581 static MACHINE_DRIVER_START( gundhara )
6582 
6583 	/* basic machine hardware */
6584 	MDRV_CPU_ADD(M68000, 16000000)
6585 	MDRV_CPU_MEMORY(wrofaero_readmem,wrofaero_writemem)
6586 #if	__uPD71054_TIMER
6587 /*	MDRV_CPU_VBLANK_INT( wrofaero_interrupt, 1 )*/
6588 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
6589 #else
6590 	MDRV_CPU_VBLANK_INT(seta_interrupt_2_and_4,SETA_INTERRUPTS_NUM)
6591 #endif	/* __uPD71054_TIMER*/
6592 
6593 	MDRV_FRAMES_PER_SECOND(60)
6594 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6595 
6596 #if	__uPD71054_TIMER
6597 	MDRV_MACHINE_INIT( wrofaero )
6598 	MDRV_MACHINE_STOP( wrofaero )
6599 #endif	/* __uPD71054_TIMER*/
6600 
6601 	/* video hardware */
6602 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6603 	MDRV_SCREEN_SIZE(64*8, 32*8)
6604 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
6605 	MDRV_GFXDECODE(jjsquawk_gfxdecodeinfo)
6606 	MDRV_PALETTE_LENGTH(16*32+16*32+16*32)
6607 	MDRV_COLORTABLE_LENGTH(16*32+64*32+64*32)	/* sprites, layer2, layer1 */
6608 
6609 	MDRV_PALETTE_INIT(gundhara)				/* layers are 6 planes deep (but have only 4 palettes) */
6610 	MDRV_VIDEO_START(seta_2_layers)
6611 	MDRV_VIDEO_UPDATE(seta)
6612 
6613 	/* sound hardware */
6614 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6615 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
6616 MACHINE_DRIVER_END
6617 
6618 
6619 /***************************************************************************
6620 								J.J.Squawkers
6621 ***************************************************************************/
6622 
6623 /*
6624 	lev 1 == lev 3 (writes to $500000, bit 4 -> 1 then 0)
6625 	lev 2 drives the game
6626 */
6627 static MACHINE_DRIVER_START( jjsquawk )
6628 
6629 	/* basic machine hardware */
6630 	MDRV_CPU_ADD(M68000, 16000000)
6631 	MDRV_CPU_MEMORY(wrofaero_readmem,wrofaero_writemem)
6632 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
6633 
6634 	MDRV_FRAMES_PER_SECOND(60)
6635 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6636 
6637 	/* video hardware */
6638 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6639 	MDRV_SCREEN_SIZE(64*8, 32*8)
6640 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
6641 	MDRV_GFXDECODE(jjsquawk_gfxdecodeinfo)
6642 	MDRV_PALETTE_LENGTH(16*32+16*32+16*32)
6643 	MDRV_COLORTABLE_LENGTH(16*32+64*32+64*32)	/* sprites, layer2, layer1 */
6644 
6645 	MDRV_PALETTE_INIT(jjsquawk)				/* layers are 6 planes deep */
6646 	MDRV_VIDEO_START(seta_2_layers)
6647 	MDRV_VIDEO_UPDATE(seta)
6648 
6649 	/* sound hardware */
6650 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6651 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
6652 MACHINE_DRIVER_END
6653 
6654 /***************************************************************************
6655 				(Kamen) Masked Riders Club Battle Race
6656 ***************************************************************************/
6657 
6658 /*	kamenrid: lev 2 by vblank, lev 4 by timer */
6659 static MACHINE_DRIVER_START( kamenrid )
6660 
6661 	/* basic machine hardware */
6662 	MDRV_CPU_ADD(M68000, 16000000)
6663 	MDRV_CPU_MEMORY(kamenrid_readmem,kamenrid_writemem)
6664 	MDRV_CPU_VBLANK_INT( wrofaero_interrupt, 1 )
6665 
6666 	MDRV_FRAMES_PER_SECOND(60)
6667 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6668 
6669 #if	__uPD71054_TIMER
6670 	MDRV_MACHINE_INIT( wrofaero )
6671 	MDRV_MACHINE_STOP( wrofaero )
6672 #endif	/* __uPD71054_TIMER*/
6673 
6674 	/* video hardware */
6675 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6676 	MDRV_SCREEN_SIZE(64*8, 32*8)
6677 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
6678 	MDRV_GFXDECODE(msgundam_gfxdecodeinfo)
6679 	MDRV_PALETTE_LENGTH(512 * 3)	/* sprites, layer2, layer1 */
6680 
6681 	MDRV_VIDEO_START(seta_2_layers)
6682 	MDRV_VIDEO_UPDATE(seta)
6683 
6684 	/* sound hardware */
6685 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6686 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz) /* ?*/
6687 MACHINE_DRIVER_END
6688 
6689 
6690 /***************************************************************************
6691 								Krazy Bowl
6692 ***************************************************************************/
6693 
6694 static MACHINE_DRIVER_START( krzybowl )
6695 
6696 	/* basic machine hardware */
6697 	MDRV_CPU_ADD(M68000, 16000000)
6698 	MDRV_CPU_MEMORY(krzybowl_readmem,krzybowl_writemem)
6699 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
6700 
6701 	MDRV_FRAMES_PER_SECOND(60)
6702 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6703 
6704 	/* video hardware */
6705 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6706 	MDRV_SCREEN_SIZE(64*8, 32*8)
6707 	MDRV_VISIBLE_AREA(1*8, 39*8-1, 1*8, 31*8-1)
6708 	MDRV_GFXDECODE(tndrcade_gfxdecodeinfo)
6709 	MDRV_PALETTE_LENGTH(512)	/* sprites only */
6710 
6711 	MDRV_VIDEO_START(seta_no_layers)
6712 	MDRV_VIDEO_UPDATE(seta_no_layers) /* just draw the sprites */
6713 
6714 	/* sound hardware */
6715 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6716 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
6717 MACHINE_DRIVER_END
6718 
6719 
6720 /***************************************************************************
6721 								Mad Shark
6722 ***************************************************************************/
6723 
6724 /*	madshark: lev 2 by vblank, lev 4 by timer */
6725 static MACHINE_DRIVER_START( madshark )
6726 
6727 	/* basic machine hardware */
6728 	MDRV_CPU_ADD(M68000, 16000000)
6729 	MDRV_CPU_MEMORY(madshark_readmem,madshark_writemem)
6730 	MDRV_CPU_VBLANK_INT( wrofaero_interrupt, 1 )
6731 
6732 	MDRV_FRAMES_PER_SECOND(60)
6733 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6734 
6735 #if	__uPD71054_TIMER
6736 	MDRV_MACHINE_INIT( wrofaero )
6737 	MDRV_MACHINE_STOP( wrofaero )
6738 #endif	/* __uPD71054_TIMER*/
6739 
6740 	/* video hardware */
6741 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6742 	MDRV_SCREEN_SIZE(64*8, 32*8)
6743 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
6744 
6745 	MDRV_GFXDECODE(jjsquawk_gfxdecodeinfo)
6746 	MDRV_PALETTE_LENGTH(16*32+16*32+16*32)
6747 	MDRV_COLORTABLE_LENGTH(16*32+64*32+64*32)	/* sprites, layer2, layer1 */
6748 
6749 	MDRV_PALETTE_INIT(jjsquawk)				/* layers are 6 planes deep */
6750 
6751 	MDRV_VIDEO_START(seta_2_layers)
6752 	MDRV_VIDEO_UPDATE(seta)
6753 
6754 	/* sound hardware */
6755 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6756 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
6757 MACHINE_DRIVER_END
6758 
6759 /***************************************************************************
6760 							Mobile Suit Gundam
6761 ***************************************************************************/
6762 
6763 /* msgundam lev 2 == lev 6 ! */
6764 
6765 static MACHINE_DRIVER_START( msgundam )
6766 
6767 	/* basic machine hardware */
6768 	MDRV_CPU_ADD(M68000, 16000000)
6769 	MDRV_CPU_MEMORY(msgundam_readmem,msgundam_writemem)
6770 #if	__uPD71054_TIMER
6771 	MDRV_CPU_VBLANK_INT( wrofaero_interrupt, 1 )
6772 #else
6773 	MDRV_CPU_VBLANK_INT(seta_interrupt_2_and_4,SETA_INTERRUPTS_NUM)
6774 #endif	/* __uPD71054_TIMER*/
6775 
6776 	MDRV_FRAMES_PER_SECOND(56.66)	/* between 56 and 57 to match a real PCB's game speed */
6777 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6778 
6779 #if	__uPD71054_TIMER
6780 	MDRV_MACHINE_INIT( wrofaero )
6781 	MDRV_MACHINE_STOP( wrofaero )
6782 #endif	/* __uPD71054_TIMER*/
6783 
6784 	/* video hardware */
6785 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6786 	MDRV_SCREEN_SIZE(64*8, 32*8)
6787 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
6788 	MDRV_GFXDECODE(msgundam_gfxdecodeinfo)
6789 	MDRV_PALETTE_LENGTH(512 * 3)	/* sprites, layer2, layer1 */
6790 
6791 	MDRV_VIDEO_START(seta_2_layers)
6792 	MDRV_VIDEO_EOF(seta_buffer_sprites)	/* msgundam uses sprite buffering */
6793 	MDRV_VIDEO_UPDATE(seta)
6794 
6795 	/* sound hardware */
6796 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6797 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
6798 MACHINE_DRIVER_END
6799 
6800 
6801 
6802 /***************************************************************************
6803 							Oishii Puzzle
6804 ***************************************************************************/
6805 
6806 static MACHINE_DRIVER_START( oisipuzl )
6807 
6808 	/* basic machine hardware */
6809 	MDRV_CPU_ADD(M68000, 16000000)
6810 	MDRV_CPU_MEMORY(oisipuzl_readmem,oisipuzl_writemem)
6811 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
6812 
6813 	MDRV_FRAMES_PER_SECOND(60)
6814 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6815 
6816 	/* video hardware */
6817 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6818 	MDRV_SCREEN_SIZE(64*8, 32*8)
6819 	MDRV_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
6820 	MDRV_GFXDECODE(msgundam_gfxdecodeinfo)
6821 	MDRV_PALETTE_LENGTH(512 * 3)	/* sprites, layer2, layer1 */
6822 
6823 	MDRV_VIDEO_START(oisipuzl_2_layers)	/* flip is inverted for the tilemaps*/
6824 	MDRV_VIDEO_UPDATE(seta)
6825 
6826 	/* sound hardware */
6827 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6828 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
6829 MACHINE_DRIVER_END
6830 
6831 /***************************************************************************
6832 							Triple Fun
6833 ***************************************************************************/
6834 
6835 /* same as oisipuzl but with different interrupts and sound */
6836 
6837 static struct OKIM6295interface okim6295_interface =
6838 {
6839 	1,						/* 1 chip */
6840 	{ 6000 },	/* ???? */
6841 	{ REGION_SOUND1 },		/* memory region */
6842 	{ 100 }
6843 };
6844 
6845 static MACHINE_DRIVER_START( triplfun )
6846 
6847 	/* basic machine hardware */
6848 	MDRV_CPU_ADD(M68000, 16000000)
MDRV_CPU_MEMORY(triplfun_readmem,triplfun_writemem)6849 	MDRV_CPU_MEMORY(triplfun_readmem,triplfun_writemem)
6850 	MDRV_CPU_VBLANK_INT(irq3_line_hold,1)
6851 
6852 	MDRV_FRAMES_PER_SECOND(60)
6853 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6854 
6855 	/* video hardware */
6856 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6857 	MDRV_SCREEN_SIZE(64*8, 32*8)
6858 	MDRV_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
6859 	MDRV_GFXDECODE(msgundam_gfxdecodeinfo)
6860 	MDRV_PALETTE_LENGTH(512 * 3)	/* sprites, layer2, layer1 */
6861 
6862 	MDRV_VIDEO_START(oisipuzl_2_layers)	/* flip is inverted for the tilemaps*/
6863 	MDRV_VIDEO_UPDATE(seta)
6864 
6865 	/* sound hardware */
6866 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6867 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
6868 MACHINE_DRIVER_END
6869 
6870 /***************************************************************************
6871 							Pro Mahjong Kiwame
6872 ***************************************************************************/
6873 
6874 static MACHINE_DRIVER_START( kiwame )
6875 
6876 	/* basic machine hardware */
6877 	MDRV_CPU_ADD(M68000, 16000000)
6878 	MDRV_CPU_MEMORY(kiwame_readmem,kiwame_writemem)
6879 	MDRV_CPU_VBLANK_INT(irq1_line_hold,1)/* lev 1-7 are the same. WARNING:
6880 								   the interrupt table is written to. */
6881 	MDRV_FRAMES_PER_SECOND(60)
6882 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6883 
6884 	/* video hardware */
6885 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6886 	MDRV_SCREEN_SIZE(64*8, 32*8)
6887 	MDRV_VISIBLE_AREA(0*8, 56*8-1, 1*8, 31*8-1)
6888 	MDRV_GFXDECODE(tndrcade_gfxdecodeinfo)
6889 	MDRV_PALETTE_LENGTH(512)	/* sprites only */
6890 
6891 	MDRV_VIDEO_START(seta_no_layers)
6892 	MDRV_VIDEO_UPDATE(seta_no_layers) /* just draw the sprites */
6893 
6894 	/* sound hardware */
6895 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6896 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
6897 MACHINE_DRIVER_END
6898 
6899 
6900 
6901 /***************************************************************************
6902 									Rezon
6903 ***************************************************************************/
6904 
6905 /* pretty much like wrofaero, but ints are 1&2, not 2&4 */
6906 
6907 static MACHINE_DRIVER_START( rezon )
6908 
6909 	/* basic machine hardware */
6910 	MDRV_CPU_ADD(M68000, 16000000)
6911 	MDRV_CPU_MEMORY(wrofaero_readmem,wrofaero_writemem)
6912 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
6913 
6914 	MDRV_FRAMES_PER_SECOND(60)
6915 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6916 
6917 	/* video hardware */
6918 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6919 	MDRV_SCREEN_SIZE(64*8, 32*8)
6920 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
6921 	MDRV_GFXDECODE(msgundam_gfxdecodeinfo)
6922 	MDRV_PALETTE_LENGTH(512 * 3)	/* sprites, layer1, layer2 */
6923 
6924 	MDRV_VIDEO_START(seta_2_layers)
6925 	MDRV_VIDEO_UPDATE(seta)
6926 
6927 	/* sound hardware */
6928 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6929 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
6930 MACHINE_DRIVER_END
6931 
6932 
6933 
6934 /***************************************************************************
6935 						Thunder & Lightning / Wit's
6936 ***************************************************************************/
6937 
6938 /*	thunderl lev 2 = lev 3 - other levels lead to an error */
6939 
6940 static MACHINE_DRIVER_START( thunderl )
6941 
6942 	/* basic machine hardware */
6943 	MDRV_CPU_ADD(M68000, 8000000)
6944 	MDRV_CPU_MEMORY(thunderl_readmem,thunderl_writemem)
6945 	MDRV_CPU_VBLANK_INT(irq2_line_hold,1)
6946 
6947 	MDRV_FRAMES_PER_SECOND(60)
6948 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6949 
6950 	/* video hardware */
6951 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6952 	MDRV_SCREEN_SIZE(64*8, 32*8)
6953 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
6954 	MDRV_GFXDECODE(tndrcade_gfxdecodeinfo)
6955 	MDRV_PALETTE_LENGTH(512)	/* sprites only */
6956 
6957 	MDRV_VIDEO_START(seta_no_layers)
6958 	MDRV_VIDEO_UPDATE(seta_no_layers) /* just draw the sprites */
6959 
6960 	/* sound hardware */
6961 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6962 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
6963 MACHINE_DRIVER_END
6964 
6965 static MACHINE_DRIVER_START( wits )
6966 
6967 	/* basic machine hardware */
6968 	MDRV_CPU_ADD(M68000, 8000000)
6969 	MDRV_CPU_MEMORY(thunderl_readmem,thunderl_writemem)
6970 	MDRV_CPU_VBLANK_INT(irq2_line_hold,1)
6971 
6972 	MDRV_FRAMES_PER_SECOND(60)
6973 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
6974 
6975 	/* video hardware */
6976 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
6977 	MDRV_SCREEN_SIZE(64*8, 32*8)
6978 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
6979 	MDRV_GFXDECODE(tndrcade_gfxdecodeinfo)
6980 	MDRV_PALETTE_LENGTH(512)	/* sprites only */
6981 
6982 	MDRV_VIDEO_START(seta_no_layers)
6983 	MDRV_VIDEO_UPDATE(seta_no_layers) /* just draw the sprites */
6984 
6985 	/* sound hardware */
6986 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
6987 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
6988 MACHINE_DRIVER_END
6989 
6990 
6991 
6992 /***************************************************************************
6993 					Ultraman Club / SD Gundam Neo Battling
6994 ***************************************************************************/
6995 
6996 static MACHINE_DRIVER_START( umanclub )
6997 
6998 	/* basic machine hardware */
6999 	MDRV_CPU_ADD(M68000, 16000000)
7000 	MDRV_CPU_MEMORY(umanclub_readmem,umanclub_writemem)
7001 	MDRV_CPU_VBLANK_INT(irq3_line_hold,1)
7002 
7003 	MDRV_FRAMES_PER_SECOND(60)
7004 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
7005 
7006 	/* video hardware */
7007 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
7008 	MDRV_SCREEN_SIZE(64*8, 32*8)
7009 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
7010 	MDRV_GFXDECODE(tndrcade_gfxdecodeinfo)
7011 	MDRV_PALETTE_LENGTH(512)
7012 
7013 	MDRV_VIDEO_START(seta_no_layers)
7014 	MDRV_VIDEO_UPDATE(seta_no_layers) /* just draw the sprites */
7015 
7016 	/* sound hardware */
7017 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
7018 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
7019 MACHINE_DRIVER_END
7020 
7021 
7022 /***************************************************************************
7023 							Ultra Toukond Densetsu
7024 ***************************************************************************/
7025 
7026 static MACHINE_DRIVER_START( utoukond )
7027 
7028 	/* basic machine hardware */
7029 	MDRV_CPU_ADD(M68000, 16000000)
7030 	MDRV_CPU_MEMORY(utoukond_readmem,utoukond_writemem)
7031 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
7032 
7033 	MDRV_CPU_ADD(Z80, 4000000)
7034 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
7035 	MDRV_CPU_MEMORY(utoukond_sound_readmem,utoukond_sound_writemem)
7036 	MDRV_CPU_PORTS(utoukond_sound_readport,utoukond_sound_writeport)
7037 
7038 	MDRV_FRAMES_PER_SECOND(60)
7039 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
7040 
7041 	/* video hardware */
7042 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
7043 	MDRV_SCREEN_SIZE(64*8, 32*8)
7044 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
7045 
7046 	MDRV_GFXDECODE(msgundam_gfxdecodeinfo)
7047 	MDRV_PALETTE_LENGTH(512 * 3)	/* sprites, layer2, layer1 */
7048 
7049 	MDRV_VIDEO_START(seta_2_layers)
7050 	MDRV_VIDEO_UPDATE(seta)
7051 
7052 	/* sound hardware */
7053 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
7054 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
7055 	MDRV_SOUND_ADD(YM2612, utoukond_ym3438_intf)
7056 MACHINE_DRIVER_END
7057 
7058 
7059 /***************************************************************************
7060 								War of Aero
7061 ***************************************************************************/
7062 
7063 static MACHINE_DRIVER_START( wrofaero )
7064 
7065 	/* basic machine hardware */
7066 	MDRV_CPU_ADD(M68000, 16000000)
7067 	MDRV_CPU_MEMORY(wrofaero_readmem,wrofaero_writemem)
7068 #if	__uPD71054_TIMER
7069 	MDRV_CPU_VBLANK_INT( wrofaero_interrupt, 1 )
7070 #else
7071 	MDRV_CPU_VBLANK_INT(seta_interrupt_2_and_4,SETA_INTERRUPTS_NUM)
7072 #endif	/* __uPD71054_TIMER*/
7073 
7074 	MDRV_FRAMES_PER_SECOND(60)
7075 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
7076 
7077 #if	__uPD71054_TIMER
7078 	MDRV_MACHINE_INIT( wrofaero )
7079 	MDRV_MACHINE_STOP( wrofaero )
7080 #endif	/* __uPD71054_TIMER*/
7081 
7082 	/* video hardware */
7083 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
7084 	MDRV_SCREEN_SIZE(64*8, 32*8)
7085 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
7086 	MDRV_GFXDECODE(msgundam_gfxdecodeinfo)
7087 	MDRV_PALETTE_LENGTH(512 * 3)	/* sprites, layer1, layer2 */
7088 
7089 	MDRV_VIDEO_START(seta_2_layers)
7090 	MDRV_VIDEO_UPDATE(seta)
7091 
7092 	/* sound hardware */
7093 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
7094 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
7095 MACHINE_DRIVER_END
7096 
7097 
7098 
7099 
7100 /***************************************************************************
7101 								Zing Zing Zip
7102 ***************************************************************************/
7103 
7104 /* zingzip lev 3 = lev 2 + lev 1 !
7105    SR = 2100 -> lev1 is ignored so we must supply int 3, since the routine
7106    at int 1 is necessary: it plays the background music.
7107 */
7108 
7109 static MACHINE_DRIVER_START( zingzip )
7110 
7111 	/* basic machine hardware */
7112 	MDRV_CPU_ADD(M68000, 16000000)
7113 	MDRV_CPU_MEMORY(wrofaero_readmem,wrofaero_writemem)
7114 	MDRV_CPU_VBLANK_INT(irq3_line_hold,1)
7115 
7116 	MDRV_FRAMES_PER_SECOND(60)
7117 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
7118 
7119 	/* video hardware */
7120 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
7121 	MDRV_SCREEN_SIZE(64*8, 32*8)
7122 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
7123 	MDRV_GFXDECODE(zingzip_gfxdecodeinfo)
7124 	MDRV_PALETTE_LENGTH(16*32+16*32+16*32)
7125 	MDRV_COLORTABLE_LENGTH(16*32+16*32+64*32)	/* sprites, layer2, layer1 */
7126 
7127 	MDRV_PALETTE_INIT(zingzip)				/* layer 1 gfx is 6 planes deep */
7128 	MDRV_VIDEO_START(seta_2_layers)
7129 	MDRV_VIDEO_UPDATE(seta)
7130 
7131 	/* sound hardware */
7132 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
7133 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
7134 MACHINE_DRIVER_END
7135 
7136 
7137 
7138 
7139 /***************************************************************************
7140 
7141 								ROMs Loading
7142 
7143 ***************************************************************************/
7144 
7145 ROM_START( tndrcade )
7146 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
7147 	ROM_LOAD16_BYTE( "ua0-4.1l", 0x000000, 0x020000, CRC(73bd63eb) SHA1(5d410d2a77f1c3c4c37a9fe1e56019335891fe67) )
7148 	ROM_LOAD16_BYTE( "ua0-2.1h", 0x000001, 0x020000, CRC(e96194b1) SHA1(c5084d06a2e4f7ba3112be1ccc314f7d712bb45e) )
7149 	ROM_LOAD16_BYTE( "ua0-3.1k", 0x040000, 0x020000, CRC(0a7b1c41) SHA1(ede14ac08d7e63972c21fd2d0717276e73153f18) )
7150 	ROM_LOAD16_BYTE( "ua0-1.1g", 0x040001, 0x020000, CRC(fa906626) SHA1(a1d28328afa8dda98dd20f3f5a19c0dbf2ebaf36) )
7151 
7152 	ROM_REGION( 0x02c000, REGION_CPU2, 0 )		/* 65c02 Code */
7153 	ROM_LOAD( "ua10-5.8m", 0x004000, 0x020000, CRC(8eff6122) SHA1(1adc1643018e612df85643014b78525106478889) )	/* $1fffd=2 (country code)*/
7154 	ROM_RELOAD(            0x00c000, 0x020000             )
7155 
7156 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7157 	ROM_LOAD( "ua0-10", 0x000000, 0x040000, CRC(aa7b6757) SHA1(9157cc930760c846cce95e18bf38e7ea241f7a8e) )
7158 	ROM_LOAD( "ua0-11", 0x040000, 0x040000, CRC(11eaf931) SHA1(ba1dfc4b0f87b1bbdc6c2e36deaecda2b4655d57) )
7159 	ROM_LOAD( "ua0-12", 0x080000, 0x040000, CRC(00b5381c) SHA1(6fc3138dd0e2b3f99872b1f0d177094df5bed39d) )
7160 	ROM_LOAD( "ua0-13", 0x0c0000, 0x040000, CRC(8f9a0ed3) SHA1(61315312fdb2fe090cd8e99a1ce3ecba46b466e9) )
7161 	ROM_LOAD( "ua0-6",  0x100000, 0x040000, CRC(14ecc7bb) SHA1(920983f5086462f8f06dc9cf7bebffeeb7187977) )
7162 	ROM_LOAD( "ua0-7",  0x140000, 0x040000, CRC(ff1a4e68) SHA1(d732df7d139995814969a603c9c4e9f8b068b1a3) )
7163 	ROM_LOAD( "ua0-8",  0x180000, 0x040000, CRC(936e1884) SHA1(9ad495b88e124d08a7141611ed1897b6e2abd412) )
7164 	ROM_LOAD( "ua0-9",  0x1c0000, 0x040000, CRC(e812371c) SHA1(b0e1e0c143da743bf9f7b48d657594e76f4970ed) )
7165 ROM_END
7166 
7167 ROM_START( tndrcadj )
7168 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
7169 	ROM_LOAD16_BYTE( "ua0-4.1l", 0x000000, 0x020000, CRC(73bd63eb) SHA1(5d410d2a77f1c3c4c37a9fe1e56019335891fe67) )
7170 	ROM_LOAD16_BYTE( "ua0-2.1h", 0x000001, 0x020000, CRC(e96194b1) SHA1(c5084d06a2e4f7ba3112be1ccc314f7d712bb45e) )
7171 	ROM_LOAD16_BYTE( "ua0-3.1k", 0x040000, 0x020000, CRC(0a7b1c41) SHA1(ede14ac08d7e63972c21fd2d0717276e73153f18) )
7172 	ROM_LOAD16_BYTE( "ua0-1.1g", 0x040001, 0x020000, CRC(fa906626) SHA1(a1d28328afa8dda98dd20f3f5a19c0dbf2ebaf36) )
7173 
7174 	ROM_REGION( 0x02c000, REGION_CPU2, 0 )		/* 65c02 Code */
7175 	ROM_LOAD( "thcade5.bin", 0x004000, 0x020000, CRC(8cb9df7b) SHA1(5b504657f4cc1ea265913ff670aed108ceddba46) )	/* $1fffd=1 (country code jp)*/
7176 	ROM_RELOAD(              0x00c000, 0x020000             )
7177 
7178 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7179 	ROM_LOAD( "ua0-10", 0x000000, 0x040000, CRC(aa7b6757) SHA1(9157cc930760c846cce95e18bf38e7ea241f7a8e) )
7180 	ROM_LOAD( "ua0-11", 0x040000, 0x040000, CRC(11eaf931) SHA1(ba1dfc4b0f87b1bbdc6c2e36deaecda2b4655d57) )
7181 	ROM_LOAD( "ua0-12", 0x080000, 0x040000, CRC(00b5381c) SHA1(6fc3138dd0e2b3f99872b1f0d177094df5bed39d) )
7182 	ROM_LOAD( "ua0-13", 0x0c0000, 0x040000, CRC(8f9a0ed3) SHA1(61315312fdb2fe090cd8e99a1ce3ecba46b466e9) )
7183 	ROM_LOAD( "ua0-6",  0x100000, 0x040000, CRC(14ecc7bb) SHA1(920983f5086462f8f06dc9cf7bebffeeb7187977) )
7184 	ROM_LOAD( "ua0-7",  0x140000, 0x040000, CRC(ff1a4e68) SHA1(d732df7d139995814969a603c9c4e9f8b068b1a3) )
7185 	ROM_LOAD( "ua0-8",  0x180000, 0x040000, CRC(936e1884) SHA1(9ad495b88e124d08a7141611ed1897b6e2abd412) )
7186 	ROM_LOAD( "ua0-9",  0x1c0000, 0x040000, CRC(e812371c) SHA1(b0e1e0c143da743bf9f7b48d657594e76f4970ed) )
7187 ROM_END
7188 
7189 ROM_START( twineagl )
7190 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
7191 	ROM_LOAD16_WORD( "ua2-1", 0x000000, 0x080000, CRC(5c3fe531) SHA1(e484dad25cda906fb1b0606fb10ae50056c64e6a) )
7192 
7193 	ROM_REGION( 0x010000, REGION_CPU2, 0 )		/* 65c02 Code */
7194 	ROM_LOAD( "ua2-2", 0x006000, 0x002000, CRC(783ca84e) SHA1(21e19f74812de50e98b755dd1f68c187dd1e7e81) )
7195 	ROM_RELOAD(        0x008000, 0x002000  )
7196 	ROM_RELOAD(        0x00a000, 0x002000  )
7197 	ROM_RELOAD(        0x00c000, 0x002000  )
7198 	ROM_RELOAD(        0x00e000, 0x002000  )
7199 
7200 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7201 	ROM_LOAD16_BYTE( "ua2-4",  0x000000, 0x040000, CRC(8b7532d6) SHA1(ec42d21bc44f004282f822b3da36b5442eabd87a) )
7202 	ROM_LOAD16_BYTE( "ua2-3",  0x000001, 0x040000, CRC(1124417a) SHA1(c908f51b943188946486c639a0cb9712114b5437) )
7203 	ROM_LOAD16_BYTE( "ua2-6",  0x080000, 0x040000, CRC(99d8dbba) SHA1(ac2a3c5cad23e0207eba52935c72e23203c8e0af) )
7204 	ROM_LOAD16_BYTE( "ua2-5",  0x080001, 0x040000, CRC(6e450d28) SHA1(d0050afcc3f425ac70768271c9d2d55ab7fba622) )
7205 
7206 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7207 	ROM_LOAD( "ua2-8",  0x000000, 0x080000, CRC(7d3a8d73) SHA1(d6a0bea124d7d228818f8ea8c804ad2ba8cead4b) )
7208 	ROM_LOAD( "ua2-10", 0x080000, 0x080000, CRC(5bbe1f56) SHA1(309bc43884816dafeb0f47e71ff5272d4d7cac54) )
7209 	ROM_LOAD( "ua2-7",  0x100000, 0x080000, CRC(fce56907) SHA1(5d0d2d6dfdbadb21f1d61d84b8992ec0e527e18d) )
7210 	ROM_LOAD( "ua2-9",  0x180000, 0x080000, CRC(a451eae9) SHA1(c236c92d9ecf56f8d8f4a5ee493e3791be0d3db4) )
7211 
7212 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7213 	ROM_LOAD( "ua2-11", 0x000000, 0x080000, CRC(624e6057) SHA1(0e8e4d4b6bc5febf5ca83eea92e3ed06f16e7df0) )
7214 	ROM_LOAD( "ua2-12", 0x080000, 0x080000, CRC(3068ff64) SHA1(7c06a48a99ebb9e7f3709f25bd0caa4c9d7a2688) )
7215 ROM_END
7216 
7217 ROM_START( downtown )
7218 	ROM_REGION( 0x0a0000, REGION_CPU1, 0 )		/* 68000 Code */
7219 	ROM_LOAD16_BYTE( "ud2001.000", 0x000000, 0x040000, CRC(f1965260) SHA1(c0560342238d75f9b81ae9f3408cacfbcd331529) )
7220 	ROM_LOAD16_BYTE( "ud2001.003", 0x000001, 0x040000, CRC(e7d5fa5f) SHA1(48612514598711aa73bf75243c842f0aca72f3d0) )
7221 	ROM_LOAD16_BYTE( "ud2000.002", 0x080000, 0x010000, CRC(ca976b24) SHA1(3b2e362f414b0103dd02c9af6a5d480ec2cf9ca3) )
7222 	ROM_LOAD16_BYTE( "ud2000.001", 0x080001, 0x010000, CRC(1708aebd) SHA1(337a9e8d5da5b13a7ea4ee728de6b82fe92e16c5) )
7223 
7224 	ROM_REGION( 0x04c000, REGION_CPU2, 0 )		/* 65c02 Code */
7225 	ROM_LOAD( "ud2002.004", 0x004000, 0x040000, CRC(bbd538b1) SHA1(de4c43bfc4004a14f9f66b5e8ff192b00c45c003) )
7226 	ROM_RELOAD(             0x00c000, 0x040000             )
7227 
7228 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7229 	ROM_LOAD16_BYTE( "ud2005.t01", 0x000000, 0x080000, CRC(77e6d249) SHA1(cdf67211cd447858293188511e826640fe24078b) )
7230 	ROM_LOAD16_BYTE( "ud2006.t02", 0x000001, 0x080000, CRC(6e381bf2) SHA1(ba46e019d2991dec539444ef7376fe0e9a6a8b75) )
7231 	ROM_LOAD16_BYTE( "ud2007.t03", 0x100000, 0x080000, CRC(737b4971) SHA1(2a034011b0ac03d532a89b544f4eec497ac7ee80) )
7232 	ROM_LOAD16_BYTE( "ud2008.t04", 0x100001, 0x080000, CRC(99b9d757) SHA1(c3a763993305110ec2a0b231d75fbef4c385d21b) )
7233 
7234 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7235 	ROM_LOAD( "ud2009.t05", 0x000000, 0x080000, CRC(aee6c581) SHA1(5b2150a308ca12eea8148d0bbff663b3baf0c831) )
7236 	ROM_LOAD( "ud2010.t06", 0x080000, 0x080000, CRC(3d399d54) SHA1(7d9036e73fbf0e9c3b976336e3e4786b17b2f4fc) )
7237 
7238 	ROM_REGION( 0x080000, REGION_SOUND1, 0 )	/* Samples */
7239 	ROM_LOAD( "ud2011.t07", 0x000000, 0x080000, CRC(9c9ff69f) SHA1(3840b654f4f709bc4c03dfe4ee79369d5c70dd62) )
7240 ROM_END
7241 
7242 ROM_START( downtowj )
7243 	ROM_REGION( 0x0a0000, REGION_CPU1, 0 )		/* 68000 Code */
7244 	ROM_LOAD16_BYTE( "ud2001.000", 0x000000, 0x040000, CRC(f1965260) SHA1(c0560342238d75f9b81ae9f3408cacfbcd331529) )
7245 	ROM_LOAD16_BYTE( "ud2001.003", 0x000001, 0x040000, CRC(e7d5fa5f) SHA1(48612514598711aa73bf75243c842f0aca72f3d0) )
7246 	ROM_LOAD16_BYTE( "u37.9a",     0x080000, 0x010000, CRC(73047657) SHA1(731663101d809170aad3cd39e901ef494494c5a1) )
7247 	ROM_LOAD16_BYTE( "u31.8a",     0x080001, 0x010000, CRC(6a050240) SHA1(6a1a305b7d32bb2ad17842b4eeabc891fce02160) )
7248 
7249 	ROM_REGION( 0x04c000, REGION_CPU2, 0 )		/* 65c02 Code */
7250 	ROM_LOAD( "ud2002.004", 0x004000, 0x040000, CRC(bbd538b1) SHA1(de4c43bfc4004a14f9f66b5e8ff192b00c45c003) )
7251 	ROM_RELOAD(             0x00c000, 0x040000  )
7252 
7253 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7254 	ROM_LOAD16_BYTE( "ud2005.t01", 0x000000, 0x080000, CRC(77e6d249) SHA1(cdf67211cd447858293188511e826640fe24078b) )
7255 	ROM_LOAD16_BYTE( "ud2006.t02", 0x000001, 0x080000, CRC(6e381bf2) SHA1(ba46e019d2991dec539444ef7376fe0e9a6a8b75) )
7256 	ROM_LOAD16_BYTE( "ud2007.t03", 0x100000, 0x080000, CRC(737b4971) SHA1(2a034011b0ac03d532a89b544f4eec497ac7ee80) )
7257 	ROM_LOAD16_BYTE( "ud2008.t04", 0x100001, 0x080000, CRC(99b9d757) SHA1(c3a763993305110ec2a0b231d75fbef4c385d21b) )
7258 
7259 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7260 	ROM_LOAD( "ud2009.t05", 0x000000, 0x080000, CRC(aee6c581) SHA1(5b2150a308ca12eea8148d0bbff663b3baf0c831) )
7261 	ROM_LOAD( "ud2010.t06", 0x080000, 0x080000, CRC(3d399d54) SHA1(7d9036e73fbf0e9c3b976336e3e4786b17b2f4fc) )
7262 
7263 	ROM_REGION( 0x080000, REGION_SOUND1, 0 )	/* Samples */
7264 	ROM_LOAD( "ud2011.t07", 0x000000, 0x080000, CRC(9c9ff69f) SHA1(3840b654f4f709bc4c03dfe4ee79369d5c70dd62) )
7265 ROM_END
7266 
7267 ROM_START( usclssic )
7268 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
7269 	ROM_LOAD16_BYTE( "ue2001.u20", 0x000000, 0x020000, CRC(18b41421) SHA1(74e96071d46eda152aaa82cf87d09203f225b504) )
7270 	ROM_LOAD16_BYTE( "ue2000.u14", 0x000001, 0x020000, CRC(69454bc2) SHA1(19a3b6ca65770353401544c50e04d895e391612c) )
7271 	ROM_LOAD16_BYTE( "ue2002.u22", 0x040000, 0x020000, CRC(a7bbe248) SHA1(8f7ffeffb8b6ef0e1ab5e7fbba31a1b97bbd7f8c) )
7272 	ROM_LOAD16_BYTE( "ue2003.u30", 0x040001, 0x020000, CRC(29601906) SHA1(9cdf2d80a72317a4eb7a335aaaae381822da24b1) )
7273 
7274 	ROM_REGION( 0x04c000, REGION_CPU2, 0 )		/* 65c02 Code */
7275 	ROM_LOAD( "ue002u61.004", 0x004000, 0x040000, CRC(476e9f60) SHA1(940c09eb472652a88d5d34130270ff55a5f5ba27) )
7276 	ROM_RELOAD(               0x00c000, 0x040000             )
7277 
7278 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7279 	ROM_LOAD16_BYTE( "ue001009.119", 0x000000, 0x080000, CRC(dc065204) SHA1(0478b8126cd3ce3dee64cb7de2b30b509636eb1a) )
7280 	ROM_LOAD16_BYTE( "ue001008.118", 0x000001, 0x080000, CRC(5947d9b5) SHA1(de3a63c55b558451bbbe98bf8d71561ba32c5e60) )
7281 	ROM_LOAD16_BYTE( "ue001007.117", 0x100000, 0x080000, CRC(b48a885c) SHA1(8c0d458d6967c2ff4bdcf37aaa8025341fe90bbc) )
7282 	ROM_LOAD16_BYTE( "ue001006.116", 0x100001, 0x080000, CRC(a6ab6ef4) SHA1(9f54f116d1d8e54d64ba541195baa66c5ca960bd) )
7283 
7284 	ROM_REGION( 0x600000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7285 	ROM_LOAD( "ue001010.120", 0x000000, 0x080000, CRC(dd683031) SHA1(06ed38a243666c1acaf8eb3fdba51d18fc2a70bc) )	/* planes 01*/
7286 	ROM_LOAD( "ue001011.121", 0x080000, 0x080000, CRC(0e27bc49) SHA1(f9ec4f4c15c86f608607a5ec916f5182a8e265fa) )
7287 	ROM_LOAD( "ue001012.122", 0x100000, 0x080000, CRC(961dfcdc) SHA1(9de95692860abd4206db22ad7ade9f02f0c03506) )
7288 	ROM_LOAD( "ue001013.123", 0x180000, 0x080000, CRC(03e9eb79) SHA1(e7cabfd73b73c7df8d79c113db5eca110bf2f05e) )
7289 
7290 	ROM_LOAD( "ue001014.124", 0x200000, 0x080000, CRC(9576ace7) SHA1(a5350934533241daf63c561a88d952bb6976b81b) )	/* planes 23*/
7291 	ROM_LOAD( "ue001015.125", 0x280000, 0x080000, CRC(631d6eb1) SHA1(df342c20e2b3c29eab3c72440c11be60d14d3557) )
7292 	ROM_LOAD( "ue001016.126", 0x300000, 0x080000, CRC(f44a8686) SHA1(649f6f95cc67fa2f4551af19a2b607c811318820) )
7293 	ROM_LOAD( "ue001017.127", 0x380000, 0x080000, CRC(7f568258) SHA1(ac36e87386f9d5c68c66a9469e1b30ee66c4cb7f) )
7294 
7295 	ROM_LOAD( "ue001018.128", 0x400000, 0x080000, CRC(4bd98f23) SHA1(be6483253a5ea1efe7c7f6b4432fe819b906894c) )	/* planes 45*/
7296 	ROM_LOAD( "ue001019.129", 0x480000, 0x080000, CRC(6d9f5a33) SHA1(8d300adf2b3299df78e274c4c7f2ee2d8e1e2575) )
7297 	ROM_LOAD( "ue001020.130", 0x500000, 0x080000, CRC(bc07403f) SHA1(f994b6d1dee23f5dabdb328f955f4380a8ca9d52) )
7298 	ROM_LOAD( "ue001021.131", 0x580000, 0x080000, CRC(98c03efd) SHA1(761c51d5573e6f35c48b8b9ee5d88cbde02e92a7) )
7299 
7300 	ROM_REGION( 0x080000, REGION_SOUND1, 0 )	/* Samples */
7301 	ROM_LOAD( "ue001005.132", 0x000000, 0x080000, CRC(c5fea37c) SHA1(af4f09dd36af06e50262f607ff14eedc33beffd2) )
7302 ROM_END
7303 
7304 ROM_START( calibr50 )
7305 	ROM_REGION( 0x0a0000, REGION_CPU1, 0 )		/* 68000 Code */
7306 	ROM_LOAD16_BYTE( "uh002001.u45", 0x000000, 0x040000, CRC(eb92e7ed) SHA1(2aee8a7bce549ef7d7b35d1c248ebbdbc906e38d) )
7307 	ROM_LOAD16_BYTE( "uh002004.u41", 0x000001, 0x040000, CRC(5a0ed31e) SHA1(d6ee7654354ac9f1dc7add1ef9f68a147b6f2953) )
7308 	ROM_LOAD16_BYTE( "uh001003.9a",  0x080000, 0x010000, CRC(0d30d09f) SHA1(8a48511b628e85b72fda0968d813f4faebd0c418) )
7309 	ROM_LOAD16_BYTE( "uh001002.7a",  0x080001, 0x010000, CRC(7aecc3f9) SHA1(2454d9c758fa623d4d81a9230871b67d31d16cef) )
7310 
7311 	ROM_REGION( 0x04c000, REGION_CPU2, 0 )		/* 65c02 Code */
7312 	ROM_LOAD( "uh001005.u61", 0x004000, 0x040000, CRC(4a54c085) SHA1(f53ff257ce3d95f945a6befcfb61f1b570f0eafe) )
7313 	ROM_RELOAD(               0x00c000, 0x040000             )
7314 
7315 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7316 	ROM_LOAD16_BYTE( "uh001006.ux2", 0x000000, 0x080000, CRC(fff52f91) SHA1(fd7807e9a8dd5a88df1fcd13746b44a33adbc0fa) )
7317 	ROM_LOAD16_BYTE( "uh001007.ux1", 0x000001, 0x080000, CRC(b6c19f71) SHA1(eb8bbaeaf4af07e178100ff16b228b537aa36272) )
7318 	ROM_LOAD16_BYTE( "uh001008.ux6", 0x100000, 0x080000, CRC(7aae07ef) SHA1(1db666db20efce1efe5b5769b8e3c78bbf508466) )
7319 	ROM_LOAD16_BYTE( "uh001009.ux0", 0x100001, 0x080000, CRC(f85da2c5) SHA1(d090e49b3a897729c7fb05f9386939448fe1d3d9) )
7320 
7321 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7322 	ROM_LOAD( "uh001010.u3x", 0x000000, 0x080000, CRC(f986577a) SHA1(8f6c2fca271fed21a1c04e93c3f50dc41348ae30) )
7323 	ROM_LOAD( "uh001011.u50", 0x080000, 0x080000, CRC(08620052) SHA1(e2ab49dbabc139e6b276401340085ccab1ae3892) )
7324 
7325 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7326 	ROM_LOAD( "uh001013.u60", 0x000000, 0x080000, CRC(09ec0df6) SHA1(57c68d05074ea4a1e133be2ce6e25c594f04a712) )
7327 	ROM_LOAD( "uh001012.u46", 0x080000, 0x080000, CRC(bb996547) SHA1(0c8f570ef4454b10a023e0c463001c22a8cf99cd) )
7328 ROM_END
7329 
7330 ROM_START( arbalest )
7331 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
7332 	ROM_LOAD16_BYTE( "uk001.03",  0x000000, 0x040000, CRC(ee878a2c) SHA1(f7d5817015382ce6af317c02746b473ec798bb4f) )
7333 	ROM_LOAD16_BYTE( "uk001.04",  0x000001, 0x040000, CRC(902bb4e3) SHA1(e37a361a7c03aee2d6ac8c96c2dd6c1e411b46fb) )
7334 
7335 	ROM_REGION( 0x010000, REGION_CPU2, 0 )		/* 65c02 Code */
7336 	ROM_LOAD( "uk001.05", 0x006000, 0x002000, CRC(0339fc53) SHA1(9078f70a319132ef12c59b85e6306d5549a858f1) )
7337 	ROM_RELOAD(           0x008000, 0x002000  )
7338 	ROM_RELOAD(           0x00a000, 0x002000  )
7339 	ROM_RELOAD(           0x00c000, 0x002000  )
7340 	ROM_RELOAD(           0x00e000, 0x002000  )
7341 
7342 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7343 	ROM_LOAD16_BYTE( "uk001.06", 0x000000, 0x040000, CRC(11c75746) SHA1(7faf9a26534397d21211d5ef25ca53c4eb286474) )
7344 	ROM_LOAD16_BYTE( "uk001.07", 0x000001, 0x040000, CRC(01b166c7) SHA1(d1b5b73a55025a264a22dd950ea79ba8172c4bed) )
7345 	ROM_LOAD16_BYTE( "uk001.08", 0x080000, 0x040000, CRC(78d60ba3) SHA1(c4fa546e4ca637d67ecc1b085b91c753606ccdb3) )
7346 	ROM_LOAD16_BYTE( "uk001.09", 0x080001, 0x040000, CRC(b4748ae0) SHA1(a71e671754ed5bba737f0b5f7be510a23d5e925c) )
7347 
7348 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7349 	ROM_LOAD( "uk001.10", 0x000000, 0x080000, CRC(c1e2f823) SHA1(892473351e7b590c59c578047a67fc235bd31e02) )
7350 	ROM_LOAD( "uk001.11", 0x080000, 0x080000, CRC(09dfe56a) SHA1(077627627d3cb8f79ffdd83e46157bd3c473c4a1) )
7351 	ROM_LOAD( "uk001.12", 0x100000, 0x080000, CRC(818a4085) SHA1(fd8b5658fc7f5fa6d3daebb4be17aeabd60c9028) )
7352 	ROM_LOAD( "uk001.13", 0x180000, 0x080000, CRC(771fa164) SHA1(a91214318808f991846a828f0e309c0ff430245e) )
7353 
7354 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7355 	ROM_LOAD( "uk001.15", 0x000000, 0x080000, CRC(ce9df5dd) SHA1(91d879b774b5b367adb5bd511fda827bc0bae0a9) )
7356 	ROM_LOAD( "uk001.14", 0x080000, 0x080000, CRC(016b844a) SHA1(1fe091233746ced358292014393896af730f5940) )
7357 ROM_END
7358 
7359 ROM_START( metafox )
7360 	ROM_REGION( 0x0a0000, REGION_CPU1, 0 )		/* 68000 Code */
7361 	ROM_LOAD16_BYTE( "p1003161", 0x000000, 0x040000, CRC(4fd6e6a1) SHA1(11a830d76ef737bcfac73d0958425fe4329f0dcd) )
7362 	ROM_LOAD16_BYTE( "p1004162", 0x000001, 0x040000, CRC(b6356c9a) SHA1(182a1ea9f0643b05b14ad2a2cd820f5ca2086c4c) )
7363 	ROM_LOAD16_BYTE( "up001002", 0x080000, 0x010000, CRC(ce91c987) SHA1(63546fa1342371a7080ac3cf59b41a01ac313c8c) )
7364 	ROM_LOAD16_BYTE( "up001001", 0x080001, 0x010000, CRC(0db7a505) SHA1(d593da2f7d8b54724cae017cbabc3c0909893da1) )
7365 
7366 	ROM_REGION( 0x010000, REGION_CPU2, 0 )		/* 65c02 Code */
7367 	ROM_LOAD( "up001005", 0x006000, 0x002000, CRC(2ac5e3e3) SHA1(b794554cd25bdd48a21a0a2861daf8369e798ce8) )
7368 	ROM_RELOAD(           0x008000, 0x002000  )
7369 	ROM_RELOAD(           0x00a000, 0x002000  )
7370 	ROM_RELOAD(           0x00c000, 0x002000  )
7371 	ROM_RELOAD(           0x00e000, 0x002000  )
7372 
7373 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7374 	ROM_LOAD16_BYTE( "p1006163", 0x000000, 0x040000, CRC(80f69c7c) SHA1(df323e801ebec6316ba17fe0371f7c87fad19295) )
7375 	ROM_LOAD16_BYTE( "p1007164", 0x000001, 0x040000, CRC(d137e1a3) SHA1(0e0234f1d0adb7db6d0508263e3b0b31fe7071b9) )
7376 	ROM_LOAD16_BYTE( "p1008165", 0x080000, 0x040000, CRC(57494f2b) SHA1(28d620254e81d7e63dfed07b29b252b975a81248) )
7377 	ROM_LOAD16_BYTE( "p1009166", 0x080001, 0x040000, CRC(8344afd2) SHA1(7348b423405ad00b9240d152b119cf5341754815) )
7378 
7379 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7380 	ROM_LOAD( "up001010", 0x000000, 0x080000, CRC(bfbab472) SHA1(d3e7b20d14de48134c4fbe3da31feb928c1c655b) )
7381 	ROM_LOAD( "up001011", 0x080000, 0x080000, CRC(26cea381) SHA1(b4bfd2a13ef6051376fe3ed57e2331a072970f86) )
7382 	ROM_LOAD( "up001012", 0x100000, 0x080000, CRC(fed2c5f9) SHA1(81f0f19a500b665c937f5431000ebde7abd97c30) )
7383 	ROM_LOAD( "up001013", 0x180000, 0x080000, CRC(adabf9ea) SHA1(db28e4e565e567a97a6b05a4803a55a403e24a0e) )
7384 
7385 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7386 	ROM_LOAD( "up001015", 0x000000, 0x080000, CRC(2e20e39f) SHA1(6f8bd4a76ed5c2150015698e7a98044d060157be) )
7387 	ROM_LOAD( "up001014", 0x080000, 0x080000, CRC(fca6315e) SHA1(cef2385ec43f8b7a2d655b42c18ef44e46ff7364) )
7388 ROM_END
7389 
7390 
7391 ROM_START( drgnunit )
7392 	ROM_REGION( 0x040000, REGION_CPU1, 0 )		/* 68000 Code */
7393 	ROM_LOAD16_BYTE( "prg-e.bin", 0x000000, 0x020000, CRC(728447df) SHA1(8bdc52a4cc5f36794a47f963545bdaa26c9acd6b) )
7394 	ROM_LOAD16_BYTE( "prg-o.bin", 0x000001, 0x020000, CRC(b2f58ecf) SHA1(5198e75b22bab630b458797988f2e443c601351f) )
7395 
7396 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7397 	ROM_LOAD16_BYTE( "obj-2.bin", 0x000000, 0x020000, CRC(d7f6ab5a) SHA1(a32f1705e833c339bd0c426a395cc706da96dad7) )
7398 	ROM_LOAD16_BYTE( "obj-1.bin", 0x000001, 0x020000, CRC(53a95b13) SHA1(b7c7994441aafcea49662dc0fbebd6db836723f5) )
7399 	ROM_LOAD16_BYTE( "obj-6.bin", 0x040000, 0x020000, CRC(80b801f7) SHA1(5b5635903137e50bc982d05b73c2648bbf182e71) )
7400 	ROM_LOAD16_BYTE( "obj-5.bin", 0x040001, 0x020000, CRC(6b87bc20) SHA1(9a0e3e18339d6c12e63960fb940a56c16dcb87cf) )
7401 	ROM_LOAD16_BYTE( "obj-4.bin", 0x080000, 0x020000, CRC(60d17771) SHA1(0874c10a2527293715db95bd7c83886d94f810cf) )
7402 	ROM_LOAD16_BYTE( "obj-3.bin", 0x080001, 0x020000, CRC(0bccd4d5) SHA1(7139ef793efe7c6477f78b50207227b1be223755) )
7403 	ROM_LOAD16_BYTE( "obj-8.bin", 0x0c0000, 0x020000, CRC(826c1543) SHA1(f669f255b4596da5648592b5993b02671e404102) )
7404 	ROM_LOAD16_BYTE( "obj-7.bin", 0x0c0001, 0x020000, CRC(cbaa7f6a) SHA1(060f0651b8ca07d239ef1b7c63943cdd433e1ae9) )
7405 
7406 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7407 	ROM_LOAD( "scr-1o.bin",  0x000000, 0x020000, CRC(671525db) SHA1(e230e99754c9f40af7da2054bd5ea09823e0b1b7) )
7408 	ROM_LOAD( "scr-2o.bin",  0x020000, 0x020000, CRC(2a3f2ed8) SHA1(9d188100437a10eb3d3097f28e28e3cb2dc1b21d) )
7409 	ROM_LOAD( "scr-3o.bin",  0x040000, 0x020000, CRC(4d33a92d) SHA1(8b09768abb460446405224565eb6652d2dc1c571) )
7410 	ROM_LOAD( "scr-4o.bin",  0x060000, 0x020000, CRC(79a0aa61) SHA1(9905d90afb759b1d983856d7bef17c139d4f0e4f) )
7411 	ROM_LOAD( "scr-1e.bin",  0x080000, 0x020000, CRC(dc9cd8c9) SHA1(04450a5cfde5d6b69fdd745cd930309863e1aadd) )
7412 	ROM_LOAD( "scr-2e.bin",  0x0a0000, 0x020000, CRC(b6126b41) SHA1(13275f05868d93af95ebb162d229b69ddd660438) )
7413 	ROM_LOAD( "scr-3e.bin",  0x0c0000, 0x020000, CRC(1592b8c2) SHA1(d337de280c5ea3704dec9baa04c45e1c837924a9) )
7414 	ROM_LOAD( "scr-4e.bin",  0x0e0000, 0x020000, CRC(8201681c) SHA1(7784a68828d728107b0228bb3568129c543cbf40) )
7415 
7416 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7417 	ROM_LOAD( "snd-1.bin", 0x000000, 0x020000, CRC(8f47bd0d) SHA1(c55e22ac4294931cfb72ac88a2128891d9f8ee93) )
7418 	ROM_LOAD( "snd-2.bin", 0x020000, 0x020000, CRC(65c40ef5) SHA1(726b46144e2216d17b0828abad2f5e7c2305c174) )
7419 	ROM_LOAD( "snd-3.bin", 0x040000, 0x020000, CRC(71fbd54e) SHA1(bdaf7ecf1c79c6c8fc82d959186ca2f3304729c8) )
7420 	ROM_LOAD( "snd-4.bin", 0x060000, 0x020000, CRC(ac50133f) SHA1(d56a9569bd72c7bc13d09dcea9789cdc7252ffb4) )
7421 	ROM_LOAD( "snd-5.bin", 0x080000, 0x020000, CRC(70652f2c) SHA1(04ff016a087a230efe4644eb76f68886aae26978) )
7422 	ROM_LOAD( "snd-6.bin", 0x0a0000, 0x020000, CRC(10a1039d) SHA1(a1160fe600d39ae6fdbf247f634c2e094b3a675f) )
7423 	ROM_LOAD( "snd-7.bin", 0x0c0000, 0x020000, CRC(decbc8b0) SHA1(9d315d1119fbc2bf889efdb174ebc5e26ecad859) )
7424 	ROM_LOAD( "snd-8.bin", 0x0e0000, 0x020000, CRC(3ac51bee) SHA1(cb2ee501895b848d434991152dea293685f8ed22) )
7425 ROM_END
7426 
7427 ROM_START( wits )
7428 	ROM_REGION( 0x010000, REGION_CPU1, 0 )		/* 68000 Code */
7429 	ROM_LOAD16_BYTE( "un001001.u1", 0x000000, 0x008000, CRC(416c567e) SHA1(f0898ce4457efc272e0fec3447c9d4598684219e) )
7430 	ROM_LOAD16_BYTE( "un001002.u4", 0x000001, 0x008000, CRC(497a3fa6) SHA1(cf035efddc2a90013e83dcb81687ba1896ba6055) )
7431 
7432 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7433 	ROM_LOAD16_BYTE( "un001008.7l", 0x000000, 0x020000, CRC(1d5d0b2b) SHA1(12cf1be316012e8ee910edfd1b892b7ce1383535) )
7434 	ROM_LOAD16_BYTE( "un001007.5l", 0x000001, 0x020000, CRC(9e1e6d51) SHA1(9a87f0f18ac0b3d267fe8655d01750d693745c1f) )
7435 	ROM_LOAD16_BYTE( "un001006.4l", 0x040000, 0x020000, CRC(98a980d4) SHA1(ab2c1ed83bccffabfacc8a185d1fbc3e8aaf210d) )
7436 	ROM_LOAD16_BYTE( "un001005.2l", 0x040001, 0x020000, CRC(6f2ce3c0) SHA1(8086b44c7025bc0bffff75cc6c6c7846cc56e8d0) )
7437 
7438 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )	/* Samples */
7439 	ROM_LOAD( "un001004.12a", 0x000000, 0x020000, CRC(a15ff938) SHA1(fdfdf73e85d89a39cfc5b3c3048a64178200f942) )
7440 	ROM_LOAD( "un001003.10a", 0x020000, 0x020000, CRC(3f4b9e55) SHA1(3cecf89ae6a056622affcddec9e10be08761e56d) )
7441 ROM_END
7442 
7443 ROM_START( thunderl )
7444 	ROM_REGION( 0x010000, REGION_CPU1, 0 )		/* 68000 Code */
7445 	ROM_LOAD16_BYTE( "m4", 0x000000, 0x008000, CRC(1e6b9462) SHA1(f7f93479117e97d4e38632fef83c10345587f77f) )
7446 	ROM_LOAD16_BYTE( "m5", 0x000001, 0x008000, CRC(7e82793e) SHA1(3e487f465d64af8c1c4852567b2fd9190363570c) )
7447 
7448 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7449 	ROM_LOAD16_BYTE( "t17", 0x000000, 0x020000, CRC(599a632a) SHA1(29da423dfe1f971cbb205767cf902d199d968d85) )
7450 	ROM_LOAD16_BYTE( "t16", 0x000001, 0x020000, CRC(3aeef91c) SHA1(a5dc8c22a7bcc1199bdd09c7d0f1f8a378e757c5) )
7451 	ROM_LOAD16_BYTE( "t15", 0x040000, 0x020000, CRC(b97a7b56) SHA1(c08d3586d489947af21f3493356e3a88d79746e8) )
7452 	ROM_LOAD16_BYTE( "t14", 0x040001, 0x020000, CRC(79c707be) SHA1(f67fa40c8f6ab0fbce44997fdfbf699fea1f0df6) )
7453 
7454 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7455 	ROM_LOAD( "r28", 0x000000, 0x080000, CRC(a043615d) SHA1(e483fa9fd8e922578a9d7b6ced0750643089ca78) )
7456 	ROM_LOAD( "r27", 0x080000, 0x080000, CRC(cb8425a3) SHA1(655afa295fbe99acc79c4004f03ed832560cff5b) )
7457 ROM_END
7458 
7459 ROM_START( rezon )
7460 	ROM_REGION( 0x200000, REGION_CPU1, 0 )		/* 68000 Code */
7461 	ROM_LOAD16_BYTE( "us001001.u3",  0x000000, 0x020000, CRC(ab923052) SHA1(26761c228b63c300f635787e63e1276b6e3083f0) )
7462 	ROM_LOAD16_BYTE( "us001002.u4",  0x000001, 0x020000, CRC(3dafa0d5) SHA1(80cdff86b99d364acbbf1322c73b2f26b1a93167) )
7463 	/* empty gap */
7464 	ROM_LOAD16_BYTE( "us001004.103", 0x100000, 0x020000, CRC(54871c7c) SHA1(2f807b15760b1e712fa69eee6f33cc8a36ee1c02) ) /* 1xxxxxxxxxxxxxxxx = 0x00*/
7465 	ROM_LOAD16_BYTE( "us001003.102", 0x100001, 0x020000, CRC(1ac3d272) SHA1(0f19bc9c19e355dad5b463b0fa33127523bf141b) ) /* 1xxxxxxxxxxxxxxxx = 0x00*/
7466 
7467 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7468 	ROM_LOAD( "us001006.u64",  0x000000, 0x080000, CRC(a4916e96) SHA1(bfb63b72273e4fbf0843b3201bb4fddaf54909a7) )
7469 	ROM_LOAD( "us001005.u63",  0x080000, 0x080000, CRC(e6251ebc) SHA1(f02a4c8373e33fc57e18e39f1b5ecff3f6d9ca9e) )
7470 
7471 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7472 	ROM_LOAD( "us001007.u66",  0x000000, 0x080000, CRC(3760b935) SHA1(f5fe69f7e93c90a5b6c1dff236402b962821e33f) ) /* 1xxxxxxxxxxxxxxxxxx = 0xFF*/
7473 
7474 	ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
7475 	ROM_LOAD( "us001008.u68",  0x000000, 0x080000, CRC(0ab73910) SHA1(78e2c0570c5c6f5e1cdb2fbeae73376923127024) ) /* 1xxxxxxxxxxxxxxxxxx = 0xFF*/
7476 
7477 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7478 	ROM_LOAD16_WORD_SWAP( "us001009.u70",  0x000000, 0x100000, CRC(0d7d2e2b) SHA1(cfba19314ecb0a49ed9ff8df32cd6a3fe37ff526) )
7479 ROM_END
7480 
7481 ROM_START( stg )
7482 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
7483 	ROM_LOAD16_BYTE( "att01003.u27", 0x000000, 0x020000, CRC(7a640a93) SHA1(28c54eca9502d06ca55c2db91bfe7d149af006ed) )
7484 	ROM_LOAD16_BYTE( "att01001.u9",  0x000001, 0x020000, CRC(4fa88ad3) SHA1(55e0e689758511cdf514a633ffe3d7729e281b52) )
7485 	ROM_LOAD16_BYTE( "att01004.u33", 0x040000, 0x020000, CRC(bbd45ca1) SHA1(badb11faf5779e8444dd95eb08a94fbf9f73cc2c) ) /* 1xxxxxxxxxxxxxxxx = 0xFF*/
7486 	ROM_LOAD16_BYTE( "att01002.u17", 0x040001, 0x020000, CRC(2f8fd80c) SHA1(b8e16adc84b918b5eee05d032a7841e8d726eeeb) ) /* 1xxxxxxxxxxxxxxxx = 0xFF*/
7487 
7488 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7489 	ROM_LOAD( "att01006.u32", 0x000000, 0x080000, CRC(6ad78ea2) SHA1(eb8fc9833fb1c7041f5e0a3b37c8de9156a034b6) )
7490 	ROM_LOAD( "att01005.u26", 0x080000, 0x080000, CRC(a347ff00) SHA1(8455c5e7dfa25646b1782ab3bcf62fca91ca03ad) )
7491 
7492 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7493 	ROM_LOAD( "att01008.u39", 0x000000, 0x080000, CRC(20c47457) SHA1(53ddf8c076aa35fb87edc739bc9e9612a5a1526b) ) /* FIRST AND SECOND HALF IDENTICAL*/
7494 	ROM_LOAD( "att01007.u42", 0x080000, 0x080000, CRC(ac975544) SHA1(5cdd2c7aada7179d4bdaf8578134c0ef672a2704) ) /* FIRST AND SECOND HALF IDENTICAL*/
7495 
7496 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7497 	ROM_LOAD( "att01009.u47", 0x000000, 0x080000, CRC(4276b58d) SHA1(a2e77dc3295791520c6cb25dea4e910b5a7bc137) )
7498 	ROM_LOAD( "att01010.u55", 0x080000, 0x080000, CRC(fffb2f53) SHA1(0aacb24437e9a6874850313163922d834da27611) )
7499 ROM_END
7500 
7501 ROM_START( blandia )
7502 	ROM_REGION( 0x200000, REGION_CPU1, 0 )		/* 68000 Code */
7503 	ROM_LOAD16_BYTE( "ux001001.003",  0x000000, 0x040000, CRC(2376a1f3) SHA1(705a3c5cc1137d14ffded6c949bf9aa650133eb7) )
7504 	ROM_LOAD16_BYTE( "ux001002.004",  0x000001, 0x040000, CRC(b915e172) SHA1(e43e50a664dc1286ece42a5ff8629b2da7fb49b4) )
7505 	ROM_LOAD16_WORD_SWAP( "ux001003.202",     0x100000, 0x100000, CRC(98052c63) SHA1(b523596de29038b3ec9f1b6e1f7374a6a8709d42) )
7506 
7507 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7508 	ROM_LOAD( "ux001005.200",  0x300000, 0x100000, CRC(bea0c4a5) SHA1(a690c17fb7cbdab533c1dfad13abbad9359b9631) )
7509 	ROM_LOAD( "ux001007.201",  0x100000, 0x100000, CRC(4440fdd1) SHA1(7bfee90f81a2c867bd487abcf5905393ad400902) )
7510 	ROM_LOAD( "ux001006.063",  0x200000, 0x100000, CRC(abc01cf7) SHA1(c3f26e75eeb68073d2825be8df82cc6afcfbfb26) )
7511 	ROM_LOAD( "ux001008.064",  0x000000, 0x100000, CRC(413647b6) SHA1(594e010ca6f49ec82cc6d44fe23ac3427c4c3dbd) )
7512 
7513 	ROM_REGION( 0x0c0000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7514 	ROM_LOAD( "ux001009.065",  0x000000, 0x080000, CRC(bc6f6aea) SHA1(673efa0c70587b5650ccf0a3c4bc316f53d52ba6) )
7515 	ROM_LOAD( "ux001010.066",  0x040000, 0x080000, CRC(bd7f7614) SHA1(dc865ff0f327f460956915b2018aaac815e8fce5) )
7516 
7517 	ROM_REGION( 0x0c0000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
7518 	ROM_LOAD( "ux001011.067",  0x000000, 0x080000, CRC(5efe0397) SHA1(a294a2dae9a10e93912543a8614a7f960a011f27) )
7519 	ROM_LOAD( "ux001012.068",  0x040000, 0x080000, CRC(f29959f6) SHA1(edccea3d0bf972a07edd6339e18792d089033bff) )
7520 
7521 	/* The c0000-fffff region is bankswitched */
7522 	ROM_REGION( 0x240000, REGION_SOUND1, 0 )	/* Samples */
7523 	ROM_LOAD( "ux001013.069",  0x000000, 0x0c0000, CRC(5cd273cd) SHA1(602e1f10454e2b1c941f2e6983872bb9ca77a542) )
7524 	/* skip c0000-fffff (banked region)*/
7525 	ROM_CONTINUE(              0x100000, 0x040000             )
7526 	ROM_LOAD( "ux001014.070",  0x140000, 0x080000, CRC(86b49b4e) SHA1(045b352950d848907af4c22b817d154b2cfff382) )
7527 ROM_END
7528 
7529 ROM_START( blandiap )
7530 	ROM_REGION( 0x200000, REGION_CPU1, 0 )		/* 68000 Code */
7531 	ROM_LOAD16_BYTE( "prg-even.bin", 0x000000, 0x040000, CRC(7ecd30e8) SHA1(25e555a45bbb154170189b065206f7536a5dec1b) )
7532 	ROM_LOAD16_BYTE( "prg-odd.bin",  0x000001, 0x040000, CRC(42b86c15) SHA1(9a4adcc16c35f84826a6effed5ebe439483ab856) )
7533 	ROM_LOAD16_BYTE( "tbl0.bin",     0x100000, 0x080000, CRC(69b79eb8) SHA1(f7b33c99744d8b7f6e2991b4d2b35719eebd0b43) )
7534 	ROM_LOAD16_BYTE( "tbl1.bin",     0x100001, 0x080000, CRC(cf2fd350) SHA1(4d0fb720af544f746eeaaad499be00e0d1c6f129) )
7535 
7536 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7537 	ROM_LOAD16_BYTE( "o-1.bin",  0x000000, 0x080000, CRC(4c67b7f0) SHA1(ad6bd4b880f0f63a803c097795a4b70f24c94848) )
7538 	ROM_LOAD16_BYTE( "o-0.bin",  0x000001, 0x080000, CRC(5e7b8555) SHA1(040599db77041765f582aa99d6f616a7a2c4dd5c) )
7539 	ROM_LOAD16_BYTE( "o-5.bin",  0x100000, 0x080000, CRC(40bee78b) SHA1(1ec0b1854c26ba300a3a54077332a9af55677dca) )
7540 	ROM_LOAD16_BYTE( "o-4.bin",  0x100001, 0x080000, CRC(7c634784) SHA1(047287c630336001d2b1e21f7273ccc3d5278e3c) )
7541 	ROM_LOAD16_BYTE( "o-3.bin",  0x200000, 0x080000, CRC(387fc7c4) SHA1(4e5bd3985f16aa7295110a9902adc8e1453c03ab) )
7542 	ROM_LOAD16_BYTE( "o-2.bin",  0x200001, 0x080000, CRC(c669bb49) SHA1(db5051ea8b08672b6079004060e20fb250560d9f) )
7543 	ROM_LOAD16_BYTE( "o-7.bin",  0x300000, 0x080000, CRC(fc77b04a) SHA1(b3c7b2cb9407cac261890e0355cbb87ac8e2e93c) )
7544 	ROM_LOAD16_BYTE( "o-6.bin",  0x300001, 0x080000, CRC(92882943) SHA1(460f3ae37d6f88d3a6068e2fb8d0d330be7c786f) )
7545 
7546 	ROM_REGION( 0x0c0000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7547 	ROM_LOAD( "v1-2.bin",  0x000000, 0x020000, CRC(d524735e) SHA1(4d17e7896b6c6451effe8a19bf7a4919db0cc06d) )
7548 	ROM_LOAD( "v1-5.bin",  0x020000, 0x020000, CRC(eb440cdb) SHA1(180ed9d616c66b7fae1a3d1156028c8476e45bde) )
7549 	ROM_LOAD( "v1-1.bin",  0x040000, 0x020000, CRC(09bdf75f) SHA1(33bda046092d5bc3d8e8ffec25c745a2fda16a5c) )
7550 	ROM_LOAD( "v1-4.bin",  0x060000, 0x020000, CRC(803911e5) SHA1(a93cac42eda69698b393a1a49e3615ee60868838) )
7551 	ROM_LOAD( "v1-0.bin",  0x080000, 0x020000, CRC(73617548) SHA1(9c04d0179cb93e9fb78cc8af1006ef3edfcde707) )
7552 	ROM_LOAD( "v1-3.bin",  0x0a0000, 0x020000, CRC(7f18e4fb) SHA1(0e51e3f88b90c07a1352bcd42e6438c947d4856e) )
7553 
7554 	ROM_REGION( 0x0c0000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
7555 	ROM_LOAD( "v2-2.bin",  0x000000, 0x020000, CRC(c4f15638) SHA1(6be0f3e90ab23189caadfd99b3e4ded74749ebbc) )	/* identical to v2-1*/
7556 	ROM_LOAD( "v2-5.bin",  0x020000, 0x020000, CRC(c2e57622) SHA1(994a4774d68f2d562d985951b06216d59f38afe9) )
7557 	ROM_LOAD( "v2-1.bin",  0x040000, 0x020000, CRC(c4f15638) SHA1(6be0f3e90ab23189caadfd99b3e4ded74749ebbc) )
7558 	ROM_LOAD( "v2-4.bin",  0x060000, 0x020000, CRC(16ec2130) SHA1(187f548563577ca36cced9ae184d27e6fcdd7e6a) )
7559 	ROM_LOAD( "v2-0.bin",  0x080000, 0x020000, CRC(5b05eba9) SHA1(665001cdb3c9977f8f4c7ce551549f7fc640c6a9) )
7560 	ROM_LOAD( "v2-3.bin",  0x0a0000, 0x020000, CRC(80ad0c3b) SHA1(00fcbcf7805784d7298b92136e7f256d65029c44) )
7561 
7562 	/* The c0000-fffff region is bankswitched */
7563 	ROM_REGION( 0x240000, REGION_SOUND1, 0 )	/* Samples */
7564 	ROM_LOAD( "s-0.bin",  0x000000, 0x020000, CRC(a5fde408) SHA1(89efcd37ef6c5b313169d74a962a7c074a09b12a) )
7565 	ROM_CONTINUE(         0x140000, 0x020000             )
7566 	ROM_LOAD( "s-1.bin",  0x020000, 0x020000, CRC(3083f9c4) SHA1(f5d2297c3d680eb1f128fa42a3a7f61badb9853a) )
7567 	ROM_CONTINUE(         0x160000, 0x020000             )
7568 	ROM_LOAD( "s-2.bin",  0x040000, 0x020000, CRC(a591c9ef) SHA1(83e665e342c42fd3582c83becfacc27a3a3e5a54) )
7569 	ROM_CONTINUE(         0x180000, 0x020000             )
7570 	ROM_LOAD( "s-3.bin",  0x060000, 0x020000, CRC(68826c9d) SHA1(a860b7b2140a5a506bf25110c08c6ea59db25743) )
7571 	ROM_CONTINUE(         0x1a0000, 0x020000             )
7572 	ROM_LOAD( "s-4.bin",  0x080000, 0x020000, CRC(1c7dc8c2) SHA1(006459a23de83fe48e11bdd6ebe23ef6a18a87e8) )
7573 	ROM_CONTINUE(         0x1c0000, 0x020000             )
7574 	ROM_LOAD( "s-5.bin",  0x0a0000, 0x020000, CRC(4bb0146a) SHA1(1e3c1739ea3c85296573426e55f25dce11f0ed2b) )
7575 	ROM_CONTINUE(         0x1e0000, 0x020000             )
7576 	ROM_LOAD( "s-6.bin",  0x100000, 0x020000, CRC(9f8f34ee) SHA1(60abb70ae87595ebae23df68d62f3b0ed4a2e768) )	/* skip c0000-fffff (banked region)*/
7577 	ROM_CONTINUE(         0x200000, 0x020000             )	/* this half is 0*/
7578 	ROM_LOAD( "s-7.bin",  0x120000, 0x020000, CRC(e077dd39) SHA1(a6f0881a026161710adc132bcf7cb95c4c8f2528) )
7579 	ROM_CONTINUE(         0x220000, 0x020000             )	/* this half is 0*/
7580 ROM_END
7581 
7582 ROM_START( blockcar )
7583 	ROM_REGION( 0x040000, REGION_CPU1, 0 )		/* 68000 Code */
7584 	ROM_LOAD16_BYTE( "u1.a1",  0x000000, 0x020000, CRC(4313fb00) SHA1(f5b9e212436282284fa344e1c4200bc38ca3c50a) )
7585 	ROM_LOAD16_BYTE( "u4.a3",  0x000001, 0x020000, CRC(2237196d) SHA1(5a9d972fac94e62f026c36bca0c2f5fe8e0e1a1d) )
7586 
7587 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7588 	ROM_LOAD( "bl-chr-0.j3",  0x000000, 0x080000, CRC(a33300ca) SHA1(b0a7ccb77c3e8e33c12b83e254924f30209a4c2c) )
7589 	ROM_LOAD( "bl-chr-1.l3",  0x080000, 0x080000, CRC(563de808) SHA1(40b2f9f4a4cb1a019f6419572ee21d66dda7d4af) )
7590 
7591 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7592 	ROM_LOAD( "bl-snd-0.a13",  0x000000, 0x080000, CRC(a92dabaf) SHA1(610c1dc0467753dfddaa4b27bc40cb118b0bc7a3) )
7593 	ROM_RELOAD(                0x080000, 0x080000             )
7594 ROM_END
7595 
7596 ROM_START( qzkklogy )
7597 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
7598 	ROM_LOAD16_BYTE( "3.u27", 0x000000, 0x020000, CRC(b8c27cde) SHA1(4c36076801b6c915888b925c1e37d772bab1bb02) )
7599 	ROM_LOAD16_BYTE( "1.u9",  0x000001, 0x020000, CRC(ce01cd54) SHA1(ef91aecdf7b5586a6870ff237372d65f85cd4cd3) )
7600 	ROM_LOAD16_BYTE( "4.u33", 0x040000, 0x020000, CRC(4f5c554c) SHA1(0a10cefdf2dd876e6cb78023c3c15af24ba3c39a) )
7601 	ROM_LOAD16_BYTE( "2.u17", 0x040001, 0x020000, CRC(65fa1b8d) SHA1(81fd7785f138a189de978fd30dbfca36687cda17) )
7602 
7603 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7604 	ROM_LOAD( "t2709u32.u32", 0x000000, 0x080000, CRC(900f196c) SHA1(b60741c3242ce56cb61ea68093b571489db0c6fa) ) /* FIRST AND SECOND HALF IDENTICAL*/
7605 	ROM_LOAD( "t2709u26.u26", 0x080000, 0x080000, CRC(416ac849) SHA1(3bd5dd13a8f2693e8f160a4ecfff3b7610644f5f) ) /* FIRST AND SECOND HALF IDENTICAL*/
7606 
7607 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7608 	ROM_LOAD( "t2709u42.u39", 0x000000, 0x080000, CRC(194d5704) SHA1(ab2833f7427d0608850c158b813bc49935ac7d6d) )
7609 	ROM_LOAD( "t2709u39.u42", 0x080000, 0x080000, CRC(6f95a76d) SHA1(925f5880fb5153c1215d1f5ee1eff5b53a84abea) )
7610 
7611 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7612 	ROM_LOAD( "t2709u47.u47", 0x000000, 0x080000, CRC(0ebdad40) SHA1(6558eeaac76d98d91b0be6faa78f531f1e3b9f84) )
7613 	ROM_LOAD( "t2709u55.u55", 0x080000, 0x080000, CRC(43960c68) SHA1(9a1901b65f989aa57ab8736ef0be3bac492c081c) )
7614 ROM_END
7615 
7616 ROM_START( umanclub )
7617 	ROM_REGION( 0x040000, REGION_CPU1, 0 )		/* 68000 Code */
7618 	ROM_LOAD16_BYTE( "uw001006.u48", 0x000000, 0x020000, CRC(3dae1e9d) SHA1(91a738c299d134d198bad648383be87345f4f475) )
7619 	ROM_LOAD16_BYTE( "uw001007.u49", 0x000001, 0x020000, CRC(5c21e702) SHA1(c69e9dd7dfac82f116885610f90878f865e629b3) )
7620 
7621 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7622 	ROM_LOAD( "bp-u-002.u2", 0x000000, 0x080000, CRC(936cbaaa) SHA1(f7932ee310eb792b2776ae8a9d29e1a492761b11) )
7623 	ROM_LOAD( "bp-u-001.u1", 0x080000, 0x080000, CRC(87813c48) SHA1(7ec9b08fe0490d277c531e2b6394862df4d5678d) )
7624 
7625 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7626 	ROM_LOAD( "uw003.u13", 0x000000, 0x100000, CRC(e2f718eb) SHA1(fd085b68f76c8778816a1b7d47783b9dc20bff12) )
7627 ROM_END
7628 
7629 ROM_START( zingzip )
7630 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
7631 	ROM_LOAD16_BYTE( "uy001001.3",	0x000000, 0x040000, CRC(1a1687ec) SHA1(c840752dd87d8c1c30e6b31452173148e20538b1) )
7632 	ROM_LOAD16_BYTE( "uy001002.4",	0x000001, 0x040000, CRC(62e3b0c4) SHA1(51a27fbf68a142dd132157bed1dc22acda3fa044) )
7633 
7634 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7635 	ROM_LOAD( "uy001006.64",		0x000000, 0x080000, CRC(46e4a7d8) SHA1(2c829e52d9aead351702335bf06aa0f337528306) )
7636 	ROM_LOAD( "uy001005.63",		0x080000, 0x080000, CRC(4aac128e) SHA1(3ac64c84a40f86e29e33a218babcd21cae6dbfdb) )
7637 
7638 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7639 	ROM_LOAD( "uy001008.66",		0x000000, 0x100000, CRC(1dff7c4b) SHA1(94f581f4aae1ef417dce6e62a611a523205e8c27) ) /* FIRST AND SECOND HALF IDENTICAL*/
7640 	ROM_LOAD16_BYTE( "uy001007.65",	0x100000, 0x080000, CRC(ec5b3ab9) SHA1(e82fb050ae4e2486e43418fcb5fa726d92c5cd21) )
7641 
7642 	ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
7643 	ROM_LOAD( "uy001010.68",		0x000000, 0x100000, CRC(bdbcdf03) SHA1(857f541697f76086ac6c761a3505678a3d3499df) ) /* FIRST AND SECOND HALF IDENTICAL*/
7644 
7645 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7646 	ROM_LOAD( "uy001011.70",		0x000000, 0x100000, CRC(bd845f55) SHA1(345b79cfcd8c924d6ba365814286e518438f10bc) ) /* uy001017 + uy001018*/
7647 ROM_END
7648 
7649 ROM_START( atehate )
7650 	ROM_REGION( 0x100000, REGION_CPU1, 0 )		/* 68000 Code */
7651 	ROM_LOAD16_BYTE( "fs001001.evn", 0x000000, 0x080000, CRC(4af1f273) SHA1(79b28fe768aa634c31ee4e7687e62ebe78cf4014) )
7652 	ROM_LOAD16_BYTE( "fs001002.odd", 0x000001, 0x080000, CRC(c7ca7a85) SHA1(1221f57d4aa3d2cb6662bc059978eafd65c1858f) )
7653 
7654 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7655 	ROM_LOAD( "fs001003.gfx", 0x000000, 0x200000, CRC(8b17e431) SHA1(643fc62d5bad9941630ab621ecb3c69ded9d4536) )
7656 
7657 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7658 	ROM_LOAD( "fs001004.pcm", 0x000000, 0x100000, CRC(f9344ce5) SHA1(cffbc235f3a8e9a5004e671d924affd321ec9eed) )
7659 ROM_END
7660 
7661 ROM_START( daioh )
7662 	ROM_REGION( 0x100000, REGION_CPU1, 0 )		/* 68000 Code */
7663 	ROM_LOAD16_BYTE( "fg1-001",  0x000000, 0x080000, CRC(104ae74a) SHA1(928c467e3ff98285a4828a927d851fcdf296849b) )
7664 	ROM_LOAD16_BYTE( "fg1-002",  0x000001, 0x080000, CRC(e39a4e67) SHA1(c3f47e9d407f32dbfaf209d29b4446e4de8829a2) )
7665 
7666 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7667 	ROM_LOAD( "fg1-004", 0x000000, 0x100000, CRC(9ab0533e) SHA1(b260ceb2b3e140971419329bee07a020171794f7) )
7668 	ROM_LOAD( "fg1-003", 0x100000, 0x100000, CRC(1c9d51e2) SHA1(1d6236ab28d11676386834fd6e405fd40198e924) )
7669 
7670 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 1 */
7671 	ROM_LOAD( "fg1-005",  0x000000, 0x200000, CRC(c25159b9) SHA1(4c9da3233223508389c3c0f277a00aedfc860da4) )
7672 
7673 	ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 2 */
7674 	ROM_LOAD( "fg1-006",  0x000000, 0x200000, CRC(2052c39a) SHA1(83a444a76e68aa711b0e25a5aa963ca876a6357e) )
7675 
7676 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7677 	ROM_LOAD( "fg1-007",  0x000000, 0x100000, CRC(4a2fe9e0) SHA1(e55b6f301f842ff5d3c7a0041856695ac1d8a78f) )
7678 ROM_END
7679 
7680 ROM_START( msgundam )
7681 	ROM_REGION( 0x200000, REGION_CPU1, 0 )		/* 68000 Code */
7682 	ROM_LOAD16_WORD_SWAP( "fa003002.u25",  0x000000, 0x080000, CRC(1cc72d4c) SHA1(5043d693b5a8116a077d5b6997b658cb287e2aa7) )
7683 	ROM_LOAD16_WORD_SWAP( "fa001001.u20",  0x100000, 0x100000, CRC(fca139d0) SHA1(b56282c69f7ec64c697a48e42d59a2565401c032) )
7684 
7685 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7686 	ROM_LOAD( "fa001008.u21",  0x000000, 0x200000, CRC(e7accf48) SHA1(dca9d53bc9cf0ecb661358d5a3f388c4ce9388e7) )
7687 	ROM_LOAD( "fa001007.u22",  0x200000, 0x200000, CRC(793198a6) SHA1(45f53870e74b14126680d18dd58dbbe01a6ef509) )
7688 
7689 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7690 	ROM_LOAD( "fa001006.u23",  0x000000, 0x100000, CRC(3b60365c) SHA1(bdf5a0b1b45eb75dbbb6725d1e5303716321aeb9) )
7691 
7692 	ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
7693 	ROM_LOAD( "fa001005.u24",  0x000000, 0x080000, CRC(8cd7ff86) SHA1(ce7eb90776e21239f8f52e822c636143506c6f9b) )
7694 
7695 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7696 	ROM_LOAD( "fa001004.u26",  0x000000, 0x100000, CRC(b965f07c) SHA1(ff7827cc80655465ffbb732d55ba81f21f51a5ca) )
7697 ROM_END
7698 
7699 ROM_START( msgunda1 )
7700 	ROM_REGION( 0x200000, REGION_CPU1, 0 )		/* 68000 Code */
7701 	ROM_LOAD16_WORD_SWAP( "fa002002.u25",  0x000000, 0x080000, CRC(dee3b083) SHA1(e2ad626aa0109906846dd9e9053ffc83b7bf4d2e) )
7702 	ROM_LOAD16_WORD_SWAP( "fa001001.u20",  0x100000, 0x100000, CRC(fca139d0) SHA1(b56282c69f7ec64c697a48e42d59a2565401c032) )
7703 
7704 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7705 	ROM_LOAD( "fa001008.u21",  0x000000, 0x200000, CRC(e7accf48) SHA1(dca9d53bc9cf0ecb661358d5a3f388c4ce9388e7) )
7706 	ROM_LOAD( "fa001007.u22",  0x200000, 0x200000, CRC(793198a6) SHA1(45f53870e74b14126680d18dd58dbbe01a6ef509) )
7707 
7708 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7709 	ROM_LOAD( "fa001006.u23",  0x000000, 0x100000, CRC(3b60365c) SHA1(bdf5a0b1b45eb75dbbb6725d1e5303716321aeb9) )
7710 
7711 	ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
7712 	ROM_LOAD( "fa001005.u24",  0x000000, 0x080000, CRC(8cd7ff86) SHA1(ce7eb90776e21239f8f52e822c636143506c6f9b) )
7713 
7714 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7715 	ROM_LOAD( "fa001004.u26",  0x000000, 0x100000, CRC(b965f07c) SHA1(ff7827cc80655465ffbb732d55ba81f21f51a5ca) )
7716 ROM_END
7717 
7718 ROM_START( oisipuzl )
7719 	ROM_REGION( 0x180000, REGION_CPU1, 0 )		/* 68000 Code */
7720 	ROM_LOAD16_WORD_SWAP( "ss1u200.v10", 0x000000, 0x080000, CRC(f5e53baf) SHA1(057e8b35bc6f65634685b5d0cf38e12f2e62d72c) )
7721 	/* Gap of 0x80000 bytes */
7722 	ROM_LOAD16_WORD_SWAP( "ss1u201.v10", 0x100000, 0x080000, CRC(7a7ff5ae) SHA1(9e4da7ecc4d833c3ba4ddc6e5870fad53b9b2d2b) )
7723 
7724 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT )	/* Sprites */
7725 	ROM_LOAD( "ss1u306.v10", 0x000000, 0x080000, CRC(ce43a754) SHA1(3991042678badafee716b084c1768a794f144b1e) )
7726 	ROM_LOAD( "ss1u307.v10", 0x080000, 0x080000, CRC(2170b7ec) SHA1(c9f3d12646d4e877bc2b656f977e21d927f241f6) )
7727 	ROM_LOAD( "ss1u304.v10", 0x100000, 0x080000, CRC(546ab541) SHA1(aa96a79e3b0ba71f5e0fbb15e190d219630c2ba3) )
7728 	ROM_LOAD( "ss1u305.v10", 0x180000, 0x080000, CRC(2a33e08b) SHA1(780cfe44a4d57b254bd0cfae8727dc77358027a8) )
7729 
7730 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7731 	ROM_LOAD( "ss1u23.v10",  0x000000, 0x080000, CRC(9fa60901) SHA1(3d42e4174ad566b6eeb488c7a4c51db9c1fef7af) )
7732 	ROM_LOAD( "ss1u24.v10",  0x080000, 0x080000, CRC(c10eb4b3) SHA1(70a82a750b1d9c849cd92d4f73769bbf5962c771) )
7733 
7734 	ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
7735 	ROM_LOAD( "ss1u25.v10",  0x000000, 0x080000, CRC(56840728) SHA1(db61539fd84f0de35ee2077238ba3646c4960cc6) )
7736 
7737 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7738 	ROM_LOAD( "ss1u26.v10", 0x000000, 0x080000, CRC(d452336b) SHA1(d3bf3cb383c40911758a60546f121c48087868e3) )
7739 	ROM_LOAD( "ss1u27.v10", 0x080000, 0x080000, CRC(17fe921d) SHA1(7fc176b8eefad4f2b8532bfe62e7852d2be185ca) )
7740 ROM_END
7741 
7742 ROM_START( triplfun )
7743 	ROM_REGION( 0x180000, REGION_CPU1, 0 )
7744 	/* the program fails its self-check but thats probably because
7745 	   its a bootleg, it does the same on the real board */
7746 	ROM_LOAD16_BYTE( "05.bin", 0x000000, 0x40000, CRC(06eb3821) SHA1(51c67c87b5c28e693dfffd32d25cdb6d2a9448cf) )
7747 	ROM_CONTINUE(0x100000,0x40000)
7748 	ROM_LOAD16_BYTE( "04.bin", 0x000001, 0x40000, CRC(37a5c46e) SHA1(80b49b422a7db64d9ba5896da2b01a4588a6cf62) )
7749 	ROM_CONTINUE(0x100001,0x40000)
7750 
7751 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
7752 	ROM_LOAD16_BYTE( "08.bin", 0x000001, 0x80000, CRC(63a8f10f) SHA1(0a045d559b9edc9f335e6ec2d214d70c4959ec50) )
7753 	ROM_LOAD16_BYTE( "09.bin", 0x000000, 0x80000, CRC(98cc8ca5) SHA1(1bd9d2d860e02ee4fea3d9592172690cb9d3acf2) )
7754 	ROM_LOAD16_BYTE( "10.bin", 0x100001, 0x80000, CRC(20b0f282) SHA1(c98de63c1ad9dfe9b24f55966ccc5392c5ae82ba) )
7755 	ROM_LOAD16_BYTE( "11.bin", 0x100000, 0x80000, CRC(276ef724) SHA1(e0c642dfd19542234abb0de68a66f8c36d9cb827) )
7756 
7757 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
7758 	ROM_LOAD16_BYTE( "02.bin", 0x000000, 0x80000, CRC(4c0d1068) SHA1(cb77309474938765fd0582ab132f19fb5e21fca3) )
7759 	ROM_LOAD16_BYTE( "03.bin", 0x000001, 0x80000, CRC(dba94e18) SHA1(3f54d874287e4ab96b2791503235488164d90cb1) )
7760 
7761 	ROM_REGION( 0x80000, REGION_GFX3, ROMREGION_DISPOSE )
7762 	ROM_LOAD16_BYTE( "06.bin", 0x000000, 0x40000, CRC(8944bb72) SHA1(37cd0e2c8e99fb23ea70dc183a8aa0670c5f6b65) )
7763 	ROM_LOAD16_BYTE( "07.bin", 0x000001, 0x40000, CRC(934a5d91) SHA1(aa19d2699b5ebdd99d59004005b0ce0c5140d192) )
7764 
7765 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )
7766 	ROM_LOAD( "01.bin", 0x000000, 0x40000, CRC(c186a930) SHA1(e17e1a620e380f0737b80c7f160ad643979b2799) )
7767 ROM_END
7768 
7769 ROM_START( qzkklgy2 )
7770 	ROM_REGION( 0x0c0000, REGION_CPU1, 0 )		/* 68000 Code */
7771 	ROM_LOAD16_WORD_SWAP( "fn001001.106", 0x000000, 0x080000, CRC(7bf8eb17) SHA1(f2d1666e22f564d59b37ca00c8db34ca822fd142) )
7772 	ROM_LOAD16_WORD_SWAP( "fn001003.107", 0x080000, 0x040000, CRC(ee6ef111) SHA1(6d9efac46ba01fff8784034801cba10e38b2c923) )
7773 
7774 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7775 	ROM_LOAD( "fn001004.100", 0x000000, 0x100000, CRC(5ba139a2) SHA1(24fe19a7e5d2cd53bf3b1c71bf05020067f5e956) )
7776 
7777 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7778 	ROM_LOAD( "fn001005.104", 0x000000, 0x200000, CRC(95726a63) SHA1(e53ffc2815c4858bbfb5ff452c581bccb41854c9) )
7779 
7780 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7781 	ROM_LOAD( "fn001006.105", 0x000000, 0x100000, CRC(83f201e6) SHA1(536e74788ad0e07451300a1ad3b127bc9d2d9063) )
7782 ROM_END
7783 
7784 ROM_START( wrofaero )
7785 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
7786 	ROM_LOAD16_BYTE( "u3.bin",  0x000000, 0x040000, CRC(9b896a97) SHA1(f4e768911705e6def5dc4a43cfc4146c48c80caf) )
7787 	ROM_LOAD16_BYTE( "u4.bin",  0x000001, 0x040000, CRC(dda84846) SHA1(50142692e13190900bc752908b105b65c48ea911) )
7788 
7789 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7790 	ROM_LOAD( "u64.bin",  0x000000, 0x080000, CRC(f06ccd78) SHA1(1701bdac2c826327441cfe0039b4cadf8f3a4803) )
7791 	ROM_LOAD( "u63.bin",  0x080000, 0x080000, CRC(2a602a1b) SHA1(b04fa743200d62bc25a6aa34efae53209f185f79) )
7792 
7793 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7794 	ROM_LOAD( "u66.bin",  0x000000, 0x080000, CRC(c9fc6a0c) SHA1(85ac0726221e3fedd80bd9b426d61471eb20ce46) )
7795 
7796 	ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
7797 	ROM_LOAD( "u68.bin",  0x000000, 0x080000, CRC(25c0c483) SHA1(2e705e7f0c66c3bc73e78ffb526606ab8be61d99) )
7798 
7799 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7800 	ROM_LOAD( "u69.bin",  0x000000, 0x080000, CRC(957ecd41) SHA1(3b37ba44b8b8f0f0de41c8c26c3dfdb391ba572c) )
7801 	ROM_LOAD( "u70.bin",  0x080000, 0x080000, CRC(8d756fdf) SHA1(d66712a6aa19252f2c915ac66fc27df031fa9512) )
7802 ROM_END
7803 
7804 ROM_START( jjsquawk )
7805 	ROM_REGION( 0x180000, REGION_CPU1, 0 )		/* 68000 Code */
7806 	ROM_LOAD16_BYTE( "jj-rom1.040", 0x000000, 0x040000, CRC(7b9af960) SHA1(1718d54b0c12ae148de44f9ccccf90c0182f7b4f) )
7807 	ROM_CONTINUE   (                0x100000, 0x040000             )
7808 	ROM_LOAD16_BYTE( "jj-rom2.040", 0x000001, 0x040000, CRC(47dd71a3) SHA1(e219d984a1cac484ce1e570b7849562a88e0903e) )
7809 	ROM_CONTINUE   (                0x100001, 0x040000             )
7810 
7811 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7812 	ROM_LOAD( "jj-rom9",  0x000000, 0x080000, CRC(27441cd3) SHA1(5867fc30c158e07f2d36ecab97b1d304383e6f35) )
7813 	ROM_LOAD( "jj-rom10", 0x080000, 0x080000, CRC(ca2b42c4) SHA1(9b99b6618fe44a6c29a255e89dab72a0a56214df) )
7814 	ROM_LOAD( "jj-rom7",  0x100000, 0x080000, CRC(62c45658) SHA1(82b1ea138e8f4b4ade7e44b31843aa2023c9dd71) )
7815 	ROM_LOAD( "jj-rom8",  0x180000, 0x080000, CRC(2690c57b) SHA1(b880ded7715dffe12c4fea7ad7cb9c5133b73250) )
7816 
7817 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7818 	ROM_LOAD       ( "jj-rom11",    0x000000, 0x080000, CRC(98b9f4b4) SHA1(de96708aebb428ddc413c3649caaec80c0c155bd) )
7819 	ROM_LOAD       ( "jj-rom12",    0x080000, 0x080000, CRC(d4aa916c) SHA1(d619d20c33f16ab06b529fc1717ad9b703acbabf) )
7820 	ROM_LOAD16_BYTE( "jj-rom3.040", 0x100000, 0x080000, CRC(a5a35caf) SHA1(da4bdb7f0b319f8ff972a552d0134a73e5ac1b87) )
7821 
7822 	ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
7823 	ROM_LOAD       ( "jj-rom14",    0x000000, 0x080000, CRC(274bbb48) SHA1(b8db632a9bbb7232d0b1debd67b3b453fd4989e6) )
7824 	ROM_LOAD       ( "jj-rom13",    0x080000, 0x080000, CRC(51e29871) SHA1(9d33283bd9a3f57602a55cfc9fafa49edd0be8c5) )
7825 	ROM_LOAD16_BYTE( "jj-rom4.040", 0x100000, 0x080000, CRC(a235488e) SHA1(a45d02a4451defbef7fbdab15671955fab8ed76b) )
7826 
7827 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7828 	ROM_LOAD( "jj-rom5.040", 0x000000, 0x080000, CRC(d99f2879) SHA1(66e83a6bc9093d19c72bd8ef1ec0523cfe218250) )
7829 	ROM_LOAD( "jj-rom6.040", 0x080000, 0x080000, CRC(9df1e478) SHA1(f41b55821187b417ad09e4a1f439c01a107d2674) )
7830 ROM_END
7831 
7832 ROM_START( kamenrid )
7833 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
7834 	ROM_LOAD16_WORD_SWAP( "fj001003.25", 0x000000, 0x080000, CRC(9b65d1b9) SHA1(a9183f817dbd1721cbb1a9049ca2bfc6acdf9f4a) )
7835 
7836 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7837 	ROM_LOAD( "fj001005.21", 0x000000, 0x100000, CRC(5d031333) SHA1(7b603e7e79c9439b526687021c0be4a5965b4c11) )
7838 	ROM_LOAD( "fj001006.22", 0x100000, 0x100000, CRC(cf28eb78) SHA1(b1b34e0e50b5d54ff3cff908c579031a326890a2) )
7839 
7840 	ROM_REGION( 0x80000, REGION_USER1, ROMREGION_DISPOSE )	/* Layers 1+2 */
7841 	ROM_LOAD( "fj001007.152", 0x000000, 0x080000, CRC(d9ffe80b) SHA1(c1f919b53cd1b9874a5e5dc5640891e1b227cfc6) )
7842 
7843 	ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7844 	ROM_COPY( REGION_USER1, 0x000000, 0x000000, 0x040000 )
7845 
7846 	ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
7847 	ROM_COPY( REGION_USER1, 0x040000, 0x000000, 0x040000 )
7848 
7849 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7850 	ROM_LOAD( "fj001008.26", 0x000000, 0x100000, CRC(45e2b329) SHA1(8526afae1aa9178570c906eb96438f174d174f4d) )
7851 ROM_END
7852 
7853 ROM_START( eightfrc )
7854 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
7855 	ROM_LOAD16_BYTE( "uy2-u4.u3",  0x000000, 0x040000, CRC(f1f249c5) SHA1(5277b7a15934e60e0ca305c318fb02d0ffb99d42) )
7856 	ROM_LOAD16_BYTE( "uy2-u3.u4",  0x000001, 0x040000, CRC(6f2d8618) SHA1(ea243e6064b76bc5d6e831362ac9611a48ac94a7) )
7857 
7858 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7859 	ROM_LOAD( "u64.bin",  0x000000, 0x080000, CRC(f561ff2e) SHA1(1ed78c90bf876f24c2859a73a71764189cebddbe) )
7860 	ROM_LOAD( "u63.bin",  0x080000, 0x080000, CRC(4c3f8366) SHA1(b25a27a67ae828d8fcf2c8d9d373ebdaacce9c4e) )
7861 
7862 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7863 	ROM_LOAD( "u66.bin",  0x000000, 0x100000, CRC(6fad2b7f) SHA1(469d185dc942bd4b54babf1d528e0e420f31d88b) )
7864 
7865 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
7866 	ROM_LOAD( "u68.bin",  0x000000, 0x100000, CRC(c17aad22) SHA1(eabbae2142cad3eef6a94d542ea03221c8228e94) )
7867 
7868 	ROM_REGION( 0x240000, REGION_SOUND1, 0 )	/* Samples */
7869 	ROM_LOAD( "u70.bin",  0x000000, 0x0c0000, CRC(dfdb67a3) SHA1(0fed6fb498dcfc1276facd0ecd2dfde45ff671f2) )
7870 	/* skip c0000-fffff (banked region)*/
7871 	ROM_CONTINUE(         0x100000, 0x040000             )
7872 	ROM_LOAD( "u69.bin",  0x140000, 0x100000, CRC(82ec08f1) SHA1(f17300d3cf990ef5c11056fd922f8cae0b2c918f) )
7873 ROM_END
7874 
7875 ROM_START( kiwame )
7876 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
7877 	ROM_LOAD16_BYTE( "fp001001.bin", 0x000000, 0x040000, CRC(31b17e39) SHA1(4f001bf365d6c259ac8a13894e207a44c15e1d8b) )
7878 	ROM_LOAD16_BYTE( "fp001002.bin", 0x000001, 0x040000, CRC(5a6e2efb) SHA1(a3b2ecfb5b91c6013370b359f89db0da8f120ad9) )
7879 
7880 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7881 	ROM_LOAD( "fp001003.bin", 0x000000, 0x080000, CRC(0f904421) SHA1(de5810746cfab1a4a7d1b055b1a97bc7fbc173dd) )
7882 
7883 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7884 	ROM_LOAD( "fp001006.bin", 0x000000, 0x080000, CRC(96cf395d) SHA1(877b291598e3a42e5003b2f50a16d162348ce72d) )
7885 	ROM_LOAD( "fp001005.bin", 0x080000, 0x080000, CRC(65b5fe9a) SHA1(35605be00c7c455551d18386fcb5ad013aa2907e) )
7886 ROM_END
7887 
7888 ROM_START( krzybowl )
7889 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
7890 	ROM_LOAD16_BYTE( "fv001.002", 0x000000, 0x040000, CRC(8c03c75f) SHA1(e56c50440681a0b06d785000018c4213266f2a4e) )
7891 	ROM_LOAD16_BYTE( "fv001.001", 0x000001, 0x040000, CRC(f0630beb) SHA1(1ddd4ab1bc5ab2b6461eb35c8093884185828d7b) )
7892 
7893 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7894 	ROM_LOAD( "fv001.003", 0x000000, 0x080000, CRC(7de22749) SHA1(933a11f2d45667348b136d72806fc2e2f6f8d944) )
7895 	ROM_LOAD( "fv001.004", 0x080000, 0x080000, CRC(c7d2fe32) SHA1(37291fa78c28be274e1240e081ea253ebe487e5c) )
7896 
7897 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7898 	ROM_LOAD( "fv001.005", 0x000000, 0x080000, CRC(5e206062) SHA1(e47cfb6947df178f3547dfe61907571bcb84e4ac) )
7899 	ROM_LOAD( "fv001.006", 0x080000, 0x080000, CRC(572a15e7) SHA1(b6a3e99e14a473b78ff48d1a46b20a0862d128e9) )
7900 ROM_END
7901 
7902 ROM_START( extdwnhl )
7903 	ROM_REGION( 0x100000, REGION_CPU1, 0 )		/* 68000 Code */
7904 	ROM_LOAD16_BYTE( "fw001002.201",  0x000000, 0x080000, CRC(24d21924) SHA1(9914a68a578f884b06305ffcd9aeed7d83df1c7b) )
7905 	ROM_LOAD16_BYTE( "fw001001.200",  0x000001, 0x080000, CRC(fb12a28b) SHA1(89167c042dc535b5f639057ff04a8e28824790f2) )
7906 
7907 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7908 	ROM_LOAD( "fw001003.202", 0x000000, 0x200000, CRC(ac9b31d5) SHA1(d362217ea0c474994e3c79ddcf87ee6688428ea5) )
7909 
7910 	ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7911 	ROM_LOAD       ( "fw001004.206", 0x000000, 0x200000, CRC(0dcb1d72) SHA1(ffc84f46f06f46750bddd1a303ed83a28fa9572f) )
7912 	ROM_LOAD16_BYTE( "fw001005.205", 0x200000, 0x100000, CRC(5c33b2f1) SHA1(9ea848aeaccbba0b71e60b39cf844665bd97928f) )
7913 
7914 	ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
7915 	ROM_LOAD( "fw001006.152",  0x000000, 0x200000, CRC(d00e8ddd) SHA1(e13692034afec1a0e86d19abfb9efa518b374147) )	/* FIRST AND SECOND HALF IDENTICAL*/
7916 
7917 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7918 	ROM_LOAD( "fw001007.026",  0x080000, 0x080000, CRC(16d84d7a) SHA1(fdc13776ba1ec9c48a33a9f2dfe8a0e55c54d89e) )	/* swapped halves*/
7919 	ROM_CONTINUE(              0x000000, 0x080000             )
7920 ROM_END
7921 
7922 ROM_START( gundhara )
7923 	ROM_REGION( 0x200000, REGION_CPU1, 0 )		/* 68000 Code */
7924 	ROM_LOAD16_BYTE( "bpgh-003.u3",  0x000000, 0x080000, CRC(14e9970a) SHA1(31964bd290cc94c40684adf3a5d129b1c3addc3b) )
7925 	ROM_LOAD16_BYTE( "bpgh-004.u4",  0x000001, 0x080000, CRC(96dfc658) SHA1(f570bc49758535eb00d93ecce9f75832f97a0d8d) )
7926 	ROM_LOAD16_BYTE( "bpgh-002.103", 0x100000, 0x080000, CRC(312f58e2) SHA1(a74819d2f84a00c233489893f12c9ab1a98459cf) )
7927 	ROM_LOAD16_BYTE( "bpgh-001.102", 0x100001, 0x080000, CRC(8d23a23c) SHA1(9e9a6488db424c81a97edcb7115cc070fe35c077) )
7928 
7929 	ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7930 	ROM_LOAD( "bpgh-008.u64", 0x000000, 0x200000, CRC(7ed9d272) SHA1(2e9243b3ecee27c175234f9bb1893ab498090fce) )
7931 	ROM_LOAD( "bpgh-006.201", 0x200000, 0x200000, CRC(5a81411d) SHA1(ebf90afe027a0dc0fa3022978677fb071b9083d1) )
7932 	ROM_LOAD( "bpgh-007.u63", 0x400000, 0x200000, CRC(aa49ce7b) SHA1(fe0064d533bd895657b88a0ef96e835443a4077f) )
7933 	ROM_LOAD( "bpgh-005.200", 0x600000, 0x200000, CRC(74138266) SHA1(c859acff358a61a32e5810ff369b9d5528137337) )
7934 
7935 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7936 	ROM_LOAD       ( "bpgh-010.u66", 0x000000, 0x100000, CRC(b742f0b8) SHA1(9246846c9ee839d5d84f5e02cf4605afcfd6bf7a) )
7937 	ROM_LOAD16_BYTE( "bpgh-009.u65", 0x100000, 0x080000, CRC(b768e666) SHA1(473fa52c16c0a9f321e6429947a3e0fc1ef22f7e) )
7938 
7939 	ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
7940 	ROM_LOAD       ( "bpgh-012.u68", 0x000000, 0x200000, CRC(edfda595) SHA1(5942181430d59c0c303cd1cbe753910c26c109a2) )
7941 	ROM_LOAD16_BYTE( "bpgh-011.u67", 0x200000, 0x100000, CRC(49aff270) SHA1(de25209e520cd8747042078440ee20866097d0cb) )
7942 
7943 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7944 	ROM_LOAD( "bpgh-013.u70",  0x080000, 0x080000, CRC(0fa5d503) SHA1(fd7a80cd25c23e737cc2c3d11de2291e22313b58) )	/* swapped halves*/
7945 	ROM_CONTINUE(              0x000000, 0x080000             )
7946 ROM_END
7947 
7948 ROM_START( sokonuke )
7949 	ROM_REGION( 0x100000, REGION_CPU1, 0 )		/* 68000 Code */
7950 	ROM_LOAD16_BYTE( "001-001.bin",  0x000000, 0x080000, CRC(9d0aa3ca) SHA1(f641c46f2c6e7f82bb9184daac62938afb607c09) )
7951 	ROM_LOAD16_BYTE( "001-002.bin",  0x000001, 0x080000, CRC(96f2ef5f) SHA1(264e82e192089230f208edf609dee575bf5c6513) )
7952 
7953 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7954 	ROM_LOAD( "001-003.bin", 0x000000, 0x200000, CRC(ab9ba897) SHA1(650c1eadf82f6e2b4c598495c867118277565411) )
7955 
7956 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7957 	ROM_LOAD       ( "001-004.bin", 0x000000, 0x100000, CRC(34ca3540) SHA1(a9b6b395037870033a2a422453e304fd4666b99e) )
7958 	ROM_LOAD16_BYTE( "001-005.bin", 0x100000, 0x080000, CRC(2b95d68d) SHA1(2fb480c31a6a7e180a68bd774b5f86348bea0761) )
7959 
7960 	ROM_REGION( 0x100, REGION_GFX3, ROMREGION_ERASE | ROMREGION_DISPOSE )	/* Layer 2 */
7961 	/* Unused */
7962 
7963 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
7964 	ROM_LOAD( "001-006.bin",   0x080000, 0x080000, CRC(ecfac767) SHA1(3d05bdb2c2a8c7eb5fa77b0c4482f98d3947c6d6) )
7965 	ROM_CONTINUE(              0x000000, 0x080000             )
7966 ROM_END
7967 
7968 ROM_START( zombraid )
7969 	ROM_REGION( 0x200000, REGION_CPU1, 0 )		/* 68000 Code */
7970 	ROM_LOAD16_BYTE( "fy001003.3",   0x000000, 0x080000, CRC(0b34b8f7) SHA1(8c6d7d208ece08695169f2e06806e7e55c595eb2) )
7971 	ROM_LOAD16_BYTE( "fy001004.4",   0x000001, 0x080000, CRC(71bfeb1a) SHA1(75747b0c6e655624a5dc2e4fa8f16a6a51bd8769) )
7972 	ROM_LOAD16_BYTE( "fy001002.103", 0x100000, 0x080000, CRC(313fd68f) SHA1(792733acc72b4719b3f7f79b57fb874c71e8abfb) )
7973 	ROM_LOAD16_BYTE( "fy001001.102", 0x100001, 0x080000, CRC(a0f61f13) SHA1(ba14c5ae0d0b3f217c130eeebd987dfde4c64c0d) )
7974 
7975 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7976 	ROM_LOAD( "fy001006.200", 0x000000, 0x200000, CRC(e9ae99f7) SHA1(7ffd62e5db4a48d362c90e8fca991c5b63f22bd8) )
7977 
7978 	ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
7979 	ROM_LOAD       ( "fy001008.66", 0x000000, 0x200000, CRC(73d7b0e1) SHA1(aa332b563005edb1a6e20fbceaba68b56761a634) )
7980 	ROM_LOAD16_BYTE( "fy001007.65", 0x200000, 0x100000, CRC(b2fc2c81) SHA1(2c529beccea353c3e90563215ddf3d8931e0fb83) )
7981 
7982 	ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
7983 	ROM_LOAD       ( "fy001010.68", 0x000000, 0x200000, CRC(8b40ed7a) SHA1(05fcd7947a8419cab5ed2305fba9a671911e4850) )
7984 	ROM_LOAD16_BYTE( "fy001009.67", 0x200000, 0x100000, CRC(6bcca641) SHA1(49c9106e6f23e25e5b5917af11fc48d34457c61a) )
7985 
7986 	ROM_REGION( 0x480000, REGION_SOUND1, 0 )	/* Samples */
7987 	ROM_LOAD( "fy001012.b",  0x000000, 0x080000, CRC(fd30e102) SHA1(ae02f94f69aa301b0c37921ca1117e3ad20467b5) )
7988 	/* skip 80000-fffff (banked region)*/
7989 	ROM_CONTINUE(            0x100000, 0x180000 )
7990 	ROM_LOAD( "fy001011.a",  0x280000, 0x200000, CRC(e3c431de) SHA1(1030adacbbfabc00231417e09f3de40e3052f65c) )
7991 ROM_END
7992 
7993 ROM_START( madshark )
7994 	ROM_REGION( 0x100000, REGION_CPU1, 0 )		/* 68000 Code */
7995 	ROM_LOAD16_BYTE( "fq001002.201",  0x000000, 0x080000, CRC(4286a811) SHA1(c8d4a28008548fe7d1d70758462205862142c56b) )
7996 	ROM_LOAD16_BYTE( "fq001001.200",  0x000001, 0x080000, CRC(38bfa0ad) SHA1(59398ef69caa01f51cdfb20db23af494db658e5e) )
7997 
7998 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
7999 	ROM_LOAD( "fq001004.202", 0x100000, 0x100000, CRC(e56a1b5e) SHA1(f0dd34122fd7db15cc56714b72b60d07ccb59222) )
8000 	ROM_CONTINUE(             0x000000, 0x100000 )
8001 
8002 	ROM_REGION( 0x400000, REGION_USER1, ROMREGION_DISPOSE )	/* Layers 1+2 */
8003 	ROM_LOAD       ( "fq001006.152", 0x000000, 0x200000, CRC(3bc5e8e4) SHA1(74cdf1bb2e58bef29c6f4371ff40f64472bff3ce) )
8004 	ROM_LOAD16_BYTE( "fq001005.205", 0x200000, 0x100000, CRC(5f6c6d4a) SHA1(eed5661738282a14ce89917335fd1b695eb7351e) )
8005 
8006 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
8007 	ROM_COPY( REGION_USER1, 0x000000, 0x000000, 0x100000 )
8008 	ROM_COPY( REGION_USER1, 0x200000, 0x100000, 0x100000 )
8009 
8010 	ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
8011 	ROM_COPY( REGION_USER1, 0x100000, 0x000000, 0x100000 )
8012 	ROM_COPY( REGION_USER1, 0x300000, 0x100000, 0x100000 )
8013 
8014 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
8015 	ROM_LOAD( "fq001007.26", 0x000000, 0x100000, CRC(e4b33c13) SHA1(c4f9532de7a09c80f5a74c3a386e99a0f546846f) )
8016 ROM_END
8017 
8018 ROM_START( utoukond )
8019 	ROM_REGION( 0x100000, REGION_CPU1, 0 )		/* 68000 Code */
8020 	ROM_LOAD16_BYTE( "93uta010.3",  0x000000, 0x080000, CRC(c486ef5e) SHA1(36e4ef4805d543216269f1161028d8a436f72284) )
8021 	ROM_LOAD16_BYTE( "93uta011.4",  0x000001, 0x080000, CRC(978978f7) SHA1(a7fd3a4ce3a7c6c9d9bdd60df29b4f427abf4f92) )
8022 
8023 	ROM_REGION( 0x10000, REGION_CPU2, 0 )		/* Z80 Code */
8024 	ROM_LOAD( "93uta009.112", 0x0000, 0x10000, CRC(67f18483) SHA1(d9af58dec09c317ccab65553d53d82c8cce2bfb9) )
8025 
8026 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT )	/* Sprites */
8027 	ROM_LOAD( "93uta04.64",  0x000000, 0x100000, CRC(9cba0538) SHA1(83278918b6ad160d3e53c178b3cad252e7b0edfb) )
8028 	ROM_LOAD( "93uta02.201", 0x100000, 0x100000, CRC(884fedfa) SHA1(3710003bd2e55bba03e2720fcab0fe080163222d) )
8029 	ROM_LOAD( "93uta03.63",  0x200000, 0x100000, CRC(818484a5) SHA1(642252abe56e26aa8376db2e25b192b11586d1e4) )
8030 	ROM_LOAD( "93uta01.200", 0x300000, 0x100000, CRC(364de841) SHA1(a025bd57f60eac05c0d7b4fb69b4b4979f357e6b) )
8031 
8032 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
8033 	ROM_LOAD( "93uta05.66",  0x000000, 0x100000, CRC(5e640bfb) SHA1(37f30ae6ab9d7860da6ca6a343fa9adf4b3d355c) )
8034 
8035 	ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
8036 	ROM_LOAD( "93uta07.68",  0x000000, 0x100000, CRC(67bdd036) SHA1(527b6a67e7a62263bee738dc82d6ff289ab54853) )
8037 	ROM_LOAD( "93uta06.67",  0x100000, 0x100000, CRC(294c26e4) SHA1(459ec7f8c8db4f1e3906d5db240298405bda991c) )
8038 
8039 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
8040 	ROM_LOAD( "93uta08.69", 0x000000, 0x100000, CRC(3d50bbcd) SHA1(e9b78d08466e1f9b42f11999bb53b6deceb81a12) )
8041 ROM_END
8042 
8043 ROM_START( neobattl )
8044 	ROM_REGION( 0x100000, REGION_CPU1, 0 )		/* 68000 Code */
8045 	ROM_LOAD16_BYTE( "bp923001.u45", 0x000000, 0x020000, CRC(0d0aeb73) SHA1(5ca631d5d68e53029f379d9877a056997c6c6afa) )	/* 1CC74: "SD GUNDAM v0.00. 1992/11/04 10:04:33"*/
8046 	ROM_LOAD16_BYTE( "bp923002.u46", 0x000001, 0x020000, CRC(9731fbbc) SHA1(196c913fb67496f9da2943ad1e69edf89cb65fdf) )
8047 
8048 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
8049 	ROM_LOAD( "bp923003.u15", 0x00000, 0x80000, CRC(91ca98a1) SHA1(b02b362e3a6118f52d9e1a262ca11aecef887b00) )
8050 	ROM_LOAD( "bp923004.u9",  0x80000, 0x80000, CRC(15c678e3) SHA1(8c0fa41a1f4e7b4e1c90faaeec7f6c910cc3ad0b) )
8051 
8052 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
8053 	ROM_LOAD( "bp923005.u4", 0x000000, 0x100000, CRC(7c0e37be) SHA1(5d5779de948f986971a82db2a5a4302044c3257a) )
8054 ROM_END
8055 
8056 
8057 READ16_HANDLER( twineagl_debug_r )
8058 {
8059 	/*	At several points in the code, the program checks if four
8060 		consecutive bytes in this range are equal to a string, and if they
8061 		are, it fetches an address from the following 4 bytes and jumps there.
8062 		They are probably hooks for debug routines to be found in an extra ROM.
8063 
8064 		0000 "MT00" + jump address
8065 		0008 "MT01" + jump address
8066 		0010 "MT02" + jump address
8067 		0018 "MT03" + jump address
8068 		0020 "MT04" + jump address
8069 		0028 "MT05" + jump address
8070 		0030 "MT06" + jump address
8071 		0038 "MT07" + jump address
8072 		0040 "WZ08" + jump address
8073 		0080 "KB00" + jump address
8074 		00C0 "MT18" + jump address
8075 		00C8 "MT19" + jump address
8076 		00D0 "MT1a" + jump address
8077 		00D8 "MT1b" + jump address
8078 		00E0 "MT1c" + jump address
8079 		00E8 "MT1d" + jump address
8080 		00F0 "MT1e" + jump address
8081 		00F8 "MT1f" + jump address
8082 	*/
8083 
8084 	return 0;
8085 }
8086 
8087 /* Extra RAM ? Check code at 0x00ba90 */
8088 /* 2000F8 = A3 enables it, 2000F8 = 00 disables? see downtown too */
8089 static data8_t xram[8];
READ16_HANDLER(twineagl_200100_r)8090 READ16_HANDLER( twineagl_200100_r )
8091 {
8092 log_cb(RETRO_LOG_DEBUG, LOGPRE "%04x: twineagl_200100_r %d\n",activecpu_get_pc(),offset);
8093 	return xram[offset];
8094 }
WRITE16_HANDLER(twineagl_200100_w)8095 WRITE16_HANDLER( twineagl_200100_w )
8096 {
8097 log_cb(RETRO_LOG_DEBUG, LOGPRE "%04x: twineagl_200100_w %d = %02x\n",activecpu_get_pc(),offset,data);
8098 	if (ACCESSING_LSB)
8099 		xram[offset] = data & 0xff;
8100 }
8101 
DRIVER_INIT(twineagl)8102 DRIVER_INIT( twineagl )
8103 {
8104 	/* debug? */
8105 	install_mem_read16_handler (0, 0x800000, 0x8000ff, twineagl_debug_r);
8106 
8107 	/* This allows 2 simultaneous players and the use of the "Copyright" Dip Switch. */
8108 	install_mem_read16_handler (0, 0x200100, 0x20010f, twineagl_200100_r);
8109 	install_mem_write16_handler(0, 0x200100, 0x20010f, twineagl_200100_w);
8110 }
8111 
8112 
8113 /* Protection? NVRAM is handled writing commands here */
8114 data16_t downtown_protection[0x200/2];
READ16_HANDLER(downtown_protection_r)8115 static READ16_HANDLER( downtown_protection_r )
8116 {
8117 	int job = downtown_protection[0xf8/2] & 0xff;
8118 
8119 	switch (job)
8120 	{
8121 		case 0xa3:
8122 		{
8123 			unsigned char word[] = "WALTZ0";
8124 			if (offset >= 0x100/2 && offset <= 0x10a/2)	return word[offset-0x100/2];
8125 			else										return 0;
8126 		}
8127 		default:
8128 			return downtown_protection[offset] & 0xff;
8129 	}
8130 }
8131 
WRITE16_HANDLER(downtown_protection_w)8132 static WRITE16_HANDLER( downtown_protection_w )
8133 {
8134 	COMBINE_DATA(&downtown_protection[offset]);
8135 }
8136 
DRIVER_INIT(downtown)8137 DRIVER_INIT( downtown )
8138 {
8139 	install_mem_read16_handler (0, 0x200000, 0x2001ff, downtown_protection_r);
8140 	install_mem_write16_handler(0, 0x200000, 0x2001ff, downtown_protection_w);
8141 }
8142 
8143 
READ16_HANDLER(arbalest_debug_r)8144 READ16_HANDLER( arbalest_debug_r )
8145 {
8146 	/*	At some points in the code, the program checks if four
8147 		consecutive bytes in this range are equal to a string, and if they
8148 		are, it fetches an address from the following 4 bytes and jumps there.
8149 		They are probably hooks for debug routines to be found in an extra ROM.
8150 
8151 		0000 "CHK1" + jump address
8152 		0008 "CHK2" + jump address
8153 	*/
8154 
8155 	return 0;
8156 }
8157 
DRIVER_INIT(arbalest)8158 DRIVER_INIT( arbalest )
8159 {
8160 	install_mem_read16_handler(0, 0x80000, 0x8000f, arbalest_debug_r);
8161 }
8162 
8163 
DRIVER_INIT(metafox)8164 DRIVER_INIT( metafox )
8165 {
8166 	data16_t *RAM = (data16_t *) memory_region(REGION_CPU1);
8167 
8168 	/* This game uses the 21c000-21ffff area for protection? */
8169 /*	install_mem_read16_handler (0, 0x21c000, 0x21ffff, MRA16_NOP);*/
8170 /*	install_mem_write16_handler(0, 0x21c000, 0x21ffff, MWA16_NOP);*/
8171 
8172 	RAM[0x8ab1c/2] = 0x4e71;	/* patch protection test: "cp error"*/
8173 	RAM[0x8ab1e/2] = 0x4e71;
8174 	RAM[0x8ab20/2] = 0x4e71;
8175 }
8176 
8177 
DRIVER_INIT(blandia)8178 DRIVER_INIT ( blandia )
8179 {
8180 	/* rearrange the gfx data so it can be decoded in the same way as the other set */
8181 
8182 	int rom_size;
8183 	UINT8 *buf;
8184 	UINT8 *rom;
8185 	int rpos;
8186 
8187 	rom_size = 0x80000;
8188 	buf = malloc(rom_size);
8189 
8190 	if (!buf) return;
8191 
8192 	rom = memory_region(REGION_GFX2) + 0x40000;
8193 
8194 	for (rpos = 0; rpos < rom_size/2; rpos++) {
8195 		buf[rpos+0x40000] = rom[rpos*2];
8196 		buf[rpos] = rom[rpos*2+1];
8197 	}
8198 
8199 	memcpy( rom, buf, rom_size );
8200 
8201 	rom = memory_region(REGION_GFX3) + 0x40000;
8202 
8203 	for (rpos = 0; rpos < rom_size/2; rpos++) {
8204 		buf[rpos+0x40000] = rom[rpos*2];
8205 		buf[rpos] = rom[rpos*2+1];
8206 	}
8207 
8208 	memcpy( rom, buf, rom_size );
8209 
8210 	free(buf);
8211 }
8212 
8213 
DRIVER_INIT(eightfrc)8214 DRIVER_INIT( eightfrc )
8215 {
8216 	install_mem_read16_handler(0, 0x500004, 0x500005, MRA16_NOP);	/* watchdog??*/
8217 }
8218 
8219 
DRIVER_INIT(zombraid)8220 DRIVER_INIT( zombraid )
8221 {
8222 	install_mem_read16_handler (0, 0xf00002, 0xf00003, zombraid_gun_r);
8223 	install_mem_write16_handler(0, 0xf00000, 0xf00001, zombraid_gun_w);
8224 }
8225 
8226 
DRIVER_INIT(kiwame)8227 DRIVER_INIT( kiwame )
8228 {
8229 	data16_t *RAM = (data16_t *) memory_region(REGION_CPU1);
8230 
8231 	/* WARNING: This game writes to the interrupt vector
8232 	   table. Lev 1 routine address is stored at $100 */
8233 
8234 	RAM[0x64/2] = 0x0000;
8235 	RAM[0x66/2] = 0x0dca;
8236 }
8237 
8238 
DRIVER_INIT(rezon)8239 DRIVER_INIT( rezon )
8240 {
8241 	install_mem_read16_handler(0, 0x500006, 0x500007, MRA16_NOP);	/* irq ack?*/
8242 }
8243 
8244 
8245 
8246 /***************************************************************************
8247 
8248 								Game Drivers
8249 
8250 ***************************************************************************/
8251 
8252 /* Working Games: */
8253 
8254 /* 68000 + 65C02 */
8255 GAME( 1987, tndrcade, 0,        tndrcade, tndrcade, 0,        ROT270, "[Seta] (Taito license)", "Thundercade - Twin Formation" ) /* Title/License: DSW*/
8256 GAME( 1987, tndrcadj, tndrcade, tndrcade, tndrcadj, 0,        ROT270, "[Seta] (Taito license)", "Tokusyu Butai U.A.G. (Japan)" ) /* License: DSW*/
8257 GAME( 1988, twineagl, 0,        twineagl, twineagl, twineagl, ROT270, "Seta (Taito license)",   "Twin Eagle - Revenge Joe's Brother" ) /* Country/License: DSW*/
8258 GAME( 1989, downtown, 0,        downtown, downtown, downtown, ROT270, "Seta",                   "DownTown" ) /* Country/License: DSW*/
8259 GAME( 1989, downtowj, downtown, downtown, downtown, downtown, ROT270, "Seta",                   "DownTown (joystick hack)" ) /* Country/License: DSW*/
8260 GAMEX(1989, usclssic, 0,        usclssic, usclssic, 0,        ROT270, "Seta",                   "U.S. Classic", GAME_WRONG_COLORS ) /* Country/License: DSW*/
8261 GAME( 1989, calibr50, 0,        calibr50, calibr50, 0,        ROT270, "Athena / Seta",          "Caliber 50" ) /* Country/License: DSW*/
8262 GAME( 1989, arbalest, 0,        metafox,  arbalest, arbalest, ROT270, "Seta",                   "Arbalester" ) /* Country/License: DSW*/
8263 GAME( 1989, metafox,  0,        metafox,  metafox,  metafox,  ROT270, "Seta",                   "Meta Fox" ) /* Country/License: DSW*/
8264 
8265 /* 68000 */
8266 GAME( 1989, drgnunit, 0,        drgnunit, drgnunit, 0,        ROT0,   "Seta",                   "Dragon Unit - Castle of Dragon" )
8267 GAME( 1989, wits,     0,        wits,     wits,     0,        ROT0,   "Athena (Visco license)", "Wit's (Japan)" ) /* Country/License: DSW*/
8268 GAME( 1990, thunderl, 0,        thunderl, thunderl, 0,        ROT270, "Seta",                   "Thunder and Lightning" ) /* Country/License: DSW*/
8269 GAME( 1991, rezon,    0,        rezon,    rezon,    rezon,    ROT0,   "Allumer",                "Rezon" )
8270 GAME( 1991, stg,      0,        drgnunit, stg,      0,        ROT270, "Athena / Tecmo",         "Strike Gunner S.T.G" )
8271 GAME( 1992, blandia,  0,        blandia,  blandia,  blandia,  ROT0,   "Allumer",                "Blandia" )
8272 GAME( 1992, blandiap, blandia,  blandiap, blandia,  0,        ROT0,   "Allumer",                "Blandia (prototype)" )
8273 GAME( 1992, blockcar, 0,        blockcar, blockcar, 0,        ROT90,  "Visco",                  "Block Carnival - Thunder and Lightning 2" ) /* Title: DSW*/
8274 GAME( 1992, qzkklogy, 0,        drgnunit, qzkklogy, 0,        ROT0,   "Tecmo",                  "Quiz Kokology" )
8275 GAME( 1992, neobattl, 0,        umanclub, neobattl, 0,        ROT270, "Banpresto / Sotsu Agency. Sunrise", "SD Gundam Neo Battling (Japan)" )
8276 GAME( 1992, umanclub, 0,        umanclub, umanclub, 0,        ROT0,   "Tsuburaya Prod. / Banpresto", "Ultraman Club - Tatakae! Ultraman Kyoudai!!" )
8277 GAME( 1992, zingzip,  0,        zingzip,  zingzip,  0,        ROT270, "Allumer + Tecmo",        "Zing Zing Zip" )
8278 GAME( 1993, atehate,  0,        atehate,  atehate,  0,        ROT0,   "Athena",                 "Athena no Hatena [Q]" )
8279 GAME( 1993, daioh,    0,        daioh,    daioh,    0,        ROT270, "Athena",                 "Daioh" )
8280 GAME( 1993, jjsquawk, 0,        jjsquawk, jjsquawk, 0,        ROT0,   "Athena / Able",          "J. J. Squawkers" )
8281 GAME( 1993, kamenrid, 0,        kamenrid, kamenrid, 0,        ROT0,   "Toei / Banpresto",       "Masked Riders Club Battle Race" )
8282 GAME( 1993, madshark, 0,        madshark, madshark, 0,        ROT270, "Allumer",                "Mad Shark" )
8283 GAME( 1993, msgundam, 0,        msgundam, msgundam, 0,        ROT0,   "Banpresto",              "Mobile Suit Gundam" )
8284 GAME( 1993, msgunda1, msgundam, msgundam, msgunda1, 0,        ROT0,   "Banpresto",              "Mobile Suit Gundam (Japan)" )
8285 GAME( 1993, oisipuzl, 0,        oisipuzl, oisipuzl, 0,        ROT0,   "Sunsoft + Atlus",        "Oishii Puzzle Ha Irimasenka" )
8286 GAME( 1993, qzkklgy2, 0,        qzkklgy2, qzkklgy2, 0,        ROT0,   "Tecmo",                  "Quiz Kokology 2" )
8287 GAME( 1993, triplfun, oisipuzl, triplfun, oisipuzl, 0,        ROT0,   "bootleg",                "Triple Fun" )
8288 GAME( 1993, utoukond, 0,        utoukond, utoukond, 0,        ROT0,   "Banpresto + Tsuburaya Prod.", "Ultra Toukon Densetsu (Japan)" )
8289 GAME( 1993, wrofaero, 0,        wrofaero, wrofaero, 0,        ROT270, "Yang Cheng",             "War of Aero - Project MEIOU" )
8290 GAME( 1994, eightfrc, 0,        eightfrc, eightfrc, eightfrc, ROT90,  "Tecmo",                  "Eight Forces" )
8291 GAME( 1994, kiwame,   0,        kiwame,   kiwame,   kiwame,   ROT0,   "Athena",                 "Pro Mahjong Kiwame" )
8292 GAME( 1994, krzybowl, 0,        krzybowl, krzybowl, 0,        ROT270, "American Sammy",   "Krazy Bowl" )
8293 GAMEX(1995, extdwnhl, 0,        extdwnhl, extdwnhl, 0,        ROT0,   "Sammy Industries Japan", "Extreme Downhill (v1.5)", GAME_IMPERFECT_GRAPHICS )
8294 GAME( 1995, gundhara, 0,        gundhara, gundhara, 0,        ROT270, "Banpresto",              "Gundhara" )
8295 GAMEX(1995, sokonuke, 0,        extdwnhl, sokonuke, 0,        ROT0,   "Sammy Industries",       "Sokonuke Taisen Game (Japan)", GAME_IMPERFECT_SOUND )
8296 GAMEX(1995, zombraid, 0,        gundhara, zombraid, zombraid, ROT0,   "American Sammy",   "Zombie Raid (US)", GAME_NO_COCKTAIL )
8297