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

: : : VM Driver Source

Source Listing


     1: /*
     2: 	Sega System 32 hardware
     3: 
     4: 	V60 + 4 zooming, source linescrolled, alpha blended tilemap planes +
     5: 	zooming sprites + 1 front tilemap w/ram-based characters +
     6: 	ram-based zooming alpha-blended sprites	+ global r/g/b brightness controls.
     7: 
     8: 	Z80 + 2xYM3438 + RF5c68 for sound (similar to System 18 with a larger ROM capacity)
     9: 
    10: 	The later System Multi32 (two monitors and two sets of controls from one
    11: 	PCB with one main CPU) has mostly the same hardware, with these changes:
    12: 	V70 replaces the V60 (faster but 100% software compatible)
    13: 	2 of the tilemaps are hardwired to the left monitor, 2 to the right.
    14: 	The sprite attribute layout changes, and a bit indicates if each sprite
    15: 	should draw on the left or right monitor.
    16: 	One YM3438 is removed, and the RF5c68 is replaced by the far more powerful
    17: 	Sega "MultiPCM" IC.
    18: 
    19: 	Driver by David Haywood, Olivier Galibert and R. Belmont, based on the
    20: 	"Modeler" emulator by Farfetch'd, R. Belmont, and Olivier Galibert.
    21: 
    22: 	see notes in video hardware for what needs doing
    23: 
    24: 
    25: Stephh's notes (based on some tests) :
    26: 
    27:  0)  all games
    28: 
    29:   - Here is what the COINn buttons do depending on the settings for games supporting
    30:     up to 4 players ('ga*', 'spidey*' and 'arabfgt') :
    31: 
    32:       * common coin slots, 2 to 4 players :
    33:           . COIN1 : no effect
    34:           . COIN2 : no effect
    35:           . COIN3 : adds coin(s)/credit(s) depending on "Coin 2" settings
    36:           . COIN4 : adds coin(s)/credit(s) depending on "Coin 1" settings
    37: 
    38:       * individual coin slots, 2 players :
    39:           . COIN1 : no effect
    40:           . COIN2 : no effect
    41:           . COIN3 : adds coin(s)/credit(s) to player 1
    42:           . COIN4 : adds coin(s)/credit(s) to player 2
    43: 
    44:       * individual coin slots, 3 players :
    45:           . COIN1 : no effect
    46:           . COIN2 : adds coin(s)/credit(s) to player 1
    47:           . COIN3 : adds coin(s)/credit(s) to player 2
    48:           . COIN4 : adds coin(s)/credit(s) to player 3
    49: 
    50:       * individual coin slots, 4 players :
    51:           . COIN1 : adds coin(s)/credit(s) to player 1
    52:           . COIN2 : adds coin(s)/credit(s) to player 2
    53:           . COIN3 : adds coin(s)/credit(s) to player 3
    54:           . COIN4 : adds coin(s)/credit(s) to player 4
    55: 
    56: 
    57:  1)  'holo'
    58: 
    59:   - default settings :
    60: 
    61:       * 1 coin to start
    62:       * Difficulty : 4/8
    63: 
    64:   - buttons :
    65: 
    66:       * BUTTON1 : punch
    67:       * BUTTON2 : kick
    68: 
    69: 
    70:  2a) 'svf'
    71: 
    72:   - default settings :
    73: 
    74:       * 1 coin to start
    75:       * Time (vs CPU)    : 0:45
    76:       * Time (vs player) : 1:00
    77:       * Difficulty : 8/20
    78:       * Initial points (???) : 2
    79: 
    80:   - buttons :
    81: 
    82:       * BUTTON1 : ???
    83:       * BUTTON2 : ???
    84:       * BUTTON3 : ???
    85: 
    86: 
    87:  2b) 'jleague'
    88: 
    89:   - default settings :
    90: 
    91:       * 1 coin to start
    92:       * Time (vs CPU)    : 0:45
    93:       * Time (vs player) : 1:00
    94:       * Difficulty : 8/20
    95:       * Initial points (???) : 2
    96: 
    97:   - buttons :
    98: 
    99:       * BUTTON1 : ???
   100:       * BUTTON2 : ???
   101:       * BUTTON3 : ???
   102: 
   103: 
   104:  3a) 'ga2'
   105: 
   106:   - default settings :
   107: 
   108:       * 2 coins to start
   109:       * individual coin slots
   110:       * Difficulty : 4/8
   111:       * Lives : 1
   112:       * Energy : 40
   113:       * 4 players cabinet
   114: 
   115:   - buttons :
   116: 
   117:       * BUTTON1 : attack
   118:       * BUTTON2 : jump
   119:       * BUTTON3 : magic
   120: 
   121: 
   122:  3a) 'ga2j'
   123: 
   124:   - default settings :
   125: 
   126:       * 1 coin to start
   127:       * common coin slots
   128:       * Difficulty : 4/8
   129:       * Lives : 2
   130:       * Energy : 24
   131:       * 2 players cabinet  (do not change to 3 or 4 players as there are no controls !)
   132: 
   133:   - buttons :
   134: 
   135:       * BUTTON1 : attack
   136:       * BUTTON2 : jump
   137:       * BUTTON3 : magic
   138: 
   139: 
   140: 
   141: 
   142:  4a) 'spidey'
   143: 
   144:   - default settings :
   145: 
   146:       * 2 coins to start
   147:       * individual coin slots
   148:       * Difficulty : 5/8
   149:       * Energy : 400
   150:       * 4 players cabinet
   151: 
   152:   - buttons :
   153: 
   154:       * BUTTON1 : attack
   155:       * BUTTON2 : jump
   156:       * You can use a "special attack" (which costs energy) by pressing BUTTON1 and BUTTON2
   157: 
   158: 4b) 'spideyj'
   159: 
   160:   - default settings :
   161: 
   162:       * 1 coin to start
   163:       * common coin slots
   164:       * Difficulty : 5/8
   165:       * Energy : 400
   166:       * 4 players cabinet
   167: 
   168:   - buttons :
   169: 
   170:       * BUTTON1 : attack
   171:       * BUTTON2 : jump
   172:       * You can use a "special attack" (which costs energy) by pressing BUTTON1 and BUTTON2
   173: 
   174:  5)  'arabfgt'
   175: 
   176:   - default settings :
   177: 
   178:       * 2 coins to start
   179:       * individual coin slots
   180:       * Difficulty : 7/16
   181:       * Lives : 2
   182:       * 4 players cabinet
   183: 
   184:   - buttons :
   185: 
   186:       * BUTTON1 : attack
   187:       * BUTTON2 : jump
   188:       * You can use "magic" (if you have collected a lamp) by pressing BUTTON1 and BUTTON2
   189: 
   190: 
   191:  6)  'brival'
   192: 
   193:   - Here is what the COINn buttons do depending on the settings :
   194: 
   195:       * common coin slots :
   196:           . COIN1 : adds coin(s)/credit(s) depending on "Coin 1" settings
   197:           . COIN2 : adds coin(s)/credit(s) depending on "Coin 2" settings
   198: 
   199:       * individual coin slots :
   200:           . COIN1 : adds coin(s)/credit(s) to player 2
   201:           . COIN2 : adds coin(s)/credit(s) to player 1
   202: 
   203:   - default settings :
   204: 
   205:       * 1 coin to start
   206:       * common coin slots
   207:       * Difficulty : 8/16
   208:       * Damage : 5/16
   209: 
   210:   - buttons :
   211: 
   212:       * BUTTON1 : punch 1
   213:       * BUTTON2 : punch 2
   214:       * BUTTON3 : punch 3
   215:       * BUTTON4 : kick 1
   216:       * BUTTON5 : kick 2
   217:       * BUTTON6 : kick 3
   218: 
   219: 
   220:  7)  'f1en'
   221: 
   222:   - default settings :
   223: 
   224:       * 1 coin to start
   225:       * Difficulty : 8/16
   226: 
   227:   - controls :
   228: 
   229:       * steering wheel
   230:       * PEDAL P1 : accel
   231:       * PEDAL P2 : brake
   232: 
   233:   - buttons :
   234: 
   235:       * BUTTON2 : gear up
   236:       * BUTTON3 : gear down
   237: 
   238: 
   239:  8)  'radm'
   240: 
   241:   - default settings :
   242: 
   243:       * 2 coins to start
   244:       * Difficulty : 8/16
   245:       * Time : 45 seconds
   246:       * Cabinet : Deluxe  (changed to "Upright" via predefined EEPROM)
   247:       * Rival  car speed : 8/16
   248:       * Police car speed : 8/16
   249: 
   250:     Do not manually change the "Cabinet" setting until the motor is emulated !
   251: 
   252:   - controls :
   253: 
   254:       * steering wheel
   255:       * PEDAL P1 : accel
   256:       * PEDAL P2 : brake
   257: 
   258:   - buttons :
   259: 
   260:       * BUTTON4 : light
   261:       * BUTTON5 : wiper
   262: 
   263: 
   264:  9)  'radr'
   265: 
   266:   - default settings :
   267: 
   268:       * 1 coin to start
   269:       * Difficulty : 8/16
   270:       * Time : 75 seconds
   271:       * Cabinet : Upright
   272:       * ID : 2  (in case of linked machines - unsupported yet)
   273:       * Coinage : Free Play  (changed to "1 Coin/1 Credit" via predefined EEPROM)
   274: 
   275:     Do not manually change the "Cabinet" setting until the motor is emulated !
   276: 
   277:   - controls :
   278: 
   279:       * steering wheel
   280:       * PEDAL P1 : accel
   281:       * PEDAL P2 : brake
   282: 
   283:   - buttons :
   284: 
   285:       * BUTTON2 : gear shift  (acts as a toggle)
   286: 
   287: 
   288: 10)  'alien3'
   289: 
   290:   - Here is what the COINn buttons do depending on the settings :
   291: 
   292:       * common coin slots :
   293:           . COIN1 : adds coin(s)/credit(s) depending on "Coin 2" settings
   294:           . COIN2 : adds coin(s)/credit(s) depending on "Coin 1" settings
   295: 
   296:       * individual coin slots :
   297:           . COIN1 : adds coin(s)/credit(s) to player 1
   298:           . COIN2 : adds coin(s)/credit(s) to player 2
   299: 
   300:   - default settings :
   301: 
   302:       * 1 coin to start
   303:       * individual coin slots
   304:       * Difficulty : Normal
   305:       * Gun vibtation ON  (unsupported yet)
   306: 
   307:   - controls :
   308: 
   309:       * 2 lightguns  (already calibrated via predefined EEPROM)
   310: 
   311:   - buttons :
   312: 
   313:       * BUTTON1 : trigger (= shoot)  (also acts as a START button)
   314:       * BUTTON2 : bombs
   315: 
   316: 
   317: 11a) 'sonic'
   318: 
   319:   - default settings :
   320: 
   321:       * 1 coin to start
   322:       * common coin slots  (do not change to "individual" as there is no COIN3 !)
   323:       * Difficulty : 2/4
   324:       * Vitality : 2/4
   325:       * 2 players cabinet
   326: 
   327:   - controls :
   328: 
   329:       * 2/3 trackballs (one for each player)
   330: 
   331:   - buttons :
   332: 
   333:       * BUTTON1 : attack
   334: 
   335: 
   336: 11b) 'sonicp'
   337: 
   338:   UNTESTED !
   339: 
   340: */
   341: 
   342: #include "driver.h" 
   343: #include "vidhrdw/generic.h" 
   344: #include "machine/eeprom.h" 
   345: #include "machine/random.h" 
   346: 
   347: #define OSC_A	(32215900)	// System 32 master crystal is 32215900 Hz 
   348: #define MAX_COLOURS (16384) 
   349: enum { EEPROM_SYS32_0=0, EEPROM_ALIEN3, EEPROM_RADM, EEPROM_RADR };
   350: 
   351: static unsigned char irq_status;
   352: static data16_t *system32_shared_ram;
   353: data16_t *system32_mixerregs[2];		// mixer registers
   354: static int s32_blo, s32_bhi;		// bank high and low values
   355: static int s32_f1_prot;			// port f1 is used to protect the sound program on some games
   356: static data16_t *sys32_protram;
   357: static int tocab, fromcab;
   358: static data16_t *system32_workram;
   359: data16_t sys32_tilebank_external;
   360: data16_t sys32_displayenable;
   361: 
   362: /* Video Hardware */
   363: int system32_temp_kludge;
   364: data16_t *sys32_spriteram16;
   365: data16_t *sys32_txtilemap_ram;
   366: data16_t *sys32_ramtile_ram;
   367: data16_t *scrambled_paletteram16[2];
   368: 
   369: int system32_mixerShift;
   370: extern int system32_screen_mode;
   371: extern int system32_screen_old_mode;
   372: extern int system32_allow_high_resolution;
   373: extern int multi32;
   374: 
   375: extern int sys32_brightness[2][3];
   376: 
   377: WRITE16_HANDLER( sys32_videoram_w );
   378: WRITE16_HANDLER ( sys32_ramtile_w );
   379: WRITE16_HANDLER ( sys32_spriteram_w );
   380: READ16_HANDLER ( sys32_videoram_r );
   381: VIDEO_START( system32 );
   382: VIDEO_UPDATE( system32 );
   383: 
   384: int system32_use_default_eeprom;
   385: 
   386: /* alien 3 with the gun calibrated, it doesn't prompt you if its not */
   387: unsigned char alien3_default_eeprom[128] = {
   388: 	0x33, 0x53, 0x41, 0x32, 0x00, 0x35, 0x00, 0x00, 0x8B, 0xE8, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00,
   389: 	0x01, 0x01, 0x03, 0x00, 0x01, 0x08, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00,
   390: 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   391: 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   392: 	0x00, 0x00, 0x00, 0x00, 0x8B, 0xE8, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x03, 0x00,
   393: 	0x01, 0x08, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   394: 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   395: 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
   396: };
   397: 
   398: /* put radmobile in 'upright' mode since we don't emulate the motor */
   399: unsigned char radm_default_eeprom[128] = {
   400: 	0x45, 0x53, 0x41, 0x47, 0x83, 0x01, 0x00, 0x01, 0x03, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   401: 	0x01, 0xFF, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   402: 	0x60, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   403: 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
   404: 	0x45, 0x53, 0x41, 0x47, 0x83, 0x01, 0x00, 0x01, 0x03, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   405: 	0x01, 0xFF, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   406: 	0x60, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   407: 	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00
   408: };
   409: 
   410: /* set rad rally to 1 coin 1 credit otherwise it'll boot into freeplay by default which isn't ideal ;-) */
   411: unsigned char radr_default_eeprom[128] = {
   412:  0x45, 0x53, 0x41, 0x47, 0x00, 0x03, 0x00, 0x01, 0x04, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   413:  0x01, 0xFF, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
   414:  0x75, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   415:  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
   416:  0x45, 0x53, 0x41, 0x47, 0x00, 0x03, 0x00, 0x01, 0x04, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   417:  0x01, 0xFF, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
   418:  0x75, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   419:  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00
   420: };
   421: 
   422: static void irq_raise(int level)
   423: {
   424: 	irq_status |= (1 << level);
   425: 	cpu_set_irq_line(0, 0, ASSERT_LINE);
   426: }
   427: 
   428: static int irq_callback(int irqline)
   429: {
   430: 	int i;
   431: 	for(i=7; i>=0; i--)
   432: 		if(irq_status & (1 << i)) {
   433: 			return i;
   434: 		}
   435: 	return 0;
   436: }
   437: 
   438: static WRITE16_HANDLER(irq_ack_w)
   439: {
   440: 	if(ACCESSING_MSB) {
   441: 		irq_status &= data >> 8;
   442: 		if(!irq_status)
   443: 			cpu_set_irq_line(0, 0, CLEAR_LINE);
   444: 	}
   445: }
   446: 
   447: static void irq_init(void)
   448: {
   449: 	irq_status = 0;
   450: 	cpu_set_irq_line(0, 0, CLEAR_LINE);
   451: 	cpu_set_irq_callback(0, irq_callback);
   452: }
   453: 
   454: static NVRAM_HANDLER( system32 )
   455: {
   456: 	if (read_or_write)
   457: 		EEPROM_save(file);
   458: 	else {
   459: 		EEPROM_init(&eeprom_interface_93C46);
   460: 
   461: 		if (file)
   462: 			EEPROM_load(file);
   463: 		else
   464: 		{
   465: 			if (system32_use_default_eeprom == EEPROM_ALIEN3)
   466: 				EEPROM_set_data(alien3_default_eeprom,0x80);
   467: 
   468: 			if (system32_use_default_eeprom == EEPROM_RADM)
   469: 				EEPROM_set_data(radm_default_eeprom,0x80);
   470: 
   471: 			if (system32_use_default_eeprom == EEPROM_RADR)
   472: 				EEPROM_set_data(radr_default_eeprom,0x80);
   473: 		}
   474: 	}
   475: }
   476: 
   477: static READ16_HANDLER(system32_eeprom_r)
   478: {
   479: 	return (EEPROM_read_bit() << 7) | input_port_0_r(0);
   480: }
   481: 
   482: static WRITE16_HANDLER(system32_eeprom_w)
   483: {
   484: 	if(ACCESSING_LSB) {
   485: 		EEPROM_write_bit(data & 0x80);
   486: 		EEPROM_set_cs_line((data & 0x20) ? CLEAR_LINE : ASSERT_LINE);
   487: 		EEPROM_set_clock_line((data & 0x40) ? ASSERT_LINE : CLEAR_LINE);
   488: 	}
   489: }
   490: 
   491: static READ16_HANDLER(ga2_sprite_protection_r)
   492: {
   493: 	static unsigned int prot[16] =
   494: 	{
   495: 		0x0a, 0,
   496: 		0xc5, 0,
   497: 		0x11, 0,
   498: 		0x11, 0,
   499: 		0x18, 0,
   500: 		0x18, 0,
   501: 		0x1f, 0,
   502: 		0xc6, 0,
   503: 	};
   504: 
   505: 	return prot[offset];
   506: }
   507: 
   508: static READ16_HANDLER(ga2_wakeup_protection_r)
   509: {
   510: 	static const char *prot =
   511: 		"wake up! GOLDEN AXE The Revenge of Death-Adder! ";
   512: 	return prot[offset];
   513: }
   514: 
   515: // the protection board on many system32 games has full dma/bus access
   516: // and can write things into work RAM.  we simulate that here for burning rival.
   517: static READ16_HANDLER(brival_protection_r)
   518: {
   519: 	if (!mem_mask)	// only trap on word-wide reads
   520: 	{
   521: 		switch (offset)
   522: 		{
   523: 			case 0:
   524: 			case 2:
   525: 			case 3:
   526: 				return 0;
   527: 				break;
   528: 		}
   529: 	}
   530: 
   531: 	return system32_workram[0xba00/2 + offset];
   532: }
   533: 
   534: static WRITE16_HANDLER(brival_protboard_w)
   535: {
   536: 	static const int protAddress[6][2] =
   537: 	{
   538: 		{ 0x9517, 0x00/2 },
   539: 		{ 0x9597, 0x10/2 },
   540: 		{ 0x9597, 0x20/2 },
   541: 		{ 0x9597, 0x30/2 },
   542: 		{ 0x9597, 0x40/2 },
   543: 		{ 0x9617, 0x50/2 },
   544: 	};
   545: 	char ret[32];
   546: 	int curProtType;
   547: 	unsigned char *ROM = memory_region(REGION_CPU1) + 0x100000;
   548: 
   549: 	switch (offset)
   550: 	{
   551: 		case 0x800/2:
   552: 			curProtType = 0;
   553: 			break;
   554: 		case 0x802/2:
   555: 			curProtType = 1;
   556: 			break;
   557: 		case 0x804/2:
   558: 			curProtType = 2;
   559: 			break;
   560: 		case 0x806/2:
   561: 			curProtType = 3;
   562: 			break;
   563: 		case 0x808/2:
   564: 			curProtType = 4;
   565: 			break;
   566: 		case 0x80a/2:
   567: 			curProtType = 5;
   568: 			break;
   569: 		default:
   570: 			if (offset >= 0xa00/2 && offset < 0xc00/2)
   571: 				return;
   572: 			logerror("brival_protboard_w: UNKNOWN WRITE: offset %x value %x\n", offset, data);
   573: 			return;
   574: 			break;
   575: 	}
   576: 
   577: 	memcpy(ret, &ROM[protAddress[curProtType][0]], 16);
   578: 	ret[16] = '\0';
   579: 
   580: 	memcpy(&sys32_protram[protAddress[curProtType][1]], ret, 16);
   581: }
   582: 
   583: // protection ram is 8-bits wide and only occupies every other address
   584: static READ16_HANDLER(arabfgt_protboard_r)
   585: {
   586: 	int PC = activecpu_get_pc();
   587: 	int cmpVal;
   588: 
   589: 	if (PC == 0xfe0325 || PC == 0xfe01e5 || PC == 0xfe035e || PC == 0xfe03cc)
   590: 	{
   591: 		cmpVal = activecpu_get_reg(1);
   592: 
   593: 		// R0 always contains the value the protection is supposed to return (!)
   594: 		return cmpVal;
   595: 	}
   596: 	else
   597: 	{
   598: 		usrintf_showmessage("UNKONWN ARF PROTECTION READ PC=%x\n", PC);
   599: 	}
   600: 
   601: 	return 0;
   602: }
   603: 
   604: static WRITE16_HANDLER(arabfgt_protboard_w)
   605: {
   606: }
   607: 
   608: static READ16_HANDLER(arf_wakeup_protection_r)
   609: {
   610: 	static const char *prot =
   611: 		"wake up! ARF!                                   ";
   612: 	return prot[offset];
   613: }
   614: 
   615: static READ16_HANDLER(sys32_read_ff)
   616: {
   617: 	return 0xffff;
   618: }
   619: 
   620: static READ16_HANDLER(sys32_read_random)
   621: {
   622: 	return mame_rand(); // new random.c random number code, see clouds in ga2
   623: }
   624: 
   625: int analogRead[8];
   626: int analogSwitch=0;
   627: 
   628: static READ16_HANDLER( system32_io_analog_r )
   629: {
   630: /*
   631: 	{ 0xc00050, 0xc00057, system32_io_analog_r },
   632: 
   633: 	 Read the value of each analog control port, one bit at a time, 8 times.
   634: 	 Analog Input Set B is requested by the hardware using "analogSwitch"
   635: */
   636: 	int retdata;
   637: 	if (offset<=3) {
   638: 		retdata = analogRead[offset*2+analogSwitch] & 0x80;
   639: 		analogRead[offset*2+analogSwitch] <<= 1;
   640: 		return retdata;
   641: 	}
   642: 
   643: 	switch(offset)
   644: 	{
   645: 	default:
   646: 		logerror("system32_io_analog [%d:%06x]: read %02x (mask %x)\n", cpu_getactivecpu(), activecpu_get_pc(), offset, mem_mask);
   647: 		return 0xffff;
   648: 		break;
   649: 	}
   650: }
   651: 
   652: static WRITE16_HANDLER( system32_io_analog_w )
   653: {
   654: 	if (offset<=3) {
   655: 		if (analogSwitch) analogRead[offset*2+1]=readinputport(offset*2+5);
   656: 		else analogRead[offset*2]=readinputport(offset*2+4);
   657: 	}
   658: }
   659: 
   660: static READ16_HANDLER( system32_io_r )
   661: {
   662: /* I/O Control port at 0xc00000
   663: 
   664: 	{ 0xc00000, 0xc00001, input_port_1_word_r },
   665: 	{ 0xc00002, 0xc00003, input_port_2_word_r },
   666: 	{ 0xc00004, 0xc00007, sys32_read_ff },
   667: 	{ 0xc00008, 0xc00009, input_port_3_word_r },
   668: 	{ 0xc0000a, 0xc0000b, system32_eeprom_r },
   669: 	{ 0xc0000c, 0xc0004f, sys32_read_ff },
   670: */
   671: 	switch(offset) {
   672: 	case 0x00:
   673: 		return readinputport(0x01);
   674: 	case 0x01:
   675: 		return readinputport(0x02);
   676: 	case 0x02:
   677: 		return 0xffff;
   678: 	case 0x03:
   679: 		// f1lap
   680: 		return 0xffff;
   681: 	case 0x04:
   682: 		return readinputport(0x03);
   683: 	case 0x05:
   684: 		return (EEPROM_read_bit() << 7) | readinputport(0x00);
   685: 	case 0x06:
   686: 		return 0xffff;
   687: 	case 0x07:
   688: 		// scross
   689: 		return sys32_tilebank_external;
   690: 	case 0x0e:
   691: 		// f1lap
   692: 		return 0xffff;
   693: 	default:
   694: 		logerror("Port A1 %d [%d:%06x]: read (mask %x)\n", offset, cpu_getactivecpu(), activecpu_get_pc(), mem_mask);
   695: 		return 0xffff;
   696: 	}
   697: }
   698: 
   699: static WRITE16_HANDLER( system32_io_w )
   700: {
   701: /* I/O Control port at 0xc00000
   702: 
   703: 	{ 0xc00006, 0xc00007, system32_eeprom_w },
   704: 	{ 0xc0000c, 0xc0000d, jp_v60_write_cab },
   705: 	{ 0xc00008, 0xc0000d, MWA16_RAM }, // Unknown c00008=f1lap , c0000c=titlef
   706: 	{ 0xc0000e, 0xc0000f, MWA16_RAM, &sys32_tilebank_external }, // tilebank per layer on multi32
   707: 	{ 0xc0001c, 0xc0001d, MWA16_RAM, &sys32_displayenable },
   708: 	{ 0xc0001e, 0xc0001f, MWA16_RAM }, // Unknown
   709: */
   710: 
   711: 	switch(offset) {
   712: 	case 0x03:
   713: 		if(ACCESSING_LSB) {
   714: 			EEPROM_write_bit(data & 0x80);
   715: 			EEPROM_set_cs_line((data & 0x20) ? CLEAR_LINE : ASSERT_LINE);
   716: 			EEPROM_set_clock_line((data & 0x40) ? ASSERT_LINE : CLEAR_LINE);
   717: 		}
   718: 		break;
   719: 	case 0x04:
   720: 		// f1lap
   721: 		break;
   722: 	case 0x06:
   723: 		// jp_v60_write_cab / titlef
   724: 		tocab = data;
   725: 		cpu_set_irq_line(1, 0, HOLD_LINE);
   726: 		break;
   727: 	case 0x07:
   728: 		// multi32 tilebank per layer
   729: 		COMBINE_DATA(&sys32_tilebank_external);
   730: 		break;
   731: 	case 0x0e:
   732: 		COMBINE_DATA(&sys32_displayenable);
   733: 		break;
   734: 	case 0x0f:
   735: 		// orunners unknown
   736: 		break;
   737: 	default:
   738: 		logerror("Port A1 %d [%d:%06x]: write %02x (mask %x)\n", offset, cpu_getactivecpu(), activecpu_get_pc(), data, mem_mask);
   739: 		break;
   740: 	}
   741: }
   742: 
   743: static READ16_HANDLER( system32_io_2_r )
   744: {
   745: /* I/O Control port at 0xc00060
   746: 
   747: 	{ 0xc00060, 0xc00061, input_port_4_word_r },
   748: 	{ 0xc00062, 0xc00063, input_port_5_word_r },
   749: 	{ 0xc00064, 0xc00065, input_port_6_word_r },
   750: 	{ 0xc00066, 0xc000ff, sys32_read_ff },
   751: */
   752: 	switch(offset) {
   753: 	case 0x00:
   754: 		return readinputport(0x04);
   755: 	case 0x01:
   756: 		return readinputport(0x05);
   757: 	case 0x02:
   758: 		return readinputport(0x06);
   759: 	default:
   760: 		logerror("Port A2 %d [%d:%06x]: read (mask %x)\n", offset, cpu_getactivecpu(), activecpu_get_pc(), mem_mask);
   761: 		return 0xffff;
   762: 	}
   763: }
   764: 
   765: static WRITE16_HANDLER( system32_io_2_w )
   766: {
   767: /* I/O Control port at 0xc00060
   768: 
   769: 	{ 0xc00060, 0xc00061, MWA16_RAM }, // Analog switch
   770: 	{ 0xc00074, 0xc00075, MWA16_RAM }, // Unknown
   771: */
   772: 
   773: 	switch(offset) {
   774: 	case 0x00:
   775: 		// orunners: Used by the hardware to switch the analog input ports to set B
   776: 		analogSwitch=data;
   777: 		break;
   778: 	case 0x0a:
   779: 		// orunners unknown
   780: 		break;
   781: 	default:
   782: 		logerror("Port A2 %d [%d:%06x]: write %02x (mask %x)\n", offset, cpu_getactivecpu(), activecpu_get_pc(), data, mem_mask);
   783: 		break;
   784: 	}
   785: }
   786: 
   787: void system32_set_colour (int offset)
   788: {
   789: 	int data;
   790: 	int r,g,b;
   791: 	int r2,g2,b2;
   792: 	UINT16 r_bright, g_bright, b_bright;
   793: 
   794: 	data = paletteram16[offset];
   795: 
   796: 	r = (data >> 0) & 0x0f;
   797: 	g = (data >> 4) & 0x0f;
   798: 	b = (data >> 8) & 0x0f;
   799: 
   800: 	r2 = (data >> 13) & 0x1;
   801: 	g2 = (data >> 13) & 0x1;
   802: 	b2 = (data >> 13) & 0x1;
   803: 
   804: 	r = (r << 4) | (r2 << 3);
   805: 	g = (g << 4) | (g2 << 3);
   806: 	b = (b << 4) | (b2 << 3);
   807: 
   808: 	// there might be better ways of doing this ... but for now its functional ;-)
   809: 	r_bright = sys32_brightness[0][0]; r_bright &= 0x3f;
   810: 	g_bright = sys32_brightness[0][1]; g_bright &= 0x3f;
   811: 	b_bright = sys32_brightness[0][2]; b_bright &= 0x3f;
   812: 
   813: 	if ((r_bright & 0x20)) { r = (r * (r_bright&0x1f))>>5; } else { r = r+(((0xf8-r) * (r_bright&0x1f))>>5); }
   814: 	if ((g_bright & 0x20)) { g = (g * (g_bright&0x1f))>>5; } else { g = g+(((0xf8-g) * (g_bright&0x1f))>>5); }
   815: 	if ((b_bright & 0x20)) { b = (b * (b_bright&0x1f))>>5; } else { b = b+(((0xf8-b) * (b_bright&0x1f))>>5); }
   816: 
   817: 	palette_set_color(offset,r,g,b);
   818: }
   819: 
   820: static WRITE16_HANDLER( system32_paletteram16_xBBBBBGGGGGRRRRR_scrambled_word_w )
   821: {
   822: 	int r,g,b;
   823: 	int r2,g2,b2;
   824: 
   825: 	COMBINE_DATA(&scrambled_paletteram16[0][offset]); // it expects to read back the same values?
   826: 
   827: 	/* rearrange the data to normal format ... */
   828: 
   829: 	r = (data >>1) & 0xf;
   830: 	g = (data >>6) & 0xf;
   831: 	b = (data >>11) & 0xf;
   832: 
   833: 	r2 = (data >>0) & 0x1;
   834: 	g2 = (data >>5) & 0x1;
   835: 	b2 = (data >> 10) & 0x1;
   836: 
   837: 	data = (data & 0x8000) | r | g<<4 | b << 8 | r2 << 12 | g2 << 13 | b2 << 14;
   838: 
   839: 
   840: 	COMBINE_DATA(&paletteram16[offset]);
   841: 
   842: 	system32_set_colour(offset);
   843: }
   844: 
   845: static WRITE16_HANDLER( system32_paletteram16_xBGRBBBBGGGGRRRR_word_w )
   846: {
   847: 	COMBINE_DATA(&paletteram16[offset]);
   848: 
   849: 	// some games use 8-bit writes to some palette regions
   850: 	// (especially for the text layer palettes)
   851: 
   852: 	system32_set_colour(offset);
   853: }
   854: 
   855: static READ16_HANDLER( jp_v60_read_cab )
   856: {
   857: 	return fromcab;
   858: }
   859: 
   860: static WRITE16_HANDLER( jp_v60_write_cab )
   861: {
   862: 	tocab = data;
   863: 	cpu_set_irq_line(1, 0, HOLD_LINE);
   864: }
   865: 
   866: 
   867: static MEMORY_READ16_START( system32_readmem )
   868: 	{ 0x000000, 0x1fffff, MRA16_ROM },
   869: 	{ 0x200000, 0x23ffff, MRA16_RAM }, // work RAM
   870: 	{ 0x300000, 0x31ffff, sys32_videoram_r }, // Tile Ram
   871: 	{ 0x400000, 0x41ffff, MRA16_RAM }, // sprite RAM
   872: 	{ 0x500002, 0x500003, jp_v60_read_cab },
   873: 	{ 0x500000, 0x50000d, MRA16_RAM },	// Unknown
   874: 
   875: 	{ 0x600000, 0x6100ff, MRA16_RAM }, // Palette + mixer registers (Monitor A)
   876: 
   877: 	{ 0x700000, 0x701fff, MRA16_RAM },	// shared RAM
   878: 	{ 0x800000, 0x80000f, MRA16_RAM },	// Unknown
   879: 	{ 0x80007e, 0x80007f, MRA16_RAM },	// Unknown f1lap
   880: 	{ 0x801000, 0x801003, MRA16_RAM },	// Unknown
   881: 	{ 0xa00000, 0xa00001, MRA16_RAM }, // Unknown dbzvrvs
   882: 
   883: 	{ 0xc00000, 0xc0003f, system32_io_r },
   884: // 0xc00040, 0xc0005f - Game specific implementation of the analog controls
   885: 	{ 0xc00060, 0xc0007f, system32_io_2_r },
   886: 
   887: 	{ 0xd80000, 0xd80001, sys32_read_random },
   888: 	{ 0xd80002, 0xd80003, MRA16_RAM }, // Unknown harddunk
   889: 	{ 0xe00000, 0xe0000f, MRA16_RAM },   // Unknown
   890: 	{ 0xe80000, 0xe80003, MRA16_RAM }, // Unknown
   891: 	{ 0xf00000, 0xffffff, MRA16_BANK1 }, // High rom mirror
   892: MEMORY_END
   893: 
   894: static MEMORY_WRITE16_START( system32_writemem )
   895: 	{ 0x000000, 0x1fffff, MWA16_ROM },
   896: 	{ 0x200000, 0x23ffff, MWA16_RAM, &system32_workram },
   897: 	{ 0x300000, 0x31ffff, sys32_videoram_w },
   898: 	{ 0x400000, 0x41ffff, sys32_spriteram_w, &sys32_spriteram16 }, // Sprites
   899: 	{ 0x500000, 0x50000d, MWA16_RAM },	// Unknown
   900: 
   901: 	{ 0x600000, 0x607fff, system32_paletteram16_xBBBBBGGGGGRRRRR_scrambled_word_w, &scrambled_paletteram16[0] },	// magic data-line-scrambled mirror of palette RAM * we need to shuffle data written then?
   902: 	{ 0x608000, 0x60ffff, system32_paletteram16_xBGRBBBBGGGGRRRR_word_w, &paletteram16 }, // Palettes
   903: 	{ 0x610000, 0x6100ff, MWA16_RAM, &system32_mixerregs[0] }, // mixer chip registers
   904: 
   905: 	{ 0x700000, 0x701fff, MWA16_RAM, &system32_shared_ram }, // Shared ram with the z80
   906: 	{ 0x800000, 0x80000f, MWA16_RAM },	// Unknown
   907: 	{ 0x80007e, 0x80007f, MWA16_RAM },	// Unknown f1lap
   908: 	{ 0x801000, 0x801003, MWA16_RAM },	// Unknown
   909: 	{ 0x81002a, 0x81002b, MWA16_RAM },	// Unknown dbzvrvs
   910: 	{ 0x810100, 0x810101, MWA16_RAM },	// Unknown dbzvrvs
   911: 	{ 0xa00000, 0xa00fff, MWA16_RAM, &sys32_protram },	// protection RAM
   912: 
   913: 	{ 0xc00000, 0xc0003f, system32_io_w },
   914: // 0xc00040, 0xc0005f - Game specific implementation of the analog controls
   915: 	{ 0xc00060, 0xc0007f, system32_io_2_w },
   916: 
   917: 	{ 0xd00000, 0xd00005, MWA16_RAM }, // Unknown
   918: 	{ 0xd00006, 0xd00007, irq_ack_w },
   919: 	{ 0xd00008, 0xd0000b, MWA16_RAM }, // Unknown
   920: 	{ 0xd80000, 0xd80003, MWA16_RAM }, // Unknown titlef / harddunk
   921: 	{ 0xe00000, 0xe0000f, MWA16_RAM },   // Unknown
   922: 	{ 0xe80000, 0xe80003, MWA16_RAM }, // Unknown
   923: 	{ 0xf00000, 0xffffff, MWA16_ROM },
   924: MEMORY_END
   925: 
   926: static UINT8 *sys32_SoundMemBank;
   927: 
   928: static READ_HANDLER( system32_bank_r )
   929: {
   930: 	return sys32_SoundMemBank[offset];
   931: }
   932: 
   933: // the Z80's work RAM is fully shared with the V60 or V70 and battery backed up.
   934: static READ_HANDLER( sys32_shared_snd_r )
   935: {
   936: 	data8_t *RAM = (data8_t *)system32_shared_ram;
   937: 
   938: 	return RAM[offset];
   939: }
   940: 
   941: static WRITE_HANDLER( sys32_shared_snd_w )
   942: {
   943: 	data8_t *RAM = (data8_t *)system32_shared_ram;
   944: 
   945: 	RAM[offset] = data;
   946: }
   947: 
   948: // some games require that port f1 be a magic echo-back latch.
   949: // thankfully, it's not required to do any math or anything on the values.
   950: static READ_HANDLER( sys32_sound_prot_r )
   951: {
   952: 	return s32_f1_prot;
   953: }
   954: 
   955: static WRITE_HANDLER( sys32_sound_prot_w )
   956: {
   957: 	s32_f1_prot = data;
   958: }
   959: 
   960: static MEMORY_READ_START( sound_readmem_32 )
   961: 	{ 0x0000, 0x9fff, MRA_ROM },
   962: 	{ 0xa000, 0xbfff, system32_bank_r },
   963: 	{ 0xd000, 0xdfff, RF5C68_r },
   964: 	{ 0xe000, 0xffff, sys32_shared_snd_r },
   965: MEMORY_END
   966: 
   967: static MEMORY_WRITE_START( sound_writemem_32 )
   968: 	{ 0x0000, 0x9fff, MWA_ROM },
   969: 	{ 0xc000, 0xc008, RF5C68_reg_w },
   970: 	{ 0xd000, 0xdfff, RF5C68_w },
   971: 	{ 0xe000, 0xffff, sys32_shared_snd_w },
   972: MEMORY_END
   973: 
   974: static void s32_recomp_bank(void)
   975: {
   976: 	unsigned char *RAM = memory_region(REGION_CPU2);
   977: 	int Bank=0;
   978: 	static char remapbhi[8] =
   979: 	{
   980: 		0, 1, 5, 3, 4, 2, 6, 4
   981: 	};
   982: 
   983: 	switch (s32_blo & 0xc0)
   984: 	{
   985: 		case 0x00:	// normal case
   986: 			Bank = (((remapbhi[s32_bhi]<<6) + (s32_blo)) << 13);
   987: 			break;
   988: 		case 0x40:
   989: 		case 0xc0:
   990: 			// SegaSonic (prototype) needs this alternate interpretation.
   991: //			Bank = (((remapbhi[s32_bhi]<<5) + (s32_blo&0x3f)) << 13);
   992: 			// all other s32 games work with this, notably Super Visual Football
   993: 			// and Alien3: The Gun
   994: 			Bank = (((remapbhi[s32_bhi]<<6) + (s32_blo&0x3f)) << 13);
   995: 			break;
   996: 	}
   997: 
   998: 	sys32_SoundMemBank = &RAM[Bank+0x100000];
   999: }
  1000: 
  1001: static WRITE_HANDLER( sys32_soundbank_lo_w )
  1002: {
  1003: 	s32_blo = data;
  1004: 	s32_recomp_bank();
  1005: }
  1006: 
  1007: static WRITE_HANDLER( sys32_soundbank_hi_w )
  1008: {
  1009: 	s32_bhi = data;
  1010: 	s32_recomp_bank();
  1011: }
  1012: 
  1013: static PORT_READ_START( sound_readport_32 )
  1014: 	{ 0x80, 0x80, YM2612_status_port_0_A_r },
  1015: 	{ 0x90, 0x90, YM2612_status_port_1_A_r },
  1016: 	{ 0xf1, 0xf1, sys32_sound_prot_r },
  1017: PORT_END
  1018: 
  1019: static PORT_WRITE_START( sound_writeport_32 )
  1020: 	{ 0x80, 0x80, YM2612_control_port_0_A_w },
  1021: 	{ 0x81, 0x81, YM2612_data_port_0_A_w },
  1022: 	{ 0x82, 0x82, YM2612_control_port_0_B_w },
  1023: 	{ 0x83, 0x83, YM2612_data_port_0_B_w },
  1024: 	{ 0x90, 0x90, YM2612_control_port_1_A_w },
  1025: 	{ 0x91, 0x91, YM2612_data_port_1_A_w },
  1026: 	{ 0x92, 0x92, YM2612_control_port_1_B_w },
  1027: 	{ 0x93, 0x93, YM2612_data_port_1_B_w },
  1028: 	{ 0xa0, 0xa0, sys32_soundbank_lo_w },
  1029: 	{ 0xb0, 0xb0, sys32_soundbank_hi_w },
  1030: 	{ 0xc1, 0xc1, IOWP_NOP },
  1031: 	{ 0xf1, 0xf1, sys32_sound_prot_w },
  1032: PORT_END
  1033: 
  1034: static MACHINE_INIT( system32 )
  1035: {
  1036: 	cpu_setbank(1, memory_region(REGION_CPU1));
  1037: 	irq_init();
  1038: 
  1039: 	/* force it to select lo-resolution on reset */
  1040: 	system32_allow_high_resolution = 0;
  1041: 	system32_screen_mode = 0;
  1042: 	system32_screen_old_mode = 1;
  1043: }
  1044: 
  1045: static MACHINE_INIT( s32hi )
  1046: {
  1047: 	cpu_setbank(1, memory_region(REGION_CPU1));
  1048: 	irq_init();
  1049: 
  1050: 	/* force it to select lo-resolution on reset */
  1051: 	system32_allow_high_resolution = 1;
  1052: 	system32_screen_mode = 0;
  1053: 	system32_screen_old_mode = 1;
  1054: }
  1055: 
  1056: 
  1057: static INTERRUPT_GEN( system32_interrupt )
  1058: {
  1059: 	if(cpu_getiloops())
  1060: 		irq_raise(1);
  1061: 	else
  1062: 		irq_raise(0);
  1063: }
  1064: 
  1065: /* jurassic park moving cab - not working yet */
  1066: 
  1067: static READ_HANDLER( jpcab_z80_read )
  1068: {
  1069: 	return tocab;
  1070: }
  1071: 
  1072: static MEMORY_READ_START( jpcab_readmem )
  1073: 	{ 0x0000, 0x7fff, MRA_ROM },
  1074: 	{ 0x8000, 0x8fff, MRA_RAM },
  1075: 	{ 0xc000, 0xc008, jpcab_z80_read },
  1076: 	{ 0xd000, 0xffff, MRA_RAM },
  1077: MEMORY_END
  1078: 
  1079: static MEMORY_WRITE_START( jpcab_writemem )
  1080: 	{ 0x0000, 0x7fff, MWA_ROM },
  1081: 	{ 0x8000, 0x8fff, MWA_RAM },
  1082: 	{ 0xc000, 0xc008, MWA_RAM },
  1083: 	{ 0xd000, 0xffff, MWA_RAM },
  1084: MEMORY_END
  1085: 
  1086: static PORT_READ_START( jpcab_readport )
  1087: 	{ 0x04, 0x04, IORP_NOP },		// interrupt control
  1088: 	{ 0x80, 0x83, IORP_NOP },
  1089: 	{ 0x90, 0x93, IORP_NOP },
  1090: 	{ 0xc0, 0xc1, IORP_NOP },
  1091: 	{ 0xd0, 0xd3, IORP_NOP },
  1092: 	{ 0xd8, 0xd8, IORP_NOP },
  1093: PORT_END
  1094: 
  1095: static PORT_WRITE_START( jpcab_writeport )
  1096: 	{ 0x04, 0x04, IOWP_NOP },
  1097: 	{ 0x80, 0x83, IOWP_NOP },
  1098: 	{ 0x90, 0x93, IOWP_NOP },
  1099: 	{ 0xc0, 0xc1, IOWP_NOP },
  1100: 	{ 0xd0, 0xd3, IOWP_NOP },
  1101: 	{ 0xd8, 0xd8, IOWP_NOP },
  1102: PORT_END
  1103: 
  1104: /* Analog Input Handlers */
  1105: /* analog controls for sonic */
  1106: /*
  1107: 
  1108: sonic analog trackball inputs
  1109: these are relative signed inputs that must be
  1110: between -96 and 96 each frame or sonic's code will reject them.
  1111: 
  1112: */
  1113: 
  1114: static UINT8 last[6];
  1115: 
  1116: static WRITE16_HANDLER( sonic_track_reset_w )
  1117: {
  1118: 	switch (offset)
  1119: 	{
  1120: 		case 0x00 >> 1:
  1121: 			last[0] = readinputport(7);
  1122: 			last[1] = readinputport(8);
  1123: 			break;
  1124: 		case 0x08 >> 1:
  1125: 			last[2] = readinputport(9);
  1126: 			last[3] = readinputport(10);
  1127: 			break;
  1128: 		case 0x10 >> 1:
  1129: 			last[4] = readinputport(11);
  1130: 			last[5] = readinputport(12);
  1131: 			break;
  1132: 		default:
  1133: 			logerror("track_w : warning - read unmapped address %06x - PC = %06x\n",0xc00040 + (offset << 1),activecpu_get_pc());
  1134: 			break;
  1135: 	}
  1136: }
  1137: 
  1138: static READ16_HANDLER( sonic_track_r )
  1139: {
  1140: 	int delta = 0;
  1141: 
  1142: 	switch (offset)
  1143: 	{
  1144: 		case 0x00 >> 1:
  1145: 			delta = (int)readinputport(7)  - (int)last[0];
  1146: 			break;
  1147: 		case 0x04 >> 1:
  1148: 			delta = (int)readinputport(8)  - (int)last[1];
  1149: 			break;
  1150: 		case 0x08 >> 1:
  1151: 			delta = (int)readinputport(9)  - (int)last[2];
  1152: 			break;
  1153: 		case 0x0c >> 1:
  1154: 			delta = (int)readinputport(10) - (int)last[3];
  1155: 			break;
  1156: 		case 0x10 >> 1:
  1157: 			delta = (int)readinputport(11) - (int)last[4];
  1158: 			break;
  1159: 		case 0x14 >> 1:
  1160: 			delta = (int)readinputport(12) - (int)last[5];
  1161: 			break;
  1162: 		default:
  1163: 			logerror("track_r : warning - read unmapped address %06x - PC = %06x\n",0xc00040 + (offset << 1),activecpu_get_pc());
  1164: 			break;
  1165: 	}
  1166: 
  1167: 	/* handle the case where we wrap around from 0x00 to 0xff, or vice versa */
  1168: 	if (delta >=  0x80)
  1169: 		delta -= 0x100;
  1170: 	if (delta <= -0x80)
  1171: 		delta += 0x100;
  1172: 
  1173: 	return delta;
  1174: }
  1175: 
  1176: /* lightgun for alien 3
  1177: 
  1178: WORKING (seems to be anyway)
  1179: 
  1180: */
  1181: 
  1182: static data16_t sys32_gun_p1_x_c00050_data;
  1183: static data16_t sys32_gun_p1_y_c00052_data;
  1184: static data16_t sys32_gun_p2_x_c00054_data;
  1185: static data16_t sys32_gun_p2_y_c00056_data;
  1186: 
  1187: static WRITE16_HANDLER ( sys32_gun_p1_x_c00050_w ) { sys32_gun_p1_x_c00050_data = readinputport(7); }
  1188: static WRITE16_HANDLER ( sys32_gun_p1_y_c00052_w ) { sys32_gun_p1_y_c00052_data = readinputport(8); sys32_gun_p1_y_c00052_data = (sys32_gun_p1_y_c00052_data+1)&0xff; }
  1189: static WRITE16_HANDLER ( sys32_gun_p2_x_c00054_w ) { sys32_gun_p2_x_c00054_data = readinputport(9); }
  1190: static WRITE16_HANDLER ( sys32_gun_p2_y_c00056_w ) { sys32_gun_p2_y_c00056_data = readinputport(10); sys32_gun_p2_y_c00056_data = (sys32_gun_p2_y_c00056_data+1)&0xff; }
  1191: 
  1192: static READ16_HANDLER ( sys32_gun_p1_x_c00050_r ) { int retdata; retdata = sys32_gun_p1_x_c00050_data & 0x80; sys32_gun_p1_x_c00050_data <<= 1; return retdata; }
  1193: static READ16_HANDLER ( sys32_gun_p1_y_c00052_r ) { int retdata; retdata = sys32_gun_p1_y_c00052_data & 0x80; sys32_gun_p1_y_c00052_data <<= 1; return retdata; }
  1194: static READ16_HANDLER ( sys32_gun_p2_x_c00054_r ) { int retdata; retdata = sys32_gun_p2_x_c00054_data & 0x80; sys32_gun_p2_x_c00054_data <<= 1; return retdata; }
  1195: static READ16_HANDLER ( sys32_gun_p2_y_c00056_r ) { int retdata; retdata = sys32_gun_p2_y_c00056_data & 0x80; sys32_gun_p2_y_c00056_data <<= 1; return retdata; }
  1196: 
  1197: /* end analog input bits */
  1198: 
  1199: 
  1200: 
  1201: #define SYSTEM32_PLAYER_INPUTS(_n_, _b1_, _b2_, _b3_, _b4_) \ 
  1202: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_##_b1_         | IPF_PLAYER##_n_ ) \
  1203: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_##_b2_         | IPF_PLAYER##_n_ ) \
  1204: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_##_b3_         | IPF_PLAYER##_n_ ) \
  1205: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_##_b4_         | IPF_PLAYER##_n_ ) \
  1206: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_PLAYER##_n_ ) \
  1207: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_PLAYER##_n_ ) \
  1208: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER##_n_ ) \
  1209: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER##_n_ )
  1210: 
  1211: 
  1212: /* Generic entry for 2 players games - to be used for games which haven't been tested yet */
  1213: INPUT_PORTS_START( system32 )
  1214: 	PORT_START	// 0xc0000a - port 0
  1215: 	PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1216: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  1217: 
  1218: 	PORT_START	// 0xc00000 - port 1
  1219: 	SYSTEM32_PLAYER_INPUTS(1, BUTTON1, BUTTON2, BUTTON3, BUTTON4)
  1220: 
  1221: 	PORT_START	// 0xc00002 - port 2
  1222: 	SYSTEM32_PLAYER_INPUTS(2, BUTTON1, BUTTON2, BUTTON3, BUTTON4)
  1223: 
  1224: 	PORT_START	// 0xc00008 - port 3
  1225: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1226: 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_SERVICE, "Test", KEYCODE_F2, IP_JOY_NONE )
  1227: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  1228: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  1229: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  1230: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  1231: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1232: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1233: 
  1234: 	PORT_START	// 0xc00060 - port 4
  1235: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1236: 
  1237: 	PORT_START	// 0xc00062 - port 5
  1238: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1239: 
  1240: 	PORT_START	// 0xc00064 - port 6
  1241: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1242: INPUT_PORTS_END
  1243: 
  1244: /* Generic entry for 4 players games - to be used for games which haven't been tested yet */
  1245: INPUT_PORTS_START( sys32_4p )
  1246: 	PORT_START	// 0xc0000a - port 0
  1247: 	PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1248: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  1249: 
  1250: 	PORT_START	// 0xc00000 - port 1
  1251: 	SYSTEM32_PLAYER_INPUTS(1, BUTTON1, BUTTON2, BUTTON3, BUTTON4)
  1252: 
  1253: 	PORT_START	// 0xc00002 - port 2
  1254: 	SYSTEM32_PLAYER_INPUTS(2, BUTTON1, BUTTON2, BUTTON3, BUTTON4)
  1255: 
  1256: 	PORT_START	// 0xc00008 - port 3
  1257: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1258: 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_SERVICE, "Test", KEYCODE_F2, IP_JOY_NONE )
  1259: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN4 )
  1260: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 )
  1261: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  1262: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  1263: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1264: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1265: 
  1266: 	PORT_START	// 0xc00060 - port 4
  1267: 	SYSTEM32_PLAYER_INPUTS(3, BUTTON1, BUTTON2, BUTTON3, BUTTON4)
  1268: 
  1269: 	PORT_START	// 0xc00062 - port 5
  1270: 	SYSTEM32_PLAYER_INPUTS(4, BUTTON1, BUTTON2, BUTTON3, BUTTON4)
  1271: 
  1272: 	PORT_START	// 0xc00064 - port 6
  1273: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START3 )
  1274: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START4 )
  1275: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 )
  1276: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 )
  1277: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1278: INPUT_PORTS_END
  1279: 
  1280: 
  1281: INPUT_PORTS_START( holo )
  1282: 	PORT_START	// 0xc0000a - port 0
  1283: 	PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1284: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  1285: 
  1286: 	PORT_START	// 0xc00000 - port 1
  1287: 	SYSTEM32_PLAYER_INPUTS(1, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN)
  1288: 
  1289: 	PORT_START	// 0xc00002 - port 2
  1290: 	SYSTEM32_PLAYER_INPUTS(2, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN)
  1291: 
  1292: 	PORT_START	// 0xc00008 - port 3
  1293: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1294: 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_SERVICE, "Test", KEYCODE_F2, IP_JOY_NONE )
  1295: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  1296: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  1297: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  1298: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  1299: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1300: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1301: 
  1302: 	PORT_START	// 0xc00060 - port 4
  1303: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1304: 
  1305: 	PORT_START	// 0xc00062 - port 5
  1306: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1307: 
  1308: 	PORT_START	// 0xc00064 - port 6
  1309: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1310: INPUT_PORTS_END
  1311: 
  1312: INPUT_PORTS_START( svf )
  1313: 	PORT_START	// 0xc0000a - port 0
  1314: 	PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1315: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  1316: 
  1317: 	PORT_START	// 0xc00000 - port 1
  1318: 	SYSTEM32_PLAYER_INPUTS(1, BUTTON1, BUTTON2, BUTTON3, UNKNOWN)
  1319: 
  1320: 	PORT_START	// 0xc00002 - port 2
  1321: 	SYSTEM32_PLAYER_INPUTS(2, BUTTON1, BUTTON2, BUTTON3, UNKNOWN)
  1322: 
  1323: 	PORT_START	// 0xc00008 - port 3
  1324: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1325: 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_SERVICE, "Test", KEYCODE_F2, IP_JOY_NONE )
  1326: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  1327: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  1328: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  1329: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  1330: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1331: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1332: 
  1333: 	PORT_START	// 0xc00060 - port 4
  1334: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1335: 
  1336: 	PORT_START	// 0xc00062 - port 5
  1337: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1338: 
  1339: 	PORT_START	// 0xc00064 - port 6
  1340: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1341: INPUT_PORTS_END
  1342: 
  1343: INPUT_PORTS_START( ga2 )
  1344: 	PORT_START	// 0xc0000a - port 0
  1345: 	PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1346: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  1347: 
  1348: 	PORT_START	// 0xc00000 - port 1
  1349: 	SYSTEM32_PLAYER_INPUTS(1, BUTTON1, BUTTON2, BUTTON3, UNKNOWN)
  1350: 
  1351: 	PORT_START	// 0xc00002 - port 2
  1352: 	SYSTEM32_PLAYER_INPUTS(2, BUTTON1, BUTTON2, BUTTON3, UNKNOWN)
  1353: 
  1354: 	PORT_START	// 0xc00008 - port 3
  1355: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1356: 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_SERVICE, "Test", KEYCODE_F2, IP_JOY_NONE )
  1357: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN4 )
  1358: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 )
  1359: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  1360: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  1361: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1362: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1363: 
  1364: 	PORT_START	// 0xc00060 - port 4
  1365: 	SYSTEM32_PLAYER_INPUTS(3, BUTTON1, BUTTON2, BUTTON3, UNKNOWN)
  1366: 
  1367: 	PORT_START	// 0xc00062 - port 5
  1368: 	SYSTEM32_PLAYER_INPUTS(4, BUTTON1, BUTTON2, BUTTON3, UNKNOWN)
  1369: 
  1370: 	PORT_START	// 0xc00064 - port 6
  1371: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START3 )
  1372: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START4 )
  1373: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 )
  1374: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 )
  1375: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1376: INPUT_PORTS_END
  1377: 
  1378: INPUT_PORTS_START( ga2j )
  1379: 	PORT_START	// 0xc0000a - port 0
  1380: 	PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1381: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  1382: 
  1383: 	PORT_START	// 0xc00000 - port 1
  1384: 	SYSTEM32_PLAYER_INPUTS(1, BUTTON1, BUTTON2, BUTTON3, UNKNOWN)
  1385: 
  1386: 	PORT_START	// 0xc00002 - port 2
  1387: 	SYSTEM32_PLAYER_INPUTS(2, BUTTON1, BUTTON2, BUTTON3, UNKNOWN)
  1388: 
  1389: 	PORT_START	// 0xc00008 - port 3
  1390: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1391: 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_SERVICE, "Test", KEYCODE_F2, IP_JOY_NONE )
  1392: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  1393: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  1394: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  1395: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  1396: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1397: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1398: 
  1399: 	PORT_START	// 0xc00060 - port 4
  1400: 	SYSTEM32_PLAYER_INPUTS(3, BUTTON1, BUTTON2, BUTTON3, UNKNOWN)
  1401: 
  1402: 	PORT_START	// 0xc00062 - port 5
  1403: 	SYSTEM32_PLAYER_INPUTS(4, BUTTON1, BUTTON2, BUTTON3, UNKNOWN)
  1404: 
  1405: 	PORT_START	// 0xc00064 - port 6
  1406: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START3 )
  1407: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START4 )
  1408: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 )
  1409: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 )
  1410: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1411: INPUT_PORTS_END
  1412: 
  1413: INPUT_PORTS_START( spidey )
  1414: 	PORT_START	// 0xc0000a - port 0
  1415: 	PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1416: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  1417: 
  1418: 	PORT_START	// 0xc00000 - port 1
  1419: 	SYSTEM32_PLAYER_INPUTS(1, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN)
  1420: 
  1421: 	PORT_START	// 0xc00002 - port 2
  1422: 	SYSTEM32_PLAYER_INPUTS(2, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN)
  1423: 
  1424: 	PORT_START	// 0xc00008 - port 3
  1425: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1426: 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_SERVICE, "Test", KEYCODE_F2, IP_JOY_NONE )
  1427: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN4 )
  1428: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 )
  1429: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  1430: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  1431: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1432: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1433: 
  1434: 	PORT_START	// 0xc00060 - port 4
  1435: 	SYSTEM32_PLAYER_INPUTS(3, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN)
  1436: 
  1437: 	PORT_START	// 0xc00062 - port 5
  1438: 	SYSTEM32_PLAYER_INPUTS(4, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN)
  1439: 
  1440: 	PORT_START	// 0xc00064 - port 6
  1441: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START3 )
  1442: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START4 )
  1443: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 )
  1444: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 )
  1445: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1446: INPUT_PORTS_END
  1447: 
  1448: INPUT_PORTS_START( spideyj )
  1449: 	PORT_START	// 0xc0000a - port 0
  1450: 	PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1451: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  1452: 
  1453: 	PORT_START	// 0xc00000 - port 1
  1454: 	SYSTEM32_PLAYER_INPUTS(1, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN)
  1455: 
  1456: 	PORT_START	// 0xc00002 - port 2
  1457: 	SYSTEM32_PLAYER_INPUTS(2, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN)
  1458: 
  1459: 	PORT_START	// 0xc00008 - port 3
  1460: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1461: 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_SERVICE, "Test", KEYCODE_F2, IP_JOY_NONE )
  1462: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  1463: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  1464: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  1465: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  1466: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1467: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1468: 
  1469: 	PORT_START	// 0xc00060 - port 4
  1470: 	SYSTEM32_PLAYER_INPUTS(3, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN)
  1471: 
  1472: 	PORT_START	// 0xc00062 - port 5
  1473: 	SYSTEM32_PLAYER_INPUTS(4, BUTTON1, BUTTON2, UNKNOWN, UNKNOWN)
  1474: 
  1475: 	PORT_START	// 0xc00064 - port 6
  1476: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START3 )
  1477: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START4 )
  1478: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1479: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1480: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1481: INPUT_PORTS_END
  1482: 
  1483: INPUT_PORTS_START( brival )
  1484: 	PORT_START	// 0xc0000a - port 0
  1485: 	PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1486: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  1487: 
  1488: 	PORT_START	// 0xc00000 - port 1
  1489: 	SYSTEM32_PLAYER_INPUTS(1, BUTTON1, BUTTON2, BUTTON3, UNKNOWN)
  1490: 
  1491: 	PORT_START	// 0xc00002 - port 2
  1492: 	SYSTEM32_PLAYER_INPUTS(2, BUTTON1, BUTTON2, BUTTON3, UNKNOWN)
  1493: 
  1494: 	PORT_START	// 0xc00008 - port 3
  1495: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1496: 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_SERVICE, "Test", KEYCODE_F2, IP_JOY_NONE )
  1497: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  1498: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  1499: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  1500: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  1501: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1502: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1503: 
  1504: 	PORT_START	// 0xc00060 - port 4
  1505: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1506: 
  1507: 	PORT_START	// 0xc00062 - port 5
  1508: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER2 )
  1509: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER2 )
  1510: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 | IPF_PLAYER2 )
  1511: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1512: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER1 )
  1513: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER1 )
  1514: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1515: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 | IPF_PLAYER1 )
  1516: 
  1517: 	PORT_START	// 0xc00064 - port 6
  1518: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1519: INPUT_PORTS_END
  1520: 
  1521: INPUT_PORTS_START( f1en )
  1522: 	PORT_START	// 0xc0000a - port 0
  1523: 	PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1524: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  1525: 
  1526: 	PORT_START	// 0xc00000 - port 1
  1527: 	PORT_BITX(0x01, IP_ACTIVE_LOW, IPT_BUTTON2, "Gear Up",   IP_KEY_DEFAULT, IP_JOY_DEFAULT )
  1528: 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_BUTTON3, "Gear Down", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
  1529: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1530: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1531: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1532: 
  1533: 	PORT_START	// 0xc00002 - port 2
  1534: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1535: 
  1536: 	PORT_START	// 0xc00008 - port 3
  1537: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1538: 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_SERVICE, "Test", KEYCODE_F2, IP_JOY_NONE )
  1539: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  1540: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  1541: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  1542: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1543: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1544: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1545: 
  1546: 	PORT_START	// port 4
  1547: 	PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_X | IPF_CENTER | IPF_PLAYER1, 30, 10, 0x00, 0xff)
  1548: 
  1549: 	PORT_START	// port 5
  1550: 	PORT_BIT( 0x00, IP_ACTIVE_LOW, IPT_UNUSED )
  1551: 
  1552: 	PORT_START	// port 6
  1553: 	PORT_ANALOG( 0xff, 0x00, IPT_PEDAL | IPF_PLAYER1, 30, 10, 0x00, 0xff)
  1554: 
  1555: 	PORT_START	// port 7
  1556: 	PORT_BIT( 0x00, IP_ACTIVE_LOW, IPT_UNUSED )
  1557: 
  1558: 	PORT_START	// port 8
  1559: 	PORT_ANALOG( 0xff, 0x00, IPT_PEDAL2 | IPF_PLAYER1, 30, 10, 0x00, 0xff)
  1560: 
  1561: 	PORT_START	// port 9
  1562: 	PORT_BIT( 0x00, IP_ACTIVE_LOW, IPT_UNUSED )
  1563: 
  1564: 	PORT_START	// port A
  1565: 	PORT_BIT( 0x00, IP_ACTIVE_LOW, IPT_UNUSED )
  1566: 
  1567: 	PORT_START	// port B
  1568: 	PORT_BIT( 0x00, IP_ACTIVE_LOW, IPT_UNUSED )
  1569: INPUT_PORTS_END
  1570: 
  1571: INPUT_PORTS_START( radm )
  1572: 	PORT_START	// 0xc0000a - port 0
  1573: 	PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1574: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  1575: 
  1576: 	PORT_START	// 0xc00000 - port 1
  1577: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1578: 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_BUTTON4, "Light", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
  1579: 	PORT_BITX(0x04, IP_ACTIVE_LOW, IPT_BUTTON5, "Wiper", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
  1580: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1581: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1582: 
  1583: 	PORT_START	// 0xc00002 - port 2
  1584: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1585: 
  1586: 	PORT_START	// 0xc00008 - port 3
  1587: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1588: 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_SERVICE, "Test", KEYCODE_F2, IP_JOY_NONE )
  1589: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  1590: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  1591: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  1592: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1593: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1594: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1595: 
  1596: 	PORT_START	// port 4
  1597: 	PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_X | IPF_CENTER | IPF_PLAYER1, 30, 10, 0x00, 0xff)
  1598: 
  1599: 	PORT_START	// port 5
  1600: 	PORT_BIT( 0x00, IP_ACTIVE_LOW, IPT_UNUSED )
  1601: 
  1602: 	PORT_START	// port 6
  1603: 	PORT_ANALOG( 0xff, 0x00, IPT_PEDAL | IPF_PLAYER1, 30, 10, 0x00, 0xff)
  1604: 
  1605: 	PORT_START	// port 7
  1606: 	PORT_BIT( 0x00, IP_ACTIVE_LOW, IPT_UNUSED )
  1607: 
  1608: 	PORT_START	// port 8
  1609: 	PORT_ANALOG( 0xff, 0x00, IPT_PEDAL2 | IPF_PLAYER1, 30, 10, 0x00, 0xff)
  1610: 
  1611: 	PORT_START	// port 9
  1612: 	PORT_BIT( 0x00, IP_ACTIVE_LOW, IPT_UNUSED )
  1613: 
  1614: 	PORT_START	// port A
  1615: 	PORT_BIT( 0x00, IP_ACTIVE_LOW, IPT_UNUSED )
  1616: 
  1617: 	PORT_START	// port B
  1618: 	PORT_BIT( 0x00, IP_ACTIVE_LOW, IPT_UNUSED )
  1619: INPUT_PORTS_END
  1620: 
  1621: INPUT_PORTS_START( radr )
  1622: 	PORT_START	// 0xc0000a - port 0
  1623: 	PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1624: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  1625: 
  1626: 	PORT_START	// 0xc00000 - port 1
  1627: 	PORT_BITX(0x01, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_TOGGLE, "Gear Change", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
  1628: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1629: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1630: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1631: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1632: 
  1633: 	PORT_START	// 0xc00002 - port 2
  1634: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1635: 
  1636: 	PORT_START	// 0xc00008 - port 3
  1637: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1638: 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_SERVICE, "Test", KEYCODE_F2, IP_JOY_NONE )
  1639: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  1640: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  1641: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  1642: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1643: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1644: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1645: 
  1646: 	PORT_START	// port 4
  1647: 	PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_X | IPF_CENTER | IPF_PLAYER1, 30, 10, 0x00, 0xff)
  1648: 
  1649: 	PORT_START	// port 5
  1650: 	PORT_BIT( 0x00, IP_ACTIVE_LOW, IPT_UNUSED )
  1651: 
  1652: 	PORT_START	// port 6
  1653: 	PORT_ANALOG( 0xff, 0x00, IPT_PEDAL | IPF_PLAYER1, 30, 10, 0x00, 0xff)
  1654: 
  1655: 	PORT_START	// port 7
  1656: 	PORT_BIT( 0x00, IP_ACTIVE_LOW, IPT_UNUSED )
  1657: 
  1658: 	PORT_START	// port 8
  1659: 	PORT_ANALOG( 0xff, 0x00, IPT_PEDAL2 | IPF_PLAYER1, 30, 10, 0x00, 0xff)
  1660: 
  1661: 	PORT_START	// port 9
  1662: 	PORT_BIT( 0x00, IP_ACTIVE_LOW, IPT_UNUSED )
  1663: 
  1664: 	PORT_START	// port A
  1665: 	PORT_BIT( 0x00, IP_ACTIVE_LOW, IPT_UNUSED )
  1666: 
  1667: 	PORT_START	// port B
  1668: 	PORT_BIT( 0x00, IP_ACTIVE_LOW, IPT_UNUSED )
  1669: INPUT_PORTS_END
  1670: 
  1671: INPUT_PORTS_START( alien3 )
  1672: 	PORT_START	// 0xc0000a - port 0
  1673: 	PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1674: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  1675: 
  1676: 	PORT_START	// 0xc00000 - port 1
  1677: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
  1678: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
  1679: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1680: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1681: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1682: 
  1683: 	PORT_START	// 0xc00002 - port 2
  1684: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  1685: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  1686: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1687: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1688: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1689: 
  1690: 	PORT_START	// 0xc00008 - port 3
  1691: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1692: 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_SERVICE, "Test", KEYCODE_F2, IP_JOY_NONE )
  1693: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 )
  1694: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 )
  1695: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )	// gives a credit to player 2 ?
  1696: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1697: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1698: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1699: 
  1700: 	PORT_START	// 0xc00060 - port 4
  1701: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1702: 
  1703: 	PORT_START	// 0xc00062 - port 5
  1704: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1705: 
  1706: 	PORT_START	// 0xc00064 - port 6
  1707: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1708: 
  1709: 	PORT_START	// 0xc00050 - port 7  - player 1 lightgun X axis
  1710: 	PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_X | IPF_PLAYER1, 35, 15, 0, 0xff )
  1711: 
  1712: 	PORT_START	// 0xc00052 - port 8  - player 1 lightgun Y axis
  1713: 	PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_Y | IPF_PLAYER1, 35, 15, 0, 0xff )
  1714: 
  1715: 	PORT_START	// 0xc00054 - port 9  - player 2 lightgun X axis
  1716: 	PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_X | IPF_PLAYER2, 35, 15, 0, 0xff )
  1717: 
  1718: 	PORT_START	// 0xc00056 - port 10 - player 2 lightgun Y axis
  1719: 	PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_Y | IPF_PLAYER2, 35, 15, 0, 0xff )
  1720: INPUT_PORTS_END
  1721: 
  1722: INPUT_PORTS_START( sonic )
  1723: 	PORT_START	// 0xc0000a - port 0
  1724: 	PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1725: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  1726: 
  1727: 	PORT_START	// 0xc00000 - port 1
  1728: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
  1729: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1730: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1731: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1732: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1733: 
  1734: 	PORT_START	// 0xc00002 - port 2
  1735: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  1736: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1737: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1738: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1739: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1740: 
  1741: 	PORT_START	// 0xc00008 - port 3
  1742: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1743: 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_SERVICE, "Test", KEYCODE_F2, IP_JOY_NONE )
  1744: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  1745: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  1746: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  1747: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  1748: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1749: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1750: 
  1751: 	PORT_START	// 0xc00060 - port 4
  1752: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER3 )
  1753: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1754: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1755: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1756: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1757: 
  1758: 	PORT_START	// 0xc00062 - port 5
  1759: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1760: 
  1761: 	PORT_START	// 0xc00064 - port 6
  1762: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START3 )
  1763: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1764: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1765: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1766: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1767: 
  1768: 	PORT_START // 0xc00040 - port 7  - player 1 trackball X axis
  1769: 	PORT_ANALOG( 0xff, 0, IPT_TRACKBALL_X | IPF_PLAYER1 | IPF_REVERSE, 100, 15, 0, 0 )
  1770: 
  1771: 	PORT_START // 0xc00044 - port 8  - player 1 trackball Y axis
  1772: 	PORT_ANALOG( 0xff, 0, IPT_TRACKBALL_Y | IPF_PLAYER1, 100, 15, 0, 0 )
  1773: 
  1774: 	PORT_START // 0xc00048 - port 9  - player 2 trackball X axis
  1775: 	PORT_ANALOG( 0xff, 0, IPT_TRACKBALL_X | IPF_PLAYER2 | IPF_REVERSE, 100, 15, 0, 0 )
  1776: 
  1777: 	PORT_START // 0xc0004c - port 10 - player 2 trackball Y axis
  1778: 	PORT_ANALOG( 0xff, 0, IPT_TRACKBALL_Y | IPF_PLAYER2, 100, 15, 0, 0 )
  1779: 
  1780: 	PORT_START // 0xc00050 - port 11 - player 3 trackball X axis
  1781: 	PORT_ANALOG( 0xff, 0, IPT_TRACKBALL_X | IPF_PLAYER3  | IPF_REVERSE, 100, 15, 0, 0 )
  1782: 
  1783: 	PORT_START // 0xc00054 - port 12 - player 3 trackball Y axis
  1784: 	PORT_ANALOG( 0xff, 0, IPT_TRACKBALL_Y | IPF_PLAYER3, 100, 15, 0, 0 )
  1785: INPUT_PORTS_END
  1786: 
  1787: INPUT_PORTS_START( jpark )
  1788: 	PORT_START	// 0xc0000a - port 0
  1789: 	PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1790: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  1791: 
  1792: 	PORT_START	// 0xc00000 - port 1
  1793: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
  1794: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
  1795: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1796: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1797: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1798: 
  1799: 	PORT_START	// 0xc00002 - port 2
  1800: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  1801: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
  1802: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1803: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1804: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1805: 
  1806: 	PORT_START	// 0xc00008 - port 3
  1807: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1808: 	PORT_BITX(0x02, IP_ACTIVE_LOW, IPT_SERVICE, "Test", KEYCODE_F2, IP_JOY_NONE )
  1809: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  1810: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  1811: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  1812: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  1813: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1814: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1815: 
  1816: 	PORT_START	// 0xc00060 - port 4
  1817: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1818: 
  1819: 	PORT_START	// 0xc00062 - port 5
  1820: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1821: 
  1822: 	PORT_START	// 0xc00064 - port 6
  1823: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1824: 
  1825: 	PORT_START	// 0xc00050 - port 7  - player 1 lightgun X axis
  1826: 	PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_X | IPF_PLAYER1, 35, 15, 0x40, 0xc0 )
  1827: 
  1828: 	PORT_START	// 0xc00052 - port 8  - player 1 lightgun Y axis
  1829: 	PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_Y | IPF_PLAYER1, 35, 15, 0x39, 0xbf )
  1830: 
  1831: 	PORT_START	// 0xc00054 - port 9  - player 2 lightgun X axis
  1832: 	PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_X | IPF_PLAYER2, 35, 15, 0x40, 0xc0 )
  1833: 
  1834: 	PORT_START	// 0xc00056 - port 10 - player 2 lightgun Y axis
  1835: 	PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_Y | IPF_PLAYER2, 35, 15, 0x39, 0xbf )
  1836: INPUT_PORTS_END
  1837: 
  1838: static void irq_handler(int irq)
  1839: {
  1840: 	cpu_set_irq_line( 1, 0 , irq ? ASSERT_LINE : CLEAR_LINE );
  1841: }
  1842: 
  1843: struct RF5C68interface sys32_rf5c68_interface =
  1844: {
  1845:   9000000,	/* pitch matches real PCB, but this is a weird frequency */
  1846:   55
  1847: };
  1848: 
  1849: struct YM2612interface sys32_ym3438_interface =
  1850: {
  1851: 	2,		/* 2 chips */
  1852: 	8000000,	/* verified on real PCB */
  1853: 	{ 40,40 },
  1854: 	{ 0 },	{ 0 },	{ 0 },	{ 0 },
  1855: 	{ irq_handler }
  1856: };
  1857: 
  1858: static struct GfxLayout s32_bgcharlayout =
  1859: {
  1860: 	16,16,
  1861: 	RGN_FRAC(1,1),
  1862: 	4,
  1863: 	{ 0,1,2,3 },
  1864: 	{ 0, 4, 16, 20, 8, 12, 24, 28,
  1865: 	   32, 36, 48, 52, 40, 44, 56, 60  },
  1866: 	{ 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,
  1867: 	  8*64, 9*64,10*64,11*64,12*64,13*64,14*64,15*64 },
  1868: 	16*64
  1869: };
  1870: 
  1871: 
  1872: 
  1873: static struct GfxLayout s32_fgcharlayout =
  1874: {
  1875: 	8,8,
  1876: 	RGN_FRAC(1,1),
  1877: 	4,
  1878: 	{ 0,1,2,3 },
  1879: 	{ 0, 4, 8, 12, 16, 20, 24, 28 },
  1880: 	{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
  1881: 	16*16
  1882: };
  1883: 
  1884: 
  1885: static struct GfxDecodeInfo gfxdecodeinfo[] =
  1886: {
  1887: 	{ REGION_GFX1, 0, &s32_bgcharlayout,   0x00, 0x3ff  },
  1888: 	{ REGION_GFX3, 0, &s32_fgcharlayout,   0x00, 0x3ff  },
  1889: 	{ -1 } /* end of array */
  1890: };
  1891: 
  1892: static MACHINE_DRIVER_START( system32 )
  1893: 
  1894: 	/* basic machine hardware */
  1895: 	MDRV_CPU_ADD(V60, OSC_A/2/12) // Reality is 16.somethingMHz, use magic /12 factor to get approximate speed
  1896: 	MDRV_CPU_MEMORY(system32_readmem,system32_writemem)
  1897: 	MDRV_CPU_VBLANK_INT(system32_interrupt,2)
  1898: 
  1899: 	MDRV_CPU_ADD_TAG("sound", Z80, OSC_A/4)	// verified on real PCB
  1900: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
  1901: 	MDRV_CPU_MEMORY(sound_readmem_32, sound_writemem_32)
  1902: 	MDRV_CPU_PORTS(sound_readport_32, sound_writeport_32)
  1903: 
  1904: 	MDRV_FRAMES_PER_SECOND(60)
  1905: 	MDRV_VBLANK_DURATION(100 /*DEFAULT_60HZ_VBLANK_DURATION*/)
  1906: 
  1907: 	MDRV_MACHINE_INIT(system32)
  1908: 	MDRV_NVRAM_HANDLER(system32)
  1909: 
  1910: 	/* video hardware */
  1911: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_NEEDS_6BITS_PER_GUN | VIDEO_UPDATE_AFTER_VBLANK | VIDEO_RGB_DIRECT | VIDEO_HAS_SHADOWS ) // RGB_DIRECT will be needed for alpha
  1912: 	MDRV_SCREEN_SIZE(40*8, 28*8)
  1913: 	MDRV_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
  1914: 	MDRV_GFXDECODE(gfxdecodeinfo)
  1915: 	MDRV_PALETTE_LENGTH(16384)
  1916: 
  1917: 	MDRV_VIDEO_START(system32)
  1918: 	MDRV_VIDEO_UPDATE(system32)
  1919: 
  1920: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  1921: 	MDRV_SOUND_ADD(YM3438, sys32_ym3438_interface)
  1922: 	MDRV_SOUND_ADD(RF5C68, sys32_rf5c68_interface)
  1923: MACHINE_DRIVER_END
  1924: 
  1925: // system 32 hi-res mode is 416x224.  Yes that's TRUSTED.
  1926: static MACHINE_DRIVER_START( sys32_hi )
  1927: 	MDRV_IMPORT_FROM( system32 )
  1928: 
  1929: 	MDRV_MACHINE_INIT(s32hi)
  1930: 
  1931: 	MDRV_SCREEN_SIZE(52*8, 28*8)
  1932: 	MDRV_VISIBLE_AREA(0*8, 52*8-1, 0*8, 28*8-1)
  1933: MACHINE_DRIVER_END
  1934: 
  1935: static MACHINE_DRIVER_START( jpark )
  1936: 	MDRV_IMPORT_FROM( system32 )
  1937: 
  1938: 	MDRV_CPU_ADD_TAG("cabinet", Z80, OSC_A/8)	// ???
  1939: 	MDRV_CPU_MEMORY( jpcab_readmem, jpcab_writemem )
  1940: 	MDRV_CPU_PORTS( jpcab_readport, jpcab_writeport )
  1941: //	MDRV_CPU_VBLANK_INT(irq0_line_pulse,1)		// CPU has an IRQ handler, it appears to be periodic
  1942: 
  1943: MACHINE_DRIVER_END
  1944: 
  1945: 
  1946: ROM_START( ga2 )
  1947: 	ROM_REGION( 0x180000, REGION_CPU1, 0 ) /* 68000 code */
  1948: 	ROM_LOAD16_WORD( "epr14960.b", 0x000000, 0x20000, CRC(87182fea) SHA1(bb669ea7091f1ea34589a565490effa934ca44a3) )
  1949: 	ROM_RELOAD     (               0x020000, 0x20000 )
  1950: 	ROM_RELOAD     (               0x040000, 0x20000 )
  1951: 	ROM_RELOAD     (               0x060000, 0x20000 )
  1952: 	ROM_LOAD16_WORD( "epr14957.b", 0x080000, 0x20000, CRC(ab787cf4) SHA1(7e19bb3e5d587b5009efc9f9fa52aecaef0eedc4) )
  1953: 	ROM_RELOAD     (               0x0a0000, 0x20000 )
  1954: 	ROM_RELOAD     (               0x0c0000, 0x20000 )
  1955: 	ROM_RELOAD     (               0x0e0000, 0x20000 )
  1956: 	ROM_LOAD16_BYTE( "epr15146.b", 0x100000, 0x40000, CRC(7293d5c3) SHA1(535a8b4b4a05546b321cee8de6733edfc1f71589) )
  1957: 	ROM_LOAD16_BYTE( "epr15145.b", 0x100001, 0x40000, CRC(0da61782) SHA1(f0302d747e5d55663095bb38732af423104c33ea) )
  1958: 
  1959: 	ROM_REGION( 0x480000, REGION_CPU2, 0 ) /* sound CPU + banks */
  1960: 	ROM_LOAD("epr14945", 0x000000, 0x010000, CRC(4781d4cb) SHA1(bd1b774b3cd0c3e0290c55e426f66d6820d21d0f) )
  1961: 	ROM_RELOAD(          0x100000, 0x010000)
  1962: 	ROM_LOAD("mpr14944", 0x180000, 0x100000, CRC(fd4d4b86) SHA1(e14b9cd6004bf9ecd902e37b433b828241361b46) )
  1963: 	ROM_LOAD("mpr14942", 0x280000, 0x100000, CRC(a89b0e90) SHA1(e14c62418eb7f9a2deb2a6dcf635bedc1c73c253) )
  1964: 	ROM_LOAD("mpr14943", 0x380000, 0x100000, CRC(24d40333) SHA1(38faf8f3eac317a163e93bd2247fe98189b13d2d) )
  1965: 
  1966: 	ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* Protection CPU */
  1967: 	ROM_LOAD( "epr14468", 0x00000, 0x10000, CRC(77634daa) SHA1(339169d164b9ed7dc3787b084d33effdc8e9efc1) )
  1968: 
  1969: 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
  1970: 	ROM_LOAD16_BYTE( "mpr14948", 0x000000, 0x200000, CRC(75050d4a) SHA1(51d6bc9935abcf30af438e69c2cf4e09f57a803f) )
  1971: 	ROM_LOAD16_BYTE( "mpr14947", 0x000001, 0x200000, CRC(b53e62f4) SHA1(5aa0f198e6eb070b77b0d180d30c0228a9bc691e) )
  1972: 
  1973: 	ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* sprites */
  1974: 	ROMX_LOAD( "mpr14949", 0x000000, 0x200000, CRC(152c716c) SHA1(448d16ea036b66e886119c00af543dfa5e53fd84) , ROM_SKIP(6)|ROM_GROUPWORD )
  1975: 	ROMX_LOAD( "mpr14951", 0x000002, 0x200000, CRC(fdb1a534) SHA1(3126b595bf69bf9952fedf8f9c6743eb10489dc6) , ROM_SKIP(6)|ROM_GROUPWORD )
  1976: 	ROMX_LOAD( "mpr14953", 0x000004, 0x200000, CRC(33bd1c15) SHA1(4e16562e3357d4db54b20543073e8f1fd6f74b1f) , ROM_SKIP(6)|ROM_GROUPWORD )
  1977: 	ROMX_LOAD( "mpr14955", 0x000006, 0x200000, CRC(e42684aa) SHA1(12e0f18a11edb46f09e2e8c5c4ba14170d0cf00d) , ROM_SKIP(6)|ROM_GROUPWORD )
  1978: 	ROMX_LOAD( "mpr14950", 0x800000, 0x200000, CRC(15fd0026) SHA1(e918984bd60ad63172fe273b31cc9019100228c8) , ROM_SKIP(6)|ROM_GROUPWORD )
  1979: 	ROMX_LOAD( "mpr14952", 0x800002, 0x200000, CRC(96f96613) SHA1(4c9808866032dab0401de322c28242e8a8775457) , ROM_SKIP(6)|ROM_GROUPWORD )
  1980: 	ROMX_LOAD( "mpr14954", 0x800004, 0x200000, CRC(39b2ac9e) SHA1(74f4c81d85ab9b4c5e8ae4b4d2c6dff766c482ca) , ROM_SKIP(6)|ROM_GROUPWORD )
  1981: 	ROMX_LOAD( "mpr14956", 0x800006, 0x200000, CRC(298fca50) SHA1(16e09b19cc7be3dfc8e82b45348e6d1cf2ed5621) , ROM_SKIP(6)|ROM_GROUPWORD )
  1982: 
  1983: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* FG tiles */
  1984: 	/* populated at runtime */
  1985: ROM_END
  1986: 
  1987: ROM_START( ga2j )
  1988: 	ROM_REGION( 0x180000, REGION_CPU1, 0 ) /* v60 code */
  1989: 	ROM_LOAD16_WORD( "epr14961.b", 0x000000, 0x20000, CRC(d9cd8885) SHA1(dc9d1f01770bd23ba5959e300badbc5093a149bc) )
  1990: 	ROM_RELOAD     (               0x020000, 0x20000 )
  1991: 	ROM_RELOAD     (               0x040000, 0x20000 )
  1992: 	ROM_RELOAD     (               0x060000, 0x20000 )
  1993: 	ROM_LOAD16_WORD( "epr14958.b", 0x080000, 0x20000, CRC(0be324a3) SHA1(5e5f457548906453eaa8d326c353b47353eab73d) )
  1994: 	ROM_RELOAD     (               0x0a0000, 0x20000 )
  1995: 	ROM_RELOAD     (               0x0c0000, 0x20000 )
  1996: 	ROM_RELOAD     (               0x0e0000, 0x20000 )
  1997: 	ROM_LOAD16_BYTE( "epr15148.b", 0x100000, 0x40000, CRC(c477a9fd) SHA1(a9d60f801c12fd067e5ad1801a92c84edd13bd08) )
  1998: 	ROM_LOAD16_BYTE( "epr15147.b", 0x100001, 0x40000, CRC(1bb676ea) SHA1(125ffd13204f48be23e20b281c42c2307888c40b) )
  1999: 
  2000: 	ROM_REGION( 0x480000, REGION_CPU2, 0 ) /* sound CPU + banks */
  2001: 	ROM_LOAD("epr14945", 0x000000, 0x010000, CRC(4781d4cb) SHA1(bd1b774b3cd0c3e0290c55e426f66d6820d21d0f) )
  2002: 	ROM_RELOAD(          0x100000, 0x010000)
  2003: 	ROM_LOAD("mpr14944", 0x180000, 0x100000, CRC(fd4d4b86) SHA1(e14b9cd6004bf9ecd902e37b433b828241361b46) )
  2004: 	ROM_LOAD("mpr14942", 0x280000, 0x100000, CRC(a89b0e90) SHA1(e14c62418eb7f9a2deb2a6dcf635bedc1c73c253) )
  2005: 	ROM_LOAD("mpr14943", 0x380000, 0x100000, CRC(24d40333) SHA1(38faf8f3eac317a163e93bd2247fe98189b13d2d) )
  2006: 
  2007: 	ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* Protection CPU */
  2008: 	ROM_LOAD( "epr14468", 0x00000, 0x10000, CRC(77634daa) SHA1(339169d164b9ed7dc3787b084d33effdc8e9efc1) )
  2009: 
  2010: 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
  2011: 	ROM_LOAD16_BYTE( "mpr14948", 0x000000, 0x200000, CRC(75050d4a) SHA1(51d6bc9935abcf30af438e69c2cf4e09f57a803f) )
  2012: 	ROM_LOAD16_BYTE( "mpr14947", 0x000001, 0x200000, CRC(b53e62f4) SHA1(5aa0f198e6eb070b77b0d180d30c0228a9bc691e) )
  2013: 
  2014: 	ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* sprites */
  2015: 	ROMX_LOAD( "mpr14949", 0x000000, 0x200000, CRC(152c716c) SHA1(448d16ea036b66e886119c00af543dfa5e53fd84) , ROM_SKIP(6)|ROM_GROUPWORD )
  2016: 	ROMX_LOAD( "mpr14951", 0x000002, 0x200000, CRC(fdb1a534) SHA1(3126b595bf69bf9952fedf8f9c6743eb10489dc6) , ROM_SKIP(6)|ROM_GROUPWORD )
  2017: 	ROMX_LOAD( "mpr14953", 0x000004, 0x200000, CRC(33bd1c15) SHA1(4e16562e3357d4db54b20543073e8f1fd6f74b1f) , ROM_SKIP(6)|ROM_GROUPWORD )
  2018: 	ROMX_LOAD( "mpr14955", 0x000006, 0x200000, CRC(e42684aa) SHA1(12e0f18a11edb46f09e2e8c5c4ba14170d0cf00d) , ROM_SKIP(6)|ROM_GROUPWORD )
  2019: 	ROMX_LOAD( "mpr14950", 0x800000, 0x200000, CRC(15fd0026) SHA1(e918984bd60ad63172fe273b31cc9019100228c8) , ROM_SKIP(6)|ROM_GROUPWORD )
  2020: 	ROMX_LOAD( "mpr14952", 0x800002, 0x200000, CRC(96f96613) SHA1(4c9808866032dab0401de322c28242e8a8775457) , ROM_SKIP(6)|ROM_GROUPWORD )
  2021: 	ROMX_LOAD( "mpr14954", 0x800004, 0x200000, CRC(39b2ac9e) SHA1(74f4c81d85ab9b4c5e8ae4b4d2c6dff766c482ca) , ROM_SKIP(6)|ROM_GROUPWORD )
  2022: 	ROMX_LOAD( "mpr14956", 0x800006, 0x200000, CRC(298fca50) SHA1(16e09b19cc7be3dfc8e82b45348e6d1cf2ed5621) , ROM_SKIP(6)|ROM_GROUPWORD )
  2023: 
  2024: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* FG tiles */
  2025: 	/* populated at runtime */
  2026: ROM_END
  2027: 
  2028: ROM_START( radm )
  2029: 	ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code */
  2030: 	ROM_LOAD16_WORD( "epr13690.bin", 0x000000, 0x20000, CRC(21637dec) SHA1(b9921effb10a72f3bdca4d540149c7f46662b716) )
  2031: 	ROM_RELOAD     (                 0x020000, 0x20000 )
  2032: 	ROM_RELOAD     (                 0x040000, 0x20000 )
  2033: 	ROM_RELOAD     (                 0x060000, 0x20000 )
  2034: 	ROM_RELOAD     (                 0x080000, 0x20000 )
  2035: 	ROM_RELOAD     (                 0x0a0000, 0x20000 )
  2036: 	ROM_RELOAD     (                 0x0c0000, 0x20000 )
  2037: 	ROM_RELOAD     (                 0x0e0000, 0x20000 )
  2038: 	ROM_LOAD16_BYTE( "epr13525.bin", 0x100000, 0x80000, CRC(62ad83a0) SHA1(b537176ebca15d91db04d5d7ab36aa967d41288e) )
  2039: 	ROM_LOAD16_BYTE( "epr13526.bin", 0x100001, 0x80000, CRC(59ea372a) SHA1(e7a5d59586652c59c23e07e0a99ecc740fb6144d) )
  2040: 
  2041: 	ROM_REGION( 0x480000, REGION_CPU2, 0 ) /* sound CPU */
  2042: 	ROM_LOAD( "epr13527.bin", 0x00000, 0x20000, CRC(a2e3fbbe) SHA1(2787bbef696ab3f2b7855ac991867837d3de54cd) )
  2043: 	ROM_RELOAD(               0x100000, 0x020000             )
  2044: 	ROM_LOAD( "epr13523.bin", 0x180000, 0x080000, CRC(d5563697) SHA1(eb3fd3dbfea383ac1bb5d2e1552723994cb4693d) )
  2045: 	ROM_LOAD( "epr13523.bin", 0x280000, 0x080000, CRC(d5563697) SHA1(eb3fd3dbfea383ac1bb5d2e1552723994cb4693d) )
  2046: 	ROM_LOAD( "epr13699.bin", 0x380000, 0x080000, CRC(33fd2913) SHA1(60b664559b4989446b1c7d875432e53a36fe27df) )
  2047: 
  2048: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
  2049: 	ROM_LOAD32_BYTE( "mpr13519.bin", 0x000000, 0x080000, CRC(bedc9534) SHA1(7b3f7a47b6c0ca6707dc3c1167f3564d43adb32f) )
  2050: 	ROM_LOAD32_BYTE( "mpr13520.bin", 0x000002, 0x080000, CRC(3532e91a) SHA1(669c8d27b4b48e1ab9d6d30b0994f5a4e5169118) )
  2051: 	ROM_LOAD32_BYTE( "mpr13521.bin", 0x000001, 0x080000, CRC(e9bca903) SHA1(18a73c830b9755262a1c525e3ad5ae084117b64d) )
  2052: 	ROM_LOAD32_BYTE( "mpr13522.bin", 0x000003, 0x080000, CRC(25e04648) SHA1(617e794e8f7aa2a435bac917b8968699fe88dafb) )
  2053: 
  2054: 	ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* sprites */
  2055: 	ROMX_LOAD( "mpr13511.bin", 0x800000, 0x100000, CRC(f8f15b11) SHA1(da6c2b8c3a94c4c263583f046823eaea818aff7c) , ROM_SKIP(7) )
  2056: 	ROMX_LOAD( "mpr13512.bin", 0x800001, 0x100000, CRC(d0be34a6) SHA1(b42a63e30f0f7a94de8a825ca93cf8efdb7a7648) , ROM_SKIP(7) )
  2057: 	ROMX_LOAD( "mpr13513.bin", 0x800002, 0x100000, CRC(feef1982) SHA1(bdf906317079a12c48ef4fca5bef0d437e9bf050) , ROM_SKIP(7) )
  2058: 	ROMX_LOAD( "mpr13514.bin", 0x800003, 0x100000, CRC(d0f9ebd1) SHA1(510ebd3d7a52bcab2debea61591770d1dff172a1) , ROM_SKIP(7) )
  2059: 	ROMX_LOAD( "mpr13515.bin", 0x800004, 0x100000, CRC(77bf2387) SHA1(7215dde5618e238edbe16b3007ede790785fe25f) , ROM_SKIP(7) )
  2060: 	ROMX_LOAD( "mpr13516.bin", 0x800005, 0x100000, CRC(8c4bc62d) SHA1(3206f623ec0b7558413d063404103b183f26b488) , ROM_SKIP(7) )
  2061: 	ROMX_LOAD( "mpr13517.bin", 0x800006, 0x100000, CRC(1d7d84a7) SHA1(954cfccfc7250a5bead2eeba42e655d5ac82955f) , ROM_SKIP(7) )
  2062: 	ROMX_LOAD( "mpr13518.bin", 0x800007, 0x100000, CRC(9ea4b15d) SHA1(7dcfd6d42bb945beca8344cf92e7bd53903a824b) , ROM_SKIP(7) )
  2063: 
  2064: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* FG tiles */
  2065: 	/* populated at runtime */
  2066: 
  2067: 	ROM_REGION( 0x8000, REGION_USER1, 0 ) /* unused */
  2068: 	ROM_LOAD( "epr13686.bin", 0x00000, 0x8000, CRC(317a2857) SHA1(e0788dc7a7d214d9c4d26b24e44c1a0dc9ae477c) ) /* cabinet movement */
  2069: ROM_END
  2070: 
  2071: ROM_START( radr )
  2072: 	ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code */
  2073: 	ROM_LOAD16_WORD( "epr14241.06", 0x000000, 0x20000, CRC(59a5f63d) SHA1(325a26a09475ddc828de71e71a1d3043f3959cec) )
  2074: 	ROM_RELOAD     (                0x020000, 0x20000 )
  2075: 	ROM_RELOAD     (                0x040000, 0x20000 )
  2076: 	ROM_RELOAD     (                0x060000, 0x20000 )
  2077: 	ROM_RELOAD     (                0x080000, 0x20000 )
  2078: 	ROM_RELOAD     (                0x0a0000, 0x20000 )
  2079: 	ROM_RELOAD     (                0x0c0000, 0x20000 )
  2080: 	ROM_RELOAD     (                0x0e0000, 0x20000 )
  2081: 	ROM_LOAD16_BYTE( "epr14106.14", 0x100000, 0x80000, CRC(e73c63bf) SHA1(30fb68eaa7d02a232c873bd7751cac7d0fa08e44) )
  2082: 	ROM_LOAD16_BYTE( "epr14107.07", 0x100001, 0x80000, CRC(832f797a) SHA1(b0c16ef7bd8d37f592975052ba9da3da70a2fc79) )
  2083: 
  2084: 	ROM_REGION( 0x480000, REGION_CPU2, 0 ) /* sound CPU */
  2085: 	ROM_LOAD( "epr14108.35", 0x00000, 0x20000, CRC(38a99b4d) SHA1(b6455e6b29bfef41c5e0ebe3a8064889b7e5f5fd) )
  2086: 	ROM_RELOAD(              0x100000, 0x20000             )
  2087: 	ROM_LOAD( "epr14109.31", 0x180000, 0x080000, CRC(b42e5833) SHA1(da94ce7c1d7a581a1aa6b79b323c67a919918808) )
  2088: 	ROM_LOAD( "epr14110.26", 0x280000, 0x080000, CRC(b495e7dc) SHA1(b4143fcee10e0649378fdb1e3f5a0a2c585414ec) )
  2089: 	ROM_LOAD( "epr14237.22", 0x380000, 0x080000, CRC(0a4b4b29) SHA1(98447a587f903ba03e17d6a145b7c8bfddf25c4d) )
  2090: 
  2091: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
  2092: 	ROM_LOAD32_BYTE( "epr14102.38", 0x000000, 0x040000, CRC(5626e80f) SHA1(9844817295a8cd8a9b09da6681b0c1fbfe82618e) )
  2093: 	ROM_LOAD32_BYTE( "epr14103.34", 0x000002, 0x040000, CRC(08c7e804) SHA1(cf45b1934edc43cb3a0ed72159949cb0dd00d701) )
  2094: 	ROM_LOAD32_BYTE( "epr14104.29", 0x000001, 0x040000, CRC(b0173646) SHA1(1ba4edc033e0e4f5a1e02987e9f6b8b1650b46d7) )
  2095: 	ROM_LOAD32_BYTE( "epr14105.25", 0x000003, 0x040000, CRC(614843b6) SHA1(d4f2cd3b024f7152d6e89237f0da06adea2efe57) )
  2096: 
  2097: 	ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* sprites */
  2098: 	ROMX_LOAD( "mpr13511.36", 0x800000, 0x100000, CRC(f8f15b11) SHA1(da6c2b8c3a94c4c263583f046823eaea818aff7c) , ROM_SKIP(7) )
  2099: 	ROMX_LOAD( "mpr13512.32", 0x800001, 0x100000, CRC(d0be34a6) SHA1(b42a63e30f0f7a94de8a825ca93cf8efdb7a7648) , ROM_SKIP(7) )
  2100: 	ROMX_LOAD( "mpr13513.27", 0x800002, 0x100000, CRC(feef1982) SHA1(bdf906317079a12c48ef4fca5bef0d437e9bf050) , ROM_SKIP(7) )
  2101: 	ROMX_LOAD( "mpr13514.23", 0x800003, 0x100000, CRC(d0f9ebd1) SHA1(510ebd3d7a52bcab2debea61591770d1dff172a1) , ROM_SKIP(7) )
  2102: 	ROMX_LOAD( "mpr13515.37", 0x800004, 0x100000, CRC(77bf2387) SHA1(7215dde5618e238edbe16b3007ede790785fe25f) , ROM_SKIP(7) )
  2103: 	ROMX_LOAD( "mpr13516.33", 0x800005, 0x100000, CRC(8c4bc62d) SHA1(3206f623ec0b7558413d063404103b183f26b488) , ROM_SKIP(7) )
  2104: 	ROMX_LOAD( "mpr13517.28", 0x800006, 0x100000, CRC(1d7d84a7) SHA1(954cfccfc7250a5bead2eeba42e655d5ac82955f) , ROM_SKIP(7) )
  2105: 	ROMX_LOAD( "mpr13518.24", 0x800007, 0x100000, CRC(9ea4b15d) SHA1(7dcfd6d42bb945beca8344cf92e7bd53903a824b) , ROM_SKIP(7) )
  2106: 
  2107: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* FG tiles */
  2108: 	/* populated at runtime */
  2109: 
  2110: 	ROM_REGION( 0x8000, REGION_USER1, 0 ) /* unused */
  2111: 	ROM_LOAD( "epr14084.17", 0x00000, 0x8000, CRC(f14ed074) SHA1(e1bb23eac85e3236046527c5c7688f6f23d43aef) ) /* cabinet link */
  2112: ROM_END
  2113: 
  2114: ROM_START( svf )
  2115: 	ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code */
  2116: 	ROM_LOAD( "ep16872a.17", 0x000000, 0x020000, CRC(1f383b00) SHA1(c3af01743de5ff09ada19879902842efdbceb595) )
  2117: 	ROM_RELOAD     (               0x020000, 0x20000 )
  2118: 	ROM_RELOAD     (               0x040000, 0x20000 )
  2119: 	ROM_RELOAD     (               0x060000, 0x20000 )
  2120: 	ROM_LOAD( "ep16871a.8", 0x080000, 0x020000, CRC(f7061bd7) SHA1(b46f4f2ecda8f521c0a91f2f2c2445b72cbc2874) )
  2121: 	ROM_RELOAD     (               0x0a0000, 0x20000 )
  2122: 	ROM_RELOAD     (               0x0c0000, 0x20000 )
  2123: 	ROM_RELOAD     (               0x0e0000, 0x20000 )
  2124: 	ROM_LOAD16_BYTE( "epr16865.18", 0x100000, 0x080000, CRC(9198ca9f) SHA1(0f6271ce8a07e4ab7fdce38964055510f2ebfd4e) )
  2125: 	ROM_LOAD16_BYTE( "epr16864.9", 0x100001, 0x080000, CRC(201a940e) SHA1(e19d76141844dbdedee0698ea50edbb898ab55e9) )
  2126: 
  2127: 	ROM_REGION( 0x480000, REGION_CPU2, 0 ) /* sound CPU */
  2128: 	ROM_LOAD( "epr16866.36", 0x00000, 0x20000, CRC(74431350) SHA1(d3208b595423b5b0f25ee90db213112a09906f8f) )
  2129: 	ROM_RELOAD(           0x100000, 0x20000             )
  2130: 	ROM_LOAD( "mpr16779.35", 0x180000, 0x100000, CRC(7055e859) SHA1(cde27fa4aaf0ee54063ee68794e9a6075581fff5) )
  2131: 	ROM_LOAD( "mpr16777.24", 0x280000, 0x100000, CRC(14b5d5df) SHA1(1b0b0a31294b1bbc16d2046b374d584a1b00a78c) )
  2132: 	ROM_LOAD( "mpr16778.34", 0x380000, 0x100000, CRC(feedaecf) SHA1(25c14ccb85c467dc0c8e85b61f8f86f4396c0cc7) )
  2133: 
  2134: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
  2135: 	ROM_LOAD16_BYTE( "mpr16784.14", 0x000000, 0x100000, CRC(4608efe2) SHA1(9b41aa28f50af770e854ef9fdff1a55da7b7b131) )
  2136: 	ROM_LOAD16_BYTE( "mpr16783.5", 0x000001, 0x100000, CRC(042eabe7) SHA1(a11df5c21d85f0c96dbdcaf57be37a79658ad648) )
  2137: 
  2138: 	ROM_REGION( 0x2000000, REGION_GFX2, 0 ) /* sprites */
  2139: 	ROMX_LOAD( "mpr16785.32", 0x000000, 0x200000, CRC(51f775ce) SHA1(125b40bf47304d37b92e81df5081c81d9af6c8a2) , ROM_SKIP(6)|ROM_GROUPWORD )
  2140: 	ROMX_LOAD( "mpr16787.30", 0x000002, 0x200000, CRC(dee7a204) SHA1(29acff4d5dd68609ac46853860788206d18262ab) , ROM_SKIP(6)|ROM_GROUPWORD )
  2141: 	ROMX_LOAD( "mpr16789.28", 0x000004, 0x200000, CRC(6b6c8ad3) SHA1(97b0078c851845c31dcf0fe4b2a88393dcdf8988) , ROM_SKIP(6)|ROM_GROUPWORD )
  2142: 	ROMX_LOAD( "mpr16791.26", 0x000006, 0x200000, CRC(4f7236da) SHA1(d1c29f6aa82d60a626217f1430bc8a76ef012007) , ROM_SKIP(6)|ROM_GROUPWORD )
  2143: 	ROMX_LOAD( "mpr16860.31", 0x800000, 0x200000, CRC(578a7325) SHA1(75a066841fa24952d8ed5ac2d988609295f437a8) , ROM_SKIP(6)|ROM_GROUPWORD )
  2144: 	ROMX_LOAD( "mpr16861.29", 0x800002, 0x200000, CRC(d79c3f73) SHA1(e4360efb0964a92cfad8c458a5568709fcc81339) , ROM_SKIP(6)|ROM_GROUPWORD )
  2145: 	ROMX_LOAD( "mpr16862.27", 0x800004, 0x200000, CRC(00793354) SHA1(3b37a89c5100d5f92a3567fc8d2003bc9d6fe0cd) , ROM_SKIP(6)|ROM_GROUPWORD )
  2146: 	ROMX_LOAD( "mpr16863.25", 0x800006, 0x200000, CRC(42338226) SHA1(106636408d5648fb95fbaee06074c57f6a535a82) , ROM_SKIP(6)|ROM_GROUPWORD )
  2147: 
  2148: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* FG tiles */
  2149: 	/* populated at runtime */
  2150: ROM_END
  2151: 
  2152: ROM_START( svs )
  2153: 	ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code */
  2154: 	ROM_LOAD( "ep16883a.17", 0x000000, 0x020000, CRC(e1c0c3ce) SHA1(12dd8d9d1a2c2c7bf1ab652a6a6f947384d79577) )
  2155: 	ROM_RELOAD	   (			   0x020000, 0x20000 )
  2156: 	ROM_RELOAD	   (			   0x040000, 0x20000 )
  2157: 	ROM_RELOAD	   (			   0x060000, 0x20000 )
  2158: 	ROM_LOAD( "ep16882a.8", 0x080000, 0x020000, CRC(1161bbbe) SHA1(3cfeed9ea947eed79aeb5674d54de45d15fb6e1f) )
  2159: 	ROM_RELOAD	   (			   0x0a0000, 0x20000 )
  2160: 	ROM_RELOAD	   (			   0x0c0000, 0x20000 )
  2161: 	ROM_RELOAD	   (			   0x0e0000, 0x20000 )
  2162: 	ROM_LOAD16_BYTE( "epr16865.18", 0x100000, 0x080000, CRC(9198ca9f) SHA1(0f6271ce8a07e4ab7fdce38964055510f2ebfd4e) )
  2163: 	ROM_LOAD16_BYTE( "epr16864.9", 0x100001, 0x080000, CRC(201a940e) SHA1(e19d76141844dbdedee0698ea50edbb898ab55e9) )
  2164: 
  2165: 	ROM_REGION( 0x480000, REGION_CPU2, 0 ) /* sound CPU */
  2166: 	ROM_LOAD( "epr16868.36", 0x00000, 0x40000, CRC(47aa4ec7) SHA1(baea18aaac0314f769f1e36fdbe8aedf62862544) ) /* same as jleague but with a different part number */
  2167: 	ROM_RELOAD(           0x100000, 0x20000             )
  2168: 	ROM_LOAD( "mpr16779.35", 0x180000, 0x100000, CRC(7055e859) SHA1(cde27fa4aaf0ee54063ee68794e9a6075581fff5) )
  2169: 	ROM_LOAD( "mpr16777.24", 0x280000, 0x100000, CRC(14b5d5df) SHA1(1b0b0a31294b1bbc16d2046b374d584a1b00a78c) )
  2170: 	ROM_LOAD( "mpr16778.34", 0x380000, 0x100000, CRC(feedaecf) SHA1(25c14ccb85c467dc0c8e85b61f8f86f4396c0cc7) )
  2171: 
  2172: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
  2173: 	ROM_LOAD16_BYTE( "mpr16784.14", 0x000000, 0x100000, CRC(4608efe2) SHA1(9b41aa28f50af770e854ef9fdff1a55da7b7b131) )
  2174: 	ROM_LOAD16_BYTE( "mpr16783.5", 0x000001, 0x100000, CRC(042eabe7) SHA1(a11df5c21d85f0c96dbdcaf57be37a79658ad648) )
  2175: 
  2176: 	ROM_REGION( 0x2000000, REGION_GFX2, 0 ) /* sprites */
  2177: 	ROMX_LOAD( "mpr16785.32", 0x000000, 0x200000, CRC(51f775ce) SHA1(125b40bf47304d37b92e81df5081c81d9af6c8a2) , ROM_SKIP(6)|ROM_GROUPWORD )
  2178: 	ROMX_LOAD( "mpr16787.30", 0x000002, 0x200000, CRC(dee7a204) SHA1(29acff4d5dd68609ac46853860788206d18262ab) , ROM_SKIP(6)|ROM_GROUPWORD )
  2179: 	ROMX_LOAD( "mpr16789.28", 0x000004, 0x200000, CRC(6b6c8ad3) SHA1(97b0078c851845c31dcf0fe4b2a88393dcdf8988) , ROM_SKIP(6)|ROM_GROUPWORD )
  2180: 	ROMX_LOAD( "mpr16791.26", 0x000006, 0x200000, CRC(4f7236da) SHA1(d1c29f6aa82d60a626217f1430bc8a76ef012007) , ROM_SKIP(6)|ROM_GROUPWORD )
  2181: 	ROMX_LOAD( "mpr16860.31", 0x800000, 0x200000, CRC(578a7325) SHA1(75a066841fa24952d8ed5ac2d988609295f437a8) , ROM_SKIP(6)|ROM_GROUPWORD )
  2182: 	ROMX_LOAD( "mpr16861.29", 0x800002, 0x200000, CRC(d79c3f73) SHA1(e4360efb0964a92cfad8c458a5568709fcc81339) , ROM_SKIP(6)|ROM_GROUPWORD )
  2183: 	ROMX_LOAD( "mpr16862.27", 0x800004, 0x200000, CRC(00793354) SHA1(3b37a89c5100d5f92a3567fc8d2003bc9d6fe0cd) , ROM_SKIP(6)|ROM_GROUPWORD )
  2184: 	ROMX_LOAD( "mpr16863.25", 0x800006, 0x200000, CRC(42338226) SHA1(106636408d5648fb95fbaee06074c57f6a535a82) , ROM_SKIP(6)|ROM_GROUPWORD )
  2185: 
  2186: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* FG tiles */
  2187: 	/* populated at runtime */
  2188: ROM_END
  2189: 
  2190: ROM_START( jleague )
  2191: 	ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code */
  2192: 	ROM_LOAD( "epr16782.17",0x000000, 0x020000, CRC(f0278944) SHA1(49e3842231ee5abdd6205b598309153d6b4ddc02) )
  2193: 	ROM_RELOAD     (        0x020000, 0x020000 )
  2194: 	ROM_RELOAD     (        0x040000, 0x020000 )
  2195: 	ROM_RELOAD     (        0x060000, 0x020000 )
  2196: 	ROM_LOAD( "epr16781.8", 0x080000, 0x020000, CRC(7df9529b) SHA1(de3633f4941ff3877c4cb8b53e080eccea19f22e) )
  2197: 	ROM_RELOAD     (        0x0a0000, 0x020000 )
  2198: 	ROM_RELOAD     (        0x0c0000, 0x020000 )
  2199: 	ROM_RELOAD     (        0x0e0000, 0x020000 )
  2200: 	ROM_LOAD16_BYTE( "epr16776.18", 0x100000, 0x080000, CRC(e8694626) SHA1(d4318a9a6b1cc5c719bff9c25b7398dd2ea1e18b) )
  2201: 	ROM_LOAD16_BYTE( "epr16775.9",  0x100001, 0x080000, CRC(e81e2c3d) SHA1(2900710f1dec6cf71875c82a56584ba45ed3a545) )
  2202: 
  2203: 	ROM_REGION( 0x480000, REGION_CPU2, 0 ) /* sound CPU */
  2204: 	ROM_LOAD( "epr16780.36", 0x00000, 0x40000, CRC(47aa4ec7) SHA1(baea18aaac0314f769f1e36fdbe8aedf62862544) ) /* can probably be cut */
  2205: 	ROM_RELOAD(           0x100000, 0x40000             )
  2206: 	ROM_LOAD( "mpr16779.35", 0x180000, 0x100000, CRC(7055e859) SHA1(cde27fa4aaf0ee54063ee68794e9a6075581fff5) )
  2207: 	ROM_LOAD( "mpr16777.24", 0x280000, 0x100000, CRC(14b5d5df) SHA1(1b0b0a31294b1bbc16d2046b374d584a1b00a78c) )
  2208: 	ROM_LOAD( "mpr16778.34", 0x380000, 0x100000, CRC(feedaecf) SHA1(25c14ccb85c467dc0c8e85b61f8f86f4396c0cc7) )
  2209: 
  2210: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
  2211: 	ROM_LOAD16_BYTE( "mpr16784.14", 0x000000, 0x100000, CRC(4608efe2) SHA1(9b41aa28f50af770e854ef9fdff1a55da7b7b131) )
  2212: 	ROM_LOAD16_BYTE( "mpr16783.5", 0x000001, 0x100000, CRC(042eabe7) SHA1(a11df5c21d85f0c96dbdcaf57be37a79658ad648) )
  2213: 
  2214: 	ROM_REGION( 0x2000000, REGION_GFX2, 0 ) /* sprites */
  2215: 	ROMX_LOAD( "mpr16785.32", 0x000000, 0x200000, CRC(51f775ce) SHA1(125b40bf47304d37b92e81df5081c81d9af6c8a2) , ROM_SKIP(6)|ROM_GROUPWORD )
  2216: 	ROMX_LOAD( "mpr16787.30", 0x000002, 0x200000, CRC(dee7a204) SHA1(29acff4d5dd68609ac46853860788206d18262ab) , ROM_SKIP(6)|ROM_GROUPWORD )
  2217: 	ROMX_LOAD( "mpr16789.28", 0x000004, 0x200000, CRC(6b6c8ad3) SHA1(97b0078c851845c31dcf0fe4b2a88393dcdf8988) , ROM_SKIP(6)|ROM_GROUPWORD )
  2218: 	ROMX_LOAD( "mpr16791.26", 0x000006, 0x200000, CRC(4f7236da) SHA1(d1c29f6aa82d60a626217f1430bc8a76ef012007) , ROM_SKIP(6)|ROM_GROUPWORD )
  2219: 	ROMX_LOAD( "mp16786.31",  0x800000, 0x200000, CRC(d08a2d32) SHA1(baac63cbacbe38e057684174040384a7152eb523) , ROM_SKIP(6)|ROM_GROUPWORD )
  2220: 	ROMX_LOAD( "mp16788.29",  0x800002, 0x200000, CRC(cd9d3605) SHA1(7c4402be1a1ddde6766cfdd5fe7e2a088c4a59e8) , ROM_SKIP(6)|ROM_GROUPWORD )
  2221: 	ROMX_LOAD( "mp16790.27",  0x800004, 0x200000, CRC(2ea75746) SHA1(c91e5d678917886cc23fbef7a577c5a70665c7b2) , ROM_SKIP(6)|ROM_GROUPWORD )
  2222: 	ROMX_LOAD( "mp16792.25",  0x800006, 0x200000, CRC(9f416072) SHA1(18107cf64f918888aa5a54432f8e9137910101b8) , ROM_SKIP(6)|ROM_GROUPWORD )
  2223: 
  2224: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* FG tiles */
  2225: 	/* populated at runtime */
  2226: ROM_END
  2227: 
  2228: ROM_START( spidey )
  2229: 	ROM_REGION( 0x140000, REGION_CPU1, 0 ) /* v60 code */
  2230: 	ROM_LOAD( "14303", 0x000000, 0x020000, CRC(7f1bd28f) SHA1(cff57e66d09682baf44aace99d698ad305f6a3d5) )
  2231: 	ROM_RELOAD (       0x020000, 0x020000 )
  2232: 	ROM_RELOAD (       0x040000, 0x020000 )
  2233: 	ROM_RELOAD (       0x060000, 0x020000 )
  2234: 	ROM_LOAD( "14302", 0x080000, 0x020000, CRC(d954c40a) SHA1(436c81779274861de79dc6ce2c0fcc65bfd52098) )
  2235: 	ROM_RELOAD (       0x0a0000, 0x020000 )
  2236: 	ROM_RELOAD (       0x0c0000, 0x020000 )
  2237: 	ROM_RELOAD (       0x0e0000, 0x020000 )
  2238: 	ROM_LOAD16_BYTE( "14281", 0x100000, 0x020000, CRC(8a746c42) SHA1(fa3729ec3aa4b3c59322408146ce2cfbf5a11b98) )
  2239: 	ROM_LOAD16_BYTE( "14280", 0x100001, 0x020000, CRC(3c8148f7) SHA1(072b7982bb95e7a9ab77844b59020146c262488d) )
  2240: 
  2241: 	ROM_REGION( 0x480000, REGION_CPU2, 0 ) /* sound CPU */
  2242: 	ROM_LOAD( "14285", 0x00000, 0x40000, CRC(25aefad6) SHA1(10153f4e773a0f55378f869eb1d85156e85f893f) )
  2243: 	ROM_RELOAD(        0x100000, 0x40000             )
  2244: 	ROM_LOAD( "14284", 0x180000, 0x080000, CRC(760542d4) SHA1(dcac73869c02fefd328bd6bdbcbdb3b68b0647da) )
  2245: 	ROM_LOAD( "14282", 0x280000, 0x080000, CRC(ea20979e) SHA1(9b70ef055da8c7c56da54b7edef2379678e7c50f) )
  2246: 	ROM_LOAD( "14283", 0x380000, 0x080000, CRC(c863a91c) SHA1(afdc76bbb9b207cfcb47d437248a757d03212f4e) )
  2247: 
  2248: 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
  2249: 	ROM_LOAD32_BYTE( "14291", 0x000000, 0x100000, CRC(490f95a1) SHA1(f220788670b76164ac414ed9b16a422f719be267) )
  2250: 	ROM_LOAD32_BYTE( "14290", 0x000002, 0x100000, CRC(a144162d) SHA1(d43f12dd9f690cdfcebb6c7b515ff7dc7dcaa377) )
  2251: 	ROM_LOAD32_BYTE( "14289", 0x000001, 0x100000, CRC(38570582) SHA1(a9d810a02a1f5a6849c79d65fbebff21a4b82b59) )
  2252: 	ROM_LOAD32_BYTE( "14288", 0x000003, 0x100000, CRC(3188b636) SHA1(bc0adeeca5040caa563ee1e0eded9c323ca23446) )
  2253: 
  2254: 	ROM_REGION( 0x0800000, REGION_GFX2, 0 ) /* sprites */
  2255: 	ROMX_LOAD( "14299", 0x000000, 0x100000, CRC(ce59231b) SHA1(bcb1f11b74935694d0617ec8df66db2cc57b6219) , ROM_SKIP(7) )
  2256: 	ROMX_LOAD( "14298", 0x000001, 0x100000, CRC(2745c84c) SHA1(5a0528c921cba7a1047d3a2ece79925103d719a1) , ROM_SKIP(7) )
  2257: 	ROMX_LOAD( "14297", 0x000002, 0x100000, CRC(29cb9450) SHA1(7dc38d23a2f0cee2f4edde05c1a6f0dc83f331db) , ROM_SKIP(7) )
  2258: 	ROMX_LOAD( "14296", 0x000003, 0x100000, CRC(9d8cbd31) SHA1(55a9f9ec9029157da033e69664b58e694a28db47) , ROM_SKIP(7) )
  2259: 	ROMX_LOAD( "14295", 0x000004, 0x100000, CRC(29591f50) SHA1(1ac4ceaf74892e30f210ad77024eb441c5e4a959) , ROM_SKIP(7) )
  2260: 	ROMX_LOAD( "14294", 0x000005, 0x100000, CRC(fa86b794) SHA1(7b6907e5734fbf2fba7bcc213a8551fec5e9f3d5) , ROM_SKIP(7) )
  2261: 	ROMX_LOAD( "14293", 0x000006, 0x100000, CRC(52899269) SHA1(ff809ff88701109e0ca79e785a61402d97335cec) , ROM_SKIP(7) )
  2262: 	ROMX_LOAD( "14292", 0x000007, 0x100000, CRC(41f71443) SHA1(351d40d6159cb5b792519bce5d16490965800cfb) , ROM_SKIP(7) )
  2263: 
  2264: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* FG tiles */
  2265: 	/* populated at runtime */
  2266: ROM_END
  2267: 
  2268: ROM_START( spideyj )
  2269: 	ROM_REGION( 0x140000, REGION_CPU1, 0 ) /* v60 code */
  2270: 	ROM_LOAD( "14307", 0x000000, 0x020000, CRC(d900219c) SHA1(d59654db1fc0ec4d5f8cda9000ab4bd3bb36cdfc) )
  2271: 	ROM_RELOAD (       0x020000, 0x020000 )
  2272: 	ROM_RELOAD (       0x040000, 0x020000 )
  2273: 	ROM_RELOAD (       0x060000, 0x020000 )
  2274: 	ROM_LOAD( "14306", 0x080000, 0x020000, CRC(64379dc6) SHA1(7efc7175351186c54f141161a395e63b1cc7e7a5) )
  2275: 	ROM_RELOAD (       0x0a0000, 0x020000 )
  2276: 	ROM_RELOAD (       0x0c0000, 0x020000 )
  2277: 	ROM_RELOAD (       0x0e0000, 0x020000 )
  2278: 	ROM_LOAD16_BYTE( "14281", 0x100000, 0x020000, CRC(8a746c42) SHA1(fa3729ec3aa4b3c59322408146ce2cfbf5a11b98) )
  2279: 	ROM_LOAD16_BYTE( "14280", 0x100001, 0x020000, CRC(3c8148f7) SHA1(072b7982bb95e7a9ab77844b59020146c262488d) )
  2280: 
  2281: 	ROM_REGION( 0x480000, REGION_CPU2, 0 ) /* sound CPU */
  2282: 	ROM_LOAD( "14285", 0x00000, 0x40000, CRC(25aefad6) SHA1(10153f4e773a0f55378f869eb1d85156e85f893f) )
  2283: 	ROM_RELOAD(        0x100000, 0x40000             )
  2284: 	ROM_LOAD( "14284", 0x180000, 0x080000, CRC(760542d4) SHA1(dcac73869c02fefd328bd6bdbcbdb3b68b0647da) )
  2285: 	ROM_LOAD( "14282", 0x280000, 0x080000, CRC(ea20979e) SHA1(9b70ef055da8c7c56da54b7edef2379678e7c50f) )
  2286: 	ROM_LOAD( "14283", 0x380000, 0x080000, CRC(c863a91c) SHA1(afdc76bbb9b207cfcb47d437248a757d03212f4e) )
  2287: 
  2288: 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
  2289: 	ROM_LOAD32_BYTE( "14291", 0x000000, 0x100000, CRC(490f95a1) SHA1(f220788670b76164ac414ed9b16a422f719be267) )
  2290: 	ROM_LOAD32_BYTE( "14290", 0x000002, 0x100000, CRC(a144162d) SHA1(d43f12dd9f690cdfcebb6c7b515ff7dc7dcaa377) )
  2291: 	ROM_LOAD32_BYTE( "14289", 0x000001, 0x100000, CRC(38570582) SHA1(a9d810a02a1f5a6849c79d65fbebff21a4b82b59) )
  2292: 	ROM_LOAD32_BYTE( "14288", 0x000003, 0x100000, CRC(3188b636) SHA1(bc0adeeca5040caa563ee1e0eded9c323ca23446) )
  2293: 
  2294: 	ROM_REGION( 0x0800000, REGION_GFX2, 0 ) /* sprites */
  2295: 	ROMX_LOAD( "14299", 0x000000, 0x100000, CRC(ce59231b) SHA1(bcb1f11b74935694d0617ec8df66db2cc57b6219) , ROM_SKIP(7) )
  2296: 	ROMX_LOAD( "14298", 0x000001, 0x100000, CRC(2745c84c) SHA1(5a0528c921cba7a1047d3a2ece79925103d719a1) , ROM_SKIP(7) )
  2297: 	ROMX_LOAD( "14297", 0x000002, 0x100000, CRC(29cb9450) SHA1(7dc38d23a2f0cee2f4edde05c1a6f0dc83f331db) , ROM_SKIP(7) )
  2298: 	ROMX_LOAD( "14296", 0x000003, 0x100000, CRC(9d8cbd31) SHA1(55a9f9ec9029157da033e69664b58e694a28db47) , ROM_SKIP(7) )
  2299: 	ROMX_LOAD( "14295", 0x000004, 0x100000, CRC(29591f50) SHA1(1ac4ceaf74892e30f210ad77024eb441c5e4a959) , ROM_SKIP(7) )
  2300: 	ROMX_LOAD( "14294", 0x000005, 0x100000, CRC(fa86b794) SHA1(7b6907e5734fbf2fba7bcc213a8551fec5e9f3d5) , ROM_SKIP(7) )
  2301: 	ROMX_LOAD( "14293", 0x000006, 0x100000, CRC(52899269) SHA1(ff809ff88701109e0ca79e785a61402d97335cec) , ROM_SKIP(7) )
  2302: 	ROMX_LOAD( "14292", 0x000007, 0x100000, CRC(41f71443) SHA1(351d40d6159cb5b792519bce5d16490965800cfb) , ROM_SKIP(7) )
  2303: 
  2304: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* FG tiles */
  2305: 	/* populated at runtime */
  2306: ROM_END
  2307: 
  2308: ROM_START( sonic )
  2309: 	ROM_REGION( 0x180000, REGION_CPU1, 0 ) /* v60 code */
  2310: 	ROM_LOAD( "epr-c-87.17", 0x000000, 0x020000, CRC(25e3c27e) SHA1(8f173cd5c7c817dcccdcad9be5781cfaa081d73e) )
  2311: 	ROM_RELOAD     (               0x020000, 0x20000 )
  2312: 	ROM_RELOAD     (               0x040000, 0x20000 )
  2313: 	ROM_RELOAD     (               0x060000, 0x20000 )
  2314: 	ROM_LOAD( "epr-c-86.8", 0x080000, 0x020000, CRC(efe9524c) SHA1(8020e734704a8f989919ee5ad92f70035de717f0) )
  2315: 	ROM_RELOAD     (               0x0a0000, 0x20000 )
  2316: 	ROM_RELOAD     (               0x0c0000, 0x20000 )
  2317: 	ROM_RELOAD     (               0x0e0000, 0x20000 )
  2318: 	ROM_LOAD16_BYTE( "epr-c-81.18", 0x100000, 0x040000, CRC(65b06c25) SHA1(9f524012a7adbc71737f90fc556f0ce9adc2bcf8) )
  2319: 	ROM_LOAD16_BYTE( "epr-c-80.9",  0x100001, 0x040000, CRC(2db66fd2) SHA1(54582c0d5977649a38fc3a2c0fe4d7b1959abc76) )
  2320: 
  2321: 	ROM_REGION( 0x480000, REGION_CPU2, 0 ) /* sound CPU */
  2322: 	ROM_LOAD( "epr15785.36", 0x00000, 0x40000, CRC(0fe7422e) SHA1(b7eaf4736ba155965317bb4ef3b33fc122635151) )
  2323: 	ROM_RELOAD(              0x100000, 0x40000             )
  2324: 	ROM_LOAD( "mpr15784.35", 0x180000, 0x100000, CRC(42f06714) SHA1(30e45bb2d9b492f0c1acc4fbe1e5869f0559300b) )
  2325: 	ROM_LOAD( "mpr15782.33", 0x280000, 0x100000, CRC(cf56b5a0) SHA1(5786228aab120c3361524ba93b418b24fd5b8ffb) ) // (this is the only rom unchanged from the prototype)
  2326: 	ROM_LOAD( "mpr15783.34", 0x380000, 0x100000, CRC(e4220eea) SHA1(a546c8bfc24e0695cf79c49e1a867d2595a1ed7f) )
  2327: 
  2328: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
  2329: 	ROM_LOAD16_BYTE( "mpr15789.14", 0x000000, 0x100000, CRC(4378f12b) SHA1(826e0550a3c5f2b6e59c6531ac03658a4f826651) )
  2330: 	ROM_LOAD16_BYTE( "mpr15788.5",  0x000001, 0x100000, CRC(a6ed5d7a) SHA1(d30f26b452d380e7657e044e144f7dbbc4dc13e5) )
  2331: 
  2332: 	ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* sprites */
  2333: 	ROMX_LOAD( "mpr15790.32", 0x000000, 0x200000, CRC(c69d51b1) SHA1(7644fb64457855f9ed87ca25ddc28c21bcb61fd9) , ROM_SKIP(6)|ROM_GROUPWORD )
  2334: 	ROMX_LOAD( "mpr15792.30", 0x000002, 0x200000, CRC(1006bb67) SHA1(38c752e634aa94b1a23c09c4dba6388b7d0358af) , ROM_SKIP(6)|ROM_GROUPWORD )
  2335: 	ROMX_LOAD( "mpr15794.28", 0x000004, 0x200000, CRC(8672b480) SHA1(61659e3856cdff0b2bca190a7e60c81b86ea2089) , ROM_SKIP(6)|ROM_GROUPWORD )
  2336: 	ROMX_LOAD( "mpr15796.26", 0x000006, 0x200000, CRC(95b8011c) SHA1(ebc56ae49a76d04de60b0f81506769219a9885a7) , ROM_SKIP(6)|ROM_GROUPWORD )
  2337: 
  2338: 	// NOTE: these last 4 are in fact 16 megabit ROMs,
  2339: 	// but they were dumped as 8 because the top half
  2340: 	// is "FF" in all of them.
  2341: 	ROMX_LOAD( "mpr15791.31", 0x800000, 0x100000, CRC(42217066) SHA1(46d14c632da1bed02bc0a637e34ab9cbf356c5de) , ROM_SKIP(6)|ROM_GROUPWORD )
  2342: 	ROMX_LOAD( "mpr15793.29", 0x800002, 0x100000, CRC(75bafe55) SHA1(ad33dae062c4bdf8d17d3f6f7c333aa2e7da260e) , ROM_SKIP(6)|ROM_GROUPWORD )
  2343: 	ROMX_LOAD( "mpr15795.27", 0x800004, 0x100000, CRC(7f3dad30) SHA1(84be1c31df35e1c7fef77e83d6d135378789a1ef) , ROM_SKIP(6)|ROM_GROUPWORD )
  2344: 	ROMX_LOAD( "mpr15797.25", 0x800006, 0x100000, CRC(013c6cab) SHA1(eb9b77d28815d2e225b0882706084a52b11c48ea) , ROM_SKIP(6)|ROM_GROUPWORD )
  2345: 
  2346: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* FG tiles */
  2347: 	/* populated at runtime */
  2348: ROM_END
  2349: 
  2350: ROM_START( sonicp )
  2351: 	ROM_REGION( 0x180000, REGION_CPU1, 0 ) /* v60 code */
  2352: 	ROM_LOAD( "sonpg0.bin", 0x000000, 0x020000, CRC(da05dcbb) SHA1(c2ced1f3aee92b0e531d5cd7611d4811f2ae95e7) )
  2353: 	ROM_RELOAD     (               0x020000, 0x20000 )
  2354: 	ROM_RELOAD     (               0x040000, 0x20000 )
  2355: 	ROM_RELOAD     (               0x060000, 0x20000 )
  2356: 	ROM_LOAD( "sonpg1.bin", 0x080000, 0x020000, CRC(c57dc5c5) SHA1(5741bdd52ee7181d883129885838b36f4af8a04c) )
  2357: 	ROM_RELOAD     (               0x0a0000, 0x20000 )
  2358: 	ROM_RELOAD     (               0x0c0000, 0x20000 )
  2359: 	ROM_RELOAD     (               0x0e0000, 0x20000 )
  2360: 	ROM_LOAD16_BYTE( "sonpd0.bin", 0x100000, 0x040000, CRC(a7da7546) SHA1(0a10573b21cd38d58380698bc18b0256dbb24044) )
  2361: 	ROM_LOAD16_BYTE( "sonpd1.bin", 0x100001, 0x040000, CRC(c30e4c70) SHA1(897b6f62921694fe3c63677908f76eaf38b7b92f) )
  2362: 
  2363: 	ROM_REGION( 0x480000, REGION_CPU2, 0 ) /* sound CPU */
  2364: 	ROM_LOAD( "sonsnd0.bin", 0x00000, 0x40000, CRC(569c8d4b) SHA1(9f1f6da6adbea043cc5ad853806fcb7bf683c832) )
  2365: 	ROM_RELOAD(              0x100000, 0x40000             )
  2366: 	ROM_LOAD( "sonsnd1.bin", 0x180000, 0x100000, CRC(f4fa5a21) SHA1(14a364ba7744ff0b44423d8d6bab990fe534ff29) )
  2367: 	ROM_LOAD( "sonsnd3.bin", 0x280000, 0x100000, CRC(cf56b5a0) SHA1(5786228aab120c3361524ba93b418b24fd5b8ffb) )
  2368: 	ROM_LOAD( "sonsnd2.bin", 0x380000, 0x100000, CRC(e1bd45a5) SHA1(b411757853d61588e5223b48b5124cc00b3d65dd) )
  2369: 
  2370: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
  2371: 	ROM_LOAD32_BYTE( "sonscl0.bin", 0x000000, 0x080000, CRC(445e31b9) SHA1(5678dfda74a09b5ac673448b222d11df4ca23aff) )
  2372: 	ROM_LOAD32_BYTE( "sonscl1.bin", 0x000002, 0x080000, CRC(3d234181) SHA1(2e8c14ad36be76f5f5fc6a3ee152f1abc8bf0ddd) )
  2373: 	ROM_LOAD32_BYTE( "sonscl2.bin", 0x000001, 0x080000, CRC(a5de28b2) SHA1(49a16ac10cf01b5b8802b8b015a2e403086c206a) )
  2374: 	ROM_LOAD32_BYTE( "sonscl3.bin", 0x000003, 0x080000, CRC(7ce7554b) SHA1(8def3acae6baafbe9e350f18e245a9a833df5cc4) )
  2375: 
  2376: 	ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* sprites */
  2377: 	ROMX_LOAD( "sonobj0.bin", 0x800000, 0x100000, CRC(ceea18e3) SHA1(f902a7e2f8e126fd7a7862c55de32ce6352a7716) , ROM_SKIP(7) )
  2378: 	ROMX_LOAD( "sonobj1.bin", 0x800001, 0x100000, CRC(6bbc226b) SHA1(5ef4256b6a93891daf1349def6db3bc428e5f4f3) , ROM_SKIP(7) )
  2379: 	ROMX_LOAD( "sonobj2.bin", 0x800002, 0x100000, CRC(fcd5ef0e) SHA1(e3e50d4838ac3cce41d69ee6cd31981fbe422a4b) , ROM_SKIP(7) )
  2380: 	ROMX_LOAD( "sonobj3.bin", 0x800003, 0x100000, CRC(b99b42ab) SHA1(60d91dc4e8e0adc62809cd2e71833c658124fbfc) , ROM_SKIP(7) )
  2381: 	ROMX_LOAD( "sonobj4.bin", 0x800004, 0x100000, CRC(c7ec1456) SHA1(d866b9dff546bd6feb43e317328ac0a2324303b9) , ROM_SKIP(7) )
  2382: 	ROMX_LOAD( "sonobj5.bin", 0x800005, 0x100000, CRC(bd5da27f) SHA1(ab3043190a32b555513a29a70e01547daf698cf8) , ROM_SKIP(7) )
  2383: 	ROMX_LOAD( "sonobj6.bin", 0x800006, 0x100000, CRC(313c92d1) SHA1(a5134750667502811fd755cc0974a744cdb785e1) , ROM_SKIP(7) )
  2384: 	ROMX_LOAD( "sonobj7.bin", 0x800007, 0x100000, CRC(3784c507) SHA1(8ea58c52b09b84643218e26f1ec1fa0ea864346e) , ROM_SKIP(7) )
  2385: 
  2386: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* FG tiles */
  2387: 	/* populated at runtime */
  2388: ROM_END
  2389: 
  2390: ROM_START( holo )
  2391: 	ROM_REGION( 0x140000, REGION_CPU1, 0 ) /* v60 code */
  2392: 	ROM_LOAD16_WORD( "epr14977.a", 0x000000, 0x020000, CRC(e0d7e288) SHA1(3126041ba73f21fac0207bf5c63230c61180f564) )
  2393: 	ROM_RELOAD     (               0x020000, 0x20000 )
  2394: 	ROM_RELOAD     (               0x040000, 0x20000 )
  2395: 	ROM_RELOAD     (               0x060000, 0x20000 )
  2396: 	ROM_LOAD16_WORD( "epr14976.a", 0x080000, 0x020000, CRC(e56f13be) SHA1(3d9e7add8feaa35c4c2e8bda84ae251087bd5e40) )
  2397: 	ROM_RELOAD     (               0x0a0000, 0x20000 )
  2398: 	ROM_RELOAD     (               0x0c0000, 0x20000 )
  2399: 	ROM_RELOAD     (               0x0e0000, 0x20000 )
  2400: 	ROM_LOAD16_BYTE( "epr15011", 0x100000, 0x020000, CRC(b9f59f59) SHA1(f8c91fa877cf53153bec3d7850eab38227cc18ba) )
  2401: 	ROM_LOAD16_BYTE( "epr15010", 0x100001, 0x020000, CRC(0c09c57b) SHA1(028a9fe1c625be218ba90906308d25d69d4de4c4) )
  2402: 
  2403:         ROM_REGION( 0x480000, REGION_CPU2, 0 ) /* sound CPU */
  2404: 	ROM_LOAD( "epr14965", 0x00000, 0x20000, CRC(3a918cfe) SHA1(f43ecbc9e774873e868bc921321541b308ea1a3c) )
  2405: 	ROM_RELOAD(           0x100000, 0x020000             )
  2406: 	ROM_LOAD( "mpr14964", 0x180000, 0x100000, CRC(7ff581d5) SHA1(ab81bd70937319e4edc8924bdb493d5ef1ec096a) )
  2407: 	ROM_LOAD( "mpr14962", 0x280000, 0x100000, CRC(6b2e694e) SHA1(7874bdfd534231c7756e0e0d9fc7a3d5bdba74d3) )
  2408: 	ROM_LOAD( "mpr14963", 0x380000, 0x100000, CRC(0974a60e) SHA1(87d770edcee9c9e8f37d36ab28c5aa5d685ea849) )
  2409: 
  2410: 	ROM_REGION( 0x000100, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
  2411: 	/* game doesn't use bg tilemaps */
  2412: 
  2413: 	ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* sprites */
  2414: 	ROMX_LOAD( "mpr14973", 0x800000, 0x100000, CRC(b3c3ff6b) SHA1(94e8dbfae37a5b122ee3d471aad1f758e4a39b9e) , ROM_SKIP(7) )
  2415: 	ROMX_LOAD( "mpr14972", 0x800001, 0x100000, CRC(0c161374) SHA1(413ab45deb687ecdbdc06ae98aa32ad8a0d80e0c) , ROM_SKIP(7) )
  2416: 	ROMX_LOAD( "mpr14971", 0x800002, 0x100000, CRC(dfcf6fdf) SHA1(417291b54010be20dd6738a70d372b580615a8bb) , ROM_SKIP(7) )
  2417: 	ROMX_LOAD( "mpr14970", 0x800003, 0x100000, CRC(cae3a745) SHA1(b6cc1f4abb460cda4714967e880928dc727ecf0a) , ROM_SKIP(7) )
  2418: 	ROMX_LOAD( "mpr14969", 0x800004, 0x100000, CRC(c06b7c15) SHA1(8b97a899e6eacf798b9f55af8df95e12ccacadec) , ROM_SKIP(7) )
  2419: 	ROMX_LOAD( "mpr14968", 0x800005, 0x100000, CRC(f413894a) SHA1(d65f57b1e55199e901c7c2f701589c46eeab739a) , ROM_SKIP(7) )
  2420: 	ROMX_LOAD( "mpr14967", 0x800006, 0x100000, CRC(5377fce0) SHA1(baf8f82ab851b24202938fc7213d72324b9b92c0) , ROM_SKIP(7) )
  2421: 	ROMX_LOAD( "mpr14966", 0x800007, 0x100000, CRC(dffba2e9) SHA1(b97e47e78abb8302bc2c87681643382203bd76eb) , ROM_SKIP(7) )
  2422: 
  2423: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* FG tiles */
  2424: 	/* populated at runtime */
  2425: ROM_END
  2426: 
  2427: ROM_START( arabfgt )
  2428: 	ROM_REGION( 0x180000, REGION_CPU1, 0 ) /* v60 code */
  2429: 	ROM_LOAD16_WORD( "mp14608.8",  0x000000, 0x20000, CRC(cd5efba9) SHA1(a7daf8e95d31359753c984c447e93d40f43a179d) )
  2430: 	ROM_RELOAD     (               0x020000, 0x20000 )
  2431: 	ROM_RELOAD     (               0x040000, 0x20000 )
  2432: 	ROM_RELOAD     (               0x060000, 0x20000 )
  2433: 	ROM_RELOAD     (               0x080000, 0x20000 )
  2434: 	ROM_RELOAD     (               0x0a0000, 0x20000 )
  2435: 	ROM_RELOAD     (               0x0c0000, 0x20000 )
  2436: 	ROM_RELOAD     (               0x0e0000, 0x20000 )
  2437: 	ROM_LOAD16_BYTE( "ep14592.18", 0x100000, 0x40000, CRC(f7dff316) SHA1(338690a1404dde6e7e66067f23605a247c7d0f5b) )
  2438: 	ROM_LOAD16_BYTE( "ep14591.9",  0x100001, 0x40000, CRC(bbd940fb) SHA1(99c17aba890935eaf7ea468492da03103288eb1b) )
  2439: 
  2440: 	ROM_REGION( 0x480000, REGION_CPU2, 0 ) /* sound CPU + banks */
  2441: 	ROM_LOAD( "ep14596.36", 0x000000, 0x20000, CRC(bd01faec) SHA1(c909dcb8ef2672c4b0060d911d295e445ca311eb) )
  2442: 	ROM_RELOAD(             0x100000, 0x20000             )
  2443: 	ROM_LOAD( "mp14595f.35", 0x180000, 0x100000, CRC(5173d1af) SHA1(dccda644488d0c561c8ff7fa9619bd9504d8d9c6) )
  2444: 	ROM_LOAD( "mp14596f.24", 0x280000, 0x100000, CRC(aa037047) SHA1(5cb1cfb235bbbf875d2b07ac4a9130ba13d47e57) )
  2445: 	ROM_LOAD( "mp14594f.34", 0x380000, 0x100000, CRC(01777645) SHA1(7bcbe7687bd80b94bd3b2b3099cdd036bf7e0cd3) )
  2446: 
  2447: 	ROM_REGION( 0x100000, REGION_CPU3, 0 ) /* Protection CPU */
  2448: 	ROM_LOAD( "144680-1.3", 0x00000, 0x10000, CRC(c3c591e4) SHA1(53e48066e85b61d0c456618d14334a509b354cb3) )
  2449: 	ROM_RELOAD(             0xf0000, 0x10000             )
  2450: 
  2451: 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
  2452: 	ROM_LOAD16_BYTE( "mp14599f.14", 0x000000, 0x200000, CRC(94f1cf10) SHA1(34ec86487bcb6726c025149c319f00a854eb7a1d) )
  2453: 	ROM_LOAD16_BYTE( "mp14598f.5",  0x000001, 0x200000, CRC(010656f3) SHA1(31619c022cba4f250ce174f186d3e34444f60faf) )
  2454: 
  2455: 	ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* sprites */
  2456: 	ROMX_LOAD( "mp14600f.32", 0x000000, 0x200000, CRC(e860988a) SHA1(328581877c0890519c854f75f0976b0e9c4560f8) , ROM_SKIP(6)|ROM_GROUPWORD )
  2457: 	ROMX_LOAD( "mp14602.30",  0x000002, 0x200000, CRC(64524e4d) SHA1(86246185ab5ab638a73991c9e3aeb07c6d51be4f) , ROM_SKIP(6)|ROM_GROUPWORD )
  2458: 	ROMX_LOAD( "mp14604.28",  0x000004, 0x200000, CRC(5f8d5167) SHA1(1b08495e5a4cc2530c2895e47abd0e0b75496c68) , ROM_SKIP(6)|ROM_GROUPWORD )
  2459: 	ROMX_LOAD( "mp14606.26",  0x000006, 0x200000, CRC(7047f437) SHA1(e806a1cd73c96b33e8edc64e41d99bf7798103e0) , ROM_SKIP(6)|ROM_GROUPWORD )
  2460: 	ROMX_LOAD( "mp14601f.31", 0x800000, 0x200000, CRC(a2f3bb32) SHA1(1a60975dead5faf08ad4e9a96a00f98664d5e5ec) , ROM_SKIP(6)|ROM_GROUPWORD )
  2461: 	ROMX_LOAD( "mp14603.29",  0x800002, 0x200000, CRC(f6ce494b) SHA1(b3117e34913e855c035ebe37fbfbe0f7466f94f0) , ROM_SKIP(6)|ROM_GROUPWORD )
  2462: 	ROMX_LOAD( "mp14605.27",  0x800004, 0x200000, CRC(aaf52697) SHA1(b502a37ae68fc08b60cdf0e2b744898b3474d3b9) , ROM_SKIP(6)|ROM_GROUPWORD )
  2463: 	ROMX_LOAD( "mp14607.25",  0x800006, 0x200000, CRC(b70b0735) SHA1(9ef2da6f710bc5c2c7ee30dc144409a61dbe6646) , ROM_SKIP(6)|ROM_GROUPWORD )
  2464: 
  2465: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* FG tiles */
  2466: 	/* populated at runtime */
  2467: ROM_END
  2468: 
  2469: ROM_START( brival )
  2470: 	ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code */
  2471: 	ROM_LOAD( "ep15720.8", 0x000000, 0x020000, CRC(0d182d78) SHA1(53e9e5898869ea4a354dc3e9a78d8b8e9a7274c9) )
  2472: 	ROM_RELOAD     (               0x020000, 0x20000 )
  2473: 	ROM_RELOAD     (               0x040000, 0x20000 )
  2474: 	ROM_RELOAD     (               0x060000, 0x20000 )
  2475: 	ROM_RELOAD     (               0x080000, 0x20000 )
  2476: 	ROM_RELOAD     (               0x0a0000, 0x20000 )
  2477: 	ROM_RELOAD     (               0x0c0000, 0x20000 )
  2478: 	ROM_RELOAD     (               0x0e0000, 0x20000 )
  2479: 	ROM_LOAD16_BYTE( "ep15723.18", 0x100000, 0x080000, CRC(4ff40d39) SHA1(b33a656f976ec7a1a2268e7b9a81d5b84f3d9ca3) )
  2480: 	ROM_LOAD16_BYTE( "ep15724.9",  0x100001, 0x080000, CRC(3ff8a052) SHA1(f484a8e15a022f9ff290e662ab27f96f9f0ad24e) )
  2481: 
  2482: 	ROM_REGION( 0x480000, REGION_CPU2, 0 ) /* sound CPU */
  2483: 	ROM_LOAD( "ep15725.36", 0x00000, 0x20000, CRC(ea1407d7) SHA1(68b571341f032278e87a38739ba8084b7a6062d3) )
  2484: 	ROM_RELOAD(             0x100000, 0x20000             )
  2485: 	ROM_LOAD( "mp15627.35", 0x180000, 0x100000, CRC(8a8388c5) SHA1(7ee03feb975cc576a3d8651fd41976ca87d60894) )
  2486: 	ROM_LOAD( "mp15625.24", 0x280000, 0x100000, CRC(3ce82932) SHA1(f2107bc2591f46a51c9f0d706933b1ae69db91f9) )
  2487: 	ROM_LOAD( "mp15626.34", 0x380000, 0x100000, CRC(83306d1e) SHA1(feb08902b51c0013d9417832cdf198e36cdfc28c) )
  2488: 
  2489: 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
  2490: 	ROM_LOAD16_BYTE( "mp14599f.14", 0x000000, 0x200000, CRC(1de17e83) SHA1(04ee14b863f93b42a5bd1b6da71cff54ef11d4b7) )
  2491: 	ROM_LOAD16_BYTE( "mp14598f.5",  0x000001, 0x200000, CRC(cafb0de9) SHA1(94c6bfc7a4081dee373e9466a7b6f80889696087) )
  2492: 
  2493: 	ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* sprites */
  2494: 	ROMX_LOAD( "mp15637.32", 0x000000, 0x200000, CRC(f39844c0) SHA1(c48dc8cccdd9d3756cf99a983c6a89ed43fcda22) , ROM_SKIP(6)|ROM_GROUPWORD )
  2495: 	ROMX_LOAD( "mp15635.30", 0x000002, 0x200000, CRC(263cf6d1) SHA1(7accd214502fd050edc0901c9929d6069dae4d00) , ROM_SKIP(6)|ROM_GROUPWORD )
  2496: 	ROMX_LOAD( "mp15633.28", 0x000004, 0x200000, CRC(44e9a88b) SHA1(57a930b9c3b83c889df54de60c90f847c2dcb614) , ROM_SKIP(6)|ROM_GROUPWORD )
  2497: 	ROMX_LOAD( "mp15631.26", 0x000006, 0x200000, CRC(e93cf9c9) SHA1(17786cd3ccaef613216db724e923861841c52b45) , ROM_SKIP(6)|ROM_GROUPWORD )
  2498: 	ROMX_LOAD( "mp15636.31", 0x800000, 0x200000, CRC(079ff77f) SHA1(bdd41acef58c39ba58cf85d307229622877dbdf9) , ROM_SKIP(6)|ROM_GROUPWORD )
  2499: 	ROMX_LOAD( "mp15634.29", 0x800002, 0x200000, CRC(1edc14cd) SHA1(80a281c904560b364fe9f2b8987b7a254220a29f) , ROM_SKIP(6)|ROM_GROUPWORD )
  2500: 	ROMX_LOAD( "mp15632.27", 0x800004, 0x200000, CRC(796215f2) SHA1(d7b393781dbba59c9b1cd600d27e6d91e36ea771) , ROM_SKIP(6)|ROM_GROUPWORD )
  2501: 	ROMX_LOAD( "mp15630.25", 0x800006, 0x200000, CRC(8dabb501) SHA1(c5af2187d00e0b9732a82441f9758b303fecbb2c) , ROM_SKIP(6)|ROM_GROUPWORD )
  2502: 
  2503: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* FG tiles */
  2504: 	/* populated at runtime */
  2505: ROM_END
  2506: 
  2507: ROM_START( alien3 )
  2508: 	ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code */
  2509: 	ROM_LOAD( "15943.bin", 0x000000, 0x040000, CRC(ac4591aa) SHA1(677155a3ebdac6602525e06adb25d287eaf9e089) )
  2510: 	ROM_RELOAD     (               0x040000, 0x40000 )
  2511: 	ROM_LOAD( "15942.bin", 0x080000, 0x040000, CRC(a1e1d0ec) SHA1(10d8d2235a67a4ba475fe98124c6a4a5311592b5) )
  2512: 	ROM_RELOAD     (               0x0c0000, 0x40000 )
  2513: 	ROM_LOAD16_BYTE( "15855.bin", 0x100000, 0x080000, CRC(a6fadabe) SHA1(328bbb54651eef197ba13f1bd9228f3f4de7ee5e) )
  2514: 	ROM_LOAD16_BYTE( "15854.bin", 0x100001, 0x080000, CRC(d1aec392) SHA1(f48804fe0151e83ad45e912b55db8ae8ddebd2ad) )
  2515: 
  2516: 	ROM_REGION( 0x480000, REGION_CPU2, 0 ) /* sound CPU */
  2517: 	ROM_LOAD( "15859.bin", 0x00000, 0x40000, CRC(91b55bd0) SHA1(23b85a006a91c2a5eb1cee14172fd0d8b7732518) )
  2518: 	ROM_RELOAD(            0x100000, 0x40000             )
  2519: 	ROM_LOAD( "15858.bin", 0x180000, 0x100000, CRC(2eb64c10) SHA1(b2dbe86b82e889f4a9850cf4aa6596a139c1c3d6) )
  2520: 	ROM_LOAD( "15856.bin", 0x280000, 0x100000, CRC(a5ef4f1f) SHA1(e8da7a995955e80872a25bd75465c590b649cfab) )
  2521: 	ROM_LOAD( "15857.bin", 0x380000, 0x100000, CRC(915c56df) SHA1(7031f937c826af17caf7ec8cbb6155d0a55bd38a) )
  2522: 
  2523: 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
  2524: 	ROM_LOAD16_BYTE( "15863.bin", 0x000000, 0x200000, CRC(9d36b645) SHA1(2977047780b615b64c3b4aec78fef0643d40490e) )
  2525: 	ROM_LOAD16_BYTE( "15862.bin", 0x000001, 0x200000, CRC(9e277d25) SHA1(9f191484a42391268306a8d2d95c340ce8b2d6cd) )
  2526: 
  2527: 	ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* sprites */
  2528: 	ROMX_LOAD( "15864.bin", 0x000000, 0x200000, CRC(58207157) SHA1(d1b0c7edac8b89b1322398d4cd3a976a88bc0b56) , ROM_SKIP(6)|ROM_GROUPWORD )
  2529: 	ROMX_LOAD( "15866.bin", 0x000002, 0x200000, CRC(9c53732c) SHA1(9aa5103cc10b4927c16e0cf102b64a15dd038756) , ROM_SKIP(6)|ROM_GROUPWORD )
  2530: 	ROMX_LOAD( "15868.bin", 0x000004, 0x200000, CRC(62d556e8) SHA1(d70cab0881784a3d4dd06d0c99587ca6054c2dc4) , ROM_SKIP(6)|ROM_GROUPWORD )
  2531: 	ROMX_LOAD( "15870.bin", 0x000006, 0x200000, CRC(d31c0400) SHA1(44c1b2e5236d894d31ff72552a7ad50270dd2fad) , ROM_SKIP(6)|ROM_GROUPWORD )
  2532: 	ROMX_LOAD( "15865.bin", 0x800000, 0x200000, CRC(dd64f87b) SHA1(cfa96c5f2b1221706552f5cef4aa7c61ebe21e39) , ROM_SKIP(6)|ROM_GROUPWORD )
  2533: 	ROMX_LOAD( "15867.bin", 0x800002, 0x200000, CRC(8cf9cb11) SHA1(a77399fccee3f258a5716721edd69a33f94f8daf) , ROM_SKIP(6)|ROM_GROUPWORD )
  2534: 	ROMX_LOAD( "15869.bin", 0x800004, 0x200000, CRC(dd4b137f) SHA1(7316dce32d35bf468defae5e6ed86910a37a2457) , ROM_SKIP(6)|ROM_GROUPWORD )
  2535: 	ROMX_LOAD( "15871.bin", 0x800006, 0x200000, CRC(58eb10ae) SHA1(23f2a72dc7b2d7b5c8a979952f81608296805745) , ROM_SKIP(6)|ROM_GROUPWORD )
  2536: 
  2537: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* FG tiles */
  2538: 	/* populated at runtime */
  2539: ROM_END
  2540: 
  2541: ROM_START( f1lap )
  2542: 	ROM_REGION( 0x180000, REGION_CPU1, 0 ) /* v60 code */
  2543: 	ROM_LOAD( "15598", 0x000000, 0x020000, CRC(9feab7cd) )
  2544: 	ROM_RELOAD     (               0x020000, 0x20000 )
  2545: 	ROM_RELOAD     (               0x040000, 0x20000 )
  2546: 	ROM_RELOAD     (               0x060000, 0x20000 )
  2547: 	ROM_LOAD( "15599", 0x080000, 0x020000, CRC(5c5ac112) )
  2548: 	ROM_RELOAD     (               0x0a0000, 0x20000 )
  2549: 	ROM_RELOAD     (               0x0c0000, 0x20000 )
  2550: 	ROM_RELOAD     (               0x0e0000, 0x20000 )
  2551: 	ROM_LOAD16_BYTE( "15596", 0x100000, 0x040000, CRC(20e92909) )
  2552: 	ROM_LOAD16_BYTE( "15597", 0x100001, 0x040000, CRC(cd1ccddb) )
  2553: 
  2554: 	ROM_REGION( 0x480000, REGION_CPU2, 0 ) /* sound CPU */
  2555: 	ROM_LOAD( "15592", 0x00000, 0x20000, CRC(7c055cc8) )
  2556: 	ROM_RELOAD(        0x100000, 0x20000             )
  2557: 	ROM_LOAD( "15593", 0x180000, 0x100000, CRC(e7300441) )
  2558: 	ROM_LOAD( "15595", 0x280000, 0x100000, CRC(3fbdad9a) )
  2559: 	ROM_LOAD( "15594", 0x380000, 0x100000, CRC(7f4ca3bb) )
  2560: 
  2561: 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
  2562: 	ROM_LOAD16_BYTE( "15608", 0x000000, 0x200000, CRC(64462c69) )
  2563: 	ROM_LOAD16_BYTE( "15609", 0x000001, 0x200000, CRC(d586e455) )
  2564: 
  2565: 	ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* sprites */
  2566: 	ROMX_LOAD( "15600", 0x000000, 0x200000, CRC(d2698d23) , ROM_SKIP(6)|ROM_GROUPWORD )
  2567: 	ROMX_LOAD( "15602", 0x000002, 0x200000, CRC(1674764d) , ROM_SKIP(6)|ROM_GROUPWORD )
  2568: 	ROMX_LOAD( "15604", 0x000004, 0x200000, CRC(1552bbb9) , ROM_SKIP(6)|ROM_GROUPWORD )
  2569: 	ROMX_LOAD( "15606", 0x000006, 0x200000, CRC(2b4f5265) , ROM_SKIP(6)|ROM_GROUPWORD )
  2570: 	ROMX_LOAD( "15601", 0x800000, 0x200000, CRC(31a8f40a) , ROM_SKIP(6)|ROM_GROUPWORD )
  2571: 	ROMX_LOAD( "15603", 0x800002, 0x200000, CRC(3805ecbc) , ROM_SKIP(6)|ROM_GROUPWORD )
  2572: 	ROMX_LOAD( "15605", 0x800004, 0x200000, CRC(cbdbf35e) , ROM_SKIP(6)|ROM_GROUPWORD )
  2573: 	ROMX_LOAD( "15607", 0x800006, 0x200000, CRC(6c8817c9) , ROM_SKIP(6)|ROM_GROUPWORD )
  2574: 
  2575: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* FG tiles */
  2576: 	/* populated at runtime */
  2577: 
  2578: 	ROM_REGION( 0x20000, REGION_USER1, 0 ) /*  comms board  */
  2579: 	ROM_LOAD( "15612", 0x00000, 0x20000, CRC(9d204617) )
  2580: ROM_END
  2581: 
  2582: ROM_START( f1en )
  2583: 	ROM_REGION( 0x180000, REGION_CPU1, 0 ) /* v60 code */
  2584: 	ROM_LOAD16_WORD( "ep14452a.006", 0x000000, 0x20000, CRC(b5b4a9d9) SHA1(6699c15dc1155c3cee33a06d320acbff0ab5ad11) )
  2585: 	ROM_RELOAD     (                  0x020000, 0x20000 )
  2586: 	ROM_RELOAD     (                  0x040000, 0x20000 )
  2587: 	ROM_RELOAD     (                  0x060000, 0x20000 )
  2588: 	ROM_RELOAD     (                  0x080000, 0x20000 )
  2589: 	ROM_RELOAD     (                  0x0a0000, 0x20000 )
  2590: 	ROM_RELOAD     (                  0x0c0000, 0x20000 )
  2591: 	ROM_RELOAD     (                  0x0e0000, 0x20000 )
  2592: 	ROM_LOAD16_BYTE( "epr14445.014",  0x100000, 0x040000, CRC(d06261ab) SHA1(6e1c4ce4e49a142fd5b1ecac98145960d7afd567) )
  2593: 	ROM_LOAD16_BYTE( "epr14444.007",  0x100001, 0x040000, CRC(07724354) SHA1(9d7f64a80553c4ae0e9cf716478fd5c4b8277470) )
  2594: 
  2595: 	ROM_REGION( 0x480000, REGION_CPU2, 0 ) /* sound CPU */
  2596: 	ROM_LOAD( "epr14449.035", 0x00000, 0x20000, CRC(2d29699c) SHA1(cae02e5533a0edd3b3b4a54a1a43321285e06416) )
  2597: 	ROM_RELOAD(               0x100000, 0x20000             )
  2598: 	ROM_LOAD( "epr14448.031", 0x180000, 0x080000, CRC(87ca1e8d) SHA1(739274171c13983a60d061176095645419dade49) )
  2599: 	ROM_LOAD( "epr14446.022", 0x280000, 0x080000, CRC(646ec2cb) SHA1(67e453f128ae227e22c68f55d0d3f5831fbeb2f9) )
  2600: 	ROM_LOAD( "epr14447.026", 0x380000, 0x080000, CRC(db1cfcbd) SHA1(c76eb2ced5571a548ad00709097dd272747127a2) )
  2601: 
  2602: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
  2603: 	ROM_LOAD32_BYTE( "mpr14362", 0x000000, 0x040000, CRC(fb1c4e79) SHA1(38ee23763b9e5bb62bbc54cab95041415404f0c4) )
  2604: 	ROM_LOAD32_BYTE( "mpr14361", 0x000002, 0x040000, CRC(e3204bda) SHA1(34157e80edd6d685bd5a5e23b1e0130a5f3d138a) )
  2605: 	ROM_LOAD32_BYTE( "mpr14360", 0x000001, 0x040000, CRC(c5e8da79) SHA1(662a6c146fe3d0b8763d845379c06d0ee6ced1ed) )
  2606: 	ROM_LOAD32_BYTE( "mpr14359", 0x000003, 0x040000, CRC(70305c68) SHA1(7a6a1bf7381eba8cc1c3897497b32ca63316972a) )
  2607: 
  2608: 	ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* sprites */
  2609: 	ROMX_LOAD( "mpr14370", 0x800000, 0x080000, CRC(fda78289) SHA1(3740affdcc738c50d07ff3e5b592bdf8a8b6be15) , ROM_SKIP(7) )
  2610: 	ROMX_LOAD( "mpr14369", 0x800001, 0x080000, CRC(7765116d) SHA1(9493148aa84adc90143cf638265d4c55bfb43990) , ROM_SKIP(7) )
  2611: 	ROMX_LOAD( "mpr14368", 0x800002, 0x080000, CRC(5744a30e) SHA1(98544fb234a8e93716e951d5414a490845e213c5) , ROM_SKIP(7) )
  2612: 	ROMX_LOAD( "mpr14367", 0x800003, 0x080000, CRC(77bb9003) SHA1(6370fdeab4967976840d752577cd860b9ce8efca) , ROM_SKIP(7) )
  2613: 	ROMX_LOAD( "mpr14366", 0x800004, 0x080000, CRC(21078e83) SHA1(f35f643c28aad3bf18cb9906b114c4f49b7b4cd1) , ROM_SKIP(7) )
  2614: 	ROMX_LOAD( "mpr14365", 0x800005, 0x080000, CRC(36913790) SHA1(4a447cffb44b023fe1441277db1e411d4cd119eb) , ROM_SKIP(7) )
  2615: 	ROMX_LOAD( "mpr14364", 0x800006, 0x080000, CRC(0fa12ecd) SHA1(6a34c7718edffbeddded8786e11cac181b485ebd) , ROM_SKIP(7) )
  2616: 	ROMX_LOAD( "mpr14363", 0x800007, 0x080000, CRC(f3427a56) SHA1(6a99d7432dfff35470ddcca5cfde36689a77e706) , ROM_SKIP(7) )
  2617: 
  2618: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* FG tiles */
  2619: 	/* populated at runtime */
  2620: ROM_END
  2621: 
  2622: ROM_START( dbzvrvs )
  2623: 	ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* v60 code */
  2624: 	ROM_LOAD16_WORD( "16543",   0x000000, 0x80000, CRC(7b9bc6f5) )
  2625: 	ROM_LOAD16_WORD( "16542.a", 0x080000, 0x80000, CRC(6449ab22) )
  2626: 
  2627: 	ROM_REGION( 0x480000, REGION_CPU2, 0 ) /* sound CPU */
  2628: 	ROM_LOAD( "16541", 0x00000, 0x40000, CRC(1d61d836) )
  2629: 	ROM_RELOAD(        0x100000, 0x40000             )
  2630: 	ROM_LOAD( "16540", 0x180000, 0x100000, CRC(b6f9bb43) )
  2631: 	ROM_LOAD( "16539", 0x280000, 0x100000, CRC(38c26418) )
  2632: 	ROM_LOAD( "16538", 0x380000, 0x100000, CRC(4d402c31) )
  2633: 
  2634: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
  2635: 	ROM_LOAD16_BYTE( "16544", 0x000000, 0x100000, CRC(f6c93dfc) )
  2636: 	ROM_LOAD16_BYTE( "16545", 0x000001, 0x100000, CRC(51748bac) )
  2637: 
  2638: 	ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* sprites */
  2639: 	ROMX_LOAD( "16546", 0x000000, 0x200000, CRC(96f4be31) , ROM_SKIP(6)|ROM_GROUPWORD )
  2640: 	ROMX_LOAD( "16548", 0x000002, 0x200000, CRC(00377f59) , ROM_SKIP(6)|ROM_GROUPWORD )
  2641: 	ROMX_LOAD( "16550", 0x000004, 0x200000, CRC(168e8966) , ROM_SKIP(6)|ROM_GROUPWORD )
  2642: 	ROMX_LOAD( "16553", 0x000006, 0x200000, CRC(c0a43009) , ROM_SKIP(6)|ROM_GROUPWORD )
  2643: 	ROMX_LOAD( "16547", 0x800000, 0x200000, CRC(50d328ed) , ROM_SKIP(6)|ROM_GROUPWORD )
  2644: 	ROMX_LOAD( "16549", 0x800002, 0x200000, CRC(a5802e9f) , ROM_SKIP(6)|ROM_GROUPWORD )
  2645: 	ROMX_LOAD( "16551", 0x800004, 0x200000, CRC(dede05fc) , ROM_SKIP(6)|ROM_GROUPWORD )
  2646: 	ROMX_LOAD( "16552", 0x800006, 0x200000, CRC(a31dae31) , ROM_SKIP(6)|ROM_GROUPWORD )
  2647: 
  2648: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* FG tiles */
  2649: 	/* populated at runtime */
  2650: ROM_END
  2651: 
  2652: ROM_START( darkedge )
  2653: 	ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* v60 code */
  2654: 	ROM_LOAD16_WORD( "epr15244.8", 0x000000, 0x80000, CRC(0db138cb) )
  2655: 	ROM_RELOAD     (               0x080000, 0x80000 )
  2656: 
  2657: 	ROM_REGION( 0x480000, REGION_CPU2, 0 ) /* sound CPU */
  2658: 	ROM_LOAD( "epr15243.36", 0x00000, 0x20000, CRC(08ca5f11) )
  2659: 	ROM_RELOAD(              0x100000, 0x20000             )
  2660: 	ROM_LOAD( "mpr15242.35", 0x180000, 0x100000, CRC(ffb7d917) )
  2661: 	ROM_LOAD( "mpr15240.24", 0x280000, 0x100000, CRC(867d59e8) )
  2662: 	ROM_LOAD( "mpr15241.34", 0x380000, 0x100000, CRC(8eccc4fe) )
  2663: 
  2664: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
  2665: 	ROM_LOAD16_BYTE( "mpr15248", 0x000000, 0x080000, CRC(185b308b) )
  2666: 	ROM_LOAD16_BYTE( "mpr15247", 0x000001, 0x080000, CRC(be21548c) )
  2667: 
  2668: 	ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* sprites */
  2669: 	ROMX_LOAD( "mpr15249.32", 0x000000, 0x200000, CRC(2b4371a8) , ROM_SKIP(6)|ROM_GROUPWORD )
  2670: 	ROMX_LOAD( "mpr15251.30", 0x000002, 0x200000, CRC(efe2d689) , ROM_SKIP(6)|ROM_GROUPWORD )
  2671: 	ROMX_LOAD( "mpr15253.28", 0x000004, 0x200000, CRC(8356ed01) , ROM_SKIP(6)|ROM_GROUPWORD )
  2672: 	ROMX_LOAD( "mpr15255.26", 0x000006, 0x200000, CRC(ff04a5b0) , ROM_SKIP(6)|ROM_GROUPWORD )
  2673: 	ROMX_LOAD( "mpr15250.31", 0x800000, 0x200000, CRC(c5cab71a) , ROM_SKIP(6)|ROM_GROUPWORD )
  2674: 	ROMX_LOAD( "mpr15252.29", 0x800002, 0x200000, CRC(f8885fea) , ROM_SKIP(6)|ROM_GROUPWORD )
  2675: 	ROMX_LOAD( "mpr15254.27", 0x800004, 0x200000, CRC(7765424b) , ROM_SKIP(6)|ROM_GROUPWORD )
  2676: 	ROMX_LOAD( "mpr15256.25", 0x800006, 0x200000, CRC(44c36b62) , ROM_SKIP(6)|ROM_GROUPWORD )
  2677: 
  2678: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* FG tiles */
  2679: 	/* populated at runtime */
  2680: ROM_END
  2681: 
  2682: ROM_START( jpark )
  2683: 	ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code */
  2684: 	ROM_LOAD( "ep16402a.8", 0x000000, 0x080000, CRC(c70db239) SHA1(fd79dfd1ce194fcc8ccb58117bc845cdfe9943b1) )
  2685: 	ROM_RELOAD     (               0x080000, 0x80000 )
  2686: 	ROM_LOAD16_BYTE( "ep16395.18", 0x100000, 0x080000, CRC(ac5a01d6) SHA1(df6bffdf5723cb8790a9c1c0ab271989a758bdd8) )
  2687: 	ROM_LOAD16_BYTE( "ep16394.9",  0x100001, 0x080000, CRC(c08c3a8a) SHA1(923cf256d863656336401fa75103b42298cb3822) )
  2688: 
  2689: 	ROM_REGION( 0x480000, REGION_CPU2, 0 ) /* sound CPU */
  2690: 	ROM_LOAD( "ep16399.36", 0x00000, 0x40000, CRC(b09b2fe3) SHA1(bf8d646bab65fcc4ece8c2bd9a3df389e5860ed6) )
  2691: 	ROM_RELOAD(             0x100000, 0x40000             )
  2692: 	ROM_LOAD( "mp16398.35", 0x180000, 0x100000, CRC(fa710ca6) SHA1(1fd625070eef5f99d7be07606aeeff9282e32532) )
  2693: 	ROM_LOAD( "mp16396.24", 0x280000, 0x100000, CRC(f69a2dc4) SHA1(3f02b10976852916c58e852f3161a857784fe36b) )
  2694: 	ROM_LOAD( "mp16397.34", 0x380000, 0x100000, CRC(6e96e0be) SHA1(422b783b72127b80a23043b2dd1c04f5772f436e) )
  2695: 
  2696: 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
  2697: 	ROM_LOAD16_BYTE( "mp16404.14", 0x000000, 0x200000, CRC(11283807) SHA1(99e465c3fc31e640740b8257a349e203f026754a) )
  2698: 	ROM_LOAD16_BYTE( "mp16403.5",  0x000001, 0x200000, CRC(02530a9b) SHA1(b43e1b47f74c801bfc599cbe893fb8dc13453dd0) )
  2699: 
  2700: 	ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* sprites */
  2701: 	ROMX_LOAD( "mp16405.32", 0x000000, 0x200000, CRC(b425f182) SHA1(66c6bd29dd3450db816b895c4c9c5208a66aae67) , ROM_SKIP(6)|ROM_GROUPWORD )
  2702: 	ROMX_LOAD( "mp16407.30", 0x000002, 0x200000, CRC(bc49ffd9) SHA1(a50ba7ddccfdfd7638c4041978b39c1559afbbb4) , ROM_SKIP(6)|ROM_GROUPWORD )
  2703: 	ROMX_LOAD( "mp16409.28", 0x000004, 0x200000, CRC(fe73660d) SHA1(ec1a3ea5303d2ccb9e327da18476969953626e1c) , ROM_SKIP(6)|ROM_GROUPWORD )
  2704: 	ROMX_LOAD( "mp16411.26", 0x000006, 0x200000, CRC(71cabbc5) SHA1(9760f57ef43eb251488dadd37711d5682d902434) , ROM_SKIP(6)|ROM_GROUPWORD )
  2705: 	ROMX_LOAD( "mp16406.31", 0x800000, 0x200000, CRC(b9ed73d6) SHA1(0dd22e7a21e95d84fc91acd742c737f96529f515) , ROM_SKIP(6)|ROM_GROUPWORD )
  2706: 	ROMX_LOAD( "mp16408.29", 0x800002, 0x200000, CRC(7b2f476b) SHA1(da99a9911982ba8aaef8c9aecc2977c9fd6da094) , ROM_SKIP(6)|ROM_GROUPWORD )
  2707: 	ROMX_LOAD( "mp16410.27", 0x800004, 0x200000, CRC(49c8f952) SHA1(f26b818711910b10bf520e5f849a1478a6b1d6e6) , ROM_SKIP(6)|ROM_GROUPWORD )
  2708: 	ROMX_LOAD( "mp16412.25", 0x800006, 0x200000, CRC(105dc26e) SHA1(fd2ef8c9fe1a78b4f9cc891a6fbd060184e58a1f) , ROM_SKIP(6)|ROM_GROUPWORD )
  2709: 
  2710: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* FG tiles */
  2711: 	/* populated at runtime */
  2712: 
  2713: 	ROM_REGION( 0x10000, REGION_CPU3, 0 ) /* unused */
  2714: 	ROM_LOAD( "ep13908.xx", 0x00000, 0x8000, CRC(6228c1d2) SHA1(bd37fe775534fb94c9af80546948ce5f9c47bbf5) ) /* cabinet movement */
  2715: ROM_END
  2716: 
  2717: ROM_START( slipstrm )
  2718: 	ROM_REGION( 0x200000, REGION_CPU1, 0 ) /* v60 code */
  2719: 	ROM_LOAD16_WORD( "slipstrm.u6", 0x000000, 0x80000, CRC(7d066307) SHA1(d87e04167263b435b77830db02ed58651ccc020c) )
  2720: 	ROM_RELOAD     (               0x080000, 0x80000 )
  2721: 	ROM_LOAD16_BYTE( "slipstrm.u14",0x100000, 0x80000, CRC(c3ff6309) SHA1(dcc857736fe0f15aa7909c3ee88a7e239c8f0228) )
  2722: 	ROM_LOAD16_BYTE( "slipstrm.u7", 0x100001, 0x80000, CRC(0e605c81) SHA1(47c64195cab9a07b234d5a375d26168e53ffaa17) )
  2723: 
  2724: 	ROM_REGION( 0x480000, REGION_CPU2, 0 ) /* sound CPU */
  2725: 	ROM_LOAD( "slipstrm.u35", 0x00000, 0x20000, CRC(0fee2278) SHA1(7533a03c3fc46d65dfdd07bddf1e6e0bbc368752) )
  2726: 	ROM_RELOAD(              0x100000, 0x20000             )
  2727: 	ROM_LOAD( "slipstrm.u31", 0x180000, 0x080000, CRC(ae7be5f2) SHA1(ba089355e64864435bcc3b0c208e4bce1ea66295) )
  2728: 
  2729: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* tiles */
  2730: 	ROM_LOAD32_BYTE( "slipstrm.u38", 0x000000, 0x080000, CRC(3cbb2d0b) SHA1(b94006347b72cd60a889b0e279f62f677cedfd2e) )
  2731: 	ROM_LOAD32_BYTE( "slipstrm.u34", 0x000002, 0x080000, CRC(4167be55) SHA1(96b34d311b318c00c3fad917e341589a70ba0a15) )
  2732: 	ROM_LOAD32_BYTE( "slipstrm.u29", 0x000001, 0x080000, CRC(52c4bb85) SHA1(4fbee1072a19c75c25b5fd269acc75640923d69c) )
  2733: 	ROM_LOAD32_BYTE( "slipstrm.u25", 0x000003, 0x080000, CRC(4948604a) SHA1(d5a1b9781fef7976a59a0af9b755a04fcacf9381) )
  2734: 
  2735: 	ROM_REGION( 0x1000000, REGION_GFX2, 0 ) /* sprites */
  2736: 	ROMX_LOAD( "slipstrm.u36", 0x800000, 0x80000, CRC(cffe9e0d) SHA1(5272d54ff142de927a9abd61f3646e963c7d22c4) , ROM_SKIP(7) )
  2737: 	ROMX_LOAD( "slipstrm.u32", 0x800001, 0x80000, CRC(4ebd1383) SHA1(ce35f4d15e7904bfde55e58cdde925cba8002763) , ROM_SKIP(7) )
  2738: 	ROMX_LOAD( "slipstrm.u27", 0x800002, 0x80000, CRC(b3cf4fe2) SHA1(e13199522e1e3e8b9cfe72cc29b33f25dad542ef) , ROM_SKIP(7) )
  2739: 	ROMX_LOAD( "slipstrm.u23", 0x800003, 0x80000, CRC(c6345391) SHA1(155758097911ffca0c5c0b2a24a8033339dcfcbb) , ROM_SKIP(7) )
  2740: 	ROMX_LOAD( "slipstrm.u37", 0x800004, 0x80000, CRC(2de4288e) SHA1(8e794f79f506293edb7609187a7908516ce76849) , ROM_SKIP(7) )
  2741: 	ROMX_LOAD( "slipstrm.u33", 0x800005, 0x80000, CRC(6cfb74fb) SHA1(b74c886959910cd069427418525b23300a9b7b18) , ROM_SKIP(7) )
  2742: 	ROMX_LOAD( "slipstrm.u28", 0x800006, 0x80000, CRC(53234bf4) SHA1(1eca538dcb86e44c31310ab1ab42a2b66b69c8fe) , ROM_SKIP(7) )
  2743: 	ROMX_LOAD( "slipstrm.u24", 0x800007, 0x80000, CRC(22c129cf) SHA1(0f64680511a357038f6a556253c13fbb5417dd1a) , ROM_SKIP(7) )
  2744: 
  2745: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* FG tiles */
  2746: 	/* populated at runtime */
  2747: ROM_END
  2748: 
  2749: static WRITE16_HANDLER( trap_w )
  2750: {
  2751: //	printf("Write %x to magic (mask=%x) at PC=%x\n", data, mem_mask, activecpu_get_pc());
  2752: }
  2753: 
  2754: static DRIVER_INIT ( s32 )
  2755: {
  2756: 	system32_use_default_eeprom = EEPROM_SYS32_0;
  2757: 	multi32 = 0;
  2758: 	system32_temp_kludge = 0;
  2759: 	system32_mixerShift = 4;
  2760: 
  2761: 	install_mem_write16_handler(0, 0x20f4e0, 0x20f4e1, trap_w);
  2762: }
  2763: 
  2764: static DRIVER_INIT ( driving )
  2765: {
  2766: 	multi32 = 0;
  2767: 
  2768: 	install_mem_read16_handler (0, 0xc00050, 0xc00057, system32_io_analog_r);
  2769: 	install_mem_write16_handler(0, 0xc00050, 0xc00057, system32_io_analog_w);
  2770: }
  2771: 
  2772: static DRIVER_INIT ( alien3 )
  2773: {
  2774: 	system32_use_default_eeprom = EEPROM_ALIEN3;
  2775: 	multi32 = 0;
  2776: 	system32_temp_kludge = 0;
  2777: 	system32_mixerShift = 4;
  2778: 
  2779: 	install_mem_read16_handler(0, 0xc00050, 0xc00051, sys32_gun_p1_x_c00050_r);
  2780: 	install_mem_read16_handler(0, 0xc00052, 0xc00053, sys32_gun_p1_y_c00052_r);
  2781: 	install_mem_read16_handler(0, 0xc00054, 0xc00055, sys32_gun_p2_x_c00054_r);
  2782: 	install_mem_read16_handler (0, 0xc00056, 0xc00057, sys32_gun_p2_y_c00056_r);
  2783: 
  2784: 	install_mem_write16_handler(0, 0xc00050, 0xc00051, sys32_gun_p1_x_c00050_w);
  2785: 	install_mem_write16_handler(0, 0xc00052, 0xc00053, sys32_gun_p1_y_c00052_w);
  2786: 	install_mem_write16_handler(0, 0xc00054, 0xc00055, sys32_gun_p2_x_c00054_w);
  2787: 	install_mem_write16_handler(0, 0xc00056, 0xc00057, sys32_gun_p2_y_c00056_w);
  2788: }
  2789: 
  2790: static DRIVER_INIT ( brival )
  2791: {
  2792: 	system32_use_default_eeprom = EEPROM_SYS32_0;
  2793: 	multi32 = 0;
  2794: 	system32_temp_kludge = 0;
  2795: 	system32_mixerShift = 5;
  2796: 
  2797: 	install_mem_read16_handler (0, 0x20ba00, 0x20ba07, brival_protection_r);
  2798: 	install_mem_write16_handler(0, 0xa000000, 0xa00fff, brival_protboard_w);
  2799: }
  2800: 
  2801: static DRIVER_INIT ( ga2 )
  2802: {
  2803: 	system32_use_default_eeprom = EEPROM_SYS32_0;
  2804: 	multi32 = 0;
  2805: 	system32_temp_kludge = 0;
  2806: 	system32_mixerShift = 3;
  2807: 
  2808: 	/* Protection - the game expects a string from a RAM area shared with the protection device */
  2809: 	/* still problems with enemies in level2, protection related? */
  2810: 	install_mem_read16_handler (0, 0xa00000, 0xa0001f, ga2_sprite_protection_r); /* main sprite colours */
  2811: 	install_mem_read16_handler (0, 0xa00100, 0xa0015f, ga2_wakeup_protection_r);
  2812: }
  2813: 
  2814: static DRIVER_INIT ( spidey )
  2815: {
  2816: 	system32_use_default_eeprom = EEPROM_SYS32_0;
  2817: 	multi32 = 0;
  2818: 	system32_mixerShift = 3;
  2819: }
  2820: 
  2821: static DRIVER_INIT ( f1sl )
  2822: {
  2823: 	system32_use_default_eeprom = EEPROM_SYS32_0;
  2824: 	multi32 = 0;
  2825: 	system32_mixerShift = 6;
  2826: 	init_driving();
  2827: }
  2828: 
  2829: static DRIVER_INIT ( arf )
  2830: {
  2831: 	system32_use_default_eeprom = EEPROM_SYS32_0;
  2832: 	multi32 = 0;
  2833: 	system32_temp_kludge = 0;
  2834: 	system32_mixerShift = 4;
  2835: 
  2836: 	install_mem_read16_handler (0, 0xa00000, 0xa000ff, arabfgt_protboard_r);
  2837: 	install_mem_read16_handler (0, 0xa00100, 0xa0011f, arf_wakeup_protection_r);
  2838: 	install_mem_write16_handler(0, 0xa00000, 0xa00fff, arabfgt_protboard_w);
  2839: }
  2840: 
  2841: static DRIVER_INIT ( holo )
  2842: {
  2843: 	system32_use_default_eeprom = EEPROM_SYS32_0;
  2844: 	multi32 = 0;
  2845: 	system32_mixerShift = 4;
  2846: 	system32_temp_kludge = 1;	// holoseum requires the tx tilemap to be flipped
  2847: }
  2848: 
  2849: static DRIVER_INIT ( sonic )
  2850: {
  2851: 	system32_use_default_eeprom = EEPROM_SYS32_0;
  2852: 	multi32 = 0;
  2853: 	system32_mixerShift = 5;
  2854: 
  2855: 	install_mem_write16_handler(0, 0xc00040, 0xc00055, sonic_track_reset_w);
  2856: 	install_mem_read16_handler (0, 0xc00040, 0xc00055, sonic_track_r);
  2857: }
  2858: 
  2859: static DRIVER_INIT ( radm )
  2860: {
  2861: 	system32_use_default_eeprom = EEPROM_RADM;
  2862: 	multi32 = 0;
  2863: 	system32_mixerShift = 5;
  2864: 
  2865: 	init_driving();
  2866: }
  2867: 
  2868: static DRIVER_INIT ( radr )
  2869: {
  2870: 
  2871: 	system32_use_default_eeprom = EEPROM_RADR;
  2872: 	multi32 = 0;
  2873: 	system32_mixerShift = 5;
  2874: 
  2875: 	init_driving();
  2876: }
  2877: 
  2878: static DRIVER_INIT ( f1en )
  2879: {
  2880: 	system32_use_default_eeprom = EEPROM_SYS32_0;
  2881: 	multi32 = 0;
  2882: 	system32_mixerShift = 5;
  2883: 
  2884: 	init_driving();
  2885: }
  2886: 
  2887: static DRIVER_INIT ( jpark )
  2888: {
  2889: 
  2890: 	/* Temp. Patch until we emulate the 'Drive Board', thanks to Malice */
  2891: 	data16_t *pROM = (data16_t *)memory_region(REGION_CPU1);
  2892: 	pROM[0xC15A8/2] = 0xCD70;
  2893: 	pROM[0xC15AA/2] = 0xD8CD;
  2894: 
  2895: 	system32_mixerShift = 6;
  2896: 	multi32 = 0;
  2897: 
  2898: 	install_mem_read16_handler(0, 0xc00050, 0xc00051, sys32_gun_p1_x_c00050_r);
  2899: 	install_mem_read16_handler(0, 0xc00052, 0xc00053, sys32_gun_p1_y_c00052_r);
  2900: 	install_mem_read16_handler(0, 0xc00054, 0xc00055, sys32_gun_p2_x_c00054_r);
  2901: 	install_mem_read16_handler (0, 0xc00056, 0xc00057, sys32_gun_p2_y_c00056_r);
  2902: 
  2903: 	install_mem_write16_handler(0, 0xc00050, 0xc00051, sys32_gun_p1_x_c00050_w);
  2904: 	install_mem_write16_handler(0, 0xc00052, 0xc00053, sys32_gun_p1_y_c00052_w);
  2905: 	install_mem_write16_handler(0, 0xc00054, 0xc00055, sys32_gun_p2_x_c00054_w);
  2906: 	install_mem_write16_handler(0, 0xc00056, 0xc00057, sys32_gun_p2_y_c00056_w);
  2907: }
  2908: 
  2909: /* this one is pretty much ok since it doesn't use backgrounds tilemaps */
  2910: GAME( 1992, holo,     0,        system32, holo,     holo,     ROT0, "Sega", "Holosseum" ) /* fine */
  2911: 
  2912: /* these have a range of issues, mainly with the backgrounds */
  2913: GAMEX(1994, svf,      0,        system32, svf,      s32,      ROT0, "Sega", "Super Visual Football", GAME_IMPERFECT_GRAPHICS )
  2914: GAMEX(1994, svs,	  svf,		system32, svf,		s32,	  ROT0, "Sega", "Super Visual Soccer (US?)", GAME_IMPERFECT_GRAPHICS )
  2915: GAMEX(1994, jleague,  svf,      system32, svf,      s32,      ROT0, "Sega", "The J.League 94 (Japan)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION )
  2916: GAMEX(1992, brival,   0,        sys32_hi, brival,   brival,   ROT0, "Sega", "Burning Rival (Japan)", GAME_IMPERFECT_GRAPHICS )
  2917: GAMEX(1990, radm,     0,        system32, radm,     radm,     ROT0, "Sega", "Rad Mobile", GAME_IMPERFECT_GRAPHICS )
  2918: GAMEX(1991, radr,     0,        sys32_hi, radr,     radr,     ROT0, "Sega", "Rad Rally", GAME_IMPERFECT_GRAPHICS )
  2919: GAMEX(1991, f1en,     0,        system32, f1en,     f1en,     ROT0, "Sega", "F1 Exhaust Note", GAME_IMPERFECT_GRAPHICS )
  2920: GAMEX(1993, alien3,   0,        system32, alien3,   alien3,   ROT0, "Sega", "Alien 3", GAME_IMPERFECT_GRAPHICS )
  2921: GAMEX(1992, sonic,    0,        sys32_hi, sonic,    sonic,    ROT0, "Sega", "Sonic (Japan rev. C)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION )
  2922: GAMEX(1992, sonicp,   sonic,    sys32_hi, sonic,    sonic,    ROT0, "Sega", "Sonic (Japan prototype)", GAME_IMPERFECT_GRAPHICS )
  2923: GAMEX(1994, jpark,    0,        jpark,    jpark,    jpark,    ROT0, "Sega", "Jurassic Park", GAME_IMPERFECT_GRAPHICS )
  2924: GAMEX(1992, ga2,      0,        system32, ga2,      ga2,      ROT0, "Sega", "Golden Axe - The Revenge of Death Adder (US)", GAME_IMPERFECT_GRAPHICS )
  2925: GAMEX(1992, ga2j,     ga2,      system32, ga2j,     ga2,      ROT0, "Sega", "Golden Axe - The Revenge of Death Adder (Japan)", GAME_IMPERFECT_GRAPHICS )
  2926: GAMEX(1991, spidey,   0,        system32, spidey,   spidey,   ROT0, "Sega", "Spiderman (US)", GAME_IMPERFECT_GRAPHICS )
  2927: GAMEX(1991, spideyj,  spidey,   system32, spideyj,  spidey,   ROT0, "Sega", "Spiderman (Japan)", GAME_IMPERFECT_GRAPHICS )
  2928: GAMEX(1991, arabfgt,  0,        system32, spidey,   arf,      ROT0, "Sega", "Arabian Fight", GAME_IMPERFECT_GRAPHICS )
  2929: 
  2930: /* not really working */
  2931: GAMEX(199?, f1lap,    0,        system32, system32, f1sl,     ROT0, "Sega", "F1 Super Lap", GAME_NOT_WORKING ) /* blank screen, also requires 2 linked sys32 boards to function */
  2932: GAMEX(199?, dbzvrvs,  0,        sys32_hi, system32, s32,      ROT0, "Sega", "Dragon Ball Z VRVS", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION) /* does nothing useful, known to be heavily protected */
  2933: GAMEX(1992, darkedge, 0,        sys32_hi, system32, s32,      ROT0, "Sega", "Dark Edge", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION ) /* locks up on some levels, sprites are submerged, protected */
  2934: GAMEX(199?, slipstrm, 0,        sys32_hi, f1en,     f1en,     ROT0, "Capcom", "Slipstream", GAME_NOT_WORKING ) /* unhandled v60 opcodes .... */
  2935: /* Air Rescue */
  2936: /* Loony Toons (maybe) */
  2937: 




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