QuarterArcade Coin-Op Tech Net

Quick Nav: # A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Coin-Op : Arcade : Arbalester : VM Driver Source

Source Listing


     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: Developers:
   777:            More info reqd? Redump needed? Email me....
   778:            theguru@emuunlim.com
   779: 
   780: ***************************************************************************/
   781: 
   782: /***************************************************************************
   783: 
   784: 							Pro Mahjong Kiwame
   785: 
   786: PCB  : PO-101-1 (the board is made by Allumer/Seta)
   787: CPU  : TMP68301AF-16 (68000 core)
   788: Sound: X1-010
   789: OSC  : 20.0000MHz
   790: 
   791: ROMs:
   792: fp001001.bin - Main program (27c2001, even)
   793: fp001002.bin - Main program (27c2001, odd)
   794: fp001003.bin - Graphics (23c4000)
   795: fp001005.bin - Samples (27c4000, high)
   796: fp001006.bin - Samples (27c4000, low)
   797: 
   798: Chips:	X1-001A
   799: 		X1-002A
   800: 		X1-004
   801: 		X1-006
   802: 		X1-007
   803: 		X1-010
   804: 
   805: - To initialize high scores, power-on holding start button in service mode
   806: 
   807: ***************************************************************************/
   808: 
   809: 
   810: /***************************************************************************
   811: 
   812: 								Quiz Kokology
   813: 
   814: (c)1992 Tecmo
   815: 
   816: PO-053A
   817: 
   818: CPU  : MC68000B8
   819: Sound: X1-010
   820: OSC  : 16.000MHz
   821: 
   822: Custom chips:	X1-001A	X1-002A
   823: 				X1-004
   824: 				X1-006	X1-007
   825: 				X1-010
   826: 				X1-011	X1-012
   827: 
   828: ***************************************************************************/
   829: 
   830: 
   831: /***************************************************************************
   832: 
   833: 								Quiz Koko-logy 2
   834: 
   835: (c)1992 Tecmo
   836: 
   837: P0-100A
   838: 
   839: CPU  : MC68HC000B16
   840: Sound: X1-010
   841: OSC  : 16.000MHz
   842: 
   843: FN001001.106 - Main program (27C4096)
   844: FN001003.107 / (40pin 2M mask)
   845: 
   846: FN001004.100 - OBJ chr. (42pin mask)
   847: FN001005.104 - BG chr. (42pin mask)
   848: FN001006.105 - Samples (32pin mask)
   849: 
   850: Custom chips:	X1-001A		X1-002A
   851: 				X1-004
   852: 				X1-006
   853: 				X1-007
   854: 				X1-010
   855: 				X1-011		X1-012
   856: 
   857: ***************************************************************************/
   858: 
   859: 
   860: /***************************************************************************
   861: 
   862: 								Rezon (Japan)
   863: 
   864: PCB 	: PO-063A
   865: CPU 	: TOSHIBA TMP68HC000N-16
   866: Sound	: X1-010
   867: OSC 	: 16.000MHz
   868: Other	: Allumer
   869: 			X1-001A			X1-002A
   870: 			X1-004
   871: 			X1-007
   872: 			X1-011 x 2		X1-012 x 2
   873: 
   874: ***************************************************************************/
   875: 
   876: 
   877: /***************************************************************************
   878: 
   879: 							SD Gundam Neo Battling
   880: 
   881: Banpresto, 1992
   882: This game runs on Seta/Allumer hardware
   883: 
   884: PCB Layout
   885: ----------
   886: 
   887: PO-080A
   888: BP923
   889: |----------------------------------------------
   890: |DSW1  DSW2                   LH5168  62256   |
   891: |                             LH5168  62256   |
   892: |LH5168                                       |
   893: |                                             |
   894: |         BP923004                   BP923001 |
   895: |BP923005 BP923003 X1-002A X1-001A   BP923002 |
   896: |                                  16MHz      |
   897: |                              TMP68HC000N-16 |
   898: |X1-010                           PAL         |
   899: |                                 PAL  X1-006 |
   900: |                                             |
   901: |                                             |
   902: |                              X1-004  X1-007 |
   903: |                                             |
   904: |                                             |
   905: |                                             |
   906: |                                             |
   907: |                 J A M M A                   |
   908: -----------------------------------------------
   909: 
   910: Notes:
   911:       68k clock: 16.000MHz
   912:       VSync: 58Hz
   913:       HSync: 15.22kHz
   914: 
   915: Developers:
   916:            More info reqd? Email me....
   917:            theguru@emuunlim.com
   918: 
   919: ***************************************************************************/
   920: 
   921: 
   922: /***************************************************************************
   923: 
   924: 							Sokonuke Taisen Game (Japan)
   925: 
   926: (c)1995 Sammy
   927: 
   928: CPU:	68HC000
   929: Sound:	All PCM ?
   930: OSC:	16MHz
   931: 
   932: ***************************************************************************/
   933: 
   934: 
   935: /***************************************************************************
   936: 
   937: 								Strike Gunner
   938: 
   939: (c)1991 Athena (distributed by Tecmo)
   940: 
   941: PO-053A
   942: 
   943: CPU  : TMP68000N-8
   944: Sound: X1-010
   945: OSC  : 16.000MHz
   946: 
   947: Custom chips:	X1-001A	X1-002A
   948: 				X1-004
   949: 				X1-006	X1-007
   950: 				X1-010
   951: 				X1-011	X1-012
   952: 
   953: ***************************************************************************/
   954: 
   955: /***************************************************************************
   956: 
   957: 								Ultraman Club
   958: 
   959: Banpresto, 1992
   960: Board looks similar to Castle of Dragon PCB.
   961: 
   962: PCB No: PO-077A (Seta Number)
   963:         BP922   (Banpresto Number)
   964: 
   965: CPU: MC68HC000B16
   966: OSC: 16.000MHz
   967: DIP SW x 2 (8 position)
   968: 
   969: RAM: Sharp LH5160D-10L x 3, Hitachi S256KLP-12 x 2
   970: PALs (2 x PAL16L8, not dumped)
   971: SETA Chips:	X1-010
   972: 			X1-004
   973: 			X1-007
   974: 			X1-006
   975: 			X1-002A
   976: 			X1-001A
   977: 
   978: Controls are 8 way Joystick and 2 buttons.
   979: 
   980: ROMs:
   981: 
   982: UW001006.U48      27C010                                               \  Main Program
   983: UW001007.U49      27C010                                               /
   984: 
   985: BP-U-001.U1       4M mask (40 pin, 512k x 8), read as MX27C4100        \  GFX
   986: BP-U-002.U2       4M mask (40 pin, 512k x 8), read as MX27C4100        /
   987: 
   988: BP-U-003.U13      8M mask (32 pin, 1M x 8),   read as MX27C8000           Sound
   989: 
   990: 
   991: ***************************************************************************/
   992: 
   993: /***************************************************************************
   994: Ultra Toukon Densetsu
   995: Banpresto, 1993
   996: 
   997: This game runs on fairly standard Allumer hardware.
   998: 
   999: PCB Layout
  1000: ----------
  1001: 
  1002: PO-083A
  1003: BP931
  1004: ----------------------------------------------------
  1005: |     X1-010  93UTA08  93UTA06 93UTA04  93UTA02    |
  1006: |                93UTA07 93UTA05  93UTA03  93UTA01 |
  1007: |  YM3438   LH5116                                 |
  1008: |  LH5116            X1-011  X1-011       X1-002A  |
  1009: |  Z80 93UTA009                                    |
  1010: |J                   X1-012  X1-012       X1-001A  |
  1011: |A X1-007                                          |
  1012: |M   LH5116           LH5160 LH5160 LH5160         |
  1013: |M                                                 |
  1014: |A   LH5116           LH5160 LH5160 LH5160         |
  1015: |                                                  |
  1016: |*      16MHz                                      |
  1017: |  X1-004                                   62256  |
  1018: |                                           62256  |
  1019: | DSW1(8)               93UTA011  93UTA010         |
  1020: | DSW2(8)   68HC000N-16                            |
  1021: ----------------------------------------------------
  1022: 
  1023: Notes:
  1024:       *: 4 jumper pads for region selection (hardwired)
  1025:       Z80 clock = 4.000MHz
  1026:       VSync: 60Hz
  1027:       HSync: 15.21kHz
  1028: 
  1029: Developers:
  1030:            More info reqd? Email me....
  1031:            theguru@emuunlim.com
  1032: 
  1033: 1.048.576 93uta03.63
  1034: 1.048.576 93uta04.64
  1035: 1.048.576 93uta05.66
  1036: 1.048.576 93uta06.67
  1037: 1.048.576 93uta07.68
  1038: 1.048.576 93uta08.69
  1039: 
  1040: ***************************************************************************/
  1041: 
  1042: /***************************************************************************
  1043: 
  1044: 							   War of Aero
  1045: 							Project M E I O U
  1046: 
  1047: 93111A	YANG CHENG
  1048: 
  1049: CPU   : TOSHIBA TMP68HC000N-16
  1050: Sound : Allumer X1-010
  1051: OSC   : 16.000000MHz
  1052: Other : Allumer
  1053: 			X1-001A  X1-002A
  1054: 			X1-004
  1055: 			X1-007
  1056: 			X1-011 x 2
  1057: 			X1-012 x 2
  1058: 		NEC
  1059: 			C324C
  1060: 			D71054C
  1061: 
  1062: ***************************************************************************/
  1063: 
  1064: 
  1065: 
  1066: /***************************************************************************
  1067: 
  1068: 								Zing Zing Zip
  1069: 
  1070: P0-079A
  1071: 
  1072: UY-001-005   X1-002A   X1-001A   5168-10      256k-12
  1073: UY-001-006                       5168-10      UY-001-001
  1074: UY-001-007                                    UY-001-002
  1075: UY-001-008   X1-011 X1-012                    58257-12
  1076:                                  5168-10
  1077: UY-001-010   X1-011 X1-012       5168-10
  1078: UY-001-017
  1079: UY-001-018
  1080:                                  5168-10
  1081: X1-010                           5168-10       68000-16
  1082: 
  1083: 
  1084:                            8464-80
  1085:                            8464-80       16MHz
  1086: 
  1087: 
  1088:                              X1-007    X1-004
  1089: 
  1090: ***************************************************************************/
  1091: 
  1092: #include "driver.h" 
  1093: #include "vidhrdw/generic.h" 
  1094: #include "seta.h" 
  1095: 
  1096: /* Variables and functions only used here */
  1097: 
  1098: static unsigned char *sharedram;
  1099: 
  1100: 
  1101: #if __uPD71054_TIMER 
  1102: 
  1103: #define	USED_TIMER_NUM	1 
  1104: /*------------------------------
  1105: 	timer(uPD71054) struct
  1106: ------------------------------*/
  1107: static struct st_chip {
  1108: 	void			*timer[3];			// Timer
  1109: 	unsigned short	max[3];				// Max counter
  1110: 	unsigned short	write_select;		// Max counter write select
  1111: 	unsigned char	reg[4];				//
  1112: } uPD71054;
  1113: 
  1114: /*------------------------------
  1115: 	uppdate timer
  1116: ------------------------------*/
  1117: void uPD71054_update_timer( int no )
  1118: {
  1119: 	int		max = 0;
  1120: 	double	duration = 0;
  1121: 
  1122: 	timer_adjust( uPD71054.timer[no], TIME_NEVER, no, 0 );
  1123: 
  1124: 	max = (int)uPD71054.max[no]&0xffff;
  1125: 
  1126: 	if( max != 0 ) {
  1127: 		duration = (double)Machine->drv->cpu[0].cpu_clock/16/max;
  1128: 	}
  1129: 	if( duration != 0 ) {
  1130: 		timer_adjust( uPD71054.timer[no], TIME_IN_HZ(duration), no, 0 );
  1131: 	} else {
  1132: 		logerror( "CPU #0 PC %06X: uPD71054 error, timer %d duration is 0\n",
  1133: 				activecpu_get_pc(), no );
  1134: 	}
  1135: }
  1136: 
  1137: 
  1138: 
  1139: /*------------------------------
  1140: 	callback
  1141: ------------------------------*/
  1142: void uPD71054_timer_callback( int no )
  1143: {
  1144: 	cpu_set_irq_line( 0, 4, HOLD_LINE );
  1145: 	uPD71054_update_timer( no );
  1146: }
  1147: 
  1148: 
  1149: 
  1150: /*------------------------------
  1151: 	initialize
  1152: ------------------------------*/
  1153: void uPD71054_timer_init( void )
  1154: {
  1155: 	int no;
  1156: 
  1157: 	uPD71054.write_select = 0;
  1158: 
  1159: 	for( no = 0; no < USED_TIMER_NUM; no++ ) {
  1160: 		uPD71054.max[no] = 0xffff;
  1161: 	}
  1162: 	for( no = 0; no < USED_TIMER_NUM; no++ ) {
  1163: 		uPD71054.timer[no] = timer_alloc( uPD71054_timer_callback );
  1164: 	}
  1165: }
  1166: 
  1167: 
  1168: 
  1169: /*------------------------------
  1170: 	exit
  1171: ------------------------------*/
  1172: void uPD71054_timer_stop( void )
  1173: {
  1174: 	timer_free();
  1175: }
  1176: 
  1177: 
  1178: 
  1179: /*------------------------------
  1180: 	timer write handler
  1181: ------------------------------*/
  1182: WRITE16_HANDLER( timer_regs_w )
  1183: {
  1184: 	data &= 0xff;
  1185: 
  1186: 	uPD71054.reg[offset] = data;
  1187: 
  1188: 	switch( offset ) {
  1189: 	  case 0x0000:
  1190: 	  case 0x0001:
  1191: 	  case 0x0002:
  1192: 		if( uPD71054.write_select == 0 ) {
  1193: 			uPD71054.max[offset] = (uPD71054.max[offset]&0xff00)+data;
  1194: 			if( ((uPD71054.reg[3]>>4)&3) == 3 ) {
  1195: 				uPD71054.write_select = 1;
  1196: 			}
  1197: 		} else {
  1198: 			uPD71054.max[offset] = (uPD71054.max[offset]&0x00ff)+(data<<8);
  1199: 		}
  1200: 		if( uPD71054.max[offset] != 0 ) {
  1201: 			uPD71054_update_timer( offset );
  1202: 		}
  1203: 		break;
  1204: 	  case 0x0003:
  1205: 		switch( (data>>4)&3 ) {
  1206: 		  case 2: uPD71054.write_select = 1; break;
  1207: 		  case 1:
  1208: 		  case 3: uPD71054.write_select = 0; break;
  1209: 		}
  1210: 		break;
  1211: 	}
  1212: }
  1213: #endif	// __uPD71054_TIMER 
  1214: 
  1215: 
  1216: 
  1217: 
  1218: /***************************************************************************
  1219: 
  1220: 
  1221: 									Sound
  1222: 
  1223: 
  1224: ***************************************************************************/
  1225: 
  1226: static struct x1_010_interface seta_sound_intf_8MHz =
  1227: {
  1228: 	8000000,	/* clock */
  1229: 	YM3012_VOL(100,MIXER_PAN_LEFT,100,MIXER_PAN_RIGHT),	/* volume */
  1230: 	0x0000,		/* address */
  1231: };
  1232: static struct x1_010_interface seta_sound_intf_16MHz =
  1233: {
  1234: 	16000000,	/* clock */
  1235: 	YM3012_VOL(100,MIXER_PAN_LEFT,100,MIXER_PAN_RIGHT),	/* volume */
  1236: 	0x0000,		/* address */
  1237: };
  1238: static struct x1_010_interface seta_sound_intf_16MHz2 =
  1239: {
  1240: 	16000000,	/* clock */
  1241: 	YM3012_VOL(100,MIXER_PAN_LEFT,100,MIXER_PAN_RIGHT),	/* volume */
  1242: 	0x1000,		/* address */
  1243: };
  1244: 
  1245: static void utoukond_ym3438_interrupt(int linestate)
  1246: {
  1247: 	cpu_set_nmi_line(1,linestate);
  1248: }
  1249: 
  1250: static struct YM2612interface utoukond_ym3438_intf =
  1251: {
  1252: 	1,
  1253: 	6000000,	// ?
  1254: 	{ YM3012_VOL(30,MIXER_PAN_LEFT,30,MIXER_PAN_RIGHT) },
  1255: 	{ 0 },		// port I/O
  1256: 	{ 0 },
  1257: 	{ 0 },
  1258: 	{ 0 },
  1259: 	{ utoukond_ym3438_interrupt }	// IRQ handler
  1260: };
  1261: 
  1262: /***************************************************************************
  1263: 
  1264: 
  1265: 								Common Routines
  1266: 
  1267: 
  1268: ***************************************************************************/
  1269: 
  1270: /*
  1271: 
  1272:  Mirror RAM
  1273: 
  1274: */
  1275: static data16_t *mirror_ram;
  1276: 
  1277: READ16_HANDLER( mirror_ram_r )
  1278: {
  1279: 	return mirror_ram[offset];
  1280: }
  1281: 
  1282: WRITE16_HANDLER( mirror_ram_w )
  1283: {
  1284: 	COMBINE_DATA(&mirror_ram[offset]);
  1285: //	logerror("PC %06X - Mirror RAM Written: %04X <- %04X\n", activecpu_get_pc(), offset*2, data);
  1286: }
  1287: 
  1288: 
  1289: 
  1290: /*
  1291: 
  1292:  Shared RAM:
  1293: 
  1294:  The 65c02 sees a linear array of bytes that is mapped, for the 68000,
  1295:  to a linear array of words whose low order bytes hold the data
  1296: 
  1297: */
  1298: 
  1299: static READ16_HANDLER( sharedram_68000_r )
  1300: {
  1301: 	return ((data16_t) sharedram[offset]) & 0xff;
  1302: }
  1303: 
  1304: static WRITE16_HANDLER( sharedram_68000_w )
  1305: {
  1306: 	if (ACCESSING_LSB)	sharedram[offset] = data & 0xff;
  1307: }
  1308: 
  1309: 
  1310: 
  1311: 
  1312: /*
  1313: 
  1314:  Sub CPU Control
  1315: 
  1316: */
  1317: 
  1318: static WRITE16_HANDLER( sub_ctrl_w )
  1319: {
  1320: 	static int old_data = 0;
  1321: 
  1322: 	switch(offset)
  1323: 	{
  1324: 		case 0/2:	// bit 0: reset sub cpu?
  1325: 			if (ACCESSING_LSB)
  1326: 			{
  1327: 				if ( !(old_data&1) && (data&1) )
  1328: 					cpu_set_reset_line(1,PULSE_LINE);
  1329: 				old_data = data;
  1330: 			}
  1331: 			break;
  1332: 
  1333: 		case 2/2:	// ?
  1334: 			break;
  1335: 
  1336: 		case 4/2:	// not sure
  1337: 			if (ACCESSING_LSB)	soundlatch_w(0, data & 0xff);
  1338: 			break;
  1339: 
  1340: 		case 6/2:	// not sure
  1341: 			if (ACCESSING_LSB)	soundlatch2_w(0, data & 0xff);
  1342: 			break;
  1343: 	}
  1344: 
  1345: }
  1346: 
  1347: 
  1348: const struct GameDriver driver_blandia;
  1349: const struct GameDriver driver_gundhara;
  1350: const struct GameDriver driver_kamenrid;
  1351: const struct GameDriver driver_zingzip;
  1352: 
  1353: /*	---- 3---		Coin #1 Lock Out
  1354: 	---- -2--		Coin #0 Lock Out
  1355: 	---- --1-		Coin #1 Counter
  1356: 	---- ---0		Coin #0 Counter		*/
  1357: 
  1358: void seta_coin_lockout_w(int data)
  1359: {
  1360: 	coin_counter_w		(0, (( data) >> 0) & 1 );
  1361: 	coin_counter_w		(1, (( data) >> 1) & 1 );
  1362: 
  1363: 	/* blandia, gundhara, kamenrid & zingzip haven't the coin lockout device */
  1364: 	if (Machine->gamedrv			==	&driver_blandia  ||
  1365: 		Machine->gamedrv->clone_of	==	&driver_blandia  ||
  1366: 
  1367: 		Machine->gamedrv			==	&driver_gundhara ||
  1368: 		Machine->gamedrv->clone_of	==	&driver_gundhara ||
  1369: 
  1370: 		Machine->gamedrv			==	&driver_kamenrid ||
  1371: 		Machine->gamedrv->clone_of	==	&driver_kamenrid ||
  1372: 
  1373: 		Machine->gamedrv			==	&driver_zingzip  ||
  1374: 		Machine->gamedrv->clone_of	==	&driver_zingzip     )
  1375: 		return;
  1376: 	coin_lockout_w		(0, ((~data) >> 2) & 1 );
  1377: 	coin_lockout_w		(1, ((~data) >> 3) & 1 );
  1378: }
  1379: 
  1380: 
  1381: /* DSW reading for 16 bit CPUs */
  1382: static READ16_HANDLER( seta_dsw_r )
  1383: {
  1384: 	data16_t dsw = readinputport(3);
  1385: 	if (offset == 0)	return (dsw >> 8) & 0xff;
  1386: 	else				return (dsw >> 0) & 0xff;
  1387: }
  1388: 
  1389: 
  1390: /* DSW reading for 8 bit CPUs */
  1391: 
  1392: static READ_HANDLER( dsw1_r )
  1393: {
  1394: 	return (readinputport(3) >> 8) & 0xff;
  1395: }
  1396: 
  1397: static READ_HANDLER( dsw2_r )
  1398: {
  1399: 	return (readinputport(3) >> 0) & 0xff;
  1400: }
  1401: 
  1402: 
  1403: /*
  1404: 
  1405:  Sprites Buffering
  1406: 
  1407: */
  1408: VIDEO_EOF( seta_buffer_sprites )
  1409: {
  1410: 	int ctrl2	=	spriteram16[ 0x602/2 ];
  1411: 	if (~ctrl2 & 0x20)
  1412: 	{
  1413: 		if (ctrl2 & 0x40)
  1414: 			memcpy(&spriteram16_2[0x0000/2],&spriteram16_2[0x2000/2],0x2000/2);
  1415: 		else
  1416: 			memcpy(&spriteram16_2[0x2000/2],&spriteram16_2[0x0000/2],0x2000/2);
  1417: 	}
  1418: }
  1419: 
  1420: 
  1421: /***************************************************************************
  1422: 
  1423: 
  1424: 									Main CPU
  1425: 
  1426: (for debugging it is useful to be able to peek at some memory regions that
  1427:  the game writes to but never reads from. I marked this regions with an empty
  1428:  comment to distinguish them, since there's always the possibility that some
  1429:  games actually read from this kind of regions, expecting some hardware
  1430:  register's value there, instead of the data they wrote)
  1431: 
  1432: ***************************************************************************/
  1433: 
  1434: 
  1435: /***************************************************************************
  1436: 								Thundercade
  1437: ***************************************************************************/
  1438: 
  1439: /* Mirror RAM seems necessary since the e00000-e03fff area is not cleared
  1440:    on startup. Level 2 int uses $e0000a as a counter that controls when
  1441:    to write a value to the sub cpu, and when to read the result back.
  1442:    If the check fails "error x0-006" is displayed. Hence if the counter
  1443:    is not cleared at startup the game could check for the result before
  1444:    writing to sharedram! */
  1445: 
  1446: 
  1447: static MEMORY_READ16_START( tndrcade_readmem )
  1448: 	{ 0x000000, 0x07ffff, MRA16_ROM				},	// ROM
  1449: 	{ 0x380000, 0x3803ff, MRA16_RAM				},	// Palette
  1450: /**/{ 0x400000, 0x400001, MRA16_RAM				},	// ? $4000
  1451: /**/{ 0x600000, 0x600607, MRA16_RAM				},	// Sprites Y
  1452: 	{ 0xa00000, 0xa00fff, sharedram_68000_r		},	// Shared RAM
  1453: 	{ 0xc00000, 0xc03fff, MRA16_RAM				},	// Sprites Code + X + Attr
  1454: 	{ 0xe00000, 0xe03fff, MRA16_RAM				},	// RAM (Mirrored?)
  1455: 	{ 0xffc000, 0xffffff, mirror_ram_r			},	// RAM (Mirrored?)
  1456: MEMORY_END
  1457: 
  1458: static MEMORY_WRITE16_START( tndrcade_writemem )
  1459: 	{ 0x000000, 0x07ffff, MWA16_ROM						},	// ROM
  1460: 	{ 0x200000, 0x200001, MWA16_NOP						},	// ? 0
  1461: 	{ 0x280000, 0x280001, MWA16_NOP						},	// ? 0 / 1 (sub cpu related?)
  1462: 	{ 0x300000, 0x300001, MWA16_NOP						},	// ? 0 / 1
  1463: 	{ 0x380000, 0x3803ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	// Palette
  1464: 	{ 0x400000, 0x400001, MWA16_RAM						},	// ? $4000
  1465: 	{ 0x600000, 0x600607, MWA16_RAM, &spriteram16		},	// Sprites Y
  1466: 	{ 0x800000, 0x800007, sub_ctrl_w					},	// Sub CPU Control?
  1467: 	{ 0xa00000, 0xa00fff, sharedram_68000_w				},	// Shared RAM
  1468: 	{ 0xc00000, 0xc03fff, MWA16_RAM, &spriteram16_2		},	// Sprites Code + X + Attr
  1469: 	{ 0xe00000, 0xe03fff, MWA16_RAM, &mirror_ram		},	// RAM (Mirrored?)
  1470: 	{ 0xffc000, 0xffffff, mirror_ram_w					},	// RAM (Mirrored?)
  1471: MEMORY_END
  1472: 
  1473: 
  1474: /***************************************************************************
  1475: 				Twin Eagle, DownTown, Arbalester, Meta Fox
  1476: 		(with slight variations, and Meta Fox protection hooked in)
  1477: ***************************************************************************/
  1478: 
  1479: static MEMORY_READ16_START( downtown_readmem )
  1480: 	{ 0x000000, 0x09ffff, MRA16_ROM				},	// ROM
  1481: 	{ 0x100000, 0x103fff, seta_sound_word_r		},	// Sound
  1482: 	{ 0x200000, 0x200001, MRA16_NOP				},	// watchdog? (twineagl)
  1483: 	{ 0x600000, 0x600003, seta_dsw_r			},	// DSW
  1484: 	{ 0x700000, 0x7003ff, MRA16_RAM				},	// Palette
  1485: 	{ 0x900000, 0x901fff, MRA16_RAM				},	// VRAM
  1486: 	{ 0x902000, 0x903fff, MRA16_RAM				},	// VRAM
  1487: 	{ 0xb00000, 0xb00fff, sharedram_68000_r		},	// Shared RAM
  1488: 	{ 0xd00000, 0xd003ff, MRA16_RAM				},	// Sprites Y
  1489: 	{ 0xe00000, 0xe03fff, MRA16_RAM				},	// Sprites Code + X + Attr
  1490: 	{ 0xf00000, 0xffffff, MRA16_RAM				},	// RAM
  1491: MEMORY_END
  1492: 
  1493: static MEMORY_WRITE16_START( downtown_writemem )
  1494: 	{ 0x000000, 0x09ffff, MWA16_ROM						},	// ROM
  1495: 	{ 0x100000, 0x103fff, seta_sound_word_w				},	// Sound
  1496: 	{ 0x200000, 0x200001, MWA16_NOP						},	// watchdog?
  1497: 	{ 0x300000, 0x300001, MWA16_NOP 					},	// IRQ enable/acknowledge?
  1498: 	{ 0x400000, 0x400007, twineagl_tilebank_w			},	// special tile banking to animate water in twineagl
  1499: 	{ 0x500000, 0x500001, MWA16_NOP						},	// ?
  1500: 	{ 0x700000, 0x7003ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	// Palette
  1501: 	{ 0x800000, 0x800005, MWA16_RAM, &seta_vctrl_0		},	// VRAM Ctrl
  1502: 	{ 0x900000, 0x903fff, seta_vram_0_w, &seta_vram_0	},	// VRAM
  1503: 	{ 0xa00000, 0xa00007, sub_ctrl_w					},	// Sub CPU Control?
  1504: 	{ 0xb00000, 0xb00fff, sharedram_68000_w				},	// Shared RAM
  1505: 	{ 0xc00000, 0xc00001, MWA16_RAM						},	// ? $4000
  1506: 	{ 0xd00000, 0xd00607, MWA16_RAM, &spriteram16		},	// Sprites Y
  1507: 	{ 0xe00000, 0xe03fff, MWA16_RAM, &spriteram16_2		},	// Sprites Code + X + Attr
  1508: 	{ 0xf00000, 0xffffff, MWA16_RAM						},	// RAM
  1509: MEMORY_END
  1510: 
  1511: 
  1512: /***************************************************************************
  1513: 								Caliber 50
  1514: ***************************************************************************/
  1515: 
  1516: READ16_HANDLER ( calibr50_ip_r )
  1517: {
  1518: 	int dir1 = readinputport(4) & 0xfff;	// analog port
  1519: 	int dir2 = readinputport(5) & 0xfff;	// analog port
  1520: 
  1521: 	switch (offset)
  1522: 	{
  1523: 		case 0x00/2:	return readinputport(0);	// p1
  1524: 		case 0x02/2:	return readinputport(1);	// p2
  1525: 
  1526: 		case 0x08/2:	return readinputport(2);	// Coins
  1527: 
  1528: 		case 0x10/2:	return (dir1&0xff);			// lower 8 bits of p1 rotation
  1529: 		case 0x12/2:	return (dir1>>8);			// upper 4 bits of p1 rotation
  1530: 		case 0x14/2:	return (dir2&0xff);			// lower 8 bits of p2 rotation
  1531: 		case 0x16/2:	return (dir2>>8);			// upper 4 bits of p2 rotation
  1532: 		case 0x18/2:	return 0xffff;				// ? (value's read but not used)
  1533: 		default:
  1534: 			logerror("PC %06X - Read input %02X !\n", activecpu_get_pc(), offset*2);
  1535: 			return 0;
  1536: 	}
  1537: }
  1538: 
  1539: WRITE16_HANDLER( calibr50_soundlatch_w )
  1540: {
  1541: 	if (ACCESSING_LSB)
  1542: 	{
  1543: 		soundlatch_word_w(0,data,mem_mask);
  1544: 		cpu_set_nmi_line(1,PULSE_LINE);
  1545: 		cpu_spinuntil_time(TIME_IN_USEC(50));	// Allow the other cpu to reply
  1546: 	}
  1547: }
  1548: 
  1549: static MEMORY_READ16_START( calibr50_readmem )
  1550: 	{ 0x000000, 0x09ffff, MRA16_ROM				},	// ROM
  1551: 	{ 0xff0000, 0xffffff, MRA16_RAM				},	// RAM
  1552: 	{ 0x100000, 0x100007, MRA16_NOP				},	// ? (same as a00010-a00017?)
  1553: 	{ 0x200000, 0x200fff, MRA16_RAM				},	// NVRAM
  1554: 	{ 0x300000, 0x300001, MRA16_NOP				},	// ? (value's read but not used)
  1555: 	{ 0x400000, 0x400001, watchdog_reset16_r	},	// Watchdog
  1556: 	{ 0x600000, 0x600003, seta_dsw_r			},	// DSW
  1557: 	{ 0x700000, 0x7003ff, MRA16_RAM				},	// Palette
  1558: 	{ 0x900000, 0x901fff, MRA16_RAM				},	// VRAM
  1559: 	{ 0x902000, 0x903fff, MRA16_RAM				},	// VRAM
  1560: 	{ 0x904000, 0x904fff, MRA16_RAM				},	//
  1561: 	{ 0xa00000, 0xa00019, calibr50_ip_r			},	// Input Ports
  1562: /**/{ 0xd00000, 0xd00607, MRA16_RAM				},	// Sprites Y
  1563: 	{ 0xe00000, 0xe03fff, MRA16_RAM				},	// Sprites Code + X + Attr
  1564: 	{ 0xb00000, 0xb00001, soundlatch2_word_r	},	// From Sub CPU
  1565: /**/{ 0xc00000, 0xc00001, MRA16_RAM				},	// ? $4000
  1566: MEMORY_END
  1567: 
  1568: static MEMORY_WRITE16_START( calibr50_writemem )
  1569: 	{ 0x000000, 0x09ffff, MWA16_ROM						},	// ROM
  1570: 	{ 0xff0000, 0xffffff, MWA16_RAM						},	// RAM
  1571: 	{ 0x200000, 0x200fff, MWA16_RAM						},	// NVRAM
  1572: 	{ 0x300000, 0x300001, MWA16_NOP						},	// ? (random value)
  1573: 	{ 0x500000, 0x500001, MWA16_NOP						},	// ?
  1574: 	{ 0x700000, 0x7003ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	// Palette
  1575: 	{ 0x800000, 0x800005, MWA16_RAM, &seta_vctrl_0		},	// VRAM Ctrl
  1576: 	{ 0x900000, 0x903fff, seta_vram_0_w, &seta_vram_0	},	// VRAM
  1577: 	{ 0x904000, 0x904fff, MWA16_RAM						},	//
  1578: 	{ 0xd00000, 0xd00607, MWA16_RAM, &spriteram16		},	// Sprites Y
  1579: 	{ 0xe00000, 0xe03fff, MWA16_RAM, &spriteram16_2		},	// Sprites Code + X + Attr
  1580: 	{ 0xb00000, 0xb00001, calibr50_soundlatch_w			},	// To Sub CPU
  1581: 	{ 0xc00000, 0xc00001, MWA16_RAM						},	// ? $4000
  1582: MEMORY_END
  1583: 
  1584: 
  1585: /***************************************************************************
  1586: 								U.S. Classic
  1587: ***************************************************************************/
  1588: 
  1589: READ16_HANDLER( usclssic_dsw_r )
  1590: {
  1591: 	switch (offset)
  1592: 	{
  1593: 		case 0/2:	return (readinputport(3) >>  8) & 0xf;
  1594: 		case 2/2:	return (readinputport(3) >> 12) & 0xf;
  1595: 		case 4/2:	return (readinputport(3) >>  0) & 0xf;
  1596: 		case 6/2:	return (readinputport(3) >>  4) & 0xf;
  1597: 	}
  1598: 	return 0;
  1599: }
  1600: 
  1601: READ16_HANDLER( usclssic_trackball_x_r )
  1602: {
  1603: 	switch (offset)
  1604: 	{
  1605: 		case 0/2:	return (readinputport(0) >> 0) & 0xff;
  1606: 		case 2/2:	return (readinputport(0) >> 8) & 0xff;
  1607: 	}
  1608: 	return 0;
  1609: }
  1610: 
  1611: READ16_HANDLER( usclssic_trackball_y_r )
  1612: {
  1613: 	switch (offset)
  1614: 	{
  1615: 		case 0/2:	return (readinputport(1) >> 0) & 0xff;
  1616: 		case 2/2:	return (readinputport(1) >> 8) & 0xff;
  1617: 	}
  1618: 	return 0;
  1619: }
  1620: 
  1621: 
  1622: WRITE16_HANDLER( usclssic_lockout_w )
  1623: {
  1624: 	static int old_tiles_offset = 0;
  1625: 
  1626: 	if (ACCESSING_LSB)
  1627: 	{
  1628: 		seta_tiles_offset = (data & 0x10) ? 0x4000: 0;
  1629: 		if (old_tiles_offset != seta_tiles_offset)	tilemap_mark_all_tiles_dirty(ALL_TILEMAPS);
  1630: 		old_tiles_offset = seta_tiles_offset;
  1631: 
  1632: 		seta_coin_lockout_w(data);
  1633: 	}
  1634: }
  1635: 
  1636: 
  1637: static MEMORY_READ16_START( usclssic_readmem )
  1638: 	{ 0x000000, 0x07ffff, MRA16_ROM					},	// ROM
  1639: 	{ 0xff0000, 0xffffff, MRA16_RAM					},	// RAM
  1640: 	{ 0x800000, 0x800607, MRA16_RAM					},	// Sprites Y
  1641: /**/{ 0x900000, 0x900001, MRA16_RAM					},	// ?
  1642: 	{ 0xa00000, 0xa00005, MRA16_RAM					},	// VRAM Ctrl
  1643: /**/{ 0xb00000, 0xb003ff, MRA16_RAM					},	// Palette
  1644: 	{ 0xb40000, 0xb40003, usclssic_trackball_x_r	},	// TrackBall X
  1645: 	{ 0xb40004, 0xb40007, usclssic_trackball_y_r	},	// TrackBall Y + Buttons
  1646: 	{ 0xb40010, 0xb40011, input_port_2_word_r		},	// Coins
  1647: 	{ 0xb40018, 0xb4001f, usclssic_dsw_r			},	// 2 DSWs
  1648: 	{ 0xb80000, 0xb80001, MRA16_NOP					},	// watchdog (value is discarded)?
  1649: 	{ 0xc00000, 0xc03fff, MRA16_RAM					},	// Sprites Code + X + Attr
  1650: 	{ 0xd00000, 0xd01fff, MRA16_RAM					},	// VRAM
  1651: 	{ 0xd02000, 0xd03fff, MRA16_RAM					},	// VRAM
  1652: 	{ 0xd04000, 0xd04fff, MRA16_RAM					},	//
  1653: 	{ 0xe00000, 0xe00fff, MRA16_RAM					},	// NVRAM? (odd bytes)
  1654: MEMORY_END
  1655: 
  1656: static MEMORY_WRITE16_START( usclssic_writemem )
  1657: 	{ 0x000000, 0x07ffff, MWA16_ROM						},	// ROM
  1658: 	{ 0xff0000, 0xffffff, MWA16_RAM						},	// RAM
  1659: 	{ 0x800000, 0x800607, MWA16_RAM , &spriteram16		},	// Sprites Y
  1660: 	{ 0x900000, 0x900001, MWA16_RAM						},	// ? $4000
  1661: 	{ 0xa00000, 0xa00005, MWA16_RAM, &seta_vctrl_0		},	// VRAM Ctrl
  1662: 	{ 0xb00000, 0xb003ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	// Palette
  1663: 	{ 0xb40000, 0xb40001, usclssic_lockout_w			},	// Coin Lockout + Tiles Banking
  1664: 	{ 0xb40010, 0xb40011, calibr50_soundlatch_w			},	// To Sub CPU
  1665: 	{ 0xb40018, 0xb40019, watchdog_reset16_w			},	// Watchdog
  1666: 	{ 0xb4000a, 0xb4000b, MWA16_NOP						},	// ? (value's not important. In lev2&6)
  1667: 	{ 0xc00000, 0xc03fff, MWA16_RAM , &spriteram16_2	},	// Sprites Code + X + Attr
  1668: 	{ 0xd00000, 0xd03fff, seta_vram_0_w, &seta_vram_0	},	// VRAM
  1669: 	{ 0xd04000, 0xd04fff, MWA16_RAM						},	//
  1670: 	{ 0xe00000, 0xe00fff, MWA16_RAM						},	// NVRAM? (odd bytes)
  1671: MEMORY_END
  1672: 
  1673: 
  1674: 
  1675: /***************************************************************************
  1676: 								Athena no Hatena?
  1677: ***************************************************************************/
  1678: 
  1679: static MEMORY_READ16_START( atehate_readmem )
  1680: 	{ 0x000000, 0x0fffff, MRA16_ROM				},	// ROM
  1681: 	{ 0x900000, 0x9fffff, MRA16_RAM				},	// RAM
  1682: 	{ 0x100000, 0x103fff, seta_sound_word_r		},	// Sound
  1683: 	{ 0x600000, 0x600003, seta_dsw_r			},	// DSW
  1684: 	{ 0x700000, 0x7003ff, MRA16_RAM				},	// Palette
  1685: 	{ 0xa00000, 0xa00607, MRA16_RAM				},	// Sprites Y
  1686: 	{ 0xb00000, 0xb00001, input_port_0_word_r	},	// P1
  1687: 	{ 0xb00002, 0xb00003, input_port_1_word_r	},	// P2
  1688: 	{ 0xb00004, 0xb00005, input_port_2_word_r	},	// Coins
  1689: /**/{ 0xc00000, 0xc00001, MRA16_RAM				},	// ? 0x4000
  1690: 	{ 0xe00000, 0xe03fff, MRA16_RAM				},	// Sprites Code + X + Attr
  1691: MEMORY_END
  1692: 
  1693: static MEMORY_WRITE16_START( atehate_writemem )
  1694: 	{ 0x000000, 0x0fffff, MWA16_ROM					},	// ROM
  1695: 	{ 0x900000, 0x9fffff, MWA16_RAM					},	// RAM
  1696: 	{ 0x100000, 0x103fff, seta_sound_word_w			},	// Sound
  1697: 	{ 0x200000, 0x200001, MWA16_NOP					},	// ? watchdog ?
  1698: 	{ 0x300000, 0x300001, MWA16_NOP					},	// ? 0 (irq ack lev 2?)
  1699: 	{ 0x500000, 0x500001, MWA16_NOP					},	// ? (end of lev 1: bit 4 goes 1,0,1)
  1700: 	{ 0x700000, 0x7003ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	// Palette
  1701: 	{ 0xa00000, 0xa00607, MWA16_RAM, &spriteram16	},	// Sprites Y
  1702: 	{ 0xc00000, 0xc00001, MWA16_RAM					},	// ? 0x4000
  1703: 	{ 0xe00000, 0xe03fff, MWA16_RAM, &spriteram16_2	},	// Sprites Code + X + Attr
  1704: MEMORY_END
  1705: 
  1706: /***************************************************************************
  1707: 						Blandia
  1708: ***************************************************************************/
  1709: 
  1710: static MEMORY_READ16_START( blandia_readmem )
  1711: 	{ 0x000000, 0x1fffff, MRA16_ROM				},	// ROM (up to 2MB)
  1712: 	{ 0x200000, 0x20ffff, MRA16_RAM				},	// RAM (main ram for zingzip, wrofaero writes to 20f000-20ffff)
  1713: 	{ 0x210000, 0x21ffff, MRA16_RAM				},	// RAM (gundhara)
  1714: 	{ 0x300000, 0x30ffff, MRA16_RAM				},	// RAM (wrofaero only?)
  1715: 	{ 0x500000, 0x500005, MRA16_RAM				},	// (gundhara)
  1716: 	{ 0x400000, 0x400001, input_port_0_word_r	},	// P1
  1717: 	{ 0x400002, 0x400003, input_port_1_word_r	},	// P2
  1718: 	{ 0x400004, 0x400005, input_port_2_word_r	},	// Coins
  1719: 	{ 0x600000, 0x600003, seta_dsw_r			},	// DSW
  1720: 	{ 0x700000, 0x7003ff, MRA16_RAM				},	// (rezon,jjsquawk)
  1721: 	{ 0x700400, 0x700fff, MRA16_RAM				},	// Palette
  1722: 	{ 0x701000, 0x70ffff, MRA16_RAM				},	//
  1723: /**/{ 0x800000, 0x800607, MRA16_RAM				},	// Sprites Y
  1724: 	{ 0x880000, 0x880001, MRA16_RAM				},	// ? 0xc000
  1725: 	{ 0x900000, 0x903fff, MRA16_RAM				},	// Sprites Code + X + Attr
  1726: /**/{ 0xa00000, 0xa00005, MRA16_RAM				},	// VRAM 0&1 Ctrl
  1727: /**/{ 0xa80000, 0xa80005, MRA16_RAM				},	// VRAM 2&3 Ctrl
  1728: 	{ 0xb00000, 0xb03fff, MRA16_RAM				},	// VRAM 0&1
  1729: 	{ 0xb04000, 0xb0ffff, MRA16_RAM				},	// (jjsquawk)
  1730: 	{ 0xb80000, 0xb83fff, MRA16_RAM				},	// VRAM 2&3
  1731: 	{ 0xb84000, 0xb8ffff, MRA16_RAM				},	// (jjsquawk)
  1732: 	{ 0xc00000, 0xc03fff, seta_sound_word_r		},	// Sound
  1733: MEMORY_END
  1734: 
  1735: static MEMORY_WRITE16_START( blandia_writemem )
  1736: 	{ 0x000000, 0x1fffff, MWA16_ROM						},	// ROM (up to 2MB)
  1737: 	{ 0x200000, 0x20ffff, MWA16_RAM						},	// RAM
  1738: 	{ 0x210000, 0x21ffff, MWA16_RAM						},	// RAM (gundhara)
  1739: 	{ 0x300000, 0x30ffff, MWA16_RAM						},	// RAM (wrofaero only?)
  1740: 	{ 0x500000, 0x500005, seta_vregs_w, &seta_vregs		},	// Coin Lockout + Video Registers
  1741: 	{ 0x700000, 0x7003ff, MWA16_RAM						},	// (rezon,jjsquawk)
  1742: 	{ 0x700400, 0x700fff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	// Palette
  1743: 	{ 0x701000, 0x70ffff, MWA16_RAM						},	//
  1744: 	{ 0x800000, 0x800607, MWA16_RAM, &spriteram16		},	// Sprites Y
  1745: 	{ 0x880000, 0x880001, MWA16_RAM						},	// ? 0xc000
  1746: 	{ 0x900000, 0x903fff, MWA16_RAM, &spriteram16_2		},	// Sprites Code + X + Attr
  1747: 	{ 0xa00000, 0xa00005, MWA16_RAM, &seta_vctrl_0		},	// VRAM 0&1 Ctrl
  1748: 	{ 0xa80000, 0xa80005, MWA16_RAM, &seta_vctrl_2		},	// VRAM 2&3 Ctrl
  1749: 	{ 0xb00000, 0xb03fff, seta_vram_0_w, &seta_vram_0	},	// VRAM 0
  1750: 	{ 0xb04000, 0xb0ffff, MWA16_RAM						},	// (jjsquawk)
  1751: 	{ 0xb80000, 0xb83fff, seta_vram_2_w, &seta_vram_2	},	// VRAM 2
  1752: 	{ 0xb84000, 0xb8ffff, MWA16_RAM						},	// (jjsquawk)
  1753: 	{ 0xc00000, 0xc03fff, seta_sound_word_w				},	// Sound
  1754: 	{ 0xd00000, 0xd00007, MWA16_NOP						},	// ?
  1755: 	{ 0xe00000, 0xe00001, MWA16_NOP						},	// ? VBlank IRQ Ack
  1756: 	{ 0xf00000, 0xf00001, MWA16_NOP						},	// ? Sound  IRQ Ack
  1757: MEMORY_END
  1758: 
  1759: 
  1760: /***************************************************************************
  1761: 	Blandia (proto), Gundhara, J.J.Squawkers, Rezon, War of Aero, Zing Zing Zip
  1762: 						(with slight variations)
  1763: ***************************************************************************/
  1764: 
  1765: static MEMORY_READ16_START( blandiap_readmem )
  1766: 	{ 0x000000, 0x1fffff, MRA16_ROM				},	// ROM (up to 2MB)
  1767: 	{ 0x200000, 0x20ffff, MRA16_RAM				},	// RAM (main ram for zingzip, wrofaero writes to 20f000-20ffff)
  1768: 	{ 0x210000, 0x21ffff, MRA16_RAM				},	// RAM (gundhara)
  1769: 	{ 0x300000, 0x30ffff, MRA16_RAM				},	// RAM (wrofaero only?)
  1770: 	{ 0x500000, 0x500005, MRA16_RAM				},	// (gundhara)
  1771: 	{ 0x400000, 0x400001, input_port_0_word_r	},	// P1
  1772: 	{ 0x400002, 0x400003, input_port_1_word_r	},	// P2
  1773: 	{ 0x400004, 0x400005, input_port_2_word_r	},	// Coins
  1774: 	{ 0x600000, 0x600003, seta_dsw_r			},	// DSW
  1775: 	{ 0x700000, 0x7003ff, MRA16_RAM				},	// (rezon,jjsquawk)
  1776: 	{ 0x700400, 0x700fff, MRA16_RAM				},	// Palette
  1777: 	{ 0x701000, 0x70ffff, MRA16_RAM				},	//
  1778: 	{ 0x800000, 0x803fff, MRA16_RAM				},	// VRAM 0&1
  1779: 	{ 0x804000, 0x80ffff, MRA16_RAM				},	// (jjsquawk)
  1780: 	{ 0x880000, 0x883fff, MRA16_RAM				},	// VRAM 2&3
  1781: 	{ 0x884000, 0x88ffff, MRA16_RAM				},	// (jjsquawk)
  1782: /**/{ 0x900000, 0x900005, MRA16_RAM				},	// VRAM 0&1 Ctrl
  1783: /**/{ 0x980000, 0x980005, MRA16_RAM				},	// VRAM 2&3 Ctrl
  1784: /**/{ 0xa00000, 0xa00607, MRA16_RAM				},	// Sprites Y
  1785: /**/{ 0xa80000, 0xa80001, MRA16_RAM				},	// ? 0x4000
  1786: 	{ 0xb00000, 0xb03fff, MRA16_RAM				},	// Sprites Code + X + Attr
  1787: 	{ 0xc00000, 0xc03fff, seta_sound_word_r		},	// Sound
  1788: MEMORY_END
  1789: 
  1790: static MEMORY_WRITE16_START( blandiap_writemem )
  1791: 	{ 0x000000, 0x1fffff, MWA16_ROM						},	// ROM (up to 2MB)
  1792: 	{ 0x200000, 0x20ffff, MWA16_RAM						},	// RAM
  1793: 	{ 0x210000, 0x21ffff, MWA16_RAM						},	// RAM (gundhara)
  1794: 	{ 0x300000, 0x30ffff, MWA16_RAM						},	// RAM (wrofaero only?)
  1795: 	{ 0x500000, 0x500005, seta_vregs_w, &seta_vregs		},	// Coin Lockout + Video Registers
  1796: 	{ 0x700000, 0x7003ff, MWA16_RAM						},	// (rezon,jjsquawk)
  1797: 	{ 0x700400, 0x700fff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	// Palette
  1798: 	{ 0x701000, 0x70ffff, MWA16_RAM						},	//
  1799: 	{ 0x800000, 0x803fff, seta_vram_0_w, &seta_vram_0	},	// VRAM 0
  1800: 	{ 0x804000, 0x80ffff, MWA16_RAM						},	// (jjsquawk)
  1801: 	{ 0x880000, 0x883fff, seta_vram_2_w, &seta_vram_2	},	// VRAM 2
  1802: 	{ 0x884000, 0x88ffff, MWA16_RAM						},	// (jjsquawk)
  1803: 	{ 0x900000, 0x900005, MWA16_RAM, &seta_vctrl_0		},	// VRAM 0&1 Ctrl
  1804: 	{ 0x980000, 0x980005, MWA16_RAM, &seta_vctrl_2		},	// VRAM 2&3 Ctrl
  1805: 	{ 0xa00000, 0xa00607, MWA16_RAM, &spriteram16		},	// Sprites Y
  1806: 	{ 0xa80000, 0xa80001, MWA16_RAM						},	// ? 0x4000
  1807: 	{ 0xb00000, 0xb03fff, MWA16_RAM, &spriteram16_2		},	// Sprites Code + X + Attr
  1808: 	{ 0xc00000, 0xc03fff, seta_sound_word_w				},	// Sound
  1809: 	{ 0xd00000, 0xd00007, MWA16_NOP						},	// ?
  1810: 	{ 0xe00000, 0xe00001, MWA16_NOP						},	// ? VBlank IRQ Ack
  1811: 	{ 0xf00000, 0xf00001, MWA16_NOP						},	// ? Sound  IRQ Ack
  1812: MEMORY_END
  1813: 
  1814: 
  1815: /***************************************************************************
  1816: 	Blandia, Gundhara, J.J.Squawkers, Rezon, War of Aero, Zing Zing Zip
  1817: 					and Zombie Raid (with slight variations)
  1818: ***************************************************************************/
  1819: 
  1820: static int gun_input_bit = 0, gun_input_src = 0;
  1821: 
  1822: static READ16_HANDLER( zombraid_gun_r ) // Serial interface
  1823: {
  1824: 	int data = readinputport(4 + gun_input_src); // Input Ports 5-8
  1825: 	return (data >> gun_input_bit) & 1;
  1826: }
  1827: 
  1828: // Bit 0 is clock, 1 is data, 2 is reset
  1829: static WRITE16_HANDLER( zombraid_gun_w )
  1830: {
  1831: 	static int bit_count = 0, old_clock = 0;
  1832: 
  1833: 	if(data&4) { bit_count = 0; return; } // Reset
  1834: 
  1835: 	if((data&1) == old_clock) return; // No change
  1836: 
  1837: 	if(old_clock == 0) // Rising edge
  1838: 	{
  1839: 		switch (bit_count)
  1840: 		{
  1841: 			case 0:
  1842: 			case 1: // Starting sequence 2,3,2,3. Other inputs?
  1843: 				break;
  1844: 			case 2: // First bit of source
  1845: 				gun_input_src = (gun_input_src&2) | (data>>1);
  1846: 				break;
  1847: 			case 3: // Second bit of source
  1848: 				gun_input_src = (gun_input_src&1) | (data&2);
  1849: 				break;
  1850: 			default:
  1851: 				gun_input_bit = bit_count - 4;
  1852: 				gun_input_bit = 8 - gun_input_bit; // Reverse order
  1853: 				break;
  1854: 		}
  1855: 		bit_count++;
  1856: 	}
  1857: 
  1858: 	old_clock = data & 1;
  1859: }
  1860: 
  1861: static MEMORY_READ16_START( wrofaero_readmem )
  1862: 	{ 0x000000, 0x1fffff, MRA16_ROM				},	// ROM (up to 2MB)
  1863: 	{ 0x200000, 0x20ffff, MRA16_RAM				},	// RAM (main ram for zingzip, wrofaero writes to 20f000-20ffff)
  1864: 	{ 0x210000, 0x21ffff, MRA16_RAM				},	// RAM (gundhara)
  1865: 	{ 0x300000, 0x30ffff, MRA16_RAM				},	// RAM (wrofaero only?)
  1866: 	{ 0x500000, 0x500005, MRA16_RAM				},	// (gundhara)
  1867: 	{ 0x400000, 0x400001, input_port_0_word_r	},	// P1
  1868: 	{ 0x400002, 0x400003, input_port_1_word_r	},	// P2
  1869: 	{ 0x400004, 0x400005, input_port_2_word_r	},	// Coins
  1870: 	{ 0x600000, 0x600003, seta_dsw_r			},	// DSW
  1871: 	{ 0x700000, 0x7003ff, MRA16_RAM				},	// (rezon,jjsquawk)
  1872: 	{ 0x700400, 0x700fff, MRA16_RAM				},	// Palette
  1873: 	{ 0x701000, 0x70ffff, MRA16_RAM				},	//
  1874: 	{ 0x800000, 0x803fff, MRA16_RAM				},	// VRAM 0&1
  1875: 	{ 0x804000, 0x80ffff, MRA16_RAM				},	// (jjsquawk)
  1876: 	{ 0x880000, 0x883fff, MRA16_RAM				},	// VRAM 2&3
  1877: 	{ 0x884000, 0x88ffff, MRA16_RAM				},	// (jjsquawk)
  1878: /**/{ 0x900000, 0x900005, MRA16_RAM				},	// VRAM 0&1 Ctrl
  1879: /**/{ 0x980000, 0x980005, MRA16_RAM				},	// VRAM 2&3 Ctrl
  1880: /**/{ 0xa00000, 0xa00607, MRA16_RAM				},	// Sprites Y
  1881: /**/{ 0xa80000, 0xa80001, MRA16_RAM				},	// ? 0x4000
  1882: 	{ 0xb00000, 0xb03fff, MRA16_RAM				},	// Sprites Code + X + Attr
  1883: 	{ 0xc00000, 0xc03fff, seta_sound_word_r		},	// Sound
  1884: MEMORY_END
  1885: 
  1886: static MEMORY_WRITE16_START( wrofaero_writemem )
  1887: 	{ 0x000000, 0x1fffff, MWA16_ROM						},	// ROM (up to 2MB)
  1888: 	{ 0x200000, 0x20ffff, MWA16_RAM, &seta_workram		},	// RAM (pointer for zombraid crosshair hack)
  1889: 	{ 0x210000, 0x21ffff, MWA16_RAM						},	// RAM (gundhara)
  1890: 	{ 0x300000, 0x30ffff, MWA16_RAM						},	// RAM (wrofaero only?)
  1891: 	{ 0x500000, 0x500005, seta_vregs_w, &seta_vregs		},	// Coin Lockout + Video Registers
  1892: 	{ 0x700000, 0x7003ff, MWA16_RAM						},	// (rezon,jjsquawk)
  1893: 	{ 0x700400, 0x700fff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	// Palette
  1894: 	{ 0x701000, 0x70ffff, MWA16_RAM						},	//
  1895: 	{ 0x800000, 0x803fff, seta_vram_0_w, &seta_vram_0	},	// VRAM 0
  1896: 	{ 0x804000, 0x80ffff, MWA16_RAM						},	// (jjsquawk)
  1897: 	{ 0x880000, 0x883fff, seta_vram_2_w, &seta_vram_2	},	// VRAM 2
  1898: 	{ 0x884000, 0x88ffff, MWA16_RAM						},	// (jjsquawk)
  1899: 	{ 0x900000, 0x900005, MWA16_RAM, &seta_vctrl_0		},	// VRAM 0&1 Ctrl
  1900: 	{ 0x980000, 0x980005, MWA16_RAM, &seta_vctrl_2		},	// VRAM 2&3 Ctrl
  1901: 	{ 0xa00000, 0xa00607, MWA16_RAM, &spriteram16		},	// Sprites Y
  1902: 	{ 0xa80000, 0xa80001, MWA16_RAM						},	// ? 0x4000
  1903: 	{ 0xb00000, 0xb03fff, MWA16_RAM, &spriteram16_2		},	// Sprites Code + X + Attr
  1904: 	{ 0xc00000, 0xc03fff, seta_sound_word_w				},	// Sound
  1905: #if __uPD71054_TIMER 
  1906: 	{ 0xd00000, 0xd00007, timer_regs_w					},	// ?
  1907: #else 
  1908: 	{ 0xd00000, 0xd00007, MWA16_NOP						},	// ?
  1909: #endif 
  1910: 	{ 0xe00000, 0xe00001, MWA16_NOP						},	// ? VBlank IRQ Ack
  1911: 	{ 0xf00000, 0xf00001, MWA16_NOP						},	// ? Sound  IRQ Ack
  1912: MEMORY_END
  1913: 
  1914: 
  1915: 
  1916: /***************************************************************************
  1917: 								Block Carnival
  1918: ***************************************************************************/
  1919: 
  1920: /* similar to krzybowl */
  1921: static MEMORY_READ16_START( blockcar_readmem )
  1922: 	{ 0x000000, 0x03ffff, MRA16_ROM				},	// ROM
  1923: 	{ 0xf00000, 0xf03fff, MRA16_RAM				},	// RAM
  1924: 	{ 0xf04000, 0xf041ff, MRA16_RAM				},	// Backup RAM?
  1925: 	{ 0xf05000, 0xf050ff, MRA16_RAM				},	// Backup RAM?
  1926: 	{ 0x300000, 0x300003, seta_dsw_r			},	// DSW
  1927: 	{ 0x500000, 0x500001, input_port_0_word_r	},	// P1
  1928: 	{ 0x500002, 0x500003, input_port_1_word_r	},	// P2
  1929: 	{ 0x500004, 0x500005, input_port_2_word_r	},	// Coins
  1930: 	{ 0xa00000, 0xa03fff, seta_sound_word_r		},	// Sound
  1931: 	{ 0xb00000, 0xb003ff, MRA16_RAM				},	// Palette
  1932: 	{ 0xc00000, 0xc03fff, MRA16_RAM				},	// Sprites Code + X + Attr
  1933: /**/{ 0xd00000, 0xd00001, MRA16_RAM				},	// ? 0x4000
  1934: /**/{ 0xe00000, 0xe00607, MRA16_RAM				},	// Sprites Y
  1935: MEMORY_END
  1936: 
  1937: static MEMORY_WRITE16_START( blockcar_writemem )
  1938: 	{ 0x000000, 0x03ffff, MWA16_ROM					},	// ROM
  1939: 	{ 0xf00000, 0xf03fff, MWA16_RAM					},	// RAM
  1940: 	{ 0xf04000, 0xf041ff, MWA16_RAM					},	// Backup RAM?
  1941: 	{ 0xf05000, 0xf050ff, MWA16_RAM					},	// Backup RAM?
  1942: 	{ 0x100000, 0x100001, MWA16_NOP					},	// ? 1 (start of interrupts, main loop: watchdog?)
  1943: 	{ 0x200000, 0x200001, MWA16_NOP					},	// ? 0/1 (IRQ acknowledge?)
  1944: 	{ 0x400000, 0x400001, seta_vregs_w, &seta_vregs	},	// Coin Lockout + Sound Enable (bit 4?)
  1945: 	{ 0xa00000, 0xa03fff, seta_sound_word_w			},	// Sound
  1946: 	{ 0xb00000, 0xb003ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	// Palette
  1947: 	{ 0xc00000, 0xc03fff, MWA16_RAM, &spriteram16_2	},	// Sprites Code + X + Attr
  1948: 	{ 0xd00000, 0xd00001, MWA16_RAM					},	// ? 0x4000
  1949: 	{ 0xe00000, 0xe00607, MWA16_RAM, &spriteram16	},	// Sprites Y
  1950: MEMORY_END
  1951: 
  1952: 
  1953: 
  1954: /***************************************************************************
  1955: 								Daioh
  1956: ***************************************************************************/
  1957: 
  1958: static MEMORY_READ16_START( daioh_readmem )
  1959: 	{ 0x000000, 0x0fffff, MRA16_ROM				},	// ROM
  1960: 	{ 0x100000, 0x10ffff, MRA16_RAM				},	// RAM
  1961: 	{ 0x400000, 0x400001, input_port_0_word_r	},	// P1
  1962: 	{ 0x400002, 0x400003, input_port_1_word_r	},	// P2
  1963: 	{ 0x400004, 0x400005, input_port_2_word_r	},	// Coins
  1964: 	{ 0x500006, 0x500007, input_port_4_word_r	},	// Buttons 4,5,6
  1965: 	{ 0x600000, 0x600003, seta_dsw_r			},	// DSW
  1966: 	{ 0x700000, 0x7003ff, MRA16_RAM				},
  1967: 	{ 0x700400, 0x700fff, MRA16_RAM				},  // Palette
  1968: 	{ 0x701000, 0x70ffff, MRA16_RAM				},
  1969: 	{ 0x800000, 0x803fff, MRA16_RAM				},	// VRAM 0&1
  1970: 	{ 0x804000, 0x80ffff, MRA16_RAM				},	//
  1971: 	{ 0x880000, 0x883fff, MRA16_RAM				},	// VRAM 2&3
  1972: 	{ 0x884000, 0x88ffff, MRA16_RAM				},	//
  1973: 	{ 0x900000, 0x900005, MRA16_RAM				},	// VRAM 0&1 Ctrl
  1974: 	{ 0x980000, 0x980005, MRA16_RAM				},	// VRAM 2&3 Ctrl
  1975: 	{ 0xa00000, 0xa00607, MRA16_RAM				},	// Sprites Y
  1976: 	{ 0xa80000, 0xa80001, MRA16_RAM				},	// ? 0x4000
  1977: 	{ 0xb00000, 0xb03fff, MRA16_RAM				},	// Sprites Code + X + Attr
  1978: 	{ 0xb04000, 0xb13fff, MRA16_RAM				},	//
  1979: 	{ 0xc00000, 0xc03fff, seta_sound_word_r		},	// Sound
  1980: MEMORY_END
  1981: 
  1982: static MEMORY_WRITE16_START( daioh_writemem )
  1983: 	{ 0x000000, 0x0fffff, MWA16_ROM						},	// ROM
  1984: 	{ 0x100000, 0x10ffff, MWA16_RAM						},	// RAM
  1985: 	{ 0x500000, 0x500005, seta_vregs_w, &seta_vregs		},	// Coin Lockout + Video Registers
  1986: 	{ 0x700000, 0x7003ff, MWA16_RAM						},
  1987: 	{ 0x700400, 0x700fff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	// Palette
  1988: 	{ 0x701000, 0x70ffff, MWA16_RAM						},	//
  1989: 	{ 0x800000, 0x803fff, seta_vram_0_w, &seta_vram_0	},	// VRAM 0
  1990: 	{ 0x804000, 0x80ffff, MWA16_RAM						},	//
  1991: 	{ 0x880000, 0x883fff, seta_vram_2_w, &seta_vram_2	},	// VRAM 2
  1992: 	{ 0x884000, 0x88ffff, MWA16_RAM						},	//
  1993: 	{ 0x900000, 0x900005, MWA16_RAM, &seta_vctrl_0		},	// VRAM 0&1 Ctrl
  1994: 	{ 0x980000, 0x980005, MWA16_RAM, &seta_vctrl_2		},	// VRAM 2&3 Ctrl
  1995: 	{ 0xa00000, 0xa00607, MWA16_RAM, &spriteram16		},	// Sprites Y
  1996: 	{ 0xa80000, 0xa80001, MWA16_RAM						},	// ? 0x4000
  1997: 	{ 0xb00000, 0xb03fff, MWA16_RAM, &spriteram16_2		},	// Sprites Code + X + Attr
  1998: 	{ 0xb04000, 0xb13fff, MWA16_RAM						},	//
  1999: 	{ 0xc00000, 0xc03fff, seta_sound_word_w				},	// Sound
  2000: 	{ 0xe00000, 0xe00001, MWA16_NOP						},	//
  2001: MEMORY_END
  2002: 
  2003: 
  2004: /***************************************************************************
  2005: 		Dragon Unit, Quiz Kokology, Quiz Kokology 2, Strike Gunner
  2006: ***************************************************************************/
  2007: 
  2008: static MEMORY_READ16_START( drgnunit_readmem )
  2009: 	{ 0x000000, 0x07ffff, MRA16_ROM				},	// ROM
  2010: 	{ 0x080000, 0x0bffff, MRA16_RAM				},	// ROM (qzkklgy2)
  2011: 	{ 0xf00000, 0xf0ffff, MRA16_RAM				},	// RAM (qzkklogy)
  2012: 	{ 0xffc000, 0xffffff, MRA16_RAM				},	// RAM (drgnunit,stg)
  2013: 	{ 0x100000, 0x103fff, seta_sound_word_r		},	// Sound
  2014: 	{ 0x600000, 0x600003, seta_dsw_r			},	// DSW
  2015: 	{ 0x700000, 0x7003ff, MRA16_RAM				},	// Palette
  2016: 	{ 0x900000, 0x901fff, MRA16_RAM				},	// VRAM
  2017: 	{ 0x902000, 0x903fff, MRA16_RAM				},	// VRAM
  2018: 	{ 0xb00000, 0xb00001, input_port_0_word_r	},	// P1
  2019: 	{ 0xb00002, 0xb00003, input_port_1_word_r	},	// P2
  2020: 	{ 0xb00004, 0xb00005, input_port_2_word_r	},	// Coins
  2021: 	{ 0xb00006, 0xb00007, MRA16_NOP				},	// unused (qzkklogy)
  2022: /**/{ 0xc00000, 0xc00001, MRA16_RAM				},	// ? $4000
  2023: /**/{ 0xd00000, 0xd00607, MRA16_RAM				},	// Sprites Y
  2024: 	{ 0xe00000, 0xe03fff, MRA16_RAM				},	// Sprites Code + X + Attr
  2025: MEMORY_END
  2026: 
  2027: static MEMORY_WRITE16_START( drgnunit_writemem )
  2028: 	{ 0x000000, 0x07ffff, MWA16_ROM						},	// ROM
  2029: 	{ 0x080000, 0x0bffff, MWA16_RAM						},	// ROM (qzkklgy2)
  2030: 	{ 0xf00000, 0xf0ffff, MWA16_RAM						},	// RAM (qzkklogy)
  2031: 	{ 0xffc000, 0xffffff, MWA16_RAM						},	// RAM (drgnunit,stg)
  2032: 	{ 0x100000, 0x103fff, seta_sound_word_w				},	// Sound
  2033: 	{ 0x200000, 0x200001, MWA16_NOP						},	// Watchdog
  2034: 	{ 0x300000, 0x300001, MWA16_NOP						},	// ? IRQ Ack
  2035: 	{ 0x500000, 0x500001, seta_vregs_w, &seta_vregs		},	// Coin Lockout + Video Registers
  2036: 	{ 0x700000, 0x7003ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	// Palette
  2037: 	{ 0x800000, 0x800005, MWA16_RAM, &seta_vctrl_0		},	// VRAM Ctrl
  2038: 	{ 0x900000, 0x903fff, seta_vram_0_w, &seta_vram_0	},	// VRAM
  2039: 	{ 0x904000, 0x90ffff, MWA16_NOP						},	// unused (qzkklogy)
  2040: 	{ 0xc00000, 0xc00001, MWA16_RAM						},	// ? $4000
  2041: 	{ 0xd00000, 0xd00607, MWA16_RAM, &spriteram16		},	// Sprites Y
  2042: 	{ 0xe00000, 0xe03fff, MWA16_RAM, &spriteram16_2		},	// Sprites Code + X + Attr
  2043: MEMORY_END
  2044: 
  2045: 
  2046: /***************************************************************************
  2047: 						Extreme Downhill / Sokonuke
  2048: ***************************************************************************/
  2049: 
  2050: static MEMORY_READ16_START( extdwnhl_readmem )
  2051: 	{ 0x000000, 0x0fffff, MRA16_ROM				},	// ROM
  2052: 	{ 0x200000, 0x20ffff, MRA16_RAM				},	// RAM
  2053: 	{ 0x210000, 0x21ffff, MRA16_RAM				},	// RAM
  2054: 	{ 0x220000, 0x23ffff, MRA16_RAM				},	// RAM (sokonuke)
  2055: 	{ 0x400000, 0x400001, input_port_0_word_r	},	// P1
  2056: 	{ 0x400002, 0x400003, input_port_1_word_r	},	// P2
  2057: 	{ 0x400004, 0x400005, input_port_2_word_r	},	// Coins
  2058: 	{ 0x400008, 0x40000b, seta_dsw_r			},	// DSW
  2059: 	{ 0x40000c, 0x40000d, watchdog_reset16_r	},	// Watchdog (extdwnhl, MUST RETURN $FFFF)
  2060: 	{ 0x500004, 0x500007, MRA16_NOP				},	// IRQ Ack  (extdwnhl)
  2061: 	{ 0x600400, 0x600fff, MRA16_RAM				},	// Palette
  2062: 	{ 0x601000, 0x610bff, MRA16_RAM				},	//
  2063: 	{ 0x800000, 0x803fff, MRA16_RAM				},	// VRAM 0&1
  2064: 	{ 0x804000, 0x80ffff, MRA16_RAM				},	//
  2065: 	{ 0x880000, 0x883fff, MRA16_RAM				},	// VRAM 2&3
  2066: 	{ 0x884000, 0x88ffff, MRA16_RAM				},	//
  2067: /**/{ 0x900000, 0x900005, MRA16_RAM				},	// VRAM 0&1 Ctrl
  2068: /**/{ 0x980000, 0x980005, MRA16_RAM				},	// VRAM 2&3 Ctrl
  2069: /**/{ 0xa00000, 0xa00607, MRA16_RAM				},	// Sprites Y
  2070: /**/{ 0xa80000, 0xa80001, MRA16_RAM				},	// ? 0x4000
  2071: 	{ 0xb00000, 0xb03fff, MRA16_RAM				},	// Sprites Code + X + Attr
  2072: 	{ 0xb04000, 0xb13fff, MRA16_RAM				},	//
  2073: 	{ 0xe00000, 0xe03fff, seta_sound_word_r		},	// Sound
  2074: MEMORY_END
  2075: 
  2076: static MEMORY_WRITE16_START( extdwnhl_writemem )
  2077: 	{ 0x000000, 0x0fffff, MWA16_ROM						},	// ROM
  2078: 	{ 0x200000, 0x20ffff, MWA16_RAM						},	// RAM
  2079: 	{ 0x210000, 0x21ffff, MWA16_RAM						},	// RAM
  2080: 	{ 0x220000, 0x23ffff, MWA16_RAM						},	// RAM (sokonuke)
  2081: 	{ 0x40000c, 0x40000d, watchdog_reset16_w			},	// Watchdog (sokonuke)
  2082: 	{ 0x500000, 0x500003, seta_vregs_w, &seta_vregs		},	// Coin Lockout + Video Registers
  2083: 	{ 0x500004, 0x500007, MWA16_NOP						},	// IRQ Ack (sokonuke)
  2084: 	{ 0x600400, 0x600fff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	// Palette
  2085: 	{ 0x601000, 0x610bff, MWA16_RAM						},	//
  2086: 	{ 0x800000, 0x803fff, seta_vram_0_w, &seta_vram_0	},	// VRAM 0
  2087: 	{ 0x804000, 0x80ffff, MWA16_RAM						},	//
  2088: 	{ 0x880000, 0x883fff, seta_vram_2_w, &seta_vram_2	},	// VRAM 2
  2089: 	{ 0x884000, 0x88ffff, MWA16_RAM						},	//
  2090: 	{ 0x900000, 0x900005, MWA16_RAM, &seta_vctrl_0		},	// VRAM 0&1 Ctrl
  2091: 	{ 0x980000, 0x980005, MWA16_RAM, &seta_vctrl_2		},	// VRAM 2&3 Ctrl
  2092: 	{ 0xa00000, 0xa00607, MWA16_RAM, &spriteram16		},	// Sprites Y
  2093: 	{ 0xa80000, 0xa80001, MWA16_RAM						},	// ? 0x4000
  2094: 	{ 0xb00000, 0xb03fff, MWA16_RAM, &spriteram16_2		},	// Sprites Code + X + Attr
  2095: 	{ 0xb04000, 0xb13fff, MWA16_RAM						},	//
  2096: 	{ 0xe00000, 0xe03fff, seta_sound_word_w				},	// Sound
  2097: MEMORY_END
  2098: 
  2099: /***************************************************************************
  2100: 		(Kamen) Masked Riders Club Battle Race / Mad Shark
  2101: ***************************************************************************/
  2102: 
  2103: static MEMORY_READ16_START( kamenrid_readmem )
  2104: 	{ 0x000000, 0x07ffff, MRA16_ROM				},	// ROM
  2105: 	{ 0x200000, 0x20ffff, MRA16_RAM				},	// ROM
  2106: 	{ 0x500000, 0x500001, input_port_0_word_r	},	// P1
  2107: 	{ 0x500002, 0x500003, input_port_1_word_r	},	// P2
  2108: 	{ 0x500004, 0x500007, seta_dsw_r		},	// DSW
  2109: 	{ 0x500008, 0x500009, input_port_2_word_r	},	// Coins
  2110: 	{ 0x50000c, 0x50000d, watchdog_reset16_r	},	// xx Watchdog?
  2111: 	{ 0x700000, 0x7003ff, MRA16_RAM				},	// Palette
  2112: 	{ 0x700400, 0x700fff, MRA16_RAM				},	// Palette
  2113: 	{ 0x701000, 0x703fff, MRA16_RAM				},	// Palette
  2114: 	{ 0x800000, 0x801fff, MRA16_RAM				},	// VRAM 0
  2115: 	{ 0x802000, 0x803fff, MRA16_RAM				},	// VRAM 1
  2116: 	{ 0x804000, 0x807fff, MRA16_RAM				},	// tested
  2117: 	{ 0x880000, 0x881fff, MRA16_RAM				},	// VRAM 2
  2118: 	{ 0x882000, 0x883fff, MRA16_RAM				},	// VRAM 3
  2119: 	{ 0x884000, 0x887fff, MRA16_RAM				},	// tested
  2120: 	{ 0xa00000, 0xa00607, MRA16_RAM			 	},	// Sprites Y
  2121: 	{ 0xb00000, 0xb03fff, MRA16_RAM				},	// Sprites Code + X + Attr
  2122: 	{ 0xb04000, 0xb07fff, MRA16_RAM				},	// tested
  2123: 	{ 0xd00000, 0xd03fff, seta_sound_word_r		},	// Sound
  2124: MEMORY_END
  2125: 
  2126: static MEMORY_WRITE16_START( kamenrid_writemem )
  2127: 	{ 0x000000, 0x07ffff, MWA16_ROM						},	// ROM
  2128: 	{ 0x200000, 0x20ffff, MWA16_RAM						},	// ROM
  2129: 	{ 0x50000c, 0x50000d, watchdog_reset16_w			},	// Watchdog (sokonuke)
  2130: 	{ 0x600000, 0x600005, seta_vregs_w, &seta_vregs		},	// ? Coin Lockout + Video Registers
  2131: 	{ 0x600006, 0x600007, MWA16_NOP						},	// ?
  2132: 	{ 0x700000, 0x7003ff, MWA16_RAM						},	// Palette RAM (tested)
  2133: 	{ 0x700400, 0x700fff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	// Palette
  2134: 	{ 0x701000, 0x703fff, MWA16_RAM	},	// Palette
  2135: 	{ 0x800000, 0x803fff, seta_vram_0_w, &seta_vram_0	},	// VRAM 0
  2136: 	{ 0x804000, 0x807fff, MWA16_RAM	},	// tested
  2137: 	{ 0x880000, 0x883fff, seta_vram_2_w, &seta_vram_2	},	// VRAM 2
  2138: 	{ 0x884000, 0x887fff, MWA16_RAM	},	// tested
  2139: 	{ 0x900000, 0x900005, MWA16_RAM, &seta_vctrl_0		},	// VRAM 0&1 Ctrl
  2140: 	{ 0x980000, 0x980005, MWA16_RAM, &seta_vctrl_2		},	// VRAM 2&3 Ctrl
  2141: 	{ 0xa00000, 0xa00607, MWA16_RAM , &spriteram16		},	// Sprites Y
  2142: 	{ 0xa80000, 0xa80001, MWA16_RAM						},	// ? $4000
  2143: 	{ 0xb00000, 0xb03fff, MWA16_RAM , &spriteram16_2	},	// Sprites Code + X + Attr
  2144: 	{ 0xb04000, 0xb07fff, MWA16_RAM },	// tested
  2145: #if __uPD71054_TIMER 
  2146: 	{ 0xc00000, 0xc00007, timer_regs_w					},	// ?
  2147: #else 
  2148: 	{ 0xc00000, 0xc00007, MWA16_NOP						},	// ?
  2149: #endif 
  2150: 	{ 0xd00000, 0xd03fff, seta_sound_word_w				},	// Sound
  2151: MEMORY_END
  2152: 
  2153: /* almast identical to kamenrid */
  2154: static MEMORY_READ16_START( madshark_readmem )
  2155: 	{ 0x000000, 0x0fffff, MRA16_ROM				},	// ROM
  2156: 	{ 0x200000, 0x20ffff, MRA16_RAM				},	// ROM
  2157: 	{ 0x500000, 0x500001, input_port_0_word_r	},	// P1
  2158: 	{ 0x500002, 0x500003, input_port_1_word_r	},	// P2
  2159: 	{ 0x500004, 0x500005, input_port_2_word_r	},	// Coins
  2160: 	{ 0x500008, 0x50000b, seta_dsw_r			},	// DSW
  2161: 	{ 0x700400, 0x700fff, MRA16_RAM				},	// Palette
  2162: 	{ 0x800000, 0x801fff, MRA16_RAM				},	// VRAM 0
  2163: 	{ 0x802000, 0x803fff, MRA16_RAM				},	// VRAM 1
  2164: 	{ 0x880000, 0x881fff, MRA16_RAM				},	// VRAM 2
  2165: 	{ 0x882000, 0x883fff, MRA16_RAM				},	// VRAM 3
  2166: 	{ 0xa00000, 0xa00607, MRA16_RAM			 	},	// Sprites Y
  2167: 	{ 0xb00000, 0xb03fff, MRA16_RAM				},	// Sprites Code + X + Attr
  2168: 	{ 0xd00000, 0xd03fff, seta_sound_word_r		},	// Sound
  2169: MEMORY_END
  2170: 
  2171: static MEMORY_WRITE16_START( madshark_writemem )
  2172: 	{ 0x000000, 0x0fffff, MWA16_ROM						},	// ROM
  2173: 	{ 0x200000, 0x20ffff, MWA16_RAM						},	// ROM
  2174: 	{ 0x50000c, 0x50000d, watchdog_reset16_w			},	// Watchdog
  2175: 	{ 0x600000, 0x600005, seta_vregs_w, &seta_vregs		},	// ? Coin Lockout + Video Registers
  2176: 	{ 0x600006, 0x600007, MWA16_NOP						},	// ?
  2177: 	{ 0x700400, 0x700fff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	// Palette
  2178: 	{ 0x800000, 0x803fff, seta_vram_0_w, &seta_vram_0	},	// VRAM 0
  2179: 	{ 0x880000, 0x883fff, seta_vram_2_w, &seta_vram_2	},	// VRAM 2
  2180: 	{ 0x900000, 0x900005, MWA16_RAM, &seta_vctrl_0		},	// VRAM 0&1 Ctrl
  2181: 	{ 0x980000, 0x980005, MWA16_RAM, &seta_vctrl_2		},	// VRAM 2&3 Ctrl
  2182: 	{ 0xa00000, 0xa00607, MWA16_RAM , &spriteram16		},	// Sprites Y
  2183: 	{ 0xa80000, 0xa80001, MWA16_RAM						},	// ? $4000
  2184: 	{ 0xb00000, 0xb03fff, MWA16_RAM , &spriteram16_2	},	// Sprites Code + X + Attr
  2185: #if __uPD71054_TIMER 
  2186: 	{ 0xc00000, 0xc00007, timer_regs_w					},	// ?
  2187: #else 
  2188: 	{ 0xc00000, 0xc00007, MWA16_NOP						},	// ?
  2189: #endif 
  2190: 	{ 0xd00000, 0xd03fff, seta_sound_word_w				},	// Sound
  2191: MEMORY_END
  2192: 
  2193: 
  2194: 
  2195: /***************************************************************************
  2196: 								Krazy Bowl
  2197: ***************************************************************************/
  2198: 
  2199: static READ16_HANDLER( krzybowl_input_r )
  2200: {
  2201: 	// analog ports
  2202: 	int dir1x = readinputport(4) & 0xfff;
  2203: 	int dir1y = readinputport(5) & 0xfff;
  2204: 	int dir2x = readinputport(6) & 0xfff;
  2205: 	int dir2y = readinputport(7) & 0xfff;
  2206: 
  2207: 	switch (offset)
  2208: 	{
  2209: 		case 0x0/2:	return dir1x & 0xff;
  2210: 		case 0x2/2:	return dir1x >> 8;
  2211: 		case 0x4/2:	return dir1y & 0xff;
  2212: 		case 0x6/2:	return dir1y >> 8;
  2213: 		case 0x8/2:	return dir2x & 0xff;
  2214: 		case 0xa/2:	return dir2x >> 8;
  2215: 		case 0xc/2:	return dir2y & 0xff;
  2216: 		case 0xe/2:	return dir2y >> 8;
  2217: 		default:
  2218: 			logerror("PC %06X - Read input %02X !\n", activecpu_get_pc(), offset*2);
  2219: 			return 0;
  2220: 	}
  2221: }
  2222: 
  2223: static MEMORY_READ16_START( krzybowl_readmem )
  2224: 	{ 0x000000, 0x07ffff, MRA16_ROM				},	// ROM
  2225: 	{ 0xf00000, 0xf0ffff, MRA16_RAM				},	// RAM
  2226: 	{ 0x100000, 0x100001, MRA16_NOP				},	// ?
  2227: 	{ 0x200000, 0x200001, MRA16_NOP				},	// ?
  2228: 	{ 0x300000, 0x300003, seta_dsw_r			},	// DSW
  2229: 	{ 0x500000, 0x500001, input_port_0_word_r	},	// P1
  2230: 	{ 0x500002, 0x500003, input_port_1_word_r	},	// P2
  2231: 	{ 0x500004, 0x500005, input_port_2_word_r	},	// Coins
  2232: 	{ 0x600000, 0x60000f, krzybowl_input_r		},	// P1
  2233: 	{ 0x8000f0, 0x8000f1, MRA16_RAM				},	// NVRAM
  2234: 	{ 0x800100, 0x8001ff, MRA16_RAM				},	// NVRAM
  2235: 	{ 0xa00000, 0xa03fff, seta_sound_word_r		},	// Sound
  2236: 	{ 0xb00000, 0xb003ff, MRA16_RAM				},	// Palette
  2237: 	{ 0xc00000, 0xc03fff, MRA16_RAM				},	// Sprites Code + X + Attr
  2238: /**/{ 0xd00000, 0xd00001, MRA16_RAM				},	// ? 0x4000
  2239: /**/{ 0xe00000, 0xe00607, MRA16_RAM				},	// Sprites Y
  2240: MEMORY_END
  2241: 
  2242: static MEMORY_WRITE16_START( krzybowl_writemem )
  2243: 	{ 0x000000, 0x07ffff, MWA16_ROM					},	// ROM
  2244: 	{ 0xf00000, 0xf0ffff, MWA16_RAM					},	// RAM
  2245: 	{ 0x400000, 0x400001, MWA16_NOP					},	// ?
  2246: 	{ 0x8000f0, 0x8000f1, MWA16_RAM					},	// NVRAM
  2247: 	{ 0x800100, 0x8001ff, MWA16_RAM					},	// NVRAM
  2248: 	{ 0xa00000, 0xa03fff, seta_sound_word_w			},	// Sound
  2249: 	{ 0xb00000, 0xb003ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	// Palette
  2250: 	{ 0xc00000, 0xc03fff, MWA16_RAM, &spriteram16_2	},	// Sprites Code + X + Attr
  2251: 	{ 0xd00000, 0xd00001, MWA16_RAM					},	// ? 0x4000
  2252: 	{ 0xe00000, 0xe00607, MWA16_RAM, &spriteram16	},	// Sprites Y
  2253: MEMORY_END
  2254: 
  2255: 
  2256: /***************************************************************************
  2257: 							Mobile Suit Gundam
  2258: ***************************************************************************/
  2259: 
  2260: WRITE16_HANDLER( msgundam_vregs_w )
  2261: {
  2262: 	// swap $500002 with $500004
  2263: 	switch( offset )
  2264: 	{
  2265: 		case 1:	offset = 2;	break;
  2266: 		case 2:	offset = 1;	break;
  2267: 	}
  2268: 	seta_vregs_w(offset,data,mem_mask);
  2269: }
  2270: 
  2271: /* Mirror RAM is necessary or startup, to clear Work RAM after the test */
  2272: 
  2273: static MEMORY_READ16_START( msgundam_readmem )
  2274: 	{ 0x000000, 0x07ffff, MRA16_ROM				},	// ROM
  2275: 	{ 0x100000, 0x1fffff, MRA16_ROM				},	// ROM
  2276: 	{ 0x200000, 0x20ffff, MRA16_RAM				},	// RAM
  2277: 	{ 0x400000, 0x400001, input_port_0_word_r	},	// P1
  2278: 	{ 0x400002, 0x400003, input_port_1_word_r	},	// P2
  2279: 	{ 0x400004, 0x400005, input_port_2_word_r	},	// Coins
  2280: 	{ 0x600000, 0x600003, seta_dsw_r			},	// DSW
  2281: 	{ 0x700400, 0x700fff, MRA16_RAM				},	// Palette
  2282: 	{ 0x800000, 0x800607, MRA16_RAM				},	// Sprites Y
  2283: 	{ 0x900000, 0x903fff, MRA16_RAM				},	// Sprites Code + X + Attr
  2284: 	{ 0xa00000, 0xa03fff, MRA16_RAM				},	// VRAM 0&1
  2285: 	{ 0xa80000, 0xa83fff, MRA16_RAM				},	// VRAM 2&3
  2286: 	{ 0xb00000, 0xb00005, MRA16_RAM				},	// VRAM 0&1 Ctrl
  2287: 	{ 0xb80000, 0xb80005, MRA16_RAM				},	// VRAM 1&2 Ctrl
  2288: 	{ 0xc00000, 0xc03fff, seta_sound_word_r		},	// Sound
  2289: MEMORY_END
  2290: 
  2291: static MEMORY_WRITE16_START( msgundam_writemem )
  2292: 	{ 0x000000, 0x07ffff, MWA16_ROM						},	// ROM
  2293: 	{ 0x100000, 0x1fffff, MWA16_ROM						},	// ROM
  2294: 	{ 0x200000, 0x20ffff, MWA16_RAM, &mirror_ram		},	// RAM
  2295: 	{ 0x210000, 0x21ffff, mirror_ram_w					},	// Mirrored RAM
  2296: 	{ 0x220000, 0x22ffff, mirror_ram_w					},
  2297: 	{ 0x230000, 0x23ffff, mirror_ram_w					},
  2298: 	{ 0x240000, 0x24ffff, mirror_ram_w					},
  2299: 	{ 0x400000, 0x400001, MWA16_NOP						},	// Lev 2 IRQ Ack
  2300: 	{ 0x400004, 0x400005, MWA16_NOP						},	// Lev 4 IRQ Ack
  2301: 	{ 0x500000, 0x500005, msgundam_vregs_w, &seta_vregs		},	// Coin Lockout + Video Registers
  2302: 	{ 0x700400, 0x700fff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	// Palette
  2303: 	{ 0x800000, 0x800607, MWA16_RAM , &spriteram16		},	// Sprites Y
  2304: 	{ 0x880000, 0x880001, MWA16_RAM						},	// ? 0x4000
  2305: 	{ 0x900000, 0x903fff, MWA16_RAM , &spriteram16_2	},	// Sprites Code + X + Attr
  2306: 	{ 0xa00000, 0xa03fff, seta_vram_0_w, &seta_vram_0	},	// VRAM 0
  2307: 	{ 0xa80000, 0xa83fff, seta_vram_2_w, &seta_vram_2	},	// VRAM 2
  2308: 	{ 0xb00000, 0xb00005, MWA16_RAM, &seta_vctrl_0		},	// VRAM 0&1 Ctrl
  2309: 	{ 0xb80000, 0xb80005, MWA16_RAM, &seta_vctrl_2		},	// VRAM 2&3 Ctrl
  2310: 	{ 0xc00000, 0xc03fff, seta_sound_word_w				},	// Sound
  2311: #if __uPD71054_TIMER 
  2312: 	{ 0xd00000, 0xd00007, timer_regs_w					},	// ?
  2313: #else 
  2314: 	{ 0xd00000, 0xd00007, MWA16_NOP						},	// ?
  2315: #endif 
  2316: MEMORY_END
  2317: 
  2318: 
  2319: 
  2320: 
  2321: /***************************************************************************
  2322: 								Oishii Puzzle
  2323: ***************************************************************************/
  2324: 
  2325: /* similar to wrofaero */
  2326: 
  2327: static MEMORY_READ16_START( oisipuzl_readmem )
  2328: 	{ 0x000000, 0x07ffff, MRA16_ROM				},	// ROM
  2329: 	{ 0x100000, 0x17ffff, MRA16_ROM				},	// ROM
  2330: 	{ 0x200000, 0x20ffff, MRA16_RAM				},	// RAM
  2331: 	{ 0x300000, 0x300003, seta_dsw_r			},	// DSW
  2332: 	{ 0x400000, 0x400001, input_port_0_word_r	},	// P1
  2333: 	{ 0x400002, 0x400003, input_port_1_word_r	},	// P2
  2334: 	{ 0x400004, 0x400005, input_port_2_word_r	},	// Coins
  2335: 	{ 0x700000, 0x703fff, seta_sound_word_r		},	// Sound
  2336: 	{ 0x800000, 0x803fff, MRA16_RAM				},	// VRAM 0&1
  2337: 	{ 0x880000, 0x883fff, MRA16_RAM				},	// VRAM 2&3
  2338: /**/{ 0x900000, 0x900005, MRA16_RAM				},	// VRAM 0&1 Ctrl
  2339: /**/{ 0x980000, 0x980005, MRA16_RAM				},	// VRAM 2&3 Ctrl
  2340: /**/{ 0xa00000, 0xa00607, MRA16_RAM				},	// Sprites Y
  2341: /**/{ 0xa80000, 0xa80001, MRA16_RAM				},	// ? 0x4000
  2342: 	{ 0xb00000, 0xb03fff, MRA16_RAM				},	// Sprites Code + X + Attr
  2343: 	{ 0xc00400, 0xc00fff, MRA16_RAM				},	// Palette
  2344: MEMORY_END
  2345: 
  2346: static MEMORY_WRITE16_START( oisipuzl_writemem )
  2347: 	{ 0x000000, 0x07ffff, MWA16_ROM						},	// ROM
  2348: 	{ 0x100000, 0x17ffff, MWA16_ROM						},	// ROM
  2349: 	{ 0x200000, 0x20ffff, MWA16_RAM						},	// RAM
  2350: 	{ 0x400000, 0x400001, MWA16_NOP						},	// ? IRQ Ack
  2351: 	{ 0x500000, 0x500005, seta_vregs_w, &seta_vregs		},	// Coin Lockout + Video Registers
  2352: 	{ 0x700000, 0x703fff, seta_sound_word_w				},	// Sound
  2353: 	{ 0x800000, 0x803fff, seta_vram_0_w, &seta_vram_0	},	// VRAM 0
  2354: 	{ 0x880000, 0x883fff, seta_vram_2_w, &seta_vram_2	},	// VRAM 2
  2355: 	{ 0x900000, 0x900005, MWA16_RAM, &seta_vctrl_0		},	// VRAM 0&1 Ctrl
  2356: 	{ 0x980000, 0x980005, MWA16_RAM, &seta_vctrl_2		},	// VRAM 2&3 Ctrl
  2357: 	{ 0xa00000, 0xa00607, MWA16_RAM, &spriteram16		},	// Sprites Y
  2358: 	{ 0xa80000, 0xa80001, MWA16_RAM						},	// ? 0x4000
  2359: 	{ 0xb00000, 0xb03fff, MWA16_RAM, &spriteram16_2		},	// Sprites Code + X + Attr
  2360: 	{ 0xc00400, 0xc00fff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	// Palette
  2361: MEMORY_END
  2362: 
  2363: /***************************************************************************
  2364: 								Triple Fun
  2365: ***************************************************************************/
  2366: 
  2367: /* the same as oisipuzl with the sound system replaced */
  2368: 
  2369: static MEMORY_READ16_START( triplfun_readmem )
  2370: 	{ 0x000000, 0x07ffff, MRA16_ROM				},	// ROM
  2371: 	{ 0x100000, 0x17ffff, MRA16_ROM				},	// ROM
  2372: 	{ 0x200000, 0x20ffff, MRA16_RAM				},	// RAM
  2373: 	{ 0x300000, 0x300003, seta_dsw_r			},	// DSW
  2374: 	{ 0x400000, 0x400001, input_port_0_word_r	},	// P1
  2375: 	{ 0x400002, 0x400003, input_port_1_word_r	},	// P2
  2376: 	{ 0x400004, 0x400005, input_port_2_word_r	},	// Coins
  2377: 	{ 0x500006, 0x500007, OKIM6295_status_0_lsb_r }, // tfun sound
  2378: 	{ 0x700000, 0x703fff, MRA16_RAM				},	// old sound
  2379: 	{ 0x800000, 0x803fff, MRA16_RAM				},	// VRAM 0&1
  2380: 	{ 0x880000, 0x883fff, MRA16_RAM				},	// VRAM 2&3
  2381: /**/{ 0x900000, 0x900005, MRA16_RAM				},	// VRAM 0&1 Ctrl
  2382: /**/{ 0x980000, 0x980005, MRA16_RAM				},	// VRAM 2&3 Ctrl
  2383: /**/{ 0xa00000, 0xa00607, MRA16_RAM				},	// Sprites Y
  2384: /**/{ 0xa80000, 0xa80001, MRA16_RAM				},	// ? 0x4000
  2385: 	{ 0xb00000, 0xb03fff, MRA16_RAM				},	// Sprites Code + X + Attr
  2386: 	{ 0xc00400, 0xc00fff, MRA16_RAM				},	// Palette
  2387: MEMORY_END
  2388: 
  2389: static MEMORY_WRITE16_START( triplfun_writemem )
  2390: 	{ 0x000000, 0x07ffff, MWA16_ROM						},	// ROM
  2391: 	{ 0x100000, 0x17ffff, MWA16_ROM						},	// ROM
  2392: 	{ 0x200000, 0x20ffff, MWA16_RAM						},	// RAM
  2393: 	{ 0x400000, 0x400001, MWA16_NOP						},	// ? IRQ Ack
  2394: 	{ 0x500000, 0x500005, seta_vregs_w, &seta_vregs		},	// Coin Lockout + Video Registers
  2395: 	{ 0x500006, 0x500007, OKIM6295_data_0_lsb_w         },  // tfun sound
  2396: 	{ 0x700000, 0x703fff, MWA16_RAM						},	// old sound
  2397: 	{ 0x800000, 0x803fff, seta_vram_0_w, &seta_vram_0	},	// VRAM 0
  2398: 	{ 0x880000, 0x883fff, seta_vram_2_w, &seta_vram_2	},	// VRAM 2
  2399: 	{ 0x900000, 0x900005, MWA16_RAM, &seta_vctrl_0		},	// VRAM 0&1 Ctrl
  2400: 	{ 0x980000, 0x980005, MWA16_RAM, &seta_vctrl_2		},	// VRAM 2&3 Ctrl
  2401: 	{ 0xa00000, 0xa00607, MWA16_RAM, &spriteram16		},	// Sprites Y
  2402: 	{ 0xa80000, 0xa80001, MWA16_RAM						},	// ? 0x4000
  2403: 	{ 0xb00000, 0xb03fff, MWA16_RAM, &spriteram16_2		},	// Sprites Code + X + Attr
  2404: 	{ 0xc00400, 0xc00fff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	// Palette
  2405: MEMORY_END
  2406: 
  2407: /***************************************************************************
  2408: 							Pro Mahjong Kiwame
  2409: ***************************************************************************/
  2410: 
  2411: data16_t *kiwame_nvram;
  2412: 
  2413: READ16_HANDLER( kiwame_nvram_r )
  2414: {
  2415: 	return kiwame_nvram[offset] & 0xff;
  2416: }
  2417: 
  2418: WRITE16_HANDLER( kiwame_nvram_w )
  2419: {
  2420: 	if (ACCESSING_LSB)	COMBINE_DATA( &kiwame_nvram[offset] );
  2421: }
  2422: 
  2423: READ16_HANDLER( kiwame_input_r )
  2424: {
  2425: 	int row_select = kiwame_nvram_r( 0x10a/2,0 ) & 0x1f;
  2426: 	int i;
  2427: 
  2428: 	for(i = 0; i < 5; i++)
  2429: 		if (row_select & (1<<i))	break;
  2430: 
  2431: 	i = 4 + (i % 5);
  2432: 
  2433: 	switch( offset )
  2434: 	{
  2435: 		case 0x00/2:	return readinputport( i );
  2436: 		case 0x02/2:	return 0xffff;
  2437: 		case 0x04/2:	return readinputport( 2 );
  2438: //		case 0x06/2:
  2439: 		case 0x08/2:	return 0xffff;
  2440: 
  2441: 		default:
  2442: 			logerror("PC %06X - Read input %02X !\n", activecpu_get_pc(), offset*2);
  2443: 			return 0x0000;
  2444: 	}
  2445: }
  2446: 
  2447: static MEMORY_READ16_START( kiwame_readmem )
  2448: 	{ 0x000000, 0x07ffff, MRA16_ROM				},	// ROM
  2449: 	{ 0x200000, 0x20ffff, MRA16_RAM				},	// RAM
  2450: 	{ 0xfffc00, 0xffffff, kiwame_nvram_r		},	// NVRAM + Regs ?
  2451: 	{ 0x800000, 0x803fff, MRA16_RAM				},	// Sprites Code + X + Attr
  2452: /**/{ 0x900000, 0x900001, MRA16_RAM				},	// ? 0x4000
  2453: /**/{ 0xa00000, 0xa00607, MRA16_RAM				},	// Sprites Y
  2454: 	{ 0xb00000, 0xb003ff, MRA16_RAM				},	// Palette
  2455: 	{ 0xc00000, 0xc03fff, seta_sound_word_r		},	// Sound
  2456: 	{ 0xd00000, 0xd00009, kiwame_input_r		},
  2457: 	{ 0xe00000, 0xe00003, seta_dsw_r			},	// DSW
  2458: MEMORY_END
  2459: 
  2460: static MEMORY_WRITE16_START( kiwame_writemem )
  2461: 	{ 0x000000, 0x07ffff, MWA16_ROM						},	// ROM
  2462: 	{ 0x200000, 0x20ffff, MWA16_RAM						},	// RAM
  2463: 	{ 0xfffc00, 0xffffff, kiwame_nvram_w, &kiwame_nvram	},	// NVRAM + Regs ?
  2464: 	{ 0x800000, 0x803fff, MWA16_RAM, &spriteram16_2		},	// Sprites Code + X + Attr
  2465: 	{ 0x900000, 0x900001, MWA16_RAM						},	// ? 0x4000
  2466: 	{ 0xa00000, 0xa00607, MWA16_RAM, &spriteram16		},	// Sprites Y
  2467: 	{ 0xb00000, 0xb003ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	// Palette
  2468: 	{ 0xc00000, 0xc03fff, seta_sound_word_w				},	// Sound
  2469: MEMORY_END
  2470: 
  2471: 
  2472: /***************************************************************************
  2473: 						Thunder & Lightning / Wit's
  2474: ***************************************************************************/
  2475: 
  2476: static READ16_HANDLER( thunderl_protection_r )
  2477: {
  2478: //	logerror("PC %06X - Protection Read\n", activecpu_get_pc());
  2479: 	return 0x00dd;
  2480: }
  2481: static WRITE16_HANDLER( thunderl_protection_w )
  2482: {
  2483: //	logerror("PC %06X - Protection Written: %04X <- %04X\n", activecpu_get_pc(), offset*2, data);
  2484: }
  2485: 
  2486: /* Similar to downtown etc. */
  2487: 
  2488: static MEMORY_READ16_START( thunderl_readmem )
  2489: 	{ 0x000000, 0x00ffff, MRA16_ROM				},	// ROM
  2490: 	{ 0xffc000, 0xffffff, MRA16_RAM				},	// RAM
  2491: 	{ 0x100000, 0x103fff, seta_sound_word_r		},	// Sound
  2492: 	{ 0x600000, 0x600003, seta_dsw_r			},	// DSW
  2493: 	{ 0x700000, 0x7003ff, MRA16_RAM				},	// Palette
  2494: 	{ 0xb00000, 0xb00001, input_port_0_word_r	},	// P1
  2495: 	{ 0xb00002, 0xb00003, input_port_1_word_r	},	// P2
  2496: 	{ 0xb00004, 0xb00005, input_port_2_word_r	},	// Coins
  2497: 	{ 0xb0000c, 0xb0000d, thunderl_protection_r	},	// Protection (not in wits)
  2498: 	{ 0xb00008, 0xb00009, input_port_4_word_r	},	// P3 (wits)
  2499: 	{ 0xb0000a, 0xb0000b, input_port_5_word_r	},	// P4 (wits)
  2500: /**/{ 0xc00000, 0xc00001, MRA16_RAM				},	// ? 0x4000
  2501: /**/{ 0xd00000, 0xd00607, MRA16_RAM				},	// Sprites Y
  2502: 	{ 0xe00000, 0xe03fff, MRA16_RAM				},	// Sprites Code + X + Attr
  2503: 	{ 0xe04000, 0xe07fff, MRA16_RAM				},	// (wits)
  2504: MEMORY_END
  2505: 
  2506: static MEMORY_WRITE16_START( thunderl_writemem )
  2507: 	{ 0x000000, 0x00ffff, MWA16_ROM					},	// ROM
  2508: 	{ 0xffc000, 0xffffff, MWA16_RAM					},	// RAM
  2509: 	{ 0x100000, 0x103fff, seta_sound_word_w			},	// Sound
  2510: 	{ 0x200000, 0x200001, MWA16_NOP					},	// ?
  2511: 	{ 0x300000, 0x300001, MWA16_NOP					},	// ?
  2512: 	{ 0x400000, 0x40ffff, thunderl_protection_w		},	// Protection (not in wits)
  2513: 	{ 0x500000, 0x500001, seta_vregs_w, &seta_vregs	},	// Coin Lockout
  2514: 	{ 0x700000, 0x7003ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	// Palette
  2515: 	{ 0xc00000, 0xc00001, MWA16_RAM					},	// ? 0x4000
  2516: 	{ 0xd00000, 0xd00607, MWA16_RAM, &spriteram16	},	// Sprites Y
  2517: 	{ 0xe00000, 0xe03fff, MWA16_RAM, &spriteram16_2	},	// Sprites Code + X + Attr
  2518: 	{ 0xe04000, 0xe07fff, MWA16_RAM					},	// (wits)
  2519: MEMORY_END
  2520: 
  2521: 
  2522: /***************************************************************************
  2523: 					Ultraman Club / SD Gundam Neo Battling
  2524: ***************************************************************************/
  2525: 
  2526: static MEMORY_READ16_START( umanclub_readmem )
  2527: 	{ 0x000000, 0x03ffff, MRA16_ROM				},	// ROM
  2528: 	{ 0x200000, 0x20ffff, MRA16_RAM				},	// RAM
  2529: 	{ 0x300000, 0x3003ff, MRA16_RAM				},	// Palette
  2530: 	{ 0x300400, 0x300fff, MRA16_RAM				},	//
  2531: 	{ 0x400000, 0x400001, input_port_0_word_r	},	// P1
  2532: 	{ 0x400002, 0x400003, input_port_1_word_r	},	// P2
  2533: 	{ 0x400004, 0x400005, input_port_2_word_r	},	// Coins
  2534: 	{ 0x600000, 0x600003, seta_dsw_r			},	// DSW
  2535: 	{ 0xa00000, 0xa00607, MRA16_RAM				},	// Sprites Y
  2536: /**/{ 0xa80000, 0xa80001, MRA16_RAM				},	// ? 0x4000
  2537: 	{ 0xb00000, 0xb03fff, MRA16_RAM				},	// Sprites Code + X + Attr
  2538: 	{ 0xc00000, 0xc03fff, seta_sound_word_r		},	// Sound
  2539: MEMORY_END
  2540: 
  2541: static MEMORY_WRITE16_START( umanclub_writemem )
  2542: 	{ 0x000000, 0x03ffff, MWA16_ROM					},	// ROM
  2543: 	{ 0x200000, 0x20ffff, MWA16_RAM					},	// RAM
  2544: 	{ 0x300000, 0x3003ff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	// Palette
  2545: 	{ 0x300400, 0x300fff, MWA16_RAM					},	//
  2546: 	{ 0x400000, 0x400001, MWA16_NOP					},	// ? (end of lev 2)
  2547: 	{ 0x400004, 0x400005, MWA16_NOP					},	// ? (end of lev 2)
  2548: 	{ 0x500000, 0x500001, seta_vregs_w, &seta_vregs	},	// Coin Lockout + Video Registers
  2549: 	{ 0xa00000, 0xa00607, MWA16_RAM, &spriteram16	},	// Sprites Y
  2550: 	{ 0xa80000, 0xa80001, MWA16_RAM					},	// ? 0x4000
  2551: 	{ 0xb00000, 0xb03fff, MWA16_RAM, &spriteram16_2	},	// Sprites Code + X + Attr
  2552: 	{ 0xc00000, 0xc03fff, seta_sound_word_w			},	// Sound
  2553: MEMORY_END
  2554: 
  2555: /***************************************************************************
  2556: 							Ultra Toukond Densetsu
  2557: ***************************************************************************/
  2558: 
  2559: static WRITE16_HANDLER( utoukond_soundlatch_w )
  2560: {
  2561: 	if (ACCESSING_LSB)
  2562: 	{
  2563: 		cpu_set_irq_line(1,0,HOLD_LINE);
  2564: 		soundlatch_w(0,data & 0xff);
  2565: 	}
  2566: }
  2567: 
  2568: static MEMORY_READ16_START( utoukond_readmem )
  2569: 	{ 0x000000, 0x0fffff, MRA16_ROM				},	// ROM
  2570: 	{ 0x200000, 0x20ffff, MRA16_RAM				},	// ROM
  2571: 	{ 0x400000, 0x400001, input_port_0_word_r	},	// P1
  2572: 	{ 0x400002, 0x400003, input_port_1_word_r	},	// P2
  2573: 	{ 0x400004, 0x400005, input_port_2_word_r	},	// Coins
  2574: 	{ 0x600000, 0x600003, seta_dsw_r			},	// DSW
  2575: 	{ 0x700400, 0x700fff, MRA16_RAM				},	// Palette
  2576: 	{ 0x800000, 0x801fff, MRA16_RAM				},	// VRAM 0
  2577: 	{ 0x802000, 0x803fff, MRA16_RAM				},	// VRAM 1
  2578: 	{ 0x880000, 0x881fff, MRA16_RAM				},	// VRAM 2
  2579: 	{ 0x882000, 0x883fff, MRA16_RAM				},	// VRAM 3
  2580: 	{ 0xa00000, 0xa00607, MRA16_RAM			 	},	// Sprites Y
  2581: 	{ 0xb00000, 0xb03fff, MRA16_RAM				},	// Sprites Code + X + Attr
  2582: MEMORY_END
  2583: 
  2584: static MEMORY_WRITE16_START( utoukond_writemem )
  2585: 	{ 0x000000, 0x0fffff, MWA16_ROM						},	// ROM
  2586: 	{ 0x200000, 0x20ffff, MWA16_RAM						},	// ROM
  2587: 	{ 0x500000, 0x500005, seta_vregs_w, &seta_vregs		},	// ? Coin Lockout + Video Registers
  2588: 	{ 0x700400, 0x700fff, paletteram16_xRRRRRGGGGGBBBBB_word_w, &paletteram16	},	// Palette
  2589: 	{ 0x800000, 0x803fff, seta_vram_0_w, &seta_vram_0	},	// VRAM 0
  2590: 	{ 0x880000, 0x883fff, seta_vram_2_w, &seta_vram_2	},	// VRAM 2
  2591: 	{ 0x900000, 0x900005, MWA16_RAM, &seta_vctrl_0		},	// VRAM 0&1 Ctrl
  2592: 	{ 0x980000, 0x980005, MWA16_RAM, &seta_vctrl_2		},	// VRAM 2&3 Ctrl
  2593: 	{ 0xa00000, 0xa00607, MWA16_RAM , &spriteram16		},	// Sprites Y
  2594: 	{ 0xb00000, 0xb03fff, MWA16_RAM , &spriteram16_2	},	// Sprites Code + X + Attr
  2595: 	{ 0xc00000, 0xc00001, utoukond_soundlatch_w			},	// To Sound CPU (cause an IRQ)
  2596: 	{ 0xe00000, 0xe00001, MWA16_NOP						},	// ? ack
  2597: MEMORY_END
  2598: 
  2599: 
  2600: 
  2601: /***************************************************************************
  2602: 
  2603: 
  2604: 								Sub / Sound CPU
  2605: 
  2606: 
  2607: ***************************************************************************/
  2608: 
  2609: static WRITE_HANDLER( sub_bankswitch_w )
  2610: {
  2611: 	data8_t *rom = memory_region(REGION_CPU2);
  2612: 	int bank = data >> 4;
  2613: 
  2614: 	cpu_setbank(1, &rom[bank * 0x4000 + 0xc000]);
  2615: }
  2616: 
  2617: static WRITE_HANDLER( sub_bankswitch_lockout_w )
  2618: {
  2619: 	sub_bankswitch_w(offset,data);
  2620: 	seta_coin_lockout_w(data);
  2621: }
  2622: 
  2623: 
  2624: /***************************************************************************
  2625: 								Thundercade
  2626: ***************************************************************************/
  2627: 
  2628: static READ_HANDLER( ff_r )	{return 0xff;}
  2629: 
  2630: static MEMORY_READ_START( tndrcade_sub_readmem )
  2631: 	{ 0x0000, 0x01ff, MRA_RAM				},	// RAM
  2632: 	{ 0x0800, 0x0800, ff_r					},	// ? (bits 0/1/2/3: 1 -> do test 0-ff/100-1e0/5001-57ff/banked rom)
  2633: //	{ 0x0800, 0x0800, soundlatch_r			},	//
  2634: //	{ 0x0801, 0x0801, soundlatch2_r			},	//
  2635: 	{ 0x1000, 0x1000, input_port_0_r		},	// P1
  2636: 	{ 0x1001, 0x1001, input_port_1_r		},	// P2
  2637: 	{ 0x1002, 0x1002, input_port_2_r		},	// Coins
  2638: 	{ 0x2001, 0x2001, YM2203_read_port_0_r	},
  2639: 	{ 0x5000, 0x57ff, MRA_RAM				},	// Shared RAM
  2640: 	{ 0x6000, 0x7fff, MRA_ROM				},	// ROM
  2641: 	{ 0x8000, 0xbfff, MRA_BANK1				},	// Banked ROM
  2642: 	{ 0xc000, 0xffff, MRA_ROM				},	// ROM
  2643: MEMORY_END
  2644: 
  2645: static MEMORY_WRITE_START( tndrcade_sub_writemem )
  2646: 	{ 0x0000, 0x01ff, MWA_RAM					},	// RAM
  2647: 	{ 0x1000, 0x1000, sub_bankswitch_lockout_w	},	// ROM Bank + Coin Lockout
  2648: 	{ 0x2000, 0x2000, YM2203_control_port_0_w	},
  2649: 	{ 0x2001, 0x2001, YM2203_write_port_0_w		},
  2650: 	{ 0x3000, 0x3000, YM3812_control_port_0_w	},
  2651: 	{ 0x3001, 0x3001, YM3812_write_port_0_w		},
  2652: 	{ 0x5000, 0x57ff, MWA_RAM, &sharedram		},	// Shared RAM
  2653: 	{ 0x6000, 0xffff, MWA_ROM					},	// ROM
  2654: MEMORY_END
  2655: 
  2656: /***************************************************************************
  2657: 								Twin Eagle
  2658: ***************************************************************************/
  2659: 
  2660: static MEMORY_READ_START( twineagl_sub_readmem )
  2661: 	{ 0x0000, 0x01ff, MRA_RAM			},	// RAM
  2662: 	{ 0x0800, 0x0800, soundlatch_r		},	//
  2663: 	{ 0x0801, 0x0801, soundlatch2_r		},	//
  2664: 	{ 0x1000, 0x1000, input_port_0_r	},	// P1
  2665: 	{ 0x1001, 0x1001, input_port_1_r	},	// P2
  2666: 	{ 0x1002, 0x1002, input_port_2_r	},	// Coins
  2667: 	{ 0x5000, 0x57ff, MRA_RAM			},	// Shared RAM
  2668: 	{ 0x7000, 0x7fff, MRA_ROM			},	// ROM
  2669: 	{ 0x8000, 0xbfff, MRA_BANK1			},	// Banked ROM
  2670: 	{ 0xc000, 0xffff, MRA_ROM			},	// ROM
  2671: MEMORY_END
  2672: 
  2673: static MEMORY_WRITE_START( twineagl_sub_writemem )
  2674: 	{ 0x0000, 0x01ff, MWA_RAM				},	// RAM
  2675: 	{ 0x1000, 0x1000, sub_bankswitch_lockout_w	},	// ROM Bank + Coin Lockout
  2676: 	{ 0x5000, 0x57ff, MWA_RAM, &sharedram	},	// Shared RAM
  2677: 	{ 0x7000, 0x7fff, MWA_ROM				},	// ROM
  2678: 	{ 0x8000, 0xbfff, MWA_ROM				},	// ROM
  2679: 	{ 0xc000, 0xffff, MWA_ROM				},	// ROM
  2680: MEMORY_END
  2681: 
  2682: /***************************************************************************
  2683: 								DownTown
  2684: ***************************************************************************/
  2685: 
  2686: READ_HANDLER( downtown_ip_r )
  2687: {
  2688: 	int dir1 = readinputport(4);	// analog port
  2689: 	int dir2 = readinputport(5);	// analog port
  2690: 
  2691: 	dir1 = (~ (0x800 >> ((dir1 * 12)/0x100)) ) & 0xfff;
  2692: 	dir2 = (~ (0x800 >> ((dir2 * 12)/0x100)) ) & 0xfff;
  2693: 
  2694: 	switch (offset)
  2695: 	{
  2696: 		case 0:	return (readinputport(2) & 0xf0) + (dir1>>8);	// upper 4 bits of p1 rotation + coins
  2697: 		case 1:	return (dir1&0xff);			// lower 8 bits of p1 rotation
  2698: 		case 2:	return readinputport(0);	// p1
  2699: 		case 3:	return 0xff;				// ?
  2700: 		case 4:	return (dir2>>8);			// upper 4 bits of p2 rotation + ?
  2701: 		case 5:	return (dir2&0xff);			// lower 8 bits of p2 rotation
  2702: 		case 6:	return readinputport(1);	// p2
  2703: 		case 7:	return 0xff;				// ?
  2704: 	}
  2705: 
  2706: 	return 0;
  2707: }
  2708: 
  2709: static MEMORY_READ_START( downtown_sub_readmem )
  2710: 	{ 0x0000, 0x01ff, MRA_RAM			},	// RAM
  2711: 	{ 0x0800, 0x0800, soundlatch_r		},	//
  2712: 	{ 0x0801, 0x0801, soundlatch2_r		},	//
  2713: 	{ 0x1000, 0x1007, downtown_ip_r		},	// Input Ports
  2714: 	{ 0x5000, 0x57ff, MRA_RAM			},	// Shared RAM
  2715: 	{ 0x7000, 0x7fff, MRA_ROM			},	// ROM
  2716: 	{ 0x8000, 0xbfff, MRA_BANK1			},	// Banked ROM
  2717: 	{ 0xc000, 0xffff, MRA_ROM			},	// ROM
  2718: MEMORY_END
  2719: 
  2720: static MEMORY_WRITE_START( downtown_sub_writemem )
  2721: 	{ 0x0000, 0x01ff, MWA_RAM				},	// RAM
  2722: 	{ 0x1000, 0x1000, sub_bankswitch_lockout_w		},	// ROM Bank + Coin Lockout
  2723: 	{ 0x5000, 0x57ff, MWA_RAM, &sharedram	},	// Shared RAM
  2724: 	{ 0x7000, 0xffff, MWA_ROM				},	// ROM
  2725: MEMORY_END
  2726: 
  2727: /***************************************************************************
  2728: 						Caliber 50 / U.S. Classic
  2729: ***************************************************************************/
  2730: 
  2731: WRITE_HANDLER( calibr50_soundlatch2_w )
  2732: {
  2733: 	soundlatch2_w(0,data);
  2734: 	cpu_spinuntil_time(TIME_IN_USEC(50));	// Allow the other cpu to reply
  2735: }
  2736: 
  2737: static MEMORY_READ_START( calibr50_sub_readmem )
  2738: 	{ 0x0000, 0x1fff, seta_sound_r		},	// Sound
  2739: 	{ 0x4000, 0x4000, soundlatch_r		},	// From Main CPU
  2740: 	{ 0x8000, 0xbfff, MRA_BANK1			},	// Banked ROM
  2741: 	{ 0xc000, 0xffff, MRA_ROM			},	// ROM
  2742: MEMORY_END
  2743: 
  2744: static MEMORY_WRITE_START( calibr50_sub_writemem )
  2745: 	{ 0x0000, 0x1fff, seta_sound_w				},	// Sound
  2746: 	{ 0x4000, 0x4000, sub_bankswitch_w			},	// Bankswitching
  2747: 	{ 0x8000, 0xbfff, MWA_ROM					},	// Banked ROM
  2748: 	{ 0xc000, 0xc000, calibr50_soundlatch2_w	},	// To Main CPU
  2749: 	{ 0xc000, 0xffff, MWA_ROM					},	// ROM
  2750: MEMORY_END
  2751: 
  2752: /***************************************************************************
  2753: 								Meta Fox
  2754: ***************************************************************************/
  2755: 
  2756: static MEMORY_READ_START( metafox_sub_readmem )
  2757: 	{ 0x0000, 0x01ff, MRA_RAM			},	// RAM
  2758: 	{ 0x0800, 0x0800, soundlatch_r		},	//
  2759: 	{ 0x0801, 0x0801, soundlatch2_r		},	//
  2760: 	{ 0x1000, 0x1000, input_port_2_r	},	// Coins
  2761: 	{ 0x1002, 0x1002, input_port_0_r	},	// P1
  2762: //	{ 0x1004, 0x1004, MRA_NOP			},	// ?
  2763: 	{ 0x1006, 0x1006, input_port_1_r	},	// P2
  2764: 	{ 0x5000, 0x57ff, MRA_RAM			},	// Shared RAM
  2765: 	{ 0x7000, 0x7fff, MRA_ROM			},	// ROM
  2766: 	{ 0x8000, 0xbfff, MRA_BANK1			},	// Banked ROM
  2767: 	{ 0xc000, 0xffff, MRA_ROM			},	// ROM
  2768: MEMORY_END
  2769: 
  2770: static MEMORY_WRITE_START( metafox_sub_writemem )
  2771: 	{ 0x0000, 0x01ff, MWA_RAM				},	// RAM
  2772: 	{ 0x1000, 0x1000, sub_bankswitch_lockout_w		},	// ROM Bank + Coin Lockout
  2773: 	{ 0x5000, 0x57ff, MWA_RAM, &sharedram	},	// Shared RAM
  2774: 	{ 0x7000, 0x7fff, MWA_ROM				},	// ROM
  2775: 	{ 0x8000, 0xbfff, MWA_ROM				},	// ROM
  2776: 	{ 0xc000, 0xffff, MWA_ROM				},	// ROM
  2777: MEMORY_END
  2778: 
  2779: 
  2780: /***************************************************************************
  2781: 							Ultra Toukon Densetsu
  2782: ***************************************************************************/
  2783: 
  2784: static MEMORY_READ_START( utoukond_sound_readmem )
  2785: 	{ 0x0000, 0xdfff, MRA_ROM },
  2786: 	{ 0xe000, 0xefff, MRA_RAM },
  2787: 	{ 0xf000, 0xffff, seta_sound_r },
  2788: MEMORY_END
  2789: static MEMORY_WRITE_START( utoukond_sound_writemem )
  2790: 	{ 0x0000, 0xdfff, MWA_ROM },
  2791: 	{ 0xe000, 0xefff, MWA_RAM },
  2792: 	{ 0xf000, 0xffff, seta_sound_w },
  2793: MEMORY_END
  2794: 
  2795: static PORT_READ_START( utoukond_sound_readport )
  2796: 	{ 0x00, 0x00, YM2612_status_port_0_A_r },
  2797: 	{ 0xc0, 0xc0, soundlatch_r },
  2798: PORT_END
  2799: static PORT_WRITE_START( utoukond_sound_writeport )
  2800: 	{ 0x00, 0x00, YM2612_control_port_0_A_w },
  2801: 	{ 0x01, 0x01, YM2612_data_port_0_A_w },
  2802: 	{ 0x02, 0x02, YM2612_control_port_0_B_w },
  2803: 	{ 0x03, 0x03, YM2612_data_port_0_B_w },
  2804: 	{ 0x80, 0x80, IOWP_NOP }, //?
  2805: PORT_END
  2806: 
  2807: 
  2808: 
  2809: 
  2810: /***************************************************************************
  2811: 
  2812: 
  2813: 								Input Ports
  2814: 
  2815: 
  2816: ***************************************************************************/
  2817: 
  2818: #define	JOY_TYPE1_1BUTTON(_n_) \ 
  2819: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT	|	IPF_PLAYER##_n_	) \
  2820: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT|	IPF_PLAYER##_n_	) \
  2821: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	|	IPF_PLAYER##_n_	) \
  2822: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN	|	IPF_PLAYER##_n_	) \
  2823: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1		|	IPF_PLAYER##_n_	) \
  2824: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN						) \
  2825: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN						) \
  2826: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START##_n_					)
  2827: 
  2828: #define	JOY_TYPE1_2BUTTONS(_n_) \ 
  2829: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT	|	IPF_PLAYER##_n_	) \
  2830: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT|	IPF_PLAYER##_n_	) \
  2831: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	|	IPF_PLAYER##_n_	) \
  2832: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN	|	IPF_PLAYER##_n_	) \
  2833: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1		|	IPF_PLAYER##_n_	) \
  2834: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_BUTTON2		|	IPF_PLAYER##_n_	) \
  2835: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN						) \
  2836: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START##_n_					)
  2837: 
  2838: #define	JOY_TYPE1_3BUTTONS(_n_) \ 
  2839: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT	|	IPF_PLAYER##_n_	) \
  2840: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT|	IPF_PLAYER##_n_	) \
  2841: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	|	IPF_PLAYER##_n_	) \
  2842: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN	|	IPF_PLAYER##_n_	) \
  2843: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1		|	IPF_PLAYER##_n_	) \
  2844: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_BUTTON2		|	IPF_PLAYER##_n_	) \
  2845: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_BUTTON3		|	IPF_PLAYER##_n_	) \
  2846: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START##_n_					)
  2847: 
  2848: 
  2849: 
  2850: #define	JOY_TYPE2_1BUTTON(_n_) \ 
  2851: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	|	IPF_PLAYER##_n_	) \
  2852: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN	|	IPF_PLAYER##_n_	) \
  2853: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT	|	IPF_PLAYER##_n_	) \
  2854: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT|	IPF_PLAYER##_n_	) \
  2855: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1		|	IPF_PLAYER##_n_	) \
  2856: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN						) \
  2857: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN						) \
  2858: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START##_n_					)
  2859: 
  2860: #define	JOY_TYPE2_2BUTTONS(_n_) \ 
  2861: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	|	IPF_PLAYER##_n_	) \
  2862: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN	|	IPF_PLAYER##_n_	) \
  2863: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT	|	IPF_PLAYER##_n_	) \
  2864: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT|	IPF_PLAYER##_n_	) \
  2865: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1		|	IPF_PLAYER##_n_	) \
  2866: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_BUTTON2		|	IPF_PLAYER##_n_	) \
  2867: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN						) \
  2868: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START##_n_					)
  2869: 
  2870: #define	JOY_TYPE2_3BUTTONS(_n_) \ 
  2871: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP	|	IPF_PLAYER##_n_	) \
  2872: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN	|	IPF_PLAYER##_n_	) \
  2873: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT	|	IPF_PLAYER##_n_	) \
  2874: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT|	IPF_PLAYER##_n_	) \
  2875: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1		|	IPF_PLAYER##_n_	) \
  2876: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_BUTTON2		|	IPF_PLAYER##_n_	) \
  2877: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_BUTTON3		|	IPF_PLAYER##_n_	) \
  2878: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START##_n_					)
  2879: 
  2880: 
  2881: #define JOY_ROTATION(_n_, _left_, _right_ ) \ 
  2882: 	PORT_ANALOGX( 0xff, 0x00, IPT_DIAL | IPF_PLAYER##_n_, 15, 15, 0, 0, KEYCODE_##_left_, KEYCODE_##_right_, 0, 0 )
  2883: 
  2884: 
  2885: 
  2886: /***************************************************************************
  2887: 								Arbalester
  2888: ***************************************************************************/
  2889: 
  2890: INPUT_PORTS_START( arbalest )
  2891: 	PORT_START	// IN0 - Player 1
  2892: 	JOY_TYPE2_2BUTTONS(1)
  2893: 
  2894: 	PORT_START	// IN1 - Player 2
  2895: 	JOY_TYPE2_2BUTTONS(2)
  2896: 
  2897: 	PORT_START	// IN2 - Coins
  2898: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  2899: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  2900: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  2901: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  2902: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_TILT     )
  2903: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_SERVICE1 )
  2904: 	PORT_BIT_IMPULSE( 0x0040, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  2905: 	PORT_BIT_IMPULSE( 0x0080, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  2906: 
  2907: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  2908: 	PORT_DIPNAME( 0x4001, 0x0000, "Licensed To" )
  2909: 	PORT_DIPSETTING(      0x0000, "Taito" )
  2910: //	PORT_DIPSETTING(      0x4000, "Taito" )
  2911: 	PORT_DIPSETTING(      0x4001, "Romstar" )
  2912: 	PORT_DIPSETTING(      0x0001, "Jordan" )
  2913: 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )
  2914: 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
  2915: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  2916: 	PORT_SERVICE( 0x0004, IP_ACTIVE_LOW )
  2917: 	PORT_DIPNAME( 0x0008, 0x0008, "Unknown 2-4" )	// not used, according to manual
  2918: 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
  2919: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  2920: 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
  2921: 	PORT_DIPSETTING(      0x0010, DEF_STR( 2C_1C ) )
  2922: 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_1C ) )
  2923: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
  2924: 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_2C ) )
  2925: 	PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
  2926: 	PORT_DIPSETTING(      0x0040, DEF_STR( 2C_1C ) )
  2927: 	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_1C ) )
  2928: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
  2929: 	PORT_DIPSETTING(      0x0080, DEF_STR( 1C_2C ) )
  2930: 
  2931: 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) )
  2932: 	PORT_DIPSETTING(      0x0300, "Easy" )
  2933: 	PORT_DIPSETTING(      0x0200, "Hard" )
  2934: 	PORT_DIPSETTING(      0x0100, "Harder" )
  2935: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  2936: 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Bonus_Life ) )
  2937: 	PORT_DIPSETTING(      0x0c00, "Never" )
  2938: 	PORT_DIPSETTING(      0x0800, "300k Only" )
  2939: 	PORT_DIPSETTING(      0x0400, "600k Only" )
  2940: 	PORT_DIPSETTING(      0x0000, "300k & 600k" )
  2941: 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) )
  2942: 	PORT_DIPSETTING(      0x1000, "1" )
  2943: 	PORT_DIPSETTING(      0x0000, "2" )
  2944: 	PORT_DIPSETTING(      0x3000, "3" )
  2945: 	PORT_DIPSETTING(      0x2000, "5" )
  2946: //                        0x4000  License (see first dsw)
  2947: 	PORT_DIPNAME( 0x8000, 0x8000, "Coinage Type" )	// not supported
  2948: 	PORT_DIPSETTING(      0x8000, "1" )
  2949: 	PORT_DIPSETTING(      0x0000, "2" )
  2950: INPUT_PORTS_END
  2951: 
  2952: 
  2953: /***************************************************************************
  2954: 								Athena no Hatena?
  2955: ***************************************************************************/
  2956: 
  2957: INPUT_PORTS_START( atehate )
  2958: 	PORT_START	// IN0 - Player 1
  2959: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_BUTTON3  |  IPF_PLAYER1 )
  2960: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_BUTTON4  |  IPF_PLAYER1 )
  2961: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_BUTTON1  |  IPF_PLAYER1 )
  2962: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_BUTTON2  |  IPF_PLAYER1 )
  2963: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2964: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2965: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2966: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START1  )
  2967: 
  2968: 	PORT_START	// IN1 - Player 2
  2969: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_BUTTON3  |  IPF_PLAYER2 )
  2970: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_BUTTON4  |  IPF_PLAYER2 )
  2971: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_BUTTON1  |  IPF_PLAYER2 )
  2972: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_BUTTON2  |  IPF_PLAYER2 )
  2973: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2974: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2975: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2976: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START2  )
  2977: 
  2978: 	PORT_START	// IN2 - Coins
  2979: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  2980: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  2981: 	PORT_BIT_IMPULSE( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1, 5 )
  2982: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW,  IPT_UNKNOWN )
  2983: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW,  IPT_UNKNOWN ) // 4 Bits Called "Cut DSW"
  2984: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW,  IPT_UNKNOWN )
  2985: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW,  IPT_UNKNOWN )
  2986: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW,  IPT_UNKNOWN )
  2987: 
  2988: 	PORT_START	// IN3 - 2 DSWs - $e00001 & 3.b
  2989: 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
  2990: 	PORT_DIPSETTING(      0x0001, DEF_STR( 4C_1C ) )
  2991: 	PORT_DIPSETTING(      0x0002, DEF_STR( 3C_1C ) )
  2992: 	PORT_DIPSETTING(      0x0004, DEF_STR( 2C_1C ) )
  2993: 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
  2994: 	PORT_DIPSETTING(      0x0003, DEF_STR( 2C_3C ) )
  2995: 	PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
  2996: 	PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
  2997: 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
  2998: 	PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
  2999: 	PORT_DIPSETTING(      0x0008, DEF_STR( 4C_1C ) )
  3000: 	PORT_DIPSETTING(      0x0010, DEF_STR( 3C_1C ) )
  3001: 	PORT_DIPSETTING(      0x0020, DEF_STR( 2C_1C ) )
  3002: 	PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
  3003: 	PORT_DIPSETTING(      0x0018, DEF_STR( 2C_3C ) )
  3004: 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_2C ) )
  3005: 	PORT_DIPSETTING(      0x0028, DEF_STR( 1C_3C ) )
  3006: 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
  3007: 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) )
  3008: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  3009: 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
  3010: 	PORT_DIPNAME( 0x0080, 0x0080, "Unknown 2-7" )	// manual: unused
  3011: 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
  3012: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3013: 
  3014: 	PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) )
  3015: 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
  3016: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3017: 	PORT_SERVICE( 0x0200, IP_ACTIVE_LOW )
  3018: 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
  3019: 	PORT_DIPSETTING(      0x0800, "Easy"    )
  3020: 	PORT_DIPSETTING(      0x0c00, "Normal"  )
  3021: 	PORT_DIPSETTING(      0x0400, "Hard"    )
  3022: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  3023: 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) )
  3024: 	PORT_DIPSETTING(      0x0000, "2" )
  3025: 	PORT_DIPSETTING(      0x3000, "3" )
  3026: 	PORT_DIPSETTING(      0x1000, "4" )
  3027: 	PORT_DIPSETTING(      0x2000, "5" )
  3028: 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Bonus_Life ) )
  3029: 	PORT_DIPSETTING(      0xc000, "None" )
  3030: 	PORT_DIPSETTING(      0x0000, "20K Only" )
  3031: 	PORT_DIPSETTING(      0x8000, "20K, Every 30K" )
  3032: 	PORT_DIPSETTING(      0x4000, "30K, Every 40K" )
  3033: INPUT_PORTS_END
  3034: 
  3035: 
  3036: /***************************************************************************
  3037: 								Blandia
  3038: ***************************************************************************/
  3039: 
  3040: INPUT_PORTS_START( blandia )
  3041: 	PORT_START	// IN0 - Player 1 - $400000.w
  3042: 	JOY_TYPE1_3BUTTONS(1)
  3043: 
  3044: 	PORT_START	// IN1 - Player 2 - $400002.w
  3045: 	JOY_TYPE1_3BUTTONS(2)
  3046: 
  3047: 	PORT_START	// IN2 - Coins - $400004.w
  3048: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  3049: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  3050: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  3051: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
  3052: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3053: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3054: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3055: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3056: 
  3057: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  3058: 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) )
  3059: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  3060: 	PORT_DIPSETTING(      0x0001, DEF_STR( On ) )
  3061: 	PORT_DIPNAME( 0x0002, 0x0002, "Coinage Type" )	// not supported
  3062: 	PORT_DIPSETTING(      0x0002, "1" )
  3063: 	PORT_DIPSETTING(      0x0000, "2" )
  3064: 	PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_A ) )
  3065: 	PORT_DIPSETTING(      0x0010, DEF_STR( 3C_1C ) )
  3066: 	PORT_DIPSETTING(      0x000c, DEF_STR( 2C_1C ) )
  3067: 	PORT_DIPSETTING(      0x001c, DEF_STR( 1C_1C ) )
  3068: 	PORT_DIPSETTING(      0x0004, DEF_STR( 2C_3C ) )
  3069: 	PORT_DIPSETTING(      0x0018, DEF_STR( 1C_2C ) )
  3070: 	PORT_DIPSETTING(      0x0008, DEF_STR( 2C_5C ) )
  3071: 	PORT_DIPSETTING(      0x0014, DEF_STR( 1C_3C ) )
  3072: 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
  3073: 	PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_B ) )
  3074: 	PORT_DIPSETTING(      0x00e0, DEF_STR( 1C_1C ) )
  3075: 	PORT_DIPSETTING(      0x0060, DEF_STR( 2C_4C ) )
  3076: 	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_2C ) )
  3077: 	PORT_DIPSETTING(      0x0080, "3 Coins/7 Credit" )
  3078: 	PORT_DIPSETTING(      0x0020, DEF_STR( 2C_5C ) )
  3079: 	PORT_DIPSETTING(      0x0040, DEF_STR( 2C_6C ) )
  3080: 	PORT_DIPSETTING(      0x00a0, DEF_STR( 1C_3C ) )
  3081: 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
  3082: 
  3083: 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )
  3084: 	PORT_DIPSETTING(      0x0200, "1" )
  3085: 	PORT_DIPSETTING(      0x0300, "2" )
  3086: 	PORT_DIPSETTING(      0x0100, "3" )
  3087: 	PORT_DIPSETTING(      0x0000, "4" )
  3088: 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
  3089: 	PORT_DIPSETTING(      0x0800, "Easy"    )
  3090: 	PORT_DIPSETTING(      0x0c00, "Normal"  )
  3091: 	PORT_DIPSETTING(      0x0400, "Hard"    )
  3092: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  3093: 	PORT_DIPNAME( 0x1000, 0x1000, "2 Player Game" )
  3094: 	PORT_DIPSETTING(      0x1000, "2 Credits" )
  3095: 	PORT_DIPSETTING(      0x0000, "1 Credit"  )
  3096: 	PORT_DIPNAME( 0x2000, 0x2000, "Continue" )
  3097: 	PORT_DIPSETTING(      0x2000, "1 Credit" )
  3098: 	PORT_DIPSETTING(      0x0000, "1 Coin"   )
  3099: 	PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Flip_Screen ) )
  3100: 	PORT_DIPSETTING(      0x4000, DEF_STR( Off ) )
  3101: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3102: 	PORT_SERVICE( 0x8000, IP_ACTIVE_LOW )
  3103: INPUT_PORTS_END
  3104: 
  3105: 
  3106: 
  3107: /***************************************************************************
  3108: 								Block Carnival
  3109: ***************************************************************************/
  3110: 
  3111: INPUT_PORTS_START( blockcar )
  3112: 	PORT_START	// IN0 - Player 1 - $500001.b
  3113: 	JOY_TYPE1_2BUTTONS(1)	// button2 = speed up
  3114: 
  3115: 	PORT_START	// IN1 - Player 2 - $500003.b
  3116: 	JOY_TYPE1_2BUTTONS(2)
  3117: 
  3118: 	PORT_START	// IN2 - Coins + DSW - $500005.b
  3119: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  3120: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  3121: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  3122: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
  3123: 	PORT_DIPNAME( 0x0010, 0x0000, "Title" )
  3124: 	PORT_DIPSETTING(      0x0010, "Thunder & Lightning 2" )
  3125: 	PORT_DIPSETTING(      0x0000, "Block Carnival" )
  3126: 
  3127: 	PORT_START	// IN3 - 2 DSWs - $300003 & 1.b
  3128: 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )
  3129: 	PORT_DIPSETTING(      0x0002, "Easy"    )
  3130: 	PORT_DIPSETTING(      0x0003, "Normal"  )
  3131: 	PORT_DIPSETTING(      0x0001, "Hard"    )
  3132: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  3133: 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Bonus_Life ) )
  3134: 	PORT_DIPSETTING(      0x000c, "20K, Every 50K" )
  3135: 	PORT_DIPSETTING(      0x0004, "20K, Every 70K" )
  3136: 	PORT_DIPSETTING(      0x0008, "30K, Every 60K" )
  3137: 	PORT_DIPSETTING(      0x0000, "30K, Every 90K" )
  3138: 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )
  3139: 	PORT_DIPSETTING(      0x0000, "1" )
  3140: 	PORT_DIPSETTING(      0x0030, "2" )
  3141: 	PORT_DIPSETTING(      0x0020, "3" )
  3142: 	PORT_DIPSETTING(      0x0010, "4" )
  3143: 	PORT_DIPNAME( 0x0040, 0x0040, "Unknown 2-6" )
  3144: 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  3145: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3146: 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) )
  3147: 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
  3148: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3149: 
  3150: 	PORT_DIPNAME( 0x0100, 0x0100, "Unknown 1-0" )
  3151: 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
  3152: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3153: 	PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) )
  3154: 	PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
  3155: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3156: 	PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Demo_Sounds ) )
  3157: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  3158: 	PORT_DIPSETTING(      0x0400, DEF_STR( On ) )
  3159: 	PORT_DIPNAME( 0x0800, 0x0800, "Unknown 1-3" )	// service mode, according to a file in the archive
  3160: 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
  3161: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3162: 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Coin_A ) )
  3163: 	PORT_DIPSETTING(      0x1000, DEF_STR( 2C_1C ) )
  3164: 	PORT_DIPSETTING(      0x3000, DEF_STR( 1C_1C ) )
  3165: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
  3166: 	PORT_DIPSETTING(      0x2000, DEF_STR( 1C_2C ) )
  3167: 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Coin_B ) )
  3168: 	PORT_DIPSETTING(      0x4000, DEF_STR( 2C_1C ) )
  3169: 	PORT_DIPSETTING(      0xc000, DEF_STR( 1C_1C ) )
  3170: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
  3171: 	PORT_DIPSETTING(      0x8000, DEF_STR( 1C_2C ) )
  3172: INPUT_PORTS_END
  3173: 
  3174: 
  3175: 
  3176: /***************************************************************************
  3177: 								Caliber 50
  3178: ***************************************************************************/
  3179: 
  3180: INPUT_PORTS_START( calibr50 )
  3181: 	PORT_START	// IN0 - Player 1
  3182: 	JOY_TYPE2_2BUTTONS(1)
  3183: 
  3184: 	PORT_START	// IN1 - Player 2
  3185: 	JOY_TYPE2_2BUTTONS(2)
  3186: 
  3187: 	PORT_START	// IN2 - Coins
  3188: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3189: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3190: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3191: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3192: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_TILT     )
  3193: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_SERVICE1 )
  3194: 	PORT_BIT_IMPULSE( 0x0040, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  3195: 	PORT_BIT_IMPULSE( 0x0080, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  3196: 
  3197: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  3198: 	PORT_DIPNAME( 0x4001, 0x4000, "Licensed To" )
  3199: 	PORT_DIPSETTING(      0x0001, "Romstar"       )
  3200: 	PORT_DIPSETTING(      0x4001, "Taito America" )
  3201: 	PORT_DIPSETTING(      0x4000, "Taito"         )
  3202: 	PORT_DIPSETTING(      0x0000, "None (Japan)"  )
  3203: 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )
  3204: 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
  3205: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3206: 	PORT_SERVICE( 0x0004, IP_ACTIVE_LOW )
  3207: 	PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )
  3208: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  3209: 	PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
  3210: 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
  3211: 	PORT_DIPSETTING(      0x0010, DEF_STR( 2C_1C ) )
  3212: 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_1C ) )
  3213: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
  3214: 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_2C ) )
  3215: 	PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
  3216: 	PORT_DIPSETTING(      0x0040, DEF_STR( 2C_1C ) )
  3217: 	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_1C ) )
  3218: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
  3219: 	PORT_DIPSETTING(      0x0080, DEF_STR( 1C_2C ) )
  3220: 
  3221: 	PORT_DIPNAME( 0x0300, 0x0100, DEF_STR( Difficulty ) )
  3222: 	PORT_DIPSETTING(      0x0300, "Easiest" )
  3223: 	PORT_DIPSETTING(      0x0200, "Easy" )
  3224: 	PORT_DIPSETTING(      0x0100, "Normal" )
  3225: 	PORT_DIPSETTING(      0x0000, "Hard" )
  3226: 	PORT_DIPNAME( 0x0400, 0x0400, "Score Digits" )
  3227: 	PORT_DIPSETTING(      0x0400, "7" )
  3228: 	PORT_DIPSETTING(      0x0000, "3" )
  3229: 	PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Lives ) )
  3230: 	PORT_DIPSETTING(      0x0800, "3" )
  3231: 	PORT_DIPSETTING(      0x0000, "4" )
  3232: 	PORT_DIPNAME( 0x1000, 0x1000, "Display Score" )
  3233: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  3234: 	PORT_DIPSETTING(      0x1000, DEF_STR( On ) )
  3235: 	PORT_DIPNAME( 0x2000, 0x2000, "Erase Backup Ram" )
  3236: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  3237: 	PORT_DIPSETTING(      0x2000, DEF_STR( On ) )
  3238: 	//                    0x4000  Country / License (see first dsw)
  3239: 	PORT_DIPNAME( 0x8000, 0x8000, "Unknown 2-7" )	/* manual: "Don't Touch" */
  3240: 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
  3241: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3242: 
  3243: 	PORT_START	// IN4 - Rotation Player 1
  3244: 	JOY_ROTATION(1, Z, X)
  3245: 
  3246: 	PORT_START	// IN5 - Rotation Player 2
  3247: 	JOY_ROTATION(2, N, M)
  3248: INPUT_PORTS_END
  3249: 
  3250: /***************************************************************************
  3251: 								Daioh
  3252: ***************************************************************************/
  3253: 
  3254: INPUT_PORTS_START( daioh )
  3255: 	PORT_START
  3256: 	JOY_TYPE1_3BUTTONS(1)
  3257: 
  3258: 	PORT_START
  3259: 	JOY_TYPE1_3BUTTONS(2)
  3260: 
  3261: 	PORT_START
  3262: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  3263: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  3264: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  3265: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
  3266: 	/* These are NOT Dip Switches but jumpers */
  3267: 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) )	// JP9
  3268: 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
  3269: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3270: 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) )	// JP8
  3271: 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
  3272: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3273: 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )	// JP7
  3274: 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  3275: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3276: 	PORT_DIPNAME( 0x0080, 0x0080, "Country" )			// JP6
  3277: 	PORT_DIPSETTING(      0x0080, "USA (6 buttons)" )
  3278: 	PORT_DIPSETTING(      0x0000, "Japan (2 buttons)" )
  3279: 
  3280: 	PORT_START
  3281: 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
  3282: 	PORT_DIPSETTING(      0x0001, DEF_STR( 4C_1C ) )
  3283: 	PORT_DIPSETTING(      0x0002, DEF_STR( 3C_1C ) )
  3284: 	PORT_DIPSETTING(      0x0004, DEF_STR( 2C_1C ) )
  3285: 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
  3286: 	PORT_DIPSETTING(      0x0003, DEF_STR( 2C_3C ) )
  3287: 	PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
  3288: 	PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
  3289: 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
  3290: 	PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
  3291: 	PORT_DIPSETTING(      0x0008, DEF_STR( 4C_1C ))
  3292: 	PORT_DIPSETTING(      0x0010, DEF_STR( 3C_1C ) )
  3293: 	PORT_DIPSETTING(      0x0020, DEF_STR( 2C_1C ) )
  3294: 	PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
  3295: 	PORT_DIPSETTING(      0x0018, DEF_STR( 2C_3C ) )
  3296: 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_2C ) )
  3297: 	PORT_DIPSETTING(      0x0028, DEF_STR( 1C_3C ) )
  3298: 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
  3299: 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) )
  3300: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  3301: 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
  3302: 	PORT_DIPNAME( 0x0080, 0x0000, "Auto Shot" )
  3303: 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
  3304: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3305: 
  3306: 	PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) )
  3307: 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
  3308: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3309: 	PORT_SERVICE( 0x0200, IP_ACTIVE_LOW )
  3310: 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
  3311: 	PORT_DIPSETTING(      0x0800, "Easy" )
  3312: 	PORT_DIPSETTING(      0x0c00, "Normal" )
  3313: 	PORT_DIPSETTING(      0x0400, "Hard" )
  3314: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  3315: 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) )
  3316: 	PORT_DIPSETTING(      0x0000, "1" )
  3317: 	PORT_DIPSETTING(      0x1000, "2" )
  3318: 	PORT_DIPSETTING(      0x3000, "3" )
  3319: 	PORT_DIPSETTING(      0x2000, "5" )
  3320: 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Bonus_Life ) )
  3321: 	PORT_DIPSETTING(      0x8000, "300k and every 800k" )
  3322: 	PORT_DIPSETTING(      0xc000, "500k and every 1000k" )
  3323: 	PORT_DIPSETTING(      0x4000, "800k and 2000k only" )
  3324: 	PORT_DIPSETTING(      0x0000, "1000k Only" )
  3325: 
  3326: 	PORT_START
  3327: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER1 )
  3328: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER1 )
  3329: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_BUTTON6 | IPF_PLAYER1 )
  3330: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER2 )
  3331: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER2 )
  3332: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_BUTTON6 | IPF_PLAYER2 )
  3333: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  3334: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
  3335: INPUT_PORTS_END
  3336: 
  3337: /***************************************************************************
  3338: 								Dragon Unit
  3339: ***************************************************************************/
  3340: 
  3341: INPUT_PORTS_START( drgnunit )
  3342: 	PORT_START	// IN0 - Player 1
  3343: 	JOY_TYPE1_3BUTTONS(1)
  3344: 
  3345: 	PORT_START	// IN1 - Player 2
  3346: 	JOY_TYPE1_3BUTTONS(2)
  3347: 
  3348: 	PORT_START	// IN2 - Coins
  3349: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  3350: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  3351: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  3352: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
  3353: 	PORT_DIPNAME( 0x0010, 0x0010, "Coinage Type" ) // not supported
  3354: 	PORT_DIPSETTING(      0x0010, "1" )
  3355: 	PORT_DIPSETTING(      0x0000, "2" )
  3356: 	PORT_DIPNAME( 0x0020, 0x0020, "Title" )
  3357: 	PORT_DIPSETTING(      0x0020, "Dragon Unit" )
  3358: 	PORT_DIPSETTING(      0x0000, "Castle of Dragon" )
  3359: 	PORT_DIPNAME( 0x00c0, 0x00c0, "(C) / License" )
  3360: 	PORT_DIPSETTING(      0x00c0, "Athena (Japan)" )
  3361: 	PORT_DIPSETTING(      0x0080, "Athena / Taito (Japan)" )
  3362: 	PORT_DIPSETTING(      0x0040, "Seta USA / Taito America" )
  3363: 	PORT_DIPSETTING(      0x0000, "Seta USA / Romstar" )
  3364: 
  3365: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  3366: 	PORT_DIPNAME( 0x0003, 0x0003, "Unknown 1-0&1" )
  3367: 	PORT_DIPSETTING(      0x0002, "00" )
  3368: 	PORT_DIPSETTING(      0x0003, "08" )
  3369: 	PORT_DIPSETTING(      0x0001, "10" )
  3370: 	PORT_DIPSETTING(      0x0000, "18" )
  3371: 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Bonus_Life ) )
  3372: 	PORT_DIPSETTING(      0x0008, "150K, Every 300K" )
  3373: 	PORT_DIPSETTING(      0x000c, "200K, Every 400K" )
  3374: 	PORT_DIPSETTING(      0x0004, "300K, Every 500K" )
  3375: 	PORT_DIPSETTING(      0x0000, "400K Only" )
  3376: 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )
  3377: 	PORT_DIPSETTING(      0x0000, "1" )
  3378: 	PORT_DIPSETTING(      0x0010, "2" )
  3379: 	PORT_DIPSETTING(      0x0030, "3" )
  3380: 	PORT_DIPSETTING(      0x0020, "5" )
  3381: 	PORT_DIPNAME( 0x0040, 0x0040, "Unknown 1-6" )
  3382: 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  3383: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3384: 	PORT_DIPNAME( 0x0080, 0x0080, "Unknown 1-7*" )
  3385: 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
  3386: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3387: 
  3388: 	PORT_DIPNAME( 0x0100, 0x0100, "Unknown 2-0" )
  3389: 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
  3390: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3391: 	PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) )
  3392: 	PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
  3393: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3394: 	PORT_DIPNAME( 0x0400, 0x0400, "Unknown 2-2*" )
  3395: 	PORT_DIPSETTING(      0x0400, DEF_STR( Off ) )
  3396: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3397: 	PORT_SERVICE( 0x0800, IP_ACTIVE_LOW )
  3398: 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Coin_A ) )
  3399: 	PORT_DIPSETTING(      0x1000, DEF_STR( 2C_1C ) )
  3400: 	PORT_DIPSETTING(      0x3000, DEF_STR( 1C_1C ) )
  3401: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
  3402: 	PORT_DIPSETTING(      0x2000, DEF_STR( 1C_2C ) )
  3403: 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Coin_B ) )
  3404: 	PORT_DIPSETTING(      0x4000, DEF_STR( 2C_1C ) )
  3405: 	PORT_DIPSETTING(      0xc000, DEF_STR( 1C_1C ) )
  3406: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
  3407: 	PORT_DIPSETTING(      0x8000, DEF_STR( 1C_2C ) )
  3408: INPUT_PORTS_END
  3409: 
  3410: 
  3411: 
  3412: /***************************************************************************
  3413: 								DownTown
  3414: ***************************************************************************/
  3415: 
  3416: INPUT_PORTS_START( downtown )
  3417: 	PORT_START	// IN0 - Player 1
  3418: 	JOY_TYPE2_2BUTTONS(1)
  3419: 
  3420: 	PORT_START	// IN1 - Player 2
  3421: 	JOY_TYPE2_2BUTTONS(2)
  3422: 
  3423: 	PORT_START	// IN2 - Coins
  3424: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3425: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3426: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3427: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3428: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_TILT     )
  3429: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_SERVICE1 )
  3430: 	PORT_BIT_IMPULSE( 0x0040, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  3431: 	PORT_BIT_IMPULSE( 0x0080, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  3432: 
  3433: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  3434: 	PORT_DIPNAME( 0x0001, 0x0000, "Sales" )
  3435: 	PORT_DIPSETTING(      0x0001, "Japan Only" )
  3436: 	PORT_DIPSETTING(      0x0000, "World" )
  3437: 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )
  3438: 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
  3439: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3440: 	PORT_SERVICE( 0x0004, IP_ACTIVE_LOW )
  3441: 	PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Demo_Sounds ) )
  3442: 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
  3443: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3444: 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
  3445: 	PORT_DIPSETTING(      0x0010, DEF_STR( 2C_1C ) )
  3446: 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_1C ) )
  3447: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
  3448: 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_2C ) )
  3449: 	PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
  3450: 	PORT_DIPSETTING(      0x0040, DEF_STR( 2C_1C ) )
  3451: 	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_1C ) )
  3452: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
  3453: 	PORT_DIPSETTING(      0x0080, DEF_STR( 1C_2C ) )
  3454: // other coinage
  3455: #if 0 
  3456: 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
  3457: 	PORT_DIPSETTING(      0x0000, DEF_STR( 4C_1C ) )
  3458: 	PORT_DIPSETTING(      0x0010, DEF_STR( 3C_1C ) )
  3459: 	PORT_DIPSETTING(      0x0020, DEF_STR( 2C_1C ) )
  3460: 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_1C ) )
  3461: 	PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
  3462: 	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_2C ) )
  3463: 	PORT_DIPSETTING(      0x0080, DEF_STR( 1C_3C ) )
  3464: 	PORT_DIPSETTING(      0x0040, DEF_STR( 1C_4C ) )
  3465: 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
  3466: #endif 
  3467: 
  3468: 	PORT_DIPNAME( 0x0300, 0x0300, "Unknown 2-0&1" )
  3469: 	PORT_DIPSETTING(      0x0200, "2" )
  3470: 	PORT_DIPSETTING(      0x0300, "3" )
  3471: 	PORT_DIPSETTING(      0x0100, "4" )
  3472: 	PORT_DIPSETTING(      0x0000, "5" )
  3473: 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Bonus_Life ) )
  3474: 	PORT_DIPSETTING(      0x0c00, "Never" )
  3475: 	PORT_DIPSETTING(      0x0800, "50K Only" )
  3476: 	PORT_DIPSETTING(      0x0400, "100K Only" )
  3477: 	PORT_DIPSETTING(      0x0000, "50K, Every 150K" )
  3478: 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) )
  3479: 	PORT_DIPSETTING(      0x1000, "2" )
  3480: 	PORT_DIPSETTING(      0x3000, "3" )
  3481: 	PORT_DIPSETTING(      0x0000, "4" )
  3482: 	PORT_DIPSETTING(      0x2000, "5" )
  3483: 	PORT_DIPNAME( 0x4000, 0x0000, "World License" )
  3484: 	PORT_DIPSETTING(      0x4000, "Romstar" )
  3485: 	PORT_DIPSETTING(      0x0000, "Taito" )
  3486: 	PORT_DIPNAME( 0x8000, 0x8000, "Coinage Type" )	// not supported
  3487: 	PORT_DIPSETTING(      0x8000, "1" )
  3488: 	PORT_DIPSETTING(      0x0000, "2" )
  3489: 
  3490: 	PORT_START	// IN4 - Rotation Player 1
  3491: 	JOY_ROTATION(1, Z, X)
  3492: 
  3493: 	PORT_START	// IN5 - Rotation Player 2
  3494: 	JOY_ROTATION(1, N, M)
  3495: INPUT_PORTS_END
  3496: 
  3497: 
  3498: 
  3499: /***************************************************************************
  3500: 								Eight Force
  3501: ***************************************************************************/
  3502: 
  3503: INPUT_PORTS_START( eightfrc )
  3504: 	PORT_START	// IN0 - Player 1
  3505: 	JOY_TYPE1_2BUTTONS(1)
  3506: 
  3507: 	PORT_START	// IN1 - Player 2
  3508: 	JOY_TYPE1_2BUTTONS(2)
  3509: 
  3510: 	PORT_START	// IN2 - Coins
  3511: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  3512: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  3513: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  3514: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
  3515: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
  3516: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
  3517: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  3518: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
  3519: 
  3520: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  3521: 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
  3522: 	PORT_DIPSETTING(      0x0004, DEF_STR( 4C_1C ) )
  3523: 	PORT_DIPSETTING(      0x0005, DEF_STR( 3C_1C ) )
  3524: 	PORT_DIPSETTING(      0x0006, DEF_STR( 2C_1C ) )
  3525: 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
  3526: 	PORT_DIPSETTING(      0x0003, DEF_STR( 1C_2C ) )
  3527: 	PORT_DIPSETTING(      0x0002, DEF_STR( 1C_3C ) )
  3528: 	PORT_DIPSETTING(      0x0001, DEF_STR( 1C_4C ) )
  3529: 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
  3530: 	PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
  3531: 	PORT_DIPSETTING(      0x0020, DEF_STR( 4C_1C ) )
  3532: 	PORT_DIPSETTING(      0x0028, DEF_STR( 3C_1C ) )
  3533: 	PORT_DIPSETTING(      0x0030, DEF_STR( 2C_1C ) )
  3534: 	PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
  3535: 	PORT_DIPSETTING(      0x0018, DEF_STR( 1C_2C ) )
  3536: 	PORT_DIPSETTING(      0x0010, DEF_STR( 1C_3C ) )
  3537: 	PORT_DIPSETTING(      0x0008, DEF_STR( 1C_4C ) )
  3538: 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
  3539: 	PORT_DIPNAME( 0x0040, 0x0040, "Shared Credits" )
  3540: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  3541: 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
  3542: 	PORT_DIPNAME( 0x0080, 0x0080, "Credits To Start" )
  3543: 	PORT_DIPSETTING(      0x0080, "1" )
  3544: 	PORT_DIPSETTING(      0x0000, "2" )
  3545: 
  3546: 	PORT_SERVICE( 0x0100, IP_ACTIVE_LOW )
  3547: 	PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) )
  3548: 	PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
  3549: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3550: 	PORT_DIPNAME( 0x0400, 0x0000, DEF_STR( Demo_Sounds ) )
  3551: 	PORT_DIPSETTING(      0x0400, DEF_STR( Off ) )
  3552: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3553: 	PORT_DIPNAME( 0x1800, 0x1800, DEF_STR( Difficulty ) )
  3554: 	PORT_DIPSETTING(      0x1000, "Easy" )
  3555: 	PORT_DIPSETTING(      0x1800, "Normal" )
  3556: 	PORT_DIPSETTING(      0x0800, "Hard" )
  3557: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  3558: 	PORT_DIPNAME( 0x6000, 0x6000, DEF_STR( Lives ) )
  3559: 	PORT_DIPSETTING(      0x4000, "2" )
  3560: 	PORT_DIPSETTING(      0x6000, "3" )
  3561: 	PORT_DIPSETTING(      0x2000, "4" )
  3562: 	PORT_DIPSETTING(      0x0000, "5" )
  3563: 	PORT_DIPNAME( 0x8000, 0x0000, "Language" )
  3564: 	PORT_DIPSETTING(      0x0000, "English" )
  3565: 	PORT_DIPSETTING(      0x8000, "Japanese" )
  3566: INPUT_PORTS_END
  3567: 
  3568: 
  3569: 
  3570: /***************************************************************************
  3571: 								Extreme Downhill
  3572: ***************************************************************************/
  3573: 
  3574: INPUT_PORTS_START( extdwnhl )
  3575: 	PORT_START	// IN0 - Player 1
  3576: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER1 | IPF_2WAY )
  3577: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER1 | IPF_2WAY )
  3578: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
  3579: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
  3580: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
  3581: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
  3582: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  3583: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START1  )
  3584: 
  3585: 	PORT_START	// IN1 - Player 2
  3586: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER2 | IPF_2WAY )
  3587: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER2 | IPF_2WAY )
  3588: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
  3589: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
  3590: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  3591: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
  3592: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  3593: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START2  )
  3594: 
  3595: 	PORT_START	// IN2 - Coins
  3596: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  3597: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  3598: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  3599: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_SERVICE )	// "test"
  3600: 	/* These are NOT Dip Switches but jumpers */
  3601: 	PORT_DIPNAME( 0x0030, 0x0030, "Country" )
  3602: 	PORT_DIPSETTING(      0x0030, "World" )
  3603: //	PORT_DIPSETTING(      0x0020, "World" )	// duplicated settings
  3604: 	PORT_DIPSETTING(      0x0010, "USA" )
  3605: 	PORT_DIPSETTING(      0x0000, "Japan" )
  3606: 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )
  3607: 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  3608: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3609: 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) )
  3610: 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
  3611: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3612: 
  3613: 	PORT_START	// IN3 - 2 DSWs - $400009 & b.b
  3614: 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
  3615: 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
  3616: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3617: 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )
  3618: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  3619: 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
  3620: 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )
  3621: 	PORT_DIPSETTING(      0x0008, "Easy" )
  3622: 	PORT_DIPSETTING(      0x000c, "Normal" )
  3623: 	PORT_DIPSETTING(      0x0004, "Hard" )
  3624: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  3625: 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Free_Play ) )
  3626: 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
  3627: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3628: 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Cabinet ) )
  3629: 	PORT_DIPSETTING(      0x0020, DEF_STR( Upright ) )
  3630: 	PORT_DIPSETTING(      0x0000, DEF_STR( Cocktail ) )
  3631: 	PORT_DIPNAME( 0x0040, 0x0040, "Controls" )
  3632: 	PORT_DIPSETTING(      0x0040, "2" )
  3633: 	PORT_DIPSETTING(      0x0000, "1" )
  3634: 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
  3635: 
  3636: 	PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) )
  3637: 	PORT_DIPSETTING(      0x0500, DEF_STR( 3C_1C ) )
  3638: 	PORT_DIPSETTING(      0x0600, DEF_STR( 2C_1C ) )
  3639: 	PORT_DIPSETTING(      0x0700, DEF_STR( 1C_1C ) )
  3640: 	PORT_DIPSETTING(      0x0400, DEF_STR( 1C_2C ) )
  3641: 	PORT_DIPSETTING(      0x0300, DEF_STR( 1C_3C ) )
  3642: 	PORT_DIPSETTING(      0x0200, DEF_STR( 1C_4C ) )
  3643: 	PORT_DIPSETTING(      0x0100, DEF_STR( 1C_5C ) )
  3644: 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
  3645: 	PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) )
  3646: 	PORT_DIPSETTING(      0x2800, DEF_STR( 3C_1C ) )
  3647: 	PORT_DIPSETTING(      0x3000, DEF_STR( 2C_1C ) )
  3648: 	PORT_DIPSETTING(      0x3800, DEF_STR( 1C_1C ) )
  3649: 	PORT_DIPSETTING(      0x2000, DEF_STR( 1C_2C ) )
  3650: 	PORT_DIPSETTING(      0x1800, DEF_STR( 1C_3C ) )
  3651: 	PORT_DIPSETTING(      0x1000, DEF_STR( 1C_4C ) )
  3652: 	PORT_DIPSETTING(      0x0800, DEF_STR( 1C_5C ) )
  3653: 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
  3654: 	PORT_DIPNAME( 0x4000, 0x4000, "Cheap Continue" )
  3655: 	PORT_DIPSETTING(      0x4000, DEF_STR( No ) )
  3656: 	PORT_DIPSETTING(      0x0000, DEF_STR( Yes ) )
  3657: 	PORT_DIPNAME( 0x8000, 0x8000, "Game Mode" )
  3658: 	PORT_DIPSETTING(      0x8000, "Finals Only" )
  3659: 	PORT_DIPSETTING(      0x0000, "Semi-Finals & Finals" )
  3660: INPUT_PORTS_END
  3661: 
  3662: 
  3663: 
  3664: /***************************************************************************
  3665: 								Gundhara
  3666: ***************************************************************************/
  3667: 
  3668: INPUT_PORTS_START( gundhara )
  3669: 	PORT_START	// IN0 - Player 1
  3670: 	JOY_TYPE1_3BUTTONS(1)
  3671: 
  3672: 	PORT_START	// IN1 - Player 2
  3673: 	JOY_TYPE1_3BUTTONS(2)
  3674: 
  3675: 	PORT_START	// IN2 - Coins
  3676: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  3677: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  3678: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  3679: 	PORT_BITX( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
  3680: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3681: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3682: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3683: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3684: 
  3685: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  3686: 	PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_A ) )
  3687: 	PORT_DIPSETTING(      0x0002, DEF_STR( 4C_1C ) )
  3688: 	PORT_DIPSETTING(      0x0005, DEF_STR( 3C_1C ) )
  3689: 	PORT_DIPSETTING(      0x0008, DEF_STR( 2C_1C ) )
  3690: 	PORT_DIPSETTING(      0x0004, DEF_STR( 3C_2C ) )
  3691: 	PORT_DIPSETTING(      0x0001, DEF_STR( 4C_3C ) )
  3692: 	PORT_DIPSETTING(      0x000f, DEF_STR( 1C_1C ) )
  3693: 	PORT_DIPSETTING(      0x0003, DEF_STR( 3C_4C ) )
  3694: 	PORT_DIPSETTING(      0x0007, DEF_STR( 2C_3C ) )
  3695: 	PORT_DIPSETTING(      0x000e, DEF_STR( 1C_2C ) )
  3696: 	PORT_DIPSETTING(      0x0006, DEF_STR( 2C_5C ) )
  3697: 	PORT_DIPSETTING(      0x000d, DEF_STR( 1C_3C ) )
  3698: 	PORT_DIPSETTING(      0x000c, DEF_STR( 1C_4C ) )
  3699: 	PORT_DIPSETTING(      0x000b, DEF_STR( 1C_5C ) )
  3700: 	PORT_DIPSETTING(      0x000a, DEF_STR( 1C_6C ) )
  3701: 	PORT_DIPSETTING(      0x0009, DEF_STR( 1C_7C ) )
  3702: 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
  3703: 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_B ) )
  3704: 	PORT_DIPSETTING(      0x0000, DEF_STR( 3C_1C ) )
  3705: 	PORT_DIPSETTING(      0x0010, DEF_STR( 2C_1C ) )
  3706: 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_1C ) )
  3707: 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_2C ) )
  3708: 	PORT_DIPNAME( 0x00c0, 0x00c0, "Country" )
  3709: 	PORT_DIPSETTING(      0x00c0, "Japan" )
  3710: 	PORT_DIPSETTING(      0x0000, "World" )
  3711: 
  3712: 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) )
  3713: 	PORT_DIPSETTING(      0x0200, "Easy" )
  3714: 	PORT_DIPSETTING(      0x0300, "Normal" )
  3715: 	PORT_DIPSETTING(      0x0100, "Hard" )
  3716: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  3717: 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Lives ) )
  3718: 	PORT_DIPSETTING(      0x0800, "1" )
  3719: 	PORT_DIPSETTING(      0x0c00, "2" )
  3720: 	PORT_DIPSETTING(      0x0400, "3" )
  3721: 	PORT_DIPSETTING(      0x0000, "4" )
  3722: 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Bonus_Life ) )
  3723: 	PORT_DIPSETTING(      0x3000, "200K" )
  3724: 	PORT_DIPSETTING(      0x2000, "200K, Every 200K" )
  3725: 	PORT_DIPSETTING(      0x1000, "400K" )
  3726: 	PORT_DIPSETTING(      0x0000, "None" )
  3727: 	PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Demo_Sounds ) )
  3728: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  3729: 	PORT_DIPSETTING(      0x4000, DEF_STR( On ) )
  3730: 	PORT_SERVICE( 0x8000, IP_ACTIVE_LOW )
  3731: INPUT_PORTS_END
  3732: 
  3733: /***************************************************************************
  3734: 								Zombie Raid
  3735: ***************************************************************************/
  3736: 
  3737: INPUT_PORTS_START( zombraid )
  3738: 	PORT_START	// IN0 - Player 1
  3739: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3740: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3741: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3742: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3743: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1		|	IPF_PLAYER1  )	// Trigger
  3744: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_BUTTON2		|	IPF_PLAYER1  )	// Reload
  3745: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3746: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START1   )
  3747: 
  3748: 	PORT_START	// IN1 - Player 2
  3749: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3750: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3751: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3752: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3753: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1		|	IPF_PLAYER2  )	// Trigger
  3754: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_BUTTON2		|	IPF_PLAYER2  )	// Reload
  3755: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3756: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START2   )
  3757: 
  3758: 	PORT_START	// IN2 - Coins
  3759: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  3760: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  3761: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  3762: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
  3763: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3764: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3765: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3766: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3767: 
  3768: 	PORT_START
  3769: 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
  3770: 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
  3771: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3772: 	PORT_DIPNAME( 0x0002, 0x0000, "Mirror" )
  3773: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  3774: 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
  3775: 	PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Demo_Sounds ) )
  3776: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  3777: 	PORT_DIPSETTING(      0x0004, DEF_STR( On ) )
  3778: 	PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Difficulty ) )
  3779: 	PORT_DIPSETTING(      0x0010, "Easy"    )
  3780: 	PORT_DIPSETTING(      0x0018, "Normal"  )
  3781: 	PORT_DIPSETTING(      0x0008, "Hard"    )
  3782: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  3783: 	PORT_DIPNAME( 0x0020, 0x0020, "Allow Continue" )
  3784: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  3785: 	PORT_DIPSETTING(      0x0020, DEF_STR( On ) )
  3786: 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )
  3787: 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  3788: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3789: 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
  3790: 
  3791: 	PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) )
  3792: 	PORT_DIPSETTING(      0x0500, DEF_STR( 3C_1C ) )
  3793: 	PORT_DIPSETTING(      0x0600, DEF_STR( 2C_1C ) )
  3794: 	PORT_DIPSETTING(      0x0700, DEF_STR( 1C_1C ) )
  3795: 	PORT_DIPSETTING(      0x0400, DEF_STR( 1C_2C ) )
  3796: 	PORT_DIPSETTING(      0x0300, DEF_STR( 1C_3C ) )
  3797: 	PORT_DIPSETTING(      0x0200, DEF_STR( 1C_4C ) )
  3798: 	PORT_DIPSETTING(      0x0100, DEF_STR( 1C_5C ) )
  3799: 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
  3800: 	PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) )
  3801: 	PORT_DIPSETTING(      0x2800, DEF_STR( 3C_1C ) )
  3802: 	PORT_DIPSETTING(      0x3000, DEF_STR( 2C_1C ) )
  3803: 	PORT_DIPSETTING(      0x3800, DEF_STR( 1C_1C ) )
  3804: 	PORT_DIPSETTING(      0x2000, DEF_STR( 1C_2C ) )
  3805: 	PORT_DIPSETTING(      0x1800, DEF_STR( 1C_3C ) )
  3806: 	PORT_DIPSETTING(      0x1000, DEF_STR( 1C_4C ) )
  3807: 	PORT_DIPSETTING(      0x0800, DEF_STR( 1C_5C ) )
  3808: 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
  3809: 	PORT_DIPNAME( 0x4000, 0x4000, "2 Coins to Start, 1 to Continue" )
  3810: 	PORT_DIPSETTING(      0x4000, DEF_STR( No ) )
  3811: 	PORT_DIPSETTING(      0x0000, DEF_STR( Yes ) )
  3812: 	PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unused ) )
  3813: 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
  3814: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3815: 
  3816: 	PORT_START	/* IN5 Player 1 Gun X		($f00003) */
  3817: 	PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_X | IPF_PLAYER1 | IPF_REVERSE, 25, 15, 0, 0xff )
  3818: 	PORT_START	/* IN6 Player 1 Gun Y		($f00003) */
  3819: 	PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_Y | IPF_PLAYER1, 25, 15, 0, 0xff )
  3820: 
  3821: 	PORT_START	/* IN7 Player 2 Gun X		($f00003) */
  3822: 	PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_X | IPF_PLAYER2 | IPF_REVERSE, 25, 15, 0, 0xff )
  3823: 	PORT_START	/* IN8 Player 2 Gun Y		($f00003) */
  3824: 	PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_Y | IPF_PLAYER2, 25, 15, 0, 0xff )
  3825: INPUT_PORTS_END
  3826: 
  3827: 
  3828: /***************************************************************************
  3829: 								J.J.Squawkers
  3830: ***************************************************************************/
  3831: 
  3832: INPUT_PORTS_START( jjsquawk )
  3833: 	PORT_START	// IN0 - Player 1 - $400000.w
  3834: 	JOY_TYPE1_2BUTTONS(1)
  3835: 
  3836: 	PORT_START	// IN1 - Player 2 - $400002.w
  3837: 	JOY_TYPE1_2BUTTONS(2)
  3838: 
  3839: 	PORT_START	// IN2 - Coins - $400004.w
  3840: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  3841: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  3842: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  3843: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3844: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3845: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3846: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3847: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  3848: 
  3849: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  3850: 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
  3851: 	PORT_DIPSETTING(      0x0001, DEF_STR( 4C_1C ) )
  3852: 	PORT_DIPSETTING(      0x0002, DEF_STR( 3C_1C ) )
  3853: 	PORT_DIPSETTING(      0x0004, DEF_STR( 2C_1C ) )
  3854: 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
  3855: 	PORT_DIPSETTING(      0x0003, DEF_STR( 2C_3C ) )
  3856: 	PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
  3857: 	PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
  3858: 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
  3859: 	PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
  3860: 	PORT_DIPSETTING(      0x0008, DEF_STR( 4C_1C ) )
  3861: 	PORT_DIPSETTING(      0x0010, DEF_STR( 3C_1C ) )
  3862: 	PORT_DIPSETTING(      0x0020, DEF_STR( 2C_1C ) )
  3863: 	PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
  3864: 	PORT_DIPSETTING(      0x0018, DEF_STR( 2C_3C ) )
  3865: 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_2C ) )
  3866: 	PORT_DIPSETTING(      0x0028, DEF_STR( 1C_3C ) )
  3867: 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
  3868: 	PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Demo_Sounds ) )
  3869: 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  3870: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3871: 	PORT_DIPNAME( 0x0080, 0x0080, "Unknown 2-7" )	// ?? screen related
  3872: 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
  3873: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3874: 
  3875: 	PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) )
  3876: 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
  3877: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3878: 	PORT_SERVICE( 0x0200, IP_ACTIVE_LOW )
  3879: 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
  3880: 	PORT_DIPSETTING(      0x0800, "Easy"    )
  3881: 	PORT_DIPSETTING(      0x0c00, "Normal"  )
  3882: 	PORT_DIPSETTING(      0x0400, "Hard"    )
  3883: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  3884: 	PORT_DIPNAME( 0x3000, 0x3000, "Energy" )
  3885: 	PORT_DIPSETTING(      0x2000, "2" )
  3886: 	PORT_DIPSETTING(      0x3000, "3" )
  3887: 	PORT_DIPSETTING(      0x1000, "4" )
  3888: 	PORT_DIPSETTING(      0x0000, "5" )
  3889: 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Bonus_Life ) )
  3890: 	PORT_DIPSETTING(      0x8000, "20K, Every 100K" )
  3891: 	PORT_DIPSETTING(      0xc000, "50K, Every 200K" )
  3892: 	PORT_DIPSETTING(      0x4000, "70K, 200K Only" )
  3893: 	PORT_DIPSETTING(      0x0000, "100K Only" )
  3894: INPUT_PORTS_END
  3895: 
  3896: /***************************************************************************
  3897: 				(Kamen) Masked Riders Club Battle Race
  3898: ***************************************************************************/
  3899: 
  3900: INPUT_PORTS_START( kamenrid )
  3901: 	PORT_START	// IN0 - Player 1
  3902: 	JOY_TYPE1_2BUTTONS(1)	// BUTTON3 in "test mode" only
  3903: 
  3904: 	PORT_START	// IN1 - Player 2
  3905: 	JOY_TYPE1_2BUTTONS(2)	// BUTTON3 in "test mode" only
  3906: 
  3907: 	PORT_START	// IN2 - Coins
  3908: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  3909: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  3910: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  3911: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
  3912: 	/* These are NOT Dip Switches but jumpers */
  3913: 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) )
  3914: 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
  3915: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3916: 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) )
  3917: 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
  3918: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3919: 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )
  3920: 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  3921: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3922: 	PORT_DIPNAME( 0x0080, 0x0080, "Country" )
  3923: 	PORT_DIPSETTING(      0x0080, "USA" )
  3924: 	PORT_DIPSETTING(      0x0000, "Japan" )
  3925: 
  3926: 	PORT_START	// IN3 - 2 DSWs - $500005 & 7.b
  3927: 	PORT_SERVICE( 0x0001, IP_ACTIVE_LOW )
  3928: 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unused ) )
  3929: 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
  3930: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3931: 	PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) )		// masked at 0x001682
  3932: 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
  3933: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3934: 	PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unused ) )
  3935: 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
  3936: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3937: 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) )		// masked at 0x001682
  3938: 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
  3939: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )			// (displays debug infos)
  3940: 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) )		// masked at 0x001682
  3941: 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
  3942: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )			// (unknown effect at 0x00606a, 0x0060de, 0x00650a)
  3943: 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )		// check code at 0x001792
  3944: 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  3945: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3946: 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Flip_Screen ) )
  3947: 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
  3948: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3949: 	PORT_DIPNAME( 0x0f00, 0x0f00, DEF_STR( Coinage ) )
  3950: 	PORT_DIPSETTING(      0x0500, DEF_STR( 6C_1C ) )
  3951: 	PORT_DIPSETTING(      0x0d00, DEF_STR( 5C_1C ) )
  3952: 	PORT_DIPSETTING(      0x0300, DEF_STR( 4C_1C ) )
  3953: 	PORT_DIPSETTING(      0x0b00, DEF_STR( 3C_1C ) )
  3954: 	PORT_DIPSETTING(      0x0800, DEF_STR( 8C_3C ) )
  3955: 	PORT_DIPSETTING(      0x0700, DEF_STR( 2C_1C ) )
  3956: 	PORT_DIPSETTING(      0x0400, DEF_STR( 5C_3C ) )
  3957: 	PORT_DIPSETTING(      0x0c00, DEF_STR( 3C_2C ) )
  3958: 	PORT_DIPSETTING(      0x0f00, DEF_STR( 1C_1C ) )
  3959: 	PORT_DIPSETTING(      0x0200, DEF_STR( 2C_3C ) )
  3960: 	PORT_DIPSETTING(      0x0900, DEF_STR( 1C_2C ) )
  3961: 	PORT_DIPSETTING(      0x0100, DEF_STR( 1C_3C ) )
  3962: 	PORT_DIPSETTING(      0x0e00, DEF_STR( 1C_4C ) )
  3963: 	PORT_DIPSETTING(      0x0600, DEF_STR( 1C_5C ) )
  3964: 	PORT_DIPSETTING(      0x0a00, DEF_STR( 1C_6C ) )
  3965: 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
  3966: 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Difficulty ) )
  3967: 	PORT_DIPSETTING(      0x1000, "Easy" )
  3968: 	PORT_DIPSETTING(      0x3000, "Normal" )
  3969: 	PORT_DIPSETTING(      0x2000, "Hard" )
  3970: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  3971: 	PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unused ) )
  3972: 	PORT_DIPSETTING(      0x4000, DEF_STR( Off ) )
  3973: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3974: 	PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unused ) )
  3975: 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
  3976: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  3977: INPUT_PORTS_END
  3978: 
  3979: /***************************************************************************
  3980: 								Krazy Bowl
  3981: ***************************************************************************/
  3982: 
  3983: #define KRZYBOWL_TRACKBALL(_dir_, _n_ ) \ 
  3984: 	PORT_ANALOG( 0x0fff, 0x0000, IPT_TRACKBALL_##_dir_ | IPF_PLAYER##_n_ | IPF_REVERSE, 70, 30, 0, 0 )
  3985: 
  3986: INPUT_PORTS_START( krzybowl )
  3987: 	PORT_START	// IN0 - Player 1
  3988: 	JOY_TYPE1_3BUTTONS(1)
  3989: 
  3990: 	PORT_START	// IN1 - Player 2
  3991: 	JOY_TYPE1_3BUTTONS(2)
  3992: 
  3993: 	PORT_START	// IN2 - Coins
  3994: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  3995: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  3996: 	PORT_BIT_IMPULSE( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1, 5 )
  3997: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW,  IPT_UNKNOWN )
  3998: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW,  IPT_UNKNOWN )
  3999: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW,  IPT_UNKNOWN )
  4000: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW,  IPT_UNKNOWN )
  4001: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW,  IPT_UNKNOWN )
  4002: 
  4003: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  4004: 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
  4005: 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
  4006: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4007: 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )
  4008: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  4009: 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
  4010: 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )
  4011: 	PORT_DIPSETTING(      0x0008, "Easy" )
  4012: 	PORT_DIPSETTING(      0x000c, "Normal" )
  4013: 	PORT_DIPSETTING(      0x0004, "Hard" )
  4014: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  4015: 	PORT_DIPNAME( 0x0010, 0x0010, "Frames" )
  4016: 	PORT_DIPSETTING(      0x0010, "10" )
  4017: 	PORT_DIPSETTING(      0x0000, "5" )
  4018: 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Cabinet ) )
  4019: 	PORT_DIPSETTING(      0x0020, DEF_STR( Upright ) )
  4020: 	PORT_DIPSETTING(      0x0000, DEF_STR( Cocktail ) )
  4021: 	PORT_DIPNAME( 0x0040, 0x0040, "Controls" )
  4022: 	PORT_DIPSETTING(      0x0040, "Trackball" )
  4023: 	PORT_DIPSETTING(      0x0000, "Joystick" )
  4024: 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
  4025: 
  4026: 	PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) )
  4027: 	PORT_DIPSETTING(      0x0500, DEF_STR( 3C_1C ) )
  4028: 	PORT_DIPSETTING(      0x0600, DEF_STR( 2C_1C ) )
  4029: 	PORT_DIPSETTING(      0x0700, DEF_STR( 1C_1C ) )
  4030: 	PORT_DIPSETTING(      0x0400, DEF_STR( 1C_2C ) )
  4031: 	PORT_DIPSETTING(      0x0300, DEF_STR( 1C_3C ) )
  4032: 	PORT_DIPSETTING(      0x0200, DEF_STR( 1C_4C ) )
  4033: 	PORT_DIPSETTING(      0x0100, DEF_STR( 1C_5C ) )
  4034: 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
  4035: 	PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) )
  4036: 	PORT_DIPSETTING(      0x2800, DEF_STR( 3C_1C ) )
  4037: 	PORT_DIPSETTING(      0x3000, DEF_STR( 2C_1C ) )
  4038: 	PORT_DIPSETTING(      0x3800, DEF_STR( 1C_1C ) )
  4039: 	PORT_DIPSETTING(      0x2000, DEF_STR( 1C_2C ) )
  4040: 	PORT_DIPSETTING(      0x1800, DEF_STR( 1C_3C ) )
  4041: 	PORT_DIPSETTING(      0x1000, DEF_STR( 1C_4C ) )
  4042: 	PORT_DIPSETTING(      0x0800, DEF_STR( 1C_5C ) )
  4043: 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
  4044: 	PORT_DIPNAME( 0x4000, 0x4000, "Force Coinage" )
  4045: 	PORT_DIPSETTING(      0x4000, DEF_STR( No ) )
  4046: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_1C ) )
  4047: 	PORT_DIPNAME( 0x8000, 0x8000, "Unknown 2-7" )
  4048: 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
  4049: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4050: 
  4051: 	PORT_START	// IN4 - Rotation X Player 1
  4052: 	KRZYBOWL_TRACKBALL(X,1)
  4053: 
  4054: 	PORT_START	// IN5 - Rotation Y Player 1
  4055: 	KRZYBOWL_TRACKBALL(Y,1)
  4056: 
  4057: 	PORT_START	// IN6 - Rotation X Player 2
  4058: 	KRZYBOWL_TRACKBALL(X|IPF_REVERSE,2)
  4059: 
  4060: 	PORT_START	// IN7 - Rotation Y Player 2
  4061: 	KRZYBOWL_TRACKBALL(Y,2)
  4062: INPUT_PORTS_END
  4063: 
  4064: 
  4065: /***************************************************************************
  4066: 								Mad Shark
  4067: ***************************************************************************/
  4068: 
  4069: INPUT_PORTS_START( madshark )
  4070: 	PORT_START	// IN0 - Player 1
  4071: 	JOY_TYPE1_2BUTTONS(1)
  4072: 
  4073: 	PORT_START	// IN1 - Player 2
  4074: 	JOY_TYPE1_2BUTTONS(2)
  4075: 
  4076: 	PORT_START	// IN2 - Coins
  4077: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  4078: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  4079: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  4080: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
  4081: 	/* These are NOT Dip Switches but jumpers */
  4082: 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) )
  4083: 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
  4084: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4085: 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) )
  4086: 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
  4087: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4088: 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )
  4089: 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  4090: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4091: 	PORT_DIPNAME( 0x0080, 0x0000, "Country" )
  4092: 	PORT_DIPSETTING(      0x0080, "Japan" )
  4093: 	PORT_DIPSETTING(      0x0000, "World" )
  4094: 
  4095: 	PORT_START	// IN3 - 2 DSWs
  4096: 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
  4097: 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
  4098: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4099: 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )
  4100: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  4101: 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
  4102: 	PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
  4103: 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
  4104: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4105: 	PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Bonus_Life ) )
  4106: 	PORT_DIPSETTING(      0x0018, "1000k" )
  4107: 	PORT_DIPSETTING(      0x0008, "1000k 2000k" )
  4108: 	PORT_DIPSETTING(      0x0010, "1500k 3000k" )
  4109: 	PORT_DIPSETTING(      0x0000, DEF_STR( No ) )
  4110: 	PORT_DIPNAME( 0x0060, 0x0060, DEF_STR( Difficulty ) )
  4111: 	PORT_DIPSETTING(      0x0040, "Easy" )
  4112: 	PORT_DIPSETTING(      0x0060, "Normal" )
  4113: 	PORT_DIPSETTING(      0x0020, "Hard" )
  4114: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  4115: 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
  4116: 
  4117: 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )
  4118: 	PORT_DIPSETTING(      0x0200, "2" )
  4119: 	PORT_DIPSETTING(      0x0300, "3" )
  4120: 	PORT_DIPSETTING(      0x0100, "4" )
  4121: 	PORT_DIPSETTING(      0x0000, "5" )
  4122: 	PORT_DIPNAME( 0x1c00, 0x1c00, DEF_STR( Coin_A ) )
  4123: 	PORT_DIPSETTING(      0x0400, DEF_STR( 4C_1C ) )
  4124: 	PORT_DIPSETTING(      0x0800, DEF_STR( 3C_1C ) )
  4125: 	PORT_DIPSETTING(      0x1000, DEF_STR( 2C_1C ) )
  4126: 	PORT_DIPSETTING(      0x1c00, DEF_STR( 1C_1C ) )
  4127: 	PORT_DIPSETTING(      0x0c00, DEF_STR( 2C_3C ) )
  4128: 	PORT_DIPSETTING(      0x1800, DEF_STR( 1C_2C ) )
  4129: 	PORT_DIPSETTING(      0x1400, DEF_STR( 1C_3C ) )
  4130: 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_4C ) )
  4131: 	PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coin_A ) )
  4132: 	PORT_DIPSETTING(      0x2000, DEF_STR( 4C_1C ) )
  4133: 	PORT_DIPSETTING(      0x4000, DEF_STR( 3C_1C ) )
  4134: 	PORT_DIPSETTING(      0x8000, DEF_STR( 2C_1C ) )
  4135: 	PORT_DIPSETTING(      0xe000, DEF_STR( 1C_1C ) )
  4136: 	PORT_DIPSETTING(      0x6000, DEF_STR( 2C_3C ) )
  4137: 	PORT_DIPSETTING(      0xc000, DEF_STR( 1C_2C ) )
  4138: 	PORT_DIPSETTING(      0xa000, DEF_STR( 1C_3C ) )
  4139: 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_4C ) )
  4140: INPUT_PORTS_END
  4141: 
  4142: 
  4143: /***************************************************************************
  4144: 								Meta Fox
  4145: ***************************************************************************/
  4146: 
  4147: INPUT_PORTS_START( metafox )
  4148: 	PORT_START	// IN0
  4149: 	JOY_TYPE2_2BUTTONS(1)
  4150: 
  4151: 	PORT_START	// IN1
  4152: 	JOY_TYPE2_2BUTTONS(2)
  4153: 
  4154: 	PORT_START	// IN2
  4155: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  4156: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  4157: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  4158: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  4159: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_TILT     )
  4160: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_SERVICE1 )
  4161: 	PORT_BIT_IMPULSE( 0x0040, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  4162: 	PORT_BIT_IMPULSE( 0x0080, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  4163: 
  4164: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  4165: 	PORT_DIPNAME( 0x4001, 0x4001, "Licensed To"    )
  4166: 	PORT_DIPSETTING(      0x0001, "Jordan"        )
  4167: 	PORT_DIPSETTING(      0x4001, "Romstar"       )
  4168: 	PORT_DIPSETTING(      0x4000, "Taito"         )
  4169: 	PORT_DIPSETTING(      0x0000, "Taito America" )
  4170: 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )
  4171: 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
  4172: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4173: 	PORT_SERVICE( 0x0004, IP_ACTIVE_LOW )
  4174: 	PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Demo_Sounds ) )
  4175: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  4176: 	PORT_DIPSETTING(      0x0008, DEF_STR( On ) )
  4177: 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
  4178: 	PORT_DIPSETTING(      0x0010, DEF_STR( 2C_1C ) )
  4179: 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_1C ) )
  4180: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
  4181: 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_2C ) )
  4182: 	PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
  4183: 	PORT_DIPSETTING(      0x0040, DEF_STR( 2C_1C ) )
  4184: 	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_1C ) )
  4185: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
  4186: 	PORT_DIPSETTING(      0x0080, DEF_STR( 1C_2C ) )
  4187: 
  4188: 	PORT_DIPNAME( 0x0300, 0x0100, DEF_STR( Difficulty ) )
  4189: 	PORT_DIPSETTING(      0x0300, "Normal"  )
  4190: 	PORT_DIPSETTING(      0x0200, "Easy"    )
  4191: 	PORT_DIPSETTING(      0x0100, "Hard"    )
  4192: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  4193: 	PORT_DIPNAME( 0x0400, 0x0400, "Unknown 2-2" )
  4194: 	PORT_DIPSETTING(      0x0400, DEF_STR( Off ) )
  4195: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4196: 	PORT_DIPNAME( 0x0800, 0x0800, "Unknown 2-3" )
  4197: 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
  4198: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4199: 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) )
  4200: 	PORT_DIPSETTING(      0x1000, "1" )
  4201: 	PORT_DIPSETTING(      0x0000, "2" )
  4202: 	PORT_DIPSETTING(      0x3000, "3" )
  4203: 	PORT_DIPSETTING(      0x2000, "5" )
  4204: //	PORT_DIPNAME( 0x4000, 0x4000, "License" )
  4205: 	PORT_DIPNAME( 0x8000, 0x8000, "Coinage Type" )	// not supported
  4206: 	PORT_DIPSETTING(      0x8000, "1" )
  4207: 	PORT_DIPSETTING(      0x0000, "2" )
  4208: INPUT_PORTS_END
  4209: 
  4210: 
  4211: 
  4212: /***************************************************************************
  4213: 							Mobile Suit Gundam
  4214: ***************************************************************************/
  4215: 
  4216: 
  4217: INPUT_PORTS_START( msgundam )
  4218: 	PORT_START	// IN0 - Player 1 - $400000.w
  4219: 	JOY_TYPE1_2BUTTONS(1)
  4220: 
  4221: 	PORT_START	// IN1 - Player 2 - $400002.w
  4222: 	JOY_TYPE1_2BUTTONS(2)
  4223: 
  4224: 	PORT_START	// IN2 - Coins - $400004.w
  4225: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  4226: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  4227: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  4228: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
  4229: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  4230: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  4231: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  4232: 	PORT_DIPNAME( 0x0080, 0x0080, "Language" )
  4233: 	PORT_DIPSETTING(      0x0080, "English" )
  4234: 	PORT_DIPSETTING(      0x0000, "Japanese" )
  4235: 
  4236: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  4237: 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
  4238: 	PORT_DIPSETTING(      0x0000, DEF_STR( 4C_1C ) )
  4239: 	PORT_DIPSETTING(      0x0001, DEF_STR( 3C_1C ) )
  4240: 	PORT_DIPSETTING(      0x0002, DEF_STR( 2C_1C ) )
  4241: 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
  4242: 	PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
  4243: 	PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
  4244: 	PORT_DIPSETTING(      0x0003, DEF_STR( 1C_4C ) )
  4245: 	PORT_DIPSETTING(      0x0004, DEF_STR( 1C_5C ) )
  4246: 	PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
  4247: 	PORT_DIPSETTING(      0x0000, DEF_STR( 4C_1C ) )
  4248: 	PORT_DIPSETTING(      0x0008, DEF_STR( 3C_1C ) )
  4249: 	PORT_DIPSETTING(      0x0010, DEF_STR( 2C_1C ) )
  4250: 	PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
  4251: 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_2C ) )
  4252: 	PORT_DIPSETTING(      0x0028, DEF_STR( 1C_3C ) )
  4253: 	PORT_DIPSETTING(      0x0018, DEF_STR( 1C_4C ) )
  4254: 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_5C ) )
  4255: 	PORT_DIPNAME( 0x0040, 0x0040, "Unknown 2-6" )
  4256: 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  4257: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4258: 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) )
  4259: 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
  4260: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4261: 
  4262: 	PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Demo_Sounds ) )
  4263: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  4264: 	PORT_DIPSETTING(      0x0100, DEF_STR( On ) )
  4265: 	PORT_DIPNAME( 0x0600, 0x0600, DEF_STR( Difficulty ) )	// unverified, from the manual
  4266: 	PORT_DIPSETTING(      0x0400, "Easy"    )
  4267: 	PORT_DIPSETTING(      0x0600, "Normal"  )
  4268: 	PORT_DIPSETTING(      0x0200, "Hard"    )
  4269: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  4270: 	PORT_DIPNAME( 0x0800, 0x0800, "Unknown 1-3" )
  4271: 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
  4272: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4273: 	PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Flip_Screen ) )
  4274: 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
  4275: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4276: 	PORT_DIPNAME( 0x2000, 0x2000, "Memory Check" )
  4277: 	PORT_DIPSETTING(      0x2000, DEF_STR( Off ) )
  4278: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4279: 	PORT_DIPNAME( 0x4000, 0x4000, "Unknown 1-6" )
  4280: 	PORT_DIPSETTING(      0x4000, DEF_STR( Off ) )
  4281: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4282: 	PORT_SERVICE( 0x8000, IP_ACTIVE_LOW )
  4283: INPUT_PORTS_END
  4284: 
  4285: INPUT_PORTS_START( msgunda1 )
  4286: 	PORT_START	// IN0 - Player 1 - $400000.w
  4287: 	JOY_TYPE1_2BUTTONS(1)
  4288: 
  4289: 	PORT_START	// IN1 - Player 2 - $400002.w
  4290: 	JOY_TYPE1_2BUTTONS(2)
  4291: 
  4292: 	PORT_START	// IN2 - Coins - $400004.w
  4293: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  4294: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  4295: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  4296: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
  4297: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  4298: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  4299: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  4300: 	/* this set seems to be a japan set, english mode doesn't work correctly */
  4301: 	PORT_DIPNAME( 0x0080, 0x0000, "Language" )
  4302: //	PORT_DIPSETTING(      0x0080, "English" )
  4303: 	PORT_DIPSETTING(      0x0000, "Japanese" )
  4304: 
  4305: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  4306: 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
  4307: 	PORT_DIPSETTING(      0x0000, DEF_STR( 4C_1C ) )
  4308: 	PORT_DIPSETTING(      0x0001, DEF_STR( 3C_1C ) )
  4309: 	PORT_DIPSETTING(      0x0002, DEF_STR( 2C_1C ) )
  4310: 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
  4311: 	PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
  4312: 	PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
  4313: 	PORT_DIPSETTING(      0x0003, DEF_STR( 1C_4C ) )
  4314: 	PORT_DIPSETTING(      0x0004, DEF_STR( 1C_5C ) )
  4315: 	PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
  4316: 	PORT_DIPSETTING(      0x0000, DEF_STR( 4C_1C ) )
  4317: 	PORT_DIPSETTING(      0x0008, DEF_STR( 3C_1C ) )
  4318: 	PORT_DIPSETTING(      0x0010, DEF_STR( 2C_1C ) )
  4319: 	PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
  4320: 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_2C ) )
  4321: 	PORT_DIPSETTING(      0x0028, DEF_STR( 1C_3C ) )
  4322: 	PORT_DIPSETTING(      0x0018, DEF_STR( 1C_4C ) )
  4323: 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_5C ) )
  4324: 	PORT_DIPNAME( 0x0040, 0x0040, "Unknown 2-6" )
  4325: 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  4326: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4327: 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) )
  4328: 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
  4329: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4330: 
  4331: 	PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Demo_Sounds ) )
  4332: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  4333: 	PORT_DIPSETTING(      0x0100, DEF_STR( On ) )
  4334: 	PORT_DIPNAME( 0x0600, 0x0600, DEF_STR( Difficulty ) )	// unverified, from the manual
  4335: 	PORT_DIPSETTING(      0x0400, "Easy"    )
  4336: 	PORT_DIPSETTING(      0x0600, "Normal"  )
  4337: 	PORT_DIPSETTING(      0x0200, "Hard"    )
  4338: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  4339: 	PORT_DIPNAME( 0x0800, 0x0800, "Unknown 1-3" )
  4340: 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
  4341: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4342: 	PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Flip_Screen ) )
  4343: 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
  4344: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4345: 	PORT_DIPNAME( 0x2000, 0x2000, "Memory Check" )
  4346: 	PORT_DIPSETTING(      0x2000, DEF_STR( Off ) )
  4347: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4348: 	PORT_DIPNAME( 0x4000, 0x4000, "Unknown 1-6" )
  4349: 	PORT_DIPSETTING(      0x4000, DEF_STR( Off ) )
  4350: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4351: 	PORT_SERVICE( 0x8000, IP_ACTIVE_LOW )
  4352: INPUT_PORTS_END
  4353: 
  4354: 
  4355: /***************************************************************************
  4356: 							Oishii Puzzle
  4357: ***************************************************************************/
  4358: 
  4359: INPUT_PORTS_START( oisipuzl )
  4360: 	PORT_START	// IN0 - Player 1
  4361: 	JOY_TYPE1_2BUTTONS(1)
  4362: 
  4363: 	PORT_START	// IN1 - Player 2
  4364: 	JOY_TYPE1_2BUTTONS(2)
  4365: 
  4366: 	PORT_START	// IN2 - Coins
  4367: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  4368: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  4369: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  4370: 	PORT_BITX( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
  4371: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4372: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4373: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4374: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4375: 
  4376: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  4377: 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )
  4378: 	PORT_DIPSETTING(      0x0002, "Easy" )
  4379: 	PORT_DIPSETTING(      0x0003, "Normal" )
  4380: 	PORT_DIPSETTING(      0x0001, "Hard" )
  4381: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  4382: 	PORT_DIPNAME( 0x0004, 0x0000, DEF_STR( Demo_Sounds ) )
  4383: 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
  4384: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4385: 	PORT_DIPNAME( 0x0008, 0x0008, "Unknown 1-3" )	// these seem unused
  4386: 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
  4387: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4388: 	PORT_DIPNAME( 0x0010, 0x0010, "Unknown 1-4" )
  4389: 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
  4390: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4391: 	PORT_DIPNAME( 0x0020, 0x0020, "Unknown 1-5" )
  4392: 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
  4393: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4394: 	PORT_DIPNAME( 0x0040, 0x0040, "Unknown 1-6" )
  4395: 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  4396: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4397: 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
  4398: 
  4399: 	PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) )
  4400: 	PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
  4401: 	PORT_DIPSETTING(      0x0100, DEF_STR( 4C_1C ) )
  4402: 	PORT_DIPSETTING(      0x0200, DEF_STR( 3C_1C ) )
  4403: 	PORT_DIPSETTING(      0x0300, DEF_STR( 2C_1C ) )
  4404: 	PORT_DIPSETTING(      0x0700, DEF_STR( 1C_1C ) )
  4405: 	PORT_DIPSETTING(      0x0600, DEF_STR( 1C_2C ) )
  4406: 	PORT_DIPSETTING(      0x0500, DEF_STR( 1C_3C ) )
  4407: 	PORT_DIPSETTING(      0x0400, DEF_STR( 1C_4C ) )
  4408: 	PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) )
  4409: 	PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
  4410: 	PORT_DIPSETTING(      0x0800, DEF_STR( 4C_1C ) )
  4411: 	PORT_DIPSETTING(      0x1000, DEF_STR( 3C_1C ) )
  4412: 	PORT_DIPSETTING(      0x1800, DEF_STR( 2C_1C ) )
  4413: 	PORT_DIPSETTING(      0x3800, DEF_STR( 1C_1C ) )
  4414: 	PORT_DIPSETTING(      0x3000, DEF_STR( 1C_2C ) )
  4415: 	PORT_DIPSETTING(      0x2800, DEF_STR( 1C_3C ) )
  4416: 	PORT_DIPSETTING(      0x2000, DEF_STR( 1C_4C ) )
  4417: 	PORT_DIPNAME( 0x8000, 0x8000, "Unknown 2-7" )		// this seems unused
  4418: 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
  4419: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4420: INPUT_PORTS_END
  4421: 
  4422: 
  4423: 
  4424: /***************************************************************************
  4425: 							Pro Mahjong Kiwame
  4426: ***************************************************************************/
  4427: 
  4428: INPUT_PORTS_START( kiwame )
  4429: 	PORT_START	// IN0 - Unused
  4430: 	PORT_START	// IN1 - Unused
  4431: 
  4432: 	PORT_START	// IN2 - Coins
  4433: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  4434: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  4435: 	PORT_BIT_IMPULSE( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1, 5 )
  4436: 
  4437: 	PORT_START	// IN3 - 2 DSWs - $e00001 & 3.b
  4438: 	PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
  4439: 	PORT_DIPSETTING(      0x0001, DEF_STR( 4C_1C ) )
  4440: 	PORT_DIPSETTING(      0x0002, DEF_STR( 3C_1C ) )
  4441: 	PORT_DIPSETTING(      0x0004, DEF_STR( 2C_1C ) )
  4442: 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
  4443: 	PORT_DIPSETTING(      0x0003, DEF_STR( 2C_3C ) )
  4444: 	PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
  4445: 	PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
  4446: 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
  4447: 	PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
  4448: 	PORT_DIPSETTING(      0x0008, DEF_STR( 4C_1C ) )
  4449: 	PORT_DIPSETTING(      0x0010, DEF_STR( 3C_1C ) )
  4450: 	PORT_DIPSETTING(      0x0020, DEF_STR( 2C_1C ) )
  4451: 	PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
  4452: 	PORT_DIPSETTING(      0x0018, DEF_STR( 2C_3C ) )
  4453: 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_2C ) )
  4454: 	PORT_DIPSETTING(      0x0028, DEF_STR( 1C_3C ) )
  4455: 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
  4456: 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) )
  4457: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  4458: 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
  4459: 	PORT_DIPNAME( 0x0080, 0x0080, "Player's TSUMO" )
  4460: 	PORT_DIPSETTING(      0x0080, "Manual" )
  4461: 	PORT_DIPSETTING(      0x0000, "Auto"   )
  4462: 
  4463: 	PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) )
  4464: 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
  4465: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4466: 	PORT_SERVICE( 0x0200, IP_ACTIVE_LOW )
  4467: 	PORT_DIPNAME( 0x1c00, 0x1c00, DEF_STR( Difficulty ) )
  4468: 	PORT_DIPSETTING(      0x1c00, "None" )
  4469: 	PORT_DIPSETTING(      0x1800, "Prelim  1" )
  4470: 	PORT_DIPSETTING(      0x1400, "Prelim  2" )
  4471: 	PORT_DIPSETTING(      0x1000, "Final   1" )
  4472: 	PORT_DIPSETTING(      0x0c00, "Final   2" )
  4473: 	PORT_DIPSETTING(      0x0800, "Final   3" )
  4474: 	PORT_DIPSETTING(      0x0400, "Qrt Final" )
  4475: 	PORT_DIPSETTING(      0x0000, "SemiFinal" )
  4476: 	PORT_DIPNAME( 0xe000, 0xe000, "Points Gap" )
  4477: 	PORT_DIPSETTING(      0xe000, "None" )
  4478: 	PORT_DIPSETTING(      0xc000, "+6000" )
  4479: 	PORT_DIPSETTING(      0xa000, "+4000" )
  4480: 	PORT_DIPSETTING(      0x8000, "+2000" )
  4481: 	PORT_DIPSETTING(      0x6000, "-2000" )
  4482: 	PORT_DIPSETTING(      0x4000, "-4000" )
  4483: 	PORT_DIPSETTING(      0x2000, "-6000" )
  4484: 	PORT_DIPSETTING(      0x0000, "-8000" )
  4485: 
  4486: /*
  4487: 		row 0	1	2	3	4
  4488: bit	0		a	b	c	d	lc
  4489: 	1		e	f	g	h
  4490: 	2		i	j	k	l
  4491: 	3		m	n	ch	po	ff
  4492: 	4		ka	re	ro
  4493: 	5		st	bt
  4494: */
  4495: 
  4496: 	PORT_START	// IN4
  4497: 	PORT_BITX(0x0001, IP_ACTIVE_LOW, 0, "P1 LC",  KEYCODE_RCONTROL, IP_JOY_NONE )
  4498: 	PORT_BIT (0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4499: 	PORT_BIT (0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4500: 	PORT_BITX(0x0008, IP_ACTIVE_LOW, 0, "P1 FF",  KEYCODE_RALT,     IP_JOY_NONE )
  4501: 	PORT_BIT (0xfff0, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4502: 
  4503: 	PORT_START	// IN5
  4504: 	PORT_BITX(0x0001, IP_ACTIVE_LOW, 0, "P1 B",     KEYCODE_B,      IP_JOY_NONE )
  4505: 	PORT_BITX(0x0002, IP_ACTIVE_LOW, 0, "P1 F",     KEYCODE_F,      IP_JOY_NONE )
  4506: 	PORT_BITX(0x0004, IP_ACTIVE_LOW, 0, "P1 J",     KEYCODE_J,      IP_JOY_NONE )
  4507: 	PORT_BITX(0x0008, IP_ACTIVE_LOW, 0, "P1 N",     KEYCODE_N,      IP_JOY_NONE )
  4508: 	PORT_BITX(0x0010, IP_ACTIVE_LOW, 0, "P1 Reach", KEYCODE_LSHIFT, IP_JOY_NONE )
  4509: 	PORT_BITX(0x0020, IP_ACTIVE_LOW, 0, "P1 BT",    KEYCODE_X,      IP_JOY_NONE )
  4510: 	PORT_BIT (0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4511: 
  4512: 	PORT_START	// IN6
  4513: 	PORT_BITX(0x0001, IP_ACTIVE_LOW, 0, "P1 A",   KEYCODE_A,        IP_JOY_NONE )
  4514: 	PORT_BITX(0x0002, IP_ACTIVE_LOW, 0, "P1 E",   KEYCODE_E,        IP_JOY_NONE )
  4515: 	PORT_BITX(0x0004, IP_ACTIVE_LOW, 0, "P1 I",   KEYCODE_I,        IP_JOY_NONE )
  4516: 	PORT_BITX(0x0008, IP_ACTIVE_LOW, 0, "P1 M",   KEYCODE_M,        IP_JOY_NONE )
  4517: 	PORT_BITX(0x0010, IP_ACTIVE_LOW, 0, "P1 Kan", KEYCODE_LCONTROL, IP_JOY_NONE )
  4518: 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START1  )
  4519: 	PORT_BIT (0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4520: 
  4521: 	PORT_START	// IN7
  4522: 	PORT_BITX(0x0001, IP_ACTIVE_LOW, 0, "P1 C",   KEYCODE_C,     IP_JOY_NONE )
  4523: 	PORT_BITX(0x0002, IP_ACTIVE_LOW, 0, "P1 G",   KEYCODE_G,     IP_JOY_NONE )
  4524: 	PORT_BITX(0x0004, IP_ACTIVE_LOW, 0, "P1 K",   KEYCODE_K,     IP_JOY_NONE )
  4525: 	PORT_BITX(0x0008, IP_ACTIVE_LOW, 0, "P1 Chi", KEYCODE_SPACE, IP_JOY_NONE )
  4526: 	PORT_BITX(0x0010, IP_ACTIVE_LOW, 0, "P1 Ron", KEYCODE_Z,     IP_JOY_NONE )
  4527: 	PORT_BIT (0xffe0, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4528: 
  4529: 	PORT_START	// IN8
  4530: 	PORT_BITX(0x0001, IP_ACTIVE_LOW, 0, "P1 D",   KEYCODE_D,    IP_JOY_NONE )
  4531: 	PORT_BITX(0x0002, IP_ACTIVE_LOW, 0, "P1 H",   KEYCODE_H,    IP_JOY_NONE )
  4532: 	PORT_BITX(0x0004, IP_ACTIVE_LOW, 0, "P1 L",   KEYCODE_L,    IP_JOY_NONE )
  4533: 	PORT_BITX(0x0008, IP_ACTIVE_LOW, 0, "P1 Pon", KEYCODE_LALT, IP_JOY_NONE )
  4534: 	PORT_BIT (0xfff0, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4535: INPUT_PORTS_END
  4536: 
  4537: 
  4538: 
  4539: /***************************************************************************
  4540: 								Quiz Kokology
  4541: ***************************************************************************/
  4542: 
  4543: INPUT_PORTS_START( qzkklogy )
  4544: 	PORT_START	// IN0 - Player 1 - $b00001.b
  4545: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
  4546: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER1 )
  4547: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
  4548: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
  4549: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )	// pause (cheat)
  4550: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4551: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4552: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START1  )
  4553: 
  4554: 	PORT_START	// IN1 - Player 2 - $b00003.b
  4555: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
  4556: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER2 )
  4557: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  4558: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  4559: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )	// pause (cheat)
  4560: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4561: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4562: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START2  )
  4563: 
  4564: 	PORT_START	// IN2 - Coins - $b00005.b
  4565: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  4566: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  4567: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  4568: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  4569: 
  4570: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  4571: 	PORT_DIPNAME( 0x0003, 0x0003, "Unknown 1-0&1*" )
  4572: 	PORT_DIPSETTING(      0x0000, "0" )
  4573: 	PORT_DIPSETTING(      0x0001, "1" )
  4574: 	PORT_DIPSETTING(      0x0002, "2" )
  4575: 	PORT_DIPSETTING(      0x0003, "3" )
  4576: 	PORT_BITX(    0x0004, 0x0004, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Highlight Right Answer", IP_KEY_NONE, IP_JOY_NONE )
  4577: 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
  4578: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4579: 	PORT_DIPNAME( 0x0008, 0x0008, "Unknown 1-3" )
  4580: 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
  4581: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4582: 	PORT_DIPNAME( 0x0010, 0x0010, "Unknown 1-4" )
  4583: 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
  4584: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4585: 	PORT_SERVICE( 0x0020, IP_ACTIVE_LOW )
  4586: 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) )
  4587: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  4588: 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
  4589: 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Flip_Screen ) )
  4590: 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
  4591: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4592: 
  4593: 	PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) )
  4594: 	PORT_DIPSETTING(      0x0400, DEF_STR( 4C_1C ) )
  4595: 	PORT_DIPSETTING(      0x0500, DEF_STR( 3C_1C ) )
  4596: 	PORT_DIPSETTING(      0x0600, DEF_STR( 2C_1C ) )
  4597: 	PORT_DIPSETTING(      0x0700, DEF_STR( 1C_1C ) )
  4598: 	PORT_DIPSETTING(      0x0100, DEF_STR( 2C_3C ) )
  4599: 	PORT_DIPSETTING(      0x0300, DEF_STR( 1C_2C ) )
  4600: 	PORT_DIPSETTING(      0x0200, DEF_STR( 1C_3C ) )
  4601: 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
  4602: 	PORT_DIPNAME( 0x0800, 0x0800, "Unknown 2-3" )
  4603: 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
  4604: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4605: 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Difficulty ) )
  4606: 	PORT_DIPSETTING(      0x2000, "Easy" )
  4607: 	PORT_DIPSETTING(      0x3000, "Normal" )
  4608: 	PORT_DIPSETTING(      0x1000, "Hard" )
  4609: 	PORT_DIPSETTING(      0x0000, "Very Hard" )
  4610: 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) )
  4611: 	PORT_DIPSETTING(      0x8000, "2" )
  4612: 	PORT_DIPSETTING(      0xc000, "3" )
  4613: 	PORT_DIPSETTING(      0x4000, "4" )
  4614: 	PORT_DIPSETTING(      0x0000, "5" )
  4615: INPUT_PORTS_END
  4616: 
  4617: 
  4618: 
  4619: /***************************************************************************
  4620: 								Quiz Kokology 2
  4621: ***************************************************************************/
  4622: 
  4623: INPUT_PORTS_START( qzkklgy2 )
  4624: 	PORT_START	// IN0 - Player 1 - $b00001.b
  4625: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
  4626: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER1 )
  4627: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
  4628: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
  4629: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4630: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4631: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4632: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START1  )
  4633: 
  4634: 	PORT_START	// IN1 - Player 2 - $b00003.b
  4635: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
  4636: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER2 )
  4637: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  4638: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  4639: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4640: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4641: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4642: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_START2  )
  4643: 
  4644: 	PORT_START	// IN2 - Coins - $b00005.b
  4645: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  4646: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  4647: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  4648: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  4649: 
  4650: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  4651: 	PORT_DIPNAME( 0x0003, 0x0003, "Unknown 1-0&1*" )
  4652: 	PORT_DIPSETTING(      0x0000, "0" )
  4653: 	PORT_DIPSETTING(      0x0001, "1" )
  4654: 	PORT_DIPSETTING(      0x0002, "2" )
  4655: 	PORT_DIPSETTING(      0x0003, "3" )
  4656: 	PORT_BITX(    0x0004, 0x0004, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Highlight Right Answer", IP_KEY_NONE, IP_JOY_NONE )
  4657: 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
  4658: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4659: 	PORT_DIPNAME( 0x0008, 0x0008, "Unknown 1-3" )
  4660: 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
  4661: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4662: 	PORT_DIPNAME( 0x0010, 0x0010, "Unknown 1-4" )
  4663: 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
  4664: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4665: 	PORT_SERVICE( 0x0020, IP_ACTIVE_LOW )
  4666: 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Demo_Sounds ) )
  4667: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  4668: 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
  4669: 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Flip_Screen ) )
  4670: 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
  4671: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4672: 
  4673: 	PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coinage ) )
  4674: 	PORT_DIPSETTING(      0x0400, DEF_STR( 4C_1C ) )
  4675: 	PORT_DIPSETTING(      0x0500, DEF_STR( 3C_1C ) )
  4676: 	PORT_DIPSETTING(      0x0600, DEF_STR( 2C_1C ) )
  4677: 	PORT_DIPSETTING(      0x0700, DEF_STR( 1C_1C ) )
  4678: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
  4679: 	PORT_DIPSETTING(      0x0300, DEF_STR( 1C_2C ) )
  4680: 	PORT_DIPSETTING(      0x0200, DEF_STR( 1C_3C ) )
  4681: 	PORT_DIPSETTING(      0x0100, DEF_STR( 1C_4C ) )
  4682: 	PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Free_Play ) )
  4683: 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
  4684: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4685: 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Difficulty ) )
  4686: 	PORT_DIPSETTING(      0x3000, "Easy" )
  4687: 	PORT_DIPSETTING(      0x2000, "Normal" )
  4688: 	PORT_DIPSETTING(      0x1000, "Hard" )
  4689: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  4690: 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) )
  4691: 	PORT_DIPSETTING(      0x8000, "2" )
  4692: 	PORT_DIPSETTING(      0xc000, "3" )
  4693: 	PORT_DIPSETTING(      0x4000, "4" )
  4694: 	PORT_DIPSETTING(      0x0000, "5" )
  4695: INPUT_PORTS_END
  4696: 
  4697: 
  4698: /***************************************************************************
  4699: 									Rezon
  4700: ***************************************************************************/
  4701: 
  4702: INPUT_PORTS_START( rezon )
  4703: 	PORT_START	// IN0 - Player 1
  4704: 	JOY_TYPE1_3BUTTONS(1)	// 1 used??
  4705: 
  4706: 	PORT_START	// IN1 - Player 2
  4707: 	JOY_TYPE1_3BUTTONS(2)	// 1 used ??
  4708: 
  4709: 	PORT_START	// IN2 - Coins
  4710: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  4711: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  4712: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  4713: 	PORT_BITX( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
  4714: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4715: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4716: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4717: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4718: 
  4719: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  4720: 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
  4721: 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
  4722: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4723: 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )
  4724: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  4725: 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
  4726: 	PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) )
  4727: 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
  4728: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4729: 	PORT_DIPNAME( 0x0018, 0x0018, DEF_STR( Cabinet ) )
  4730: 	PORT_DIPSETTING(      0x0000, "Upright 1 Controller" )
  4731: 	PORT_DIPSETTING(      0x0018, "Upright 2 Controllers" )
  4732: 	PORT_DIPSETTING(      0x0008, DEF_STR( Cocktail ) )
  4733: //	PORT_DIPSETTING(      0x0010, "10" )				/* Unused / Not Defined */
  4734: 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) )
  4735: 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
  4736: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4737: 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )
  4738: 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  4739: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4740: 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
  4741: 
  4742: 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )
  4743: 	PORT_DIPSETTING(      0x0200, "2" )
  4744: 	PORT_DIPSETTING(      0x0300, "3" )
  4745: 	PORT_DIPSETTING(      0x0100, "4" )
  4746: 	PORT_DIPSETTING(      0x0000, "5" )
  4747: 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
  4748: 	PORT_DIPSETTING(      0x0800, "Easy" )
  4749: 	PORT_DIPSETTING(      0x0c00, "Normal" )
  4750: 	PORT_DIPSETTING(      0x0400, "Hard" )
  4751: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  4752: 	PORT_DIPNAME( 0xf000, 0xf000, DEF_STR( Coinage ) )
  4753: 	PORT_DIPSETTING(      0xa000, DEF_STR( 6C_1C ) )
  4754: 	PORT_DIPSETTING(      0xb000, DEF_STR( 5C_1C ) )
  4755: 	PORT_DIPSETTING(      0xc000, DEF_STR( 4C_1C ) )
  4756: 	PORT_DIPSETTING(      0xd000, DEF_STR( 3C_1C ) )
  4757: 	PORT_DIPSETTING(      0x1000, DEF_STR( 8C_3C ) )
  4758: 	PORT_DIPSETTING(      0xe000, DEF_STR( 2C_1C ) )
  4759: 	PORT_DIPSETTING(      0x2000, DEF_STR( 5C_3C ) )
  4760: 	PORT_DIPSETTING(      0x3000, DEF_STR( 3C_2C ) )
  4761: 	PORT_DIPSETTING(      0xf000, DEF_STR( 1C_1C ) )
  4762: 	PORT_DIPSETTING(      0x4000, DEF_STR( 2C_3C ) )
  4763: 	PORT_DIPSETTING(      0x9000, DEF_STR( 1C_2C ) )
  4764: 	PORT_DIPSETTING(      0x8000, DEF_STR( 1C_3C ) )
  4765: 	PORT_DIPSETTING(      0x7000, DEF_STR( 1C_4C ) )
  4766: 	PORT_DIPSETTING(      0x6000, DEF_STR( 1C_5C ) )
  4767: 	PORT_DIPSETTING(      0x5000, DEF_STR( 1C_6C ) )
  4768: 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
  4769: INPUT_PORTS_END
  4770: 
  4771: 
  4772: /***************************************************************************
  4773: 							SD Gundam Neo Battling
  4774: ***************************************************************************/
  4775: 
  4776: /*
  4777: 	When the "Stage Select" dip switch is on and button1 is pressed during boot,
  4778: 	pressing P1's button3 freezes the game (pressing P2's button3 resumes it).
  4779: */
  4780: INPUT_PORTS_START( neobattl )
  4781: 	PORT_START	// IN0 - Player 1 - $400000.w
  4782: 	JOY_TYPE1_1BUTTON(1)	// bump to 3 buttons for freezing to work
  4783: 
  4784: 	PORT_START	// IN1 - Player 2 - $400002.w
  4785: 	JOY_TYPE1_1BUTTON(2)	// bump to 3 buttons for freezing to work
  4786: 
  4787: 	PORT_START	// IN2 - Coins - $400004.w
  4788: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  4789: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  4790: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  4791: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
  4792: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  4793: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  4794: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  4795: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  4796: 
  4797: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  4798: 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
  4799: 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
  4800: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4801: 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )
  4802: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  4803: 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
  4804: 	PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )	// used
  4805: 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
  4806: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4807: 	PORT_BITX(    0x0008, 0x0008, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stage Select", IP_KEY_NONE, IP_JOY_NONE )
  4808: 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
  4809: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4810: 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )	// unused?
  4811: 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
  4812: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4813: 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )	// unused?
  4814: 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
  4815: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4816: 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )	// unused?
  4817: 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  4818: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4819: 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
  4820: 
  4821: 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )
  4822: 	PORT_DIPSETTING(      0x0200, "1" )
  4823: 	PORT_DIPSETTING(      0x0300, "2" )
  4824: 	PORT_DIPSETTING(      0x0100, "3" )
  4825: 	PORT_DIPSETTING(      0x0000, "4" )
  4826: 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
  4827: 	PORT_DIPSETTING(      0x0800, "Easy"    )
  4828: 	PORT_DIPSETTING(      0x0c00, "Normal"  )
  4829: 	PORT_DIPSETTING(      0x0400, "Hard"    )
  4830: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  4831: 	PORT_DIPNAME( 0xf000, 0xf000, DEF_STR( Coinage ) )
  4832: 	PORT_DIPSETTING(      0xa000, DEF_STR( 6C_1C ) )
  4833: 	PORT_DIPSETTING(      0xb000, DEF_STR( 5C_1C ) )
  4834: 	PORT_DIPSETTING(      0xc000, DEF_STR( 4C_1C ) )
  4835: 	PORT_DIPSETTING(      0xd000, DEF_STR( 3C_1C ) )
  4836: 	PORT_DIPSETTING(      0x1000, DEF_STR( 8C_3C ) )
  4837: 	PORT_DIPSETTING(      0xe000, DEF_STR( 2C_1C ) )
  4838: 	PORT_DIPSETTING(      0x2000, DEF_STR( 5C_3C ) )
  4839: 	PORT_DIPSETTING(      0x3000, DEF_STR( 3C_2C ) )
  4840: 	PORT_DIPSETTING(      0xf000, DEF_STR( 1C_1C ) )
  4841: 	PORT_DIPSETTING(      0x4000, DEF_STR( 2C_3C ) )
  4842: 	PORT_DIPSETTING(      0x9000, DEF_STR( 1C_2C ) )
  4843: 	PORT_DIPSETTING(      0x8000, DEF_STR( 1C_3C ) )
  4844: 	PORT_DIPSETTING(      0x7000, DEF_STR( 1C_4C ) )
  4845: 	PORT_DIPSETTING(      0x6000, DEF_STR( 1C_5C ) )
  4846: 	PORT_DIPSETTING(      0x5000, DEF_STR( 1C_6C ) )
  4847: 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
  4848: INPUT_PORTS_END
  4849: 
  4850: 
  4851: 
  4852: /***************************************************************************
  4853: 								Sokonuke
  4854: ***************************************************************************/
  4855: 
  4856: INPUT_PORTS_START( sokonuke )
  4857: 	PORT_START	// IN0 - Player 1
  4858: 	JOY_TYPE1_1BUTTON(1)
  4859: 
  4860: 	PORT_START	// IN1 - Player 2
  4861: 	JOY_TYPE1_1BUTTON(2)
  4862: 
  4863: 	PORT_START	// IN2 - Coins
  4864: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  4865: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  4866: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  4867: 	PORT_BITX( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
  4868: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4869: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4870: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4871: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
  4872: 
  4873: 	PORT_START	// IN3 - 2 DSWs - $400009 & b.b
  4874: 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
  4875: 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
  4876: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4877: 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )
  4878: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  4879: 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
  4880: 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Difficulty ) )
  4881: 	PORT_DIPSETTING(      0x0008, "Easy" )
  4882: 	PORT_DIPSETTING(      0x000c, "Normal" )
  4883: 	PORT_DIPSETTING(      0x0004, "Hard" )
  4884: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  4885: 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Free_Play ) )
  4886: 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
  4887: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4888: 	PORT_DIPNAME( 0x0020, 0x0020, "Unknown 1-5*" )
  4889: 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
  4890: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4891: 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )	// unused?
  4892: 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  4893: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4894: 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
  4895: 
  4896: 	PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) )
  4897: 	PORT_DIPSETTING(      0x0500, DEF_STR( 3C_1C ) )
  4898: 	PORT_DIPSETTING(      0x0600, DEF_STR( 2C_1C ) )
  4899: 	PORT_DIPSETTING(      0x0700, DEF_STR( 1C_1C ) )
  4900: 	PORT_DIPSETTING(      0x0400, DEF_STR( 1C_2C ) )
  4901: 	PORT_DIPSETTING(      0x0300, DEF_STR( 1C_3C ) )
  4902: 	PORT_DIPSETTING(      0x0200, DEF_STR( 1C_4C ) )
  4903: 	PORT_DIPSETTING(      0x0100, DEF_STR( 1C_5C ) )
  4904: 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
  4905: 	PORT_DIPNAME( 0x3800, 0x3800, DEF_STR( Coin_B ) )
  4906: 	PORT_DIPSETTING(      0x2800, DEF_STR( 3C_1C ) )
  4907: 	PORT_DIPSETTING(      0x3000, DEF_STR( 2C_1C ) )
  4908: 	PORT_DIPSETTING(      0x3800, DEF_STR( 1C_1C ) )
  4909: 	PORT_DIPSETTING(      0x2000, DEF_STR( 1C_2C ) )
  4910: 	PORT_DIPSETTING(      0x1800, DEF_STR( 1C_3C ) )
  4911: 	PORT_DIPSETTING(      0x1000, DEF_STR( 1C_4C ) )
  4912: 	PORT_DIPSETTING(      0x0800, DEF_STR( 1C_5C ) )
  4913: 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
  4914: 	PORT_DIPNAME( 0x4000, 0x4000, "Cheap Continue" )
  4915: 	PORT_DIPSETTING(      0x4000, DEF_STR( No ) )
  4916: 	PORT_DIPSETTING(      0x0000, DEF_STR( Yes ) )
  4917: 	PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )	// unused?
  4918: 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
  4919: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4920: INPUT_PORTS_END
  4921: 
  4922: 
  4923: 
  4924: /***************************************************************************
  4925: 								Strike Gunner
  4926: ***************************************************************************/
  4927: 
  4928: INPUT_PORTS_START( stg )
  4929: 	PORT_START	// IN0 - Player 1 - $b00001.b
  4930: 	JOY_TYPE1_2BUTTONS(1)
  4931: 
  4932: 	PORT_START	// IN1 - Player 2 - $b00003.b
  4933: 	JOY_TYPE1_2BUTTONS(2)
  4934: 
  4935: 	PORT_START	// IN2 - Coins - $b00005.b
  4936: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  4937: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  4938: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  4939: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  4940: //	PORT_DIPNAME( 0x00f0, 0x00f0, "Title" )
  4941: 	/* This is the index in a table with pointers to the
  4942: 	   title logo, but the table is filled with just 1 value */
  4943: 
  4944: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  4945: 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )
  4946: 	PORT_DIPSETTING(      0x0002, "Easy"    ) // 0
  4947: 	PORT_DIPSETTING(      0x0003, "Normal"  ) // 4
  4948: 	PORT_DIPSETTING(      0x0001, "Hard"    ) // 8
  4949: 	PORT_DIPSETTING(      0x0000, "Hardest" ) // b
  4950: 	PORT_DIPNAME( 0x0004, 0x0004, "Unknown 1-2" )
  4951: 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
  4952: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4953: 	PORT_DIPNAME( 0x0008, 0x0008, "Unknown 1-3" )
  4954: 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
  4955: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4956: 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )
  4957: 	PORT_DIPSETTING(      0x0010, "1" )
  4958: 	PORT_DIPSETTING(      0x0000, "2" )
  4959: 	PORT_DIPSETTING(      0x0030, "3" )
  4960: 	PORT_DIPSETTING(      0x0020, "5" )
  4961: 	PORT_DIPNAME( 0x0040, 0x0040, "Unknown 1-6" )
  4962: 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  4963: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4964: 	PORT_DIPNAME( 0x0080, 0x0080, "Unknown 1-7" )
  4965: 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
  4966: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4967: 
  4968: 	PORT_DIPNAME( 0x0100, 0x0100, "Unknown 2-0" )
  4969: 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
  4970: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4971: 	PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) )
  4972: 	PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
  4973: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4974: 	PORT_SERVICE( 0x0400, IP_ACTIVE_LOW )
  4975: 	PORT_DIPNAME( 0x0800, 0x0800, "Unknown 2-3" )
  4976: 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
  4977: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4978: 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Coin_A ) )
  4979: 	PORT_DIPSETTING(      0x1000, DEF_STR( 2C_1C ) )
  4980: 	PORT_DIPSETTING(      0x3000, DEF_STR( 1C_1C ) )
  4981: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
  4982: 	PORT_DIPSETTING(      0x2000, DEF_STR( 1C_2C ) )
  4983: 	PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Demo_Sounds ) )
  4984: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  4985: 	PORT_DIPSETTING(      0x4000, DEF_STR( On ) )
  4986: 	PORT_DIPNAME( 0x8000, 0x8000, "Unknown 2-7" )
  4987: 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
  4988: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  4989: INPUT_PORTS_END
  4990: 
  4991: 
  4992: 
  4993: /***************************************************************************
  4994: 							Thunder & Lightning
  4995: ***************************************************************************/
  4996: 
  4997: INPUT_PORTS_START( thunderl )
  4998: 	PORT_START	// IN0 - Player 1
  4999: 	JOY_TYPE1_2BUTTONS(1)	// button2 = speed up
  5000: 
  5001: 	PORT_START	// IN1 - Player 2
  5002: 	JOY_TYPE1_2BUTTONS(2)
  5003: 
  5004: 	PORT_START	// IN2 - Coins + DSW
  5005: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  5006: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  5007: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  5008: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
  5009: 	PORT_DIPNAME( 0x0010, 0x0000, "Force 1 Life" )
  5010: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  5011: 	PORT_DIPSETTING(      0x0010, DEF_STR( On ) )
  5012: 	PORT_DIPNAME( 0x00e0, 0x00e0, "Copyright" )
  5013: 	PORT_DIPSETTING(      0x0080, "Romstar" )
  5014: 	PORT_DIPSETTING(      0x00c0, "Seta (Romstar License)" )
  5015: 	PORT_DIPSETTING(      0x00e0, "Seta (Visco License)" )
  5016: 	PORT_DIPSETTING(      0x00a0, "Visco" )
  5017: 	PORT_DIPSETTING(      0x0060, "None" )
  5018: //	PORT_DIPSETTING(      0x0040, "None" )
  5019: //	PORT_DIPSETTING(      0x0020, "None" )
  5020: //	PORT_DIPSETTING(      0x0000, "None" )
  5021: 
  5022: 	PORT_START	// IN3 - 2 DSWs - $600003 & 1.b
  5023: 	PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_A ) )
  5024: 	PORT_DIPSETTING(      0x000c, DEF_STR( 4C_1C ) )
  5025: 	PORT_DIPSETTING(      0x000d, DEF_STR( 3C_1C ) )
  5026: 	PORT_DIPSETTING(      0x0008, DEF_STR( 4C_2C ) )
  5027: 	PORT_DIPSETTING(      0x000e, DEF_STR( 2C_1C ) )
  5028: 	PORT_DIPSETTING(      0x0009, DEF_STR( 3C_2C ) )
  5029: 	PORT_DIPSETTING(      0x0004, DEF_STR( 4C_3C ) )
  5030: 	PORT_DIPSETTING(      0x0000, DEF_STR( 4C_4C ) )
  5031: 	PORT_DIPSETTING(      0x0005, DEF_STR( 3C_3C ) )
  5032: 	PORT_DIPSETTING(      0x000a, DEF_STR( 2C_2C ) )
  5033: 	PORT_DIPSETTING(      0x000f, DEF_STR( 1C_1C ) )
  5034: 	PORT_DIPSETTING(      0x0001, DEF_STR( 3C_4C ) )
  5035: 	PORT_DIPSETTING(      0x0006, DEF_STR( 2C_3C ) )
  5036: 	PORT_DIPSETTING(      0x0002, DEF_STR( 2C_4C ) )
  5037: 	PORT_DIPSETTING(      0x000b, DEF_STR( 1C_2C ) )
  5038: 	PORT_DIPSETTING(      0x0007, DEF_STR( 1C_3C ) )
  5039: 	PORT_DIPSETTING(      0x0003, DEF_STR( 1C_4C ) )
  5040: 	PORT_DIPNAME( 0x00f0, 0x00f0, DEF_STR( Coin_B ) )
  5041: 	PORT_DIPSETTING(      0x00c0, DEF_STR( 4C_1C ) )
  5042: 	PORT_DIPSETTING(      0x00d0, DEF_STR( 3C_1C ) )
  5043: 	PORT_DIPSETTING(      0x0080, DEF_STR( 4C_2C ) )
  5044: 	PORT_DIPSETTING(      0x00e0, DEF_STR( 2C_1C ) )
  5045: 	PORT_DIPSETTING(      0x0090, DEF_STR( 3C_2C ) )
  5046: 	PORT_DIPSETTING(      0x0040, DEF_STR( 4C_3C ) )
  5047: 	PORT_DIPSETTING(      0x0000, DEF_STR( 4C_4C ) )
  5048: 	PORT_DIPSETTING(      0x0050, DEF_STR( 3C_3C ) )
  5049: 	PORT_DIPSETTING(      0x00a0, DEF_STR( 2C_2C ) )
  5050: 	PORT_DIPSETTING(      0x00f0, DEF_STR( 1C_1C ) )
  5051: 	PORT_DIPSETTING(      0x0010, DEF_STR( 3C_4C ) )
  5052: 	PORT_DIPSETTING(      0x0060, DEF_STR( 2C_3C ) )
  5053: 	PORT_DIPSETTING(      0x0020, DEF_STR( 2C_4C ) )
  5054: 	PORT_DIPSETTING(      0x00b0, DEF_STR( 1C_2C ) )
  5055: 	PORT_DIPSETTING(      0x0070, DEF_STR( 1C_3C ) )
  5056: 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_4C ) )
  5057: 
  5058: 	PORT_SERVICE( 0x0100, IP_ACTIVE_LOW )
  5059: 	PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Flip_Screen ) )
  5060: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )		// WEIRD!
  5061: 	PORT_DIPSETTING(      0x0200, DEF_STR( On ) )
  5062: 	PORT_DIPNAME( 0x0400, 0x0000, DEF_STR( Cabinet ) )
  5063: 	PORT_DIPSETTING(      0x0000, DEF_STR( Upright ) )
  5064: 	PORT_DIPSETTING(      0x0400, DEF_STR( Cocktail ) )
  5065: 	PORT_DIPNAME( 0x0800, 0x0800, "Controls" )
  5066: 	PORT_DIPSETTING(      0x0800, "2" )
  5067: 	PORT_DIPSETTING(      0x0000, "1" )
  5068: 	PORT_DIPNAME( 0x1000, 0x0000, DEF_STR( Demo_Sounds ) )
  5069: 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
  5070: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5071: 	PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Lives ) )
  5072: 	PORT_DIPSETTING(      0x2000, "3" )
  5073: 	PORT_DIPSETTING(      0x0000, "2" )
  5074: 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Difficulty ) )
  5075: 	PORT_DIPSETTING(      0x8000, "Easy" )
  5076: 	PORT_DIPSETTING(      0xc000, "Normal" )
  5077: 	PORT_DIPSETTING(      0x4000, "Hard" )
  5078: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  5079: INPUT_PORTS_END
  5080: 
  5081: 
  5082: 
  5083: /***************************************************************************
  5084: 								Thundercade (US)
  5085: ***************************************************************************/
  5086: 
  5087: INPUT_PORTS_START( tndrcade )
  5088: 	PORT_START	// IN0 - Player 1
  5089: 	JOY_TYPE1_2BUTTONS(1)
  5090: 
  5091: 	PORT_START	// IN1 - Player 2
  5092: 	JOY_TYPE1_2BUTTONS(2)
  5093: 
  5094: 	PORT_START	// IN2 - Coins
  5095: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  5096: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  5097: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_START1   )
  5098: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_START2   )
  5099: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_SERVICE1 )
  5100: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_TILT     )
  5101: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  5102: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  5103: 
  5104: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  5105: 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )
  5106: 	PORT_DIPSETTING(      0x0002, "Easy"    )
  5107: 	PORT_DIPSETTING(      0x0003, "Normal"  )
  5108: 	PORT_DIPSETTING(      0x0001, "Hard"    )
  5109: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  5110: 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Bonus_Life ) )
  5111: 	PORT_DIPSETTING(      0x000c, "50K  Only" )
  5112: 	PORT_DIPSETTING(      0x0004, "50K, Every 150K" )
  5113: 	PORT_DIPSETTING(      0x0004, "70K, Every 200K" )
  5114: 	PORT_DIPSETTING(      0x0008, "100K Only" )
  5115: 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )
  5116: 	PORT_DIPSETTING(      0x0010, "1" )
  5117: 	PORT_DIPSETTING(      0x0000, "2" )
  5118: 	PORT_DIPSETTING(      0x0030, "3" )
  5119: 	PORT_DIPSETTING(      0x0020, "5" )
  5120: 	PORT_DIPNAME( 0x0040, 0x0040, "Allow Continue" )
  5121: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  5122: 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
  5123: 	PORT_DIPNAME( 0x0080, 0x0000, "Licensed To" )	// + coin mode (not supported)
  5124: 	PORT_DIPSETTING(      0x0080, "Taito America Corp." )
  5125: 	PORT_DIPSETTING(      0x0000, "Taito Corp. Japan" )
  5126: 
  5127: 	PORT_DIPNAME( 0x0100, 0x0100, "Title" )
  5128: 	PORT_DIPSETTING(      0x0100, "Thundercade" )
  5129: 	PORT_DIPSETTING(      0x0000, "Twin Formation" )
  5130: 	PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) )
  5131: 	PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
  5132: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5133: 	PORT_SERVICE( 0x0400, IP_ACTIVE_LOW )
  5134: 	PORT_DIPNAME( 0x0800, 0x0000, DEF_STR( Demo_Sounds ) )
  5135: 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
  5136: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5137: 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Coin_A ) )
  5138: 	PORT_DIPSETTING(      0x1000, DEF_STR( 2C_1C ) )
  5139: 	PORT_DIPSETTING(      0x3000, DEF_STR( 1C_1C ) )
  5140: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
  5141: 	PORT_DIPSETTING(      0x2000, DEF_STR( 1C_2C ) )
  5142: 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Coin_B ) )
  5143: 	PORT_DIPSETTING(      0x4000, DEF_STR( 2C_1C ) )
  5144: 	PORT_DIPSETTING(      0xc000, DEF_STR( 1C_1C ) )
  5145: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
  5146: 	PORT_DIPSETTING(      0x8000, DEF_STR( 1C_2C ) )
  5147: INPUT_PORTS_END
  5148: 
  5149: 
  5150: /***************************************************************************
  5151: 								Thundercade (Japan)
  5152: ***************************************************************************/
  5153: 
  5154: INPUT_PORTS_START( tndrcadj )
  5155: 	PORT_START	// IN0 - Player 1
  5156: 	JOY_TYPE1_2BUTTONS(1)
  5157: 
  5158: 	PORT_START	// IN1 - Player 2
  5159: 	JOY_TYPE1_2BUTTONS(2)
  5160: 
  5161: 	PORT_START	// IN2 - Coins
  5162: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  5163: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  5164: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_START1   )
  5165: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_START2   )
  5166: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_SERVICE1 )
  5167: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_TILT     )
  5168: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  5169: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  5170: 
  5171: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  5172: 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )
  5173: 	PORT_DIPSETTING(      0x0002, "Easy"    )
  5174: 	PORT_DIPSETTING(      0x0003, "Normal"  )
  5175: 	PORT_DIPSETTING(      0x0001, "Hard"    )
  5176: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  5177: 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Bonus_Life ) )
  5178: 	PORT_DIPSETTING(      0x000c, "50K  Only" )
  5179: 	PORT_DIPSETTING(      0x0004, "50K, Every 150K" )
  5180: 	PORT_DIPSETTING(      0x0004, "70K, Every 200K" )
  5181: 	PORT_DIPSETTING(      0x0008, "100K Only" )
  5182: 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )
  5183: 	PORT_DIPSETTING(      0x0010, "1" )
  5184: 	PORT_DIPSETTING(      0x0000, "2" )
  5185: 	PORT_DIPSETTING(      0x0030, "3" )
  5186: 	PORT_DIPSETTING(      0x0020, "5" )
  5187: 	PORT_DIPNAME( 0x0040, 0x0040, "Allow Continue" )
  5188: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  5189: 	PORT_DIPSETTING(      0x0040, DEF_STR( On ) )
  5190: 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Free_Play ) )
  5191: 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
  5192: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5193: 
  5194: 	PORT_BITX(    0x0100, 0x0100, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  5195: 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
  5196: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5197: 	PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) )
  5198: 	PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
  5199: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5200: 	PORT_SERVICE( 0x0400, IP_ACTIVE_LOW )
  5201: 	PORT_DIPNAME( 0x0800, 0x0000, DEF_STR( Demo_Sounds ) )
  5202: 	PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
  5203: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5204: 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Coin_A ) )
  5205: 	PORT_DIPSETTING(      0x1000, DEF_STR( 2C_1C ) )
  5206: 	PORT_DIPSETTING(      0x3000, DEF_STR( 1C_1C ) )
  5207: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
  5208: 	PORT_DIPSETTING(      0x2000, DEF_STR( 1C_2C ) )
  5209: 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Coin_B ) )
  5210: 	PORT_DIPSETTING(      0x4000, DEF_STR( 2C_1C ) )
  5211: 	PORT_DIPSETTING(      0xc000, DEF_STR( 1C_1C ) )
  5212: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
  5213: 	PORT_DIPSETTING(      0x8000, DEF_STR( 1C_2C ) )
  5214: INPUT_PORTS_END
  5215: 
  5216: 
  5217: 
  5218: /***************************************************************************
  5219: 								Twin Eagle
  5220: ***************************************************************************/
  5221: 
  5222: INPUT_PORTS_START( twineagl )
  5223: 	PORT_START	// IN0 - Player 1
  5224: 	JOY_TYPE1_2BUTTONS(1)
  5225: 
  5226: 	PORT_START	// IN1 - Player 2
  5227: 	JOY_TYPE1_2BUTTONS(2)
  5228: 
  5229: 	PORT_START	// IN2 - Coins
  5230: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  5231: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  5232: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_START1   )
  5233: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_START2   )
  5234: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_SERVICE1 )
  5235: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_TILT     )
  5236: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  5237: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  5238: 
  5239: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  5240: 	PORT_DIPNAME( 0x4001, 0x4001, "Copyright" )		// Always "Seta" if sim. players = 1
  5241: 	PORT_DIPSETTING(      0x4001, "Seta (Taito license)" )
  5242: 	PORT_DIPSETTING(      0x0001, "Taito" )
  5243: 	PORT_DIPSETTING(      0x4000, "Taito America" )
  5244: 	PORT_DIPSETTING(      0x0000, "Taito America (Romstar license)" )
  5245: 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )
  5246: 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
  5247: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5248: 	PORT_SERVICE( 0x0004, IP_ACTIVE_LOW )
  5249: 	PORT_DIPNAME( 0x0008, 0x0000, DEF_STR( Cabinet ) )	// Only if simultaneous players = 1
  5250: 	PORT_DIPSETTING(      0x0000, DEF_STR( Upright ) )
  5251: 	PORT_DIPSETTING(      0x0008, DEF_STR( Cocktail ) )
  5252: 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
  5253: 	PORT_DIPSETTING(      0x0010, DEF_STR( 2C_1C ) )
  5254: 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_1C ) )
  5255: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
  5256: 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_2C ) )
  5257: 	PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
  5258: 	PORT_DIPSETTING(      0x0040, DEF_STR( 2C_1C ) )
  5259: 	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_1C ) )
  5260: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
  5261: 	PORT_DIPSETTING(      0x0080, DEF_STR( 1C_2C ) )
  5262: 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Difficulty ) )
  5263: 	PORT_DIPSETTING(      0x0300, "Normal"  )
  5264: 	PORT_DIPSETTING(      0x0200, "Easy"    )
  5265: 	PORT_DIPSETTING(      0x0100, "Hard"    )
  5266: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  5267: 	PORT_DIPNAME( 0x0c00, 0x0000, DEF_STR( Bonus_Life ) )
  5268: 	PORT_DIPSETTING(      0x0c00, "Never" )
  5269: 	PORT_DIPSETTING(      0x0800, "500K Only" )
  5270: 	PORT_DIPSETTING(      0x0400, "1000K Only" )
  5271: 	PORT_DIPSETTING(      0x0000, "500K, Every 1500K" )
  5272: 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) )
  5273: 	PORT_DIPSETTING(      0x1000, "1" )
  5274: 	PORT_DIPSETTING(      0x0000, "2" )
  5275: 	PORT_DIPSETTING(      0x3000, "3" )
  5276: 	PORT_DIPSETTING(      0x2000, "5" )
  5277: 	PORT_DIPNAME( 0x8000, 0x8000, "Coinage Type" )	// not supported
  5278: 	PORT_DIPSETTING(      0x8000, "1" )
  5279: 	PORT_DIPSETTING(      0x0000, "2" )
  5280: INPUT_PORTS_END
  5281: 
  5282: 
  5283: 
  5284: /***************************************************************************
  5285: 								Ultraman Club
  5286: ***************************************************************************/
  5287: 
  5288: INPUT_PORTS_START( umanclub )
  5289: 	PORT_START	// IN0 - Player 1
  5290: 	JOY_TYPE1_2BUTTONS(1)
  5291: 
  5292: 	PORT_START	// IN1 - Player 2
  5293: 	JOY_TYPE1_2BUTTONS(2)
  5294: 
  5295: 	PORT_START	// IN2 - Coins
  5296: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  5297: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  5298: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  5299: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
  5300: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  5301: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  5302: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  5303: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  5304: 
  5305: 	PORT_START	// IN3 - 2 DSWs
  5306: 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
  5307: 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
  5308: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5309: 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )
  5310: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  5311: 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
  5312: 	PORT_DIPNAME( 0x0004, 0x0004, "Unknown 2-2*" )	//?
  5313: 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
  5314: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5315: 	PORT_BITX(    0x0008, 0x0008, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stage Select", IP_KEY_NONE, IP_JOY_NONE )
  5316: 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
  5317: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5318: 	PORT_DIPNAME( 0x0010, 0x0010, "Unknown 2-4" )
  5319: 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
  5320: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5321: 	PORT_DIPNAME( 0x0020, 0x0020, "Unknown 2-5" )
  5322: 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
  5323: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5324: 	PORT_DIPNAME( 0x0040, 0x0040, "Unknown 2-6" )
  5325: 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  5326: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5327: 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
  5328: 
  5329: 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )
  5330: 	PORT_DIPSETTING(      0x0200, "1" )
  5331: 	PORT_DIPSETTING(      0x0300, "2" )
  5332: 	PORT_DIPSETTING(      0x0100, "3" )
  5333: 	PORT_DIPSETTING(      0x0000, "4" )
  5334: 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
  5335: 	PORT_DIPSETTING(      0x0800, "Easy"    )
  5336: 	PORT_DIPSETTING(      0x0c00, "Normal"  )
  5337: 	PORT_DIPSETTING(      0x0400, "Hard"    )
  5338: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  5339: 	PORT_DIPNAME( 0xf000, 0xf000, DEF_STR( Coinage ) )
  5340: 	PORT_DIPSETTING(      0xa000, DEF_STR( 6C_1C ) )
  5341: 	PORT_DIPSETTING(      0xb000, DEF_STR( 5C_1C ) )
  5342: 	PORT_DIPSETTING(      0xc000, DEF_STR( 4C_1C ) )
  5343: 	PORT_DIPSETTING(      0xd000, DEF_STR( 3C_1C ) )
  5344: 	PORT_DIPSETTING(      0x1000, DEF_STR( 8C_3C ) )
  5345: 	PORT_DIPSETTING(      0xe000, DEF_STR( 2C_1C ) )
  5346: 	PORT_DIPSETTING(      0x2000, DEF_STR( 5C_3C ) )
  5347: 	PORT_DIPSETTING(      0x3000, DEF_STR( 3C_2C ) )
  5348: 	PORT_DIPSETTING(      0xf000, DEF_STR( 1C_1C ) )
  5349: 	PORT_DIPSETTING(      0x4000, DEF_STR( 2C_3C ) )
  5350: 	PORT_DIPSETTING(      0x9000, DEF_STR( 1C_2C ) )
  5351: 	PORT_DIPSETTING(      0x8000, DEF_STR( 1C_3C ) )
  5352: 	PORT_DIPSETTING(      0x7000, DEF_STR( 1C_4C ) )
  5353: 	PORT_DIPSETTING(      0x6000, DEF_STR( 1C_5C ) )
  5354: 	PORT_DIPSETTING(      0x5000, DEF_STR( 1C_6C ) )
  5355: 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
  5356: INPUT_PORTS_END
  5357: 
  5358: 
  5359: /***************************************************************************
  5360: 							Ultra Toukon Densetsu
  5361: ***************************************************************************/
  5362: 
  5363: INPUT_PORTS_START( utoukond )
  5364: 	PORT_START	// IN0 - Player 1
  5365: 	JOY_TYPE1_3BUTTONS(1)
  5366: 
  5367: 	PORT_START	// IN1 - Player 2
  5368: 	JOY_TYPE1_3BUTTONS(2)
  5369: 
  5370: 	PORT_START	// IN2 - Coins
  5371: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  5372: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  5373: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  5374: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  5375: 	/* These are NOT Dip Switches but jumpers */
  5376: 	PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) )
  5377: 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
  5378: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5379: 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) )
  5380: 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
  5381: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5382: 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )
  5383: 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  5384: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5385: 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unused ) )
  5386: 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
  5387: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5388: 
  5389: 	PORT_START	// IN3 - 2 DSWs
  5390: 	PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_A ) )
  5391: 	PORT_DIPSETTING(      0x0002, DEF_STR( 4C_1C ) )
  5392: 	PORT_DIPSETTING(      0x0005, DEF_STR( 3C_1C ) )
  5393: 	PORT_DIPSETTING(      0x0008, DEF_STR( 2C_1C ) )
  5394: 	PORT_DIPSETTING(      0x0004, DEF_STR( 3C_2C ) )
  5395: 	PORT_DIPSETTING(      0x0001, DEF_STR( 4C_3C ) )
  5396: 	PORT_DIPSETTING(      0x000f, DEF_STR( 1C_1C ) )
  5397: 	PORT_DIPSETTING(      0x0003, DEF_STR( 3C_4C ) )
  5398: 	PORT_DIPSETTING(      0x0007, DEF_STR( 2C_3C ) )
  5399: 	PORT_DIPSETTING(      0x000e, DEF_STR( 1C_2C ) )
  5400: 	PORT_DIPSETTING(      0x0006, DEF_STR( 2C_5C ) )
  5401: 	PORT_DIPSETTING(      0x000d, DEF_STR( 1C_3C ) )
  5402: 	PORT_DIPSETTING(      0x000c, DEF_STR( 1C_4C ) )
  5403: 	PORT_DIPSETTING(      0x000b, DEF_STR( 1C_5C ) )
  5404: 	PORT_DIPSETTING(      0x000a, DEF_STR( 1C_6C ) )
  5405: 	PORT_DIPSETTING(      0x0009, DEF_STR( 1C_7C ) )
  5406: 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
  5407: 	PORT_DIPNAME( 0x00f0, 0x00f0, DEF_STR( Coin_B ) )
  5408: 	PORT_DIPSETTING(      0x0020, DEF_STR( 4C_1C ) )
  5409: 	PORT_DIPSETTING(      0x0050, DEF_STR( 3C_1C ) )
  5410: 	PORT_DIPSETTING(      0x0080, DEF_STR( 2C_1C ) )
  5411: 	PORT_DIPSETTING(      0x0000, DEF_STR( 5C_3C ) )
  5412: 	PORT_DIPSETTING(      0x0040, DEF_STR( 3C_2C ) )
  5413: 	PORT_DIPSETTING(      0x0010, DEF_STR( 4C_3C ) )
  5414: 	PORT_DIPSETTING(      0x00f0, DEF_STR( 1C_1C ) )
  5415: 	PORT_DIPSETTING(      0x0030, DEF_STR( 3C_4C ) )
  5416: 	PORT_DIPSETTING(      0x0070, DEF_STR( 2C_3C ) )
  5417: 	PORT_DIPSETTING(      0x00e0, DEF_STR( 1C_2C ) )
  5418: 	PORT_DIPSETTING(      0x0060, DEF_STR( 2C_5C ) )
  5419: 	PORT_DIPSETTING(      0x00d0, DEF_STR( 1C_3C ) )
  5420: 	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_4C ) )
  5421: 	PORT_DIPSETTING(      0x00b0, DEF_STR( 1C_5C ) )
  5422: 	PORT_DIPSETTING(      0x00a0, DEF_STR( 1C_6C ) )
  5423: 	PORT_DIPSETTING(      0x0090, DEF_STR( 1C_7C ) )
  5424: 
  5425: 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )
  5426: 	PORT_DIPSETTING(      0x0000, "1" )
  5427: 	PORT_DIPSETTING(      0x0200, "2" )
  5428: 	PORT_DIPSETTING(      0x0300, "3" )
  5429: 	PORT_DIPSETTING(      0x0100, "4" )
  5430: 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
  5431: 	PORT_DIPSETTING(      0x0800, "Easy" )
  5432: 	PORT_DIPSETTING(      0x0c00, "Normal" )
  5433: 	PORT_DIPSETTING(      0x0400, "Hard" )
  5434: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  5435: 	PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Flip_Screen ) )
  5436: 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
  5437: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5438: 	PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Demo_Sounds ) )
  5439: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  5440: 	PORT_DIPSETTING(      0x2000, DEF_STR( On ) )
  5441: 	PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Bonus_Life ) )
  5442: 	PORT_DIPSETTING(      0x4000, "100k" )
  5443: 	PORT_DIPSETTING(      0x0000, "150k" )
  5444: 	PORT_SERVICE( 0x8000, IP_ACTIVE_LOW )
  5445: INPUT_PORTS_END
  5446: 
  5447: /***************************************************************************
  5448: 								U.S. Classic
  5449: ***************************************************************************/
  5450: 
  5451: #define TRACKBALL(_dir_) \ 
  5452: 	PORT_ANALOG( 0x0fff, 0x0000, IPT_TRACKBALL_##_dir_ | IPF_CENTER, 70, 30, 0, 0 )
  5453: 
  5454: INPUT_PORTS_START( usclssic )
  5455: 	PORT_START	// IN0
  5456: 	TRACKBALL(X)
  5457: 	PORT_BIT   ( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  5458: 	PORT_BIT   ( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  5459: 	PORT_BIT   ( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  5460: 	PORT_BIT   ( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  5461: 
  5462: 	PORT_START	// IN1
  5463: 	TRACKBALL(Y)
  5464: 	PORT_BIT   ( 0x1000, IP_ACTIVE_LOW,  IPT_UNKNOWN )
  5465: 	PORT_BIT   ( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON1 )
  5466: 	PORT_BIT   ( 0x4000, IP_ACTIVE_HIGH, IPT_START1  )
  5467: 	PORT_BIT   ( 0x8000, IP_ACTIVE_LOW,  IPT_UNKNOWN )
  5468: 
  5469: 	PORT_START	// IN2
  5470: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW,  IPT_UNKNOWN  )	// tested (sound related?)
  5471: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW,  IPT_UNKNOWN  )
  5472: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW,  IPT_UNKNOWN  )
  5473: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW,  IPT_UNKNOWN  )
  5474: 	PORT_BIT_IMPULSE( 0x0010, IP_ACTIVE_HIGH, IPT_COIN1, 5 )
  5475: 	PORT_BIT_IMPULSE( 0x0020, IP_ACTIVE_HIGH, IPT_COIN2, 5 )
  5476: 	PORT_BIT(  0x0040, IP_ACTIVE_HIGH, IPT_SERVICE1 )
  5477: 	PORT_BIT(  0x0080, IP_ACTIVE_HIGH, IPT_TILT     )
  5478: 
  5479: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  5480: 	PORT_DIPNAME( 0x0001, 0x0001, "Credits For 9-Hole" )
  5481: 	PORT_DIPSETTING(      0x0001, "2" )
  5482: 	PORT_DIPSETTING(      0x0000, "3" )
  5483: 	PORT_DIPNAME( 0x0002, 0x0002, "Game Type" )
  5484: 	PORT_DIPSETTING(      0x0002, "Domestic" )
  5485: 	PORT_DIPSETTING(      0x0000, "Foreign" )
  5486: 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Lives ) )
  5487: 	PORT_DIPSETTING(      0x0004, "1" )
  5488: 	PORT_DIPSETTING(      0x0008, "2" )
  5489: 	PORT_DIPSETTING(      0x000c, "3" )
  5490: 	PORT_DIPSETTING(      0x0000, "4" )
  5491: 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coin_A ) )
  5492: 	PORT_DIPSETTING(      0x0010, DEF_STR( 2C_1C ) )
  5493: 	PORT_DIPSETTING(      0x0030, DEF_STR( 1C_1C ) )
  5494: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
  5495: 	PORT_DIPSETTING(      0x0020, DEF_STR( 1C_2C ) )
  5496: 	PORT_DIPNAME( 0x00c0, 0x00c0, DEF_STR( Coin_B ) )
  5497: 	PORT_DIPSETTING(      0x0040, DEF_STR( 2C_1C ) )
  5498: 	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_1C ) )
  5499: 	PORT_DIPSETTING(      0x0000, DEF_STR( 2C_3C ) )
  5500: 	PORT_DIPSETTING(      0x0080, DEF_STR( 1C_2C ) )
  5501: 
  5502: 	PORT_DIPNAME( 0x0100, 0x0000, DEF_STR( Cabinet ) )
  5503: 	PORT_DIPSETTING(      0x0000, DEF_STR( Upright ) )
  5504: 	PORT_DIPSETTING(      0x0100, DEF_STR( Cocktail ) )
  5505: 	PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) )
  5506: 	PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
  5507: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5508: 	PORT_SERVICE( 0x0400, IP_ACTIVE_LOW )
  5509: 	PORT_DIPNAME( 0x3800, 0x3800, "Flight Distance" )
  5510: 	PORT_DIPSETTING(      0x3800, "Normal" )
  5511: 	PORT_DIPSETTING(      0x3000, "-30 Yards" )
  5512: 	PORT_DIPSETTING(      0x2800, "+10 Yards" )
  5513: 	PORT_DIPSETTING(      0x2000, "+20 Yards" )
  5514: 	PORT_DIPSETTING(      0x1800, "+30 Yards" )
  5515: 	PORT_DIPSETTING(      0x1000, "+40 Yards" )
  5516: 	PORT_DIPSETTING(      0x0800, "+50 Yards" )
  5517: 	PORT_DIPSETTING(      0x0000, "+60 Yards" )
  5518: 	PORT_DIPNAME( 0xc000, 0xc000, "Licensed To"     )
  5519: 	PORT_DIPSETTING(      0xc000, "Romstar"       )
  5520: 	PORT_DIPSETTING(      0x8000, "None (Japan)"  )
  5521: 	PORT_DIPSETTING(      0x4000, "Taito"         )
  5522: 	PORT_DIPSETTING(      0x0000, "Taito America" )
  5523: INPUT_PORTS_END
  5524: 
  5525: 
  5526: 
  5527: /***************************************************************************
  5528: 								War of Aero
  5529: ***************************************************************************/
  5530: 
  5531: INPUT_PORTS_START( wrofaero )
  5532: 	PORT_START	// IN0 - Player 1 - $400000.w
  5533: 	JOY_TYPE1_3BUTTONS(1)	// 3rd button selects the weapon
  5534: 							// when the dsw for cheating is on
  5535: 
  5536: 	PORT_START	// IN1 - Player 2 - $400002.w
  5537: 	JOY_TYPE1_3BUTTONS(2)
  5538: 
  5539: 	PORT_START	// IN2 - Coins - $400004.w
  5540: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  5541: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  5542: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  5543: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
  5544: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  5545: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  5546: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  5547: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  5548: 
  5549: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  5550: 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
  5551: 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
  5552: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5553: 	PORT_DIPNAME( 0x0002, 0x0002, "Unknown 1-1*" )	// tested
  5554: 	PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
  5555: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5556: 	PORT_DIPNAME( 0x0004, 0x0004, "Unknown 1-2*" )	// tested
  5557: 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
  5558: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5559: 	PORT_BITX(    0x0008, 0x0008, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stage & Weapon Select", IP_KEY_NONE, IP_JOY_NONE )	// P2 Start Is Freeze Screen...
  5560: 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
  5561: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5562: 	PORT_DIPNAME( 0x0010, 0x0010, "Unknown 1-4" )
  5563: 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
  5564: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5565: 	PORT_DIPNAME( 0x0020, 0x0020, "Unknown 1-5" )
  5566: 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
  5567: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5568: 	PORT_DIPNAME( 0x0040, 0x0040, "Unknown 1-6" )
  5569: 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  5570: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5571: 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
  5572: 
  5573: 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )
  5574: 	PORT_DIPSETTING(      0x0200, "2" )
  5575: 	PORT_DIPSETTING(      0x0300, "3" )
  5576: 	PORT_DIPSETTING(      0x0100, "4" )
  5577: 	PORT_DIPSETTING(      0x0000, "5" )
  5578: 	PORT_DIPNAME( 0x0c00, 0x0c00, "Unknown 2-2&3" )
  5579: 	PORT_DIPSETTING(      0x0800, "0" )
  5580: 	PORT_DIPSETTING(      0x0c00, "1" )
  5581: 	PORT_DIPSETTING(      0x0400, "2" )
  5582: 	PORT_DIPSETTING(      0x0000, "3" )
  5583: 	PORT_DIPNAME( 0xf000, 0xf000, DEF_STR( Coinage ) )
  5584: 	PORT_DIPSETTING(      0xa000, DEF_STR( 6C_1C ) )
  5585: 	PORT_DIPSETTING(      0xb000, DEF_STR( 5C_1C ) )
  5586: 	PORT_DIPSETTING(      0xc000, DEF_STR( 4C_1C ) )
  5587: 	PORT_DIPSETTING(      0xd000, DEF_STR( 3C_1C ) )
  5588: 	PORT_DIPSETTING(      0x1000, DEF_STR( 8C_3C ) )
  5589: 	PORT_DIPSETTING(      0xe000, DEF_STR( 2C_1C ) )
  5590: 	PORT_DIPSETTING(      0x2000, DEF_STR( 5C_3C ) )
  5591: 	PORT_DIPSETTING(      0x3000, DEF_STR( 3C_2C ) )
  5592: 	PORT_DIPSETTING(      0xf000, DEF_STR( 1C_1C ) )
  5593: 	PORT_DIPSETTING(      0x4000, DEF_STR( 2C_3C ) )
  5594: 	PORT_DIPSETTING(      0x9000, DEF_STR( 1C_2C ) )
  5595: 	PORT_DIPSETTING(      0x8000, DEF_STR( 1C_3C ) )
  5596: 	PORT_DIPSETTING(      0x7000, DEF_STR( 1C_4C ) )
  5597: 	PORT_DIPSETTING(      0x6000, DEF_STR( 1C_5C ) )
  5598: 	PORT_DIPSETTING(      0x5000, DEF_STR( 1C_6C ) )
  5599: 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
  5600: INPUT_PORTS_END
  5601: 
  5602: 
  5603: 
  5604: /***************************************************************************
  5605: 									Wit's
  5606: ***************************************************************************/
  5607: 
  5608: INPUT_PORTS_START( wits )
  5609: 	PORT_START	// IN0 - Player 1
  5610: 	JOY_TYPE1_2BUTTONS(1)
  5611: 
  5612: 	PORT_START	// IN1 - Player 2
  5613: 	JOY_TYPE1_2BUTTONS(2)
  5614: 
  5615: 	PORT_START	// IN2 - Coins + DSW
  5616: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  5617: 	PORT_BIT_IMPULSE( 0x0002, IP_ACTIVE_LOW, IPT_COIN2, 5 )
  5618: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  5619: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
  5620: 	PORT_DIPNAME( 0x0010, 0x0010, "Unknown 3-4*" )	// Jumpers, I guess
  5621: 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
  5622: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5623: 	PORT_DIPNAME( 0x0020, 0x0020, "Unknown 3-5*" )
  5624: 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
  5625: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5626: 	PORT_DIPNAME( 0x00c0, 0x0040, "License" )
  5627: 	PORT_DIPSETTING(      0x00c0, "Romstar" )
  5628: 	PORT_DIPSETTING(      0x0080, "Seta U.S.A" )
  5629: 	PORT_DIPSETTING(      0x0040, "Visco (Japan Only)" )
  5630: 	PORT_DIPSETTING(      0x0000, "Athena (Japan Only)" )
  5631: 
  5632: 	PORT_START	// IN3 - 2 DSWs - $600003 & 1.b
  5633: 	PORT_DIPNAME( 0x0003, 0x0003, DEF_STR( Difficulty ) )
  5634: 	PORT_DIPSETTING(      0x0002, "Easy" )
  5635: 	PORT_DIPSETTING(      0x0003, "Normal" )
  5636: 	PORT_DIPSETTING(      0x0001, "Hard" )
  5637: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  5638: 	PORT_DIPNAME( 0x000c, 0x000c, DEF_STR( Bonus_Life ) )
  5639: 	PORT_DIPSETTING(      0x0008, "150k, 350k" )
  5640: 	PORT_DIPSETTING(      0x000c, "200k, 500k" )
  5641: 	PORT_DIPSETTING(      0x0004, "300k, 600k" )
  5642: 	PORT_DIPSETTING(      0x0000, "400k" )
  5643: 	PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Lives ) )
  5644: 	PORT_DIPSETTING(      0x0000, "1" )
  5645: 	PORT_DIPSETTING(      0x0010, "2" )
  5646: 	PORT_DIPSETTING(      0x0030, "3" )
  5647: 	PORT_DIPSETTING(      0x0020, "5" )
  5648: 	PORT_DIPNAME( 0x0040, 0x0040, "Max Players" )
  5649: 	PORT_DIPSETTING(      0x0040, "2" )
  5650: 	PORT_DIPSETTING(      0x0000, "4" )
  5651: 	PORT_DIPNAME( 0x0080, 0x0080, "Unknown 1-7*" )
  5652: 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
  5653: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5654: 
  5655: 	PORT_DIPNAME( 0x0100, 0x0100, "Unknown 2-0" )
  5656: 	PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
  5657: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5658: 	PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Flip_Screen ) )
  5659: 	PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
  5660: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5661: 	PORT_DIPNAME( 0x0400, 0x0400, "Unknown 2-2*" )
  5662: 	PORT_DIPSETTING(      0x0400, DEF_STR( Off ) )
  5663: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5664: 	PORT_SERVICE( 0x0800, IP_ACTIVE_LOW )
  5665: 	PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Coin_A ) )
  5666: 	PORT_DIPSETTING(      0x0000, DEF_STR( 4C_1C ) )
  5667: 	PORT_DIPSETTING(      0x1000, DEF_STR( 3C_1C ) )
  5668: 	PORT_DIPSETTING(      0x2000, DEF_STR( 2C_1C ) )
  5669: 	PORT_DIPSETTING(      0x3000, DEF_STR( 1C_1C ) )
  5670: 	PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Coin_B ) )
  5671: 	PORT_DIPSETTING(      0xc000, DEF_STR( 1C_2C ) )
  5672: 	PORT_DIPSETTING(      0x8000, DEF_STR( 1C_3C ) )
  5673: 	PORT_DIPSETTING(      0x4000, DEF_STR( 1C_4C ) )
  5674: 	PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
  5675: 
  5676: 	PORT_START	// IN4 - Player 3
  5677: 	JOY_TYPE1_2BUTTONS(3)
  5678: 
  5679: 	PORT_START	// IN5 - Player 4
  5680: 	JOY_TYPE1_2BUTTONS(4)
  5681: INPUT_PORTS_END
  5682: 
  5683: 
  5684: /***************************************************************************
  5685: 								Zing Zing Zip
  5686: ***************************************************************************/
  5687: 
  5688: INPUT_PORTS_START( zingzip )
  5689: 	PORT_START	// IN0 - Player 1 - $400000.w
  5690: 	JOY_TYPE1_2BUTTONS(1)
  5691: 
  5692: 	PORT_START	// IN1 - Player 2 - $400002.w
  5693: 	JOY_TYPE1_2BUTTONS(2)
  5694: 
  5695: 	PORT_START	// IN2 - Coins - $400004.w
  5696: 	PORT_BIT_IMPULSE( 0x0001, IP_ACTIVE_LOW, IPT_COIN1, 5 )
  5697: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN  ) // no coin 2
  5698: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
  5699: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_TILT     )
  5700: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  5701: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  5702: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  5703: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN  )
  5704: 
  5705: 	PORT_START	// IN3 - 2 DSWs - $600001 & 3.b
  5706: 	PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Flip_Screen ) )
  5707: 	PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
  5708: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5709: 	PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Demo_Sounds ) )
  5710: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  5711: 	PORT_DIPSETTING(      0x0002, DEF_STR( On ) )
  5712: 	PORT_DIPNAME( 0x0004, 0x0004, "Unknown 1-3" )	// remaining switches seem unused
  5713: 	PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
  5714: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5715: 	PORT_DIPNAME( 0x0008, 0x0008, "Unknown 1-4" )
  5716: 	PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
  5717: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5718: 	PORT_DIPNAME( 0x0010, 0x0010, "Unknown 1-5" )
  5719: 	PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
  5720: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5721: 	PORT_DIPNAME( 0x0020, 0x0020, "Unknown 1-6" )
  5722: 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
  5723: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5724: 	PORT_DIPNAME( 0x0040, 0x0040, "Unknown 1-7" )
  5725: 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  5726: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  5727: 	PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
  5728: 
  5729: 	PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Lives ) )
  5730: 	PORT_DIPSETTING(      0x0200, "2" )
  5731: 	PORT_DIPSETTING(      0x0300, "3" )
  5732: 	PORT_DIPSETTING(      0x0100, "4" )
  5733: 	PORT_DIPSETTING(      0x0000, "5" )
  5734: 	PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
  5735: 	PORT_DIPSETTING(      0x0800, "Easy"    )
  5736: 	PORT_DIPSETTING(      0x0c00, "Normal"  )
  5737: 	PORT_DIPSETTING(      0x0400, "Hard"    )
  5738: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  5739: 	PORT_DIPNAME( 0xf000, 0xf000, DEF_STR( Coinage ) )
  5740: 	PORT_DIPSETTING(      0xa000, DEF_STR( 6C_1C ) )
  5741: 	PORT_DIPSETTING(      0xb000, DEF_STR( 5C_1C ) )
  5742: 	PORT_DIPSETTING(      0xc000, DEF_STR( 4C_1C ) )
  5743: 	PORT_DIPSETTING(      0xd000, DEF_STR( 3C_1C ) )
  5744: 	PORT_DIPSETTING(      0x1000, DEF_STR( 8C_3C ) )
  5745: 	PORT_DIPSETTING(      0xe000, DEF_STR( 2C_1C ) )
  5746: 	PORT_DIPSETTING(      0x2000, DEF_STR( 5C_3C ) )
  5747: 	PORT_DIPSETTING(      0x3000, DEF_STR( 3C_2C ) )
  5748: 	PORT_DIPSETTING(      0xf000, DEF_STR( 1C_1C ) )
  5749: 	PORT_DIPSETTING(      0x4000, DEF_STR( 2C_3C ) )
  5750: 	PORT_DIPSETTING(      0x9000, DEF_STR( 1C_2C ) )
  5751: 	PORT_DIPSETTING(      0x8000, DEF_STR( 1C_3C ) )
  5752: 	PORT_DIPSETTING(      0x7000, DEF_STR( 1C_4C ) )
  5753: 	PORT_DIPSETTING(      0x6000, DEF_STR( 1C_5C ) )
  5754: 	PORT_DIPSETTING(      0x5000, DEF_STR( 1C_6C ) )
  5755: 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
  5756: INPUT_PORTS_END
  5757: 
  5758: 
  5759: /***************************************************************************
  5760: 
  5761: 
  5762: 								Graphics Layouts
  5763: 
  5764: Sprites and layers use 16x16 tile, made of four 8x8 tiles. They can be 4
  5765: or 6 planes deep and are stored in a wealth of formats.
  5766: 
  5767: ***************************************************************************/
  5768: 
  5769: 						/* First the 4 bit tiles */
  5770: 
  5771: 
  5772: /* The bitplanes are packed togheter */
  5773: static struct GfxLayout layout_packed =
  5774: {
  5775: 	16,16,
  5776: 	RGN_FRAC(1,1),
  5777: 	4,
  5778: 	{2*4,3*4,0*4,1*4},
  5779: 	{256+128,256+129,256+130,256+131, 256+0,256+1,256+2,256+3,
  5780: 	 128,129,130,131, 0,1,2,3},
  5781: 	{0*16,1*16,2*16,3*16,4*16,5*16,6*16,7*16,
  5782: 	 32*16,33*16,34*16,35*16,36*16,37*16,38*16,39*16},
  5783: 	16*16*4
  5784: };
  5785: 
  5786: 
  5787: /* The bitplanes are separated (but there are 2 per rom) */
  5788: static struct GfxLayout layout_planes_2roms =
  5789: {
  5790: 	16,16,
  5791: 	RGN_FRAC(1,2),
  5792: 	4,
  5793: 	{RGN_FRAC(1,2)+8, RGN_FRAC(1,2)+0, 8, 0},
  5794: 	{0,1,2,3,4,5,6,7, 128,129,130,131,132,133,134,135},
  5795: 	{0*16,1*16,2*16,3*16,4*16,5*16,6*16,7*16,
  5796: 	 16*16,17*16,18*16,19*16,20*16,21*16,22*16,23*16 },
  5797: 	16*16*2
  5798: };
  5799: 
  5800: 
  5801: /* The bitplanes are separated (but there are 2 per rom).
  5802:    Each 8x8 tile is additionally split in 2 vertical halves four bits wide,
  5803:    stored one after the other */
  5804: static struct GfxLayout layout_planes_2roms_split =
  5805: {
  5806: 	16,16,
  5807: 	RGN_FRAC(1,2),
  5808: 	4,
  5809: 	{0,4, RGN_FRAC(1,2)+0,RGN_FRAC(1,2)+4},
  5810: 	{128+64,128+65,128+66,128+67, 128+0,128+1,128+2,128+3,
  5811: 	 8*8+0,8*8+1,8*8+2,8*8+3, 0,1,2,3},
  5812: 	{0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8,
  5813: 	 32*8,33*8,34*8,35*8,36*8,37*8,38*8,39*8},
  5814: 	16*16*2
  5815: };
  5816: 
  5817: 
  5818: 
  5819: 
  5820: 						/* Then the 6 bit tiles */
  5821: 
  5822: 
  5823: /* The bitplanes are packed together: 3 roms with 2 bits in each */
  5824: static struct GfxLayout layout_packed_6bits_3roms =
  5825: {
  5826: 	16,16,
  5827: 	RGN_FRAC(1,3),
  5828: 	6,
  5829: 	{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},
  5830: 	{128+64,128+65,128+66,128+67, 128+0,128+1,128+2,128+3,
  5831: 	 64,65,66,67, 0,1,2,3},
  5832: 	{0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8,
  5833: 	 32*8,33*8,34*8,35*8,36*8,37*8,38*8,39*8},
  5834: 	16*16*2
  5835: };
  5836: 
  5837: 
  5838: /* The bitplanes are packed togheter: 4 bits in one rom, 2 bits in another.
  5839:    Since there isn't simmetry between the two roms, we load the latter with
  5840:    ROM_LOAD16_BYTE. This way we can think of it as a 4 planes rom, with the
  5841:    upper 2 planes unused.	 */
  5842: 
  5843: static struct GfxLayout layout_packed_6bits_2roms =
  5844: {
  5845: 	16,16,
  5846: 	RGN_FRAC(1,2),
  5847: 	6,
  5848: 	{RGN_FRAC(1,2)+0*4, RGN_FRAC(1,2)+1*4, 2*4,3*4,0*4,1*4},
  5849: 	{256+128,256+129,256+130,256+131, 256+0,256+1,256+2,256+3,
  5850: 	 128,129,130,131, 0,1,2,3},
  5851: 	{0*16,1*16,2*16,3*16,4*16,5*16,6*16,7*16,
  5852: 	 32*16,33*16,34*16,35*16,36*16,37*16,38*16,39*16},
  5853: 	16*16*4
  5854: };
  5855: 
  5856: 
  5857: 
  5858: /***************************************************************************
  5859: 								Blandia
  5860: ***************************************************************************/
  5861: 
  5862: static struct GfxDecodeInfo blandia_gfxdecodeinfo[] =
  5863: {
  5864: 	{ REGION_GFX1, 0, &layout_planes_2roms,       0,           32 }, // [0] Sprites
  5865: 	{ REGION_GFX2, 0, &layout_packed_6bits_3roms, 16*32+64*32, 32 }, // [1] Layer 1
  5866: 	{ REGION_GFX3, 0, &layout_packed_6bits_3roms, 16*32,       32 }, // [2] Layer 2
  5867: 	{ -1 }
  5868: };
  5869: 
  5870: /***************************************************************************
  5871: 								DownTown
  5872: ***************************************************************************/
  5873: 
  5874: static struct GfxDecodeInfo downtown_gfxdecodeinfo[] =
  5875: {
  5876: 	{ REGION_GFX1, 0, &layout_planes_2roms,       512*0, 32 }, // [0] Sprites
  5877: 	{ REGION_GFX2, 0, &layout_planes_2roms_split, 512*0, 32 }, // [1] Layer 1
  5878: 	{ -1 }
  5879: };
  5880: 
  5881: /***************************************************************************
  5882: 								J.J.Squawkers
  5883: ***************************************************************************/
  5884: 
  5885: static struct GfxDecodeInfo jjsquawk_gfxdecodeinfo[] =
  5886: {
  5887: 	{ REGION_GFX1, 0, &layout_planes_2roms,       0,             32 }, // [0] Sprites
  5888: 	{ REGION_GFX2, 0, &layout_packed_6bits_2roms, 512 + 64*32*0, 32 }, // [1] Layer 1
  5889: 	{ REGION_GFX3, 0, &layout_packed_6bits_2roms, 512 + 64*32*1, 32 }, // [2] Layer 2
  5890: 	{ -1 }
  5891: };
  5892: 
  5893: /***************************************************************************
  5894: 							Mobile Suit Gundam
  5895: ***************************************************************************/
  5896: 
  5897: static struct GfxDecodeInfo msgundam_gfxdecodeinfo[] =
  5898: {
  5899: 	{ REGION_GFX1, 0, &layout_planes_2roms, 512*0, 32 }, // [0] Sprites
  5900: 	{ REGION_GFX2, 0, &layout_packed,       512*2, 32 }, // [1] Layer 1
  5901: 	{ REGION_GFX3, 0, &layout_packed,       512*1, 32 }, // [2] Layer 2
  5902: 	{ -1 }
  5903: };
  5904: 
  5905: /***************************************************************************
  5906: 								Quiz Kokology 2
  5907: ***************************************************************************/
  5908: 
  5909: static struct GfxDecodeInfo qzkklgy2_gfxdecodeinfo[] =
  5910: {
  5911: 	{ REGION_GFX1, 0, &layout_planes_2roms,	512*0, 32 }, // [0] Sprites
  5912: 	{ REGION_GFX2, 0, &layout_packed, 		512*0, 32 }, // [1] Layer 1
  5913: 	{ -1 }
  5914: };
  5915: 
  5916: /***************************************************************************
  5917: 								Thundercade
  5918: ***************************************************************************/
  5919: 
  5920: static struct GfxDecodeInfo tndrcade_gfxdecodeinfo[] =
  5921: {
  5922: 	{ REGION_GFX1, 0, &layout_planes_2roms, 512*0, 32 }, // [0] Sprites
  5923: 	{ -1 }
  5924: };
  5925: 
  5926: /***************************************************************************
  5927: 								U.S. Classic
  5928: ***************************************************************************/
  5929: 
  5930: /* 6 bit layer. The colors are still WRONG.
  5931:    Remember there's a vh_init_palette function */
  5932: 
  5933: static struct GfxDecodeInfo usclssic_gfxdecodeinfo[] =
  5934: {
  5935: 	{ REGION_GFX1, 0, &layout_planes_2roms,       512*0+256, 32/2 }, // [0] Sprites
  5936: 	{ REGION_GFX2, 0, &layout_packed_6bits_3roms, 512*1, 32 }, // [1] Layer 1
  5937: 	{ -1 }
  5938: };
  5939: 
  5940: /***************************************************************************
  5941: 								Zing Zing Zip
  5942: ***************************************************************************/
  5943: 
  5944: static struct GfxDecodeInfo zingzip_gfxdecodeinfo[] =
  5945: {
  5946: 	{ REGION_GFX1, 0, &layout_planes_2roms,       512*0, 32 }, // [0] Sprites
  5947: 	{ REGION_GFX2, 0, &layout_packed_6bits_2roms, 512*2, 32 }, // [1] Layer 1
  5948: 	{ REGION_GFX3, 0, &layout_packed,             512*1, 32 }, // [2] Layer 2
  5949: 	{ -1 }
  5950: };
  5951: 
  5952: 
  5953: 
  5954: 
  5955: 
  5956: 
  5957: 
  5958: 
  5959: 
  5960: 
  5961: /***************************************************************************
  5962: 
  5963: 								Machine drivers
  5964: 
  5965: ***************************************************************************/
  5966: 
  5967: #define SETA_INTERRUPTS_NUM 2 
  5968: 
  5969: static INTERRUPT_GEN( seta_interrupt_1_and_2 )
  5970: {
  5971: 	switch (cpu_getiloops())
  5972: 	{
  5973: 		case 0:		cpu_set_irq_line(0, 1, HOLD_LINE);	break;
  5974: 		case 1:		cpu_set_irq_line(0, 2, HOLD_LINE);	break;
  5975: 	}
  5976: }
  5977: 
  5978: static INTERRUPT_GEN( seta_interrupt_2_and_4 )
  5979: {
  5980: 	switch (cpu_getiloops())
  5981: 	{
  5982: 		case 0:		cpu_set_irq_line(0, 2, HOLD_LINE);	break;
  5983: 		case 1:		cpu_set_irq_line(0, 4, HOLD_LINE);	break;
  5984: 	}
  5985: }
  5986: 
  5987: 
  5988: #define SETA_SUB_INTERRUPTS_NUM 2 
  5989: 
  5990: static INTERRUPT_GEN( seta_sub_interrupt )
  5991: {
  5992: 	switch (cpu_getiloops())
  5993: 	{
  5994: 		case 0:		cpu_set_irq_line(1, IRQ_LINE_NMI, PULSE_LINE);	break;
  5995: 		case 1:		cpu_set_irq_line(1, 0, HOLD_LINE);				break;
  5996: 	}
  5997: }
  5998: 
  5999: 
  6000: /***************************************************************************
  6001: 								Thundercade
  6002: ***************************************************************************/
  6003: 
  6004: static struct YM2203interface tndrcade_ym2203_interface =
  6005: {
  6006: 	1,
  6007: 	2000000,		/* ? */
  6008: 	{ YM2203_VOL(35,35) },
  6009: 	{ dsw1_r },		/* input A: DSW 1 */
  6010: 	{ dsw2_r },		/* input B: DSW 2 */
  6011: 	{ 0 },
  6012: 	{ 0 },
  6013: 	{ NULL }
  6014: };
  6015: 
  6016: static struct YM3812interface ym3812_interface =
  6017: {
  6018: 	1,
  6019: 	4000000,	/* ? */
  6020: 	{ 100,100 },	/* mixing level */
  6021: 	{ NULL },
  6022: };
  6023: 
  6024: 
  6025: #define TNDRCADE_SUB_INTERRUPTS_NUM	32	/* 16 IRQ, 1 NMI */ 
  6026: static INTERRUPT_GEN( tndrcade_sub_interrupt )
  6027: {
  6028: 	if (cpu_getiloops() & 1)
  6029: 		cpu_set_irq_line(1, 0, HOLD_LINE);
  6030: 	else if (cpu_getiloops() == 0)
  6031: 		cpu_set_irq_line(1, IRQ_LINE_NMI, PULSE_LINE);
  6032: }
  6033: 
  6034: static MACHINE_DRIVER_START( tndrcade )
  6035: 
  6036: 	/* basic machine hardware */
  6037: 	MDRV_CPU_ADD(M68000, 16000000/2)
  6038: 	MDRV_CPU_MEMORY(tndrcade_readmem,tndrcade_writemem)
  6039: 	MDRV_CPU_VBLANK_INT(irq2_line_hold,1)
  6040: 
  6041: 	MDRV_CPU_ADD(M65C02, 2000000)	/* ?? */
  6042: 	MDRV_CPU_MEMORY(tndrcade_sub_readmem,tndrcade_sub_writemem)
  6043: 	MDRV_CPU_VBLANK_INT(tndrcade_sub_interrupt,TNDRCADE_SUB_INTERRUPTS_NUM)
  6044: 
  6045: 	MDRV_FRAMES_PER_SECOND(60)
  6046: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6047: 
  6048: 	/* video hardware */
  6049: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6050: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6051: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
  6052: 	MDRV_GFXDECODE(tndrcade_gfxdecodeinfo)
  6053: 	MDRV_PALETTE_LENGTH(512)	/* sprites only */
  6054: 
  6055: 	MDRV_VIDEO_START(seta_no_layers)
  6056: 	MDRV_VIDEO_UPDATE(seta_no_layers) /* just draw the sprites */
  6057: 
  6058: 	/* sound hardware */
  6059: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6060: 	MDRV_SOUND_ADD(YM2203, tndrcade_ym2203_interface)
  6061: 	MDRV_SOUND_ADD(YM3812, ym3812_interface)
  6062: MACHINE_DRIVER_END
  6063: 
  6064: 
  6065: 
  6066: /***************************************************************************
  6067: 								Twin Eagle
  6068: ***************************************************************************/
  6069: 
  6070: /* Just like metafox, but:
  6071:    the sub cpu reads the ip at different locations,
  6072:    the visible area seems different. */
  6073: 
  6074: /* twineagl lev 3 = lev 2 + lev 1 ! */
  6075: 
  6076: static MACHINE_DRIVER_START( twineagl )
  6077: 
  6078: 	/* basic machine hardware */
  6079: 	MDRV_CPU_ADD(M68000, 16000000/2)
  6080: 	MDRV_CPU_MEMORY(downtown_readmem,downtown_writemem)
  6081: 	MDRV_CPU_VBLANK_INT(irq3_line_hold,1)
  6082: 
  6083: 	MDRV_CPU_ADD(M65C02, 1000000)	/* ?? */
  6084: 	MDRV_CPU_MEMORY(twineagl_sub_readmem,twineagl_sub_writemem)
  6085: 	MDRV_CPU_VBLANK_INT(seta_sub_interrupt,SETA_SUB_INTERRUPTS_NUM)
  6086: 
  6087: 	MDRV_FRAMES_PER_SECOND(60)
  6088: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6089: 
  6090: 	/* video hardware */
  6091: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6092: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6093: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
  6094: 	MDRV_GFXDECODE(downtown_gfxdecodeinfo)
  6095: 	MDRV_PALETTE_LENGTH(512)
  6096: 
  6097: 	MDRV_VIDEO_START(twineagl_1_layer)
  6098: 	MDRV_VIDEO_UPDATE(seta)
  6099: 
  6100: 	/* sound hardware */
  6101: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6102: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  6103: MACHINE_DRIVER_END
  6104: 
  6105: 
  6106: 
  6107: /***************************************************************************
  6108: 								DownTown
  6109: ***************************************************************************/
  6110: 
  6111: /* downtown lev 3 = lev 2 + lev 1 ! */
  6112: 
  6113: static MACHINE_DRIVER_START( downtown )
  6114: 
  6115: 	/* basic machine hardware */
  6116: 	MDRV_CPU_ADD(M68000, 16000000/2)
  6117: 	MDRV_CPU_MEMORY(downtown_readmem,downtown_writemem)
  6118: 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
  6119: 
  6120: 	MDRV_CPU_ADD(M65C02, 1000000)	/* ?? */
  6121: 	MDRV_CPU_MEMORY(downtown_sub_readmem,downtown_sub_writemem)
  6122: 	MDRV_CPU_VBLANK_INT(seta_sub_interrupt,SETA_SUB_INTERRUPTS_NUM)
  6123: 
  6124: 	MDRV_FRAMES_PER_SECOND(60)
  6125: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6126: 
  6127: 	/* video hardware */
  6128: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6129: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6130: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
  6131: 	MDRV_GFXDECODE(downtown_gfxdecodeinfo)
  6132: 	MDRV_PALETTE_LENGTH(512)
  6133: 
  6134: 	MDRV_VIDEO_START(seta_1_layer)
  6135: 	MDRV_VIDEO_UPDATE(seta)
  6136: 
  6137: 	/* sound hardware */
  6138: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6139: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_8MHz)
  6140: MACHINE_DRIVER_END
  6141: 
  6142: 
  6143: 
  6144: /***************************************************************************
  6145: 								U.S. Classic
  6146: ***************************************************************************/
  6147: 
  6148: 
  6149: /*	usclssic lev 6 = lev 2+4 !
  6150: 	Test mode shows a 16ms and 4ms counters. I wonder if every game has
  6151: 	5 ints per frame
  6152: */
  6153: 
  6154: #define calibr50_INTERRUPTS_NUM (4+1) 
  6155: INTERRUPT_GEN( calibr50_interrupt )
  6156: {
  6157: 	switch (cpu_getiloops())
  6158: 	{
  6159: 		case 0:
  6160: 		case 1:
  6161: 		case 2:
  6162: 		case 3:		cpu_set_irq_line(0, 4, HOLD_LINE);	break;
  6163: 		case 4:		cpu_set_irq_line(0, 2, HOLD_LINE);	break;
  6164: 	}
  6165: }
  6166: 
  6167: 
  6168: static MACHINE_DRIVER_START( usclssic )
  6169: 
  6170: 	/* basic machine hardware */
  6171: 	MDRV_CPU_ADD(M68000, 16000000/2)
  6172: 	MDRV_CPU_MEMORY(usclssic_readmem,usclssic_writemem)
  6173: 	MDRV_CPU_VBLANK_INT(calibr50_interrupt,calibr50_INTERRUPTS_NUM)
  6174: 
  6175: 	MDRV_CPU_ADD(M65C02, 1000000)	/* ?? */
  6176: 	MDRV_CPU_MEMORY(calibr50_sub_readmem,calibr50_sub_writemem)
  6177: 	MDRV_CPU_VBLANK_INT(irq0_line_hold,1)	/* NMI caused by main cpu when writing to the sound latch */
  6178: 
  6179: 	MDRV_FRAMES_PER_SECOND(60)
  6180: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6181: 
  6182: 	/* video hardware */
  6183: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6184: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6185: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
  6186: 	MDRV_GFXDECODE(usclssic_gfxdecodeinfo)
  6187: 	MDRV_PALETTE_LENGTH(16*32)
  6188: 	MDRV_COLORTABLE_LENGTH(16*32 + 64*32)		/* sprites, layer */
  6189: 
  6190: 	MDRV_PALETTE_INIT(usclssic)	/* layer is 6 planes deep */
  6191: 	MDRV_VIDEO_START(seta_1_layer)
  6192: 	MDRV_VIDEO_UPDATE(seta)
  6193: 
  6194: 	/* sound hardware */
  6195: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6196: 	MDRV_SOUND_ADD( X1_010, seta_sound_intf_16MHz2 )
  6197: MACHINE_DRIVER_END
  6198: 
  6199: 
  6200: /***************************************************************************
  6201: 								Caliber 50
  6202: ***************************************************************************/
  6203: 
  6204: /*	calibr50 lev 6 = lev 2 + lev 4 !
  6205:              lev 3 = lev 2 + lev 1 !
  6206: 	Test mode shows a 16ms and 4ms counters. I wonder if every game has
  6207: 	5 ints per frame */
  6208: 
  6209: static MACHINE_DRIVER_START( calibr50 )
  6210: 
  6211: 	/* basic machine hardware */
  6212: 	MDRV_CPU_ADD(M68000, 16000000/2)
  6213: 	MDRV_CPU_MEMORY(calibr50_readmem,calibr50_writemem)
  6214: 	MDRV_CPU_VBLANK_INT(calibr50_interrupt,calibr50_INTERRUPTS_NUM)
  6215: 
  6216: 	MDRV_CPU_ADD(M65C02, 2000000)	/* ?? */
  6217: 	MDRV_CPU_MEMORY(calibr50_sub_readmem,calibr50_sub_writemem)
  6218: 	MDRV_CPU_VBLANK_INT(irq0_line_hold,4)	/* IRQ: 4/frame
  6219: 							   NMI: when the 68k writes the sound latch */
  6220: 	MDRV_FRAMES_PER_SECOND(60)
  6221: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6222: 
  6223: 	/* video hardware */
  6224: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6225: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6226: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
  6227: 	MDRV_GFXDECODE(downtown_gfxdecodeinfo)
  6228: 	MDRV_PALETTE_LENGTH(512)
  6229: 
  6230: 	MDRV_VIDEO_START(seta_1_layer)
  6231: 	MDRV_VIDEO_UPDATE(seta)
  6232: 
  6233: 	/* sound hardware */
  6234: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6235: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz2)
  6236: MACHINE_DRIVER_END
  6237: 
  6238: 
  6239: /***************************************************************************
  6240: 								Meta Fox
  6241: ***************************************************************************/
  6242: 
  6243: /* metafox lev 3 = lev 2 + lev 1 ! */
  6244: 
  6245: static MACHINE_DRIVER_START( metafox )
  6246: 
  6247: 	/* basic machine hardware */
  6248: 	MDRV_CPU_ADD(M68000, 16000000/2)
  6249: 	MDRV_CPU_MEMORY(downtown_readmem,downtown_writemem)
  6250: 	MDRV_CPU_VBLANK_INT(irq3_line_hold,1)
  6251: 
  6252: 	MDRV_CPU_ADD(M65C02, 1000000)	/* ?? */
  6253: 	MDRV_CPU_MEMORY(metafox_sub_readmem,metafox_sub_writemem)
  6254: 	MDRV_CPU_VBLANK_INT(seta_sub_interrupt,SETA_SUB_INTERRUPTS_NUM)
  6255: 
  6256: 	MDRV_FRAMES_PER_SECOND(60)
  6257: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6258: 
  6259: 	/* video hardware */
  6260: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6261: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6262: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
  6263: 	MDRV_GFXDECODE(downtown_gfxdecodeinfo)
  6264: 	MDRV_PALETTE_LENGTH(512)
  6265: 
  6266: 	MDRV_VIDEO_START(seta_1_layer)
  6267: 	MDRV_VIDEO_UPDATE(seta)
  6268: 
  6269: 	/* sound hardware */
  6270: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6271: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  6272: MACHINE_DRIVER_END
  6273: 
  6274: 
  6275: 
  6276: 
  6277: 
  6278: 
  6279: /***************************************************************************
  6280: 								Athena no Hatena?
  6281: ***************************************************************************/
  6282: 
  6283: static MACHINE_DRIVER_START( atehate )
  6284: 
  6285: 	/* basic machine hardware */
  6286: 	MDRV_CPU_ADD(M68000, 16000000)
  6287: 	MDRV_CPU_MEMORY(atehate_readmem,atehate_writemem)
  6288: 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
  6289: 
  6290: 	MDRV_FRAMES_PER_SECOND(60)
  6291: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6292: 
  6293: 	/* video hardware */
  6294: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6295: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6296: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
  6297: 	MDRV_GFXDECODE(tndrcade_gfxdecodeinfo)
  6298: 	MDRV_PALETTE_LENGTH(512)	/* sprites only */
  6299: 
  6300: 	MDRV_VIDEO_START(seta_no_layers)
  6301: 	MDRV_VIDEO_UPDATE(seta_no_layers) /* just draw the sprites */
  6302: 
  6303: 	/* sound hardware */
  6304: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6305: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  6306: MACHINE_DRIVER_END
  6307: 
  6308: 
  6309: /***************************************************************************
  6310: 								Blandia
  6311: ***************************************************************************/
  6312: 
  6313: /*
  6314: 	Similar to wrofaero, but the layers are 6 planes deep (and
  6315: 	the pens are strangely mapped to palette entries) + the
  6316: 	samples are bankswitched
  6317: */
  6318: 
  6319: static MACHINE_DRIVER_START( blandia )
  6320: 
  6321: 	/* basic machine hardware */
  6322: 	MDRV_CPU_ADD(M68000, 16000000)
  6323: 	MDRV_CPU_MEMORY(blandia_readmem,blandia_writemem)
  6324: 
  6325: 	MDRV_CPU_VBLANK_INT(seta_interrupt_2_and_4,SETA_INTERRUPTS_NUM)
  6326: 
  6327: 	MDRV_FRAMES_PER_SECOND(60)
  6328: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6329: 
  6330: 	/* video hardware */
  6331: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6332: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6333: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
  6334: 	MDRV_GFXDECODE(blandia_gfxdecodeinfo)
  6335: 	MDRV_PALETTE_LENGTH(16*32+16*32+16*32)
  6336: 	MDRV_COLORTABLE_LENGTH(16*32+64*32+64*32)	/* sprites, layer1, layer2 */
  6337: 
  6338: 	MDRV_PALETTE_INIT(blandia)				/* layers 1&2 are 6 planes deep */
  6339: 	MDRV_VIDEO_START(seta_2_layers)
  6340: 	MDRV_VIDEO_EOF(seta_buffer_sprites)		/* Blandia uses sprite buffering */
  6341: 	MDRV_VIDEO_UPDATE(seta)
  6342: 
  6343: 	/* sound hardware */
  6344: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6345: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  6346: MACHINE_DRIVER_END
  6347: 
  6348: static MACHINE_DRIVER_START( blandiap )
  6349: 
  6350: 	/* basic machine hardware */
  6351: 	MDRV_CPU_ADD(M68000, 16000000)
  6352: 	MDRV_CPU_MEMORY(blandiap_readmem,blandiap_writemem)
  6353: 	MDRV_CPU_VBLANK_INT(seta_interrupt_2_and_4,SETA_INTERRUPTS_NUM)
  6354: 
  6355: 	MDRV_FRAMES_PER_SECOND(60)
  6356: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6357: 
  6358: 	/* video hardware */
  6359: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6360: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6361: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
  6362: 	MDRV_GFXDECODE(blandia_gfxdecodeinfo)
  6363: 	MDRV_PALETTE_LENGTH(16*32+16*32+16*32)
  6364: 	MDRV_COLORTABLE_LENGTH(16*32+64*32+64*32)	/* sprites, layer1, layer2 */
  6365: 
  6366: 	MDRV_PALETTE_INIT(blandia)				/* layers 1&2 are 6 planes deep */
  6367: 	MDRV_VIDEO_START(seta_2_layers)
  6368: 	MDRV_VIDEO_EOF(seta_buffer_sprites)		/* Blandia uses sprite buffering */
  6369: 	MDRV_VIDEO_UPDATE(seta)
  6370: 
  6371: 	/* sound hardware */
  6372: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6373: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  6374: MACHINE_DRIVER_END
  6375: 
  6376: 
  6377: /***************************************************************************
  6378: 								Block Carnival
  6379: ***************************************************************************/
  6380: 
  6381: static MACHINE_DRIVER_START( blockcar )
  6382: 
  6383: 	/* basic machine hardware */
  6384: 	MDRV_CPU_ADD(M68000, 8000000)
  6385: 	MDRV_CPU_MEMORY(blockcar_readmem,blockcar_writemem)
  6386: 	MDRV_CPU_VBLANK_INT(irq3_line_hold,1)
  6387: 
  6388: 	MDRV_FRAMES_PER_SECOND(60)
  6389: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6390: 
  6391: 	/* video hardware */
  6392: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6393: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6394: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
  6395: 	MDRV_GFXDECODE(tndrcade_gfxdecodeinfo)
  6396: 	MDRV_PALETTE_LENGTH(512)	/* sprites only */
  6397: 
  6398: 	MDRV_VIDEO_START(seta_no_layers)
  6399: 	MDRV_VIDEO_UPDATE(seta_no_layers) /* just draw the sprites */
  6400: 
  6401: 	/* sound hardware */
  6402: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6403: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  6404: MACHINE_DRIVER_END
  6405: 
  6406: 
  6407: /***************************************************************************
  6408: 								Daioh
  6409: ***************************************************************************/
  6410: 
  6411: static MACHINE_DRIVER_START( daioh )
  6412: 
  6413: 	/* basic machine hardware */
  6414: 	MDRV_CPU_ADD(M68000, 16000000)
  6415: 	MDRV_CPU_MEMORY(daioh_readmem,daioh_writemem)
  6416: 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
  6417: 
  6418: 	MDRV_FRAMES_PER_SECOND(60)
  6419: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6420: 
  6421: 	/* video hardware */
  6422: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6423: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6424: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
  6425: 	MDRV_GFXDECODE(msgundam_gfxdecodeinfo)
  6426: 	MDRV_PALETTE_LENGTH(512 * 3)	/* sprites, layer1, layer2 */
  6427: 
  6428: 	MDRV_VIDEO_START(seta_2_layers)
  6429: 	MDRV_VIDEO_UPDATE(seta)
  6430: 
  6431: 	/* sound hardware */
  6432: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6433: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  6434: MACHINE_DRIVER_END
  6435: 
  6436: /***************************************************************************
  6437: 				Dragon Unit, Quiz Kokology, Strike Gunner
  6438: ***************************************************************************/
  6439: 
  6440: /*
  6441: 	drgnunit,qzkklogy,stg:
  6442: 	lev 1 == lev 3 (writes to $500000, bit 4 -> 1 then 0)
  6443: 	lev 2 drives the game
  6444: */
  6445: 
  6446: static MACHINE_DRIVER_START( drgnunit )
  6447: 
  6448: 	/* basic machine hardware */
  6449: 	MDRV_CPU_ADD(M68000, 8000000)
  6450: 	MDRV_CPU_MEMORY(drgnunit_readmem,drgnunit_writemem)
  6451: 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
  6452: 
  6453: 	MDRV_FRAMES_PER_SECOND(60)
  6454: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6455: 
  6456: 	/* video hardware */
  6457: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6458: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6459: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
  6460: 	MDRV_GFXDECODE(downtown_gfxdecodeinfo)
  6461: 	MDRV_PALETTE_LENGTH(512)
  6462: 
  6463: 	MDRV_VIDEO_START(seta_1_layer)
  6464: 	MDRV_VIDEO_EOF(seta_buffer_sprites)	/* qzkklogy uses sprite buffering */
  6465: 	MDRV_VIDEO_UPDATE(seta)
  6466: 
  6467: 	/* sound hardware */
  6468: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6469: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  6470: MACHINE_DRIVER_END
  6471: 
  6472: /*	Same as qzkklogy, but with a 16MHz CPU and different
  6473: 	layout for the layer's tiles	*/
  6474: 
  6475: static MACHINE_DRIVER_START( qzkklgy2 )
  6476: 
  6477: 	/* basic machine hardware */
  6478: 	MDRV_CPU_ADD(M68000, 16000000)
  6479: 	MDRV_CPU_MEMORY(drgnunit_readmem,drgnunit_writemem)
  6480: 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
  6481: 
  6482: 	MDRV_FRAMES_PER_SECOND(60)
  6483: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6484: 
  6485: 	/* video hardware */
  6486: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6487: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6488: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
  6489: 	MDRV_GFXDECODE(qzkklgy2_gfxdecodeinfo)
  6490: 	MDRV_PALETTE_LENGTH(512)
  6491: 
  6492: 	MDRV_VIDEO_START(seta_1_layer)
  6493: 	MDRV_VIDEO_EOF(seta_buffer_sprites)	/* qzkklogy uses sprite buffering */
  6494: 	MDRV_VIDEO_UPDATE(seta)
  6495: 
  6496: 	/* sound hardware */
  6497: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6498: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  6499: MACHINE_DRIVER_END
  6500: 
  6501: 
  6502: /***************************************************************************
  6503: 								Eight Force
  6504: ***************************************************************************/
  6505: 
  6506: static MACHINE_DRIVER_START( eightfrc )
  6507: 
  6508: 	/* basic machine hardware */
  6509: 	MDRV_CPU_ADD(M68000, 16000000)
  6510: 	MDRV_CPU_MEMORY(wrofaero_readmem,wrofaero_writemem)
  6511: 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
  6512: 
  6513: 	MDRV_FRAMES_PER_SECOND(60)
  6514: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6515: 
  6516: 	/* video hardware */
  6517: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6518: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6519: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
  6520: 	MDRV_GFXDECODE(msgundam_gfxdecodeinfo)
  6521: 	MDRV_PALETTE_LENGTH(512 * 3)	/* sprites, layer1, layer2 */
  6522: 
  6523: 	MDRV_VIDEO_START(seta_2_layers)
  6524: 	MDRV_VIDEO_UPDATE(seta)
  6525: 
  6526: 	/* sound hardware */
  6527: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6528: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  6529: MACHINE_DRIVER_END
  6530: 
  6531: 
  6532: /***************************************************************************
  6533: 						Extreme Downhill / Sokonuke
  6534: ***************************************************************************/
  6535: 
  6536: /*
  6537: 	extdwnhl:
  6538: 	lev 1 == lev 3 (writes to $500000, bit 4 -> 1 then 0)
  6539: 	lev 2 drives the game
  6540: */
  6541: static MACHINE_DRIVER_START( extdwnhl )
  6542: 
  6543: 	/* basic machine hardware */
  6544: 	MDRV_CPU_ADD(M68000, 16000000)
  6545: 	MDRV_CPU_MEMORY(extdwnhl_readmem,extdwnhl_writemem)
  6546: 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
  6547: 
  6548: 	MDRV_FRAMES_PER_SECOND(60)
  6549: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6550: 
  6551: 	/* video hardware */
  6552: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6553: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6554: 	MDRV_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
  6555: 	MDRV_GFXDECODE(zingzip_gfxdecodeinfo)
  6556: 	MDRV_PALETTE_LENGTH(16*32+16*32+16*32)
  6557: 	MDRV_COLORTABLE_LENGTH(16*32+16*32+64*32)	/* sprites, layer2, layer1 */
  6558: 
  6559: 	MDRV_PALETTE_INIT(zingzip)			/* layer 1 gfx is 6 planes deep */
  6560: 	MDRV_VIDEO_START(seta_2_layers)
  6561: 	MDRV_VIDEO_UPDATE(seta)
  6562: 
  6563: 	/* sound hardware */
  6564: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6565: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  6566: MACHINE_DRIVER_END
  6567: 
  6568: 
  6569: /***************************************************************************
  6570: 								Gundhara
  6571: ***************************************************************************/
  6572: #if __uPD71054_TIMER 
  6573: static INTERRUPT_GEN( wrofaero_interrupt )
  6574: {
  6575: 	cpu_set_irq_line( 0, 2, HOLD_LINE );
  6576: }
  6577: 
  6578: MACHINE_INIT( wrofaero ) { uPD71054_timer_init(); }
  6579: MACHINE_STOP( wrofaero ) { uPD71054_timer_stop(); }
  6580: #endif	// __uPD71054_TIMER 
  6581: 
  6582: 
  6583: 
  6584: /*
  6585: 	lev 1: sample end? (needed in zombraid otherwise music stops)
  6586: 		   gundhara's debug code calls it "BUT_IPL" and does nothing
  6587: 	lev 2: VBlank
  6588: 	lev 4: Sound (generated by a timer mapped at $d00000-6 ?)
  6589: */
  6590: static MACHINE_DRIVER_START( gundhara )
  6591: 
  6592: 	/* basic machine hardware */
  6593: 	MDRV_CPU_ADD(M68000, 16000000)
  6594: 	MDRV_CPU_MEMORY(wrofaero_readmem,wrofaero_writemem)
  6595: #if	__uPD71054_TIMER 
  6596: //	MDRV_CPU_VBLANK_INT( wrofaero_interrupt, 1 )
  6597: 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
  6598: #else 
  6599: 	MDRV_CPU_VBLANK_INT(seta_interrupt_2_and_4,SETA_INTERRUPTS_NUM)
  6600: #endif	// __uPD71054_TIMER 
  6601: 
  6602: 	MDRV_FRAMES_PER_SECOND(60)
  6603: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6604: 
  6605: #if	__uPD71054_TIMER 
  6606: 	MDRV_MACHINE_INIT( wrofaero )
  6607: 	MDRV_MACHINE_STOP( wrofaero )
  6608: #endif	// __uPD71054_TIMER 
  6609: 
  6610: 	/* video hardware */
  6611: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6612: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6613: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
  6614: 	MDRV_GFXDECODE(jjsquawk_gfxdecodeinfo)
  6615: 	MDRV_PALETTE_LENGTH(16*32+16*32+16*32)
  6616: 	MDRV_COLORTABLE_LENGTH(16*32+64*32+64*32)	/* sprites, layer2, layer1 */
  6617: 
  6618: 	MDRV_PALETTE_INIT(gundhara)				/* layers are 6 planes deep (but have only 4 palettes) */
  6619: 	MDRV_VIDEO_START(seta_2_layers)
  6620: 	MDRV_VIDEO_UPDATE(seta)
  6621: 
  6622: 	/* sound hardware */
  6623: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6624: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  6625: MACHINE_DRIVER_END
  6626: 
  6627: 
  6628: /***************************************************************************
  6629: 								J.J.Squawkers
  6630: ***************************************************************************/
  6631: 
  6632: /*
  6633: 	lev 1 == lev 3 (writes to $500000, bit 4 -> 1 then 0)
  6634: 	lev 2 drives the game
  6635: */
  6636: static MACHINE_DRIVER_START( jjsquawk )
  6637: 
  6638: 	/* basic machine hardware */
  6639: 	MDRV_CPU_ADD(M68000, 16000000)
  6640: 	MDRV_CPU_MEMORY(wrofaero_readmem,wrofaero_writemem)
  6641: 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
  6642: 
  6643: 	MDRV_FRAMES_PER_SECOND(60)
  6644: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6645: 
  6646: 	/* video hardware */
  6647: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6648: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6649: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
  6650: 	MDRV_GFXDECODE(jjsquawk_gfxdecodeinfo)
  6651: 	MDRV_PALETTE_LENGTH(16*32+16*32+16*32)
  6652: 	MDRV_COLORTABLE_LENGTH(16*32+64*32+64*32)	/* sprites, layer2, layer1 */
  6653: 
  6654: 	MDRV_PALETTE_INIT(jjsquawk)				/* layers are 6 planes deep */
  6655: 	MDRV_VIDEO_START(seta_2_layers)
  6656: 	MDRV_VIDEO_UPDATE(seta)
  6657: 
  6658: 	/* sound hardware */
  6659: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6660: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  6661: MACHINE_DRIVER_END
  6662: 
  6663: /***************************************************************************
  6664: 				(Kamen) Masked Riders Club Battle Race
  6665: ***************************************************************************/
  6666: 
  6667: /*	kamenrid: lev 2 by vblank, lev 4 by timer */
  6668: static MACHINE_DRIVER_START( kamenrid )
  6669: 
  6670: 	/* basic machine hardware */
  6671: 	MDRV_CPU_ADD(M68000, 16000000)
  6672: 	MDRV_CPU_MEMORY(kamenrid_readmem,kamenrid_writemem)
  6673: 	MDRV_CPU_VBLANK_INT( wrofaero_interrupt, 1 )
  6674: 
  6675: 	MDRV_FRAMES_PER_SECOND(60)
  6676: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6677: 
  6678: #if	__uPD71054_TIMER 
  6679: 	MDRV_MACHINE_INIT( wrofaero )
  6680: 	MDRV_MACHINE_STOP( wrofaero )
  6681: #endif	// __uPD71054_TIMER 
  6682: 
  6683: 	/* video hardware */
  6684: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6685: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6686: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
  6687: 	MDRV_GFXDECODE(msgundam_gfxdecodeinfo)
  6688: 	MDRV_PALETTE_LENGTH(512 * 3)	/* sprites, layer2, layer1 */
  6689: 
  6690: 	MDRV_VIDEO_START(seta_2_layers)
  6691: 	MDRV_VIDEO_UPDATE(seta)
  6692: 
  6693: 	/* sound hardware */
  6694: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6695: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz) // ?
  6696: MACHINE_DRIVER_END
  6697: 
  6698: 
  6699: /***************************************************************************
  6700: 								Krazy Bowl
  6701: ***************************************************************************/
  6702: 
  6703: static MACHINE_DRIVER_START( krzybowl )
  6704: 
  6705: 	/* basic machine hardware */
  6706: 	MDRV_CPU_ADD(M68000, 16000000)
  6707: 	MDRV_CPU_MEMORY(krzybowl_readmem,krzybowl_writemem)
  6708: 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
  6709: 
  6710: 	MDRV_FRAMES_PER_SECOND(60)
  6711: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6712: 
  6713: 	/* video hardware */
  6714: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6715: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6716: 	MDRV_VISIBLE_AREA(1*8, 39*8-1, 1*8, 31*8-1)
  6717: 	MDRV_GFXDECODE(tndrcade_gfxdecodeinfo)
  6718: 	MDRV_PALETTE_LENGTH(512)	/* sprites only */
  6719: 
  6720: 	MDRV_VIDEO_START(seta_no_layers)
  6721: 	MDRV_VIDEO_UPDATE(seta_no_layers) /* just draw the sprites */
  6722: 
  6723: 	/* sound hardware */
  6724: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6725: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  6726: MACHINE_DRIVER_END
  6727: 
  6728: 
  6729: /***************************************************************************
  6730: 								Mad Shark
  6731: ***************************************************************************/
  6732: 
  6733: /*	madshark: lev 2 by vblank, lev 4 by timer */
  6734: static MACHINE_DRIVER_START( madshark )
  6735: 
  6736: 	/* basic machine hardware */
  6737: 	MDRV_CPU_ADD(M68000, 16000000)
  6738: 	MDRV_CPU_MEMORY(madshark_readmem,madshark_writemem)
  6739: 	MDRV_CPU_VBLANK_INT( wrofaero_interrupt, 1 )
  6740: 
  6741: 	MDRV_FRAMES_PER_SECOND(60)
  6742: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6743: 
  6744: #if	__uPD71054_TIMER 
  6745: 	MDRV_MACHINE_INIT( wrofaero )
  6746: 	MDRV_MACHINE_STOP( wrofaero )
  6747: #endif	// __uPD71054_TIMER 
  6748: 
  6749: 	/* video hardware */
  6750: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6751: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6752: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
  6753: 
  6754: 	MDRV_GFXDECODE(jjsquawk_gfxdecodeinfo)
  6755: 	MDRV_PALETTE_LENGTH(16*32+16*32+16*32)
  6756: 	MDRV_COLORTABLE_LENGTH(16*32+64*32+64*32)	/* sprites, layer2, layer1 */
  6757: 
  6758: 	MDRV_PALETTE_INIT(jjsquawk)				/* layers are 6 planes deep */
  6759: 
  6760: 	MDRV_VIDEO_START(seta_2_layers)
  6761: 	MDRV_VIDEO_UPDATE(seta)
  6762: 
  6763: 	/* sound hardware */
  6764: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6765: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  6766: MACHINE_DRIVER_END
  6767: 
  6768: /***************************************************************************
  6769: 							Mobile Suit Gundam
  6770: ***************************************************************************/
  6771: 
  6772: /* msgundam lev 2 == lev 6 ! */
  6773: 
  6774: static MACHINE_DRIVER_START( msgundam )
  6775: 
  6776: 	/* basic machine hardware */
  6777: 	MDRV_CPU_ADD(M68000, 16000000)
  6778: 	MDRV_CPU_MEMORY(msgundam_readmem,msgundam_writemem)
  6779: #if	__uPD71054_TIMER 
  6780: 	MDRV_CPU_VBLANK_INT( wrofaero_interrupt, 1 )
  6781: #else 
  6782: 	MDRV_CPU_VBLANK_INT(seta_interrupt_2_and_4,SETA_INTERRUPTS_NUM)
  6783: #endif	// __uPD71054_TIMER 
  6784: 
  6785: 	MDRV_FRAMES_PER_SECOND(56.66)	/* between 56 and 57 to match a real PCB's game speed */
  6786: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6787: 
  6788: #if	__uPD71054_TIMER 
  6789: 	MDRV_MACHINE_INIT( wrofaero )
  6790: 	MDRV_MACHINE_STOP( wrofaero )
  6791: #endif	// __uPD71054_TIMER 
  6792: 
  6793: 	/* video hardware */
  6794: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6795: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6796: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
  6797: 	MDRV_GFXDECODE(msgundam_gfxdecodeinfo)
  6798: 	MDRV_PALETTE_LENGTH(512 * 3)	/* sprites, layer2, layer1 */
  6799: 
  6800: 	MDRV_VIDEO_START(seta_2_layers)
  6801: 	MDRV_VIDEO_EOF(seta_buffer_sprites)	/* msgundam uses sprite buffering */
  6802: 	MDRV_VIDEO_UPDATE(seta)
  6803: 
  6804: 	/* sound hardware */
  6805: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6806: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  6807: MACHINE_DRIVER_END
  6808: 
  6809: 
  6810: 
  6811: /***************************************************************************
  6812: 							Oishii Puzzle
  6813: ***************************************************************************/
  6814: 
  6815: static MACHINE_DRIVER_START( oisipuzl )
  6816: 
  6817: 	/* basic machine hardware */
  6818: 	MDRV_CPU_ADD(M68000, 16000000)
  6819: 	MDRV_CPU_MEMORY(oisipuzl_readmem,oisipuzl_writemem)
  6820: 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
  6821: 
  6822: 	MDRV_FRAMES_PER_SECOND(60)
  6823: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6824: 
  6825: 	/* video hardware */
  6826: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6827: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6828: 	MDRV_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
  6829: 	MDRV_GFXDECODE(msgundam_gfxdecodeinfo)
  6830: 	MDRV_PALETTE_LENGTH(512 * 3)	/* sprites, layer2, layer1 */
  6831: 
  6832: 	MDRV_VIDEO_START(oisipuzl_2_layers)	// flip is inverted for the tilemaps
  6833: 	MDRV_VIDEO_UPDATE(seta)
  6834: 
  6835: 	/* sound hardware */
  6836: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6837: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  6838: MACHINE_DRIVER_END
  6839: 
  6840: /***************************************************************************
  6841: 							Triple Fun
  6842: ***************************************************************************/
  6843: 
  6844: /* same as oisipuzl but with different interrupts and sound */
  6845: 
  6846: static struct OKIM6295interface okim6295_interface =
  6847: {
  6848: 	1,						/* 1 chip */
  6849: 	{ 6000 },	/* ???? */
  6850: 	{ REGION_SOUND1 },		/* memory region */
  6851: 	{ 100 }
  6852: };
  6853: 
  6854: static MACHINE_DRIVER_START( triplfun )
  6855: 
  6856: 	/* basic machine hardware */
  6857: 	MDRV_CPU_ADD(M68000, 16000000)
  6858: 	MDRV_CPU_MEMORY(triplfun_readmem,triplfun_writemem)
  6859: 	MDRV_CPU_VBLANK_INT(irq3_line_hold,1)
  6860: 
  6861: 	MDRV_FRAMES_PER_SECOND(60)
  6862: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6863: 
  6864: 	/* video hardware */
  6865: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6866: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6867: 	MDRV_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
  6868: 	MDRV_GFXDECODE(msgundam_gfxdecodeinfo)
  6869: 	MDRV_PALETTE_LENGTH(512 * 3)	/* sprites, layer2, layer1 */
  6870: 
  6871: 	MDRV_VIDEO_START(oisipuzl_2_layers)	// flip is inverted for the tilemaps
  6872: 	MDRV_VIDEO_UPDATE(seta)
  6873: 
  6874: 	/* sound hardware */
  6875: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6876: 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
  6877: MACHINE_DRIVER_END
  6878: 
  6879: /***************************************************************************
  6880: 							Pro Mahjong Kiwame
  6881: ***************************************************************************/
  6882: 
  6883: static MACHINE_DRIVER_START( kiwame )
  6884: 
  6885: 	/* basic machine hardware */
  6886: 	MDRV_CPU_ADD(M68000, 16000000)
  6887: 	MDRV_CPU_MEMORY(kiwame_readmem,kiwame_writemem)
  6888: 	MDRV_CPU_VBLANK_INT(irq1_line_hold,1)/* lev 1-7 are the same. WARNING:
  6889: 								   the interrupt table is written to. */
  6890: 	MDRV_FRAMES_PER_SECOND(60)
  6891: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6892: 
  6893: 	/* video hardware */
  6894: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6895: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6896: 	MDRV_VISIBLE_AREA(0*8, 56*8-1, 1*8, 31*8-1)
  6897: 	MDRV_GFXDECODE(tndrcade_gfxdecodeinfo)
  6898: 	MDRV_PALETTE_LENGTH(512)	/* sprites only */
  6899: 
  6900: 	MDRV_VIDEO_START(seta_no_layers)
  6901: 	MDRV_VIDEO_UPDATE(seta_no_layers) /* just draw the sprites */
  6902: 
  6903: 	/* sound hardware */
  6904: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6905: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  6906: MACHINE_DRIVER_END
  6907: 
  6908: 
  6909: 
  6910: /***************************************************************************
  6911: 									Rezon
  6912: ***************************************************************************/
  6913: 
  6914: /* pretty much like wrofaero, but ints are 1&2, not 2&4 */
  6915: 
  6916: static MACHINE_DRIVER_START( rezon )
  6917: 
  6918: 	/* basic machine hardware */
  6919: 	MDRV_CPU_ADD(M68000, 16000000)
  6920: 	MDRV_CPU_MEMORY(wrofaero_readmem,wrofaero_writemem)
  6921: 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
  6922: 
  6923: 	MDRV_FRAMES_PER_SECOND(60)
  6924: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6925: 
  6926: 	/* video hardware */
  6927: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6928: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6929: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
  6930: 	MDRV_GFXDECODE(msgundam_gfxdecodeinfo)
  6931: 	MDRV_PALETTE_LENGTH(512 * 3)	/* sprites, layer1, layer2 */
  6932: 
  6933: 	MDRV_VIDEO_START(seta_2_layers)
  6934: 	MDRV_VIDEO_UPDATE(seta)
  6935: 
  6936: 	/* sound hardware */
  6937: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6938: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  6939: MACHINE_DRIVER_END
  6940: 
  6941: 
  6942: 
  6943: /***************************************************************************
  6944: 						Thunder & Lightning / Wit's
  6945: ***************************************************************************/
  6946: 
  6947: /*	thunderl lev 2 = lev 3 - other levels lead to an error */
  6948: 
  6949: static MACHINE_DRIVER_START( thunderl )
  6950: 
  6951: 	/* basic machine hardware */
  6952: 	MDRV_CPU_ADD(M68000, 8000000)
  6953: 	MDRV_CPU_MEMORY(thunderl_readmem,thunderl_writemem)
  6954: 	MDRV_CPU_VBLANK_INT(irq2_line_hold,1)
  6955: 
  6956: 	MDRV_FRAMES_PER_SECOND(60)
  6957: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6958: 
  6959: 	/* video hardware */
  6960: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6961: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6962: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
  6963: 	MDRV_GFXDECODE(tndrcade_gfxdecodeinfo)
  6964: 	MDRV_PALETTE_LENGTH(512)	/* sprites only */
  6965: 
  6966: 	MDRV_VIDEO_START(seta_no_layers)
  6967: 	MDRV_VIDEO_UPDATE(seta_no_layers) /* just draw the sprites */
  6968: 
  6969: 	/* sound hardware */
  6970: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6971: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  6972: MACHINE_DRIVER_END
  6973: 
  6974: static MACHINE_DRIVER_START( wits )
  6975: 
  6976: 	/* basic machine hardware */
  6977: 	MDRV_CPU_ADD(M68000, 8000000)
  6978: 	MDRV_CPU_MEMORY(thunderl_readmem,thunderl_writemem)
  6979: 	MDRV_CPU_VBLANK_INT(irq2_line_hold,1)
  6980: 
  6981: 	MDRV_FRAMES_PER_SECOND(60)
  6982: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  6983: 
  6984: 	/* video hardware */
  6985: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  6986: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  6987: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
  6988: 	MDRV_GFXDECODE(tndrcade_gfxdecodeinfo)
  6989: 	MDRV_PALETTE_LENGTH(512)	/* sprites only */
  6990: 
  6991: 	MDRV_VIDEO_START(seta_no_layers)
  6992: 	MDRV_VIDEO_UPDATE(seta_no_layers) /* just draw the sprites */
  6993: 
  6994: 	/* sound hardware */
  6995: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  6996: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  6997: MACHINE_DRIVER_END
  6998: 
  6999: 
  7000: 
  7001: /***************************************************************************
  7002: 					Ultraman Club / SD Gundam Neo Battling
  7003: ***************************************************************************/
  7004: 
  7005: static MACHINE_DRIVER_START( umanclub )
  7006: 
  7007: 	/* basic machine hardware */
  7008: 	MDRV_CPU_ADD(M68000, 16000000)
  7009: 	MDRV_CPU_MEMORY(umanclub_readmem,umanclub_writemem)
  7010: 	MDRV_CPU_VBLANK_INT(irq3_line_hold,1)
  7011: 
  7012: 	MDRV_FRAMES_PER_SECOND(60)
  7013: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  7014: 
  7015: 	/* video hardware */
  7016: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  7017: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  7018: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
  7019: 	MDRV_GFXDECODE(tndrcade_gfxdecodeinfo)
  7020: 	MDRV_PALETTE_LENGTH(512)
  7021: 
  7022: 	MDRV_VIDEO_START(seta_no_layers)
  7023: 	MDRV_VIDEO_UPDATE(seta_no_layers) /* just draw the sprites */
  7024: 
  7025: 	/* sound hardware */
  7026: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  7027: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  7028: MACHINE_DRIVER_END
  7029: 
  7030: 
  7031: /***************************************************************************
  7032: 							Ultra Toukond Densetsu
  7033: ***************************************************************************/
  7034: 
  7035: static MACHINE_DRIVER_START( utoukond )
  7036: 
  7037: 	/* basic machine hardware */
  7038: 	MDRV_CPU_ADD(M68000, 16000000)
  7039: 	MDRV_CPU_MEMORY(utoukond_readmem,utoukond_writemem)
  7040: 	MDRV_CPU_VBLANK_INT(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM)
  7041: 
  7042: 	MDRV_CPU_ADD(Z80, 4000000)
  7043: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
  7044: 	MDRV_CPU_MEMORY(utoukond_sound_readmem,utoukond_sound_writemem)
  7045: 	MDRV_CPU_PORTS(utoukond_sound_readport,utoukond_sound_writeport)
  7046: 
  7047: 	MDRV_FRAMES_PER_SECOND(60)
  7048: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  7049: 
  7050: 	/* video hardware */
  7051: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  7052: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  7053: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
  7054: 
  7055: 	MDRV_GFXDECODE(msgundam_gfxdecodeinfo)
  7056: 	MDRV_PALETTE_LENGTH(512 * 3)	/* sprites, layer2, layer1 */
  7057: 
  7058: 	MDRV_VIDEO_START(seta_2_layers)
  7059: 	MDRV_VIDEO_UPDATE(seta)
  7060: 
  7061: 	/* sound hardware */
  7062: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  7063: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  7064: 	MDRV_SOUND_ADD(YM2612, utoukond_ym3438_intf)
  7065: MACHINE_DRIVER_END
  7066: 
  7067: 
  7068: /***************************************************************************
  7069: 								War of Aero
  7070: ***************************************************************************/
  7071: 
  7072: static MACHINE_DRIVER_START( wrofaero )
  7073: 
  7074: 	/* basic machine hardware */
  7075: 	MDRV_CPU_ADD(M68000, 16000000)
  7076: 	MDRV_CPU_MEMORY(wrofaero_readmem,wrofaero_writemem)
  7077: #if	__uPD71054_TIMER 
  7078: 	MDRV_CPU_VBLANK_INT( wrofaero_interrupt, 1 )
  7079: #else 
  7080: 	MDRV_CPU_VBLANK_INT(seta_interrupt_2_and_4,SETA_INTERRUPTS_NUM)
  7081: #endif	// __uPD71054_TIMER 
  7082: 
  7083: 	MDRV_FRAMES_PER_SECOND(60)
  7084: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  7085: 
  7086: #if	__uPD71054_TIMER 
  7087: 	MDRV_MACHINE_INIT( wrofaero )
  7088: 	MDRV_MACHINE_STOP( wrofaero )
  7089: #endif	// __uPD71054_TIMER 
  7090: 
  7091: 	/* video hardware */
  7092: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  7093: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  7094: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
  7095: 	MDRV_GFXDECODE(msgundam_gfxdecodeinfo)
  7096: 	MDRV_PALETTE_LENGTH(512 * 3)	/* sprites, layer1, layer2 */
  7097: 
  7098: 	MDRV_VIDEO_START(seta_2_layers)
  7099: 	MDRV_VIDEO_UPDATE(seta)
  7100: 
  7101: 	/* sound hardware */
  7102: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  7103: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  7104: MACHINE_DRIVER_END
  7105: 
  7106: 
  7107: 
  7108: 
  7109: /***************************************************************************
  7110: 								Zing Zing Zip
  7111: ***************************************************************************/
  7112: 
  7113: /* zingzip lev 3 = lev 2 + lev 1 !
  7114:    SR = 2100 -> lev1 is ignored so we must supply int 3, since the routine
  7115:    at int 1 is necessary: it plays the background music.
  7116: */
  7117: 
  7118: static MACHINE_DRIVER_START( zingzip )
  7119: 
  7120: 	/* basic machine hardware */
  7121: 	MDRV_CPU_ADD(M68000, 16000000)
  7122: 	MDRV_CPU_MEMORY(wrofaero_readmem,wrofaero_writemem)
  7123: 	MDRV_CPU_VBLANK_INT(irq3_line_hold,1)
  7124: 
  7125: 	MDRV_FRAMES_PER_SECOND(60)
  7126: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  7127: 
  7128: 	/* video hardware */
  7129: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  7130: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  7131: 	MDRV_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
  7132: 	MDRV_GFXDECODE(zingzip_gfxdecodeinfo)
  7133: 	MDRV_PALETTE_LENGTH(16*32+16*32+16*32)
  7134: 	MDRV_COLORTABLE_LENGTH(16*32+16*32+64*32)	/* sprites, layer2, layer1 */
  7135: 
  7136: 	MDRV_PALETTE_INIT(zingzip)				/* layer 1 gfx is 6 planes deep */
  7137: 	MDRV_VIDEO_START(seta_2_layers)
  7138: 	MDRV_VIDEO_UPDATE(seta)
  7139: 
  7140: 	/* sound hardware */
  7141: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  7142: 	MDRV_SOUND_ADD(X1_010, seta_sound_intf_16MHz)
  7143: MACHINE_DRIVER_END
  7144: 
  7145: 
  7146: 
  7147: 
  7148: /***************************************************************************
  7149: 
  7150: 								ROMs Loading
  7151: 
  7152: ***************************************************************************/
  7153: 
  7154: ROM_START( tndrcade )
  7155: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
  7156: 	ROM_LOAD16_BYTE( "ua0-4.1l", 0x000000, 0x020000, CRC(73bd63eb) SHA1(5d410d2a77f1c3c4c37a9fe1e56019335891fe67) )
  7157: 	ROM_LOAD16_BYTE( "ua0-2.1h", 0x000001, 0x020000, CRC(e96194b1) SHA1(c5084d06a2e4f7ba3112be1ccc314f7d712bb45e) )
  7158: 	ROM_LOAD16_BYTE( "ua0-3.1k", 0x040000, 0x020000, CRC(0a7b1c41) SHA1(ede14ac08d7e63972c21fd2d0717276e73153f18) )
  7159: 	ROM_LOAD16_BYTE( "ua0-1.1g", 0x040001, 0x020000, CRC(fa906626) SHA1(a1d28328afa8dda98dd20f3f5a19c0dbf2ebaf36) )
  7160: 
  7161: 	ROM_REGION( 0x02c000, REGION_CPU2, 0 )		/* 65c02 Code */
  7162: 	ROM_LOAD( "ua10-5.8m", 0x004000, 0x020000, CRC(8eff6122) SHA1(1adc1643018e612df85643014b78525106478889) )	// $1fffd=2 (country code)
  7163: 	ROM_RELOAD(            0x00c000, 0x020000             )
  7164: 
  7165: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7166: 	ROM_LOAD( "ua0-10", 0x000000, 0x040000, CRC(aa7b6757) SHA1(9157cc930760c846cce95e18bf38e7ea241f7a8e) )
  7167: 	ROM_LOAD( "ua0-11", 0x040000, 0x040000, CRC(11eaf931) SHA1(ba1dfc4b0f87b1bbdc6c2e36deaecda2b4655d57) )
  7168: 	ROM_LOAD( "ua0-12", 0x080000, 0x040000, CRC(00b5381c) SHA1(6fc3138dd0e2b3f99872b1f0d177094df5bed39d) )
  7169: 	ROM_LOAD( "ua0-13", 0x0c0000, 0x040000, CRC(8f9a0ed3) SHA1(61315312fdb2fe090cd8e99a1ce3ecba46b466e9) )
  7170: 	ROM_LOAD( "ua0-6",  0x100000, 0x040000, CRC(14ecc7bb) SHA1(920983f5086462f8f06dc9cf7bebffeeb7187977) )
  7171: 	ROM_LOAD( "ua0-7",  0x140000, 0x040000, CRC(ff1a4e68) SHA1(d732df7d139995814969a603c9c4e9f8b068b1a3) )
  7172: 	ROM_LOAD( "ua0-8",  0x180000, 0x040000, CRC(936e1884) SHA1(9ad495b88e124d08a7141611ed1897b6e2abd412) )
  7173: 	ROM_LOAD( "ua0-9",  0x1c0000, 0x040000, CRC(e812371c) SHA1(b0e1e0c143da743bf9f7b48d657594e76f4970ed) )
  7174: ROM_END
  7175: 
  7176: ROM_START( tndrcadj )
  7177: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
  7178: 	ROM_LOAD16_BYTE( "ua0-4.1l", 0x000000, 0x020000, CRC(73bd63eb) SHA1(5d410d2a77f1c3c4c37a9fe1e56019335891fe67) )
  7179: 	ROM_LOAD16_BYTE( "ua0-2.1h", 0x000001, 0x020000, CRC(e96194b1) SHA1(c5084d06a2e4f7ba3112be1ccc314f7d712bb45e) )
  7180: 	ROM_LOAD16_BYTE( "ua0-3.1k", 0x040000, 0x020000, CRC(0a7b1c41) SHA1(ede14ac08d7e63972c21fd2d0717276e73153f18) )
  7181: 	ROM_LOAD16_BYTE( "ua0-1.1g", 0x040001, 0x020000, CRC(fa906626) SHA1(a1d28328afa8dda98dd20f3f5a19c0dbf2ebaf36) )
  7182: 
  7183: 	ROM_REGION( 0x02c000, REGION_CPU2, 0 )		/* 65c02 Code */
  7184: 	ROM_LOAD( "thcade5.bin", 0x004000, 0x020000, CRC(8cb9df7b) SHA1(5b504657f4cc1ea265913ff670aed108ceddba46) )	// $1fffd=1 (country code jp)
  7185: 	ROM_RELOAD(              0x00c000, 0x020000             )
  7186: 
  7187: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7188: 	ROM_LOAD( "ua0-10", 0x000000, 0x040000, CRC(aa7b6757) SHA1(9157cc930760c846cce95e18bf38e7ea241f7a8e) )
  7189: 	ROM_LOAD( "ua0-11", 0x040000, 0x040000, CRC(11eaf931) SHA1(ba1dfc4b0f87b1bbdc6c2e36deaecda2b4655d57) )
  7190: 	ROM_LOAD( "ua0-12", 0x080000, 0x040000, CRC(00b5381c) SHA1(6fc3138dd0e2b3f99872b1f0d177094df5bed39d) )
  7191: 	ROM_LOAD( "ua0-13", 0x0c0000, 0x040000, CRC(8f9a0ed3) SHA1(61315312fdb2fe090cd8e99a1ce3ecba46b466e9) )
  7192: 	ROM_LOAD( "ua0-6",  0x100000, 0x040000, CRC(14ecc7bb) SHA1(920983f5086462f8f06dc9cf7bebffeeb7187977) )
  7193: 	ROM_LOAD( "ua0-7",  0x140000, 0x040000, CRC(ff1a4e68) SHA1(d732df7d139995814969a603c9c4e9f8b068b1a3) )
  7194: 	ROM_LOAD( "ua0-8",  0x180000, 0x040000, CRC(936e1884) SHA1(9ad495b88e124d08a7141611ed1897b6e2abd412) )
  7195: 	ROM_LOAD( "ua0-9",  0x1c0000, 0x040000, CRC(e812371c) SHA1(b0e1e0c143da743bf9f7b48d657594e76f4970ed) )
  7196: ROM_END
  7197: 
  7198: ROM_START( twineagl )
  7199: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
  7200: 	ROM_LOAD16_WORD( "ua2-1", 0x000000, 0x080000, CRC(5c3fe531) SHA1(e484dad25cda906fb1b0606fb10ae50056c64e6a) )
  7201: 
  7202: 	ROM_REGION( 0x010000, REGION_CPU2, 0 )		/* 65c02 Code */
  7203: 	ROM_LOAD( "ua2-2", 0x006000, 0x002000, CRC(783ca84e) SHA1(21e19f74812de50e98b755dd1f68c187dd1e7e81) )
  7204: 	ROM_RELOAD(        0x008000, 0x002000  )
  7205: 	ROM_RELOAD(        0x00a000, 0x002000  )
  7206: 	ROM_RELOAD(        0x00c000, 0x002000  )
  7207: 	ROM_RELOAD(        0x00e000, 0x002000  )
  7208: 
  7209: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7210: 	ROM_LOAD16_BYTE( "ua2-4",  0x000000, 0x040000, CRC(8b7532d6) SHA1(ec42d21bc44f004282f822b3da36b5442eabd87a) )
  7211: 	ROM_LOAD16_BYTE( "ua2-3",  0x000001, 0x040000, CRC(1124417a) SHA1(c908f51b943188946486c639a0cb9712114b5437) )
  7212: 	ROM_LOAD16_BYTE( "ua2-6",  0x080000, 0x040000, CRC(99d8dbba) SHA1(ac2a3c5cad23e0207eba52935c72e23203c8e0af) )
  7213: 	ROM_LOAD16_BYTE( "ua2-5",  0x080001, 0x040000, CRC(6e450d28) SHA1(d0050afcc3f425ac70768271c9d2d55ab7fba622) )
  7214: 
  7215: 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7216: 	ROM_LOAD( "ua2-8",  0x000000, 0x080000, CRC(7d3a8d73) SHA1(d6a0bea124d7d228818f8ea8c804ad2ba8cead4b) )
  7217: 	ROM_LOAD( "ua2-10", 0x080000, 0x080000, CRC(5bbe1f56) SHA1(309bc43884816dafeb0f47e71ff5272d4d7cac54) )
  7218: 	ROM_LOAD( "ua2-7",  0x100000, 0x080000, CRC(fce56907) SHA1(5d0d2d6dfdbadb21f1d61d84b8992ec0e527e18d) )
  7219: 	ROM_LOAD( "ua2-9",  0x180000, 0x080000, CRC(a451eae9) SHA1(c236c92d9ecf56f8d8f4a5ee493e3791be0d3db4) )
  7220: 
  7221: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7222: 	ROM_LOAD( "ua2-11", 0x000000, 0x080000, CRC(624e6057) SHA1(0e8e4d4b6bc5febf5ca83eea92e3ed06f16e7df0) )
  7223: 	ROM_LOAD( "ua2-12", 0x080000, 0x080000, CRC(3068ff64) SHA1(7c06a48a99ebb9e7f3709f25bd0caa4c9d7a2688) )
  7224: ROM_END
  7225: 
  7226: ROM_START( downtown )
  7227: 	ROM_REGION( 0x0a0000, REGION_CPU1, 0 )		/* 68000 Code */
  7228: 	ROM_LOAD16_BYTE( "ud2001.000", 0x000000, 0x040000, CRC(f1965260) SHA1(c0560342238d75f9b81ae9f3408cacfbcd331529) )
  7229: 	ROM_LOAD16_BYTE( "ud2001.003", 0x000001, 0x040000, CRC(e7d5fa5f) SHA1(48612514598711aa73bf75243c842f0aca72f3d0) )
  7230: 	ROM_LOAD16_BYTE( "ud2000.002", 0x080000, 0x010000, CRC(ca976b24) SHA1(3b2e362f414b0103dd02c9af6a5d480ec2cf9ca3) )
  7231: 	ROM_LOAD16_BYTE( "ud2000.001", 0x080001, 0x010000, CRC(1708aebd) SHA1(337a9e8d5da5b13a7ea4ee728de6b82fe92e16c5) )
  7232: 
  7233: 	ROM_REGION( 0x04c000, REGION_CPU2, 0 )		/* 65c02 Code */
  7234: 	ROM_LOAD( "ud2002.004", 0x004000, 0x040000, CRC(bbd538b1) SHA1(de4c43bfc4004a14f9f66b5e8ff192b00c45c003) )
  7235: 	ROM_RELOAD(             0x00c000, 0x040000             )
  7236: 
  7237: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7238: 	ROM_LOAD16_BYTE( "ud2005.t01", 0x000000, 0x080000, CRC(77e6d249) SHA1(cdf67211cd447858293188511e826640fe24078b) )
  7239: 	ROM_LOAD16_BYTE( "ud2006.t02", 0x000001, 0x080000, CRC(6e381bf2) SHA1(ba46e019d2991dec539444ef7376fe0e9a6a8b75) )
  7240: 	ROM_LOAD16_BYTE( "ud2007.t03", 0x100000, 0x080000, CRC(737b4971) SHA1(2a034011b0ac03d532a89b544f4eec497ac7ee80) )
  7241: 	ROM_LOAD16_BYTE( "ud2008.t04", 0x100001, 0x080000, CRC(99b9d757) SHA1(c3a763993305110ec2a0b231d75fbef4c385d21b) )
  7242: 
  7243: 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7244: 	ROM_LOAD( "ud2009.t05", 0x000000, 0x080000, CRC(aee6c581) SHA1(5b2150a308ca12eea8148d0bbff663b3baf0c831) )
  7245: 	ROM_LOAD( "ud2010.t06", 0x080000, 0x080000, CRC(3d399d54) SHA1(7d9036e73fbf0e9c3b976336e3e4786b17b2f4fc) )
  7246: 
  7247: 	ROM_REGION( 0x080000, REGION_SOUND1, 0 )	/* Samples */
  7248: 	ROM_LOAD( "ud2011.t07", 0x000000, 0x080000, CRC(9c9ff69f) SHA1(3840b654f4f709bc4c03dfe4ee79369d5c70dd62) )
  7249: ROM_END
  7250: 
  7251: ROM_START( usclssic )
  7252: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
  7253: 	ROM_LOAD16_BYTE( "ue2001.u20", 0x000000, 0x020000, CRC(18b41421) SHA1(74e96071d46eda152aaa82cf87d09203f225b504) )
  7254: 	ROM_LOAD16_BYTE( "ue2000.u14", 0x000001, 0x020000, CRC(69454bc2) SHA1(19a3b6ca65770353401544c50e04d895e391612c) )
  7255: 	ROM_LOAD16_BYTE( "ue2002.u22", 0x040000, 0x020000, CRC(a7bbe248) SHA1(8f7ffeffb8b6ef0e1ab5e7fbba31a1b97bbd7f8c) )
  7256: 	ROM_LOAD16_BYTE( "ue2003.u30", 0x040001, 0x020000, CRC(29601906) SHA1(9cdf2d80a72317a4eb7a335aaaae381822da24b1) )
  7257: 
  7258: 	ROM_REGION( 0x04c000, REGION_CPU2, 0 )		/* 65c02 Code */
  7259: 	ROM_LOAD( "ue002u61.004", 0x004000, 0x040000, CRC(476e9f60) SHA1(940c09eb472652a88d5d34130270ff55a5f5ba27) )
  7260: 	ROM_RELOAD(               0x00c000, 0x040000             )
  7261: 
  7262: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7263: 	ROM_LOAD16_BYTE( "ue001009.119", 0x000000, 0x080000, CRC(dc065204) SHA1(0478b8126cd3ce3dee64cb7de2b30b509636eb1a) )
  7264: 	ROM_LOAD16_BYTE( "ue001008.118", 0x000001, 0x080000, CRC(5947d9b5) SHA1(de3a63c55b558451bbbe98bf8d71561ba32c5e60) )
  7265: 	ROM_LOAD16_BYTE( "ue001007.117", 0x100000, 0x080000, CRC(b48a885c) SHA1(8c0d458d6967c2ff4bdcf37aaa8025341fe90bbc) )
  7266: 	ROM_LOAD16_BYTE( "ue001006.116", 0x100001, 0x080000, CRC(a6ab6ef4) SHA1(9f54f116d1d8e54d64ba541195baa66c5ca960bd) )
  7267: 
  7268: 	ROM_REGION( 0x600000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7269: 	ROM_LOAD( "ue001010.120", 0x000000, 0x080000, CRC(dd683031) SHA1(06ed38a243666c1acaf8eb3fdba51d18fc2a70bc) )	// planes 01
  7270: 	ROM_LOAD( "ue001011.121", 0x080000, 0x080000, CRC(0e27bc49) SHA1(f9ec4f4c15c86f608607a5ec916f5182a8e265fa) )
  7271: 	ROM_LOAD( "ue001012.122", 0x100000, 0x080000, CRC(961dfcdc) SHA1(9de95692860abd4206db22ad7ade9f02f0c03506) )
  7272: 	ROM_LOAD( "ue001013.123", 0x180000, 0x080000, CRC(03e9eb79) SHA1(e7cabfd73b73c7df8d79c113db5eca110bf2f05e) )
  7273: 
  7274: 	ROM_LOAD( "ue001014.124", 0x200000, 0x080000, CRC(9576ace7) SHA1(a5350934533241daf63c561a88d952bb6976b81b) )	// planes 23
  7275: 	ROM_LOAD( "ue001015.125", 0x280000, 0x080000, CRC(631d6eb1) SHA1(df342c20e2b3c29eab3c72440c11be60d14d3557) )
  7276: 	ROM_LOAD( "ue001016.126", 0x300000, 0x080000, CRC(f44a8686) SHA1(649f6f95cc67fa2f4551af19a2b607c811318820) )
  7277: 	ROM_LOAD( "ue001017.127", 0x380000, 0x080000, CRC(7f568258) SHA1(ac36e87386f9d5c68c66a9469e1b30ee66c4cb7f) )
  7278: 
  7279: 	ROM_LOAD( "ue001018.128", 0x400000, 0x080000, CRC(4bd98f23) SHA1(be6483253a5ea1efe7c7f6b4432fe819b906894c) )	// planes 45
  7280: 	ROM_LOAD( "ue001019.129", 0x480000, 0x080000, CRC(6d9f5a33) SHA1(8d300adf2b3299df78e274c4c7f2ee2d8e1e2575) )
  7281: 	ROM_LOAD( "ue001020.130", 0x500000, 0x080000, CRC(bc07403f) SHA1(f994b6d1dee23f5dabdb328f955f4380a8ca9d52) )
  7282: 	ROM_LOAD( "ue001021.131", 0x580000, 0x080000, CRC(98c03efd) SHA1(761c51d5573e6f35c48b8b9ee5d88cbde02e92a7) )
  7283: 
  7284: 	ROM_REGION( 0x080000, REGION_SOUND1, 0 )	/* Samples */
  7285: 	ROM_LOAD( "ue001005.132", 0x000000, 0x080000, CRC(c5fea37c) SHA1(af4f09dd36af06e50262f607ff14eedc33beffd2) )
  7286: ROM_END
  7287: 
  7288: ROM_START( calibr50 )
  7289: 	ROM_REGION( 0x0a0000, REGION_CPU1, 0 )		/* 68000 Code */
  7290: 	ROM_LOAD16_BYTE( "uh002001.u45", 0x000000, 0x040000, CRC(eb92e7ed) SHA1(2aee8a7bce549ef7d7b35d1c248ebbdbc906e38d) )
  7291: 	ROM_LOAD16_BYTE( "uh002004.u41", 0x000001, 0x040000, CRC(5a0ed31e) SHA1(d6ee7654354ac9f1dc7add1ef9f68a147b6f2953) )
  7292: 	ROM_LOAD16_BYTE( "uh001003.9a",  0x080000, 0x010000, CRC(0d30d09f) SHA1(8a48511b628e85b72fda0968d813f4faebd0c418) )
  7293: 	ROM_LOAD16_BYTE( "uh001002.7a",  0x080001, 0x010000, CRC(7aecc3f9) SHA1(2454d9c758fa623d4d81a9230871b67d31d16cef) )
  7294: 
  7295: 	ROM_REGION( 0x04c000, REGION_CPU2, 0 )		/* 65c02 Code */
  7296: 	ROM_LOAD( "uh001005.u61", 0x004000, 0x040000, CRC(4a54c085) SHA1(f53ff257ce3d95f945a6befcfb61f1b570f0eafe) )
  7297: 	ROM_RELOAD(               0x00c000, 0x040000             )
  7298: 
  7299: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7300: 	ROM_LOAD16_BYTE( "uh001006.ux2", 0x000000, 0x080000, CRC(fff52f91) SHA1(fd7807e9a8dd5a88df1fcd13746b44a33adbc0fa) )
  7301: 	ROM_LOAD16_BYTE( "uh001007.ux1", 0x000001, 0x080000, CRC(b6c19f71) SHA1(eb8bbaeaf4af07e178100ff16b228b537aa36272) )
  7302: 	ROM_LOAD16_BYTE( "uh001008.ux6", 0x100000, 0x080000, CRC(7aae07ef) SHA1(1db666db20efce1efe5b5769b8e3c78bbf508466) )
  7303: 	ROM_LOAD16_BYTE( "uh001009.ux0", 0x100001, 0x080000, CRC(f85da2c5) SHA1(d090e49b3a897729c7fb05f9386939448fe1d3d9) )
  7304: 
  7305: 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7306: 	ROM_LOAD( "uh001010.u3x", 0x000000, 0x080000, CRC(f986577a) SHA1(8f6c2fca271fed21a1c04e93c3f50dc41348ae30) )
  7307: 	ROM_LOAD( "uh001011.u50", 0x080000, 0x080000, CRC(08620052) SHA1(e2ab49dbabc139e6b276401340085ccab1ae3892) )
  7308: 
  7309: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7310: 	ROM_LOAD( "uh001013.u60", 0x000000, 0x080000, CRC(09ec0df6) SHA1(57c68d05074ea4a1e133be2ce6e25c594f04a712) )
  7311: 	ROM_LOAD( "uh001012.u46", 0x080000, 0x080000, CRC(bb996547) SHA1(0c8f570ef4454b10a023e0c463001c22a8cf99cd) )
  7312: ROM_END
  7313: 
  7314: ROM_START( arbalest )
  7315: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
  7316: 	ROM_LOAD16_BYTE( "uk001.03",  0x000000, 0x040000, CRC(ee878a2c) SHA1(f7d5817015382ce6af317c02746b473ec798bb4f) )
  7317: 	ROM_LOAD16_BYTE( "uk001.04",  0x000001, 0x040000, CRC(902bb4e3) SHA1(e37a361a7c03aee2d6ac8c96c2dd6c1e411b46fb) )
  7318: 
  7319: 	ROM_REGION( 0x010000, REGION_CPU2, 0 )		/* 65c02 Code */
  7320: 	ROM_LOAD( "uk001.05", 0x006000, 0x002000, CRC(0339fc53) SHA1(9078f70a319132ef12c59b85e6306d5549a858f1) )
  7321: 	ROM_RELOAD(           0x008000, 0x002000  )
  7322: 	ROM_RELOAD(           0x00a000, 0x002000  )
  7323: 	ROM_RELOAD(           0x00c000, 0x002000  )
  7324: 	ROM_RELOAD(           0x00e000, 0x002000  )
  7325: 
  7326: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7327: 	ROM_LOAD16_BYTE( "uk001.06", 0x000000, 0x040000, CRC(11c75746) SHA1(7faf9a26534397d21211d5ef25ca53c4eb286474) )
  7328: 	ROM_LOAD16_BYTE( "uk001.07", 0x000001, 0x040000, CRC(01b166c7) SHA1(d1b5b73a55025a264a22dd950ea79ba8172c4bed) )
  7329: 	ROM_LOAD16_BYTE( "uk001.08", 0x080000, 0x040000, CRC(78d60ba3) SHA1(c4fa546e4ca637d67ecc1b085b91c753606ccdb3) )
  7330: 	ROM_LOAD16_BYTE( "uk001.09", 0x080001, 0x040000, CRC(b4748ae0) SHA1(a71e671754ed5bba737f0b5f7be510a23d5e925c) )
  7331: 
  7332: 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7333: 	ROM_LOAD( "uk001.10", 0x000000, 0x080000, CRC(c1e2f823) SHA1(892473351e7b590c59c578047a67fc235bd31e02) )
  7334: 	ROM_LOAD( "uk001.11", 0x080000, 0x080000, CRC(09dfe56a) SHA1(077627627d3cb8f79ffdd83e46157bd3c473c4a1) )
  7335: 	ROM_LOAD( "uk001.12", 0x100000, 0x080000, CRC(818a4085) SHA1(fd8b5658fc7f5fa6d3daebb4be17aeabd60c9028) )
  7336: 	ROM_LOAD( "uk001.13", 0x180000, 0x080000, CRC(771fa164) SHA1(a91214318808f991846a828f0e309c0ff430245e) )
  7337: 
  7338: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7339: 	ROM_LOAD( "uk001.15", 0x000000, 0x080000, CRC(ce9df5dd) SHA1(91d879b774b5b367adb5bd511fda827bc0bae0a9) )
  7340: 	ROM_LOAD( "uk001.14", 0x080000, 0x080000, CRC(016b844a) SHA1(1fe091233746ced358292014393896af730f5940) )
  7341: ROM_END
  7342: 
  7343: ROM_START( metafox )
  7344: 	ROM_REGION( 0x0a0000, REGION_CPU1, 0 )		/* 68000 Code */
  7345: 	ROM_LOAD16_BYTE( "p1003161", 0x000000, 0x040000, CRC(4fd6e6a1) SHA1(11a830d76ef737bcfac73d0958425fe4329f0dcd) )
  7346: 	ROM_LOAD16_BYTE( "p1004162", 0x000001, 0x040000, CRC(b6356c9a) SHA1(182a1ea9f0643b05b14ad2a2cd820f5ca2086c4c) )
  7347: 	ROM_LOAD16_BYTE( "up001002", 0x080000, 0x010000, CRC(ce91c987) SHA1(63546fa1342371a7080ac3cf59b41a01ac313c8c) )
  7348: 	ROM_LOAD16_BYTE( "up001001", 0x080001, 0x010000, CRC(0db7a505) SHA1(d593da2f7d8b54724cae017cbabc3c0909893da1) )
  7349: 
  7350: 	ROM_REGION( 0x010000, REGION_CPU2, 0 )		/* 65c02 Code */
  7351: 	ROM_LOAD( "up001005", 0x006000, 0x002000, CRC(2ac5e3e3) SHA1(b794554cd25bdd48a21a0a2861daf8369e798ce8) )
  7352: 	ROM_RELOAD(           0x008000, 0x002000  )
  7353: 	ROM_RELOAD(           0x00a000, 0x002000  )
  7354: 	ROM_RELOAD(           0x00c000, 0x002000  )
  7355: 	ROM_RELOAD(           0x00e000, 0x002000  )
  7356: 
  7357: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7358: 	ROM_LOAD16_BYTE( "p1006163", 0x000000, 0x040000, CRC(80f69c7c) SHA1(df323e801ebec6316ba17fe0371f7c87fad19295) )
  7359: 	ROM_LOAD16_BYTE( "p1007164", 0x000001, 0x040000, CRC(d137e1a3) SHA1(0e0234f1d0adb7db6d0508263e3b0b31fe7071b9) )
  7360: 	ROM_LOAD16_BYTE( "p1008165", 0x080000, 0x040000, CRC(57494f2b) SHA1(28d620254e81d7e63dfed07b29b252b975a81248) )
  7361: 	ROM_LOAD16_BYTE( "p1009166", 0x080001, 0x040000, CRC(8344afd2) SHA1(7348b423405ad00b9240d152b119cf5341754815) )
  7362: 
  7363: 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7364: 	ROM_LOAD( "up001010", 0x000000, 0x080000, CRC(bfbab472) SHA1(d3e7b20d14de48134c4fbe3da31feb928c1c655b) )
  7365: 	ROM_LOAD( "up001011", 0x080000, 0x080000, CRC(26cea381) SHA1(b4bfd2a13ef6051376fe3ed57e2331a072970f86) )
  7366: 	ROM_LOAD( "up001012", 0x100000, 0x080000, CRC(fed2c5f9) SHA1(81f0f19a500b665c937f5431000ebde7abd97c30) )
  7367: 	ROM_LOAD( "up001013", 0x180000, 0x080000, CRC(adabf9ea) SHA1(db28e4e565e567a97a6b05a4803a55a403e24a0e) )
  7368: 
  7369: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7370: 	ROM_LOAD( "up001015", 0x000000, 0x080000, CRC(2e20e39f) SHA1(6f8bd4a76ed5c2150015698e7a98044d060157be) )
  7371: 	ROM_LOAD( "up001014", 0x080000, 0x080000, CRC(fca6315e) SHA1(cef2385ec43f8b7a2d655b42c18ef44e46ff7364) )
  7372: ROM_END
  7373: 
  7374: 
  7375: ROM_START( drgnunit )
  7376: 	ROM_REGION( 0x040000, REGION_CPU1, 0 )		/* 68000 Code */
  7377: 	ROM_LOAD16_BYTE( "prg-e.bin", 0x000000, 0x020000, CRC(728447df) SHA1(8bdc52a4cc5f36794a47f963545bdaa26c9acd6b) )
  7378: 	ROM_LOAD16_BYTE( "prg-o.bin", 0x000001, 0x020000, CRC(b2f58ecf) SHA1(5198e75b22bab630b458797988f2e443c601351f) )
  7379: 
  7380: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7381: 	ROM_LOAD16_BYTE( "obj-2.bin", 0x000000, 0x020000, CRC(d7f6ab5a) SHA1(a32f1705e833c339bd0c426a395cc706da96dad7) )
  7382: 	ROM_LOAD16_BYTE( "obj-1.bin", 0x000001, 0x020000, CRC(53a95b13) SHA1(b7c7994441aafcea49662dc0fbebd6db836723f5) )
  7383: 	ROM_LOAD16_BYTE( "obj-6.bin", 0x040000, 0x020000, CRC(80b801f7) SHA1(5b5635903137e50bc982d05b73c2648bbf182e71) )
  7384: 	ROM_LOAD16_BYTE( "obj-5.bin", 0x040001, 0x020000, CRC(6b87bc20) SHA1(9a0e3e18339d6c12e63960fb940a56c16dcb87cf) )
  7385: 	ROM_LOAD16_BYTE( "obj-4.bin", 0x080000, 0x020000, CRC(60d17771) SHA1(0874c10a2527293715db95bd7c83886d94f810cf) )
  7386: 	ROM_LOAD16_BYTE( "obj-3.bin", 0x080001, 0x020000, CRC(0bccd4d5) SHA1(7139ef793efe7c6477f78b50207227b1be223755) )
  7387: 	ROM_LOAD16_BYTE( "obj-8.bin", 0x0c0000, 0x020000, CRC(826c1543) SHA1(f669f255b4596da5648592b5993b02671e404102) )
  7388: 	ROM_LOAD16_BYTE( "obj-7.bin", 0x0c0001, 0x020000, CRC(cbaa7f6a) SHA1(060f0651b8ca07d239ef1b7c63943cdd433e1ae9) )
  7389: 
  7390: 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7391: 	ROM_LOAD( "scr-1o.bin",  0x000000, 0x020000, CRC(671525db) SHA1(e230e99754c9f40af7da2054bd5ea09823e0b1b7) )
  7392: 	ROM_LOAD( "scr-2o.bin",  0x020000, 0x020000, CRC(2a3f2ed8) SHA1(9d188100437a10eb3d3097f28e28e3cb2dc1b21d) )
  7393: 	ROM_LOAD( "scr-3o.bin",  0x040000, 0x020000, CRC(4d33a92d) SHA1(8b09768abb460446405224565eb6652d2dc1c571) )
  7394: 	ROM_LOAD( "scr-4o.bin",  0x060000, 0x020000, CRC(79a0aa61) SHA1(9905d90afb759b1d983856d7bef17c139d4f0e4f) )
  7395: 	ROM_LOAD( "scr-1e.bin",  0x080000, 0x020000, CRC(dc9cd8c9) SHA1(04450a5cfde5d6b69fdd745cd930309863e1aadd) )
  7396: 	ROM_LOAD( "scr-2e.bin",  0x0a0000, 0x020000, CRC(b6126b41) SHA1(13275f05868d93af95ebb162d229b69ddd660438) )
  7397: 	ROM_LOAD( "scr-3e.bin",  0x0c0000, 0x020000, CRC(1592b8c2) SHA1(d337de280c5ea3704dec9baa04c45e1c837924a9) )
  7398: 	ROM_LOAD( "scr-4e.bin",  0x0e0000, 0x020000, CRC(8201681c) SHA1(7784a68828d728107b0228bb3568129c543cbf40) )
  7399: 
  7400: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7401: 	ROM_LOAD( "snd-1.bin", 0x000000, 0x020000, CRC(8f47bd0d) SHA1(c55e22ac4294931cfb72ac88a2128891d9f8ee93) )
  7402: 	ROM_LOAD( "snd-2.bin", 0x020000, 0x020000, CRC(65c40ef5) SHA1(726b46144e2216d17b0828abad2f5e7c2305c174) )
  7403: 	ROM_LOAD( "snd-3.bin", 0x040000, 0x020000, CRC(71fbd54e) SHA1(bdaf7ecf1c79c6c8fc82d959186ca2f3304729c8) )
  7404: 	ROM_LOAD( "snd-4.bin", 0x060000, 0x020000, CRC(ac50133f) SHA1(d56a9569bd72c7bc13d09dcea9789cdc7252ffb4) )
  7405: 	ROM_LOAD( "snd-5.bin", 0x080000, 0x020000, CRC(70652f2c) SHA1(04ff016a087a230efe4644eb76f68886aae26978) )
  7406: 	ROM_LOAD( "snd-6.bin", 0x0a0000, 0x020000, CRC(10a1039d) SHA1(a1160fe600d39ae6fdbf247f634c2e094b3a675f) )
  7407: 	ROM_LOAD( "snd-7.bin", 0x0c0000, 0x020000, CRC(decbc8b0) SHA1(9d315d1119fbc2bf889efdb174ebc5e26ecad859) )
  7408: 	ROM_LOAD( "snd-8.bin", 0x0e0000, 0x020000, CRC(3ac51bee) SHA1(cb2ee501895b848d434991152dea293685f8ed22) )
  7409: ROM_END
  7410: 
  7411: ROM_START( wits )
  7412: 	ROM_REGION( 0x010000, REGION_CPU1, 0 )		/* 68000 Code */
  7413: 	ROM_LOAD16_BYTE( "un001001.u1", 0x000000, 0x008000, CRC(416c567e) SHA1(f0898ce4457efc272e0fec3447c9d4598684219e) )
  7414: 	ROM_LOAD16_BYTE( "un001002.u4", 0x000001, 0x008000, CRC(497a3fa6) SHA1(cf035efddc2a90013e83dcb81687ba1896ba6055) )
  7415: 
  7416: 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7417: 	ROM_LOAD16_BYTE( "un001008.7l", 0x000000, 0x020000, CRC(1d5d0b2b) SHA1(12cf1be316012e8ee910edfd1b892b7ce1383535) )
  7418: 	ROM_LOAD16_BYTE( "un001007.5l", 0x000001, 0x020000, CRC(9e1e6d51) SHA1(9a87f0f18ac0b3d267fe8655d01750d693745c1f) )
  7419: 	ROM_LOAD16_BYTE( "un001006.4l", 0x040000, 0x020000, CRC(98a980d4) SHA1(ab2c1ed83bccffabfacc8a185d1fbc3e8aaf210d) )
  7420: 	ROM_LOAD16_BYTE( "un001005.2l", 0x040001, 0x020000, CRC(6f2ce3c0) SHA1(8086b44c7025bc0bffff75cc6c6c7846cc56e8d0) )
  7421: 
  7422: 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )	/* Samples */
  7423: 	ROM_LOAD( "un001004.12a", 0x000000, 0x020000, CRC(a15ff938) SHA1(fdfdf73e85d89a39cfc5b3c3048a64178200f942) )
  7424: 	ROM_LOAD( "un001003.10a", 0x020000, 0x020000, CRC(3f4b9e55) SHA1(3cecf89ae6a056622affcddec9e10be08761e56d) )
  7425: ROM_END
  7426: 
  7427: ROM_START( thunderl )
  7428: 	ROM_REGION( 0x010000, REGION_CPU1, 0 )		/* 68000 Code */
  7429: 	ROM_LOAD16_BYTE( "m4", 0x000000, 0x008000, CRC(1e6b9462) SHA1(f7f93479117e97d4e38632fef83c10345587f77f) )
  7430: 	ROM_LOAD16_BYTE( "m5", 0x000001, 0x008000, CRC(7e82793e) SHA1(3e487f465d64af8c1c4852567b2fd9190363570c) )
  7431: 
  7432: 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7433: 	ROM_LOAD16_BYTE( "t17", 0x000000, 0x020000, CRC(599a632a) SHA1(29da423dfe1f971cbb205767cf902d199d968d85) )
  7434: 	ROM_LOAD16_BYTE( "t16", 0x000001, 0x020000, CRC(3aeef91c) SHA1(a5dc8c22a7bcc1199bdd09c7d0f1f8a378e757c5) )
  7435: 	ROM_LOAD16_BYTE( "t15", 0x040000, 0x020000, CRC(b97a7b56) SHA1(c08d3586d489947af21f3493356e3a88d79746e8) )
  7436: 	ROM_LOAD16_BYTE( "t14", 0x040001, 0x020000, CRC(79c707be) SHA1(f67fa40c8f6ab0fbce44997fdfbf699fea1f0df6) )
  7437: 
  7438: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7439: 	ROM_LOAD( "r28", 0x000000, 0x080000, CRC(a043615d) SHA1(e483fa9fd8e922578a9d7b6ced0750643089ca78) )
  7440: 	ROM_LOAD( "r27", 0x080000, 0x080000, CRC(cb8425a3) SHA1(655afa295fbe99acc79c4004f03ed832560cff5b) )
  7441: ROM_END
  7442: 
  7443: ROM_START( rezon )
  7444: 	ROM_REGION( 0x200000, REGION_CPU1, 0 )		/* 68000 Code */
  7445: 	ROM_LOAD16_BYTE( "us001001.u3",  0x000000, 0x020000, CRC(ab923052) SHA1(26761c228b63c300f635787e63e1276b6e3083f0) )
  7446: 	ROM_LOAD16_BYTE( "us001002.u4",  0x000001, 0x020000, CRC(3dafa0d5) SHA1(80cdff86b99d364acbbf1322c73b2f26b1a93167) )
  7447: 	/* empty gap */
  7448: 	ROM_LOAD16_BYTE( "us001004.103", 0x100000, 0x020000, CRC(54871c7c) SHA1(2f807b15760b1e712fa69eee6f33cc8a36ee1c02) ) // 1xxxxxxxxxxxxxxxx = 0x00
  7449: 	ROM_LOAD16_BYTE( "us001003.102", 0x100001, 0x020000, CRC(1ac3d272) SHA1(0f19bc9c19e355dad5b463b0fa33127523bf141b) ) // 1xxxxxxxxxxxxxxxx = 0x00
  7450: 
  7451: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7452: 	ROM_LOAD( "us001006.u64",  0x000000, 0x080000, CRC(a4916e96) SHA1(bfb63b72273e4fbf0843b3201bb4fddaf54909a7) )
  7453: 	ROM_LOAD( "us001005.u63",  0x080000, 0x080000, CRC(e6251ebc) SHA1(f02a4c8373e33fc57e18e39f1b5ecff3f6d9ca9e) )
  7454: 
  7455: 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7456: 	ROM_LOAD( "us001007.u66",  0x000000, 0x080000, CRC(3760b935) SHA1(f5fe69f7e93c90a5b6c1dff236402b962821e33f) ) // 1xxxxxxxxxxxxxxxxxx = 0xFF
  7457: 
  7458: 	ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
  7459: 	ROM_LOAD( "us001008.u68",  0x000000, 0x080000, CRC(0ab73910) SHA1(78e2c0570c5c6f5e1cdb2fbeae73376923127024) ) // 1xxxxxxxxxxxxxxxxxx = 0xFF
  7460: 
  7461: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7462: 	ROM_LOAD16_WORD_SWAP( "us001009.u70",  0x000000, 0x100000, CRC(0d7d2e2b) SHA1(cfba19314ecb0a49ed9ff8df32cd6a3fe37ff526) )
  7463: ROM_END
  7464: 
  7465: ROM_START( stg )
  7466: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
  7467: 	ROM_LOAD16_BYTE( "att01003.u27", 0x000000, 0x020000, CRC(7a640a93) SHA1(28c54eca9502d06ca55c2db91bfe7d149af006ed) )
  7468: 	ROM_LOAD16_BYTE( "att01001.u9",  0x000001, 0x020000, CRC(4fa88ad3) SHA1(55e0e689758511cdf514a633ffe3d7729e281b52) )
  7469: 	ROM_LOAD16_BYTE( "att01004.u33", 0x040000, 0x020000, CRC(bbd45ca1) SHA1(badb11faf5779e8444dd95eb08a94fbf9f73cc2c) ) // 1xxxxxxxxxxxxxxxx = 0xFF
  7470: 	ROM_LOAD16_BYTE( "att01002.u17", 0x040001, 0x020000, CRC(2f8fd80c) SHA1(b8e16adc84b918b5eee05d032a7841e8d726eeeb) ) // 1xxxxxxxxxxxxxxxx = 0xFF
  7471: 
  7472: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7473: 	ROM_LOAD( "att01006.u32", 0x000000, 0x080000, CRC(6ad78ea2) SHA1(eb8fc9833fb1c7041f5e0a3b37c8de9156a034b6) )
  7474: 	ROM_LOAD( "att01005.u26", 0x080000, 0x080000, CRC(a347ff00) SHA1(8455c5e7dfa25646b1782ab3bcf62fca91ca03ad) )
  7475: 
  7476: 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7477: 	ROM_LOAD( "att01008.u39", 0x000000, 0x080000, CRC(20c47457) SHA1(53ddf8c076aa35fb87edc739bc9e9612a5a1526b) ) // FIRST AND SECOND HALF IDENTICAL
  7478: 	ROM_LOAD( "att01007.u42", 0x080000, 0x080000, CRC(ac975544) SHA1(5cdd2c7aada7179d4bdaf8578134c0ef672a2704) ) // FIRST AND SECOND HALF IDENTICAL
  7479: 
  7480: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7481: 	ROM_LOAD( "att01009.u47", 0x000000, 0x080000, CRC(4276b58d) SHA1(a2e77dc3295791520c6cb25dea4e910b5a7bc137) )
  7482: 	ROM_LOAD( "att01010.u55", 0x080000, 0x080000, CRC(fffb2f53) SHA1(0aacb24437e9a6874850313163922d834da27611) )
  7483: ROM_END
  7484: 
  7485: ROM_START( blandia )
  7486: 	ROM_REGION( 0x200000, REGION_CPU1, 0 )		/* 68000 Code */
  7487: 	ROM_LOAD16_BYTE( "ux001001.003",  0x000000, 0x040000, CRC(2376a1f3) SHA1(705a3c5cc1137d14ffded6c949bf9aa650133eb7) )
  7488: 	ROM_LOAD16_BYTE( "ux001002.004",  0x000001, 0x040000, CRC(b915e172) SHA1(e43e50a664dc1286ece42a5ff8629b2da7fb49b4) )
  7489: 	ROM_LOAD16_WORD_SWAP( "ux001003.202",     0x100000, 0x100000, CRC(98052c63) SHA1(b523596de29038b3ec9f1b6e1f7374a6a8709d42) )
  7490: 
  7491: 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7492: 	ROM_LOAD( "ux001005.200",  0x300000, 0x100000, CRC(bea0c4a5) SHA1(a690c17fb7cbdab533c1dfad13abbad9359b9631) )
  7493: 	ROM_LOAD( "ux001007.201",  0x100000, 0x100000, CRC(4440fdd1) SHA1(7bfee90f81a2c867bd487abcf5905393ad400902) )
  7494: 	ROM_LOAD( "ux001006.063",  0x200000, 0x100000, CRC(abc01cf7) SHA1(c3f26e75eeb68073d2825be8df82cc6afcfbfb26) )
  7495: 	ROM_LOAD( "ux001008.064",  0x000000, 0x100000, CRC(413647b6) SHA1(594e010ca6f49ec82cc6d44fe23ac3427c4c3dbd) )
  7496: 
  7497: 	ROM_REGION( 0x0c0000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7498: 	ROM_LOAD( "ux001009.065",  0x000000, 0x080000, CRC(bc6f6aea) SHA1(673efa0c70587b5650ccf0a3c4bc316f53d52ba6) )
  7499: 	ROM_LOAD( "ux001010.066",  0x040000, 0x080000, CRC(bd7f7614) SHA1(dc865ff0f327f460956915b2018aaac815e8fce5) )
  7500: 
  7501: 	ROM_REGION( 0x0c0000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
  7502: 	ROM_LOAD( "ux001011.067",  0x000000, 0x080000, CRC(5efe0397) SHA1(a294a2dae9a10e93912543a8614a7f960a011f27) )
  7503: 	ROM_LOAD( "ux001012.068",  0x040000, 0x080000, CRC(f29959f6) SHA1(edccea3d0bf972a07edd6339e18792d089033bff) )
  7504: 
  7505: 	/* The c0000-fffff region is bankswitched */
  7506: 	ROM_REGION( 0x240000, REGION_SOUND1, 0 )	/* Samples */
  7507: 	ROM_LOAD( "ux001013.069",  0x000000, 0x0c0000, CRC(5cd273cd) SHA1(602e1f10454e2b1c941f2e6983872bb9ca77a542) )
  7508: 	// skip c0000-fffff (banked region)
  7509: 	ROM_CONTINUE(              0x100000, 0x040000             )
  7510: 	ROM_LOAD( "ux001014.070",  0x140000, 0x080000, CRC(86b49b4e) SHA1(045b352950d848907af4c22b817d154b2cfff382) )
  7511: ROM_END
  7512: 
  7513: ROM_START( blandiap )
  7514: 	ROM_REGION( 0x200000, REGION_CPU1, 0 )		/* 68000 Code */
  7515: 	ROM_LOAD16_BYTE( "prg-even.bin", 0x000000, 0x040000, CRC(7ecd30e8) SHA1(25e555a45bbb154170189b065206f7536a5dec1b) )
  7516: 	ROM_LOAD16_BYTE( "prg-odd.bin",  0x000001, 0x040000, CRC(42b86c15) SHA1(9a4adcc16c35f84826a6effed5ebe439483ab856) )
  7517: 	ROM_LOAD16_BYTE( "tbl0.bin",     0x100000, 0x080000, CRC(69b79eb8) SHA1(f7b33c99744d8b7f6e2991b4d2b35719eebd0b43) )
  7518: 	ROM_LOAD16_BYTE( "tbl1.bin",     0x100001, 0x080000, CRC(cf2fd350) SHA1(4d0fb720af544f746eeaaad499be00e0d1c6f129) )
  7519: 
  7520: 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7521: 	ROM_LOAD16_BYTE( "o-1.bin",  0x000000, 0x080000, CRC(4c67b7f0) SHA1(ad6bd4b880f0f63a803c097795a4b70f24c94848) )
  7522: 	ROM_LOAD16_BYTE( "o-0.bin",  0x000001, 0x080000, CRC(5e7b8555) SHA1(040599db77041765f582aa99d6f616a7a2c4dd5c) )
  7523: 	ROM_LOAD16_BYTE( "o-5.bin",  0x100000, 0x080000, CRC(40bee78b) SHA1(1ec0b1854c26ba300a3a54077332a9af55677dca) )
  7524: 	ROM_LOAD16_BYTE( "o-4.bin",  0x100001, 0x080000, CRC(7c634784) SHA1(047287c630336001d2b1e21f7273ccc3d5278e3c) )
  7525: 	ROM_LOAD16_BYTE( "o-3.bin",  0x200000, 0x080000, CRC(387fc7c4) SHA1(4e5bd3985f16aa7295110a9902adc8e1453c03ab) )
  7526: 	ROM_LOAD16_BYTE( "o-2.bin",  0x200001, 0x080000, CRC(c669bb49) SHA1(db5051ea8b08672b6079004060e20fb250560d9f) )
  7527: 	ROM_LOAD16_BYTE( "o-7.bin",  0x300000, 0x080000, CRC(fc77b04a) SHA1(b3c7b2cb9407cac261890e0355cbb87ac8e2e93c) )
  7528: 	ROM_LOAD16_BYTE( "o-6.bin",  0x300001, 0x080000, CRC(92882943) SHA1(460f3ae37d6f88d3a6068e2fb8d0d330be7c786f) )
  7529: 
  7530: 	ROM_REGION( 0x0c0000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7531: 	ROM_LOAD( "v1-2.bin",  0x000000, 0x020000, CRC(d524735e) SHA1(4d17e7896b6c6451effe8a19bf7a4919db0cc06d) )
  7532: 	ROM_LOAD( "v1-5.bin",  0x020000, 0x020000, CRC(eb440cdb) SHA1(180ed9d616c66b7fae1a3d1156028c8476e45bde) )
  7533: 	ROM_LOAD( "v1-1.bin",  0x040000, 0x020000, CRC(09bdf75f) SHA1(33bda046092d5bc3d8e8ffec25c745a2fda16a5c) )
  7534: 	ROM_LOAD( "v1-4.bin",  0x060000, 0x020000, CRC(803911e5) SHA1(a93cac42eda69698b393a1a49e3615ee60868838) )
  7535: 	ROM_LOAD( "v1-0.bin",  0x080000, 0x020000, CRC(73617548) SHA1(9c04d0179cb93e9fb78cc8af1006ef3edfcde707) )
  7536: 	ROM_LOAD( "v1-3.bin",  0x0a0000, 0x020000, CRC(7f18e4fb) SHA1(0e51e3f88b90c07a1352bcd42e6438c947d4856e) )
  7537: 
  7538: 	ROM_REGION( 0x0c0000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
  7539: 	ROM_LOAD( "v2-2.bin",  0x000000, 0x020000, CRC(c4f15638) SHA1(6be0f3e90ab23189caadfd99b3e4ded74749ebbc) )	// identical to v2-1
  7540: 	ROM_LOAD( "v2-5.bin",  0x020000, 0x020000, CRC(c2e57622) SHA1(994a4774d68f2d562d985951b06216d59f38afe9) )
  7541: 	ROM_LOAD( "v2-1.bin",  0x040000, 0x020000, CRC(c4f15638) SHA1(6be0f3e90ab23189caadfd99b3e4ded74749ebbc) )
  7542: 	ROM_LOAD( "v2-4.bin",  0x060000, 0x020000, CRC(16ec2130) SHA1(187f548563577ca36cced9ae184d27e6fcdd7e6a) )
  7543: 	ROM_LOAD( "v2-0.bin",  0x080000, 0x020000, CRC(5b05eba9) SHA1(665001cdb3c9977f8f4c7ce551549f7fc640c6a9) )
  7544: 	ROM_LOAD( "v2-3.bin",  0x0a0000, 0x020000, CRC(80ad0c3b) SHA1(00fcbcf7805784d7298b92136e7f256d65029c44) )
  7545: 
  7546: 	/* The c0000-fffff region is bankswitched */
  7547: 	ROM_REGION( 0x240000, REGION_SOUND1, 0 )	/* Samples */
  7548: 	ROM_LOAD( "s-0.bin",  0x000000, 0x020000, CRC(a5fde408) SHA1(89efcd37ef6c5b313169d74a962a7c074a09b12a) )
  7549: 	ROM_CONTINUE(         0x140000, 0x020000             )
  7550: 	ROM_LOAD( "s-1.bin",  0x020000, 0x020000, CRC(3083f9c4) SHA1(f5d2297c3d680eb1f128fa42a3a7f61badb9853a) )
  7551: 	ROM_CONTINUE(         0x160000, 0x020000             )
  7552: 	ROM_LOAD( "s-2.bin",  0x040000, 0x020000, CRC(a591c9ef) SHA1(83e665e342c42fd3582c83becfacc27a3a3e5a54) )
  7553: 	ROM_CONTINUE(         0x180000, 0x020000             )
  7554: 	ROM_LOAD( "s-3.bin",  0x060000, 0x020000, CRC(68826c9d) SHA1(a860b7b2140a5a506bf25110c08c6ea59db25743) )
  7555: 	ROM_CONTINUE(         0x1a0000, 0x020000             )
  7556: 	ROM_LOAD( "s-4.bin",  0x080000, 0x020000, CRC(1c7dc8c2) SHA1(006459a23de83fe48e11bdd6ebe23ef6a18a87e8) )
  7557: 	ROM_CONTINUE(         0x1c0000, 0x020000             )
  7558: 	ROM_LOAD( "s-5.bin",  0x0a0000, 0x020000, CRC(4bb0146a) SHA1(1e3c1739ea3c85296573426e55f25dce11f0ed2b) )
  7559: 	ROM_CONTINUE(         0x1e0000, 0x020000             )
  7560: 	ROM_LOAD( "s-6.bin",  0x100000, 0x020000, CRC(9f8f34ee) SHA1(60abb70ae87595ebae23df68d62f3b0ed4a2e768) )	// skip c0000-fffff (banked region)
  7561: 	ROM_CONTINUE(         0x200000, 0x020000             )	// this half is 0
  7562: 	ROM_LOAD( "s-7.bin",  0x120000, 0x020000, CRC(e077dd39) SHA1(a6f0881a026161710adc132bcf7cb95c4c8f2528) )
  7563: 	ROM_CONTINUE(         0x220000, 0x020000             )	// this half is 0
  7564: ROM_END
  7565: 
  7566: ROM_START( blockcar )
  7567: 	ROM_REGION( 0x040000, REGION_CPU1, 0 )		/* 68000 Code */
  7568: 	ROM_LOAD16_BYTE( "u1.a1",  0x000000, 0x020000, CRC(4313fb00) SHA1(f5b9e212436282284fa344e1c4200bc38ca3c50a) )
  7569: 	ROM_LOAD16_BYTE( "u4.a3",  0x000001, 0x020000, CRC(2237196d) SHA1(5a9d972fac94e62f026c36bca0c2f5fe8e0e1a1d) )
  7570: 
  7571: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7572: 	ROM_LOAD( "bl-chr-0.j3",  0x000000, 0x080000, CRC(a33300ca) SHA1(b0a7ccb77c3e8e33c12b83e254924f30209a4c2c) )
  7573: 	ROM_LOAD( "bl-chr-1.l3",  0x080000, 0x080000, CRC(563de808) SHA1(40b2f9f4a4cb1a019f6419572ee21d66dda7d4af) )
  7574: 
  7575: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7576: 	ROM_LOAD( "bl-snd-0.a13",  0x000000, 0x080000, CRC(a92dabaf) SHA1(610c1dc0467753dfddaa4b27bc40cb118b0bc7a3) )
  7577: 	ROM_RELOAD(                0x080000, 0x080000             )
  7578: ROM_END
  7579: 
  7580: ROM_START( qzkklogy )
  7581: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
  7582: 	ROM_LOAD16_BYTE( "3.u27", 0x000000, 0x020000, CRC(b8c27cde) SHA1(4c36076801b6c915888b925c1e37d772bab1bb02) )
  7583: 	ROM_LOAD16_BYTE( "1.u9",  0x000001, 0x020000, CRC(ce01cd54) SHA1(ef91aecdf7b5586a6870ff237372d65f85cd4cd3) )
  7584: 	ROM_LOAD16_BYTE( "4.u33", 0x040000, 0x020000, CRC(4f5c554c) SHA1(0a10cefdf2dd876e6cb78023c3c15af24ba3c39a) )
  7585: 	ROM_LOAD16_BYTE( "2.u17", 0x040001, 0x020000, CRC(65fa1b8d) SHA1(81fd7785f138a189de978fd30dbfca36687cda17) )
  7586: 
  7587: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7588: 	ROM_LOAD( "t2709u32.u32", 0x000000, 0x080000, CRC(900f196c) SHA1(b60741c3242ce56cb61ea68093b571489db0c6fa) ) // FIRST AND SECOND HALF IDENTICAL
  7589: 	ROM_LOAD( "t2709u26.u26", 0x080000, 0x080000, CRC(416ac849) SHA1(3bd5dd13a8f2693e8f160a4ecfff3b7610644f5f) ) // FIRST AND SECOND HALF IDENTICAL
  7590: 
  7591: 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7592: 	ROM_LOAD( "t2709u42.u39", 0x000000, 0x080000, CRC(194d5704) SHA1(ab2833f7427d0608850c158b813bc49935ac7d6d) )
  7593: 	ROM_LOAD( "t2709u39.u42", 0x080000, 0x080000, CRC(6f95a76d) SHA1(925f5880fb5153c1215d1f5ee1eff5b53a84abea) )
  7594: 
  7595: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7596: 	ROM_LOAD( "t2709u47.u47", 0x000000, 0x080000, CRC(0ebdad40) SHA1(6558eeaac76d98d91b0be6faa78f531f1e3b9f84) )
  7597: 	ROM_LOAD( "t2709u55.u55", 0x080000, 0x080000, CRC(43960c68) SHA1(9a1901b65f989aa57ab8736ef0be3bac492c081c) )
  7598: ROM_END
  7599: 
  7600: ROM_START( umanclub )
  7601: 	ROM_REGION( 0x040000, REGION_CPU1, 0 )		/* 68000 Code */
  7602: 	ROM_LOAD16_BYTE( "uw001006.u48", 0x000000, 0x020000, CRC(3dae1e9d) SHA1(91a738c299d134d198bad648383be87345f4f475) )
  7603: 	ROM_LOAD16_BYTE( "uw001007.u49", 0x000001, 0x020000, CRC(5c21e702) SHA1(c69e9dd7dfac82f116885610f90878f865e629b3) )
  7604: 
  7605: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7606: 	ROM_LOAD( "bp-u-002.u2", 0x000000, 0x080000, CRC(936cbaaa) SHA1(f7932ee310eb792b2776ae8a9d29e1a492761b11) )
  7607: 	ROM_LOAD( "bp-u-001.u1", 0x080000, 0x080000, CRC(87813c48) SHA1(7ec9b08fe0490d277c531e2b6394862df4d5678d) )
  7608: 
  7609: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7610: 	ROM_LOAD( "uw003.u13", 0x000000, 0x100000, CRC(e2f718eb) SHA1(fd085b68f76c8778816a1b7d47783b9dc20bff12) )
  7611: ROM_END
  7612: 
  7613: ROM_START( zingzip )
  7614: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
  7615: 	ROM_LOAD16_BYTE( "uy001001.3",	0x000000, 0x040000, CRC(1a1687ec) SHA1(c840752dd87d8c1c30e6b31452173148e20538b1) )
  7616: 	ROM_LOAD16_BYTE( "uy001002.4",	0x000001, 0x040000, CRC(62e3b0c4) SHA1(51a27fbf68a142dd132157bed1dc22acda3fa044) )
  7617: 
  7618: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7619: 	ROM_LOAD( "uy001006.64",		0x000000, 0x080000, CRC(46e4a7d8) SHA1(2c829e52d9aead351702335bf06aa0f337528306) )
  7620: 	ROM_LOAD( "uy001005.63",		0x080000, 0x080000, CRC(4aac128e) SHA1(3ac64c84a40f86e29e33a218babcd21cae6dbfdb) )
  7621: 
  7622: 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7623: 	ROM_LOAD( "uy001008.66",		0x000000, 0x100000, CRC(1dff7c4b) SHA1(94f581f4aae1ef417dce6e62a611a523205e8c27) ) // FIRST AND SECOND HALF IDENTICAL
  7624: 	ROM_LOAD16_BYTE( "uy001007.65",	0x100000, 0x080000, CRC(ec5b3ab9) SHA1(e82fb050ae4e2486e43418fcb5fa726d92c5cd21) )
  7625: 
  7626: 	ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
  7627: 	ROM_LOAD( "uy001010.68",		0x000000, 0x100000, CRC(bdbcdf03) SHA1(857f541697f76086ac6c761a3505678a3d3499df) ) // FIRST AND SECOND HALF IDENTICAL
  7628: 
  7629: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7630: 	ROM_LOAD( "uy001011.70",		0x000000, 0x100000, CRC(bd845f55) SHA1(345b79cfcd8c924d6ba365814286e518438f10bc) ) // uy001017 + uy001018
  7631: ROM_END
  7632: 
  7633: ROM_START( atehate )
  7634: 	ROM_REGION( 0x100000, REGION_CPU1, 0 )		/* 68000 Code */
  7635: 	ROM_LOAD16_BYTE( "fs001001.evn", 0x000000, 0x080000, CRC(4af1f273) SHA1(79b28fe768aa634c31ee4e7687e62ebe78cf4014) )
  7636: 	ROM_LOAD16_BYTE( "fs001002.odd", 0x000001, 0x080000, CRC(c7ca7a85) SHA1(1221f57d4aa3d2cb6662bc059978eafd65c1858f) )
  7637: 
  7638: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7639: 	ROM_LOAD( "fs001003.gfx", 0x000000, 0x200000, CRC(8b17e431) SHA1(643fc62d5bad9941630ab621ecb3c69ded9d4536) )
  7640: 
  7641: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7642: 	ROM_LOAD( "fs001004.pcm", 0x000000, 0x100000, CRC(f9344ce5) SHA1(cffbc235f3a8e9a5004e671d924affd321ec9eed) )
  7643: ROM_END
  7644: 
  7645: ROM_START( daioh )
  7646: 	ROM_REGION( 0x100000, REGION_CPU1, 0 )		/* 68000 Code */
  7647: 	ROM_LOAD16_BYTE( "fg1-001",  0x000000, 0x080000, CRC(104ae74a) SHA1(928c467e3ff98285a4828a927d851fcdf296849b) )
  7648: 	ROM_LOAD16_BYTE( "fg1-002",  0x000001, 0x080000, CRC(e39a4e67) SHA1(c3f47e9d407f32dbfaf209d29b4446e4de8829a2) )
  7649: 
  7650: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7651: 	ROM_LOAD( "fg1-004", 0x000000, 0x100000, CRC(9ab0533e) SHA1(b260ceb2b3e140971419329bee07a020171794f7) )
  7652: 	ROM_LOAD( "fg1-003", 0x100000, 0x100000, CRC(1c9d51e2) SHA1(1d6236ab28d11676386834fd6e405fd40198e924) )
  7653: 
  7654: 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE ) /* Layer 1 */
  7655: 	ROM_LOAD( "fg1-005",  0x000000, 0x200000, CRC(c25159b9) SHA1(4c9da3233223508389c3c0f277a00aedfc860da4) )
  7656: 
  7657: 	ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE ) /* Layer 2 */
  7658: 	ROM_LOAD( "fg1-006",  0x000000, 0x200000, CRC(2052c39a) SHA1(83a444a76e68aa711b0e25a5aa963ca876a6357e) )
  7659: 
  7660: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7661: 	ROM_LOAD( "fg1-007",  0x000000, 0x100000, CRC(4a2fe9e0) SHA1(e55b6f301f842ff5d3c7a0041856695ac1d8a78f) )
  7662: ROM_END
  7663: 
  7664: ROM_START( msgundam )
  7665: 	ROM_REGION( 0x200000, REGION_CPU1, 0 )		/* 68000 Code */
  7666: 	ROM_LOAD16_WORD_SWAP( "fa003002.u25",  0x000000, 0x080000, CRC(1cc72d4c) SHA1(5043d693b5a8116a077d5b6997b658cb287e2aa7) )
  7667: 	ROM_LOAD16_WORD_SWAP( "fa001001.u20",  0x100000, 0x100000, CRC(fca139d0) SHA1(b56282c69f7ec64c697a48e42d59a2565401c032) )
  7668: 
  7669: 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7670: 	ROM_LOAD( "fa001008.u21",  0x000000, 0x200000, CRC(e7accf48) SHA1(dca9d53bc9cf0ecb661358d5a3f388c4ce9388e7) )
  7671: 	ROM_LOAD( "fa001007.u22",  0x200000, 0x200000, CRC(793198a6) SHA1(45f53870e74b14126680d18dd58dbbe01a6ef509) )
  7672: 
  7673: 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7674: 	ROM_LOAD( "fa001006.u23",  0x000000, 0x100000, CRC(3b60365c) SHA1(bdf5a0b1b45eb75dbbb6725d1e5303716321aeb9) )
  7675: 
  7676: 	ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
  7677: 	ROM_LOAD( "fa001005.u24",  0x000000, 0x080000, CRC(8cd7ff86) SHA1(ce7eb90776e21239f8f52e822c636143506c6f9b) )
  7678: 
  7679: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7680: 	ROM_LOAD( "fa001004.u26",  0x000000, 0x100000, CRC(b965f07c) SHA1(ff7827cc80655465ffbb732d55ba81f21f51a5ca) )
  7681: ROM_END
  7682: 
  7683: ROM_START( msgunda1 )
  7684: 	ROM_REGION( 0x200000, REGION_CPU1, 0 )		/* 68000 Code */
  7685: 	ROM_LOAD16_WORD_SWAP( "fa002002.u25",  0x000000, 0x080000, CRC(dee3b083) SHA1(e2ad626aa0109906846dd9e9053ffc83b7bf4d2e) )
  7686: 	ROM_LOAD16_WORD_SWAP( "fa001001.u20",  0x100000, 0x100000, CRC(fca139d0) SHA1(b56282c69f7ec64c697a48e42d59a2565401c032) )
  7687: 
  7688: 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7689: 	ROM_LOAD( "fa001008.u21",  0x000000, 0x200000, CRC(e7accf48) SHA1(dca9d53bc9cf0ecb661358d5a3f388c4ce9388e7) )
  7690: 	ROM_LOAD( "fa001007.u22",  0x200000, 0x200000, CRC(793198a6) SHA1(45f53870e74b14126680d18dd58dbbe01a6ef509) )
  7691: 
  7692: 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7693: 	ROM_LOAD( "fa001006.u23",  0x000000, 0x100000, CRC(3b60365c) SHA1(bdf5a0b1b45eb75dbbb6725d1e5303716321aeb9) )
  7694: 
  7695: 	ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
  7696: 	ROM_LOAD( "fa001005.u24",  0x000000, 0x080000, CRC(8cd7ff86) SHA1(ce7eb90776e21239f8f52e822c636143506c6f9b) )
  7697: 
  7698: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7699: 	ROM_LOAD( "fa001004.u26",  0x000000, 0x100000, CRC(b965f07c) SHA1(ff7827cc80655465ffbb732d55ba81f21f51a5ca) )
  7700: ROM_END
  7701: 
  7702: ROM_START( oisipuzl )
  7703: 	ROM_REGION( 0x180000, REGION_CPU1, 0 )		/* 68000 Code */
  7704: 	ROM_LOAD16_WORD_SWAP( "ss1u200.v10", 0x000000, 0x080000, CRC(f5e53baf) SHA1(057e8b35bc6f65634685b5d0cf38e12f2e62d72c) )
  7705: 	/* Gap of 0x80000 bytes */
  7706: 	ROM_LOAD16_WORD_SWAP( "ss1u201.v10", 0x100000, 0x080000, CRC(7a7ff5ae) SHA1(9e4da7ecc4d833c3ba4ddc6e5870fad53b9b2d2b) )
  7707: 
  7708: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT )	/* Sprites */
  7709: 	ROM_LOAD( "ss1u306.v10", 0x000000, 0x080000, CRC(ce43a754) SHA1(3991042678badafee716b084c1768a794f144b1e) )
  7710: 	ROM_LOAD( "ss1u307.v10", 0x080000, 0x080000, CRC(2170b7ec) SHA1(c9f3d12646d4e877bc2b656f977e21d927f241f6) )
  7711: 	ROM_LOAD( "ss1u304.v10", 0x100000, 0x080000, CRC(546ab541) SHA1(aa96a79e3b0ba71f5e0fbb15e190d219630c2ba3) )
  7712: 	ROM_LOAD( "ss1u305.v10", 0x180000, 0x080000, CRC(2a33e08b) SHA1(780cfe44a4d57b254bd0cfae8727dc77358027a8) )
  7713: 
  7714: 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7715: 	ROM_LOAD( "ss1u23.v10",  0x000000, 0x080000, CRC(9fa60901) SHA1(3d42e4174ad566b6eeb488c7a4c51db9c1fef7af) )
  7716: 	ROM_LOAD( "ss1u24.v10",  0x080000, 0x080000, CRC(c10eb4b3) SHA1(70a82a750b1d9c849cd92d4f73769bbf5962c771) )
  7717: 
  7718: 	ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
  7719: 	ROM_LOAD( "ss1u25.v10",  0x000000, 0x080000, CRC(56840728) SHA1(db61539fd84f0de35ee2077238ba3646c4960cc6) )
  7720: 
  7721: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7722: 	ROM_LOAD( "ss1u26.v10", 0x000000, 0x080000, CRC(d452336b) SHA1(d3bf3cb383c40911758a60546f121c48087868e3) )
  7723: 	ROM_LOAD( "ss1u27.v10", 0x080000, 0x080000, CRC(17fe921d) SHA1(7fc176b8eefad4f2b8532bfe62e7852d2be185ca) )
  7724: ROM_END
  7725: 
  7726: ROM_START( triplfun )
  7727: 	ROM_REGION( 0x180000, REGION_CPU1, 0 )
  7728: 	/* the program fails its self-check but thats probably because
  7729: 	   its a bootleg, it does the same on the real board */
  7730: 	ROM_LOAD16_BYTE( "05.bin", 0x000000, 0x40000, CRC(06eb3821) SHA1(51c67c87b5c28e693dfffd32d25cdb6d2a9448cf) )
  7731: 	ROM_CONTINUE(0x100000,0x40000)
  7732: 	ROM_LOAD16_BYTE( "04.bin", 0x000001, 0x40000, CRC(37a5c46e) SHA1(80b49b422a7db64d9ba5896da2b01a4588a6cf62) )
  7733: 	ROM_CONTINUE(0x100001,0x40000)
  7734: 
  7735: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )
  7736: 	ROM_LOAD16_BYTE( "08.bin", 0x000001, 0x80000, CRC(63a8f10f) SHA1(0a045d559b9edc9f335e6ec2d214d70c4959ec50) )
  7737: 	ROM_LOAD16_BYTE( "09.bin", 0x000000, 0x80000, CRC(98cc8ca5) SHA1(1bd9d2d860e02ee4fea3d9592172690cb9d3acf2) )
  7738: 	ROM_LOAD16_BYTE( "10.bin", 0x100001, 0x80000, CRC(20b0f282) SHA1(c98de63c1ad9dfe9b24f55966ccc5392c5ae82ba) )
  7739: 	ROM_LOAD16_BYTE( "11.bin", 0x100000, 0x80000, CRC(276ef724) SHA1(e0c642dfd19542234abb0de68a66f8c36d9cb827) )
  7740: 
  7741: 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )
  7742: 	ROM_LOAD16_BYTE( "02.bin", 0x000000, 0x80000, CRC(4c0d1068) SHA1(cb77309474938765fd0582ab132f19fb5e21fca3) )
  7743: 	ROM_LOAD16_BYTE( "03.bin", 0x000001, 0x80000, CRC(dba94e18) SHA1(3f54d874287e4ab96b2791503235488164d90cb1) )
  7744: 
  7745: 	ROM_REGION( 0x80000, REGION_GFX3, ROMREGION_DISPOSE )
  7746: 	ROM_LOAD16_BYTE( "06.bin", 0x000000, 0x40000, CRC(8944bb72) SHA1(37cd0e2c8e99fb23ea70dc183a8aa0670c5f6b65) )
  7747: 	ROM_LOAD16_BYTE( "07.bin", 0x000001, 0x40000, CRC(934a5d91) SHA1(aa19d2699b5ebdd99d59004005b0ce0c5140d192) )
  7748: 
  7749: 	ROM_REGION( 0x40000, REGION_SOUND1, 0 )
  7750: 	ROM_LOAD( "01.bin", 0x000000, 0x40000, CRC(c186a930) SHA1(e17e1a620e380f0737b80c7f160ad643979b2799) )
  7751: ROM_END
  7752: 
  7753: ROM_START( qzkklgy2 )
  7754: 	ROM_REGION( 0x0c0000, REGION_CPU1, 0 )		/* 68000 Code */
  7755: 	ROM_LOAD16_WORD_SWAP( "fn001001.106", 0x000000, 0x080000, CRC(7bf8eb17) SHA1(f2d1666e22f564d59b37ca00c8db34ca822fd142) )
  7756: 	ROM_LOAD16_WORD_SWAP( "fn001003.107", 0x080000, 0x040000, CRC(ee6ef111) SHA1(6d9efac46ba01fff8784034801cba10e38b2c923) )
  7757: 
  7758: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7759: 	ROM_LOAD( "fn001004.100", 0x000000, 0x100000, CRC(5ba139a2) SHA1(24fe19a7e5d2cd53bf3b1c71bf05020067f5e956) )
  7760: 
  7761: 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7762: 	ROM_LOAD( "fn001005.104", 0x000000, 0x200000, CRC(95726a63) SHA1(e53ffc2815c4858bbfb5ff452c581bccb41854c9) )
  7763: 
  7764: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7765: 	ROM_LOAD( "fn001006.105", 0x000000, 0x100000, CRC(83f201e6) SHA1(536e74788ad0e07451300a1ad3b127bc9d2d9063) )
  7766: ROM_END
  7767: 
  7768: ROM_START( wrofaero )
  7769: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
  7770: 	ROM_LOAD16_BYTE( "u3.bin",  0x000000, 0x040000, CRC(9b896a97) SHA1(f4e768911705e6def5dc4a43cfc4146c48c80caf) )
  7771: 	ROM_LOAD16_BYTE( "u4.bin",  0x000001, 0x040000, CRC(dda84846) SHA1(50142692e13190900bc752908b105b65c48ea911) )
  7772: 
  7773: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7774: 	ROM_LOAD( "u64.bin",  0x000000, 0x080000, CRC(f06ccd78) SHA1(1701bdac2c826327441cfe0039b4cadf8f3a4803) )
  7775: 	ROM_LOAD( "u63.bin",  0x080000, 0x080000, CRC(2a602a1b) SHA1(b04fa743200d62bc25a6aa34efae53209f185f79) )
  7776: 
  7777: 	ROM_REGION( 0x080000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7778: 	ROM_LOAD( "u66.bin",  0x000000, 0x080000, CRC(c9fc6a0c) SHA1(85ac0726221e3fedd80bd9b426d61471eb20ce46) )
  7779: 
  7780: 	ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
  7781: 	ROM_LOAD( "u68.bin",  0x000000, 0x080000, CRC(25c0c483) SHA1(2e705e7f0c66c3bc73e78ffb526606ab8be61d99) )
  7782: 
  7783: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7784: 	ROM_LOAD( "u69.bin",  0x000000, 0x080000, CRC(957ecd41) SHA1(3b37ba44b8b8f0f0de41c8c26c3dfdb391ba572c) )
  7785: 	ROM_LOAD( "u70.bin",  0x080000, 0x080000, CRC(8d756fdf) SHA1(d66712a6aa19252f2c915ac66fc27df031fa9512) )
  7786: ROM_END
  7787: 
  7788: ROM_START( jjsquawk )
  7789: 	ROM_REGION( 0x180000, REGION_CPU1, 0 )		/* 68000 Code */
  7790: 	ROM_LOAD16_BYTE( "jj-rom1.040", 0x000000, 0x040000, CRC(7b9af960) SHA1(1718d54b0c12ae148de44f9ccccf90c0182f7b4f) )
  7791: 	ROM_CONTINUE   (                0x100000, 0x040000             )
  7792: 	ROM_LOAD16_BYTE( "jj-rom2.040", 0x000001, 0x040000, CRC(47dd71a3) SHA1(e219d984a1cac484ce1e570b7849562a88e0903e) )
  7793: 	ROM_CONTINUE   (                0x100001, 0x040000             )
  7794: 
  7795: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7796: 	ROM_LOAD( "jj-rom9",  0x000000, 0x080000, CRC(27441cd3) SHA1(5867fc30c158e07f2d36ecab97b1d304383e6f35) )
  7797: 	ROM_LOAD( "jj-rom10", 0x080000, 0x080000, CRC(ca2b42c4) SHA1(9b99b6618fe44a6c29a255e89dab72a0a56214df) )
  7798: 	ROM_LOAD( "jj-rom7",  0x100000, 0x080000, CRC(62c45658) SHA1(82b1ea138e8f4b4ade7e44b31843aa2023c9dd71) )
  7799: 	ROM_LOAD( "jj-rom8",  0x180000, 0x080000, CRC(2690c57b) SHA1(b880ded7715dffe12c4fea7ad7cb9c5133b73250) )
  7800: 
  7801: 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7802: 	ROM_LOAD       ( "jj-rom11",    0x000000, 0x080000, CRC(98b9f4b4) SHA1(de96708aebb428ddc413c3649caaec80c0c155bd) )
  7803: 	ROM_LOAD       ( "jj-rom12",    0x080000, 0x080000, CRC(d4aa916c) SHA1(d619d20c33f16ab06b529fc1717ad9b703acbabf) )
  7804: 	ROM_LOAD16_BYTE( "jj-rom3.040", 0x100000, 0x080000, CRC(a5a35caf) SHA1(da4bdb7f0b319f8ff972a552d0134a73e5ac1b87) )
  7805: 
  7806: 	ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
  7807: 	ROM_LOAD       ( "jj-rom14",    0x000000, 0x080000, CRC(274bbb48) SHA1(b8db632a9bbb7232d0b1debd67b3b453fd4989e6) )
  7808: 	ROM_LOAD       ( "jj-rom13",    0x080000, 0x080000, CRC(51e29871) SHA1(9d33283bd9a3f57602a55cfc9fafa49edd0be8c5) )
  7809: 	ROM_LOAD16_BYTE( "jj-rom4.040", 0x100000, 0x080000, CRC(a235488e) SHA1(a45d02a4451defbef7fbdab15671955fab8ed76b) )
  7810: 
  7811: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7812: 	ROM_LOAD( "jj-rom5.040", 0x000000, 0x080000, CRC(d99f2879) SHA1(66e83a6bc9093d19c72bd8ef1ec0523cfe218250) )
  7813: 	ROM_LOAD( "jj-rom6.040", 0x080000, 0x080000, CRC(9df1e478) SHA1(f41b55821187b417ad09e4a1f439c01a107d2674) )
  7814: ROM_END
  7815: 
  7816: ROM_START( kamenrid )
  7817: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
  7818: 	ROM_LOAD16_WORD_SWAP( "fj001003.25", 0x000000, 0x080000, CRC(9b65d1b9) SHA1(a9183f817dbd1721cbb1a9049ca2bfc6acdf9f4a) )
  7819: 
  7820: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7821: 	ROM_LOAD( "fj001005.21", 0x000000, 0x100000, CRC(5d031333) SHA1(7b603e7e79c9439b526687021c0be4a5965b4c11) )
  7822: 	ROM_LOAD( "fj001006.22", 0x100000, 0x100000, CRC(cf28eb78) SHA1(b1b34e0e50b5d54ff3cff908c579031a326890a2) )
  7823: 
  7824: 	ROM_REGION( 0x80000, REGION_USER1, ROMREGION_DISPOSE )	/* Layers 1+2 */
  7825: 	ROM_LOAD( "fj001007.152", 0x000000, 0x080000, CRC(d9ffe80b) SHA1(c1f919b53cd1b9874a5e5dc5640891e1b227cfc6) )
  7826: 
  7827: 	ROM_REGION( 0x40000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7828: 	ROM_COPY( REGION_USER1, 0x000000, 0x000000, 0x040000 )
  7829: 
  7830: 	ROM_REGION( 0x40000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
  7831: 	ROM_COPY( REGION_USER1, 0x040000, 0x000000, 0x040000 )
  7832: 
  7833: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7834: 	ROM_LOAD( "fj001008.26", 0x000000, 0x100000, CRC(45e2b329) SHA1(8526afae1aa9178570c906eb96438f174d174f4d) )
  7835: ROM_END
  7836: 
  7837: ROM_START( eightfrc )
  7838: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
  7839: 	ROM_LOAD16_BYTE( "uy2-u4.u3",  0x000000, 0x040000, CRC(f1f249c5) SHA1(5277b7a15934e60e0ca305c318fb02d0ffb99d42) )
  7840: 	ROM_LOAD16_BYTE( "uy2-u3.u4",  0x000001, 0x040000, CRC(6f2d8618) SHA1(ea243e6064b76bc5d6e831362ac9611a48ac94a7) )
  7841: 
  7842: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7843: 	ROM_LOAD( "u64.bin",  0x000000, 0x080000, CRC(f561ff2e) SHA1(1ed78c90bf876f24c2859a73a71764189cebddbe) )
  7844: 	ROM_LOAD( "u63.bin",  0x080000, 0x080000, CRC(4c3f8366) SHA1(b25a27a67ae828d8fcf2c8d9d373ebdaacce9c4e) )
  7845: 
  7846: 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7847: 	ROM_LOAD( "u66.bin",  0x000000, 0x100000, CRC(6fad2b7f) SHA1(469d185dc942bd4b54babf1d528e0e420f31d88b) )
  7848: 
  7849: 	ROM_REGION( 0x100000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
  7850: 	ROM_LOAD( "u68.bin",  0x000000, 0x100000, CRC(c17aad22) SHA1(eabbae2142cad3eef6a94d542ea03221c8228e94) )
  7851: 
  7852: 	ROM_REGION( 0x240000, REGION_SOUND1, 0 )	/* Samples */
  7853: 	ROM_LOAD( "u70.bin",  0x000000, 0x0c0000, CRC(dfdb67a3) SHA1(0fed6fb498dcfc1276facd0ecd2dfde45ff671f2) )
  7854: 	// skip c0000-fffff (banked region)
  7855: 	ROM_CONTINUE(         0x100000, 0x040000             )
  7856: 	ROM_LOAD( "u69.bin",  0x140000, 0x100000, CRC(82ec08f1) SHA1(f17300d3cf990ef5c11056fd922f8cae0b2c918f) )
  7857: ROM_END
  7858: 
  7859: ROM_START( kiwame )
  7860: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
  7861: 	ROM_LOAD16_BYTE( "fp001001.bin", 0x000000, 0x040000, CRC(31b17e39) SHA1(4f001bf365d6c259ac8a13894e207a44c15e1d8b) )
  7862: 	ROM_LOAD16_BYTE( "fp001002.bin", 0x000001, 0x040000, CRC(5a6e2efb) SHA1(a3b2ecfb5b91c6013370b359f89db0da8f120ad9) )
  7863: 
  7864: 	ROM_REGION( 0x080000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7865: 	ROM_LOAD( "fp001003.bin", 0x000000, 0x080000, CRC(0f904421) SHA1(de5810746cfab1a4a7d1b055b1a97bc7fbc173dd) )
  7866: 
  7867: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7868: 	ROM_LOAD( "fp001006.bin", 0x000000, 0x080000, CRC(96cf395d) SHA1(877b291598e3a42e5003b2f50a16d162348ce72d) )
  7869: 	ROM_LOAD( "fp001005.bin", 0x080000, 0x080000, CRC(65b5fe9a) SHA1(35605be00c7c455551d18386fcb5ad013aa2907e) )
  7870: ROM_END
  7871: 
  7872: ROM_START( krzybowl )
  7873: 	ROM_REGION( 0x080000, REGION_CPU1, 0 )		/* 68000 Code */
  7874: 	ROM_LOAD16_BYTE( "fv001.002", 0x000000, 0x040000, CRC(8c03c75f) SHA1(e56c50440681a0b06d785000018c4213266f2a4e) )
  7875: 	ROM_LOAD16_BYTE( "fv001.001", 0x000001, 0x040000, CRC(f0630beb) SHA1(1ddd4ab1bc5ab2b6461eb35c8093884185828d7b) )
  7876: 
  7877: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7878: 	ROM_LOAD( "fv001.003", 0x000000, 0x080000, CRC(7de22749) SHA1(933a11f2d45667348b136d72806fc2e2f6f8d944) )
  7879: 	ROM_LOAD( "fv001.004", 0x080000, 0x080000, CRC(c7d2fe32) SHA1(37291fa78c28be274e1240e081ea253ebe487e5c) )
  7880: 
  7881: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7882: 	ROM_LOAD( "fv001.005", 0x000000, 0x080000, CRC(5e206062) SHA1(e47cfb6947df178f3547dfe61907571bcb84e4ac) )
  7883: 	ROM_LOAD( "fv001.006", 0x080000, 0x080000, CRC(572a15e7) SHA1(b6a3e99e14a473b78ff48d1a46b20a0862d128e9) )
  7884: ROM_END
  7885: 
  7886: ROM_START( extdwnhl )
  7887: 	ROM_REGION( 0x100000, REGION_CPU1, 0 )		/* 68000 Code */
  7888: 	ROM_LOAD16_BYTE( "fw001002.201",  0x000000, 0x080000, CRC(24d21924) SHA1(9914a68a578f884b06305ffcd9aeed7d83df1c7b) )
  7889: 	ROM_LOAD16_BYTE( "fw001001.200",  0x000001, 0x080000, CRC(fb12a28b) SHA1(89167c042dc535b5f639057ff04a8e28824790f2) )
  7890: 
  7891: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7892: 	ROM_LOAD( "fw001003.202", 0x000000, 0x200000, CRC(ac9b31d5) SHA1(d362217ea0c474994e3c79ddcf87ee6688428ea5) )
  7893: 
  7894: 	ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7895: 	ROM_LOAD       ( "fw001004.206", 0x000000, 0x200000, CRC(0dcb1d72) SHA1(ffc84f46f06f46750bddd1a303ed83a28fa9572f) )
  7896: 	ROM_LOAD16_BYTE( "fw001005.205", 0x200000, 0x100000, CRC(5c33b2f1) SHA1(9ea848aeaccbba0b71e60b39cf844665bd97928f) )
  7897: 
  7898: 	ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
  7899: 	ROM_LOAD( "fw001006.152",  0x000000, 0x200000, CRC(d00e8ddd) SHA1(e13692034afec1a0e86d19abfb9efa518b374147) )	// FIRST AND SECOND HALF IDENTICAL
  7900: 
  7901: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7902: 	ROM_LOAD( "fw001007.026",  0x080000, 0x080000, CRC(16d84d7a) SHA1(fdc13776ba1ec9c48a33a9f2dfe8a0e55c54d89e) )	// swapped halves
  7903: 	ROM_CONTINUE(              0x000000, 0x080000             )
  7904: ROM_END
  7905: 
  7906: ROM_START( gundhara )
  7907: 	ROM_REGION( 0x200000, REGION_CPU1, 0 )		/* 68000 Code */
  7908: 	ROM_LOAD16_BYTE( "bpgh-003.u3",  0x000000, 0x080000, CRC(14e9970a) SHA1(31964bd290cc94c40684adf3a5d129b1c3addc3b) )
  7909: 	ROM_LOAD16_BYTE( "bpgh-004.u4",  0x000001, 0x080000, CRC(96dfc658) SHA1(f570bc49758535eb00d93ecce9f75832f97a0d8d) )
  7910: 	ROM_LOAD16_BYTE( "bpgh-002.103", 0x100000, 0x080000, CRC(312f58e2) SHA1(a74819d2f84a00c233489893f12c9ab1a98459cf) )
  7911: 	ROM_LOAD16_BYTE( "bpgh-001.102", 0x100001, 0x080000, CRC(8d23a23c) SHA1(9e9a6488db424c81a97edcb7115cc070fe35c077) )
  7912: 
  7913: 	ROM_REGION( 0x800000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7914: 	ROM_LOAD( "bpgh-008.u64", 0x000000, 0x200000, CRC(7ed9d272) SHA1(2e9243b3ecee27c175234f9bb1893ab498090fce) )
  7915: 	ROM_LOAD( "bpgh-006.201", 0x200000, 0x200000, CRC(5a81411d) SHA1(ebf90afe027a0dc0fa3022978677fb071b9083d1) )
  7916: 	ROM_LOAD( "bpgh-007.u63", 0x400000, 0x200000, CRC(aa49ce7b) SHA1(fe0064d533bd895657b88a0ef96e835443a4077f) )
  7917: 	ROM_LOAD( "bpgh-005.200", 0x600000, 0x200000, CRC(74138266) SHA1(c859acff358a61a32e5810ff369b9d5528137337) )
  7918: 
  7919: 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7920: 	ROM_LOAD       ( "bpgh-010.u66", 0x000000, 0x100000, CRC(b742f0b8) SHA1(9246846c9ee839d5d84f5e02cf4605afcfd6bf7a) )
  7921: 	ROM_LOAD16_BYTE( "bpgh-009.u65", 0x100000, 0x080000, CRC(b768e666) SHA1(473fa52c16c0a9f321e6429947a3e0fc1ef22f7e) )
  7922: 
  7923: 	ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
  7924: 	ROM_LOAD       ( "bpgh-012.u68", 0x000000, 0x200000, CRC(edfda595) SHA1(5942181430d59c0c303cd1cbe753910c26c109a2) )
  7925: 	ROM_LOAD16_BYTE( "bpgh-011.u67", 0x200000, 0x100000, CRC(49aff270) SHA1(de25209e520cd8747042078440ee20866097d0cb) )
  7926: 
  7927: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7928: 	ROM_LOAD( "bpgh-013.u70",  0x080000, 0x080000, CRC(0fa5d503) SHA1(fd7a80cd25c23e737cc2c3d11de2291e22313b58) )	// swapped halves
  7929: 	ROM_CONTINUE(              0x000000, 0x080000             )
  7930: ROM_END
  7931: 
  7932: ROM_START( sokonuke )
  7933: 	ROM_REGION( 0x100000, REGION_CPU1, 0 )		/* 68000 Code */
  7934: 	ROM_LOAD16_BYTE( "001-001.bin",  0x000000, 0x080000, CRC(9d0aa3ca) SHA1(f641c46f2c6e7f82bb9184daac62938afb607c09) )
  7935: 	ROM_LOAD16_BYTE( "001-002.bin",  0x000001, 0x080000, CRC(96f2ef5f) SHA1(264e82e192089230f208edf609dee575bf5c6513) )
  7936: 
  7937: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7938: 	ROM_LOAD( "001-003.bin", 0x000000, 0x200000, CRC(ab9ba897) SHA1(650c1eadf82f6e2b4c598495c867118277565411) )
  7939: 
  7940: 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7941: 	ROM_LOAD       ( "001-004.bin", 0x000000, 0x100000, CRC(34ca3540) SHA1(a9b6b395037870033a2a422453e304fd4666b99e) )
  7942: 	ROM_LOAD16_BYTE( "001-005.bin", 0x100000, 0x080000, CRC(2b95d68d) SHA1(2fb480c31a6a7e180a68bd774b5f86348bea0761) )
  7943: 
  7944: 	ROM_REGION( 0x100, REGION_GFX3, ROMREGION_ERASE | ROMREGION_DISPOSE )	/* Layer 2 */
  7945: 	/* Unused */
  7946: 
  7947: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7948: 	ROM_LOAD( "001-006.bin",   0x080000, 0x080000, CRC(ecfac767) SHA1(3d05bdb2c2a8c7eb5fa77b0c4482f98d3947c6d6) )
  7949: 	ROM_CONTINUE(              0x000000, 0x080000             )
  7950: ROM_END
  7951: 
  7952: ROM_START( zombraid )
  7953: 	ROM_REGION( 0x200000, REGION_CPU1, 0 )		/* 68000 Code */
  7954: 	ROM_LOAD16_BYTE( "fy001003.3",   0x000000, 0x080000, CRC(0b34b8f7) SHA1(8c6d7d208ece08695169f2e06806e7e55c595eb2) )
  7955: 	ROM_LOAD16_BYTE( "fy001004.4",   0x000001, 0x080000, CRC(71bfeb1a) SHA1(75747b0c6e655624a5dc2e4fa8f16a6a51bd8769) )
  7956: 	ROM_LOAD16_BYTE( "fy001002.103", 0x100000, 0x080000, CRC(313fd68f) SHA1(792733acc72b4719b3f7f79b57fb874c71e8abfb) )
  7957: 	ROM_LOAD16_BYTE( "fy001001.102", 0x100001, 0x080000, CRC(a0f61f13) SHA1(ba14c5ae0d0b3f217c130eeebd987dfde4c64c0d) )
  7958: 
  7959: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7960: 	ROM_LOAD( "fy001006.200", 0x000000, 0x200000, CRC(e9ae99f7) SHA1(7ffd62e5db4a48d362c90e8fca991c5b63f22bd8) )
  7961: 
  7962: 	ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7963: 	ROM_LOAD       ( "fy001008.66", 0x000000, 0x200000, CRC(73d7b0e1) SHA1(aa332b563005edb1a6e20fbceaba68b56761a634) )
  7964: 	ROM_LOAD16_BYTE( "fy001007.65", 0x200000, 0x100000, CRC(b2fc2c81) SHA1(2c529beccea353c3e90563215ddf3d8931e0fb83) )
  7965: 
  7966: 	ROM_REGION( 0x400000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
  7967: 	ROM_LOAD       ( "fy001010.68", 0x000000, 0x200000, CRC(8b40ed7a) SHA1(05fcd7947a8419cab5ed2305fba9a671911e4850) )
  7968: 	ROM_LOAD16_BYTE( "fy001009.67", 0x200000, 0x100000, CRC(6bcca641) SHA1(49c9106e6f23e25e5b5917af11fc48d34457c61a) )
  7969: 
  7970: 	ROM_REGION( 0x480000, REGION_SOUND1, 0 )	/* Samples */
  7971: 	ROM_LOAD( "fy001012.b",  0x000000, 0x080000, CRC(fd30e102) SHA1(ae02f94f69aa301b0c37921ca1117e3ad20467b5) )
  7972: 	// skip 80000-fffff (banked region)
  7973: 	ROM_CONTINUE(            0x100000, 0x180000 )
  7974: 	ROM_LOAD( "fy001011.a",  0x280000, 0x200000, CRC(e3c431de) SHA1(1030adacbbfabc00231417e09f3de40e3052f65c) )
  7975: ROM_END
  7976: 
  7977: ROM_START( madshark )
  7978: 	ROM_REGION( 0x100000, REGION_CPU1, 0 )		/* 68000 Code */
  7979: 	ROM_LOAD16_BYTE( "fq001002.201",  0x000000, 0x080000, CRC(4286a811) SHA1(c8d4a28008548fe7d1d70758462205862142c56b) )
  7980: 	ROM_LOAD16_BYTE( "fq001001.200",  0x000001, 0x080000, CRC(38bfa0ad) SHA1(59398ef69caa01f51cdfb20db23af494db658e5e) )
  7981: 
  7982: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  7983: 	ROM_LOAD( "fq001004.202", 0x100000, 0x100000, CRC(e56a1b5e) SHA1(f0dd34122fd7db15cc56714b72b60d07ccb59222) )
  7984: 	ROM_CONTINUE(             0x000000, 0x100000 )
  7985: 
  7986: 	ROM_REGION( 0x400000, REGION_USER1, ROMREGION_DISPOSE )	/* Layers 1+2 */
  7987: 	ROM_LOAD       ( "fq001006.152", 0x000000, 0x200000, CRC(3bc5e8e4) SHA1(74cdf1bb2e58bef29c6f4371ff40f64472bff3ce) )
  7988: 	ROM_LOAD16_BYTE( "fq001005.205", 0x200000, 0x100000, CRC(5f6c6d4a) SHA1(eed5661738282a14ce89917335fd1b695eb7351e) )
  7989: 
  7990: 	ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  7991: 	ROM_COPY( REGION_USER1, 0x000000, 0x000000, 0x100000 )
  7992: 	ROM_COPY( REGION_USER1, 0x200000, 0x100000, 0x100000 )
  7993: 
  7994: 	ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
  7995: 	ROM_COPY( REGION_USER1, 0x100000, 0x000000, 0x100000 )
  7996: 	ROM_COPY( REGION_USER1, 0x300000, 0x100000, 0x100000 )
  7997: 
  7998: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  7999: 	ROM_LOAD( "fq001007.26", 0x000000, 0x100000, CRC(e4b33c13) SHA1(c4f9532de7a09c80f5a74c3a386e99a0f546846f) )
  8000: ROM_END
  8001: 
  8002: ROM_START( utoukond )
  8003: 	ROM_REGION( 0x100000, REGION_CPU1, 0 )		/* 68000 Code */
  8004: 	ROM_LOAD16_BYTE( "93uta010.3",  0x000000, 0x080000, CRC(c486ef5e) SHA1(36e4ef4805d543216269f1161028d8a436f72284) )
  8005: 	ROM_LOAD16_BYTE( "93uta011.4",  0x000001, 0x080000, CRC(978978f7) SHA1(a7fd3a4ce3a7c6c9d9bdd60df29b4f427abf4f92) )
  8006: 
  8007: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )		/* Z80 Code */
  8008: 	ROM_LOAD( "93uta009.112", 0x0000, 0x10000, CRC(67f18483) SHA1(d9af58dec09c317ccab65553d53d82c8cce2bfb9) )
  8009: 
  8010: 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE | ROMREGION_INVERT )	/* Sprites */
  8011: 	ROM_LOAD( "93uta04.64",  0x000000, 0x100000, CRC(9cba0538) SHA1(83278918b6ad160d3e53c178b3cad252e7b0edfb) )
  8012: 	ROM_LOAD( "93uta02.201", 0x100000, 0x100000, CRC(884fedfa) SHA1(3710003bd2e55bba03e2720fcab0fe080163222d) )
  8013: 	ROM_LOAD( "93uta03.63",  0x200000, 0x100000, CRC(818484a5) SHA1(642252abe56e26aa8376db2e25b192b11586d1e4) )
  8014: 	ROM_LOAD( "93uta01.200", 0x300000, 0x100000, CRC(364de841) SHA1(a025bd57f60eac05c0d7b4fb69b4b4979f357e6b) )
  8015: 
  8016: 	ROM_REGION( 0x100000, REGION_GFX2, ROMREGION_DISPOSE )	/* Layer 1 */
  8017: 	ROM_LOAD( "93uta05.66",  0x000000, 0x100000, CRC(5e640bfb) SHA1(37f30ae6ab9d7860da6ca6a343fa9adf4b3d355c) )
  8018: 
  8019: 	ROM_REGION( 0x200000, REGION_GFX3, ROMREGION_DISPOSE )	/* Layer 2 */
  8020: 	ROM_LOAD( "93uta07.68",  0x000000, 0x100000, CRC(67bdd036) SHA1(527b6a67e7a62263bee738dc82d6ff289ab54853) )
  8021: 	ROM_LOAD( "93uta06.67",  0x100000, 0x100000, CRC(294c26e4) SHA1(459ec7f8c8db4f1e3906d5db240298405bda991c) )
  8022: 
  8023: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  8024: 	ROM_LOAD( "93uta08.69", 0x000000, 0x100000, CRC(3d50bbcd) SHA1(e9b78d08466e1f9b42f11999bb53b6deceb81a12) )
  8025: ROM_END
  8026: 
  8027: ROM_START( neobattl )
  8028: 	ROM_REGION( 0x100000, REGION_CPU1, 0 )		/* 68000 Code */
  8029: 	ROM_LOAD16_BYTE( "bp923001.u45", 0x000000, 0x020000, CRC(0d0aeb73) SHA1(5ca631d5d68e53029f379d9877a056997c6c6afa) )	// 1CC74: "SD GUNDAM v0.00. 1992/11/04 10:04:33"
  8030: 	ROM_LOAD16_BYTE( "bp923002.u46", 0x000001, 0x020000, CRC(9731fbbc) SHA1(196c913fb67496f9da2943ad1e69edf89cb65fdf) )
  8031: 
  8032: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )	/* Sprites */
  8033: 	ROM_LOAD( "bp923003.u15", 0x00000, 0x80000, CRC(91ca98a1) SHA1(b02b362e3a6118f52d9e1a262ca11aecef887b00) )
  8034: 	ROM_LOAD( "bp923004.u9",  0x80000, 0x80000, CRC(15c678e3) SHA1(8c0fa41a1f4e7b4e1c90faaeec7f6c910cc3ad0b) )
  8035: 
  8036: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* Samples */
  8037: 	ROM_LOAD( "bp923005.u4", 0x000000, 0x100000, CRC(7c0e37be) SHA1(5d5779de948f986971a82db2a5a4302044c3257a) )
  8038: ROM_END
  8039: 
  8040: 
  8041: READ16_HANDLER( twineagl_debug_r )
  8042: {
  8043: 	/*	At several points in the code, the program checks if four
  8044: 		consecutive bytes in this range are equal to a string, and if they
  8045: 		are, it fetches an address from the following 4 bytes and jumps there.
  8046: 		They are probably hooks for debug routines to be found in an extra ROM.
  8047: 
  8048: 		0000 "MT00" + jump address
  8049: 		0008 "MT01" + jump address
  8050: 		0010 "MT02" + jump address
  8051: 		0018 "MT03" + jump address
  8052: 		0020 "MT04" + jump address
  8053: 		0028 "MT05" + jump address
  8054: 		0030 "MT06" + jump address
  8055: 		0038 "MT07" + jump address
  8056: 		0040 "WZ08" + jump address
  8057: 		0080 "KB00" + jump address
  8058: 		00C0 "MT18" + jump address
  8059: 		00C8 "MT19" + jump address
  8060: 		00D0 "MT1a" + jump address
  8061: 		00D8 "MT1b" + jump address
  8062: 		00E0 "MT1c" + jump address
  8063: 		00E8 "MT1d" + jump address
  8064: 		00F0 "MT1e" + jump address
  8065: 		00F8 "MT1f" + jump address
  8066: 	*/
  8067: 
  8068: 	return 0;
  8069: }
  8070: 
  8071: /* Extra RAM ? Check code at 0x00ba90 */
  8072: /* 2000F8 = A3 enables it, 2000F8 = 00 disables? see downtown too */
  8073: static data8_t xram[8];
  8074: READ16_HANDLER( twineagl_200100_r )
  8075: {
  8076: logerror("%04x: twineagl_200100_r %d\n",activecpu_get_pc(),offset);
  8077: 	return xram[offset];
  8078: }
  8079: WRITE16_HANDLER( twineagl_200100_w )
  8080: {
  8081: logerror("%04x: twineagl_200100_w %d = %02x\n",activecpu_get_pc(),offset,data);
  8082: 	if (ACCESSING_LSB)
  8083: 		xram[offset] = data & 0xff;
  8084: }
  8085: 
  8086: DRIVER_INIT( twineagl )
  8087: {
  8088: 	/* debug? */
  8089: 	install_mem_read16_handler (0, 0x800000, 0x8000ff, twineagl_debug_r);
  8090: 
  8091: 	/* This allows 2 simultaneous players and the use of the "Copyright" Dip Switch. */
  8092: 	install_mem_read16_handler (0, 0x200100, 0x20010f, twineagl_200100_r);
  8093: 	install_mem_write16_handler(0, 0x200100, 0x20010f, twineagl_200100_w);
  8094: }
  8095: 
  8096: 
  8097: /* Protection? NVRAM is handled writing commands here */
  8098: data16_t downtown_protection[0x200/2];
  8099: static READ16_HANDLER( downtown_protection_r )
  8100: {
  8101: 	int job = downtown_protection[0xf8/2] & 0xff;
  8102: 
  8103: 	switch (job)
  8104: 	{
  8105: 		case 0xa3:
  8106: 		{
  8107: 			unsigned char word[] = "WALTZ0";
  8108: 			if (offset >= 0x100/2 && offset <= 0x10a/2)	return word[offset-0x100/2];
  8109: 			else										return 0;
  8110: 		}
  8111: 		default:
  8112: 			return downtown_protection[offset] & 0xff;
  8113: 	}
  8114: }
  8115: 
  8116: static WRITE16_HANDLER( downtown_protection_w )
  8117: {
  8118: 	COMBINE_DATA(&downtown_protection[offset]);
  8119: }
  8120: 
  8121: DRIVER_INIT( downtown )
  8122: {
  8123: 	install_mem_read16_handler (0, 0x200000, 0x2001ff, downtown_protection_r);
  8124: 	install_mem_write16_handler(0, 0x200000, 0x2001ff, downtown_protection_w);
  8125: }
  8126: 
  8127: 
  8128: READ16_HANDLER( arbalest_debug_r )
  8129: {
  8130: 	/*	At some points in the code, the program checks if four
  8131: 		consecutive bytes in this range are equal to a string, and if they
  8132: 		are, it fetches an address from the following 4 bytes and jumps there.
  8133: 		They are probably hooks for debug routines to be found in an extra ROM.
  8134: 
  8135: 		0000 "CHK1" + jump address
  8136: 		0008 "CHK2" + jump address
  8137: 	*/
  8138: 
  8139: 	return 0;
  8140: }
  8141: 
  8142: DRIVER_INIT( arbalest )
  8143: {
  8144: 	install_mem_read16_handler(0, 0x80000, 0x8000f, arbalest_debug_r);
  8145: }
  8146: 
  8147: 
  8148: DRIVER_INIT( metafox )
  8149: {
  8150: 	data16_t *RAM = (data16_t *) memory_region(REGION_CPU1);
  8151: 
  8152: 	/* This game uses the 21c000-21ffff area for protection? */
  8153: //	install_mem_read16_handler (0, 0x21c000, 0x21ffff, MRA16_NOP);
  8154: //	install_mem_write16_handler(0, 0x21c000, 0x21ffff, MWA16_NOP);
  8155: 
  8156: 	RAM[0x8ab1c/2] = 0x4e71;	// patch protection test: "cp error"
  8157: 	RAM[0x8ab1e/2] = 0x4e71;
  8158: 	RAM[0x8ab20/2] = 0x4e71;
  8159: }
  8160: 
  8161: 
  8162: DRIVER_INIT ( blandia )
  8163: {
  8164: 	/* rearrange the gfx data so it can be decoded in the same way as the other set */
  8165: 
  8166: 	int rom_size;
  8167: 	UINT8 *buf;
  8168: 	UINT8 *rom;
  8169: 	int rpos;
  8170: 
  8171: 	rom_size = 0x80000;
  8172: 	buf = malloc(rom_size);
  8173: 
  8174: 	if (!buf) return;
  8175: 
  8176: 	rom = memory_region(REGION_GFX2) + 0x40000;
  8177: 
  8178: 	for (rpos = 0; rpos < rom_size/2; rpos++) {
  8179: 		buf[rpos+0x40000] = rom[rpos*2];
  8180: 		buf[rpos] = rom[rpos*2+1];
  8181: 	}
  8182: 
  8183: 	memcpy( rom, buf, rom_size );
  8184: 
  8185: 	rom = memory_region(REGION_GFX3) + 0x40000;
  8186: 
  8187: 	for (rpos = 0; rpos < rom_size/2; rpos++) {
  8188: 		buf[rpos+0x40000] = rom[rpos*2];
  8189: 		buf[rpos] = rom[rpos*2+1];
  8190: 	}
  8191: 
  8192: 	memcpy( rom, buf, rom_size );
  8193: 
  8194: 	free(buf);
  8195: }
  8196: 
  8197: 
  8198: DRIVER_INIT( eightfrc )
  8199: {
  8200: 	install_mem_read16_handler(0, 0x500004, 0x500005, MRA16_NOP);	// watchdog??
  8201: }
  8202: 
  8203: 
  8204: DRIVER_INIT( zombraid )
  8205: {
  8206: 	install_mem_read16_handler (0, 0xf00002, 0xf00003, zombraid_gun_r);
  8207: 	install_mem_write16_handler(0, 0xf00000, 0xf00001, zombraid_gun_w);
  8208: }
  8209: 
  8210: 
  8211: DRIVER_INIT( kiwame )
  8212: {
  8213: 	data16_t *RAM = (data16_t *) memory_region(REGION_CPU1);
  8214: 
  8215: 	/* WARNING: This game writes to the interrupt vector
  8216: 	   table. Lev 1 routine address is stored at $100 */
  8217: 
  8218: 	RAM[0x64/2] = 0x0000;
  8219: 	RAM[0x66/2] = 0x0dca;
  8220: }
  8221: 
  8222: 
  8223: DRIVER_INIT( rezon )
  8224: {
  8225: 	install_mem_read16_handler(0, 0x500006, 0x500007, MRA16_NOP);	// irq ack?
  8226: }
  8227: 
  8228: 
  8229: 
  8230: /***************************************************************************
  8231: 
  8232: 								Game Drivers
  8233: 
  8234: ***************************************************************************/
  8235: 
  8236: /* Working Games: */
  8237: 
  8238: /* 68000 + 65C02 */
  8239: GAME( 1987, tndrcade, 0,        tndrcade, tndrcade, 0,        ROT270, "[Seta] (Taito license)", "Thundercade / Twin Formation" ) // Title/License: DSW
  8240: GAME( 1987, tndrcadj, tndrcade, tndrcade, tndrcadj, 0,        ROT270, "[Seta] (Taito license)", "Tokusyu Butai U.A.G. (Japan)" ) // License: DSW
  8241: GAME( 1988, twineagl, 0,        twineagl, twineagl, twineagl, ROT270, "Seta (Taito license)",   "Twin Eagle - Revenge Joe's Brother" ) // Country/License: DSW
  8242: GAME( 1989, downtown, 0,        downtown, downtown, downtown, ROT270, "Seta",                   "DownTown" ) // Country/License: DSW
  8243: GAMEX(1989, usclssic, 0,        usclssic, usclssic, 0,        ROT270, "Seta",                   "U.S. Classic", GAME_WRONG_COLORS ) // Country/License: DSW
  8244: GAME( 1989, calibr50, 0,        calibr50, calibr50, 0,        ROT270, "Athena / Seta",          "Caliber 50" ) // Country/License: DSW
  8245: GAME( 1989, arbalest, 0,        metafox,  arbalest, arbalest, ROT270, "Seta",                   "Arbalester" ) // Country/License: DSW
  8246: GAME( 1989, metafox,  0,        metafox,  metafox,  metafox,  ROT270, "Seta",                   "Meta Fox" ) // Country/License: DSW
  8247: 
  8248: /* 68000 */
  8249: GAME( 1989, drgnunit, 0,        drgnunit, drgnunit, 0,        ROT0,   "Seta",                   "Dragon Unit / Castle of Dragon" )
  8250: GAME( 1989, wits,     0,        wits,     wits,     0,        ROT0,   "Athena (Visco license)", "Wit's (Japan)" ) // Country/License: DSW
  8251: GAME( 1990, thunderl, 0,        thunderl, thunderl, 0,        ROT270, "Seta",                   "Thunder & Lightning" ) // Country/License: DSW
  8252: GAME( 1991, rezon,    0,        rezon,    rezon,    rezon,    ROT0,   "Allumer",                "Rezon" )
  8253: GAME( 1991, stg,      0,        drgnunit, stg,      0,        ROT270, "Athena / Tecmo",         "Strike Gunner S.T.G" )
  8254: GAME( 1992, blandia,  0,        blandia,  blandia,  blandia,  ROT0,   "Allumer",                "Blandia" )
  8255: GAME( 1992, blandiap, blandia,  blandiap, blandia,  0,        ROT0,   "Allumer",                "Blandia (prototype)" )
  8256: GAME( 1992, blockcar, 0,        blockcar, blockcar, 0,        ROT90,  "Visco",                  "Block Carnival / Thunder & Lightning 2" ) // Title: DSW
  8257: GAME( 1992, qzkklogy, 0,        drgnunit, qzkklogy, 0,        ROT0,   "Tecmo",                  "Quiz Kokology" )
  8258: GAME( 1992, neobattl, 0,        umanclub, neobattl, 0,        ROT270, "Banpresto / Sotsu Agency. Sunrise", "SD Gundam Neo Battling (Japan)" )
  8259: GAME( 1992, umanclub, 0,        umanclub, umanclub, 0,        ROT0,   "Tsuburaya Prod. / Banpresto", "Ultraman Club - Tatakae! Ultraman Kyoudai!!" )
  8260: GAME( 1992, zingzip,  0,        zingzip,  zingzip,  0,        ROT270, "Allumer + Tecmo",        "Zing Zing Zip" )
  8261: GAME( 1993, atehate,  0,        atehate,  atehate,  0,        ROT0,   "Athena",                 "Athena no Hatena ?" )
  8262: GAME( 1993, daioh,    0,        daioh,    daioh,    0,        ROT270, "Athena",                 "Daioh" )
  8263: GAME( 1993, jjsquawk, 0,        jjsquawk, jjsquawk, 0,        ROT0,   "Athena / Able",          "J. J. Squawkers" )
  8264: GAME( 1993, kamenrid, 0,        kamenrid, kamenrid, 0,        ROT0,   "Toei / Banpresto",       "Masked Riders Club Battle Race" )
  8265: GAME( 1993, madshark, 0,        madshark, madshark, 0,        ROT270, "Allumer",                "Mad Shark" )
  8266: GAME( 1993, msgundam, 0,        msgundam, msgundam, 0,        ROT0,   "Banpresto",              "Mobile Suit Gundam" )
  8267: GAME( 1993, msgunda1, msgundam, msgundam, msgunda1, 0,        ROT0,   "Banpresto",              "Mobile Suit Gundam (Japan)" )
  8268: GAME( 1993, oisipuzl, 0,        oisipuzl, oisipuzl, 0,        ROT0,   "Sunsoft + Atlus",        "Oishii Puzzle Ha Irimasenka" )
  8269: GAME( 1993, qzkklgy2, 0,        qzkklgy2, qzkklgy2, 0,        ROT0,   "Tecmo",                  "Quiz Kokology 2" )
  8270: GAME( 1993, triplfun, oisipuzl, triplfun, oisipuzl, 0,        ROT0,   "bootleg",                "Triple Fun" )
  8271: GAME( 1993, utoukond, 0,        utoukond, utoukond, 0,        ROT0,   "Banpresto + Tsuburaya Prod.", "Ultra Toukon Densetsu (Japan)" )
  8272: GAME( 1993, wrofaero, 0,        wrofaero, wrofaero, 0,        ROT270, "Yang Cheng",             "War of Aero - Project MEIOU" )
  8273: GAME( 1994, eightfrc, 0,        eightfrc, eightfrc, eightfrc, ROT90,  "Tecmo",                  "Eight Forces" )
  8274: GAME( 1994, kiwame,   0,        kiwame,   kiwame,   kiwame,   ROT0,   "Athena",                 "Pro Mahjong Kiwame" )
  8275: GAME( 1994, krzybowl, 0,        krzybowl, krzybowl, 0,        ROT270, "American Sammy",   "Krazy Bowl" )
  8276: GAMEX(1995, extdwnhl, 0,        extdwnhl, extdwnhl, 0,        ROT0,   "Sammy Industries Japan", "Extreme Downhill (v1.5)", GAME_IMPERFECT_GRAPHICS )
  8277: GAME( 1995, gundhara, 0,        gundhara, gundhara, 0,        ROT270, "Banpresto",              "Gundhara" )
  8278: GAMEX(1995, sokonuke, 0,        extdwnhl, sokonuke, 0,        ROT0,   "Sammy Industries",       "Sokonuke Taisen Game (Japan)", GAME_IMPERFECT_SOUND )
  8279: GAMEX(1995, zombraid, 0,        gundhara, zombraid, zombraid, ROT0,   "American Sammy",   "Zombie Raid (US)", GAME_NO_COCKTAIL )
  8280: 
  8281: 




powered by ggdb.com this page took approx. 0.002s