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 : Arkanoid - Revenge Of Doh : VM Driver Source

Source Listing


     1: /***************************************************************************
     2: 
     3: 	Arkanoid driver (Preliminary)
     4: 
     5: 
     6: 	Japanese version support cocktail mode (DSW #7), the others don't.
     7: 
     8: 	Here are the versions we have:
     9: 
    10: 	arkanoid	World version, probably an earlier revision
    11: 	arknoidu	USA version, probably a later revision; There has been code
    12: 			    inserted, NOT patched, so I don't think it's a bootleg
    13: 				The 68705 code for this one was not available; I made it up from
    14: 				the World version changing the level data pointer table.
    15: 	arknoiuo	USA version, probably an earlier revision
    16: 				ROM	a7510.bin should be identical to the real World one.
    17: 				(It only differs in the country byte from A75_11.ROM)
    18: 				This version works fine with the real MCU ROM
    19:     arkatour    Tournament version
    20: 				The 68705 code for this one was not available; I made it up from
    21: 				the World version changing the level data pointer table.
    22: 	arknoidj	Japanese version with level selector.
    23: 				The 68705 code for this one was not available; I made it up from
    24: 				the World version changing the level data pointer table.
    25: 	arkbl2		Bootleg of the early Japanese version.
    26: 				The only difference is that the warning text has been replaced
    27: 				by "WAIT"
    28: 				ROM	E2.6F should be identical to the real Japanese one.
    29: 				(It only differs in the country byte from A75_11.ROM)
    30: 				This version works fine with the real MCU ROM
    31: 	arkatayt	Another bootleg of the early Japanese one, more heavily modified
    32: 	arkblock	Another bootleg of the early Japanese one, more heavily modified
    33: 	arkbloc2	Another bootleg
    34: 	arkbl3   	Another bootleg of the early Japanese one, more heavily modified
    35: 	paddle2   	Another bootleg of the early Japanese one, more heavily modified
    36: 	arkangc		Game Corporation bootleg with level selector
    37: 
    38: 
    39: 	Most if not all Arkanoid sets have a bug in their game code. It occurs on the
    40: 	final level where the player has to dodge falling objects. The bug resides in
    41: 	the collision detection routine which sometimes reads from unmapped addresses
    42: 	above $F000. For these addresses it is vital to read zero values, or else the
    43: 	player will die for no reason.
    44: 
    45: 
    46: ***************************************************************************/
    47: 
    48: #include "driver.h" 
    49: #include "vidhrdw/generic.h" 
    50: 
    51: extern WRITE_HANDLER( arkanoid_videoram_w );
    52: extern VIDEO_START( arkanoid );
    53: extern VIDEO_UPDATE( arkanoid );
    54: 
    55: extern MACHINE_INIT( arkanoid );
    56: 
    57: extern WRITE_HANDLER( arkanoid_d008_w );
    58: 
    59: extern READ_HANDLER( arkanoid_Z80_mcu_r );
    60: extern WRITE_HANDLER( arkanoid_Z80_mcu_w );
    61: 
    62: extern READ_HANDLER( arkanoid_68705_portA_r );
    63: extern WRITE_HANDLER( arkanoid_68705_portA_w );
    64: extern WRITE_HANDLER( arkanoid_68705_ddrA_w );
    65: 
    66: extern READ_HANDLER( arkanoid_68705_portC_r );
    67: extern WRITE_HANDLER( arkanoid_68705_portC_w );
    68: extern WRITE_HANDLER( arkanoid_68705_ddrC_w );
    69: 
    70: extern READ_HANDLER( arkanoid_68705_input_0_r );
    71: extern READ_HANDLER( arkanoid_input_2_r );
    72: 
    73: /*
    74: Paddle 2 MCU simulation
    75: 
    76: TODO:
    77: \-Fix crashes and level finishing.
    78: \-Finish the level pointer table & check the real thing for true level pattern...
    79: \-(track_kludge_r)Find a better way to handle the paddle inputs.
    80: \-Code optimizations + add this into machine/arkanoid.c
    81: 
    82: Notes:
    83: \-This game is an Arkanoid 1 bootleg but with level edited to match the Arkanoid 2 ones.
    84: \-Returning the right values for commands 0x38,0xff and 0x8a gives the level that has to
    85: be played,but I don't have any clue about the true level pattern used.Checking Arkanoid 2
    86: doesn't help much BTW...
    87: */
    88: 
    89: 
    90: static int paddle2_prot;
    91: 
    92: static READ_HANDLER( paddle2_prot_r )
    93: {
    94: 	static UINT8 level_table_a[] =
    95: 	{
    96: 		0xf3,0xf7,0xf9,0xfb,0xfd,0xff,0xf5,0xe3, /* 1- 8*/
    97: 		0xe5,0xe7,0xe9,0xeb,0xed,0xef,0xf1,0xf7, /* 9-16*/
    98: 		0xf9,0xfb,0xfd,0xff,0x00,0x00,0x00,0x00, /*17-24*/
    99: 		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00  /*25-32*/
   100: 	};
   101: 	static UINT8 level_table_b[] =
   102: 	{
   103: 		0x52,0x52,0x52,0x52,0x52,0x52,0x0e,0x0e, /* 1- 8*/
   104: 		0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, /* 9-16*/
   105: 		0x0e,0x0e,0x0e,0x0e,0x00,0x00,0x00,0x00, /*17-24*/
   106: 		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00  /*25-32*/
   107: 	};
   108: 	UINT8 *RAM = memory_region(REGION_CPU1);
   109: //	usrintf_showmessage("%04x: %02x",activecpu_get_pc(),paddle2_prot);
   110: 
   111: 	switch (paddle2_prot)
   112: 	{
   113: 		case 0xc3: return 0x1d;
   114: 		case 0x24: return 0x9b;
   115: 		/* Level pointer table */
   116: 		case 0x38:
   117: 		if(RAM[0xed83] == 0)    return level_table_a[RAM[0xed72]];
   118: 		else					return RAM[0xed83];
   119: 		case 0xff:
   120: 		if(RAM[0xed83] == 0)	return level_table_b[RAM[0xed72]];
   121: 		else 					return RAM[0xed83];
   122: 		/* Guess this is used for building level 	   */
   123: 		/* pointers too,but I haven't tested yet...    */
   124: 		case 0x8a: return 0x0a;
   125: 		/* Goes into sub-routine $2050,controls level finishing(WRONG!!!) */
   126: 		case 0xe3:
   127: 		if(RAM[0xed83] != 0)	return 0xff;
   128: 		else					return 0;
   129: 		/* Gives BAD HW message otherwise */
   130: 		case 0x36: return 0x2d;
   131: 		case 0xf7: return 0;
   132: 		default: return paddle2_prot;
   133: 	}
   134: }
   135: 
   136: static WRITE_HANDLER( paddle2_prot_w )
   137: {
   138: 	logerror("%04x: prot_w %02x\n",activecpu_get_pc(),data);
   139: 	paddle2_prot = data;
   140: }
   141: 
   142: static READ_HANDLER( track_kludge_r )
   143: {
   144: 	int track = readinputport(2);
   145: 
   146: 	/* temp kludge,needed to get the right side of the screen */
   147: 	if(track < 0x44)
   148: 		return 0x23;
   149: 	return 0x03;
   150: }
   151: 
   152: static MEMORY_READ_START( readmem )
   153: 	{ 0x0000, 0xbfff, MRA_ROM },
   154: 	{ 0xc000, 0xc7ff, MRA_RAM },
   155: 	{ 0xd001, 0xd001, AY8910_read_port_0_r },
   156: 	{ 0xd00c, 0xd00c, arkanoid_68705_input_0_r },  /* mainly an input port, with 2 bits from the 68705 */
   157: 	{ 0xd010, 0xd010, input_port_1_r },
   158: 	{ 0xd018, 0xd018, arkanoid_Z80_mcu_r },  /* input from the 68705 */
   159: 	{ 0xe000, 0xefff, MRA_RAM },
   160: 	{ 0xf000, 0xffff, MRA_NOP },	/* fixes instant death in final level */
   161: MEMORY_END
   162: 
   163: static MEMORY_WRITE_START( writemem )
   164: 	{ 0x0000, 0xbfff, MWA_ROM },
   165: 	{ 0xc000, 0xc7ff, MWA_RAM },
   166: 	{ 0xd000, 0xd000, AY8910_control_port_0_w },
   167: 	{ 0xd001, 0xd001, AY8910_write_port_0_w },
   168: 	{ 0xd008, 0xd008, arkanoid_d008_w },	/* gfx bank, flip screen etc. */
   169: 	{ 0xd010, 0xd010, watchdog_reset_w },
   170: 	{ 0xd018, 0xd018, arkanoid_Z80_mcu_w }, /* output to the 68705 */
   171: 	{ 0xe000, 0xe7ff, arkanoid_videoram_w, &videoram },
   172: 	{ 0xe800, 0xe83f, MWA_RAM, &spriteram, &spriteram_size },
   173: 	{ 0xe840, 0xefff, MWA_RAM },
   174: MEMORY_END
   175: 
   176: static MEMORY_READ_START( boot_readmem )
   177: 	{ 0x0000, 0xbfff, MRA_ROM },
   178: 	{ 0xc000, 0xc7ff, MRA_RAM },
   179: 	{ 0xd001, 0xd001, AY8910_read_port_0_r },
   180: 	{ 0xd00c, 0xd00c, input_port_0_r },
   181: 	{ 0xd010, 0xd010, input_port_1_r },
   182: 	{ 0xd018, 0xd018, arkanoid_input_2_r },
   183: 	{ 0xe000, 0xefff, MRA_RAM },
   184: 	{ 0xf000, 0xffff, MRA_NOP },	/* fixes instant death in final level */
   185: MEMORY_END
   186: 
   187: static MEMORY_WRITE_START( boot_writemem )
   188: 	{ 0x0000, 0xbfff, MWA_ROM },
   189: 	{ 0xc000, 0xc7ff, MWA_RAM },
   190: 	{ 0xd000, 0xd000, AY8910_control_port_0_w },
   191: 	{ 0xd001, 0xd001, AY8910_write_port_0_w },
   192: 	{ 0xd008, 0xd008, arkanoid_d008_w },	/* gfx bank, flip screen etc. */
   193: 	{ 0xd010, 0xd010, watchdog_reset_w },
   194: 	{ 0xd018, 0xd018, MWA_NOP },
   195: 	{ 0xe000, 0xe7ff, arkanoid_videoram_w, &videoram },
   196: 	{ 0xe800, 0xe83f, MWA_RAM, &spriteram, &spriteram_size },
   197: 	{ 0xe840, 0xefff, MWA_RAM },
   198: MEMORY_END
   199: 
   200: 
   201: static MEMORY_READ_START( mcu_readmem )
   202: 	{ 0x0000, 0x0000, arkanoid_68705_portA_r },
   203: 	{ 0x0001, 0x0001, arkanoid_input_2_r },
   204: 	{ 0x0002, 0x0002, arkanoid_68705_portC_r },
   205: 	{ 0x0010, 0x007f, MRA_RAM },
   206: 	{ 0x0080, 0x07ff, MRA_ROM },
   207: MEMORY_END
   208: 
   209: static MEMORY_WRITE_START( mcu_writemem )
   210: 	{ 0x0000, 0x0000, arkanoid_68705_portA_w },
   211: 	{ 0x0002, 0x0002, arkanoid_68705_portC_w },
   212: 	{ 0x0004, 0x0004, arkanoid_68705_ddrA_w },
   213: 	{ 0x0006, 0x0006, arkanoid_68705_ddrC_w },
   214: 	{ 0x0010, 0x007f, MWA_RAM },
   215: 	{ 0x0080, 0x07ff, MWA_ROM },
   216: MEMORY_END
   217: 
   218: 
   219: INPUT_PORTS_START( arkanoid )
   220: 	PORT_START	/* IN0 */
   221: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
   222: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
   223: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
   224: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT )
   225: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN1 )
   226: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 )
   227: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL )	/* input from the 68705, some bootlegs need it to be 1 */
   228: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* input from the 68705 */
   229: 
   230: 	PORT_START	/* IN1 */
   231: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
   232: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
   233: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
   234: 	PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNKNOWN )
   235: 
   236: 	PORT_START      /* IN2 - spinner Player 1 */
   237: 	PORT_ANALOG( 0xff, 0x00, IPT_DIAL, 30, 15, 0, 0)
   238: 
   239: 	PORT_START      /* IN3 - spinner Player 2  */
   240: 	PORT_ANALOG( 0xff, 0x00, IPT_DIAL | IPF_COCKTAIL, 30, 15, 0, 0)
   241: 
   242: 	PORT_START	/* DSW1 */
   243: 	PORT_DIPNAME( 0x01, 0x00, "Allow Continue" )
   244: 	PORT_DIPSETTING(    0x01, DEF_STR( No ) )
   245: 	PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
   246: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
   247: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
   248: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   249: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
   250: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Difficulty ) )
   251: 	PORT_DIPSETTING(    0x08, "Easy" )
   252: 	PORT_DIPSETTING(    0x00, "Hard" )
   253: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Bonus_Life ) )
   254: 	PORT_DIPSETTING(    0x10, "20K, 60K and every 60K" )
   255: 	PORT_DIPSETTING(    0x00, "20K only" )
   256: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Lives ) )
   257: 	PORT_DIPSETTING(    0x20, "3" )
   258: 	PORT_DIPSETTING(    0x00, "5" )
   259: 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coinage ) )
   260: 	PORT_DIPSETTING(    0x40, DEF_STR( 2C_1C ) )
   261: 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_1C ) )
   262: 	PORT_DIPSETTING(    0x80, DEF_STR( 1C_2C ) )
   263: 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_6C ) )
   264: INPUT_PORTS_END
   265: 
   266: /* These are the input ports of the real Japanese ROM set                        */
   267: /* 'Block' uses the these ones as well.	The Tayto bootleg is different			 */
   268: /*  in coinage and # of lives.                    								 */
   269: 
   270: INPUT_PORTS_START( arknoidj )
   271: 	PORT_START	/* IN0 */
   272: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
   273: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
   274: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
   275: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT )
   276: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN1 )
   277: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 )
   278: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL )	/* input from the 68705, some bootlegs need it to be 1 */
   279: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* input from the 68705 */
   280: 
   281: 	PORT_START	/* IN1 */
   282: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
   283: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
   284: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
   285: 	PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNKNOWN )
   286: 
   287: 	PORT_START      /* IN2 - spinner (multiplexed for player 1 and 2) */
   288: 	PORT_ANALOG( 0xff, 0x00, IPT_DIAL, 30, 15, 0, 0)
   289: 
   290: 	PORT_START      /* IN3 - spinner Player 2  */
   291: 	PORT_ANALOG( 0xff, 0x00, IPT_DIAL | IPF_COCKTAIL, 30, 15, 0, 0)
   292: 
   293: 	PORT_START	/* DSW1 */
   294: 	PORT_DIPNAME( 0x01, 0x00, "Allow Continue" )
   295: 	PORT_DIPSETTING(    0x01, DEF_STR( No ) )
   296: 	PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
   297: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
   298: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
   299: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   300: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
   301: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Difficulty ) )
   302: 	PORT_DIPSETTING(    0x08, "Easy" )
   303: 	PORT_DIPSETTING(    0x00, "Hard" )
   304: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Bonus_Life ) )
   305: 	PORT_DIPSETTING(    0x10, "20K, 60K and every 60K" )
   306: 	PORT_DIPSETTING(    0x00, "20K only" )
   307: 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Lives ) )
   308: 	PORT_DIPSETTING(    0x20, "3" )
   309: 	PORT_DIPSETTING(    0x00, "5" )
   310: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Coinage ) )
   311: 	PORT_DIPSETTING(    0x40, DEF_STR( 1C_1C ) )
   312: 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_2C ) )
   313: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) )
   314: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
   315: 	PORT_DIPSETTING(    0x80, DEF_STR( Cocktail ) )
   316: INPUT_PORTS_END
   317: 
   318: /* Is the same as arkanoij, but the Coinage,
   319:   Lives and Bonus_Life dips are different */
   320: INPUT_PORTS_START( arkatayt )
   321: 	PORT_START	/* IN0 */
   322: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
   323: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
   324: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
   325: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT )
   326: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN1 )
   327: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_COIN2 )
   328: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL )	/* input from the 68705, some bootlegs need it to be 1 */
   329: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL )	/* input from the 68705 */
   330: 
   331: 	PORT_START	/* IN1 */
   332: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
   333: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
   334: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
   335: 	PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNKNOWN )
   336: 
   337: 	PORT_START      /* IN2 - spinner (multiplexed for player 1 and 2) */
   338: 	PORT_ANALOG( 0xff, 0x00, IPT_DIAL, 30, 15, 0, 0)
   339: 
   340: 	PORT_START      /* IN3 - spinner Player 2  */
   341: 	PORT_ANALOG( 0xff, 0x00, IPT_DIAL | IPF_COCKTAIL, 30, 15, 0, 0)
   342: 
   343: 	PORT_START	/* DSW1 */
   344: 	PORT_DIPNAME( 0x01, 0x00, "Allow Continue" )
   345: 	PORT_DIPSETTING(    0x01, DEF_STR( No ) )
   346: 	PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
   347: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
   348: 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
   349: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   350: 	PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
   351: 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Difficulty ) )
   352: 	PORT_DIPSETTING(    0x08, "Easy" )
   353: 	PORT_DIPSETTING(    0x00, "Hard" )
   354: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Bonus_Life ) )
   355: 	PORT_DIPSETTING(    0x10, "60K, 100K and every 60K" )
   356: 	PORT_DIPSETTING(    0x00, "60K only" )
   357: 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Lives ) )
   358: 	PORT_DIPSETTING(    0x20, "2" )
   359: 	PORT_DIPSETTING(    0x00, "3" )
   360: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Coinage ) )
   361: 	PORT_DIPSETTING(    0x00, DEF_STR( 2C_1C ) )
   362: 	PORT_DIPSETTING(    0x40, DEF_STR( 1C_1C ) )
   363: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) )
   364: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
   365: 	PORT_DIPSETTING(    0x80, DEF_STR( Cocktail ) )
   366: INPUT_PORTS_END
   367: 
   368: 
   369: static struct GfxLayout charlayout =
   370: {
   371: 	8,8,	/* 8*8 characters */
   372: 	4096,	/* 4096 characters */
   373: 	3,	/* 3 bits per pixel */
   374: 	{ 2*4096*8*8, 4096*8*8, 0 },	/* the two bitplanes are separated */
   375: 	{ 0, 1, 2, 3, 4, 5, 6, 7 },
   376: 	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
   377: 	8*8	/* every char takes 8 consecutive bytes */
   378: };
   379: 
   380: 
   381: 
   382: static struct GfxDecodeInfo gfxdecodeinfo[] =
   383: {
   384: 	{ REGION_GFX1, 0, &charlayout,  0, 64 },
   385: 	/* sprites use the same characters above, but are 16x8 */
   386: 	{ -1 } /* end of array */
   387: };
   388: 
   389: 
   390: 
   391: static struct AY8910interface ay8910_interface =
   392: {
   393: 	1,	/* 1 chips */
   394: 	1500000,	/* 1.5 MHz ???? */
   395: 	{ 33 },
   396: 	{ 0 },
   397: 	{ input_port_4_r },
   398: 	{ 0 },
   399: 	{ 0 }
   400: };
   401: 
   402: 
   403: 
   404: static MACHINE_DRIVER_START( arkanoid )
   405: 
   406: 	/* basic machine hardware */
   407: 	MDRV_CPU_ADD(Z80, 6000000)	/* 6 MHz ?? */
   408: 	MDRV_CPU_MEMORY(readmem,writemem)
   409: 	MDRV_CPU_VBLANK_INT(irq0_line_hold,1)
   410: 
   411: 	MDRV_CPU_ADD(M68705, 500000)	/* .5 MHz (don't know really how fast, but it doesn't need to even be this fast) */
   412: 	MDRV_CPU_MEMORY(mcu_readmem,mcu_writemem)
   413: 
   414: 	MDRV_FRAMES_PER_SECOND(60)
   415: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
   416: 	MDRV_INTERLEAVE(100) /* 100 CPU slices per second to synchronize between the MCU and the main CPU */
   417: 
   418: 	MDRV_MACHINE_INIT(arkanoid)
   419: 
   420: 	/* video hardware */
   421: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
   422: 	MDRV_SCREEN_SIZE(32*8, 32*8)
   423: 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
   424: 	MDRV_GFXDECODE(gfxdecodeinfo)
   425: 	MDRV_PALETTE_LENGTH(512)
   426: 
   427: 	MDRV_PALETTE_INIT(RRRR_GGGG_BBBB)
   428: 	MDRV_VIDEO_START(arkanoid)
   429: 	MDRV_VIDEO_UPDATE(arkanoid)
   430: 
   431: 	/* sound hardware */
   432: 	MDRV_SOUND_ADD(AY8910, ay8910_interface)
   433: MACHINE_DRIVER_END
   434: 
   435: static MACHINE_DRIVER_START( bootleg )
   436: 
   437: 	/* basic machine hardware */
   438: 	MDRV_CPU_ADD(Z80, 6000000)	/* 6 MHz ?? */
   439: 	MDRV_CPU_MEMORY(boot_readmem,boot_writemem)
   440: 	MDRV_CPU_VBLANK_INT(irq0_line_hold,1)
   441: 
   442: 	MDRV_FRAMES_PER_SECOND(60)
   443: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
   444: 
   445: 	/* video hardware */
   446: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
   447: 	MDRV_SCREEN_SIZE(32*8, 32*8)
   448: 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
   449: 	MDRV_GFXDECODE(gfxdecodeinfo)
   450: 	MDRV_PALETTE_LENGTH(512)
   451: 
   452: 	MDRV_PALETTE_INIT(RRRR_GGGG_BBBB)
   453: 	MDRV_VIDEO_START(arkanoid)
   454: 	MDRV_VIDEO_UPDATE(arkanoid)
   455: 
   456: 	/* sound hardware */
   457: 	MDRV_SOUND_ADD(AY8910, ay8910_interface)
   458: MACHINE_DRIVER_END
   459: 
   460: 
   461: 
   462: /***************************************************************************
   463: 
   464:   Game driver(s)
   465: 
   466: ***************************************************************************/
   467: 
   468: ROM_START( arkanoid )
   469: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
   470: 	ROM_LOAD( "a75_01-1.rom", 0x0000, 0x8000, CRC(5bcda3b0) SHA1(52cadd38b5f8e8856f007a9c602d6b508f30be65) )
   471: 	ROM_LOAD( "a75_11.rom",   0x8000, 0x8000, CRC(eafd7191) SHA1(d2f8843b716718b1de209e97a874e8ce600f3f87) )
   472: 
   473: 	ROM_REGION( 0x0800, REGION_CPU2, 0 )	/* 8k for the microcontroller */
   474: 	ROM_LOAD( "arkanoid.uc",  0x0000, 0x0800, CRC(515d77b6) SHA1(a302937683d11f663abd56a2fd7c174374e4d7fb) )
   475: 
   476: 	ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE )
   477: 	ROM_LOAD( "a75_03.rom",   0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) )
   478: 	ROM_LOAD( "a75_04.rom",   0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) )
   479: 	ROM_LOAD( "a75_05.rom",   0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) )
   480: 
   481: 	ROM_REGION( 0x0600, REGION_PROMS, 0 )
   482: 	ROM_LOAD( "07.bpr",       0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) )	/* red component */
   483: 	ROM_LOAD( "08.bpr",       0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) )	/* green component */
   484: 	ROM_LOAD( "09.bpr",       0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) )	/* blue component */
   485: ROM_END
   486: 
   487: ROM_START( arknoidu )
   488: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
   489: 	ROM_LOAD( "a75-19.bin",   0x0000, 0x8000, CRC(d3ad37d7) SHA1(a172a1ef5bb83ee2d8ed2842ef8968af19ad411e) )
   490: 	ROM_LOAD( "a75-18.bin",   0x8000, 0x8000, CRC(cdc08301) SHA1(05f54353cc8333af14fa985a2764960e20e8161a) )
   491: 
   492: 	ROM_REGION( 0x0800, REGION_CPU2, 0 )	/* 8k for the microcontroller */
   493: 	ROM_LOAD( "arknoidu.uc",  0x0000, 0x0800, BAD_DUMP CRC(de518e47) SHA1(b8eddd1c566505fb69e3d1207c7a9720dfb9f503)  )
   494: 
   495: 	ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE )
   496: 	ROM_LOAD( "a75_03.rom",   0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) )
   497: 	ROM_LOAD( "a75_04.rom",   0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) )
   498: 	ROM_LOAD( "a75_05.rom",   0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) )
   499: 
   500: 	ROM_REGION( 0x0600, REGION_PROMS, 0 )
   501: 	ROM_LOAD( "07.bpr",       0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) )	/* red component */
   502: 	ROM_LOAD( "08.bpr",       0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) )	/* green component */
   503: 	ROM_LOAD( "09.bpr",       0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) )	/* blue component */
   504: ROM_END
   505: 
   506: ROM_START( arknoiuo )
   507: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
   508: 	ROM_LOAD( "a75_01-1.rom", 0x0000, 0x8000, CRC(5bcda3b0) SHA1(52cadd38b5f8e8856f007a9c602d6b508f30be65) )
   509: 	ROM_LOAD( "a7510.bin",    0x8000, 0x8000, CRC(a1769e15) SHA1(fbb45731246a098b29eb08de5d63074b496aaaba) )
   510: 
   511: 	ROM_REGION( 0x0800, REGION_CPU2, 0 )	/* 8k for the microcontroller */
   512: 	ROM_LOAD( "arkanoid.uc",  0x0000, 0x0800, CRC(515d77b6) SHA1(a302937683d11f663abd56a2fd7c174374e4d7fb) )
   513: 
   514: 	ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE )
   515: 	ROM_LOAD( "a75_03.rom",   0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) )
   516: 	ROM_LOAD( "a75_04.rom",   0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) )
   517: 	ROM_LOAD( "a75_05.rom",   0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) )
   518: 
   519: 	ROM_REGION( 0x0600, REGION_PROMS, 0 )
   520: 	ROM_LOAD( "07.bpr",       0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) )	/* red component */
   521: 	ROM_LOAD( "08.bpr",       0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) )	/* green component */
   522: 	ROM_LOAD( "09.bpr",       0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) )	/* blue component */
   523: ROM_END
   524: 
   525: ROM_START( arkatour )
   526: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
   527: 	ROM_LOAD( "t_ark1.bin",   0x0000, 0x8000, CRC(e3b8faf5) SHA1(4c09478fa41881fa89ee6afb676aeb780f17ac2e) )
   528: 	ROM_LOAD( "t_ark2.bin",   0x8000, 0x8000, CRC(326aca4d) SHA1(5a194b7a0361236d471b24905dc6434372f81252) )
   529: 
   530: 	ROM_REGION( 0x0800, REGION_CPU2, 0 )	/* 8k for the microcontroller */
   531: 	ROM_LOAD( "arkatour.uc",  0x0000, 0x0800, BAD_DUMP CRC(d3249559) SHA1(b1542764450016614e9e03cedd6a2f1e59961789)  )
   532: 
   533: 	ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE )
   534: 	ROM_LOAD( "t_ark3.bin",   0x00000, 0x8000, CRC(5ddea3cf) SHA1(58f16515898b7cc2697bf7663a60d9ca0db6da95) )
   535: 	ROM_LOAD( "t_ark4.bin",   0x08000, 0x8000, CRC(5fcf2e85) SHA1(f721f0afb0550cc64bff26681856a7576398d9b5) )
   536: 	ROM_LOAD( "t_ark5.bin",   0x10000, 0x8000, CRC(7b76b192) SHA1(a68aa08717646a6c322cf3455df07f50df9e9f33) )
   537: 
   538: 	ROM_REGION( 0x0600, REGION_PROMS, 0 )
   539: 	ROM_LOAD( "07.bpr",       0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) )	/* red component */
   540: 	ROM_LOAD( "08.bpr",       0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) )	/* green component */
   541: 	ROM_LOAD( "09.bpr",       0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) )	/* blue component */
   542: ROM_END
   543: 
   544: ROM_START( arknoidj )
   545: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
   546: 	ROM_LOAD( "a75-21.rom",   0x0000, 0x8000, CRC(bf0455fc) SHA1(250522b84b9f491c3f4efc391bf6aa6124361369) )
   547: 	ROM_LOAD( "a75-22.rom",   0x8000, 0x8000, CRC(3a2688d3) SHA1(9633a661352def3d85f95ca830f6d761b0b5450e) )
   548: 
   549: 	ROM_REGION( 0x0800, REGION_CPU2, 0 )	/* 8k for the microcontroller */
   550: 	ROM_LOAD( "arknoidj.uc",  0x0000, 0x0800, BAD_DUMP CRC(0a4abef6) SHA1(fdce0b7a2eab7fd4f1f4fc3b93120b1ebc16078e)  )
   551: 
   552: 	ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE )
   553: 	ROM_LOAD( "a75_03.rom",   0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) )
   554: 	ROM_LOAD( "a75_04.rom",   0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) )
   555: 	ROM_LOAD( "a75_05.rom",   0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) )
   556: 
   557: 	ROM_REGION( 0x0600, REGION_PROMS, 0 )
   558: 	ROM_LOAD( "07.bpr",       0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) )	/* red component */
   559: 	ROM_LOAD( "08.bpr",       0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) )	/* green component */
   560: 	ROM_LOAD( "09.bpr",       0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) )	/* blue component */
   561: ROM_END
   562: 
   563: ROM_START( arkbl2 )
   564: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
   565: 	ROM_LOAD( "e1.6d",        0x0000, 0x8000, CRC(dd4f2b72) SHA1(399a8636030a702dafc1da926f115df6f045bef1) )
   566: 	ROM_LOAD( "e2.6f",        0x8000, 0x8000, CRC(bbc33ceb) SHA1(e9b6fef98d0d20e77c7a1c25eff8e9a8c668a258) )
   567: 
   568: 	ROM_REGION( 0x0800, REGION_CPU2, 0 )	/* 8k for the microcontroller */
   569: 	ROM_LOAD( "68705p3.6i",   0x0000, 0x0800, CRC(389a8cfb) SHA1(9530c051b61b5bdec7018c6fdc1ea91288a406bd) )
   570: 
   571: 	ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE )
   572: 	ROM_LOAD( "a75_03.rom",   0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) )
   573: 	ROM_LOAD( "a75_04.rom",   0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) )
   574: 	ROM_LOAD( "a75_05.rom",   0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) )
   575: 
   576: 	ROM_REGION( 0x0600, REGION_PROMS, 0 )
   577: 	ROM_LOAD( "07.bpr",       0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) )	/* red component */
   578: 	ROM_LOAD( "08.bpr",       0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) )	/* green component */
   579: 	ROM_LOAD( "09.bpr",       0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) )	/* blue component */
   580: ROM_END
   581: 
   582: ROM_START( arkbl3 )
   583: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
   584: 	ROM_LOAD( "arkanunk.1",   0x0000, 0x8000, CRC(b0f73900) SHA1(2c9a36cc1d2a3f33ec81d63c1c325554b818d2d3) )
   585: 	ROM_LOAD( "arkanunk.2",   0x8000, 0x8000, CRC(9827f297) SHA1(697874e73e045eb5a7bf333d7310934b239c0adf) )
   586: 
   587: 	ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE )
   588: 	ROM_LOAD( "a75_03.rom",   0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) )
   589: 	ROM_LOAD( "a75_04.rom",   0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) )
   590: 	ROM_LOAD( "a75_05.rom",   0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) )
   591: 
   592: 	ROM_REGION( 0x0600, REGION_PROMS, 0 )
   593: 	ROM_LOAD( "07.bpr",       0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) )	/* red component */
   594: 	ROM_LOAD( "08.bpr",       0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) )	/* green component */
   595: 	ROM_LOAD( "09.bpr",       0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) )	/* blue component */
   596: ROM_END
   597: 
   598: ROM_START( paddle2 )
   599: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
   600: 	ROM_LOAD( "paddle2.16",   0x0000, 0x8000, CRC(a286333c) SHA1(0b2c9cb0df236f327413d0c541453e1ba979ea38) )
   601: 	ROM_LOAD( "paddle2.17",   0x8000, 0x8000, CRC(04c2acb5) SHA1(7ce8ba31224f705b2b6ed0200404ef5f8f688001) )
   602: 
   603: 	ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE )
   604: 	ROM_LOAD( "a75_03.rom",   0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) )
   605: 	ROM_LOAD( "a75_04.rom",   0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) )
   606: 	ROM_LOAD( "a75_05.rom",   0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) )
   607: 
   608: 	ROM_REGION( 0x0600, REGION_PROMS, 0 )
   609: 	ROM_LOAD( "07.bpr",       0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) )	/* red component */
   610: 	ROM_LOAD( "08.bpr",       0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) )	/* green component */
   611: 	ROM_LOAD( "09.bpr",       0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) )	/* blue component */
   612: ROM_END
   613: 
   614: ROM_START( arkatayt )
   615: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
   616: 	ROM_LOAD( "arkanoid.1",   0x0000, 0x8000, CRC(6e0a2b6f) SHA1(5227d7a944cb1e815f60ec87a67f7462870ff9fe) )
   617: 	ROM_LOAD( "arkanoid.2",   0x8000, 0x8000, CRC(5a97dd56) SHA1(b71c7b5ced2b0eebbcc5996dd21a1bb1c2da4819) )
   618: 
   619: 	ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE )
   620: 	ROM_LOAD( "a75_03.rom",   0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) )
   621: 	ROM_LOAD( "a75_04.rom",   0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) )
   622: 	ROM_LOAD( "a75_05.rom",   0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) )
   623: 
   624: 	ROM_REGION( 0x0600, REGION_PROMS, 0 )
   625: 	ROM_LOAD( "07.bpr",       0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) )	/* red component */
   626: 	ROM_LOAD( "08.bpr",       0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) )	/* green component */
   627: 	ROM_LOAD( "09.bpr",       0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) )	/* blue component */
   628: ROM_END
   629: 
   630: ROM_START( arkblock )
   631: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
   632: 	ROM_LOAD( "block01.bin",  0x0000, 0x8000, CRC(5be667e1) SHA1(fbc5c97d836c404a2e6c007c3836e36b52ae75a1) )
   633: 	ROM_LOAD( "block02.bin",  0x8000, 0x8000, CRC(4f883ef1) SHA1(cb090a57fc75f17a3e2ba637f0e3ec93c1d02cea) )
   634: 
   635: 	ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE )
   636: 	ROM_LOAD( "a75_03.rom",   0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) )
   637: 	ROM_LOAD( "a75_04.rom",   0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) )
   638: 	ROM_LOAD( "a75_05.rom",   0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) )
   639: 
   640: 	ROM_REGION( 0x0600, REGION_PROMS, 0 )
   641: 	ROM_LOAD( "07.bpr",       0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) )	/* red component */
   642: 	ROM_LOAD( "08.bpr",       0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) )	/* green component */
   643: 	ROM_LOAD( "09.bpr",       0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) )	/* blue component */
   644: ROM_END
   645: 
   646: ROM_START( arkbloc2 )
   647: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
   648: 	ROM_LOAD( "ark-6.bin",    0x0000, 0x8000, CRC(0be015de) SHA1(f4209085b59d2c96a62ac9657c7bf097da55362b) )
   649: 	ROM_LOAD( "arkgc.2",      0x8000, 0x8000, CRC(9f0d4754) SHA1(731c9224616a338084edd6944c754d68eabba7f2) )
   650: 
   651: 	ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE )
   652: 	ROM_LOAD( "a75_03.rom",   0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) )
   653: 	ROM_LOAD( "a75_04.rom",   0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) )
   654: 	ROM_LOAD( "a75_05.rom",   0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) )
   655: 
   656: 	ROM_REGION( 0x0600, REGION_PROMS, 0 )
   657: 	ROM_LOAD( "07.bpr",       0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) )	/* red component */
   658: 	ROM_LOAD( "08.bpr",       0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) )	/* green component */
   659: 	ROM_LOAD( "09.bpr",       0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) )	/* blue component */
   660: ROM_END
   661: 
   662: ROM_START( arkangc )
   663: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
   664: 	ROM_LOAD( "arkgc.1",      0x0000, 0x8000, CRC(c54232e6) SHA1(beb759cee68009a06824b755d2aa26d7d436b5b0) )
   665: 	ROM_LOAD( "arkgc.2",      0x8000, 0x8000, CRC(9f0d4754) SHA1(731c9224616a338084edd6944c754d68eabba7f2) )
   666: 
   667: 	ROM_REGION( 0x18000, REGION_GFX1, ROMREGION_DISPOSE )
   668: 	ROM_LOAD( "a75_03.rom",   0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) )
   669: 	ROM_LOAD( "a75_04.rom",   0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) )
   670: 	ROM_LOAD( "a75_05.rom",   0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) )
   671: 
   672: 	ROM_REGION( 0x0600, REGION_PROMS, 0 )
   673: 	ROM_LOAD( "07.bpr",       0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) )	/* red component */
   674: 	ROM_LOAD( "08.bpr",       0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) )	/* green component */
   675: 	ROM_LOAD( "09.bpr",       0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) )	/* blue component */
   676: ROM_END
   677: 
   678: 
   679: 
   680: static DRIVER_INIT( paddle2 )
   681: {
   682: 	install_mem_read_handler (0, 0xf002, 0xf002, paddle2_prot_r);
   683: 	install_mem_write_handler(0, 0xd018, 0xd018, paddle2_prot_w);
   684: 	install_mem_read_handler (0, 0xd008, 0xd008, track_kludge_r );
   685: }
   686: 
   687: 
   688: GAME( 1986, arkanoid, 0,        arkanoid, arkanoid, 0,       ROT90, "Taito Corporation Japan", "Arkanoid (World)" )
   689: GAME( 1986, arknoidu, arkanoid, arkanoid, arkanoid, 0,       ROT90, "Taito America Corporation (Romstar license)", "Arkanoid (US)" )
   690: GAME( 1986, arknoiuo, arkanoid, arkanoid, arkanoid, 0,       ROT90, "Taito America Corporation (Romstar license)", "Arkanoid (US, older)" )
   691: GAME( 1986, arknoidj, arkanoid, arkanoid, arknoidj, 0,       ROT90, "Taito Corporation", "Arkanoid (Japan)" )
   692: GAMEX(1986, arkbl2,   arkanoid, arkanoid, arknoidj, 0,       ROT90, "bootleg", "Arkanoid (Japanese bootleg Set 2)", GAME_NOT_WORKING )
   693: GAMEX(1986, arkbl3,   arkanoid, bootleg,  arknoidj, paddle2, ROT90, "bootleg", "Arkanoid (Japanese bootleg Set 3)", GAME_NOT_WORKING )
   694: GAMEX(1988, paddle2,  arkanoid, bootleg,  arknoidj, paddle2, ROT90, "bootleg", "Paddle 2", GAME_UNEMULATED_PROTECTION )
   695: GAME( 1986, arkatayt, arkanoid, bootleg,  arkatayt, 0,       ROT90, "bootleg", "Arkanoid (Tayto bootleg, Japanese)" )
   696: GAMEX(1986, arkblock, arkanoid, bootleg,  arknoidj, 0,       ROT90, "bootleg", "Block (bootleg, Japanese)", GAME_NOT_WORKING )
   697: GAME( 1986, arkbloc2, arkanoid, bootleg,  arknoidj, 0,       ROT90, "bootleg", "Block (Game Corporation bootleg)" )
   698: GAME( 1986, arkangc,  arkanoid, bootleg,  arknoidj, 0,       ROT90, "bootleg", "Arkanoid (Game Corporation bootleg)" )
   699: GAME( 1987, arkatour, arkanoid, arkanoid, arkanoid, 0,       ROT90, "Taito America Corporation (Romstar license)", "Tournament Arkanoid (US)" )
   700: 




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