QuarterArcade Coin-Op Tech Net

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

: : : VM Driver Source

Source Listing


     1: /***********************************************************************
     2: 
     3: 	DECO Cassette System driver
     4: 
     5: (01) Highway Chase (12/80)
     6: (02) Sengoku Ninja tai (12/80)
     7: (03) Manhattan (1/81)
     8: (04) Terranean (81)
     9: (??) Missile Sprinter (81)
    10: (06) Nebula (3/81)
    11: (07) Astro Fantasia (3/81)
    12: (08) The Tower (2/81)
    13: (09) Super Astro Fighter (5/81)
    14: (??) Buramzon (81)
    15: (11) Lock N Chase (4/81)
    16: (12) The DECO BOY (Flash Boy) (8/81)
    17: (13) Pro Golf (9/81)
    18: (14) DS TeleJang (6/81)
    19: (15) Lucky Poker (2/81)
    20: (16) Treasure Island (1/82)
    21: (18) Explorer (11/82)
    22: (19) Disco No. 1 (3/82)
    23: (20) Tornado (82)
    24: (21) Mission X (3/82)
    25: (22) Pro Tennis (5/82)
    26: (??) Fishing (7/82)
    27: (25) Angler Dandler
    28: (26) Burger Time (6/83)
    29: (27) Burnin' Rubber (11/82)
    30: (27) Bump N Jump (4/83)
    31: (28) Grapolop (11/82)
    32: (29) Lappappa (11/82)
    33: (30) Skater (3/83)
    34: (31) Pro Bowling (10/83)
    35: (32) Night Star (4/83)
    36: (33) Pro Soccer (11/83)
    37: (34) Super Doubles Tennis
    38: (??) Cluster Buster (9/83)
    39: (??) Genesis (11/83) <I think is may be Boomer Rangr'>
    40: (??) Bambolin (83)
    41: (37) Zeroize (10/83)
    42: (38) Scrum Try (3/84)
    43: (39) Peter Pepper's Ice Cream Factory (2/84)
    44: (40) Fighting Ice Hockey (4/84)
    45: (41) Oh Zumou (5/84)
    46: (42) Hello Gate Ball (8/84)
    47: (??) Yellow Cab (84)
    48: (44) Boulder Dash (8/85)
    49: (??) Tokyo Mie Sinryohjyo (10/84)
    50: (??) Tokyo Mie Sinryohyo2 (1/85)
    51: (??) Geinohijin Sikaku Siken (5/85)
    52: 
    53:  ***********************************************************************/
    54: 
    55: #include "driver.h" 
    56: #include "cpu/m6502/m6502.h" 
    57: #include "vidhrdw/generic.h" 
    58: #include "machine/decocass.h" 
    59: 
    60: /***************************************************************************
    61:  *
    62:  *	write decrypted opcodes
    63:  *
    64:  ***************************************************************************/
    65: 
    66: INLINE int swap_bits_5_6(int data)
    67: {
    68: 	return (data & 0x9f) | ((data & 0x20) << 1) | ((data & 0x40) >> 1);
    69: }
    70: 
    71: WRITE_HANDLER( decocass_w )
    72: {
    73: 	unsigned char *rom = memory_region(REGION_CPU1);
    74: 	int diff = memory_region_length(REGION_CPU1) / 2;
    75: 
    76: 	if		(offset <= 0x5fff)					   ;
    77: 	else if (offset >= 0x6000 && offset <= 0xbfff) { decocass_charram_w(offset - 0x6000,data); return; }
    78: 	else if (offset >= 0xc000 && offset <= 0xc3ff) { decocass_fgvideoram_w(offset - 0xc000,data); return; }
    79: 	else if (offset >= 0xc400 && offset <= 0xc7ff) { decocass_colorram_w(offset - 0xc400,data); return; }
    80: 	else if (offset >= 0xc800 && offset <= 0xcbff) { decocass_mirrorvideoram_w(offset - 0xc800,data); return; }
    81: 	else if (offset >= 0xcc00 && offset <= 0xcfff) { decocass_mirrorcolorram_w(offset - 0xcc00,data); return; }
    82: 	else if (offset >= 0xd000 && offset <= 0xd7ff) { decocass_tileram_w(offset - 0xd000,data); return; }
    83: 	else if (offset >= 0xd800 && offset <= 0xdbff) { decocass_objectram_w(offset - 0xd800,data); return; }
    84: 	else if (offset >= 0xe000 && offset <= 0xe0ff) { decocass_paletteram_w(offset, data); return; }
    85: 	else if (offset == 0xe300 ) 				   { decocass_watchdog_count_w(offset - 0xe300,data); return; }
    86: 	else if (offset == 0xe301 ) 				   { decocass_watchdog_flip_w(offset - 0xe301,data); return; }
    87: 	else if (offset == 0xe302 ) 				   { decocass_color_missiles_w(offset - 0xe302,data); return; }
    88: 	else if (offset == 0xe400 ) 				   { decocass_reset_w(offset - 0xe400,data); return; }
    89: 	else if (offset == 0xe402 ) 				   { decocass_mode_set_w(offset - 0xe402,data); return; }
    90: 	else if (offset == 0xe403 ) 				   { decocass_back_h_shift_w(offset - 0xe403,data); return; }
    91: 	else if (offset == 0xe404 ) 				   { decocass_back_vl_shift_w(offset - 0xe404,data); return; }
    92: 	else if (offset == 0xe405 ) 				   { decocass_back_vr_shift_w(offset - 0xe405,data); return; }
    93: 	else if (offset == 0xe406 ) 				   { decocass_part_h_shift_w(offset - 0xe406,data); return; }
    94: 	else if (offset == 0xe407 ) 				   { decocass_part_v_shift_w(offset - 0xe407,data); return; }
    95: 	else if (offset == 0xe410 ) 				   { decocass_color_center_bot_w(offset - 0xe410,data); return; }
    96: 	else if (offset == 0xe411 ) 				   { decocass_center_h_shift_space_w(offset - 0xe411,data); return; }
    97: 	else if (offset == 0xe412 ) 				   { decocass_center_v_shift_w(offset - 0xe412,data); return; }
    98: 	else if (offset == 0xe413 ) 				   { decocass_coin_counter_w(offset - 0xe413,data); return; }
    99: 	else if (offset == 0xe414 ) 				   { decocass_sound_command_w(offset - 0xe414,data); return; }
   100: 	else if (offset >= 0xe415 && offset <= 0xe416) { decocass_quadrature_decoder_reset_w(offset - 0xe415,data); return; }
   101: 	else if (offset == 0xe417 ) 				   { decocass_nmi_reset_w(offset - 0xe417,data); return; }
   102: 	else if (offset >= 0xe420 && offset <= 0xe42f) { decocass_adc_w(offset - 0xe420,data); return; }
   103: 	else if (offset >= 0xe500 && offset <= 0xe5ff) { decocass_e5xx_w(offset - 0xe500,data); return; }
   104: 	else if (offset >= 0xf000 && offset <= 0xffff) { return; }
   105: 
   106: 	else logerror("CPU #%d PC %04x: warning - write %02x to unmapped memory address %04x\n",cpu_getactivecpu(),activecpu_get_pc(),data,offset);
   107: 
   108: 	rom[offset] = data;
   109: 
   110: 	/* Swap bits 5 & 6 for opcodes */
   111: 	rom[offset+diff] = swap_bits_5_6(data);
   112: }
   113: 
   114: static MEMORY_READ_START( decocass_readmem )
   115: 	{ 0x0000, 0x1fff, MRA_RAM },
   116: 	{ 0x2000, 0xbfff, MRA_RAM },				/* RMS3 RAM */
   117: 	{ 0xc000, 0xc7ff, MRA_RAM },				/* DSP3 videoram + colorram */
   118: 	{ 0xc800, 0xcbff, decocass_mirrorvideoram_r },
   119: 	{ 0xcc00, 0xcfff, decocass_mirrorcolorram_r },
   120: 	{ 0xd000, 0xdbff, MRA_RAM },				/* B103 RAM */
   121: 	{ 0xe300, 0xe300, input_port_7_r }, 		/* DSW1 */
   122: 	{ 0xe301, 0xe301, input_port_8_r }, 		/* DSW2 */
   123: 	{ 0xe500, 0xe5ff, decocass_e5xx_r },		/* read data from 8041/status */
   124: 	{ 0xe600, 0xe6ff, decocass_input_r },		/* inputs */
   125: 	{ 0xe700, 0xe700, decocass_sound_data_r },	/* read sound CPU data */
   126: 	{ 0xe701, 0xe701, decocass_sound_ack_r },	/* read sound CPU ack status */
   127: 	{ 0xf000, 0xffff, MRA_ROM },
   128: MEMORY_END
   129: 
   130: static MEMORY_WRITE_START( decocass_writemem )
   131: 	{ 0x0000, 0xffff, decocass_w },
   132: 
   133: 	{ 0x0000, 0x1fff, MWA_RAM },
   134: 	{ 0x2000, 0x5fff, MWA_RAM },	/* RMS3 RAM */
   135: 	{ 0x6000, 0xbfff, decocass_charram_w, &decocass_charram }, /* still RMS3 RAM */
   136: 	{ 0xc000, 0xc3ff, decocass_fgvideoram_w, &decocass_fgvideoram, &decocass_fgvideoram_size },  /* DSP3 RAM */
   137: 	{ 0xc400, 0xc7ff, decocass_colorram_w, &decocass_colorram, &decocass_colorram_size },
   138: 	{ 0xc800, 0xcbff, decocass_mirrorvideoram_w },
   139: 	{ 0xcc00, 0xcfff, decocass_mirrorcolorram_w },
   140: 	{ 0xd000, 0xd7ff, decocass_tileram_w, &decocass_tileram, &decocass_tileram_size },
   141: 	{ 0xd800, 0xdbff, decocass_objectram_w, &decocass_objectram, &decocass_objectram_size },
   142: 	{ 0xe000, 0xe0ff, decocass_paletteram_w, &paletteram },
   143: 	{ 0xe300, 0xe300, decocass_watchdog_count_w },
   144: 	{ 0xe301, 0xe301, decocass_watchdog_flip_w },
   145: 	{ 0xe302, 0xe302, decocass_color_missiles_w },
   146: 	{ 0xe400, 0xe400, decocass_reset_w },
   147: 
   148: /* BIO-3 board */
   149: 	{ 0xe402, 0xe402, decocass_mode_set_w },
   150: 	{ 0xe403, 0xe403, decocass_back_h_shift_w },
   151: 	{ 0xe404, 0xe404, decocass_back_vl_shift_w },
   152: 	{ 0xe405, 0xe405, decocass_back_vr_shift_w },
   153: 	{ 0xe406, 0xe406, decocass_part_h_shift_w },
   154: 	{ 0xe407, 0xe407, decocass_part_v_shift_w },
   155: 
   156: 	{ 0xe410, 0xe410, decocass_color_center_bot_w },
   157: 	{ 0xe411, 0xe411, decocass_center_h_shift_space_w },
   158: 	{ 0xe412, 0xe412, decocass_center_v_shift_w },
   159: 	{ 0xe413, 0xe413, decocass_coin_counter_w },
   160: 	{ 0xe414, 0xe414, decocass_sound_command_w },
   161: 	{ 0xe415, 0xe416, decocass_quadrature_decoder_reset_w },
   162: 	{ 0xe417, 0xe417, decocass_nmi_reset_w },
   163: 	{ 0xe420, 0xe42f, decocass_adc_w },
   164: 
   165: 	{ 0xe500, 0xe5ff, decocass_e5xx_w },
   166: 
   167: 	{ 0xf000, 0xffff, MWA_ROM },
   168: MEMORY_END
   169: 
   170: static MEMORY_READ_START( decocass_sound_readmem )
   171: 	{ 0x0000, 0x0fff, MRA_RAM },
   172: 	{ 0x1000, 0x17ff, decocass_sound_nmi_enable_r },
   173: 	{ 0x1800, 0x1fff, decocass_sound_data_ack_reset_r },
   174: 	{ 0xa000, 0xafff, decocass_sound_command_r },
   175: 	{ 0xf800, 0xffff, MRA_ROM },
   176: MEMORY_END
   177: 
   178: static MEMORY_WRITE_START( decocass_sound_writemem )
   179: 	{ 0x0000, 0x0fff, MWA_RAM },
   180: 	{ 0x1000, 0x17ff, decocass_sound_nmi_enable_w },
   181: 	{ 0x1800, 0x1fff, decocass_sound_data_ack_reset_w },
   182: 	{ 0x2000, 0x2fff, AY8910_write_port_0_w },
   183: 	{ 0x4000, 0x4fff, AY8910_control_port_0_w },
   184: 	{ 0x6000, 0x6fff, AY8910_write_port_1_w },
   185: 	{ 0x8000, 0x8fff, AY8910_control_port_1_w },
   186: 	{ 0xc000, 0xcfff, decocass_sound_data_w },
   187: 	{ 0xf800, 0xffff, MWA_ROM },
   188: MEMORY_END
   189: 
   190: static MEMORY_READ_START( decocass_mcu_readmem )
   191: 	{ 0x0000, 0x03ff, MRA_ROM },
   192: 	{ 0x0800, 0x083f, MRA_RAM },
   193: MEMORY_END
   194: 
   195: static MEMORY_WRITE_START( decocass_mcu_writemem )
   196: 	{ 0x0000, 0x03ff, MWA_ROM },
   197: 	{ 0x0800, 0x083f, MWA_RAM },
   198: MEMORY_END
   199: 
   200: static PORT_READ_START( decocass_mcu_readport )
   201: 	{ 0x01, 0x01, i8041_p1_r },
   202: 	{ 0x02, 0x02, i8041_p2_r },
   203: MEMORY_END
   204: 
   205: static PORT_WRITE_START( decocass_mcu_writeport )
   206: 	{ 0x01, 0x01, i8041_p1_w },
   207: 	{ 0x02, 0x02, i8041_p2_w },
   208: MEMORY_END
   209: 
   210: INPUT_PORTS_START( decocass )
   211: 	PORT_START		/* IN0 */
   212: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH,IPT_JOYSTICK_RIGHT )
   213: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH,IPT_JOYSTICK_LEFT )
   214: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH,IPT_JOYSTICK_UP )
   215: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH,IPT_JOYSTICK_DOWN )
   216: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH,IPT_BUTTON1 )
   217: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH,IPT_BUTTON2 )
   218: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH,IPT_UNUSED )
   219: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH,IPT_UNUSED )
   220: 
   221: 	PORT_START		/* IN1 */
   222: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH,IPT_JOYSTICK_RIGHT | IPF_COCKTAIL )
   223: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH,IPT_JOYSTICK_LEFT | IPF_COCKTAIL )
   224: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH,IPT_JOYSTICK_UP | IPF_COCKTAIL )
   225: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH,IPT_JOYSTICK_DOWN | IPF_COCKTAIL )
   226: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH,IPT_BUTTON1 | IPF_COCKTAIL )
   227: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH,IPT_BUTTON2 | IPF_COCKTAIL )
   228: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH,IPT_UNUSED )
   229: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH,IPT_UNUSED )
   230: 
   231: 	PORT_START		/* IN2 */
   232: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH,IPT_UNKNOWN )
   233: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH,IPT_UNKNOWN )
   234: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH,IPT_UNKNOWN )
   235: 	PORT_BIT_IMPULSE( 0x08, IP_ACTIVE_HIGH,IPT_START1, 1 )
   236: 	PORT_BIT_IMPULSE( 0x10, IP_ACTIVE_HIGH,IPT_START2, 1 )
   237: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH,IPT_UNKNOWN )
   238: 	PORT_BIT_IMPULSE( 0x40, IP_ACTIVE_LOW, IPT_COIN2, 1 )
   239: 	PORT_BIT_IMPULSE( 0x80, IP_ACTIVE_LOW, IPT_COIN1, 1 )
   240: 
   241: 	PORT_START		/* IN3 */
   242: 	PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_X | IPF_PLAYER1, 100, 10, 0x10, 0xf0 )
   243: 
   244: 	PORT_START		/* IN4 */
   245: 	PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_Y | IPF_PLAYER1, 100, 10, 0x10, 0xf0 )
   246: 
   247: 	PORT_START		/* IN5 */
   248: 	PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_X | IPF_PLAYER2, 100, 10, 0x10, 0xf0 )
   249: 
   250: 	PORT_START		/* IN6 */
   251: 	PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_Y | IPF_PLAYER2, 100, 10, 0x10, 0xf0 )
   252: 
   253: 	PORT_START		/* DSW1 */
   254: 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) )
   255: 	PORT_DIPSETTING(	0x00, DEF_STR( 2C_1C ) )
   256: 	PORT_DIPSETTING(	0x03, DEF_STR( 1C_1C ) )
   257: 	PORT_DIPSETTING(	0x02, DEF_STR( 1C_2C ) )
   258: 	PORT_DIPSETTING(	0x01, DEF_STR( 1C_3C ) )
   259: 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_B ) )
   260: 	PORT_DIPSETTING(	0x00, DEF_STR( 2C_1C ) )
   261: 	PORT_DIPSETTING(	0x0c, DEF_STR( 1C_1C ) )
   262: 	PORT_DIPSETTING(	0x08, DEF_STR( 1C_2C ) )
   263: 	PORT_DIPSETTING(	0x04, DEF_STR( 1C_3C ) )
   264: 	PORT_DIPNAME( 0x30, 0x30, "Board type" )    /* used by the "bios" */
   265: 	PORT_DIPSETTING(	0x00, "old" )
   266: 	PORT_DIPSETTING(	0x10, "invalid?" )
   267: 	PORT_DIPSETTING(	0x20, "invalid?" )
   268: 	PORT_DIPSETTING(	0x30, "new" )
   269: 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Cabinet ) )
   270: 	PORT_DIPSETTING(	0x00, DEF_STR( Upright ) )
   271: 	PORT_DIPSETTING(	0x40, DEF_STR( Cocktail ) )
   272: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK	)
   273: 
   274: 	PORT_START		/* DSW2 */
   275: 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) )
   276: 	PORT_DIPSETTING(	0x01, "3" )
   277: 	PORT_DIPSETTING(	0x00, "5" )
   278: 	PORT_DIPNAME( 0x06, 0x06, DEF_STR( Bonus_Life ) )
   279: 	PORT_DIPSETTING(	0x06, "20000" )
   280: 	PORT_DIPSETTING(	0x04, "30000" )
   281: 	PORT_DIPSETTING(	0x02, "40000"  )
   282: 	PORT_DIPSETTING(	0x00, "50000"  )
   283: 	PORT_DIPNAME( 0x08, 0x08, "Enemies" )
   284: 	PORT_DIPSETTING(	0x08, "4" )
   285: 	PORT_DIPSETTING(	0x00, "6" )
   286: 	PORT_DIPNAME( 0x10, 0x10, "End of Level Pepper" )
   287: 	PORT_DIPSETTING(	0x10, DEF_STR( No ) )
   288: 	PORT_DIPSETTING(	0x00, DEF_STR( Yes ) )
   289: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
   290: 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
   291: 	PORT_DIPSETTING(	0x20, DEF_STR( On ) )
   292: 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
   293: 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
   294: 	PORT_DIPSETTING(	0x40, DEF_STR( On ) )
   295: 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
   296: 	PORT_DIPSETTING(	0x00, DEF_STR( Off ) )
   297: 	PORT_DIPSETTING(	0x80, DEF_STR( On ) )
   298: INPUT_PORTS_END
   299: 
   300: static struct GfxLayout charlayout =
   301: {
   302: 	8,8,	/* 8*8 characters */
   303: 	1024,	/* 1024 characters */
   304: 	3,		/* 3 bits per pixel */
   305: 	{ 2*1024*8*8, 1024*8*8, 0 },	/* the bitplanes are separated */
   306: 	{ 0, 1, 2, 3, 4, 5, 6, 7 },
   307: 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
   308: 	8*8 	/* every char takes 8 consecutive bytes */
   309: };
   310: 
   311: static struct GfxLayout spritelayout =
   312: {
   313: 	16,16,	/* 16*16 sprites */
   314: 	256,	/* 256 sprites */
   315: 	3,		/* 3 bits per pixel */
   316: 	{ 2*256*16*16, 256*16*16, 0 },	/* the bitplanes are separated */
   317: 	{ 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7,
   318: 	  0, 1, 2, 3, 4, 5, 6, 7 },
   319: 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
   320: 	  8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
   321: 	32*8	/* every sprite takes 32 consecutive bytes */
   322: };
   323: 
   324: static struct GfxLayout tilelayout =
   325: {
   326: 	16,16,	/* 16*16 characters */
   327: 	16+1,	/* 16 tiles (+1 empty tile used in the half-width bg tilemaps) */
   328: 	3,	/* 3 bits per pixel */
   329: 	{ 2*16*16*16+4, 2*16*16*16+0, 4 },
   330: 	{ 3*16*8+0, 3*16*8+1, 3*16*8+2, 3*16*8+3,
   331: 	  2*16*8+0, 2*16*8+1, 2*16*8+2, 2*16*8+3,
   332: 	  16*8+0, 16*8+1, 16*8+2, 16*8+3,
   333: 	  0, 1, 2, 3 },
   334: 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
   335: 	  8*8, 9*8,10*8,11*8,12*8,13*8,14*8,15*8 },
   336: 	2*16*16 /* every tile takes 64 consecutive bytes */
   337: };
   338: 
   339: static struct GfxLayout objlayout =
   340: {
   341: 	64,64,	/* 64x64 object */
   342: 	2,		/* 2 objects */
   343: 	1,		/* 1 bits per pixel */
   344: 	{ 0 },
   345: 	{
   346: 		7*8+0,7*8+1,7*8+2,7*8+3,7*8+4,7*8+5,7*8+6,7*8+7,
   347: 		6*8+0,6*8+1,6*8+2,6*8+3,6*8+4,6*8+5,6*8+6,6*8+7,
   348: 		5*8+0,5*8+1,5*8+2,5*8+3,5*8+4,5*8+5,5*8+6,5*8+7,
   349: 		4*8+0,4*8+1,4*8+2,4*8+3,4*8+4,4*8+5,4*8+6,4*8+7,
   350: 		3*8+0,3*8+1,3*8+2,3*8+3,3*8+4,3*8+5,3*8+6,3*8+7,
   351: 		2*8+0,2*8+1,2*8+2,2*8+3,2*8+4,2*8+5,2*8+6,2*8+7,
   352: 		1*8+0,1*8+1,1*8+2,1*8+3,1*8+4,1*8+5,1*8+6,1*8+7,
   353: 		0*8+0,0*8+1,0*8+2,0*8+3,0*8+4,0*8+5,0*8+6,0*8+7
   354: 	},
   355: 	{
   356: 		63*2*64,62*2*64,61*2*64,60*2*64,59*2*64,58*2*64,57*2*64,56*2*64,
   357: 		55*2*64,54*2*64,53*2*64,52*2*64,51*2*64,50*2*64,49*2*64,48*2*64,
   358: 		47*2*64,46*2*64,45*2*64,44*2*64,43*2*64,42*2*64,41*2*64,40*2*64,
   359: 		39*2*64,38*2*64,37*2*64,36*2*64,35*2*64,34*2*64,33*2*64,32*2*64,
   360: 		31*2*64,30*2*64,29*2*64,28*2*64,27*2*64,26*2*64,25*2*64,24*2*64,
   361: 		23*2*64,22*2*64,21*2*64,20*2*64,19*2*64,18*2*64,17*2*64,16*2*64,
   362: 		15*2*64,14*2*64,13*2*64,12*2*64,11*2*64,10*2*64, 9*2*64, 8*2*64,
   363: 		 7*2*64, 6*2*64, 5*2*64, 4*2*64, 3*2*64, 2*2*64, 1*2*64, 0*2*64
   364: 	},
   365: 	8*8 /* object takes 8 consecutive bytes */
   366: };
   367: 
   368: static struct GfxLayout missilelayout =
   369: {
   370: 	4,1,	/* 4x1 object ?? */
   371: 	1,		/* 1 object */
   372: 	1,		/* 1 bits per pixel */
   373: 	{ 0 },
   374: 	{ 0, 0, 0, 0, 0, 0, 0, 0 },
   375: 	{ 0, 0, 0, 0, 0, 0, 0, 0 },
   376: 	8	/* object takes a 1 bit from somewhere */
   377: };
   378: 
   379: static struct GfxDecodeInfo decocass_gfxdecodeinfo[] =
   380: {
   381: 	{ 0, 0x6000, &charlayout,		 0, 4 },  /* char set #1 */
   382: 	{ 0, 0x6000, &spritelayout, 	 0, 4 },  /* sprites */
   383: 	{ 0, 0xd000, &tilelayout,		32, 2 },  /* background tiles */
   384: 	{ 0, 0xd800, &objlayout,		48, 4 },  /* object */
   385: 	{ 0, 0xffff, &missilelayout,	 0, 8 },
   386: 	{ -1 } /* end of array */
   387: };
   388: 
   389: static struct AY8910interface ay8910_interface =
   390: {
   391: 	2,		/* 2 chips */
   392: 	1500000,		/* 1.5 MHz ? (hand tuned) */
   393: 	{ 40, 40 },
   394: 	{ 0 },
   395: 	{ 0 },
   396: 	{ 0 },
   397: 	{ 0 }
   398: };
   399: 
   400: static PALETTE_INIT( decocass )
   401: {
   402: 	int i;
   403: 	/* set up 32 colors 1:1 pens */
   404: 	for (i = 0; i < 32; i++)
   405: 		colortable[i] = i;
   406: 
   407: 	/* setup straight/flipped colors for background tiles (D7 of color_center_bot ?) */
   408: 	for (i = 0; i < 8; i++)
   409: 	{
   410: 		colortable[32+i] = 3*8+i;
   411: 		colortable[40+i] = 3*8+((i << 1) & 0x04) + ((i >> 1) & 0x02) + (i & 0x01);
   412: 	}
   413: 
   414: 	/* setup 4 colors for 1bpp object */
   415: 	colortable[48+0*2+0] = 0;
   416: 	colortable[48+0*2+1] = 25;	/* testtape red from 4th palette section? */
   417: 	colortable[48+1*2+0] = 0;
   418: 	colortable[48+1*2+1] = 28;	/* testtape blue from 4th palette section? */
   419: 	colortable[48+2*2+0] = 0;
   420: 	colortable[48+2*2+1] = 26;	/* testtape green from 4th palette section? */
   421: 	colortable[48+3*2+0] = 0;
   422: 	colortable[48+3*2+1] = 23;	/* ???? */
   423: }
   424: 
   425: 
   426: static MACHINE_DRIVER_START( decocass )
   427: 
   428: 	/* basic machine hardware */
   429: 	MDRV_CPU_ADD(M6502,750000)
   430: 	MDRV_CPU_MEMORY(decocass_readmem,decocass_writemem)
   431: 
   432: 	MDRV_CPU_ADD(M6502,500000) /* 500 kHz */
   433: 	MDRV_CPU_MEMORY(decocass_sound_readmem,decocass_sound_writemem)
   434: 
   435: 	MDRV_CPU_ADD(I8X41,500000) /* 500 kHz ( I doubt it is 400kHz Al! )*/
   436: 	MDRV_CPU_MEMORY(decocass_mcu_readmem,decocass_mcu_writemem)
   437: 	MDRV_CPU_PORTS(decocass_mcu_readport,decocass_mcu_writeport)
   438: 
   439: 	MDRV_FRAMES_PER_SECOND(57)
   440: 	MDRV_VBLANK_DURATION(3072)		/* frames per second, vblank duration */
   441: 	MDRV_INTERLEAVE(7)				/* interleave CPUs */
   442: 	
   443: 	MDRV_MACHINE_INIT(decocass)
   444: 
   445: 	/* video hardware */
   446: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
   447: 	MDRV_SCREEN_SIZE(32*8, 32*8)
   448: 	MDRV_VISIBLE_AREA(1*8, 31*8-1, 1*8, 31*8-1)
   449: 	MDRV_GFXDECODE(decocass_gfxdecodeinfo)
   450: 	MDRV_PALETTE_LENGTH(32)
   451: 	MDRV_COLORTABLE_LENGTH(32+2*8+2*4)
   452: 
   453: 	MDRV_PALETTE_INIT(decocass)
   454: 	MDRV_VIDEO_START(decocass)
   455: 	MDRV_VIDEO_UPDATE(decocass)
   456: 
   457: 	/* sound hardware */
   458: 	MDRV_SOUND_ADD(AY8910, ay8910_interface)
   459: MACHINE_DRIVER_END
   460: 
   461: 
   462: static MACHINE_DRIVER_START( ctsttape )
   463: 
   464: 	/* basic machine hardware */
   465: 	MDRV_IMPORT_FROM(decocass)
   466: 	MDRV_MACHINE_INIT(ctsttape)
   467: MACHINE_DRIVER_END
   468: 
   469: 
   470: static MACHINE_DRIVER_START( clocknch )
   471: 
   472: 	/* basic machine hardware */
   473: 	MDRV_IMPORT_FROM(decocass)
   474: 	MDRV_MACHINE_INIT(clocknch)
   475: MACHINE_DRIVER_END
   476: 
   477: 
   478: static MACHINE_DRIVER_START( ctisland )
   479: 
   480: 	/* basic machine hardware */
   481: 	MDRV_IMPORT_FROM(decocass)
   482: 	MDRV_MACHINE_INIT(ctisland)
   483: MACHINE_DRIVER_END
   484: 
   485: 
   486: static MACHINE_DRIVER_START( csuperas )
   487: 
   488: 	/* basic machine hardware */
   489: 	MDRV_IMPORT_FROM(decocass)
   490: 	MDRV_MACHINE_INIT(csuperas)
   491: MACHINE_DRIVER_END
   492: 
   493: 
   494: static MACHINE_DRIVER_START( castfant )
   495: 
   496: 	/* basic machine hardware */
   497: 	MDRV_IMPORT_FROM(decocass)
   498: 	MDRV_MACHINE_INIT(castfant)
   499: MACHINE_DRIVER_END
   500: 
   501: 
   502: static MACHINE_DRIVER_START( cluckypo )
   503: 
   504: 	/* basic machine hardware */
   505: 	MDRV_IMPORT_FROM(decocass)
   506: 	MDRV_MACHINE_INIT(cluckypo)
   507: MACHINE_DRIVER_END
   508: 
   509: 
   510: static MACHINE_DRIVER_START( cterrani )
   511: 
   512: 	/* basic machine hardware */
   513: 	MDRV_IMPORT_FROM(decocass)
   514: 	MDRV_MACHINE_INIT(cterrani)
   515: MACHINE_DRIVER_END
   516: 
   517: 
   518: static MACHINE_DRIVER_START( cexplore )
   519: 
   520: 	/* basic machine hardware */
   521: 	MDRV_IMPORT_FROM(decocass)
   522: 	MDRV_MACHINE_INIT(cexplore)
   523: MACHINE_DRIVER_END
   524: 
   525: 
   526: static MACHINE_DRIVER_START( cprogolf )
   527: 
   528: 	/* basic machine hardware */
   529: 	MDRV_IMPORT_FROM(decocass)
   530: 	MDRV_MACHINE_INIT(cprogolf)
   531: MACHINE_DRIVER_END
   532: 
   533: 
   534: static MACHINE_DRIVER_START( cmissnx )
   535: 
   536: 	/* basic machine hardware */
   537: 	MDRV_IMPORT_FROM(decocass)
   538: 	MDRV_MACHINE_INIT(cmissnx)
   539: MACHINE_DRIVER_END
   540: 
   541: 
   542: static MACHINE_DRIVER_START( cdiscon1 )
   543: 
   544: 	/* basic machine hardware */
   545: 	MDRV_IMPORT_FROM(decocass)
   546: 	MDRV_MACHINE_INIT(cdiscon1)
   547: MACHINE_DRIVER_END
   548: 
   549: 
   550: static MACHINE_DRIVER_START( cptennis )
   551: 
   552: 	/* basic machine hardware */
   553: 	MDRV_IMPORT_FROM(decocass)
   554: 	MDRV_MACHINE_INIT(cptennis)
   555: MACHINE_DRIVER_END
   556: 
   557: 
   558: static MACHINE_DRIVER_START( ctornado )
   559: 
   560: 	/* basic machine hardware */
   561: 	MDRV_IMPORT_FROM(decocass)
   562: 	MDRV_MACHINE_INIT(ctornado)
   563: MACHINE_DRIVER_END
   564: 
   565: 
   566: static MACHINE_DRIVER_START( cbnj )
   567: 
   568: 	/* basic machine hardware */
   569: 	MDRV_IMPORT_FROM(decocass)
   570: 	MDRV_MACHINE_INIT(cbnj)
   571: MACHINE_DRIVER_END
   572: 
   573: 
   574: static MACHINE_DRIVER_START( cburnrub )
   575: 
   576: 	/* basic machine hardware */
   577: 	MDRV_IMPORT_FROM(decocass)
   578: 	MDRV_MACHINE_INIT(cburnrub)
   579: MACHINE_DRIVER_END
   580: 
   581: 
   582: static MACHINE_DRIVER_START( cbtime )
   583: 
   584: 	/* basic machine hardware */
   585: 	MDRV_IMPORT_FROM(decocass)
   586: 	MDRV_MACHINE_INIT(cbtime)
   587: MACHINE_DRIVER_END
   588: 
   589: 
   590: static MACHINE_DRIVER_START( cgraplop )
   591: 
   592: 	/* basic machine hardware */
   593: 	MDRV_IMPORT_FROM(decocass)
   594: 	MDRV_MACHINE_INIT(cgraplop)
   595: MACHINE_DRIVER_END
   596: 
   597: 
   598: static MACHINE_DRIVER_START( clapapa )
   599: 
   600: 	/* basic machine hardware */
   601: 	MDRV_IMPORT_FROM(decocass)
   602: 	MDRV_MACHINE_INIT(clapapa)
   603: MACHINE_DRIVER_END
   604: 
   605: 
   606: static MACHINE_DRIVER_START( cfghtice )
   607: 
   608: 	/* basic machine hardware */
   609: 	MDRV_IMPORT_FROM(decocass)
   610: 	MDRV_MACHINE_INIT(cfghtice)
   611: MACHINE_DRIVER_END
   612: 
   613: 
   614: static MACHINE_DRIVER_START( cprobowl )
   615: 
   616: 	/* basic machine hardware */
   617: 	MDRV_IMPORT_FROM(decocass)
   618: 	MDRV_MACHINE_INIT(cprobowl)
   619: MACHINE_DRIVER_END
   620: 
   621: 
   622: static MACHINE_DRIVER_START( cnightst )
   623: 
   624: 	/* basic machine hardware */
   625: 	MDRV_IMPORT_FROM(decocass)
   626: 	MDRV_MACHINE_INIT(cnightst)
   627: MACHINE_DRIVER_END
   628: 
   629: 
   630: static MACHINE_DRIVER_START( cprosocc )
   631: 
   632: 	/* basic machine hardware */
   633: 	MDRV_IMPORT_FROM(decocass)
   634: 	MDRV_MACHINE_INIT(cprosocc)
   635: MACHINE_DRIVER_END
   636: 
   637: 
   638: static MACHINE_DRIVER_START( cppicf )
   639: 
   640: 	/* basic machine hardware */
   641: 	MDRV_IMPORT_FROM(decocass)
   642: 	MDRV_MACHINE_INIT(cppicf)
   643: MACHINE_DRIVER_END
   644: 
   645: 
   646: static MACHINE_DRIVER_START( cbdash )
   647: 
   648: 	/* basic machine hardware */
   649: 	MDRV_IMPORT_FROM(decocass)
   650: 	MDRV_MACHINE_INIT(cbdash)
   651: MACHINE_DRIVER_END
   652: 
   653: 
   654: static MACHINE_DRIVER_START( cscrtry )
   655: 
   656: 	/* basic machine hardware */
   657: 	MDRV_IMPORT_FROM(decocass)
   658: 	MDRV_MACHINE_INIT(cscrtry)
   659: MACHINE_DRIVER_END
   660: 
   661: 
   662: 
   663: #define DECOCASS_COMMON_ROMS	\ 
   664: 	ROM_REGION( 2*0x10000, REGION_CPU1, 0 ) /* 64k for code + 64k for decrypted opcodes */ \
   665: 	ROM_LOAD( "rms8.cpu",     0xf000, 0x1000, CRC(23d929b7) SHA1(063f83020ba3d6f43ab8471f95ca919767b93aa4) ) \
   666: /* the following two are just about the same stuff as the one above */ \
   667: /*	ROM_LOAD( "dsp3.p0b",     0xf000, 0x0800, CRC(b67a91d9) ) */ \
   668: /*	ROM_LOAD( "dsp3.p1b",     0xf800, 0x0800, CRC(3bfff5f3) ) */ \
   669: \
   670: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )	  /* 64k for the audio CPU */ \
   671: 	ROM_LOAD( "rms8.snd",     0xf800, 0x0800, CRC(b66b2c2a) SHA1(0097f38beb4872e735e560148052e258a26b08fd) ) \
   672: \
   673: 	ROM_REGION( 0x01000, REGION_CPU3, 0 )	  /* 4k for the MCU (actually 1K ROM + 64 bytes RAM @ 0x800) */ \
   674: 	ROM_LOAD( "cass8041.bin", 0x0000, 0x0400, CRC(a6df18fd) SHA1(1f9ea47e372d31767c936c15852b43df2b0ee8ff) ) \
   675: \
   676: 	ROM_REGION( 0x00060, REGION_PROMS, 0 )	  /* PROMS */ \
   677: 	ROM_LOAD( "dsp8.3m",      0x0000, 0x0020, CRC(238fdb40) SHA1(b88e8fabb82092105c3828154608ea067acbf2e5) ) \
   678: 	ROM_LOAD( "dsp8.10d",     0x0020, 0x0020, CRC(3b5836b4) SHA1(b630bb277d9ec09d46ef26b944014dd6165b35d8) ) \
   679: 	ROM_LOAD( "rms8.j3",      0x0040, 0x0020, CRC(51eef657) SHA1(eaedce5caf55624ad6ae706aedf82c5717c60f1f) ) /* DRAM banking and timing */ \
   680: 
   681: 
   682: ROM_START( decocass )
   683: 	DECOCASS_COMMON_ROMS
   684: 
   685: ROM_END
   686: 
   687: /* The Following use Dongle Type 1 (DE-0061)
   688:     (dongle data same for each game)		 */
   689: 
   690: ROM_START( ctsttape )
   691: 	DECOCASS_COMMON_ROMS
   692: 
   693: 	ROM_REGION( 0x00020, REGION_USER1, 0 )	  /* dongle data */
   694: 	ROM_LOAD( "de-0061.pro", 0x0000, 0x0020, CRC(e09ae5de) SHA1(7dec067d0739a6dad2607132641b66880a5b7751) )
   695: 
   696: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   697: 	ROM_LOAD( "testtape.cas", 0x0000, 0x2000, CRC(4f9d8efb) SHA1(5b77747dad1033e5703f06c0870441b54b4256c5) )
   698: ROM_END
   699: 
   700: ROM_START( clocknch )
   701: 	DECOCASS_COMMON_ROMS
   702: 
   703: 	ROM_REGION( 0x00020, REGION_USER1, 0 )	  /* dongle data */
   704: 	ROM_LOAD( "de-0061.pro", 0x0000, 0x0020, CRC(e09ae5de) SHA1(7dec067d0739a6dad2607132641b66880a5b7751) )
   705: 
   706: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   707: 	ROM_LOAD( "clocknch.cas", 0x0000, 0x8000, CRC(c9d163a4) SHA1(3ef55a8d8f603059e263776c08eb81f2cf18b75c) )
   708: ROM_END
   709: 
   710: ROM_START( ctisland )
   711: 	DECOCASS_COMMON_ROMS
   712: 
   713: 	ROM_REGION( 0x00020, REGION_USER1, 0 )	  /* dongle data */
   714: 	ROM_LOAD( "de-0061.pro", 0x0000, 0x0020, CRC(e09ae5de) SHA1(7dec067d0739a6dad2607132641b66880a5b7751) )
   715: 
   716: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   717: 	ROM_LOAD( "ctisland.cas", 0x0000, 0x8000, CRC(3f63b8f8) SHA1(2fd0679ef9750a228ebb098672ab6091fda75804) )
   718: ROM_END
   719: 
   720: ROM_START( ctislnd2 )
   721: 	DECOCASS_COMMON_ROMS
   722: 
   723: 	ROM_REGION( 0x00020, REGION_USER1, 0 )	  /* dongle data */
   724: 	ROM_LOAD( "de-0061.pro", 0x0000, 0x0020, CRC(e09ae5de) SHA1(7dec067d0739a6dad2607132641b66880a5b7751) )
   725: 
   726: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   727: 	ROM_LOAD( "ctislnd3.cas", 0x0000, 0x8000, CRC(2854b4c0) SHA1(d3b4e0031dbb2340fbbe396a1ff9b8fbfd63663e) )
   728: ROM_END
   729: 
   730: ROM_START( ctislnd3 )
   731: 	DECOCASS_COMMON_ROMS
   732: 
   733: 	ROM_REGION( 0x00020, REGION_USER1, 0 )	  /* dongle data */
   734: 	ROM_LOAD( "de-0061.pro", 0x0000, 0x0020, CRC(e09ae5de) SHA1(7dec067d0739a6dad2607132641b66880a5b7751) )
   735: 
   736: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   737: 	ROM_LOAD( "ctislnd2.cas", 0x0000, 0x8000, CRC(45464e1e) SHA1(03275694d963c7ab0e0f5525e248e69da5f9b591) )
   738: ROM_END
   739: 
   740: ROM_START( csuperas )
   741: 	DECOCASS_COMMON_ROMS
   742: 
   743: 	ROM_REGION( 0x00020, REGION_USER1, 0 )	  /* dongle data */
   744: 	ROM_LOAD( "de-0061.pro", 0x0000, 0x0020, CRC(e09ae5de) SHA1(7dec067d0739a6dad2607132641b66880a5b7751) )
   745: 
   746: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   747: 	ROM_LOAD( "csuperas.cas", 0x0000, 0x8000, CRC(fabcd07f) SHA1(4070c668ad6725f0710cf7fe6df0d5f80272a449) )
   748: ROM_END
   749: 
   750: ROM_START( castfant )
   751: 	DECOCASS_COMMON_ROMS
   752: 
   753: 	ROM_REGION( 0x00020, REGION_USER1, 0 )	  /* dongle data */
   754: 	ROM_LOAD( "de-0061.pro", 0x0000, 0x0020, CRC(e09ae5de) SHA1(7dec067d0739a6dad2607132641b66880a5b7751) )
   755: 
   756: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   757: 	ROM_LOAD( "castfant.cas", 0x0000, 0x8000, CRC(6d77d1b5) SHA1(821bd65fbe887cbeac9281a2ad3f88595918f886) )
   758: ROM_END
   759: 
   760: ROM_START( cluckypo )
   761: 	DECOCASS_COMMON_ROMS
   762: 
   763: 	ROM_REGION( 0x00020, REGION_USER1, 0 )	  /* dongle data */
   764: 	ROM_LOAD( "de-0061.pro", 0x0000, 0x0020, CRC(e09ae5de) SHA1(7dec067d0739a6dad2607132641b66880a5b7751) )
   765: 
   766: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   767: 	ROM_LOAD( "cluckypo.cas", 0x0000, 0x8000, CRC(2070c243) SHA1(cd3af309af8eb27937756c1fe6fd0504be5aaaf5) )
   768: ROM_END
   769: 
   770: ROM_START( cterrani )
   771: 	DECOCASS_COMMON_ROMS
   772: 
   773: 	ROM_REGION( 0x00020, REGION_USER1, 0 )	  /* dongle data */
   774: 	ROM_LOAD( "de-0061.pro", 0x0000, 0x0020, CRC(e09ae5de) SHA1(7dec067d0739a6dad2607132641b66880a5b7751) )
   775: 
   776: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   777: 	ROM_LOAD( "cterrani.cas", 0x0000, 0x8000, CRC(eb71adbc) SHA1(67becfde39c034d4b8edc2eb100050de102773da) )
   778: ROM_END
   779: 
   780: ROM_START( cexplore )
   781: 	DECOCASS_COMMON_ROMS
   782: 
   783: 	ROM_REGION( 0x00020, REGION_USER1, 0 )	  /* dongle data */
   784: 	ROM_LOAD( "de-0061.pro", 0x0000, 0x0020, CRC(e09ae5de) SHA1(7dec067d0739a6dad2607132641b66880a5b7751) )
   785: 
   786: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   787: 	ROM_LOAD( "cexplore.cas", 0x0000, 0x8000, CRC(fae49c66) SHA1(4ae69e2f706fdf30204f0aa1277619395cacc21b) )
   788: ROM_END
   789: 
   790: ROM_START( cprogolf )
   791: 	DECOCASS_COMMON_ROMS
   792: 
   793: 	ROM_REGION( 0x00020, REGION_USER1, 0 )	  /* dongle data */
   794: 	ROM_LOAD( "de-0061.pro", 0x0000, 0x0020, CRC(e09ae5de) SHA1(7dec067d0739a6dad2607132641b66880a5b7751) )
   795: 
   796: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   797: 	ROM_LOAD( "cprogolf.cas", 0x0000, 0x8000, CRC(02123cd1) SHA1(e4c630ed293725f23d539cb43beb97953558dabd) )
   798: ROM_END
   799: 
   800: /* The Following use Dongle Type 2 (CS82-007)
   801:     (dongle data differs for each game)		 */
   802: 
   803: ROM_START( cmissnx )
   804: 	DECOCASS_COMMON_ROMS
   805: 
   806: 	ROM_REGION( 0x00800, REGION_USER1, 0 )	  /* dongle data */
   807: 	ROM_LOAD( "cmissnx.pro",  0x0000, 0x0800, CRC(8a41c071) SHA1(7b16d933707bf21d25dcd11db6a6c28834b11c5b) )
   808: 
   809: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   810: 	ROM_LOAD( "cmissnx.cas",  0x0000, 0x8000, CRC(3a094e11) SHA1(c355fe14838187cbde19a799e5c60083c82615ac) )
   811: ROM_END
   812: 
   813: ROM_START( cdiscon1 )
   814: 	DECOCASS_COMMON_ROMS
   815: 
   816: 	ROM_REGION( 0x00800, REGION_USER1, 0 )	  /* dongle data */
   817: 	ROM_LOAD( "cdiscon1.pro", 0x0000, 0x0800, CRC(0f793fab) SHA1(331f1b1b482fcd10f42c388a503f9af62d705401) )
   818: 
   819: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   820: 	ROM_LOAD( "cdiscon1.cas", 0x0000, 0x8000, CRC(1429a397) SHA1(12f9e03fcda31dc6161a39bf5c3315a1e9e94565) )
   821: ROM_END
   822: 
   823: ROM_START( csweetht )
   824:  DECOCASS_COMMON_ROMS
   825: 
   826:  ROM_REGION( 0x00800, REGION_USER1, 0 )   /* dongle data */
   827:  ROM_LOAD( "cdiscon1.pro", 0x0000, 0x0800, CRC(0f793fab) SHA1(331f1b1b482fcd10f42c388a503f9af62d705401) )
   828: 
   829:  ROM_REGION( 0x10000, REGION_USER2, 0 )   /* (max) 64k for cassette image */
   830:  ROM_LOAD( "csweetht.cas", 0x0000, 0x8000, CRC(175ef706) SHA1(49b86233f69d0daf54a6e59b86e69b8159e8f6cc) )
   831: ROM_END
   832: 
   833: ROM_START( cptennis )
   834: 	DECOCASS_COMMON_ROMS
   835: 
   836: 	ROM_REGION( 0x00800, REGION_USER1, 0 )	  /* dongle data */
   837: 	ROM_LOAD( "cptennis.pro", 0x0000, 0x0800, CRC(59b8cede) SHA1(514861a652b5256a11477fc357bc01dfd87f712b) )
   838: 
   839: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   840: 	ROM_LOAD( "cptennis.cas", 0x0000, 0x8000, CRC(6bb257fe) SHA1(7554bf1996bc9e9c04a276aab050708d70103f54) )
   841: ROM_END
   842: 
   843: ROM_START( ctornado )
   844: 	DECOCASS_COMMON_ROMS
   845: 
   846: 	ROM_REGION( 0x00800, REGION_USER1, 0 )	  /* dongle data */
   847: 	ROM_LOAD( "ctornado.pro", 0x0000, 0x0800, CRC(c9a91697) SHA1(3f7163291edbdf1a596e3cd2b7a16bbb140ffb36) )
   848: 
   849: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   850: 	ROM_LOAD( "ctornado.cas", 0x0000, 0x8000, CRC(e4e36ce0) SHA1(48a11823121fb2e3de31ae08e453c0124fc4f7f3) )
   851: ROM_END
   852: 
   853: /* The Following use Dongle Type 3 (unknown part number?)
   854:     (dongle data differs for each game)		 */
   855: 
   856: ROM_START( cburnrub )
   857: 	DECOCASS_COMMON_ROMS
   858: 
   859: 	ROM_REGION( 0x01000, REGION_USER1, 0 )	  /* dongle data */
   860: 	ROM_LOAD( "cburnrub.pro",   0x0000, 0x1000, CRC(9f396832) SHA1(0e302fd094474ac792882948a018c73ce76e0759) )
   861: 
   862: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   863: 	ROM_LOAD( "cburnrub.cas",   0x0000, 0x8000, CRC(4528ac22) SHA1(dc0fcc5e5fd21c1c858a90f43c175e36a24b3c3d) )
   864: ROM_END
   865: 
   866: ROM_START( cburnrb2 )
   867: 	DECOCASS_COMMON_ROMS
   868: 
   869: 	ROM_REGION( 0x01000, REGION_USER1, 0 )	  /* dongle data */
   870: 	ROM_LOAD( "cburnrub.pro",   0x0000, 0x1000, CRC(9f396832) SHA1(0e302fd094474ac792882948a018c73ce76e0759) )
   871: 
   872: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   873: 	ROM_LOAD( "cburnrb2.cas",   0x0000, 0x8000, CRC(84a9ed66) SHA1(a9c536e46b89fc6b9c6271776292fed1241d2f3f) )
   874: ROM_END
   875: 
   876: ROM_START( cbnj )
   877: 	DECOCASS_COMMON_ROMS
   878: 
   879: 	ROM_REGION( 0x01000, REGION_USER1, 0 )	  /* dongle data */
   880: 	ROM_LOAD( "cburnrub.pro",   0x0000, 0x1000, CRC(9f396832) SHA1(0e302fd094474ac792882948a018c73ce76e0759) )
   881: 
   882: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   883: 	ROM_LOAD( "cbnj.cas",       0x0000, 0x8000, CRC(eed41560) SHA1(85d5df76efac33cd10427f659c4259afabb3daaf) )
   884: ROM_END
   885: 
   886: ROM_START( cbtime )
   887: 	DECOCASS_COMMON_ROMS
   888: 
   889: 	ROM_REGION( 0x01000, REGION_USER1, 0 )	  /* dongle data */
   890: 	ROM_LOAD( "cbtime.pro",   0x0000, 0x1000, CRC(25bec0f0) SHA1(9fb1f9699f37937421e26d4fb8fdbcd21a5ddc5c) )
   891: 
   892: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   893: 	ROM_LOAD( "cbtime.cas",   0x0000, 0x8000, CRC(56d7dc58) SHA1(34b2513c9ca7ab40f532b6d6d911aa3012113632) )
   894: ROM_END
   895: 
   896: ROM_START( cgraplop )
   897: 	DECOCASS_COMMON_ROMS
   898: 
   899: 	ROM_REGION( 0x01000, REGION_USER1, 0 )	  /* dongle data */
   900: 	ROM_LOAD( "cgraplop.pro", 0x0000, 0x1000, CRC(ee93787d) SHA1(0c753d62fdce2fdbd5b329a5aa259a967d07a651) )
   901: 
   902: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   903: 	ROM_LOAD( "cgraplop.cas", 0x0000, 0x8000, CRC(d2c1c1bb) SHA1(db67304caa11540363735e7d4bf03507ccbe9980) )
   904: ROM_END
   905: 
   906: ROM_START( cgraplp2 )
   907: 	DECOCASS_COMMON_ROMS
   908: 
   909: 	ROM_REGION( 0x01000, REGION_USER1, 0 )	  /* dongle data */
   910: 	ROM_LOAD( "cgraplop.pro", 0x0000, 0x1000, CRC(ee93787d) SHA1(0c753d62fdce2fdbd5b329a5aa259a967d07a651) ) /* is this right for this set? */
   911: 
   912: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   913: 	ROM_LOAD( "cgraplp2.cas", 0x0000, 0x8000, CRC(2e728981) SHA1(83ba90d95858d647315a1c311b8643672afea5f7) )
   914: ROM_END
   915: 
   916: ROM_START( clapapa )
   917: 	DECOCASS_COMMON_ROMS
   918: 
   919: 	ROM_REGION( 0x01000, REGION_USER1, 0 )	  /* dongle data */
   920: 	ROM_LOAD( "clapapa.pro",  0x0000, 0x1000, CRC(e172819a) SHA1(3492775f4f0a0b31ce5a1a998076829b3f264e98) )
   921: 
   922: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   923: 	ROM_LOAD( "clapapa.cas",  0x0000, 0x8000, CRC(4ffbac24) SHA1(1ec0d7ac1886d4b430dc12be27f387e9d952d235) )
   924: ROM_END
   925: 
   926: ROM_START( clapapa2 )
   927:  DECOCASS_COMMON_ROMS
   928: 
   929:  ROM_REGION( 0x01000, REGION_USER1, 0 )   /* dongle data */
   930:  ROM_LOAD( "clapapa.pro",  0x0000, 0x1000, CRC(e172819a) SHA1(3492775f4f0a0b31ce5a1a998076829b3f264e98) )
   931: 
   932:  ROM_REGION( 0x10000, REGION_USER2, 0 )   /* (max) 64k for cassette image */
   933:  ROM_LOAD( "clapapa2.cas",  0x0000, 0x8000, CRC(069dd3c4) SHA1(5a19392c7ac5aea979187c96267e73bf5126307e) )
   934: ROM_END
   935: 
   936: ROM_START( cfghtice )
   937: 	DECOCASS_COMMON_ROMS
   938: 
   939: 	ROM_REGION( 0x01000, REGION_USER1, 0 )	  /* dongle data */
   940: 	ROM_LOAD( "cfghtice.pro", 0x0000, 0x1000, CRC(5abd27b5) SHA1(2ab1c171adffd491759036d6ce2433706654aad2) )
   941: 
   942: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   943: 	ROM_LOAD( "cfghtice.cas", 0x0000, 0x10000, CRC(906dd7fb) SHA1(894a7970d5476ed035edd15656e5cf10d6ddcf57) )
   944: ROM_END
   945: 
   946: ROM_START( cprobowl )
   947: 	DECOCASS_COMMON_ROMS
   948: 
   949: 	ROM_REGION( 0x01000, REGION_USER1, 0 )	  /* dongle data */
   950: 	ROM_LOAD( "cprobowl.pro", 0x0000, 0x1000, CRC(e3a88e60) SHA1(e6e9a2e5ab26e0463c63201a15f7d5a429ec836e) )
   951: 
   952: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   953: 	ROM_LOAD( "cprobowl.cas", 0x0000, 0x8000, CRC(cb86c5e1) SHA1(66c467418cff2ed6d7c121a8b1650ee97ae48fe9) )
   954: ROM_END
   955: 
   956: ROM_START( cnightst )
   957: 	DECOCASS_COMMON_ROMS
   958: 
   959: 	ROM_REGION( 0x01000, REGION_USER1, 0 )	  /* dongle data */
   960: 	ROM_LOAD( "cnightst.pro", 0x0000, 0x1000, CRC(553b0fbc) SHA1(2cdf4560992b62e59b6de760d7996be4ed25f505) )
   961: 
   962: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   963: 	ROM_LOAD( "cnightst.cas", 0x0000, 0x8000, CRC(c6f844cb) SHA1(5fc6154c20ee4e2f4049a78df6f3cacbb96b0dc0) )
   964: ROM_END
   965: 
   966: ROM_START( cnights2 )
   967:  DECOCASS_COMMON_ROMS
   968: 
   969:  ROM_REGION( 0x01000, REGION_USER1, 0 )   /* dongle data */
   970:  ROM_LOAD( "cnightst.pro", 0x0000, 0x1000, CRC(553b0fbc) SHA1(2cdf4560992b62e59b6de760d7996be4ed25f505) )
   971: 
   972:  ROM_REGION( 0x10000, REGION_USER2, 0 )   /* (max) 64k for cassette image */
   973:  ROM_LOAD( "cnights2.cas", 0x0000, 0x8000, CRC(1a28128c) SHA1(4b620a1919d02814f734aba995115c09dc2db930) )
   974: ROM_END
   975: 
   976: ROM_START( cprosocc )
   977: 	DECOCASS_COMMON_ROMS
   978: 
   979: 	ROM_REGION( 0x01000, REGION_USER1, 0 )	  /* dongle data */
   980: 	ROM_LOAD( "cprosocc.pro", 0x0000, 0x1000,  CRC(919fabb2) SHA1(3d6a0676cea7b0be0fe69d06e04ca08c36b2851a) )
   981: 
   982: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   983: 	ROM_LOAD( "cprosocc.cas", 0x0000, 0x10000, CRC(76b1ad2c) SHA1(6188667e5bc001dfdf83deaf7251eae794de4702) )
   984: ROM_END
   985: 
   986: ROM_START( cppicf )
   987: 	DECOCASS_COMMON_ROMS
   988: 
   989: 	ROM_REGION( 0x01000, REGION_USER1, 0 )	  /* dongle data */
   990: 	ROM_LOAD( "cppicf.pro",   0x0000, 0x1000, CRC(0b1a1ecb) SHA1(2106da6837c78812c102b0eaaa1127fcc21ea780) )
   991: 
   992: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
   993: 	ROM_LOAD( "cppicf.cas",   0x0000, 0x8000, CRC(8c02f160) SHA1(03430dd8d4b2e6ca931986dac4d39be6965ffa6f) )
   994: ROM_END
   995: 
   996: ROM_START( cppicf2 )
   997:  DECOCASS_COMMON_ROMS
   998: 
   999:  ROM_REGION( 0x01000, REGION_USER1, 0 )   /* dongle data */
  1000:  ROM_LOAD( "cppicf.pro",   0x0000, 0x1000, CRC(0b1a1ecb) SHA1(2106da6837c78812c102b0eaaa1127fcc21ea780) )
  1001: 
  1002:  ROM_REGION( 0x10000, REGION_USER2, 0 )   /* (max) 64k for cassette image */
  1003:  ROM_LOAD( "cppicf2.cas",   0x0000, 0x8000, CRC(78ffa1bc) SHA1(d15f2a240ae7b45885d32b5f507243f82e820d4b) )
  1004: ROM_END
  1005: 
  1006: /* The Following use Dongle Type 4 (unknown part number?)
  1007:     (dongle data probably differs for each game, but only one is known using it atm) */
  1008: 
  1009: ROM_START( cscrtry )
  1010: 	DECOCASS_COMMON_ROMS
  1011: 
  1012: 	ROM_REGION( 0x08000, REGION_USER1, 0 )	  /* dongle data */
  1013: 	ROM_LOAD( "cscrtry.pro",  0x0000, 0x8000, CRC(7bc3460b) SHA1(7c5668ff9a5073e27f4a83b02d79892eb4df6b92) )
  1014: 
  1015: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
  1016: 	ROM_LOAD( "cscrtry.cas",  0x0000, 0x8000, CRC(5625f0ca) SHA1(f4b0a6f2ca908880386838f06b626479b4b74134) )
  1017: ROM_END
  1018: 
  1019: ROM_START( cscrtry2 )
  1020:  DECOCASS_COMMON_ROMS
  1021: 
  1022:  ROM_REGION( 0x08000, REGION_USER1, 0 )   /* dongle data */
  1023:  ROM_LOAD( "cscrtry.pro",  0x0000, 0x8000, CRC(7bc3460b) SHA1(7c5668ff9a5073e27f4a83b02d79892eb4df6b92) )
  1024: 
  1025:  ROM_REGION( 0x10000, REGION_USER2, 0 )   /* (max) 64k for cassette image */
  1026:  ROM_LOAD( "cscrtry2.cas",  0x0000, 0x8000, CRC(04597842) SHA1(7f1fc3e06b61df880debe9056bdfbbb8600af739) )
  1027: ROM_END
  1028: 
  1029: /* The Following use Dongle Type 5 (unknown part number?)
  1030:     (dongle data not read)		 */
  1031: 
  1032: ROM_START( cbdash )
  1033: 	DECOCASS_COMMON_ROMS
  1034: 
  1035: /*	ROM_REGION( 0x01000, REGION_USER1, 0 ) */ /* (max) 4k for dongle data */
  1036: 	/* no proms */
  1037: 
  1038: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
  1039: 	ROM_LOAD( "cbdash.cas",   0x0000, 0x8000, CRC(cba4c1af) SHA1(5d163d8e31c58b20679c6be06b1aa02df621822b) )
  1040: ROM_END
  1041: 
  1042: /* The Following have unknown Dongles
  1043:     (dongle data not read)		 */
  1044: 
  1045: ROM_START( chwy )
  1046: 	DECOCASS_COMMON_ROMS
  1047: 
  1048: 	/* no dumped dongle data, type1? its an early game if its highway chase */
  1049: 
  1050: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
  1051: 	ROM_LOAD( "chwy.cas",   0x0000, 0x8000, CRC(68a48064) )
  1052: ROM_END
  1053: 
  1054: ROM_START( cflyball )
  1055: 	DECOCASS_COMMON_ROMS
  1056: 
  1057: 	/* no dumped dongle data */
  1058: 
  1059: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
  1060: 	ROM_LOAD( "cflyball.cas",   0x0000, 0x10000, CRC(cb40d043) )
  1061: ROM_END
  1062: 
  1063: ROM_START( czeroize )
  1064: 	DECOCASS_COMMON_ROMS
  1065: 
  1066: 	/* no dumped dongle data */
  1067: 
  1068: 	ROM_REGION( 0x10000, REGION_USER2, 0 )	  /* (max) 64k for cassette image */
  1069: 	ROM_LOAD( "czeroize.cas",   0x0000, 0x10000, CRC(3ef0a406) )
  1070: ROM_END
  1071: 
  1072: 
  1073: static DRIVER_INIT( decocass )
  1074: {
  1075: 	int A;
  1076: 	unsigned char *rom = memory_region(REGION_CPU1);
  1077: 	int diff = memory_region_length(REGION_CPU1) / 2;
  1078: 
  1079: 	memory_set_opcode_base(0,rom+diff);
  1080: 
  1081: 	/* Swap bits 5 & 6 for opcodes */
  1082: 	for (A = 0;A < diff;A++)
  1083: 		rom[A+diff] = swap_bits_5_6(rom[A]);
  1084: }
  1085: 
  1086: GAMEX( 1981, decocass, 0,		 decocass, decocass, decocass, ROT270, "DECO", "Cassette System", NOT_A_DRIVER )
  1087: GAME ( 1981, ctsttape, decocass, ctsttape, decocass, decocass, ROT270, "DECO", "Cassette: Test Tape" )
  1088: GAME ( 1981, clocknch, decocass, clocknch, decocass, decocass, ROT270, "DECO", "Cassette: Lock'n'Chase" )
  1089: GAMEX( 1981, ctisland, decocass, ctisland, decocass, decocass, ROT270, "DECO", "Cassette: Treasure Island (set 1)", GAME_IMPERFECT_GRAPHICS )
  1090: GAMEX( 1981, ctislnd2, ctisland, ctisland, decocass, decocass, ROT270, "DECO", "Cassette: Treasure Island (set 2)", GAME_IMPERFECT_GRAPHICS )
  1091: GAMEX( 1981, ctislnd3, ctisland, ctisland, decocass, decocass, ROT270, "DECO", "Cassette: Treasure Island (set 3)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) /* Different Bitswap? */
  1092: GAME ( 1981, csuperas, decocass, csuperas, decocass, decocass, ROT270, "DECO", "Cassette: Super Astro Fighter" )
  1093: GAME ( 1981, castfant, decocass, castfant, decocass, decocass, ROT270, "DECO", "Cassette: Astro Fantasia" )
  1094: GAME ( 1981, cluckypo, decocass, cluckypo, decocass, decocass, ROT270, "DECO", "Cassette: Lucky Poker" )
  1095: GAME ( 1981, cterrani, decocass, cterrani, decocass, decocass, ROT270, "DECO", "Cassette: Terranean" )
  1096: GAMEX( 1982, cexplore, decocass, cexplore, decocass, decocass, ROT270, "DECO", "Cassette: Explorer", GAME_NOT_WORKING )
  1097: GAME ( 1981, cprogolf, decocass, cprogolf, decocass, decocass, ROT270, "DECO", "Cassette: Pro Golf" )
  1098: GAME ( 1982, cmissnx,  decocass, cmissnx,  decocass, decocass, ROT270, "DECO", "Cassette: Mission-X" )
  1099: GAME ( 1982, cdiscon1, decocass, cdiscon1, decocass, decocass, ROT270, "DECO", "Cassette: Disco No.1" )
  1100: GAME ( 1982, csweetht, cdiscon1, cdiscon1, decocass, decocass, ROT270, "DECO", "Cassette: Sweet Heart" )
  1101: GAME ( 1982, cptennis, decocass, cptennis, decocass, decocass, ROT270, "DECO", "Cassette: Pro Tennis" )
  1102: GAME ( 1982, ctornado, decocass, ctornado, decocass, decocass, ROT270, "DECO", "Cassette: Tornado" )
  1103: GAME ( 1982, cburnrub, decocass, cburnrub, decocass, decocass, ROT270, "DECO", "Cassette: Burnin' Rubber (set 1)" )
  1104: GAME ( 1982, cburnrb2, cburnrub, cburnrub, decocass, decocass, ROT270, "DECO", "Cassette: Burnin' Rubber (set 2)" )
  1105: GAME ( 1982, cbnj,	   cburnrub, cbnj,	   decocass, decocass, ROT270, "DECO", "Cassette: Bump N Jump" )
  1106: GAME ( 1983, cbtime,   decocass, cbtime,   decocass, decocass, ROT270, "DECO", "Cassette: Burger Time" )
  1107: GAME ( 1983, cgraplop, decocass, cgraplop, decocass, decocass, ROT270, "DECO", "Cassette: Graplop (aka Cluster Buster) (set 1)" )
  1108: GAMEX( 1983, cgraplp2, cgraplop, cgraplop, decocass, decocass, ROT270, "DECO", "Cassette: Graplop (aka Cluster Buster) (set 2)", GAME_NOT_WORKING ) /* Different Protection / Bitswap? */
  1109: GAME ( 1983, clapapa,  decocass, clapapa,  decocass, decocass, ROT270, "DECO", "Cassette: Rootin' Tootin' (aka La.Pa.Pa)" ) /* Displays 'LaPaPa during attract */
  1110: GAME ( 1983, clapapa2, clapapa,  clapapa,  decocass, decocass, ROT270, "DECO", "Cassette: Rootin' Tootin'" )				/* Displays 'Rootin' Tootin' during attract */
  1111: GAME ( 1984, cfghtice, decocass, cfghtice, decocass, decocass, ROT270, "DECO", "Cassette: Fighting Ice Hockey" )
  1112: GAME ( 1983, cprobowl, decocass, cprobowl, decocass, decocass, ROT270, "DECO", "Cassette: Pro Bowling" )
  1113: GAME ( 1983, cnightst, decocass, cnightst, decocass, decocass, ROT270, "DECO", "Cassette: Night Star (set 1)" )
  1114: GAME ( 1983, cnights2, cnightst, cnightst, decocass, decocass, ROT270, "DECO", "Cassette: Night Star (set 2)" )
  1115: GAME ( 1983, cprosocc, decocass, cprosocc, decocass, decocass, ROT270, "DECO", "Cassette: Pro Soccer" )
  1116: GAME ( 1984, cppicf,   decocass, cppicf,   decocass, decocass, ROT270, "DECO", "Cassette: Peter Pepper's Ice Cream Factory (set 1)" )
  1117: GAME ( 1984, cppicf2,  cppicf,   cppicf,   decocass, decocass, ROT270, "DECO", "Cassette: Peter Pepper's Ice Cream Factory (set 2)" )
  1118: GAME ( 1984, cscrtry,  decocass, cscrtry,  decocass, decocass, ROT270, "DECO", "Cassette: Scrum Try (set 1)" )
  1119: GAME ( 1984, cscrtry2, cscrtry,  cscrtry,  decocass, decocass, ROT270, "DECO", "Cassette: Scrum Try (set 2)" )
  1120: GAME ( 1985, cbdash,   decocass, cbdash,   decocass, decocass, ROT270, "DECO", "Cassette: Boulder Dash" )
  1121: 
  1122: /* The following may be missing dongle data if they're not Type 1 */
  1123: GAMEX( 1985, chwy,     decocass, decocass,   decocass, decocass, ROT270, "DECO", "Cassette: Highway Chase?", GAME_NOT_WORKING )
  1124: GAMEX( 1985, cflyball, decocass, decocass,   decocass, decocass, ROT270, "DECO", "Cassette: Flying Ball?", GAME_NOT_WORKING )
  1125: GAMEX( 1985, czeroize, decocass, decocass,   decocass, decocass, ROT270, "DECO", "Cassette: Zeroize?", GAME_NOT_WORKING )
  1126: 




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