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 : Majuu No Oukoku : VM Driver Source

Source Listing


     1: /*
     2: Konami "Twin16"
     3: 
     4: driver by Phil Stroffolino
     5: 
     6: CPU   : 68000(10M)x2 Z-80
     7: SOUND : YM2151 007232 uPD7759C
     8: OSC.  : 3.579545MHz 18432.00KHz
     9: 
    10: Main processors are a pair of 68000 CPUs
    11: Sounds are generated by a Z80, a Yamaha 2151 and 3012, a Konami custom IC and a UPD7759C
    12: 
    13: 		Dark Adventure / Devil World / Majuu no Ohkoku
    14: 		Vulcan Venture / Gradius II
    15: 		Cuebrick
    16: 		MIA (Japan)
    17: 		Final Round / Hard Puncher (Japan)
    18: 
    19: Known Issues:
    20: 	- battery-backed RAM isn't handled properly (CueBrick)
    21: 	- some rogue sprites in Devil World
    22: 	- sprite-background priority isn't correct (see intro screen of Devil World)
    23: 
    24: 68000 Memory Map for Konami Twin System
    25: 
    26: 	CPUA										CPUB
    27: 	0x000000..0x03ffff	ROM						0x000000..0x03ffff
    28: 	0x040000..0x043fff	communication RAM		0x040000..0x043fff (shared)
    29: 	0x060000..0x063fff	work RAM				0x060000..0x063fff
    30: 	0x080000..0x080fff	palette
    31: 	0x080000..0x09ffff	ROM (extra tile data)
    32: 	0x0a0000..0x0a0001	IRQ control				0x0a0000..0x0a0001
    33: 	0x0a0008..0x0a0009	sound command
    34: 	0x0a0010..0xa00011	watchdog
    35: 	0x0c0000..0x0c0001	screenflip
    36: 	0x0c0002..0x0c000f	scroll registers
    37: 
    38: 	0x100000..0x103fff	FIXRAM (text layer)
    39: 	0x120000..0x123fff	VIDRAM (tilemaps)		0x480000..0x483fff (shared)
    40: 	0x140000..0x143fff	OBJRAM (sprites)		0x400000..0x403fff (shared)
    41: 						ZIP RAM	(tiles)			0x500000..0x53ffff
    42: 						gfx ROM (banked)		0x600000..0x77ffff
    43: 						sprite gfx RAM			0x780000..0x79ffff
    44: */
    45: 
    46: #include "driver.h" 
    47: #include "vidhrdw/generic.h" 
    48: #include "cpu/m68000/m68000.h" 
    49: #include "cpu/z80/z80.h" 
    50: 
    51: WRITE16_HANDLER( fround_gfx_bank_w );
    52: WRITE16_HANDLER( twin16_video_register_w );
    53: 
    54: extern VIDEO_START( twin16 );
    55: extern VIDEO_UPDATE( twin16 );
    56: extern VIDEO_EOF( twin16 );
    57: 
    58: extern void twin16_spriteram_process( void );
    59: 
    60: /******************************************************************************************/
    61: 
    62: UINT16 twin16_custom_vidhrdw;
    63: data16_t *twin16_gfx_rom;
    64: data16_t *twin16_sprite_gfx_ram;
    65: data16_t *twin16_tile_gfx_ram;
    66: data16_t *twin16_fixram; /* text layer */
    67: 
    68: static data16_t twin16_CPUA_register, twin16_CPUB_register;
    69: #define CPUA_IRQ_ENABLE (twin16_CPUA_register&0x20) 
    70: #define CPUB_IRQ_ENABLE (twin16_CPUB_register&0x02) 
    71: 
    72: static UINT8 twin16_soundlatch;
    73: static data16_t twin16_sound_command;
    74: 
    75: static data16_t *battery_backed_ram;
    76: 
    77: 
    78: 
    79: int twin16_spriteram_process_enable( void )
    80: {
    81: 	return (twin16_CPUA_register&0x40)==0;
    82: }
    83: 
    84: enum
    85: {
    86: 	CPU_SOUND,
    87: 	CPU_B,
    88: 	CPU_A
    89: };
    90: 
    91: 
    92: /******************************************************************************************/
    93: 
    94: #define COMRAM_r					MRA16_BANK1 
    95: #define COMRAM_w					MWA16_BANK1 
    96: 
    97: static NVRAM_HANDLER( cuebrick )
    98: {
    99: 	if (read_or_write)
   100: 		mame_fwrite(file,battery_backed_ram,0x4000);
   101: 	else
   102: 	{
   103: 		if (file)
   104: 			mame_fread(file,battery_backed_ram,0x4000);
   105: 		else
   106: 			memset(battery_backed_ram,0,0x4000);
   107: 	}
   108: }
   109: 
   110: /******************************************************************************************/
   111: 
   112: static READ16_HANDLER( videoram16_r )
   113: {
   114: 	return videoram16[offset];
   115: }
   116: 
   117: static WRITE16_HANDLER( videoram16_w )
   118: {
   119: 	COMBINE_DATA(videoram16 + offset);
   120: }
   121: 
   122: static READ16_HANDLER( extra_rom_r )
   123: {
   124: 	return ((data16_t *)memory_region(REGION_GFX3))[offset];
   125: }
   126: 
   127: static READ16_HANDLER( twin16_gfx_rom1_r )
   128: {
   129: 	return twin16_gfx_rom[offset];
   130: }
   131: 
   132: static READ16_HANDLER( twin16_gfx_rom2_r )
   133: {
   134: 	return twin16_gfx_rom[offset + 0x80000 + ((twin16_CPUB_register&0x04)?0x40000:0)];
   135: }
   136: 
   137: static WRITE16_HANDLER( twin16_paletteram_word_w )
   138: { // identical to tmnt_paletteram_w
   139: 	int r,g,b;
   140: 
   141: 	COMBINE_DATA(paletteram16 + offset);
   142: 	offset &= ~1;
   143: 
   144: 	data = ((paletteram16[offset] & 0xff) << 8) | (paletteram16[offset+1] & 0xff);
   145: 
   146: 	r = (data >>  0) & 0x1f;
   147: 	g = (data >>  5) & 0x1f;
   148: 	b = (data >> 10) & 0x1f;
   149: 
   150: 	r = (r << 3) | (r >> 2);
   151: 	g = (g << 3) | (g >> 2);
   152: 	b = (b << 3) | (b >> 2);
   153: 
   154: 	palette_set_color(offset / 2,r,g,b);
   155: }
   156: 
   157: 
   158: /******************************************************************************************/
   159: 
   160: static WRITE16_HANDLER( sound_command_w )
   161: {
   162: 	COMBINE_DATA(&twin16_sound_command);
   163: 	soundlatch_w( 0, twin16_sound_command&0xff );
   164: }
   165: 
   166: static INTERRUPT_GEN( CPUA_interrupt )
   167: {
   168: 	if (CPUA_IRQ_ENABLE) cpu_set_irq_line(cpu_getactivecpu(), 5, HOLD_LINE);
   169: }
   170: 
   171: static INTERRUPT_GEN( CPUB_interrupt )
   172: {
   173: 	if (CPUB_IRQ_ENABLE) cpu_set_irq_line(cpu_getactivecpu(), 5, HOLD_LINE);
   174: }
   175: 
   176: static READ16_HANDLER( twin16_sprite_status_r )
   177: {
   178: 	/*
   179: 		return value indicates whether the spriteram16-processing circuitry
   180: 		is busy.
   181: 
   182: 		for now, we'll just alternate the value every time it is read
   183: 	*/
   184: 	static int k;
   185: 	k = 1-k;
   186: 	return k;
   187: }
   188: 
   189: static WRITE16_HANDLER( twin16_CPUA_register_w )
   190: {
   191: 	/*
   192: 		7	6	5	4	3	2	1	0
   193: 			?							sprite protection disable
   194: 				X						IRQ5 enable (CPUA)
   195: 					X					0->1 trigger IRQ6 on CPUB
   196: 						X				0->1 trigger IRQ on sound CPU
   197: 								x	x	coin counters
   198: 	*/
   199: 	data16_t old = twin16_CPUA_register;
   200: 	COMBINE_DATA(&twin16_CPUA_register);
   201: 	if( twin16_CPUA_register!=old )
   202: 	{
   203: 		if( (old&0x08)==0 && (twin16_CPUA_register&0x08) )
   204: 		{
   205: 			cpu_set_irq_line_and_vector( CPU_SOUND, 0, HOLD_LINE, 0xff );
   206: 		}
   207: 
   208: 		if( (old&0x40) && (twin16_CPUA_register&0x40)==0 )
   209: 		{
   210: 			twin16_spriteram_process();
   211: 		}
   212: 
   213: 		if( (old&0x10)==0 && (twin16_CPUA_register&0x10) )
   214: 		{
   215: 			cpu_set_irq_line( CPU_B, MC68000_IRQ_6, HOLD_LINE );
   216: 		}
   217: 		coin_counter_w( 0, twin16_CPUA_register&0x01 );
   218: 		coin_counter_w( 1, twin16_CPUA_register&0x02 );
   219: 	}
   220: }
   221: 
   222: static WRITE16_HANDLER( twin16_CPUB_register_w )
   223: {
   224: 	/*
   225: 		7	6	5	4	3	2	1	0
   226: 							X			gfx bank select
   227: 								X		IRQ5 enable
   228: 									X	0->1 trigger IRQ6 on CPUA
   229: 	*/
   230: 	data16_t old = twin16_CPUB_register;
   231: 	COMBINE_DATA(&twin16_CPUB_register);
   232: 	if( twin16_CPUB_register!=old )
   233: 	{
   234: 		if( (old&0x01)==0 && (twin16_CPUB_register&0x1) )
   235: 		{
   236: 			cpu_set_irq_line( CPU_A, MC68000_IRQ_6, HOLD_LINE );
   237: 		}
   238: 	}
   239: }
   240: 
   241: static WRITE16_HANDLER( fround_CPU_register_w )
   242: {
   243: 	data16_t old = twin16_CPUA_register;
   244: 	COMBINE_DATA(&twin16_CPUA_register);
   245: 	if( twin16_CPUA_register!=old )
   246: 	{
   247: 		if( (old&0x08)==0 && (twin16_CPUA_register&0x08) )
   248: 			cpu_set_irq_line_and_vector( CPU_SOUND, 0, HOLD_LINE, 0xff ); // trigger IRQ on sound CPU
   249: 	}
   250: }
   251: 
   252: /******************************************************************************************/
   253: 
   254: static READ16_HANDLER( twin16_input_r )
   255: {
   256: 	switch( offset )
   257: 	{
   258: 		case 0x00: return readinputport(0); // coin
   259: 		case 0x01: return readinputport(1); // p1
   260: 		case 0x02: return readinputport(2); // p2
   261: 		case 0x03: return readinputport(3); // p3? (Devils World)
   262: 		case 0x08: return readinputport(5); // DSW1
   263: 		case 0x09: return readinputport(4); // DSW2
   264: 		case 0x0c: return readinputport(6); // DSW3
   265: 	}
   266: 	return 0;
   267: }
   268: 
   269: /******************************************************************************************/
   270: /* sound system */
   271: 
   272: READ_HANDLER( twin16_sres_r )
   273: {
   274: 	return twin16_soundlatch;
   275: }
   276: 
   277: WRITE_HANDLER( twin16_sres_w )
   278: {
   279: 	/* bit 1 resets the UPD7795C sound chip */
   280: 	UPD7759_reset_w(0, data & 2);
   281: 	twin16_soundlatch = data;
   282: }
   283: 
   284: 
   285: static MEMORY_READ_START( readmem_sound )
   286: 	{ 0x0000, 0x7fff, MRA_ROM },
   287: 	{ 0x8000, 0x8fff, MRA_RAM },
   288: 	{ 0x9000, 0x9000, twin16_sres_r },
   289: 	{ 0xa000, 0xa000, soundlatch_r },
   290: 	{ 0xb000, 0xb00d, K007232_read_port_0_r },
   291: 	{ 0xc001, 0xc001, YM2151_status_port_0_r },
   292: 	{ 0xf000, 0xf000, UPD7759_0_busy_r },
   293: MEMORY_END
   294: 
   295: static MEMORY_WRITE_START( writemem_sound )
   296: 	{ 0x0000, 0x7fff, MWA_ROM },
   297: 	{ 0x8000, 0x8fff, MWA_RAM },
   298: 	{ 0x9000, 0x9000, twin16_sres_w },
   299: 	{ 0xb000, 0xb00d, K007232_write_port_0_w  },
   300: 	{ 0xc000, 0xc000, YM2151_register_port_0_w },
   301: 	{ 0xc001, 0xc001, YM2151_data_port_0_w },
   302: 	{ 0xd000, 0xd000, UPD7759_0_port_w },
   303: 	{ 0xe000, 0xe000, UPD7759_0_start_w },
   304: MEMORY_END
   305: 
   306: /******************************************************************************************/
   307: 
   308: static MEMORY_READ16_START( readmem )
   309: 	{ 0x000000, 0x03ffff, MRA16_ROM },
   310: 	{ 0x040000, 0x043fff, COMRAM_r },
   311: 	{ 0x060000, 0x063fff, MRA16_RAM },
   312: 	{ 0x080000, 0x080fff, MRA16_RAM },
   313: 	{ 0x0a0000, 0x0a001b, twin16_input_r },
   314: 	{ 0x0b0000, 0x0b3fff, MRA16_RAM }, /* cuebrick only */
   315: 	{ 0x0c000e, 0x0c000f, twin16_sprite_status_r },
   316: 	{ 0x100000, 0x103fff, MRA16_RAM },
   317: 	{ 0x120000, 0x123fff, MRA16_RAM },
   318: 	{ 0x140000, 0x143fff, MRA16_RAM },
   319: MEMORY_END
   320: 
   321: static MEMORY_WRITE16_START( writemem )
   322: 	{ 0x000000, 0x03ffff, MWA16_ROM },
   323: 	{ 0x040000, 0x043fff, COMRAM_w },
   324: 	{ 0x060000, 0x063fff, MWA16_RAM },
   325: 	{ 0x080000, 0x080fff, twin16_paletteram_word_w, &paletteram16 },
   326: 	{ 0x081000, 0x081fff, MWA16_NOP },
   327: 	{ 0x0a0000, 0x0a0001, twin16_CPUA_register_w },
   328: 	{ 0x0a0008, 0x0a0009, sound_command_w },
   329: 	{ 0x0a0010, 0x0a0011, MWA16_NOP }, /* watchdog */
   330: 	{ 0x0b0000, 0x0b3fff, MWA16_RAM, &battery_backed_ram }, /* cuebrick only */
   331: 	{ 0x0c0000, 0x0c000f, twin16_video_register_w },
   332: 	{ 0x100000, 0x103fff, MWA16_RAM, &twin16_fixram },
   333: 	{ 0x120000, 0x123fff, MWA16_RAM, &videoram16 },
   334: 	{ 0x140000, 0x143fff, MWA16_RAM, &spriteram16, &spriteram_size },
   335: MEMORY_END
   336: 
   337: static MEMORY_READ16_START( readmem_sub )
   338: 	{ 0x000000, 0x03ffff, MRA16_ROM },
   339: 	{ 0x040000, 0x043fff, COMRAM_r },
   340: 	{ 0x060000, 0x063fff, MRA16_RAM },
   341: 	{ 0x080000, 0x09ffff, extra_rom_r },
   342: 	{ 0x400000, 0x403fff, spriteram16_r },
   343: 	{ 0x480000, 0x483fff, videoram16_r },
   344: 	{ 0x500000, 0x53ffff, MRA16_RAM },
   345: 	{ 0x600000, 0x6fffff, twin16_gfx_rom1_r },
   346: 	{ 0x700000, 0x77ffff, twin16_gfx_rom2_r },
   347: 	{ 0x780000, 0x79ffff, MRA16_RAM },
   348: MEMORY_END
   349: 
   350: static MEMORY_WRITE16_START( writemem_sub )
   351: 	{ 0x000000, 0x03ffff, MWA16_ROM },
   352: 	{ 0x040000, 0x043fff, COMRAM_w },
   353: 	{ 0x060000, 0x063fff, MWA16_RAM },
   354: 	{ 0x0a0000, 0x0a0001, twin16_CPUB_register_w },
   355: 	{ 0x400000, 0x403fff, spriteram16_w },
   356: 	{ 0x480000, 0x483fff, videoram16_w },
   357: 	{ 0x500000, 0x53ffff, MWA16_RAM, &twin16_tile_gfx_ram },
   358: 	{ 0x780000, 0x79ffff, MWA16_RAM, &twin16_sprite_gfx_ram },
   359: MEMORY_END
   360: 
   361: /******************************************************************************************/
   362: 
   363: static MEMORY_READ16_START( fround_readmem )
   364: 	{ 0x000000, 0x03ffff, MRA16_ROM },
   365: 	{ 0x040000, 0x043fff, COMRAM_r },
   366: 	{ 0x060000, 0x063fff, MRA16_RAM },
   367: 	{ 0x080000, 0x080fff, MRA16_RAM },
   368: 	{ 0x0a0000, 0x0a001b, twin16_input_r },
   369: 	{ 0x0c000e, 0x0c000f, twin16_sprite_status_r },
   370: 	{ 0x100000, 0x103fff, MRA16_RAM },
   371: 	{ 0x120000, 0x123fff, MRA16_RAM },
   372: 	{ 0x140000, 0x143fff, MRA16_RAM },
   373: 	{ 0x500000, 0x6fffff, twin16_gfx_rom1_r },
   374: MEMORY_END
   375: 
   376: static MEMORY_WRITE16_START( fround_writemem )
   377: 	{ 0x000000, 0x03ffff, MWA16_ROM },
   378: 	{ 0x040000, 0x043fff, COMRAM_w },
   379: 	{ 0x060000, 0x063fff, MWA16_RAM },
   380: 	{ 0x080000, 0x080fff, twin16_paletteram_word_w, &paletteram16 },
   381: 	{ 0x0a0000, 0x0a0001, fround_CPU_register_w },
   382: 	{ 0x0a0008, 0x0a0009, sound_command_w },
   383: 	{ 0x0a0010, 0x0a0011, MWA16_NOP }, /* watchdog */
   384: 	{ 0x0c0000, 0x0c000f, twin16_video_register_w },
   385: 	{ 0x0e0000, 0x0e0001, fround_gfx_bank_w },
   386: 	{ 0x100000, 0x103fff, MWA16_RAM, &twin16_fixram },
   387: 	{ 0x120000, 0x123fff, MWA16_RAM, &videoram16 },
   388: 	{ 0x140000, 0x143fff, MWA16_RAM, &spriteram16, &spriteram_size },
   389: MEMORY_END
   390: 
   391: /******************************************************************************************/
   392: 
   393: #define KONAMI_TWIN_COINAGE PORT_START \ 
   394: 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) \
   395: 	PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) ) \
   396: 	PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) ) \
   397: 	PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) ) \
   398: 	PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) ) \
   399: 	PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) ) \
   400: 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) ) \
   401: 	PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) ) \
   402: 	PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) ) \
   403: 	PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) ) \
   404: 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) ) \
   405: 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) ) \
   406: 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) ) \
   407: 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) ) \
   408: 	PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) ) \
   409: 	PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) ) \
   410: 	PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) ) \
   411: 	PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) \
   412: 	PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) ) \
   413: 	PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) ) \
   414: 	PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) ) \
   415: 	PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) ) \
   416: 	PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) ) \
   417: 	PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) ) \
   418: 	PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) ) \
   419: 	PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) ) \
   420: 	PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) ) \
   421: 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) ) \
   422: 	PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) ) \
   423: 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) ) \
   424: 	PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) ) \
   425: 	PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) ) \
   426: 	PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) ) \
   427: 	PORT_DIPSETTING(    0x00, "Disabled" )
   428: 
   429: INPUT_PORTS_START( twin16 ) /* generic */
   430: 	PORT_START      /* 0xa0001 */
   431: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
   432: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
   433: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
   434: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) /* advances through tests */
   435: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
   436: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
   437: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE )
   438: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
   439: 
   440: 	PORT_START      /* 0xa0003 */
   441: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER1 | IPF_8WAY )
   442: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER1 | IPF_8WAY )
   443: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_PLAYER1 | IPF_8WAY )
   444: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_PLAYER1 | IPF_8WAY )
   445: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
   446: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
   447: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
   448: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
   449: 
   450: 	PORT_START      /* 0xa0005 */
   451: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER2 | IPF_8WAY )
   452: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER2 | IPF_8WAY )
   453: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_PLAYER2 | IPF_8WAY )
   454: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_PLAYER2 | IPF_8WAY )
   455: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
   456: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
   457: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
   458: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
   459: 
   460: 	PORT_START      /* 0xa0007 */
   461: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER3 | IPF_8WAY )
   462: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER3 | IPF_8WAY )
   463: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_PLAYER3 | IPF_8WAY )
   464: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_PLAYER3 | IPF_8WAY )
   465: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER3 )
   466: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER3 )
   467: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER3 )
   468: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
   469: 
   470: 	KONAMI_TWIN_COINAGE
   471: 
   472: 	PORT_START	/* DSW2 */
   473: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
   474: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
   475: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   476: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
   477: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
   478: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   479: 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )
   480: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
   481: 	PORT_DIPSETTING(    0x04, DEF_STR( Cocktail ) )
   482: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
   483: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
   484: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   485: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
   486: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
   487: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   488: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
   489: 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
   490: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   491: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
   492: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
   493: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   494: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
   495: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
   496: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   497: 
   498: 	PORT_START	/* DSW3 0xa0018 */
   499: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
   500: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
   501: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   502: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
   503: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
   504: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   505: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
   506: 	PORT_DIPNAME( 0x08, 0x08, "Reserved" )
   507: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
   508: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   509: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
   510: INPUT_PORTS_END
   511: 
   512: INPUT_PORTS_START( fround )
   513: 	PORT_START      /* 0xa0001 */
   514: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
   515: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
   516: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
   517: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) /* advances through tests */
   518: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
   519: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
   520: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE )
   521: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
   522: 
   523: 	PORT_START      /* 0xa0003 */
   524: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER1 | IPF_8WAY )
   525: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER1 | IPF_8WAY )
   526: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_PLAYER1 | IPF_8WAY )
   527: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_PLAYER1 | IPF_8WAY )
   528: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
   529: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
   530: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
   531: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
   532: 
   533: 	PORT_START      /* 0xa0005 */
   534: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER2 | IPF_8WAY )
   535: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER2 | IPF_8WAY )
   536: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_PLAYER2 | IPF_8WAY )
   537: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_PLAYER2 | IPF_8WAY )
   538: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
   539: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
   540: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
   541: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
   542: 
   543: 	PORT_START      /* 0xa0007 */
   544: 	PORT_BIT( 0xff, 0xff, IPT_UNUSED )
   545: 
   546: 	KONAMI_TWIN_COINAGE
   547: 
   548: 	PORT_START	/* DSW2 */
   549: 	PORT_DIPNAME( 0x03, 0x03, "Player's Basic Power" )
   550: 	PORT_DIPSETTING(    0x03, "18" )
   551: 	PORT_DIPSETTING(    0x02, "20" )
   552: 	PORT_DIPSETTING(    0x01, "22" )
   553: 	PORT_DIPSETTING(    0x00, "24" )
   554: 	/*PORT_DIPNAME( 0x04, 0x04, DEF_STR( Cabinet ) )
   555: 	PORT_DIPSETTING(    0x04, DEF_STR( Upright ) )
   556: 	PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )*/
   557: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
   558: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
   559: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
   560: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   561: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
   562: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
   563: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   564: 	PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) )
   565: 	PORT_DIPSETTING(    0x60, "Easy" )
   566: 	PORT_DIPSETTING(    0x40, "Normal" )
   567: 	PORT_DIPSETTING(    0x20, "Difficult" )
   568: 	PORT_DIPSETTING(    0x00, "Very Difficult" )
   569: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
   570: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
   571: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   572: 	PORT_START	/* DSW3 0xa0018 */
   573: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
   574: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
   575: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   576: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
   577: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
   578: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   579: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
   580: 	PORT_DIPNAME( 0x08, 0x08, "Reserved" )
   581: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
   582: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   583: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
   584: INPUT_PORTS_END
   585: 
   586: INPUT_PORTS_START( vulcan )
   587: 	PORT_START      /* 0xa0001 */
   588: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
   589: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
   590: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
   591: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) /* advances through tests */
   592: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
   593: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
   594: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE )
   595: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
   596: 
   597: 	PORT_START      /* 0xa0003 */
   598: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER1 | IPF_8WAY )
   599: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER1 | IPF_8WAY )
   600: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_PLAYER1 | IPF_8WAY )
   601: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_PLAYER1 | IPF_8WAY )
   602: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 )
   603: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
   604: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
   605: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
   606: 
   607: 	PORT_START      /* 0xa0005 */
   608: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER2 | IPF_8WAY )
   609: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER2 | IPF_8WAY )
   610: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_PLAYER2 | IPF_8WAY )
   611: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_PLAYER2 | IPF_8WAY )
   612: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
   613: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
   614: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
   615: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
   616: 
   617: 	PORT_START      /* 0xa0007 */
   618: 	PORT_BIT( 0xff, 0xff, IPT_UNUSED )
   619: 
   620: 	KONAMI_TWIN_COINAGE
   621: 
   622: 	PORT_START	/* DSW2 */
   623: 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
   624: 	PORT_DIPSETTING(    0x03, "2" )
   625: 	PORT_DIPSETTING(    0x02, "3" )
   626: 	PORT_DIPSETTING(    0x01, "4" )
   627: 	PORT_DIPSETTING(    0x00, "7" )
   628: 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )
   629: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
   630: 	PORT_DIPSETTING(    0x04, DEF_STR( Cocktail ) )
   631: 	PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )
   632: 	PORT_DIPSETTING(    0x18, "20K and every 70K" )
   633: 	PORT_DIPSETTING(    0x10, "30K and every 80K" )
   634: 	PORT_DIPSETTING(    0x08, "20K only" )
   635: 	PORT_DIPSETTING(    0x00, "70K only" )
   636: 	PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
   637: 	PORT_DIPSETTING(    0x60, "Easy" )
   638: 	PORT_DIPSETTING(    0x40, "Normal" )
   639: 	PORT_DIPSETTING(    0x20, "Difficult" )
   640: 	PORT_DIPSETTING(    0x00, "Very Difficult" )
   641: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
   642: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
   643: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   644: 
   645: 	PORT_START	/* DSW3 0xa0018 */
   646: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
   647: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
   648: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   649: 	PORT_DIPNAME( 0x02, 0x00, "Controls" )
   650: 	PORT_DIPSETTING(    0x02, "Single" )
   651: 	PORT_DIPSETTING(    0x00, "Dual" )
   652: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
   653: 	PORT_DIPNAME( 0x08, 0x08, "Reserved" )
   654: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
   655: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   656: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
   657: INPUT_PORTS_END
   658: 
   659: /* same as vulcan, different bonus */
   660: INPUT_PORTS_START( gradius2 )
   661: 	PORT_START      /* 0xa0001 */
   662: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
   663: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
   664: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
   665: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) /* advances through tests */
   666: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
   667: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
   668: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE )
   669: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
   670: 
   671: 	PORT_START      /* 0xa0003 */
   672: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER1 | IPF_8WAY )
   673: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER1 | IPF_8WAY )
   674: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_PLAYER1 | IPF_8WAY )
   675: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_PLAYER1 | IPF_8WAY )
   676: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 )
   677: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
   678: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
   679: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
   680: 
   681: 	PORT_START      /* 0xa0005 */
   682: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER2 | IPF_8WAY )
   683: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER2 | IPF_8WAY )
   684: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_PLAYER2 | IPF_8WAY )
   685: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_PLAYER2 | IPF_8WAY )
   686: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
   687: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
   688: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
   689: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
   690: 
   691: 	PORT_START      /* 0xa0007 */
   692: 	PORT_BIT( 0xff, 0xff, IPT_UNUSED )
   693: 
   694: 	KONAMI_TWIN_COINAGE
   695: 
   696: 	PORT_START	/* DSW2 */
   697: 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
   698: 	PORT_DIPSETTING(    0x03, "2" )
   699: 	PORT_DIPSETTING(    0x02, "3" )
   700: 	PORT_DIPSETTING(    0x01, "4" )
   701: 	PORT_DIPSETTING(    0x00, "7" )
   702: 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )
   703: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
   704: 	PORT_DIPSETTING(    0x04, DEF_STR( Cocktail ) )
   705: 	PORT_DIPNAME( 0x18, 0x18, DEF_STR (Bonus_Life ) )
   706: 	PORT_DIPSETTING(    0x18, "20K and every 150K" )
   707: 	PORT_DIPSETTING(    0x10, "30K and every 200K" )
   708: 	PORT_DIPSETTING(    0x08, "20K only" )
   709: 	PORT_DIPSETTING(    0x00, "70K only" )
   710: 	PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
   711: 	PORT_DIPSETTING(    0x60, "Easy" )
   712: 	PORT_DIPSETTING(    0x40, "Normal" )
   713: 	PORT_DIPSETTING(    0x20, "Difficult" )
   714: 	PORT_DIPSETTING(    0x00, "Very Difficult" )
   715: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
   716: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
   717: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   718: 
   719: 	PORT_START	/* DSW3 0xa0018 */
   720: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
   721: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
   722: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   723: 	PORT_DIPNAME( 0x02, 0x00, "Controls" )
   724: 	PORT_DIPSETTING(    0x02, "Single" )
   725: 	PORT_DIPSETTING(    0x00, "Dual" )
   726: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
   727: 	PORT_DIPNAME( 0x08, 0x08, "Reserved" )
   728: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
   729: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   730: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
   731: INPUT_PORTS_END
   732: 
   733: INPUT_PORTS_START( darkadv )
   734: 	PORT_START      /* 0xa0001 */
   735: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
   736: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
   737: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
   738: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) /* "map" button (also advances through tests */
   739: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
   740: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
   741: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 )
   742: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 |IPF_PLAYER2 ) /* SERVICE2 */
   743: 
   744: 	PORT_START      /* 0xa0003 */
   745: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER1 | IPF_8WAY )
   746: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER1 | IPF_8WAY )
   747: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_PLAYER1 | IPF_8WAY )
   748: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_PLAYER1 | IPF_8WAY )
   749: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* START1 */
   750: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
   751: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
   752: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER3 ) /* SERVICE3 */
   753: 
   754: 	PORT_START      /* 0xa0005 */
   755: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER2 | IPF_8WAY )
   756: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER2 | IPF_8WAY )
   757: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_PLAYER2 | IPF_8WAY )
   758: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_PLAYER2 | IPF_8WAY )
   759: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 ) /* START2 */
   760: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
   761: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
   762: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
   763: 
   764: 	PORT_START      /* 0xa0007 */
   765: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER3 | IPF_8WAY )
   766: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER3 | IPF_8WAY )
   767: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_PLAYER3 | IPF_8WAY )
   768: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_PLAYER3 | IPF_8WAY )
   769: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER3 ) /* START3 */
   770: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER3 )
   771: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER3 )
   772: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
   773: 
   774: 	PORT_START	/* Coinage */
   775: 	PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) )
   776: 	PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
   777: 	PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
   778: 	PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
   779: 	PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
   780: 	PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
   781: 	PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
   782: 	PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
   783: 	PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
   784: 	PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
   785: 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
   786: 	PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
   787: 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
   788: 	PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
   789: 	PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
   790: 	PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
   791: 	PORT_DIPSETTING(    0x00, "Invalid" )
   792: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
   793: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
   794: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   795: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
   796: 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
   797: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   798: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
   799: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
   800: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   801: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
   802: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
   803: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   804: 
   805: 	PORT_START	/* DSW2 */
   806: 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
   807: 	PORT_DIPSETTING(    0x03, "2" )
   808: 	PORT_DIPSETTING(    0x02, "3" )
   809: 	PORT_DIPSETTING(    0x01, "5" )
   810: 	PORT_DIPSETTING(    0x00, "7" )
   811: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
   812: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
   813: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   814: 	PORT_DIPNAME( 0x08, 0x08, "Special" )//#players?
   815: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
   816: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   817: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
   818: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
   819: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   820: 	PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
   821: 	PORT_DIPSETTING(    0x60, "Easy" )
   822: 	PORT_DIPSETTING(    0x40, "Normal" )
   823: 	PORT_DIPSETTING(    0x20, "Difficult" )
   824: 	PORT_DIPSETTING(    0x00, "Very Difficult" )
   825: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
   826: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
   827: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   828: 
   829: 	PORT_START	/* DSW3 0xa0019 */
   830: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
   831: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
   832: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   833: 	PORT_DIPNAME( 0x02, 0x00, "Controls" )
   834: 	PORT_DIPSETTING(    0x02, "Single" )
   835: 	PORT_DIPSETTING(    0x00, "Dual" )
   836: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
   837: 	PORT_DIPNAME( 0x08, 0x08, "Reserved" )
   838: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
   839: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   840: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
   841: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
   842: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   843: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
   844: 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
   845: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   846: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
   847: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
   848: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   849: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
   850: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
   851: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   852: //	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
   853: INPUT_PORTS_END
   854: 
   855: INPUT_PORTS_START( devilw )
   856: 	PORT_START      /* 0xa0001 */
   857: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
   858: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
   859: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
   860: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) /* "map" button (also advances through tests */
   861: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 )
   862: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON6 )
   863: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE )
   864: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON7 )
   865: 
   866: 	PORT_START      /* 0xa0003 */
   867: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER1 | IPF_8WAY )
   868: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER1 | IPF_8WAY )
   869: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_PLAYER1 | IPF_8WAY )
   870: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_PLAYER1 | IPF_8WAY )
   871: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) /* also used in-game */
   872: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
   873: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
   874: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 )
   875: 
   876: 	PORT_START      /* 0xa0005 */
   877: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER2 | IPF_8WAY )
   878: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER2 | IPF_8WAY )
   879: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_PLAYER2 | IPF_8WAY )
   880: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_PLAYER2 | IPF_8WAY )
   881: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) /* also used in-game */
   882: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
   883: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
   884: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
   885: 
   886: 	PORT_START      /* 0xa0007 */
   887: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER3 | IPF_8WAY )
   888: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER3 | IPF_8WAY )
   889: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_PLAYER3 | IPF_8WAY )
   890: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_PLAYER3 | IPF_8WAY )
   891: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START3 )
   892: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER3 )
   893: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER3 )
   894: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER3 )
   895: 
   896: 	KONAMI_TWIN_COINAGE
   897: 
   898: 	PORT_START	/* DSW2 */
   899: 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
   900: 	PORT_DIPSETTING(    0x03, "2" )
   901: 	PORT_DIPSETTING(    0x02, "3" )
   902: 	PORT_DIPSETTING(    0x01, "5" )
   903: 	PORT_DIPSETTING(    0x00, "7" )
   904: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
   905: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
   906: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   907: 	PORT_DIPNAME( 0x08, 0x08, "Special" )//#players?
   908: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
   909: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   910: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
   911: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
   912: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   913: 	PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
   914: 	PORT_DIPSETTING(    0x60, "Easy" )
   915: 	PORT_DIPSETTING(    0x40, "Normal" )
   916: 	PORT_DIPSETTING(    0x20, "Difficult" )
   917: 	PORT_DIPSETTING(    0x00, "Very Difficult" )
   918: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
   919: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
   920: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   921: 
   922: 	PORT_START	/* DSW3 0xa0019 */
   923: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
   924: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
   925: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   926: 	PORT_DIPNAME( 0x02, 0x00, "Controls" )
   927: 	PORT_DIPSETTING(    0x02, "Single" )
   928: 	PORT_DIPSETTING(    0x00, "Dual" )
   929: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
   930: 	PORT_DIPNAME( 0x08, 0x08, "Reserved" )
   931: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
   932: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   933: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
   934: 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
   935: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   936: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
   937: 	PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
   938: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   939: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
   940: 	PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
   941: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   942: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
   943: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
   944: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   945: 
   946: //	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
   947: INPUT_PORTS_END
   948: 
   949: INPUT_PORTS_START( miaj )
   950: 	PORT_START      /* 0xa0001 */
   951: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
   952: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
   953: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
   954: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 ) /* advances through tests */
   955: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
   956: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
   957: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE )
   958: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
   959: 
   960: 	PORT_START      /* 0xa0003 */
   961: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER1 | IPF_8WAY )
   962: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER1 | IPF_8WAY )
   963: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_PLAYER1 | IPF_8WAY )
   964: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_PLAYER1 | IPF_8WAY )
   965: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
   966: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
   967: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
   968: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
   969: 
   970: 	PORT_START      /* 0xa0005 */
   971: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_PLAYER2 | IPF_8WAY )
   972: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_PLAYER2 | IPF_8WAY )
   973: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_PLAYER2 | IPF_8WAY )
   974: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_PLAYER2 | IPF_8WAY )
   975: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
   976: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
   977: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
   978: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
   979: 
   980: 	PORT_START      /* 0xa0007 */
   981: 	PORT_BIT( 0xff, 0xff, IPT_UNUSED )
   982: 
   983: 	KONAMI_TWIN_COINAGE
   984: 
   985: 	PORT_START	/* DSW2 */
   986: 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
   987: 	PORT_DIPSETTING(    0x03, "2" )
   988: 	PORT_DIPSETTING(    0x02, "3" )
   989: 	PORT_DIPSETTING(    0x01, "5" )
   990: 	PORT_DIPSETTING(    0x00, "7" )
   991: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
   992: 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
   993: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   994: 	PORT_DIPNAME( 0x18, 0x08, DEF_STR( Bonus_Life ) )
   995: 	PORT_DIPSETTING(    0x18, "30K and every 80K" )
   996: 	PORT_DIPSETTING(    0x10, "50K and every 100K" )
   997: 	PORT_DIPSETTING(    0x08, "50K only" )
   998: 	PORT_DIPSETTING(    0x00, "100K only" )
   999: 	PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) )
  1000: 	PORT_DIPSETTING(    0x60, "Easy" )
  1001: 	PORT_DIPSETTING(    0x40, "Normal" )
  1002: 	PORT_DIPSETTING(    0x20, "Difficult" )
  1003: 	PORT_DIPSETTING(    0x00, "Very Difficult" )
  1004: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
  1005: 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  1006: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1007: 
  1008: 	PORT_START	/* DSW3 0xa0018 */
  1009: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  1010: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1011: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1012: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
  1013: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  1014: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1015: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
  1016: 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
  1017: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  1018: 	PORT_DIPSETTING(    0x08, DEF_STR( Cocktail ) )
  1019: 	PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
  1020: INPUT_PORTS_END
  1021: 
  1022: 
  1023: 
  1024: static struct GfxLayout alpha_layout =
  1025: {
  1026: 	8,8,
  1027: 	0x200,
  1028: 	4,
  1029: 	{ 0,1,2,3 },
  1030: 	{ 0*4,1*4,2*4,3*4,4*4,5*4,6*4,7*4 },
  1031: 	{ 0*32,1*32,2*32,3*32,4*32,5*32,6*32,7*32 },
  1032: 	8*32
  1033: };
  1034: 
  1035: static struct GfxDecodeInfo gfxdecodeinfo[] =
  1036: {
  1037: 	{ REGION_GFX1, 0x00000, &alpha_layout, 0, 16 },
  1038: 	{ -1 }
  1039: };
  1040: 
  1041: 
  1042: 
  1043: static struct YM2151interface ym2151_interface =
  1044: {
  1045: 	1,			/* 1 chip */
  1046: 	7159160/2,	/* 3.58 MHz ? */
  1047: 	{ YM3012_VOL(100,MIXER_PAN_LEFT,100,MIXER_PAN_RIGHT) },
  1048: 	{ 0 }
  1049: };
  1050: 
  1051: static void volume_callback(int v)
  1052: {
  1053: 	K007232_set_volume(0,0,(v >> 4) * 0x11,0);
  1054: 	K007232_set_volume(0,1,0,(v & 0x0f) * 0x11);
  1055: }
  1056: 
  1057: static struct K007232_interface k007232_interface =
  1058: {
  1059: 	1,		/* number of chips */
  1060: 	3579545,	/* clock */
  1061: 	{ REGION_SOUND1 }, /* memory regions */
  1062: 	{ K007232_VOL(20,MIXER_PAN_CENTER,20,MIXER_PAN_CENTER) },	/* volume */
  1063: 	{ volume_callback }	/* external port callback */
  1064: };
  1065: 
  1066: static struct UPD7759_interface upd7759_interface =
  1067: {
  1068: 	1,		/* number of chips */
  1069: 	{ 20 }, /* volume */
  1070: 	{ REGION_SOUND2 }, /* memory region */
  1071: 	UPD7759_STANDALONE_MODE, /* chip mode */
  1072: 	{0}
  1073: };
  1074: 
  1075: 
  1076: 
  1077: static MACHINE_DRIVER_START( twin16 )
  1078: 
  1079: 	/* basic machine hardware */
  1080: 	MDRV_CPU_ADD(Z80, 3579545)
  1081: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
  1082: 	MDRV_CPU_MEMORY(readmem_sound,writemem_sound)
  1083: 
  1084: 	MDRV_CPU_ADD(M68000, 10000000)
  1085: 	MDRV_CPU_MEMORY(readmem_sub,writemem_sub)
  1086: 	MDRV_CPU_VBLANK_INT(CPUB_interrupt,1)
  1087: 
  1088: 	MDRV_CPU_ADD(M68000, 10000000)
  1089: 	MDRV_CPU_MEMORY(readmem,writemem)
  1090: 	MDRV_CPU_VBLANK_INT(CPUA_interrupt,1)
  1091: 
  1092: 	MDRV_FRAMES_PER_SECOND(60)
  1093: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  1094: 	MDRV_INTERLEAVE(100)
  1095: 
  1096: 	/* video hardware */
  1097: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM)
  1098: 	MDRV_SCREEN_SIZE(320, 256)
  1099: 	MDRV_VISIBLE_AREA(0, 319, 0+16, 255-16)
  1100: 	MDRV_GFXDECODE(gfxdecodeinfo)
  1101: 	MDRV_PALETTE_LENGTH(0x400)
  1102: 
  1103: 	MDRV_VIDEO_START(twin16)
  1104: 	MDRV_VIDEO_UPDATE(twin16)
  1105: 	MDRV_VIDEO_EOF(twin16)
  1106: 
  1107: 	/* sound hardware */
  1108: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  1109: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  1110: 	MDRV_SOUND_ADD(K007232, k007232_interface)
  1111: 	MDRV_SOUND_ADD(UPD7759, upd7759_interface)
  1112: MACHINE_DRIVER_END
  1113: 
  1114: 
  1115: static MACHINE_DRIVER_START( cuebrick )
  1116: 
  1117: 	/* basic machine hardware */
  1118: 	MDRV_IMPORT_FROM(twin16)
  1119: 	MDRV_NVRAM_HANDLER(cuebrick)
  1120: MACHINE_DRIVER_END
  1121: 
  1122: 
  1123: static MACHINE_DRIVER_START( heavysync )
  1124: 
  1125: 	/* basic machine hardware */
  1126: 	MDRV_CPU_ADD(Z80, 3579545)
  1127: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
  1128: 	MDRV_CPU_MEMORY(readmem_sound,writemem_sound)
  1129: 
  1130: 	MDRV_CPU_ADD(M68000, 10000000)
  1131: 	MDRV_CPU_MEMORY(readmem_sub,writemem_sub)
  1132: 	MDRV_CPU_VBLANK_INT(CPUB_interrupt,1)
  1133: 
  1134: 	MDRV_CPU_ADD(M68000, 10000000)
  1135: 	MDRV_CPU_MEMORY(readmem,writemem)
  1136: 	MDRV_CPU_VBLANK_INT(CPUA_interrupt,1)
  1137: 
  1138: 	MDRV_FRAMES_PER_SECOND(60)
  1139: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  1140: 	MDRV_INTERLEAVE(1000)
  1141: 
  1142: 	/* video hardware */
  1143: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM)
  1144: 	MDRV_SCREEN_SIZE(320, 256)
  1145: 	MDRV_VISIBLE_AREA(0, 319, 0+16, 255-16)
  1146: 	MDRV_GFXDECODE(gfxdecodeinfo)
  1147: 	MDRV_PALETTE_LENGTH(0x400)
  1148: 
  1149: 	MDRV_VIDEO_START(twin16)
  1150: 	MDRV_VIDEO_UPDATE(twin16)
  1151: 	MDRV_VIDEO_EOF(twin16)
  1152: 
  1153: 	/* sound hardware */
  1154: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  1155: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  1156: 	MDRV_SOUND_ADD(K007232, k007232_interface)
  1157: 	MDRV_SOUND_ADD(UPD7759, upd7759_interface)
  1158: MACHINE_DRIVER_END
  1159: 
  1160: 
  1161: static MACHINE_DRIVER_START( fround )
  1162: 
  1163: 	/* basic machine hardware */
  1164: 	MDRV_CPU_ADD(Z80, 3579545)
  1165: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
  1166: 	MDRV_CPU_MEMORY(readmem_sound,writemem_sound)
  1167: 
  1168: 	MDRV_CPU_ADD(M68000, 10000000)
  1169: 	MDRV_CPU_MEMORY(fround_readmem,fround_writemem)
  1170: 	MDRV_CPU_VBLANK_INT(CPUA_interrupt,1)
  1171: 
  1172: 	MDRV_FRAMES_PER_SECOND(60)
  1173: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  1174: 	MDRV_INTERLEAVE(100)
  1175: 
  1176: 	/* video hardware */
  1177: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_BUFFERS_SPRITERAM)
  1178: 	MDRV_SCREEN_SIZE(320, 256)
  1179: 	MDRV_VISIBLE_AREA(0, 319, 0+16, 255-16)
  1180: 	MDRV_GFXDECODE(gfxdecodeinfo)
  1181: 	MDRV_PALETTE_LENGTH(0x400)
  1182: 
  1183: 	MDRV_VIDEO_START(twin16)
  1184: 	MDRV_VIDEO_UPDATE(twin16)
  1185: 	MDRV_VIDEO_EOF(twin16)
  1186: 
  1187: 	/* sound hardware */
  1188: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
  1189: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
  1190: 	MDRV_SOUND_ADD(K007232, k007232_interface)
  1191: 	MDRV_SOUND_ADD(UPD7759, upd7759_interface)
  1192: MACHINE_DRIVER_END
  1193: 
  1194: /******************************************************************************************/
  1195: 
  1196: ROM_START( devilw )
  1197: 	ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* Z80 code (sound CPU) */
  1198: 	ROM_LOAD( "687_l03.10a",		0x00000,  0x8000, CRC(7201983c) SHA1(06d089406d2f702e8d51ffdfbf34e4727a28d506) )
  1199: 
  1200: 	ROM_REGION( 0x40000, REGION_CPU2, 0 ) /* 68000 code (CPU B) */
  1201: 	ROM_LOAD16_BYTE( "687_q07.10n",	0x00000, 0x10000, CRC(53110c0b) SHA1(a473486f7c99ab758187376d5bd89581e0b7cbdf) )
  1202: 	ROM_LOAD16_BYTE( "687_q06.8n",	0x00001, 0x10000, CRC(9c53a0c5) SHA1(3b195a88af2b0198af47e4f7140087bf5a7feee6) )
  1203: 	ROM_LOAD16_BYTE( "687_q13.10s",	0x20000, 0x10000, CRC(36ae6014) SHA1(102d4c3215fb5f199ce6f93ce92725b5cce0b01d) )
  1204: 	ROM_LOAD16_BYTE( "687_q12.8s",	0x20001, 0x10000, CRC(6d012167) SHA1(d608e29e0b2e834c099386b6ebb667e4bfc40ce7) )
  1205: 
  1206: 	ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 68000 code (CPU A) */
  1207: 	ROM_LOAD16_BYTE( "687_t05.6n",	0x00000, 0x10000, CRC(8ab7dc61) SHA1(de8e93f04f22fa07ea6c379eeae12f8fcb48f751) )
  1208: 	ROM_LOAD16_BYTE( "687_t04.4n",	0x00001, 0x10000, CRC(c69924da) SHA1(9b7220eac95fd92f32fec92b21f4f02f871c5d43) )
  1209: 	ROM_LOAD16_BYTE( "687_t09.6r",	0x20000, 0x10000, CRC(fae97de0) SHA1(25b085c9de0943a0112d76447ca0504ed57cad85) )
  1210: 	ROM_LOAD16_BYTE( "687_t08.4r",	0x20001, 0x10000, CRC(8c898d67) SHA1(0dd1a4467f97c993ea8d40398f46c3fc88c889bd) )
  1211: 
  1212: 	ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE )
  1213: 	ROM_LOAD( "687_m14.d8",			0x00000,  0x4000, CRC(d7338557) SHA1(9b384baafabaab3888a0139674f0b530303684ca) ) /* characters */
  1214: 
  1215: 	ROM_REGION16_LE( 0x200000, REGION_GFX2, 0 )	/* gfx data used at runtime */
  1216: 	ROM_LOAD16_WORD( "687i17.p16",	0x000000, 0x80000, CRC(66cb3923) SHA1(3c1fc1dff77201cf8d8c4594c965695066c1701c) )
  1217: 	ROM_LOAD16_WORD( "687i18.p18",	0x080000, 0x80000, CRC(a1c7d0db) SHA1(901bc6e1982b9a8c2150a802995256d0168cc605) )
  1218: 	ROM_LOAD16_WORD( "687i15.p13",	0x100000, 0x80000, CRC(eec8c5b2) SHA1(c400dd8c7bb85d233815572acd547acf626e4c73) )
  1219: 	ROM_LOAD16_WORD( "687i16.p15",	0x180000, 0x80000, CRC(746cf48b) SHA1(8f51df931b1de928f402f51bbaf02e37dfec1d6d) )
  1220: 
  1221: 	ROM_REGION16_BE( 0x20000, REGION_GFX3, 0 ) /* tile data; mapped at 0x80000 on CPUB */
  1222: 	ROM_LOAD16_BYTE( "687_l11.10r",	0x00000, 0x10000, CRC(399deee8) SHA1(dcc65e95f28ae4e9b671e70ce0bd5ba0fe178506) )
  1223: 	ROM_LOAD16_BYTE( "687_l10.8r",	0x00001, 0x10000, CRC(117c91ee) SHA1(dcf8efb25fc73cff916b66b7bcfd3c1fb2556a53) )
  1224: 
  1225: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */
  1226: 	ROM_LOAD( "687_i01.5a",			0x00000, 0x20000, CRC(d4992dfb) SHA1(c65bef07b6adb9ab6328d679595450945dbf6a88) )
  1227: 
  1228: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 ) /* samples */
  1229: 	ROM_LOAD( "687_i02.7c",			0x00000, 0x20000, CRC(e5947501) SHA1(9ec7319bd97711981db60af6f477c2ba2ec7e6b8) )
  1230: ROM_END
  1231: 
  1232: ROM_START( majuu )
  1233: 	ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* Z80 code (sound CPU) */
  1234: 	ROM_LOAD( "687_l03.10a",		0x00000,  0x8000, CRC(7201983c) SHA1(06d089406d2f702e8d51ffdfbf34e4727a28d506) )
  1235: 
  1236: 	ROM_REGION( 0x40000, REGION_CPU2, 0 ) /* 68000 code (CPU B) */
  1237: 	ROM_LOAD16_BYTE( "687_q07.10n",	0x00000, 0x10000, CRC(53110c0b) SHA1(a473486f7c99ab758187376d5bd89581e0b7cbdf) )
  1238: 	ROM_LOAD16_BYTE( "687_q06.8n",	0x00001, 0x10000, CRC(9c53a0c5) SHA1(3b195a88af2b0198af47e4f7140087bf5a7feee6) )
  1239: 	ROM_LOAD16_BYTE( "687_q13.10s",	0x20000, 0x10000, CRC(36ae6014) SHA1(102d4c3215fb5f199ce6f93ce92725b5cce0b01d) )
  1240: 	ROM_LOAD16_BYTE( "687_q12.8s",	0x20001, 0x10000, CRC(6d012167) SHA1(d608e29e0b2e834c099386b6ebb667e4bfc40ce7) )
  1241: 
  1242: 	ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 68000 code (CPU A) */
  1243: 	ROM_LOAD16_BYTE( "687_s05.6n",	0x00000, 0x10000, CRC(bd99b434) SHA1(4dbcf3a57ff0b4c3a160e2a60c2ee3fd38f5a95d) )
  1244: 	ROM_LOAD16_BYTE( "687_s04.4n",	0x00001, 0x10000, CRC(3df732e2) SHA1(32e42edbc6f9dfba6ff881c72b8b014b6905e7f3) )
  1245: 	ROM_LOAD16_BYTE( "687_s09.6r",	0x20000, 0x10000, CRC(1f6efec3) SHA1(4177d300877e3ffcb481f534ef7b3e4bdc160be0) )
  1246: 	ROM_LOAD16_BYTE( "687_s08.4r",	0x20001, 0x10000, CRC(8a16c8c6) SHA1(df3af1c137632eab98b1eea538cc4ef5b134f44f) )
  1247: 
  1248: 	ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE )
  1249: 	ROM_LOAD( "687_l14.d8",			0x00000,  0x4000, CRC(20ecccd6) SHA1(b8ac3186de5ea81ae1c64b9511b7a0718aabab48) ) /* characters */
  1250: 
  1251: 	ROM_REGION16_LE( 0x200000, REGION_GFX2, 0 )	/* gfx data used at runtime */
  1252: 	ROM_LOAD16_WORD( "687i17.p16",	0x000000, 0x80000, CRC(66cb3923) SHA1(3c1fc1dff77201cf8d8c4594c965695066c1701c) )
  1253: 	ROM_LOAD16_WORD( "687i18.p18",	0x080000, 0x80000, CRC(a1c7d0db) SHA1(901bc6e1982b9a8c2150a802995256d0168cc605) )
  1254: 	ROM_LOAD16_WORD( "687i15.p13",	0x100000, 0x80000, CRC(eec8c5b2) SHA1(c400dd8c7bb85d233815572acd547acf626e4c73) )
  1255: 	ROM_LOAD16_WORD( "687i16.p15",	0x180000, 0x80000, CRC(746cf48b) SHA1(8f51df931b1de928f402f51bbaf02e37dfec1d6d) )
  1256: 
  1257: 	ROM_REGION16_BE( 0x20000, REGION_GFX3, 0 ) /* tile data; mapped at 0x80000 on CPUB */
  1258: 	ROM_LOAD16_BYTE( "687_l11.10r",	0x00000, 0x10000, CRC(399deee8) SHA1(dcc65e95f28ae4e9b671e70ce0bd5ba0fe178506) )
  1259: 	ROM_LOAD16_BYTE( "687_l10.8r",	0x00001, 0x10000, CRC(117c91ee) SHA1(dcf8efb25fc73cff916b66b7bcfd3c1fb2556a53) )
  1260: 
  1261: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */
  1262: 	ROM_LOAD( "687_i01.5a",			0x00000, 0x20000, CRC(d4992dfb) SHA1(c65bef07b6adb9ab6328d679595450945dbf6a88) )
  1263: 
  1264: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 ) /* samples */
  1265: 	ROM_LOAD( "687_i02.7c",			0x00000, 0x20000, CRC(e5947501) SHA1(9ec7319bd97711981db60af6f477c2ba2ec7e6b8) )
  1266: ROM_END
  1267: 
  1268: ROM_START( darkadv )
  1269: 	ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* Z80 code (sound CPU) */
  1270: 	ROM_LOAD( "687_n03.10a",		0x00000,  0x8000, CRC(a24c682f) SHA1(cf053270d3f77448ff802db832598ae3cf7dae6c) )
  1271: 
  1272: 	ROM_REGION( 0x40000, REGION_CPU2, 0 ) /* 68000 code (CPU B) */
  1273: 	ROM_LOAD16_BYTE( "687_n07.10n",	0x00000, 0x10000, CRC(6154322a) SHA1(e84c75b4d346ade2cfb5d56454282fafb04c2d77) )
  1274: 	ROM_LOAD16_BYTE( "687_n06.8n",	0x00001, 0x10000, CRC(37a72e8b) SHA1(574d655ba7cda2f8eb628155fb8662a4ee5f23e5) )
  1275: 	ROM_LOAD16_BYTE( "687_n13.10s",	0x20000, 0x10000, CRC(f1c252af) SHA1(dbe78352ae5b284870becc92139773f66c52ed7d) )
  1276: 	ROM_LOAD16_BYTE( "687_n12.8s",	0x20001, 0x10000, CRC(da221944) SHA1(c288ee583414a077f0d8b815b8e01b7f19a5fafe) )
  1277: 
  1278: 	ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 68000 code (CPU A) */
  1279: 	ROM_LOAD16_BYTE( "687_n05.6n",	0x00000, 0x10000, CRC(a9195b0b) SHA1(a5b30c93dc962b5aef33bab7e257ed606f00c9f2) )
  1280: 	ROM_LOAD16_BYTE( "687_n04.4n",	0x00001, 0x10000, CRC(65b55105) SHA1(ef102eebf34cceebafb55b04003ab9173af43458) )
  1281: 	ROM_LOAD16_BYTE( "687_n09.6r",	0x20000, 0x10000, CRC(1c6b594c) SHA1(06e4eab7f544170ac40e8c77b9ebb236a6094367) )
  1282: 	ROM_LOAD16_BYTE( "687_n08.4r",	0x20001, 0x10000, CRC(a9603196) SHA1(a3ab00a446531d370809d8e405cabe2d74cb612b) )
  1283: 
  1284: 	ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE )
  1285: 	ROM_LOAD( "687_n14.d8",	0x0000,  0x4000, CRC(c76ac6d2) SHA1(d8fec255f1f7177a3716a5894fb679cbe172b6ea) ) /* characters */
  1286: 
  1287: 	ROM_REGION16_LE( 0x200000, REGION_GFX2, 0 )	/* gfx data used at runtime */
  1288: 	ROM_LOAD16_WORD( "687i17.p16",	0x000000, 0x80000, CRC(66cb3923) SHA1(3c1fc1dff77201cf8d8c4594c965695066c1701c) )
  1289: 	ROM_LOAD16_WORD( "687i18.p18",	0x080000, 0x80000, CRC(a1c7d0db) SHA1(901bc6e1982b9a8c2150a802995256d0168cc605) )
  1290: 	ROM_LOAD16_WORD( "687i15.p13",	0x100000, 0x80000, CRC(eec8c5b2) SHA1(c400dd8c7bb85d233815572acd547acf626e4c73) )
  1291: 	ROM_LOAD16_WORD( "687i16.p15",	0x180000, 0x80000, CRC(746cf48b) SHA1(8f51df931b1de928f402f51bbaf02e37dfec1d6d) )
  1292: 
  1293: 	ROM_REGION16_BE( 0x20000, REGION_GFX3, 0 ) /* tile data; mapped at 0x80000 on CPUB */
  1294: 	ROM_LOAD16_BYTE( "687_l11.10r",	0x00000, 0x10000, CRC(399deee8) SHA1(dcc65e95f28ae4e9b671e70ce0bd5ba0fe178506) )
  1295: 	ROM_LOAD16_BYTE( "687_l10.8r",	0x00001, 0x10000, CRC(117c91ee) SHA1(dcf8efb25fc73cff916b66b7bcfd3c1fb2556a53) )
  1296: 
  1297: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */
  1298: 	ROM_LOAD( "687_i01.5a",			0x00000, 0x20000, CRC(d4992dfb) SHA1(c65bef07b6adb9ab6328d679595450945dbf6a88) )
  1299: 
  1300: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 ) /* samples */
  1301: 	ROM_LOAD( "687_i02.7c",			0x00000, 0x20000, CRC(e5947501) SHA1(9ec7319bd97711981db60af6f477c2ba2ec7e6b8) )
  1302: ROM_END
  1303: 
  1304: /******************************************************************************************/
  1305: 
  1306: ROM_START( cuebrick )
  1307: 	ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* Z80 code (sound CPU) */
  1308: 	ROM_LOAD( "903_d03.10a",		0x00000,  0x8000, CRC(455e855a) SHA1(cfdd54a5071862653ee94c0455301f4a7245fbd8) )
  1309: 
  1310: 	ROM_REGION( 0x40000, REGION_CPU2, 0 ) /* 68000 code (CPU B) */
  1311: 	ROM_LOAD16_BYTE( "903_d07.10n",	0x00000, 0x10000, CRC(fc0edce7) SHA1(57e969a42c48a9464ec370d4605eaecb690d58ab) )
  1312: 	ROM_LOAD16_BYTE( "903_d06.8n",	0x00001, 0x10000, CRC(b2cef6fe) SHA1(27d1d15f3a408e6166745cb6a159704a8cbb4584) )
  1313: 	ROM_LOAD16_BYTE( "903_e13.10s",	0x20000, 0x10000, CRC(4fb5fb80) SHA1(3a59dae3846341289c31aa106684ebc45488ca45) )
  1314: 	ROM_LOAD16_BYTE( "903_e12.8s",	0x20001, 0x10000, CRC(883e3097) SHA1(fe0fa1a2881a67223d741c400bb8c1a0c67946c1) )
  1315: 
  1316: 	ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 68000 code (CPU A) */
  1317: 	ROM_LOAD16_BYTE( "903_e05.6n",	0x00000, 0x10000, CRC(8b556220) SHA1(dbe24133e74018c4fe9332519394cbb882c4ed5a) )
  1318: 	ROM_LOAD16_BYTE( "903_e04.4n",	0x00001, 0x10000, CRC(bf9c7927) SHA1(3a594b8846f7e6074ca54f8cd5fe2ba3b64ba740) )
  1319: 	ROM_LOAD16_BYTE( "903_e09.6r",	0x20000, 0x10000, CRC(2a77554d) SHA1(53eee99737333c8c4bbb9c757fd12488b6c4d3d8) )
  1320: 	ROM_LOAD16_BYTE( "903_e08.4r",	0x20001, 0x10000, CRC(c0a430c1) SHA1(bef737f12e9a79781a4cd795ffc108899757901d) )
  1321: 
  1322: 	ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE )
  1323: 	ROM_LOAD( "903_e14.d8",			0x0000, 0x4000, CRC(ddbebbd5) SHA1(df532f19a08cabb28d693e4cd445c47c9e35e5ff) ) /* characters */
  1324: 
  1325: 	ROM_REGION( 0x200000, REGION_GFX2, 0 )	/* gfx data used at runtime */
  1326: 	/* unpopulated */
  1327: 
  1328: 	ROM_REGION16_BE( 0x20000, REGION_GFX3, 0 ) /* tile data; mapped at 0x80000 on CPUB */
  1329: 	ROM_LOAD16_BYTE( "903_e11.10r",	0x00000, 0x10000, CRC(5c41faf8) SHA1(f9eee6a7b92d3b3aa4320747da6390310522a2cf) )
  1330: 	ROM_LOAD16_BYTE( "903_e10.8r",	0x00001, 0x10000, CRC(417576d4) SHA1(e84762743e3a1117b6ef7ea0b304877e4a719f75) )
  1331: 
  1332: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */
  1333: 	/* unpopulated */
  1334: 
  1335: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 ) /* samples */
  1336: 	/* unpopulated */
  1337: ROM_END
  1338: 
  1339: ROM_START( vulcan )
  1340: 	ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* Z80 code (sound CPU) */
  1341: 	ROM_LOAD( "785_g03.10a",		0x00000,  0x8000, CRC(67a3b50d) SHA1(3c83f3b0df73d9361ec3cda26a6c4c603a088419) )
  1342: 
  1343: 	ROM_REGION( 0x40000, REGION_CPU2, 0 ) /* 68000 code (CPU B) */
  1344: 	ROM_LOAD16_BYTE( "785_p07.10n",	0x00000, 0x10000, CRC(686d549d) SHA1(9687be801c4fb963bf6b0199e2ae9f5051213f7a) )
  1345: 	ROM_LOAD16_BYTE( "785_p06.8n" ,	0x00001, 0x10000, CRC(70c94bee) SHA1(951e00ca4d3a47a21b4db05bcdc8ead45b42c3f1) )
  1346: 	ROM_LOAD16_BYTE( "785_p13.10s",	0x20000, 0x10000, CRC(478fdb0a) SHA1(2e285ad6dcfc67f3e24d231e0e1be19036ce64d2) )
  1347: 	ROM_LOAD16_BYTE( "785_p12.8s",	0x20001, 0x10000, CRC(38ea402a) SHA1(90ff2bd71435988cde967704ce3b1401de206683) )
  1348: 
  1349: 	ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 68000 code (CPU A) */
  1350: 	ROM_LOAD16_BYTE( "785_w05.6n",	0x00000, 0x10000, CRC(6e0e99cd) SHA1(f9f4ef617aee83397b0ac98a5cc92f60d3a3d5ed) )
  1351: 	ROM_LOAD16_BYTE( "785_w04.4n",	0x00001, 0x10000, CRC(23ec74ca) SHA1(901c7c798b113232f20e24f61940ed6ef5148599) )
  1352: 	ROM_LOAD16_BYTE( "785_w09.6r",	0x20000, 0x10000, CRC(377e4f28) SHA1(d3af2e52c38b5d618cac2e66df99ab7950638fbc) )
  1353: 	ROM_LOAD16_BYTE( "785_w08.4r",	0x20001, 0x10000, CRC(813d41ea) SHA1(58ba0e4b1afec3e5674286c44da14244591f1312) )
  1354: 
  1355: 	ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE )
  1356: 	ROM_LOAD( "785_h14.d8",			0x0000,	0x4000, CRC(02f4b16f) SHA1(45addc99f520770f38c6aa69aef9af59cfc410b5) ) /* characters */
  1357: 
  1358: 	ROM_REGION16_BE( 0x200000, REGION_GFX2, 0 )	/* gfx data used at runtime */
  1359: 	ROM_LOAD16_WORD( "785f17.p16",	0x000000, 0x80000, CRC(8fbec1a4) SHA1(71cbdb25470b5a2ca7e80c92f12fc47e28085793) )
  1360: 	ROM_LOAD16_WORD( "785f18.p18",	0x080000, 0x80000, CRC(50d61e38) SHA1(051d332d93d435d19571e22d69ffc5395dbb16a4) )
  1361: 	ROM_LOAD16_WORD( "785f15.p13",	0x100000, 0x80000, CRC(af96aef3) SHA1(a58e26a8b134ab6e7938cd4fa342c04c236efd99) )
  1362: 	ROM_LOAD16_WORD( "785f16.p15",	0x180000, 0x80000, CRC(b858df1f) SHA1(c434da7ba54d59643fe6ca30bceccf16413904c3) )
  1363: 
  1364: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* tile data; mapped at 0x80000 on CPUB */
  1365: 
  1366: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */
  1367: 	ROM_LOAD( "785_f01.5a",			0x00000, 0x20000, CRC(a0d8d69e) SHA1(2994e5740b7c099d55fb162a363a26ef1995c756) )
  1368: 
  1369: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 ) /* samples */
  1370: 	ROM_LOAD( "785_f02.7c",			0x00000, 0x20000, CRC(c39f5ca4) SHA1(92ebea11b7d3a72d0f58c456f16a6ff36d6b3062) )
  1371: ROM_END
  1372: 
  1373: ROM_START( gradius2 )
  1374: 	ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* Z80 code (sound CPU) */
  1375: 	ROM_LOAD( "785_g03.10a",		0x00000,  0x8000, CRC(67a3b50d) SHA1(3c83f3b0df73d9361ec3cda26a6c4c603a088419) )
  1376: 
  1377: 	ROM_REGION( 0x40000, REGION_CPU2, 0 ) /* 68000 code (CPU B) */
  1378: 	ROM_LOAD16_BYTE( "785_p07.10n",	0x00000, 0x10000, CRC(686d549d) SHA1(9687be801c4fb963bf6b0199e2ae9f5051213f7a) )
  1379: 	ROM_LOAD16_BYTE( "785_p06.8n" ,	0x00001, 0x10000, CRC(70c94bee) SHA1(951e00ca4d3a47a21b4db05bcdc8ead45b42c3f1) )
  1380: 	ROM_LOAD16_BYTE( "785_p13.10s",	0x20000, 0x10000, CRC(478fdb0a) SHA1(2e285ad6dcfc67f3e24d231e0e1be19036ce64d2) )
  1381: 	ROM_LOAD16_BYTE( "785_p12.8s",	0x20001, 0x10000, CRC(38ea402a) SHA1(90ff2bd71435988cde967704ce3b1401de206683) )
  1382: 
  1383: 	ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 68000 code (CPU A) */
  1384: 	ROM_LOAD16_BYTE( "785_x05.6n",	0x00000, 0x10000, CRC(8a23a7b8) SHA1(9846272c011715b17f146d5265a09e790d6e37cd) )
  1385: 	ROM_LOAD16_BYTE( "785_x04.4n",	0x00001, 0x10000, CRC(88e466ce) SHA1(3a7d098b851bcf6dc8e7ff601d11563406c56666) )
  1386: 	ROM_LOAD16_BYTE( "785_x09.6r",	0x20000, 0x10000, CRC(3f3d7d7a) SHA1(8e3acf980179e749ec642b6ff211c4ba57c6c592) )
  1387: 	ROM_LOAD16_BYTE( "785_x08.4r",	0x20001, 0x10000, CRC(c39c8efd) SHA1(372dbb254525a7334fe79a42ba9851eafa856847) )
  1388: 
  1389: 	ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE )
  1390: 	ROM_LOAD( "785_g14.d8",			0x0000, 0x4000, CRC(9dcdad9d) SHA1(22f457408b453a71b7e91974aee1b1e735ff887f) ) /* characters */
  1391: 
  1392: 	ROM_REGION16_BE( 0x200000, REGION_GFX2, 0 )	/* gfx data used at runtime */
  1393: 	ROM_LOAD16_WORD( "785f17.p16",	0x000000, 0x80000, CRC(8fbec1a4) SHA1(71cbdb25470b5a2ca7e80c92f12fc47e28085793) )
  1394: 	ROM_LOAD16_WORD( "785f18.p18",	0x080000, 0x80000, CRC(50d61e38) SHA1(051d332d93d435d19571e22d69ffc5395dbb16a4) )
  1395: 	ROM_LOAD16_WORD( "785f15.p13",	0x100000, 0x80000, CRC(af96aef3) SHA1(a58e26a8b134ab6e7938cd4fa342c04c236efd99) )
  1396: 	ROM_LOAD16_WORD( "785f16.p15",	0x180000, 0x80000, CRC(b858df1f) SHA1(c434da7ba54d59643fe6ca30bceccf16413904c3) )
  1397: 
  1398: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* tile data; mapped at 0x80000 on CPUB */
  1399: 
  1400: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */
  1401: 	ROM_LOAD( "785_f01.5a",			0x00000, 0x20000, CRC(a0d8d69e) SHA1(2994e5740b7c099d55fb162a363a26ef1995c756) )
  1402: 
  1403: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 ) /* samples */
  1404: 	ROM_LOAD( "785_f02.7c",			0x00000, 0x20000, CRC(c39f5ca4) SHA1(92ebea11b7d3a72d0f58c456f16a6ff36d6b3062) )
  1405: ROM_END
  1406: 
  1407: ROM_START( grdius2a )
  1408: 	ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* Z80 code (sound CPU) */
  1409: 	ROM_LOAD( "785_g03.10a",		0x00000,  0x8000, CRC(67a3b50d) SHA1(3c83f3b0df73d9361ec3cda26a6c4c603a088419) )
  1410: 
  1411: 	ROM_REGION( 0x40000, REGION_CPU2, 0 ) /* 68000 code (CPU B) */
  1412: 	ROM_LOAD16_BYTE( "785_p07.10n",	0x00000, 0x10000, CRC(686d549d) SHA1(9687be801c4fb963bf6b0199e2ae9f5051213f7a) )
  1413: 	ROM_LOAD16_BYTE( "785_p06.8n" ,	0x00001, 0x10000, CRC(70c94bee) SHA1(951e00ca4d3a47a21b4db05bcdc8ead45b42c3f1) )
  1414: 	ROM_LOAD16_BYTE( "785_p13.10s",	0x20000, 0x10000, CRC(478fdb0a) SHA1(2e285ad6dcfc67f3e24d231e0e1be19036ce64d2) )
  1415: 	ROM_LOAD16_BYTE( "785_p12.8s",	0x20001, 0x10000, CRC(38ea402a) SHA1(90ff2bd71435988cde967704ce3b1401de206683) )
  1416: 
  1417: 	ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 68000 code (CPU A) */
  1418: 	ROM_LOAD16_BYTE( "785_p05.6n",	0x00000, 0x10000, CRC(4db0e736) SHA1(45edf094da448d039af18a7b47a592a3de02f17b) )
  1419: 	ROM_LOAD16_BYTE( "785_p04.4n",	0x00001, 0x10000, CRC(765b99e6) SHA1(4acae0cf2bf23f8a1cf7b650b018d22a9ae947c9) )
  1420: 	ROM_LOAD16_BYTE( "785_t09.6r",	0x20000, 0x10000, CRC(4e3f4965) SHA1(130da6db0590779948a29fd5010f0e628e4f2ee6) )
  1421: 	ROM_LOAD16_BYTE( "785_j08.4r",	0x20001, 0x10000, CRC(2b1c9108) SHA1(3d367a1b60f95798b478dc4a84daa9b362271d4d) )
  1422: 
  1423: 	ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE )
  1424: 	ROM_LOAD( "785_g14.d8",			0x0000, 0x4000, CRC(9dcdad9d) SHA1(22f457408b453a71b7e91974aee1b1e735ff887f) ) /* characters */
  1425: 
  1426: 	ROM_REGION16_BE( 0x200000, REGION_GFX2, 0 )	/* gfx data used at runtime */
  1427: 	ROM_LOAD16_WORD( "785f17.p16",	0x000000, 0x80000, CRC(8fbec1a4) SHA1(71cbdb25470b5a2ca7e80c92f12fc47e28085793) )
  1428: 	ROM_LOAD16_WORD( "785f18.p18",	0x080000, 0x80000, CRC(50d61e38) SHA1(051d332d93d435d19571e22d69ffc5395dbb16a4) )
  1429: 	ROM_LOAD16_WORD( "785f15.p13",	0x100000, 0x80000, CRC(af96aef3) SHA1(a58e26a8b134ab6e7938cd4fa342c04c236efd99) )
  1430: 	ROM_LOAD16_WORD( "785f16.p15",	0x180000, 0x80000, CRC(b858df1f) SHA1(c434da7ba54d59643fe6ca30bceccf16413904c3) )
  1431: 
  1432: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* tile data; mapped at 0x80000 on CPUB */
  1433: 
  1434: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */
  1435: 	ROM_LOAD( "785_f01.5a",			0x00000, 0x20000, CRC(a0d8d69e) SHA1(2994e5740b7c099d55fb162a363a26ef1995c756) )
  1436: 
  1437: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 ) /* samples */
  1438: 	ROM_LOAD( "785_f02.7c",			0x00000, 0x20000, CRC(c39f5ca4) SHA1(92ebea11b7d3a72d0f58c456f16a6ff36d6b3062) )
  1439: ROM_END
  1440: 
  1441: ROM_START( grdius2b )
  1442: 	ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* Z80 code (sound CPU) */
  1443: 	ROM_LOAD( "785_g03.10a",		0x00000,  0x8000, CRC(67a3b50d) SHA1(3c83f3b0df73d9361ec3cda26a6c4c603a088419) )
  1444: 
  1445: 	ROM_REGION( 0x40000, REGION_CPU2, 0 ) /* 68000 code (CPU B) */
  1446: 	ROM_LOAD16_BYTE( "785_p07.10n",	0x00000, 0x10000, CRC(686d549d) SHA1(9687be801c4fb963bf6b0199e2ae9f5051213f7a) )
  1447: 	ROM_LOAD16_BYTE( "785_p06.8n" ,	0x00001, 0x10000, CRC(70c94bee) SHA1(951e00ca4d3a47a21b4db05bcdc8ead45b42c3f1) )
  1448: 	ROM_LOAD16_BYTE( "785_p13.10s",	0x20000, 0x10000, CRC(478fdb0a) SHA1(2e285ad6dcfc67f3e24d231e0e1be19036ce64d2) )
  1449: 	ROM_LOAD16_BYTE( "785_p12.8s",	0x20001, 0x10000, CRC(38ea402a) SHA1(90ff2bd71435988cde967704ce3b1401de206683) )
  1450: 
  1451: 	ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 68000 code (CPU A) */
  1452: 	ROM_LOAD16_BYTE( "785_p05.6n",	0x00000, 0x10000, CRC(4db0e736) SHA1(45edf094da448d039af18a7b47a592a3de02f17b) )
  1453: 	ROM_LOAD16_BYTE( "785_p04.4n",	0x00001, 0x10000, CRC(765b99e6) SHA1(4acae0cf2bf23f8a1cf7b650b018d22a9ae947c9) )
  1454: 	ROM_LOAD16_BYTE( "785_j09.6r",	0x20000, 0x10000, CRC(6d96a7e3) SHA1(cc1362f5922cf1e348a58d54d03320f394a2aeab) )
  1455: 	ROM_LOAD16_BYTE( "785_j08.4r",	0x20001, 0x10000, CRC(2b1c9108) SHA1(3d367a1b60f95798b478dc4a84daa9b362271d4d) )
  1456: 
  1457: 	ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE )
  1458: 	ROM_LOAD( "785_g14.d8",			0x0000, 0x4000, CRC(9dcdad9d) SHA1(22f457408b453a71b7e91974aee1b1e735ff887f) ) /* characters */
  1459: 
  1460: 	ROM_REGION16_BE( 0x200000, REGION_GFX2, 0 )	/* gfx data used at runtime */
  1461: 	ROM_LOAD16_WORD( "785f17.p16",	0x000000, 0x80000, CRC(8fbec1a4) SHA1(71cbdb25470b5a2ca7e80c92f12fc47e28085793) )
  1462: 	ROM_LOAD16_WORD( "785f18.p18",	0x080000, 0x80000, CRC(50d61e38) SHA1(051d332d93d435d19571e22d69ffc5395dbb16a4) )
  1463: 	ROM_LOAD16_WORD( "785f15.p13",	0x100000, 0x80000, CRC(af96aef3) SHA1(a58e26a8b134ab6e7938cd4fa342c04c236efd99) )
  1464: 	ROM_LOAD16_WORD( "785f16.p15",	0x180000, 0x80000, CRC(b858df1f) SHA1(c434da7ba54d59643fe6ca30bceccf16413904c3) )
  1465: 
  1466: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* tile data; mapped at 0x80000 on CPUB */
  1467: 
  1468: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */
  1469: 	ROM_LOAD( "785_f01.5a",			0x00000, 0x20000, CRC(a0d8d69e) SHA1(2994e5740b7c099d55fb162a363a26ef1995c756) )
  1470: 
  1471: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 ) /* samples */
  1472: 	ROM_LOAD( "785_f02.7c",			0x00000, 0x20000, CRC(c39f5ca4) SHA1(92ebea11b7d3a72d0f58c456f16a6ff36d6b3062) )
  1473: ROM_END
  1474: 
  1475: /******************************************************************************************/
  1476: 
  1477: ROM_START( hpuncher )
  1478: 	ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* Z80 code (sound CPU) */
  1479: 	ROM_LOAD( "870_g03.10a",		0x00000,  0x8000, CRC(db9c10c8) SHA1(b2ec4d6800a4ab00dfcc8d3cd4abf9b9d7c5544a) )
  1480: 
  1481: 	ROM_REGION( 0x40000, REGION_CPU2, 0 ) /* 68000 code (CPU B) */
  1482: 	ROM_LOAD16_BYTE( "870_h07.10n",	0x00000, 0x10000, CRC(b4dda612) SHA1(e9612af11a151de1f0236629c84679f80936cae9) )
  1483: 	ROM_LOAD16_BYTE( "870_h06.8n",	0x00001, 0x10000, CRC(696ba702) SHA1(e35c9aeab4305d828a347eaddf4abc806a889fa3) )
  1484: 
  1485: 	ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 68000 code (CPU A) */
  1486: 	ROM_LOAD16_BYTE( "870_h05.6n",	0x00000, 0x10000, CRC(2bcfeef3) SHA1(8843e795a310e1a79b7b65226d9526197c2144ef) )
  1487: 	ROM_LOAD16_BYTE( "870_h04.4n",	0x00001, 0x10000, CRC(b9f97fd3) SHA1(d15a659f753f9f475dfd4f7e96789bacc54cb1f9) )
  1488: 	ROM_LOAD16_BYTE( "870_h09.6r",	0x20000, 0x10000, CRC(96a4f8b1) SHA1(2709f5236235b1b69c3367054fb998c1beb35625) )
  1489: 	ROM_LOAD16_BYTE( "870_h08.4r",	0x20001, 0x10000, CRC(46d65156) SHA1(6dd9d97a8e3394db668da1fc6a46c166bca1f456) )
  1490: 
  1491: 	ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE )
  1492: 	ROM_LOAD( "870_f14.d8",			0x0000, 0x4000, CRC(c9b46615) SHA1(c0cddb1af47b8e0865055624cf4e89a111ac1b0f) ) /* characters */
  1493: 
  1494: 	ROM_REGION16_LE( 0x200000, REGION_GFX2, 0 )	/* gfx data used at runtime */
  1495: 	ROM_LOAD16_WORD("870c17.p16",	0x000000, 0x80000, CRC(2bc99ff8) SHA1(9a06502317a71ca5662b79aedf47379b8e5434a9) )
  1496: 	ROM_LOAD16_WORD("870c18.p18",	0x080000, 0x80000, CRC(07927fe8) SHA1(0ab5e0e785347fbed5c4b930a32876d6ce2bef4a) )
  1497: 	ROM_LOAD16_WORD("870c15.p13",	0x100000, 0x80000, CRC(8c9281df) SHA1(5e3d80be414db108d5363d0ea1b74021ba942c33) )
  1498: 	ROM_LOAD16_WORD("870c16.p15",	0x180000, 0x80000, CRC(41df6a1b) SHA1(32e0fdeb53628d18adde851e4496dd01ac6ec68f) )
  1499: 
  1500: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */
  1501: 	ROM_LOAD( "870_c01.5a",			0x00000, 0x20000, CRC(6af96546) SHA1(63b49b28c0f2ef8f52bc4c5955ad6a633dd553cf) )
  1502: 
  1503: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 ) /* samples */
  1504: 	ROM_LOAD( "870_c02.7c",			0x00000, 0x20000, CRC(54e12c6d) SHA1(8171441aeb1a1dc4d65fae59c7c217f992f70cbc) )
  1505: ROM_END
  1506: 
  1507: ROM_START( fround )
  1508: 	ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* Z80 code (sound CPU) */
  1509: 	ROM_LOAD( "870_f03.10a",		0x00000,  0x8000, CRC(a645c727) SHA1(e173e79130f187d090766664f1c478d47062749c) )
  1510: 
  1511: 	ROM_REGION( 0x40000, REGION_CPU2, 0 ) /* 68000 code (CPU A) */
  1512: 	ROM_LOAD16_BYTE( "870_m21.bin",	0x00000, 0x20000, CRC(436dbffb) SHA1(be8c8544f4d8ae86f216095753c6178a3cbf0e8d) )
  1513: 	ROM_LOAD16_BYTE( "870_m20.bin",	0x00001, 0x20000, CRC(b1c79d6a) SHA1(76e95e87eaa96ba694675fde7706540c584a36fb) )
  1514: 
  1515: 	ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE )
  1516: 	ROM_LOAD( "870_f14.d8",			0x0000, 0x4000, CRC(c9b46615) SHA1(c0cddb1af47b8e0865055624cf4e89a111ac1b0f) ) /* characters */
  1517: 
  1518: 	ROM_REGION16_LE( 0x200000, REGION_GFX2, 0 )	/* gfx data used at runtime */
  1519: 	ROM_LOAD16_WORD("870c18.p18",	0x000000, 0x80000, CRC(07927fe8) SHA1(0ab5e0e785347fbed5c4b930a32876d6ce2bef4a) )
  1520: 	ROM_LOAD16_WORD("870c17.p16",	0x080000, 0x80000, CRC(2bc99ff8) SHA1(9a06502317a71ca5662b79aedf47379b8e5434a9) )
  1521: 	ROM_LOAD16_WORD("870c16.p15",	0x100000, 0x80000, CRC(41df6a1b) SHA1(32e0fdeb53628d18adde851e4496dd01ac6ec68f) )
  1522: 	ROM_LOAD16_WORD("870c15.p13",	0x180000, 0x80000, CRC(8c9281df) SHA1(5e3d80be414db108d5363d0ea1b74021ba942c33) )
  1523: 
  1524: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */
  1525: 	ROM_LOAD( "870_c01.5a",			0x00000, 0x20000, CRC(6af96546) SHA1(63b49b28c0f2ef8f52bc4c5955ad6a633dd553cf) )
  1526: 
  1527: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 ) /* samples */
  1528: 	ROM_LOAD( "870_c02.7c",			0x00000, 0x20000, CRC(54e12c6d) SHA1(8171441aeb1a1dc4d65fae59c7c217f992f70cbc) )
  1529: ROM_END
  1530: 
  1531: ROM_START( froundl )
  1532: 	ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* Z80 code (sound CPU) */
  1533: 	ROM_LOAD( "870_f03.10a",		0x00000,  0x8000, CRC(a645c727) SHA1(e173e79130f187d090766664f1c478d47062749c) )
  1534: 
  1535: 	ROM_REGION( 0x40000, REGION_CPU2, 0 ) /* 68000 code (CPU A) */
  1536: 	ROM_LOAD16_BYTE( "870_l21.bin",	0x00000, 0x20000, CRC(e21a3a19) SHA1(5f5793c88093bc8632eab673f5e0d954ac9b9177) )
  1537: 	ROM_LOAD16_BYTE( "870_l20.bin",	0x00001, 0x20000, CRC(0ce9786f) SHA1(0fb0eef999ed09dd50eed403255887103fc35461) )
  1538: 
  1539: 	ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE )
  1540: 	ROM_LOAD( "870_f14.d8",			0x0000, 0x4000, CRC(c9b46615) SHA1(c0cddb1af47b8e0865055624cf4e89a111ac1b0f) ) /* characters */
  1541: 
  1542: 	ROM_REGION16_LE( 0x200000, REGION_GFX2, 0 )	/* gfx data used at runtime */
  1543: 	ROM_LOAD16_WORD("870c18.p18",	0x000000, 0x80000, CRC(07927fe8) SHA1(0ab5e0e785347fbed5c4b930a32876d6ce2bef4a) )
  1544: 	ROM_LOAD16_WORD("870c17.p16",	0x080000, 0x80000, CRC(2bc99ff8) SHA1(9a06502317a71ca5662b79aedf47379b8e5434a9) )
  1545: 	ROM_LOAD16_WORD("870c16.p15",	0x100000, 0x80000, CRC(41df6a1b) SHA1(32e0fdeb53628d18adde851e4496dd01ac6ec68f) )
  1546: 	ROM_LOAD16_WORD("870c15.p13",	0x180000, 0x80000, CRC(8c9281df) SHA1(5e3d80be414db108d5363d0ea1b74021ba942c33) )
  1547: 
  1548: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */
  1549: 	ROM_LOAD( "870_c01.5a",			0x00000, 0x20000, CRC(6af96546) SHA1(63b49b28c0f2ef8f52bc4c5955ad6a633dd553cf) )
  1550: 
  1551: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 ) /* samples */
  1552: 	ROM_LOAD( "870_c02.7c",			0x00000, 0x20000, CRC(54e12c6d) SHA1(8171441aeb1a1dc4d65fae59c7c217f992f70cbc) )
  1553: ROM_END
  1554: 
  1555: 
  1556: /******************************************************************************************/
  1557: 
  1558: ROM_START( miaj )
  1559: 	ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* Z80 code (sound CPU) */
  1560: 	ROM_LOAD( "808_e03.10a",		0x00000,  0x8000, CRC(3d93a7cd) SHA1(dcdd327e78f32436b276d0666f62a5b733b296e8) )
  1561: 
  1562: 	ROM_REGION( 0x40000, REGION_CPU2, 0 ) /* 68000 code (CPU B) */
  1563: 	ROM_LOAD16_BYTE("808_e07.10n",	0x00000, 0x10000, CRC(297bdcea) SHA1(41ed650cbc4f56777fa352812e9a560554459f90) )
  1564: 	ROM_LOAD16_BYTE("808_e06.8n",	0x00001, 0x10000, CRC(8f576b33) SHA1(cd8c9a45626c30571ca12d0241cccc092c0903a0) )
  1565: 	ROM_LOAD16_BYTE("808_e13.10s",	0x20000, 0x10000, CRC(1fa708f4) SHA1(9511a19f50fb61571c2986c72d1a85e87b8d0495) )
  1566: 	ROM_LOAD16_BYTE("808_e12.8s",	0x20001, 0x10000, CRC(d62f1fde) SHA1(1e55084f1294b6ac7c152fcd1800511fcab5d360) )
  1567: 
  1568: 	ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 68000 code (CPU A) */
  1569: 	ROM_LOAD16_BYTE("808_r05.6n",	0x00000, 0x10000, CRC(91fd83f4) SHA1(12cba5828d1d752efe4fc1972bed0205ac277850) )
  1570: 	ROM_LOAD16_BYTE("808_r04.4n",	0x00001, 0x10000, CRC(f1c8c597) SHA1(4e8e87aedc9dac4ed05816989210de49f4dd60d2) )
  1571: 	ROM_LOAD16_BYTE("808_r09.6r",	0x20000, 0x10000, CRC(f74d4467) SHA1(2b2491ee7ece979f2ec849075b0c30b6c1ed6bae) )
  1572: 	ROM_LOAD16_BYTE("808_r08.4r",	0x20001, 0x10000, CRC(26f21704) SHA1(123cb2e4bcb25d82faa75e4505f9859c10bca754) )
  1573: 
  1574: 	ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE )
  1575: 	ROM_LOAD("808_e14.d8",			0x0000, 0x4000, CRC(b9d36525) SHA1(53291c4911d7e1a5110539e4c57a11d0d530dc6f) ) /* characters */
  1576: 
  1577: 	ROM_REGION16_LE( 0x200000, REGION_GFX2, 0 )	/* gfx data used at runtime */
  1578: 	ROM_LOAD16_WORD("808d17.p16",	0x000000, 0x80000, CRC(d1299082) SHA1(c3c07b0517e7428ccd1cdf9e15aaf16d98e7c4cd) )
  1579: 	ROM_LOAD16_WORD("808d15.p13",	0x100000, 0x80000, CRC(2b22a6b6) SHA1(8e1af0627a4eac045128c4096e2cfb59c3d2f5ef) )
  1580: 
  1581: 	ROM_REGION( 0x20000, REGION_GFX3, 0 ) /* tile data; mapped at 0x80000 on CPUB */
  1582: 
  1583: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 ) /* samples */
  1584: 	ROM_LOAD("808_d01.5a",			0x00000, 0x20000, CRC(fd4d37c0) SHA1(ef91c6e7bb57c27a9a51729fffd1bfe3e806fb61) )
  1585: 
  1586: 	ROM_REGION( 0x20000, REGION_SOUND2, 0 ) /* samples */
  1587: ROM_END
  1588: 
  1589: /******************************************************************************************/
  1590: 
  1591: static void gfx_untangle( void )
  1592: { /* sprite, tile data */
  1593: 	int i;
  1594: 	data16_t *temp = malloc(0x200000);
  1595: 	if( temp )
  1596: 	{
  1597: 		twin16_gfx_rom = (data16_t *)memory_region(REGION_GFX2);
  1598: 		memcpy( temp, twin16_gfx_rom, 0x200000 );
  1599: 
  1600: 		for( i=0; i<0x080000; i++ )
  1601: 		{
  1602: 			twin16_gfx_rom[i*2+0] = temp[i+0x080000];
  1603: 			twin16_gfx_rom[i*2+1] = temp[i];
  1604: 		}
  1605: 		free( temp );
  1606: 	}
  1607: }
  1608: 
  1609: static DRIVER_INIT( twin16 )
  1610: {
  1611: 	gfx_untangle();
  1612: 	twin16_custom_vidhrdw = 0;
  1613: }
  1614: 
  1615: static DRIVER_INIT( fround )
  1616: {
  1617: 	gfx_untangle();
  1618: 	twin16_custom_vidhrdw = 1;
  1619: }
  1620: 
  1621: 
  1622: GAME( 1987, devilw,   0,      heavysync, devilw,   twin16, ROT0, "Konami", "Devil World" )
  1623: GAME( 1987, majuu,    devilw, heavysync, devilw,   twin16, ROT0, "Konami", "Majuu no Ohkoku" )
  1624: GAME( 1987, darkadv,  devilw, heavysync, darkadv,  twin16, ROT0, "Konami", "Dark Adventure" )
  1625: GAME( 1988, vulcan,   0,      twin16,    vulcan,   twin16, ROT0, "Konami", "Vulcan Venture" )
  1626: GAME( 1988, gradius2, vulcan, twin16,    gradius2, twin16, ROT0, "Konami", "Gradius II - Gofer no Yabou (Japan New Ver.)" )
  1627: GAME( 1988, grdius2a, vulcan, twin16,    vulcan,   twin16, ROT0, "Konami", "Gradius II - Gofer no Yabou (Japan Old Ver.)" )
  1628: GAME( 1988, grdius2b, vulcan, twin16,    vulcan,   twin16, ROT0, "Konami", "Gradius II - Gofer no Yabou (Japan Older Ver.)" )
  1629: GAME( 1989, cuebrick, 0,      cuebrick,  twin16,   twin16, ROT0, "Konami", "CueBrick" )
  1630: GAME( 1988, fround,   0,      fround,    fround,   fround, ROT0, "Konami", "The Final Round (version M)" )
  1631: GAME( 1988, froundl,  fround, fround,    fround,   fround, ROT0, "Konami", "The Final Round (version L)" )
  1632: GAME( 1988, hpuncher, fround, twin16,    fround,   twin16, ROT0, "Konami", "Hard Puncher (Japan)" )
  1633: GAME( 1989, miaj,     mia,    twin16,    miaj,     twin16, ROT0, "Konami", "Missing in Action (Japan)" )
  1634: 




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