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

Source Listing


     1: /***************************************************************************
     2: Namco System 21
     3: 
     4: 	There are at least three hardware variations, all of which are based on
     5: 	Namco System2:
     6: 
     7: 	1. Winning Run was a mass-produced prototype
     8: 		(point ROMs and 2d sprites are different format)
     9: 
    10: 	2. Cyber Sled uses 4xTMS320C25
    11: 
    12: 	3. Starblade uses 5xTMS320C20
    13: 
    14: 
    15: Known Issues:
    16:   - The sprite layer's (tx,ty) registers are currently hacked for each game.
    17: 
    18:   - There's some low level rendering glitches (namcos3d.c)
    19: 	ROLT (roll type) specifies the order in which rotation transformations
    20: 	should be applied, i.e. xyz or xzy (matrix multiplication is not associative).
    21: 	The current meaning of ROLT seems to be consistant across System21 games, and even
    22: 	System22, but it's surely not 100% correct in the current implementation -
    23: 	There are some suspiciously oriented objects.
    24: 
    25:   - Starblade has some missing background graphics (i.e. the spaceport runway at
    26: 	beginning of stage#1, various large startship cruisers drifting in space, etc.
    27: 	The main CPU doesn't include information for these objects in its display list, nor
    28: 	does it seem to pass any temporal parameters to the DSP.
    29: 
    30:   	I think these things rely on custom DSP code/data written by the main CPU on startup,
    31: 	though I'd love to be proven wrong.  Consider that some of the other games (including
    32: 	Starblade itself) render comparably complex scenes all explicitly described by the
    33: 	the object display list.
    34: 
    35:   - Starblade's point ROMs frequently contain an apparently garbage value in the most
    36:   	significant byte, but the ROMs have been confirmed to be good.  We currently mask it
    37:   	out, depending on rendering context.
    38: 
    39:   - Starblade (and probably other games) writes a lot of data/code to the DSP processors on
    40: 	startup.  Once it is disassembled and understood, it may be possible to insert a
    41: 	trojan to fetch the DSP kernel ROM code, and faithfully emulate all aspects of
    42: 	the system.
    43: 
    44:   - Solvalou does some interesting communication with the DSP processors on startup, and
    45:   	refuses to run if a problem occurs.  The routines testing the return code have been
    46:   	patched out for now.
    47: 
    48:   - Possible bad sprite banking: see CyberSled title screen
    49: 
    50:   - Some incorrect polygon colors in CyberSled (note that we currently map only a small
    51:   	slice of the palette).
    52: 
    53:   - The palette has many banks of similar color entries varying in intensity from
    54:   	dark to bright.  Perhaps these are used for different shading schemes depending
    55: 	on view angle to a surface?
    56: 
    57:   - Controls not mapped in CyberSled
    58: 
    59:   - Lamps/vibration outputs not mapped
    60: 
    61: -----------------------------------------------------------------------
    62: Board 1 : DSP Board - 1st PCB. (Uppermost)
    63: DSP Type 1 : 4 x TMS320C25 connected x 4 x Namco Custom chip 67 (68 pin PLCC) (Cybersled)
    64: DSP Type 2 : 5 x TMS320C20 (Starblade)
    65: OSC: 40.000MHz
    66: RAM: HM62832 x 2, M5M5189 x 4, ISSI IS61C68 x 16
    67: ROMS: TMS27C040
    68: Custom Chips:
    69: 4 x Namco Custom 327 (24 pin NDIP), each one located next to a chip 67.
    70: 4 x Namco Custom chip 342 (160 pin PQFP), there are 3 leds (red/green/yellow) connected to each 342 chip. (12 leds total)
    71: 2 x Namco Custom 197 (28 pin NDIP)
    72: Namco Custom chip 317 IDC (180 pin PQFP)
    73: Namco Custom chip 195 (160 pin PQFP)
    74: -----------------------------------------------------------------------
    75: Board 2 : Unknown Board - 2nd PCB (no roms)
    76: OSC: 20.000MHz
    77: RAM: HM62256 x 10, 84256 x 4, CY7C128 x 5, M5M5178 x 4
    78: OTHER Chips:
    79: MB8422-90LP
    80: L7A0565 316 (111) x 1 (100 PIN PQFP)
    81: 150 (64 PIN PQFP)
    82: 167 (128 PIN PQFP)
    83: L7A0564 x 2 (100 PIN PQFP)
    84: 157 x 16 (24 PIN NDIP)
    85: -----------------------------------------------------------------------
    86: Board 3 : CPU Board - 3rd PCB (looks very similar to Namco System 2 CPU PCB)
    87: CPU: MC68000P12 x 2 @ 12 MHz (16-bit)
    88: Sound CPU: MC68B09EP (3 MHz)
    89: Sound Chips: C140 24-channel PCM (Sound Effects), YM2151 (Music), YM3012 (?)
    90: XTAL: 3.579545 MHz
    91: OSC: 49.152 MHz
    92: RAM: MB8464 x 2, MCM2018 x 2, HM65256 x 4, HM62256 x 2
    93: 
    94: Other Chips:
    95: Sharp PC900 - Opto-isolator
    96: Sharp PC910 - Opto-isolator
    97: HN58C65P (EEPROM)
    98: MB3771
    99: MB87077-SK x 2 (24 pin NDIP, located in sound section)
   100: LB1760 (16 pin DIP, located next to SYS87B-2B)
   101: CY7C132 (48 PIN DIP)
   102: 
   103: Namco Custom:
   104: 148 x 2 (64 pin PQFP)
   105: C68 (64 pin PQFP)
   106: 139 (64 pin PQFP)
   107: 137 (28 pin NDIP)
   108: 149 (28 pin NDIP, near C68)
   109: -----------------------------------------------------------------------
   110: Board 4 : 4th PCB (bottom-most)
   111: OSC: 38.76922 MHz
   112: There is a 6 wire plug joining this PCB with the CPU PCB. It appears to be video cable (RGB, Sync etc..)
   113: Jumpers:
   114: JP7 INTERLACE = SHORTED (Other setting is NON-INTERLACE)
   115: JP8 68000 = SHORTED (Other setting is 68020)
   116: Namco Custom Chips:
   117: C355 (160 pin PQFP)
   118: 187 (120 pin PQFP)
   119: 138 (64 pin PQFP)
   120: 165 (28 pin NDIP)
   121: -----------------------------------------------------------------------
   122: 
   123: -------------------
   124: Air Combat by NAMCO
   125: -------------------
   126: malcor
   127: 
   128: 
   129: Location        Device     File ID      Checksum
   130: -------------------------------------------------
   131: CPU68  1J       27C4001    MPR-L.AC1      9859   [ main program ]  [ rev AC1 ]
   132: CPU68  3J       27C4001    MPR-U.AC1      97F1   [ main program ]  [ rev AC1 ]
   133: CPU68  1J       27C4001    MPR-L.AC2      C778   [ main program ]  [ rev AC2 ]
   134: CPU68  3J       27C4001    MPR-U.AC2      6DD9   [ main program ]  [ rev AC2 ]
   135: CPU68  1C      MB834000    EDATA1-L.AC1   7F77   [    data      ]
   136: CPU68  3C      MB834000    EDATA1-U.AC1   FA2F   [    data      ]
   137: CPU68  3A      MB834000    EDATA-U.AC1    20F2   [    data      ]
   138: CPU68  1A      MB834000    EDATA-L.AC1    9E8A   [    data      ]
   139: CPU68  8J        27C010    SND0.AC1       71A8   [  sound prog  ]
   140: CPU68  12B     MB834000    VOI0.AC1       08CF   [   voice 0    ]
   141: CPU68  12C     MB834000    VOI1.AC1       925D   [   voice 1    ]
   142: CPU68  12D     MB834000    VOI2.AC1       C498   [   voice 2    ]
   143: CPU68  12E     MB834000    VOI3.AC1       DE9F   [   voice 3    ]
   144: CPU68  4C        27C010    SPR-L.AC1      473B   [ slave prog L ]  [ rev AC1 ]
   145: CPU68  6C        27C010    SPR-U.AC1      CA33   [ slave prog U ]  [ rev AC1 ]
   146: CPU68  4C        27C010    SPR-L.AC2      08CE   [ slave prog L ]  [ rev AC2 ]
   147: CPU68  6C        27C010    SPR-U.AC2      A3F1   [ slave prog U ]  [ rev AC2 ]
   148: OBJ(B) 5S       HN62344    OBJ0.AC1       CB72   [ object data  ]
   149: OBJ(B) 5X       HN62344    OBJ1.AC1       85E2   [ object data  ]
   150: OBJ(B) 3S       HN62344    OBJ2.AC1       89DC   [ object data  ]
   151: OBJ(B) 3X       HN62344    OBJ3.AC1       58FF   [ object data  ]
   152: OBJ(B) 4S       HN62344    OBJ4.AC1       46D6   [ object data  ]
   153: OBJ(B) 4X       HN62344    OBJ5.AC1       7B91   [ object data  ]
   154: OBJ(B) 2S       HN62344    OBJ6.AC1       5736   [ object data  ]
   155: OBJ(B) 2X       HN62344    OBJ7.AC1       6D45   [ object data  ]
   156: OBJ(B) 17N     PLHS18P8    3P0BJ3         4342
   157: OBJ(B) 17N     PLHS18P8    3POBJ4         1143
   158: DSP    2N       HN62344    AC1-POIL.L     8AAF   [   DSP data   ]
   159: DSP    2K       HN62344    AC1-POIL.L     CF90   [   DSP data   ]
   160: DSP    2E       HN62344    AC1-POIH       4D02   [   DSP data   ]
   161: DSP    17D     GAL16V8A    3PDSP5         6C00
   162: 
   163: 
   164: NOTE:  CPU68  - CPU board        2252961002  (2252971002)
   165:        OBJ(B) - Object board     8623961803  (8623963803)
   166:        DSP    - DSP board        8623961703  (8623963703)
   167:        PGN(C) - PGN board        2252961300  (8623963600)
   168: 
   169:        Namco System 21 Hardware
   170: 
   171:        ROMs that have the same locations are different revisions
   172:        of the same ROMs (AC1 or AC2).
   173: 
   174: 
   175: Jumper settings:
   176: 
   177: 
   178: Location    Position set    alt. setting
   179: ----------------------------------------
   180: 
   181: CPU68 PCB:
   182: 
   183:   JP2          /D-ST           /VBL
   184:   JP3
   185: */
   186: 
   187: #include "driver.h" 
   188: #include "vidhrdw/generic.h" 
   189: #include "namcos2.h" 
   190: #include "cpu/m6809/m6809.h" 
   191: #include "namcoic.h" 
   192: 
   193: /* globals (shared by videohrdw/namcos21.c) */
   194: 
   195: data16_t *namcos21_dspram16;
   196: data16_t *namcos21_spritepos;
   197: 
   198: /* private data */
   199: 
   200: static data16_t	*mpDataROM;
   201: static data16_t	*mpSharedRAM1;
   202: static data8_t	*mpDualPortRAM;
   203: static data16_t	*mpSharedRAM2;
   204: 
   205: extern WRITE16_HANDLER( namcos21_polyattr0_w );
   206: extern WRITE16_HANDLER( namcos21_polyattr1_w );
   207: extern WRITE16_HANDLER( namcos21_objattr_w );
   208: 
   209: /* dual port ram memory handlers */
   210: 
   211: static READ16_HANDLER( namcos2_68k_dualportram_word_r )
   212: {
   213: 	return mpDualPortRAM[offset];
   214: }
   215: 
   216: static WRITE16_HANDLER( namcos2_68k_dualportram_word_w )
   217: {
   218: 	if( ACCESSING_LSB )
   219: 	{
   220: 		mpDualPortRAM[offset] = data & 0xff;
   221: 	}
   222: }
   223: 
   224: static READ_HANDLER( namcos2_dualportram_byte_r )
   225: {
   226: 	return mpDualPortRAM[offset];
   227: }
   228: 
   229: static WRITE_HANDLER( namcos2_dualportram_byte_w )
   230: {
   231: 	mpDualPortRAM[offset] = data;
   232: }
   233: 
   234: /* shared RAM memory handlers */
   235: 
   236: static READ16_HANDLER( shareram1_r )
   237: {
   238: 	return mpSharedRAM1[offset];
   239: }
   240: 
   241: static WRITE16_HANDLER( shareram1_w )
   242: {
   243: 	COMBINE_DATA( &mpSharedRAM1[offset] );
   244: }
   245: 
   246: static READ16_HANDLER( shareram2_r )
   247: {
   248: 	return mpSharedRAM2[offset];
   249: }
   250: 
   251: static WRITE16_HANDLER( shareram2_w )
   252: {
   253: 	COMBINE_DATA(&mpSharedRAM2[offset]);
   254: }
   255: 
   256: /* memory handlers for shared DSP RAM (used to pass 3d parameters) */
   257: 
   258: static READ16_HANDLER( dspram16_r )
   259: {
   260: 	/* logerror( "polyram[%08x] == %04x; pc==0x%08x\n",
   261: 		offset*2, namcos21_dspram16[offset], activecpu_get_pc() ); */
   262: 	return namcos21_dspram16[offset];
   263: }
   264: 
   265: static WRITE16_HANDLER( dspram16_w )
   266: {
   267: 	COMBINE_DATA( &namcos21_dspram16[offset] );
   268: 	/* logerror( "polyram[%08x] := %04x\n", offset*2, namcos21_dspram16[offset] ); */
   269: }
   270: 
   271: static READ16_HANDLER( dsp_status_r )
   272: {
   273: 	return 1;
   274: }
   275: 
   276: /* some games have read-only areas where more ROMs are mapped */
   277: 
   278: static READ16_HANDLER( data_r )
   279: {
   280: 	return mpDataROM[offset];
   281: }
   282: 
   283: static READ16_HANDLER( data2_r )
   284: {
   285: 	return mpDataROM[0x100000/2+offset];
   286: }
   287: 
   288: /* palette memory handlers */
   289: 
   290: static READ16_HANDLER( paletteram16_r )
   291: {
   292: 	return paletteram16[offset];
   293: }
   294: 
   295: static WRITE16_HANDLER( paletteram16_w )
   296: {
   297: 	COMBINE_DATA(&paletteram16[offset]);
   298: }
   299: 
   300: 
   301: /*************************************************************/
   302: /* MASTER 68000 CPU Memory declarations 					 */
   303: /*************************************************************/
   304: 
   305: static MEMORY_READ16_START( readmem_master_default )
   306: 	{ 0x000000, 0x0fffff, MRA16_ROM },
   307: 	{ 0x100000, 0x10ffff, MRA16_RAM },
   308: 	{ 0x180000, 0x183fff, NAMCOS2_68K_EEPROM_R },
   309: 	{ 0x1c0000, 0x1fffff, namcos2_68k_master_C148_r },
   310: 	{ 0x200000, 0x20ffff, dspram16_r },
   311: 	{ 0x440000, 0x440001, dsp_status_r },
   312: 	{ 0x480000, 0x4807ff, MRA16_RAM },
   313: 	{ 0x700000, 0x7141ff, namco_obj16_r },
   314: 	{ 0x740000, 0x760001, MRA16_RAM }, /* palette */
   315: 	{ 0x800000, 0x8fffff, data_r },
   316: 	{ 0x900000, 0x90ffff, shareram1_r },
   317: 	{ 0xa00000, 0xa00fff, namcos2_68k_dualportram_word_r },
   318: 	{ 0xb00000, 0xb03fff, MRA16_RAM },
   319: 	{ 0xd00000, 0xdfffff, data2_r },
   320: MEMORY_END
   321: 
   322: static MEMORY_WRITE16_START( writemem_master_default )
   323: 	{ 0x000000, 0x0fffff, MWA16_ROM },
   324: 	{ 0x100000, 0x10ffff, MWA16_RAM },
   325: 	{ 0x180000, 0x183fff, NAMCOS2_68K_EEPROM_W },
   326: 	{ 0x1c0000, 0x1fffff, namcos2_68k_master_C148_w },
   327: 	{ 0x200000, 0x20ffff, dspram16_w },
   328: 	{ 0x400000, 0x400001, namcos21_polyattr0_w },
   329: 	{ 0x440000, 0x440001, namcos21_polyattr1_w },
   330: 	{ 0x480000, 0x4807ff, MWA16_RAM },
   331: 	{ 0x700000, 0x7141ff, namco_obj16_w },
   332: 	{ 0x720000, 0x72000f, namcos21_objattr_w },
   333: 	{ 0x740000, 0x760001, MWA16_RAM, &paletteram16 },
   334: 	{ 0x900000, 0x90ffff, shareram1_w, &mpSharedRAM1 },
   335: 	{ 0xa00000, 0xa00fff, namcos2_68k_dualportram_word_w },
   336: 	{ 0xb00000, 0xb03fff, MWA16_RAM, &mpSharedRAM2 },
   337: MEMORY_END
   338: 
   339: /*************************************************************/
   340: /* SLAVE 68000 CPU Memory declarations						 */
   341: /*************************************************************/
   342: 
   343: static MEMORY_READ16_START( readmem_slave_default )
   344: 	{ 0x000000, 0x07ffff, MRA16_ROM },
   345: 	{ 0x100000, 0x13ffff, MRA16_RAM },
   346: 	{ 0x1c0000, 0x1fffff, namcos2_68k_slave_C148_r },
   347: 	{ 0x200000, 0x20ffff, MRA16_RAM }, /* DSP RAM */
   348: 	{ 0x700000, 0x7141ff, namco_obj16_r },
   349: 	{ 0x740000, 0x760001, paletteram16_r },
   350: 	{ 0x800000, 0x8fffff, data_r },
   351: 	{ 0x900000, 0x90ffff, shareram1_r },
   352: 	{ 0xa00000, 0xa00fff, namcos2_68k_dualportram_word_r },
   353: 	{ 0xb00000, 0xb03fff, shareram2_r },
   354: 	{ 0xd00000, 0xdfffff, data2_r },
   355: MEMORY_END
   356: 
   357: static MEMORY_WRITE16_START( writemem_slave_default )
   358: 	{ 0x000000, 0x07ffff, MWA16_ROM },
   359: 	{ 0x100000, 0x13ffff, MWA16_RAM },
   360: 	{ 0x1c0000, 0x1fffff, namcos2_68k_slave_C148_w },
   361: 	{ 0x200000, 0x20ffff, MWA16_RAM, &namcos21_dspram16 },
   362: 	{ 0x700000, 0x7141ff, namco_obj16_w },
   363: 	{ 0x718000, 0x718001, MWA16_NOP },
   364: 	{ 0x740000, 0x760001, paletteram16_w },
   365: 	{ 0x900000, 0x90ffff, shareram1_w },
   366: 	{ 0xa00000, 0xa00fff, namcos2_68k_dualportram_word_w },
   367: 	{ 0xb00000, 0xb03fff, shareram2_w },
   368: MEMORY_END
   369: 
   370: /*************************************************************/
   371: /* SOUND 6809 CPU Memory declarations						 */
   372: /*************************************************************/
   373: 
   374: static MEMORY_READ_START( readmem_sound )
   375: 	{ 0x0000, 0x3fff, BANKED_SOUND_ROM_R }, /* banked */
   376: 	{ 0x4000, 0x4001, YM2151_status_port_0_r },
   377: 	{ 0x5000, 0x6fff, C140_r },
   378: 	{ 0x7000, 0x77ff, namcos2_dualportram_byte_r },
   379: 	{ 0x7800, 0x7fff, namcos2_dualportram_byte_r },	/* mirror */
   380: 	{ 0x8000, 0x9fff, MRA_RAM },
   381: 	{ 0xd000, 0xffff, MRA_ROM },
   382: MEMORY_END
   383: 
   384: static MEMORY_WRITE_START( writemem_sound )
   385: 	{ 0x0000, 0x3fff, MWA_ROM },
   386: 	{ 0x4000, 0x4000, YM2151_register_port_0_w },
   387: 	{ 0x4001, 0x4001, YM2151_data_port_0_w },
   388: 	{ 0x5000, 0x6fff, C140_w },
   389: 	{ 0x7000, 0x77ff, namcos2_dualportram_byte_w, &mpDualPortRAM },
   390: 	{ 0x7800, 0x7fff, namcos2_dualportram_byte_w }, /* mirror */
   391: 	{ 0x8000, 0x9fff, MWA_RAM },
   392: 	{ 0xa000, 0xbfff, MWA_NOP }, /* amplifier enable on 1st write */
   393: 	{ 0xc000, 0xc001, namcos2_sound_bankselect_w },
   394: 	{ 0xd001, 0xd001, MWA_NOP }, /* watchdog */
   395: 	{ 0xc000, 0xffff, MWA_NOP }, /* avoid debug log noise; games write frequently to 0xe000 */
   396: MEMORY_END
   397: 
   398: /*************************************************************/
   399: /* I/O HD63705 MCU Memory declarations						 */
   400: /*************************************************************/
   401: 
   402: static MEMORY_READ_START( readmem_mcu )
   403: 	{ 0x0000, 0x0000, MRA_NOP },
   404: 	{ 0x0001, 0x0001, input_port_0_r },			/* p1,p2 start */
   405: 	{ 0x0002, 0x0002, input_port_1_r },			/* coins */
   406: 	{ 0x0003, 0x0003, namcos2_mcu_port_d_r },
   407: 	{ 0x0007, 0x0007, input_port_10_r },		/* fire buttons */
   408: 	{ 0x0010, 0x0010, namcos2_mcu_analog_ctrl_r },
   409: 	{ 0x0011, 0x0011, namcos2_mcu_analog_port_r },
   410: 	{ 0x0008, 0x003f, MRA_RAM },
   411: 	{ 0x0040, 0x01bf, MRA_RAM },
   412: 	{ 0x01c0, 0x1fff, MRA_ROM },
   413: 	{ 0x2000, 0x2000, input_port_11_r }, /* dipswitches */
   414: 	{ 0x3000, 0x3000, input_port_12_r }, /* DIAL0 */
   415: 	{ 0x3001, 0x3001, input_port_13_r }, /* DIAL1 */
   416: 	{ 0x3002, 0x3002, input_port_14_r }, /* DIAL2 */
   417: 	{ 0x3003, 0x3003, input_port_15_r }, /* DIAL3 */
   418: 	{ 0x5000, 0x57ff, namcos2_dualportram_byte_r },
   419: 	{ 0x6000, 0x6fff, MRA_NOP }, /* watchdog */
   420: 	{ 0x8000, 0xffff, MRA_ROM },
   421: MEMORY_END
   422: 
   423: static MEMORY_WRITE_START( writemem_mcu )
   424: 	{ 0x0003, 0x0003, namcos2_mcu_port_d_w },
   425: 	{ 0x0010, 0x0010, namcos2_mcu_analog_ctrl_w },
   426: 	{ 0x0011, 0x0011, namcos2_mcu_analog_port_w },
   427: 	{ 0x0000, 0x003f, MWA_RAM },
   428: 	{ 0x0040, 0x01bf, MWA_RAM },
   429: 	{ 0x01c0, 0x1fff, MWA_ROM },
   430: 	{ 0x5000, 0x57ff, namcos2_dualportram_byte_w, &mpDualPortRAM },
   431: 	{ 0x8000, 0xffff, MWA_ROM },
   432: MEMORY_END
   433: 
   434: static struct GfxLayout tile_layout =
   435: {
   436: 	16,16,
   437: 	RGN_FRAC(1,4),	/* number of tiles */
   438: 	8,		/* bits per pixel */
   439: 	{		/* plane offsets */
   440: 		0,1,2,3,4,5,6,7
   441: 	},
   442: 	{ /* x offsets */
   443: 		0*8,RGN_FRAC(1,4)+0*8,RGN_FRAC(2,4)+0*8,RGN_FRAC(3,4)+0*8,
   444: 		1*8,RGN_FRAC(1,4)+1*8,RGN_FRAC(2,4)+1*8,RGN_FRAC(3,4)+1*8,
   445: 		2*8,RGN_FRAC(1,4)+2*8,RGN_FRAC(2,4)+2*8,RGN_FRAC(3,4)+2*8,
   446: 		3*8,RGN_FRAC(1,4)+3*8,RGN_FRAC(2,4)+3*8,RGN_FRAC(3,4)+3*8
   447: 	},
   448: 	{ /* y offsets */
   449: 		0*32,1*32,2*32,3*32,
   450: 		4*32,5*32,6*32,7*32,
   451: 		8*32,9*32,10*32,11*32,
   452: 		12*32,13*32,14*32,15*32
   453: 	},
   454: 	8*64 /* sprite offset */
   455: };
   456: 
   457: static struct GfxDecodeInfo gfxdecodeinfo[] =
   458: {
   459: 	{ REGION_GFX1, 0x000000, &tile_layout,  0x1000, 0x10 },
   460: 	{ -1 }
   461: };
   462: 
   463: static struct YM2151interface ym2151_interface =
   464: {
   465: 	1,			/* 1 chip */
   466: 	3579580,	/* 3.58 MHz ? */
   467: 	{ YM3012_VOL(50,MIXER_PAN_LEFT,50,MIXER_PAN_RIGHT) },
   468: 	{ NULL }	/* YM2151 IRQ line is NOT connected on the PCB */
   469: };
   470: 
   471: static struct C140interface C140_interface_typeA =
   472: {
   473: 	C140_TYPE_SYSTEM21_A,
   474: 	8000000/374,
   475: 	REGION_SOUND1,
   476: 	50
   477: };
   478: 
   479: static struct C140interface C140_interface_typeB =
   480: {
   481: 	C140_TYPE_SYSTEM21_A,
   482: 	8000000/374,
   483: 	REGION_SOUND1,
   484: 	50
   485: };
   486: 
   487: static MACHINE_DRIVER_START( s21base )
   488: 
   489: 	/* basic machine hardware */
   490: 	MDRV_CPU_ADD(M68000,12288000) /* Master */
   491: 	MDRV_CPU_MEMORY(readmem_master_default,writemem_master_default)
   492: 	MDRV_CPU_VBLANK_INT(namcos2_68k_master_vblank,1)
   493: 
   494: 	MDRV_CPU_ADD(M68000,12288000) /* Slave */
   495: 	MDRV_CPU_MEMORY(readmem_slave_default,writemem_slave_default)
   496: 	MDRV_CPU_VBLANK_INT(namcos2_68k_slave_vblank,1)
   497: 
   498: 	MDRV_CPU_ADD(M6809,3072000) /* Sound */
   499: 	MDRV_CPU_MEMORY(readmem_sound,writemem_sound)
   500: 	MDRV_CPU_VBLANK_INT(irq0_line_hold,2)
   501: 	MDRV_CPU_PERIODIC_INT(irq1_line_hold,120)
   502: 
   503: 	MDRV_CPU_ADD(HD63705,2048000) /* IO */
   504: 	MDRV_CPU_MEMORY(readmem_mcu,writemem_mcu)
   505: 	MDRV_CPU_VBLANK_INT(irq0_line_hold,1)
   506: 
   507: 	MDRV_FRAMES_PER_SECOND(60)
   508: 	MDRV_VBLANK_DURATION(DEFAULT_REAL_60HZ_VBLANK_DURATION)
   509: 	MDRV_INTERLEAVE(100) /* 100 CPU slices per frame */
   510: 
   511: 	MDRV_MACHINE_INIT(namcos2)
   512: 	MDRV_NVRAM_HANDLER(namcos2)
   513: 
   514: 	/* video hardware */
   515: 	MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_NEEDS_6BITS_PER_GUN)
   516: 	MDRV_SCREEN_SIZE(62*8, 60*8)
   517: 	MDRV_VISIBLE_AREA(0*8, 62*8-1, 0*8, 60*8-1)
   518: 	MDRV_GFXDECODE(gfxdecodeinfo)
   519: 	MDRV_PALETTE_LENGTH(NAMCOS21_NUM_COLORS)
   520: 	MDRV_COLORTABLE_LENGTH(NAMCOS21_NUM_COLORS)
   521: 
   522: 	MDRV_VIDEO_START(namcos21)
   523: 	MDRV_VIDEO_UPDATE(namcos21_default)
   524: 
   525: MACHINE_DRIVER_END
   526: 
   527: static MACHINE_DRIVER_START( poly_c140_typeA )
   528: 	MDRV_IMPORT_FROM(s21base)
   529: 
   530: 	/* sound hardware */
   531: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
   532: 	MDRV_SOUND_ADD(C140, C140_interface_typeA)
   533: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
   534: MACHINE_DRIVER_END
   535: 
   536: static MACHINE_DRIVER_START( poly_c140_typeB )
   537: 	MDRV_IMPORT_FROM(s21base)
   538: 
   539: 	/* sound hardware */
   540: 	MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
   541: 	MDRV_SOUND_ADD(C140, C140_interface_typeB)
   542: 	MDRV_SOUND_ADD(YM2151, ym2151_interface)
   543: MACHINE_DRIVER_END
   544: 
   545: 
   546: ROM_START( aircombu )
   547: 	ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* Master */
   548: 	ROM_LOAD16_BYTE( "mpr-u.ac2",  0x000000, 0x80000, CRC(a7133f85) )
   549: 	ROM_LOAD16_BYTE( "mpr-l.ac2",  0x000001, 0x80000, CRC(520a52e6) )
   550: 
   551: 	ROM_REGION( 0x40000, REGION_CPU2, 0 ) /* Slave */
   552: 	ROM_LOAD16_BYTE( "spr-u.ac2",  0x000000, 0x20000, CRC(42aca956) )
   553: 	ROM_LOAD16_BYTE( "spr-l.ac2",  0x000001, 0x20000, CRC(3e15fa19) )
   554: 
   555: 	ROM_REGION( 0x030000, REGION_CPU3, 0 ) /* Sound */
   556: 	ROM_LOAD( "snd0.ac1",	0x00c000, 0x004000, CRC(5c1fb84b) )
   557: 	ROM_CONTINUE(      		0x010000, 0x01c000 )
   558: 	ROM_RELOAD(				0x010000, 0x020000 )
   559: 
   560: 	ROM_REGION( 0x010000, REGION_CPU4, 0 ) /* I/O MCU */
   561: 	ROM_LOAD( "sys2mcpu.bin",  0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
   562: 	ROM_LOAD( "sys2c65c.bin",  0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
   563: 
   564: 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE )
   565: 	ROM_LOAD( "obj0.ac2",  0x000000, 0x80000, CRC(8327ff22) )
   566: 	ROM_LOAD( "obj4.ac2",  0x080000, 0x80000, CRC(e433e344) )
   567: 	ROM_LOAD( "obj1.ac2",  0x100000, 0x80000, CRC(43af566d) )
   568: 	ROM_LOAD( "obj5.ac2",  0x180000, 0x80000, CRC(ecb19199) )
   569: 	ROM_LOAD( "obj2.ac2",  0x200000, 0x80000, CRC(dafbf489) )
   570: 	ROM_LOAD( "obj6.ac2",  0x280000, 0x80000, CRC(24cc3f36) )
   571: 	ROM_LOAD( "obj3.ac2",  0x300000, 0x80000, CRC(bd555a1d) )
   572: 	ROM_LOAD( "obj7.ac2",  0x380000, 0x80000, CRC(d561fbe3) )
   573: 
   574: 	ROM_REGION16_BE( 0x200000, REGION_USER1, 0 ) /* collision */
   575: 	ROM_LOAD16_BYTE( "edata-u.ac1",		0x000000, 0x80000, CRC(82320c71) )
   576: 	ROM_LOAD16_BYTE( "edata-l.ac1", 	0x000001, 0x80000, CRC(fd7947d3) )
   577: 	ROM_LOAD16_BYTE( "edata1-u.ac2",	0x100000, 0x80000, CRC(40c07095) )
   578: 	ROM_LOAD16_BYTE( "edata1-l.ac1",	0x100001, 0x80000, CRC(a87087dd) )
   579: 
   580: 	ROM_REGION32_BE( 0x400000, REGION_USER2, ROMREGION_ERASE )		/* 24bit signed point data */
   581: 	ROM_LOAD32_BYTE( "poih.ac1",   0x000001, 0x80000, CRC(573bbc3b) )	/* most significant */
   582: 	ROM_LOAD32_BYTE( "poil-u.ac1", 0x000002, 0x80000, CRC(d99084b9) )
   583: 	ROM_LOAD32_BYTE( "poil-l.ac1", 0x000003, 0x80000, CRC(abb32307) )	/* least significant */
   584: 
   585: 	ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* sound samples */
   586: 	ROM_LOAD("voi0.ac1",0x000000,0x80000,CRC(f427b119) )
   587: 	ROM_LOAD("voi1.ac1",0x080000,0x80000,CRC(c9490667) )
   588: 	ROM_LOAD("voi2.ac1",0x100000,0x80000,CRC(1fcb51ba) )
   589: 	ROM_LOAD("voi3.ac1",0x180000,0x80000,CRC(cd202e06) )
   590: ROM_END
   591: 
   592: ROM_START( aircombj )
   593: 	ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* Master */
   594: 	ROM_LOAD16_BYTE( "mpr-u.ac1",  0x000000, 0x80000, CRC(a4dec813) )
   595: 	ROM_LOAD16_BYTE( "mpr-l.ac1",  0x000001, 0x80000, CRC(8577b6a2) )
   596: 
   597: 	ROM_REGION( 0x40000, REGION_CPU2, 0 ) /* Slave */
   598: 	ROM_LOAD16_BYTE( "spr-u.ac1",  0x000000, 0x20000, CRC(5810e219) )
   599: 	ROM_LOAD16_BYTE( "spr-l.ac1",  0x000001, 0x20000, CRC(175a7d6c) )
   600: 
   601: 	ROM_REGION( 0x030000, REGION_CPU3, 0 ) /* Sound */
   602: 	ROM_LOAD( "snd0.ac1",	0x00c000, 0x004000, CRC(5c1fb84b) )
   603: 	ROM_CONTINUE(			0x010000, 0x01c000 )
   604: 	ROM_RELOAD(				0x010000, 0x020000 )
   605: 
   606: 	ROM_REGION( 0x010000, REGION_CPU4, 0 ) /* I/O MCU */
   607: 	ROM_LOAD( "sys2mcpu.bin",  0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
   608: 	ROM_LOAD( "sys2c65c.bin",  0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
   609: 
   610: 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE )
   611: 	ROM_LOAD( "obj0.ac1",  0x000000, 0x80000, CRC(d2310c6a) )
   612: 	ROM_LOAD( "obj4.ac1",  0x080000, 0x80000, CRC(0c93b478) )
   613: 	ROM_LOAD( "obj1.ac1",  0x100000, 0x80000, CRC(f5783a77) )
   614: 	ROM_LOAD( "obj5.ac1",  0x180000, 0x80000, CRC(476aed15) )
   615: 	ROM_LOAD( "obj2.ac1",  0x200000, 0x80000, CRC(01343d5c) )
   616: 	ROM_LOAD( "obj6.ac1",  0x280000, 0x80000, CRC(c67607b1) )
   617: 	ROM_LOAD( "obj3.ac1",  0x300000, 0x80000, CRC(7717f52e) )
   618: 	ROM_LOAD( "obj7.ac1",  0x380000, 0x80000, CRC(cfa9fe5f) )
   619: 
   620: 	ROM_REGION16_BE( 0x200000, REGION_USER1, 0 )
   621: 	ROM_LOAD16_BYTE( "edata-u.ac1",   0x000000, 0x80000, CRC(82320c71) )
   622: 	ROM_LOAD16_BYTE( "edata-l.ac1",   0x000001, 0x80000, CRC(fd7947d3) )
   623: 	ROM_LOAD16_BYTE( "edata1-u.ac1",  0x100000, 0x80000, CRC(a9547509) )
   624: 	ROM_LOAD16_BYTE( "edata1-l.ac1",  0x100001, 0x80000, CRC(a87087dd) )
   625: 
   626: 	ROM_REGION32_BE( 0x400000, REGION_USER2, ROMREGION_ERASE )		/* 24bit signed point data */
   627: 	ROM_LOAD32_BYTE( "poih.ac1",   0x000001, 0x80000, CRC(573bbc3b) )	/* most significant */
   628: 	ROM_LOAD32_BYTE( "poil-u.ac1", 0x000002, 0x80000, CRC(d99084b9) )
   629: 	ROM_LOAD32_BYTE( "poil-l.ac1", 0x000003, 0x80000, CRC(abb32307) )	/* least significant */
   630: 
   631: 	ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* sound samples */
   632: 	ROM_LOAD("voi0.ac1",0x000000,0x80000,CRC(f427b119) )
   633: 	ROM_LOAD("voi1.ac1",0x080000,0x80000,CRC(c9490667) )
   634: 	ROM_LOAD("voi2.ac1",0x100000,0x80000,CRC(1fcb51ba) )
   635: 	ROM_LOAD("voi3.ac1",0x180000,0x80000,CRC(cd202e06) )
   636: ROM_END
   637: 
   638: ROM_START( cybsled )
   639: 	ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* Master */
   640: 	ROM_LOAD16_BYTE( "mpru.3j",  0x000000, 0x80000, CRC(cc5a2e83) )
   641: 	ROM_LOAD16_BYTE( "mprl.1j",  0x000001, 0x80000, CRC(f7ee8b48) )
   642: 
   643: 	ROM_REGION( 0x100000, REGION_CPU2, 0 ) /* Slave */
   644: 	ROM_LOAD16_BYTE( "spru.6c",  0x000000, 0x80000, CRC(28dd707b) )
   645: 	ROM_LOAD16_BYTE( "sprl.4c",  0x000001, 0x80000, CRC(437029de) )
   646: 
   647: 	ROM_REGION( 0x030000, REGION_CPU3, 0 ) /* Sound */
   648: 	ROM_LOAD( "snd0.8j",	0x00c000, 0x004000, CRC(3dddf83b) )
   649: 	ROM_CONTINUE(			0x010000, 0x01c000 )
   650: 	ROM_RELOAD(				0x010000, 0x020000 )
   651: 
   652: 	ROM_REGION( 0x010000, REGION_CPU4, 0 ) /* I/O MCU */
   653: 	ROM_LOAD( "sys2mcpu.bin",  0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
   654: 	ROM_LOAD( "sys2c65c.bin",  0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
   655: 
   656: 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE )
   657: 	ROM_LOAD( "obj0.5s",  0x000000, 0x80000, CRC(5ae542d5) )
   658: 	ROM_LOAD( "obj4.4s",  0x080000, 0x80000, CRC(57904076) )
   659: 	ROM_LOAD( "obj1.5x",  0x100000, 0x80000, CRC(4aae3eff) )
   660: 	ROM_LOAD( "obj5.4x",  0x180000, 0x80000, CRC(0e11ca47) )
   661: 	ROM_LOAD( "obj2.3s",  0x200000, 0x80000, CRC(d64ec4c3) )
   662: 	ROM_LOAD( "obj6.2s",  0x280000, 0x80000, CRC(7748b485) )
   663: 	ROM_LOAD( "obj3.3x",  0x300000, 0x80000, CRC(3d1f7168) )
   664: 	ROM_LOAD( "obj7.2x",  0x380000, 0x80000, CRC(b6eb6ad2) )
   665: 
   666: 	ROM_REGION16_BE( 0x200000, REGION_USER1, 0 )
   667: 	ROM_LOAD16_BYTE( "datau.3a",   0x000000, 0x80000, CRC(570da15d) )
   668: 	ROM_LOAD16_BYTE( "datal.1a",   0x000001, 0x80000, CRC(9cf96f9e) )
   669: 	ROM_LOAD16_BYTE( "edata0u.3b", 0x100000, 0x80000, CRC(77452533) )
   670: 	ROM_LOAD16_BYTE( "edata0l.1b", 0x100001, 0x80000, CRC(e812e290) )
   671: 
   672: 	ROM_REGION32_BE( 0x400000, REGION_USER2, ROMREGION_ERASE )		/* 24bit signed point data */
   673: 	ROM_LOAD32_BYTE( "poih1.2f",  0x000001, 0x80000, CRC(eaf8bac3) )	/* most significant */
   674: 	ROM_LOAD32_BYTE( "poilu1.2k", 0x000002, 0x80000, CRC(c544a8dc) )
   675: 	ROM_LOAD32_BYTE( "poill1.2n", 0x000003, 0x80000, CRC(30acb99b) )	/* least significant */
   676: 	ROM_LOAD32_BYTE( "poih2.2j",  0x200001, 0x80000, CRC(4079f342) )
   677: 	ROM_LOAD32_BYTE( "poilu2.2l", 0x200002, 0x80000, CRC(61d816d4) )
   678: 	ROM_LOAD32_BYTE( "poill2.2p", 0x200003, 0x80000, CRC(faf09158) )
   679: 
   680: 	ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* sound samples */
   681: 	ROM_LOAD("voi0.12b",0x000000,0x80000,CRC(99d7ce46) )
   682: 	ROM_LOAD("voi1.12c",0x080000,0x80000,CRC(2b335f06) )
   683: 	ROM_LOAD("voi2.12d",0x100000,0x80000,CRC(10cd15f0) )
   684: 	ROM_LOAD("voi3.12e",0x180000,0x80000,CRC(c902b4a4) )
   685: ROM_END
   686: 
   687: ROM_START( starblad )
   688: 	ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* Master */
   689: 	ROM_LOAD16_BYTE( "st1_mpu.bin",  0x000000, 0x80000, CRC(483a311c) SHA1(dd9416b8d4b0f8b361630e312eac71c113064eae) )
   690: 	ROM_LOAD16_BYTE( "st1_mpl.bin",  0x000001, 0x80000, CRC(0a4dd661) SHA1(fc2b71a255a8613693c4d1c79ddd57a6d396165a) )
   691: 
   692: 	ROM_REGION( 0x080000, REGION_CPU2, 0 ) /* Slave */
   693: 	ROM_LOAD16_BYTE( "st1_spu.bin",  0x000000, 0x40000, CRC(9f9a55db) SHA1(72bf5d6908cc57cc490fa2292b4993d796b2974d) )
   694: 	ROM_LOAD16_BYTE( "st1_spl.bin",  0x000001, 0x40000, CRC(acbe39c7) SHA1(ca48b7ea619b1caaf590eed33001826ce7ef36d8) )
   695: 
   696: 	ROM_REGION( 0x030000, REGION_CPU3, 0 ) /* Sound */
   697: 	ROM_LOAD( "st1snd0.bin",		 0x00c000, 0x004000, CRC(c0e934a3) SHA1(678ed6705c6f494d7ecb801a4ef1b123b80979a5) )
   698: 	ROM_CONTINUE(					 0x010000, 0x01c000 )
   699: 	ROM_RELOAD( 					 0x010000, 0x020000 )
   700: 
   701: 	ROM_REGION( 0x010000, REGION_CPU4, 0 ) /* I/O MCU */
   702: 	ROM_LOAD( "sys2mcpu.bin",  0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
   703: 	ROM_LOAD( "sys2c65c.bin",  0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
   704: 
   705: 	ROM_REGION( 0x200000, REGION_GFX1, ROMREGION_DISPOSE ) /* sprites */
   706: 	ROM_LOAD( "st1obj0.bin",  0x000000, 0x80000, CRC(5d42c71e) SHA1(f1aa2bb31bbbcdcac8e94334b1c78238cac1a0e7) )
   707: 	ROM_LOAD( "st1obj1.bin",  0x080000, 0x80000, CRC(c98011ad) SHA1(bc34c21428e0ef5887051c0eb0fdef5397823a82) )
   708: 	ROM_LOAD( "st1obj2.bin",  0x100000, 0x80000, CRC(6cf5b608) SHA1(c8537fbe97677c4c8a365b1cf86c4645db7a7d6b) )
   709: 	ROM_LOAD( "st1obj3.bin",  0x180000, 0x80000, CRC(cdc195bb) SHA1(91443917a6982c286b6f15381d441d061aefb138) )
   710: 
   711: 	ROM_REGION16_BE( 0x100000, REGION_USER1, 0 )
   712: 	ROM_LOAD16_BYTE( "st1_du.bin",  0x000000, 0x20000, CRC(2433e911) SHA1(95f5f00d3bacda4996e055a443311fb9f9a5fe2f) )
   713: 	ROM_LOAD16_BYTE( "st1_dl.bin",  0x000001, 0x20000, CRC(4a2cc252) SHA1(d9da9992bac878f8a1f5e84cc3c6d457b4705e8f) )
   714: 
   715: 	ROM_REGION32_BE( 0x400000, REGION_USER2, ROMREGION_ERASE ) /* 24bit signed point data */
   716: 	ROM_LOAD32_BYTE( "st1pt0h.bin", 0x000001, 0x80000, CRC(84eb355f) SHA1(89a248b8be2e0afcee29ba4c4c9cca65d5fb246a) )
   717: 	ROM_LOAD32_BYTE( "st1pt0u.bin", 0x000002, 0x80000, CRC(1956cd0a) SHA1(7d21b3a59f742694de472c545a1f30c3d92e3390) )
   718: 	ROM_LOAD32_BYTE( "st1pt0l.bin", 0x000003, 0x80000, CRC(ff577049) SHA1(1e1595174094e88d5788753d05ce296c1f7eca75) )
   719: 	//
   720: 	ROM_LOAD32_BYTE( "st1pt1h.bin", 0x200001, 0x80000, CRC(96b1bd7d) SHA1(55da7896dda2aa4c35501a55c8605a065b02aa17) )
   721: 	ROM_LOAD32_BYTE( "st1pt1u.bin", 0x200002, 0x80000, CRC(ecf21047) SHA1(ddb13f5a2e7d192f0662fa420b49f89e1e991e66) )
   722: 	ROM_LOAD32_BYTE( "st1pt1l.bin", 0x200003, 0x80000, CRC(01cb0407) SHA1(4b58860bbc353de8b4b8e83d12b919d9386846e8) )
   723: 
   724: 	ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* sound samples */
   725: 	ROM_LOAD("st1voi0.bin",0x000000,0x80000,CRC(5b3d43a9) SHA1(cdc04f19dc91dca9fa88ba0c2fca72aa195a3694) )
   726: 	ROM_LOAD("st1voi1.bin",0x080000,0x80000,CRC(413e6181) SHA1(e827ec11f5755606affd2635718512aeac9354da) )
   727: 	ROM_LOAD("st1voi2.bin",0x100000,0x80000,CRC(067d0720) SHA1(a853b2d43027a46c5e707fc677afdaae00f450c7) )
   728: 	ROM_LOAD("st1voi3.bin",0x180000,0x80000,CRC(8b5aa45f) SHA1(e1214e639200758ad2045bde0368a2d500c1b84a) )
   729: ROM_END
   730: 
   731: ROM_START( solvalou )
   732: 	ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* Master */
   733: 	ROM_LOAD16_BYTE( "sv1mpu.bin",  0x000000, 0x20000, CRC(b6f92762) SHA1(d177328b3da2ab0580e101478142bc8c373d6140) )
   734: 	ROM_LOAD16_BYTE( "sv1mpl.bin",  0x000001, 0x20000, CRC(28c54c42) SHA1(32fcca2eb4bb8ba8c2587b03d3cf59f072f7fac5) )
   735: 
   736: 	ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* Slave */
   737: 	ROM_LOAD16_BYTE( "sv1spu.bin",  0x000000, 0x20000, CRC(ebd4bf82) SHA1(67946360d680a675abcb3c131bac0502b2455573) )
   738: 	ROM_LOAD16_BYTE( "sv1spl.bin",  0x000001, 0x20000, CRC(7acab679) SHA1(764297c9601be99dbbffb75bbc6fe4a40ea38529) )
   739: 
   740: 	ROM_REGION( 0x030000, REGION_CPU3, 0 ) /* Sound */
   741: 	ROM_LOAD( "sv1snd0.bin",    0x00c000, 0x004000, CRC(5e007864) SHA1(94da2d51544c6127056beaa251353038646da15f) )
   742: 	ROM_CONTINUE(				0x010000, 0x01c000 )
   743: 	ROM_RELOAD(					0x010000, 0x020000 )
   744: 
   745: 	ROM_REGION( 0x010000, REGION_CPU4, 0 ) /* I/O MCU */
   746: 	ROM_LOAD( "sys2mcpu.bin",  0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
   747: 	ROM_LOAD( "sys2c65c.bin",  0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
   748: 
   749: 	ROM_REGION( 0x400000, REGION_GFX1, ROMREGION_DISPOSE )
   750: 	ROM_LOAD( "sv1obj0.bin",  0x000000, 0x80000, CRC(773798bb) SHA1(51ab76c95030bab834f1a74ae677b2f0afc18c52) )
   751: 	ROM_LOAD( "sv1obj4.bin",  0x080000, 0x80000, CRC(33a008a7) SHA1(4959a0ac24ad64f1367e2d8d63d39a0273c60f3e) )
   752: 	ROM_LOAD( "sv1obj1.bin",  0x100000, 0x80000, CRC(a36d9e79) SHA1(928d9995e97ee7509e23e6cc64f5e7bfb5c02d42) )
   753: 	ROM_LOAD( "sv1obj5.bin",  0x180000, 0x80000, CRC(31551245) SHA1(385452ea4830c466263ad5241313ac850dfef756) )
   754: 	ROM_LOAD( "sv1obj2.bin",  0x200000, 0x80000, CRC(c8672b8a) SHA1(8da037b27d2c2b178aab202781f162371458f788) )
   755: 	ROM_LOAD( "sv1obj6.bin",  0x280000, 0x80000, CRC(fe319530) SHA1(8f7e46c8f0b86c7515f6d763b795ce07d11c77bc) )
   756: 	ROM_LOAD( "sv1obj3.bin",  0x300000, 0x80000, CRC(293ef1c5) SHA1(f677883bfec16bbaeb0a01ac565d0e6cac679174) )
   757: 	ROM_LOAD( "sv1obj7.bin",  0x380000, 0x80000, CRC(95ed6dcb) SHA1(931706ce3fea630823ce0c79febec5eec0cc623d) )
   758: 
   759: 	ROM_REGION16_BE( 0x100000, REGION_USER1, 0 )
   760: 	ROM_LOAD16_BYTE( "sv1du.bin",  0x000000, 0x80000, CRC(2e561996) SHA1(982158481e5649f21d5c2816fdc80cb725ed1419) )
   761: 	ROM_LOAD16_BYTE( "sv1dl.bin",  0x000001, 0x80000, CRC(495fb8dd) SHA1(813d1da4109652008d72b3bdb03032efc5c0c2d5) )
   762: 
   763: 	ROM_REGION32_BE( 0x400000, REGION_USER2, ROMREGION_ERASE )		/* 24bit signed point data */
   764: 	ROM_LOAD32_BYTE( "sv1pt0h.bin", 0x000001, 0x80000, CRC(3be21115) SHA1(c9f30353c1216f64199f87cd34e787efd728e739) ) /* most significant */
   765: 	ROM_LOAD32_BYTE( "sv1pt0u.bin", 0x000002, 0x80000, CRC(4aacfc42) SHA1(f0e179e057183b41744ca429764f44306f0ce9bf) )
   766: 	ROM_LOAD32_BYTE( "sv1pt0l.bin", 0x000003, 0x80000, CRC(6a4dddff) SHA1(9ed182d21d328c6a684ee6658a9dfcf3f3dd8646) ) /* least significant */
   767: 
   768: 	ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* sound samples */
   769: 	ROM_LOAD("sv1voi0.bin",0x000000,0x80000,CRC(7f61bbcf) SHA1(b3b7e66e24d9cb16ebd139237c1e51f5d60c1585) )
   770: 	ROM_LOAD("sv1voi1.bin",0x080000,0x80000,CRC(c732e66c) SHA1(14e75dd9bea4055f85eb2bcbf69cf6695a3f7ec4) )
   771: 	ROM_LOAD("sv1voi2.bin",0x100000,0x80000,CRC(51076298) SHA1(ec52c9ae3029118f3ea3732948d6de28f5fba561) )
   772: 	ROM_LOAD("sv1voi3.bin",0x180000,0x80000,CRC(33085ff3) SHA1(0a30b91618c250a5e7bd896a8ceeb3d16da178a9) )
   773: ROM_END
   774: 
   775: ROM_START( winrun91 )
   776: 	ROM_REGION( 0x100000, REGION_CPU1, 0 ) /* Master */
   777: 	ROM_LOAD16_BYTE( "mpu.3k",  0x000000, 0x20000, CRC(80a0e5be) )
   778: 	ROM_LOAD16_BYTE( "mpl.1k",  0x000001, 0x20000, CRC(942172d8) )
   779: 
   780: 	ROM_REGION( 0x080000, REGION_CPU2, 0 ) /* Slave */
   781: 	ROM_LOAD16_BYTE( "spu.6b",  0x000000, 0x20000, CRC(0221d4b2) )
   782: 	ROM_LOAD16_BYTE( "spl.4b",  0x000001, 0x20000, CRC(288799e2) )
   783: 
   784: 	ROM_REGION( 0x030000, REGION_CPU3, 0 ) /* Sound */
   785: 	ROM_LOAD( "snd0.7c",	0x00c000, 0x004000, CRC(6a321e1e) )
   786: 	ROM_CONTINUE(			0x010000, 0x01c000 )
   787: 	ROM_RELOAD(				0x010000, 0x020000 )
   788: 
   789: 	ROM_REGION( 0x010000, REGION_CPU4, 0 ) /* I/O MCU */
   790: 	ROM_LOAD( "sys2mcpu.bin",  0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
   791: 	ROM_LOAD( "sys2c65c.bin",  0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
   792: 
   793: 	ROM_REGION16_BE( 0x100000, REGION_USER1, 0 )
   794: 	ROM_LOAD16_BYTE( "d0u.3a",  0x000000, 0x20000, CRC(dcb27da5) )
   795: 	ROM_LOAD16_BYTE( "d0l.1a",  0x000001, 0x20000, CRC(f692a8f3) )
   796: 	ROM_LOAD16_BYTE( "d1u.3b",  0x000000, 0x20000, CRC(ac2afd1b) )
   797: 	ROM_LOAD16_BYTE( "d1l.1b",  0x000001, 0x20000, CRC(ebb51af1) )
   798: 
   799: 	ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* sprites */
   800: 	ROM_LOAD( "gd0l.3p",  0x00000, 0x40000, CRC(9a29500e) )
   801: 	ROM_LOAD( "gd1u.1s",  0x40000, 0x40000, CRC(17e5a61c) )
   802: 	ROM_LOAD( "gd0u.1p",  0x80000, 0x40000, CRC(33f5a19b) )
   803: 	ROM_LOAD( "gd1l.3s",  0xc0000, 0x40000, CRC(64df59a2) )
   804: 
   805: 	ROM_REGION32_BE( 0x400000, REGION_USER2, ROMREGION_ERASE ) /* 16 bit point data? */
   806: 	ROM_LOAD32_BYTE( "pt0u.8j", 0x00002, 0x20000, CRC(abf512a6) )
   807: 	ROM_LOAD32_BYTE( "pt0l.8d", 0x00003, 0x20000, CRC(ac8d468c) )
   808: 	ROM_LOAD32_BYTE( "pt1u.8l", 0x80002, 0x20000, CRC(7e5dab74) )
   809: 	ROM_LOAD32_BYTE( "pt1l.8e", 0x80003, 0x20000, CRC(38a54ec5) )
   810: 
   811: 	ROM_REGION16_BE( 0x80000, REGION_USER3, 0 ) /* ? */
   812: 	ROM_LOAD( "gp0l.3j",  0x00000, 0x20000, CRC(5c18f596) )
   813: 	ROM_LOAD( "gp0u.1j",  0x00001, 0x20000, CRC(f5469a29) )
   814: 	ROM_LOAD( "gp1l.3l",  0x40000, 0x20000, CRC(96c2463c) )
   815: 	ROM_LOAD( "gp1u.1l",  0x40001, 0x20000, CRC(146ab6b8) )
   816: 
   817: 	ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* sound samples */
   818: 	ROM_LOAD("avo1.11c",0x000000,0x80000,CRC(9fb33af3) )
   819: 	ROM_LOAD("avo3.11e",0x080000,0x80000,CRC(76e22f92) )
   820: ROM_END
   821: 
   822: static void namcos21_init( int game_type )
   823: {
   824: 	data32_t *pMem = (data32_t *)memory_region(REGION_USER2);
   825: 	int numWords = memory_region_length(REGION_USER2)/4;
   826: 	int i;
   827: 
   828: 	/* sign-extend the 24 bit point data into a more-convenient 32 bit format */
   829: 	for( i=0; i<numWords; i++ )
   830: 	{
   831: 		if( pMem[i] &  0x00800000 )
   832: 		{
   833: 			pMem[i] |= 0xff000000;
   834: 		}
   835: 	}
   836: 	namcos2_gametype = game_type;
   837: 	mpDataROM = (data16_t *)memory_region( REGION_USER1 );
   838: } /* namcos21_init */
   839: 
   840: static DRIVER_INIT( winrun )
   841: {
   842: 	namcos21_init( NAMCOS21_WINRUN91 );
   843: }
   844: 
   845: static DRIVER_INIT( aircombt )
   846: {
   847: #if 0 
   848: 	/* replace first four tests of aircombj with special "hidden" tests */
   849: 	data16_t *pMem = (data16_t *)memory_region( REGION_CPU1 );
   850: 	pMem[0x2a32/2] = 0x90;
   851: 	pMem[0x2a34/2] = 0x94;
   852: 	pMem[0x2a36/2] = 0x88;
   853: 	pMem[0x2a38/2] = 0x8c;
   854: #endif 
   855: 
   856: 	namcos21_init( NAMCOS21_AIRCOMBAT );
   857: }
   858: 
   859: DRIVER_INIT( starblad )
   860: {
   861: 	namcos21_init( NAMCOS21_STARBLADE );
   862: }
   863: 
   864: 
   865: DRIVER_INIT( cybsled )
   866: {
   867: 	namcos21_init( NAMCOS21_CYBERSLED );
   868: }
   869: 
   870: DRIVER_INIT( solvalou )
   871: {
   872: 	data16_t *pMem = (data16_t *)memory_region( REGION_CPU1 );
   873: 
   874: 	/* patch out DSP memtest/clear */
   875: 	pMem[0x1FD7C/2] = 0x4E71;
   876: 	pMem[0x1FD7E/2] = 0x4E71;
   877: 
   878: 	/* patch out DSP test/populate */
   879: 	pMem[0x1FDA6/2] = 0x4E71;
   880: 	pMem[0x1FDA8/2] = 0x4E71;
   881: 
   882: 	namcos21_init( NAMCOS21_SOLVALOU );
   883: }
   884: 
   885: /*************************************************************/
   886: /*															 */
   887: /*	NAMCO SYSTEM 21 INPUT PORTS								 */
   888: /*															 */
   889: /*************************************************************/
   890: 
   891: INPUT_PORTS_START( default )
   892: 	PORT_START		/* 63B05Z0 - PORT B */
   893: 	PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED )
   894: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
   895: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
   896: 
   897: 	PORT_START		/* 63B05Z0 - PORT C & SCI */
   898: 	PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED )
   899: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
   900: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
   901: 	PORT_DIPNAME( 0x40, 0x40, "Test Switch")
   902: 	PORT_DIPSETTING(	0x40, DEF_STR( Off ) )
   903: 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
   904: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
   905: 
   906: 	PORT_START		/* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 0 */
   907: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
   908: 	PORT_START      /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 1 */
   909: 	PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_X,  15, 10, 0x60, 0x9f )
   910: 	PORT_START      /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 2 */
   911: 	PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_Y,  20, 10, 0x60, 0x9f )
   912: 	PORT_START		/* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 3 */
   913: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
   914: 	PORT_START		/* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 4 */
   915: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
   916: 	PORT_START		/* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 5 */
   917: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
   918: 	PORT_START		/* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 6 */
   919: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
   920: 	PORT_START		/* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 7 */
   921: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
   922: 
   923: 	PORT_START		/* 63B05Z0 - PORT H */
   924: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 )
   925: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 )
   926: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
   927: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 )
   928: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
   929: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
   930: 	PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
   931: 
   932: 	PORT_START		/* 63B05Z0 - $2000 DIP SW */
   933: 	PORT_DIPNAME( 0x01, 0x01, "DSW1 (Test Mode)")
   934: 	PORT_DIPSETTING(	0x01, DEF_STR( Off ) )
   935: 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
   936: 	PORT_DIPNAME( 0x02, 0x02, "DSW2")
   937: 	PORT_DIPSETTING(	0x02, DEF_STR( Off ) )
   938: 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
   939: 	PORT_DIPNAME( 0x04, 0x04, "DSW3")
   940: 	PORT_DIPSETTING(	0x04, DEF_STR( Off ) )
   941: 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
   942: 	PORT_DIPNAME( 0x08, 0x08, "DSW4")
   943: 	PORT_DIPSETTING(	0x08, DEF_STR( Off ) )
   944: 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
   945: 	PORT_DIPNAME( 0x10, 0x10, "DSW5")
   946: 	PORT_DIPSETTING(	0x10, DEF_STR( Off ) )
   947: 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
   948: 	PORT_DIPNAME( 0x20, 0x20, "DSW6")
   949: 	PORT_DIPSETTING(	0x20, DEF_STR( Off ) )
   950: 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
   951: 	PORT_DIPNAME( 0x40, 0x40, "DSW7")
   952: 	PORT_DIPSETTING(	0x40, DEF_STR( Off ) )
   953: 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
   954: 	PORT_DIPNAME( 0x80, 0x80, "DSW8")
   955: 	PORT_DIPSETTING(	0x80, DEF_STR( Off ) )
   956: 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
   957: 
   958: 	PORT_START		/* 63B05Z0 - $3000 */
   959: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
   960: 	PORT_START		/* 63B05Z0 - $3001 */
   961: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
   962: 	PORT_START		/* 63B05Z0 - $3002 */
   963: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
   964: 	PORT_START		/* 63B05Z0 - $3003 */
   965: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
   966: INPUT_PORTS_END
   967: 
   968: INPUT_PORTS_START( aircombt )
   969: 	PORT_START		/* IN#0: 63B05Z0 - PORT B */
   970: 	PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED )
   971: 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
   972: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
   973: 
   974: 	PORT_START		/* IN#1: 63B05Z0 - PORT C & SCI */
   975: 	PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED )
   976: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
   977: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
   978: 	PORT_DIPNAME( 0x40, 0x40, "Test Switch")
   979: 	PORT_DIPSETTING(	0x40, DEF_STR( Off ) )
   980: 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
   981: 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
   982: 
   983: 	PORT_START		/* IN#2: 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 0 */
   984: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
   985: 
   986: 	PORT_START		/* IN#3: 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 1 */
   987: 	PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_X|IPF_CENTER, 100, 4, 0x00, 0xff )
   988: 
   989: 	PORT_START		/* IN#4: 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 2 */
   990: 	PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_Y|IPF_CENTER, 100, 4, 0x00, 0xff )
   991: 
   992: 	PORT_START		/* IN#5: 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 3 */
   993: 	PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_X|IPF_CENTER|IPF_PLAYER2, 100, 4, 0x00, 0xff )
   994: 
   995: 	PORT_START		/* IN#6: 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 4 */
   996: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
   997: 	PORT_START		/* IN#7: 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 5 */
   998: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
   999: 	PORT_START		/* IN#8: 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 6 */
  1000: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
  1001: 	PORT_START		/* IN#9: 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 7 */
  1002: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
  1003: 
  1004: 	PORT_START		/* IN#10: 63B05Z0 - PORT H */
  1005: 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 )
  1006: 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 )
  1007: 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) ///???
  1008: 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) // prev color
  1009: 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) // ???next color
  1010: 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
  1011: 	PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
  1012: 
  1013: 	PORT_START		/* IN#11: 63B05Z0 - $2000 DIP SW */
  1014: 	PORT_DIPNAME( 0x01, 0x01, "DSW1 (Test Mode)")
  1015: 	PORT_DIPSETTING(	0x01, DEF_STR( Off ) )
  1016: 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
  1017: 	PORT_DIPNAME( 0x02, 0x02, "DSW2")
  1018: 	PORT_DIPSETTING(	0x02, DEF_STR( Off ) )
  1019: 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
  1020: 	PORT_DIPNAME( 0x04, 0x04, "DSW3")
  1021: 	PORT_DIPSETTING(	0x04, DEF_STR( Off ) )
  1022: 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
  1023: 	PORT_DIPNAME( 0x08, 0x08, "DSW4")
  1024: 	PORT_DIPSETTING(	0x08, DEF_STR( Off ) )
  1025: 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
  1026: 	PORT_DIPNAME( 0x10, 0x10, "DSW5")
  1027: 	PORT_DIPSETTING(	0x10, DEF_STR( Off ) )
  1028: 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
  1029: 	PORT_DIPNAME( 0x20, 0x20, "DSW6")
  1030: 	PORT_DIPSETTING(	0x20, DEF_STR( Off ) )
  1031: 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
  1032: 	PORT_DIPNAME( 0x40, 0x40, "DSW7")
  1033: 	PORT_DIPSETTING(	0x40, DEF_STR( Off ) )
  1034: 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
  1035: 	PORT_DIPNAME( 0x80, 0x80, "DSW8")
  1036: 	PORT_DIPSETTING(	0x80, DEF_STR( Off ) )
  1037: 	PORT_DIPSETTING(	0x00, DEF_STR( On ) )
  1038: 
  1039: 	PORT_START		/* IN#12: 63B05Z0 - $3000 */
  1040: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
  1041: 	PORT_START		/* IN#13: 63B05Z0 - $3001 */
  1042: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
  1043: 	PORT_START		/* IN#14: 63B05Z0 - $3002 */
  1044: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
  1045: 	PORT_START		/* IN#15: 63B05Z0 - $3003 */
  1046: 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
  1047: INPUT_PORTS_END
  1048: 
  1049: 
  1050: /*    YEAR, NAME,     PARENT,   MACHINE,          INPUT,        INIT,     MONITOR,    COMPANY, FULLNAME,	    	FLAGS */
  1051: GAMEX( 1992, aircombj, 0,	    poly_c140_typeB,  aircombt, 	aircombt, ROT0,		  "Namco", "Air Combat (Japan)",	GAME_NOT_WORKING ) /* mostly working */
  1052: GAMEX( 1992, aircombu, aircombj,poly_c140_typeB,  aircombt, 	aircombt, ROT0, 	  "Namco", "Air Combat (US)",	GAME_NOT_WORKING ) /* mostly working */
  1053: GAMEX( 1993, cybsled,  0,       poly_c140_typeA,  default,      cybsled,  ROT0,       "Namco", "Cyber Sled",		GAME_NOT_WORKING ) /* mostly working */
  1054: /* 199?, Driver's Eyes */
  1055: /* 1992, ShimDrive */
  1056: GAMEX( 1991, solvalou, 0, 	    poly_c140_typeA,  default,	    solvalou, ROT0, 	  "Namco", "Solvalou (Japan)",	GAME_IMPERFECT_GRAPHICS ) /* working and playable */
  1057: GAMEX( 1991, starblad, 0, 	    poly_c140_typeA,  default,  	starblad, ROT0, 	  "Namco", "Starblade",			GAME_IMPERFECT_GRAPHICS ) /* working and playable */
  1058: /* 1988, Winning Run */
  1059: /* 1989, Winning Run Suzuka Grand Prix */
  1060: GAMEX( 1991, winrun91, 0, 	    poly_c140_typeB,  default,	    winrun,	  ROT0, 	  "Namco", "Winning Run 91", 	GAME_NOT_WORKING ) /* not working */
  1061: 




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