QuarterArcade Coin-Op Tech Net

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

: : : VM Driver Source

Source Listing


     1: /*****************************************************************************
     2: 
     3: Strength & Skill (c) 1984 Sun Electronics
     4: 
     5: 	Driver by Uki
     6: 
     7: 	19/Jun/2001 -
     8: 
     9: *****************************************************************************/
    10: 
    11: #include "driver.h" 
    12: #include "vidhrdw/generic.h" 
    13: 
    14: static UINT8 *strnskil_sharedram;
    15: 
    16: /****************************************************************************/
    17: 
    18: extern WRITE_HANDLER( strnskil_videoram_w );
    19: extern WRITE_HANDLER( strnskil_scroll_x_w );
    20: extern WRITE_HANDLER( strnskil_scrl_ctrl_w );
    21: 
    22: extern PALETTE_INIT( strnskil );
    23: extern VIDEO_START( strnskil );
    24: extern VIDEO_UPDATE( strnskil );
    25: 
    26: WRITE_HANDLER( strnskil_sharedram_w )
    27: {
    28: 	strnskil_sharedram[offset] = data;
    29: }
    30: 
    31: READ_HANDLER( strnskil_sharedram_r )
    32: {
    33: 	return strnskil_sharedram[offset];
    34: }
    35: 
    36: READ_HANDLER( strnskil_d800_r )
    37: {
    38: /* bit0: interrupt type?, bit1: CPU2 busack? */
    39: 
    40: 	if (cpu_getiloops() == 0)
    41: 		return 0;
    42: 	return 1;
    43: }
    44: 
    45: /****************************************************************************/
    46: 
    47: static READ_HANDLER( protection_r )
    48: {
    49: 	int res;
    50: 
    51: 	switch (activecpu_get_pc())
    52: 	{
    53: 		case 0x6066:	res = 0xa5;	break;
    54: 		case 0x60dc:	res = 0x20;	break;	/* bits 0-3 unknown */
    55: 		case 0x615d:	res = 0x30;	break;	/* bits 0-3 unknown */
    56: 		case 0x61b9:	res = 0x60|(rand()&0x0f);	break;	/* bits 0-3 unknown */
    57: 		case 0x6219:	res = 0x77;	break;
    58: 		case 0x626c:	res = 0xb4;	break;
    59: 		default:		res = 0xff; break;
    60: 	}
    61: 
    62: 	logerror("%04x: protection_r -> %02x\n",activecpu_get_pc(),res);
    63: 	return res;
    64: }
    65: 
    66: static WRITE_HANDLER( protection_w )
    67: {
    68: 	logerror("%04x: protection_w %02x\n",activecpu_get_pc(),data);
    69: }
    70: 
    71: /****************************************************************************/
    72: 
    73: static MEMORY_READ_START( strnskil_readmem1 )
    74: 	{ 0x0000, 0x9fff, MRA_ROM },
    75: 
    76: 	{ 0xc000, 0xc7ff, MRA_RAM },
    77: 	{ 0xc800, 0xcfff, strnskil_sharedram_r },
    78: 	{ 0xd000, 0xd7ff, MRA_RAM }, /* videoram */
    79: 
    80: 	{ 0xd800, 0xd800, strnskil_d800_r },
    81: 	{ 0xd801, 0xd801, input_port_0_r }, /* dsw 1 */
    82: 	{ 0xd802, 0xd802, input_port_1_r }, /* dsw 2 */
    83: 	{ 0xd803, 0xd803, input_port_4_r }, /* other inputs */
    84: 	{ 0xd804, 0xd804, input_port_2_r }, /* player1 */
    85: 	{ 0xd805, 0xd805, input_port_3_r }, /* player2 */
    86: 
    87: 	{ 0xd806, 0xd806, protection_r }, /* protection data read (pettanp) */
    88: MEMORY_END
    89: 
    90: static MEMORY_WRITE_START( strnskil_writemem1 )
    91: 	{ 0x0000, 0x9fff, MWA_ROM },
    92: 
    93: 	{ 0xc000, 0xc7ff, MWA_RAM },
    94: 	{ 0xc800, 0xcfff, strnskil_sharedram_w },
    95: 	{ 0xd000, 0xd7ff, strnskil_videoram_w, &videoram },
    96: 
    97: 	{ 0xd808, 0xd808, strnskil_scrl_ctrl_w },
    98: 	{ 0xd809, 0xd809, MWA_NOP }, /* coin counter? */
    99: 	{ 0xd80a, 0xd80b, strnskil_scroll_x_w },
   100: 
   101: //	{ 0xd80c, 0xd80c, MWA_NOP },		/* protection reset? */
   102: 	{ 0xd80d, 0xd80d, protection_w },	/* protection data write (pettanp) */
   103: MEMORY_END
   104: 
   105: static MEMORY_READ_START( strnskil_readmem2 )
   106: 	{ 0x0000, 0x5fff, MRA_ROM },
   107: 	{ 0xc000, 0xc7ff, spriteram_r },
   108: 	{ 0xc800, 0xcfff, MRA_RAM },
   109: MEMORY_END
   110: 
   111: static MEMORY_WRITE_START( strnskil_writemem2 )
   112: 	{ 0x0000, 0x5fff, MWA_ROM },
   113: 	{ 0xc000, 0xc7ff, MWA_RAM, &spriteram, &spriteram_size },
   114: 	{ 0xc800, 0xcfff, MWA_RAM, &strnskil_sharedram },
   115: 
   116: 	{ 0xd801, 0xd801, SN76496_0_w },
   117: 	{ 0xd802, 0xd802, SN76496_1_w },
   118: MEMORY_END
   119: 
   120: 
   121: /****************************************************************************/
   122: 
   123: INPUT_PORTS_START( strnskil )
   124: 	PORT_START  /* dsw1 */
   125: 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )
   126: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
   127: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   128: 	PORT_DIPNAME( 0x02, 0x00, "Unknown 1-2" )
   129: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
   130: 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
   131: 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Flip_Screen ) )
   132: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
   133: 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
   134: 	PORT_DIPNAME( 0x08, 0x00, "Unknown 1-4" )
   135: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
   136: 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
   137: 	PORT_DIPNAME( 0xf0, 0x00, "Coin1 / Coin2" )
   138: 	PORT_DIPSETTING(    0x00, "1C 1C / 1C 1C" )
   139: 	PORT_DIPSETTING(    0x10, "2C 1C / 2C 1C" )
   140: 	PORT_DIPSETTING(    0x20, "2C 1C / 1C 3C" )
   141: 	PORT_DIPSETTING(    0x30, "1C 1C / 1C 2C" )
   142: 	PORT_DIPSETTING(    0x40, "1C 1C / 1C 3C" )
   143: 	PORT_DIPSETTING(    0x50, "1C 1C / 1C 4C" )
   144: 	PORT_DIPSETTING(    0x60, "1C 1C / 1C 5C" )
   145: 	PORT_DIPSETTING(    0x70, "1C 1C / 1C 6C" )
   146: 	PORT_DIPSETTING(    0x80, "1C 2C / 1C 2C" )
   147: 	PORT_DIPSETTING(    0x90, "1C 2C / 1C 4C" )
   148: 	PORT_DIPSETTING(    0xa0, "1C 2C / 1C 5C" )
   149: 	PORT_DIPSETTING(    0xb0, "1C 2C / 1C 10C" )
   150: 	PORT_DIPSETTING(    0xc0, "1C 2C / 1C 11C" )
   151: 	PORT_DIPSETTING(    0xd0, "1C 2C / 1C 12C" )
   152: 	PORT_DIPSETTING(    0xe0, "1C 2C / 1C 6C" )
   153: 	PORT_DIPSETTING(    0xf0, DEF_STR( Free_Play ) )
   154: 
   155: 	PORT_START  /* dsw2 */
   156: 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Difficulty ) )
   157: 	PORT_DIPSETTING(    0x00, "Normal" )
   158: 	PORT_DIPSETTING(    0x01, "Hard" )
   159: 	PORT_DIPNAME( 0x02, 0x00, "Unknown 2-2" )
   160: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
   161: 	PORT_DIPSETTING(    0x02, DEF_STR( On ) )
   162: 	PORT_DIPNAME( 0x04, 0x00, "Unknown 2-3" )
   163: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
   164: 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
   165: 	PORT_DIPNAME( 0x08, 0x00, "Unknown 2-4" )
   166: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
   167: 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
   168: 	PORT_DIPNAME( 0x10, 0x00, "Unknown 2-5" )
   169: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
   170: 	PORT_DIPSETTING(    0x10, DEF_STR( On ) )
   171: 	PORT_DIPNAME( 0x20, 0x00, "Unknown 2-6" )
   172: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
   173: 	PORT_DIPSETTING(    0x20, DEF_STR( On ) )
   174: 	PORT_DIPNAME( 0x40, 0x00, "Unknown 2-7" )
   175: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
   176: 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
   177: 	PORT_DIPNAME( 0x80, 0x00, "Freeze" )
   178: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
   179: 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
   180: 
   181: 	PORT_START /* d804 */
   182: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   183: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   184: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 )
   185: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
   186: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY )
   187: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY )
   188: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY )
   189: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY )
   190: 
   191: 	PORT_START /* d805 */
   192: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   193: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   194: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_COCKTAIL )
   195: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_COCKTAIL )
   196: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_COCKTAIL )
   197: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_COCKTAIL )
   198: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_COCKTAIL )
   199: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
   200: 
   201: 	PORT_START /* d803 */
   202: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SERVICE1 )
   203: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   204: 	PORT_SERVICE( 0x20, IP_ACTIVE_HIGH )
   205: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   206: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 )
   207: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
   208: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
   209: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
   210: INPUT_PORTS_END
   211: 
   212: INPUT_PORTS_START( pettanp )
   213: 	PORT_START  /* dsw1 */
   214: 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Lives ) )
   215: 	PORT_DIPSETTING(    0x00, "3" )
   216: 	PORT_DIPSETTING(    0x01, "5" )
   217: 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet ) )
   218: 	PORT_DIPSETTING(    0x02, DEF_STR( Upright ) )
   219: 	PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
   220: 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Flip_Screen ) )
   221: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
   222: 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
   223: 	PORT_DIPNAME( 0x08, 0x00, "Unknown 1-4" )
   224: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
   225: 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
   226: 	PORT_DIPNAME( 0xf0, 0x00, "Coin1 / Coin2" )
   227: 	PORT_DIPSETTING(    0x00, "1C 1C / 1C 1C" )
   228: 	PORT_DIPSETTING(    0x10, "2C 1C / 2C 1C" )
   229: 	PORT_DIPSETTING(    0x20, "2C 1C / 1C 3C" )
   230: 	PORT_DIPSETTING(    0x30, "1C 1C / 1C 2C" )
   231: 	PORT_DIPSETTING(    0x40, "1C 1C / 1C 3C" )
   232: 	PORT_DIPSETTING(    0x50, "1C 1C / 1C 4C" )
   233: 	PORT_DIPSETTING(    0x60, "1C 1C / 1C 5C" )
   234: 	PORT_DIPSETTING(    0x70, "1C 1C / 1C 6C" )
   235: 	PORT_DIPSETTING(    0x80, "1C 2C / 1C 2C" )
   236: 	PORT_DIPSETTING(    0x90, "1C 2C / 1C 4C" )
   237: 	PORT_DIPSETTING(    0xa0, "1C 2C / 1C 5C" )
   238: 	PORT_DIPSETTING(    0xb0, "1C 2C / 1C 10C" )
   239: 	PORT_DIPSETTING(    0xc0, "1C 2C / 1C 11C" )
   240: 	PORT_DIPSETTING(    0xd0, "1C 2C / 1C 12C" )
   241: 	PORT_DIPSETTING(    0xe0, "1C 2C / 1C 6C" )
   242: 	PORT_DIPSETTING(    0xf0, DEF_STR( Free_Play ) )
   243: 
   244: 	PORT_START  /* dsw2 */
   245: 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )
   246: 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
   247: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   248: 	PORT_DIPNAME( 0x06, 0x00, DEF_STR( Bonus_Life ) )
   249: 	PORT_DIPSETTING(    0x00, "20000 50000" )
   250: 	PORT_DIPSETTING(    0x02, "20000 80000" )
   251: 	PORT_DIPSETTING(    0x04, "20000" )
   252: 	PORT_DIPSETTING(    0x06, "None" )
   253: 	PORT_DIPNAME( 0x08, 0x00, "Second Practice" )
   254: 	PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
   255: 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
   256: 	PORT_DIPNAME( 0x10, 0x00, "Unknown 2-5" )
   257: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
   258: 	PORT_DIPSETTING(    0x10, DEF_STR( On ) )
   259: 	PORT_DIPNAME( 0x20, 0x00, "Unknown 2-6" )
   260: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
   261: 	PORT_DIPSETTING(    0x20, DEF_STR( On ) )
   262: 	PORT_DIPNAME( 0x40, 0x00, "Unknown 2-7" )
   263: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
   264: 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
   265: 	PORT_DIPNAME( 0x80, 0x00, "Freeze" )
   266: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
   267: 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
   268: 
   269: 	PORT_START /* d804 */
   270: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   271: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   272: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   273: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
   274: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_4WAY )
   275: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_4WAY )
   276: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_4WAY )
   277: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_4WAY )
   278: 
   279: 	PORT_START /* d805 */
   280: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   281: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   282: 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   283: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_COCKTAIL )
   284: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
   285: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
   286: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
   287: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
   288: 
   289: 	PORT_START /* d803 */
   290: 	PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SERVICE1 )
   291: 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   292: 	PORT_SERVICE( 0x20, IP_ACTIVE_HIGH )
   293: 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
   294: 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 )
   295: 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
   296: 	PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
   297: 	PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
   298: INPUT_PORTS_END
   299: 
   300: /****************************************************************************/
   301: 
   302: static struct GfxLayout charlayout =
   303: {
   304: 	8,8,    /* 8*8 characters */
   305: 	1024,   /* 1024 characters */
   306: 	3,      /* 3 bits per pixel */
   307: 	{0,8192*8,8192*8*2},
   308: 	{7,6,5,4,3,2,1,0},
   309: 	{8*0, 8*1, 8*2, 8*3, 8*4, 8*5, 8*6, 8*7},
   310: 	8*8
   311: };
   312: 
   313: static struct GfxLayout spritelayout =
   314: {
   315: 	16,16,  /* 16*16 characters */
   316: 	256,    /* 256 characters */
   317: 	3,      /* 3 bits per pixel */
   318: 	{8192*8*2,8192*8,0},
   319: 	{7,6,5,4,3,2,1,0,
   320: 		8*16+7,8*16+6,8*16+5,8*16+4,8*16+3,8*16+2,8*16+1,8*16+0},
   321: 	{8*0, 8*1, 8*2, 8*3, 8*4, 8*5, 8*6, 8*7,
   322: 		8*8,8*9,8*10,8*11,8*12,8*13,8*14,8*15},
   323: 	8*8*4
   324: };
   325: 
   326: static struct GfxDecodeInfo gfxdecodeinfo[] =
   327: {
   328: 	{ REGION_GFX2, 0x0000, &charlayout,   512, 64 },
   329: 	{ REGION_GFX1, 0x0000, &spritelayout, 0,   64 },
   330: 	{ -1 } /* end of array */
   331: };
   332: 
   333: 
   334: static struct SN76496interface sn76496_interface =
   335: {
   336: 	2,	/* 2 chips */
   337: 	{ 8000000/4, 8000000/2 },
   338: 	{ 75, 75 }
   339: };
   340: 
   341: 
   342: static MACHINE_DRIVER_START( strnskil )
   343: 
   344: 	/* basic machine hardware */
   345: 	MDRV_CPU_ADD(Z80,8000000/2) /* 4.000MHz */
   346: 	MDRV_CPU_MEMORY(strnskil_readmem1,strnskil_writemem1)
   347: 	MDRV_CPU_VBLANK_INT(irq0_line_hold,2)
   348: 
   349: 	MDRV_CPU_ADD(Z80,8000000/2) /* 4.000MHz */
   350: 	MDRV_CPU_MEMORY(strnskil_readmem2,strnskil_writemem2)
   351: 	MDRV_CPU_VBLANK_INT(irq0_line_hold,2)
   352: 
   353: 	MDRV_FRAMES_PER_SECOND(60)
   354: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
   355: 	MDRV_INTERLEAVE(100)
   356: 
   357: 	/* video hardware */
   358: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
   359: 	MDRV_SCREEN_SIZE(32*8, 32*8)
   360: 	MDRV_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
   361: 	MDRV_GFXDECODE(gfxdecodeinfo)
   362: 	MDRV_PALETTE_LENGTH(256)
   363: 	MDRV_COLORTABLE_LENGTH(1024)
   364: 
   365: 	MDRV_PALETTE_INIT(strnskil)
   366: 	MDRV_VIDEO_START(strnskil)
   367: 	MDRV_VIDEO_UPDATE(strnskil)
   368: 
   369: 	/* sound hardware */
   370: 	MDRV_SOUND_ADD(SN76496, sn76496_interface)
   371: MACHINE_DRIVER_END
   372: 
   373: /****************************************************************************/
   374: 
   375: ROM_START( strnskil )
   376: 	ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* main CPU */
   377: 	ROM_LOAD( "tvg3.7",  0x0000,  0x2000, CRC(31fd793a) SHA1(b86efe8ea60edf414a23fb6abc09db691c085fe9) )
   378: 	ROM_CONTINUE(        0x8000,  0x2000 )
   379: 	ROM_LOAD( "tvg4.8",  0x2000,  0x2000, CRC(c58315b5) SHA1(2039cd89ef59d05f353f6c367fa851c0f60cdc4a) )
   380: 	ROM_LOAD( "tvg5.9",  0x4000,  0x2000, CRC(29e7ded5) SHA1(6eae5988139f22c3ff166192e4fda77db38a79bc) )
   381: 	ROM_LOAD( "tvg6.10", 0x6000,  0x2000, CRC(8b126a4b) SHA1(68b617c5dc120c777e152919cba9daeaf3ceac5f) )
   382: 
   383: 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sub CPU */
   384: 	ROM_LOAD( "tvg1.2",  0x0000,  0x2000, CRC(b586b753) SHA1(7c9891fb279b1323c059ffdcf7c009bf971037be) )
   385: 	ROM_LOAD( "tvg2.3",  0x2000,  0x2000, CRC(8bd71bb6) SHA1(cc35e1e4cbb893ab04f1b6ceef0a050243e3b462) )
   386: 
   387: 	ROM_REGION( 0x6000, REGION_GFX1, ROMREGION_DISPOSE ) /* sprite */
   388: 	ROM_LOAD( "tvg7.90",   0x0000,  0x2000, CRC(ee3bd593) SHA1(398e426e53695cc184d5a2750fd32a1c2c68bf30) )
   389: 	ROM_LOAD( "tvg8.92",   0x2000,  0x2000, CRC(1b265360) SHA1(fbc64c504639106c1813bf91bd31bda1ce4c7ffe) )
   390: 	ROM_LOAD( "tvg9.94",   0x4000,  0x2000, CRC(776c7ca6) SHA1(23fd1ac15395822b318db4435e48dd4e0e3e61de) )
   391: 
   392: 	ROM_REGION( 0x6000, REGION_GFX2, ROMREGION_DISPOSE ) /* bg */
   393: 	ROM_LOAD( "tvg12.102", 0x0000,  0x2000, CRC(68b9d888) SHA1(7a4071fe882c1949979f97a020d7c6e95643ef42) )
   394: 	ROM_LOAD( "tvg11.101", 0x2000,  0x2000, CRC(7f2179ff) SHA1(24fab1f4430ae883bc1f477d3df7643e06c67349) )
   395: 	ROM_LOAD( "tvg10.100", 0x4000,  0x2000, CRC(321ad963) SHA1(9b50fbf0c3b4ce7ce3c68339b99a2ccadef4646f) )
   396: 
   397: 	ROM_REGION( 0x0800, REGION_PROMS, 0 ) /* color PROMs */
   398: 	ROM_LOAD( "15-3.prm", 0x0000,  0x0100, CRC(dbcd3bec) SHA1(1baeec277b16c82b67e10da9d4c84cf383ef4a82) ) /* R */
   399: 	ROM_LOAD( "15-4.prm", 0x0100,  0x0100, CRC(9eb7b6cf) SHA1(86451e8a510f8cfbc0be7d4e7bb1ee7dfd67f1f4) ) /* G */
   400: 	ROM_LOAD( "15-5.prm", 0x0200,  0x0100, CRC(9b30a7f3) SHA1(a0aefc2c8325b95ea227e404583d14622b04a3b9) ) /* B */
   401: 	ROM_LOAD( "15-1.prm", 0x0300,  0x0200, CRC(d4f5b3d7) SHA1(9a244c77a752df655ff756e063d56c2c767e37d9) ) /* sprite */
   402: 	ROM_LOAD( "15-2.prm", 0x0500,  0x0200, CRC(cdffede9) SHA1(3ecdf91e3f78eb6cdd3a6f58d1a89d448a676c52) ) /* bg */
   403: 
   404: 	ROM_REGION( 0x0100, REGION_USER1, 0 ) /* scroll control PROM */
   405: 	ROM_LOAD( "15-6.prm", 0x0000,  0x0100, CRC(ec4faf5b) SHA1(7ebbf50807d04105ebadec91bded069408e399ba) )
   406: ROM_END
   407: 
   408: ROM_START( guiness )
   409: 	ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* main CPU */
   410: 	ROM_LOAD( "tvg3.15", 0x0000,  0x2000, CRC(3a605ad8) SHA1(f6e2dd4989fdb68bc55857f5a8f06601416139d5) )
   411: 	ROM_CONTINUE(        0x8000,  0x2000 )
   412: 	ROM_LOAD( "tvg4.8",  0x2000,  0x2000, CRC(c58315b5) SHA1(2039cd89ef59d05f353f6c367fa851c0f60cdc4a) )
   413: 	ROM_LOAD( "tvg5.9",  0x4000,  0x2000, CRC(29e7ded5) SHA1(6eae5988139f22c3ff166192e4fda77db38a79bc) )
   414: 	ROM_LOAD( "tvg6.10", 0x6000,  0x2000, CRC(8b126a4b) SHA1(68b617c5dc120c777e152919cba9daeaf3ceac5f) )
   415: 
   416: 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sub CPU */
   417: 	ROM_LOAD( "tvg1.2",  0x0000,  0x2000, CRC(b586b753) SHA1(7c9891fb279b1323c059ffdcf7c009bf971037be) )
   418: 	ROM_LOAD( "tvg2.3",  0x2000,  0x2000, CRC(8bd71bb6) SHA1(cc35e1e4cbb893ab04f1b6ceef0a050243e3b462) )
   419: 
   420: 	ROM_REGION( 0x6000, REGION_GFX1, ROMREGION_DISPOSE ) /* sprite */
   421: 	ROM_LOAD( "tvg7.90",   0x0000,  0x2000, CRC(ee3bd593) SHA1(398e426e53695cc184d5a2750fd32a1c2c68bf30) )
   422: 	ROM_LOAD( "tvg8.92",   0x2000,  0x2000, CRC(1b265360) SHA1(fbc64c504639106c1813bf91bd31bda1ce4c7ffe) )
   423: 	ROM_LOAD( "tvg9.94",   0x4000,  0x2000, CRC(776c7ca6) SHA1(23fd1ac15395822b318db4435e48dd4e0e3e61de) )
   424: 
   425: 	ROM_REGION( 0x6000, REGION_GFX2, ROMREGION_DISPOSE ) /* bg */
   426: 	ROM_LOAD( "tvg12.15", 0x0000,  0x2000, CRC(a82c923d) SHA1(2bd2b028d782fac18f2fe9c9ef73ce0af67db347) )
   427: 	ROM_LOAD( "tvg11.15", 0x2000,  0x2000, CRC(d432c96f) SHA1(0d4b3af778dbd40bc26bad4c673a9ce1ef537c04) )
   428: 	ROM_LOAD( "tvg10.15", 0x4000,  0x2000, CRC(a53959d6) SHA1(cdf7acf1a75d83b259948c482f06543624a695a3) )
   429: 
   430: 	ROM_REGION( 0x0800, REGION_PROMS, 0 ) /* color PROMs */
   431: 	ROM_LOAD( "15-3.prm", 0x0000,  0x0100, CRC(dbcd3bec) SHA1(1baeec277b16c82b67e10da9d4c84cf383ef4a82) ) /* R */
   432: 	ROM_LOAD( "15-4.prm", 0x0100,  0x0100, CRC(9eb7b6cf) SHA1(86451e8a510f8cfbc0be7d4e7bb1ee7dfd67f1f4) ) /* G */
   433: 	ROM_LOAD( "15-5.prm", 0x0200,  0x0100, CRC(9b30a7f3) SHA1(a0aefc2c8325b95ea227e404583d14622b04a3b9) ) /* B */
   434: 	ROM_LOAD( "15-1.prm", 0x0300,  0x0200, CRC(d4f5b3d7) SHA1(9a244c77a752df655ff756e063d56c2c767e37d9) ) /* sprite */
   435: 	ROM_LOAD( "15-2.prm", 0x0500,  0x0200, CRC(cdffede9) SHA1(3ecdf91e3f78eb6cdd3a6f58d1a89d448a676c52) ) /* bg */
   436: 
   437: 	ROM_REGION( 0x0100, REGION_USER1, 0 ) /* scroll control PROM */
   438: 	ROM_LOAD( "15-6.prm", 0x0000,  0x0100, CRC(ec4faf5b) SHA1(7ebbf50807d04105ebadec91bded069408e399ba) )
   439: ROM_END
   440: 
   441: ROM_START( pettanp )
   442: 	ROM_REGION( 0x10000, REGION_CPU1, 0 ) /* main CPU */
   443: 	ROM_LOAD( "tvg2-16a.7",  0x0000,  0x2000, CRC(4cbbbd01) SHA1(3905cf9e9d324bb23688ab29c98d71529d3dbf0c) )
   444: 	ROM_CONTINUE(            0x8000,  0x2000 )
   445: 	ROM_LOAD( "tvg3-16a.8",  0x2000,  0x2000, CRC(aaa0420f) SHA1(aa7ead51002f8b1bbefd07ff23b9064804fc31b3) )
   446: 	ROM_LOAD( "tvg4-16a.9",  0x4000,  0x2000, CRC(43306369) SHA1(1eadebd3d962da49fd204eff8692f1e1a1e3cc98) )
   447: 	ROM_LOAD( "tvg5-16a.10", 0x6000,  0x2000, CRC(da9c635f) SHA1(3c084ad159dbabfd02a9772489c3193852d135b7) )
   448: 
   449: 	ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* sub CPU */
   450: 	ROM_LOAD( "tvg1-16.2",   0x0000,  0x2000, CRC(e36009f6) SHA1(72c485e8c19fbfc9c850094cfd87f1055154c0c5) )
   451: 
   452: 	ROM_REGION( 0x6000, REGION_GFX1, ROMREGION_DISPOSE ) /* sprite */
   453: 	ROM_LOAD( "tvg6-16.90",  0x0000,  0x2000, CRC(6905d9d5) SHA1(586bf72bab5ab6e3e319c925decc16d7f3711af1) )
   454: 	ROM_LOAD( "tvg7-16.92",  0x2000,  0x2000, CRC(40d02bfd) SHA1(2f6ca8197048318f7900b56169aba4c9fdf48693) )
   455: 	ROM_LOAD( "tvg8-16.94",  0x4000,  0x2000, CRC(b18a2244) SHA1(168061e050530e6a5bc78c14a64e635370256dfd) )
   456: 
   457: 	ROM_REGION( 0x6000, REGION_GFX2, ROMREGION_DISPOSE ) /* bg */
   458: 	ROM_LOAD( "tvg11-16.102",0x0000,  0x2000, CRC(327b7a29) SHA1(4b8d57607c4a1e84c630c38eba3fa90b5496dcde) )
   459: 	ROM_LOAD( "tvg10-16.101",0x2000,  0x2000, CRC(624ac061) SHA1(9d479a8a256a8ff37c00bc7449b11357f9fe6cdc) )
   460: 	ROM_LOAD( "tvg9-16.100", 0x4000,  0x2000, CRC(c477e74c) SHA1(864eddcd9c817aeecb09423071f87d3b39eb5fc4) )
   461: 
   462: 	ROM_REGION( 0x0700, REGION_PROMS, 0 ) /* color PROMs */
   463: 	ROM_LOAD( "16-3.66",  0x0000,  0x0100, CRC(dbcd3bec) SHA1(1baeec277b16c82b67e10da9d4c84cf383ef4a82) ) /* R */
   464: 	ROM_LOAD( "16-4.67",  0x0100,  0x0100, CRC(9eb7b6cf) SHA1(86451e8a510f8cfbc0be7d4e7bb1ee7dfd67f1f4) ) /* G */
   465: 	ROM_LOAD( "16-5.68",  0x0200,  0x0100, CRC(9b30a7f3) SHA1(a0aefc2c8325b95ea227e404583d14622b04a3b9) ) /* B */
   466: 	ROM_LOAD( "16-1.148", 0x0300,  0x0200, CRC(777e2770) SHA1(7f4ef42ab4e0546c2932d498cf573bd4f4296db7) ) /* sprite */
   467: 	ROM_LOAD( "16-2.97",  0x0500,  0x0200, CRC(7f95d4b2) SHA1(68dc311739a4d5d72f4cfbace27f3a82f05316ff) ) /* bg */
   468: 
   469: 	ROM_REGION( 0x0100, REGION_USER1, 0 ) /* scroll control PROM */
   470: //	ROM_LOAD( "16-6",     0x0000,  0x0100, NO_DUMP )
   471: 
   472: 	ROM_REGION( 0x1000, REGION_USER2, 0 ) /* protection? */
   473: 	ROM_LOAD( "tvg12-16.2", 0x0000,  0x1000, CRC(3abc6ba8) SHA1(15e0b0f9d068f6094e2be4f4f1dea0ff6e85686b) )
   474: ROM_END
   475: 
   476: GAME(  1984, strnskil, 0,        strnskil, strnskil, 0, ROT0, "Sun Electronics", "Strength & Skill" )
   477: GAME(  1984, guiness,  strnskil, strnskil, strnskil, 0, ROT0, "Sun Electronics", "The Guiness (Japan)" )
   478: GAMEX( 1984, pettanp,  0,        strnskil, pettanp,  0, ROT0, "Sun Electronics", "Pettan Pyuu (Japan)", GAME_UNEMULATED_PROTECTION )
   479: 




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