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 : No Man's Land : VM Driver Source

Source Listing


     1: /***************************************************************************
     2: 
     3: Universal board numbers (found on the schematics)
     4: 
     5: Cosmic Guerilla - 7907A
     6: Cosmic Alien    - 7910
     7: Magical Spot	- 8013
     8: Magical Spot II - 8013
     9: Devil Zone      - 8022
    10: 
    11: ***************************************************************************/
    12: 
    13: 
    14: #include "driver.h" 
    15: #include "vidhrdw/generic.h" 
    16: #include "cpu/z80/z80.h" 
    17: 
    18: 
    19: PALETTE_INIT( panic );
    20: PALETTE_INIT( cosmica );
    21: PALETTE_INIT( cosmicg );
    22: PALETTE_INIT( magspot2 );
    23: PALETTE_INIT( nomnlnd );
    24: VIDEO_UPDATE( panic );
    25: VIDEO_UPDATE( magspot2 );
    26: VIDEO_UPDATE( devzone );
    27: VIDEO_UPDATE( cosmica );
    28: VIDEO_UPDATE( cosmicg );
    29: VIDEO_UPDATE( nomnlnd );
    30: WRITE_HANDLER( cosmic_color_register_w );
    31: WRITE_HANDLER( cosmic_background_enable_w );
    32: 
    33: 
    34: static unsigned int pixel_clock = 0;
    35: 
    36: 
    37: 
    38: /* Schematics show 12 triggers for discrete sound circuits */
    39: 
    40: static WRITE_HANDLER( panic_sound_output_w )
    41: {
    42:     static int sound_enabled=1;
    43: 
    44:     /* Sound Enable / Disable */
    45: 
    46:     if (offset == 11)
    47:     {
    48:     	int count;
    49:     	if (data == 0)
    50:         	for(count=0; count<9; count++) sample_stop(count);
    51: 
    52:     	sound_enabled = data;
    53:     }
    54: 
    55:     if (sound_enabled)
    56:     {
    57:         switch (offset)
    58:         {
    59: 		case 0:  if (data) sample_start(0, 0, 0); break;  	/* Walk */
    60:         case 1:  if (data) sample_start(0, 5, 0); break;  	/* Enemy Die 1 */
    61:         case 2:  if (data)								  	/* Drop 1 */
    62: 				 {
    63: 					 if (!sample_playing(1))
    64: 					 {
    65: 						 sample_stop(2);
    66: 						 sample_start(1, 3, 0);
    67: 					 }
    68: 				 }
    69: 				 else
    70: 				 	sample_stop(1);
    71: 				 	break;
    72: 
    73: 		case 3:	 if (data && !sample_playing(6))			/* Oxygen */
    74: 					sample_start(6, 9, 1);
    75:                  break;
    76: 
    77:         case 4:  break;										/* Drop 2 */
    78:         case 5:  if (data) sample_start(0, 5, 0); break;	/* Enemy Die 2 (use same sample as 1) */
    79:         case 6:  if (data && !sample_playing(1) && !sample_playing(3))   /* Hang */
    80:                  	sample_start(2, 2, 0);
    81:                     break;
    82: 
    83: 		case 7:  if (data) 									/* Escape */
    84: 				 {
    85: 					 sample_stop(2);
    86: 					 sample_start(3, 4, 0);
    87: 				 }
    88: 				 else
    89: 				 	 sample_stop(3);
    90:                      break;
    91: 
    92:     	case 8:  if (data) sample_start(0, 1, 0); break;	/* Stairs */
    93:     	case 9:  if (data)									/* Extend */
    94: 				 	sample_start(4, 8, 0);
    95: 				 else
    96: 					sample_stop(4);
    97: 	  			 break;
    98: 
    99:         case 10: DAC_data_w(0, data); break;				/* Bonus */
   100: 		case 15: if (data) sample_start(0, 6, 0); break;	/* Player Die */
   101: 		case 16: if (data) sample_start(5, 7, 0); break;	/* Enemy Laugh */
   102:         case 17: if (data) sample_start(0, 10, 0); break;	/* Coin - Not triggered by software */
   103:         }
   104:     }
   105: 
   106:     #ifdef MAME_DEBUG
   107:  	logerror("Sound output %x=%x\n",offset,data);
   108: 	#endif
   109: }
   110: 
   111: WRITE_HANDLER( panic_sound_output2_w )
   112: {
   113: 	panic_sound_output_w(offset+15, data);
   114: }
   115: 
   116: WRITE_HANDLER( cosmicg_output_w )
   117: {
   118: 	static int march_select;
   119:     static int gun_die_select;
   120:     static int sound_enabled;
   121: 
   122:     /* Sound Enable / Disable */
   123: 
   124:     if (offset == 12)
   125:     {
   126: 	    int count;
   127: 
   128:     	sound_enabled = data;
   129:     	if (data == 0)
   130:         	for(count=0;count<9;count++) sample_stop(count);
   131:     }
   132: 
   133:     if (sound_enabled)
   134:     {
   135:         switch (offset)
   136:         {
   137: 		/* The schematics show a direct link to the sound amp  */
   138: 		/* as other cosmic series games, but it never seems to */
   139: 		/* be used for anything. It is implemented for sake of */
   140: 		/* completness. Maybe it plays a tune if you win ?     */
   141: 		case 1:  DAC_data_w(0, -data); break;
   142: 		case 2:  if (data) sample_start (0, march_select, 0); break;	/* March Sound */
   143: 		case 3:  march_select = (march_select & 0xfe) | data; break;
   144:         case 4:  march_select = (march_select & 0xfd) | (data << 1); break;
   145:         case 5:  march_select = (march_select & 0xfb) | (data << 2); break;
   146: 
   147:         case 6:  if (data)  							/* Killer Attack (crawly thing at bottom of screen) */
   148: 					sample_start(1, 8, 1);
   149: 				 else
   150: 					sample_stop(1);
   151: 				 break;
   152: 
   153: 		case 7:  if (data)								/* Bonus Chance & Got Bonus */
   154: 				 {
   155: 					 sample_stop(4);
   156: 					 sample_start(4, 10, 0);
   157: 				 }
   158: 				 break;
   159: 
   160: 		case 8:  if (data)
   161: 				 {
   162: 					 if (!sample_playing(4)) sample_start(4, 9, 1);
   163: 				 }
   164: 				 else
   165: 				 	sample_stop(4);
   166: 				 break;
   167: 
   168: 		case 9:  if (data) sample_start(3, 11, 0); break;	/* Got Ship */
   169: //		case 11: watchdog_reset_w(0, 0); break;				/* Watchdog */
   170: 		case 13: if (data) sample_start(8, 13-gun_die_select, 0); break;  /* Got Monster / Gunshot */
   171: 		case 14: gun_die_select = data; break;
   172: 		case 15: if (data) sample_start(5, 14, 0); break;	/* Coin Extend (extra base) */
   173:         }
   174:     }
   175: 
   176: 	#ifdef MAME_DEBUG
   177:  	if (offset != 11) logerror("Output %x=%x\n",offset,data);
   178:     #endif
   179: }
   180: 
   181: static INTERRUPT_GEN( panic_interrupt )
   182: {
   183: 	if (cpu_getiloops() != 0)
   184: 	{
   185:     	/* Coin insert - Trigger Sample */
   186: 
   187:         /* mostly not noticed since sound is */
   188: 		/* only enabled if game in progress! */
   189: 
   190:     	if ((input_port_3_r(0) & 0xc0) != 0xc0)
   191:         	panic_sound_output_w(17,1);
   192: 
   193: 		cpu_set_irq_line_and_vector(0, 0, HOLD_LINE, 0xcf);	/* RST 08h */
   194:     }
   195:     else
   196:     {
   197:         cpu_set_irq_line_and_vector(0, 0, HOLD_LINE, 0xd7);	/* RST 10h */
   198:     }
   199: }
   200: 
   201: static INTERRUPT_GEN( cosmica_interrupt )
   202: {
   203:     pixel_clock = (pixel_clock + 2) & 0x3f;
   204: 
   205:     if (pixel_clock == 0)
   206:     {
   207: 		if (readinputport(3) & 1)	/* Left Coin */
   208: 			cpu_set_irq_line(0, IRQ_LINE_NMI, PULSE_LINE);
   209:     }
   210: }
   211: 
   212: static INTERRUPT_GEN( cosmicg_interrupt )
   213: {
   214:     /* Insert Coin */
   215: 
   216: 	/* R Nabet : fixed to make this piece of code sensible.
   217: 	I assumed that the interrupt request lasted for as long as the coin was "sensed".
   218: 	It makes sense and works fine, but I cannot be 100% sure this is correct,
   219: 	as I have no Cosmic Guerilla console :-) . */
   220: 
   221: 	if ((readinputport(2) & 1)) /* Coin */
   222: 	{
   223: 		/* on tms9980, a 6 on the interrupt bus means level 4 interrupt */
   224: 		cpu_set_irq_line_and_vector(0, 0, ASSERT_LINE, 6);
   225: 	}
   226: 	else
   227: 	{
   228: 		cpu_set_irq_line(0, 0, CLEAR_LINE);
   229: 	}
   230: }
   231: 
   232: static INTERRUPT_GEN( magspot2_interrupt )
   233: {
   234: 	/* Coin 1 causes an IRQ, Coin 2 an NMI */
   235: 	if (input_port_4_r(0) & 0x01)
   236: 	{
   237:   		cpu_set_irq_line(0, 0, HOLD_LINE);
   238: 	}
   239: 	else if (input_port_4_r(0) & 0x02)
   240: 	{
   241: 		cpu_set_irq_line(0, IRQ_LINE_NMI, PULSE_LINE);
   242: 	}
   243: }
   244: 
   245: static INTERRUPT_GEN( nomnlnd_interrupt )
   246: {
   247: 	/* Coin causes an NMI */
   248: 	if (input_port_4_r(0) & 0x01)
   249: 	{
   250: 		cpu_set_irq_line(0, IRQ_LINE_NMI, PULSE_LINE);
   251: 	}
   252: }
   253: 
   254: 
   255: 
   256: static READ_HANDLER( cosmica_pixel_clock_r )
   257: {
   258: 	return pixel_clock;
   259: }
   260: 
   261: static READ_HANDLER( cosmicg_port_0_r )
   262: {
   263: 	/* The top four address lines from the CRTC are bits 0-3 */
   264: 
   265: 	return (input_port_0_r(0) & 0xf0) | ((cpu_getscanline() & 0xf0) >> 4);
   266: }
   267: 
   268: static READ_HANDLER( magspot2_coinage_dip_r )
   269: {
   270: 	return (input_port_5_r(0) & (1 << (7 - offset))) ? 0 : 1;
   271: }
   272: 
   273: 
   274: /* Has 8 way joystick, remap combinations to missing directions */
   275: 
   276: static READ_HANDLER( nomnlnd_port_0_1_r )
   277: {
   278: 	int control;
   279:     int fire = input_port_3_r(0);
   280: 
   281: 	if (offset)
   282: 		control = input_port_1_r(0);
   283:     else
   284: 		control = input_port_0_r(0);
   285: 
   286:     /* If firing - stop tank */
   287: 
   288:     if ((fire & 0xc0) == 0) return 0xff;
   289: 
   290:     /* set bit according to 8 way direction */
   291: 
   292:     if ((control & 0x82) == 0 ) return 0xfe;    /* Up & Left */
   293:     if ((control & 0x0a) == 0 ) return 0xfb;    /* Down & Left */
   294:     if ((control & 0x28) == 0 ) return 0xef;    /* Down & Right */
   295:     if ((control & 0xa0) == 0 ) return 0xbf;    /* Up & Right */
   296: 
   297:     return control;
   298: }
   299: 
   300: 
   301: 
   302: static WRITE_HANDLER( flip_screen_w )
   303: {
   304: 	flip_screen_set(data&0x80);
   305: }
   306: 
   307: 
   308: static MEMORY_READ_START( panic_readmem )
   309: 	{ 0x0000, 0x3fff, MRA_ROM },
   310: 	{ 0x4000, 0x5fff, MRA_RAM },
   311: 	{ 0x6800, 0x6800, input_port_0_r }, /* IN1 */
   312: 	{ 0x6801, 0x6801, input_port_1_r }, /* IN2 */
   313: 	{ 0x6802, 0x6802, input_port_2_r }, /* DSW */
   314: 	{ 0x6803, 0x6803, input_port_3_r }, /* IN0 */
   315: MEMORY_END
   316: 
   317: static MEMORY_WRITE_START( panic_writemem )
   318: 	{ 0x0000, 0x3fff, MWA_ROM },
   319: 	{ 0x4000, 0x5fff, MWA_RAM, &videoram, &videoram_size },
   320: 	{ 0x6000, 0x601f, MWA_RAM, &spriteram, &spriteram_size },
   321: 	{ 0x7000, 0x700b, panic_sound_output_w },
   322: 	{ 0x700c, 0x700e, cosmic_color_register_w },
   323: 	{ 0x700f, 0x700f, flip_screen_w },
   324: 	{ 0x7800, 0x7801, panic_sound_output2_w },
   325: MEMORY_END
   326: 
   327: 
   328: static MEMORY_READ_START( cosmica_readmem )
   329: 	{ 0x0000, 0x3fff, MRA_ROM },
   330: 	{ 0x4000, 0x5fff, MRA_RAM },
   331: 	{ 0x6800, 0x6800, input_port_0_r }, /* IN1 */
   332: 	{ 0x6801, 0x6801, input_port_1_r }, /* IN2 */
   333: 	{ 0x6802, 0x6802, input_port_2_r }, /* DSW */
   334: 	{ 0x6803, 0x6803, cosmica_pixel_clock_r },
   335: MEMORY_END
   336: 
   337: static MEMORY_WRITE_START( cosmica_writemem )
   338: 	{ 0x0000, 0x3fff, MWA_ROM },
   339: 	{ 0x4000, 0x5fff, MWA_RAM, &videoram, &videoram_size },
   340: 	{ 0x6000, 0x601f, MWA_RAM ,&spriteram, &spriteram_size },
   341: 	{ 0x700c, 0x700d, cosmic_color_register_w },
   342: 	{ 0x700f, 0x700f, flip_screen_w },
   343: MEMORY_END
   344: 
   345: 
   346: static MEMORY_READ_START( cosmicg_readmem )
   347: 	{ 0x0000, 0x1fff, MRA_ROM },
   348: 	{ 0x2000, 0x3fff, MRA_RAM },
   349: MEMORY_END
   350: 
   351: static MEMORY_WRITE_START( cosmicg_writemem )
   352: 	{ 0x0000, 0x1fff, MWA_ROM },
   353: 	{ 0x2000, 0x3fff, MWA_RAM, &videoram, &videoram_size },
   354: MEMORY_END
   355: 
   356: static PORT_READ_START( cosmicg_readport )
   357: 	{ 0x00, 0x00, cosmicg_port_0_r },
   358: 	{ 0x01, 0x01, input_port_1_r },
   359: PORT_END
   360: 
   361: static PORT_WRITE_START( cosmicg_writeport )
   362: 	{ 0x00, 0x15, cosmicg_output_w },
   363: 	{ 0x16, 0x17, cosmic_color_register_w },
   364: PORT_END
   365: 
   366: 
   367: static MEMORY_READ_START( magspot2_readmem )
   368: 	{ 0x0000, 0x2fff, MRA_ROM },
   369: 	{ 0x3800, 0x3807, magspot2_coinage_dip_r },
   370: 	{ 0x5000, 0x5000, input_port_0_r },
   371: 	{ 0x5001, 0x5001, input_port_1_r },
   372: 	{ 0x5002, 0x5002, input_port_2_r },
   373: 	{ 0x5003, 0x5003, input_port_3_r },
   374: 	{ 0x6000, 0x7fff, MRA_RAM },
   375: MEMORY_END
   376: 
   377: static MEMORY_WRITE_START( magspot2_writemem )
   378: 	{ 0x0000, 0x2fff, MWA_ROM },
   379: 	{ 0x4000, 0x401f, MWA_RAM, &spriteram, &spriteram_size},
   380: 	{ 0x4800, 0x4800, DAC_0_data_w },
   381: 	{ 0x480c, 0x480d, cosmic_color_register_w },
   382: 	{ 0x480f, 0x480f, flip_screen_w },
   383: 	{ 0x6000, 0x7fff, MWA_RAM, &videoram, &videoram_size},
   384: MEMORY_END
   385: 
   386: 
   387: INPUT_PORTS_START( panic )
   388: 	PORT_START      /* IN1 */
   389: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
   390: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
   391: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
   392: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
   393: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
   394: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
   395: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
   396: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 )
   397: 
   398: 	PORT_START      /* IN2 */
   399: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
   400: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
   401: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
   402: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
   403: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
   404: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
   405: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
   406: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
   407: 
   408: 	PORT_START      /* DSW */
   409: 	PORT_DIPNAME( 0x07, 0x00, DEF_STR( Coin_A ) )
   410: 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
   411: 	PORT_DIPSETTING(    0x05, DEF_STR( 2C_3C ) )
   412: 	PORT_DIPSETTING(    0x01, DEF_STR( 1C_2C ) )
   413: 	PORT_DIPSETTING(    0x02, DEF_STR( 1C_3C ) )
   414: 	PORT_DIPSETTING(    0x03, DEF_STR( 1C_4C ) )
   415: 	PORT_DIPSETTING(    0x04, DEF_STR( 1C_5C ) )
   416: /* 0x06 and 0x07 disabled */
   417: 	PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
   418: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
   419: 	PORT_DIPSETTING(    0x08, DEF_STR( Cocktail ) )
   420: 	PORT_DIPNAME( 0x10, 0x00, DEF_STR( Bonus_Life ) )
   421: 	PORT_DIPSETTING(    0x00, "3000" )
   422: 	PORT_DIPSETTING(    0x10, "5000" )
   423: 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Lives ) )
   424: 	PORT_DIPSETTING(    0x00, "3" )
   425: 	PORT_DIPSETTING(    0x20, "4" )
   426: 	PORT_DIPNAME( 0xc0, 0x40, DEF_STR( Coin_B ) )
   427: 	PORT_DIPSETTING(    0x00, DEF_STR( 2C_1C ) )
   428: 	PORT_DIPSETTING(    0x40, DEF_STR( 1C_1C ) )
   429: 	PORT_DIPSETTING(    0x80, DEF_STR( 1C_2C ) )
   430: 	PORT_DIPSETTING(    0xc0, DEF_STR( 1C_3C ) )
   431: 
   432: 	PORT_START      /* IN0 */
   433: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
   434: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
   435: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
   436: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
   437: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
   438: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
   439: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
   440: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
   441: 
   442: INPUT_PORTS_END
   443: 
   444: INPUT_PORTS_START( cosmica )
   445: 	PORT_START      /* IN0 */
   446: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
   447: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY )
   448: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_2WAY )
   449: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
   450: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
   451: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
   452: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
   453: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
   454: 
   455: 	PORT_START      /* IN1 */
   456: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
   457: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_COCKTAIL )
   458: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_2WAY | IPF_COCKTAIL )
   459: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
   460: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
   461: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
   462: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
   463: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
   464: 
   465: 	PORT_START      /* IN2 */
   466: 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
   467: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
   468: 	PORT_DIPSETTING(    0x01, DEF_STR( Cocktail ) )
   469: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Lives ) )
   470: 	PORT_DIPSETTING(    0x02, "3" )
   471: 	PORT_DIPSETTING(    0x00, "5" )
   472: 	PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coinage ) )
   473: 	PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
   474: 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
   475: 	PORT_DIPSETTING(    0x04, DEF_STR( 1C_2C ) )
   476:   //PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
   477: 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
   478: 	PORT_DIPSETTING(    0x30, "5000" )
   479: 	PORT_DIPSETTING(    0x20, "10000" )
   480: 	PORT_DIPSETTING(    0x10, "15000" )
   481: 	PORT_DIPSETTING(    0x00, "None" )
   482: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
   483: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
   484: 
   485: 	/* The coin slots are not memory mapped.  Coin causes a NMI, */
   486: 	/* This fake input port is used by the interrupt */
   487: 	/* handler to be notified of coin insertions. We use IMPULSE to */
   488: 	/* trigger exactly one interrupt, without having to check when the */
   489: 	/* user releases the key. */
   490: 
   491: 	PORT_START	/* FAKE */
   492: 	PORT_BIT_IMPULSE( 0x01, IP_ACTIVE_HIGH, IPT_COIN1, 1 )
   493: 
   494: INPUT_PORTS_END
   495: 
   496: /* These are used for the CR handling - This can be used to */
   497: /* from 1 to 16 bits from any bit offset between 0 and 4096 */
   498: 
   499: /* Offsets are in BYTES, so bits 0-7 are at offset 0 etc.   */
   500: 
   501: INPUT_PORTS_START( cosmicg )
   502: 	PORT_START /* 4-7 */
   503: 	PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_SPECIAL )	/* pixel clock */
   504: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
   505: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
   506: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 )
   507: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY )
   508: 
   509: 	PORT_START /* 8-15 */
   510: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_2WAY )
   511: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
   512: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_COCKTAIL)
   513: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_2WAY | IPF_COCKTAIL)
   514: 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
   515: 	PORT_DIPSETTING(    0x10, "1000" )
   516: 	PORT_DIPSETTING(    0x20, "1500" )
   517: 	PORT_DIPSETTING(    0x30, "2000" )
   518: 	PORT_DIPSETTING(    0x00, "None" )
   519: 	PORT_DIPNAME( 0x40, 0x00, DEF_STR( Coinage ) )
   520: 	PORT_DIPSETTING(    0x40, DEF_STR( 2C_1C ) )
   521: 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
   522: 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Lives ) )
   523: 	PORT_DIPSETTING(    0x00, "3" )
   524: 	PORT_DIPSETTING(    0x80, "5" )
   525: 
   526: 	PORT_START      /* Hard wired settings */
   527: 
   528: 	/* The coin slots are not memory mapped. Coin causes INT 4  */
   529: 	/* This fake input port is used by the interrupt handler 	*/
   530: 	/* to be notified of coin insertions. */
   531: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
   532: 
   533: 	/* This dip switch is not read by the program at any time   */
   534: 	/* but is wired to enable or disable the flip screen output */
   535: 
   536: 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
   537: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
   538: 	PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
   539: 
   540: 	/* This odd setting is marked as shown on the schematic,    */
   541: 	/* and again, is not read by the program, but wired into    */
   542: 	/* the watchdog circuit. The book says to leave it off      */
   543: 
   544: 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) )
   545: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
   546: 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
   547: 
   548: INPUT_PORTS_END
   549: 
   550: 
   551: INPUT_PORTS_START( magspot2 )
   552: 	PORT_START	/* IN0 */
   553: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
   554: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_2WAY )
   555: 	PORT_BIT( 0x1c, IP_ACTIVE_LOW, IPT_UNUSED )
   556: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY )
   557: 	PORT_DIPNAME( 0xc0, 0x40, "Bonus Game" )
   558: 	PORT_DIPSETTING(    0x40, "5000" )
   559: 	PORT_DIPSETTING(    0x80, "10000" )
   560: 	PORT_DIPSETTING(    0xc0, "15000" )
   561: 	PORT_DIPSETTING(    0x00, "None" )
   562: 
   563: 	PORT_START	/* IN1 */
   564: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
   565: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_2WAY | IPF_COCKTAIL )
   566: 	PORT_BIT( 0x1c, IP_ACTIVE_LOW, IPT_UNUSED )
   567: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_COCKTAIL )
   568: 	PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
   569: 
   570: 	PORT_START	/* IN2 */
   571: 	PORT_DIPNAME( 0x03, 0x01, DEF_STR( Bonus_Life ) )
   572: 	PORT_DIPSETTING(    0x01, "2000" )
   573: 	PORT_DIPSETTING(    0x02, "3000" )
   574: 	PORT_DIPSETTING(    0x03, "5000" )
   575: 	PORT_DIPSETTING(    0x00, "None" )
   576: 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
   577: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
   578: 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
   579: 	PORT_DIPNAME( 0x18, 0x08, DEF_STR( Lives ) )
   580: 	PORT_DIPSETTING(    0x00, "2" )
   581: 	PORT_DIPSETTING(    0x08, "3" )
   582: 	PORT_DIPSETTING(    0x10, "4" )
   583: 	PORT_DIPSETTING(    0x18, "5" )
   584: 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Cabinet ) )
   585: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
   586: 	PORT_DIPSETTING(    0x20, DEF_STR( Cocktail ) )
   587: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
   588: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
   589: 
   590: 	PORT_START	/* IN3 */
   591: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_VBLANK )
   592: 	PORT_BIT( 0x1e, IP_ACTIVE_LOW, IPT_UNUSED )		/* always HI */
   593: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SPECIAL )	/* reads what was written to 4808.  Probably not used?? */
   594: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
   595: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
   596: 
   597: 	/* Fake port to handle coins */
   598: 	PORT_START	/* IN4 */
   599: 	PORT_BIT_IMPULSE( 0x01, IP_ACTIVE_HIGH, IPT_COIN1, 1 )
   600: 	PORT_BIT_IMPULSE( 0x02, IP_ACTIVE_HIGH, IPT_COIN2, 1 )
   601: 
   602: 	/* Fake port to handle coinage dip switches. Each bit goes to 3800-3807 */
   603: 	PORT_START	/* IN5 */
   604: 	PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coin_A ) )
   605: 	PORT_DIPSETTING(    0x0c, DEF_STR( 4C_1C ) )
   606: 	PORT_DIPSETTING(    0x08, DEF_STR( 3C_1C ) )
   607: 	PORT_DIPSETTING(    0x0d, DEF_STR( 4C_2C ) )
   608: 	PORT_DIPSETTING(    0x05, DEF_STR( 2C_1C ) )
   609: 	PORT_DIPSETTING(    0x09, DEF_STR( 3C_2C ) )
   610: 	PORT_DIPSETTING(    0x0e, DEF_STR( 4C_3C ) )
   611: 	PORT_DIPSETTING(    0x0f, DEF_STR( 4C_4C ) )
   612: 	PORT_DIPSETTING(    0x0a, DEF_STR( 3C_3C ) )
   613: 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_2C ) )
   614: 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
   615: 	PORT_DIPSETTING(    0x0b, DEF_STR( 3C_4C ) )
   616: 	PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
   617: 	PORT_DIPSETTING(    0x01, DEF_STR( 1C_2C ) )
   618: 	PORT_DIPSETTING(    0x02, DEF_STR( 1C_3C ) )
   619: 	PORT_DIPSETTING(    0x03, DEF_STR( 1C_4C ) )
   620: 	PORT_DIPSETTING(    0x04, DEF_STR( 1C_5C ) )
   621: 	PORT_DIPNAME( 0xf0, 0x00, DEF_STR( Coin_B ) )
   622: 	PORT_DIPSETTING(    0xc0, DEF_STR( 4C_1C ) )
   623: 	PORT_DIPSETTING(    0x80, DEF_STR( 3C_1C ) )
   624: 	PORT_DIPSETTING(    0xd0, DEF_STR( 4C_2C ) )
   625: 	PORT_DIPSETTING(    0x50, DEF_STR( 2C_1C ) )
   626: 	PORT_DIPSETTING(    0x90, DEF_STR( 3C_2C ) )
   627: 	PORT_DIPSETTING(    0xe0, DEF_STR( 4C_3C ) )
   628: 	PORT_DIPSETTING(    0xf0, DEF_STR( 4C_4C ) )
   629: 	PORT_DIPSETTING(    0xa0, DEF_STR( 3C_3C ) )
   630: 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_2C ) )
   631: 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
   632: 	PORT_DIPSETTING(    0xb0, DEF_STR( 3C_4C ) )
   633: 	PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
   634: 	PORT_DIPSETTING(    0x10, DEF_STR( 1C_2C ) )
   635: 	PORT_DIPSETTING(    0x20, DEF_STR( 1C_3C ) )
   636: 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_4C ) )
   637: 	PORT_DIPSETTING(    0x40, DEF_STR( 1C_5C ) )
   638: INPUT_PORTS_END
   639: 
   640: INPUT_PORTS_START( devzone )
   641: 	PORT_START	/* IN0 */
   642: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
   643: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_2WAY )
   644: 	PORT_BIT( 0x1c, IP_ACTIVE_LOW, IPT_UNUSED )
   645: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY )
   646: 	PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
   647: 
   648: 	PORT_START	/* IN1 */
   649: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
   650: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_2WAY | IPF_COCKTAIL )
   651: 	PORT_BIT( 0x1c, IP_ACTIVE_LOW, IPT_UNUSED )
   652: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_COCKTAIL )
   653: 	PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
   654: 
   655: 	PORT_START	/* IN2 */
   656: 	PORT_DIPNAME( 0x03, 0x01, DEF_STR( Bonus_Life ) )
   657: 	PORT_DIPSETTING(    0x01, "4000" )
   658: 	PORT_DIPSETTING(    0x02, "6000" )
   659: 	PORT_DIPSETTING(    0x03, "8000" )
   660: 	PORT_DIPSETTING(    0x00, "None" )
   661: 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coinage ) )
   662: 	PORT_DIPSETTING(    0x0c, "Use Coin A & B" )
   663: 	PORT_DIPSETTING(    0x04, DEF_STR( 2C_1C ) )
   664: 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
   665: 	PORT_DIPSETTING(    0x08, DEF_STR( 1C_2C ) )
   666: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Lives ) )
   667: 	PORT_DIPSETTING(    0x00, "2" )
   668: 	PORT_DIPSETTING(    0x10, "3" )
   669: 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Cabinet ) )
   670: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
   671: 	PORT_DIPSETTING(    0x20, DEF_STR( Cocktail ) )
   672: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
   673: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
   674: 
   675: 	PORT_START	/* IN3 */
   676: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VBLANK )
   677: 	PORT_BIT( 0x3e, IP_ACTIVE_LOW, IPT_UNUSED )
   678: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
   679: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
   680: 
   681: 	/* Fake port to handle coins */
   682: 	PORT_START	/* IN4 */
   683: 	PORT_BIT_IMPULSE( 0x01, IP_ACTIVE_HIGH, IPT_COIN1, 1 )
   684: 	PORT_BIT_IMPULSE( 0x02, IP_ACTIVE_HIGH, IPT_COIN2, 1 )
   685: 
   686: 	PORT_START	/* IN5 */
   687: 	PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coin_A ) )
   688: 	PORT_DIPSETTING(    0x0c, DEF_STR( 4C_1C ) )
   689: 	PORT_DIPSETTING(    0x08, DEF_STR( 3C_1C ) )
   690: 	PORT_DIPSETTING(    0x0d, DEF_STR( 4C_2C ) )
   691: 	PORT_DIPSETTING(    0x05, DEF_STR( 2C_1C ) )
   692: 	PORT_DIPSETTING(    0x09, DEF_STR( 3C_2C ) )
   693: 	PORT_DIPSETTING(    0x0e, DEF_STR( 4C_3C ) )
   694: 	PORT_DIPSETTING(    0x0f, DEF_STR( 4C_4C ) )
   695: 	PORT_DIPSETTING(    0x0a, DEF_STR( 3C_3C ) )
   696: 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_2C ) )
   697: 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
   698: 	PORT_DIPSETTING(    0x0b, DEF_STR( 3C_4C ) )
   699: 	PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
   700: 	PORT_DIPSETTING(    0x01, DEF_STR( 1C_2C ) )
   701: 	PORT_DIPSETTING(    0x02, DEF_STR( 1C_3C ) )
   702: 	PORT_DIPSETTING(    0x03, DEF_STR( 1C_4C ) )
   703: 	PORT_DIPSETTING(    0x04, DEF_STR( 1C_5C ) )
   704: 	PORT_DIPNAME( 0xf0, 0x00, DEF_STR( Coin_B ) )
   705: 	PORT_DIPSETTING(    0xc0, DEF_STR( 4C_1C ) )
   706: 	PORT_DIPSETTING(    0x80, DEF_STR( 3C_1C ) )
   707: 	PORT_DIPSETTING(    0xd0, DEF_STR( 4C_2C ) )
   708: 	PORT_DIPSETTING(    0x50, DEF_STR( 2C_1C ) )
   709: 	PORT_DIPSETTING(    0x90, DEF_STR( 3C_2C ) )
   710: 	PORT_DIPSETTING(    0xe0, DEF_STR( 4C_3C ) )
   711: 	PORT_DIPSETTING(    0xf0, DEF_STR( 4C_4C ) )
   712: 	PORT_DIPSETTING(    0xa0, DEF_STR( 3C_3C ) )
   713: 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_2C ) )
   714: 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
   715: 	PORT_DIPSETTING(    0xb0, DEF_STR( 3C_4C ) )
   716: 	PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
   717: 	PORT_DIPSETTING(    0x10, DEF_STR( 1C_2C ) )
   718: 	PORT_DIPSETTING(    0x20, DEF_STR( 1C_3C ) )
   719: 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_4C ) )
   720: 	PORT_DIPSETTING(    0x40, DEF_STR( 1C_5C ) )
   721: INPUT_PORTS_END
   722: 
   723: 
   724: INPUT_PORTS_START( devzone2 )
   725: 	PORT_START	/* IN0 */
   726: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
   727: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_2WAY )
   728: 	PORT_BIT( 0x1c, IP_ACTIVE_LOW, IPT_UNUSED )
   729: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY )
   730: 	PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
   731: 
   732: 	PORT_START	/* IN1 */
   733: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
   734: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_2WAY | IPF_COCKTAIL )
   735: 	PORT_BIT( 0x1c, IP_ACTIVE_LOW, IPT_UNUSED )
   736: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_COCKTAIL )
   737: 	PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
   738: 
   739: 	PORT_START	/* IN2 */
   740: 	PORT_DIPNAME( 0x03, 0x01, DEF_STR( Bonus_Life ) )
   741: 	PORT_DIPSETTING(    0x01, "2000" )
   742: 	PORT_DIPSETTING(    0x02, "3000" )
   743: 	PORT_DIPSETTING(    0x03, "5000" )
   744: 	PORT_DIPSETTING(    0x00, "None" )
   745: 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coinage ) )
   746: 	PORT_DIPSETTING(    0x0c, "Use Coin A & B" )
   747: 	PORT_DIPSETTING(    0x04, DEF_STR( 2C_1C ) )
   748: 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
   749: 	PORT_DIPSETTING(    0x08, DEF_STR( 1C_2C ) )
   750: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Lives ) )
   751: 	PORT_DIPSETTING(    0x00, "2" )
   752: 	PORT_DIPSETTING(    0x10, "3" )
   753: 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Cabinet ) )
   754: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
   755: 	PORT_DIPSETTING(    0x20, DEF_STR( Cocktail ) )
   756: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
   757: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
   758: 
   759: 	PORT_START	/* IN3 */
   760: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VBLANK )
   761: 	PORT_BIT( 0x3e, IP_ACTIVE_LOW, IPT_UNUSED )
   762: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
   763: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
   764: 
   765: 	/* Fake port to handle coins */
   766: 	PORT_START	/* IN4 */
   767: 	PORT_BIT_IMPULSE( 0x01, IP_ACTIVE_HIGH, IPT_COIN1, 1 )
   768: 	PORT_BIT_IMPULSE( 0x02, IP_ACTIVE_HIGH, IPT_COIN2, 1 )
   769: 
   770: 	PORT_START	/* IN5 */
   771: 	PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coin_A ) )
   772: 	PORT_DIPSETTING(    0x0c, DEF_STR( 4C_1C ) )
   773: 	PORT_DIPSETTING(    0x08, DEF_STR( 3C_1C ) )
   774: 	PORT_DIPSETTING(    0x0d, DEF_STR( 4C_2C ) )
   775: 	PORT_DIPSETTING(    0x05, DEF_STR( 2C_1C ) )
   776: 	PORT_DIPSETTING(    0x09, DEF_STR( 3C_2C ) )
   777: 	PORT_DIPSETTING(    0x0e, DEF_STR( 4C_3C ) )
   778: 	PORT_DIPSETTING(    0x0f, DEF_STR( 4C_4C ) )
   779: 	PORT_DIPSETTING(    0x0a, DEF_STR( 3C_3C ) )
   780: 	PORT_DIPSETTING(    0x06, DEF_STR( 2C_2C ) )
   781: 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
   782: 	PORT_DIPSETTING(    0x0b, DEF_STR( 3C_4C ) )
   783: 	PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
   784: 	PORT_DIPSETTING(    0x01, DEF_STR( 1C_2C ) )
   785: 	PORT_DIPSETTING(    0x02, DEF_STR( 1C_3C ) )
   786: 	PORT_DIPSETTING(    0x03, DEF_STR( 1C_4C ) )
   787: 	PORT_DIPSETTING(    0x04, DEF_STR( 1C_5C ) )
   788: 	PORT_DIPNAME( 0xf0, 0x00, DEF_STR( Coin_B ) )
   789: 	PORT_DIPSETTING(    0xc0, DEF_STR( 4C_1C ) )
   790: 	PORT_DIPSETTING(    0x80, DEF_STR( 3C_1C ) )
   791: 	PORT_DIPSETTING(    0xd0, DEF_STR( 4C_2C ) )
   792: 	PORT_DIPSETTING(    0x50, DEF_STR( 2C_1C ) )
   793: 	PORT_DIPSETTING(    0x90, DEF_STR( 3C_2C ) )
   794: 	PORT_DIPSETTING(    0xe0, DEF_STR( 4C_3C ) )
   795: 	PORT_DIPSETTING(    0xf0, DEF_STR( 4C_4C ) )
   796: 	PORT_DIPSETTING(    0xa0, DEF_STR( 3C_3C ) )
   797: 	PORT_DIPSETTING(    0x60, DEF_STR( 2C_2C ) )
   798: 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
   799: 	PORT_DIPSETTING(    0xb0, DEF_STR( 3C_4C ) )
   800: 	PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
   801: 	PORT_DIPSETTING(    0x10, DEF_STR( 1C_2C ) )
   802: 	PORT_DIPSETTING(    0x20, DEF_STR( 1C_3C ) )
   803: 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_4C ) )
   804: 	PORT_DIPSETTING(    0x40, DEF_STR( 1C_5C ) )
   805: INPUT_PORTS_END
   806: 
   807: 
   808: INPUT_PORTS_START( nomnlnd )
   809: 	PORT_START	/* Controls - Remapped for game */
   810: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
   811: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
   812: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
   813: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
   814: 	PORT_BIT( 0x55, IP_ACTIVE_LOW, IPT_SPECIAL )	/* diagonals */
   815: 
   816: 	PORT_START	/* IN1 */
   817: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_COCKTAIL )
   818: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_COCKTAIL )
   819: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
   820: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_COCKTAIL )
   821: 	PORT_BIT( 0x55, IP_ACTIVE_LOW, IPT_SPECIAL )	/* diagonals */
   822: 
   823: 	PORT_START	/* IN2 */
   824: 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Bonus_Life ) )
   825: 	PORT_DIPSETTING(    0x01, "2000" )
   826: 	PORT_DIPSETTING(    0x02, "3000" )
   827: 	PORT_DIPSETTING(    0x03, "5000" )
   828: 	PORT_DIPSETTING(    0x00, "None" )
   829: 	PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coinage ) )
   830: 	PORT_DIPSETTING(    0x04, DEF_STR( 2C_1C ) )
   831: //	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_1C ) )
   832: 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
   833: 	PORT_DIPSETTING(    0x08, DEF_STR( 1C_2C ) )
   834: 	PORT_DIPNAME( 0x10, 0x00, DEF_STR( Lives ) )
   835: 	PORT_DIPSETTING(    0x00, "3" )
   836: 	PORT_DIPSETTING(    0x10, "5" )
   837: 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Cabinet ) )
   838: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
   839: 	PORT_DIPSETTING(    0x20, DEF_STR( Cocktail ) )
   840: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
   841: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
   842: 
   843: 	PORT_START	/* IN3 */
   844: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_VBLANK )
   845: 	PORT_BIT( 0x1e, IP_ACTIVE_LOW, IPT_UNUSED )		/* always HI */
   846: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SPECIAL )	/* reads what was written to 4808.  Probably not used?? */
   847: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
   848: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
   849: 
   850: 	/* Fake port to handle coin */
   851: 	PORT_START	/* IN4 */
   852: 	PORT_BIT_IMPULSE( 0x01, IP_ACTIVE_HIGH, IPT_COIN1, 1 )
   853: INPUT_PORTS_END
   854: 
   855: 
   856: INPUT_PORTS_START( nomnlndg )
   857: 	PORT_START	/* Controls - Remapped for game */
   858: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
   859: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
   860: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
   861: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
   862: 	PORT_BIT( 0x55, IP_ACTIVE_LOW, IPT_UNUSED )
   863: 
   864: 	PORT_START	/* IN1 */
   865: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_COCKTAIL )
   866: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_COCKTAIL )
   867: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
   868: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_COCKTAIL )
   869: 	PORT_BIT( 0x55, IP_ACTIVE_LOW, IPT_UNUSED )
   870: 
   871: 	PORT_START	/* IN2 */
   872: 	PORT_DIPNAME( 0x03, 0x02, DEF_STR( Bonus_Life ) )
   873: 	PORT_DIPSETTING(    0x01, "3000" )
   874: 	PORT_DIPSETTING(    0x02, "5000" )
   875: 	PORT_DIPSETTING(    0x03, "8000" )
   876: 	PORT_DIPSETTING(    0x00, "None" )
   877: 	PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coinage ) )
   878: 	PORT_DIPSETTING(    0x04, DEF_STR( 2C_1C ) )
   879: //	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_1C ) )
   880: 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) )
   881: 	PORT_DIPSETTING(    0x08, DEF_STR( 1C_2C ) )
   882: 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Lives ) )
   883: 	PORT_DIPSETTING(    0x00, "2" )
   884: 	PORT_DIPSETTING(    0x10, "3" )
   885: 	PORT_DIPNAME( 0x20, 0x00, DEF_STR( Cabinet ) )
   886: 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
   887: 	PORT_DIPSETTING(    0x20, DEF_STR( Cocktail ) )
   888: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
   889: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
   890: 
   891: 	PORT_START	/* IN3 */
   892: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_VBLANK )
   893: 	PORT_BIT( 0x1e, IP_ACTIVE_LOW, IPT_UNUSED )		/* always HI */
   894: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SPECIAL )	/* reads what was written to 4808.  Probably not used?? */
   895: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
   896: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
   897: 
   898: 	/* Fake port to handle coin */
   899: 	PORT_START	/* IN4 */
   900: 	PORT_BIT_IMPULSE( 0x01, IP_ACTIVE_HIGH, IPT_COIN1, 1 )
   901: INPUT_PORTS_END
   902: 
   903: 
   904: static struct GfxLayout cosmic_spritelayout16 =
   905: {
   906: 	16,16,
   907: 	RGN_FRAC(1,2),
   908: 	2,
   909: 	{ RGN_FRAC(0,2), RGN_FRAC(1,2) },
   910: 	{  0*8+0,  0*8+1,  0*8+2,  0*8+3,  0*8+4,  0*8+5,  0*8+6,  0*8+7,
   911: 	  16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7},
   912: 	{ 0*8, 1*8,  2*8,  3*8,  4*8,  5*8,  6*8,  7*8,
   913: 	  8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
   914: 	32*8
   915: };
   916: 
   917: static struct GfxLayout cosmic_spritelayout32 =
   918: {
   919: 	32,32,
   920: 	RGN_FRAC(1,2),
   921: 	2,
   922: 	{ RGN_FRAC(0,2), RGN_FRAC(1,2) },
   923: 	{ 0*32*8+0, 0*32*8+1, 0*32*8+2, 0*32*8+3, 0*32*8+4, 0*32*8+5, 0*32*8+6, 0*32*8+7,
   924: 	  1*32*8+0, 1*32*8+1, 1*32*8+2, 1*32*8+3, 1*32*8+4, 1*32*8+5, 1*32*8+6, 1*32*8+7,
   925: 	  2*32*8+0, 2*32*8+1, 2*32*8+2, 2*32*8+3, 2*32*8+4, 2*32*8+5, 2*32*8+6, 2*32*8+7,
   926:   	  3*32*8+0, 3*32*8+1, 3*32*8+2, 3*32*8+3, 3*32*8+4, 3*32*8+5, 3*32*8+6, 3*32*8+7 },
   927: 	{  0*8,  1*8,  2*8,  3*8,  4*8,  5*8,  6*8,  7*8,
   928: 	   8*8,  9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8,
   929: 	  16*8, 17*8, 18*8, 19*8, 20*8, 21*8, 22*8, 23*8,
   930: 	  24*8, 25*8, 26*8, 27*8, 28*8, 29*8, 30*8, 31*8 },
   931: 	128*8
   932: };
   933: 
   934: 
   935: static struct GfxDecodeInfo panic_gfxdecodeinfo[] =
   936: {
   937: 	{ REGION_GFX1, 0, &cosmic_spritelayout16,  0, 8 },
   938: 	{ REGION_GFX1, 0, &cosmic_spritelayout32,  0, 8 },
   939: 	{ -1 } /* end of array */
   940: };
   941: 
   942: static struct GfxDecodeInfo cosmica_gfxdecodeinfo[] =
   943: {
   944: 	{ REGION_GFX1, 0, &cosmic_spritelayout16,  0, 16 },
   945: 	{ REGION_GFX1, 0, &cosmic_spritelayout32,  0, 16 },
   946: 	{ -1 } /* end of array */
   947: };
   948: 
   949: 
   950: static struct DACinterface dac_interface =
   951: {
   952: 	1,
   953: 	{ 100 }
   954: };
   955: 
   956: static const char *panic_sample_names[] =
   957: {
   958: 	"*panic",
   959: 	"walk.wav",
   960:     "upordown.wav",
   961:     "trapped.wav",
   962:     "falling.wav",
   963:     "escaping.wav",
   964: 	"ekilled.wav",
   965:     "death.wav",
   966:     "elaugh.wav",
   967:     "extral.wav",
   968:     "oxygen.wav",
   969:     "coin.wav",
   970: 	0       /* end of array */
   971: };
   972: 
   973: static struct Samplesinterface panic_samples_interface =
   974: {
   975: 	9,	/* 9 channels */
   976: 	25,	/* volume */
   977: 	panic_sample_names
   978: };
   979: 
   980: static const char *cosmicg_sample_names[] =
   981: {
   982: 	"*cosmicg",
   983: 	"cg_m0.wav",	/* 8 Different pitches of March Sound */
   984: 	"cg_m1.wav",
   985: 	"cg_m2.wav",
   986: 	"cg_m3.wav",
   987: 	"cg_m4.wav",
   988: 	"cg_m5.wav",
   989: 	"cg_m6.wav",
   990: 	"cg_m7.wav",
   991: 	"cg_att.wav",	/* Killer Attack */
   992: 	"cg_chnc.wav",	/* Bonus Chance  */
   993: 	"cg_gotb.wav",	/* Got Bonus - have not got correct sound for */
   994: 	"cg_dest.wav",	/* Gun Destroy */
   995: 	"cg_gun.wav",	/* Gun Shot */
   996: 	"cg_gotm.wav",	/* Got Monster */
   997: 	"cg_ext.wav",	/* Coin Extend */
   998: 	0       /* end of array */
   999: };
  1000: 
  1001: static struct Samplesinterface cosmicg_samples_interface =
  1002: {
  1003: 	9,	/* 9 channels */
  1004: 	25,	/* volume */
  1005: 	cosmicg_sample_names
  1006: };
  1007: 
  1008: 
  1009: static MACHINE_DRIVER_START( cosmic )
  1010: 
  1011: 	/* basic machine hardware */
  1012: 	MDRV_CPU_ADD_TAG("main", Z80,10816000/6)	/* 1.802 MHz*/
  1013: 
  1014: 	MDRV_FRAMES_PER_SECOND(60)
  1015: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
  1016: 
  1017: 	/* video hardware */
  1018: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  1019: 	MDRV_SCREEN_SIZE(32*8, 32*8)
  1020: 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1)
  1021: MACHINE_DRIVER_END
  1022: 
  1023: 
  1024: static MACHINE_DRIVER_START( panic )
  1025: 
  1026: 	/* basic machine hardware */
  1027: 	MDRV_IMPORT_FROM(cosmic)
  1028: 	MDRV_CPU_MODIFY("main")
  1029: 
  1030: 	MDRV_CPU_MEMORY(panic_readmem,panic_writemem)
  1031: 	MDRV_CPU_VBLANK_INT(panic_interrupt,2)
  1032: 
  1033: 	/* video hardware */
  1034: 	MDRV_GFXDECODE(panic_gfxdecodeinfo)
  1035: 	MDRV_PALETTE_LENGTH(16)
  1036: 	MDRV_COLORTABLE_LENGTH(8*4)
  1037: 
  1038: 	MDRV_PALETTE_INIT(panic)
  1039: 	MDRV_VIDEO_UPDATE(panic)
  1040: 
  1041: 	/* sound hardware */
  1042: 	MDRV_SOUND_ADD(SAMPLES, panic_samples_interface)
  1043: 	MDRV_SOUND_ADD(DAC, dac_interface)
  1044: MACHINE_DRIVER_END
  1045: 
  1046: 
  1047: static MACHINE_DRIVER_START( cosmica )
  1048: 
  1049: 	/* basic machine hardware */
  1050: 	MDRV_IMPORT_FROM(cosmic)
  1051: 	MDRV_CPU_MODIFY("main")
  1052: 
  1053: 	MDRV_CPU_MEMORY(cosmica_readmem,cosmica_writemem)
  1054: 	MDRV_CPU_VBLANK_INT(cosmica_interrupt,32)
  1055: 
  1056: 	/* video hardware */
  1057: 	MDRV_GFXDECODE(cosmica_gfxdecodeinfo)
  1058: 	MDRV_PALETTE_LENGTH(8)
  1059: 	MDRV_COLORTABLE_LENGTH(16*4)
  1060: 
  1061: 	MDRV_PALETTE_INIT(cosmica)
  1062: 	MDRV_VIDEO_UPDATE(cosmica)
  1063: MACHINE_DRIVER_END
  1064: 
  1065: 
  1066: static MACHINE_DRIVER_START( cosmicg )
  1067: 
  1068: 	/* basic machine hardware */
  1069: 	MDRV_CPU_ADD(TMS9980, 1228500)
  1070: 			/* 9.828 MHz Crystal */
  1071: 			/* R Nabet : huh ? This would imply the crystal frequency is somehow divided by 2 before being
  1072: 			fed to the tms9904 or tms9980.  Also, I have never heard of a tms9900/9980 operating under
  1073: 			1.5MHz.  So, if someone can check this... */
  1074: 	MDRV_CPU_MEMORY(cosmicg_readmem,cosmicg_writemem)
  1075: 	MDRV_CPU_PORTS(cosmicg_readport,cosmicg_writeport)
  1076: 	MDRV_CPU_VBLANK_INT(cosmicg_interrupt,1)
  1077: 
  1078: 	MDRV_FRAMES_PER_SECOND(60)
  1079: 	MDRV_VBLANK_DURATION(0)
  1080: 
  1081: 	/* video hardware */
  1082: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
  1083: 	MDRV_SCREEN_SIZE(32*8, 32*8)
  1084: 	MDRV_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1)
  1085:     MDRV_PALETTE_LENGTH(16)
  1086: 
  1087: 	MDRV_PALETTE_INIT(cosmicg)
  1088: 	MDRV_VIDEO_UPDATE(cosmicg)
  1089: 
  1090: 	/* sound hardware */
  1091: 	MDRV_SOUND_ADD(SAMPLES, cosmicg_samples_interface)
  1092: 	MDRV_SOUND_ADD(DAC, dac_interface)
  1093: MACHINE_DRIVER_END
  1094: 
  1095: 
  1096: static MACHINE_DRIVER_START( magspot2 )
  1097: 
  1098: 	/* basic machine hardware */
  1099: 	MDRV_IMPORT_FROM(cosmic)
  1100: 	MDRV_CPU_MODIFY("main")
  1101: 
  1102: 	MDRV_CPU_MEMORY(magspot2_readmem,magspot2_writemem)
  1103: 	MDRV_CPU_VBLANK_INT(magspot2_interrupt,1)
  1104: 
  1105: 	/* video hardware */
  1106: 	MDRV_GFXDECODE(panic_gfxdecodeinfo)
  1107: 	MDRV_PALETTE_LENGTH(16)
  1108: 	MDRV_COLORTABLE_LENGTH(8*4)
  1109: 
  1110: 	MDRV_PALETTE_INIT(magspot2)
  1111: 	MDRV_VIDEO_UPDATE(magspot2)
  1112: 
  1113: 	/* sound hardware */
  1114: 	MDRV_SOUND_ADD(DAC, dac_interface)
  1115: MACHINE_DRIVER_END
  1116: 
  1117: 
  1118: static MACHINE_DRIVER_START( devzone )
  1119: 
  1120: 	/* basic machine hardware */
  1121: 	MDRV_IMPORT_FROM(magspot2)
  1122: 
  1123: 	/* video hardware */
  1124: 	MDRV_VIDEO_UPDATE(devzone)
  1125: MACHINE_DRIVER_END
  1126: 
  1127: 
  1128: static MACHINE_DRIVER_START( nomnlnd )
  1129: 
  1130: 	/* basic machine hardware */
  1131: 	MDRV_IMPORT_FROM(cosmic)
  1132: 	MDRV_CPU_MODIFY("main")
  1133: 
  1134: 	MDRV_CPU_MEMORY(magspot2_readmem,magspot2_writemem)
  1135: 	MDRV_CPU_VBLANK_INT(nomnlnd_interrupt,1)
  1136: 
  1137: 	/* video hardware */
  1138: 	MDRV_GFXDECODE(panic_gfxdecodeinfo)
  1139: 	MDRV_PALETTE_LENGTH(8)
  1140: 	MDRV_COLORTABLE_LENGTH(8*4)
  1141: 
  1142: 	MDRV_PALETTE_INIT(nomnlnd)
  1143: 	MDRV_VIDEO_UPDATE(nomnlnd)
  1144: 
  1145: 	/* sound hardware */
  1146: 	MDRV_SOUND_ADD(DAC, dac_interface)
  1147: MACHINE_DRIVER_END
  1148: 
  1149: 
  1150: ROM_START( panic )
  1151: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
  1152: 	ROM_LOAD( "spe1",         0x0000, 0x0800, CRC(70ac0888) SHA1(bdc6dfb74b4643df36cae60923f9759751340c86) )
  1153: 	ROM_LOAD( "spe2",         0x0800, 0x0800, CRC(2b910c48) SHA1(9ebb15694e068a4d8769ec5d312af1148818d472) )
  1154: 	ROM_LOAD( "spe3",         0x1000, 0x0800, CRC(03810148) SHA1(768418bc0a3a5bc9f7ec07b8edd4099da69efac6) )
  1155: 	ROM_LOAD( "spe4",         0x1800, 0x0800, CRC(119bbbfd) SHA1(2b3722300b1eebe1bffa4a4e39fceb45aefde24f) )
  1156: 	ROM_LOAD( "spcpanic.5",   0x2000, 0x0800, CRC(5b80f277) SHA1(b060e57c88679f547153aed041a5554dc26a83aa) )
  1157: 	ROM_LOAD( "spcpanic.6",   0x2800, 0x0800, CRC(b73babf0) SHA1(229944a6b3653601bc20afea5a9aec787fd95ce0) )
  1158: 	ROM_LOAD( "spe7",         0x3000, 0x0800, CRC(2894106e) SHA1(625896225b0ec03ac12f3e8b97e801cb743f37e7) )
  1159: 
  1160: 	ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE )
  1161: 	ROM_LOAD( "spcpanic.11",  0x0000, 0x0800, CRC(acea9df4) SHA1(7de2a82da8160ad1a01c32a516d10c19dc306051) )
  1162: 	ROM_LOAD( "spcpanic.12",  0x0800, 0x0800, CRC(e83423d0) SHA1(eba1129537869f1ecb5afeeae19db19b134865f6) )
  1163: 	ROM_LOAD( "spcpanic.10",  0x1000, 0x0800, CRC(c9631c2d) SHA1(e5ab95e19c1b22a798a70a1a6599bc1f5e853c60) )
  1164: 	ROM_LOAD( "spcpanic.9",   0x1800, 0x0800, CRC(eec78b4c) SHA1(efd21d0a26b988a490c45315a7a121607f74d147) )
  1165: 
  1166: 	ROM_REGION( 0x0020, REGION_PROMS, 0 )
  1167: 	ROM_LOAD( "82s123.sp",    0x0000, 0x0020, CRC(35d43d2f) SHA1(2ce164c92ed7ba3ee26a907f0c5969ec3decca01) )
  1168: 
  1169: 	ROM_REGION( 0x0800, REGION_USER1, 0 ) /* color map */
  1170: 	ROM_LOAD( "spcpanic.8",   0x0000, 0x0800, CRC(7da0b321) SHA1(b450cc02de9cc27e3f336c626221c90c6961b51e) )
  1171: ROM_END
  1172: 
  1173: ROM_START( panic2 )
  1174: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
  1175: 	ROM_LOAD( "spcpanic.1",   0x0000, 0x0800, CRC(405ae6f9) SHA1(92000f5f9bc1384ebae36dd30e715764747504d8) )
  1176: 	ROM_LOAD( "spcpanic.2",   0x0800, 0x0800, CRC(b6a286c5) SHA1(b33beb1fbe622e9c90888d25d018fd5bef6cb65b) )
  1177: 	ROM_LOAD( "spcpanic.3",   0x1000, 0x0800, CRC(85ae8b2e) SHA1(a5676d38e3c0ea0aeedc29bea0c04086e51da67f) )
  1178: 	ROM_LOAD( "spcpanic.4",   0x1800, 0x0800, CRC(b6d4f52f) SHA1(431e5ef00768a633d17449a888ac9ce46975272d) )
  1179: 	ROM_LOAD( "spcpanic.5",   0x2000, 0x0800, CRC(5b80f277) SHA1(b060e57c88679f547153aed041a5554dc26a83aa) )
  1180: 	ROM_LOAD( "spcpanic.6",   0x2800, 0x0800, CRC(b73babf0) SHA1(229944a6b3653601bc20afea5a9aec787fd95ce0) )
  1181: 	ROM_LOAD( "spcpanic.7",   0x3000, 0x0800, CRC(fc27f4e5) SHA1(80064ccfb810d11f6d7d79bfd991adb2eb2f1c16) )
  1182: 
  1183: 	ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE )
  1184: 	ROM_LOAD( "spcpanic.11",  0x0000, 0x0800, CRC(acea9df4) SHA1(7de2a82da8160ad1a01c32a516d10c19dc306051) )
  1185: 	ROM_LOAD( "spcpanic.12",  0x0800, 0x0800, CRC(e83423d0) SHA1(eba1129537869f1ecb5afeeae19db19b134865f6) )
  1186: 	ROM_LOAD( "spcpanic.10",  0x1000, 0x0800, CRC(c9631c2d) SHA1(e5ab95e19c1b22a798a70a1a6599bc1f5e853c60) )
  1187: 	ROM_LOAD( "spcpanic.9",   0x1800, 0x0800, CRC(eec78b4c) SHA1(efd21d0a26b988a490c45315a7a121607f74d147) )
  1188: 
  1189: 	ROM_REGION( 0x0020, REGION_PROMS, 0 )
  1190: 	ROM_LOAD( "82s123.sp",    0x0000, 0x0020, CRC(35d43d2f) SHA1(2ce164c92ed7ba3ee26a907f0c5969ec3decca01) )
  1191: 
  1192: 	ROM_REGION( 0x0800, REGION_USER1, 0 ) /* color map */
  1193: 	ROM_LOAD( "spcpanic.8",   0x0000, 0x0800, CRC(7da0b321) SHA1(b450cc02de9cc27e3f336c626221c90c6961b51e) )
  1194: ROM_END
  1195: 
  1196: ROM_START( panic3 )
  1197: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
  1198: 	ROM_LOAD( "panica.1",     0x0000, 0x0800, CRC(289720ce) SHA1(8601bda95ac32a55f17fe9c723796bfe8b2b2fa7) )
  1199: 	ROM_LOAD( "spcpanic.2",   0x0800, 0x0800, CRC(b6a286c5) SHA1(b33beb1fbe622e9c90888d25d018fd5bef6cb65b) )
  1200: 	ROM_LOAD( "spcpanic.3",   0x1000, 0x0800, CRC(85ae8b2e) SHA1(a5676d38e3c0ea0aeedc29bea0c04086e51da67f) )
  1201: 	ROM_LOAD( "spcpanic.4",   0x1800, 0x0800, CRC(b6d4f52f) SHA1(431e5ef00768a633d17449a888ac9ce46975272d) )
  1202: 	ROM_LOAD( "spcpanic.5",   0x2000, 0x0800, CRC(5b80f277) SHA1(b060e57c88679f547153aed041a5554dc26a83aa) )
  1203: 	ROM_LOAD( "spcpanic.6",   0x2800, 0x0800, CRC(b73babf0) SHA1(229944a6b3653601bc20afea5a9aec787fd95ce0) )
  1204: 	ROM_LOAD( "panica.7",     0x3000, 0x0800, CRC(3641cb7f) SHA1(94a5108233cf9517f782759bb396e4eab58b8551) )
  1205: 
  1206: 	ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE )
  1207: 	ROM_LOAD( "spcpanic.11",  0x0000, 0x0800, CRC(acea9df4) SHA1(7de2a82da8160ad1a01c32a516d10c19dc306051) )
  1208: 	ROM_LOAD( "spcpanic.12",  0x0800, 0x0800, CRC(e83423d0) SHA1(eba1129537869f1ecb5afeeae19db19b134865f6) )
  1209: 	ROM_LOAD( "spcpanic.10",  0x1000, 0x0800, CRC(c9631c2d) SHA1(e5ab95e19c1b22a798a70a1a6599bc1f5e853c60) )
  1210: 	ROM_LOAD( "spcpanic.9",   0x1800, 0x0800, CRC(eec78b4c) SHA1(efd21d0a26b988a490c45315a7a121607f74d147) )
  1211: 
  1212: 	ROM_REGION( 0x0020, REGION_PROMS, 0 )
  1213: 	ROM_LOAD( "82s123.sp",    0x0000, 0x0020, CRC(35d43d2f) SHA1(2ce164c92ed7ba3ee26a907f0c5969ec3decca01) )
  1214: 
  1215: 	ROM_REGION( 0x0800, REGION_USER1, 0 ) /* color map */
  1216: 	ROM_LOAD( "spcpanic.8",   0x0000, 0x0800, CRC(7da0b321) SHA1(b450cc02de9cc27e3f336c626221c90c6961b51e) )
  1217: ROM_END
  1218: 
  1219: ROM_START( panich )
  1220: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
  1221: 	ROM_LOAD( "sph1",         0x0000, 0x0800, CRC(f6e9c6ef) SHA1(90b5bba0fd726e4c6618793467eba8c18c63fd43) )
  1222: 	ROM_LOAD( "sph2",         0x0800, 0x0800, CRC(58dbc49b) SHA1(f716e8cdbb7eb456bd7f2996241b5ebd03086de3) )
  1223: 	ROM_LOAD( "sph3",         0x1000, 0x0800, CRC(c4f275ad) SHA1(446be24dc99e46f3c69cf2cfb657958053857b7d) )
  1224: 	ROM_LOAD( "sph4",         0x1800, 0x0800, CRC(6e7785de) SHA1(d12326791cbcae37980e240e2bfc20d7618f3ef5) )
  1225: 	ROM_LOAD( "sph5",         0x2000, 0x0800, CRC(1916c9b8) SHA1(ab4a353340f152d6ba181555ee211afeb7877509) )
  1226: 	ROM_LOAD( "sph6",         0x2800, 0x0800, CRC(54b92314) SHA1(970ebae831ea0a1958b8d711ebc5956ef4f932fe) )
  1227: 	ROM_LOAD( "sph7",         0x3000, 0x0800, CRC(8600b881) SHA1(2eed176de531f44d10b7755141621050d72ad7ac) )
  1228: 
  1229: 	ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE )
  1230: 	ROM_LOAD( "spcpanic.11",  0x0000, 0x0800, CRC(acea9df4) SHA1(7de2a82da8160ad1a01c32a516d10c19dc306051) )
  1231: 	ROM_LOAD( "spcpanic.12",  0x0800, 0x0800, CRC(e83423d0) SHA1(eba1129537869f1ecb5afeeae19db19b134865f6) )
  1232: 	ROM_LOAD( "spcpanic.10",  0x1000, 0x0800, CRC(c9631c2d) SHA1(e5ab95e19c1b22a798a70a1a6599bc1f5e853c60) )
  1233: 	ROM_LOAD( "spcpanic.9",   0x1800, 0x0800, CRC(eec78b4c) SHA1(efd21d0a26b988a490c45315a7a121607f74d147) )
  1234: 
  1235: 	ROM_REGION( 0x0020, REGION_PROMS, 0 )
  1236: 	ROM_LOAD( "82s123.sp",    0x0000, 0x0020, CRC(35d43d2f) SHA1(2ce164c92ed7ba3ee26a907f0c5969ec3decca01) )
  1237: 
  1238: 	ROM_REGION( 0x0800, REGION_USER1, 0 ) /* color map */
  1239: 	ROM_LOAD( "spcpanic.8",   0x0000, 0x0800, CRC(7da0b321) SHA1(b450cc02de9cc27e3f336c626221c90c6961b51e) )
  1240: ROM_END
  1241: 
  1242: ROM_START( panicger )
  1243: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
  1244: 	ROM_LOAD( "spacepan.001", 0x0000, 0x0800, CRC(a6d9515a) SHA1(20fe6fa4cb10e83f97b77e19d9d4f883aba73d1a) )
  1245: 	ROM_LOAD( "spacepan.002", 0x0800, 0x0800, CRC(cfc22663) SHA1(44036a69ca3463759c56637c3435a3305b102879) )
  1246: 	ROM_LOAD( "spacepan.003", 0x1000, 0x0800, CRC(e1f36893) SHA1(689b77b4df15dc980d35cf245aca1affe46d6b21) )
  1247: 	ROM_LOAD( "spacepan.004", 0x1800, 0x0800, CRC(01be297c) SHA1(d22856ef192d8239a3520f16bbe5a6f7f4c3adc8) )
  1248: 	ROM_LOAD( "spacepan.005", 0x2000, 0x0800, CRC(e0d54805) SHA1(5852f69cee9a8f9984b175268bcfafe4f3f124ba) )
  1249: 	ROM_LOAD( "spacepan.006", 0x2800, 0x0800, CRC(aae1458e) SHA1(79dd5992b81f316cf86efdb2809b7002e824e0e7) )
  1250: 	ROM_LOAD( "spacepan.007", 0x3000, 0x0800, CRC(14e46e70) SHA1(f49f09a12b796f7a7713d872ecd12e246c56c261) )
  1251: 
  1252: 	ROM_REGION( 0x2000, REGION_GFX1, ROMREGION_DISPOSE )
  1253: 	ROM_LOAD( "spcpanic.11",  0x0000, 0x0800, CRC(acea9df4) SHA1(7de2a82da8160ad1a01c32a516d10c19dc306051) )
  1254: 	ROM_LOAD( "spcpanic.12",  0x0800, 0x0800, CRC(e83423d0) SHA1(eba1129537869f1ecb5afeeae19db19b134865f6) )
  1255: 	ROM_LOAD( "spcpanic.10",  0x1000, 0x0800, CRC(c9631c2d) SHA1(e5ab95e19c1b22a798a70a1a6599bc1f5e853c60) )
  1256: 	ROM_LOAD( "spcpanic.9",   0x1800, 0x0800, CRC(eec78b4c) SHA1(efd21d0a26b988a490c45315a7a121607f74d147) )
  1257: 
  1258: 	ROM_REGION( 0x0020, REGION_PROMS, 0 )
  1259: 	ROM_LOAD( "82s123.sp",    0x0000, 0x0020, CRC(35d43d2f) SHA1(2ce164c92ed7ba3ee26a907f0c5969ec3decca01) )
  1260: 
  1261: 	ROM_REGION( 0x0800, REGION_USER1, 0 ) /* color map */
  1262: 	ROM_LOAD( "spcpanic.8",   0x0000, 0x0800, CRC(7da0b321) SHA1(b450cc02de9cc27e3f336c626221c90c6961b51e) )
  1263: ROM_END
  1264: 
  1265: ROM_START( cosmica )
  1266: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
  1267: 	ROM_LOAD( "ca.e3",        0x0000, 0x0800, CRC(535ee0c5) SHA1(3ec3056b7fabe07ef49a9179114aa74be44a943e) )
  1268: 	ROM_LOAD( "ca.e4",        0x0800, 0x0800, CRC(ed3cf8f7) SHA1(6ba1d98d82400519e844b950cb2fb1274c06d89a) )
  1269: 	ROM_LOAD( "ca.e5",        0x1000, 0x0800, CRC(6a111e5e) SHA1(593be409bc969cece2ff88623e53c166b4dc43cd) )
  1270: 	ROM_LOAD( "ca.e6",        0x1800, 0x0800, CRC(c9b5ca2a) SHA1(3384b98954b6bc9a64e753b95757f61ce1d3c52e) )
  1271: 	ROM_LOAD( "ca.e7",        0x2000, 0x0800, CRC(43666d68) SHA1(e44492360a77d93aeaaaa0f38f4ac19732998559) )
  1272: 
  1273: 	ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )	/* sprites */
  1274: 	ROM_LOAD( "ca.n2",        0x0000, 0x0800, CRC(aa6c6079) SHA1(af4ab73e9e1c189290b26bf42adb511d5a347df9) )
  1275: 	ROM_LOAD( "ca.n1",        0x0800, 0x0800, CRC(431e866c) SHA1(b007cd3cc856360a0247bd78bb49d173f5cef321) )
  1276: 
  1277: 	ROM_REGION( 0x0020, REGION_PROMS, 0 )
  1278: 	ROM_LOAD( "ca.d9",        0x0000, 0x0020, CRC(dfb60f19) SHA1(d510327ff3492f098659c551f7245835f61a2959) )
  1279: 
  1280: 	ROM_REGION( 0x0400, REGION_USER1, 0 ) /* color map */
  1281: 	ROM_LOAD( "ca.e2",        0x0000, 0x0400, CRC(ea4ee931) SHA1(d0a4afda4b493efb40286c2d67bf56a2a8b8da9d) )
  1282: 
  1283: 	ROM_REGION( 0x0400, REGION_USER2, 0 ) /* starfield generator */
  1284: 	ROM_LOAD( "ca.sub",       0x0000, 0x0400, CRC(acbd4e98) SHA1(d33fe8bdc77bb18a3ffb369ea692210d1b890771) )
  1285: ROM_END
  1286: 
  1287: ROM_START( cosmica2 )
  1288: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
  1289: 	ROM_LOAD( "ca.e3",        0x0000, 0x0800, CRC(535ee0c5) SHA1(3ec3056b7fabe07ef49a9179114aa74be44a943e) )
  1290: 	ROM_LOAD( "c3.bin",       0x0800, 0x0400, CRC(699c849e) SHA1(90a58ab8ede9c31eec3df1f8f251b59858f85eb6) )
  1291: 	ROM_LOAD( "d4.bin",       0x0c00, 0x0400, CRC(168e38da) SHA1(63c5f8346861aa7c70ad58a05977c7af413cbfaf) )
  1292: 	ROM_LOAD( "ca.e5",        0x1000, 0x0800, CRC(6a111e5e) SHA1(593be409bc969cece2ff88623e53c166b4dc43cd) )
  1293: 	ROM_LOAD( "ca.e6",        0x1800, 0x0800, CRC(c9b5ca2a) SHA1(3384b98954b6bc9a64e753b95757f61ce1d3c52e) )
  1294: 	ROM_LOAD( "i9.bin",       0x2000, 0x0400, CRC(3bb57720) SHA1(2d1edcad57767a4fa2c7713726ed0cb1203f6fbc) )
  1295: 	ROM_LOAD( "j0.bin",       0x2400, 0x0400, CRC(4ff70f45) SHA1(791499be62a7b91bde75e7a7ab6c546f5fb63027) )
  1296: 
  1297: 	ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )	/* sprites */
  1298: 	ROM_LOAD( "ca.n2",        0x0000, 0x0800, CRC(aa6c6079) SHA1(af4ab73e9e1c189290b26bf42adb511d5a347df9) )
  1299: 	ROM_LOAD( "ca.n1",        0x0800, 0x0800, CRC(431e866c) SHA1(b007cd3cc856360a0247bd78bb49d173f5cef321) )
  1300: 
  1301: 	ROM_REGION( 0x0020, REGION_PROMS, 0 )
  1302: 	ROM_LOAD( "ca.d9",        0x0000, 0x0020, CRC(dfb60f19) SHA1(d510327ff3492f098659c551f7245835f61a2959) )
  1303: 
  1304: 	ROM_REGION( 0x0400, REGION_USER1, 0 ) /* color map */
  1305: 	ROM_LOAD( "ca.e2",        0x0000, 0x0400, CRC(ea4ee931) SHA1(d0a4afda4b493efb40286c2d67bf56a2a8b8da9d) )
  1306: 
  1307: 	ROM_REGION( 0x0400, REGION_USER2, 0 ) /* starfield generator */
  1308: 	ROM_LOAD( "ca.sub",       0x0000, 0x0400, CRC(acbd4e98) SHA1(d33fe8bdc77bb18a3ffb369ea692210d1b890771) )
  1309: ROM_END
  1310: 
  1311: ROM_START( cosmicg )
  1312: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )  /* 8k for code */
  1313: 	ROM_LOAD( "cosmicg1.bin", 0x0000, 0x0400, CRC(e1b9f894) SHA1(bab7fd9b3db145a889542653191905b6efc5ce75) )
  1314: 	ROM_LOAD( "cosmicg2.bin", 0x0400, 0x0400, CRC(35c75346) SHA1(4e50eaa0b50ab04802dc63992ad2600c227301ad) )
  1315: 	ROM_LOAD( "cosmicg3.bin", 0x0800, 0x0400, CRC(82a49b48) SHA1(4cf9f684f3eb18b99a88ca879bb7083b1334f0cc) )
  1316: 	ROM_LOAD( "cosmicg4.bin", 0x0c00, 0x0400, CRC(1c1c934c) SHA1(011b2b3ec4d31869fda13a3654c7bc51f3ce4dc2) )
  1317: 	ROM_LOAD( "cosmicg5.bin", 0x1000, 0x0400, CRC(b1c00fbf) SHA1(136267f75e2d5b445695cabef4538f986e6f1b10) )
  1318: 	ROM_LOAD( "cosmicg6.bin", 0x1400, 0x0400, CRC(f03454ce) SHA1(32c87f369475c7154fe3243d2c7be4a25444e530) )
  1319: 	ROM_LOAD( "cosmicg7.bin", 0x1800, 0x0400, CRC(f33ebae7) SHA1(915bca53d5356e12c94ec765103ceced7306d1dd) )
  1320: 	ROM_LOAD( "cosmicg8.bin", 0x1c00, 0x0400, CRC(472e4990) SHA1(d5797b9d89446aa6533f7515e6a5fc8368d82f91) )
  1321: 
  1322: 	ROM_REGION( 0x0400, REGION_USER1, 0 ) /* color map */
  1323: 	ROM_LOAD( "cosmicg9.bin", 0x0000, 0x0400, CRC(689c2c96) SHA1(ddfdc3fd29c56fdebd3b1c3443a7c39f567d5355) )
  1324: ROM_END
  1325: 
  1326: /* rom 9 not dumped according to readme? */
  1327: ROM_START( magspot )
  1328: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
  1329: 	ROM_LOAD( "ms1.bin",	  0x0000, 0x0800, CRC(59e9019d) SHA1(3c64ae956ec4eed988018b89c986ad8f6f065fe0) )
  1330: 	ROM_LOAD( "ms2.bin",	  0x0800, 0x0800, CRC(98b913b1) SHA1(2ce86f5069e2664e2ea44bda567ca26432fd59f7) )
  1331: 	ROM_LOAD( "ms3.bin",	  0x1000, 0x0800, CRC(ea58c124) SHA1(7551c14ed9563e3aed7220cc03f7bca4029b3a4e) )
  1332: 	ROM_LOAD( "ms5.bin",	  0x1800, 0x0800, CRC(4302a658) SHA1(9590be8db27b7122c87cfb27f8e09c2ecbf6fbd0) )
  1333: 	ROM_LOAD( "ms4.bin",	  0x2000, 0x0800, CRC(088582ab) SHA1(ad2d86184b4a6ee74464d1df40f4e841434c46c8) )
  1334: 	ROM_LOAD( "ms6.bin",	  0x2800, 0x0800, CRC(e6bf492c) SHA1(ada3a33c54b6c02f3fb9590181fceefafdc429bc) )
  1335: 
  1336: 	ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )	/* sprites */
  1337: 	ROM_LOAD( "ms8.bin",	  0x0000, 0x0800, CRC(9e1d63a2) SHA1(d8642e515871da44880e105e6891c4b25222744f) )
  1338: 	ROM_LOAD( "ms7.bin",	  0x0800, 0x0800, CRC(1ab338d3) SHA1(4e3bf93f94119fd10c40953245cec735db8417fb) )
  1339: 
  1340: 	// from magspot2 - verify its the same on this
  1341: 	ROM_REGION( 0x0020, REGION_PROMS, 0 )
  1342: 	ROM_LOAD( "ms.d9",        0x0000, 0x0020, BAD_DUMP CRC(36e2aa2a) SHA1(4813b013cb8260157858e3adc7323efc6654e170) )
  1343: 
  1344: 	// from magspot2 - verify its the same on this
  1345: 	ROM_REGION( 0x0400, REGION_USER1, 0 ) /* color map */
  1346: 	ROM_LOAD( "ms.e2",        0x0000, 0x0400, BAD_DUMP CRC(89f23ebd) SHA1(a56bda82f8be8e541a50d2a411ada89a6d9c0373) )
  1347: ROM_END
  1348: 
  1349: ROM_START( magspot2 )
  1350: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
  1351: 	ROM_LOAD( "ms.e3",        0x0000, 0x0800, CRC(c0085ade) SHA1(ab60ba7c0e45ea2576d935135e930e2fdf165867) )
  1352: 	ROM_LOAD( "ms.e4",        0x0800, 0x0800, CRC(d534a68b) SHA1(fd3b5e619b22a8c53e3c6f5f5351068a3f26eb61) )
  1353: 	ROM_LOAD( "ms.e5",        0x1000, 0x0800, CRC(25513b2a) SHA1(c7f3d9a53cb7e7cf523ff710c333dbc744088e31) )
  1354: 	ROM_LOAD( "ms.e7",        0x1800, 0x0800, CRC(8836bbc4) SHA1(9da6c1b4e9a446108bc324e7fc280bfaeaf50504) )
  1355: 	ROM_LOAD( "ms.e6",        0x2000, 0x0800, CRC(6a08ab94) SHA1(5d9272a5304546cef6668c975e815f6750bcfa15) )
  1356: 	ROM_LOAD( "ms.e8",        0x2800, 0x0800, CRC(77c6d109) SHA1(bb265bd56d4d597d2ef75d169d5d30db1499e3be) )
  1357: 
  1358: 	ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )	/* sprites */
  1359: 	ROM_LOAD( "ms.n2",        0x0000, 0x0800, CRC(9e1d63a2) SHA1(d8642e515871da44880e105e6891c4b25222744f) )
  1360: 	ROM_LOAD( "ms.n1",        0x0800, 0x0800, CRC(1ab338d3) SHA1(4e3bf93f94119fd10c40953245cec735db8417fb) )
  1361: 
  1362: 	ROM_REGION( 0x0020, REGION_PROMS, 0 )
  1363: 	ROM_LOAD( "ms.d9",        0x0000, 0x0020, CRC(36e2aa2a) SHA1(4813b013cb8260157858e3adc7323efc6654e170) )
  1364: 
  1365: 	ROM_REGION( 0x0400, REGION_USER1, 0 ) /* color map */
  1366: 	ROM_LOAD( "ms.e2",        0x0000, 0x0400, CRC(89f23ebd) SHA1(a56bda82f8be8e541a50d2a411ada89a6d9c0373) )
  1367: ROM_END
  1368: 
  1369: ROM_START( devzone )
  1370: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
  1371: 	ROM_LOAD( "dv1.e3",       0x0000, 0x0800, CRC(c70faf00) SHA1(d3f0f071e6c7552724eba64a7182637dae4438c7) )
  1372: 	ROM_LOAD( "dv2.e4",       0x0800, 0x0800, CRC(eacfed61) SHA1(493c0d21fd1574b12978dd1f52e8735df6c1732c) )
  1373: 	ROM_LOAD( "dv3.e5",       0x1000, 0x0800, CRC(7973317e) SHA1(d236e3dad8c991c32a2550e561518b522a4580bc) )
  1374: 	ROM_LOAD( "dv5.e7",       0x1800, 0x0800, CRC(b71a3989) SHA1(aad14021ee569e221ea632416d6a006e60dd94e5) )
  1375: 	ROM_LOAD( "dv4.e6",       0x2000, 0x0800, CRC(a58c5b8c) SHA1(7ff08007aedd2ff1d7ef64263da92a5b77ae2dc4) )
  1376: 	ROM_LOAD( "dv6.e8",       0x2800, 0x0800, CRC(3930fb67) SHA1(919883e833d6caa8fe7c3ceaa184575a3b4932b6) )
  1377: 
  1378: 	ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )	/* sprites */
  1379: 	ROM_LOAD( "dv8.n2",       0x0000, 0x0800, CRC(da1cbec1) SHA1(08a668f19c68335f4fc9f98cd53b44047dd8aad9) )
  1380: 	ROM_LOAD( "dv7.n1",       0x0800, 0x0800, CRC(e7562fcf) SHA1(0a0833dbb8d4be69fbf8897aa3e045a87ae42024) )
  1381: 
  1382: 	ROM_REGION( 0x0020, REGION_PROMS, 0 )
  1383: 	ROM_LOAD( "ms.d9",        0x0000, 0x0020, CRC(36e2aa2a) SHA1(4813b013cb8260157858e3adc7323efc6654e170) )
  1384: 
  1385: 	ROM_REGION( 0x0400, REGION_USER1, 0 ) /* color map */
  1386: 	ROM_LOAD( "dz9.e2",       0x0000, 0x0400, CRC(693855b6) SHA1(1c29d72be511c1d38b30b9534d647d0813b2ef57) )
  1387: 
  1388: 	ROM_REGION( 0x0800, REGION_USER2, 0 ) /* grid horizontal line positions */
  1389: 	ROM_LOAD( "ic12.sub",     0x0000, 0x0800, CRC(f61c1c45) SHA1(9016710409ae2bccfc60f8e3d1131c125333c034) )
  1390: 
  1391: 	ROM_REGION( 0x0020, REGION_USER3, 0 ) /* grid vertical line positions */
  1392: 	ROM_LOAD( "ic1.sub",      0x0000, 0x0020, CRC(df974878) SHA1(2ef2e1b771923f9a0bfe1841444de61200298605) )
  1393: ROM_END
  1394: 
  1395: ROM_START( devzone2 )
  1396: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
  1397: 	ROM_LOAD( "p10_1.e3",     0x0000, 0x0800, BAD_DUMP CRC(38bd45a4) SHA1(192eee64ff53c20fb5b369703b52a5bb3976ba1d)  )
  1398: 	ROM_LOAD( "my4_2.e4",     0x0800, 0x0800, BAD_DUMP CRC(e1637800) SHA1(3705ce1f02f3fefec0285f5db6a7606e6cec1bac)  )
  1399: 	ROM_LOAD( "ms6_3.e5",     0x1000, 0x0800, BAD_DUMP CRC(c1952e2f) SHA1(d42f0f547e989a71254957e5e634ac359e72bb14)  )
  1400: 	ROM_LOAD( "mx6_5.e7",     0x1800, 0x0800, BAD_DUMP CRC(c5394215) SHA1(8c970f6a8d34963bc4848f2bef90cee850c9c28d)  )
  1401: 	ROM_LOAD( "my1_4.e6",     0x2000, 0x0800, BAD_DUMP CRC(5d965d93) SHA1(49fe79e4b5cec1c7aa2f8e1eb750b39bb7dda16c)  )
  1402: 	ROM_LOAD( "mz7_6.e8",     0x2800, 0x0800, BAD_DUMP CRC(8504e8c9) SHA1(40e08ff38673544c734a9fc19b38edaa8cc74f23)  )
  1403: 
  1404: 	ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )	/* sprites */
  1405: 	ROM_LOAD( "my8_8.n2",     0x0000, 0x0800, CRC(18abce02) SHA1(5cac11f4e6f1a4801bd02007399a906cdff66b85) )
  1406: 	ROM_LOAD( "mx3_7.n1",     0x0800, 0x0800, CRC(c089c9e3) SHA1(2fb725338a19d5d4f9e445e7d46d105b8db9733c) )
  1407: 
  1408: 	ROM_REGION( 0x0020, REGION_PROMS, 0 )
  1409: 	ROM_LOAD( "ms.d9",        0x0000, 0x0020, CRC(36e2aa2a) SHA1(4813b013cb8260157858e3adc7323efc6654e170) )
  1410: 
  1411: 	ROM_REGION( 0x0400, REGION_USER1, 0 ) /* color map */
  1412: 	ROM_LOAD( "dz9.e2",       0x0000, 0x0400, CRC(693855b6) SHA1(1c29d72be511c1d38b30b9534d647d0813b2ef57) )
  1413: 
  1414: 	ROM_REGION( 0x0800, REGION_USER2, 0 ) /* grid horizontal line positions */
  1415: 	ROM_LOAD( "ic12.sub",     0x0000, 0x0800, CRC(f61c1c45) SHA1(9016710409ae2bccfc60f8e3d1131c125333c034) )
  1416: 
  1417: 	ROM_REGION( 0x0020, REGION_USER3, 0 ) /* grid vertical line positions */
  1418: 	ROM_LOAD( "ic1.sub",      0x0000, 0x0020, CRC(df974878) SHA1(2ef2e1b771923f9a0bfe1841444de61200298605) )
  1419: ROM_END
  1420: 
  1421: ROM_START( nomnlnd )
  1422: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
  1423: 	ROM_LOAD( "1.bin",        0x0000, 0x0800, CRC(ba117ba6) SHA1(7399e7ac8a585ed6502ea0d740850b1ed2dc5bcd) )
  1424: 	ROM_LOAD( "2.bin",        0x0800, 0x0800, CRC(e5ed654f) SHA1(c26dc12ade6dc63392945ec0caca229d936f7f89) )
  1425: 	ROM_LOAD( "3.bin",        0x1000, 0x0800, CRC(7fc42724) SHA1(0f8fdfad0a2557b9dd99ae3890c37bbc5c59bc89) )
  1426: 	ROM_LOAD( "5.bin",        0x1800, 0x0800, CRC(9cc2f1d9) SHA1(453c67b613550c84364f445705019188bb580d64) )
  1427: 	ROM_LOAD( "4.bin",        0x2000, 0x0800, CRC(0e8cd46a) SHA1(14cf9017e408b862a4ed63bb8acd37064b3919a8) )
  1428: 	ROM_LOAD( "6.bin",        0x2800, 0x0800, CRC(ba472ba5) SHA1(49be1500b3805a19c7210e53ad5c2c4a5876bf4e) )
  1429: 
  1430: 	ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )	/* sprites */
  1431: 	ROM_LOAD( "nml8.n2",      0x0000, 0x0800, CRC(739009b4) SHA1(bbabd6ce7b1ded025f20120adaebdb97fb755ef0) )
  1432: 	ROM_LOAD( "nml7.n1",      0x0800, 0x0800, CRC(d08ed22f) SHA1(33f450b6f63110bf804105280dc679f1591422f6) )
  1433: 
  1434: 	ROM_REGION( 0x0020, REGION_PROMS, 0 )
  1435: 	ROM_LOAD( "nml.d9",       0x0000, 0x0020, CRC(65e911f9) SHA1(6420a03195f63edeed17cc3a235e46e3f88d2037) )
  1436: 
  1437: 	ROM_REGION( 0x0400, REGION_USER1, 0 ) /* color map */
  1438: 	ROM_LOAD( "nl9.e2",       0x0000, 0x0400, CRC(9e05f14e) SHA1(76fc0b2b12cc9a0a64b539d2e75edefdb4a2ae61) )
  1439: 
  1440: 	ROM_REGION( 0x0800, REGION_USER2, 0 ) /* tree + river */
  1441: 	ROM_LOAD( "nl10.ic4",     0x0000, 0x0400, CRC(5b13f64e) SHA1(b04d2423fb443d46fff69c031b0312d956a5b789) )
  1442: 	ROM_LOAD( "nl11.ic7",     0x0400, 0x0400, CRC(e717b241) SHA1(6d234a75514e22d484dc027db5bb85cf8b58f4f2) )
  1443: ROM_END
  1444: 
  1445: ROM_START( nomnlndg )
  1446: 	ROM_REGION( 0x10000, REGION_CPU1, 0 )	/* 64k for code */
  1447: 	ROM_LOAD( "nml1.e3",      0x0000, 0x0800, CRC(e212ed91) SHA1(135c20fc97790769d5e1619d7ac844a1d3f6aace) )
  1448: 	ROM_LOAD( "nml2.e4",      0x0800, 0x0800, CRC(f66ef3d8) SHA1(c42a325dd952cda074ef2857e7fa5154f0b7c7ce) )
  1449: 	ROM_LOAD( "nml3.e5",      0x1000, 0x0800, CRC(d422fc8a) SHA1(18cafc462ce0800fea2af277439827dc1f4fc91b) )
  1450: 	ROM_LOAD( "nml5.e7",      0x1800, 0x0800, CRC(d58952ac) SHA1(1c82a49cc1f0203e6436c5292ebd6e9004bd6a84) )
  1451: 	ROM_LOAD( "nml4.e6",      0x2000, 0x0800, CRC(994c9afb) SHA1(c8e6af30d9b2cb5ca52fa325c6ac9a41413d067c) )
  1452: 	ROM_LOAD( "nml6.e8",      0x2800, 0x0800, CRC(01ed2d8c) SHA1(bfa31e9100a1f9276c521ed8699e1cb0d067e0fa) )
  1453: 
  1454: 	ROM_REGION( 0x1000, REGION_GFX1, ROMREGION_DISPOSE )	/* sprites */
  1455: 	ROM_LOAD( "nml8.n2",      0x0000, 0x0800, CRC(739009b4) SHA1(bbabd6ce7b1ded025f20120adaebdb97fb755ef0) )
  1456: 	ROM_LOAD( "nml7.n1",      0x0800, 0x0800, CRC(d08ed22f) SHA1(33f450b6f63110bf804105280dc679f1591422f6) )
  1457: 
  1458: 	ROM_REGION( 0x0020, REGION_PROMS, 0 )
  1459: 	ROM_LOAD( "nml.d9",       0x0000, 0x0020, CRC(65e911f9) SHA1(6420a03195f63edeed17cc3a235e46e3f88d2037) )
  1460: 
  1461: 	ROM_REGION( 0x0400, REGION_USER1, 0 ) /* color map */
  1462: 	ROM_LOAD( "nl9.e2",       0x0000, 0x0400, CRC(9e05f14e) SHA1(76fc0b2b12cc9a0a64b539d2e75edefdb4a2ae61) )
  1463: 
  1464: 	ROM_REGION( 0x0800, REGION_USER2, 0 ) /* tree + river */
  1465: 	ROM_LOAD( "nl10.ic4",     0x0000, 0x0400, CRC(5b13f64e) SHA1(b04d2423fb443d46fff69c031b0312d956a5b789) )
  1466: 	ROM_LOAD( "nl11.ic7",     0x0400, 0x0400, CRC(e717b241) SHA1(6d234a75514e22d484dc027db5bb85cf8b58f4f2) )
  1467: ROM_END
  1468: 
  1469: 
  1470: static DRIVER_INIT( cosmicg )
  1471: {
  1472: 	/* Program ROMs have data pins connected different from normal */
  1473: 
  1474: 	offs_t offs;
  1475: 
  1476:     for (offs =0; offs < memory_region_length(REGION_CPU1); offs++)
  1477: 	{
  1478:         data8_t scrambled = memory_region(REGION_CPU1)[offs];
  1479: 
  1480:         data8_t normal = (scrambled >> 3 & 0x11)
  1481:                        | (scrambled >> 1 & 0x22)
  1482:                        | (scrambled << 1 & 0x44)
  1483:                        | (scrambled << 3 & 0x88);
  1484: 
  1485:         memory_region(REGION_CPU1)[offs] = normal;
  1486:     }
  1487: 
  1488: 
  1489:     /* Patch to avoid crash - Seems like duff romcheck routine */
  1490:     /* I would expect it to be bitrot, but have two romsets    */
  1491:     /* from different sources with the same problem!           */
  1492:     memory_region(REGION_CPU1)[0x1e9e] = 0x04;
  1493:     memory_region(REGION_CPU1)[0x1e9f] = 0xc0;
  1494: }
  1495: 
  1496: 
  1497: static DRIVER_INIT( devzone )
  1498: {
  1499: 	install_mem_write_handler(0, 0x4807, 0x4807, cosmic_background_enable_w);
  1500: }
  1501: 
  1502: 
  1503: static DRIVER_INIT( nomnlnd )
  1504: {
  1505: 	install_mem_read_handler(0, 0x5000, 0x5001, nomnlnd_port_0_1_r);
  1506: 
  1507: 	install_mem_write_handler(0, 0x4807, 0x4807, cosmic_background_enable_w);
  1508: }
  1509: 
  1510: 
  1511: GAMEX(1979, cosmicg,  0,       cosmicg,  cosmicg,  cosmicg, ROT270, "Universal", "Cosmic Guerilla", GAME_NO_COCKTAIL )
  1512: GAMEX(1979, cosmica,  0,       cosmica,  cosmica,  0,       ROT270, "Universal", "Cosmic Alien", GAME_NO_SOUND )
  1513: GAMEX(1979, cosmica2, cosmica, cosmica,  cosmica,  0,       ROT270, "Universal", "Cosmic Alien (older)", GAME_NO_SOUND )
  1514: GAME( 1980, panic,    0,       panic,    panic,    0,       ROT270, "Universal", "Space Panic (version E)" )
  1515: GAME( 1980, panic2,   panic,   panic,    panic,    0,       ROT270, "Universal", "Space Panic (set 2)" )
  1516: GAME( 1980, panic3,   panic,   panic,    panic,    0,       ROT270, "Universal", "Space Panic (set 3)" )
  1517: GAME( 1980, panich,   panic,   panic,    panic,    0,       ROT270, "Universal", "Space Panic (harder)" )
  1518: GAME( 1980, panicger, panic,   panic,    panic,    0,       ROT270, "Universal (ADP Automaten license)", "Space Panic (German)" )
  1519: GAMEX(1980, magspot,  0,	   magspot2, magspot2, 0,       ROT270, "Universal", "Magical Spot", GAME_IMPERFECT_SOUND )
  1520: GAMEX(1980, magspot2, 0,       magspot2, magspot2, 0,       ROT270, "Universal", "Magical Spot II", GAME_IMPERFECT_SOUND )
  1521: GAMEX(1980, devzone,  0,       devzone,  devzone,  devzone, ROT270, "Universal", "Devil Zone", GAME_IMPERFECT_SOUND )
  1522: GAMEX(1980, devzone2, devzone, devzone,  devzone2, devzone, ROT270, "Universal", "Devil Zone (easier)", GAME_IMPERFECT_SOUND )
  1523: GAMEX(1980, nomnlnd,  0,       nomnlnd,  nomnlnd,  nomnlnd, ROT270, "Universal", "No Man's Land", GAME_IMPERFECT_SOUND )
  1524: GAMEX(1980, nomnlndg, nomnlnd, nomnlnd,  nomnlndg, nomnlnd, ROT270, "Universal (Gottlieb license)", "No Man's Land (Gottlieb)", GAME_IMPERFECT_SOUND )
  1525: 




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