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 : Super Pinball Action : VM Driver Source

Source Listing


     1: /*******************************************************************************
     2:  Super Pinball Action (c) 1991 Tecmo
     3: ********************************************************************************
     4:  driver by David Haywood
     5:  inputs, dipswitches etc by Stephh
     6: 
     7: -general info-------------------------------------------------------------------
     8: 
     9:  A Pinball Game from Tecmo, the Hardware seems to be somewhere between that used
    10:  for Tecmo's classic game Ninja Gaiden (see gaiden.c) and that used in Comad's
    11:  Gals Pinball (see galspnbl.c) I imagine Comad took the hardware that this uses
    12:  as a basis for writing their game on, adding a couple of features such as the
    13:  pixel layer.
    14: 
    15: -readme file--------------------------------------------------------------------
    16: 
    17:  Super Pinball Action
    18:  (c)1991 Tecmo
    19: 
    20:  CPU  : MC68000P12
    21:  Sound: Z80A YM3812 Y3014B M6295
    22:  OSC  : 12.000MHz 22.656MHz 4.00MHz
    23: 
    24:  ------
    25:  9002-A
    26:  ------
    27:  ROMs:
    28:  a-u68.1 - Main programs (27c101)
    29:  a-u67.2 /
    30: 
    31:  a-u14.3 - Sound program (27512)
    32: 
    33:  a-u19 - Samples (27c1001)
    34: 
    35:  1 custom chip (u94, surface scrached)
    36: 
    37:  ------
    38:  9002-B
    39:  ------
    40:  ROMs:
    41:  b-u98  - Graphics (Mask, read as 27c2001)
    42:  b-u99  |
    43:  b-u104 |
    44:  b-u105 /
    45: 
    46: 
    47:  b-u110 - Graphics (Mask, read as 27c2001)
    48:  b-u111 /
    49: 
    50:  Custom chips:
    51:  U101, U102, U106, U107: surface scrached
    52:  probably 2 pairs of TECMO-3&4
    53:  U133: surface scrached
    54:  probably TECMO-6
    55:  U112: TECMO-5
    56: 
    57:  --- Team Japump!!! ---
    58:  http://www.rainemu.com/japump/
    59:  http://japump.i.am/
    60:  Dumped by Noel Miruru
    61:  17/Oct/2000
    62: 
    63: -working notes------------------------------------------------------------------
    64: 
    65:  68k interrupts
    66:  lev 1 : 0x64 : ffff ffff - invalid
    67:  lev 2 : 0x68 : ffff ffff - invalid
    68:  lev 3 : 0x6c : 0000 1a0a - vblank?
    69:  lev 4 : 0x70 : ffff ffff - invalid
    70:  lev 5 : 0x74 : ffff ffff - invalid
    71:  lev 6 : 0x78 : 0000 1ab2 - writes to 90031
    72:  lev 7 : 0x7c : ffff ffff - invalid
    73: 
    74:  I can't use tilemap routines because they don't work with tiles having a
    75:  greater height than width, which is the case on this game once its rotated.
    76: 
    77: TODO : (also check the notes from the galspnbl.c driver)
    78: 
    79:   - coin insertion is not recognized consistenly.
    80:   - sprite/tile priority is sometimes wrong (see 1st table when ball in bumpers).
    81:   - lots of unknown writes, what are they meant to do
    82:   - verify some of the code which is from the other drivers such as sprite
    83:     drawing as priorities are questionable in places
    84:   - add support for blended sprites.
    85: 
    86: Unmapped writes (P.O.S.T.)
    87: 
    88: cpu #0 (PC=00001C3A): unmapped memory word write to 00090080 = 0F30 & FFFF
    89: cpu #0 (PC=00001C42): unmapped memory word write to 00090090 = 0E00 & FFFF
    90: cpu #0 (PC=00001C4A): unmapped memory word write to 000900A0 = 0F74 & FFFF
    91: cpu #0 (PC=00001C52): unmapped memory word write to 000900B0 = 0FBA & FFFF
    92: cpu #0 (PC=00001C5A): unmapped memory word write to 000900C0 = 0FDA & FFFF
    93: cpu #0 (PC=00001C62): unmapped memory word write to 000900D0 = 0F20 & FFFF
    94: cpu #0 (PC=00001C6A): unmapped memory word write to 000900E0 = 0FE7 & FFFF
    95: cpu #0 (PC=00001C72): unmapped memory word write to 000900F0 = 0FF1 & FFFF
    96: cpu #0 (PC=00001C7A): unmapped memory word write to 000A0110 = 0001 & FFFF
    97: cpu #0 (PC=00001C80): unmapped memory word write to 000A0010 = 0001 & FFFF
    98: cpu #0 (PC=00001C88): unmapped memory word write to 000A0200 = 001F & FFFF
    99: cpu #0 (PC=00001C90): unmapped memory word write to 000A0202 = 0010 & FFFF
   100: cpu #0 (PC=00001C98): unmapped memory word write to 000A0204 = 00E0 & FFFF
   101: cpu #0 (PC=00001CA0): unmapped memory word write to 000A0206 = 0001 & FFFF
   102: cpu #0 (PC=00002BFA): unmapped memory word write to 00090000 = 0000 & 00FF
   103: cpu #0 (PC=00002C08): unmapped memory word write to 000A0100 = FF85 & FFFF
   104: cpu #0 (PC=00002C10): unmapped memory word write to 000A0000 = FF85 & FFFF
   105: cpu #0 (PC=00002C18): unmapped memory word write to 000A0108 = 0010 & FFFF
   106: cpu #0 (PC=00002C20): unmapped memory word write to 000A0008 = 0010 & FFFF
   107: cpu #0 (PC=00002C28): unmapped memory word write to 000A0104 = 0000 & FFFF
   108: cpu #0 (PC=00002C2E): unmapped memory word write to 000A010C = 0000 & FFFF
   109: cpu #0 (PC=00002C34): unmapped memory word write to 000A0004 = 0000 & FFFF
   110: cpu #0 (PC=00002C3A): unmapped memory word write to 000A000C = 0000 & FFFF
   111: cpu #0 (PC=00002C42): unmapped memory word write to 00090050 = 0004 & 00FF
   112: cpu #0 (PC=00001A14): unmapped memory word write to 00090020 = 00AA & 00FF
   113: cpu #0 (PC=00001A1A): unmapped memory word write to 00090030 = 0055 & 00FF
   114: 
   115:    Unmapped writes (when Dip Switches are displayed)
   116: 
   117: cpu #0 (PC=00001A14): unmapped memory word write to 00090020 = 00FF & 00FF
   118: cpu #0 (PC=00001A1A): unmapped memory word write to 00090030 = 00FF & 00FF
   119: 
   120:    Unmapped writes (when grid is displayed)
   121: 
   122: cpu #0 (PC=0000326A): unmapped memory word write to 00090010 = 00FF & 00FF (only once)
   123: cpu #0 (PC=00001A14): unmapped memory word write to 00090020 = 00F6 & 00FF
   124: cpu #0 (PC=00001A1A): unmapped memory word write to 00090030 = 00F7 & 00FF
   125: 
   126: *******************************************************************************/
   127: 
   128: #include "driver.h" 
   129: 
   130: data16_t *spbactn_bgvideoram, *spbactn_fgvideoram, *spbactn_spvideoram;
   131: 
   132: VIDEO_START( spbactn );
   133: VIDEO_UPDATE( spbactn );
   134: 
   135: static WRITE16_HANDLER( soundcommand_w )
   136: {
   137: 	if (ACCESSING_LSB)
   138: 	{
   139: 		soundlatch_w(offset,data & 0xff);
   140: 		cpu_set_irq_line(1,IRQ_LINE_NMI,PULSE_LINE);
   141: 	}
   142: }
   143: 
   144: static MEMORY_READ16_START( spbactn_readmem )
   145: 	{ 0x00000, 0x3ffff, MRA16_ROM },
   146: 	{ 0x40000, 0x43fff, MRA16_RAM },
   147: 	{ 0x50000, 0x50fff, MRA16_RAM },
   148: 	{ 0x60000, 0x67fff, MRA16_RAM },
   149: 	{ 0x70000, 0x77fff, MRA16_RAM },
   150: 	{ 0x80000, 0x82fff, MRA16_RAM },
   151: 	{ 0x90000, 0x90001, input_port_0_word_r },
   152: 	{ 0x90010, 0x90011, input_port_1_word_r },
   153: 	{ 0x90020, 0x90021, input_port_2_word_r },
   154: 	{ 0x90030, 0x90031, input_port_4_word_r },
   155: 	{ 0x90040, 0x90041, input_port_3_word_r },
   156: MEMORY_END
   157: 
   158: static MEMORY_WRITE16_START( spbactn_writemem )
   159: 	{ 0x00000, 0x3ffff, MWA16_ROM },
   160: 	{ 0x40000, 0x43fff, MWA16_RAM },	// main ram
   161: 	{ 0x50000, 0x50fff, MWA16_RAM, &spbactn_spvideoram },
   162: 	{ 0x60000, 0x67fff, MWA16_RAM, &spbactn_fgvideoram },
   163: 	{ 0x70000, 0x77fff, MWA16_RAM, &spbactn_bgvideoram },
   164: 	{ 0x80000, 0x827ff, paletteram16_xxxxBBBBGGGGRRRR_word_w, &paletteram16 },
   165: 
   166: 	/* this is an awful lot of unknowns */
   167: 	{ 0x90000, 0x90001, MWA16_NOP },
   168: 	{ 0x90010, 0x90011, soundcommand_w },
   169: //	{ 0x90020, 0x90021, soundcommand_w },
   170: 	{ 0x90030, 0x90031, MWA16_NOP },
   171: 
   172: 	{ 0x90080, 0x90081, MWA16_NOP },
   173: 	{ 0x90090, 0x90091, MWA16_NOP },
   174: 	{ 0x900a0, 0x900a1, MWA16_NOP },
   175: 	{ 0x900b0, 0x900b1, MWA16_NOP },
   176: 	{ 0x900c0, 0x900c1, MWA16_NOP },
   177: 	{ 0x900d0, 0x900d1, MWA16_NOP },
   178: 	{ 0x900e0, 0x900e1, MWA16_NOP },
   179: 	{ 0x900f0, 0x900f1, MWA16_NOP },
   180: 
   181: 	{ 0xa0000, 0xa0001, MWA16_NOP },
   182: 	{ 0xa0004, 0xa0005, MWA16_NOP },
   183: 	{ 0xa0008, 0xa0009, MWA16_NOP },
   184: 	{ 0xa000c, 0xa000d, MWA16_NOP },
   185: 	{ 0xa0010, 0xa0011, MWA16_NOP },
   186: 
   187: 	{ 0xa0100, 0xa0101, MWA16_NOP },
   188: 	{ 0xa0104, 0xa0105, MWA16_NOP },
   189: 	{ 0xa0108, 0xa0109, MWA16_NOP },
   190: 	{ 0xa010c, 0xa010d, MWA16_NOP },
   191: 	{ 0xa0110, 0xa0111, MWA16_NOP },
   192: 
   193: 	{ 0xa0200, 0xa0201, MWA16_NOP },
   194: 	{ 0xa0202, 0xa0203, MWA16_NOP },
   195: 	{ 0xa0204, 0xa0205, MWA16_NOP },
   196: 	{ 0xa0206, 0xa0207, MWA16_NOP },
   197: MEMORY_END
   198: 
   199: static MEMORY_READ_START( sound_readmem )
   200: 	{ 0x0000, 0xefff, MRA_ROM },
   201: 	{ 0xf000, 0xf7ff, MRA_RAM },
   202: 	{ 0xf800, 0xf800, OKIM6295_status_0_r },
   203: 	{ 0xfc00, 0xfc00, MRA_NOP },	/* irq ack ?? */
   204: 	{ 0xfc20, 0xfc20, soundlatch_r },
   205: MEMORY_END
   206: 
   207: static MEMORY_WRITE_START( sound_writemem )
   208: 	{ 0x0000, 0xefff, MWA_ROM },
   209: 	{ 0xf000, 0xf7ff, MWA_RAM },
   210: 	{ 0xf800, 0xf800, OKIM6295_data_0_w },
   211: 	{ 0xf810, 0xf810, YM3812_control_port_0_w },
   212: 	{ 0xf811, 0xf811, YM3812_write_port_0_w },
   213: 	{ 0xfc00, 0xfc00, MWA_NOP },	/* irq ack ?? */
   214: MEMORY_END
   215: 
   216: INPUT_PORTS_START( spbactn )
   217: 	PORT_START	/* IN0 */
   218: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
   219: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
   220: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
   221: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
   222: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )		// Left flipper
   223: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )		// "Shake"
   224: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
   225: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
   226: 
   227: 	PORT_START	/* IN1 */
   228: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
   229: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
   230: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
   231: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
   232: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )		// "Shake" (duplicated)
   233: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )		// Right flipper
   234: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
   235: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
   236: 
   237: 	PORT_START	/* IN2 */
   238: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
   239: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
   240: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 )		// Press mulitple times for multiple players
   241: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
   242: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
   243: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
   244: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
   245: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
   246: 
   247: 	PORT_START	/* DSW1 */
   248: 	PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) )
   249: 	PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
   250: 	PORT_DIPSETTING(    0x03, DEF_STR( 3C_1C ) )
   251: 	PORT_DIPSETTING(    0x04, DEF_STR( 2C_1C ) )
   252: 	PORT_DIPSETTING(    0x01, "2 Coins/1 Credit 3/2" )
   253: 	PORT_DIPSETTING(    0x07, DEF_STR( 1C_1C ) )
   254: 	PORT_DIPSETTING(    0x05, "1 Coin/1 Credit 2/3" )
   255: 	PORT_DIPSETTING(    0x06, DEF_STR( 1C_2C ) )
   256: 	PORT_DIPSETTING(    0x00, "1 Coin/1 Credit 5/6" )
   257: 	PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) )
   258: 	PORT_DIPSETTING(    0x10, DEF_STR( 4C_1C ) )
   259: 	PORT_DIPSETTING(    0x18, DEF_STR( 3C_1C ) )
   260: 	PORT_DIPSETTING(    0x20, DEF_STR( 2C_1C ) )
   261: 	PORT_DIPSETTING(    0x08, "2 Coins/1 Credit 3/2" )
   262: 	PORT_DIPSETTING(    0x38, DEF_STR( 1C_1C ) )
   263: 	PORT_DIPSETTING(    0x28, "1 Coin/1 Credit 2/3" )
   264: 	PORT_DIPSETTING(    0x30, DEF_STR( 1C_2C ) )
   265: 	PORT_DIPSETTING(    0x00, "1 Coin/1 Credit 5/6" )
   266: 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) )		// Balls
   267: 	PORT_DIPSETTING(    0x00, "2" )
   268: 	PORT_DIPSETTING(    0xc0, "3" )
   269: 	PORT_DIPSETTING(    0x80, "4" )
   270: 	PORT_DIPSETTING(    0x40, "5" )
   271: 
   272: 	PORT_START	/* DSW2 */
   273: 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) )
   274: 	PORT_DIPSETTING(    0x02, "Easy" )
   275: 	PORT_DIPSETTING(    0x03, "Normal" )
   276: 	PORT_DIPSETTING(    0x01, "Hard" )
   277: 	PORT_DIPSETTING(    0x00, "Very Hard" )
   278: 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) )
   279: 	PORT_DIPSETTING(    0x04, "100k and 500k" )
   280: 	PORT_DIPSETTING(    0x0c, "200k and 800k" )
   281: 	PORT_DIPSETTING(    0x08, "200k" )
   282: 	PORT_DIPSETTING(    0x00, "None" )
   283: 	PORT_DIPNAME( 0x10, 0x10, "Hit Difficulty" )		// From .xls file - WHAT does that mean ?
   284: 	PORT_DIPSETTING(    0x10, "Normal" )
   285: 	PORT_DIPSETTING(    0x00, "Difficult" )
   286: 	PORT_DIPNAME( 0x20, 0x20, "Display Instructions" )	// "Change Software" in .xls file
   287: 	PORT_DIPSETTING(    0x00, DEF_STR( No ) )
   288: 	PORT_DIPSETTING(    0x20, DEF_STR( Yes ) )
   289: 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) )	// To be confirmed
   290: 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
   291: 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
   292: 	PORT_DIPNAME( 0x80, 0x80, "Match" )				// Check code at 0x00bf8c
   293: 	PORT_DIPSETTING(    0x80, "1/20" )
   294: 	PORT_DIPSETTING(    0x00, "1/40" )
   295: INPUT_PORTS_END
   296: 
   297: static struct GfxLayout fgtilelayout =
   298: {
   299: 	16,8,
   300: 	RGN_FRAC(1,2),
   301: 	4,
   302: 	{ 0, 1, 2, 3 },
   303: 	{ 0*4, 1*4, RGN_FRAC(1,2)+0*4, RGN_FRAC(1,2)+1*4, 2*4, 3*4, RGN_FRAC(1,2)+2*4, RGN_FRAC(1,2)+3*4,
   304: 			16*8+0*4, 16*8+1*4, 16*8+RGN_FRAC(1,2)+0*4, 16*8+RGN_FRAC(1,2)+1*4, 16*8+2*4, 16*8+3*4, 16*8+RGN_FRAC(1,2)+2*4, 16*8+RGN_FRAC(1,2)+3*4 },
   305: 	{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 },
   306: 	32*8
   307: };
   308: 
   309: static struct GfxLayout bgtilelayout =
   310: {
   311: 	16,8,
   312: 	RGN_FRAC(1,2),
   313: 	4,
   314: 	{ 3, 2, 1, 0 },
   315: 
   316: 	{ RGN_FRAC(1,2)+1*4, RGN_FRAC(1,2)+0*4, 1*4, 0*4,
   317: 	RGN_FRAC(1,2)+3*4, RGN_FRAC(1,2)+2*4, 3*4, 2*4,
   318: 	16*8+RGN_FRAC(1,2)+1*4,16*8+RGN_FRAC(1,2)+0*4, 16*8+1*4,16*8+0*4,
   319: 	16*8+RGN_FRAC(1,2)+3*4, 16*8+RGN_FRAC(1,2)+2*4, 16*8+3*4,16*8+2*4 },
   320: 
   321: 	{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 },
   322: 	32*8
   323: };
   324: 
   325: static struct GfxLayout spritelayout =
   326: {
   327: 	8,8,
   328: 	RGN_FRAC(1,2),
   329: 	4,
   330: 	{ 0, 1, 2, 3 },
   331: 	{ 0, 4, RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+4, 8+0, 8+4, 8+RGN_FRAC(1,2)+0, 8+RGN_FRAC(1,2)+4 },
   332: 	{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 },
   333: 	16*8
   334: };
   335: 
   336: static struct GfxDecodeInfo gfxdecodeinfo[] =
   337: {
   338: 	{ REGION_GFX1, 0, &fgtilelayout,   0x0200, 16384  },
   339: 	{ REGION_GFX2, 0, &bgtilelayout,   0x0300, 16384  },
   340: 	{ REGION_GFX3, 0, &spritelayout,   0x0000, 16384  },
   341: 	{ -1 } /* end of array */
   342: };
   343: 
   344: static void irqhandler(int linestate)
   345: {
   346: 	cpu_set_irq_line(1,0,linestate);
   347: }
   348: 
   349: static struct YM3812interface ym3812_interface =
   350: {
   351: 	1,			/* 1 chip */
   352: 	3579545,	/* 3.579545 MHz ? */
   353: 	{ 100 },	/* volume */
   354: 	{ irqhandler },
   355: };
   356: 
   357: static struct OKIM6295interface okim6295_interface =
   358: {
   359: 	1,					/* 1 chip */
   360: 	{ 8000 },			/* 8000Hz frequency? */
   361: 	{ REGION_SOUND1 },	/* memory region */
   362: 	{ 50 }
   363: };
   364: 
   365: static MACHINE_DRIVER_START( spbactn )
   366: 	/* basic machine hardware */
   367: 	MDRV_CPU_ADD(M68000, 12000000)
   368: 	MDRV_CPU_MEMORY(spbactn_readmem,spbactn_writemem)
   369: 	MDRV_CPU_VBLANK_INT(irq3_line_hold,1)
   370: 
   371: 	MDRV_CPU_ADD(Z80, 4000000)
   372: 	MDRV_CPU_FLAGS(CPU_AUDIO_CPU)	/* 4 MHz ??? */
   373: 	MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
   374: 
   375: 	MDRV_FRAMES_PER_SECOND(60)
   376: 	MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
   377: 
   378: 	/* video hardware */
   379: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_NEEDS_6BITS_PER_GUN | VIDEO_RGB_DIRECT)
   380: 	MDRV_SCREEN_SIZE(64*8, 32*8)
   381: 	MDRV_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
   382: 	MDRV_GFXDECODE(gfxdecodeinfo)
   383: 	MDRV_PALETTE_LENGTH(0x2800/2)
   384: 
   385: 	MDRV_VIDEO_START(spbactn)
   386: 	MDRV_VIDEO_UPDATE(spbactn)
   387: 
   388: 	/* sound hardware */
   389: 	MDRV_SOUND_ADD(YM3812, ym3812_interface)
   390: 	MDRV_SOUND_ADD(OKIM6295, okim6295_interface)
   391: MACHINE_DRIVER_END
   392: 
   393: ROM_START( spbactn )
   394: 	/* Board 9002-A (CPU Board) */
   395: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
   396: 	ROM_LOAD16_BYTE( "rom1.bin", 0x00000, 0x20000, CRC(6741bd3f) SHA1(844eb6465a15d339043fd6d2b6ba20ba216de493) )
   397: 	ROM_LOAD16_BYTE( "rom2.bin", 0x00001, 0x20000, CRC(488cc511) SHA1(41b4a01f35e0e93634b4843dbb894ab9840807bf) )
   398: 
   399: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )
   400: 	ROM_LOAD( "a-u14.3", 0x00000, 0x10000, CRC(57f4c503) SHA1(e5ddc63a43ba824bcaa4340eeba25a0d3f26cad9) )
   401: 
   402: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )
   403: 	ROM_LOAD( "a-u19",   0x00000, 0x20000,  CRC(87427d7d) SHA1(f76b0dc3f0d87deb0f0c81084aff9756b236e867) )
   404: 
   405: 	/* Board 9002-B (GFX Board) */
   406: 	ROM_REGION( 0x080000, REGION_GFX1, 0 ) /* 16x8 FG Tiles */
   407: 	ROM_LOAD( "b-u98",   0x00000, 0x40000, CRC(315eab4d) SHA1(6f812c85981dc649caca8b4635e3b8fd3a3c054d) )
   408: 	ROM_LOAD( "b-u99",   0x40000, 0x40000, CRC(7b76efd9) SHA1(9f23460aebe12cb5c4193776bf876d6044892979) )
   409: 
   410: 	ROM_REGION( 0x080000, REGION_GFX2, 0 ) /* 16x8 BG Tiles */
   411: 	ROM_LOAD( "b-u104",  0x00000, 0x40000, CRC(b648a40a) SHA1(1fb756dcd027a5702596e33bbe8a0beeb3ceb22b) )
   412: 	ROM_LOAD( "b-u105",  0x40000, 0x40000, CRC(0172d79a) SHA1(7ee1faa65c85860bd81988329df516bc34940ef5) )
   413: 
   414: 	ROM_REGION( 0x080000, REGION_GFX3, 0 ) /* 8x8 Sprite Tiles */
   415: 	ROM_LOAD( "b-u110",  0x00000, 0x40000, CRC(862ebacd) SHA1(05732e8524c50256c1db29317625d0edc19b87d2) )
   416: 	ROM_LOAD( "b-u111",  0x40000, 0x40000, CRC(1cc1379a) SHA1(44fdab8cb5ab1488688f1ac52f005454e835efee) )
   417: ROM_END
   418: 
   419: ROM_START( spbactnj )
   420: 	/* Board 9002-A (CPU Board) */
   421: 	ROM_REGION( 0x40000, REGION_CPU1, 0 )
   422: 	ROM_LOAD16_BYTE( "a-u68.1", 0x00000, 0x20000, CRC(b5b2d824) SHA1(be04ca370a381d7396f39e31fb2680973193daee) )
   423: 	ROM_LOAD16_BYTE( "a-u67.2", 0x00001, 0x20000, CRC(9577b48b) SHA1(291d890a9d0e434455f183eb12ae6edf3156688d) )
   424: 
   425: 	ROM_REGION( 0x10000, REGION_CPU2, 0 )
   426: 	ROM_LOAD( "a-u14.3", 0x00000, 0x10000, CRC(57f4c503) SHA1(e5ddc63a43ba824bcaa4340eeba25a0d3f26cad9) )
   427: 
   428: 	ROM_REGION( 0x20000, REGION_SOUND1, 0 )
   429: 	ROM_LOAD( "a-u19",   0x00000, 0x20000,  CRC(87427d7d) SHA1(f76b0dc3f0d87deb0f0c81084aff9756b236e867) )
   430: 
   431: 	/* Board 9002-B (GFX Board) */
   432: 	ROM_REGION( 0x080000, REGION_GFX1, 0 ) /* 16x8 FG Tiles */
   433: 	ROM_LOAD( "b-u98",   0x00000, 0x40000, CRC(315eab4d) SHA1(6f812c85981dc649caca8b4635e3b8fd3a3c054d) )
   434: 	ROM_LOAD( "b-u99",   0x40000, 0x40000, CRC(7b76efd9) SHA1(9f23460aebe12cb5c4193776bf876d6044892979) )
   435: 
   436: 	ROM_REGION( 0x080000, REGION_GFX2, 0 ) /* 16x8 BG Tiles */
   437: 	ROM_LOAD( "b-u104",  0x00000, 0x40000, CRC(b648a40a) SHA1(1fb756dcd027a5702596e33bbe8a0beeb3ceb22b) )
   438: 	ROM_LOAD( "b-u105",  0x40000, 0x40000, CRC(0172d79a) SHA1(7ee1faa65c85860bd81988329df516bc34940ef5) )
   439: 
   440: 	ROM_REGION( 0x080000, REGION_GFX3, 0 ) /* 8x8 Sprite Tiles */
   441: 	ROM_LOAD( "b-u110",  0x00000, 0x40000, CRC(862ebacd) SHA1(05732e8524c50256c1db29317625d0edc19b87d2) )
   442: 	ROM_LOAD( "b-u111",  0x40000, 0x40000, CRC(1cc1379a) SHA1(44fdab8cb5ab1488688f1ac52f005454e835efee) )
   443: ROM_END
   444: 
   445: GAMEX( 1991, spbactn, 0,        spbactn, spbactn, 0, ROT90, "Tecmo", "Super Pinball Action (US)", GAME_IMPERFECT_GRAPHICS )
   446: GAMEX( 1991, spbactnj, spbactn, spbactn, spbactn, 0, ROT90, "Tecmo", "Super Pinball Action (Japan)", GAME_IMPERFECT_GRAPHICS )
   447: 




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