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