2
2008/06/11, by Naibo(translated to English by Mameplus team):
4
-the communication work between CPU and 3D DSP should be limited to the master M68000,
5
if the address mapping is done in the shared memory, master CPU would be disturbed by the slave one.
8
DIP3 ON for Screen on the left
9
DIP4 ON for Screen on the right
10
should not toggle on both
12
-The left, center and right screens have separate programs and boards, each would work independently.
13
About projection angles of left and right screen, the angle is correct on "DRIVER'S EYES" title screen, however in the tracks of demo mode it doesn't seem correct.
15
-On demo screen, should fog effects be turned off?
17
-The game also features a pretty nice 2D sprite layer, which still doesn't show up yet.
18
it is known that the CPU does constantly feed the 2D video memory some meaningful and logical data.
23
polygon glitches/flicker
24
posirq effects for bitmap layer not working
29
Questions? pstroffo@yahoo.com (Phil Stroffolino)
31
There are at least four hardware variations, all of which are based on Namco System2:
33
| Winning Run | Driver's Eyes | Starblade | Cyber Sled
34
--------------------------+-------------+---------------+-----------+------------
35
GPU+bitmap layer | yes | no | no | no
36
Namco System NB1 Sprites | no | yes | yes | yes
37
Number of DSPs | 1 | 1 | 5 | 4
39
The main 68k CPUs populate a chunk of shared RAM with an display list describing a scene to be rendered.
40
The main CPUs also specify attributes for a master camera which provides additional global transformations.
41
The display list contains references to specific 3d objects and their position/orientation in 3d space.
43
The master DSP parses the display list and applies high level geometry, emitting matrices and object
44
references. Object references are expanded into meshes (decoded from point ROMs) and passed to the slave
45
DSP, interleaved with local transforms.
47
A collection of slave DSPs transforms, projects, and clips each primitive's vertices. Each slave DSP outputs
48
a stream of quad descriptors.
50
Each quad has a reference color (shared across vertices), and for each vertex the tuple: (screenx,screeny,z-code).
51
The z-code scalar accounts for depth bias. A zbuffer is used while rendering quads, and depth cueing is used to
52
shade pixels according to their depth.
54
---------------------------------------------------------------------------
64
- some minor polygon glitches
65
- posirq handling broken
70
TODO: (*) Extract DSP BIOS
72
TODO: namcoic.c: in StarBlade, the sprite list is stored at a different location during startup tests.
73
What register controls this?
75
TODO: Map lamps/vibration outputs as used by StarBlade (and possibly other titles).
76
These likely involve the MCU.
78
---------------------------------------------------------------------------
80
DSP RAM is shared with the 68000 CPUs and master DSP.
81
The memory map below reflects DSP RAM as seen by the 68000 CPUs.
88
0x200030: SMU: // "NO RESPONS" (DSP)
89
0x200040: IDC: // "NO RESPONS" (DSP)
90
0x200050: CPU: BOOTING..COMPLETE
92
0x200070: CRC: OK from cpu
93
0x200080: CRC: from dsp
98
0x200100 status: 2=upload needed, 4=error (abort)
101
0x200106 addr written by main cpu
102
0x20010a point rom checksum (starblade expects 0xed53)
103
0x20010c point rom checksum (starblade expects 0xd5df)
104
0x20010e 1 : upload-code-to-dsp request trigger
107
0x200114 master dsp code size
108
0x200116 slave dsp code size
109
0x200120 upload source1 addr hi
110
0x200122 upload source1 addr lo
111
0x200124 upload source2 addr hi
112
0x200126 upload source2 addr lo
115
0x200206 work page select
116
0x200208 0xa2c2 (air combat)
117
0x208000..0x2080ff camera attributes for page#0
118
0x208200..0x208fff 3d object attribute display list for page#0
119
0x20c000..0x20c0ff camera attributes for page#1
120
0x20c200..0x20cfff 3d object attribute display list for page#1
122
Starblade Cybersled AirCombat22 Solvalou
123
[400]:= 00 0000 00 0000 00 0000 00 0000
124
[402]:= 00 0011 00 0011 00 0011 00 0011
125
[404]:= 00 0000 00 0000 00 0000 00 0000
126
[406]:= 00 0000 00 0000 00 0000 00 0000
127
[408]:= 10 1002 10 1000 10 1000 10 1000
128
[40a]:= 02 0000 00 0000 00 0000 00 ffff
129
[40c]:= 00 1040 00 023a 00 1000 ff ffff
130
[40e]:= 00 0000 00 0000 00 0000 ff ffff
131
[410]:= 10 1034 02 0258 10 1000 ff ffff
132
[412]:= 40 0000 3a 0000 00 0000 ff ffff
133
[414]:= 00 1030 00 027a 00 1000 ff ffff
134
[416]:= 00 0000 00 0000 00 0000 ff ffff
135
[418]:= 10 1030 02 02a2 10 1000 ff ffff
136
[41a]:= 34 0000 58 0000 00 0000 ff ffff
137
[41c]:= 00 1030 00 02c2 00 1000 ff ffff
138
[41e]:= 00 0000 00 0000 00 0000 ff ffff
139
[420]:= 10 1030 02 02e6 10 1000 ff ffff
141
---------------------------------------------------------------------------
143
Thanks to Aaron Giles for originally making sense of the Point ROM data.
145
Point data in ROMS (signed 24 bit words) encodes the 3d primitives.
147
The first part of the Point ROMs is an address table.
149
Given an object index, this table provides an address into the second part of
152
The second part of the ROM is a series of display lists.
153
This is a sequence of pointers to actual polygon data. There may be
154
more than one, and the list is terminated by $ffffff.
156
The remainder of the ROM is a series of polygon data. The first word of each
157
entry is the length of the entry (in words, not counting the length word).
159
The rest of the data in each entry is organized as follows:
162
quad index (1 word) - this increments with each entry
163
vertex count (1 word) - the number of vertices encoded
164
unknown value (1 word) - almost always 0; depth bias
165
vertex list (n x 3 words)
166
quad count (1 word) - the number of quads to draw
167
quad primitives (n x 5 words) - color code and four vertex indices
169
-----------------------------------------------------------------------
170
Board 1 : DSP Board - 1st PCB. (Uppermost)
171
DSP Type 1 : 4 x TMS320C25 connected x 4 x Namco Custom chip 67 (68 pin PLCC) (Cybersled)
172
DSP Type 2 : 5 x TMS320C20 (Starblade)
174
RAM: HM62832 x 2, M5M5189 x 4, ISSI IS61C68 x 16
177
4 x Namco Custom 327 (24 pin NDIP), each one located next to a chip 67.
178
4 x Namco Custom chip 342 (160 pin PQFP), there are 3 leds (red/green/yellow) connected to each 342 chip. (12 leds total)
179
2 x Namco Custom 197 (28 pin NDIP)
180
Namco Custom chip 317 IDC (180 pin PQFP)
181
Namco Custom chip 195 (160 pin PQFP)
182
-----------------------------------------------------------------------
183
Board 2 : Unknown Board - 2nd PCB (no roms)
185
RAM: HM62256 x 10, 84256 x 4, CY7C128 x 5, M5M5178 x 4
188
L7A0565 316 (111) x 1 (100 PIN PQFP)
191
L7A0564 x 2 (100 PIN PQFP)
192
157 x 16 (24 PIN NDIP)
193
-----------------------------------------------------------------------
194
Board 3 : CPU Board - 3rd PCB (looks very similar to Namco System 2 CPU PCB)
195
CPU: MC68000P12 x 2 @ 12 MHz (16-bit)
196
Sound CPU: MC68B09EP (3 MHz)
197
Sound Chips: C140 24-channel PCM (Sound Effects), YM2151 (Music), YM3012 (?)
200
RAM: MB8464 x 2, MCM2018 x 2, HM65256 x 4, HM62256 x 2
203
Sharp PC900 - Opto-isolator
204
Sharp PC910 - Opto-isolator
207
MB87077-SK x 2 (24 pin NDIP, located in sound section)
208
LB1760 (16 pin DIP, located next to SYS87B-2B)
212
148 x 2 (64 pin PQFP)
216
149 (28 pin NDIP, near C68)
217
-----------------------------------------------------------------------
218
Board 4 : 4th PCB (bottom-most)
220
There is a 6 wire plug joining this PCB with the CPU PCB. It appears to be video cable (RGB, Sync etc..)
222
JP7 INTERLACE = SHORTED (Other setting is NON-INTERLACE)
223
JP8 68000 = SHORTED (Other setting is 68020)
229
-----------------------------------------------------------------------
237
Location Device File ID Checksum
238
-------------------------------------------------
239
CPU68 1J 27C4001 MPR-L.AC1 9859 [ main program ] [ rev AC1 ]
240
CPU68 3J 27C4001 MPR-U.AC1 97F1 [ main program ] [ rev AC1 ]
241
CPU68 1J 27C4001 MPR-L.AC2 C778 [ main program ] [ rev AC2 ]
242
CPU68 3J 27C4001 MPR-U.AC2 6DD9 [ main program ] [ rev AC2 ]
243
CPU68 1C MB834000 EDATA1-L.AC1 7F77 [ data ]
244
CPU68 3C MB834000 EDATA1-U.AC1 FA2F [ data ]
245
CPU68 3A MB834000 EDATA-U.AC1 20F2 [ data ]
246
CPU68 1A MB834000 EDATA-L.AC1 9E8A [ data ]
247
CPU68 8J 27C010 SND0.AC1 71A8 [ sound prog ]
248
CPU68 12B MB834000 VOI0.AC1 08CF [ voice 0 ]
249
CPU68 12C MB834000 VOI1.AC1 925D [ voice 1 ]
250
CPU68 12D MB834000 VOI2.AC1 C498 [ voice 2 ]
251
CPU68 12E MB834000 VOI3.AC1 DE9F [ voice 3 ]
252
CPU68 4C 27C010 SPR-L.AC1 473B [ slave prog L ] [ rev AC1 ]
253
CPU68 6C 27C010 SPR-U.AC1 CA33 [ slave prog U ] [ rev AC1 ]
254
CPU68 4C 27C010 SPR-L.AC2 08CE [ slave prog L ] [ rev AC2 ]
255
CPU68 6C 27C010 SPR-U.AC2 A3F1 [ slave prog U ] [ rev AC2 ]
256
OBJ(B) 5S HN62344 OBJ0.AC1 CB72 [ object data ]
257
OBJ(B) 5X HN62344 OBJ1.AC1 85E2 [ object data ]
258
OBJ(B) 3S HN62344 OBJ2.AC1 89DC [ object data ]
259
OBJ(B) 3X HN62344 OBJ3.AC1 58FF [ object data ]
260
OBJ(B) 4S HN62344 OBJ4.AC1 46D6 [ object data ]
261
OBJ(B) 4X HN62344 OBJ5.AC1 7B91 [ object data ]
262
OBJ(B) 2S HN62344 OBJ6.AC1 5736 [ object data ]
263
OBJ(B) 2X HN62344 OBJ7.AC1 6D45 [ object data ]
264
OBJ(B) 17N PLHS18P8 3P0BJ3 4342
265
OBJ(B) 17N PLHS18P8 3POBJ4 1143
266
DSP 2N HN62344 AC1-POIL.L 8AAF [ DSP data ]
267
DSP 2K HN62344 AC1-POIL.L CF90 [ DSP data ]
268
DSP 2E HN62344 AC1-POIH 4D02 [ DSP data ]
269
DSP 17D GAL16V8A 3PDSP5 6C00
271
NOTE: CPU68 - CPU board 2252961002 (2252971002)
272
OBJ(B) - Object board 8623961803 (8623963803)
273
DSP - DSP board 8623961703 (8623963703)
274
PGN(C) - PGN board 2252961300 (8623963600)
276
Namco System 21 Hardware
278
ROMs that have the same locations are different revisions
279
of the same ROMs (AC1 or AC2).
283
Location Position set alt. setting
284
----------------------------------------
292
#include "cpu/m68000/m68000.h"
293
#include "cpu/m6805/m6805.h"
294
#include "includes/namcos2.h"
295
#include "cpu/m6809/m6809.h"
296
#include "cpu/tms32025/tms32025.h"
297
#include "includes/namcoic.h"
298
#include "sound/2151intf.h"
299
#include "sound/c140.h"
300
#include "includes/namcos21.h"
301
#include "machine/nvram.h"
303
#define PTRAM_SIZE 0x20000
305
#define ENABLE_LOGGING 0
309
ReadPointROMData( running_machine &machine, unsigned offset )
311
const INT32 *pPointData = (INT32 *)machine.region( "user2" )->base();
312
INT32 result = pPointData[offset];
316
static READ16_HANDLER(namcos21_video_enable_r)
318
namcos21_state *state = space->machine().driver_data<namcos21_state>();
319
return state->m_video_enable;
322
static WRITE16_HANDLER(namcos21_video_enable_w)
324
namcos21_state *state = space->machine().driver_data<namcos21_state>();
325
COMBINE_DATA( &state->m_video_enable ); /* 0x40 = enable */
326
if( state->m_video_enable!=0 && state->m_video_enable!=0x40 )
328
logerror( "unexpected namcos21_video_enable_w=0x%x\n", state->m_video_enable );
333
/***********************************************************/
334
static WRITE16_HANDLER(dspcuskey_w)
335
{ /* TODO: proper cuskey emulation */
338
static READ16_HANDLER(dspcuskey_r)
341
if( namcos2_gametype == NAMCOS21_SOLVALOU )
343
switch( cpu_get_pc(&space->device()) )
345
case 0x805e: result = 0x0000; break;
346
case 0x805f: result = 0xfeba; break;
347
case 0x8067: result = 0xffff; break;
348
case 0x806e: result = 0x0145; break;
350
logerror( "unk cuskey_r; pc=0x%x\n", cpu_get_pc(&space->device()) );
354
else if( namcos2_gametype == NAMCOS21_CYBERSLED )
356
switch( cpu_get_pc(&space->device()) )
358
case 0x8061: result = 0xfe95; break;
359
case 0x8069: result = 0xffff; break;
360
case 0x8070: result = 0x016A; break;
365
else if( namcos2_gametype == NAMCOS21_AIRCOMBAT )
367
switch( cpu_get_pc(&space->device()) )
369
case 0x8062: result = 0xfeb9; break;
370
case 0x806a: result = 0xffff; break;
371
case 0x8071: result = 0x0146; break;
380
TransmitWordToSlave( namcos21_state *state, UINT16 data )
382
unsigned offs = state->m_mpDspState->slaveInputStart+state->m_mpDspState->slaveBytesAvailable++;
383
state->m_mpDspState->slaveInputBuffer[offs%DSP_BUF_MAX] = data;
384
if (ENABLE_LOGGING) logerror( "+%04x(#%04x)\n", data, state->m_mpDspState->slaveBytesAvailable );
385
state->m_mpDspState->slaveActive = 1;
386
if( state->m_mpDspState->slaveBytesAvailable >= DSP_BUF_MAX )
388
logerror( "IDC overflow\n" );
391
} /* TransmitWordToSlave */
394
TransferDspData( running_machine &machine )
396
namcos21_state *state = machine.driver_data<namcos21_state>();
397
UINT16 addr = state->m_mpDspState->masterSourceAddr;
398
int mode = addr&0x8000;
406
UINT16 code = state->m_dspram16[addr++];
411
addr = state->m_dspram16[addr];
412
state->m_mpDspState->masterSourceAddr = addr;
413
if (ENABLE_LOGGING) logerror( "LOOP:0x%04x\n", addr );
422
state->m_mpDspState->masterSourceAddr = 0;
427
{ /* direct data transfer */
428
if (ENABLE_LOGGING) logerror( "DATA TFR(0x%x)\n", code );
429
TransmitWordToSlave( state, code );
430
for( i=0; i<code; i++ )
432
UINT16 data = state->m_dspram16[addr++];
433
TransmitWordToSlave( state, data );
436
else if( code==0x18 || code==0x1a )
438
if (ENABLE_LOGGING) logerror( "HEADER TFR(0x%x)\n", code );
439
TransmitWordToSlave( state, code+1 );
440
for( i=0; i<code; i++ )
442
UINT16 data = state->m_dspram16[addr++];
443
TransmitWordToSlave( state, data );
448
INT32 masterAddr = ReadPointROMData(machine, code);
449
if (ENABLE_LOGGING) logerror( "OBJ TFR(0x%x)\n", code );
451
UINT16 len = state->m_dspram16[addr++];
454
int subAddr = ReadPointROMData(machine, masterAddr++);
455
if( subAddr==0xffffff )
461
int primWords = (UINT16)ReadPointROMData(machine, subAddr++);
464
TransmitWordToSlave( state, 0 ); /* pad1 */
465
TransmitWordToSlave( state, len+1 );
466
for( i=0; i<len; i++ )
468
TransmitWordToSlave( state, state->m_dspram16[addr+i] );
470
TransmitWordToSlave( state, 0 ); /* pad2 */
471
TransmitWordToSlave( state, primWords+1 );
472
for( i=0; i<primWords; i++ )
474
TransmitWordToSlave( state, (UINT16)ReadPointROMData(machine, subAddr+i) );
479
if (ENABLE_LOGGING) logerror( "TFR NOP?\n" );
488
} /* TransferDspData */
493
namcos21_kickstart( running_machine &machine, int internal )
495
namcos21_state *state = machine.driver_data<namcos21_state>();
496
/* patch dsp watchdog */
497
switch( namcos2_gametype )
499
case NAMCOS21_AIRCOMBAT:
500
state->m_master_dsp_code[0x008e] = 0x808f;
502
case NAMCOS21_SOLVALOU:
503
state->m_master_dsp_code[0x008b] = 0x808c;
510
if( state->m_mbNeedsKickstart==0 ) return;
511
state->m_mbNeedsKickstart--;
512
if( state->m_mbNeedsKickstart ) return;
515
namcos21_ClearPolyFrameBuffer(machine);
516
state->m_mpDspState->masterSourceAddr = 0;
517
state->m_mpDspState->slaveOutputSize = 0;
518
state->m_mpDspState->masterFinished = 0;
519
state->m_mpDspState->slaveActive = 0;
520
cputag_set_input_line(machine, "dspmaster", 0, HOLD_LINE);
521
cputag_set_input_line(machine, "dspslave", INPUT_LINE_RESET, PULSE_LINE);
525
ReadWordFromSlaveInput( address_space *space )
527
namcos21_state *state = space->machine().driver_data<namcos21_state>();
529
if( state->m_mpDspState->slaveBytesAvailable>0 )
531
data = state->m_mpDspState->slaveInputBuffer[state->m_mpDspState->slaveInputStart++];
532
state->m_mpDspState->slaveInputStart %= DSP_BUF_MAX;
533
state->m_mpDspState->slaveBytesAvailable--;
534
if( state->m_mpDspState->slaveBytesAdvertised>0 )
536
state->m_mpDspState->slaveBytesAdvertised--;
538
if (ENABLE_LOGGING) logerror( "%s:-%04x(0x%04x)\n", space->machine().describe_context(), data, state->m_mpDspState->slaveBytesAvailable );
541
} /* ReadWordFromSlaveInput */
544
GetInputBytesAdvertisedForSlave( running_machine &machine )
546
namcos21_state *state = machine.driver_data<namcos21_state>();
547
if( state->m_mpDspState->slaveBytesAdvertised < state->m_mpDspState->slaveBytesAvailable )
549
state->m_mpDspState->slaveBytesAdvertised++;
551
else if( state->m_mpDspState->slaveActive && state->m_mpDspState->masterFinished && state->m_mpDspState->masterSourceAddr )
553
namcos21_kickstart(machine, 0);
555
return state->m_mpDspState->slaveBytesAdvertised;
556
} /* GetInputBytesAdvertisedForSlave */
558
static READ16_HANDLER( dspram16_r )
560
namcos21_state *state = space->machine().driver_data<namcos21_state>();
561
return state->m_dspram16[offset];
564
static WRITE16_HANDLER( dspram16_w )
566
namcos21_state *state = space->machine().driver_data<namcos21_state>();
567
COMBINE_DATA( &state->m_dspram16[offset] );
569
if( namcos2_gametype != NAMCOS21_WINRUN91 )
571
if( state->m_mpDspState->masterSourceAddr &&
572
offset == 1+(state->m_mpDspState->masterSourceAddr&0x7fff) )
574
if (ENABLE_LOGGING) logerror( "IDC-CONTINUE\n" );
575
TransferDspData(space->machine());
577
else if (namcos2_gametype == NAMCOS21_SOLVALOU &&
579
&space->device() == space->machine().device("maincpu"))
580
{ /* hack; synchronization for solvalou */
581
device_yield(&space->device());
586
/************************************************************************************/
589
InitDSP( running_machine &machine )
591
namcos21_state *state = machine.driver_data<namcos21_state>();
592
UINT16 *pMem = (UINT16 *)machine.region("dspmaster")->base();
594
* DSP BIOS tests "CPU ID" on startup
595
* "JAPAN (C)1990 NAMCO LTD. by H.F "
597
memcpy( &pMem[0xbff0], &pMem[0x0008], 0x20 );
598
pMem[0x8000] = 0xFF80;
599
pMem[0x8001] = 0x0000;
601
state->m_mpDspState = auto_alloc_clear(machine, dsp_state);
606
/***********************************************************/
610
static READ16_HANDLER( dsp_port0_r )
612
namcos21_state *state = space->machine().driver_data<namcos21_state>();
613
INT32 data = ReadPointROMData(space->machine(), state->m_pointrom_idx++);
614
state->m_mPointRomMSB = (UINT8)(data>>16);
615
state->m_mbPointRomDataAvailable = 1;
619
static WRITE16_HANDLER( dsp_port0_w )
621
if (ENABLE_LOGGING) logerror( "PTRAM_LO(0x%04x)\n", data );
624
static READ16_HANDLER( dsp_port1_r )
626
namcos21_state *state = space->machine().driver_data<namcos21_state>();
627
if( state->m_mbPointRomDataAvailable )
629
state->m_mbPointRomDataAvailable = 0;
630
return state->m_mPointRomMSB;
632
return 0x8000; /* IDC ack? */
635
static WRITE16_HANDLER( dsp_port1_w )
637
if (ENABLE_LOGGING) logerror( "PTRAM_HI(0x%04x)\n", data );
640
static READ16_HANDLER( dsp_port2_r )
641
{ /* IDC TRANSMIT ENABLE? */
645
static WRITE16_HANDLER( dsp_port2_w )
647
namcos21_state *state = space->machine().driver_data<namcos21_state>();
648
if (ENABLE_LOGGING) logerror( "IDC ADDR INIT(0x%04x)\n", data );
649
state->m_mpDspState->masterSourceAddr = data;
650
TransferDspData(space->machine());
653
static READ16_HANDLER( dsp_port3_idc_rcv_enable_r )
654
{ /* IDC RECEIVE ENABLE? */
656
} /* dsp_port3_idc_rcv_enable_r */
658
static WRITE16_HANDLER( dsp_port3_w )
660
namcos21_state *state = space->machine().driver_data<namcos21_state>(); /* same address space as state->m_pointram? */
661
state->m_pointrom_idx<<=16;
662
state->m_pointrom_idx|=data;
665
static WRITE16_HANDLER( dsp_port4_w )
666
{ /* receives $0B<<4 prior to IDC setup */
669
static READ16_HANDLER( dsp_port8_r )
675
static WRITE16_HANDLER( dsp_port8_w )
677
namcos21_state *state = space->machine().driver_data<namcos21_state>(); /* IRQ-enable? */
678
if (ENABLE_LOGGING) logerror( "port8_w(%d)\n", data );
681
state->m_mpDspState->masterFinished = 1;
683
state->m_irq_enable = data;
686
static READ16_HANDLER( dsp_port9_r )
687
{ /* render-device-busy; used for direct-draw */
691
static READ16_HANDLER(dsp_porta_r)
696
static WRITE16_HANDLER(dsp_porta_w)
701
/* direct-draw begin: 0 */
703
// if (ENABLE_LOGGING) logerror( "dsp_porta_w(0x%04x)\n", data );
706
static READ16_HANDLER(dsp_portb_r)
711
static WRITE16_HANDLER(dsp_portb_w)
713
namcos21_state *state = space->machine().driver_data<namcos21_state>(); /* render-device trigger */
715
{ /* only 0->1 transition triggers */
718
if( state->m_mpDspState->masterDirectDrawSize == 13 )
721
int sx[4], sy[4], zcode[4];
722
int color = state->m_mpDspState->masterDirectDrawBuffer[0];
725
sx[i] = NAMCOS21_POLY_FRAME_WIDTH/2 + (INT16)state->m_mpDspState->masterDirectDrawBuffer[i*3+1];
726
sy[i] = NAMCOS21_POLY_FRAME_HEIGHT/2 + (INT16)state->m_mpDspState->masterDirectDrawBuffer[i*3+2];
727
zcode[i] = state->m_mpDspState->masterDirectDrawBuffer[i*3+3];
731
namcos21_DrawQuad( space->machine(), sx, sy, zcode, color );
735
logerror( "indirection used w/ direct draw?\n" );
738
else if( state->m_mpDspState->masterDirectDrawSize )
740
logerror( "unexpected masterDirectDrawSize=%d!\n",state->m_mpDspState->masterDirectDrawSize );
742
state->m_mpDspState->masterDirectDrawSize = 0;
745
static WRITE16_HANDLER(dsp_portc_w)
747
namcos21_state *state = space->machine().driver_data<namcos21_state>(); /* enqueue data for direct-drawn poly */
748
if( state->m_mpDspState->masterDirectDrawSize < DSP_BUF_MAX )
750
state->m_mpDspState->masterDirectDrawBuffer[state->m_mpDspState->masterDirectDrawSize++] = data;
754
logerror( "portc overflow\n" );
758
static READ16_HANDLER( dsp_portf_r )
759
{ /* informs BIOS that this is Master DSP */
763
static WRITE16_HANDLER( dsp_xf_w )
765
if (ENABLE_LOGGING) logerror("xf(%d)\n",data);
768
static ADDRESS_MAP_START( master_dsp_program, AS_PROGRAM, 16 )
769
AM_RANGE(0x0000, 0x0fff) AM_ROM /* BIOS */
770
AM_RANGE(0x8000, 0xbfff) AM_RAM AM_BASE_MEMBER(namcos21_state, m_master_dsp_code)
773
static ADDRESS_MAP_START( master_dsp_data, AS_DATA, 16 )
774
AM_RANGE(0x2000, 0x200f) AM_READWRITE(dspcuskey_r,dspcuskey_w)
775
AM_RANGE(0x8000, 0xffff) AM_READWRITE(dspram16_r,dspram16_w) /* 0x8000 words */
778
static ADDRESS_MAP_START( master_dsp_io, AS_IO, 16 )
779
AM_RANGE(0x00,0x00) AM_READWRITE(dsp_port0_r,dsp_port0_w)
780
AM_RANGE(0x01,0x01) AM_READWRITE(dsp_port1_r,dsp_port1_w)
781
AM_RANGE(0x02,0x02) AM_READWRITE(dsp_port2_r,dsp_port2_w)
782
AM_RANGE(0x03,0x03) AM_READWRITE(dsp_port3_idc_rcv_enable_r,dsp_port3_w)
783
AM_RANGE(0x04,0x04) AM_WRITE(dsp_port4_w)
784
AM_RANGE(0x08,0x08) AM_READWRITE(dsp_port8_r,dsp_port8_w)
785
AM_RANGE(0x09,0x09) AM_READ(dsp_port9_r)
786
AM_RANGE(0x0a,0x0a) AM_READWRITE(dsp_porta_r,dsp_porta_w)
787
AM_RANGE(0x0b,0x0b) AM_READWRITE(dsp_portb_r,dsp_portb_w)
788
AM_RANGE(0x0c,0x0c) AM_WRITE(dsp_portc_w)
789
AM_RANGE(0x0f,0x0f) AM_READ(dsp_portf_r)
790
AM_RANGE(TMS32025_HOLD, TMS32025_HOLD) AM_READNOP
791
AM_RANGE(TMS32025_HOLDA, TMS32025_HOLDA) AM_WRITENOP
792
AM_RANGE(TMS32025_XF, TMS32025_XF) AM_WRITE( dsp_xf_w )
795
/************************************************************************************/
798
RenderSlaveOutput( running_machine &machine, UINT16 data )
800
namcos21_state *state = machine.driver_data<namcos21_state>();
801
if( state->m_mpDspState->slaveOutputSize >= 4096 )
803
logerror( "FATAL ERROR: SLAVE OVERFLOW (0x%x)\n",state->m_mpDspState->slaveOutputBuffer[0] );
808
/* append word to slave output buffer */
809
state->m_mpDspState->slaveOutputBuffer[state->m_mpDspState->slaveOutputSize++] = data;
812
UINT16 *pSource = state->m_mpDspState->slaveOutputBuffer;
813
UINT16 count = *pSource++;
814
if( count && state->m_mpDspState->slaveOutputSize > count )
816
UINT16 color = *pSource++;
817
int sx[4], sy[4],zcode[4];
821
if( count!=13 ) logerror( "?!direct-draw(%d)\n", count );
824
sx[j] = NAMCOS21_POLY_FRAME_WIDTH/2 + (INT16)pSource[3*j+0];
825
sy[j] = NAMCOS21_POLY_FRAME_HEIGHT/2 + (INT16)pSource[3*j+1];
826
zcode[j] = pSource[3*j+2];
828
namcos21_DrawQuad( machine, sx, sy, zcode, color&0x7fff );
832
int quad_idx = color*6;
835
UINT8 code = state->m_pointram[quad_idx++];
836
color = state->m_pointram[quad_idx++]|(code<<8);
839
UINT8 vi = state->m_pointram[quad_idx++];
840
sx[j] = NAMCOS21_POLY_FRAME_WIDTH/2 + (INT16)pSource[vi*3+0];
841
sy[j] = NAMCOS21_POLY_FRAME_HEIGHT/2 + (INT16)pSource[vi*3+1];
842
zcode[j] = pSource[vi*3+2];
844
namcos21_DrawQuad( machine, sx, sy, zcode, color&0x7fff );
846
{ /* end-of-quadlist marker */
851
state->m_mpDspState->slaveOutputSize = 0;
855
if (ENABLE_LOGGING) logerror( "RenderSlaveOutput\n" );
859
} /* RenderSlaveOutput */
861
static READ16_HANDLER(slave_port0_r)
863
return ReadWordFromSlaveInput(space);
864
} /* slave_port0_r */
866
static WRITE16_HANDLER(slave_port0_w)
868
RenderSlaveOutput( space->machine(), data );
871
static READ16_HANDLER(slave_port2_r)
873
return GetInputBytesAdvertisedForSlave(space->machine());
874
} /* slave_port2_r */
876
static READ16_HANDLER(slave_port3_r)
877
{ /* render-device queue size */
878
/* up to 0x1fe bytes?
879
* slave blocks until free space exists
884
static WRITE16_HANDLER(slave_port3_w)
885
{ /* 0=busy, 1=ready? */
886
} /* slave_port3_w */
888
static WRITE16_HANDLER( slave_XF_output_w )
890
if (ENABLE_LOGGING) logerror( "0x%x:slaveXF(%d)\n", cpu_get_pc(&space->device()), data );
891
} /* slave_XF_output_w */
893
static READ16_HANDLER( slave_portf_r )
894
{ /* informs BIOS that this is Slave DSP */
898
static ADDRESS_MAP_START( slave_dsp_program, AS_PROGRAM, 16 )
899
AM_RANGE(0x0000, 0x0fff) AM_ROM /* BIOS */
900
AM_RANGE(0x8000, 0x8fff) AM_RAM
903
static ADDRESS_MAP_START( slave_dsp_data, AS_DATA, 16 )
904
/* no external data memory */
907
static ADDRESS_MAP_START( slave_dsp_io, AS_IO, 16 )
908
AM_RANGE(0x00,0x00) AM_READWRITE(slave_port0_r,slave_port0_w)
909
AM_RANGE(0x02,0x02) AM_READ(slave_port2_r)
910
AM_RANGE(0x03,0x03) AM_READWRITE(slave_port3_r,slave_port3_w)
911
AM_RANGE(0x0f,0x0f) AM_READ(slave_portf_r)
912
AM_RANGE(TMS32025_HOLD, TMS32025_HOLD) AM_READNOP
913
AM_RANGE(TMS32025_HOLDA, TMS32025_HOLDA) AM_WRITENOP
914
AM_RANGE(TMS32025_XF, TMS32025_XF) AM_WRITE(slave_XF_output_w)
917
/************************************************************************************/
920
* 801f->800f : prepare for master access to point ram
936
static WRITE16_HANDLER( pointram_control_w )
938
namcos21_state *state = space->machine().driver_data<namcos21_state>();
939
// UINT16 prev = state->m_pointram_control;
940
COMBINE_DATA( &state->m_pointram_control );
942
/* state->m_pointram_control&0x20 : bank for depthcue data */
944
logerror( "dsp_control_w:'%s':%x[%x]:=%04x ",
946
cpu_get_pc(space->cpu),
948
state->m_pointram_control );
950
UINT16 delta = (prev^state->m_pointram_control)&state->m_pointram_control;
953
logerror( " [reset]" );
957
logerror( " send(A)%x", state->m_pointram_control&1 );
961
logerror( " send(B)%x", state->m_pointram_control&1 );
965
logerror( " send(C)%x", state->m_pointram_control&1 );
969
state->m_pointram_idx = 0; /* HACK */
970
} /* pointram_control_w */
972
static READ16_HANDLER( pointram_data_r )
974
namcos21_state *state = space->machine().driver_data<namcos21_state>();
975
return state->m_pointram[state->m_pointram_idx];
976
} /* pointram_data_r */
978
static WRITE16_HANDLER( pointram_data_w )
980
namcos21_state *state = space->machine().driver_data<namcos21_state>();
981
if( ACCESSING_BITS_0_7 )
983
// if( (state->m_pointram_idx%6)==0 ) logerror("\n" );
984
// logerror( " %02x", data );
985
state->m_pointram[state->m_pointram_idx++] = data;
986
state->m_pointram_idx &= (PTRAM_SIZE-1);
988
} /* pointram_data_w */
991
static READ16_HANDLER( namcos21_depthcue_r )
993
namcos21_state *state = space->machine().driver_data<namcos21_state>();
994
int bank = (state->m_pointram_control&0x20)?1:0;
995
return state->m_depthcue[bank][offset];
997
static WRITE16_HANDLER( namcos21_depthcue_w )
999
namcos21_state *state = space->machine().driver_data<namcos21_state>();
1000
if( ACCESSING_BITS_0_7 )
1002
int bank = (state->m_pointram_control&0x20)?1:0;
1003
state->m_depthcue[bank][offset] = data;
1004
// if( (offset&0xf)==0 ) logerror( "\n depthcue: " );
1005
// logerror( " %02x", data );
1009
/* dual port ram memory handlers */
1011
static READ16_HANDLER( namcos2_68k_dualportram_word_r )
1013
namcos21_state *state = space->machine().driver_data<namcos21_state>();
1014
return state->m_mpDualPortRAM[offset];
1017
static WRITE16_HANDLER( namcos2_68k_dualportram_word_w )
1019
namcos21_state *state = space->machine().driver_data<namcos21_state>();
1020
if( ACCESSING_BITS_0_7 )
1022
state->m_mpDualPortRAM[offset] = data&0xff;
1026
static READ8_HANDLER( namcos2_dualportram_byte_r )
1028
namcos21_state *state = space->machine().driver_data<namcos21_state>();
1029
return state->m_mpDualPortRAM[offset];
1032
static WRITE8_HANDLER( namcos2_dualportram_byte_w )
1034
namcos21_state *state = space->machine().driver_data<namcos21_state>();
1035
state->m_mpDualPortRAM[offset] = data;
1038
/* shared RAM memory handlers */
1040
static READ16_HANDLER( shareram1_r )
1042
namcos21_state *state = space->machine().driver_data<namcos21_state>();
1043
return state->m_mpSharedRAM1[offset];
1046
static WRITE16_HANDLER( shareram1_w )
1048
namcos21_state *state = space->machine().driver_data<namcos21_state>();
1049
COMBINE_DATA( &state->m_mpSharedRAM1[offset] );
1052
/* some games have read-only areas where more ROMs are mapped */
1054
static READ16_HANDLER( datarom_r )
1056
namcos21_state *state = space->machine().driver_data<namcos21_state>();
1057
return state->m_mpDataROM[offset];
1060
static READ16_HANDLER( data2_r )
1062
namcos21_state *state = space->machine().driver_data<namcos21_state>();
1063
return state->m_mpDataROM[0x100000/2+offset];
1066
/* palette memory handlers */
1068
static READ16_HANDLER( paletteram16_r )
1070
return space->machine().generic.paletteram.u16[offset];
1073
static WRITE16_HANDLER( paletteram16_w )
1075
COMBINE_DATA(&space->machine().generic.paletteram.u16[offset]);
1078
/******************************************************************************/
1079
static WRITE16_HANDLER( NAMCO_C139_SCI_buffer_w ){}
1080
static READ16_HANDLER( NAMCO_C139_SCI_buffer_r ){ return 0; }
1082
static WRITE16_HANDLER( NAMCO_C139_SCI_register_w ){}
1083
static READ16_HANDLER( NAMCO_C139_SCI_register_r ){ return 0; }
1084
/******************************************************************************/
1086
/*************************************************************/
1087
/* MASTER 68000 CPU Memory declarations */
1088
/*************************************************************/
1090
#define NAMCO21_68K_COMMON \
1091
AM_RANGE(0x200000, 0x20ffff) AM_READWRITE(dspram16_r,dspram16_w) AM_BASE_MEMBER(namcos21_state, m_dspram16) \
1092
AM_RANGE(0x280000, 0x280001) AM_WRITENOP /* written once on startup */ \
1093
AM_RANGE(0x400000, 0x400001) AM_WRITE(pointram_control_w) \
1094
AM_RANGE(0x440000, 0x440001) AM_READWRITE(pointram_data_r,pointram_data_w) \
1095
AM_RANGE(0x440002, 0x47ffff) AM_WRITENOP /* (?) Air Combat */ \
1096
AM_RANGE(0x480000, 0x4807ff) AM_READWRITE(namcos21_depthcue_r,namcos21_depthcue_w) /* Air Combat */ \
1097
AM_RANGE(0x700000, 0x71ffff) AM_READWRITE(namco_obj16_r,namco_obj16_w) \
1098
AM_RANGE(0x720000, 0x720007) AM_READWRITE(namco_spritepos16_r,namco_spritepos16_w) \
1099
AM_RANGE(0x740000, 0x75ffff) AM_READWRITE(paletteram16_r,paletteram16_w) AM_BASE_GENERIC(paletteram) \
1100
AM_RANGE(0x760000, 0x760001) AM_READWRITE(namcos21_video_enable_r,namcos21_video_enable_w) \
1101
AM_RANGE(0x800000, 0x8fffff) AM_READ(datarom_r) \
1102
AM_RANGE(0x900000, 0x90ffff) AM_READWRITE(shareram1_r,shareram1_w) AM_BASE_MEMBER(namcos21_state, m_mpSharedRAM1) \
1103
AM_RANGE(0xa00000, 0xa00fff) AM_READWRITE(namcos2_68k_dualportram_word_r,namcos2_68k_dualportram_word_w) \
1104
AM_RANGE(0xb00000, 0xb03fff) AM_READWRITE(NAMCO_C139_SCI_buffer_r,NAMCO_C139_SCI_buffer_w) \
1105
AM_RANGE(0xb80000, 0xb8000f) AM_READWRITE(NAMCO_C139_SCI_register_r,NAMCO_C139_SCI_register_w) \
1106
AM_RANGE(0xc00000, 0xcfffff) AM_READ(data2_r) /* Cyber Sled */ \
1107
AM_RANGE(0xd00000, 0xdfffff) AM_READ(data2_r) \
1109
static ADDRESS_MAP_START( namcos21_68k_master, AS_PROGRAM, 16 )
1110
AM_RANGE(0x000000, 0x0fffff) AM_ROM
1111
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* private work RAM */
1112
AM_RANGE(0x180000, 0x183fff) AM_READWRITE(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)// AM_BASE(&namcos2_eeprom) AM_SIZE(&namcos2_eeprom_size)
1113
AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE(namcos2_68k_master_C148_r,namcos2_68k_master_C148_w)
1117
static ADDRESS_MAP_START( namcos21_68k_slave, AS_PROGRAM, 16 )
1118
AM_RANGE(0x000000, 0x07ffff) AM_ROM
1119
AM_RANGE(0x100000, 0x13ffff) AM_RAM /* private work RAM */
1120
AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE(namcos2_68k_slave_C148_r,namcos2_68k_slave_C148_w)
1125
/*************************************************************
1126
* Winning Run is prototype "System21" hardware.
1127
*************************************************************/
1128
static READ16_HANDLER( winrun_dspcomram_r )
1130
namcos21_state *state = space->machine().driver_data<namcos21_state>();
1131
int bank = 1-(state->m_winrun_dspcomram_control[0x4/2]&1);
1132
UINT16 *mem = &state->m_winrun_dspcomram[0x1000*bank];
1135
static WRITE16_HANDLER( winrun_dspcomram_w )
1137
namcos21_state *state = space->machine().driver_data<namcos21_state>();
1138
int bank = 1-(state->m_winrun_dspcomram_control[0x4/2]&1);
1139
UINT16 *mem = &state->m_winrun_dspcomram[0x1000*bank];
1140
COMBINE_DATA( &mem[offset] );
1143
static READ16_HANDLER( winrun_cuskey_r )
1145
int pc = cpu_get_pc(&space->device());
1148
case 0x0064: /* winrun91 */
1150
case 0x006c: /* winrun91 */
1152
case 0x0073: /* winrun91 */
1155
case 0x0075: /* winrun */
1162
} /* winrun_cuskey_r */
1164
static WRITE16_HANDLER( winrun_cuskey_w )
1166
} /* winrun_cuskey_w */
1169
winrun_flushpoly( running_machine &machine )
1171
namcos21_state *state = machine.driver_data<namcos21_state>();
1172
if( state->m_winrun_poly_index>0 )
1174
const UINT16 *pSource = state->m_winrun_poly_buf;
1176
int sx[4], sy[4], zcode[4];
1181
for( j=0; j<4; j++ )
1183
sx[j] = NAMCOS21_POLY_FRAME_WIDTH/2 + (INT16)*pSource++;
1184
sy[j] = NAMCOS21_POLY_FRAME_HEIGHT/2 + (INT16)*pSource++;
1185
zcode[j] = *pSource++;
1187
namcos21_DrawQuad( machine, sx, sy, zcode, color&0x7fff );
1191
int quad_idx = color*6;
1194
UINT8 code = state->m_pointram[quad_idx++];
1195
color = state->m_pointram[quad_idx++];
1196
for( j=0; j<4; j++ )
1198
UINT8 vi = state->m_pointram[quad_idx++];
1199
sx[j] = NAMCOS21_POLY_FRAME_WIDTH/2 + (INT16)pSource[vi*3+0];
1200
sy[j] = NAMCOS21_POLY_FRAME_HEIGHT/2 + (INT16)pSource[vi*3+1];
1201
zcode[j] = pSource[vi*3+2];
1203
namcos21_DrawQuad( machine, sx, sy, zcode, color&0x7fff );
1205
{ /* end-of-quadlist marker */
1210
state->m_winrun_poly_index = 0;
1212
} /* winrun_flushpoly */
1214
static READ16_HANDLER( winrun_poly_reset_r )
1216
winrun_flushpoly(space->machine());
1220
static WRITE16_HANDLER( winrun_dsp_render_w )
1222
namcos21_state *state = space->machine().driver_data<namcos21_state>();
1223
if( state->m_winrun_poly_index<WINRUN_MAX_POLY_PARAM )
1225
state->m_winrun_poly_buf[state->m_winrun_poly_index++] = data;
1229
logerror( "WINRUN_POLY_OVERFLOW\n" );
1231
} /* winrun_dsp_render_w */
1233
static WRITE16_HANDLER( winrun_dsp_pointrom_addr_w )
1235
namcos21_state *state = space->machine().driver_data<namcos21_state>();
1238
state->m_winrun_pointrom_addr = data;
1242
state->m_winrun_pointrom_addr |= (data<<16);
1246
static READ16_HANDLER( winrun_dsp_pointrom_data_r )
1248
namcos21_state *state = space->machine().driver_data<namcos21_state>();
1249
UINT16 *ptrom = (UINT16 *)space->machine().region("user2")->base();
1250
return ptrom[state->m_winrun_pointrom_addr++];
1251
} /* winrun_dsp_pointrom_data_r */
1253
static WRITE16_HANDLER( winrun_dsp_complete_w )
1257
winrun_flushpoly(space->machine());
1258
cputag_set_input_line(space->machine(), "dsp", INPUT_LINE_RESET, PULSE_LINE);
1259
namcos21_ClearPolyFrameBuffer(space->machine());
1263
static READ16_HANDLER( winrun_table_r )
1265
namcos21_state *state = space->machine().driver_data<namcos21_state>();
1266
return state->m_winrun_polydata[offset];
1269
static ADDRESS_MAP_START( winrun_dsp_program, AS_PROGRAM, 16 )
1270
AM_RANGE(0x0000, 0x0fff) AM_ROM
1273
static ADDRESS_MAP_START( winrun_dsp_data, AS_DATA, 16 )
1274
AM_RANGE( 0x2000, 0x200f ) AM_READWRITE(winrun_cuskey_r,winrun_cuskey_w)
1275
AM_RANGE( 0x4000, 0x4fff ) AM_READWRITE(winrun_dspcomram_r,winrun_dspcomram_w)
1276
AM_RANGE( 0x8000, 0xffff ) AM_READ(winrun_table_r )
1279
static ADDRESS_MAP_START( winrun_dsp_io, AS_IO, 16 )
1280
AM_RANGE(0x08,0x09) AM_READWRITE(winrun_dsp_pointrom_data_r,winrun_dsp_pointrom_addr_w)
1281
AM_RANGE(0x0a,0x0a) AM_WRITE(winrun_dsp_render_w)
1282
AM_RANGE(0x0b,0x0b) AM_WRITENOP
1283
AM_RANGE(0x0c,0x0c) AM_WRITE(winrun_dsp_complete_w)
1284
AM_RANGE(TMS32025_BIO, TMS32025_BIO) AM_READ( winrun_poly_reset_r )
1285
AM_RANGE(TMS32025_HOLD, TMS32025_HOLD) AM_READNOP
1286
AM_RANGE(TMS32025_HOLDA, TMS32025_HOLDA) AM_WRITENOP
1287
AM_RANGE(TMS32025_XF, TMS32025_XF) AM_WRITENOP
1290
static READ16_HANDLER( gpu_data_r )
1292
const UINT16 *pSrc = (UINT16 *)space->machine().region( "user3" )->base();
1293
return pSrc[offset];
1296
static READ16_HANDLER( winrun_gpucomram_r )
1298
namcos21_state *state = space->machine().driver_data<namcos21_state>();
1299
return state->m_winrun_gpucomram[offset];
1301
static WRITE16_HANDLER( winrun_gpucomram_w )
1303
namcos21_state *state = space->machine().driver_data<namcos21_state>();
1304
COMBINE_DATA( &state->m_winrun_gpucomram[offset] );
1307
static WRITE16_HANDLER( winrun_dspbios_w )
1309
namcos21_state *state = space->machine().driver_data<namcos21_state>();
1310
COMBINE_DATA( &state->m_winrun_dspbios[offset] );
1313
UINT16 *mem = (UINT16 *)space->machine().region("dsp")->base();
1314
memcpy( mem, state->m_winrun_dspbios, 0x2000 );
1315
state->m_winrun_dsp_alive = 1;
1317
} /* winrun_dspbios_w */
1319
//380000 : read : dsp status? 1 = busy
1320
//380000 : write(0x01) - done before dsp comram init
1321
//380004 : dspcomram bank, as seen by 68k
1322
//380008 : read : state?
1324
static READ16_HANDLER( winrun_68k_dspcomram_r )
1326
namcos21_state *state = space->machine().driver_data<namcos21_state>();
1327
int bank = state->m_winrun_dspcomram_control[0x4/2]&1;
1328
UINT16 *mem = &state->m_winrun_dspcomram[0x1000*bank];
1332
static WRITE16_HANDLER( winrun_68k_dspcomram_w )
1334
namcos21_state *state = space->machine().driver_data<namcos21_state>();
1335
int bank = state->m_winrun_dspcomram_control[0x4/2]&1;
1336
UINT16 *mem = &state->m_winrun_dspcomram[0x1000*bank];
1337
COMBINE_DATA( &mem[offset] );
1340
static READ16_HANDLER( winrun_dspcomram_control_r )
1342
namcos21_state *state = space->machine().driver_data<namcos21_state>();
1343
return state->m_winrun_dspcomram_control[offset];
1346
static WRITE16_HANDLER( winrun_dspcomram_control_w )
1348
namcos21_state *state = space->machine().driver_data<namcos21_state>();
1349
COMBINE_DATA( &state->m_winrun_dspcomram_control[offset] );
1352
static ADDRESS_MAP_START( am_master_winrun, AS_PROGRAM, 16 )
1353
AM_RANGE(0x000000, 0x03ffff) AM_ROM
1354
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* work RAM */
1355
AM_RANGE(0x180000, 0x183fff) AM_READWRITE(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)// AM_BASE(&namcos2_eeprom) AM_SIZE(&namcos2_eeprom_size)
1356
AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE(namcos2_68k_master_C148_r,namcos2_68k_master_C148_w)
1357
AM_RANGE(0x250000, 0x25ffff) AM_RAM AM_BASE_MEMBER(namcos21_state, m_winrun_polydata )
1358
AM_RANGE(0x260000, 0x26ffff) AM_RAM /* unused? */
1359
AM_RANGE(0x280000, 0x281fff) AM_WRITE(winrun_dspbios_w) AM_BASE_MEMBER(namcos21_state, m_winrun_dspbios)
1360
AM_RANGE(0x380000, 0x38000f) AM_READWRITE(winrun_dspcomram_control_r,winrun_dspcomram_control_w)
1361
AM_RANGE(0x3c0000, 0x3c1fff) AM_READWRITE(winrun_68k_dspcomram_r,winrun_68k_dspcomram_w)
1362
AM_RANGE(0x400000, 0x400001) AM_WRITE(pointram_control_w)
1363
AM_RANGE(0x440000, 0x440001) AM_READWRITE(pointram_data_r,pointram_data_w)
1364
AM_RANGE(0x600000, 0x60ffff) AM_READWRITE(winrun_gpucomram_r,winrun_gpucomram_w)
1365
AM_RANGE(0x800000, 0x87ffff) AM_READ(datarom_r)
1366
AM_RANGE(0x900000, 0x90ffff) AM_READWRITE(shareram1_r,shareram1_w) AM_BASE_MEMBER(namcos21_state, m_mpSharedRAM1)
1367
AM_RANGE(0xa00000, 0xa00fff) AM_READWRITE(namcos2_68k_dualportram_word_r,namcos2_68k_dualportram_word_w)
1368
AM_RANGE(0xb00000, 0xb03fff) AM_READWRITE(NAMCO_C139_SCI_buffer_r,NAMCO_C139_SCI_buffer_w)
1369
AM_RANGE(0xb80000, 0xb8000f) AM_READWRITE(NAMCO_C139_SCI_register_r,NAMCO_C139_SCI_register_w)
1372
static ADDRESS_MAP_START( am_slave_winrun, AS_PROGRAM, 16 )
1373
AM_RANGE(0x000000, 0x03ffff) AM_ROM
1374
AM_RANGE(0x100000, 0x13ffff) AM_RAM
1375
AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE(namcos2_68k_slave_C148_r,namcos2_68k_slave_C148_w)
1376
AM_RANGE(0x600000, 0x60ffff) AM_READWRITE(winrun_gpucomram_r,winrun_gpucomram_w)
1377
AM_RANGE(0x800000, 0x87ffff) AM_READ(datarom_r)
1378
AM_RANGE(0x900000, 0x90ffff) AM_READWRITE(shareram1_r,shareram1_w)
1379
AM_RANGE(0xa00000, 0xa00fff) AM_READWRITE(namcos2_68k_dualportram_word_r,namcos2_68k_dualportram_word_w)
1380
AM_RANGE(0xb00000, 0xb03fff) AM_READWRITE(NAMCO_C139_SCI_buffer_r,NAMCO_C139_SCI_buffer_w)
1381
AM_RANGE(0xb80000, 0xb8000f) AM_READWRITE(NAMCO_C139_SCI_register_r,NAMCO_C139_SCI_register_w)
1384
static ADDRESS_MAP_START( am_gpu_winrun, AS_PROGRAM, 16 )
1385
AM_RANGE(0x000000, 0x07ffff) AM_ROM
1386
AM_RANGE(0x100000, 0x100001) AM_READWRITE(winrun_gpu_color_r,winrun_gpu_color_w) /* ? */
1387
AM_RANGE(0x180000, 0x19ffff) AM_RAM /* work RAM */
1388
AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE(namcos2_68k_gpu_C148_r,namcos2_68k_gpu_C148_w)
1389
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE_MEMBER(namcos21_state, m_winrun_gpucomram )
1390
AM_RANGE(0x400000, 0x41ffff) AM_READWRITE(paletteram16_r,paletteram16_w) AM_BASE_GENERIC( paletteram )
1391
AM_RANGE(0x600000, 0x6fffff) AM_READ(gpu_data_r)
1392
AM_RANGE(0xc00000, 0xcfffff) AM_READWRITE(winrun_gpu_videoram_r,winrun_gpu_videoram_w)
1393
AM_RANGE(0xd00000, 0xd0000f) AM_READWRITE(winrun_gpu_register_r,winrun_gpu_register_w)
1394
// AM_RANGE(0xe0000c, 0xe0000d) POSIRQ
1398
/*************************************************************/
1399
/* SOUND 6809 CPU Memory declarations */
1400
/*************************************************************/
1402
static ADDRESS_MAP_START( am_sound_winrun, AS_PROGRAM, 8 )
1403
AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank6") /* banked */
1404
AM_RANGE(0x3000, 0x3003) AM_WRITENOP /* ? */
1405
AM_RANGE(0x4000, 0x4001) AM_DEVREADWRITE("ymsnd", ym2151_r,ym2151_w)
1406
AM_RANGE(0x5000, 0x6fff) AM_DEVREADWRITE("c140", c140_r,c140_w)
1407
AM_RANGE(0x7000, 0x77ff) AM_READWRITE(namcos2_dualportram_byte_r,namcos2_dualportram_byte_w) AM_BASE_MEMBER(namcos21_state, m_mpDualPortRAM)
1408
AM_RANGE(0x7800, 0x7fff) AM_READWRITE(namcos2_dualportram_byte_r,namcos2_dualportram_byte_w) /* mirror */
1409
AM_RANGE(0x8000, 0x9fff) AM_RAM
1410
AM_RANGE(0xa000, 0xbfff) AM_WRITENOP /* amplifier enable on 1st write */
1411
AM_RANGE(0xc000, 0xc001) AM_WRITE(namcos2_sound_bankselect_w)
1412
AM_RANGE(0xd001, 0xd001) AM_WRITENOP /* watchdog */
1413
AM_RANGE(0xd000, 0xffff) AM_ROM
1414
AM_RANGE(0xc000, 0xffff) AM_WRITENOP /* avoid debug log noise; games write frequently to 0xe000 */
1418
/*************************************************************/
1419
/* I/O HD63705 MCU Memory declarations */
1420
/*************************************************************/
1422
static ADDRESS_MAP_START( am_mcu_winrun, AS_PROGRAM, 8 )
1423
AM_RANGE(0x0000, 0x0000) AM_READNOP
1424
AM_RANGE(0x0001, 0x0001) AM_READ_PORT("PORTB") /* p1,p2 start */
1425
AM_RANGE(0x0002, 0x0002) AM_READ_PORT("PORTC") /* coins */
1426
AM_RANGE(0x0003, 0x0003) AM_READWRITE(namcos2_mcu_port_d_r,namcos2_mcu_port_d_w)
1427
AM_RANGE(0x0007, 0x0007) AM_READ_PORT("PORTH") /* fire buttons */
1428
AM_RANGE(0x0010, 0x0010) AM_READWRITE(namcos2_mcu_analog_ctrl_r,namcos2_mcu_analog_ctrl_w)
1429
AM_RANGE(0x0011, 0x0011) AM_READWRITE(namcos2_mcu_analog_port_r,namcos2_mcu_analog_port_w)
1430
AM_RANGE(0x0000, 0x003f) AM_RAM
1431
AM_RANGE(0x0040, 0x01bf) AM_RAM
1432
AM_RANGE(0x01c0, 0x1fff) AM_ROM
1433
AM_RANGE(0x2000, 0x2000) AM_READ_PORT("DSW")
1434
AM_RANGE(0x3000, 0x3000) AM_READ_PORT("DIAL0")
1435
AM_RANGE(0x3001, 0x3001) AM_READ_PORT("DIAL1")
1436
AM_RANGE(0x3002, 0x3002) AM_READ_PORT("DIAL2")
1437
AM_RANGE(0x3003, 0x3003) AM_READ_PORT("DIAL3")
1438
AM_RANGE(0x5000, 0x57ff) AM_READWRITE(namcos2_dualportram_byte_r,namcos2_dualportram_byte_w) AM_BASE_MEMBER(namcos21_state, m_mpDualPortRAM)
1439
AM_RANGE(0x6000, 0x6fff) AM_READNOP /* watchdog */
1440
AM_RANGE(0x8000, 0xffff) AM_ROM
1444
////////////////////////////////////////////////////////////////////////////////
1445
////////////////////////////////////////////////////////////////////////////////
1446
////////////////////////////////////////////////////////////////////////////////
1447
////////////////////////////////////////////////////////////////////////////////
1449
#define DRIVEYES_68K_COMMON \
1450
AM_RANGE(0x700000, 0x71ffff) AM_READWRITE(namco_obj16_r,namco_obj16_w) \
1451
AM_RANGE(0x720000, 0x720007) AM_READWRITE(namco_spritepos16_r,namco_spritepos16_w) \
1452
AM_RANGE(0x740000, 0x75ffff) AM_READWRITE(paletteram16_r,paletteram16_w) AM_BASE_GENERIC(paletteram) \
1453
AM_RANGE(0x760000, 0x760001) AM_READWRITE(namcos21_video_enable_r,namcos21_video_enable_w) \
1454
AM_RANGE(0x800000, 0x8fffff) AM_READ(datarom_r) \
1455
AM_RANGE(0x900000, 0x90ffff) AM_READWRITE(shareram1_r,shareram1_w) AM_BASE_MEMBER(namcos21_state, m_mpSharedRAM1) \
1456
AM_RANGE(0xa00000, 0xa00fff) AM_READWRITE(namcos2_68k_dualportram_word_r,namcos2_68k_dualportram_word_w) \
1457
AM_RANGE(0xb00000, 0xb03fff) AM_READWRITE(NAMCO_C139_SCI_buffer_r,NAMCO_C139_SCI_buffer_w) \
1458
AM_RANGE(0xb80000, 0xb8000f) AM_READWRITE(NAMCO_C139_SCI_register_r,NAMCO_C139_SCI_register_w) \
1461
static ADDRESS_MAP_START( driveyes_68k_master, AS_PROGRAM, 16 )
1462
AM_RANGE(0x000000, 0x03ffff) AM_ROM
1463
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* private work RAM */
1464
AM_RANGE(0x180000, 0x183fff) AM_READWRITE(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)// AM_BASE(&namcos2_eeprom) AM_SIZE(&namcos2_eeprom_size)
1465
AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE(namcos2_68k_master_C148_r,namcos2_68k_master_C148_w)
1466
AM_RANGE(0x250000, 0x25ffff) AM_RAM AM_BASE_MEMBER(namcos21_state, m_winrun_polydata )
1467
AM_RANGE(0x280000, 0x281fff) AM_WRITE(winrun_dspbios_w) AM_BASE_MEMBER(namcos21_state, m_winrun_dspbios)
1468
AM_RANGE(0x380000, 0x38000f) AM_READWRITE(winrun_dspcomram_control_r,winrun_dspcomram_control_w)
1469
AM_RANGE(0x3c0000, 0x3c1fff) AM_READWRITE(winrun_68k_dspcomram_r,winrun_68k_dspcomram_w)
1470
AM_RANGE(0x400000, 0x400001) AM_WRITE(pointram_control_w)
1471
AM_RANGE(0x440000, 0x440001) AM_READWRITE(pointram_data_r,pointram_data_w)
1475
static ADDRESS_MAP_START( driveyes_68k_slave, AS_PROGRAM, 16 )
1476
AM_RANGE(0x000000, 0x03ffff) AM_ROM
1477
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* private work RAM */
1478
AM_RANGE(0x1c0000, 0x1fffff) AM_READ(namcos2_68k_slave_C148_r) AM_WRITE(namcos2_68k_slave_C148_w)
1483
static const gfx_layout tile_layout =
1486
RGN_FRAC(1,4), /* number of tiles */
1487
8, /* bits per pixel */
1488
{ /* plane offsets */
1492
0*8,RGN_FRAC(1,4)+0*8,RGN_FRAC(2,4)+0*8,RGN_FRAC(3,4)+0*8,
1493
1*8,RGN_FRAC(1,4)+1*8,RGN_FRAC(2,4)+1*8,RGN_FRAC(3,4)+1*8,
1494
2*8,RGN_FRAC(1,4)+2*8,RGN_FRAC(2,4)+2*8,RGN_FRAC(3,4)+2*8,
1495
3*8,RGN_FRAC(1,4)+3*8,RGN_FRAC(2,4)+3*8,RGN_FRAC(3,4)+3*8
1498
0*32,1*32,2*32,3*32,
1499
4*32,5*32,6*32,7*32,
1500
8*32,9*32,10*32,11*32,
1501
12*32,13*32,14*32,15*32
1503
8*64 /* sprite offset */
1506
static GFXDECODE_START( namcos21 )
1507
GFXDECODE_ENTRY( "gfx1", 0x000000, tile_layout, 0x1000, 0x10 )
1510
static const c140_interface C140_interface_typeA =
1512
C140_TYPE_SYSTEM21_A
1515
static const c140_interface C140_interface_typeB =
1517
C140_TYPE_SYSTEM21_B
1520
static MACHINE_START( namcos21 )
1522
MACHINE_START_CALL( namcos2 );
1523
namcos2_kickstart = namcos21_kickstart;
1526
static MACHINE_CONFIG_START( s21base, namcos21_state )
1527
MCFG_CPU_ADD("maincpu", M68000,12288000) /* Master */
1528
MCFG_CPU_PROGRAM_MAP(namcos21_68k_master)
1529
MCFG_CPU_VBLANK_INT("screen", namcos2_68k_master_vblank)
1531
MCFG_CPU_ADD("slave", M68000,12288000) /* Slave */
1532
MCFG_CPU_PROGRAM_MAP(namcos21_68k_slave)
1533
MCFG_CPU_VBLANK_INT("screen", namcos2_68k_slave_vblank)
1535
MCFG_CPU_ADD("audiocpu", M6809,3072000) /* Sound */
1536
MCFG_CPU_PROGRAM_MAP(am_sound_winrun)
1537
MCFG_CPU_PERIODIC_INT(irq0_line_hold,2*60)
1538
MCFG_CPU_PERIODIC_INT(irq1_line_hold,120)
1540
MCFG_CPU_ADD("mcu", HD63705,2048000) /* IO */
1541
MCFG_CPU_PROGRAM_MAP(am_mcu_winrun)
1542
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
1544
MCFG_CPU_ADD("dspmaster", TMS32025,24000000) /* 24 MHz? overclocked */
1545
MCFG_CPU_PROGRAM_MAP(master_dsp_program)
1546
MCFG_CPU_DATA_MAP(master_dsp_data)
1547
MCFG_CPU_IO_MAP(master_dsp_io)
1549
MCFG_CPU_ADD("dspslave", TMS32025,24000000*4) /* 24 MHz?; overclocked */
1550
MCFG_CPU_PROGRAM_MAP(slave_dsp_program)
1551
MCFG_CPU_DATA_MAP(slave_dsp_data)
1552
MCFG_CPU_IO_MAP(slave_dsp_io)
1554
MCFG_QUANTUM_TIME(attotime::from_hz(12000))
1556
MCFG_MACHINE_START(namcos21)
1557
MCFG_MACHINE_RESET(namcos2)
1558
MCFG_NVRAM_ADD_1FILL("nvram")
1561
MCFG_SCREEN_ADD("screen", RASTER)
1562
MCFG_SCREEN_REFRESH_RATE(60)
1563
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
1564
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
1565
MCFG_SCREEN_SIZE(NAMCOS21_POLY_FRAME_WIDTH,NAMCOS21_POLY_FRAME_HEIGHT)
1566
MCFG_SCREEN_VISIBLE_AREA(0,495,0,479)
1567
MCFG_SCREEN_UPDATE(namcos21)
1569
MCFG_GFXDECODE(namcos21)
1570
MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS)
1572
MCFG_VIDEO_START(namcos21)
1575
static MACHINE_CONFIG_DERIVED( poly_c140_typeA, s21base )
1577
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
1579
MCFG_SOUND_ADD("c140", C140, 8000000/374)
1580
MCFG_SOUND_CONFIG(C140_interface_typeA)
1581
MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
1582
MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
1584
MCFG_SOUND_ADD("ymsnd", YM2151, 3579580)
1585
MCFG_SOUND_ROUTE(0, "lspeaker", 0.30)
1586
MCFG_SOUND_ROUTE(1, "rspeaker", 0.30)
1589
static MACHINE_CONFIG_DERIVED( poly_c140_typeB, s21base )
1591
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
1593
MCFG_SOUND_ADD("c140", C140, 8000000/374)
1594
MCFG_SOUND_CONFIG(C140_interface_typeB)
1595
MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
1596
MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
1598
MCFG_SOUND_ADD("ymsnd", YM2151, 3579580)
1599
MCFG_SOUND_ROUTE(0, "lspeaker", 0.30)
1600
MCFG_SOUND_ROUTE(1, "rspeaker", 0.30)
1603
static MACHINE_CONFIG_START( driveyes, namcos21_state )
1604
MCFG_CPU_ADD("maincpu", M68000,12288000) /* Master */
1605
MCFG_CPU_PROGRAM_MAP(driveyes_68k_master)
1606
MCFG_CPU_VBLANK_INT("screen", namcos2_68k_master_vblank)
1608
MCFG_CPU_ADD("slave", M68000,12288000) /* Slave */
1609
MCFG_CPU_PROGRAM_MAP(driveyes_68k_slave)
1610
MCFG_CPU_VBLANK_INT("screen", namcos2_68k_slave_vblank)
1612
MCFG_CPU_ADD("audiocpu", M6809,3072000) /* Sound */
1613
MCFG_CPU_PROGRAM_MAP(am_sound_winrun)
1614
MCFG_CPU_PERIODIC_INT(irq0_line_hold,2*60)
1615
MCFG_CPU_PERIODIC_INT(irq1_line_hold,120)
1617
MCFG_CPU_ADD("mcu", HD63705,2048000) /* IO */
1618
MCFG_CPU_PROGRAM_MAP(am_mcu_winrun)
1619
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
1621
MCFG_CPU_ADD("dsp", TMS32025,24000000*2) /* 24 MHz? overclocked */
1622
MCFG_CPU_PROGRAM_MAP(winrun_dsp_program)
1623
MCFG_CPU_DATA_MAP(winrun_dsp_data)
1624
MCFG_CPU_IO_MAP(winrun_dsp_io)
1626
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame */
1628
MCFG_MACHINE_START(namcos21)
1629
MCFG_MACHINE_RESET(namcos2)
1630
MCFG_NVRAM_ADD_1FILL("nvram")
1633
MCFG_SCREEN_ADD("screen", RASTER)
1634
MCFG_SCREEN_REFRESH_RATE(60)
1635
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
1636
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
1637
MCFG_SCREEN_SIZE(NAMCOS21_POLY_FRAME_WIDTH,NAMCOS21_POLY_FRAME_HEIGHT)
1638
MCFG_SCREEN_VISIBLE_AREA(0,495,0,479)
1639
MCFG_SCREEN_UPDATE(namcos21)
1641
MCFG_GFXDECODE(namcos21)
1642
MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS)
1644
MCFG_VIDEO_START(namcos21)
1646
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
1648
MCFG_SOUND_ADD("c140", C140, 8000000/374)
1649
MCFG_SOUND_CONFIG(C140_interface_typeA)
1650
MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
1651
MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
1653
MCFG_SOUND_ADD("ymsnd", YM2151, 3579580)
1654
MCFG_SOUND_ROUTE(0, "lspeaker", 0.30)
1655
MCFG_SOUND_ROUTE(1, "rspeaker", 0.30)
1658
static MACHINE_CONFIG_START( winrun_c140_typeB, namcos21_state )
1659
MCFG_CPU_ADD("maincpu", M68000,12288000) /* Master */
1660
MCFG_CPU_PROGRAM_MAP(am_master_winrun)
1661
MCFG_CPU_VBLANK_INT("screen", namcos2_68k_master_vblank)
1663
MCFG_CPU_ADD("slave", M68000,12288000) /* Slave */
1664
MCFG_CPU_PROGRAM_MAP(am_slave_winrun)
1665
MCFG_CPU_VBLANK_INT("screen", namcos2_68k_slave_vblank)
1667
MCFG_CPU_ADD("audiocpu", M6809,3072000) /* Sound */
1668
MCFG_CPU_PROGRAM_MAP(am_sound_winrun)
1669
MCFG_CPU_PERIODIC_INT(irq0_line_hold,2*60)
1670
MCFG_CPU_PERIODIC_INT(irq1_line_hold,120)
1672
MCFG_CPU_ADD("mcu", HD63705,2048000) /* IO */
1673
MCFG_CPU_PROGRAM_MAP(am_mcu_winrun)
1674
MCFG_CPU_VBLANK_INT("screen", irq0_line_hold)
1676
MCFG_CPU_ADD("dsp", TMS32025,24000000) /* 24 MHz? overclocked */
1677
MCFG_CPU_PROGRAM_MAP(winrun_dsp_program)
1678
MCFG_CPU_DATA_MAP(winrun_dsp_data)
1679
MCFG_CPU_IO_MAP(winrun_dsp_io)
1681
MCFG_CPU_ADD("gpu", M68000,12288000) /* graphics coprocessor */
1682
MCFG_CPU_PROGRAM_MAP(am_gpu_winrun)
1683
MCFG_CPU_VBLANK_INT("screen", namcos2_68k_gpu_vblank)
1685
MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame */
1687
MCFG_MACHINE_START(namcos21)
1688
MCFG_MACHINE_RESET(namcos2)
1689
MCFG_NVRAM_ADD_1FILL("nvram")
1692
MCFG_SCREEN_ADD("screen", RASTER)
1693
MCFG_SCREEN_REFRESH_RATE(60)
1694
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
1695
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
1696
MCFG_SCREEN_SIZE(NAMCOS21_POLY_FRAME_WIDTH,NAMCOS21_POLY_FRAME_HEIGHT)
1697
MCFG_SCREEN_VISIBLE_AREA(0,495,0,479)
1698
MCFG_SCREEN_UPDATE(namcos21)
1700
MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS)
1702
MCFG_VIDEO_START(namcos21)
1704
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
1706
MCFG_SOUND_ADD("c140", C140, 8000000/374)
1707
MCFG_SOUND_CONFIG(C140_interface_typeB)
1708
MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
1709
MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
1711
MCFG_SOUND_ADD("ymsnd", YM2151, 3579580)
1712
MCFG_SOUND_ROUTE(0, "lspeaker", 0.30)
1713
MCFG_SOUND_ROUTE(1, "rspeaker", 0.30)
1716
ROM_START( aircomb )
1717
ROM_REGION( 0x100000, "maincpu", 0 ) /* Master */
1718
ROM_LOAD16_BYTE( "ac2-mpr-u.3j", 0x000000, 0x80000, CRC(a7133f85) SHA1(9f1c99dd503f1fc81096170fd272e33ae8a7de2f) )
1719
ROM_LOAD16_BYTE( "ac2-mpr-l.1j", 0x000001, 0x80000, CRC(520a52e6) SHA1(74306e02abfe08aa1afbf325b74dbc0840c3ad3a) )
1721
ROM_REGION( 0x80000, "slave", 0 ) /* Slave */
1722
ROM_LOAD16_BYTE( "ac2-spr-u.6c", 0x000000, 0x20000, CRC(42aca956) SHA1(10ea2400bb4d5b2d805e2de43ca0e0f54597f660) )
1723
ROM_LOAD16_BYTE( "ac2-spr-l.4c", 0x000001, 0x20000, CRC(3e15fa19) SHA1(65dbb33ab6b3c06c793613348ebb7b110b8bba0d) )
1725
ROM_REGION( 0x030000, "audiocpu", 0 ) /* Sound */
1726
ROM_LOAD( "ac1-snd0.8j", 0x00c000, 0x004000, CRC(5c1fb84b) SHA1(20e4d81289dbe58ffcfc947251a6ff1cc1e36436) )
1727
ROM_CONTINUE( 0x010000, 0x01c000 )
1728
ROM_RELOAD( 0x010000, 0x020000 )
1730
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
1731
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
1732
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
1734
ROM_REGION( 0x20000, "dspmaster", 0 ) /* Master DSP */
1735
ROM_LOAD( "c67.bin", 0, 0x2000, CRC(6bd8988e) SHA1(c9ec18d5f88d53976b94444eedc64d5568155958) )
1736
ROM_REGION( 0x20000, "dspslave", 0 ) /* Slave DSP */
1737
ROM_LOAD( "c67.bin", 0, 0x2000, CRC(6bd8988e) SHA1(c9ec18d5f88d53976b94444eedc64d5568155958) )
1739
ROM_REGION( 0x400000, "gfx1", 0 )
1740
ROM_LOAD( "ac2-obj0.5s", 0x000000, 0x80000, CRC(8327ff22) SHA1(16f6022dedb7a74590898bc8ed3e8a97993c4635) )
1741
ROM_LOAD( "ac2-obj4.4s", 0x080000, 0x80000, CRC(e433e344) SHA1(98ade550cf066fcb5c09fa905f441a1464d4d625) )
1742
ROM_LOAD( "ac2-obj1.5x", 0x100000, 0x80000, CRC(43af566d) SHA1(99f0d9f005e28040f5cc10de2198893946a31d09) )
1743
ROM_LOAD( "ac2-obj5.4x", 0x180000, 0x80000, CRC(ecb19199) SHA1(8e0aa1bc1141c4b09576ab08970d0c7629560643) )
1744
ROM_LOAD( "ac2-obj2.3s", 0x200000, 0x80000, CRC(dafbf489) SHA1(c53ccb3e1b4a6a660bd28c8abe52ccc3f85d111f) )
1745
ROM_LOAD( "ac2-obj6.2s", 0x280000, 0x80000, CRC(24cc3f36) SHA1(e50af176eb3034c9cab7613ca614f5cc2c62f95e) )
1746
ROM_LOAD( "ac2-obj3.3x", 0x300000, 0x80000, CRC(bd555a1d) SHA1(96e432b30da6f5f7ccb768c516b1f7186bc0d4c9) )
1747
ROM_LOAD( "ac2-obj7.2x", 0x380000, 0x80000, CRC(d561fbe3) SHA1(a23976e10bddf74d4a6b292f044dfd0affbab101) )
1749
ROM_REGION16_BE( 0x200000, "user1", 0 ) /* collision */
1750
ROM_LOAD16_BYTE( "ac1-data-u.3a", 0x000000, 0x80000, CRC(82320c71) SHA1(2be98d46853febb46e1cc728af2735c0e00ce303) )
1751
ROM_LOAD16_BYTE( "ac1-data-l.1a", 0x000001, 0x80000, CRC(fd7947d3) SHA1(2696eeae37de6d256e626cc3f3cea7b0f6eff60e) )
1752
ROM_LOAD16_BYTE( "ac2-edata1-u.3c", 0x100000, 0x80000, CRC(40c07095) SHA1(5d9beaf5bc411ac66785d70980977b08446f46e3) )
1753
ROM_LOAD16_BYTE( "ac1-edata1-l.1c", 0x100001, 0x80000, CRC(a87087dd) SHA1(cd9b83a8f07886ab44e4ded68002b44338777e8c) )
1755
ROM_REGION32_BE( 0x400000, "user2", ROMREGION_ERASE ) /* 24bit signed point data */
1756
ROM_LOAD32_BYTE( "ac1-poi-h.2f", 0x000001, 0x80000, CRC(573bbc3b) SHA1(371be12b915db6872049f18980c1b55544cfc445) ) /* most significant */
1757
ROM_LOAD32_BYTE( "ac1-poi-lu.2k", 0x000002, 0x80000, CRC(d99084b9) SHA1(c604d60a2162af7610e5ff7c1aa4195f7df82efe) )
1758
ROM_LOAD32_BYTE( "ac1-poi-ll.2n", 0x000003, 0x80000, CRC(abb32307) SHA1(8e936ba99479215dd33a951d81ec2b04020dfd62) ) /* least significant */
1760
ROM_REGION( 0x200000, "c140", 0 ) /* sound samples */
1761
ROM_LOAD("ac1-voi0.12b",0x000000,0x80000,CRC(f427b119) SHA1(bd45bbe41c8be26d6c997fcdc226d080b416a2cf) )
1762
ROM_LOAD("ac1-voi1.12c",0x080000,0x80000,CRC(c9490667) SHA1(4b6fbe635c32469870a8e6f82742be6a9d4918c9) )
1763
ROM_LOAD("ac1-voi2.12d",0x100000,0x80000,CRC(1fcb51ba) SHA1(80fc815e5fad76d20c3795ab1d89b57d9abc3efd) )
1764
ROM_LOAD("ac1-voi3.12e",0x180000,0x80000,CRC(cd202e06) SHA1(72a18f5ba402caefef14b8d1304f337eaaa3eb1d) )
1766
ROM_REGION( 0x0600, "plds", 0 )
1767
ROM_LOAD( "gal16v8a-3pdsp5.17d", 0x0000, 0x0117, CRC(799c1f26) SHA1(d28ed1b9fa78180c5a0b01a7198a2870137c7349) )
1768
ROM_LOAD( "plhs18p8-3pobj3.17n", 0x0200, 0x0149, CRC(9625f469) SHA1(29158a3d37485fb0714d0a60bcd07abd26a3f56e) )
1769
ROM_LOAD( "plhs18p8-3pobj4.17n", 0x0400, 0x0149, CRC(1b7c90c1) SHA1(ae65aab7a191cdf1af488e144af22b9d8669c903) )
1772
ROM_START( aircombj )
1773
ROM_REGION( 0x100000, "maincpu", 0 ) /* Master */
1774
ROM_LOAD16_BYTE( "ac1-mpr-u.3j", 0x000000, 0x80000, CRC(a4dec813) SHA1(2ee8b3492d30db4c841f695151880925a5e205e0) )
1775
ROM_LOAD16_BYTE( "ac1-mpr-l.1j", 0x000001, 0x80000, CRC(8577b6a2) SHA1(32194e392fbd051754be88eb8c90688c65c65d85) )
1777
ROM_REGION( 0x080000, "slave", 0 ) /* Slave */
1778
ROM_LOAD16_BYTE( "ac1-spr-u.6c", 0x000000, 0x20000, CRC(5810e219) SHA1(c312ffd8324670897871b12d521779570dc0f580) )
1779
ROM_LOAD16_BYTE( "ac1-spr-l.4c", 0x000001, 0x20000, CRC(175a7d6c) SHA1(9e31dde6646cd9b6dcdbdb3f2326177508559e56) )
1781
ROM_REGION( 0x030000, "audiocpu", 0 ) /* Sound */
1782
ROM_LOAD( "ac1-snd0.8j", 0x00c000, 0x004000, CRC(5c1fb84b) SHA1(20e4d81289dbe58ffcfc947251a6ff1cc1e36436) )
1783
ROM_CONTINUE( 0x010000, 0x01c000 )
1784
ROM_RELOAD( 0x010000, 0x020000 )
1786
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
1787
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
1788
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
1790
ROM_REGION( 0x20000, "dspmaster", 0 ) /* Master DSP */
1791
ROM_LOAD( "c67.bin", 0, 0x2000, CRC(6bd8988e) SHA1(c9ec18d5f88d53976b94444eedc64d5568155958) )
1792
ROM_REGION( 0x20000, "dspslave", 0 ) /* Slave DSP */
1793
ROM_LOAD( "c67.bin", 0, 0x2000, CRC(6bd8988e) SHA1(c9ec18d5f88d53976b94444eedc64d5568155958) )
1795
ROM_REGION( 0x400000, "gfx1", 0 )
1796
ROM_LOAD( "ac1-obj0.5s", 0x000000, 0x80000, CRC(d2310c6a) SHA1(9bb8fdfc2c232574777248f4959975f9a20e3105) )
1797
ROM_LOAD( "ac1-obj4.4s", 0x080000, 0x80000, CRC(0c93b478) SHA1(a92ffbcf04b64e0eee5bcf37008e247700641b25) )
1798
ROM_LOAD( "ac1-obj1.5x", 0x100000, 0x80000, CRC(f5783a77) SHA1(0be1815ceb4ce4fa7ab75ba588e090f20ee0cac9) )
1799
ROM_LOAD( "ac1-obj5.4x", 0x180000, 0x80000, CRC(476aed15) SHA1(0e53fdf02e8ffe7852a1fa8bd2f64d0e58f3dc09) )
1800
ROM_LOAD( "ac1-obj2.3s", 0x200000, 0x80000, CRC(01343d5c) SHA1(64171fed1d1f8682b3d70d3233ea017719f4cc63) )
1801
ROM_LOAD( "ac1-obj6.2s", 0x280000, 0x80000, CRC(c67607b1) SHA1(df64ea7920cf64271fe742d3d0a57f842ee61e8d) )
1802
ROM_LOAD( "ac1-obj3.3x", 0x300000, 0x80000, CRC(7717f52e) SHA1(be1df3f4d0fdcaa5d3c81a724e5eb9d14136c6f5) )
1803
ROM_LOAD( "ac1-obj7.2x", 0x380000, 0x80000, CRC(cfa9fe5f) SHA1(0da25663b89d653c87ed32d15f7c82f3035702ab) )
1805
ROM_REGION16_BE( 0x200000, "user1", 0 )
1806
ROM_LOAD16_BYTE( "ac1-data-u.3a", 0x000000, 0x80000, CRC(82320c71) SHA1(2be98d46853febb46e1cc728af2735c0e00ce303) )
1807
ROM_LOAD16_BYTE( "ac1-data-l.1a", 0x000001, 0x80000, CRC(fd7947d3) SHA1(2696eeae37de6d256e626cc3f3cea7b0f6eff60e) )
1808
ROM_LOAD16_BYTE( "ac1-edata1-u.3c", 0x100000, 0x80000, CRC(a9547509) SHA1(1bc663cec03b60ad968896bbc2546f02efda135e) )
1809
ROM_LOAD16_BYTE( "ac1-edata1-l.1c", 0x100001, 0x80000, CRC(a87087dd) SHA1(cd9b83a8f07886ab44e4ded68002b44338777e8c) )
1811
ROM_REGION32_BE( 0x400000, "user2", ROMREGION_ERASE ) /* 24bit signed point data */
1812
ROM_LOAD32_BYTE( "ac1-poi-h.2f", 0x000001, 0x80000, CRC(573bbc3b) SHA1(371be12b915db6872049f18980c1b55544cfc445) ) /* most significant */
1813
ROM_LOAD32_BYTE( "ac1-poi-lu.2k", 0x000002, 0x80000, CRC(d99084b9) SHA1(c604d60a2162af7610e5ff7c1aa4195f7df82efe) )
1814
ROM_LOAD32_BYTE( "ac1-poi-ll.2n", 0x000003, 0x80000, CRC(abb32307) SHA1(8e936ba99479215dd33a951d81ec2b04020dfd62) ) /* least significant */
1816
ROM_REGION( 0x200000, "c140", 0 ) /* sound samples */
1817
ROM_LOAD("ac1-voi0.12b",0x000000,0x80000,CRC(f427b119) SHA1(bd45bbe41c8be26d6c997fcdc226d080b416a2cf) )
1818
ROM_LOAD("ac1-voi1.12c",0x080000,0x80000,CRC(c9490667) SHA1(4b6fbe635c32469870a8e6f82742be6a9d4918c9) )
1819
ROM_LOAD("ac1-voi2.12d",0x100000,0x80000,CRC(1fcb51ba) SHA1(80fc815e5fad76d20c3795ab1d89b57d9abc3efd) )
1820
ROM_LOAD("ac1-voi3.12e",0x180000,0x80000,CRC(cd202e06) SHA1(72a18f5ba402caefef14b8d1304f337eaaa3eb1d) )
1822
ROM_REGION( 0x0600, "plds", 0 )
1823
ROM_LOAD( "gal16v8a-3pdsp5.17d", 0x0000, 0x0117, CRC(799c1f26) SHA1(d28ed1b9fa78180c5a0b01a7198a2870137c7349) )
1824
ROM_LOAD( "plhs18p8-3pobj3.17n", 0x0200, 0x0149, CRC(9625f469) SHA1(29158a3d37485fb0714d0a60bcd07abd26a3f56e) )
1825
ROM_LOAD( "plhs18p8-3pobj4.17n", 0x0400, 0x0149, CRC(1b7c90c1) SHA1(ae65aab7a191cdf1af488e144af22b9d8669c903) )
1828
ROM_START( cybsled )
1829
ROM_REGION( 0x100000, "maincpu", 0 ) /* Master */
1830
ROM_LOAD16_BYTE( "cy2-mpr-u.3j", 0x000000, 0x80000, CRC(b35a72bc) SHA1(d9bc5b8f0bc30510fca8fc57eeb67e5ca0e4c67f) )
1831
ROM_LOAD16_BYTE( "cy2-mpr-l.1j", 0x000001, 0x80000, CRC(c4a25919) SHA1(52f6947102001376e37730ace16283141b13fee7) )
1833
ROM_REGION( 0x100000, "slave", 0 ) /* Slave */
1834
ROM_LOAD16_BYTE( "cy2-spr-u.6c", 0x000000, 0x80000, CRC(575a422d) SHA1(cad97742da1e2baf47ac110fadef5544b3a30cc7) )
1835
ROM_LOAD16_BYTE( "cy2-spr-l.4c", 0x000001, 0x80000, CRC(4066291a) SHA1(6ebbc11a68f66ec1e6d2e6ee857e8c599691e289) )
1837
ROM_REGION( 0x030000, "audiocpu", 0 ) /* Sound */
1838
ROM_LOAD( "cy1-snd0.8j", 0x00c000, 0x004000, CRC(3dddf83b) SHA1(e16119cbef176b6f8f8ace773fcbc201e987823f) )
1839
ROM_CONTINUE( 0x010000, 0x01c000 )
1840
ROM_RELOAD( 0x010000, 0x020000 )
1842
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
1843
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
1844
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
1846
ROM_REGION( 0x20000, "dspmaster", 0 ) /* Master DSP */
1847
ROM_LOAD( "c67.bin", 0, 0x2000, CRC(6bd8988e) SHA1(c9ec18d5f88d53976b94444eedc64d5568155958) )
1848
ROM_REGION( 0x20000, "dspslave", 0 ) /* Slave DSP */
1849
ROM_LOAD( "c67.bin", 0, 0x2000, CRC(6bd8988e) SHA1(c9ec18d5f88d53976b94444eedc64d5568155958) )
1851
ROM_REGION( 0x400000, "gfx1", 0 )
1852
ROM_LOAD( "cy1-obj0.5s", 0x000000, 0x80000, CRC(5ae542d5) SHA1(99b1a3ed476da4a97cb864538909d7b831f0fd3b) )
1853
ROM_LOAD( "cy1-obj4.4s", 0x080000, 0x80000, CRC(57904076) SHA1(b1dc0d99543bc4b9584b37ffc12c6ebc59e30e3b) )
1854
ROM_LOAD( "cy1-obj1.5x", 0x100000, 0x80000, CRC(4aae3eff) SHA1(c80240bd2f4228a0261a14adb6b10560b31b5aa0) )
1855
ROM_LOAD( "cy1-obj5.4x", 0x180000, 0x80000, CRC(0e11ca47) SHA1(076a9a4cfddbee2d8aaa06110333090d8fdbefeb) )
1856
ROM_LOAD( "cy1-obj2.3s", 0x200000, 0x80000, CRC(d64ec4c3) SHA1(0bed1cafc21ed8cef3850fb81e30076977086eb0) )
1857
ROM_LOAD( "cy1-obj6.2s", 0x280000, 0x80000, CRC(7748b485) SHA1(adb4da419a6cdbefd0fef182d866a3479be379af) )
1858
ROM_LOAD( "cy1-obj3.3x", 0x300000, 0x80000, CRC(3d1f7168) SHA1(392dddcc79fe61dcc6514a91ac27b5e36825d8b7) )
1859
ROM_LOAD( "cy1-obj7.2x", 0x380000, 0x80000, CRC(b6eb6ad2) SHA1(85a660c5e44012491be7d4e783cce6ba12c135cb) )
1861
ROM_REGION16_BE( 0x200000, "user1", 0 ) /* 68k */
1862
ROM_LOAD16_BYTE( "cy1-data-u.3a", 0x000000, 0x80000, CRC(570da15d) SHA1(9ebe756f10756c079a92fb522332e9e52ff715c3) )
1863
ROM_LOAD16_BYTE( "cy1-data-l.1a", 0x000001, 0x80000, CRC(9cf96f9e) SHA1(91783f48b93e03c778c6641ca8fb419c13b0d3c5) )
1864
ROM_LOAD16_BYTE( "cy1-edata0-u.3b", 0x100000, 0x80000, CRC(77452533) SHA1(48fc199bcc1beb23c714eebd9b09b153c980170b) )
1865
ROM_LOAD16_BYTE( "cy1-edata0-l.1b", 0x100001, 0x80000, CRC(e812e290) SHA1(719e0a026ae8ef63d0d0269b67669ea9b4d950dd) )
1867
ROM_REGION32_BE( 0x400000, "user2", ROMREGION_ERASE ) /* 24bit signed point data */
1868
ROM_LOAD32_BYTE( "cy1-poi-h1.2f", 0x000001, 0x80000, CRC(eaf8bac3) SHA1(7a2caf6672af158b4a23ce4626342d1f17d1a4e4) ) /* most significant */
1869
ROM_LOAD32_BYTE( "cy1-poi-lu1.2k", 0x000002, 0x80000, CRC(c544a8dc) SHA1(4cce5f2ab3519b4aa7edbdd15b2d79a7fdcade3c) )
1870
ROM_LOAD32_BYTE( "cy1-poi-ll1.2n", 0x000003, 0x80000, CRC(30acb99b) SHA1(a28dcb3e5405f166644f6353a903c1143ee268f1) ) /* least significant */
1871
ROM_LOAD32_BYTE( "cy1-poi-h2.2j", 0x200001, 0x80000, CRC(4079f342) SHA1(fa36aed1abbda54a42f29b183007474580870319) )
1872
ROM_LOAD32_BYTE( "cy1-poi-lu2.2l", 0x200002, 0x80000, CRC(61d816d4) SHA1(7991957b910d32530151abc7f469fcf1de62d8f3) )
1873
ROM_LOAD32_BYTE( "cy1-poi-ll2.2p", 0x200003, 0x80000, CRC(faf09158) SHA1(b56ebed6012362b1d599c396a43e90a1e4d9dc38) )
1875
ROM_REGION( 0x200000, "c140", 0 ) /* sound samples */
1876
ROM_LOAD("cy1-voi0.12b",0x000000,0x80000,CRC(99d7ce46) SHA1(b75f4055c3ce847daabfacda22df14e3f80c4fb9) )
1877
ROM_LOAD("cy1-voi1.12c",0x080000,0x80000,CRC(2b335f06) SHA1(2b2cd407c34388b56496f84a414daa153780b098) )
1878
ROM_LOAD("cy1-voi2.12d",0x100000,0x80000,CRC(10cd15f0) SHA1(9b721654ed97a13287373c1b2854ac9aeddc271f) )
1879
ROM_LOAD("cy1-voi3.12e",0x180000,0x80000,CRC(c902b4a4) SHA1(816357ec1a02a7ebf817ac1182e9c50ce5ca71f6) )
1881
ROM_REGION( 0x2000, "nvram", 0 ) /* default settings, including calibration */
1882
ROM_LOAD( "cybsled.nv", 0x000000, 0x2000, CRC(aa18bf9e) SHA1(3712d4d20e5f5f1c920e3f1f6a00101e874662d0) )
1885
ROM_START( cybsledj )
1886
ROM_REGION( 0x100000, "maincpu", 0 ) /* Master */
1887
ROM_LOAD16_BYTE( "cy1-mpr-u.3j", 0x000000, 0x80000, CRC(cc5a2e83) SHA1(b794051b2c351e9ca43351603845e4e563f6740f) )
1888
ROM_LOAD16_BYTE( "cy1-mpr-l.1j", 0x000001, 0x80000, CRC(f7ee8b48) SHA1(6d36eb3dba9cf7f5f5e1a26c156e77a2dad3f257) )
1890
ROM_REGION( 0x100000, "slave", 0 ) /* Slave */
1891
ROM_LOAD16_BYTE( "cy1-spr-u.6c", 0x000000, 0x80000, CRC(28dd707b) SHA1(11297ceae4fe78d170785a5cf9ad77833bbe7fff) )
1892
ROM_LOAD16_BYTE( "cy1-spr-l.4c", 0x000001, 0x80000, CRC(437029de) SHA1(3d275a2b0ce6909e77e657c371bd22597ea9d398) )
1894
ROM_REGION( 0x030000, "audiocpu", 0 ) /* Sound */
1895
ROM_LOAD( "cy1-snd0.8j", 0x00c000, 0x004000, CRC(3dddf83b) SHA1(e16119cbef176b6f8f8ace773fcbc201e987823f) )
1896
ROM_CONTINUE( 0x010000, 0x01c000 )
1897
ROM_RELOAD( 0x010000, 0x020000 )
1899
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
1900
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
1901
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
1903
ROM_REGION( 0x20000, "dspmaster", 0 ) /* Master DSP */
1904
ROM_LOAD( "c67.bin", 0, 0x2000, CRC(6bd8988e) SHA1(c9ec18d5f88d53976b94444eedc64d5568155958) )
1905
ROM_REGION( 0x20000, "dspslave", 0 ) /* Slave DSP */
1906
ROM_LOAD( "c67.bin", 0, 0x2000, CRC(6bd8988e) SHA1(c9ec18d5f88d53976b94444eedc64d5568155958) )
1908
ROM_REGION( 0x400000, "gfx1", 0 )
1909
ROM_LOAD( "cy1-obj0.5s", 0x000000, 0x80000, CRC(5ae542d5) SHA1(99b1a3ed476da4a97cb864538909d7b831f0fd3b) )
1910
ROM_LOAD( "cy1-obj4.4s", 0x080000, 0x80000, CRC(57904076) SHA1(b1dc0d99543bc4b9584b37ffc12c6ebc59e30e3b) )
1911
ROM_LOAD( "cy1-obj1.5x", 0x100000, 0x80000, CRC(4aae3eff) SHA1(c80240bd2f4228a0261a14adb6b10560b31b5aa0) )
1912
ROM_LOAD( "cy1-obj5.4x", 0x180000, 0x80000, CRC(0e11ca47) SHA1(076a9a4cfddbee2d8aaa06110333090d8fdbefeb) )
1913
ROM_LOAD( "cy1-obj2.3s", 0x200000, 0x80000, CRC(d64ec4c3) SHA1(0bed1cafc21ed8cef3850fb81e30076977086eb0) )
1914
ROM_LOAD( "cy1-obj6.2s", 0x280000, 0x80000, CRC(7748b485) SHA1(adb4da419a6cdbefd0fef182d866a3479be379af) )
1915
ROM_LOAD( "cy1-obj3.3x", 0x300000, 0x80000, CRC(3d1f7168) SHA1(392dddcc79fe61dcc6514a91ac27b5e36825d8b7) )
1916
ROM_LOAD( "cy1-obj7.2x", 0x380000, 0x80000, CRC(b6eb6ad2) SHA1(85a660c5e44012491be7d4e783cce6ba12c135cb) )
1918
ROM_REGION16_BE( 0x200000, "user1", 0 ) /* 68k */
1919
ROM_LOAD16_BYTE( "cy1-data-u.3a", 0x000000, 0x80000, CRC(570da15d) SHA1(9ebe756f10756c079a92fb522332e9e52ff715c3) )
1920
ROM_LOAD16_BYTE( "cy1-data-l.1a", 0x000001, 0x80000, CRC(9cf96f9e) SHA1(91783f48b93e03c778c6641ca8fb419c13b0d3c5) )
1921
ROM_LOAD16_BYTE( "cy1-edata0-u.3b", 0x100000, 0x80000, CRC(77452533) SHA1(48fc199bcc1beb23c714eebd9b09b153c980170b) )
1922
ROM_LOAD16_BYTE( "cy1-edata0-l.1b", 0x100001, 0x80000, CRC(e812e290) SHA1(719e0a026ae8ef63d0d0269b67669ea9b4d950dd) )
1924
ROM_REGION32_BE( 0x400000, "user2", ROMREGION_ERASE ) /* 24bit signed point data */
1925
ROM_LOAD32_BYTE( "cy1-poi-h1.2f", 0x000001, 0x80000, CRC(eaf8bac3) SHA1(7a2caf6672af158b4a23ce4626342d1f17d1a4e4) ) /* most significant */
1926
ROM_LOAD32_BYTE( "cy1-poi-lu1.2k", 0x000002, 0x80000, CRC(c544a8dc) SHA1(4cce5f2ab3519b4aa7edbdd15b2d79a7fdcade3c) )
1927
ROM_LOAD32_BYTE( "cy1-poi-ll1.2n", 0x000003, 0x80000, CRC(30acb99b) SHA1(a28dcb3e5405f166644f6353a903c1143ee268f1) ) /* least significant */
1928
ROM_LOAD32_BYTE( "cy1-poi-h2.2j", 0x200001, 0x80000, CRC(4079f342) SHA1(fa36aed1abbda54a42f29b183007474580870319) )
1929
ROM_LOAD32_BYTE( "cy1-poi-lu2.2l", 0x200002, 0x80000, CRC(61d816d4) SHA1(7991957b910d32530151abc7f469fcf1de62d8f3) )
1930
ROM_LOAD32_BYTE( "cy1-poi-ll2.2p", 0x200003, 0x80000, CRC(faf09158) SHA1(b56ebed6012362b1d599c396a43e90a1e4d9dc38) )
1932
ROM_REGION( 0x200000, "c140", 0 ) /* sound samples */
1933
ROM_LOAD("cy1-voi0.12b",0x000000,0x80000,CRC(99d7ce46) SHA1(b75f4055c3ce847daabfacda22df14e3f80c4fb9) )
1934
ROM_LOAD("cy1-voi1.12c",0x080000,0x80000,CRC(2b335f06) SHA1(2b2cd407c34388b56496f84a414daa153780b098) )
1935
ROM_LOAD("cy1-voi2.12d",0x100000,0x80000,CRC(10cd15f0) SHA1(9b721654ed97a13287373c1b2854ac9aeddc271f) )
1936
ROM_LOAD("cy1-voi3.12e",0x180000,0x80000,CRC(c902b4a4) SHA1(816357ec1a02a7ebf817ac1182e9c50ce5ca71f6) )
1938
ROM_REGION( 0x2000, "nvram", 0 ) /* default settings, including calibration */
1939
ROM_LOAD( "cybsledj.nv", 0x000000, 0x2000, CRC(a73bb03e) SHA1(e074bfeae14178c867070e06f6690ed13115f5fa) )
1942
ROM_START( driveyes )
1943
ROM_REGION( 0x40000, "maincpu", 0 ) /* C68C - 68k code */
1944
ROM_LOAD16_BYTE( "de2-mp-ub.3j", 0x000000, 0x20000, CRC(f9c86fb5) SHA1(b48d16e8f26e7a2cfecb30285b517c42e5585ac7) )
1945
ROM_LOAD16_BYTE( "de2-mp-lb.1j", 0x000001, 0x20000, CRC(11d8587a) SHA1(ecb1e8fe2ba56b6f6a71a5552d5663b597165786) )
1947
ROM_REGION( 0x40000, "slave", 0 ) /* C68 - 68k code */
1948
ROM_LOAD16_BYTE( "de1-sp-ub.6c", 0x000000, 0x20000, CRC(231b144f) SHA1(42518614cb083455dc5fec71e699403907ca784b) )
1949
ROM_LOAD16_BYTE( "de1-sp-lb.4c", 0x000001, 0x20000, CRC(50cb9f59) SHA1(aec7fa080854f0297d9e90e3aaeb0f332fd579bd) )
1951
ROM_REGION( 0x30000, "audiocpu", 0 ) /* Sound */
1953
There are 3 seperate complete boards used for this 3 screen version....
1954
"Set2" (center screen board?) has de1_snd0 while the other 2 sets have de1_snd0r (rear speakers??)
1955
Only "Set2" has voice roms present/dumped?
1956
We load the "r" set, then load set2's sound CPU code over it to keep the "r" rom in the set
1958
ROM_LOAD( "de1-snd0r.8j", 0x00c000, 0x004000, CRC(7bbeda42) SHA1(fe840cc9069758928492bbeec79acded18daafd9) ) /* Sets 1 & 3 */
1959
ROM_CONTINUE( 0x010000, 0x01c000 )
1960
ROM_RELOAD( 0x010000, 0x020000 )
1961
ROM_LOAD( "de1-snd0.8j", 0x00c000, 0x004000, CRC(5474f203) SHA1(e0ae2f6978deb0c934d9311a334a6e36bb402aee) ) /* Set 2 */
1962
ROM_CONTINUE( 0x010000, 0x01c000 )
1963
ROM_RELOAD( 0x010000, 0x020000 )
1965
ROM_REGION( 0x10000, "mcu", 0 ) /* I/O MCU */
1966
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
1967
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
1969
ROM_REGION( 0x20000, "dsp", ROMREGION_ERASEFF ) /* C67 - DSP */
1971
ROM_REGION( 0x200000, "gfx1", 0 ) /* sprites */
1972
ROM_LOAD( "de1-obj0.5s", 0x000000, 0x40000, CRC(7438bd53) SHA1(7619c4b56d5c466e845eb45e6157dcaf2a03ad94) )
1973
ROM_LOAD( "de1-obj4.4s", 0x040000, 0x40000, CRC(335f0ea4) SHA1(9ec065d99ad0874b262b372334179a7e7612558e) )
1974
ROM_LOAD( "de1-obj1.5x", 0x080000, 0x40000, CRC(45f2334e) SHA1(95f277a4e43d6662ae44d6b69a57f65c72978319) )
1975
ROM_LOAD( "de1-obj5.4x", 0x0c0000, 0x40000, CRC(9e22999c) SHA1(02624186c359b5e2c96cd3f0e2cb1598ea36dff7) )
1976
ROM_LOAD( "de1-obj2.3s", 0x100000, 0x40000, CRC(8f1a542c) SHA1(2cb59713607d8929815a9b28bf2a384b6a6c9db8) )
1977
ROM_LOAD( "de1-obj6.2s", 0x140000, 0x40000, CRC(346df4d5) SHA1(edbadb9db93b7f5a3b064c7f6acb77001cdacce2) )
1978
ROM_LOAD( "de1-obj3.3x", 0x180000, 0x40000, CRC(fc94544c) SHA1(6297445c64784ee253716f6438d98e5fcd4e7520) )
1979
ROM_LOAD( "de1-obj7.2x", 0x1c0000, 0x40000, CRC(9ce325d7) SHA1(de4d788bec14842507ed405244974b4fd4f07515) )
1981
ROM_REGION16_BE( 0x100000, "user1", 0 ) /* 68k */
1982
ROM_LOAD16_BYTE( "de1-data-u.3a", 0x00000, 0x80000, CRC(fe65d2ab) SHA1(dbe962dda7efa60357fa3a684a265aaad49df5b5) )
1983
ROM_LOAD16_BYTE( "de1-data-l.1a", 0x00001, 0x80000, CRC(9bb37aca) SHA1(7f5dffc95cadcf12f53ff7944920afc25ed3cf68) )
1985
ROM_REGION16_BE( 0xc0000, "user2", 0 ) /* 3d objects */
1986
ROM_LOAD16_BYTE( "de1-pt0-ub.8j", 0x00000, 0x20000, CRC(3b6b746d) SHA1(40c992ef4cf5187b30aba42c5fe7ce0f8f02bee0) )
1987
ROM_LOAD16_BYTE( "de1-pt0-lb.8d", 0x00001, 0x20000, CRC(9c5c477e) SHA1(c8ae8a663227d636d35bd5f432d23f05d6695942) )
1988
ROM_LOAD16_BYTE( "de1-pt1-u.8l", 0x40000, 0x20000, CRC(23bc72a1) SHA1(083e2955ae2f88d1ad461517b47054d64375b46e) )
1989
ROM_LOAD16_BYTE( "de1-pt1-l.8e", 0x40001, 0x20000, CRC(a05ee081) SHA1(1be4c61ad716abb809856e04d4bb450943706a55) )
1990
ROM_LOAD16_BYTE( "de1-pt2-u.5n", 0x80000, 0x20000, CRC(10e83d81) SHA1(446fedc3b1e258a39fb9467e5327c9f9a9f1ac3f) )
1991
ROM_LOAD16_BYTE( "de1-pt2-l.7n", 0x80001, 0x20000, CRC(3339a976) SHA1(c9eb9c04f7b3f2a85e5ab64ffb2fe4fcfb6c494b) )
1993
ROM_REGION( 0x200000, "c140", 0 ) /* sound samples */
1994
ROM_LOAD("de1-voi0.12b", 0x040000, 0x40000, CRC(fc44adbd) SHA1(4268bb1f025e47a94212351d1c1cfd0e5029221f) )
1995
ROM_LOAD("de1-voi1.12c", 0x0c0000, 0x40000, CRC(a71dc55a) SHA1(5e746184db9144ab4e3a97b20195b92b0f56c8cc) )
1996
ROM_LOAD("de1-voi2.12d", 0x140000, 0x40000, CRC(4d32879a) SHA1(eae65f4b98cee9efe4e5dad7298c3717cfb1e6bf) )
1997
ROM_LOAD("de1-voi3.12e", 0x1c0000, 0x40000, CRC(e4832d18) SHA1(0460c79d3942aab89a765b0bd8bbddaf19a6d682) )
2000
ROM_START( starblad )
2001
ROM_REGION( 0x100000, "maincpu", 0 ) /* Master */
2002
ROM_LOAD16_BYTE( "st1-mp-u.bin", 0x000000, 0x80000, CRC(483a311c) SHA1(dd9416b8d4b0f8b361630e312eac71c113064eae) )
2003
ROM_LOAD16_BYTE( "st1-mp-l.bin", 0x000001, 0x80000, CRC(0a4dd661) SHA1(fc2b71a255a8613693c4d1c79ddd57a6d396165a) )
2005
ROM_REGION( 0x080000, "slave", 0 ) /* Slave */
2006
ROM_LOAD16_BYTE( "st1-sp-u.bin", 0x000000, 0x40000, CRC(9f9a55db) SHA1(72bf5d6908cc57cc490fa2292b4993d796b2974d) )
2007
ROM_LOAD16_BYTE( "st1-sp-l.bin", 0x000001, 0x40000, CRC(acbe39c7) SHA1(ca48b7ea619b1caaf590eed33001826ce7ef36d8) )
2009
ROM_REGION( 0x030000, "audiocpu", 0 ) /* Sound */
2010
ROM_LOAD( "st1-snd0.bin", 0x00c000, 0x004000, CRC(c0e934a3) SHA1(678ed6705c6f494d7ecb801a4ef1b123b80979a5) )
2011
ROM_CONTINUE( 0x010000, 0x01c000 )
2012
ROM_RELOAD( 0x010000, 0x020000 )
2014
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
2015
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
2016
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
2018
ROM_REGION( 0x20000, "dspmaster", 0 ) /* Master DSP */
2019
ROM_LOAD( "c67.bin", 0, 0x2000, CRC(6bd8988e) SHA1(c9ec18d5f88d53976b94444eedc64d5568155958) )
2020
ROM_REGION( 0x20000, "dspslave", 0 ) /* Slave DSP */
2021
ROM_LOAD( "c67.bin", 0, 0x2000, CRC(6bd8988e) SHA1(c9ec18d5f88d53976b94444eedc64d5568155958) )
2023
ROM_REGION( 0x200000, "gfx1", 0 ) /* sprites */
2024
ROM_LOAD( "st1-obj0.bin", 0x000000, 0x80000, CRC(5d42c71e) SHA1(f1aa2bb31bbbcdcac8e94334b1c78238cac1a0e7) )
2025
ROM_LOAD( "st1-obj1.bin", 0x080000, 0x80000, CRC(c98011ad) SHA1(bc34c21428e0ef5887051c0eb0fdef5397823a82) )
2026
ROM_LOAD( "st1-obj2.bin", 0x100000, 0x80000, CRC(6cf5b608) SHA1(c8537fbe97677c4c8a365b1cf86c4645db7a7d6b) )
2027
ROM_LOAD( "st1-obj3.bin", 0x180000, 0x80000, CRC(cdc195bb) SHA1(91443917a6982c286b6f15381d441d061aefb138) )
2029
ROM_REGION16_BE( 0x40000, "user1", 0 )
2030
ROM_LOAD16_BYTE( "st1-data-u.bin", 0x000000, 0x20000, CRC(2433e911) SHA1(95f5f00d3bacda4996e055a443311fb9f9a5fe2f) )
2031
ROM_LOAD16_BYTE( "st1-data-l.bin", 0x000001, 0x20000, CRC(4a2cc252) SHA1(d9da9992bac878f8a1f5e84cc3c6d457b4705e8f) )
2033
ROM_REGION32_BE( 0x400000, "user2", ROMREGION_ERASE ) /* 24bit signed point data */
2034
ROM_LOAD32_BYTE( "st1-pt0-h.bin", 0x000001, 0x80000, CRC(84eb355f) SHA1(89a248b8be2e0afcee29ba4c4c9cca65d5fb246a) )
2035
ROM_LOAD32_BYTE( "st1-pt0-u.bin", 0x000002, 0x80000, CRC(1956cd0a) SHA1(7d21b3a59f742694de472c545a1f30c3d92e3390) )
2036
ROM_LOAD32_BYTE( "st1-pt0-l.bin", 0x000003, 0x80000, CRC(ff577049) SHA1(1e1595174094e88d5788753d05ce296c1f7eca75) )
2037
ROM_LOAD32_BYTE( "st1-pt1-h.bin", 0x200001, 0x80000, CRC(96b1bd7d) SHA1(55da7896dda2aa4c35501a55c8605a065b02aa17) )
2038
ROM_LOAD32_BYTE( "st1-pt1-u.bin", 0x200002, 0x80000, CRC(ecf21047) SHA1(ddb13f5a2e7d192f0662fa420b49f89e1e991e66) )
2039
ROM_LOAD32_BYTE( "st1-pt1-l.bin", 0x200003, 0x80000, CRC(01cb0407) SHA1(4b58860bbc353de8b4b8e83d12b919d9386846e8) )
2041
ROM_REGION( 0x200000, "c140", 0 ) /* sound samples */
2042
ROM_LOAD("st1-voi0.bin",0x000000,0x80000,CRC(5b3d43a9) SHA1(cdc04f19dc91dca9fa88ba0c2fca72aa195a3694) )
2043
ROM_LOAD("st1-voi1.bin",0x080000,0x80000,CRC(413e6181) SHA1(e827ec11f5755606affd2635718512aeac9354da) )
2044
ROM_LOAD("st1-voi2.bin",0x100000,0x80000,CRC(067d0720) SHA1(a853b2d43027a46c5e707fc677afdaae00f450c7) )
2045
ROM_LOAD("st1-voi3.bin",0x180000,0x80000,CRC(8b5aa45f) SHA1(e1214e639200758ad2045bde0368a2d500c1b84a) )
2047
ROM_REGION( 0x2000, "nvram", ROMREGION_ERASE00)
2048
// starblad needs default NVRAM to be all 0
2051
ROM_START( solvalou )
2052
ROM_REGION( 0x100000, "maincpu", 0 ) /* Master */
2053
ROM_LOAD16_BYTE( "sv1-mp-u.bin", 0x000000, 0x20000, CRC(b6f92762) SHA1(d177328b3da2ab0580e101478142bc8c373d6140) )
2054
ROM_LOAD16_BYTE( "sv1-mp-l.bin", 0x000001, 0x20000, CRC(28c54c42) SHA1(32fcca2eb4bb8ba8c2587b03d3cf59f072f7fac5) )
2056
ROM_REGION( 0x80000, "slave", 0 ) /* Slave */
2057
ROM_LOAD16_BYTE( "sv1-sp-u.bin", 0x000000, 0x20000, CRC(ebd4bf82) SHA1(67946360d680a675abcb3c131bac0502b2455573) )
2058
ROM_LOAD16_BYTE( "sv1-sp-l.bin", 0x000001, 0x20000, CRC(7acab679) SHA1(764297c9601be99dbbffb75bbc6fe4a40ea38529) )
2060
ROM_REGION( 0x030000, "audiocpu", 0 ) /* Sound */
2061
ROM_LOAD( "sv1-snd0.bin", 0x00c000, 0x004000, CRC(5e007864) SHA1(94da2d51544c6127056beaa251353038646da15f) )
2062
ROM_CONTINUE( 0x010000, 0x01c000 )
2063
ROM_RELOAD( 0x010000, 0x020000 )
2065
ROM_REGION( 0x010000, "mcu", 0 ) /* I/O MCU */
2066
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
2067
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
2069
ROM_REGION( 0x20000, "dspmaster", 0 ) /* Master DSP */
2070
ROM_LOAD( "c67.bin", 0, 0x2000, CRC(6bd8988e) SHA1(c9ec18d5f88d53976b94444eedc64d5568155958) )
2071
ROM_REGION( 0x20000, "dspslave", 0 ) /* Slave DSP */
2072
ROM_LOAD( "c67.bin", 0, 0x2000, CRC(6bd8988e) SHA1(c9ec18d5f88d53976b94444eedc64d5568155958) )
2074
ROM_REGION( 0x400000, "gfx1", 0 )
2075
ROM_LOAD( "sv1-obj0.bin", 0x000000, 0x80000, CRC(773798bb) SHA1(51ab76c95030bab834f1a74ae677b2f0afc18c52) )
2076
ROM_LOAD( "sv1-obj4.bin", 0x080000, 0x80000, CRC(33a008a7) SHA1(4959a0ac24ad64f1367e2d8d63d39a0273c60f3e) )
2077
ROM_LOAD( "sv1-obj1.bin", 0x100000, 0x80000, CRC(a36d9e79) SHA1(928d9995e97ee7509e23e6cc64f5e7bfb5c02d42) )
2078
ROM_LOAD( "sv1-obj5.bin", 0x180000, 0x80000, CRC(31551245) SHA1(385452ea4830c466263ad5241313ac850dfef756) )
2079
ROM_LOAD( "sv1-obj2.bin", 0x200000, 0x80000, CRC(c8672b8a) SHA1(8da037b27d2c2b178aab202781f162371458f788) )
2080
ROM_LOAD( "sv1-obj6.bin", 0x280000, 0x80000, CRC(fe319530) SHA1(8f7e46c8f0b86c7515f6d763b795ce07d11c77bc) )
2081
ROM_LOAD( "sv1-obj3.bin", 0x300000, 0x80000, CRC(293ef1c5) SHA1(f677883bfec16bbaeb0a01ac565d0e6cac679174) )
2082
ROM_LOAD( "sv1-obj7.bin", 0x380000, 0x80000, CRC(95ed6dcb) SHA1(931706ce3fea630823ce0c79febec5eec0cc623d) )
2084
ROM_REGION16_BE( 0x100000, "user1", 0 )
2085
ROM_LOAD16_BYTE( "sv1-data-u.bin", 0x000000, 0x80000, CRC(2e561996) SHA1(982158481e5649f21d5c2816fdc80cb725ed1419) )
2086
ROM_LOAD16_BYTE( "sv1-data-l.bin", 0x000001, 0x80000, CRC(495fb8dd) SHA1(813d1da4109652008d72b3bdb03032efc5c0c2d5) )
2088
ROM_REGION32_BE( 0x400000, "user2", ROMREGION_ERASE ) /* 24bit signed point data */
2089
ROM_LOAD32_BYTE( "sv1-pt0-h.bin", 0x000001, 0x80000, CRC(3be21115) SHA1(c9f30353c1216f64199f87cd34e787efd728e739) ) /* most significant */
2090
ROM_LOAD32_BYTE( "sv1-pt0-u.bin", 0x000002, 0x80000, CRC(4aacfc42) SHA1(f0e179e057183b41744ca429764f44306f0ce9bf) )
2091
ROM_LOAD32_BYTE( "sv1-pt0-l.bin", 0x000003, 0x80000, CRC(6a4dddff) SHA1(9ed182d21d328c6a684ee6658a9dfcf3f3dd8646) ) /* least significant */
2093
ROM_REGION( 0x200000, "c140", 0 ) /* sound samples */
2094
ROM_LOAD("sv1-voi0.bin",0x000000,0x80000,CRC(7f61bbcf) SHA1(b3b7e66e24d9cb16ebd139237c1e51f5d60c1585) )
2095
ROM_LOAD("sv1-voi1.bin",0x080000,0x80000,CRC(c732e66c) SHA1(14e75dd9bea4055f85eb2bcbf69cf6695a3f7ec4) )
2096
ROM_LOAD("sv1-voi2.bin",0x100000,0x80000,CRC(51076298) SHA1(ec52c9ae3029118f3ea3732948d6de28f5fba561) )
2097
ROM_LOAD("sv1-voi3.bin",0x180000,0x80000,CRC(33085ff3) SHA1(0a30b91618c250a5e7bd896a8ceeb3d16da178a9) )
2101
ROM_REGION( 0x40000, "maincpu", 0 ) /* 68k code */
2102
ROM_LOAD16_BYTE( "sg1-mp-ub.3k", 0x000000, 0x20000, CRC(7f9b855a) SHA1(6d39a3a9959dbcd0047dbaab0fcd68adc81f5508) )
2103
ROM_LOAD16_BYTE( "sg1-mp-lb.1k", 0x000001, 0x20000, CRC(a45e8543) SHA1(f9e583a988e4661026ee7873a48d078225778df3) )
2105
ROM_REGION( 0x40000, "slave", 0 ) /* 68k code */
2106
ROM_LOAD16_BYTE( "sg1-sp-u.6b", 0x000000, 0x20000, CRC(7c9c3a3f) SHA1(cacb45c9111ac66c6e60b7a0cacd8bf47fd00752) )
2107
ROM_LOAD16_BYTE( "sg1-sp-l.4b", 0x000001, 0x20000, CRC(5068fc5d) SHA1(7f6e80f74985959509d824318a4a7ff2b11953da) )
2109
ROM_REGION( 0x30000, "audiocpu", 0 ) /* Sound */
2110
ROM_LOAD( "sg1-snd0.7c", 0x00c000, 0x004000, CRC(de04b794) SHA1(191f4d79ac2375d7060f3d83ec753185e92f28ea) )
2111
ROM_CONTINUE( 0x010000, 0x01c000 )
2112
ROM_RELOAD( 0x010000, 0x020000 )
2114
ROM_REGION( 0x10000, "mcu", 0 ) /* I/O MCU */
2115
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
2116
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
2118
ROM_REGION( 0x20000, "dsp", ROMREGION_ERASEFF ) /* DSP */
2120
ROM_REGION( 0x80000, "gpu", 0 ) /* 68k code */
2121
ROM_LOAD16_BYTE( "sg1-gp0-u.1j", 0x00000, 0x20000, CRC(475da78a) SHA1(6e69bcc6caf2e3cd28fed75796c8992e754f9323) )
2122
ROM_LOAD16_BYTE( "sg1-gp0-l.3j", 0x00001, 0x20000, CRC(580479bf) SHA1(ba682190cba0d3cdc49aa4937c898ba7ed2a25f5) )
2123
ROM_LOAD16_BYTE( "sg1-gp1-u.1l", 0x40000, 0x20000, CRC(f5f2e927) SHA1(ebf709f16f01f1a634de9121454537cda74e891b) )
2124
ROM_LOAD16_BYTE( "sg1-gp1-l.3l", 0x40001, 0x20000, CRC(17ed90a5) SHA1(386bdcb11dcbe400f5be1fe4a7418158b46e50ef) )
2126
ROM_REGION16_BE( 0x80000, "user1", 0 ) /* 68k */
2127
ROM_LOAD16_BYTE( "sg1-data0-u.3a", 0x00000, 0x20000, CRC(1dde2ac2) SHA1(2d20a434561c04e48b52a2137a8c9047e17c1013) )
2128
ROM_LOAD16_BYTE( "sg1-data0-l.1a", 0x00001, 0x20000, CRC(2afeb77e) SHA1(ac1552f6e2788158d3477b6a0981d001d6cbdf13) )
2129
ROM_LOAD16_BYTE( "sg1-data1-u.3b", 0x40000, 0x20000, CRC(5664b09e) SHA1(10c1c29614eee2cffcfd69085f0450d81ba2e25f) )
2130
ROM_LOAD16_BYTE( "sg1-data1-l.1b", 0x40001, 0x20000, CRC(2dbc7de4) SHA1(824304c95942c7296f8e8dcf8ee7e22bf56154b1) )
2132
ROM_REGION16_BE( 0x80000, "user2", 0 ) /* 3d objects */
2133
ROM_LOAD16_BYTE( "sg1-pt0-u.8j", 0x00000, 0x20000, CRC(160c3634) SHA1(485d20d6cc459f17d77682201dee07bdf76bf343) )
2134
ROM_LOAD16_BYTE( "sg1-pt0-l.8d", 0x00001, 0x20000, CRC(b5a665bf) SHA1(5af6ec492f31395c0492e14590b025b120067b8d) )
2135
ROM_LOAD16_BYTE( "sg1-pt1-u.8l", 0x40000, 0x20000, CRC(b63d3006) SHA1(78e78619766b0fd91b1e830cfb066495d6773981) )
2136
ROM_LOAD16_BYTE( "sg1-pt1-l.8e", 0x40001, 0x20000, CRC(6385e325) SHA1(d50bceb2e9c0d0a38d7b0f918f99c482649e260d) )
2138
ROM_REGION16_BE( 0x100000, "user3", 0 ) /* bitmapped graphics */
2139
ROM_LOAD16_BYTE( "sg1-gd0-u.1p", 0x00000, 0x40000, CRC(7838fcde) SHA1(45e31269eed1999b73c41c2f5d2c5bfbbdaf23df) )
2140
ROM_LOAD16_BYTE( "sg1-gd0-l.3p", 0x00001, 0x40000, CRC(4bd02b9a) SHA1(b2fdfd1c1325864aaad87f5358ab9bbdd79ff6ae) )
2141
ROM_LOAD16_BYTE( "sg1-gd1-u.1s", 0x80000, 0x40000, CRC(271db29b) SHA1(8b35fcf273b9aec28d4c606c41c0626dded697e1) )
2142
ROM_LOAD16_BYTE( "sg1-gd1-l.3s", 0x80001, 0x40000, CRC(a6c4da96) SHA1(377dbf21a1bede01de16708c96c112abab4417ce) )
2144
ROM_REGION( 0x200000, "c140", 0 ) /* sound samples */
2145
ROM_LOAD("sg-voi-1.11c",0x080000,0x80000,CRC(7dcccb31) SHA1(4441b37691434b13eae5dee2d04dc12a56b04d2a) )
2146
ROM_LOAD("sg-voi-3.11e",0x180000,0x80000,CRC(a198141c) SHA1(b4ca352e6aedd9d7a7e5e39e840f1d3a7145900e) )
2149
ROM_START( winrun91 )
2150
ROM_REGION( 0x40000, "maincpu", 0 ) /* 68k code */
2151
ROM_LOAD16_BYTE( "mpu.3k", 0x000000, 0x20000, CRC(80a0e5be) SHA1(6613b95e164c2032ea9043e4161130c6b3262492) )
2152
ROM_LOAD16_BYTE( "mpl.1k", 0x000001, 0x20000, CRC(942172d8) SHA1(21d8dfd2165b5ceb0399fdb53d9d0f51f1255803) )
2154
ROM_REGION( 0x40000, "slave", 0 ) /* 68k code */
2155
ROM_LOAD16_BYTE( "spu.6b", 0x000000, 0x20000, CRC(0221d4b2) SHA1(65fd38b1cfaa6693d71248561d764a9ea1098c56) )
2156
ROM_LOAD16_BYTE( "spl.4b", 0x000001, 0x20000, CRC(288799e2) SHA1(2c4bf0cf9c71458fff4dd77e426a76685d9e1bab) )
2158
ROM_REGION( 0x30000, "audiocpu", 0 ) /* Sound */
2159
ROM_LOAD( "snd0.7c", 0x00c000, 0x004000, CRC(6a321e1e) SHA1(b2e77cac4ed7609593fa5a462c9d78526451e477) )
2160
ROM_CONTINUE( 0x010000, 0x01c000 )
2161
ROM_RELOAD( 0x010000, 0x020000 )
2163
ROM_REGION( 0x10000, "mcu", 0 ) /* I/O MCU */
2164
ROM_LOAD( "sys2mcpu.bin", 0x000000, 0x002000, CRC(a342a97e) SHA1(2c420d34dba21e409bf78ddca710fc7de65a6642) )
2165
ROM_LOAD( "sys2c65c.bin", 0x008000, 0x008000, CRC(a5b2a4ff) SHA1(068bdfcc71a5e83706e8b23330691973c1c214dc) )
2167
ROM_REGION( 0x20000, "dsp", ROMREGION_ERASEFF ) /* DSP */
2169
ROM_REGION( 0x80000, "gpu", 0 ) /* 68k code */
2170
ROM_LOAD16_BYTE( "gp0u.1j", 0x00000, 0x20000, CRC(f5469a29) SHA1(38b6ea1fbe482b69fbb0e2f44f44a0ca2a49f6bc) )
2171
ROM_LOAD16_BYTE( "gp0l.3j", 0x00001, 0x20000, CRC(5c18f596) SHA1(215cbda62254e31b4ff6431623384df1639bfdb7) )
2172
ROM_LOAD16_BYTE( "gp1u.1l", 0x40000, 0x20000, CRC(146ab6b8) SHA1(aefb89585bf311f8d33f18298fea326ef1f19f1e) )
2173
ROM_LOAD16_BYTE( "gp1l.3l", 0x40001, 0x20000, CRC(96c2463c) SHA1(e43db580e7b454af04c22e894108fbb56da0eeb5) )
2175
ROM_REGION16_BE( 0x80000, "user1", 0 )
2176
ROM_LOAD16_BYTE( "d0u.3a", 0x00000, 0x20000, CRC(dcb27da5) SHA1(ecd72397d10313fe8dcb8589bdc5d88d4298b26c) )
2177
ROM_LOAD16_BYTE( "d0l.1a", 0x00001, 0x20000, CRC(f692a8f3) SHA1(4c29f60400b18d9ef0425de149618da6cf762ca4) )
2178
ROM_LOAD16_BYTE( "d1u.3b", 0x40000, 0x20000, CRC(ac2afd1b) SHA1(510eb41931164b086c85ba0a86d6f10b88f5e534) )
2179
ROM_LOAD16_BYTE( "d1l.1b", 0x40001, 0x20000, CRC(ebb51af1) SHA1(87b7b64ee662bf652add1e1199e42391d0e2f7e8) )
2181
ROM_REGION16_BE( 0x80000, "user2", 0 ) /* winrun91 - 3d objects */
2182
ROM_LOAD16_BYTE( "pt0u.8j", 0x00000, 0x20000, CRC(abf512a6) SHA1(e86288039d6c4dedfa95b11cb7e4b87637f90c09) )
2183
ROM_LOAD16_BYTE( "pt0l.8d", 0x00001, 0x20000, CRC(ac8d468c) SHA1(d1b457a19a5d3259d0caf933f42b3a02b485867b) )
2184
ROM_LOAD16_BYTE( "pt1u.8l", 0x40000, 0x20000, CRC(7e5dab74) SHA1(5bde219d5b4305d38d17b494b2e759f05d05329f) )
2185
ROM_LOAD16_BYTE( "pt1l.8e", 0x40001, 0x20000, CRC(38a54ec5) SHA1(5c6017c98cae674868153ff2d64532027cf0ab83) )
2187
ROM_REGION16_BE( 0x100000, "user3", 0 ) /* bitmapped graphics */
2188
ROM_LOAD16_BYTE( "gd0u.1p", 0x00000, 0x40000, CRC(33f5a19b) SHA1(b1dbd242168007f80e13e11c78b34abc1668883e) )
2189
ROM_LOAD16_BYTE( "gd0l.3p", 0x00001, 0x40000, CRC(9a29500e) SHA1(c605f86b138e0a4c3163ffd967482e298a15fbe7) )
2190
ROM_LOAD16_BYTE( "gd1u.1s", 0x80000, 0x40000, CRC(17e5a61c) SHA1(272ebd7daa56847f1887809535362331b5465dec) )
2191
ROM_LOAD16_BYTE( "gd1l.3s", 0x80001, 0x40000, CRC(64df59a2) SHA1(1e9d0945b94780bb0be16803e767466d2cda07e8) )
2193
ROM_REGION( 0x200000, "c140", 0 ) /* sound samples */
2194
ROM_LOAD("avo1.11c",0x080000,0x80000,CRC(9fb33af3) SHA1(666630a8e5766ca4c3275961963c3e713dfdda2d) )
2195
ROM_LOAD("avo3.11e",0x180000,0x80000,CRC(76e22f92) SHA1(0e1b8d35a5b9c20cc3192d935f0c9da1e69679d2) )
2198
static void namcos21_init( running_machine &machine, int game_type )
2200
namcos21_state *state = machine.driver_data<namcos21_state>();
2201
namcos2_gametype = game_type;
2202
state->m_pointram = auto_alloc_array(machine, UINT8, PTRAM_SIZE);
2203
state->m_mpDataROM = (UINT16 *)machine.region( "user1" )->base();
2205
state->m_mbNeedsKickstart = 20;
2206
if( game_type==NAMCOS21_CYBERSLED )
2208
state->m_mbNeedsKickstart = 200;
2210
} /* namcos21_init */
2212
static DRIVER_INIT( winrun )
2214
namcos21_state *state = machine.driver_data<namcos21_state>();
2215
UINT16 *pMem = (UINT16 *)machine.region("dsp")->base();
2217
pMem[pc++] = 0xff80; /* b */
2220
state->m_winrun_dspcomram = auto_alloc_array(machine, UINT16, 0x1000*2);
2222
namcos2_gametype = NAMCOS21_WINRUN91;
2223
state->m_mpDataROM = (UINT16 *)machine.region( "user1" )->base();
2224
state->m_pointram = auto_alloc_array(machine, UINT8, PTRAM_SIZE);
2225
state->m_pointram_idx = 0;
2226
state->m_mbNeedsKickstart = 0;
2229
static DRIVER_INIT( aircombt )
2231
namcos21_init( machine, NAMCOS21_AIRCOMBAT );
2234
static DRIVER_INIT( starblad )
2236
namcos21_init( machine, NAMCOS21_STARBLADE );
2240
static DRIVER_INIT( cybsled )
2242
namcos21_init( machine, NAMCOS21_CYBERSLED );
2245
static DRIVER_INIT( solvalou )
2247
UINT16 *mem = (UINT16 *)machine.region("maincpu")->base();
2248
mem[0x20ce4/2+1] = 0x0000; // $200128
2249
mem[0x20cf4/2+0] = 0x4e71; // 2nd ptr_booting
2250
mem[0x20cf4/2+1] = 0x4e71;
2251
mem[0x20cf4/2+2] = 0x4e71;
2253
namcos21_init( machine, NAMCOS21_SOLVALOU );
2256
static DRIVER_INIT( driveyes )
2258
namcos21_state *state = machine.driver_data<namcos21_state>();
2259
UINT16 *pMem = (UINT16 *)machine.region("dsp")->base();
2261
pMem[pc++] = 0xff80; /* b */
2263
state->m_winrun_dspcomram = auto_alloc_array(machine, UINT16, 0x1000*2);
2264
namcos2_gametype = NAMCOS21_DRIVERS_EYES;
2265
state->m_mpDataROM = (UINT16 *)machine.region( "user1" )->base();
2266
state->m_pointram = auto_alloc_array(machine, UINT8, PTRAM_SIZE);
2267
state->m_pointram_idx = 0;
2268
state->m_mbNeedsKickstart = 0;
2271
/*************************************************************/
2273
/* NAMCO SYSTEM 21 INPUT PORTS */
2275
/*************************************************************/
2277
static INPUT_PORTS_START( s21default )
2278
PORT_START("PORTB") /* 63B05Z0 - PORT B */
2279
PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED )
2280
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
2281
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
2283
PORT_START("PORTC") /* 63B05Z0 - PORT C & SCI */
2284
PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED )
2285
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
2286
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
2287
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Service Button") PORT_CODE(KEYCODE_0) PORT_TOGGLE // alt test mode switch
2288
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 )
2290
PORT_START("AN0") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 0 */
2291
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2292
PORT_START("AN1") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 1 */
2293
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x60,0x9f) PORT_SENSITIVITY(15) PORT_KEYDELTA(10)
2294
PORT_START("AN2") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 2 */
2295
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x60,0x9f) PORT_SENSITIVITY(20) PORT_KEYDELTA(10)
2296
PORT_START("AN3") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 3 */
2297
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2298
PORT_START("AN4") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 4 */
2299
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2300
PORT_START("AN5") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 5 */
2301
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2302
PORT_START("AN6") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 6 */
2303
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2304
PORT_START("AN7") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 7 */
2305
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2307
PORT_START("PORTH") /* 63B05Z0 - PORT H */
2308
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 )
2309
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 )
2310
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
2311
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 )
2312
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
2313
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
2314
PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
2316
PORT_START("DSW") /* 63B05Z0 - $2000 DIP SW */
2317
PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
2318
PORT_DIPNAME( 0x02, 0x02, "DSW2")
2319
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
2320
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2321
PORT_DIPNAME( 0x04, 0x04, "DSW3")
2322
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
2323
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2324
PORT_DIPNAME( 0x08, 0x08, "DSW4")
2325
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
2326
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2327
PORT_DIPNAME( 0x10, 0x10, "DSW5")
2328
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
2329
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2330
PORT_DIPNAME( 0x20, 0x20, "DSW6")
2331
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
2332
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2333
PORT_DIPNAME( 0x40, 0x40, "DSW7")
2334
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
2335
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2336
PORT_DIPNAME( 0x80, 0x80, "DSW8")
2337
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
2338
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2340
PORT_START("DIAL0") /* 63B05Z0 - $3000 */
2341
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2342
PORT_START("DIAL1") /* 63B05Z0 - $3001 */
2343
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2344
PORT_START("DIAL2") /* 63B05Z0 - $3002 */
2345
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2346
PORT_START("DIAL3") /* 63B05Z0 - $3003 */
2347
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2351
static INPUT_PORTS_START( winrun )
2352
PORT_INCLUDE(s21default)
2354
PORT_MODIFY("PORTB") /* 63B05Z0 - PORT B */
2355
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 ) /* ? */
2356
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) /* ? */
2357
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) /* ? */
2358
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) /* ? */
2360
PORT_MODIFY("AN0") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 0 */
2361
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2362
PORT_MODIFY("AN1") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 1 */
2363
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(15) PORT_KEYDELTA(10) /* gas */
2364
PORT_MODIFY("AN2") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 2 */
2365
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(15) PORT_KEYDELTA(10) /* steering */
2366
PORT_MODIFY("AN3") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 3 */
2367
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(15) PORT_KEYDELTA(10) /* break */
2368
PORT_MODIFY("AN4") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 4 */
2369
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2370
PORT_MODIFY("AN5") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 5 */
2371
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2372
PORT_MODIFY("AN6") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 6 */
2373
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2374
PORT_MODIFY("AN7") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 7 */
2375
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2377
PORT_MODIFY("PORTH") /* 63B05Z0 - PORT H */
2378
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
2379
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
2380
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
2381
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* shift down */
2382
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
2383
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* shift up */
2384
PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
2387
// the default inc/dec analog keys have been chosen to map 'tank' style inputs found on Assault.
2388
// this makes the game easier to use with the keyboard, providing a familiar left/right stick mapping
2389
// ports are limited to 10/ef because otherwise, even when calibrated, the game will act as if the
2390
// inputs wrap around when they hit the maximum, causing undesired movement
2391
static INPUT_PORTS_START( cybsled )
2392
PORT_INCLUDE(s21default)
2394
PORT_MODIFY("AN0") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 0 */
2395
PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_Y ) PORT_MINMAX(0x10,0xef) /* using 0x00 / 0xff causes controls to malfunction */ PORT_CODE_DEC(KEYCODE_I) PORT_CODE_INC(KEYCODE_K) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2) /* right joystick: vertical */
2396
PORT_MODIFY("AN1") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 1 */
2397
PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_Y ) PORT_MINMAX(0x10,0xef) /* using 0x00 / 0xff causes controls to malfunction */ PORT_CODE_DEC(KEYCODE_E) PORT_CODE_INC(KEYCODE_D) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) /* left joystick: vertical */
2398
PORT_MODIFY("AN2") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 2 */
2399
PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_MINMAX(0x10,0xef) /* using 0x00 / 0xff causes controls to malfunction */ PORT_CODE_DEC(KEYCODE_J) PORT_CODE_INC(KEYCODE_L) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2) /* right joystick: horizontal */
2400
PORT_MODIFY("AN3") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 3 */
2401
PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_MINMAX(0x10,0xef) /* using 0x00 / 0xff causes controls to malfunction */ PORT_CODE_DEC(KEYCODE_S) PORT_CODE_INC(KEYCODE_F) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1) /* left joystick: horizontal */
2402
PORT_MODIFY("AN4") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 4 */
2403
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2404
PORT_MODIFY("AN5") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 5 */
2405
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2406
PORT_MODIFY("AN6") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 6 */
2407
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2408
PORT_MODIFY("AN7") /* 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 7 */
2409
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2411
PORT_MODIFY("PORTH") /* 63B05Z0 - PORT H */
2412
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 )
2413
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 )
2414
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
2415
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 )
2416
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
2417
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
2418
PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
2421
static INPUT_PORTS_START( aircombt )
2422
PORT_INCLUDE(s21default)
2424
PORT_MODIFY("AN0") /* IN#2: 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 0 */
2425
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2426
PORT_MODIFY("AN1") /* IN#3: 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 1 */
2427
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4)
2428
PORT_MODIFY("AN2") /* IN#4: 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 2 */
2429
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4)
2430
PORT_MODIFY("AN3") /* IN#5: 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 3 */
2431
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_PLAYER(2)
2432
PORT_MODIFY("AN4") /* IN#6: 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 4 */
2433
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2434
PORT_MODIFY("AN5") /* IN#7: 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 5 */
2435
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2436
PORT_MODIFY("AN6") /* IN#8: 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 6 */
2437
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2438
PORT_MODIFY("AN7") /* IN#9: 63B05Z0 - 8 CHANNEL ANALOG - CHANNEL 7 */
2439
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2441
PORT_MODIFY("DSW") /* 63B05Z0 - $2000 DIP SW */
2442
PORT_DIPNAME( 0x01, 0x01, "DSW1") // not test mode on this gamef
2443
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
2444
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2446
PORT_MODIFY("PORTH") /* IN#10: 63B05Z0 - PORT H */
2447
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 )
2448
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 )
2449
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) ///???
2450
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) // prev color
2451
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) // ???next color
2452
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
2453
PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
2456
/* YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR, COMPANY, FULLNAME, FLAGS */
2457
GAME( 1992, aircomb, 0, poly_c140_typeB, aircombt, aircombt, ROT0, "Namco", "Air Combat (US)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
2458
GAME( 1992, aircombj, aircomb, poly_c140_typeB, aircombt, aircombt, ROT0, "Namco", "Air Combat (Japan)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
2459
GAME( 1993, cybsled, 0, poly_c140_typeA, cybsled, cybsled, ROT0, "Namco", "Cyber Sled (US)", GAME_IMPERFECT_GRAPHICS )
2460
GAME( 1993, cybsledj, cybsled, poly_c140_typeA, cybsled, cybsled, ROT0, "Namco", "Cyber Sled (Japan)", GAME_IMPERFECT_GRAPHICS )
2461
/* 1992, ShimDrive */
2462
GAME( 1991, solvalou, 0, poly_c140_typeA, s21default, solvalou, ROT0, "Namco", "Solvalou (Japan)", GAME_IMPERFECT_GRAPHICS )
2463
GAME( 1991, starblad, 0, poly_c140_typeA, s21default, starblad, ROT0, "Namco", "Starblade (Japan)", GAME_IMPERFECT_GRAPHICS )
2464
GAME( 1991, winrun91, 0, winrun_c140_typeB, winrun, winrun, ROT0, "Namco", "Winning Run 91 (Japan)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
2465
GAME( 1989, winrun, 0, winrun_c140_typeB, winrun, winrun, ROT0, "Namco", "Winning Run Suzuka Grand Prix (Japan)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
2466
/* 1988, Winning Run */
2467
GAME( 1991, driveyes, 0, driveyes, winrun, driveyes, ROT0, "Namco", "Driver's Eyes (US)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )