QuarterArcade Coin-Op Tech Net

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

Coin-Op : Arcade : Thunder Cross II : VM Driver Source

Source Listing


     1: /***************************************************************************
     2: 
     3: This driver contains several Konami 68000 based games. For the most part they
     4: run on incompatible boards, but since 90% of the work is done by the custom
     5: ICs emulated in vidhrdw/konamiic.c, we can just as well keep them all
     6: together.
     7: 
     8: driver by Nicola Salmoria
     9: 
    10: Notes:
    11: - Golfing Greats has a peculiar way to know where the ball is laying: the
    12:   hardware latches the color of roz pixel at the center (more or less) of the
    13:   screen, and uses that to determine if it's water, fairway etc.
    14: 
    15: TODO:
    16: 
    17: - glfgretj is in worse shape than glfgreat, the latter is at least playable,
    18:   the former hangs.
    19: - glfgretj uses a special controller.
    20:   1 "shot controller (with stance selection button on the top of it)" and 3
    21:   buttons for shot direction (right/left) and club selection.
    22:   Twist the "shot controller" to adjust shot power, then release it.
    23:   The controller returns to its default position by internal spring.
    24: - prmrsocr: when the field rotates before the penalty kicks, parts of the
    25:   053936 tilemap that shouldn't be seen are visible. Maybe the tilemap ROM is
    26:   banked, or there are controls to clip the visible region (registers 0x06 and
    27:   0x07 of the 053936) or both.
    28: - detatwin: sprites are left on screen during attract mode
    29: - a garbage sprite is STILL sticking on screen from time to time in ssriders.
    30: - sprite colors / zoomed placement in tmnt2 (protection)
    31: - I don't think I'm handling the palette dim control in tmnt2/ssriders correctly.
    32:   TMNT2 stays dimmed most of the time.
    33: - is IPT_VBLANK really vblank or something else? Investigate.
    34: - sprite lag, quite evident in lgtnfght and mia but also in the others. Also
    35:   see the left corner of the wall in punkshot DownTown level
    36: - some slowdowns in lgtnfght when there are many sprites on screen - vblank issue?
    37: 
    38: ***************************************************************************/
    39: 
    40: #include "driver.h" 
    41: #include "vidhrdw/generic.h" 
    42: #include "vidhrdw/konamiic.h" 
    43: #include "machine/eeprom.h" 
    44: #include "cpu/m68000/m68000.h" 
    45: #include "cpu/z80/z80.h" 
    46: 
    47: 
    48: WRITE16_HANDLER( tmnt_paletteram_word_w );
    49: WRITE16_HANDLER( tmnt_0a0000_w );
    50: WRITE16_HANDLER( punkshot_0a0020_w );
    51: WRITE16_HANDLER( lgtnfght_0a0018_w );
    52: WRITE16_HANDLER( detatwin_700300_w );
    53: READ16_HANDLER( glfgreat_rom_r );
    54: WRITE16_HANDLER( glfgreat_122000_w );
    55: WRITE16_HANDLER( ssriders_1c0300_w );
    56: WRITE16_HANDLER( prmrsocr_122000_w );
    57: WRITE16_HANDLER( tmnt_priority_w );
    58: READ16_HANDLER( glfgreat_ball_r );
    59: VIDEO_START( sunsetbl );
    60: VIDEO_START( cuebrckj );
    61: VIDEO_START( mia );
    62: VIDEO_START( tmnt );
    63: VIDEO_START( punkshot );
    64: VIDEO_START( lgtnfght );
    65: VIDEO_START( detatwin );
    66: VIDEO_START( glfgreat );
    67: VIDEO_START( thndrx2 );
    68: VIDEO_START( prmrsocr );
    69: VIDEO_UPDATE( mia );
    70: VIDEO_UPDATE( tmnt );
    71: VIDEO_UPDATE( punkshot );
    72: VIDEO_UPDATE( lgtnfght );
    73: VIDEO_UPDATE( glfgreat );
    74: VIDEO_UPDATE( tmnt2 );
    75: VIDEO_UPDATE( thndrx2 );
    76: static int tmnt_soundlatch;
    77: static int cbj_snd_irqlatch, cbj_nvram_bank;
    78: static data16_t cbj_nvram[0x400*0x20];	// 32k paged in a 1k window
    79: 
    80: static READ16_HANDLER( K052109_word_noA12_r )
    81: {
    82: 	/* some games have the A12 line not connected, so the chip spans */
    83: 	/* twice the memory range, with mirroring */
    84: 	offset = ((offset & 0x3000) >> 1) | (offset & 0x07ff);
    85: 	return K052109_word_r(offset,mem_mask);
    86: }
    87: 
    88: static WRITE16_HANDLER( K052109_word_noA12_w )
    89: {
    90: 	/* some games have the A12 line not connected, so the chip spans */
    91: 	/* twice the memory range, with mirroring */
    92: 	offset = ((offset & 0x3000) >> 1) | (offset & 0x07ff);
    93: 	K052109_word_w(offset,data,mem_mask);
    94: }
    95: 
    96: WRITE16_HANDLER( punkshot_K052109_word_w )
    97: {
    98: 	/* it seems that a word write is supposed to affect only the MSB. The */
    99: 	/* "ROUND 1" text in punkshtj goes lost otherwise. */
   100: 	if (ACCESSING_MSB)
   101: 		K052109_w(offset,(data >> 8) & 0xff);
   102: 	else if (ACCESSING_LSB)
   103: 		K052109_w(offset + 0x2000,data & 0xff);
   104: }
   105: 
   106: static WRITE16_HANDLER( punkshot_K052109_word_noA12_w )
   107: {
   108: 	/* some games have the A12 line not connected, so the chip spans */
   109: 	/* twice the memory range, with mirroring */
   110: 	offset = ((offset & 0x3000) >> 1) | (offset & 0x07ff);
   111: 	punkshot_K052109_word_w(offset,data,mem_mask);
   112: }
   113: 
   114: 
   115: /* the interface with the 053245 is weird. The chip can address only 0x800 bytes */
   116: /* of RAM, but they put 0x4000 there. The CPU can access them all. Address lines */
   117: /* A1, A5 and A6 don't go to the 053245. */
   118: static READ16_HANDLER( K053245_scattered_word_r )
   119: {
   120: 	if (offset & 0x0031)
   121: 		return spriteram16[offset];
   122: 	else
   123: 	{
   124: 		offset = ((offset & 0x000e) >> 1) | ((offset & 0x1fc0) >> 3);
   125: 		return K053245_word_r(offset,mem_mask);
   126: 	}
   127: }
   128: 
   129: static WRITE16_HANDLER( K053245_scattered_word_w )
   130: {
   131: 	if (offset & 0x0031)
   132: 		COMBINE_DATA(spriteram16 + offset);
   133: 	else
   134: 	{
   135: 		offset = ((offset & 0x000e) >> 1) | ((offset & 0x1fc0) >> 3);
   136: //if ((offset&0xf) == 0)
   137: //	logerror("%04x: write %02x to spriteram %04x\n",activecpu_get_pc(),data,offset);
   138: 		K053245_word_w(offset,data,mem_mask);
   139: 	}
   140: }
   141: 
   142: static READ16_HANDLER( K053244_word_noA1_r )
   143: {
   144: 	offset &= ~1;	/* handle mirror address */
   145: 
   146: 	return K053244_r(offset + 1) | (K053244_r(offset) << 8);
   147: }
   148: 
   149: static WRITE16_HANDLER( K053244_word_noA1_w )
   150: {
   151: 	offset &= ~1;	/* handle mirror address */
   152: 
   153: 	if (ACCESSING_MSB)
   154: 		K053244_w(offset,(data >> 8) & 0xff);
   155: 	if (ACCESSING_LSB)
   156: 		K053244_w(offset + 1,data & 0xff);
   157: }
   158: 
   159: static INTERRUPT_GEN(cbj_interrupt)
   160: {
   161: 	// cheap IRQ multiplexing to avoid losing sound IRQs
   162: 	switch (cpu_getiloops())
   163: 	{
   164: 		case 0:
   165: 			cpu_set_irq_line(0, MC68000_IRQ_5, HOLD_LINE);
   166: 			break;
   167: 
   168: 		default:
   169: 			if (cbj_snd_irqlatch)
   170: 				cpu_set_irq_line(0, MC68000_IRQ_6, HOLD_LINE);
   171: 			break;
   172: 	}
   173: }
   174: 
   175: static INTERRUPT_GEN( punkshot_interrupt )
   176: {
   177: 	if (K052109_is_IRQ_enabled()) irq4_line_hold();
   178: 
   179: }
   180: 
   181: static INTERRUPT_GEN( lgtnfght_interrupt )
   182: {
   183: 	if (K052109_is_IRQ_enabled()) irq5_line_hold();
   184: 
   185: }
   186: 
   187: 
   188: 
   189: static WRITE16_HANDLER( tmnt_sound_command_w )
   190: {
   191: 	if (ACCESSING_LSB)
   192: 		soundlatch_w(0,data & 0xff);
   193: }
   194: 
   195: static READ16_HANDLER( punkshot_sound_r )
   196: {
   197: 	/* If the sound CPU is running, read the status, otherwise
   198: 	   just make it pass the test */
   199: 	if (Machine->sample_rate != 0) 	return K053260_0_r(2 + offset);
   200: 	else return 0x80;
   201: }
   202: 
   203: static READ16_HANDLER( detatwin_sound_r )
   204: {
   205: 	/* If the sound CPU is running, read the status, otherwise
   206: 	   just make it pass the test */
   207: 	if (Machine->sample_rate != 0) 	return K053260_0_r(2 + offset);
   208: 	else return offset ? 0xfe : 0x00;
   209: }
   210: 
   211: static READ16_HANDLER( glfgreat_sound_r )
   212: {
   213: 	/* If the sound CPU is running, read the status, otherwise
   214: 	   just make it pass the test */
   215: 	if (Machine->sample_rate != 0) 	return K053260_0_r(2 + offset) << 8;
   216: 	else return 0;
   217: }
   218: 
   219: static WRITE16_HANDLER( glfgreat_sound_w )
   220: {
   221: 	if (ACCESSING_MSB)
   222: 		K053260_0_w(offset, (data >> 8) & 0xff);
   223: 
   224: 	if (offset)
   225: 		cpu_set_irq_line_and_vector(1,0,HOLD_LINE,0xff);
   226: }
   227: 
   228: static READ16_HANDLER( prmrsocr_sound_r )
   229: {
   230: 	return soundlatch3_r(0);
   231: }
   232: 
   233: static WRITE16_HANDLER( prmrsocr_sound_cmd_w )
   234: {
   235: 	if (ACCESSING_LSB)
   236: 	{
   237: 		data &= 0xff;
   238: 		if (offset == 0) soundlatch_w(0,data);
   239: 		else soundlatch2_w(0,data);
   240: 
   241: 		/* If the sound CPU is not running, make the tests pass anyway */
   242: 		if (offset == 0 && !Machine->sample_rate)
   243: 		{
   244: 			if (data == 0xfe)	/* ROM & RAM test */
   245: 				soundlatch3_w(0,0x0f);
   246: 			if (data == 0xfc)	/* sample ROM test */
   247: 				soundlatch3_w(0,0x10);
   248: 		}
   249: 	}
   250: }
   251: 
   252: static WRITE16_HANDLER( prmrsocr_sound_irq_w )
   253: {
   254: 	cpu_set_irq_line_and_vector(1,0,HOLD_LINE,0xff);
   255: }
   256: 
   257: static WRITE_HANDLER( prmrsocr_s_bankswitch_w )
   258: {
   259: 	data8_t *rom = memory_region(REGION_CPU2) + 0x10000;
   260: 
   261: 	cpu_setbank(1,rom + (data & 7) * 0x4000);
   262: }
   263: 
   264: 
   265: static READ16_HANDLER( tmnt2_sound_r )
   266: {
   267: 	/* If the sound CPU is running, read the status, otherwise
   268: 	   just make it pass the test */
   269: 	if (Machine->sample_rate != 0) 	return K053260_0_r(2 + offset);
   270: 	else return offset ? 0x00 : 0x80;
   271: }
   272: 
   273: READ_HANDLER( tmnt_sres_r )
   274: {
   275: 	return tmnt_soundlatch;
   276: }
   277: 
   278: WRITE_HANDLER( tmnt_sres_w )
   279: {
   280: 	/* bit 1 resets the UPD7795C sound chip */
   281: 	UPD7759_reset_w(0, data & 2);
   282: 
   283: 	/* bit 2 plays the title music */
   284: 	if (data & 0x04)
   285: 	{
   286: 		if (!sample_playing(0))	sample_start(0,0,0);
   287: 	}
   288: 	else sample_stop(0);
   289: 	tmnt_soundlatch = data;
   290: }
   291: 
   292: 
   293: static int tmnt_decode_sample(const struct MachineSound *msound)
   294: {
   295: 	int i;
   296: 	signed short *dest;
   297: 	unsigned char *source = memory_region(REGION_SOUND3);
   298: 	struct GameSamples *samples;
   299: 
   300: 
   301: 	if ((Machine->samples = auto_malloc(sizeof(struct GameSamples))) == NULL)
   302: 		return 1;
   303: 
   304: 	samples = Machine->samples;
   305: 
   306: 	if ((samples->sample[0] = auto_malloc(sizeof(struct GameSample) + (0x40000)*sizeof(short))) == NULL)
   307: 		return 1;
   308: 
   309: 	samples->sample[0]->length = 0x40000*2;
   310: 	samples->sample[0]->smpfreq = 20000;	/* 20 kHz */
   311: 	samples->sample[0]->resolution = 16;
   312: 	dest = (signed short *)samples->sample[0]->data;
   313: 	samples->total = 1;
   314: 
   315: 	/*	Sound sample for TMNT.D05 is stored in the following mode (ym3012 format):
   316: 	 *
   317: 	 *	Bit 15-13:	Exponent (2 ^ x)
   318: 	 *	Bit 12-3 :	Sound data (10 bit)
   319: 	 *
   320: 	 *	(Sound info courtesy of Dave <dave@finalburn.com>)
   321: 	 */
   322: 
   323: 	for (i = 0;i < 0x40000;i++)
   324: 	{
   325: 		int val = source[2*i] + source[2*i+1] * 256;
   326: 		int exp = val >> 13;
   327: 
   328: 	  	val = (val >> 3) & (0x3ff);	/* 10 bit, Max Amplitude 0x400 */
   329: 		val -= 0x200;					/* Centralize value	*/
   330: 
   331: 		val <<= (exp-3);
   332: 
   333: 		dest[i] = val;
   334: 	}
   335: 
   336: 	/*	The sample is now ready to be used.  It's a 16 bit, 22kHz sample.
   337: 	 */
   338: 
   339: 	return 0;
   340: }
   341: 
   342: #if 0 
   343: static int sound_nmi_enabled;
   344: 
   345: static void sound_nmi_callback( int param )
   346: {
   347: 	cpu_set_nmi_line( 1, ( sound_nmi_enabled ) ? CLEAR_LINE : ASSERT_LINE );
   348: 
   349: 	sound_nmi_enabled = 0;
   350: }
   351: #endif 
   352: 
   353: static void nmi_callback(int param)
   354: {
   355: 	cpu_set_nmi_line(1,ASSERT_LINE);
   356: }
   357: 
   358: static WRITE_HANDLER( sound_arm_nmi_w )
   359: {
   360: //	sound_nmi_enabled = 1;
   361: 	cpu_set_nmi_line(1,CLEAR_LINE);
   362: 	timer_set(TIME_IN_USEC(50),0,nmi_callback);	/* kludge until the K053260 is emulated correctly */
   363: }
   364: 
   365: 
   366: 
   367: 
   368: 
   369: static READ16_HANDLER( punkshot_kludge_r )
   370: {
   371: 	/* I don't know what's going on here; at one point, the code reads location */
   372: 	/* 0xffffff, and returning 0 causes the game to mess up - locking up in a */
   373: 	/* loop where the ball is continuously bouncing from the basket. Returning */
   374: 	/* a random number seems to prevent that. */
   375: 	return rand();
   376: }
   377: 
   378: 
   379: /* protection simulation derived from a bootleg */
   380: static READ16_HANDLER( ssriders_protection_r )
   381: {
   382:     int data = cpu_readmem24bew_word(0x105a0a);
   383:     int cmd = cpu_readmem24bew_word(0x1058fc);
   384: 
   385: 	switch (cmd)
   386: 	{
   387: 		case 0x100b:
   388: 			/* read twice in a row, first result discarded? */
   389: 			/* data is always == 0x75c */
   390: 			return 0x0064;
   391: 
   392: 		case 0x6003:
   393: 			/* start of level */
   394: 			return data & 0x000f;
   395: 
   396: 		case 0x6004:
   397: 			return data & 0x001f;
   398: 
   399: 		case 0x6000:
   400: 			return data & 0x0001;
   401: 
   402: 		case 0x0000:
   403: 			return data & 0x00ff;
   404: 
   405: 		case 0x6007:
   406: 			return data & 0x00ff;
   407: 
   408: 		case 0x8abc:
   409: 			/* collision table */
   410: 			data = -cpu_readmem24bew_word(0x105818);
   411: 			data = ((data / 8 - 4) & 0x1f) * 0x40;
   412: 			data += ((cpu_readmem24bew_word(0x105cb0) +
   413: 						256*K052109_r(0x1a01) + K052109_r(0x1a00)) / 8 + 12) & 0x3f;
   414: 			return data;
   415: 
   416: 		default:
   417: 			usrintf_showmessage("%06x: unknown protection read",activecpu_get_pc());
   418: 			logerror("%06x: read 1c0800 (D7=%02x 1058fc=%02x 105a0a=%02x)\n",activecpu_get_pc(),activecpu_get_reg(M68K_D7),cmd,data);
   419: 			return 0xffff;
   420:     }
   421: }
   422: 
   423: static WRITE16_HANDLER( ssriders_protection_w )
   424: {
   425: 	if (offset == 1)
   426: 	{
   427: 		int logical_pri,hardware_pri;
   428: 
   429: 		/* create sprite priority attributes */
   430: 		hardware_pri = 1;
   431: 		for (logical_pri = 1;logical_pri < 0x100;logical_pri <<= 1)
   432: 		{
   433: 			int i;
   434: 
   435: 			for (i = 0;i < 128;i++)
   436: 			{
   437: 				if ((cpu_readmem24bew_word(0x180006 + 128*i) >> 8) == logical_pri)
   438: 				{
   439: 					K053245_word_w(8*i,hardware_pri,0xff00);
   440: 					hardware_pri++;
   441: 				}
   442: 			}
   443: 		}
   444: 	}
   445: }
   446: 
   447: 
   448: 
   449: /***************************************************************************
   450: 
   451:   EEPROM
   452: 
   453: ***************************************************************************/
   454: 
   455: static int init_eeprom_count;
   456: 
   457: 
   458: static struct EEPROM_interface eeprom_interface =
   459: {
   460: 	7,				/* address bits */
   461: 	8,				/* data bits */
   462: 	"011000",		/*  read command */
   463: 	"011100",		/* write command */
   464: 	0,				/* erase command */
   465: 	"0100000000000",/* lock command */
   466: 	"0100110000000" /* unlock command */
   467: };
   468: 
   469: static NVRAM_HANDLER( eeprom )
   470: {
   471: 	if (read_or_write)
   472: 		EEPROM_save(file);
   473: 	else
   474: 	{
   475: 		EEPROM_init(&eeprom_interface);
   476: 
   477: 		if (file)
   478: 		{
   479: 			init_eeprom_count = 0;
   480: 			EEPROM_load(file);
   481: 		}
   482: 		else
   483: 			init_eeprom_count = 10;
   484: 	}
   485: }
   486: 
   487: static READ16_HANDLER( detatwin_coin_r )
   488: {
   489: 	int res;
   490: 	static int toggle;
   491: 
   492: 	/* bit 3 is service button */
   493: 	/* bit 6 is ??? VBLANK? OBJMPX? */
   494: 	res = input_port_2_word_r(0,0);
   495: 	if (init_eeprom_count)
   496: 	{
   497: 		init_eeprom_count--;
   498: 		res &= 0xf7;
   499: 	}
   500: 	toggle ^= 0x40;
   501: 	return res ^ toggle;
   502: }
   503: 
   504: static READ16_HANDLER( detatwin_eeprom_r )
   505: {
   506: 	int res;
   507: 
   508: 	/* bit 0 is EEPROM data */
   509: 	/* bit 1 is EEPROM ready */
   510: 	res = EEPROM_read_bit() | input_port_3_word_r(0,0);
   511: 	return res;
   512: }
   513: 
   514: static READ16_HANDLER( ssriders_eeprom_r )
   515: {
   516: 	int res;
   517: 	static int toggle;
   518: 
   519: 	/* bit 0 is EEPROM data */
   520: 	/* bit 1 is EEPROM ready */
   521: 	/* bit 2 is VBLANK (???) */
   522: 	/* bit 7 is service button */
   523: 	res = EEPROM_read_bit() | input_port_3_word_r(0,0);
   524: 	if (init_eeprom_count)
   525: 	{
   526: 		init_eeprom_count--;
   527: 		res &= 0x7f;
   528: 	}
   529: 	toggle ^= 0x04;
   530: 	return res ^ toggle;
   531: }
   532: 
   533: static READ16_HANDLER( ssridersbl_eeprom_r )
   534: {
   535: 	int res;
   536: 	static int toggle;
   537: 
   538: 	/* bit 0 is EEPROM data */
   539: 	/* bit 1 is EEPROM ready */
   540: 	/* bit 2 is VBLANK (???) */
   541: 	/* bit 3 is service button */
   542: 	res = EEPROM_read_bit() | input_port_3_word_r(0,0);
   543: 	if (init_eeprom_count)
   544: 	{
   545: 		init_eeprom_count--;
   546: 		res &= 0xf7;
   547: 	}
   548: 	toggle ^= 0x04;
   549: 	return res ^ toggle;
   550: }
   551: 
   552: static WRITE16_HANDLER( detatwin_eeprom_w )
   553: {
   554: 	if (ACCESSING_LSB)
   555: 	{
   556: 		/* bit 0 is data */
   557: 		/* bit 1 is cs (active low) */
   558: 		/* bit 2 is clock (active high) */
   559: 		EEPROM_write_bit(data & 0x01);
   560: 		EEPROM_set_cs_line((data & 0x02) ? CLEAR_LINE : ASSERT_LINE);
   561: 		EEPROM_set_clock_line((data & 0x04) ? ASSERT_LINE : CLEAR_LINE);
   562: 	}
   563: }
   564: 
   565: WRITE16_HANDLER( ssriders_eeprom_w );	/* in vidhrdw/tmnt.c */
   566: 
   567: 
   568: static struct EEPROM_interface thndrx2_eeprom_interface =
   569: {
   570: 	7,				/* address bits */
   571: 	8,				/* data bits */
   572: 	"011000",		/*  read command */
   573: 	"010100",		/* write command */
   574: 	0,				/* erase command */
   575: 	"0100000000000",/* lock command */
   576: 	"0100110000000" /* unlock command */
   577: };
   578: 
   579: static NVRAM_HANDLER( thndrx2 )
   580: {
   581: 	if (read_or_write)
   582: 		EEPROM_save(file);
   583: 	else
   584: 	{
   585: 		EEPROM_init(&thndrx2_eeprom_interface);
   586: 
   587: 		if (file)
   588: 		{
   589: 			init_eeprom_count = 0;
   590: 			EEPROM_load(file);
   591: 		}
   592: 		else
   593: 			init_eeprom_count = 10;
   594: 	}
   595: }
   596: 
   597: static READ16_HANDLER( thndrx2_in0_r )
   598: {
   599: 	int res;
   600: 
   601: 	res = input_port_0_word_r(0,0);
   602: 	if (init_eeprom_count)
   603: 	{
   604: 		init_eeprom_count--;
   605: 		res &= 0xf7ff;
   606: 	}
   607: 	return res;
   608: }
   609: 
   610: static READ16_HANDLER( thndrx2_eeprom_r )
   611: {
   612: 	int res;
   613: 	static int toggle;
   614: 
   615: 	/* bit 0 is EEPROM data */
   616: 	/* bit 1 is EEPROM ready */
   617: 	/* bit 3 is VBLANK (???) */
   618: 	/* bit 7 is service button */
   619: 	res = (EEPROM_read_bit() << 8) | input_port_1_word_r(0,0);
   620: 	toggle ^= 0x0800;
   621: 	return (res ^ toggle);
   622: }
   623: 
   624: static WRITE16_HANDLER( thndrx2_eeprom_w )
   625: {
   626: 	static int last;
   627: 
   628: 	if (ACCESSING_LSB)
   629: 	{
   630: 		/* bit 0 is data */
   631: 		/* bit 1 is cs (active low) */
   632: 		/* bit 2 is clock (active high) */
   633: 		EEPROM_write_bit(data & 0x01);
   634: 		EEPROM_set_cs_line((data & 0x02) ? CLEAR_LINE : ASSERT_LINE);
   635: 		EEPROM_set_clock_line((data & 0x04) ? ASSERT_LINE : CLEAR_LINE);
   636: 
   637: 		/* bit 5 triggers IRQ on sound cpu */
   638: 		if (last == 0 && (data & 0x20) != 0)
   639: 			cpu_set_irq_line_and_vector(1,0,HOLD_LINE,0xff);
   640: 		last = data & 0x20;
   641: 
   642: 		/* bit 6 = enable char ROM reading through the video RAM */
   643: 		K052109_set_RMRD_line((data & 0x40) ? ASSERT_LINE : CLEAR_LINE);
   644: 	}
   645: }
   646: 
   647: 
   648: static READ16_HANDLER( prmrsocr_IN0_r )
   649: {
   650: 	/* bit 9 is service button */
   651: 	int res;
   652: 
   653: 	res = input_port_0_word_r(0,0);
   654: 	if (init_eeprom_count)
   655: 	{
   656: 		init_eeprom_count--;
   657: 		res &= 0xfdff;
   658: 	}
   659: 	return res;
   660: }
   661: 
   662: static READ16_HANDLER( prmrsocr_eeprom_r )
   663: {
   664: 	/* bit 8 is EEPROM data */
   665: 	/* bit 9 is EEPROM ready */
   666: 	return (EEPROM_read_bit() << 8) | input_port_1_word_r(0,0);
   667: }
   668: 
   669: static WRITE16_HANDLER( prmrsocr_eeprom_w )
   670: {
   671: 	if (ACCESSING_LSB)
   672: 	{
   673: 		prmrsocr_122000_w(offset,data,mem_mask);
   674: 	}
   675: 
   676: 	if (ACCESSING_MSB)
   677: 	{
   678: 		/* bit 8 is data */
   679: 		/* bit 9 is cs (active low) */
   680: 		/* bit 10 is clock (active high) */
   681: 		EEPROM_write_bit(data & 0x0100);
   682: 		EEPROM_set_cs_line((data & 0x0200) ? CLEAR_LINE : ASSERT_LINE);
   683: 		EEPROM_set_clock_line((data & 0x0400) ? ASSERT_LINE : CLEAR_LINE);
   684: 	}
   685: }
   686: 
   687: static READ16_HANDLER( cbj_snd_r )
   688: {
   689: 	return YM2151_status_port_0_r(0)<<8;
   690: }
   691: 
   692: static WRITE16_HANDLER( cbj_snd_w )
   693: {
   694: 	if (offset)
   695: 	{
   696: 		YM2151_data_port_0_w(0, data>>8);
   697: 	}
   698: 	else
   699: 	{
   700: 		YM2151_register_port_0_w(0, data>>8);
   701: 	}
   702: }
   703: 
   704: static READ16_HANDLER( cbj_nv_r )
   705: {
   706: 	return cbj_nvram[offset + (cbj_nvram_bank*0x400/2)];
   707: }
   708: 
   709: static WRITE16_HANDLER( cbj_nv_w )
   710: {
   711:        COMBINE_DATA(&cbj_nvram[offset + (cbj_nvram_bank*0x400/2)]);
   712: }
   713: 
   714: static WRITE16_HANDLER( cbj_nvbank_w )
   715: {
   716: 	cbj_nvram_bank = (data>>8);
   717: }
   718: 
   719: static MEMORY_READ16_START( cuebrckj_readmem )
   720: 	{ 0x000000, 0x01ffff, MRA16_ROM },
   721: 	{ 0x040000, 0x043fff, MRA16_RAM },	/* main RAM */
   722: 	{ 0x060000, 0x063fff, MRA16_RAM },	/* main RAM */
   723: 	{ 0x080000, 0x080fff, MRA16_RAM },
   724: 	{ 0x0a0000, 0x0a0001, input_port_0_word_r },
   725: 	{ 0x0a0002, 0x0a0003, input_port_1_word_r },
   726: 	{ 0x0a0004, 0x0a0005, input_port_2_word_r },
   727: 	{ 0x0a0010, 0x0a0011, input_port_3_word_r },
   728: 	{ 0x0a0012, 0x0a0013, input_port_4_word_r },
   729: 	{ 0x0a0018, 0x0a0019, input_port_5_word_r },
   730: 	{ 0x0b0000, 0x0b03ff, cbj_nv_r },
   731: 	{ 0x0c0000, 0x0c0003, cbj_snd_r },
   732: 	{ 0x100000, 0x107fff, K052109_word_noA12_r },
   733: 	{ 0x140000, 0x140007, K051937_word_r },
   734: 	{ 0x140400, 0x1407ff, K051960_word_r },
   735: MEMORY_END
   736: 
   737: static MEMORY_WRITE16_START( cuebrckj_writemem )
   738: 	{ 0x000000, 0x01ffff, MWA16_ROM },
   739: 	{ 0x040000, 0x043fff, MWA16_RAM },	/* main RAM */
   740: 	{ 0x060000, 0x063fff, MWA16_RAM },	/* main RAM */
   741: 	{ 0x080000, 0x080fff, tmnt_paletteram_word_w, &paletteram16 },
   742: 	{ 0x0a0000, 0x0a0001, tmnt_0a0000_w },
   743: 	{ 0x0a0008, 0x0a0009, tmnt_sound_command_w },
   744: 	{ 0x0a0010, 0x0a0011, watchdog_reset16_w },
   745: 	{ 0x0b0000, 0x0b03ff, cbj_nv_w },
   746: 	{ 0x0b0400, 0x0b0401, cbj_nvbank_w },
   747: 	{ 0x0c0000, 0x0c0003, cbj_snd_w },
   748: 	{ 0x100000, 0x107fff, K052109_word_noA12_w },
   749: 	{ 0x140000, 0x140007, K051937_word_w },
   750: 	{ 0x140400, 0x1407ff, K051960_word_w },
   751: MEMORY_END
   752: 
   753: 
   754: static MEMORY_READ16_START( mia_readmem )
   755: 	{ 0x000000, 0x03ffff, MRA16_ROM },
   756: 	{ 0x040000, 0x043fff, MRA16_RAM },	/* main RAM */
   757: 	{ 0x060000, 0x063fff, MRA16_RAM },	/* main RAM */
   758: 	{ 0x080000, 0x080fff, MRA16_RAM },
   759: 	{ 0x0a0000, 0x0a0001, input_port_0_word_r },
   760: 	{ 0x0a0002, 0x0a0003, input_port_1_word_r },
   761: 	{ 0x0a0004, 0x0a0005, input_port_2_word_r },
   762: 	{ 0x0a0010, 0x0a0011, input_port_3_word_r },
   763: 	{ 0x0a0012, 0x0a0013, input_port_4_word_r },
   764: 	{ 0x0a0018, 0x0a0019, input_port_5_word_r },
   765: 	{ 0x100000, 0x107fff, K052109_word_noA12_r },
   766: 	{ 0x140000, 0x140007, K051937_word_r },
   767: 	{ 0x140400, 0x1407ff, K051960_word_r },
   768: MEMORY_END
   769: 
   770: static MEMORY_WRITE16_START( mia_writemem )
   771: 	{ 0x000000, 0x03ffff, MWA16_ROM },
   772: 	{ 0x040000, 0x043fff, MWA16_RAM },	/* main RAM */
   773: 	{ 0x060000, 0x063fff, MWA16_RAM },	/* main RAM */
   774: 	{ 0x080000, 0x080fff, tmnt_paletteram_word_w, &paletteram16 },
   775: 	{ 0x0a0000, 0x0a0001, tmnt_0a0000_w },
   776: 	{ 0x0a0008, 0x0a0009, tmnt_sound_command_w },
   777: 	{ 0x0a0010, 0x0a0011, watchdog_reset16_w },
   778: 	{ 0x100000, 0x107fff, K052109_word_noA12_w },
   779: 	{ 0x140000, 0x140007, K051937_word_w },
   780: 	{ 0x140400, 0x1407ff, K051960_word_w },
   781: //	{ 0x10e800, 0x10e801, MWA16_NOP }, ???
   782: #if 0 
   783: 	{ 0x0c0000, 0x0c0001, tmnt_priority_w },
   784: #endif 
   785: MEMORY_END
   786: 
   787: static MEMORY_READ16_START( tmnt_readmem )
   788: 	{ 0x000000, 0x05ffff, MRA16_ROM },
   789: 	{ 0x060000, 0x063fff, MRA16_RAM },	/* main RAM */
   790: 	{ 0x080000, 0x080fff, MRA16_RAM },
   791: 	{ 0x0a0000, 0x0a0001, input_port_0_word_r },
   792: 	{ 0x0a0002, 0x0a0003, input_port_1_word_r },
   793: 	{ 0x0a0004, 0x0a0005, input_port_2_word_r },
   794: 	{ 0x0a0006, 0x0a0007, input_port_3_word_r },
   795: 	{ 0x0a0010, 0x0a0011, input_port_4_word_r },
   796: 	{ 0x0a0012, 0x0a0013, input_port_5_word_r },
   797: 	{ 0x0a0014, 0x0a0015, input_port_6_word_r },
   798: 	{ 0x0a0018, 0x0a0019, input_port_7_word_r },
   799: 	{ 0x100000, 0x107fff, K052109_word_noA12_r },
   800: 	{ 0x140000, 0x140007, K051937_word_r },
   801: 	{ 0x140400, 0x1407ff, K051960_word_r },
   802: MEMORY_END
   803: 
   804: static MEMORY_WRITE16_START( tmnt_writemem )
   805: 	{ 0x000000, 0x05ffff, MWA16_ROM },
   806: 	{ 0x060000, 0x063fff, MWA16_RAM },	/* main RAM */
   807: 	{ 0x080000, 0x080fff, tmnt_paletteram_word_w, &paletteram16 },
   808: 	{ 0x0a0000, 0x0a0001, tmnt_0a0000_w },
   809: 	{ 0x0a0008, 0x0a0009, tmnt_sound_command_w },
   810: 	{ 0x0a0010, 0x0a0011, watchdog_reset16_w },
   811: 	{ 0x0c0000, 0x0c0001, tmnt_priority_w },
   812: 	{ 0x100000, 0x107fff, K052109_word_noA12_w },
   813: //	{ 0x10e800, 0x10e801, MWA16_NOP }, ???
   814: 	{ 0x140000, 0x140007, K051937_word_w },
   815: 	{ 0x140400, 0x1407ff, K051960_word_w },
   816: MEMORY_END
   817: 
   818: static MEMORY_READ16_START( punkshot_readmem )
   819: 	{ 0x000000, 0x03ffff, MRA16_ROM },
   820: 	{ 0x080000, 0x083fff, MRA16_RAM },	/* main RAM */
   821: 	{ 0x090000, 0x090fff, MRA16_RAM },
   822: 	{ 0x0a0000, 0x0a0001, input_port_0_word_r },
   823: 	{ 0x0a0002, 0x0a0003, input_port_1_word_r },
   824: 	{ 0x0a0004, 0x0a0005, input_port_3_word_r },
   825: 	{ 0x0a0006, 0x0a0007, input_port_2_word_r },
   826: 	{ 0x0a0040, 0x0a0043, punkshot_sound_r },	/* K053260 */
   827: 	{ 0x100000, 0x107fff, K052109_word_noA12_r },
   828: 	{ 0x110000, 0x110007, K051937_word_r },
   829: 	{ 0x110400, 0x1107ff, K051960_word_r },
   830: 	{ 0xfffffc, 0xffffff, punkshot_kludge_r },
   831: MEMORY_END
   832: 
   833: static MEMORY_WRITE16_START( punkshot_writemem )
   834: 	{ 0x000000, 0x03ffff, MWA16_ROM },
   835: 	{ 0x080000, 0x083fff, MWA16_RAM },	/* main RAM */
   836: 	{ 0x090000, 0x090fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
   837: 	{ 0x0a0020, 0x0a0021, punkshot_0a0020_w },
   838: 	{ 0x0a0040, 0x0a0041, K053260_0_lsb_w },
   839: 	{ 0x0a0060, 0x0a007f, K053251_lsb_w },
   840: 	{ 0x0a0080, 0x0a0081, watchdog_reset16_w },
   841: 	{ 0x100000, 0x107fff, punkshot_K052109_word_noA12_w },
   842: 	{ 0x110000, 0x110007, K051937_word_w },
   843: 	{ 0x110400, 0x1107ff, K051960_word_w },
   844: MEMORY_END
   845: 
   846: static MEMORY_READ16_START( lgtnfght_readmem )
   847: 	{ 0x000000, 0x03ffff, MRA16_ROM },
   848: 	{ 0x080000, 0x080fff, MRA16_RAM },
   849: 	{ 0x090000, 0x093fff, MRA16_RAM },	/* main RAM */
   850: 	{ 0x0a0000, 0x0a0001, input_port_0_word_r },
   851: 	{ 0x0a0002, 0x0a0003, input_port_1_word_r },
   852: 	{ 0x0a0004, 0x0a0005, input_port_2_word_r },
   853: 	{ 0x0a0006, 0x0a0007, input_port_3_word_r },
   854: 	{ 0x0a0008, 0x0a0009, input_port_4_word_r },
   855: 	{ 0x0a0010, 0x0a0011, input_port_5_word_r },
   856: 	{ 0x0a0020, 0x0a0023, punkshot_sound_r },	/* K053260 */
   857: 	{ 0x0b0000, 0x0b3fff, K053245_scattered_word_r },
   858: 	{ 0x0c0000, 0x0c001f, K053244_word_noA1_r },
   859: 	{ 0x100000, 0x107fff, K052109_word_noA12_r },
   860: MEMORY_END
   861: 
   862: static MEMORY_WRITE16_START( lgtnfght_writemem )
   863: 	{ 0x000000, 0x03ffff, MWA16_ROM },
   864: 	{ 0x080000, 0x080fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
   865: 	{ 0x090000, 0x093fff, MWA16_RAM },	/* main RAM */
   866: 	{ 0x0a0018, 0x0a0019, lgtnfght_0a0018_w },
   867: 	{ 0x0a0020, 0x0a0021, K053260_0_lsb_w },
   868: 	{ 0x0a0028, 0x0a0029, watchdog_reset16_w },
   869: 	{ 0x0b0000, 0x0b3fff, K053245_scattered_word_w, &spriteram16 },
   870: 	{ 0x0c0000, 0x0c001f, K053244_word_noA1_w },
   871: 	{ 0x0e0000, 0x0e001f, K053251_lsb_w },
   872: 	{ 0x100000, 0x107fff, K052109_word_noA12_w },
   873: MEMORY_END
   874: 
   875: 
   876: static WRITE16_HANDLER( ssriders_soundkludge_w )
   877: {
   878: 	/* I think this is more than just a trigger */
   879: 	cpu_set_irq_line_and_vector(1,0,HOLD_LINE,0xff);
   880: }
   881: 
   882: static MEMORY_READ16_START( detatwin_readmem )
   883: 	{ 0x000000, 0x07ffff, MRA16_ROM },
   884: 	{ 0x180000, 0x183fff, K052109_word_r },
   885: 	{ 0x204000, 0x207fff, MRA16_RAM },	/* main RAM */
   886: 	{ 0x300000, 0x303fff, K053245_scattered_word_r },
   887: 	{ 0x400000, 0x400fff, MRA16_RAM },
   888: 	{ 0x500000, 0x50003f, K054000_lsb_r },
   889: 	{ 0x680000, 0x68001f, K053244_word_noA1_r },
   890: 	{ 0x700000, 0x700001, input_port_0_word_r },
   891: 	{ 0x700002, 0x700003, input_port_1_word_r },
   892: 	{ 0x700004, 0x700005, detatwin_coin_r },
   893: 	{ 0x700006, 0x700007, detatwin_eeprom_r },
   894: 	{ 0x780600, 0x780603, detatwin_sound_r },	/* K053260 */
   895: MEMORY_END
   896: 
   897: static MEMORY_WRITE16_START( detatwin_writemem )
   898: 	{ 0x000000, 0x07ffff, MWA16_ROM },
   899: 	{ 0x180000, 0x183fff, K052109_word_w },
   900: 	{ 0x204000, 0x207fff, MWA16_RAM },	/* main RAM */
   901: 	{ 0x300000, 0x303fff, K053245_scattered_word_w, &spriteram16 },
   902: 	{ 0x500000, 0x50003f, K054000_lsb_w },
   903: 	{ 0x400000, 0x400fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
   904: 	{ 0x680000, 0x68001f, K053244_word_noA1_w },
   905: 	{ 0x700200, 0x700201, detatwin_eeprom_w },
   906: 	{ 0x700400, 0x700401, watchdog_reset16_w },
   907: 	{ 0x700300, 0x700301, detatwin_700300_w },
   908: 	{ 0x780600, 0x780601, K053260_0_lsb_w },
   909: 	{ 0x780604, 0x780605, ssriders_soundkludge_w },
   910: 	{ 0x780700, 0x78071f, K053251_lsb_w },
   911: MEMORY_END
   912: 
   913: static MEMORY_READ16_START( glfgreat_readmem )
   914: 	{ 0x000000, 0x03ffff, MRA16_ROM },
   915: 	{ 0x100000, 0x103fff, MRA16_RAM },	/* main RAM */
   916: 	{ 0x104000, 0x107fff, K053245_scattered_word_r },
   917: 	{ 0x108000, 0x108fff, MRA16_RAM },
   918: 	{ 0x10c000, 0x10cfff, MRA16_RAM },	/* 053936? */
   919: 	{ 0x114000, 0x11401f, K053244_lsb_r },
   920: 	{ 0x120000, 0x120001, input_port_0_word_r },
   921: 	{ 0x120002, 0x120003, input_port_1_word_r },
   922: 	{ 0x120004, 0x120005, input_port_3_word_r },
   923: 	{ 0x120006, 0x120007, input_port_2_word_r },
   924: 	{ 0x121000, 0x121001, glfgreat_ball_r },	/* returns the color of the center pixel of the roz layer */
   925: 	{ 0x125000, 0x125003, glfgreat_sound_r },	/* K053260 */
   926: 	{ 0x200000, 0x207fff, K052109_word_noA12_r },
   927: 	{ 0x300000, 0x3fffff, glfgreat_rom_r },
   928: MEMORY_END
   929: 
   930: static MEMORY_WRITE16_START( glfgreat_writemem )
   931: 	{ 0x000000, 0x03ffff, MWA16_ROM },
   932: 	{ 0x100000, 0x103fff, MWA16_RAM },	/* main RAM */
   933: 	{ 0x104000, 0x107fff, K053245_scattered_word_w, &spriteram16 },
   934: 	{ 0x108000, 0x108fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
   935: 	{ 0x10c000, 0x10cfff, MWA16_RAM, &K053936_0_linectrl },
   936: 	{ 0x110000, 0x11001f, K053244_word_noA1_w },	/* duplicate! */
   937: 	{ 0x114000, 0x11401f, K053244_lsb_w },			/* duplicate! */
   938: 	{ 0x118000, 0x11801f, MWA16_RAM, &K053936_0_ctrl },
   939: 	{ 0x11c000, 0x11c01f, K053251_msb_w },
   940: 	{ 0x122000, 0x122001, glfgreat_122000_w },
   941: 	{ 0x124000, 0x124001, watchdog_reset16_w },
   942: 	{ 0x125000, 0x125003, glfgreat_sound_w },	/* K053260 */
   943: 	{ 0x200000, 0x207fff, K052109_word_noA12_w },
   944: MEMORY_END
   945: 
   946: 
   947: static MEMORY_READ16_START( prmrsocr_readmem )
   948: 	{ 0x000000, 0x07ffff, MRA16_ROM },
   949: 	{ 0x100000, 0x103fff, MRA16_RAM },	/* main RAM */
   950: 	{ 0x104000, 0x107fff, K053245_scattered_word_r },
   951: 	{ 0x108000, 0x108fff, MRA16_RAM },
   952: 	{ 0x10c000, 0x10cfff, MRA16_RAM },
   953: 	{ 0x114000, 0x11401f, K053244_lsb_r },
   954: 	{ 0x120000, 0x120001, prmrsocr_IN0_r },
   955: 	{ 0x120002, 0x120003, prmrsocr_eeprom_r },
   956: 	{ 0x121014, 0x121015, prmrsocr_sound_r },
   957: 	{ 0x200000, 0x207fff, K052109_word_noA12_r },
   958: MEMORY_END
   959: 
   960: static MEMORY_WRITE16_START( prmrsocr_writemem )
   961: 	{ 0x000000, 0x07ffff, MWA16_ROM },
   962: 	{ 0x100000, 0x103fff, MWA16_RAM },	/* main RAM */
   963: 	{ 0x104000, 0x107fff, K053245_scattered_word_w, &spriteram16 },
   964: 	{ 0x108000, 0x108fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
   965: 	{ 0x10c000, 0x10cfff, MWA16_RAM, &K053936_0_linectrl },
   966: 	{ 0x110000, 0x11001f, K053244_word_noA1_w },	/* duplicate! */
   967: 	{ 0x114000, 0x11401f, K053244_lsb_w },			/* duplicate! */
   968: 	{ 0x118000, 0x11801f, MWA16_RAM, &K053936_0_ctrl },
   969: 	{ 0x11c000, 0x11c01f, K053251_msb_w },
   970: 	{ 0x122000, 0x122001, prmrsocr_eeprom_w },	/* EEPROM + video control */
   971: 	{ 0x12100c, 0x12100f, prmrsocr_sound_cmd_w },
   972: 	{ 0x123000, 0x123001, prmrsocr_sound_irq_w },
   973: 	{ 0x200000, 0x207fff, K052109_word_noA12_w },
   974: 	{ 0x280000, 0x280001, watchdog_reset16_w },
   975: MEMORY_END
   976: 
   977: 
   978: static MEMORY_READ16_START( tmnt2_readmem )
   979: 	{ 0x000000, 0x0fffff, MRA16_ROM },
   980: 	{ 0x104000, 0x107fff, MRA16_RAM },	/* main RAM */
   981: 	{ 0x140000, 0x140fff, MRA16_RAM },
   982: 	{ 0x180000, 0x183fff, K053245_scattered_word_r },
   983: 	{ 0x1c0000, 0x1c0001, input_port_0_word_r },
   984: 	{ 0x1c0002, 0x1c0003, input_port_1_word_r },
   985: 	{ 0x1c0004, 0x1c0005, input_port_4_word_r },
   986: 	{ 0x1c0006, 0x1c0007, input_port_5_word_r },
   987: 	{ 0x1c0100, 0x1c0101, input_port_2_word_r },
   988: 	{ 0x1c0102, 0x1c0103, ssriders_eeprom_r },
   989: 	{ 0x1c0400, 0x1c0401, watchdog_reset16_r },
   990: 	{ 0x1c0500, 0x1c057f, MRA16_RAM },	/* TMNT2 only (1J) unknown */
   991: //	{ 0x1c0800, 0x1c0801, ssriders_protection_r },	/* protection device */
   992: 	{ 0x5a0000, 0x5a001f, K053244_word_noA1_r },
   993: 	{ 0x5c0600, 0x5c0603, tmnt2_sound_r },	/* K053260 */
   994: 	{ 0x600000, 0x603fff, K052109_word_r },
   995: MEMORY_END
   996: 
   997: static data16_t *tmnt2_1c0800,*sunset_104000;
   998: 
   999: WRITE16_HANDLER( tmnt2_1c0800_w )
  1000: {
  1001:     COMBINE_DATA( tmnt2_1c0800 + offset);
  1002:     if ( offset == 0x0008 && ( tmnt2_1c0800[0x8] & 0xff00 ) == 0x8200 )
  1003: 	{
  1004: 		unsigned int CellSrc;
  1005: 		unsigned int CellVar;
  1006: 		data16_t *src;
  1007: 		int dst;
  1008: 		int x,y;
  1009: 
  1010: 		CellVar = tmnt2_1c0800[0x04] | (tmnt2_1c0800[0x05] << 16 );
  1011: 		dst = tmnt2_1c0800[0x02] | (tmnt2_1c0800[0x03] << 16 );
  1012: 		CellSrc = tmnt2_1c0800[0x00] | (tmnt2_1c0800[0x01] << 16 );
  1013: //        if ( CellDest >= 0x180000 && CellDest < 0x183fe0 ) {
  1014:         CellVar -= 0x104000;
  1015: 		src = (data16_t *)(memory_region(REGION_CPU1) + CellSrc);
  1016: 
  1017: 		CellVar >>= 1;
  1018: 
  1019: 		cpu_writemem24bew_word(dst+0x00, 0x8000 | ((src[1] & 0xfc00) >> 2));	/* size, flip xy */
  1020:         cpu_writemem24bew_word(dst+0x04, src[0]);	/* code */
  1021:         cpu_writemem24bew_word(dst+0x18, (src[1] & 0x3ff) ^		/* color, mirror, priority */
  1022: 				(sunset_104000[CellVar + 0x00] & 0x0060));
  1023: 
  1024: 		/* base color modifier */
  1025: 		/* TODO: this is wrong, e.g. it breaks the explosions when you kill an */
  1026: 		/* enemy, or surfs in the sewer level (must be blue for all enemies). */
  1027: 		/* It fixes the enemies, though, they are not all purple when you throw them around. */
  1028: 		/* Also, the bosses don't blink when they are about to die - don't know */
  1029: 		/* if this is correct or not. */
  1030: //		if (sunset_104000[CellVar + 0x15] & 0x001f)
  1031: //			cpu_writemem24bew_word(dst+0x18,(cpu_readmem24bew_word(dst+0x18) & 0xffe0) |
  1032: //					(sunset_104000[CellVar + 0x15] & 0x001f));
  1033: 
  1034: 		x = src[2];
  1035: 		if (sunset_104000[CellVar + 0x00] & 0x4000)
  1036: 		{
  1037: 			/* flip x */
  1038: 			cpu_writemem24bew_word(dst+0x00,cpu_readmem24bew_word(dst+0x00) ^ 0x1000);
  1039: 			x = -x;
  1040: 		}
  1041: 		x += sunset_104000[CellVar + 0x06];
  1042: 		cpu_writemem24bew_word(dst+0x0c,x);
  1043: 		y = src[3];
  1044: 		y += sunset_104000[CellVar + 0x07];
  1045: 		/* don't do second offset for shadows */
  1046: 		if ((tmnt2_1c0800[0x08] & 0x00ff) != 0x01)
  1047: 			y += sunset_104000[CellVar + 0x08];
  1048: 		cpu_writemem24bew_word(dst+0x08,y);
  1049: #if 0 
  1050: logerror("copy command %04x sprite %08x data %08x: %04x%04x %04x%04x  modifiers %08x:%04x%04x %04x%04x %04x%04x %04x%04x %04x%04x %04x%04x %04x%04x %04x%04x %04x%04x %04x%04x %04x%04x %04x%04x\n",
  1051: 	tmnt2_1c0800[0x05],
  1052: 	CellDest,CellSrc,
  1053: 	src[0], src[1], src[2], src[3],
  1054: 	CellVar*2,
  1055: 	sunset_104000[CellVar + 0x00],
  1056: 	sunset_104000[CellVar + 0x01],
  1057: 	sunset_104000[CellVar + 0x02],
  1058: 	sunset_104000[CellVar + 0x03],
  1059: 	sunset_104000[CellVar + 0x04],
  1060: 	sunset_104000[CellVar + 0x05],
  1061: 	sunset_104000[CellVar + 0x06],
  1062: 	sunset_104000[CellVar + 0x07],
  1063: 	sunset_104000[CellVar + 0x08],
  1064: 	sunset_104000[CellVar + 0x09],
  1065: 	sunset_104000[CellVar + 0x0a],
  1066: 	sunset_104000[CellVar + 0x0b],
  1067: 	sunset_104000[CellVar + 0x0c],
  1068: 	sunset_104000[CellVar + 0x0d],
  1069: 	sunset_104000[CellVar + 0x0e],
  1070: 	sunset_104000[CellVar + 0x0f],
  1071: 	sunset_104000[CellVar + 0x10],
  1072: 	sunset_104000[CellVar + 0x11],
  1073: 	sunset_104000[CellVar + 0x12],
  1074: 	sunset_104000[CellVar + 0x13],
  1075: 	sunset_104000[CellVar + 0x14],
  1076: 	sunset_104000[CellVar + 0x15],
  1077: 	sunset_104000[CellVar + 0x16],
  1078: 	sunset_104000[CellVar + 0x17]
  1079: 	);
  1080: #endif 
  1081: //        }
  1082:     }
  1083: }
  1084: 
  1085: static MEMORY_WRITE16_START( tmnt2_writemem )
  1086: 	{ 0x000000, 0x0fffff, MWA16_ROM },
  1087: 	{ 0x104000, 0x107fff, MWA16_RAM, &sunset_104000 },	/* main RAM */
  1088: 	{ 0x140000, 0x140fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
  1089: 	{ 0x180000, 0x183fff, K053245_scattered_word_w, &spriteram16 },
  1090: 	{ 0x1c0200, 0x1c0201, ssriders_eeprom_w },	/* EEPROM and gfx control */
  1091: 	{ 0x1c0300, 0x1c0301, ssriders_1c0300_w },
  1092: 	{ 0x1c0400, 0x1c0401, watchdog_reset16_w },
  1093: 	{ 0x1c0500, 0x1c057f, MWA16_RAM },	/* unknown: TMNT2 only (1J) */
  1094: 	{ 0x1c0800, 0x1c081f, tmnt2_1c0800_w, &tmnt2_1c0800 },	/* protection device */
  1095: 	{ 0x5a0000, 0x5a001f, K053244_word_noA1_w },
  1096: 	{ 0x5c0600, 0x5c0601, K053260_0_lsb_w },
  1097: 	{ 0x5c0604, 0x5c0605, ssriders_soundkludge_w },
  1098: 	{ 0x5c0700, 0x5c071f, K053251_lsb_w },
  1099: 	{ 0x600000, 0x603fff, K052109_word_w },
  1100: MEMORY_END
  1101: 
  1102: 
  1103: static MEMORY_READ16_START( ssriders_readmem )
  1104: 	{ 0x000000, 0x0bffff, MRA16_ROM },
  1105: 	{ 0x104000, 0x107fff, MRA16_RAM },	/* main RAM */
  1106: 	{ 0x140000, 0x140fff, MRA16_RAM },
  1107: 	{ 0x180000, 0x183fff, K053245_scattered_word_r },
  1108: 	{ 0x1c0000, 0x1c0001, input_port_0_word_r },
  1109: 	{ 0x1c0002, 0x1c0003, input_port_1_word_r },
  1110: 	{ 0x1c0004, 0x1c0005, input_port_4_word_r },
  1111: 	{ 0x1c0006, 0x1c0007, input_port_5_word_r },
  1112: 	{ 0x1c0100, 0x1c0101, input_port_2_word_r },
  1113: 	{ 0x1c0102, 0x1c0103, ssriders_eeprom_r },
  1114: 	{ 0x1c0400, 0x1c0401, watchdog_reset16_r },
  1115: 	{ 0x1c0500, 0x1c057f, MRA16_RAM },	/* TMNT2 only (1J) unknown */
  1116: 	{ 0x1c0800, 0x1c0801, ssriders_protection_r },	/* protection device */
  1117: 	{ 0x5a0000, 0x5a001f, K053244_word_noA1_r },
  1118: 	{ 0x5c0600, 0x5c0603, punkshot_sound_r },	/* K053260 */
  1119: 	{ 0x600000, 0x603fff, K052109_word_r },
  1120: MEMORY_END
  1121: 
  1122: static MEMORY_WRITE16_START( ssriders_writemem )
  1123: 	{ 0x000000, 0x0bffff, MWA16_ROM },
  1124: 	{ 0x104000, 0x107fff, MWA16_RAM },	/* main RAM */
  1125: 	{ 0x140000, 0x140fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
  1126: 	{ 0x180000, 0x183fff, K053245_scattered_word_w, &spriteram16 },
  1127: 	{ 0x1c0200, 0x1c0201, ssriders_eeprom_w },	/* EEPROM and gfx control */
  1128: 	{ 0x1c0300, 0x1c0301, ssriders_1c0300_w },
  1129: 	{ 0x1c0400, 0x1c0401, watchdog_reset16_w },
  1130: 	{ 0x1c0500, 0x1c057f, MWA16_RAM },	/* TMNT2 only (1J) unknown */
  1131: 	{ 0x1c0800, 0x1c0803, ssriders_protection_w },	/* protection device */
  1132: 	{ 0x5a0000, 0x5a001f, K053244_word_noA1_w },
  1133: 	{ 0x5c0600, 0x5c0601, K053260_0_lsb_w },
  1134: 	{ 0x5c0604, 0x5c0605, ssriders_soundkludge_w },
  1135: 	{ 0x5c0700, 0x5c071f, K053251_lsb_w },
  1136: 	{ 0x600000, 0x603fff, K052109_word_w },
  1137: MEMORY_END
  1138: 
  1139: static MEMORY_READ16_START( ssridersbl_readmem )
  1140: 	{ 0x000000, 0x0bffff, MRA16_ROM },
  1141: 	{ 0x104000, 0x107fff, MRA16_RAM },	/* main RAM */
  1142: 	{ 0x14c000, 0x14cfff, MRA16_RAM },
  1143: 	{ 0x180000, 0x183fff, K053245_scattered_word_r },
  1144: 	{ 0x184000, 0x18ffff, MRA16_RAM },
  1145: 	{ 0x5a0000, 0x5a001f, K053244_word_noA1_r },
  1146: 	{ 0x600000, 0x603fff, K052109_word_r },
  1147: 	{ 0xc00000, 0xc00001, input_port_0_word_r },
  1148: 	{ 0xc00002, 0xc00003, input_port_1_word_r },
  1149: 	{ 0xc00004, 0xc00005, input_port_4_word_r },
  1150: 	{ 0xc00006, 0xc00007, input_port_5_word_r },
  1151: 	{ 0xc00404, 0xc00405, input_port_2_word_r },
  1152: 	{ 0xc00406, 0xc00407, ssridersbl_eeprom_r },
  1153: 	{ 0xc00600, 0xc00601, OKIM6295_status_0_lsb_r },
  1154: 	{ 0x75d288, 0x75d289, MRA16_NOP },	// read repeatedly in some test menus (PC=181f2)
  1155: MEMORY_END
  1156: 
  1157: static MEMORY_WRITE16_START( ssridersbl_writemem )
  1158: 	{ 0x000000, 0x0bffff, MWA16_ROM },
  1159: 	{ 0x104000, 0x107fff, MWA16_RAM },	/* main RAM */
  1160: 	{ 0x14c000, 0x14cfff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
  1161: 	{ 0x14e700, 0x14e71f, K053251_lsb_w },
  1162: 	{ 0x180000, 0x183fff, K053245_scattered_word_w, &spriteram16 },
  1163: 	{ 0x184000, 0x18ffff, MWA16_RAM },
  1164: 	{ 0x1c0300, 0x1c0301, ssriders_1c0300_w },
  1165: 	{ 0x1c0400, 0x1c0401, MWA16_NOP },
  1166: 	{ 0x5a0000, 0x5a001f, K053244_word_noA1_w },
  1167: 	{ 0x600000, 0x603fff, K052109_word_w },
  1168: 	{ 0x604020, 0x60402f, MWA16_NOP },	/* written every frame */
  1169: 	{ 0x604200, 0x604201, MWA16_NOP },	/* watchdog */
  1170: 	{ 0x6119e2, 0x6119e3, MWA16_NOP },	/* written a lot in some test menus (PC=18204) */
  1171: 	{ 0xc00200, 0xc00201, ssriders_eeprom_w },	/* EEPROM and gfx control */
  1172: 	{ 0xc00600, 0xc00601, OKIM6295_data_0_lsb_w },
  1173: MEMORY_END
  1174: 
  1175: static MEMORY_READ16_START( thndrx2_readmem )
  1176: 	{ 0x000000, 0x03ffff, MRA16_ROM },
  1177: 	{ 0x100000, 0x103fff, MRA16_RAM },	/* main RAM */
  1178: 	{ 0x200000, 0x200fff, MRA16_RAM },
  1179: 	{ 0x400000, 0x400003, punkshot_sound_r },	/* K053260 */
  1180: 	{ 0x500000, 0x50003f, K054000_lsb_r },
  1181: 	{ 0x500200, 0x500201, thndrx2_in0_r },
  1182: 	{ 0x500202, 0x500203, thndrx2_eeprom_r },
  1183: 	{ 0x600000, 0x607fff, K052109_word_noA12_r },
  1184: 	{ 0x700000, 0x700007, K051937_word_r },
  1185: 	{ 0x700400, 0x7007ff, K051960_word_r },
  1186: MEMORY_END
  1187: 
  1188: static MEMORY_WRITE16_START( thndrx2_writemem )
  1189: 	{ 0x000000, 0x03ffff, MWA16_ROM },
  1190: 	{ 0x100000, 0x103fff, MWA16_RAM },	/* main RAM */
  1191: 	{ 0x200000, 0x200fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
  1192: 	{ 0x300000, 0x30001f, K053251_lsb_w },
  1193: 	{ 0x400000, 0x400001, K053260_0_lsb_w },
  1194: 	{ 0x500000, 0x50003f, K054000_lsb_w },
  1195: 	{ 0x500100, 0x500101, thndrx2_eeprom_w },
  1196: 	{ 0x500300, 0x500301, MWA16_NOP },	/* watchdog reset? irq enable? */
  1197: 	{ 0x600000, 0x607fff, K052109_word_noA12_w },
  1198: 	{ 0x700000, 0x700007, K051937_word_w },
  1199: 	{ 0x700400, 0x7007ff, K051960_word_w },
  1200: MEMORY_END
  1201: 
  1202: 
  1203: 
  1204: static MEMORY_READ_START( mia_s_readmem )
  1205: 	{ 0x0000, 0x7fff, MRA_ROM },
  1206: 	{ 0x8000, 0x87ff, MRA_RAM },
  1207: 	{ 0xa000, 0xa000, soundlatch_r },
  1208: 	{ 0xb000, 0xb00d, K007232_read_port_0_r },
  1209: 	{ 0xc001, 0xc001, YM2151_status_port_0_r },
  1210: MEMORY_END
  1211: 
  1212: static MEMORY_WRITE_START( mia_s_writemem )
  1213: 	{ 0x0000, 0x7fff, MWA_ROM },
  1214: 	{ 0x8000, 0x87ff, MWA_RAM },
  1215: 	{ 0xb000, 0xb00d, K007232_write_port_0_w },
  1216: 	{ 0xc000, 0xc000, YM2151_register_port_0_w },
  1217: 	{ 0xc001, 0xc001, YM2151_data_port_0_w },
  1218: MEMORY_END
  1219: 
  1220: static MEMORY_READ_START( tmnt_s_readmem )
  1221: 	{ 0x0000, 0x7fff, MRA_ROM },
  1222: 	{ 0x8000, 0x87ff, MRA_RAM },
  1223: 	{ 0x9000, 0x9000, tmnt_sres_r },	/* title music & UPD7759C reset */
  1224: 	{ 0xa000, 0xa000, soundlatch_r },
  1225: 	{ 0xb000, 0xb00d, K007232_read_port_0_r },
  1226: 	{ 0xc001, 0xc001, YM2151_status_port_0_r },
  1227: 	{ 0xf000, 0xf000, UPD7759_0_busy_r },
  1228: MEMORY_END
  1229: 
  1230: static MEMORY_WRITE_START( tmnt_s_writemem )
  1231: 	{ 0x0000, 0x7fff, MWA_ROM },
  1232: 	{ 0x8000, 0x87ff, MWA_RAM },
  1233: 	{ 0x9000, 0x9000, tmnt_sres_w },	/* title music & UPD7759C reset */
  1234: 	{ 0xb000, 0xb00d, K007232_write_port_0_w  },
  1235: 	{ 0xc000, 0xc000, YM2151_register_port_0_w },
  1236: 	{ 0xc001, 0xc001, YM2151_data_port_0_w },
  1237: 	{ 0xd000, 0xd000, UPD7759_0_port_w },
  1238: 	{ 0xe000, 0xe000, UPD7759_0_start_w },
  1239: MEMORY_END
  1240: 
  1241: static MEMORY_READ_START( punkshot_s_readmem )
  1242: 	{ 0x0000, 0x7fff, MRA_ROM },
  1243: 	{ 0xf000, 0xf7ff, MRA_RAM },
  1244: 	{ 0xf801, 0xf801, YM2151_status_port_0_r },
  1245: 	{ 0xfc00, 0xfc2f, K053260_0_r },
  1246: MEMORY_END
  1247: 
  1248: static MEMORY_WRITE_START( punkshot_s_writemem )
  1249: 	{ 0x0000, 0x7fff, MWA_ROM },
  1250: 	{ 0xf000, 0xf7ff, MWA_RAM },
  1251: 	{ 0xf800, 0xf800, YM2151_register_port_0_w },
  1252: 	{ 0xf801, 0xf801, YM2151_data_port_0_w },
  1253: 	{ 0xfa00, 0xfa00, sound_arm_nmi_w },
  1254: 	{ 0xfc00, 0xfc2f, K053260_0_w },
  1255: MEMORY_END
  1256: 
  1257: static MEMORY_READ_START( lgtnfght_s_readmem )
  1258: 	{ 0x0000, 0x7fff, MRA_ROM },
  1259: 	{ 0x8000, 0x87ff, MRA_RAM },
  1260: 	{ 0xa001, 0xa001, YM2151_status_port_0_r },
  1261: 	{ 0xc000, 0xc02f, K053260_0_r },
  1262: MEMORY_END
  1263: 
  1264: static MEMORY_WRITE_START( lgtnfght_s_writemem )
  1265: 	{ 0x0000, 0x7fff, MWA_ROM },
  1266: 	{ 0x8000, 0x87ff, MWA_RAM },
  1267: 	{ 0xa000, 0xa000, YM2151_register_port_0_w },
  1268: 	{ 0xa001, 0xa001, YM2151_data_port_0_w },
  1269: 	{ 0xc000, 0xc02f, K053260_0_w },
  1270: MEMORY_END
  1271: 
  1272: static MEMORY_READ_START( glfgreat_s_readmem )
  1273: 	{ 0x0000, 0x7fff, MRA_ROM },
  1274: 	{ 0xf000, 0xf7ff, MRA_RAM },
  1275: 	{ 0xf800, 0xf82f, K053260_0_r },
  1276: MEMORY_END
  1277: 
  1278: static MEMORY_WRITE_START( glfgreat_s_writemem )
  1279: 	{ 0x0000, 0x7fff, MWA_ROM },
  1280: 	{ 0xf000, 0xf7ff, MWA_RAM },
  1281: 	{ 0xf800, 0xf82f, K053260_0_w },
  1282: 	{ 0xfa00, 0xfa00, sound_arm_nmi_w },
  1283: MEMORY_END
  1284: 
  1285: static MEMORY_READ_START( ssriders_s_readmem )
  1286: 	{ 0x0000, 0xefff, MRA_ROM },
  1287: 	{ 0xf000, 0xf7ff, MRA_RAM },
  1288: 	{ 0xf801, 0xf801, YM2151_status_port_0_r },
  1289: 	{ 0xfa00, 0xfa2f, K053260_0_r },
  1290: MEMORY_END
  1291: 
  1292: static MEMORY_WRITE_START( ssriders_s_writemem )
  1293: 	{ 0x0000, 0xefff, MWA_ROM },
  1294: 	{ 0xf000, 0xf7ff, MWA_RAM },
  1295: 	{ 0xf800, 0xf800, YM2151_register_port_0_w },
  1296: 	{ 0xf801, 0xf801, YM2151_data_port_0_w },
  1297: 	{ 0xfa00, 0xfa2f, K053260_0_w },
  1298: 	{ 0xfc00, 0xfc00, sound_arm_nmi_w },
  1299: MEMORY_END
  1300: 
  1301: static MEMORY_READ_START( thndrx2_s_readmem )
  1302: 	{ 0x0000, 0xefff, MRA_ROM },
  1303: 	{ 0xf000, 0xf7ff, MRA_RAM },
  1304: 	{ 0xf801, 0xf801, YM2151_status_port_0_r },
  1305: 	{ 0xfc00, 0xfc2f, K053260_0_r },
  1306: MEMORY_END
  1307: 
  1308: static MEMORY_WRITE_START( thndrx2_s_writemem )
  1309: 	{ 0x0000, 0xefff, MWA_ROM },
  1310: 	{ 0xf000, 0xf7ff, MWA_RAM },
  1311: 	{ 0xf800, 0xf800, YM2151_register_port_0_w },
  1312: 	{ 0xf801, 0xf801, YM2151_data_port_0_w },
  1313: 	{ 0xf811, 0xf811, YM2151_data_port_0_w },	/* mirror */
  1314: 	{ 0xfa00, 0xfa00, sound_arm_nmi_w },
  1315: 	{ 0xfc00, 0xfc2f, K053260_0_w },
  1316: MEMORY_END
  1317: 
  1318: static READ_HANDLER( K054539_0_ctrl_r )
  1319: {
  1320: 	return K054539_0_r(0x200+offset);
  1321: }
  1322: static WRITE_HANDLER( K054539_0_ctrl_w )
  1323: {
  1324: 	K054539_0_w(0x200+offset,data);
  1325: }
  1326: 
  1327: static MEMORY_READ_START( prmrsocr_s_readmem )
  1328: 	{ 0x0000, 0x7fff, MRA_ROM },
  1329: 	{ 0x8000, 0xbfff, MRA_BANK1 },
  1330: 	{ 0xc000, 0xdfff, MRA_RAM },
  1331: 	{ 0xe000, 0xe0ff, K054539_0_r },
  1332: 	{ 0xe100, 0xe12f, K054539_0_ctrl_r },
  1333: 	{ 0xf002, 0xf002, soundlatch_r },
  1334: 	{ 0xf003, 0xf003, soundlatch2_r },
  1335: MEMORY_END
  1336: 
  1337: static MEMORY_WRITE_START( prmrsocr_s_writemem )
  1338: 	{ 0x0000, 0xbfff, MWA_ROM },
  1339: 	{ 0xc000, 0xdfff, MWA_RAM },
  1340: 	{ 0xe000, 0xe0ff, K054539_0_w },
  1341: 	{ 0xe100, 0xe12f, K054539_0_ctrl_w },
  1342: 	{ 0xf000, 0xf000, soundlatch3_w },
  1343: 	{ 0xf800, 0xf800, prmrsocr_s_bankswitch_w },
  1344: MEMORY_END
  1345: 
  1346: 
  1347: 
  1348: #define KONAMI_PLAYERS_INPUT_LSB( player, button3, start ) \ 
  1349: 	PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | player ) \
  1350: 	PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | player ) \
  1351: 	PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | player ) \
  1352: 	PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | player ) \
  1353: 	PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1        | player ) \
  1354: 	PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_BUTTON2        | player ) \
  1355: 	PORT_BIT(  0x0040, IP_ACTIVE_LOW, button3            | player ) \
  1356: 	PORT_BIT(  0x0080, IP_ACTIVE_LOW, start )
  1357: 
  1358: #define KONAMI_PLAYERS_INPUT_MSB( player, button3, start ) \ 
  1359: 	PORT_BIT(  0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | player ) \
  1360: 	PORT_BIT(  0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | player ) \
  1361: 	PORT_BIT(  0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | player ) \
  1362: 	PORT_BIT(  0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | player ) \
  1363: 	PORT_BIT(  0x1000, IP_ACTIVE_LOW, IPT_BUTTON1        | player ) \
  1364: 	PORT_BIT(  0x2000, IP_ACTIVE_LOW, IPT_BUTTON2        | player ) \
  1365: 	PORT_BIT(  0x4000, IP_ACTIVE_LOW, button3            | player ) \
  1366: 	PORT_BIT(  0x8000, IP_ACTIVE_LOW, start )
  1367: 
  1368: 
  1369: INPUT_PORTS_START( mia )
  1370: 	PORT_START      /* COINS */
  1371: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
  1372: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
  1373: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1374: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
  1375: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
  1376: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1377: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1378: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1379: 
  1380: 	PORT_START      /* PLAYER 1 */
  1381: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER1, IPT_BUTTON3, IPT_UNKNOWN )
  1382: 
  1383: 	PORT_START      /* PLAYER 2 */
  1384: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER2, IPT_BUTTON3, IPT_UNKNOWN )
  1385: 
  1386: 	PORT_START	/* DSW1 */
  1387: 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
  1388: 	PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
  1389: 	PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
  1390: 	PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
  1391: 	PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
  1392: 	PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
  1393: 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
  1394: 	PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
  1395: 	PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
  1396: 	PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
  1397: 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
  1398: 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
  1399: 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
  1400: 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
  1401: 	PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
  1402: 	PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
  1403: 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  1404: 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
  1405: 	PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
  1406: 	PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
  1407: 	PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
  1408: 	PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
  1409: 	PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
  1410: 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
  1411: 	PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
  1412: 	PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
  1413: 	PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
  1414: 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
  1415: 	PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
  1416: 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
  1417: 	PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
  1418: 	PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
  1419: 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
  1420: //	PORT_DIPSETTING(    0x00, "Invalid" )
  1421: 
  1422: 	PORT_START	/* DSW2 */
  1423: 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
  1424: 	PORT_DIPSETTING(    0x03, "2" )
  1425: 	PORT_DIPSETTING(    0x02, "3" )
  1426: 	PORT_DIPSETTING(    0x01, "5" )
  1427: 	PORT_DIPSETTING(    0x00, "7" )
  1428: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  1429: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1430: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1431: 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )
  1432: 	PORT_DIPSETTING(    0x18, "30000 80000" )
  1433: 	PORT_DIPSETTING(    0x10, "50000 100000" )
  1434: 	PORT_DIPSETTING(    0x08, "50000" )
  1435: 	PORT_DIPSETTING(    0x00, "100000" )
  1436: 	PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
  1437: 	PORT_DIPSETTING(    0x60, "Easy" )
  1438: 	PORT_DIPSETTING(    0x40, "Normal" )
  1439: 	PORT_DIPSETTING(    0x20, "Difficult" )
  1440: 	PORT_DIPSETTING(    0x00, "Very Difficult" )
  1441: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
  1442: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1443: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1444: 
  1445: 	PORT_START	/* DSW3 */
  1446: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  1447: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1448: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1449: 	PORT_DIPNAME( 0x02, 0x02, "Character Test" )
  1450: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  1451: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1452: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
  1453: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1454: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1455: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1456: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
  1457: INPUT_PORTS_END
  1458: 
  1459: INPUT_PORTS_START( tmnt )
  1460: 	PORT_START      /* COINS */
  1461: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
  1462: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
  1463: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
  1464: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 )
  1465: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1466: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 )
  1467: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE3 )
  1468: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 )
  1469: 
  1470: 	PORT_START      /* PLAYER 1 */
  1471: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
  1472: 
  1473: 	PORT_START      /* PLAYER 2 */
  1474: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
  1475: 
  1476: 	PORT_START      /* PLAYER 3 */
  1477: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER3, IPT_UNKNOWN, IPT_UNKNOWN )
  1478: 
  1479: 	PORT_START	/* DSW1 */
  1480: 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) )
  1481: 	PORT_DIPSETTING(    0x00, DEF_STR( 5C_1C ) )
  1482: 	PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
  1483: 	PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
  1484: 	PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
  1485: 	PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
  1486: 	PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
  1487: 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
  1488: 	PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
  1489: 	PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
  1490: 	PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
  1491: 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
  1492: 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
  1493: 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
  1494: 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
  1495: 	PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
  1496: 	PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
  1497: 
  1498: 	PORT_START	/* DSW2 */
  1499: 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  1500: 	PORT_DIPSETTING(    0x03, "1" )
  1501: 	PORT_DIPSETTING(    0x02, "2" )
  1502: 	PORT_DIPSETTING(    0x01, "3" )
  1503: 	PORT_DIPSETTING(    0x00, "5" )
  1504: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  1505: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1506: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1507: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1508: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1509: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1510: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
  1511: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  1512: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1513: 	PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
  1514: 	PORT_DIPSETTING(    0x60, "Easy" )
  1515: 	PORT_DIPSETTING(    0x40, "Normal" )
  1516: 	PORT_DIPSETTING(    0x20, "Difficult" )
  1517: 	PORT_DIPSETTING(    0x00, "Very Difficult" )
  1518: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
  1519: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1520: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1521: 
  1522: 	PORT_START      /* PLAYER 4 */
  1523: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER4, IPT_UNKNOWN, IPT_UNKNOWN )
  1524: 
  1525: 	PORT_START	/* DSW3 */
  1526: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  1527: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1528: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1529: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
  1530: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  1531: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1532: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
  1533: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1534: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1535: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1536: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
  1537: INPUT_PORTS_END
  1538: 
  1539: INPUT_PORTS_START( tmnt2p )
  1540: 	PORT_START      /* COINS */
  1541: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
  1542: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
  1543: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1544: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1545: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1546: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 )
  1547: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1548: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1549: 
  1550: 	PORT_START      /* PLAYER 1 */
  1551: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER1, IPT_UNKNOWN, IPT_START1 )
  1552: 
  1553: 	PORT_START      /* PLAYER 2 */
  1554: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER2, IPT_UNKNOWN, IPT_START2 )
  1555: 
  1556: 	PORT_START      /* PLAYER 3 */
  1557: //	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER3, IPT_UNKNOWN, IPT_START3 )
  1558: 
  1559: 	PORT_START	/* DSW1 */
  1560: 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
  1561: 	PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
  1562: 	PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
  1563: 	PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
  1564: 	PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
  1565: 	PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
  1566: 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
  1567: 	PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
  1568: 	PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
  1569: 	PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
  1570: 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
  1571: 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
  1572: 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
  1573: 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
  1574: 	PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
  1575: 	PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
  1576: 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  1577: 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
  1578: 	PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
  1579: 	PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
  1580: 	PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
  1581: 	PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
  1582: 	PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
  1583: 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
  1584: 	PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
  1585: 	PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
  1586: 	PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
  1587: 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
  1588: 	PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
  1589: 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
  1590: 	PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
  1591: 	PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
  1592: 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
  1593: //	PORT_DIPSETTING(    0x00, "Invalid" )
  1594: 
  1595: 	PORT_START	/* DSW2 */
  1596: 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  1597: 	PORT_DIPSETTING(    0x03, "1" )
  1598: 	PORT_DIPSETTING(    0x02, "2" )
  1599: 	PORT_DIPSETTING(    0x01, "3" )
  1600: 	PORT_DIPSETTING(    0x00, "5" )
  1601: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  1602: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1603: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1604: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1605: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1606: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1607: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
  1608: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  1609: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1610: 	PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
  1611: 	PORT_DIPSETTING(    0x60, "Easy" )
  1612: 	PORT_DIPSETTING(    0x40, "Normal" )
  1613: 	PORT_DIPSETTING(    0x20, "Difficult" )
  1614: 	PORT_DIPSETTING(    0x00, "Very Difficult" )
  1615: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
  1616: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1617: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1618: 
  1619: 	PORT_START      /* PLAYER 4 */
  1620: //	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER4, IPT_UNKNOWN, IPT_START4 )
  1621: 
  1622: 	PORT_START	/* DSW3 */
  1623: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  1624: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1625: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1626: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
  1627: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  1628: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1629: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
  1630: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1631: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1632: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1633: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
  1634: INPUT_PORTS_END
  1635: 
  1636: INPUT_PORTS_START( punkshot )
  1637: 	PORT_START	/* DSW1/DSW2 */
  1638: 	PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coinage ) )
  1639: 	PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
  1640: 	PORT_DIPSETTING(      0x0002, DEF_STR( 4C_1C ) )
  1641: 	PORT_DIPSETTING(      0x0005, DEF_STR( 3C_1C ) )
  1642: 	PORT_DIPSETTING(      0x0008, DEF_STR( 2C_1C ) )
  1643: 	PORT_DIPSETTING(      0x0004, DEF_STR( 3C_2C ) )
  1644: 	PORT_DIPSETTING(      0x0001, DEF_STR( 4C_3C ) )
  1645: 	PORT_DIPSETTING(      0x000f, DEF_STR( 1C_1C ) )
  1646: 	PORT_DIPSETTING(      0x0003, DEF_STR( 3C_4C ) )
  1647: 	PORT_DIPSETTING(      0x0007, DEF_STR( 2C_3C ) )
  1648: 	PORT_DIPSETTING(      0x000e, DEF_STR( 1C_2C ) )
  1649: 	PORT_DIPSETTING(      0x0006, DEF_STR( 2C_5C ) )
  1650: 	PORT_DIPSETTING(      0x000d, DEF_STR( 1C_3C ) )
  1651: 	PORT_DIPSETTING(      0x000c, DEF_STR( 1C_4C ) )
  1652: 	PORT_DIPSETTING(      0x000b, DEF_STR( 1C_5C ) )
  1653: 	PORT_DIPSETTING(      0x000a, DEF_STR( 1C_6C ) )
  1654: 	PORT_DIPSETTING(      0x0009, DEF_STR( 1C_7C ) )
  1655: 	PORT_DIPNAME( 0x0010, 0x0010, "Continue" )
  1656: 	PORT_DIPSETTING(      0x0010, "Normal" )
  1657: 	PORT_DIPSETTING(      0x0000, "1 Coin" )
  1658: 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
  1659: 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
  1660: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  1661: 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
  1662: 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  1663: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  1664: 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
  1665: 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
  1666: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  1667: 	PORT_DIPNAME( 0x0300, 0x0300, "Energy" )
  1668: 	PORT_DIPSETTING(      0x0300, "30" )
  1669: 	PORT_DIPSETTING(      0x0200, "40" )
  1670: 	PORT_DIPSETTING(      0x0100, "50" )
  1671: 	PORT_DIPSETTING(      0x0000, "60" )
  1672: 	PORT_DIPNAME( 0x0c00, 0x0c00, "Period Length" )
  1673: 	PORT_DIPSETTING(      0x0c00, "2 Minutes" )
  1674: 	PORT_DIPSETTING(      0x0800, "3 Minutes" )
  1675: 	PORT_DIPSETTING(      0x0400, "4 Minutes" )
  1676: 	PORT_DIPSETTING(      0x0000, "5 Minutes" )
  1677: 	PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
  1678: 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
  1679: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  1680: 	PORT_DIPNAME( 0x6000, 0x6000, DEF_STR( Difficulty ) )
  1681: 	PORT_DIPSETTING(      0x6000, "Easy" )
  1682: 	PORT_DIPSETTING(      0x4000, "Medium" )
  1683: 	PORT_DIPSETTING(      0x2000, "Hard" )
  1684: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  1685: 	PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) )
  1686: 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
  1687: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  1688: 
  1689: 	PORT_START	/* COIN/DSW3 */
  1690: 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
  1691: 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
  1692: 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 )
  1693: 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN4 )
  1694: 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1695: 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SERVICE2 )
  1696: 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE3 )
  1697: 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_SERVICE4 )
  1698: 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1699: 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1700: 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1701: 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1702: 	PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Flip_Screen ) )
  1703: 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
  1704: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  1705: 	PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
  1706: 	PORT_DIPSETTING(      0x2000, DEF_STR( Off ) )
  1707: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  1708: 	PORT_SERVICE( 0x4000, IP_ACTIVE_LOW )
  1709: 	PORT_DIPNAME( 0x8000, 0x8000, "Freeze" )
  1710: 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
  1711: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  1712: 
  1713: 	PORT_START	/* IN0/IN1 */
  1714: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
  1715: 	KONAMI_PLAYERS_INPUT_MSB( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
  1716: 
  1717: 	PORT_START	/* IN2/IN3 */
  1718: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER3, IPT_UNKNOWN, IPT_UNKNOWN )
  1719: 	KONAMI_PLAYERS_INPUT_MSB( IPF_PLAYER4, IPT_UNKNOWN, IPT_UNKNOWN )
  1720: INPUT_PORTS_END
  1721: 
  1722: INPUT_PORTS_START( punksht2 )
  1723: 	PORT_START	/* DSW1/DSW2 */
  1724: 	PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coinage ) )
  1725: 	PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
  1726: 	PORT_DIPSETTING(      0x0002, DEF_STR( 4C_1C ) )
  1727: 	PORT_DIPSETTING(      0x0005, DEF_STR( 3C_1C ) )
  1728: 	PORT_DIPSETTING(      0x0008, DEF_STR( 2C_1C ) )
  1729: 	PORT_DIPSETTING(      0x0004, DEF_STR( 3C_2C ) )
  1730: 	PORT_DIPSETTING(      0x0001, DEF_STR( 4C_3C ) )
  1731: 	PORT_DIPSETTING(      0x000f, DEF_STR( 1C_1C ) )
  1732: 	PORT_DIPSETTING(      0x0003, DEF_STR( 3C_4C ) )
  1733: 	PORT_DIPSETTING(      0x0007, DEF_STR( 2C_3C ) )
  1734: 	PORT_DIPSETTING(      0x000e, DEF_STR( 1C_2C ) )
  1735: 	PORT_DIPSETTING(      0x0006, DEF_STR( 2C_5C ) )
  1736: 	PORT_DIPSETTING(      0x000d, DEF_STR( 1C_3C ) )
  1737: 	PORT_DIPSETTING(      0x000c, DEF_STR( 1C_4C ) )
  1738: 	PORT_DIPSETTING(      0x000b, DEF_STR( 1C_5C ) )
  1739: 	PORT_DIPSETTING(      0x000a, DEF_STR( 1C_6C ) )
  1740: 	PORT_DIPSETTING(      0x0009, DEF_STR( 1C_7C ) )
  1741: 	PORT_DIPNAME( 0x0010, 0x0010, "Continue" )
  1742: 	PORT_DIPSETTING(      0x0010, "Normal" )
  1743: 	PORT_DIPSETTING(      0x0000, "1 Coin" )
  1744: 	PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
  1745: 	PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
  1746: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  1747: 	PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
  1748: 	PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
  1749: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  1750: 	PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
  1751: 	PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
  1752: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  1753: 	PORT_DIPNAME( 0x0300, 0x0300, "Energy" )
  1754: 	PORT_DIPSETTING(      0x0300, "40" )
  1755: 	PORT_DIPSETTING(      0x0200, "50" )
  1756: 	PORT_DIPSETTING(      0x0100, "60" )
  1757: 	PORT_DIPSETTING(      0x0000, "70" )
  1758: 	PORT_DIPNAME( 0x0c00, 0x0c00, "Period Length" )
  1759: 	PORT_DIPSETTING(      0x0c00, "3 Minutes" )
  1760: 	PORT_DIPSETTING(      0x0800, "4 Minutes" )
  1761: 	PORT_DIPSETTING(      0x0400, "5 Minutes" )
  1762: 	PORT_DIPSETTING(      0x0000, "6 Minutes" )
  1763: 	PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
  1764: 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
  1765: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  1766: 	PORT_DIPNAME( 0x6000, 0x6000, DEF_STR( Difficulty ) )
  1767: 	PORT_DIPSETTING(      0x6000, "Easy" )
  1768: 	PORT_DIPSETTING(      0x4000, "Medium" )
  1769: 	PORT_DIPSETTING(      0x2000, "Hard" )
  1770: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  1771: 	PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) )
  1772: 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
  1773: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  1774: 
  1775: 	PORT_START	/* COIN/DSW3 */
  1776: 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
  1777: 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
  1778: 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1779: 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1780: 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1781: 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1782: 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1783: 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1784: 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
  1785: 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )
  1786: 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1787: 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1788: 	PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Flip_Screen ) )
  1789: 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
  1790: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  1791: 	PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
  1792: 	PORT_DIPSETTING(      0x2000, DEF_STR( Off ) )
  1793: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  1794: 	PORT_SERVICE( 0x4000, IP_ACTIVE_LOW )
  1795: 	PORT_DIPNAME( 0x8000, 0x8000, "Freeze" )
  1796: 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
  1797: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  1798: 
  1799: 	PORT_START	/* IN0/IN1 */
  1800: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
  1801: 	KONAMI_PLAYERS_INPUT_MSB( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
  1802: INPUT_PORTS_END
  1803: 
  1804: INPUT_PORTS_START( lgtnfght )
  1805: 	PORT_START
  1806: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
  1807: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
  1808: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )	/* vblank? checked during boot */
  1809: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
  1810: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
  1811: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1812: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1813: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1814: 
  1815: 	PORT_START
  1816: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER1, IPT_BUTTON3, IPT_UNKNOWN )
  1817: 
  1818: 	PORT_START
  1819: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER2, IPT_BUTTON3, IPT_UNKNOWN )
  1820: 
  1821: 	PORT_START	/* DSW1 */
  1822: 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
  1823: 	PORT_DIPSETTING(    0x03, "2" )
  1824: 	PORT_DIPSETTING(    0x02, "3" )
  1825: 	PORT_DIPSETTING(    0x01, "5" )
  1826: 	PORT_DIPSETTING(    0x00, "7" )
  1827: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  1828: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1829: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1830: 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )
  1831: 	PORT_DIPSETTING(    0x18, "100000 400000" )
  1832: 	PORT_DIPSETTING(    0x10, "150000 500000" )
  1833: 	PORT_DIPSETTING(    0x08, "200000" )
  1834: 	PORT_DIPSETTING(    0x00, "None" )
  1835: 	PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
  1836: 	PORT_DIPSETTING(    0x60, "Easy" )
  1837: 	PORT_DIPSETTING(    0x40, "Medium" )
  1838: 	PORT_DIPSETTING(    0x20, "Hard" )
  1839: 	PORT_DIPSETTING(    0x00, "Hardest" )
  1840: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
  1841: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1842: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1843: 
  1844: 	PORT_START	/* DSW2 */
  1845: 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
  1846: 	PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
  1847: 	PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
  1848: 	PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
  1849: 	PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
  1850: 	PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
  1851: 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
  1852: 	PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
  1853: 	PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
  1854: 	PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
  1855: 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
  1856: 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
  1857: 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
  1858: 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
  1859: 	PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
  1860: 	PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
  1861: 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  1862: 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
  1863: 	PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
  1864: 	PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
  1865: 	PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
  1866: 	PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
  1867: 	PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
  1868: 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
  1869: 	PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
  1870: 	PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
  1871: 	PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
  1872: 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
  1873: 	PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
  1874: 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
  1875: 	PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
  1876: 	PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
  1877: 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
  1878: //	PORT_DIPSETTING(    0x00, "Invalid" )
  1879: 
  1880: 	PORT_START	/* DSW3 */
  1881: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  1882: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1883: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1884: 	PORT_DIPNAME( 0x02, 0x00, "Sound" )
  1885: 	PORT_DIPSETTING(    0x02, "Mono" )
  1886: 	PORT_DIPSETTING(    0x00, "Stereo" )
  1887: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
  1888: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1889: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1890: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1891: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
  1892: INPUT_PORTS_END
  1893: 
  1894: INPUT_PORTS_START( detatwin )
  1895: 	PORT_START	/* IN0 */
  1896: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
  1897: 
  1898: 	PORT_START	/* IN1 */
  1899: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
  1900: 
  1901: 	PORT_START	/* COIN */
  1902: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
  1903: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
  1904: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1905: 	PORT_BITX(0x08, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
  1906: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
  1907: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
  1908: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* VBLANK? OBJMPX? */
  1909: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1910: 
  1911: 	PORT_START	/* EEPROM */
  1912: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  1913: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )	/* EEPROM status? - always 1 */
  1914: 	PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1915: INPUT_PORTS_END
  1916: 
  1917: INPUT_PORTS_START( glfgreat )
  1918: 	PORT_START	/* IN0 */
  1919: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER1, IPT_BUTTON3, IPT_BUTTON4 | IPF_PLAYER1 )
  1920: 	KONAMI_PLAYERS_INPUT_MSB( IPF_PLAYER2, IPT_BUTTON3, IPT_BUTTON4 | IPF_PLAYER2 )
  1921: 
  1922: 	PORT_START	/* IN1 */
  1923: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER3, IPT_BUTTON3, IPT_BUTTON4 | IPF_PLAYER3 )
  1924: 	KONAMI_PLAYERS_INPUT_MSB( IPF_PLAYER4, IPT_BUTTON3, IPT_BUTTON4 | IPF_PLAYER4 )
  1925: 
  1926: 	PORT_START
  1927: 	PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_A ) )
  1928: 	PORT_DIPSETTING(      0x0002, DEF_STR( 4C_1C ) )
  1929: 	PORT_DIPSETTING(      0x0005, DEF_STR( 3C_1C ) )
  1930: 	PORT_DIPSETTING(      0x0008, DEF_STR( 2C_1C ) )
  1931: 	PORT_DIPSETTING(      0x0004, DEF_STR( 3C_2C ) )
  1932: 	PORT_DIPSETTING(      0x0001, DEF_STR( 4C_3C ) )
  1933: 	PORT_DIPSETTING(      0x000f, DEF_STR( 1C_1C ) )
  1934: 	PORT_DIPSETTING(      0x0003, DEF_STR( 3C_4C ) )
  1935: 	PORT_DIPSETTING(      0x0007, DEF_STR( 2C_3C ) )
  1936: 	PORT_DIPSETTING(      0x000e, DEF_STR( 1C_2C ) )
  1937: 	PORT_DIPSETTING(      0x0006, DEF_STR( 2C_5C ) )
  1938: 	PORT_DIPSETTING(      0x000d, DEF_STR( 1C_3C ) )
  1939: 	PORT_DIPSETTING(      0x000c, DEF_STR( 1C_4C ) )
  1940: 	PORT_DIPSETTING(      0x000b, DEF_STR( 1C_5C ) )
  1941: 	PORT_DIPSETTING(      0x000a, DEF_STR( 1C_6C ) )
  1942: 	PORT_DIPSETTING(      0x0009, DEF_STR( 1C_7C ) )
  1943: 	PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
  1944: 	PORT_DIPNAME( 0x00f0, 0x00f0, DEF_STR( Coin_B ) )
  1945: 	PORT_DIPSETTING(      0x0020, DEF_STR( 4C_1C ) )
  1946: 	PORT_DIPSETTING(      0x0050, DEF_STR( 3C_1C ) )
  1947: 	PORT_DIPSETTING(      0x0080, DEF_STR( 2C_1C ) )
  1948: 	PORT_DIPSETTING(      0x0040, DEF_STR( 3C_2C ) )
  1949: 	PORT_DIPSETTING(      0x0010, DEF_STR( 4C_3C ) )
  1950: 	PORT_DIPSETTING(      0x00f0, DEF_STR( 1C_1C ) )
  1951: 	PORT_DIPSETTING(      0x0030, DEF_STR( 3C_4C ) )
  1952: 	PORT_DIPSETTING(      0x0070, DEF_STR( 2C_3C ) )
  1953: 	PORT_DIPSETTING(      0x00e0, DEF_STR( 1C_2C ) )
  1954: 	PORT_DIPSETTING(      0x0060, DEF_STR( 2C_5C ) )
  1955: 	PORT_DIPSETTING(      0x00d0, DEF_STR( 1C_3C ) )
  1956: 	PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_4C ) )
  1957: 	PORT_DIPSETTING(      0x00b0, DEF_STR( 1C_5C ) )
  1958: 	PORT_DIPSETTING(      0x00a0, DEF_STR( 1C_6C ) )
  1959: 	PORT_DIPSETTING(      0x0090, DEF_STR( 1C_7C ) )
  1960: //	PORT_DIPSETTING(      0x0000, "Invalid" )
  1961: 	PORT_DIPNAME( 0x0300, 0x0100, "Players/Controllers" )
  1962: 	PORT_DIPSETTING(      0x0300, "4/1" )
  1963: 	PORT_DIPSETTING(      0x0200, "4/2" )
  1964: 	PORT_DIPSETTING(      0x0100, "4/4" )
  1965: 	PORT_DIPSETTING(      0x0000, "3/3" )
  1966: 	PORT_DIPNAME( 0x0400, 0x0000, "Sound" )
  1967: 	PORT_DIPSETTING(      0x0400, "Mono" )
  1968: 	PORT_DIPSETTING(      0x0000, "Stereo" )
  1969: 	PORT_DIPNAME( 0x1800, 0x1800, "Initial/Maximum Credit" )
  1970: 	PORT_DIPSETTING(      0x1800, "2/3" )
  1971: 	PORT_DIPSETTING(      0x1000, "2/4" )
  1972: 	PORT_DIPSETTING(      0x0800, "2/5" )
  1973: 	PORT_DIPSETTING(      0x0000, "3/5" )
  1974: 	PORT_DIPNAME( 0x6000, 0x4000, DEF_STR( Difficulty ) )
  1975: 	PORT_DIPSETTING(      0x6000, "Easy" )
  1976: 	PORT_DIPSETTING(      0x4000, "Normal" )
  1977: 	PORT_DIPSETTING(      0x2000, "Hard" )
  1978: 	PORT_DIPSETTING(      0x0000, "Hardest" )
  1979: 	PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) )
  1980: 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
  1981: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  1982: 
  1983: 	PORT_START
  1984: 	PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
  1985: 	PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
  1986: 	PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 )
  1987: 	PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN4 )
  1988: 	PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_SERVICE1 )	/* service coin */
  1989: 	PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1990: 	PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1991: 	PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1992: 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
  1993: 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )
  1994: 	PORT_BITX(0x0400, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
  1995: 	PORT_DIPNAME( 0x8000, 0x0000, "Freeze" )	/* ?? VBLANK ?? */
  1996: 	PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
  1997: 	PORT_DIPSETTING(      0x8000, DEF_STR( On ) )
  1998: 	PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Flip_Screen ) )
  1999: 	PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
  2000: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  2001: 	PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
  2002: 	PORT_DIPSETTING(      0x2000, DEF_STR( Off ) )
  2003: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  2004: //	PORT_SERVICE( 0x4000, IP_ACTIVE_LOW )
  2005: 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE )
  2006: 	PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
  2007: 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
  2008: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  2009: INPUT_PORTS_END
  2010: 
  2011: INPUT_PORTS_START( ssriders )
  2012: 	PORT_START	/* IN0 */
  2013: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER1, IPT_UNKNOWN, IPT_START1 )
  2014: 
  2015: 	PORT_START	/* IN1 */
  2016: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER2, IPT_UNKNOWN, IPT_START2 )
  2017: 
  2018: 	PORT_START	/* COIN */
  2019: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
  2020: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
  2021: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2022: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2023: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
  2024: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 )
  2025: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2026: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2027: 
  2028: 	PORT_START	/* EEPROM and service */
  2029: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  2030: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )	/* EEPROM status? - always 1 */
  2031: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* ?? TMNT2: OBJMPX */
  2032: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VBLANK )	/* ?? TMNT2: NVBLK */
  2033: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* ?? TMNT2: IPL0 */
  2034: 	PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* unused? */
  2035: 	PORT_BITX(0x80, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
  2036: INPUT_PORTS_END
  2037: 
  2038: INPUT_PORTS_START( ssridr4p )
  2039: 	PORT_START	/* IN0 */
  2040: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER1, IPT_UNKNOWN, IPT_UNKNOWN )
  2041: 
  2042: 	PORT_START	/* IN1 */
  2043: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER2, IPT_UNKNOWN, IPT_UNKNOWN )
  2044: 
  2045: 	PORT_START	/* COIN */
  2046: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
  2047: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
  2048: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
  2049: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 )
  2050: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
  2051: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 )
  2052: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE3 )
  2053: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 )
  2054: 
  2055: 	PORT_START	/* EEPROM and service */
  2056: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  2057: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )	/* EEPROM status? - always 1 */
  2058: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* ?? TMNT2: OBJMPX */
  2059: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VBLANK )	/* ?? TMNT2: NVBLK */
  2060: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* ?? TMNT2: IPL0 */
  2061: 	PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* unused? */
  2062: 	PORT_BITX(0x80, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
  2063: 
  2064: 	PORT_START	/* IN2 */
  2065: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER3, IPT_UNKNOWN, IPT_UNKNOWN )
  2066: 
  2067: 	PORT_START	/* IN3 */
  2068: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER4, IPT_UNKNOWN, IPT_UNKNOWN )
  2069: INPUT_PORTS_END
  2070: 
  2071: /* Same as 'ssridr4p', but additional Start button for each player.
  2072:    COIN3, COIN4, SERVICE3 and SERVICE4 only have an effect in the "test mode". */
  2073: INPUT_PORTS_START( ssrid4ps )
  2074: 	PORT_START	/* IN0 */
  2075: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER1, IPT_UNKNOWN, IPT_START1 )
  2076: 
  2077: 	PORT_START	/* IN1 */
  2078: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER2, IPT_UNKNOWN, IPT_START2 )
  2079: 
  2080: 	PORT_START	/* COIN */
  2081: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
  2082: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
  2083: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
  2084: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 )
  2085: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
  2086: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 )
  2087: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE3 )
  2088: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 )
  2089: 
  2090: 	PORT_START	/* EEPROM and service */
  2091: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  2092: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )	/* EEPROM status? - always 1 */
  2093: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* ?? TMNT2: OBJMPX */
  2094: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VBLANK )	/* ?? TMNT2: NVBLK */
  2095: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* ?? TMNT2: IPL0 */
  2096: 	PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* unused? */
  2097: 	PORT_BITX(0x80, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
  2098: 
  2099: 	PORT_START	/* IN2 */
  2100: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER3, IPT_UNKNOWN, IPT_START3 )
  2101: 
  2102: 	PORT_START	/* IN3 */
  2103: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER4, IPT_UNKNOWN, IPT_START4 )
  2104: INPUT_PORTS_END
  2105: 
  2106: /* Version for the bootleg, which has the service switch a little different */
  2107: INPUT_PORTS_START( ssridbl )
  2108: 	PORT_START	/* IN0 */
  2109: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER1, IPT_UNKNOWN, IPT_START1 )
  2110: 
  2111: 	PORT_START	/* IN1 */
  2112: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER2, IPT_UNKNOWN, IPT_START2 )
  2113: 
  2114: 	PORT_START	/* COIN */
  2115: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
  2116: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
  2117: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
  2118: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 )
  2119: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
  2120: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 )
  2121: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE3 )
  2122: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 )
  2123: 
  2124: 	PORT_START	/* EEPROM and service */
  2125: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  2126: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )	/* EEPROM status? - always 1 */
  2127: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2128: 	PORT_BITX(0x08, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
  2129: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2130: 	PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* unused? */
  2131: 	PORT_BITX(0x80, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
  2132: 
  2133: 	PORT_START	/* IN2 */
  2134: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER3, IPT_UNKNOWN, IPT_START3 )
  2135: 
  2136: 	PORT_START	/* IN3 */
  2137: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER4, IPT_UNKNOWN, IPT_START4 )
  2138: INPUT_PORTS_END
  2139: 
  2140: INPUT_PORTS_START( qgakumon )
  2141: 	PORT_START	/* IN0 */
  2142: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )	// Joystick control : Left
  2143: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER1 )	// Joystick control : Right
  2144: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )	// Joystick control : Up
  2145: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )	// Joystick control : Down
  2146: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER1 )	// Joystick control : Button
  2147: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2148: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2149: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
  2150: 
  2151: 	PORT_START	/* IN1 */
  2152: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )	// Joystick control : Left
  2153: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER2 )	// Joystick control : Right
  2154: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )	// Joystick control : Up
  2155: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )	// Joystick control : Down
  2156: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER2 )	// Joystick control : Button
  2157: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2158: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2159: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
  2160: 
  2161: 	PORT_START	/* COIN */
  2162: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
  2163: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
  2164: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2165: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2166: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
  2167: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2168: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2169: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2170: 
  2171: 	PORT_START	/* EEPROM and service */
  2172: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  2173: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )	/* EEPROM status? - always 1 */
  2174: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* ?? TMNT2: OBJMPX */
  2175: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VBLANK )	/* ?? TMNT2: NVBLK (needs to be ACTIVE_HIGH to avoid problems) */
  2176: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* ?? TMNT2: IPL0 */
  2177: 	PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* unused? */
  2178: 	PORT_BITX(0x80, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
  2179: INPUT_PORTS_END
  2180: 
  2181: INPUT_PORTS_START( thndrx2 )
  2182: 	PORT_START
  2183: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER1, IPT_UNKNOWN, IPT_START1 )
  2184: 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 )
  2185: 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 )
  2186: 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_SERVICE1 )
  2187: 	PORT_BITX(0x0800, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
  2188: 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2189: 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2190: 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2191: 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2192: 
  2193: 	PORT_START	/* EEPROM and service */
  2194: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER2, IPT_UNKNOWN, IPT_START2 )
  2195: 	PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  2196: 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SPECIAL )	/* EEPROM status? - always 1 */
  2197: 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2198: 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* VBLK?? */
  2199: 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2200: 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2201: 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2202: 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2203: INPUT_PORTS_END
  2204: 
  2205: INPUT_PORTS_START( prmrsocr )
  2206: 	PORT_START
  2207: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER1, IPT_UNKNOWN, IPT_START1 )
  2208: 	PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_SERVICE1 )
  2209: 	PORT_BITX(0x0200, IP_ACTIVE_LOW, IPT_SERVICE, DEF_STR( Service_Mode ), KEYCODE_F2, IP_JOY_NONE )
  2210: 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 )
  2211: 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2212: 	PORT_DIPNAME( 0x1000, 0x0000, "Sound" )
  2213: 	PORT_DIPSETTING(      0x1000, "Mono" )
  2214: 	PORT_DIPSETTING(      0x0000, "Stereo" )
  2215: 	PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unused ) )
  2216: 	PORT_DIPSETTING(      0x2000, DEF_STR( Off ) )
  2217: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  2218: 	PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unused ) )
  2219: 	PORT_DIPSETTING(      0x4000, DEF_STR( Off ) )
  2220: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  2221: 	PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unused ) )
  2222: 	PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
  2223: 	PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
  2224: 
  2225: 	PORT_START
  2226: 	KONAMI_PLAYERS_INPUT_LSB( IPF_PLAYER2, IPT_UNKNOWN, IPT_START2 )
  2227: 	PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* EEPROM data */
  2228: 	PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SPECIAL )	/* EEPROM status? - always 1 */
  2229: 	PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN2 )
  2230: 	PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2231: 	PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2232: 	PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2233: 	PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2234: 	PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
  2235: INPUT_PORTS_END
  2236: 
  2237: 
  2238: static void cbj_irq_handler(int state)
  2239: {
  2240: 	cbj_snd_irqlatch = state;
  2241: }
  2242: 
  2243: static struct YM2151interface ym2151_interface_cbj =
  2244: {
  2245: 	1,			/* 1 chip */
  2246: 	3579545,	/* 3.579545 MHz */
  2247: 	{ YM3012_VOL(100,MIXER_PAN_LEFT,100,MIXER_PAN_RIGHT) },
  2248: 	{ cbj_irq_handler }
  2249: };
  2250: 
  2251: static struct YM2151interface ym2151_interface =
  2252: {
  2253: 	1,			/* 1 chip */
  2254: 	3579545,	/* 3.579545 MHz */
  2255: 	{ YM3012_VOL(100,MIXER_PAN_LEFT,100,MIXER_PAN_RIGHT) },
  2256: 	{ 0 }
  2257: };
  2258: 
  2259: static void volume_callback(int v)
  2260: {
  2261: 	K007232_set_volume(0,0,(v >> 4) * 0x11,0);
  2262: 	K007232_set_volume(0,1,0,(v & 0x0f) * 0x11);
  2263: }
  2264: 
  2265: static struct K007232_interface k007232_interface =
  2266: {
  2267: 	1,		/* number of chips */
  2268: 	3579545,	/* clock */
  2269: 	{ REGION_SOUND1 },	/* memory regions */
  2270: 	{ K007232_VOL(20,MIXER_PAN_CENTER,20,MIXER_PAN_CENTER) },	/* volume */
  2271: 	{ volume_callback }	/* external port callback */
  2272: };
  2273: 
  2274: static struct UPD7759_interface upd7759_interface =
  2275: {
  2276: 	1,		/* number of chips */
  2277: 	{ 60 }, /* volume */
  2278: 	{ REGION_SOUND2 },		/* memory region */
  2279: 	UPD7759_STANDALONE_MODE,		/* chip mode */
  2280: 	{0}
  2281: };
  2282: 
  2283: static struct Samplesinterface samples_interface =
  2284: {
  2285: 	1,	/* 1 channel for the title music */
  2286: 	100	/* volume */
  2287: };
  2288: 
  2289: static struct CustomSound_interface custom_interface =
  2290: {
  2291: 	tmnt_decode_sample,
  2292: 	0,
  2293: 	0
  2294: };
  2295: 
  2296: static struct K053260_interface k053260_interface_nmi =
  2297: {
  2298: 	1,
  2299: 	{ 3579545 },
  2300: 	{ REGION_SOUND1 }, /* memory region */
  2301: 	{ { MIXER(70,MIXER_PAN_LEFT), MIXER(70,MIXER_PAN_RIGHT) } },
  2302: //	{ sound_nmi_callback },
  2303: };
  2304: 
  2305: static struct K053260_interface k053260_interface =
  2306: {
  2307: 	1,
  2308: 	{ 3579545 },
  2309: 	{ REGION_SOUND1 }, /* memory region */
  2310: 	{ { MIXER(70,MIXER_PAN_LEFT), MIXER(70,MIXER_PAN_RIGHT) } },
  2311: 	{ 0 }
  2312: };
  2313: 
  2314: static struct K053260_interface glfgreat_k053260_interface =
  2315: {
  2316: 	1,
  2317: 	{ 3579545 },
  2318: 	{ REGION_SOUND1 }, /* memory region */
  2319: 	{ { MIXER(100,MIXER_PAN_LEFT), MIXER(100,MIXER_PAN_RIGHT) } },
  2320: //	{ sound_nmi_callback },
  2321: };
  2322: 
  2323: static struct OKIM6295interface okim6295_interface =
  2324: {
  2325: 	1,			/* 1 chip */
  2326: 	{ 8000 },
  2327: 	{ REGION_SOUND1 },
  2328: 	{ 100 }
  2329: };
  2330: 
  2331: static MACHINE_DRIVER_START( cuebrckj )
  2332: 
  2333: 	/* basic machine hardware */
  2334: 	MDRV_CPU_ADD(M68000, 8000000)	/* 8 MHz */
  2335: 	MDRV_CPU_MEMORY(cuebrckj_readmem,cuebrckj_writemem)
  2336: 	MDRV_CPU_VBLANK_INT(cbj_interrupt,10)
  2337: 
  2338: 	MDRV_FRAMES_PER_SECOND(60)
  2339: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  2340: 
  2341: 	/* video hardware */
  2342: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS)
  2343: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  2344: 	MDRV_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
  2345: 	MDRV_PALETTE_LENGTH(1024)
  2346: 	MDRV_NVRAM_HANDLER(generic_0fill)
  2347: 
  2348: 	MDRV_VIDEO_START(cuebrckj)
  2349: 	MDRV_VIDEO_UPDATE(mia)
  2350: 
  2351: 	/* sound hardware */
  2352: 	MDRV_SOUND_ADD(YM2151, ym2151_interface_cbj)
  2353: MACHINE_DRIVER_END
  2354: 
  2355: static MACHINE_DRIVER_START( mia )
  2356: 
  2357: 	/* basic machine hardware */
  2358: 	MDRV_CPU_ADD(M68000, 8000000)	/* 8 MHz */
  2359: 	MDRV_CPU_MEMORY(mia_readmem,mia_writemem)
  2360: 	MDRV_CPU_VBLANK_INT(irq5_line_hold,1)
  2361: 
  2362: 	MDRV_CPU_ADD(Z80, 3579545)
  2363: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* 3.579545 MHz */
  2364: 	MDRV_CPU_MEMORY(mia_s_readmem,mia_s_writemem)
  2365: 
  2366: 	MDRV_FRAMES_PER_SECOND(60)
  2367: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  2368: 
  2369: 	/* video hardware */
  2370: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS)
  2371: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  2372: 	MDRV_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
  2373: 	MDRV_PALETTE_LENGTH(1024)
  2374: 
  2375: 	MDRV_VIDEO_START(mia)
  2376: 	MDRV_VIDEO_UPDATE(mia)
  2377: 
  2378: 	/* sound hardware */
  2379: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  2380: 	MDRV_SOUND_ADD(K007232, k007232_interface)
  2381: MACHINE_DRIVER_END
  2382: 
  2383: 
  2384: static MACHINE_DRIVER_START( tmnt )
  2385: 
  2386: 	/* basic machine hardware */
  2387: 	MDRV_CPU_ADD(M68000, 8000000)	/* 8 MHz */
  2388: 	MDRV_CPU_MEMORY(tmnt_readmem,tmnt_writemem)
  2389: 	MDRV_CPU_VBLANK_INT(irq5_line_hold,1)
  2390: 
  2391: 	MDRV_CPU_ADD(Z80, 3579545)
  2392: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* 3.579545 MHz */
  2393: 	MDRV_CPU_MEMORY(tmnt_s_readmem,tmnt_s_writemem)
  2394: 
  2395: 	MDRV_FRAMES_PER_SECOND(60)
  2396: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  2397: 
  2398: 	/* video hardware */
  2399: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS)
  2400: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  2401: 	MDRV_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
  2402: 	MDRV_PALETTE_LENGTH(1024)
  2403: 
  2404: 	MDRV_VIDEO_START(tmnt)
  2405: 	MDRV_VIDEO_UPDATE(tmnt)
  2406: 
  2407: 	/* sound hardware */
  2408: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  2409: 	MDRV_SOUND_ADD(K007232, k007232_interface)
  2410: 	MDRV_SOUND_ADD(UPD7759, upd7759_interface)
  2411: 	MDRV_SOUND_ADD(SAMPLES, samples_interface)
  2412: 	MDRV_SOUND_ADD(CUSTOM, custom_interface)
  2413: MACHINE_DRIVER_END
  2414: 
  2415: 
  2416: static MACHINE_DRIVER_START( punkshot )
  2417: 
  2418: 	/* basic machine hardware */
  2419: 	MDRV_CPU_ADD(M68000, 12000000)	/* CPU is 68000/12, but this doesn't necessarily mean it's */
  2420: 									/* running at 12MHz. TMNT uses 8MHz */
  2421: 	MDRV_CPU_MEMORY(punkshot_readmem,punkshot_writemem)
  2422: 	MDRV_CPU_VBLANK_INT(punkshot_interrupt,1)
  2423: 
  2424: 	MDRV_CPU_ADD(Z80, 3579545)
  2425: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* 3.579545 MHz */
  2426: 	MDRV_CPU_MEMORY(punkshot_s_readmem,punkshot_s_writemem)
  2427: 								/* NMIs are generated by the 053260 */
  2428: 	MDRV_FRAMES_PER_SECOND(60)
  2429: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  2430: 
  2431: 	/* video hardware */
  2432: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS)
  2433: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  2434: 	MDRV_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
  2435: 	MDRV_PALETTE_LENGTH(2048)
  2436: 
  2437: 	MDRV_VIDEO_START(punkshot)
  2438: 	MDRV_VIDEO_UPDATE(punkshot)
  2439: 
  2440: 	/* sound hardware */
  2441: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  2442: 	MDRV_SOUND_ADD(K053260, k053260_interface_nmi)
  2443: MACHINE_DRIVER_END
  2444: 
  2445: 
  2446: static MACHINE_DRIVER_START( lgtnfght )
  2447: 
  2448: 	/* basic machine hardware */
  2449: 	MDRV_CPU_ADD(M68000, 12000000)	/* 12 MHz */
  2450: 	MDRV_CPU_MEMORY(lgtnfght_readmem,lgtnfght_writemem)
  2451: 	MDRV_CPU_VBLANK_INT(lgtnfght_interrupt,1)
  2452: 
  2453: 	MDRV_CPU_ADD(Z80, 3579545)
  2454: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* 3.579545 MHz */
  2455: 	MDRV_CPU_MEMORY(lgtnfght_s_readmem,lgtnfght_s_writemem)
  2456: 
  2457: 	MDRV_FRAMES_PER_SECOND(60)
  2458: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  2459: 
  2460: 	/* video hardware */
  2461: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS)
  2462: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  2463: 	MDRV_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
  2464: 	MDRV_PALETTE_LENGTH(2048)
  2465: 
  2466: 	MDRV_VIDEO_START(lgtnfght)
  2467: 	MDRV_VIDEO_UPDATE(lgtnfght)
  2468: 
  2469: 	/* sound hardware */
  2470: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  2471: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  2472: 	MDRV_SOUND_ADD(K053260, k053260_interface)
  2473: MACHINE_DRIVER_END
  2474: 
  2475: 
  2476: static MACHINE_DRIVER_START( detatwin )
  2477: 
  2478: 	/* basic machine hardware */
  2479: 	MDRV_CPU_ADD(M68000, 16000000)	/* 16 MHz */
  2480: 	MDRV_CPU_MEMORY(detatwin_readmem,detatwin_writemem)
  2481: 	MDRV_CPU_VBLANK_INT(punkshot_interrupt,1)
  2482: 
  2483: 	MDRV_CPU_ADD(Z80, 3579545)
  2484: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* ????? */
  2485: 	MDRV_CPU_MEMORY(ssriders_s_readmem,ssriders_s_writemem)
  2486: 								/* NMIs are generated by the 053260 */
  2487: 	MDRV_FRAMES_PER_SECOND(60)
  2488: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  2489: 
  2490: 	MDRV_NVRAM_HANDLER(eeprom)
  2491: 
  2492: 	/* video hardware */
  2493: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS)
  2494: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  2495: 	MDRV_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
  2496: 	MDRV_PALETTE_LENGTH(2048)
  2497: 
  2498: 	MDRV_VIDEO_START(detatwin)
  2499: 	MDRV_VIDEO_UPDATE(lgtnfght)
  2500: 
  2501: 	/* sound hardware */
  2502: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  2503: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  2504: 	MDRV_SOUND_ADD(K053260, k053260_interface_nmi)
  2505: MACHINE_DRIVER_END
  2506: 
  2507: 
  2508: 
  2509: static struct GfxLayout zoomlayout =
  2510: {
  2511: 	16,16,
  2512: 	RGN_FRAC(1,1),
  2513: 	4,
  2514: 	{ 0, 1, 2, 3 },
  2515: 	{ 1*4, 0*4, 3*4, 2*4, 5*4, 4*4, 7*4, 6*4,
  2516: 			9*4, 8*4, 11*4, 10*4, 13*4, 12*4, 15*4, 14*4 },
  2517: 	{ 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,
  2518: 			8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64, },
  2519: 	16*64
  2520: };
  2521: static struct GfxDecodeInfo glfgreat_gfxdecodeinfo[] =
  2522: {
  2523: 	{ REGION_GFX3, 0, &zoomlayout, 0x400, 16 },
  2524: 	{ -1 }
  2525: };
  2526: 
  2527: static MACHINE_DRIVER_START( glfgreat )
  2528: 
  2529: 	/* basic machine hardware */
  2530: 	MDRV_CPU_ADD(M68000, 12000000)	/* ? */
  2531: 	MDRV_CPU_MEMORY(glfgreat_readmem,glfgreat_writemem)
  2532: 	MDRV_CPU_VBLANK_INT(lgtnfght_interrupt,1)
  2533: 
  2534: 	MDRV_CPU_ADD(Z80, 3579545)
  2535: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* ? */
  2536: 	MDRV_CPU_MEMORY(glfgreat_s_readmem,glfgreat_s_writemem)
  2537: 								/* NMIs are generated by the 053260 */
  2538: 	MDRV_FRAMES_PER_SECOND(60)
  2539: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  2540: 
  2541: 	/* video hardware */
  2542: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS)
  2543: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  2544: 	MDRV_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
  2545: 	MDRV_GFXDECODE(glfgreat_gfxdecodeinfo)
  2546: 	MDRV_PALETTE_LENGTH(2048)
  2547: 
  2548: 	MDRV_VIDEO_START(glfgreat)
  2549: 	MDRV_VIDEO_UPDATE(glfgreat)
  2550: 
  2551: 	/* sound hardware */
  2552: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  2553: 	MDRV_SOUND_ADD(K053260, glfgreat_k053260_interface)
  2554: MACHINE_DRIVER_END
  2555: 
  2556: 
  2557: static void sound_nmi(void)
  2558: {
  2559: 	cpu_set_nmi_line(1, PULSE_LINE);
  2560: }
  2561: 
  2562: static struct K054539interface k054539_interface =
  2563: {
  2564: 	1,			/* 1 chip */
  2565: 	48000,
  2566: 	{ REGION_SOUND1 },
  2567: 	{ { 100, 100 } },
  2568: 	{ 0 },
  2569: 	{ sound_nmi }
  2570: };
  2571: 
  2572: static MACHINE_DRIVER_START( prmrsocr )
  2573: 
  2574: 	/* basic machine hardware */
  2575: 	MDRV_CPU_ADD(M68000, 12000000)	/* ? */
  2576: 	MDRV_CPU_MEMORY(prmrsocr_readmem,prmrsocr_writemem)
  2577: 	MDRV_CPU_VBLANK_INT(lgtnfght_interrupt,1)
  2578: 
  2579: 	MDRV_CPU_ADD(Z80, 8000000)
  2580: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* ? */
  2581: 	MDRV_CPU_MEMORY(prmrsocr_s_readmem,prmrsocr_s_writemem)
  2582: 								/* NMIs are generated by the 054539 */
  2583: 	MDRV_FRAMES_PER_SECOND(60)
  2584: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  2585: 
  2586: 	MDRV_NVRAM_HANDLER(thndrx2)
  2587: 
  2588: 	/* video hardware */
  2589: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS)
  2590: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  2591: 	MDRV_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
  2592: 	MDRV_GFXDECODE(glfgreat_gfxdecodeinfo)
  2593: 	MDRV_PALETTE_LENGTH(2048)
  2594: 
  2595: 	MDRV_VIDEO_START(prmrsocr)
  2596: 	MDRV_VIDEO_UPDATE(glfgreat)
  2597: 
  2598: 	/* sound hardware */
  2599: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  2600: 	MDRV_SOUND_ADD(K054539, k054539_interface)
  2601: MACHINE_DRIVER_END
  2602: 
  2603: 
  2604: static MACHINE_DRIVER_START( tmnt2 )
  2605: 
  2606: 	/* basic machine hardware */
  2607: 	MDRV_CPU_ADD(M68000, 16000000)	/* 16 MHz */
  2608: 	MDRV_CPU_MEMORY(tmnt2_readmem,tmnt2_writemem)
  2609: 	MDRV_CPU_VBLANK_INT(punkshot_interrupt,1)
  2610: 
  2611: 	MDRV_CPU_ADD(Z80, 8000000)
  2612: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* 8 MHz; clock is correct, but there's 1 cycle wait for ROM/RAM */
  2613: 						/* access. Access speed of ROM/RAM used on the machine is 150ns, */
  2614: 						/* without the wait, they cannot run on 8MHz.                    */
  2615: 						/* We are not emulating the wait state, so the ROM test ends at  */
  2616: 						/* 02 instead of 00. */
  2617: 	MDRV_CPU_MEMORY(ssriders_s_readmem,ssriders_s_writemem)
  2618: 								/* NMIs are generated by the 053260 */
  2619: 	MDRV_FRAMES_PER_SECOND(60)
  2620: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  2621: 
  2622: 	MDRV_NVRAM_HANDLER(eeprom)
  2623: 
  2624: 	/* video hardware */
  2625: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS)
  2626: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  2627: 	MDRV_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
  2628: 	MDRV_PALETTE_LENGTH(2048)
  2629: 
  2630: 	MDRV_VIDEO_START(lgtnfght)
  2631: 	MDRV_VIDEO_UPDATE(tmnt2)
  2632: 
  2633: 	/* sound hardware */
  2634: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  2635: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  2636: 	MDRV_SOUND_ADD(K053260, k053260_interface_nmi)
  2637: MACHINE_DRIVER_END
  2638: 
  2639: 
  2640: static MACHINE_DRIVER_START( ssriders )
  2641: 
  2642: 	/* basic machine hardware */
  2643: 	MDRV_CPU_ADD(M68000, 16000000)	/* 16 MHz */
  2644: 	MDRV_CPU_MEMORY(ssriders_readmem,ssriders_writemem)
  2645: 	MDRV_CPU_VBLANK_INT(punkshot_interrupt,1)
  2646: 
  2647: 	MDRV_CPU_ADD(Z80, 4000000)
  2648: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* ????? makes the ROM test sync */
  2649: 	MDRV_CPU_MEMORY(ssriders_s_readmem,ssriders_s_writemem)
  2650: 								/* NMIs are generated by the 053260 */
  2651: 	MDRV_FRAMES_PER_SECOND(60)
  2652: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  2653: 
  2654: 	MDRV_NVRAM_HANDLER(eeprom)
  2655: 
  2656: 	/* video hardware */
  2657: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS)
  2658: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  2659: 	MDRV_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
  2660: 	MDRV_PALETTE_LENGTH(2048)
  2661: 
  2662: 	MDRV_VIDEO_START(lgtnfght)
  2663: 	MDRV_VIDEO_UPDATE(tmnt2)
  2664: 
  2665: 	/* sound hardware */
  2666: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  2667: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  2668: 	MDRV_SOUND_ADD(K053260, k053260_interface_nmi)
  2669: MACHINE_DRIVER_END
  2670: 
  2671: 
  2672: static MACHINE_DRIVER_START( ssridersbl )
  2673: 
  2674: 	/* basic machine hardware */
  2675: 	MDRV_CPU_ADD(M68000, 16000000)	/* 16 MHz */
  2676: 	MDRV_CPU_MEMORY(ssridersbl_readmem,ssridersbl_writemem)
  2677: 	MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
  2678: 
  2679: 	MDRV_FRAMES_PER_SECOND(60)
  2680: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  2681: 
  2682: 	MDRV_NVRAM_HANDLER(eeprom)
  2683: 
  2684: 	/* video hardware */
  2685: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS)
  2686: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  2687: 	MDRV_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
  2688: 	MDRV_PALETTE_LENGTH(2048)
  2689: 
  2690: 	MDRV_VIDEO_START(sunsetbl)
  2691: 	MDRV_VIDEO_UPDATE(tmnt2)
  2692: 
  2693: 	/* sound hardware */
  2694: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  2695: 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
  2696: MACHINE_DRIVER_END
  2697: 
  2698: static MACHINE_DRIVER_START( thndrx2 )
  2699: 
  2700: 	/* basic machine hardware */
  2701: 	MDRV_CPU_ADD(M68000, 12000000)	/* 12 MHz */
  2702: 	MDRV_CPU_MEMORY(thndrx2_readmem,thndrx2_writemem)
  2703: 	MDRV_CPU_VBLANK_INT(punkshot_interrupt,1)
  2704: 
  2705: 	MDRV_CPU_ADD(Z80, 3579545)
  2706: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* ????? */
  2707: 	MDRV_CPU_MEMORY(thndrx2_s_readmem,thndrx2_s_writemem)
  2708: 								/* NMIs are generated by the 053260 */
  2709: 	MDRV_FRAMES_PER_SECOND(60)
  2710: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
  2711: 
  2712: 	MDRV_NVRAM_HANDLER(thndrx2)
  2713: 
  2714: 	/* video hardware */
  2715: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS)
  2716: 	MDRV_SCREEN_SIZE(64*8, 32*8)
  2717: 	MDRV_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
  2718: 	MDRV_PALETTE_LENGTH(2048)
  2719: 
  2720: 	MDRV_VIDEO_START(thndrx2)
  2721: 	MDRV_VIDEO_UPDATE(thndrx2)
  2722: 
  2723: 	/* sound hardware */
  2724: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  2725: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  2726: 	MDRV_SOUND_ADD(K053260, k053260_interface_nmi)
  2727: MACHINE_DRIVER_END
  2728: 
  2729: 
  2730: 
  2731: /***************************************************************************
  2732: 
  2733:   Game driver(s)
  2734: 
  2735: ***************************************************************************/
  2736: 
  2737: ROM_START( cuebrckj )
  2738: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )	/* 2*128k and 2*64k for 68000 code */
  2739: 	ROM_LOAD16_BYTE( "903d25.g12",   0x00000, 0x10000, CRC(8d575663) SHA1(0e308e04936efa80351bf808ac304d3fcc82f19a) )
  2740: 	ROM_LOAD16_BYTE( "903d24.f12",   0x00001, 0x10000, CRC(2973625d) SHA1(e2496704390930761204624d4bf6b0b68d3133ab) )
  2741: 
  2742: 	ROM_REGION( 0x40000, REGION_GFX1, 0 ) /* graphics (addressable by the main CPU) */
  2743: 	ROM_LOAD16_BYTE( "903c29.k21",  0x000000, 0x10000, CRC(fada986d) SHA1(79d13dcee5433457c25a8cca0093bddd55165a72) )
  2744: 	ROM_LOAD16_BYTE( "903c27.k17",  0x000001, 0x10000, CRC(5bd4b8e1) SHA1(0bc5e508af20e479c7913fab1ef158165fe67079) )
  2745: 	ROM_LOAD16_BYTE( "903c28.k19",  0x020000, 0x10000, CRC(80d2bfaf) SHA1(3b38558d4f17309154457e9e7780a25577d1858d) )
  2746: 	ROM_LOAD16_BYTE( "903c26.k15",  0x020001, 0x10000, CRC(f808fa3d) SHA1(2b0fa1581acc5c4f7055e6faad97664ef16cc082) )
  2747: 
  2748: 	ROM_REGION( 0x40000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  2749: 	ROM_LOAD16_BYTE( "903d23.k12",  0x000000, 0x10000, CRC(c39fc9fd) SHA1(fe5a63e5d898f985f9ab9be5b701af4a8e2a9049) )        /* 8x8 tiles */
  2750: 	ROM_LOAD16_BYTE( "903d21.k8",   0x000001, 0x10000, CRC(3c7bf8cd) SHA1(c487e0109f56b3b0e2aa2c4db2dfb30ad74fb0ab) )        /* 8x8 tiles */
  2751: 	ROM_LOAD16_BYTE( "903d22.k10",  0x020000, 0x10000, CRC(95ad8591) SHA1(4e3c8c794be1cd78044eb0eebfa3c755e2aaf54f) )        /* 8x8 tiles */
  2752: 	ROM_LOAD16_BYTE( "903d20.k6",   0x020001, 0x10000, CRC(2872a1bb) SHA1(da7c7a41860283eac49facaa3beb712d3be7db56) )        /* 8x8 tiles */
  2753: ROM_END
  2754: 
  2755: ROM_START( mia )
  2756: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )	/* 2*128k and 2*64k for 68000 code */
  2757: 	ROM_LOAD16_BYTE( "808t20.h17",   0x00000, 0x20000, CRC(6f0acb1d) SHA1(af3447fd4645cb03b1660df2ae076fa53ff81945) )
  2758: 	ROM_LOAD16_BYTE( "808t21.j17",   0x00001, 0x20000, CRC(42a30416) SHA1(8d9d27de96e79cae5230705beecadff0180cc479) )
  2759: 
  2760: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
  2761: 	ROM_LOAD( "808e03.f4",    0x00000, 0x08000, CRC(3d93a7cd) SHA1(dcdd327e78f32436b276d0666f62a5b733b296e8) )
  2762: 
  2763: 	ROM_REGION( 0x40000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  2764: 	ROM_LOAD16_BYTE( "808e12.f28",   0x000000, 0x10000, CRC(d62f1fde) SHA1(1e55084f1294b6ac7c152fcd1800511fcab5d360) )        /* 8x8 tiles */
  2765: 	ROM_LOAD16_BYTE( "808e13.h28",   0x000001, 0x10000, CRC(1fa708f4) SHA1(9511a19f50fb61571c2986c72d1a85e87b8d0495) )        /* 8x8 tiles */
  2766: 	ROM_LOAD16_BYTE( "808e22.i28",   0x020000, 0x10000, CRC(73d758f6) SHA1(69e7079c3178f6f5acae533dae4854808c45bc29) )        /* 8x8 tiles */
  2767: 	ROM_LOAD16_BYTE( "808e23.k28",   0x020001, 0x10000, CRC(8ff08b21) SHA1(9a8a03a960967f6f1d982b490f1724427538ecac) )        /* 8x8 tiles */
  2768: 
  2769: 	ROM_REGION( 0x100000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  2770: 	ROM_LOAD( "808d17.j4",    0x00000, 0x80000, CRC(d1299082) SHA1(c3c07b0517e7428ccd1cdf9e15aaf16d98e7c4cd) )	/* sprites */
  2771: 	ROM_LOAD( "808d15.h4",    0x80000, 0x80000, CRC(2b22a6b6) SHA1(8e1af0627a4eac045128c4096e2cfb59c3d2f5ef) )
  2772: 
  2773: 	ROM_REGION( 0x0100, REGION_PROMS, 0 )
  2774: 	ROM_LOAD( "808a18.f16",   0x0000, 0x0100, CRC(eb95aede) SHA1(8153eb516ae9753910c6d6a2143e91e079586836) )	/* priority encoder (not used) */
  2775: 
  2776: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* 128k for the samples */
  2777: 	ROM_LOAD( "808d01.d4",    0x00000, 0x20000, CRC(fd4d37c0) SHA1(ef91c6e7bb57c27a9a51729fffd1bfe3e806fb61) ) /* samples for 007232 */
  2778: ROM_END
  2779: 
  2780: ROM_START( mia2 )
  2781: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )	/* 2*128k and 2*64k for 68000 code */
  2782: 	ROM_LOAD16_BYTE( "808s20.h17",   0x00000, 0x20000, CRC(caa2897f) SHA1(58f69586d1cd49acf64cf34a69a9ba88dba0923c) )
  2783: 	ROM_LOAD16_BYTE( "808s21.j17",   0x00001, 0x20000, CRC(3d892ffb) SHA1(f6c0f8aa83f5688c8b57c5a66a481f65a5d4f530) )
  2784: 
  2785: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
  2786: 	ROM_LOAD( "808e03.f4",    0x00000, 0x08000, CRC(3d93a7cd) SHA1(dcdd327e78f32436b276d0666f62a5b733b296e8) )
  2787: 
  2788: 	ROM_REGION( 0x40000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  2789: 	ROM_LOAD16_BYTE( "808e12.f28",   0x000000, 0x10000, CRC(d62f1fde) SHA1(1e55084f1294b6ac7c152fcd1800511fcab5d360) )        /* 8x8 tiles */
  2790: 	ROM_LOAD16_BYTE( "808e13.h28",   0x000001, 0x10000, CRC(1fa708f4) SHA1(9511a19f50fb61571c2986c72d1a85e87b8d0495) )        /* 8x8 tiles */
  2791: 	ROM_LOAD16_BYTE( "808e22.i28",   0x020000, 0x10000, CRC(73d758f6) SHA1(69e7079c3178f6f5acae533dae4854808c45bc29) )        /* 8x8 tiles */
  2792: 	ROM_LOAD16_BYTE( "808e23.k28",   0x020001, 0x10000, CRC(8ff08b21) SHA1(9a8a03a960967f6f1d982b490f1724427538ecac) )        /* 8x8 tiles */
  2793: 
  2794: 	ROM_REGION( 0x100000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  2795: 	ROM_LOAD( "808d17.j4",    0x00000, 0x80000, CRC(d1299082) SHA1(c3c07b0517e7428ccd1cdf9e15aaf16d98e7c4cd) )	/* sprites */
  2796: 	ROM_LOAD( "808d15.h4",    0x80000, 0x80000, CRC(2b22a6b6) SHA1(8e1af0627a4eac045128c4096e2cfb59c3d2f5ef) )
  2797: 
  2798: 	ROM_REGION( 0x0100, REGION_PROMS, 0 )
  2799: 	ROM_LOAD( "808a18.f16",   0x0000, 0x0100, CRC(eb95aede) SHA1(8153eb516ae9753910c6d6a2143e91e079586836) )	/* priority encoder (not used) */
  2800: 
  2801: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* 128k for the samples */
  2802: 	ROM_LOAD( "808d01.d4",    0x00000, 0x20000, CRC(fd4d37c0) SHA1(ef91c6e7bb57c27a9a51729fffd1bfe3e806fb61) ) /* samples for 007232 */
  2803: ROM_END
  2804: 
  2805: ROM_START( tmnt )
  2806: 	ROM_REGION( 0x60000, REGION_CPU1, 0 )	/* 2*128k and 2*64k for 68000 code */
  2807: 	ROM_LOAD16_BYTE( "963-x23",      0x00000, 0x20000, CRC(a9549004) SHA1(bf9be5983af2282f627fb8408c069415c9b90229) )
  2808: 	ROM_LOAD16_BYTE( "963-x24",      0x00001, 0x20000, CRC(e5cc9067) SHA1(649db4a09864eb8aba44cb77b580f1f28cfd80ed) )
  2809: 	ROM_LOAD16_BYTE( "963-x21",      0x40000, 0x10000, CRC(5789cf92) SHA1(c1d1c958813062e5df5ac62e90ee4ce11f7e4a24) )
  2810: 	ROM_LOAD16_BYTE( "963-x22",      0x40001, 0x10000, CRC(0a74e277) SHA1(c349d3c25eb05cc30ec1fd823475d971f3649f8b) )
  2811: 
  2812: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
  2813: 	ROM_LOAD( "963-e20",      0x00000, 0x08000, CRC(1692a6d6) SHA1(68c3419012b2863e91a7d7e479fce5ceabb10b88) )
  2814: 
  2815: 	ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  2816: 	ROM_LOAD( "963-a28",      0x000000, 0x80000, CRC(db4769a8) SHA1(810811914f9c1fbf2320d5a9030cbf124f6d78cf) )        /* 8x8 tiles */
  2817: 	ROM_LOAD( "963-a29",      0x080000, 0x80000, CRC(8069cd2e) SHA1(54095d3546119ccd1e8814d692aceb1327c9369f) )        /* 8x8 tiles */
  2818: 
  2819: 	ROM_REGION( 0x200000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  2820: 	ROM_LOAD( "963-a17",      0x000000, 0x80000, CRC(b5239a44) SHA1(84e94807e7c51aa652b4e4b827b36be59a53d0d6) )        /* sprites */
  2821: 	ROM_LOAD( "963-a18",      0x080000, 0x80000, CRC(dd51adef) SHA1(5010c0911b0b9e4f23a785e8a751a0bde5be5be0) )        /* sprites */
  2822: 	ROM_LOAD( "963-a15",      0x100000, 0x80000, CRC(1f324eed) SHA1(971a675578518fffa341a943d0cc4fdea005fde0) )        /* sprites */
  2823: 	ROM_LOAD( "963-a16",      0x180000, 0x80000, CRC(d4bd9984) SHA1(d780ae7f72e16767c3a492544f02f0f1a332ab22) )        /* sprites */
  2824: 
  2825: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )
  2826: 	ROM_LOAD( "963-a30",      0x0000, 0x0100, CRC(abd82680) SHA1(945a71e6ec65202f13209b45d45b616372d6c0f5) )	/* sprite address decoder */
  2827: 	ROM_LOAD( "963-a31",      0x0100, 0x0100, CRC(f8004a1c) SHA1(ed6694b8eebfe0238b50ebd05007d519f6e57b1b) )	/* priority encoder (not used) */
  2828: 
  2829: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* 128k for the samples */
  2830: 	ROM_LOAD( "963-a26",      0x00000, 0x20000, CRC(e2ac3063) SHA1(5bb294c46fb5eaba9935a18c0aa5d3931168f474) ) /* samples for 007232 */
  2831: 
  2832: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 )	/* 128k for the samples */
  2833: 	ROM_LOAD( "963-a27",      0x00000, 0x20000, CRC(2dfd674b) SHA1(bbec5896c70056964fbc972a84bd5b0dfc6af257) ) /* samples for UPD7759C */
  2834: 
  2835: 	ROM_REGION( 0x80000, REGION_SOUND3, 0 )	/* 512k for the title music sample */
  2836: 	ROM_LOAD( "963-a25",      0x00000, 0x80000, CRC(fca078c7) SHA1(3e1124d72c9db4cb11d8de6c44b7aeca967f44e1) )
  2837: ROM_END
  2838: 
  2839: ROM_START( tmntu )
  2840: 	ROM_REGION( 0x60000, REGION_CPU1, 0 )	/* 2*128k and 2*64k for 68000 code */
  2841: 	ROM_LOAD16_BYTE( "963-r23",      0x00000, 0x20000, CRC(a7f61195) SHA1(db231ffb045f512040793b6815bcb998cee04c3d) )
  2842: 	ROM_LOAD16_BYTE( "963-r24",      0x00001, 0x20000, CRC(661e056a) SHA1(4773883a66540c07dbc969881689184697355537) )
  2843: 	ROM_LOAD16_BYTE( "963-r21",      0x40000, 0x10000, CRC(de047bb6) SHA1(d41d11f1b7dfd3824308f7fff43a5a7ced432ec2) )
  2844: 	ROM_LOAD16_BYTE( "963-r22",      0x40001, 0x10000, CRC(d86a0888) SHA1(c761b3e8acc45a36ae691758c639eb826a8ab5b2) )
  2845: 
  2846: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
  2847: 	ROM_LOAD( "963-e20",      0x00000, 0x08000, CRC(1692a6d6) SHA1(68c3419012b2863e91a7d7e479fce5ceabb10b88) )
  2848: 
  2849: 	ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  2850: 	ROM_LOAD( "963-a28",      0x000000, 0x80000, CRC(db4769a8) SHA1(810811914f9c1fbf2320d5a9030cbf124f6d78cf) )        /* 8x8 tiles */
  2851: 	ROM_LOAD( "963-a29",      0x080000, 0x80000, CRC(8069cd2e) SHA1(54095d3546119ccd1e8814d692aceb1327c9369f) )        /* 8x8 tiles */
  2852: 
  2853: 	ROM_REGION( 0x200000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  2854: 	ROM_LOAD( "963-a17",      0x000000, 0x80000, CRC(b5239a44) SHA1(84e94807e7c51aa652b4e4b827b36be59a53d0d6) )        /* sprites */
  2855: 	ROM_LOAD( "963-a18",      0x080000, 0x80000, CRC(dd51adef) SHA1(5010c0911b0b9e4f23a785e8a751a0bde5be5be0) )        /* sprites */
  2856: 	ROM_LOAD( "963-a15",      0x100000, 0x80000, CRC(1f324eed) SHA1(971a675578518fffa341a943d0cc4fdea005fde0) )        /* sprites */
  2857: 	ROM_LOAD( "963-a16",      0x180000, 0x80000, CRC(d4bd9984) SHA1(d780ae7f72e16767c3a492544f02f0f1a332ab22) )        /* sprites */
  2858: 
  2859: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )
  2860: 	ROM_LOAD( "963-a30",      0x0000, 0x0100, CRC(abd82680) SHA1(945a71e6ec65202f13209b45d45b616372d6c0f5) )	/* sprite address decoder */
  2861: 	ROM_LOAD( "963-a31",      0x0100, 0x0100, CRC(f8004a1c) SHA1(ed6694b8eebfe0238b50ebd05007d519f6e57b1b) )	/* priority encoder (not used) */
  2862: 
  2863: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* 128k for the samples */
  2864: 	ROM_LOAD( "963-a26",      0x00000, 0x20000, CRC(e2ac3063) SHA1(5bb294c46fb5eaba9935a18c0aa5d3931168f474) ) /* samples for 007232 */
  2865: 
  2866: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 )	/* 128k for the samples */
  2867: 	ROM_LOAD( "963-a27",      0x00000, 0x20000, CRC(2dfd674b) SHA1(bbec5896c70056964fbc972a84bd5b0dfc6af257) ) /* samples for UPD7759C */
  2868: 
  2869: 	ROM_REGION( 0x80000, REGION_SOUND3, 0 )	/* 512k for the title music sample */
  2870: 	ROM_LOAD( "963-a25",      0x00000, 0x80000, CRC(fca078c7) SHA1(3e1124d72c9db4cb11d8de6c44b7aeca967f44e1) )
  2871: ROM_END
  2872: 
  2873: ROM_START( tmht )
  2874: 	ROM_REGION( 0x60000, REGION_CPU1, 0 )	/* 2*128k and 2*64k for 68000 code */
  2875: 	ROM_LOAD16_BYTE( "963f23.j17",   0x00000, 0x20000, CRC(9cb5e461) SHA1(b693e61070d6ce7ac59ff3f0a824cfefb37b33eb) )
  2876: 	ROM_LOAD16_BYTE( "963f24.k17",   0x00001, 0x20000, CRC(2d902fab) SHA1(5a9a3bb0b6c2824eb971a8c0aa8d3069d3c63d06) )
  2877: 	ROM_LOAD16_BYTE( "963f21.j15",   0x40000, 0x10000, CRC(9fa25378) SHA1(9ed0bba148e7c5e78224c5168053eeafc2e4b663) )
  2878: 	ROM_LOAD16_BYTE( "963f22.k15",   0x40001, 0x10000, CRC(2127ee53) SHA1(e614260883872fd27cd641e6b4787672b2a44139) )
  2879: 
  2880: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
  2881: 	ROM_LOAD( "963-e20",      0x00000, 0x08000, CRC(1692a6d6) SHA1(68c3419012b2863e91a7d7e479fce5ceabb10b88) )
  2882: 
  2883: 	ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  2884: 	ROM_LOAD( "963-a28",      0x000000, 0x80000, CRC(db4769a8) SHA1(810811914f9c1fbf2320d5a9030cbf124f6d78cf) )        /* 8x8 tiles */
  2885: 	ROM_LOAD( "963-a29",      0x080000, 0x80000, CRC(8069cd2e) SHA1(54095d3546119ccd1e8814d692aceb1327c9369f) )        /* 8x8 tiles */
  2886: 
  2887: 	ROM_REGION( 0x200000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  2888: 	ROM_LOAD( "963-a17",      0x000000, 0x80000, CRC(b5239a44) SHA1(84e94807e7c51aa652b4e4b827b36be59a53d0d6) )        /* sprites */
  2889: 	ROM_LOAD( "963-a18",      0x080000, 0x80000, CRC(dd51adef) SHA1(5010c0911b0b9e4f23a785e8a751a0bde5be5be0) )        /* sprites */
  2890: 	ROM_LOAD( "963-a15",      0x100000, 0x80000, CRC(1f324eed) SHA1(971a675578518fffa341a943d0cc4fdea005fde0) )        /* sprites */
  2891: 	ROM_LOAD( "963-a16",      0x180000, 0x80000, CRC(d4bd9984) SHA1(d780ae7f72e16767c3a492544f02f0f1a332ab22) )        /* sprites */
  2892: 
  2893: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )
  2894: 	ROM_LOAD( "963-a30",      0x0000, 0x0100, CRC(abd82680) SHA1(945a71e6ec65202f13209b45d45b616372d6c0f5) )	/* sprite address decoder */
  2895: 	ROM_LOAD( "963-a31",      0x0100, 0x0100, CRC(f8004a1c) SHA1(ed6694b8eebfe0238b50ebd05007d519f6e57b1b) )	/* priority encoder (not used) */
  2896: 
  2897: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* 128k for the samples */
  2898: 	ROM_LOAD( "963-a26",      0x00000, 0x20000, CRC(e2ac3063) SHA1(5bb294c46fb5eaba9935a18c0aa5d3931168f474) ) /* samples for 007232 */
  2899: 
  2900: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 )	/* 128k for the samples */
  2901: 	ROM_LOAD( "963-a27",      0x00000, 0x20000, CRC(2dfd674b) SHA1(bbec5896c70056964fbc972a84bd5b0dfc6af257) ) /* samples for UPD7759C */
  2902: 
  2903: 	ROM_REGION( 0x80000, REGION_SOUND3, 0 )	/* 512k for the title music sample */
  2904: 	ROM_LOAD( "963-a25",      0x00000, 0x80000, CRC(fca078c7) SHA1(3e1124d72c9db4cb11d8de6c44b7aeca967f44e1) )
  2905: ROM_END
  2906: 
  2907: ROM_START( tmntj )
  2908: 	ROM_REGION( 0x60000, REGION_CPU1, 0 )	/* 2*128k and 2*64k for 68000 code */
  2909: 	ROM_LOAD16_BYTE( "963_223.j17",  0x00000, 0x20000, CRC(0d34a5ff) SHA1(a387f3e7c727dc66ebb0e1f40e4ab8dc83f647e5) )
  2910: 	ROM_LOAD16_BYTE( "963_224.k17",  0x00001, 0x20000, CRC(2fd453f2) SHA1(8eb68cba3b5f5baf2c00172942a3d2bf578d0196) )
  2911: 	ROM_LOAD16_BYTE( "963_221.j15",  0x40000, 0x10000, CRC(fa8e25fd) SHA1(129cb9498508cdabdda3cf4fc86ff716fe1da940) )
  2912: 	ROM_LOAD16_BYTE( "963_222.k15",  0x40001, 0x10000, CRC(ca437a4f) SHA1(96922d2dcd0d84dc0d09a3ba9800b1154b5e2486) )
  2913: 
  2914: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
  2915: 	ROM_LOAD( "963-e20",      0x00000, 0x08000, CRC(1692a6d6) SHA1(68c3419012b2863e91a7d7e479fce5ceabb10b88) )
  2916: 
  2917: 	ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  2918: 	ROM_LOAD( "963-a28",      0x000000, 0x80000, CRC(db4769a8) SHA1(810811914f9c1fbf2320d5a9030cbf124f6d78cf) )        /* 8x8 tiles */
  2919: 	ROM_LOAD( "963-a29",      0x080000, 0x80000, CRC(8069cd2e) SHA1(54095d3546119ccd1e8814d692aceb1327c9369f) )        /* 8x8 tiles */
  2920: 
  2921: 	ROM_REGION( 0x200000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  2922: 	ROM_LOAD( "963-a17",      0x000000, 0x80000, CRC(b5239a44) SHA1(84e94807e7c51aa652b4e4b827b36be59a53d0d6) )        /* sprites */
  2923: 	ROM_LOAD( "963-a18",      0x080000, 0x80000, CRC(dd51adef) SHA1(5010c0911b0b9e4f23a785e8a751a0bde5be5be0) )        /* sprites */
  2924: 	ROM_LOAD( "963-a15",      0x100000, 0x80000, CRC(1f324eed) SHA1(971a675578518fffa341a943d0cc4fdea005fde0) )        /* sprites */
  2925: 	ROM_LOAD( "963-a16",      0x180000, 0x80000, CRC(d4bd9984) SHA1(d780ae7f72e16767c3a492544f02f0f1a332ab22) )        /* sprites */
  2926: 
  2927: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )
  2928: 	ROM_LOAD( "963-a30",      0x0000, 0x0100, CRC(abd82680) SHA1(945a71e6ec65202f13209b45d45b616372d6c0f5) )	/* sprite address decoder */
  2929: 	ROM_LOAD( "963-a31",      0x0100, 0x0100, CRC(f8004a1c) SHA1(ed6694b8eebfe0238b50ebd05007d519f6e57b1b) )	/* priority encoder (not used) */
  2930: 
  2931: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* 128k for the samples */
  2932: 	ROM_LOAD( "963-a26",      0x00000, 0x20000, CRC(e2ac3063) SHA1(5bb294c46fb5eaba9935a18c0aa5d3931168f474) ) /* samples for 007232 */
  2933: 
  2934: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 )	/* 128k for the samples */
  2935: 	ROM_LOAD( "963-a27",      0x00000, 0x20000, CRC(2dfd674b) SHA1(bbec5896c70056964fbc972a84bd5b0dfc6af257) ) /* samples for UPD7759C */
  2936: 
  2937: 	ROM_REGION( 0x80000, REGION_SOUND3, 0 )	/* 512k for the title music sample */
  2938: 	ROM_LOAD( "963-a25",      0x00000, 0x80000, CRC(fca078c7) SHA1(3e1124d72c9db4cb11d8de6c44b7aeca967f44e1) )
  2939: ROM_END
  2940: 
  2941: ROM_START( tmht2p )
  2942: 	ROM_REGION( 0x60000, REGION_CPU1, 0 )	/* 2*128k and 2*64k for 68000 code */
  2943: 	ROM_LOAD16_BYTE( "963-u23",      0x00000, 0x20000, CRC(58bec748) SHA1(6cf146d6de8ef01c0705394d135abebc3aeaae16) )
  2944: 	ROM_LOAD16_BYTE( "963-u24",      0x00001, 0x20000, CRC(dce87c8d) SHA1(b85018ffc226ec7dfc97f9cd0f4454951c6e5918) )
  2945: 	ROM_LOAD16_BYTE( "963-u21",      0x40000, 0x10000, CRC(abce5ead) SHA1(2b3674497bb4f688c5f0e1cc9a078b3feb01475d) )
  2946: 	ROM_LOAD16_BYTE( "963-u22",      0x40001, 0x10000, CRC(4ecc8d6b) SHA1(ce29aecbd98c0a07f48766564de173facb310371) )
  2947: 
  2948: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
  2949: 	ROM_LOAD( "963-e20",      0x00000, 0x08000, CRC(1692a6d6) SHA1(68c3419012b2863e91a7d7e479fce5ceabb10b88) )
  2950: 
  2951: 	ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  2952: 	ROM_LOAD( "963-a28",      0x000000, 0x80000, CRC(db4769a8) SHA1(810811914f9c1fbf2320d5a9030cbf124f6d78cf) )        /* 8x8 tiles */
  2953: 	ROM_LOAD( "963-a29",      0x080000, 0x80000, CRC(8069cd2e) SHA1(54095d3546119ccd1e8814d692aceb1327c9369f) )        /* 8x8 tiles */
  2954: 
  2955: 	ROM_REGION( 0x200000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  2956: 	ROM_LOAD( "963-a17",      0x000000, 0x80000, CRC(b5239a44) SHA1(84e94807e7c51aa652b4e4b827b36be59a53d0d6) )        /* sprites */
  2957: 	ROM_LOAD( "963-a18",      0x080000, 0x80000, CRC(dd51adef) SHA1(5010c0911b0b9e4f23a785e8a751a0bde5be5be0) )        /* sprites */
  2958: 	ROM_LOAD( "963-a15",      0x100000, 0x80000, CRC(1f324eed) SHA1(971a675578518fffa341a943d0cc4fdea005fde0) )        /* sprites */
  2959: 	ROM_LOAD( "963-a16",      0x180000, 0x80000, CRC(d4bd9984) SHA1(d780ae7f72e16767c3a492544f02f0f1a332ab22) )        /* sprites */
  2960: 
  2961: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )
  2962: 	ROM_LOAD( "963-a30",      0x0000, 0x0100, CRC(abd82680) SHA1(945a71e6ec65202f13209b45d45b616372d6c0f5) )	/* sprite address decoder */
  2963: 	ROM_LOAD( "963-a31",      0x0100, 0x0100, CRC(f8004a1c) SHA1(ed6694b8eebfe0238b50ebd05007d519f6e57b1b) )	/* priority encoder (not used) */
  2964: 
  2965: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* 128k for the samples */
  2966: 	ROM_LOAD( "963-a26",      0x00000, 0x20000, CRC(e2ac3063) SHA1(5bb294c46fb5eaba9935a18c0aa5d3931168f474) ) /* samples for 007232 */
  2967: 
  2968: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 )	/* 128k for the samples */
  2969: 	ROM_LOAD( "963-a27",      0x00000, 0x20000, CRC(2dfd674b) SHA1(bbec5896c70056964fbc972a84bd5b0dfc6af257) ) /* samples for UPD7759C */
  2970: 
  2971: 	ROM_REGION( 0x80000, REGION_SOUND3, 0 )	/* 512k for the title music sample */
  2972: 	ROM_LOAD( "963-a25",      0x00000, 0x80000, CRC(fca078c7) SHA1(3e1124d72c9db4cb11d8de6c44b7aeca967f44e1) )
  2973: ROM_END
  2974: 
  2975: ROM_START( tmnt2pj )
  2976: 	ROM_REGION( 0x60000, REGION_CPU1, 0 )	/* 2*128k and 2*64k for 68000 code */
  2977: 	ROM_LOAD16_BYTE( "963-123",      0x00000, 0x20000, CRC(6a3527c9) SHA1(a5a8cbec3fae3f37d4d82a7700cec3c96c6a362f) )
  2978: 	ROM_LOAD16_BYTE( "963-124",      0x00001, 0x20000, CRC(2c4bfa15) SHA1(0264ef6f15806d52d6f7869034f5a3024ba1cea2) )
  2979: 	ROM_LOAD16_BYTE( "963-121",      0x40000, 0x10000, CRC(4181b733) SHA1(306601597102a1bc79880e557889a6fce7b30b7b) )
  2980: 	ROM_LOAD16_BYTE( "963-122",      0x40001, 0x10000, CRC(c64eb5ff) SHA1(e546f1cb81e98a38833cd0affe73e2bc1d95d017) )
  2981: 
  2982: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
  2983: 	ROM_LOAD( "963-e20",      0x00000, 0x08000, CRC(1692a6d6) SHA1(68c3419012b2863e91a7d7e479fce5ceabb10b88) )
  2984: 
  2985: 	ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  2986: 	ROM_LOAD( "963-a28",      0x000000, 0x80000, CRC(db4769a8) SHA1(810811914f9c1fbf2320d5a9030cbf124f6d78cf) )        /* 8x8 tiles */
  2987: 	ROM_LOAD( "963-a29",      0x080000, 0x80000, CRC(8069cd2e) SHA1(54095d3546119ccd1e8814d692aceb1327c9369f) )        /* 8x8 tiles */
  2988: 
  2989: 	ROM_REGION( 0x200000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  2990: 	ROM_LOAD( "963-a17",      0x000000, 0x80000, CRC(b5239a44) SHA1(84e94807e7c51aa652b4e4b827b36be59a53d0d6) )        /* sprites */
  2991: 	ROM_LOAD( "963-a18",      0x080000, 0x80000, CRC(dd51adef) SHA1(5010c0911b0b9e4f23a785e8a751a0bde5be5be0) )        /* sprites */
  2992: 	ROM_LOAD( "963-a15",      0x100000, 0x80000, CRC(1f324eed) SHA1(971a675578518fffa341a943d0cc4fdea005fde0) )        /* sprites */
  2993: 	ROM_LOAD( "963-a16",      0x180000, 0x80000, CRC(d4bd9984) SHA1(d780ae7f72e16767c3a492544f02f0f1a332ab22) )        /* sprites */
  2994: 
  2995: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )
  2996: 	ROM_LOAD( "963-a30",      0x0000, 0x0100, CRC(abd82680) SHA1(945a71e6ec65202f13209b45d45b616372d6c0f5) )	/* sprite address decoder */
  2997: 	ROM_LOAD( "963-a31",      0x0100, 0x0100, CRC(f8004a1c) SHA1(ed6694b8eebfe0238b50ebd05007d519f6e57b1b) )	/* priority encoder (not used) */
  2998: 
  2999: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* 128k for the samples */
  3000: 	ROM_LOAD( "963-a26",      0x00000, 0x20000, CRC(e2ac3063) SHA1(5bb294c46fb5eaba9935a18c0aa5d3931168f474) ) /* samples for 007232 */
  3001: 
  3002: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 )	/* 128k for the samples */
  3003: 	ROM_LOAD( "963-a27",      0x00000, 0x20000, CRC(2dfd674b) SHA1(bbec5896c70056964fbc972a84bd5b0dfc6af257) ) /* samples for UPD7759C */
  3004: 
  3005: 	ROM_REGION( 0x80000, REGION_SOUND3, 0 )	/* 512k for the title music sample */
  3006: 	ROM_LOAD( "963-a25",      0x00000, 0x80000, CRC(fca078c7) SHA1(3e1124d72c9db4cb11d8de6c44b7aeca967f44e1) )
  3007: ROM_END
  3008: 
  3009: ROM_START( tmnt2po )
  3010: 	ROM_REGION( 0x60000, REGION_CPU1, 0 )	/* 2*128k and 2*64k for 68000 code */
  3011: 	ROM_LOAD16_BYTE( "tmnt123.bin",  0x00000, 0x20000, CRC(2d905183) SHA1(38c77a08733f9da1dc6f1c510a2c8dac34848787) )
  3012: 	ROM_LOAD16_BYTE( "tmnt124.bin",  0x00001, 0x20000, CRC(e0125352) SHA1(e2a297bf96d0fa1d19ce767786453c489d49d693) )
  3013: 	ROM_LOAD16_BYTE( "tmnt21.bin",   0x40000, 0x10000, CRC(12deeafb) SHA1(1f70a326f8f4a896da297b4f66ca467894d22159) )
  3014: 	ROM_LOAD16_BYTE( "tmnt22.bin",   0x40001, 0x10000, CRC(aec4f1c3) SHA1(189ed93bc9ee4a1ff1c0ca7b80f4e817e5484e69) )
  3015: 
  3016: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
  3017: 	ROM_LOAD( "963-e20",      0x00000, 0x08000, CRC(1692a6d6) SHA1(68c3419012b2863e91a7d7e479fce5ceabb10b88) )
  3018: 
  3019: 	ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3020: 	ROM_LOAD( "963-a28",      0x000000, 0x80000, CRC(db4769a8) SHA1(810811914f9c1fbf2320d5a9030cbf124f6d78cf) )        /* 8x8 tiles */
  3021: 	ROM_LOAD( "963-a29",      0x080000, 0x80000, CRC(8069cd2e) SHA1(54095d3546119ccd1e8814d692aceb1327c9369f) )        /* 8x8 tiles */
  3022: 
  3023: 	ROM_REGION( 0x200000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3024: 	ROM_LOAD( "963-a17",      0x000000, 0x80000, CRC(b5239a44) SHA1(84e94807e7c51aa652b4e4b827b36be59a53d0d6) )        /* sprites */
  3025: 	ROM_LOAD( "963-a18",      0x080000, 0x80000, CRC(dd51adef) SHA1(5010c0911b0b9e4f23a785e8a751a0bde5be5be0) )        /* sprites */
  3026: 	ROM_LOAD( "963-a15",      0x100000, 0x80000, CRC(1f324eed) SHA1(971a675578518fffa341a943d0cc4fdea005fde0) )        /* sprites */
  3027: 	ROM_LOAD( "963-a16",      0x180000, 0x80000, CRC(d4bd9984) SHA1(d780ae7f72e16767c3a492544f02f0f1a332ab22) )        /* sprites */
  3028: 
  3029: 	ROM_REGION( 0x0200, REGION_PROMS, 0 )
  3030: 	ROM_LOAD( "963-a30",      0x0000, 0x0100, CRC(abd82680) SHA1(945a71e6ec65202f13209b45d45b616372d6c0f5) )	/* sprite address decoder */
  3031: 	ROM_LOAD( "963-a31",      0x0100, 0x0100, CRC(f8004a1c) SHA1(ed6694b8eebfe0238b50ebd05007d519f6e57b1b) )	/* priority encoder (not used) */
  3032: 
  3033: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )	/* 128k for the samples */
  3034: 	ROM_LOAD( "963-a26",      0x00000, 0x20000, CRC(e2ac3063) SHA1(5bb294c46fb5eaba9935a18c0aa5d3931168f474) ) /* samples for 007232 */
  3035: 
  3036: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 )	/* 128k for the samples */
  3037: 	ROM_LOAD( "963-a27",      0x00000, 0x20000, CRC(2dfd674b) SHA1(bbec5896c70056964fbc972a84bd5b0dfc6af257) ) /* samples for UPD7759C */
  3038: 
  3039: 	ROM_REGION( 0x80000, REGION_SOUND3, 0 )	/* 512k for the title music sample */
  3040: 	ROM_LOAD( "963-a25",      0x00000, 0x80000, CRC(fca078c7) SHA1(3e1124d72c9db4cb11d8de6c44b7aeca967f44e1) )
  3041: ROM_END
  3042: 
  3043: ROM_START( punkshot )
  3044: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )	/* 4*64k for 68000 code */
  3045: 	ROM_LOAD16_BYTE( "907-j02.i7",   0x00000, 0x20000, CRC(dbb3a23b) SHA1(78f999f4e5b12641195a7f9f7fedf696e32ff0c0) )
  3046: 	ROM_LOAD16_BYTE( "907-j03.i10",  0x00001, 0x20000, CRC(2151d1ab) SHA1(e71768142b903825f8104ffc90906b0d471599e0) )
  3047: 
  3048: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
  3049: 	ROM_LOAD( "907f01.e8",    0x0000, 0x8000, CRC(f040c484) SHA1(f76a739cacc0aba98a5bf85a48c81cef0d9bbfb4) )
  3050: 
  3051: 	ROM_REGION( 0x80000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3052: 	ROM_LOAD( "907d06.e23",   0x000000, 0x40000, CRC(f5cc38f4) SHA1(e6dc9994582a08740dc2fcb30a38771053627d5f) )
  3053: 	ROM_LOAD( "907d05.e22",   0x040000, 0x40000, CRC(e25774c1) SHA1(74fda3b418b4b0064b5e660a93122b07f6d41416) )
  3054: 
  3055: 	ROM_REGION( 0x200000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3056: 	ROM_LOAD( "907d07.k2",    0x000000, 0x100000, CRC(b0fe4543) SHA1(3be1caef29084063dd8754c1eecc34a2ec842415) )
  3057: 	ROM_LOAD( "907d08.k7",    0x100000, 0x100000, CRC(d5ac8d9d) SHA1(cb330be1c5c016465ef7048b3b29c65a741ee45b) )
  3058: 
  3059: 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )	/* samples for 053260 */
  3060: 	ROM_LOAD( "907d04.d3",    0x0000, 0x80000, CRC(090feb5e) SHA1(2394907b62ff0724c277642caf6375239249e2d7) )
  3061: ROM_END
  3062: 
  3063: ROM_START( punksht2 )
  3064: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )	/* 4*64k for 68000 code */
  3065: 	ROM_LOAD16_BYTE( "907m02.i7",    0x00000, 0x20000, CRC(59e14575) SHA1(249fc98a2d5fa3e4779438c37d22c0256be8d3fa) )
  3066: 	ROM_LOAD16_BYTE( "907m03.i10",   0x00001, 0x20000, CRC(adb14b1e) SHA1(c5db1c3b70ab3e53cd6a600b82bdccda4db05f90) )
  3067: 
  3068: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
  3069: 	ROM_LOAD( "907f01.e8",    0x0000, 0x8000, CRC(f040c484) SHA1(f76a739cacc0aba98a5bf85a48c81cef0d9bbfb4) )
  3070: 
  3071: 	ROM_REGION( 0x80000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3072: 	ROM_LOAD( "907d06.e23",   0x000000, 0x40000, CRC(f5cc38f4) SHA1(e6dc9994582a08740dc2fcb30a38771053627d5f) )
  3073: 	ROM_LOAD( "907d05.e22",   0x040000, 0x40000, CRC(e25774c1) SHA1(74fda3b418b4b0064b5e660a93122b07f6d41416) )
  3074: 
  3075: 	ROM_REGION( 0x200000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3076: 	ROM_LOAD( "907d07.k2",    0x000000, 0x100000, CRC(b0fe4543) SHA1(3be1caef29084063dd8754c1eecc34a2ec842415) )
  3077: 	ROM_LOAD( "907d08.k7",    0x100000, 0x100000, CRC(d5ac8d9d) SHA1(cb330be1c5c016465ef7048b3b29c65a741ee45b) )
  3078: 
  3079: 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )	/* samples for the 053260 */
  3080: 	ROM_LOAD( "907d04.d3",    0x0000, 0x80000, CRC(090feb5e) SHA1(2394907b62ff0724c277642caf6375239249e2d7) )
  3081: ROM_END
  3082: 
  3083: ROM_START( punkshtj )
  3084: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )	/* 4*64k for 68000 code */
  3085: 	ROM_LOAD16_BYTE( "907z02.i7",    0x00000, 0x20000, CRC(7a3a5c89) SHA1(240967b911df8939b048bbcdfcac668455fc82e9) )
  3086: 	ROM_LOAD16_BYTE( "907z03.i10",   0x00001, 0x20000, CRC(22a3d9d6) SHA1(76f016435956088aa680297ee9ba0abda446a7bb) )
  3087: 
  3088: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
  3089: 	ROM_LOAD( "907f01.e8",    0x0000, 0x8000, CRC(f040c484) SHA1(f76a739cacc0aba98a5bf85a48c81cef0d9bbfb4) )
  3090: 
  3091: 	ROM_REGION( 0x80000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3092: 	ROM_LOAD( "907d06.e23",   0x000000, 0x40000, CRC(f5cc38f4) SHA1(e6dc9994582a08740dc2fcb30a38771053627d5f) )
  3093: 	ROM_LOAD( "907d05.e22",   0x040000, 0x40000, CRC(e25774c1) SHA1(74fda3b418b4b0064b5e660a93122b07f6d41416) )
  3094: 
  3095: 	ROM_REGION( 0x200000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3096: 	ROM_LOAD( "907d07.k2",    0x000000, 0x100000, CRC(b0fe4543) SHA1(3be1caef29084063dd8754c1eecc34a2ec842415) )
  3097: 	ROM_LOAD( "907d08.k7",    0x100000, 0x100000, CRC(d5ac8d9d) SHA1(cb330be1c5c016465ef7048b3b29c65a741ee45b) )
  3098: 
  3099: 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )	/* samples for the 053260 */
  3100: 	ROM_LOAD( "907d04.d3",    0x0000, 0x80000, CRC(090feb5e) SHA1(2394907b62ff0724c277642caf6375239249e2d7) )
  3101: ROM_END
  3102: 
  3103: ROM_START( lgtnfght )
  3104: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )	/* 4*64k for 68000 code */
  3105: 	ROM_LOAD16_BYTE( "939m02.e11",   0x00000, 0x20000, CRC(61a12184) SHA1(f6d82aa0a444f885fd1e5d3d1464798b639a1710) )
  3106: 	ROM_LOAD16_BYTE( "939m03.e15",   0x00001, 0x20000, CRC(6db6659d) SHA1(def943b906eab68a0b86f9a28fb0b9a1f3b65e4c) )
  3107: 
  3108: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
  3109: 	ROM_LOAD( "939e01.d7",    0x0000, 0x8000, CRC(4a5fc848) SHA1(878825e07c2718b7c923ad7c77daddf18cb28beb) )
  3110: 
  3111: 	ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3112: 	ROM_LOAD( "939a07.k14",   0x000000, 0x80000, CRC(7955dfcf) SHA1(012644c1bfbe2e5d1c7ba25f29ebfde7dbfd1c0d) )
  3113: 	ROM_LOAD( "939a08.k19",   0x080000, 0x80000, CRC(ed95b385) SHA1(5aa5291cf1a8935b0a65ae10aa20b9cf9a138b03) )
  3114: 
  3115: 	ROM_REGION( 0x100000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3116: 	ROM_LOAD( "939a06.k8",    0x000000, 0x80000, CRC(e393c206) SHA1(9b35fc6dba1f15c3d9d69ff5a4e1673c539aa533) )
  3117: 	ROM_LOAD( "939a05.k2",    0x080000, 0x80000, CRC(3662d47a) SHA1(789c3f07ce812902050970f48be5115b8e95bea0) )
  3118: 
  3119: 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )	/* samples for the 053260 */
  3120: 	ROM_LOAD( "939a04.c5",    0x0000, 0x80000, CRC(c24e2b6e) SHA1(affc142883c2383afd08dcf156e48709ceca49fd) )
  3121: ROM_END
  3122: 
  3123: ROM_START( trigon )
  3124: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )	/* 4*64k for 68000 code */
  3125: 	ROM_LOAD16_BYTE( "939j02.bin",   0x00000, 0x20000, CRC(38381d1b) SHA1(d4ddf883f61e5d48143cf467ba3c9c5b37f7e790) )
  3126: 	ROM_LOAD16_BYTE( "939j03.bin",   0x00001, 0x20000, CRC(b5beddcd) SHA1(dc5d79793d5453f284bf7fd198ba7c4ab1fc09c3) )
  3127: 
  3128: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	/* 64k for the audio CPU */
  3129: 	ROM_LOAD( "939e01.d7",    0x0000, 0x8000, CRC(4a5fc848) SHA1(878825e07c2718b7c923ad7c77daddf18cb28beb) )
  3130: 
  3131: 	ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3132: 	ROM_LOAD( "939a07.k14",   0x000000, 0x80000, CRC(7955dfcf) SHA1(012644c1bfbe2e5d1c7ba25f29ebfde7dbfd1c0d) )
  3133: 	ROM_LOAD( "939a08.k19",   0x080000, 0x80000, CRC(ed95b385) SHA1(5aa5291cf1a8935b0a65ae10aa20b9cf9a138b03) )
  3134: 
  3135: 	ROM_REGION( 0x100000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3136: 	ROM_LOAD( "939a06.k8",    0x000000, 0x80000, CRC(e393c206) SHA1(9b35fc6dba1f15c3d9d69ff5a4e1673c539aa533) )
  3137: 	ROM_LOAD( "939a05.k2",    0x080000, 0x80000, CRC(3662d47a) SHA1(789c3f07ce812902050970f48be5115b8e95bea0) )
  3138: 
  3139: 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )	/* samples for the 053260 */
  3140: 	ROM_LOAD( "939a04.c5",    0x0000, 0x80000, CRC(c24e2b6e) SHA1(affc142883c2383afd08dcf156e48709ceca49fd) )
  3141: ROM_END
  3142: 
  3143: ROM_START( blswhstl )
  3144: 	ROM_REGION( 0x80000, REGION_CPU1, 0 )
  3145: 	ROM_LOAD16_BYTE( "e09.bin",     0x000000, 0x20000, CRC(e8b7b234) SHA1(65ae9faf34ed8ab71013acdc84e9429e5f5fb7a2) )
  3146: 	ROM_LOAD16_BYTE( "g09.bin",     0x000001, 0x20000, CRC(3c26d281) SHA1(d348305ecd4457e023bcdbc39842096d23c455fb) )
  3147: 	ROM_LOAD16_BYTE( "e11.bin",     0x040000, 0x20000, CRC(14628736) SHA1(87f7a65cffb87085b3e21043bd46fbb7db9266dd) )
  3148: 	ROM_LOAD16_BYTE( "g11.bin",     0x040001, 0x20000, CRC(f738ad4a) SHA1(5aea4afa4bf935d3e92856eff745f61ed4d98165) )
  3149: 
  3150: 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
  3151: 	ROM_LOAD( "060_j01.rom",  0x0000, 0x10000, CRC(f9d9a673) SHA1(8e5631c20dc37913cc7fa84f7ef786ff1ef85f09) )
  3152: 
  3153:     ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3154: 	ROM_LOAD16_WORD_SWAP( "060_e07.r16",  0x000000, 0x080000, CRC(c400edf3) SHA1(3f507df8804c1774e2e213f5eb8be0aa7e818d65) )	/* tiles */
  3155: 	ROM_LOAD16_WORD_SWAP( "060_e08.r16",  0x080000, 0x080000, CRC(70dddba1) SHA1(2acb94f249cf89b3d53798a6ee1c960f84a04d2e) )
  3156: 
  3157: 	ROM_REGION( 0x100000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3158: 	ROM_LOAD16_WORD_SWAP( "060_e06.r16",  0x000000, 0x080000, CRC(09381492) SHA1(5a3008dec99a8e0043405e9c4f5145794b8606e0) )	/* sprites */
  3159: 	ROM_LOAD16_WORD_SWAP( "060_e05.r16",  0x080000, 0x080000, CRC(32454241) SHA1(7a246b255ff30118c4f8e07e6ba03a22fd5ddc8a) )
  3160: 
  3161: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* samples for the 053260 */
  3162: 	ROM_LOAD( "060_e04.r16",  0x0000, 0x100000, CRC(c680395d) SHA1(acde593a5ec501e89c8aaca6c4fbacf707a727e1) )
  3163: ROM_END
  3164: 
  3165: ROM_START( detatwin )
  3166: 	ROM_REGION( 0x80000, REGION_CPU1, 0 )
  3167: 	ROM_LOAD16_BYTE( "060_j02.rom", 0x000000, 0x20000, CRC(11b761ac) SHA1(1a143b0a43da48bdcfe085a2a9d1a2de0329fafd) )
  3168: 	ROM_LOAD16_BYTE( "060_j03.rom", 0x000001, 0x20000, CRC(8d0b588c) SHA1(a444493557cc19c7828b40a54dac9165c1f5b541) )
  3169: 	ROM_LOAD16_BYTE( "060_j09.rom", 0x040000, 0x20000, CRC(f2a5f15f) SHA1(4b8786e5ce0b895e6358e16e2a0a926325d0afcc) )
  3170: 	ROM_LOAD16_BYTE( "060_j10.rom", 0x040001, 0x20000, CRC(36eefdbc) SHA1(a3ec5078779b4ab33edf32e04db3e221e52b36c7) )
  3171: 
  3172: 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
  3173: 	ROM_LOAD( "060_j01.rom",  0x0000, 0x10000, CRC(f9d9a673) SHA1(8e5631c20dc37913cc7fa84f7ef786ff1ef85f09) )
  3174: 
  3175:     ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3176: 	ROM_LOAD16_WORD_SWAP( "060_e07.r16",  0x000000, 0x080000, CRC(c400edf3) SHA1(3f507df8804c1774e2e213f5eb8be0aa7e818d65) )	/* tiles */
  3177: 	ROM_LOAD16_WORD_SWAP( "060_e08.r16",  0x080000, 0x080000, CRC(70dddba1) SHA1(2acb94f249cf89b3d53798a6ee1c960f84a04d2e) )
  3178: 
  3179: 	ROM_REGION( 0x100000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3180: 	ROM_LOAD16_WORD_SWAP( "060_e06.r16",  0x000000, 0x080000, CRC(09381492) SHA1(5a3008dec99a8e0043405e9c4f5145794b8606e0) )	/* sprites */
  3181: 	ROM_LOAD16_WORD_SWAP( "060_e05.r16",  0x080000, 0x080000, CRC(32454241) SHA1(7a246b255ff30118c4f8e07e6ba03a22fd5ddc8a) )
  3182: 
  3183: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* samples for the 053260 */
  3184: 	ROM_LOAD( "060_e04.r16",  0x0000, 0x100000, CRC(c680395d) SHA1(acde593a5ec501e89c8aaca6c4fbacf707a727e1) )
  3185: ROM_END
  3186: 
  3187: ROM_START( glfgreat )
  3188: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
  3189: 	ROM_LOAD16_BYTE( "061l02.1h",   0x000000, 0x20000, CRC(ac7399f4) SHA1(27f95bd41cb550ea0395a93138066896b834551e) )
  3190: 	ROM_LOAD16_BYTE( "061l03.4h",   0x000001, 0x20000, CRC(77b0ff5c) SHA1(e47701402a9a6f69cfbc72de0fee4cbdd79fbc6e) )
  3191: 
  3192: 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
  3193: 	ROM_LOAD( "061f01.4e",    0x0000, 0x8000, CRC(ab9a2a57) SHA1(c92738b4d3754c2378cd1e6ae786faa0c5a65808) )
  3194: 
  3195:     ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3196: 	ROM_LOAD( "061d14.12l",   0x000000, 0x080000, CRC(b9440924) SHA1(d12763f1c999cfa4f2d6f685a73c8c20204f9cbb) )	/* tiles */
  3197: 	ROM_LOAD( "061d13.12k",   0x080000, 0x080000, CRC(9f999f0b) SHA1(f83e3e9e44d7d5ba4c72f72db1ab9f98a0e80fe2) )
  3198: 
  3199: 	ROM_REGION( 0x200000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3200: 	ROM_LOAD( "061d11.3k",    0x000000, 0x100000, CRC(c45b66a3) SHA1(bfb7f9a39d195857893d3f04c28d5c89442c3ac7) )	/* sprites */
  3201: 	ROM_LOAD( "061d12.8k",    0x100000, 0x100000, CRC(d305ecd1) SHA1(28cba6b5eb56b6f5c01e9da341a5c0e2ed3cb407) )
  3202: 
  3203: 	ROM_REGION( 0x180000, REGION_GFX3, 0 )	/* 053936 tiles */
  3204: 	ROM_LOAD( "061b08.14g",   0x000000, 0x080000, CRC(6ab739c3) SHA1(37ed6c9b224189c183895517d6a72738fe92ecc4) )
  3205: 	ROM_LOAD( "061b09.15g",   0x080000, 0x080000, CRC(42c7a603) SHA1(e98e484ca817ed65c7fb80a87d732e70d120676f) )
  3206: 	ROM_LOAD( "061b10.17g",   0x100000, 0x080000, CRC(10f89ce7) SHA1(cf6a16ed0174db640780da4d11076efeb48a6119) )
  3207: 
  3208: 	ROM_REGION( 0x120000, REGION_USER1, 0 )	/* 053936 tilemaps */
  3209: 	ROM_LOAD( "061b07.18d",   0x000000, 0x080000, CRC(517887e2) SHA1(ff7aa0df2cda3c745a195879c71727352696ef3a) )
  3210: 	ROM_LOAD( "061b06.16d",   0x080000, 0x080000, CRC(41ada2ad) SHA1(7b200e44e040e3d79f2603a02c9991b4655407d4) )
  3211: 	ROM_LOAD( "061b05.15d",   0x100000, 0x020000, CRC(2456fb11) SHA1(e1bdb9f5983751d28addad6977a44df3d9899a14) )
  3212: 
  3213: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* samples for the 053260 */
  3214: 	ROM_LOAD( "061e04.1d",    0x0000, 0x100000, CRC(7921d8df) SHA1(19ca4850ec489cca245e90a41bfc22493cd52263) )
  3215: ROM_END
  3216: 
  3217: ROM_START( glfgretj )
  3218: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
  3219: 	ROM_LOAD16_BYTE( "061j02.1h",   0x000000, 0x20000, CRC(7f0d95f4) SHA1(20b66cb07ca350dcc11d781511d04988bcff9019) )
  3220: 	ROM_LOAD16_BYTE( "061j03.4h",   0x000001, 0x20000, CRC(06caa38b) SHA1(95a08133f6b025db5f50f528aad480af579ebe3d) )
  3221: 
  3222: 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
  3223: 	ROM_LOAD( "061f01.4e",    0x0000, 0x8000, CRC(ab9a2a57) SHA1(c92738b4d3754c2378cd1e6ae786faa0c5a65808) )
  3224: 
  3225:     ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3226: 	ROM_LOAD( "061d14.12l",   0x000000, 0x080000, CRC(b9440924) SHA1(d12763f1c999cfa4f2d6f685a73c8c20204f9cbb) )	/* tiles */
  3227: 	ROM_LOAD( "061d13.12k",   0x080000, 0x080000, CRC(9f999f0b) SHA1(f83e3e9e44d7d5ba4c72f72db1ab9f98a0e80fe2) )
  3228: 
  3229: 	ROM_REGION( 0x200000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3230: 	ROM_LOAD( "061d11.3k",    0x000000, 0x100000, CRC(c45b66a3) SHA1(bfb7f9a39d195857893d3f04c28d5c89442c3ac7) )	/* sprites */
  3231: 	ROM_LOAD( "061d12.8k",    0x100000, 0x100000, CRC(d305ecd1) SHA1(28cba6b5eb56b6f5c01e9da341a5c0e2ed3cb407) )
  3232: 
  3233: 	ROM_REGION( 0x180000, REGION_GFX3, 0 )	/* 053936 tiles */
  3234: 	ROM_LOAD( "061b08.14g",   0x000000, 0x080000, CRC(6ab739c3) SHA1(37ed6c9b224189c183895517d6a72738fe92ecc4) )
  3235: 	ROM_LOAD( "061b09.15g",   0x080000, 0x080000, CRC(42c7a603) SHA1(e98e484ca817ed65c7fb80a87d732e70d120676f) )
  3236: 	ROM_LOAD( "061b10.17g",   0x100000, 0x080000, CRC(10f89ce7) SHA1(cf6a16ed0174db640780da4d11076efeb48a6119) )
  3237: 
  3238: 	ROM_REGION( 0x120000, REGION_USER1, 0 )	/* 053936 tilemaps */
  3239: 	ROM_LOAD( "061b07.18d",   0x000000, 0x080000, CRC(517887e2) SHA1(ff7aa0df2cda3c745a195879c71727352696ef3a) )
  3240: 	ROM_LOAD( "061b06.16d",   0x080000, 0x080000, CRC(41ada2ad) SHA1(7b200e44e040e3d79f2603a02c9991b4655407d4) )
  3241: 	ROM_LOAD( "061b05.15d",   0x100000, 0x020000, CRC(2456fb11) SHA1(e1bdb9f5983751d28addad6977a44df3d9899a14) )
  3242: 
  3243: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* samples for the 053260 */
  3244: 	ROM_LOAD( "061e04.1d",    0x0000, 0x100000, CRC(7921d8df) SHA1(19ca4850ec489cca245e90a41bfc22493cd52263) )
  3245: ROM_END
  3246: 
  3247: ROM_START( tmnt2 )
  3248: 	ROM_REGION( 0x80000, REGION_CPU1, 0 )
  3249: 	ROM_LOAD16_BYTE( "uaa02", 0x000000, 0x20000, CRC(58d5c93d) SHA1(6618678ec2da33d2ee6335cca7c9d49e9148b799) )
  3250: 	ROM_LOAD16_BYTE( "uaa03", 0x000001, 0x20000, CRC(0541fec9) SHA1(985364616a95e7dd008b5be02c0f0bf5eef54b3d) )
  3251: 	ROM_LOAD16_BYTE( "uaa04", 0x040000, 0x20000, CRC(1d441a7d) SHA1(97ce51eaf1c7560c19d8453f93ce01b0f71fe36d) )
  3252: 	ROM_LOAD16_BYTE( "uaa05", 0x040001, 0x20000, CRC(9c428273) SHA1(92202b6061313e464c2d9760926852b833994d28) )
  3253: 
  3254: 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
  3255: 	ROM_LOAD( "b01",          0x0000, 0x10000, CRC(364f548a) SHA1(e0636e27d4fc48b2ccb1417b63d2b68d9e272c06) )
  3256: 
  3257:     ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3258: 	ROM_LOAD( "b12",          0x000000, 0x080000, CRC(d3283d19) SHA1(49e4daa9cbe4d99bf71fcee6237cb434a0d55312) )	/* tiles */
  3259: 	ROM_LOAD( "b11",          0x080000, 0x080000, CRC(6ebc0c15) SHA1(e6848405076937fbf8ec6d318293a0ff922725f4) )
  3260: 
  3261: 	ROM_REGION( 0x400000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3262: 	ROM_LOAD( "b09",          0x000000, 0x100000, CRC(2d7a9d2a) SHA1(a26f9c1a07152bc8c7bcd797d4485bf848f5e2a0) )	/* sprites */
  3263: 	ROM_LOAD( "b10",          0x100000, 0x080000, CRC(f2dd296e) SHA1(a2aad10bfb0904dd73c2ee11049648c94de7f4d5) )
  3264: 	/* second half empty */
  3265: 	ROM_LOAD( "b07",          0x200000, 0x100000, CRC(d9bee7bf) SHA1(7bbb65138fbd216b80412783e6f0072742101440) )
  3266: 	ROM_LOAD( "b08",          0x300000, 0x080000, CRC(3b1ae36f) SHA1(9e69cae8b517497ac77c4d148f56f2bb6a23de89) )
  3267: 	/* second half empty */
  3268: 
  3269: 	ROM_REGION( 0x200000, REGION_SOUND1, 0 )	/* samples for the 053260 */
  3270: 	ROM_LOAD( "063b06",       0x0000, 0x200000, CRC(1e510aa5) SHA1(02b9bd6bb6b098026a620e4d671c40a31ad9e318) )
  3271: ROM_END
  3272: 
  3273: ROM_START( tmnt22p )
  3274: 	ROM_REGION( 0x80000, REGION_CPU1, 0 )
  3275: 	ROM_LOAD16_BYTE( "a02",   0x000000, 0x20000, CRC(aadffe3a) SHA1(f20eaef64f81b91726675006aa45807b0841f046) )
  3276: 	ROM_LOAD16_BYTE( "a03",   0x000001, 0x20000, CRC(125687a8) SHA1(ab8eb954a56cbb18a26af3431aa8d60406ef23b5) )
  3277: 	ROM_LOAD16_BYTE( "a04",   0x040000, 0x20000, CRC(fb5c7ded) SHA1(322ec2a4a6a2ecea0865bc72b6c1d23e52da33da) )
  3278: 	ROM_LOAD16_BYTE( "a05",   0x040001, 0x20000, CRC(3c40fe66) SHA1(d2d1f24bf8ab44d24478f021f0b651095f623860) )
  3279: 
  3280: 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
  3281: 	ROM_LOAD( "b01",          0x0000, 0x10000, CRC(364f548a) SHA1(e0636e27d4fc48b2ccb1417b63d2b68d9e272c06) )
  3282: 
  3283:     ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3284: 	ROM_LOAD( "b12",          0x000000, 0x080000, CRC(d3283d19) SHA1(49e4daa9cbe4d99bf71fcee6237cb434a0d55312) )	/* tiles */
  3285: 	ROM_LOAD( "b11",          0x080000, 0x080000, CRC(6ebc0c15) SHA1(e6848405076937fbf8ec6d318293a0ff922725f4) )
  3286: 
  3287: 	ROM_REGION( 0x400000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3288: 	ROM_LOAD( "b09",          0x000000, 0x100000, CRC(2d7a9d2a) SHA1(a26f9c1a07152bc8c7bcd797d4485bf848f5e2a0) )	/* sprites */
  3289: 	ROM_LOAD( "b10",          0x100000, 0x080000, CRC(f2dd296e) SHA1(a2aad10bfb0904dd73c2ee11049648c94de7f4d5) )
  3290: 	/* second half empty */
  3291: 	ROM_LOAD( "b07",          0x200000, 0x100000, CRC(d9bee7bf) SHA1(7bbb65138fbd216b80412783e6f0072742101440) )
  3292: 	ROM_LOAD( "b08",          0x300000, 0x080000, CRC(3b1ae36f) SHA1(9e69cae8b517497ac77c4d148f56f2bb6a23de89) )
  3293: 	/* second half empty */
  3294: 
  3295: 	ROM_REGION( 0x200000, REGION_SOUND1, 0 )	/* samples for the 053260 */
  3296: 	ROM_LOAD( "063b06",       0x0000, 0x200000, CRC(1e510aa5) SHA1(02b9bd6bb6b098026a620e4d671c40a31ad9e318) )
  3297: ROM_END
  3298: 
  3299: ROM_START( tmnt2a )
  3300: 	ROM_REGION( 0x80000, REGION_CPU1, 0 )
  3301: 	ROM_LOAD16_BYTE( "ada02", 0x000000, 0x20000, CRC(4f11b587) SHA1(111051da23ce7035405b4d12c0f18dcc1d6c8ddc) )
  3302: 	ROM_LOAD16_BYTE( "ada03", 0x000001, 0x20000, CRC(82a1b9ac) SHA1(161e8fd33e0e5c9349fec98b02225ed37578e488) )
  3303: 	ROM_LOAD16_BYTE( "ada04", 0x040000, 0x20000, CRC(05ad187a) SHA1(27a36a02ef792d87ffa2364537c42b6c50d6e4f0) )
  3304: 	ROM_LOAD16_BYTE( "ada05", 0x040001, 0x20000, CRC(d4826547) SHA1(ffee07be64469fa386a0979352b4fe20c352fee4) )
  3305: 
  3306: 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
  3307: 	ROM_LOAD( "b01",          0x0000, 0x10000, CRC(364f548a) SHA1(e0636e27d4fc48b2ccb1417b63d2b68d9e272c06) )
  3308: 
  3309:     ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3310: 	ROM_LOAD( "b12",          0x000000, 0x080000, CRC(d3283d19) SHA1(49e4daa9cbe4d99bf71fcee6237cb434a0d55312) )	/* tiles */
  3311: 	ROM_LOAD( "b11",          0x080000, 0x080000, CRC(6ebc0c15) SHA1(e6848405076937fbf8ec6d318293a0ff922725f4) )
  3312: 
  3313: 	ROM_REGION( 0x400000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3314: 	ROM_LOAD( "b09",          0x000000, 0x100000, CRC(2d7a9d2a) SHA1(a26f9c1a07152bc8c7bcd797d4485bf848f5e2a0) )	/* sprites */
  3315: 	ROM_LOAD( "b10",          0x100000, 0x080000, CRC(f2dd296e) SHA1(a2aad10bfb0904dd73c2ee11049648c94de7f4d5) )
  3316: 	/* second half empty */
  3317: 	ROM_LOAD( "b07",          0x200000, 0x100000, CRC(d9bee7bf) SHA1(7bbb65138fbd216b80412783e6f0072742101440) )
  3318: 	ROM_LOAD( "b08",          0x300000, 0x080000, CRC(3b1ae36f) SHA1(9e69cae8b517497ac77c4d148f56f2bb6a23de89) )
  3319: 	/* second half empty */
  3320: 
  3321: 	ROM_REGION( 0x200000, REGION_SOUND1, 0 )	/* samples for the 053260 */
  3322: 	ROM_LOAD( "063b06",       0x0000, 0x200000, CRC(1e510aa5) SHA1(02b9bd6bb6b098026a620e4d671c40a31ad9e318) )
  3323: ROM_END
  3324: 
  3325: ROM_START( qgakumon )
  3326: 	ROM_REGION( 0x100000, REGION_CPU1, 0 )
  3327: 	ROM_LOAD16_BYTE( "248jaa02.8e",  0x000000, 0x40000, CRC(fab79410) SHA1(8b1a8946ee65505608cf026c9fca87365ccef089) )
  3328: 	ROM_LOAD16_BYTE( "248jaa03.8g",  0x000001, 0x40000, CRC(8d888ef3) SHA1(1ef2636620abff8e3fe0258c90c5c8c0bf33f2d5) )
  3329: 	ROM_LOAD16_BYTE( "248jaa04.10e", 0x080000, 0x40000, CRC(56cb16cb) SHA1(a659229b43fba59c055e1da061fbfb19ecbb5c24) )
  3330: 	ROM_LOAD16_BYTE( "248jaa05.10g", 0x080001, 0x40000, CRC(27614fcd) SHA1(c44d1dd3f16914f9616d6370098eaf6fa8a44542) )
  3331: 
  3332: 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
  3333: 	ROM_LOAD( "248a01.2f",          0x0000, 0x10000, CRC(a8a41cc6) SHA1(ad0d73bbdaacb8d5d0c7971ec4357eec665ee7cf) )
  3334: 
  3335:     ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3336: 	ROM_LOAD( "248a12.16k",          0x000000, 0x080000, CRC(62870987) SHA1(f502c44781a077590038dcca9bf76c8a047169be) )	/* tiles */
  3337: 	ROM_LOAD( "248a11.12k",          0x080000, 0x080000, CRC(fad2dbfd) SHA1(a6cc9a612467c43ae4194f71b43a442272f0fde1) )
  3338: 
  3339: 	ROM_REGION( 0x400000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3340: 	ROM_LOAD( "248a09.7l",          0x000000, 0x100000, CRC(a176e205) SHA1(e0b2176a1525711c6e692f88a913f57b9bdd0046) )	/* sprites */
  3341: 	ROM_LOAD( "248a07.3l",          0x200000, 0x100000, CRC(9595589f) SHA1(3e48f66448577a8fa39b6707e89c2267152b6f0b) )
  3342: 
  3343: 	ROM_REGION( 0x200000, REGION_SOUND1, 0 )	/* samples for the 053260 */
  3344: 	ROM_LOAD( "248a06.1d",       0x0000, 0x200000, CRC(0fba1def) SHA1(f2ba23213effd06f14c7a179acea974c78c2198f) )
  3345: ROM_END
  3346: 
  3347: ROM_START( ssriders )
  3348: 	ROM_REGION( 0xc0000, REGION_CPU1, 0 )
  3349: 	ROM_LOAD16_BYTE( "064eac02",    0x000000, 0x40000, CRC(5a5425f4) SHA1(213226558d772f3ae573ee851b881536ce2faa2a) )
  3350: 	ROM_LOAD16_BYTE( "064eac03",    0x000001, 0x40000, CRC(093c00fb) SHA1(208a3688504bad3bc23135ceb0f15226dd98558e) )
  3351: 	ROM_LOAD16_BYTE( "sr_b04.rom",  0x080000, 0x20000, CRC(ef2315bd) SHA1(2c8b11321cb5fdb78d760fabca666c0d8cc5b298) )
  3352: 	ROM_LOAD16_BYTE( "sr_b05.rom",  0x080001, 0x20000, CRC(51d6fbc4) SHA1(e80de7d155b7f263c48ef4ae2702059be3c18e76) )
  3353: 
  3354: 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
  3355: 	ROM_LOAD( "sr_e01.rom",   0x0000, 0x10000, CRC(44b9bc52) SHA1(4654d6e14c6956c40a19cb41155accb63f0da338) )
  3356: 
  3357:     ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3358: 	ROM_LOAD( "sr_16k.rom",   0x000000, 0x080000, CRC(e2bdc619) SHA1(04449deb267b0beacfa33640b593eb16194aa0d9) )	/* tiles */
  3359: 	ROM_LOAD( "sr_12k.rom",   0x080000, 0x080000, CRC(2d8ca8b0) SHA1(7c882f79c2402cf75979c681071007d76e4db9ae) )
  3360: 
  3361: 	ROM_REGION( 0x200000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3362: 	ROM_LOAD( "sr_7l.rom",    0x000000, 0x100000, CRC(4160c372) SHA1(0b36181e5ccd785c7fb89b9f41e458066a42c3b0) )	/* sprites */
  3363: 	ROM_LOAD( "sr_3l.rom",    0x100000, 0x100000, CRC(64dd673c) SHA1(bea4d17a71dd21c635866ee69b4892dc9d0ab455) )
  3364: 
  3365: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* samples for the 053260 */
  3366: 	ROM_LOAD( "sr_1d.rom",    0x0000, 0x100000, CRC(59810df9) SHA1(a0affc6330bdbfab1447dc0cf13c20ff708c2c71) )
  3367: ROM_END
  3368: 
  3369: ROM_START( ssrdrebd )
  3370: 	ROM_REGION( 0xc0000, REGION_CPU1, 0 )
  3371: 	ROM_LOAD16_BYTE( "064ebd02",    0x000000, 0x40000, CRC(8deef9ac) SHA1(406ef2b022a59ed958674f432ed50f6ed37fd3c4) )
  3372: 	ROM_LOAD16_BYTE( "064ebd03",    0x000001, 0x40000, CRC(2370c107) SHA1(85d2bd8dde928f647a5d34ac98d2df2ed559f7a2) )
  3373: 	ROM_LOAD16_BYTE( "sr_b04.rom",  0x080000, 0x20000, CRC(ef2315bd) SHA1(2c8b11321cb5fdb78d760fabca666c0d8cc5b298) )
  3374: 	ROM_LOAD16_BYTE( "sr_b05.rom",  0x080001, 0x20000, CRC(51d6fbc4) SHA1(e80de7d155b7f263c48ef4ae2702059be3c18e76) )
  3375: 
  3376: 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
  3377: 	ROM_LOAD( "sr_e01.rom",   0x0000, 0x10000, CRC(44b9bc52) SHA1(4654d6e14c6956c40a19cb41155accb63f0da338) )
  3378: 
  3379:     ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3380: 	ROM_LOAD( "sr_16k.rom",   0x000000, 0x080000, CRC(e2bdc619) SHA1(04449deb267b0beacfa33640b593eb16194aa0d9) )	/* tiles */
  3381: 	ROM_LOAD( "sr_12k.rom",   0x080000, 0x080000, CRC(2d8ca8b0) SHA1(7c882f79c2402cf75979c681071007d76e4db9ae) )
  3382: 
  3383: 	ROM_REGION( 0x200000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3384: 	ROM_LOAD( "sr_7l.rom",    0x000000, 0x100000, CRC(4160c372) SHA1(0b36181e5ccd785c7fb89b9f41e458066a42c3b0) )	/* sprites */
  3385: 	ROM_LOAD( "sr_3l.rom",    0x100000, 0x100000, CRC(64dd673c) SHA1(bea4d17a71dd21c635866ee69b4892dc9d0ab455) )
  3386: 
  3387: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* samples for the 053260 */
  3388: 	ROM_LOAD( "sr_1d.rom",    0x0000, 0x100000, CRC(59810df9) SHA1(a0affc6330bdbfab1447dc0cf13c20ff708c2c71) )
  3389: ROM_END
  3390: 
  3391: ROM_START( ssrdrebc )
  3392: 	ROM_REGION( 0xc0000, REGION_CPU1, 0 )
  3393: 	ROM_LOAD16_BYTE( "sr_c02.rom",  0x000000, 0x40000, CRC(9bd7d164) SHA1(492abdaf62fe7cb72b7e53076a05c987503c738a) )
  3394: 	ROM_LOAD16_BYTE( "sr_c03.rom",  0x000001, 0x40000, CRC(40fd4165) SHA1(c30d7560aae6e9f0bebe2d6d3e0e11b56634de0c) )
  3395: 	ROM_LOAD16_BYTE( "sr_b04.rom",  0x080000, 0x20000, CRC(ef2315bd) SHA1(2c8b11321cb5fdb78d760fabca666c0d8cc5b298) )
  3396: 	ROM_LOAD16_BYTE( "sr_b05.rom",  0x080001, 0x20000, CRC(51d6fbc4) SHA1(e80de7d155b7f263c48ef4ae2702059be3c18e76) )
  3397: 
  3398: 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
  3399: 	ROM_LOAD( "sr_e01.rom",   0x0000, 0x10000, CRC(44b9bc52) SHA1(4654d6e14c6956c40a19cb41155accb63f0da338) )
  3400: 
  3401:     ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3402: 	ROM_LOAD( "sr_16k.rom",   0x000000, 0x080000, CRC(e2bdc619) SHA1(04449deb267b0beacfa33640b593eb16194aa0d9) )	/* tiles */
  3403: 	ROM_LOAD( "sr_12k.rom",   0x080000, 0x080000, CRC(2d8ca8b0) SHA1(7c882f79c2402cf75979c681071007d76e4db9ae) )
  3404: 
  3405: 	ROM_REGION( 0x200000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3406: 	ROM_LOAD( "sr_7l.rom",    0x000000, 0x100000, CRC(4160c372) SHA1(0b36181e5ccd785c7fb89b9f41e458066a42c3b0) )	/* sprites */
  3407: 	ROM_LOAD( "sr_3l.rom",    0x100000, 0x100000, CRC(64dd673c) SHA1(bea4d17a71dd21c635866ee69b4892dc9d0ab455) )
  3408: 
  3409: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* samples for the 053260 */
  3410: 	ROM_LOAD( "sr_1d.rom",    0x0000, 0x100000, CRC(59810df9) SHA1(a0affc6330bdbfab1447dc0cf13c20ff708c2c71) )
  3411: ROM_END
  3412: 
  3413: ROM_START( ssrdruda )
  3414: 	ROM_REGION( 0xc0000, REGION_CPU1, 0 )
  3415: 	ROM_LOAD16_BYTE( "064uda02",    0x000000, 0x40000, CRC(5129a6b7) SHA1(8892d7043e7b0aee9eaffde9fa9bfd9bbfb7f15f) )
  3416: 	ROM_LOAD16_BYTE( "064uda03",    0x000001, 0x40000, CRC(9f887214) SHA1(f5e22230b7dca42242f3f244e45e67a4bbbdb65f) )
  3417: 	ROM_LOAD16_BYTE( "sr_b04.rom",  0x080000, 0x20000, CRC(ef2315bd) SHA1(2c8b11321cb5fdb78d760fabca666c0d8cc5b298) )
  3418: 	ROM_LOAD16_BYTE( "sr_b05.rom",  0x080001, 0x20000, CRC(51d6fbc4) SHA1(e80de7d155b7f263c48ef4ae2702059be3c18e76) )
  3419: 
  3420: 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
  3421: 	ROM_LOAD( "sr_e01.rom",   0x0000, 0x10000, CRC(44b9bc52) SHA1(4654d6e14c6956c40a19cb41155accb63f0da338) )
  3422: 
  3423:     ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3424: 	ROM_LOAD( "sr_16k.rom",   0x000000, 0x080000, CRC(e2bdc619) SHA1(04449deb267b0beacfa33640b593eb16194aa0d9) )	/* tiles */
  3425: 	ROM_LOAD( "sr_12k.rom",   0x080000, 0x080000, CRC(2d8ca8b0) SHA1(7c882f79c2402cf75979c681071007d76e4db9ae) )
  3426: 
  3427: 	ROM_REGION( 0x200000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3428: 	ROM_LOAD( "sr_7l.rom",    0x000000, 0x100000, CRC(4160c372) SHA1(0b36181e5ccd785c7fb89b9f41e458066a42c3b0) )	/* sprites */
  3429: 	ROM_LOAD( "sr_3l.rom",    0x100000, 0x100000, CRC(64dd673c) SHA1(bea4d17a71dd21c635866ee69b4892dc9d0ab455) )
  3430: 
  3431: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* samples for the 053260 */
  3432: 	ROM_LOAD( "sr_1d.rom",    0x0000, 0x100000, CRC(59810df9) SHA1(a0affc6330bdbfab1447dc0cf13c20ff708c2c71) )
  3433: ROM_END
  3434: 
  3435: ROM_START( ssrdruac )
  3436: 	ROM_REGION( 0xc0000, REGION_CPU1, 0 )
  3437: 	ROM_LOAD16_BYTE( "064uac02",    0x000000, 0x40000, CRC(870473b6) SHA1(2e2fd5c6df3fa8da6655699043e08a8f918ef63c) )
  3438: 	ROM_LOAD16_BYTE( "064uac03",    0x000001, 0x40000, CRC(eadf289a) SHA1(824230714ae0c1d065e83719bb344e76a5ca1fba) )
  3439: 	ROM_LOAD16_BYTE( "sr_b04.rom",  0x080000, 0x20000, CRC(ef2315bd) SHA1(2c8b11321cb5fdb78d760fabca666c0d8cc5b298) )
  3440: 	ROM_LOAD16_BYTE( "sr_b05.rom",  0x080001, 0x20000, CRC(51d6fbc4) SHA1(e80de7d155b7f263c48ef4ae2702059be3c18e76) )
  3441: 
  3442: 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
  3443: 	ROM_LOAD( "sr_e01.rom",   0x0000, 0x10000, CRC(44b9bc52) SHA1(4654d6e14c6956c40a19cb41155accb63f0da338) )
  3444: 
  3445:     ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3446: 	ROM_LOAD( "sr_16k.rom",   0x000000, 0x080000, CRC(e2bdc619) SHA1(04449deb267b0beacfa33640b593eb16194aa0d9) )	/* tiles */
  3447: 	ROM_LOAD( "sr_12k.rom",   0x080000, 0x080000, CRC(2d8ca8b0) SHA1(7c882f79c2402cf75979c681071007d76e4db9ae) )
  3448: 
  3449: 	ROM_REGION( 0x200000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3450: 	ROM_LOAD( "sr_7l.rom",    0x000000, 0x100000, CRC(4160c372) SHA1(0b36181e5ccd785c7fb89b9f41e458066a42c3b0) )	/* sprites */
  3451: 	ROM_LOAD( "sr_3l.rom",    0x100000, 0x100000, CRC(64dd673c) SHA1(bea4d17a71dd21c635866ee69b4892dc9d0ab455) )
  3452: 
  3453: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* samples for the 053260 */
  3454: 	ROM_LOAD( "sr_1d.rom",    0x0000, 0x100000, CRC(59810df9) SHA1(a0affc6330bdbfab1447dc0cf13c20ff708c2c71) )
  3455: ROM_END
  3456: 
  3457: ROM_START( ssrdrubc )
  3458: 	ROM_REGION( 0xc0000, REGION_CPU1, 0 )
  3459: 	ROM_LOAD16_BYTE( "2pl.8e",      0x000000, 0x40000, CRC(aca7fda5) SHA1(318fdefbea70724e95f2537b1915bc3a7abbb644) )
  3460: 	ROM_LOAD16_BYTE( "2pl.8g",      0x000001, 0x40000, CRC(bb1fdeff) SHA1(1b74954258e3e8fdc80dd3c27785c945e57d36f8) )
  3461: 	ROM_LOAD16_BYTE( "sr_b04.rom",  0x080000, 0x20000, CRC(ef2315bd) SHA1(2c8b11321cb5fdb78d760fabca666c0d8cc5b298) )
  3462: 	ROM_LOAD16_BYTE( "sr_b05.rom",  0x080001, 0x20000, CRC(51d6fbc4) SHA1(e80de7d155b7f263c48ef4ae2702059be3c18e76) )
  3463: 
  3464: 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
  3465: 	ROM_LOAD( "sr_e01.rom",   0x0000, 0x10000, CRC(44b9bc52) SHA1(4654d6e14c6956c40a19cb41155accb63f0da338) )
  3466: 
  3467:     ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3468: 	ROM_LOAD( "sr_16k.rom",   0x000000, 0x080000, CRC(e2bdc619) SHA1(04449deb267b0beacfa33640b593eb16194aa0d9) )	/* tiles */
  3469: 	ROM_LOAD( "sr_12k.rom",   0x080000, 0x080000, CRC(2d8ca8b0) SHA1(7c882f79c2402cf75979c681071007d76e4db9ae) )
  3470: 
  3471: 	ROM_REGION( 0x200000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3472: 	ROM_LOAD( "sr_7l.rom",    0x000000, 0x100000, CRC(4160c372) SHA1(0b36181e5ccd785c7fb89b9f41e458066a42c3b0) )	/* sprites */
  3473: 	ROM_LOAD( "sr_3l.rom",    0x100000, 0x100000, CRC(64dd673c) SHA1(bea4d17a71dd21c635866ee69b4892dc9d0ab455) )
  3474: 
  3475: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* samples for the 053260 */
  3476: 	ROM_LOAD( "sr_1d.rom",    0x0000, 0x100000, CRC(59810df9) SHA1(a0affc6330bdbfab1447dc0cf13c20ff708c2c71) )
  3477: ROM_END
  3478: 
  3479: ROM_START( ssrdrabd )
  3480: 	ROM_REGION( 0xc0000, REGION_CPU1, 0 )
  3481: 	ROM_LOAD16_BYTE( "064abd02.8e", 0x000000, 0x40000, CRC(713406cb) SHA1(23769413bfce6cf7039437d0fa25a7b4b9c86387) )
  3482: 	ROM_LOAD16_BYTE( "064abd03.8g", 0x000001, 0x40000, CRC(680feb3c) SHA1(379082cccdbc579a88afcf771f6deb64e4baf4d6) )
  3483: 	ROM_LOAD16_BYTE( "sr_b04.rom",  0x080000, 0x20000, CRC(ef2315bd) SHA1(2c8b11321cb5fdb78d760fabca666c0d8cc5b298) )
  3484: 	ROM_LOAD16_BYTE( "sr_b05.rom",  0x080001, 0x20000, CRC(51d6fbc4) SHA1(e80de7d155b7f263c48ef4ae2702059be3c18e76) )
  3485: 
  3486: 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
  3487: 	ROM_LOAD( "sr_e01.rom",   0x0000, 0x10000, CRC(44b9bc52) SHA1(4654d6e14c6956c40a19cb41155accb63f0da338) )
  3488: 
  3489:     ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3490: 	ROM_LOAD( "sr_16k.rom",   0x000000, 0x080000, CRC(e2bdc619) SHA1(04449deb267b0beacfa33640b593eb16194aa0d9) )	/* tiles */
  3491: 	ROM_LOAD( "sr_12k.rom",   0x080000, 0x080000, CRC(2d8ca8b0) SHA1(7c882f79c2402cf75979c681071007d76e4db9ae) )
  3492: 
  3493: 	ROM_REGION( 0x200000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3494: 	ROM_LOAD( "sr_7l.rom",    0x000000, 0x100000, CRC(4160c372) SHA1(0b36181e5ccd785c7fb89b9f41e458066a42c3b0) )	/* sprites */
  3495: 	ROM_LOAD( "sr_3l.rom",    0x100000, 0x100000, CRC(64dd673c) SHA1(bea4d17a71dd21c635866ee69b4892dc9d0ab455) )
  3496: 
  3497: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* samples for the 053260 */
  3498: 	ROM_LOAD( "sr_1d.rom",    0x0000, 0x100000, CRC(59810df9) SHA1(a0affc6330bdbfab1447dc0cf13c20ff708c2c71) )
  3499: ROM_END
  3500: 
  3501: ROM_START( ssrdrjbd )
  3502: 	ROM_REGION( 0xc0000, REGION_CPU1, 0 )
  3503: 	ROM_LOAD16_BYTE( "064jbd02.8e", 0x000000, 0x40000, CRC(7acdc1e3) SHA1(09679403abe695758d01fb0161168bc93888f915) )
  3504: 	ROM_LOAD16_BYTE( "064jbd03.8g", 0x000001, 0x40000, CRC(6a424918) SHA1(3e7a66adc934b1ed4ecd75a36d5a1c133916ac66) )
  3505: 	ROM_LOAD16_BYTE( "sr_b04.rom",  0x080000, 0x20000, CRC(ef2315bd) SHA1(2c8b11321cb5fdb78d760fabca666c0d8cc5b298) )
  3506: 	ROM_LOAD16_BYTE( "sr_b05.rom",  0x080001, 0x20000, CRC(51d6fbc4) SHA1(e80de7d155b7f263c48ef4ae2702059be3c18e76) )
  3507: 
  3508: 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
  3509: 	ROM_LOAD( "sr_e01.rom",   0x0000, 0x10000, CRC(44b9bc52) SHA1(4654d6e14c6956c40a19cb41155accb63f0da338) )
  3510: 
  3511:     ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3512: 	ROM_LOAD( "sr_16k.rom",   0x000000, 0x080000, CRC(e2bdc619) SHA1(04449deb267b0beacfa33640b593eb16194aa0d9) )	/* tiles */
  3513: 	ROM_LOAD( "sr_12k.rom",   0x080000, 0x080000, CRC(2d8ca8b0) SHA1(7c882f79c2402cf75979c681071007d76e4db9ae) )
  3514: 
  3515: 	ROM_REGION( 0x200000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3516: 	ROM_LOAD( "sr_7l.rom",    0x000000, 0x100000, CRC(4160c372) SHA1(0b36181e5ccd785c7fb89b9f41e458066a42c3b0) )	/* sprites */
  3517: 	ROM_LOAD( "sr_3l.rom",    0x100000, 0x100000, CRC(64dd673c) SHA1(bea4d17a71dd21c635866ee69b4892dc9d0ab455) )
  3518: 
  3519: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* samples for the 053260 */
  3520: 	ROM_LOAD( "sr_1d.rom",    0x0000, 0x100000, CRC(59810df9) SHA1(a0affc6330bdbfab1447dc0cf13c20ff708c2c71) )
  3521: ROM_END
  3522: 
  3523: ROM_START( sunsetbl )
  3524: 	ROM_REGION( 0x100000, REGION_CPU1, 0 )
  3525: 	ROM_LOAD16_WORD_SWAP( "sunsetb.03",   0x000000, 0x080000, CRC(37ffe90b) SHA1(3f8542243f2a0c0718056672a906b70af5894a86) )
  3526: 	ROM_LOAD16_WORD_SWAP( "sunsetb.04",   0x080000, 0x080000, CRC(8ff647b7) SHA1(75144ce928fc4e7d24d9dd50a93e11ea41903bc4) )
  3527: 
  3528: 	ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3529: 	// should be sunsetb.09 and .10 from the bootleg, but .09 is a bad dump and .10 matches the parent's sr_12k, so we just use the parent's roms
  3530: 	ROM_LOAD( "sr_16k.rom",   0x000000, 0x080000, CRC(e2bdc619) SHA1(04449deb267b0beacfa33640b593eb16194aa0d9) )	/* tiles */
  3531: 	ROM_LOAD( "sr_12k.rom",   0x080000, 0x080000, CRC(2d8ca8b0) SHA1(7c882f79c2402cf75979c681071007d76e4db9ae) )
  3532: 
  3533: 	ROM_REGION( 0x200000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3534: 	ROM_LOAD( "sunsetb.05",   0x000000, 0x080000, CRC(8a0ff31a) SHA1(fee21d787d1cddd04713e10b1622f3fa231ebc4e) )
  3535: 	ROM_LOAD( "sunsetb.06",   0x080000, 0x080000, CRC(fdf2c887) SHA1(a165c7e6495d870324f59262ad4175a039e199a5) )
  3536: 	ROM_LOAD( "sunsetb.07",   0x100000, 0x080000, CRC(a545b1ed) SHA1(249f1f1a992f05c0dc23bd52785a355a402a0d10) )
  3537: 	ROM_LOAD( "sunsetb.08",   0x180000, 0x080000, CRC(f867cd38) SHA1(633703474010364dc47176965daa873d548da074) )
  3538: 
  3539: 	ROM_REGION( 0x100000, REGION_SOUND1, 0 )	/* samples */
  3540: 	ROM_LOAD( "sunsetb.01",   0x000000, 0x080000, CRC(1a8b5ca2) SHA1(4101686c7bf3243273a52fca046b252fc3c78721) )
  3541: 	ROM_LOAD( "sunsetb.02",   0x080000, 0x080000, CRC(5d485523) SHA1(478119cb6273d870ca04a66e9b964ca0424f6fbd) )
  3542: ROM_END
  3543: 
  3544: ROM_START( thndrx2 )
  3545: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
  3546: 	ROM_LOAD16_BYTE( "073-k02.11c", 0x000000, 0x20000, CRC(0c8b2d3f) SHA1(44ca5d96d8f85ae2760df4e1c339916e0a76143f) )
  3547: 	ROM_LOAD16_BYTE( "073-k03.12c", 0x000001, 0x20000, CRC(3803b427) SHA1(95b755c70ac55af604c6b44bc41b761efce19f48) )
  3548: 
  3549: 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
  3550: 	ROM_LOAD( "073-c01.4f",   0x0000, 0x10000, CRC(44ebe83c) SHA1(9274df6affa4f0456d273ff3aa1bda7d2a20416e) )
  3551: 
  3552:     ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3553: 	ROM_LOAD( "073-c06.16k",  0x000000, 0x080000, CRC(24e22b42) SHA1(7e5e14495bd4adbe5d1cbec75262c9c4c83f5793) )	/* tiles */
  3554: 	ROM_LOAD( "073-c05.12k",  0x080000, 0x080000, CRC(952a935f) SHA1(87ed81616a243d679f7501db7acdd8b6617f85a3) )
  3555: 
  3556: 	ROM_REGION( 0x100000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3557: 	ROM_LOAD( "073-c07.7k",   0x000000, 0x080000, CRC(14e93f38) SHA1(bf111b68be722c9c2f0f9c7700b3af6cd8fd28be) )	/* sprites */
  3558: 	ROM_LOAD( "073-c08.3k",   0x080000, 0x080000, CRC(09fab3ab) SHA1(af54c7bfe8edc5b5ea2c4fba4d5c637cfcbbeff5) )
  3559: 
  3560: 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )	/* samples for the 053260 */
  3561: 	ROM_LOAD( "073-b04.2d",   0x0000, 0x80000, CRC(05287a0b) SHA1(10784b8be6a93a5ebf22a884f99c116e51ae8743) )
  3562: ROM_END
  3563: 
  3564: ROM_START( thndrx2a )
  3565: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
  3566: 	ROM_LOAD16_BYTE( "073-m02.11c", 0x000000, 0x20000, CRC(5b5b4cc0) SHA1(9f67169fba4523e2893e5ecf17b1be8cdedba83e) )
  3567: 	ROM_LOAD16_BYTE( "073-m03.12c", 0x000001, 0x20000, CRC(320435a8) SHA1(5f656867049b614b0834ef6d8e36fe86118ea1cf) )
  3568: 
  3569: 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
  3570: 	ROM_LOAD( "073-c01.4f",   0x0000, 0x10000, CRC(44ebe83c) SHA1(9274df6affa4f0456d273ff3aa1bda7d2a20416e) )
  3571: 
  3572:     ROM_REGION( 0x100000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3573: 	ROM_LOAD( "073-c06.16k",  0x000000, 0x080000, CRC(24e22b42) SHA1(7e5e14495bd4adbe5d1cbec75262c9c4c83f5793) )	/* tiles */
  3574: 	ROM_LOAD( "073-c05.12k",  0x080000, 0x080000, CRC(952a935f) SHA1(87ed81616a243d679f7501db7acdd8b6617f85a3) )
  3575: 
  3576: 	ROM_REGION( 0x100000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3577: 	ROM_LOAD( "073-c07.7k",   0x000000, 0x080000, CRC(14e93f38) SHA1(bf111b68be722c9c2f0f9c7700b3af6cd8fd28be) )	/* sprites */
  3578: 	ROM_LOAD( "073-c08.3k",   0x080000, 0x080000, CRC(09fab3ab) SHA1(af54c7bfe8edc5b5ea2c4fba4d5c637cfcbbeff5) )
  3579: 
  3580: 	ROM_REGION( 0x80000, REGION_SOUND1, 0 )	/* samples for the 053260 */
  3581: 	ROM_LOAD( "073-b04.2d",   0x0000, 0x80000, CRC(05287a0b) SHA1(10784b8be6a93a5ebf22a884f99c116e51ae8743) )
  3582: ROM_END
  3583: 
  3584: ROM_START( prmrsocr )
  3585: 	ROM_REGION( 0x80000, REGION_CPU1, 0 )
  3586: 	ROM_LOAD16_BYTE( "101jab08.1h", 0x000000, 0x40000, CRC(c22b528c) SHA1(6c96ba573f7bb5be1d52d9352f57d7a402bc96b4) )
  3587: 	ROM_LOAD16_BYTE( "101jab07.4h", 0x000001, 0x40000, CRC(06e7acaf) SHA1(d7197bb1c3b28cbe82dd4e25302e00f7c1838208) )
  3588: 
  3589: 	ROM_REGION( 0x30000, REGION_CPU2, 0 ) /* 64k for the audio CPU */
  3590: 	ROM_LOAD( "101_c05.5e",   0x00000, 0x20000, CRC(02c3679f) SHA1(e6d878185e73baca24ac98891c647856be9353c4) )
  3591: 	ROM_RELOAD(               0x10000, 0x20000 )
  3592: 
  3593:     ROM_REGION( 0x080000, REGION_GFX1, 0 )	/* graphics (addressable by the main CPU) */
  3594: 	ROM_LOAD( "101a12.12l",   0x000000, 0x040000, CRC(33530d7f) SHA1(87859ad058fb79e357101675706373f83a3f23d4) )	/* tiles */
  3595: 	ROM_LOAD( "101a11.12k",   0x040000, 0x040000, CRC(7f773271) SHA1(0c6a62c6eb1897e88e893576f751e3d4fc788036) )
  3596: 
  3597: 	ROM_REGION( 0x400000, REGION_GFX2, 0 )	/* graphics (addressable by the main CPU) */
  3598: 	ROM_LOAD( "101a09.3l",    0x000000, 0x200000, CRC(b6a1b424) SHA1(4cf7bb4b8176977dea10fb80fcd9d6e24cc6d1b9) )	/* sprites */
  3599: 	ROM_LOAD( "101a10.8l",    0x200000, 0x200000, CRC(bbd58adc) SHA1(ad9bd4df995de6e6290f27c58c7892c7191802e4) )
  3600: 
  3601: 	ROM_REGION( 0x080000, REGION_GFX3, ROMREGION_DISPOSE )	/* 053936 tiles */
  3602: 	ROM_LOAD( "101a03.18f",   0x000000, 0x080000, CRC(59a1a91c) SHA1(f596a40784a671e97116df6561682eb6c5c44e08) )
  3603: 
  3604: 	ROM_REGION( 0x040000, REGION_USER1, 0 )	/* 053936 tilemaps */
  3605: 	ROM_LOAD( "101a01.18d",   0x000000, 0x020000, CRC(716f910f) SHA1(fbe69cac266084ea1efb094a7f863dca39f12500) )
  3606: 	ROM_LOAD( "101a02.16d",   0x020000, 0x020000, CRC(222869c7) SHA1(0a9bea294ff3281f316dd4beecc4c94d75d52b49) )
  3607: 
  3608: 	ROM_REGION( 0x200000, REGION_SOUND1, 0 )	/* samples for the 054539 */
  3609: 	ROM_LOAD( "101a06.1d",    0x0000, 0x200000, CRC(4f48e043) SHA1(f50e8642d9d3a028c243777640e7cd13da1abf86) )
  3610: ROM_END
  3611: 
  3612: 
  3613: 
  3614: static DRIVER_INIT( gfx )
  3615: {
  3616: 	konami_rom_deinterleave_2(REGION_GFX1);
  3617: 	konami_rom_deinterleave_2(REGION_GFX2);
  3618: }
  3619: 
  3620: static DRIVER_INIT( mia )
  3621: {
  3622: 	unsigned char *gfxdata;
  3623: 	int len;
  3624: 	int i,j,k,A,B;
  3625: 	int bits[32];
  3626: 	unsigned char *temp;
  3627: 
  3628: 
  3629: 	init_gfx();
  3630: 
  3631: 	/*
  3632: 		along with the normal byte reordering, TMNT also needs the bits to
  3633: 		be shuffled around because the ROMs are connected differently to the
  3634: 		051962 custom IC.
  3635: 	*/
  3636: 	gfxdata = memory_region(REGION_GFX1);
  3637: 	len = memory_region_length(REGION_GFX1);
  3638: 	for (i = 0;i < len;i += 4)
  3639: 	{
  3640: 		for (j = 0;j < 4;j++)
  3641: 			for (k = 0;k < 8;k++)
  3642: 				bits[8*j + k] = (gfxdata[i + j] >> k) & 1;
  3643: 
  3644: 		for (j = 0;j < 4;j++)
  3645: 		{
  3646: 			gfxdata[i + j] = 0;
  3647: 			for (k = 0;k < 8;k++)
  3648: 				gfxdata[i + j] |= bits[j + 4*k] << k;
  3649: 		}
  3650: 	}
  3651: 
  3652: 	/*
  3653: 		along with the normal byte reordering, MIA also needs the bits to
  3654: 		be shuffled around because the ROMs are connected differently to the
  3655: 		051937 custom IC.
  3656: 	*/
  3657: 	gfxdata = memory_region(REGION_GFX2);
  3658: 	len = memory_region_length(REGION_GFX2);
  3659: 	for (i = 0;i < len;i += 4)
  3660: 	{
  3661: 		for (j = 0;j < 4;j++)
  3662: 			for (k = 0;k < 8;k++)
  3663: 				bits[8*j + k] = (gfxdata[i + j] >> k) & 1;
  3664: 
  3665: 		for (j = 0;j < 4;j++)
  3666: 		{
  3667: 			gfxdata[i + j] = 0;
  3668: 			for (k = 0;k < 8;k++)
  3669: 				gfxdata[i + j] |= bits[j + 4*k] << k;
  3670: 		}
  3671: 	}
  3672: 
  3673: 	temp = malloc(len);
  3674: 	if (!temp) return;	/* bad thing! */
  3675: 	memcpy(temp,gfxdata,len);
  3676: 	for (A = 0;A < len/4;A++)
  3677: 	{
  3678: 		/* the bits to scramble are the low 8 ones */
  3679: 		for (i = 0;i < 8;i++)
  3680: 			bits[i] = (A >> i) & 0x01;
  3681: 
  3682: 		B = A & 0x3ff00;
  3683: 
  3684: 		if ((A & 0x3c000) == 0x3c000)
  3685: 		{
  3686: 			B |= bits[3] << 0;
  3687: 			B |= bits[5] << 1;
  3688: 			B |= bits[0] << 2;
  3689: 			B |= bits[1] << 3;
  3690: 			B |= bits[2] << 4;
  3691: 			B |= bits[4] << 5;
  3692: 			B |= bits[6] << 6;
  3693: 			B |= bits[7] << 7;
  3694: 		}
  3695: 		else
  3696: 		{
  3697: 			B |= bits[3] << 0;
  3698: 			B |= bits[5] << 1;
  3699: 			B |= bits[7] << 2;
  3700: 			B |= bits[0] << 3;
  3701: 			B |= bits[1] << 4;
  3702: 			B |= bits[2] << 5;
  3703: 			B |= bits[4] << 6;
  3704: 			B |= bits[6] << 7;
  3705: 		}
  3706: 
  3707: 		gfxdata[4*A+0] = temp[4*B+0];
  3708: 		gfxdata[4*A+1] = temp[4*B+1];
  3709: 		gfxdata[4*A+2] = temp[4*B+2];
  3710: 		gfxdata[4*A+3] = temp[4*B+3];
  3711: 	}
  3712: 	free(temp);
  3713: }
  3714: 
  3715: 
  3716: static DRIVER_INIT( tmnt )
  3717: {
  3718: 	unsigned char *gfxdata;
  3719: 	int len;
  3720: 	int i,j,k,A,B,entry;
  3721: 	int bits[32];
  3722: 	unsigned char *temp;
  3723: 
  3724: 
  3725: 	init_gfx();
  3726: 
  3727: 	/*
  3728: 		along with the normal byte reordering, TMNT also needs the bits to
  3729: 		be shuffled around because the ROMs are connected differently to the
  3730: 		051962 custom IC.
  3731: 	*/
  3732: 	gfxdata = memory_region(REGION_GFX1);
  3733: 	len = memory_region_length(REGION_GFX1);
  3734: 	for (i = 0;i < len;i += 4)
  3735: 	{
  3736: 		for (j = 0;j < 4;j++)
  3737: 			for (k = 0;k < 8;k++)
  3738: 				bits[8*j + k] = (gfxdata[i + j] >> k) & 1;
  3739: 
  3740: 		for (j = 0;j < 4;j++)
  3741: 		{
  3742: 			gfxdata[i + j] = 0;
  3743: 			for (k = 0;k < 8;k++)
  3744: 				gfxdata[i + j] |= bits[j + 4*k] << k;
  3745: 		}
  3746: 	}
  3747: 
  3748: 	/*
  3749: 		along with the normal byte reordering, TMNT also needs the bits to
  3750: 		be shuffled around because the ROMs are connected differently to the
  3751: 		051937 custom IC.
  3752: 	*/
  3753: 	gfxdata = memory_region(REGION_GFX2);
  3754: 	len = memory_region_length(REGION_GFX2);
  3755: 	for (i = 0;i < len;i += 4)
  3756: 	{
  3757: 		for (j = 0;j < 4;j++)
  3758: 			for (k = 0;k < 8;k++)
  3759: 				bits[8*j + k] = (gfxdata[i + j] >> k) & 1;
  3760: 
  3761: 		for (j = 0;j < 4;j++)
  3762: 		{
  3763: 			gfxdata[i + j] = 0;
  3764: 			for (k = 0;k < 8;k++)
  3765: 				gfxdata[i + j] |= bits[j + 4*k] << k;
  3766: 		}
  3767: 	}
  3768: 
  3769: 	temp = malloc(len);
  3770: 	if (!temp) return;	/* bad thing! */
  3771: 	memcpy(temp,gfxdata,len);
  3772: 	for (A = 0;A < len/4;A++)
  3773: 	{
  3774: 		unsigned char *code_conv_table = &memory_region(REGION_PROMS)[0x0000];
  3775: #define CA0 0 
  3776: #define CA1 1 
  3777: #define CA2 2 
  3778: #define CA3 3 
  3779: #define CA4 4 
  3780: #define CA5 5 
  3781: #define CA6 6 
  3782: #define CA7 7 
  3783: #define CA8 8 
  3784: #define CA9 9 
  3785: 
  3786: 		/* following table derived from the schematics. It indicates, for each of the */
  3787: 		/* 9 low bits of the sprite line address, which bit to pick it from. */
  3788: 		/* For example, when the PROM contains 4, which applies to 4x2 sprites, */
  3789: 		/* bit OA1 comes from CA5, OA2 from CA0, and so on. */
  3790: 		static unsigned char bit_pick_table[10][8] =
  3791: 		{
  3792: 			/*0(1x1) 1(2x1) 2(1x2) 3(2x2) 4(4x2) 5(2x4) 6(4x4) 7(8x8) */
  3793: 			{ CA3,   CA3,   CA3,   CA3,   CA3,   CA3,   CA3,   CA3 },	/* CA3 */
  3794: 			{ CA0,   CA0,   CA5,   CA5,   CA5,   CA5,   CA5,   CA5 },	/* OA1 */
  3795: 			{ CA1,   CA1,   CA0,   CA0,   CA0,   CA7,   CA7,   CA7 },	/* OA2 */
  3796: 			{ CA2,   CA2,   CA1,   CA1,   CA1,   CA0,   CA0,   CA9 },	/* OA3 */
  3797: 			{ CA4,   CA4,   CA2,   CA2,   CA2,   CA1,   CA1,   CA0 },	/* OA4 */
  3798: 			{ CA5,   CA6,   CA4,   CA4,   CA4,   CA2,   CA2,   CA1 },	/* OA5 */
  3799: 			{ CA6,   CA5,   CA6,   CA6,   CA6,   CA4,   CA4,   CA2 },	/* OA6 */
  3800: 			{ CA7,   CA7,   CA7,   CA7,   CA8,   CA6,   CA6,   CA4 },	/* OA7 */
  3801: 			{ CA8,   CA8,   CA8,   CA8,   CA7,   CA8,   CA8,   CA6 },	/* OA8 */
  3802: 			{ CA9,   CA9,   CA9,   CA9,   CA9,   CA9,   CA9,   CA8 }	/* OA9 */
  3803: 		};
  3804: 
  3805: 		/* pick the correct entry in the PROM (top 8 bits of the address) */
  3806: 		entry = code_conv_table[(A & 0x7f800) >> 11] & 7;
  3807: 
  3808: 		/* the bits to scramble are the low 10 ones */
  3809: 		for (i = 0;i < 10;i++)
  3810: 			bits[i] = (A >> i) & 0x01;
  3811: 
  3812: 		B = A & 0x7fc00;
  3813: 
  3814: 		for (i = 0;i < 10;i++)
  3815: 			B |= bits[bit_pick_table[i][entry]] << i;
  3816: 
  3817: 		gfxdata[4*A+0] = temp[4*B+0];
  3818: 		gfxdata[4*A+1] = temp[4*B+1];
  3819: 		gfxdata[4*A+2] = temp[4*B+2];
  3820: 		gfxdata[4*A+3] = temp[4*B+3];
  3821: 	}
  3822: 	free(temp);
  3823: }
  3824: 
  3825: static void shuffle(UINT8 *buf,int len)
  3826: {
  3827: 	int i;
  3828: 	UINT8 t;
  3829: 
  3830: 	if (len == 2) return;
  3831: 
  3832: 	if (len % 4) exit(1);	/* must not happen */
  3833: 
  3834: 	len /= 2;
  3835: 
  3836: 	for (i = 0;i < len/2;i++)
  3837: 	{
  3838: 		t = buf[len/2 + i];
  3839: 		buf[len/2 + i] = buf[len + i];
  3840: 		buf[len + i] = t;
  3841: 	}
  3842: 
  3843: 	shuffle(buf,len);
  3844: 	shuffle(buf + len,len);
  3845: }
  3846: 
  3847: static DRIVER_INIT( glfgreat )
  3848: {
  3849: 	/* ROMs are interleaved at byte level */
  3850: 	shuffle(memory_region(REGION_GFX1),memory_region_length(REGION_GFX1));
  3851: 	shuffle(memory_region(REGION_GFX2),memory_region_length(REGION_GFX2));
  3852: }
  3853: 
  3854: static DRIVER_INIT( cuebrckj )
  3855: {
  3856: 	generic_nvram = (data8_t *)cbj_nvram;
  3857: 	generic_nvram_size = 0x400*0x20;
  3858: 
  3859: 	/* ROMs are interleaved at byte level */
  3860: 	shuffle(memory_region(REGION_GFX1),memory_region_length(REGION_GFX1));
  3861: 	shuffle(memory_region(REGION_GFX2),memory_region_length(REGION_GFX2));
  3862: }
  3863: 
  3864: GAME( 1989, cuebrckj, cuebrick, cuebrckj, mia,      cuebrckj, ROT0,  "Konami", "Cue Brick (Japan version D)" )
  3865: 
  3866: GAME( 1989, mia,      0,        mia,      mia,      mia,      ROT0,  "Konami", "Missing in Action (version T)" )
  3867: GAME( 1989, mia2,     mia,      mia,      mia,      mia,      ROT0,  "Konami", "Missing in Action (version S)" )
  3868: 
  3869: GAME( 1989, tmnt,     0,        tmnt,     tmnt,     tmnt,     ROT0,  "Konami", "Teenage Mutant Ninja Turtles (World 4 Players)" )
  3870: GAME( 1989, tmntu,    tmnt,     tmnt,     tmnt,     tmnt,     ROT0,  "Konami", "Teenage Mutant Ninja Turtles (US 4 Players)" )
  3871: GAME( 1989, tmht,     tmnt,     tmnt,     tmnt,     tmnt,     ROT0,  "Konami", "Teenage Mutant Hero Turtles (UK 4 Players)" )
  3872: GAME( 1990, tmntj,    tmnt,     tmnt,     tmnt,     tmnt,     ROT0,  "Konami", "Teenage Mutant Ninja Turtles (Japan 4 Players)" )
  3873: GAME( 1989, tmht2p,   tmnt,     tmnt,     tmnt2p,   tmnt,     ROT0,  "Konami", "Teenage Mutant Hero Turtles (UK 2 Players)" )
  3874: GAME( 1990, tmnt2pj,  tmnt,     tmnt,     tmnt2p,   tmnt,     ROT0,  "Konami", "Teenage Mutant Ninja Turtles (Japan 2 Players)" )
  3875: GAME( 1989, tmnt2po,  tmnt,     tmnt,     tmnt2p,   tmnt,     ROT0,  "Konami", "Teenage Mutant Ninja Turtles (Oceania 2 Players)" )
  3876: 
  3877: GAME( 1990, punkshot, 0,        punkshot, punkshot, gfx,      ROT0,  "Konami", "Punk Shot (US 4 Players)" )
  3878: GAME( 1990, punksht2, punkshot, punkshot, punksht2, gfx,      ROT0,  "Konami", "Punk Shot (US 2 Players)" )
  3879: GAME( 1990, punkshtj, punkshot, punkshot, punksht2, gfx,      ROT0,  "Konami", "Punk Shot (Japan 2 Players)" )
  3880: 
  3881: GAME( 1990, lgtnfght, 0,        lgtnfght, lgtnfght, gfx,      ROT90, "Konami", "Lightning Fighters (US)" )
  3882: GAME( 1990, trigon,   lgtnfght, lgtnfght, lgtnfght, gfx,      ROT90, "Konami", "Trigon (Japan)" )
  3883: 
  3884: GAME( 1991, blswhstl, 0,        detatwin, detatwin, gfx,      ROT90, "Konami", "Bells & Whistles (Version L)" )		// version L
  3885: GAME( 1991, detatwin, blswhstl, detatwin, detatwin, gfx,      ROT90, "Konami", "Detana!! Twin Bee (Japan ver. J)" )	// version J
  3886: 
  3887: GAMEX(1991, glfgreat, 0,        glfgreat, glfgreat, glfgreat, ROT0,  "Konami", "Golfing Greats", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
  3888: GAMEX(1991, glfgretj, glfgreat, glfgreat, glfgreat, glfgreat, ROT0,  "Konami", "Golfing Greats (Japan)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
  3889: 
  3890: GAMEX(1991, tmnt2,    0,        tmnt2,    ssridr4p, gfx,      ROT0,  "Konami", "Teenage Mutant Ninja Turtles - Turtles in Time (US 4 Players ver. UAA)", GAME_UNEMULATED_PROTECTION )		// ver. UAA
  3891: GAMEX(1991, tmnt22p,  tmnt2,    tmnt2,    ssriders, gfx,      ROT0,  "Konami", "Teenage Mutant Ninja Turtles - Turtles in Time (US 2 Players ver. UDA)", GAME_UNEMULATED_PROTECTION )		// ver. UDA
  3892: GAMEX(1991, tmnt2a,   tmnt2,    tmnt2,    ssrid4ps, gfx,      ROT0,  "Konami", "Teenage Mutant Ninja Turtles - Turtles in Time (Asia 4 Players ver. ADA)", GAME_UNEMULATED_PROTECTION )	// ver. ADA
  3893: 
  3894: GAME( 1993, qgakumon, 0,        tmnt2,    qgakumon, gfx,      ROT0,  "Konami", "Quiz Gakumon no Susume (Japan ver. JA2 Type L)" )
  3895: 
  3896: GAMEX(1991, ssriders, 0,        ssriders, ssridr4p, gfx,      ROT0,  "Konami", "Sunset Riders (World 4 Players ver. EAC)", GAME_IMPERFECT_GRAPHICS )
  3897: GAMEX(1991, ssrdrebd, ssriders, ssriders, ssriders, gfx,      ROT0,  "Konami", "Sunset Riders (World 2 Players ver. EBD)", GAME_IMPERFECT_GRAPHICS )
  3898: GAMEX(1991, ssrdrebc, ssriders, ssriders, ssriders, gfx,      ROT0,  "Konami", "Sunset Riders (World 2 Players ver. EBC)", GAME_IMPERFECT_GRAPHICS )
  3899: GAMEX(1991, ssrdruda, ssriders, ssriders, ssrid4ps, gfx,      ROT0,  "Konami", "Sunset Riders (US 4 Players ver. UDA)", GAME_IMPERFECT_GRAPHICS )
  3900: GAMEX(1991, ssrdruac, ssriders, ssriders, ssridr4p, gfx,      ROT0,  "Konami", "Sunset Riders (US 4 Players ver. UAC)", GAME_IMPERFECT_GRAPHICS )
  3901: GAMEX(1991, ssrdrubc, ssriders, ssriders, ssriders, gfx,      ROT0,  "Konami", "Sunset Riders (US 2 Players ver. UBC)", GAME_IMPERFECT_GRAPHICS )
  3902: GAMEX(1991, ssrdrabd, ssriders, ssriders, ssriders, gfx,      ROT0,  "Konami", "Sunset Riders (Asia 2 Players ver. ABD)", GAME_IMPERFECT_GRAPHICS )
  3903: GAMEX(1991, ssrdrjbd, ssriders, ssriders, ssriders, gfx,      ROT0,  "Konami", "Sunset Riders (Japan 2 Players ver. JBD)", GAME_IMPERFECT_GRAPHICS )
  3904: GAMEX(1991, sunsetbl, ssriders, ssridersbl, ssridbl, gfx,     ROT0,  "Konami", "Sunset Riders (bootleg 4 Players ver. ADD)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
  3905: 
  3906: GAME( 1991, thndrx2,  0,        thndrx2,  thndrx2,  gfx,      ROT0,  "Konami", "Thunder Cross II (Japan)" )
  3907: GAME( 1991, thndrx2a, thndrx2,  thndrx2,  thndrx2,  gfx,      ROT0,  "Konami", "Thunder Cross II (Asia)" )
  3908: 
  3909: GAME( 1993, prmrsocr, 0,        prmrsocr, prmrsocr, glfgreat, ROT0,  "Konami", "Premier Soccer (Japan ver. JAB)" )
  3910: 




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