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 : Asteroids Deluxe : VM Driver Source

Source Listing


     1: /***************************************************************************
     2: 
     3: 	Atari Asteroids hardware
     4: 
     5: 	Games supported:
     6: 		* Asteroids
     7: 		* Asteroids Deluxe
     8: 		* Lunar Lander
     9: 
    10: 	Known bugs:
    11: 		* sound emu isn't perfect - sometimes explosions don't register in Asteroids
    12: 		* the low background thrust in Lunar Lander isn't emulated
    13: 		* the ERROR message in Asteroids Deluxe self test is related to a pokey problem
    14: 
    15: ****************************************************************************
    16: 
    17: 	Asteroids Memory Map (preliminary)
    18: 
    19: 	Asteroids settings:
    20: 
    21: 	0 = OFF  1 = ON  X = Don't Care  $ = Atari suggests
    22: 
    23: 
    24: 	8 SWITCH DIP
    25: 	87654321
    26: 	--------
    27: 	XXXXXX11   English
    28: 	XXXXXX10   German
    29: 	XXXXXX01   French
    30: 	XXXXXX00   Spanish
    31: 	XXXXX1XX   4-ship game
    32: 	XXXXX0XX   3-ship game
    33: 	11XXXXXX   Free Play
    34: 	10XXXXXX   1 Coin  for 2 Plays
    35: 	01XXXXXX   1 Coin  for 1 Play
    36: 	00XXXXXX   2 Coins for 1 Play
    37: 
    38: 	Asteroids Deluxe settings:
    39: 
    40: 	0 = OFF  1 = ON  X = Don't Care  $ = Atari suggests
    41: 
    42: 
    43: 	8 SWITCH DIP (R5)
    44: 	87654321
    45: 	--------
    46: 	XXXXXX11   English $
    47: 	XXXXXX10   German
    48: 	XXXXXX01   French
    49: 	XXXXXX00   Spanish
    50: 	XXXX11XX   2-4 ships
    51: 	XXXX10XX   3-5 ships $
    52: 	XXXX01XX   4-6 ships
    53: 	XXXX00XX   5-7 ships
    54: 	XXX1XXXX   1-play minimum $
    55: 	XXX0XXXX   2-play minimum
    56: 	XX1XXXXX   Easier gameplay for first 30000 points +
    57: 	XX0XXXXX   Hard gameplay throughout the game	  +
    58: 	11XXXXXX   Bonus ship every 10,000 points $ !
    59: 	10XXXXXX   Bonus ship every 12,000 points !
    60: 	01XXXXXX   Bonus ship every 15,000 points !
    61: 	00XXXXXX   No bonus ships (adds one ship at game start)
    62: 
    63: 	+ only with the newer romset
    64: 	! not "every", but "at", e.g. only once.
    65: 
    66: 	Thanks to Gregg Woodcock for the info.
    67: 
    68: 	8 SWITCH DIP (L8)
    69: 	87654321
    70: 	--------
    71: 	XXXXXX11   Free Play
    72: 	XXXXXX10   1 Coin = 2 Plays
    73: 	XXXXXX01   1 Coin = 1 Play
    74: 	XXXXXX00   2 Coins = 1 Play $
    75: 	XXXX11XX   Right coin mech * 1 $
    76: 	XXXX10XX   Right coin mech * 4
    77: 	XXXX01XX   Right coin mech * 5
    78: 	XXXX00XX   Right coin mech * 6
    79: 	XXX1XXXX   Center coin mech * 1 $
    80: 	XXX0XXXX   Center coin mech * 2
    81: 	111XXXXX   No bonus coins
    82: 	110XXXXX   For every 2 coins inserted, game logic adds 1 more coin
    83: 	101XXXXX   For every 4 coins inserted, game logic adds 1 more coin
    84: 	100XXXXX   For every 4 coins inserted, game logic adds 2 more coins $
    85: 	011XXXXX   For every 5 coins inserted, game logic adds 1 more coin
    86: 
    87: ****************************************************************************
    88: 
    89: 	Lunar Lander Memory Map (preliminary)
    90: 
    91: 	Lunar Lander settings:
    92: 
    93: 	0 = OFF  1 = ON  x = Don't Care  $ = Atari suggests
    94: 
    95: 
    96: 	8 SWITCH DIP (P8) with -01 ROMs on PCB
    97: 	87654321
    98: 	--------
    99: 	11xxxxxx   450 fuel units per coin
   100: 	10xxxxxx   600 fuel units per coin
   101: 	01xxxxxx   750 fuel units per coin	$
   102: 	00xxxxxx   900 fuel units per coin
   103: 	xxx0xxxx   Free play
   104: 	xxx1xxxx   Coined play as determined by toggles 7 & 8  $
   105: 	xxxx00xx   German instructions
   106: 	xxxx01xx   Spanish instructions
   107: 	xxxx10xx   French instructions
   108: 	xxxx11xx   English instructions  $
   109: 	xxxxxx11   Right coin == 1 credit/coin	$
   110: 	xxxxxx10   Right coin == 4 credit/coin
   111: 	xxxxxx01   Right coin == 5 credit/coin
   112: 	xxxxxx00   Right coin == 6 credit/coin
   113: 			   (Left coin always registers 1 credit/coin)
   114: 
   115: 
   116: 	8 SWITCH DIP (P8) with -02 ROMs on PCB
   117: 	87654321
   118: 	--------
   119: 	11x1xxxx   450 fuel units per coin
   120: 	10x1xxxx   600 fuel units per coin
   121: 	01x1xxxx   750 fuel units per coin	$
   122: 	00x1xxxx   900 fuel units per coin
   123: 	11x0xxxx   1100 fuel units per coin
   124: 	10x0xxxx   1300 fuel units per coin
   125: 	01x0xxxx   1550 fuel units per coin
   126: 	00x0xxxx   1800 fuel units per coin
   127: 	xx0xxxxx   Free play
   128: 	xx1xxxxx   Coined play as determined by toggles 5, 7, & 8  $
   129: 	xxxx00xx   German instructions
   130: 	xxxx01xx   Spanish instructions
   131: 	xxxx10xx   French instructions
   132: 	xxxx11xx   English instructions  $
   133: 	xxxxxx11   Right coin == 1 credit/coin	$
   134: 	xxxxxx10   Right coin == 4 credit/coin
   135: 	xxxxxx01   Right coin == 5 credit/coin
   136: 	xxxxxx00   Right coin == 6 credit/coin
   137: 			   (Left coin always registers 1 credit/coin)
   138: 
   139: ***************************************************************************/
   140: 
   141: #include "driver.h" 
   142: #include "vidhrdw/generic.h" 
   143: #include "vidhrdw/vector.h" 
   144: #include "vidhrdw/avgdvg.h" 
   145: #include "machine/atari_vg.h" 
   146: #include "asteroid.h" 
   147: 
   148: 
   149: 
   150: /*************************************
   151:  *
   152:  *	Coin counters
   153:  *
   154:  *************************************/
   155: 
   156: static WRITE_HANDLER( astdelux_coin_counter_w )
   157: {
   158: 	coin_counter_w(offset,data);
   159: }
   160: 
   161: 
   162: 
   163: /*************************************
   164:  *
   165:  *	Land Lander LEDs/lamps
   166:  *
   167:  *************************************/
   168: 
   169: static WRITE_HANDLER( llander_led_w )
   170: {
   171: 	static const char *lampname[] =
   172: 	{
   173: 		"lamp0", "lamp1", "lamp2", "lamp3", "lamp4"
   174: 	};
   175:     int i;
   176: 
   177:     for (i = 0; i < 5; i++)
   178: 		artwork_show(lampname[i], (data >> (4 - i)) & 1);
   179: }
   180: 
   181: 
   182: 
   183: 
   184: /*************************************
   185:  *
   186:  *	Lunar Lander mirrors page 0 & 1
   187:  *
   188:  *************************************/
   189: 
   190: static data8_t *llander_zeropage;
   191: 
   192: static READ_HANDLER( llander_zeropage_r )
   193: {
   194: 	return llander_zeropage[offset & 0xff];
   195: }
   196: 
   197: 
   198: static WRITE_HANDLER( llander_zeropage_w )
   199: {
   200: 	llander_zeropage[offset & 0xff] = data;
   201: }
   202: 
   203: 
   204: 
   205: /*************************************
   206:  *
   207:  *	Main CPU memory handlers
   208:  *
   209:  *************************************/
   210: 
   211: static MEMORY_READ_START( asteroid_readmem )
   212: 	{ 0x0000, 0x03ff, MRA_RAM },
   213: 	{ 0x2000, 0x2007, asteroid_IN0_r }, /* IN0 */
   214: 	{ 0x2400, 0x2407, asteroid_IN1_r }, /* IN1 */
   215: 	{ 0x2800, 0x2803, asteroid_DSW1_r }, /* DSW1 */
   216: 	{ 0x4000, 0x47ff, MRA_RAM },
   217: 	{ 0x5000, 0x57ff, MRA_ROM }, /* vector rom */
   218: 	{ 0x6800, 0x7fff, MRA_ROM },
   219: 	{ 0xf800, 0xffff, MRA_ROM }, /* for the reset / interrupt vectors */
   220: MEMORY_END
   221: 
   222: 
   223: static MEMORY_WRITE_START( asteroid_writemem )
   224: 	{ 0x0000, 0x03ff, MWA_RAM },
   225: 	{ 0x3000, 0x3000, avgdvg_go_w },
   226: 	{ 0x3200, 0x3200, asteroid_bank_switch_w },
   227: 	{ 0x3400, 0x3400, watchdog_reset_w },
   228: 	{ 0x3600, 0x3600, asteroid_explode_w },
   229: 	{ 0x3a00, 0x3a00, asteroid_thump_w },
   230: 	{ 0x3c00, 0x3c05, asteroid_sounds_w },
   231: 	{ 0x3e00, 0x3e00, asteroid_noise_reset_w },
   232: 	{ 0x4000, 0x47ff, MWA_RAM, &vectorram, &vectorram_size },
   233: 	{ 0x5000, 0x57ff, MWA_ROM }, /* vector rom */
   234: 	{ 0x6800, 0x7fff, MWA_ROM },
   235: MEMORY_END
   236: 
   237: 
   238: static MEMORY_READ_START( astdelux_readmem )
   239: 	{ 0x0000, 0x03ff, MRA_RAM },
   240: 	{ 0x2000, 0x2007, asteroid_IN0_r }, /* IN0 */
   241: 	{ 0x2400, 0x2407, asteroid_IN1_r }, /* IN1 */
   242: 	{ 0x2800, 0x2803, asteroid_DSW1_r }, /* DSW1 */
   243: 	{ 0x2c00, 0x2c0f, pokey1_r },
   244: 	{ 0x2c40, 0x2c7f, atari_vg_earom_r },
   245: 	{ 0x4000, 0x47ff, MRA_RAM },
   246: 	{ 0x4800, 0x57ff, MRA_ROM }, /* vector rom */
   247: 	{ 0x6000, 0x7fff, MRA_ROM },
   248: 	{ 0xf800, 0xffff, MRA_ROM }, /* for the reset / interrupt vectors */
   249: MEMORY_END
   250: 
   251: 
   252: static MEMORY_WRITE_START( astdelux_writemem )
   253: 	{ 0x0000, 0x03ff, MWA_RAM },
   254: 	{ 0x2c00, 0x2c0f, pokey1_w },
   255: 	{ 0x3000, 0x3000, avgdvg_go_w },
   256: 	{ 0x3200, 0x323f, atari_vg_earom_w },
   257: 	{ 0x3400, 0x3400, watchdog_reset_w },
   258: 	{ 0x3600, 0x3600, asteroid_explode_w },
   259: 	{ 0x3a00, 0x3a00, atari_vg_earom_ctrl_w },
   260: 	{ 0x3c00, 0x3c01, astdelux_led_w },
   261: 	{ 0x3c03, 0x3c03, astdelux_sounds_w },
   262: 	{ 0x3c04, 0x3c04, astdelux_bank_switch_w },
   263: 	{ 0x3c05, 0x3c07, astdelux_coin_counter_w },
   264: 	{ 0x3e00, 0x3e00, asteroid_noise_reset_w },
   265: 	{ 0x4000, 0x47ff, MWA_RAM, &vectorram, &vectorram_size },
   266: 	{ 0x4800, 0x57ff, MWA_ROM }, /* vector rom */
   267: 	{ 0x6000, 0x7fff, MWA_ROM },
   268: MEMORY_END
   269: 
   270: 
   271: static MEMORY_READ_START( llander_readmem )
   272: 	{ 0x0000, 0x01ff, llander_zeropage_r },
   273: 	{ 0x2000, 0x2000, llander_IN0_r }, /* IN0 */
   274: 	{ 0x2400, 0x2407, asteroid_IN1_r }, /* IN1 */
   275: 	{ 0x2800, 0x2803, asteroid_DSW1_r }, /* DSW1 */
   276: 	{ 0x2c00, 0x2c00, input_port_3_r }, /* IN3 */
   277: 	{ 0x4000, 0x47ff, MRA_RAM },
   278: 	{ 0x4800, 0x5fff, MRA_ROM }, /* vector rom */
   279: 	{ 0x6000, 0x7fff, MRA_ROM },
   280: 	{ 0xf800, 0xffff, MRA_ROM }, /* for the reset / interrupt vectors */
   281: MEMORY_END
   282: 
   283: 
   284: static MEMORY_WRITE_START( llander_writemem )
   285: 	{ 0x0000, 0x01ff, llander_zeropage_w, &llander_zeropage },
   286: 	{ 0x3000, 0x3000, avgdvg_go_w },
   287: 	{ 0x3200, 0x3200, llander_led_w },
   288: 	{ 0x3400, 0x3400, watchdog_reset_w },
   289: 	{ 0x3c00, 0x3c00, llander_sounds_w },
   290: 	{ 0x3e00, 0x3e00, llander_snd_reset_w },
   291: 	{ 0x4000, 0x47ff, MWA_RAM, &vectorram, &vectorram_size },
   292: 	{ 0x4800, 0x5fff, MWA_ROM }, /* vector rom */
   293: 	{ 0x6000, 0x7fff, MWA_ROM },
   294: MEMORY_END
   295: 
   296: 
   297: 
   298: /*************************************
   299:  *
   300:  *	Port definitions
   301:  *
   302:  *************************************/
   303: 
   304: INPUT_PORTS_START( asteroid )
   305: 	PORT_START /* IN0 */
   306: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   307: 	/* Bit 2 and 3 are handled in the machine dependent part. */
   308: 		/* Bit 2 is the 3 KHz source and Bit 3 the VG_HALT bit	  */
   309: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   310: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   311: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 )
   312: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
   313: 	PORT_BITX(0x20, IP_ACTIVE_HIGH, IPT_SERVICE, "Diagnostic Step", KEYCODE_F1, IP_JOY_NONE )
   314: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT )
   315: 	PORT_SERVICE( 0x80, IP_ACTIVE_HIGH )
   316: 
   317: 	PORT_START /* IN1 */
   318: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
   319: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
   320: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 )
   321: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 )
   322: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
   323: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 )
   324: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_2WAY )
   325: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_2WAY )
   326: 
   327: 	PORT_START /* DSW1 */
   328: 	PORT_DIPNAME( 0x03, 0x00, "Language" )
   329: 	PORT_DIPSETTING (	0x00, "English" )
   330: 	PORT_DIPSETTING (	0x01, "German" )
   331: 	PORT_DIPSETTING (	0x02, "French" )
   332: 	PORT_DIPSETTING (	0x03, "Spanish" )
   333: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) )
   334: 	PORT_DIPSETTING (	0x04, "3" )
   335: 	PORT_DIPSETTING (	0x00, "4" )
   336: 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
   337: 	PORT_DIPSETTING (	0x00, DEF_STR( Off ) )
   338: 	PORT_DIPSETTING (	0x08, DEF_STR( On ) )
   339: 	PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
   340: 	PORT_DIPSETTING (	0x00, DEF_STR( Off ) )
   341: 	PORT_DIPSETTING (	0x10, DEF_STR( On ) )
   342: 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
   343: 	PORT_DIPSETTING (	0x00, DEF_STR( Off ) )
   344: 	PORT_DIPSETTING (	0x20, DEF_STR( On ) )
   345: 	PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Coinage ) )
   346: 	PORT_DIPSETTING (	0xc0, DEF_STR( 2C_1C ) )
   347: 	PORT_DIPSETTING (	0x80, DEF_STR( 1C_1C ) )
   348: 	PORT_DIPSETTING (	0x40, DEF_STR( 1C_2C ) )
   349: 	PORT_DIPSETTING (	0x00, DEF_STR( Free_Play ) )
   350: INPUT_PORTS_END
   351: 
   352: 
   353: INPUT_PORTS_START( asteroib )
   354: 	PORT_START /* IN0 */
   355: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* resets */
   356: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )	/* resets */
   357: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT )
   358: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
   359: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
   360: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
   361: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
   362: 	/* Bit 7 is VG_HALT, handled in the machine dependant part */
   363: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   364: 
   365: 	PORT_START /* IN1 */
   366: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
   367: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 )
   368: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 )
   369: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
   370: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
   371: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 )
   372: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_2WAY )
   373: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_2WAY )
   374: 
   375: 	PORT_START /* DSW1 */
   376: 	PORT_DIPNAME( 0x03, 0x00, "Language" )
   377: 	PORT_DIPSETTING (	0x00, "English" )
   378: 	PORT_DIPSETTING (	0x01, "German" )
   379: 	PORT_DIPSETTING (	0x02, "French" )
   380: 	PORT_DIPSETTING (	0x03, "Spanish" )
   381: 	PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) )
   382: 	PORT_DIPSETTING (	0x04, "3" )
   383: 	PORT_DIPSETTING (	0x00, "4" )
   384: 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
   385: 	PORT_DIPSETTING (	0x00, DEF_STR( Off ) )
   386: 	PORT_DIPSETTING (	0x08, DEF_STR( On ) )
   387: 	PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
   388: 	PORT_DIPSETTING (	0x00, DEF_STR( Off ) )
   389: 	PORT_DIPSETTING (	0x10, DEF_STR( On ) )
   390: 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
   391: 	PORT_DIPSETTING (	0x00, DEF_STR( Off ) )
   392: 	PORT_DIPSETTING (	0x20, DEF_STR( On ) )
   393: 	PORT_DIPNAME( 0xc0, 0x80, DEF_STR( Coinage ) )
   394: 	PORT_DIPSETTING (	0xc0, DEF_STR( 2C_1C ) )
   395: 	PORT_DIPSETTING (	0x80, DEF_STR( 1C_1C ) )
   396: 	PORT_DIPSETTING (	0x40, DEF_STR( 1C_2C ) )
   397: 	PORT_DIPSETTING (	0x00, DEF_STR( Free_Play ) )
   398: 
   399: 	PORT_START /* hyperspace */
   400: 	PORT_BIT( 0x7f, IP_ACTIVE_LOW, IPT_UNUSED )
   401: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 )
   402: INPUT_PORTS_END
   403: 
   404: 
   405: INPUT_PORTS_START( astdelux )
   406: 	PORT_START /* IN0 */
   407: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   408: 	/* Bit 2 and 3 are handled in the machine dependent part. */
   409: 	/* Bit 2 is the 3 KHz source and Bit 3 the VG_HALT bit	  */
   410: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   411: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   412: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 )
   413: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
   414: 	PORT_BITX( 0x20, IP_ACTIVE_HIGH, IPT_SERVICE, "Diagnostic Step", KEYCODE_F1, IP_JOY_NONE )
   415: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT )
   416: 	PORT_SERVICE( 0x80, IP_ACTIVE_HIGH )
   417: 
   418: 	PORT_START /* IN1 */
   419: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
   420: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
   421: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 )
   422: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 )
   423: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
   424: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 )
   425: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_2WAY )
   426: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_2WAY )
   427: 
   428: 	PORT_START /* DSW 1 */
   429: 	PORT_DIPNAME( 0x03, 0x00, "Language" )
   430: 	PORT_DIPSETTING (	0x00, "English" )
   431: 	PORT_DIPSETTING (	0x01, "German" )
   432: 	PORT_DIPSETTING (	0x02, "French" )
   433: 	PORT_DIPSETTING (	0x03, "Spanish" )
   434: 	PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Lives ) )
   435: 	PORT_DIPSETTING (	0x00, "2-4" )
   436: 	PORT_DIPSETTING (	0x04, "3-5" )
   437: 	PORT_DIPSETTING (	0x08, "4-6" )
   438: 	PORT_DIPSETTING (	0x0c, "5-7" )
   439: 	PORT_DIPNAME( 0x10, 0x00, "Minimum plays" )
   440: 	PORT_DIPSETTING (	0x00, "1" )
   441: 	PORT_DIPSETTING (	0x10, "2" )
   442: 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Difficulty ) )
   443: 	PORT_DIPSETTING (	0x00, "Hard" )
   444: 	PORT_DIPSETTING (	0x20, "Easy" )
   445: 	PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Bonus_Life ) )
   446: 	PORT_DIPSETTING (	0x00, "10000" )
   447: 	PORT_DIPSETTING (	0x40, "12000" )
   448: 	PORT_DIPSETTING (	0x80, "15000" )
   449: 	PORT_DIPSETTING (	0xc0, "None" )
   450: 
   451: 	PORT_START /* DSW 2 */
   452: 	PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) )
   453: 	PORT_DIPSETTING (	0x00, DEF_STR( 2C_1C ) )
   454: 	PORT_DIPSETTING (	0x01, DEF_STR( 1C_1C ) )
   455: 	PORT_DIPSETTING (	0x02, DEF_STR( 1C_2C ) )
   456: 	PORT_DIPSETTING (	0x03, DEF_STR( Free_Play ) )
   457: 	PORT_DIPNAME( 0x0c, 0x0c, "Right Coin" )
   458: 	PORT_DIPSETTING (	0x00, "*6" )
   459: 	PORT_DIPSETTING (	0x04, "*5" )
   460: 	PORT_DIPSETTING (	0x08, "*4" )
   461: 	PORT_DIPSETTING (	0x0c, "*1" )
   462: 	PORT_DIPNAME( 0x10, 0x10, "Center Coin" )
   463: 	PORT_DIPSETTING (	0x00, "*2" )
   464: 	PORT_DIPSETTING (	0x10, "*1" )
   465: 	PORT_DIPNAME( 0xe0, 0x80, "Bonus Coins" )
   466: 	PORT_DIPSETTING (	0x60, "1 each 5" )
   467: 	PORT_DIPSETTING (	0x80, "2 each 4" )
   468: 	PORT_DIPSETTING (	0xa0, "1 each 4" )
   469: 	PORT_DIPSETTING (	0xc0, "1 each 2" )
   470: 	PORT_DIPSETTING (	0xe0, "None" )
   471: INPUT_PORTS_END
   472: 
   473: 
   474: INPUT_PORTS_START( llander )
   475: 	PORT_START /* IN0 */
   476: 	/* Bit 0 is VG_HALT, handled in the machine dependant part */
   477: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   478: 	PORT_SERVICE( 0x02, IP_ACTIVE_LOW )
   479: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT )
   480: 	/* Of the rest, Bit 6 is the 3KHz source. 3,4 and 5 are unknown */
   481: 	PORT_BIT( 0x78, IP_ACTIVE_LOW, IPT_UNKNOWN )
   482: 	PORT_BITX(0x80, IP_ACTIVE_LOW, IPT_SERVICE, "Diagnostic Step", KEYCODE_F1, IP_JOY_NONE )
   483: 
   484: 	PORT_START /* IN1 */
   485: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
   486: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 )
   487: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 )
   488: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 )
   489: 	PORT_BITX(0x10, IP_ACTIVE_HIGH, IPT_START2, "Select Game", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
   490: 	PORT_BITX(0x20, IP_ACTIVE_HIGH, IPT_BUTTON1, "Abort", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
   491: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_2WAY )
   492: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_2WAY )
   493: 
   494: 	PORT_START /* DSW1 */
   495: 	PORT_DIPNAME( 0x03, 0x01, "Right Coin" )
   496: 	PORT_DIPSETTING (	0x00, "*1" )
   497: 	PORT_DIPSETTING (	0x01, "*4" )
   498: 	PORT_DIPSETTING (	0x02, "*5" )
   499: 	PORT_DIPSETTING (	0x03, "*6" )
   500: 	PORT_DIPNAME( 0x0c, 0x00, "Language" )
   501: 	PORT_DIPSETTING (	0x00, "English" )
   502: 	PORT_DIPSETTING (	0x04, "French" )
   503: 	PORT_DIPSETTING (	0x08, "Spanish" )
   504: 	PORT_DIPSETTING (	0x0c, "German" )
   505: 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Coinage ) )
   506: 	PORT_DIPSETTING (	0x00, "Normal" )
   507: 	PORT_DIPSETTING (	0x20, DEF_STR( Free_Play ) )
   508: 	PORT_DIPNAME( 0xd0, 0x80, "Fuel units" )
   509: 	PORT_DIPSETTING (	0x00, "450" )
   510: 	PORT_DIPSETTING (	0x40, "600" )
   511: 	PORT_DIPSETTING (	0x80, "750" )
   512: 	PORT_DIPSETTING (	0xc0, "900" )
   513: 	PORT_DIPSETTING (	0x10, "1100" )
   514: 	PORT_DIPSETTING (	0x50, "1300" )
   515: 	PORT_DIPSETTING (	0x90, "1550" )
   516: 	PORT_DIPSETTING (	0xd0, "1800" )
   517: 
   518: 	/* The next one is a potentiometer */
   519: 	PORT_START /* IN3 */
   520: 	PORT_ANALOGX( 0xff, 0x00, IPT_PADDLE|IPF_REVERSE, 100, 10, 0, 255, KEYCODE_UP, KEYCODE_DOWN, JOYCODE_1_UP, JOYCODE_1_DOWN )
   521: INPUT_PORTS_END
   522: 
   523: 
   524: INPUT_PORTS_START( llander1 )
   525: 	PORT_START /* IN0 */
   526: 	/* Bit 0 is VG_HALT, handled in the machine dependant part */
   527: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   528: 	PORT_SERVICE( 0x02, IP_ACTIVE_LOW )
   529: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT )
   530: 	/* Of the rest, Bit 6 is the 3KHz source. 3,4 and 5 are unknown */
   531: 	PORT_BIT( 0x78, IP_ACTIVE_LOW, IPT_UNKNOWN )
   532: 	PORT_BITX(0x80, IP_ACTIVE_LOW, IPT_SERVICE, "Diagnostic Step", KEYCODE_F1, IP_JOY_NONE )
   533: 
   534: 	PORT_START /* IN1 */
   535: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
   536: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 )
   537: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 )
   538: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 )
   539: 	PORT_BITX(0x10, IP_ACTIVE_HIGH, IPT_START2, "Select Game", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
   540: 	PORT_BITX(0x20, IP_ACTIVE_HIGH, IPT_BUTTON1, "Abort", IP_KEY_DEFAULT, IP_JOY_DEFAULT )
   541: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_2WAY )
   542: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_2WAY )
   543: 
   544: 	PORT_START /* DSW1 */
   545: 	PORT_DIPNAME( 0x03, 0x01, "Right Coin" )
   546: 	PORT_DIPSETTING (	0x00, "*1" )
   547: 	PORT_DIPSETTING (	0x01, "*4" )
   548: 	PORT_DIPSETTING (	0x02, "*5" )
   549: 	PORT_DIPSETTING (	0x03, "*6" )
   550: 	PORT_DIPNAME( 0x0c, 0x00, "Language" )
   551: 	PORT_DIPSETTING (	0x00, "English" )
   552: 	PORT_DIPSETTING (	0x04, "French" )
   553: 	PORT_DIPSETTING (	0x08, "Spanish" )
   554: 	PORT_DIPSETTING (	0x0c, "German" )
   555: 	PORT_DIPNAME( 0x10, 0x00, DEF_STR( Coinage ) )
   556: 	PORT_DIPSETTING (	0x00, "Normal" )
   557: 	PORT_DIPSETTING (	0x10, DEF_STR( Free_Play ) )
   558: 	PORT_DIPNAME( 0xc0, 0x80, "Fuel units" )
   559: 	PORT_DIPSETTING (	0x00, "450" )
   560: 	PORT_DIPSETTING (	0x40, "600" )
   561: 	PORT_DIPSETTING (	0x80, "750" )
   562: 	PORT_DIPSETTING (	0xc0, "900" )
   563: 
   564: 	/* The next one is a potentiometer */
   565: 	PORT_START /* IN3 */
   566: 	PORT_ANALOGX( 0xff, 0x00, IPT_PADDLE|IPF_REVERSE, 100, 10, 0, 255, KEYCODE_UP, KEYCODE_DOWN, JOYCODE_1_UP, JOYCODE_1_DOWN )
   567: INPUT_PORTS_END
   568: 
   569: 
   570: 
   571: /*************************************
   572:  *
   573:  *	Sound interfaces
   574:  *
   575:  *************************************/
   576: 
   577: static struct POKEYinterface pokey_interface =
   578: {
   579: 	1,	/* 1 chip */
   580: 	1500000,	/* 1.5 MHz??? */
   581: 	{ 100 },
   582: 	/* The 8 pot handlers */
   583: 	{ 0 },
   584: 	{ 0 },
   585: 	{ 0 },
   586: 	{ 0 },
   587: 	{ 0 },
   588: 	{ 0 },
   589: 	{ 0 },
   590: 	{ 0 },
   591: 	/* The allpot handler */
   592: 	{ input_port_3_r }
   593: };
   594: 
   595: 
   596: 
   597: /*************************************
   598:  *
   599:  *	Machine drivers
   600:  *
   601:  *************************************/
   602: 
   603: static MACHINE_DRIVER_START( asteroid )
   604: 
   605: 	/* basic machine hardware */
   606: 	MDRV_CPU_ADD_TAG("main", M6502, 1500000)
   607: 	MDRV_CPU_MEMORY(asteroid_readmem,asteroid_writemem)
   608: 	MDRV_CPU_VBLANK_INT(asteroid_interrupt,4)	/* 250 Hz */
   609: 
   610: 	MDRV_FRAMES_PER_SECOND(60)
   611: 	MDRV_MACHINE_INIT(asteroid)
   612: 
   613: 	/* video hardware */
   614: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_VECTOR | VIDEO_RGB_DIRECT)
   615: 	MDRV_SCREEN_SIZE(400,300)
   616: 	MDRV_VISIBLE_AREA(0, 1040, 70, 950)
   617: 	MDRV_PALETTE_LENGTH(32768)
   618: 
   619: 	MDRV_PALETTE_INIT(avg_white)
   620: 	MDRV_VIDEO_START(dvg)
   621: 	MDRV_VIDEO_UPDATE(vector)
   622: 
   623: 	/* sound hardware */
   624: 	MDRV_SOUND_ADD_TAG("disc", DISCRETE, asteroid_sound_interface)
   625: MACHINE_DRIVER_END
   626: 
   627: 
   628: static MACHINE_DRIVER_START( astdelux )
   629: 
   630: 	/* basic machine hardware */
   631: 	MDRV_IMPORT_FROM(asteroid)
   632: 	MDRV_CPU_MODIFY("main")
   633: 	MDRV_CPU_MEMORY(astdelux_readmem,astdelux_writemem)
   634: 
   635: 	MDRV_NVRAM_HANDLER(atari_vg)
   636: 
   637: 	/* sound hardware */
   638: 	MDRV_SOUND_REPLACE("disc", DISCRETE, astdelux_sound_interface)
   639: 	MDRV_SOUND_ADD(POKEY, pokey_interface)
   640: MACHINE_DRIVER_END
   641: 
   642: 
   643: static MACHINE_DRIVER_START( llander )
   644: 
   645: 	/* basic machine hardware */
   646: 	MDRV_IMPORT_FROM(asteroid)
   647: 	MDRV_CPU_MODIFY("main")
   648: 	MDRV_CPU_MEMORY(llander_readmem,llander_writemem)
   649: 	MDRV_CPU_VBLANK_INT(llander_interrupt,6)	/* 250 Hz */
   650: 
   651: 	MDRV_FRAMES_PER_SECOND(40)
   652: 	MDRV_MACHINE_INIT(NULL)
   653: 
   654: 	/* video hardware */
   655: 	MDRV_VISIBLE_AREA(0, 1050, 0, 900)
   656: 
   657: 	MDRV_PALETTE_INIT(avg_white)
   658: 	MDRV_VIDEO_START(dvg)
   659: 	MDRV_VIDEO_UPDATE(vector)
   660: 
   661: 	/* sound hardware */
   662: 	MDRV_SOUND_REPLACE("disc", DISCRETE, llander_sound_interface)
   663: MACHINE_DRIVER_END
   664: 
   665: 
   666: 
   667: /*************************************
   668:  *
   669:  *	ROM definitions
   670:  *
   671:  *************************************/
   672: 
   673: ROM_START( asteroid )
   674: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
   675: 	ROM_LOAD( "035145.02",    0x6800, 0x0800, CRC(0cc75459) SHA1(2af85c9689b878155004da47fedbde5853a18723) )
   676: 	ROM_LOAD( "035144.02",    0x7000, 0x0800, CRC(096ed35c) SHA1(064d680ded7f30c543f93ae5ca85f90d550f73e5) )
   677: 	ROM_LOAD( "035143.02",    0x7800, 0x0800, CRC(312caa02) SHA1(1ce2eac1ab90b972e3f1fc3d250908f26328d6cb) )
   678: 	ROM_RELOAD( 		   0xf800, 0x0800 ) /* for reset/interrupt vectors */
   679: 	/* Vector ROM */
   680: 	ROM_LOAD( "035127.02",    0x5000, 0x0800, CRC(8b71fd9e) SHA1(8cd5005e531eafa361d6b7e9eed159d164776c70) )
   681: ROM_END
   682: 
   683: 
   684: ROM_START( asteroi1 )
   685: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
   686: 	ROM_LOAD( "035145.01",    0x6800, 0x0800, CRC(e9bfda64) SHA1(291dc567ebb31b35df83d9fb87f4080f251ff9c8) )
   687: 	ROM_LOAD( "035144.01",    0x7000, 0x0800, CRC(e53c28a9) SHA1(d9f081e73511ec43377f0c6457747f15a470d4dc) )
   688: 	ROM_LOAD( "035143.01",    0x7800, 0x0800, CRC(7d4e3d05) SHA1(d88000e904e158efde50e453e2889ecd2cb95f24) )
   689: 	ROM_RELOAD( 		   0xf800, 0x0800 ) /* for reset/interrupt vectors */
   690: 	/* Vector ROM */
   691: 	ROM_LOAD( "035127.01",    0x5000, 0x0800, CRC(99699366) SHA1(9b2828fc1cef7727f65fa65e1e11e309b7c98792) )
   692: ROM_END
   693: 
   694: 
   695: ROM_START( asteroib )
   696: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
   697: 	ROM_LOAD( "035145ll.bin", 0x6800, 0x0800, CRC(605fc0f2) SHA1(8d897a3b75bd1f2537470f0a34a97a8c0853ee08) )
   698: 	ROM_LOAD( "035144ll.bin", 0x7000, 0x0800, CRC(e106de77) SHA1(003e99d095bd4df6fae243ea1dd5b12f3eb974f1) )
   699: 	ROM_LOAD( "035143ll.bin", 0x7800, 0x0800, CRC(6b1d8594) SHA1(ff3cd93f1bc5734bface285e442125b395602d7d) )
   700: 	ROM_RELOAD( 		   0xf800, 0x0800 ) /* for reset/interrupt vectors */
   701: 	/* Vector ROM */
   702: 	ROM_LOAD( "035127.02",    0x5000, 0x0800, CRC(8b71fd9e) SHA1(8cd5005e531eafa361d6b7e9eed159d164776c70) )
   703: ROM_END
   704: 
   705: 
   706: ROM_START( astdelux )
   707: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
   708: 	ROM_LOAD( "036430.02",    0x6000, 0x0800, CRC(a4d7a525) SHA1(abe262193ec8e1981be36928e9a89a8ac95cd0ad) )
   709: 	ROM_LOAD( "036431.02",    0x6800, 0x0800, CRC(d4004aae) SHA1(aa2099b8fc62a79879efeea70ea1e9ed77e3e6f0) )
   710: 	ROM_LOAD( "036432.02",    0x7000, 0x0800, CRC(6d720c41) SHA1(198218cd2f43f8b83e4463b1f3a8aa49da5015e4) )
   711: 	ROM_LOAD( "036433.03",    0x7800, 0x0800, CRC(0dcc0be6) SHA1(bf10ffb0c4870e777d6b509cbede35db8bb6b0b8) )
   712: 	ROM_RELOAD( 			  0xf800, 0x0800 )	/* for reset/interrupt vectors */
   713: 	/* Vector ROM */
   714: 	ROM_LOAD( "036800.02",    0x4800, 0x0800, CRC(bb8cabe1) SHA1(cebaa1b91b96e8b80f2b2c17c6fd31fa9f156386) )
   715: 	ROM_LOAD( "036799.01",    0x5000, 0x0800, CRC(7d511572) SHA1(1956a12bccb5d3a84ce0c1cc10c6ad7f64e30b40) )
   716: ROM_END
   717: 
   718: 
   719: ROM_START( astdelu1 )
   720: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
   721: 	ROM_LOAD( "036430.01",    0x6000, 0x0800, CRC(8f5dabc6) SHA1(5d7543e19acab99ddb63c0ffd60f54d7a0f267f5) )
   722: 	ROM_LOAD( "036431.01",    0x6800, 0x0800, CRC(157a8516) SHA1(9041d8c2369d004f198681e02b59a923fa8f70c9) )
   723: 	ROM_LOAD( "036432.01",    0x7000, 0x0800, CRC(fdea913c) SHA1(ded0138a20d80317d67add5bb2a64e6274e0e409) )
   724: 	ROM_LOAD( "036433.02",    0x7800, 0x0800, CRC(d8db74e3) SHA1(52b64e867df98d14742eb1817b59931bb7f941d9) )
   725: 	ROM_RELOAD( 			  0xf800, 0x0800 )	/* for reset/interrupt vectors */
   726: 	/* Vector ROM */
   727: 	ROM_LOAD( "036800.01",    0x4800, 0x0800, CRC(3b597407) SHA1(344fea2e5d84acce365d76daed61e96b9b6b37cc) )
   728: 	ROM_LOAD( "036799.01",    0x5000, 0x0800, CRC(7d511572) SHA1(1956a12bccb5d3a84ce0c1cc10c6ad7f64e30b40) )
   729: ROM_END
   730: 
   731: 
   732: ROM_START( llander )
   733: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
   734: 	ROM_LOAD( "034572.02",    0x6000, 0x0800, CRC(b8763eea) SHA1(5a15eaeaf825ccdf9ce013a6789cf51da20f785c) )
   735: 	ROM_LOAD( "034571.02",    0x6800, 0x0800, CRC(77da4b2f) SHA1(4be6cef5af38734d580cbfb7e4070fe7981ddfd6) )
   736: 	ROM_LOAD( "034570.01",    0x7000, 0x0800, CRC(2724e591) SHA1(ecf4430a0040c227c896aa2cd81ee03960b4d641) )
   737: 	ROM_LOAD( "034569.02",    0x7800, 0x0800, CRC(72837a4e) SHA1(9b21ba5e1518079c326ca6e15b9993e6c4483caa) )
   738: 	ROM_RELOAD( 		   0xf800, 0x0800 ) /* for reset/interrupt vectors */
   739: 	/* Vector ROM */
   740: 	ROM_LOAD( "034599.01",    0x4800, 0x0800, CRC(355a9371) SHA1(6ecb40169b797d9eb623bcb17872f745b1bf20fa) )
   741: 	ROM_LOAD( "034598.01",    0x5000, 0x0800, CRC(9c4ffa68) SHA1(eb4ffc289d254f699f821df3146aa2c6cd78597f) )
   742: 	/* This _should_ be the rom for international versions. */
   743: 	/* Unfortunately, is it not currently available. */
   744: 	ROM_LOAD( "034597.01",    0x5800, 0x0800, NO_DUMP )
   745: ROM_END
   746: 
   747: 
   748: ROM_START( llander1 )
   749: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
   750: 	ROM_LOAD( "034572.01",    0x6000, 0x0800, CRC(2aff3140) SHA1(4fc8aae640ce655417c11d9a3121aae9a1238e7c) )
   751: 	ROM_LOAD( "034571.01",    0x6800, 0x0800, CRC(493e24b7) SHA1(125a2c335338ccabababef12fd7096ef4b605a31) )
   752: 	ROM_LOAD( "034570.01",    0x7000, 0x0800, CRC(2724e591) SHA1(ecf4430a0040c227c896aa2cd81ee03960b4d641) )
   753: 	ROM_LOAD( "034569.01",    0x7800, 0x0800, CRC(b11a7d01) SHA1(8f2935dbe04ee68815d69ea9e71853b5a145d7c3) )
   754: 	ROM_RELOAD( 		   0xf800, 0x0800 ) /* for reset/interrupt vectors */
   755: 	/* Vector ROM */
   756: 	ROM_LOAD( "034599.01",    0x4800, 0x0800, CRC(355a9371) SHA1(6ecb40169b797d9eb623bcb17872f745b1bf20fa) )
   757: 	ROM_LOAD( "034598.01",    0x5000, 0x0800, CRC(9c4ffa68) SHA1(eb4ffc289d254f699f821df3146aa2c6cd78597f) )
   758: 	/* This _should_ be the rom for international versions. */
   759: 	/* Unfortunately, is it not currently available. */
   760: 	ROM_LOAD( "034597.01",    0x5800, 0x0800, NO_DUMP )
   761: ROM_END
   762: 
   763: 
   764: 
   765: /*************************************
   766:  *
   767:  *	Driver initialization
   768:  *
   769:  *************************************/
   770: 
   771: static DRIVER_INIT( asteroib )
   772: {
   773: 	install_mem_read_handler(0, 0x2000, 0x2000, asteroib_IN0_r);
   774: 	install_mem_read_handler(0, 0x2003, 0x2003, input_port_3_r);
   775: }
   776: 
   777: 
   778: static DRIVER_INIT( astdelux )
   779: {
   780: 	OVERLAY_START( astdelux_overlay )
   781: 		OVERLAY_RECT( 0.0, 0.0, 1.0, 1.0, MAKE_ARGB(0x04,0x88,0xff,0xff) )
   782: 	OVERLAY_END
   783: 
   784: 	artwork_set_overlay(astdelux_overlay);
   785: }
   786: 
   787: 
   788: 
   789: /*************************************
   790:  *
   791:  *	Game drivers
   792:  *
   793:  *************************************/
   794: 
   795: GAME( 1979, asteroid, 0,        asteroid, asteroid, 0,        ROT0, "Atari", "Asteroids (rev 2)" )
   796: GAME( 1979, asteroi1, asteroid, asteroid, asteroid, 0,        ROT0, "Atari", "Asteroids (rev 1)" )
   797: GAME( 1979, asteroib, asteroid, asteroid, asteroib, asteroib, ROT0, "bootleg", "Asteroids (bootleg on Lunar Lander hardware)" )
   798: GAME( 1980, astdelux, 0,        astdelux, astdelux, astdelux, ROT0, "Atari", "Asteroids Deluxe (rev 2)" )
   799: GAME( 1980, astdelu1, astdelux, astdelux, astdelux, astdelux, ROT0, "Atari", "Asteroids Deluxe (rev 1)" )
   800: GAME( 1979, llander,  0,        llander,  llander,  0,        ROT0, "Atari", "Lunar Lander (rev 2)" )
   801: GAME( 1979, llander1, llander,  llander,  llander1, 0,        ROT0, "Atari", "Lunar Lander (rev 1)" )
   802: 
   803: 




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