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
READ16_HANDLER(namcos2_68k_dualportram_word_r)211 static READ16_HANDLER( namcos2_68k_dualportram_word_r )
212 {
213 return mpDualPortRAM[offset];
214 }
215
WRITE16_HANDLER(namcos2_68k_dualportram_word_w)216 static WRITE16_HANDLER( namcos2_68k_dualportram_word_w )
217 {
218 if( ACCESSING_LSB )
219 {
220 mpDualPortRAM[offset] = data & 0xff;
221 }
222 }
223
READ_HANDLER(namcos2_dualportram_byte_r)224 static READ_HANDLER( namcos2_dualportram_byte_r )
225 {
226 return mpDualPortRAM[offset];
227 }
228
WRITE_HANDLER(namcos2_dualportram_byte_w)229 static WRITE_HANDLER( namcos2_dualportram_byte_w )
230 {
231 mpDualPortRAM[offset] = data;
232 }
233
234 /* shared RAM memory handlers */
235
READ16_HANDLER(shareram1_r)236 static READ16_HANDLER( shareram1_r )
237 {
238 return mpSharedRAM1[offset];
239 }
240
WRITE16_HANDLER(shareram1_w)241 static WRITE16_HANDLER( shareram1_w )
242 {
243 COMBINE_DATA( &mpSharedRAM1[offset] );
244 }
245
READ16_HANDLER(shareram2_r)246 static READ16_HANDLER( shareram2_r )
247 {
248 return mpSharedRAM2[offset];
249 }
250
WRITE16_HANDLER(shareram2_w)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
READ16_HANDLER(dspram16_r)258 static READ16_HANDLER( dspram16_r )
259 {
260 /* log_cb(RETRO_LOG_DEBUG, LOGPRE "polyram[%08x] == %04x; pc==0x%08x\n",
261 offset*2, namcos21_dspram16[offset], activecpu_get_pc() ); */
262 return namcos21_dspram16[offset];
263 }
264
WRITE16_HANDLER(dspram16_w)265 static WRITE16_HANDLER( dspram16_w )
266 {
267 COMBINE_DATA( &namcos21_dspram16[offset] );
268 /* log_cb(RETRO_LOG_DEBUG, LOGPRE "polyram[%08x] := %04x\n", offset*2, namcos21_dspram16[offset] ); */
269 }
270
READ16_HANDLER(dsp_status_r)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
READ16_HANDLER(data_r)278 static READ16_HANDLER( data_r )
279 {
280 return mpDataROM[offset];
281 }
282
READ16_HANDLER(data2_r)283 static READ16_HANDLER( data2_r )
284 {
285 return mpDataROM[0x100000/2+offset];
286 }
287
288 /* palette memory handlers */
289
READ16_HANDLER(paletteram16_r)290 static READ16_HANDLER( paletteram16_r )
291 {
292 return paletteram16[offset];
293 }
294
WRITE16_HANDLER(paletteram16_w)295 static WRITE16_HANDLER( paletteram16_w )
296 {
297 COMBINE_DATA(&paletteram16[offset]);
298 }
299
300
301 /*************************************************************/
302 /* MASTER 68000 CPU Memory declarations */
303 /*************************************************************/
304
MEMORY_READ16_START(readmem_master_default)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_B,
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 */
MDRV_CPU_MEMORY(readmem_master_default,writemem_master_default)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) SHA1(9f1c99dd503f1fc81096170fd272e33ae8a7de2f) )
549 ROM_LOAD16_BYTE( "mpr-l.ac2", 0x000001, 0x80000, CRC(520a52e6) SHA1(74306e02abfe08aa1afbf325b74dbc0840c3ad3a) )
550
551 ROM_REGION( 0x40000, REGION_CPU2, 0 ) /* Slave */
552 ROM_LOAD16_BYTE( "spr-u.ac2", 0x000000, 0x20000, CRC(42aca956) SHA1(10ea2400bb4d5b2d805e2de43ca0e0f54597f660) )
553 ROM_LOAD16_BYTE( "spr-l.ac2", 0x000001, 0x20000, CRC(3e15fa19) SHA1(65dbb33ab6b3c06c793613348ebb7b110b8bba0d) )
554
555 ROM_REGION( 0x030000, REGION_CPU3, 0 ) /* Sound */
556 ROM_LOAD( "snd0.ac1", 0x00c000, 0x004000, CRC(5c1fb84b) SHA1(20e4d81289dbe58ffcfc947251a6ff1cc1e36436) )
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) SHA1(16f6022dedb7a74590898bc8ed3e8a97993c4635) )
566 ROM_LOAD( "obj4.ac2", 0x080000, 0x80000, CRC(e433e344) SHA1(98ade550cf066fcb5c09fa905f441a1464d4d625) )
567 ROM_LOAD( "obj1.ac2", 0x100000, 0x80000, CRC(43af566d) SHA1(99f0d9f005e28040f5cc10de2198893946a31d09) )
568 ROM_LOAD( "obj5.ac2", 0x180000, 0x80000, CRC(ecb19199) SHA1(8e0aa1bc1141c4b09576ab08970d0c7629560643) )
569 ROM_LOAD( "obj2.ac2", 0x200000, 0x80000, CRC(dafbf489) SHA1(c53ccb3e1b4a6a660bd28c8abe52ccc3f85d111f) )
570 ROM_LOAD( "obj6.ac2", 0x280000, 0x80000, CRC(24cc3f36) SHA1(e50af176eb3034c9cab7613ca614f5cc2c62f95e) )
571 ROM_LOAD( "obj3.ac2", 0x300000, 0x80000, CRC(bd555a1d) SHA1(96e432b30da6f5f7ccb768c516b1f7186bc0d4c9) )
572 ROM_LOAD( "obj7.ac2", 0x380000, 0x80000, CRC(d561fbe3) SHA1(a23976e10bddf74d4a6b292f044dfd0affbab101) )
573
574 ROM_REGION16_BE( 0x200000, REGION_USER1, 0 ) /* collision */
575 ROM_LOAD16_BYTE( "edata-u.ac1", 0x000000, 0x80000, CRC(82320c71) SHA1(2be98d46853febb46e1cc728af2735c0e00ce303) )
576 ROM_LOAD16_BYTE( "edata-l.ac1", 0x000001, 0x80000, CRC(fd7947d3) SHA1(2696eeae37de6d256e626cc3f3cea7b0f6eff60e) )
577 ROM_LOAD16_BYTE( "edata1-u.ac2", 0x100000, 0x80000, CRC(40c07095) SHA1(5d9beaf5bc411ac66785d70980977b08446f46e3) )
578 ROM_LOAD16_BYTE( "edata1-l.ac1", 0x100001, 0x80000, CRC(a87087dd) SHA1(cd9b83a8f07886ab44e4ded68002b44338777e8c) )
579
580 ROM_REGION32_BE( 0x400000, REGION_USER2, ROMREGION_ERASE ) /* 24bit signed point data */
581 ROM_LOAD32_BYTE( "poih.ac1", 0x000001, 0x80000, CRC(573bbc3b) SHA1(371be12b915db6872049f18980c1b55544cfc445) ) /* most significant */
582 ROM_LOAD32_BYTE( "poil-u.ac1", 0x000002, 0x80000, CRC(d99084b9) SHA1(c604d60a2162af7610e5ff7c1aa4195f7df82efe) )
583 ROM_LOAD32_BYTE( "poil-l.ac1", 0x000003, 0x80000, CRC(abb32307) SHA1(8e936ba99479215dd33a951d81ec2b04020dfd62) ) /* least significant */
584
585 ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* sound samples */
586 ROM_LOAD("voi0.ac1",0x000000,0x80000,CRC(f427b119) SHA1(bd45bbe41c8be26d6c997fcdc226d080b416a2cf) )
587 ROM_LOAD("voi1.ac1",0x080000,0x80000,CRC(c9490667) SHA1(4b6fbe635c32469870a8e6f82742be6a9d4918c9) )
588 ROM_LOAD("voi2.ac1",0x100000,0x80000,CRC(1fcb51ba) SHA1(80fc815e5fad76d20c3795ab1d89b57d9abc3efd) )
589 ROM_LOAD("voi3.ac1",0x180000,0x80000,CRC(cd202e06) SHA1(72a18f5ba402caefef14b8d1304f337eaaa3eb1d) )
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) SHA1(2ee8b3492d30db4c841f695151880925a5e205e0) )
595 ROM_LOAD16_BYTE( "mpr-l.ac1", 0x000001, 0x80000, CRC(8577b6a2) SHA1(32194e392fbd051754be88eb8c90688c65c65d85) )
596
597 ROM_REGION( 0x40000, REGION_CPU2, 0 ) /* Slave */
598 ROM_LOAD16_BYTE( "spr-u.ac1", 0x000000, 0x20000, CRC(5810e219) SHA1(c312ffd8324670897871b12d521779570dc0f580) )
599 ROM_LOAD16_BYTE( "spr-l.ac1", 0x000001, 0x20000, CRC(175a7d6c) SHA1(9e31dde6646cd9b6dcdbdb3f2326177508559e56) )
600
601 ROM_REGION( 0x030000, REGION_CPU3, 0 ) /* Sound */
602 ROM_LOAD( "snd0.ac1", 0x00c000, 0x004000, CRC(5c1fb84b) SHA1(20e4d81289dbe58ffcfc947251a6ff1cc1e36436) )
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) SHA1(9bb8fdfc2c232574777248f4959975f9a20e3105) )
612 ROM_LOAD( "obj4.ac1", 0x080000, 0x80000, CRC(0c93b478) SHA1(a92ffbcf04b64e0eee5bcf37008e247700641b25) )
613 ROM_LOAD( "obj1.ac1", 0x100000, 0x80000, CRC(f5783a77) SHA1(0be1815ceb4ce4fa7ab75ba588e090f20ee0cac9) )
614 ROM_LOAD( "obj5.ac1", 0x180000, 0x80000, CRC(476aed15) SHA1(0e53fdf02e8ffe7852a1fa8bd2f64d0e58f3dc09) )
615 ROM_LOAD( "obj2.ac1", 0x200000, 0x80000, CRC(01343d5c) SHA1(64171fed1d1f8682b3d70d3233ea017719f4cc63) )
616 ROM_LOAD( "obj6.ac1", 0x280000, 0x80000, CRC(c67607b1) SHA1(df64ea7920cf64271fe742d3d0a57f842ee61e8d) )
617 ROM_LOAD( "obj3.ac1", 0x300000, 0x80000, CRC(7717f52e) SHA1(be1df3f4d0fdcaa5d3c81a724e5eb9d14136c6f5) )
618 ROM_LOAD( "obj7.ac1", 0x380000, 0x80000, CRC(cfa9fe5f) SHA1(0da25663b89d653c87ed32d15f7c82f3035702ab) )
619
620 ROM_REGION16_BE( 0x200000, REGION_USER1, 0 )
621 ROM_LOAD16_BYTE( "edata-u.ac1", 0x000000, 0x80000, CRC(82320c71) SHA1(2be98d46853febb46e1cc728af2735c0e00ce303) )
622 ROM_LOAD16_BYTE( "edata-l.ac1", 0x000001, 0x80000, CRC(fd7947d3) SHA1(2696eeae37de6d256e626cc3f3cea7b0f6eff60e) )
623 ROM_LOAD16_BYTE( "edata1-u.ac1", 0x100000, 0x80000, CRC(a9547509) SHA1(1bc663cec03b60ad968896bbc2546f02efda135e) )
624 ROM_LOAD16_BYTE( "edata1-l.ac1", 0x100001, 0x80000, CRC(a87087dd) SHA1(cd9b83a8f07886ab44e4ded68002b44338777e8c) )
625
626 ROM_REGION32_BE( 0x400000, REGION_USER2, ROMREGION_ERASE ) /* 24bit signed point data */
627 ROM_LOAD32_BYTE( "poih.ac1", 0x000001, 0x80000, CRC(573bbc3b) SHA1(371be12b915db6872049f18980c1b55544cfc445) ) /* most significant */
628 ROM_LOAD32_BYTE( "poil-u.ac1", 0x000002, 0x80000, CRC(d99084b9) SHA1(c604d60a2162af7610e5ff7c1aa4195f7df82efe) )
629 ROM_LOAD32_BYTE( "poil-l.ac1", 0x000003, 0x80000, CRC(abb32307) SHA1(8e936ba99479215dd33a951d81ec2b04020dfd62) ) /* least significant */
630
631 ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* sound samples */
632 ROM_LOAD("voi0.ac1",0x000000,0x80000,CRC(f427b119) SHA1(bd45bbe41c8be26d6c997fcdc226d080b416a2cf) )
633 ROM_LOAD("voi1.ac1",0x080000,0x80000,CRC(c9490667) SHA1(4b6fbe635c32469870a8e6f82742be6a9d4918c9) )
634 ROM_LOAD("voi2.ac1",0x100000,0x80000,CRC(1fcb51ba) SHA1(80fc815e5fad76d20c3795ab1d89b57d9abc3efd) )
635 ROM_LOAD("voi3.ac1",0x180000,0x80000,CRC(cd202e06) SHA1(72a18f5ba402caefef14b8d1304f337eaaa3eb1d) )
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) SHA1(b794051b2c351e9ca43351603845e4e563f6740f) )
641 ROM_LOAD16_BYTE( "mprl.1j", 0x000001, 0x80000, CRC(f7ee8b48) SHA1(6d36eb3dba9cf7f5f5e1a26c156e77a2dad3f257) )
642
643 ROM_REGION( 0x100000, REGION_CPU2, 0 ) /* Slave */
644 ROM_LOAD16_BYTE( "spru.6c", 0x000000, 0x80000, CRC(28dd707b) SHA1(11297ceae4fe78d170785a5cf9ad77833bbe7fff) )
645 ROM_LOAD16_BYTE( "sprl.4c", 0x000001, 0x80000, CRC(437029de) SHA1(3d275a2b0ce6909e77e657c371bd22597ea9d398) )
646
647 ROM_REGION( 0x030000, REGION_CPU3, 0 ) /* Sound */
648 ROM_LOAD( "snd0.8j", 0x00c000, 0x004000, CRC(3dddf83b) SHA1(e16119cbef176b6f8f8ace773fcbc201e987823f) )
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) SHA1(99b1a3ed476da4a97cb864538909d7b831f0fd3b) )
658 ROM_LOAD( "obj4.4s", 0x080000, 0x80000, CRC(57904076) SHA1(b1dc0d99543bc4b9584b37ffc12c6ebc59e30e3b) )
659 ROM_LOAD( "obj1.5x", 0x100000, 0x80000, CRC(4aae3eff) SHA1(c80240bd2f4228a0261a14adb6b10560b31b5aa0) )
660 ROM_LOAD( "obj5.4x", 0x180000, 0x80000, CRC(0e11ca47) SHA1(076a9a4cfddbee2d8aaa06110333090d8fdbefeb) )
661 ROM_LOAD( "obj2.3s", 0x200000, 0x80000, CRC(d64ec4c3) SHA1(0bed1cafc21ed8cef3850fb81e30076977086eb0) )
662 ROM_LOAD( "obj6.2s", 0x280000, 0x80000, CRC(7748b485) SHA1(adb4da419a6cdbefd0fef182d866a3479be379af) )
663 ROM_LOAD( "obj3.3x", 0x300000, 0x80000, CRC(3d1f7168) SHA1(392dddcc79fe61dcc6514a91ac27b5e36825d8b7) )
664 ROM_LOAD( "obj7.2x", 0x380000, 0x80000, CRC(b6eb6ad2) SHA1(85a660c5e44012491be7d4e783cce6ba12c135cb) )
665
666 ROM_REGION16_BE( 0x200000, REGION_USER1, 0 )
667 ROM_LOAD16_BYTE( "datau.3a", 0x000000, 0x80000, CRC(570da15d) SHA1(9ebe756f10756c079a92fb522332e9e52ff715c3) )
668 ROM_LOAD16_BYTE( "datal.1a", 0x000001, 0x80000, CRC(9cf96f9e) SHA1(91783f48b93e03c778c6641ca8fb419c13b0d3c5) )
669 ROM_LOAD16_BYTE( "edata0u.3b", 0x100000, 0x80000, CRC(77452533) SHA1(48fc199bcc1beb23c714eebd9b09b153c980170b) )
670 ROM_LOAD16_BYTE( "edata0l.1b", 0x100001, 0x80000, CRC(e812e290) SHA1(719e0a026ae8ef63d0d0269b67669ea9b4d950dd) )
671
672 ROM_REGION32_BE( 0x400000, REGION_USER2, ROMREGION_ERASE ) /* 24bit signed point data */
673 ROM_LOAD32_BYTE( "poih1.2f", 0x000001, 0x80000, CRC(eaf8bac3) SHA1(7a2caf6672af158b4a23ce4626342d1f17d1a4e4) ) /* most significant */
674 ROM_LOAD32_BYTE( "poilu1.2k", 0x000002, 0x80000, CRC(c544a8dc) SHA1(4cce5f2ab3519b4aa7edbdd15b2d79a7fdcade3c) )
675 ROM_LOAD32_BYTE( "poill1.2n", 0x000003, 0x80000, CRC(30acb99b) SHA1(a28dcb3e5405f166644f6353a903c1143ee268f1) ) /* least significant */
676 ROM_LOAD32_BYTE( "poih2.2j", 0x200001, 0x80000, CRC(4079f342) SHA1(fa36aed1abbda54a42f29b183007474580870319) )
677 ROM_LOAD32_BYTE( "poilu2.2l", 0x200002, 0x80000, CRC(61d816d4) SHA1(7991957b910d32530151abc7f469fcf1de62d8f3) )
678 ROM_LOAD32_BYTE( "poill2.2p", 0x200003, 0x80000, CRC(faf09158) SHA1(b56ebed6012362b1d599c396a43e90a1e4d9dc38) )
679
680 ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* sound samples */
681 ROM_LOAD("voi0.12b",0x000000,0x80000,CRC(99d7ce46) SHA1(b75f4055c3ce847daabfacda22df14e3f80c4fb9) )
682 ROM_LOAD("voi1.12c",0x080000,0x80000,CRC(2b335f06) SHA1(2b2cd407c34388b56496f84a414daa153780b098) )
683 ROM_LOAD("voi2.12d",0x100000,0x80000,CRC(10cd15f0) SHA1(9b721654ed97a13287373c1b2854ac9aeddc271f) )
684 ROM_LOAD("voi3.12e",0x180000,0x80000,CRC(c902b4a4) SHA1(816357ec1a02a7ebf817ac1182e9c50ce5ca71f6) )
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) SHA1(6613b95e164c2032ea9043e4161130c6b3262492) )
778 ROM_LOAD16_BYTE( "mpl.1k", 0x000001, 0x20000, CRC(942172d8) SHA1(21d8dfd2165b5ceb0399fdb53d9d0f51f1255803) )
779
780 ROM_REGION( 0x080000, REGION_CPU2, 0 ) /* Slave */
781 ROM_LOAD16_BYTE( "spu.6b", 0x000000, 0x20000, CRC(0221d4b2) SHA1(65fd38b1cfaa6693d71248561d764a9ea1098c56) )
782 ROM_LOAD16_BYTE( "spl.4b", 0x000001, 0x20000, CRC(288799e2) SHA1(2c4bf0cf9c71458fff4dd77e426a76685d9e1bab) )
783
784 ROM_REGION( 0x030000, REGION_CPU3, 0 ) /* Sound */
785 ROM_LOAD( "snd0.7c", 0x00c000, 0x004000, CRC(6a321e1e) SHA1(b2e77cac4ed7609593fa5a462c9d78526451e477) )
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) SHA1(ecd72397d10313fe8dcb8589bdc5d88d4298b26c) )
795 ROM_LOAD16_BYTE( "d0l.1a", 0x000001, 0x20000, CRC(f692a8f3) SHA1(4c29f60400b18d9ef0425de149618da6cf762ca4) )
796 ROM_LOAD16_BYTE( "d1u.3b", 0x000000, 0x20000, CRC(ac2afd1b) SHA1(510eb41931164b086c85ba0a86d6f10b88f5e534) )
797 ROM_LOAD16_BYTE( "d1l.1b", 0x000001, 0x20000, CRC(ebb51af1) SHA1(87b7b64ee662bf652add1e1199e42391d0e2f7e8) )
798
799 ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE ) /* sprites */
800 ROM_LOAD( "gd0l.3p", 0x00000, 0x40000, CRC(9a29500e) SHA1(c605f86b138e0a4c3163ffd967482e298a15fbe7) )
801 ROM_LOAD( "gd1u.1s", 0x40000, 0x40000, CRC(17e5a61c) SHA1(272ebd7daa56847f1887809535362331b5465dec) )
802 ROM_LOAD( "gd0u.1p", 0x80000, 0x40000, CRC(33f5a19b) SHA1(b1dbd242168007f80e13e11c78b34abc1668883e) )
803 ROM_LOAD( "gd1l.3s", 0xc0000, 0x40000, CRC(64df59a2) SHA1(1e9d0945b94780bb0be16803e767466d2cda07e8) )
804
805 ROM_REGION32_BE( 0x400000, REGION_USER2, ROMREGION_ERASE ) /* 16 bit point data? */
806 ROM_LOAD32_BYTE( "pt0u.8j", 0x00002, 0x20000, CRC(abf512a6) SHA1(e86288039d6c4dedfa95b11cb7e4b87637f90c09) )
807 ROM_LOAD32_BYTE( "pt0l.8d", 0x00003, 0x20000, CRC(ac8d468c) SHA1(d1b457a19a5d3259d0caf933f42b3a02b485867b) )
808 ROM_LOAD32_BYTE( "pt1u.8l", 0x80002, 0x20000, CRC(7e5dab74) SHA1(5bde219d5b4305d38d17b494b2e759f05d05329f) )
809 ROM_LOAD32_BYTE( "pt1l.8e", 0x80003, 0x20000, CRC(38a54ec5) SHA1(5c6017c98cae674868153ff2d64532027cf0ab83) )
810
811 ROM_REGION16_BE( 0x80000, REGION_USER3, 0 ) /* ? */
812 ROM_LOAD( "gp0l.3j", 0x00000, 0x20000, CRC(5c18f596) SHA1(215cbda62254e31b4ff6431623384df1639bfdb7) )
813 ROM_LOAD( "gp0u.1j", 0x00001, 0x20000, CRC(f5469a29) SHA1(38b6ea1fbe482b69fbb0e2f44f44a0ca2a49f6bc) )
814 ROM_LOAD( "gp1l.3l", 0x40000, 0x20000, CRC(96c2463c) SHA1(e43db580e7b454af04c22e894108fbb56da0eeb5) )
815 ROM_LOAD( "gp1u.1l", 0x40001, 0x20000, CRC(146ab6b8) SHA1(aefb89585bf311f8d33f18298fea326ef1f19f1e) )
816
817 ROM_REGION( 0x200000, REGION_SOUND1, 0 ) /* sound samples */
818 ROM_LOAD("avo1.11c",0x000000,0x80000,CRC(9fb33af3) SHA1(666630a8e5766ca4c3275961963c3e713dfdda2d) )
819 ROM_LOAD("avo3.11e",0x080000,0x80000,CRC(76e22f92) SHA1(0e1b8d35a5b9c20cc3192d935f0c9da1e69679d2) )
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
DRIVER_INIT(winrun)840 static DRIVER_INIT( winrun )
841 {
842 namcos21_init( NAMCOS21_WINRUN91 );
843 }
844
DRIVER_INIT(aircombt)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
DRIVER_INIT(starblad)859 DRIVER_INIT( starblad )
860 {
861 namcos21_init( NAMCOS21_STARBLADE );
862 }
863
864
DRIVER_INIT(cybsled)865 DRIVER_INIT( cybsled )
866 {
867 namcos21_init( NAMCOS21_CYBERSLED );
868 }
869
DRIVER_INIT(solvalou)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 GAME( 1992, aircombj, 0, poly_c140_typeB, aircombt, aircombt, ROT0, "Namco", "Air Combat (Japan)" ) /* mostly working */
1052 GAME( 1992, aircombu, aircombj,poly_c140_typeB, aircombt, aircombt, ROT0, "Namco", "Air Combat (US)" ) /* mostly working */
1053 GAME( 1993, cybsled, 0, poly_c140_typeA, default, cybsled, ROT0, "Namco", "Cyber Sled" ) /* 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