1 /***************************************************************************
2
3 Taito Z System [twin 68K with optional Z80]
4 -------------------------------------------
5
6 David Graves
7
8 (this is based on the F2 driver by Bryan McPhail, Brad Oliver, Andrew Prime,
9 Nicola Salmoria. Thanks to Richard Bush and the Raine team, whose open
10 source was very helpful in many areas particularly the sprites.)
11
12 - Changes Log -
13
14 01-26-02 Added Enforce
15 10-17-01 TC0150ROD support improved (e.g. Aquajack)
16 09-01-01 Preliminary TC0150ROD support
17 08-28-01 Fixed uncentered steer inputs, Nightstr controls
18 05-27-01 Inputs through taitoic ioc routines, contcirc subwoofer filter
19 04-12-01 Centered steering AD inputs, added digital steer
20 02-18-01 Added Spacegun gunsights (Insideoutboy)
21
22
23 *****
24
25 The Taito Z system has a number of similarities with the Taito F2 system,
26 and uses some of the same custom Taito components.
27
28 TaitoZ supports 5 separate layers of graphics - one 64x64 tiled scrolling
29 background plane of 8x8 tiles, a similar foreground plane, another optional
30 plane used for drawing a road (e.g. Chasehq), a sprite plane [with varying
31 properties], and a text plane with character definitions held in ram.
32
33 (Double Axle has four rather than two background planes, and they contain
34 32x32 16x16 tiles. This is because it uses a TC0480SCP rather than the
35 older TC0100SCN tilemap generator used in previous Taito Z games. The
36 hardware for Taito's Super Chase was a further development of this, with a
37 68020 for main CPU and Ensoniq sound - standard features of Taito's F3
38 system. Taito's F3 system superceded both Taito B and F2 systems, but the
39 Taito Z system was enhanced with F3 features and continued in games like
40 Super Chase and Under Fire up to the mid 1990s.)
41
42 Each Taito Z game used one of the following sprite systems - allowing the
43 use of big sprites with minimal CPU overhead [*]:
44
45 (i) 16x8 tiles aggregated through a spritemap rom into 128x128 sprites
46 (ii) 16x16 tiles aggregated through a spritemap rom into three sprite sizes:
47 128 x 128
48 64 x 128
49 32 x 128
50 (iii) 16x8 tiles aggregated through a spritemap rom into 64x64 sprites
51
52 [* in Taito B/F2/F3 the CPU has to keep track of all the 16x16 tiles within
53 a big sprite]
54
55 The Z system has twin 68K CPUs which communicate via shared ram.
56 Typically they share $4000 bytes, but Spacegun / Dbleaxle share $10000.
57
58 The first 68000 handles screen, palette and sprites, and sometimes other
59 jobs [e.g. inputs; in one game it also handles the road].
60
61 The second 68000 may handle functions such as:
62 (i) inputs/dips, sound (through a YM2610) and/or
63 (ii) the "road" that's in every TaitoZ game except Spacegun.
64
65 Most Z system games have a Z80 as well, which takes over sound duties.
66 Commands are written to it by the one of the 68000s.
67
68 The memory map for the Taito Z games is similar in outline but usually
69 shuffled around: some games have different i/o because of analogue
70 sticks, light guns, cockpit hardware etc.
71
72
73 Contcirc board (B.Troha)
74 --------------
75
76 Taito Sound PCB J1100137A K1100314A:
77
78 Zilog Z0840004PSC XTAL OSC Yamaha
79 Z80 CPU 16.000 MHz YM2610
80
81 TC0060DCA B33-30
82 TC0060DCA
83 TC0140SYT
84
85 B33-08
86 B33-09
87 B33-10
88
89 Notes: B33-30 is a OKI M27512-15
90
91
92 Taito Video Baord PCB J1100139A K1100316A:
93
94 B33-03 TC0050VDZ TC0050VDZ TC0050VDZ
95 B33-04
96 B33-05
97 B33-06 TC0020VAR
98
99 B14-31
100
101 B33-07
102
103 B14-30
104
105 Notes: B14-31 is 27HC64 (Sharp LH5763J-70)
106 B14-30 is OKI M27512-15
107 DG: TC0020VAR + 3xTC0050VDZ may be precursor to 370MSO/300FLA combo
108
109
110 Taito CPU Board J110138A K1100315A:
111
112 XTAL OSC XTAL OSC
113 24.000MHz 26.686MHz
114
115 B33-02
116 B33-01
117 TC0150ROD TC0100SCN NEC D43256C-10L
118 NEC D43256C-10L
119
120 TC0110PCR
121
122 TC0070RGB
123 MC6800P12 IC-25 MC68000P12 IC-35
124 IC-26 IC 36 TC0040IOC
125 DSWA DSWB
126
127 Notes: IC-41 Is 271001 Listed as JH1 (unsocketed / unused)
128 IC-42 Is 271001 Listed as JL1 (unsocketed / unused)
129
130
131
132 Aquajack top board (Guru)
133 ------------------
134
135 68000-12 x 2
136 OSC: 26.686, 24.000, 16.000
137 I dont see any recognisable sound chips, but I do see a YM3016F
138
139 TCO110PCR
140 TCO220IOC
141 TCO100SCN
142 TCO140SYT
143 TCO3200BR
144 TCO150ROD
145 TCO020VAR
146 TCO050VDZ
147 TCO050VDZ
148 TCO050VDZ
149
150 ChaseHQ (Guru)
151 -------
152
153 Video board
154 -----------
155 Pal b52-28d b52-28b
156 Pal 17d 17b
157 Pal 28c 28a
158 Pal 77c 17a
159
160 b52-30
161 34
162 31
163 35
164 32 b52-27 pal20 TC020VAR b52-03 b52-127
165 36 51 b52-126 b52-124 Pal
166 50
167 49 Pal b52-125
168 33 Pal b52-19 Pal b52-25
169 37 38 b52-18b Pal 122
170 Pal Pal b52-18a Pal 123
171 b52-20 b52-21 b52-18
172
173
174 CPU board
175 ---------
176 b52-119 Pal
177 b52-118 Pal
178 68000-12
179 b52-131 129
180 b52-113 b52-130 136
181 b52-114
182 b52-115 TC0140SYT
183 b52-116
184
185 YM2610 b52-29
186 26.686MHz
187 24 MHz
188 16MHz TC0100SCN
189
190 Pal b52-121
191 Pal b52-120 TC0170ABT TC0110PCR b52-01
192 68000-12
193 b52-06
194 TC0040IOC b52-133 b52-132 TC0150ROD b52-28
195
196
197
198 ChaseHQ2(SCI) custom chips (Guru) (DG: same as Bshark except 0140SYT?)
199 --------------------------
200
201 CPU PCB:
202 TC0170ABT
203 TC0150ROD
204 TC0140SYT
205 TC0220IOC
206
207 c09-23.rom is a
208 PROM type AM27S21PC, location looks like this...
209
210 -------------
211 | 68000 |
212 -------------
213
214 c09-25 c09-26
215 c09-24
216
217 |-------|
218 | |
219 | ABT |
220 | |
221 |-------|
222
223 c09-23 c09-07
224
225 |-------|
226 | |
227 | ROD |
228 | |
229 |-------|
230
231 c09-32 c09-33
232 -------------
233 | 68000 |
234 -------------
235
236 c09-21 c09-22
237
238 Lower PCB:
239 TCO270MOD
240 TC0300FLA
241 TC0260DAR
242 TC0370MSO
243 TC0100SCN
244 TC0380BSH
245
246 c09-16.rom is located next to
247 c09-05, which is located next to Taito TCO370MSO.
248
249 SCI (Guru)
250 Taito, 1989
251
252 Controls for this game are one wheel, one switch for shift lever (used for high gear)
253 and one switch each for accelerate, brake, gun and nitro.
254
255 Note that the gear is low by default and is shifted to high gear by a lever which
256 holds the switch closed. The lever is not self-centering or spring-loaded to go back to
257 low. The lever must be physically shifted back to low when required.
258
259
260 PCB Layout
261 ----------
262
263 CPU PCB K1100490A J1100209A
264 |----------------------------------------------------|
265 | 24MHz C09-14.42 TCO140SYT C09-22.3 C09-21.2 |
266 | C09-13.43 68000 |
267 | C09-12.44 C09-33.6 C09-32.5 |
268 | YM2610 C09-15.29 6264 6264 |
269 | YM3016 TL074 TL074 Z80 |
270 | C09-34.31 6264 TCO150ROD |
271 |D VOL 6264 6264 |
272 | |
273 | MB3735 C09-07.15 C09-23.14 |
274 | D633 16MHz |
275 | 62064 6264 6264 TCO170ABT |
276 | C09-28.37 6264 |
277 |G 62003 C09-36.38 C09-24.22 |
278 | TCO220IOC 6264 C09-26.26 C09-25.25 |
279 | C09-30.40 68000 |
280 | DSWB DSWA C09-31.41 |
281 |----------------------------------------------------|
282
283 Notes:
284 Clocks:
285 68000 : 16.000MHz (both)
286 Z80 : 4.000MHz
287 YM2610: 8.000MHz
288
289 Vsync: 60Hz
290
291 Misc parts:
292 MB3735: 15w Power AMP with dual output (used for stereo sounds ; CH1/CH2)
293 TL074 : JFET Lo Noise Quad OP Amp
294 6264 : 8k x8 SRAM
295 TD62064 : NPN 50V 1.5A Quad Darlinton Switch (for driving coin meters)
296 TD62003 : PNP 50V 0.5A Quad Darlinton Switch (for driving coin meters)
297 D633 : Si NPN POWER transistor used in 68k reset circuit (TIP122 compatible)
298 ROMs:
299 C09-12 thru C09-14 - MB834100
300 C09-07 - HN62404
301 C09-32 thru C09-33 - AM27C512
302 C09-30 thru C09-31 - TC571000
303 C09-38 and C09-36 - TC571000
304 C09-23 - AM27S21
305 C09-22 and C09-26 - MMI PAL16L8B
306 C09-21 and
307 C09-24 thru C09-25 - MMI PAL20L8B
308
309 PINOUT CONNECTOR D (Note: All pinouts typed from an original Taito document)
310 ------------------
311
312 1 +24V
313 2 +24V
314 3 GND
315 4 GND
316 5 D OUT
317
318 Question: +24V and D OUT are for?
319
320
321 PINOUT CONNECTOR G (the meanings of some of these is a bit vague - PTL OUTx, DRV0, HANDLE CENTER SW etc)
322
323 PARTS | SOLDER
324 ---------------|---------------
325 GND 1|A GND
326 GND 2|B GND
327 +5V 3|C +5V
328 +5V 4|D +5V
329 -5V 5|E -5V
330 +12V 6|F +12V
331 KEY 7|H KEY
332 COUNTER A 8|J COUNTER B
333 C LOCKOUT A 9|K C LOCKOUT B
334 SPK CH1+ 10|L SPK CH2+
335 SPK CH1- 11|M SPK CH2-
336 VOLUME2 12|N VOLUME1
337 VOLUME3 13|P MUTE
338 GND 14|R SERVICE SW
339 GND 15|S BRAKE SW0
340 COIN A 16|T COIN B
341 BRAKE SW1 17|U BRAKE SW2
342 NITRO SW 18|V TILT
343 HANDLE CENTER SW 19|W START SW
344 SHIFT SW 20|X ACCEL SW0
345 ACCEL SW1 21|Y ACCEL SW2
346 PTL OUT1 22|Z PTL OUT2
347 DRV0 23|a GUN SW
348 PADL X1 24|b PADL X2
349 PADL Y1 25|c PADL Y2
350 HANDLE Z1 26|d HANDLE Z2
351 GND 27|e GND
352 GND 28|f GND
353
354 Question: What hardware is used for steering and where is it connected? It doesn't seem to use
355 a regular potentiometer for the steering??
356
357
358 PCB Layout
359 ----------
360
361 VIDEO PCB K1100491A J1100210A
362 |-----------------------------------------------------|
363 | TCO370MSO C09-17.24 43256 |
364 |H C09-18.25 43256 |
365 | C09-05.16 |
366 | C09-16.17 26.686MHz TCO100SCN 6264 |
367 | C1815 |
368 |V C1815 6264 |
369 | C1815 TCO260DAR C09-06.37 |
370 |6264 |
371 | |
372 | TCO380BSH C09-19.67|
373 |TCO270MOD TCO300FLA |
374 | |
375 |43256 43256 43256 43256 C09-04.52 C09-20.71|
376 |43256 43256 43256 43256 C09-03.53 |
377 |43256 43256 43256 43256 C09-02.54 |
378 |43256 43256 43256 43256 C09-01.55 |
379 |-----------------------------------------------------|
380
381 Notes:
382 ROMs:
383 C09-01 thru C09-05 - 234000
384 C09-06 - HN62404
385 C09-17 thru C09-18 - MMI 63S441
386 C09-19 - MMI PAL16L8B
387 C09-20 - AM27S21
388
389 Misc parts:
390 6264: 8k x8 SRAM
391 43256: 32k x8 SRAM
392 C1815: transistor used for driving RGB
393
394 PINOUT CONNECTOR H
395 ------------------
396
397 1 GND
398 2 GND
399 3 GND
400 4 GND
401 5 +5V
402 6 +5V
403 7 +5V
404 8 +5V
405 9 -5V
406 10 POST
407 11 +12V
408 12 NC
409
410
411 PINOUT CONNECTOR V
412 ------------------
413
414 1 GND
415 2 RED
416 3 GREEN
417 4 BLUE
418 5 SYNC
419 6 NC
420 7 NC
421
422
423
424
425
426 BShark custom chips
427 -------------------
428
429 TC0220IOC (known io chip)
430 TC0260DAR (known palette chip)
431 TC0400YSC substitute for TC0140SYT when 68K writes directly to YM2610 ??
432 TC0170ABT = same in Dblaxle
433 TC0100SCN (known tilemap chip)
434 TC0370MSO = same in Dblaxle, Motion Objects ?
435 TC0300FLA = same in Dblaxle
436 TC0270MOD ???
437 TC0380BSH ???
438 TC0150ROD (known road generator chip)
439
440
441 DblAxle custom chip info
442 ------------------------
443
444 TC0150ROD is next to road lines gfx chip [c78-09] but also
445 c78-15, an unused 256 byte rom. Perhaps this contains color
446 info for the road lines? Raine makes an artificial "pal map"
447 for the road, AFAICS.
448
449 TC0170ABT is between 68000 CPUA and the TC0140SYT. Next to
450 that is the Z80A, the YM2610, and the three adpcm roms.
451
452 On the graphics board we have the TC0480SCP next to its two
453 scr gfx roms: c78-10 & 11.
454
455 The STY object mapping rom is next to c78-25, an unused
456 0x10000 byte rom which compresses by 98%. To right of this
457 are TC0370MSO (motion objects?), then TC0300FLA.
458
459 Below c78-25 are two unused 1K roms: c84-10 and c84-11.
460 Below right is another unused 256 byte rom, c78-21.
461 (At the bottom are the 5 obj gfx roms.)
462
463 K11000635A
464 ----------
465 43256 c78-11 SCN1 CHR
466 43256 c78-10 SCN0 CHR TC0480SCP
467
468 c78-04
469 STY ROM
470 c78-25 TC0370MSO TC0300FLA
471 c84-10
472 c84-11 c78-21
473
474 43256 43256 43256 43256
475 43256 43256 43256 43256 43256
476 43256 43256 43256 43256 43256
477 43256 43256
478
479 c78-05L
480 c78-06 OBJ1
481 c78-05H
482
483 c78-08 OBJ3 c78-07 OBJ2
484
485 Power Wheels
486 ------------
487
488 Cpu PCB
489
490 CPU: 68000-16 x2
491 Sound: Z80-A
492 YM2610
493 OSC: 32.000MHz
494 Chips: TC0140SYT
495 TC0150ROD
496 TC0170ABT
497 TC0310FAM
498 TC0510NIO
499
500
501 Video PCB
502
503 OSC: 26.686MHz
504 Chips: TC0260DAR
505 TC0270MOD
506 TC0300FLA
507 TC0370MSO
508 TC0380BSH
509 TC0480SCP
510
511
512 LAN interface board
513
514 OSC: 40.000MHz
515 16.000MHz
516 Chips: uPD72105C
517
518
519 TODO Lists
520 ==========
521
522 Add cpu idle time skip to improve speed.
523
524 Is the no-Z80 sound handling correct: some voices in Bshark
525 aren't that clear.
526
527 Make taitosnd cpu-independent so we can restore Z80 to CPU3.
528
529 Cockpit hardware
530
531 DIPs - e.g. coinage
532
533 Sprite zooming - dimensions may be got from the unused 64K rom
534 on the video board (it's in the right place for it, both with
535 Contcirc video chips and the chips used on later boards). These
536 64K roms compare as follows - makes sense as these groups
537 comprise the three sprite layout types used in TaitoZ games:
538
539 Contcirc / Enforce =IDENTICAL
540 ChaseHQ / Nightstr =IDENTICAL
541 Bshark / SCI / Dblaxle =IDENTICAL
542
543 Missing from Aquajack / Spacegun dumps (I would bet they are
544 the same as Bshark). Can anyone dump these two along with any
545 proms on the video board?
546
547
548 Continental Circus
549 ------------------
550
551 Road priority incompletely understood - e.g. start barrier should
552 be darkening LH edge of road as well as RH edge.
553
554 The 8 level accel / brake should be possible to control with
555 analogue pedal. Don't think mame can do this.
556
557 Junk (?) stuff often written in high byte of sound word.
558
559 Speculative YM2610 a/b/c channel filtering as these may be
560 outputs to subwoofer (vibration). They sound better, anyway.
561
562
563 Chasehq
564 -------
565
566 Motor CPU: appears to be identical to one in Topspeed.
567
568 [Used to have junk sprites when you reach criminal car (the 'criminals
569 here' sprite): two bits above tile number are used. Are these
570 meaningless, or is some effect missing?]
571
572
573 Enforce
574 -------
575
576 Test mode - SHIFT: LO/HI is not understood (appears to depend on Demo
577 Sound DSW)
578
579 Landscape in the background can be made to scroll rapidly with DSW.
580 True to original?
581
582 Some layer offsets are out a little.
583
584
585 Battle Shark
586 ------------
587
588 Is road on the road stages correct? Hard to tell.
589
590 Does the original have the "seeking" crosshair effect, making it a
591 challenge to control?
592
593
594 SCI
595 ---
596
597 Road seems ok, but are the green bushes in round 1 a little too far
598 to the edge of the interroad verge?
599
600 Sprite frames were plotted in opposite order so flickered. Reversing
601 this has lost us alternate frames: probably need to buffer sprite
602 ram by one frame to solve this?
603
604
605 Night Striker
606 -------------
607
608 Road A/B priority problems will manifest in the choice tunnels with,
609 one or the other having higher priority in top and bottom halves. Can
610 someone provide a sequence of screenshots showing exactly what happens
611 at the road split point.
612
613 Strange page in test mode which lets you alter all sorts of settings,
614 may relate to sit-in cockpit version. Can't find a dip that disables
615 this.
616
617 Does a variety of writes to TC0220IOC offset 3... significant?
618
619
620 Aqua Jack
621 ---------
622
623 Sprites left on screen under hiscore table. Deliberate? Or is there
624 a sprite disable bit somewhere.
625
626 Should road body be largely transparent as I've implemented it?
627
628 Sprite/sprite priorities often look bad. Sprites go to max size for
629 a frame before they explode - surely a bug.
630
631 Hangs briefly fairly often without massive cpu interleaving (500).
632 Keys aren't very responsive in test mode.
633
634 The problem code is this:
635
636 CPUA
637 $1fe02 hangs waiting for ($6002,A5) in shared ram to be zero.
638
639 CPUB
640 $1056 calls $11ea routine which starts by setting ($6002,A5) non-
641 zero. At end (after $1218 waiting for a bit from sound comm port)
642 it alters ($6002,A5) to zero (but this value lasts briefly!).
643
644 Unless context rapidly switches back to cpua this change is missed
645 because $11ea gets called again *very* rapidly at times when sounds
646 are being written [that's when the problem manifested].
647
648 $108a-c2 reads 0x20 bytes from unmapped area, not sure
649 what it's doing. Perhaps this machine had some optional
650 exotic input device...
651
652
653 Spacegun
654 --------
655
656 Problem with the zoomed sprites not matching up very well
657 when forming the background. They jerk a bit relative to
658 each other... probably a cpu sync thing, perhaps also some
659 fine-tuning required on the zoomed sprite dimension calcs.
660
661 Light gun interrupt timing arbitrary.
662
663
664 Double Axle
665 -----------
666
667 Road occasionally has incorrectly unclipped line appearing at top
668 (ice stage). Also road 'ghost' often remains on screen - also an
669 interrupt issue I presume.
670
671 Double Axle has poor sound: one ADPCM rom should be twice as long?
672 [In log we saw stuff like this, suggesting extra ADPCM rom needed:
673 YM2610: ADPCM-A end out of range: $001157ff
674 YM2610: ADPCM-A start out of range: $00111f00]
675
676 Various sprites go missing e.g. mountains half way through cross
677 country course. Fall off the ledge and crash and you will see
678 the explosion sprites make other mountain sprites vanish, as
679 though their entries in spriteram are being overwritten. (Perhaps
680 an int6 timing/number issue: sprites seem to be ChaseHQ2ish with
681 a spriteframe toggle - currently this never changes which may be
682 wrong.)
683
684 ***************************************************************************/
685
686 #include "driver.h"
687 #include "state.h"
688 #include "cpu/m68000/m68000.h"
689 #include "machine/eeprom.h"
690 #include "vidhrdw/generic.h"
691 #include "vidhrdw/taitoic.h"
692 #include "sndhrdw/taitosnd.h"
693
694 VIDEO_START( taitoz );
695 VIDEO_START( spacegun );
696
697 VIDEO_UPDATE( contcirc );
698 VIDEO_UPDATE( chasehq );
699 VIDEO_UPDATE( bshark );
700 VIDEO_UPDATE( sci );
701 VIDEO_UPDATE( aquajack );
702 VIDEO_UPDATE( spacegun );
703 VIDEO_UPDATE( dblaxle );
704
705 READ16_HANDLER ( sci_spriteframe_r );
706 WRITE16_HANDLER( sci_spriteframe_w );
707
708 // These TC0150ROD prototypes will go in taitoic.h //
709 READ16_HANDLER ( TC0150ROD_word_r ); /* Road generator */
710 WRITE16_HANDLER( TC0150ROD_word_w );
711
712 static UINT16 cpua_ctrl = 0xff;
713 static int sci_int6 = 0;
714 static int dblaxle_int6 = 0;
715 static int ioc220_port = 0;
716 static data16_t eep_latch = 0;
717
718 //static data16_t *taitoz_ram;
719 //static data16_t *motor_ram;
720
721 static size_t taitoz_sharedram_size;
722 data16_t *taitoz_sharedram; /* read externally to draw Spacegun crosshair */
723
READ16_HANDLER(sharedram_r)724 static READ16_HANDLER( sharedram_r )
725 {
726 return taitoz_sharedram[offset];
727 }
728
WRITE16_HANDLER(sharedram_w)729 static WRITE16_HANDLER( sharedram_w )
730 {
731 COMBINE_DATA(&taitoz_sharedram[offset]);
732 }
733
parse_control(void)734 static void parse_control(void)
735 {
736 /* bit 0 enables cpu B */
737 /* however this fails when recovering from a save state
738 if cpu B is disabled !! */
739 cpu_set_reset_line(2,(cpua_ctrl &0x1) ? CLEAR_LINE : ASSERT_LINE);
740
741 }
742
parse_control_noz80(void)743 static void parse_control_noz80(void)
744 {
745 /* bit 0 enables cpu B */
746 /* however this fails when recovering from a save state
747 if cpu B is disabled !! */
748 cpu_set_reset_line(1,(cpua_ctrl &0x1) ? CLEAR_LINE : ASSERT_LINE);
749
750 }
751
WRITE16_HANDLER(cpua_ctrl_w)752 static WRITE16_HANDLER( cpua_ctrl_w ) /* assumes Z80 sandwiched between 68Ks */
753 {
754 if ((data &0xff00) && ((data &0xff) == 0))
755 data = data >> 8; /* for Wgp */
756 cpua_ctrl = data;
757
758 parse_control();
759
760 logerror("CPU #0 PC %06x: write %04x to cpu control\n",activecpu_get_pc(),data);
761 }
762
WRITE16_HANDLER(cpua_noz80_ctrl_w)763 static WRITE16_HANDLER( cpua_noz80_ctrl_w ) /* assumes no Z80 */
764 {
765 if ((data &0xff00) && ((data &0xff) == 0))
766 data = data >> 8; /* for Wgp */
767 cpua_ctrl = data;
768
769 parse_control_noz80();
770
771 logerror("CPU #0 PC %06x: write %04x to cpu control\n",activecpu_get_pc(),data);
772 }
773
774
775 /***********************************************************
776 INTERRUPTS
777 ***********************************************************/
778
779 /* 68000 A */
780
taitoz_interrupt6(int x)781 static void taitoz_interrupt6(int x)
782 {
783 cpu_set_irq_line(0,6,HOLD_LINE);
784 }
785
786 /* 68000 B */
787
788 #if 0
789 static void taitoz_cpub_interrupt5(int x)
790 {
791 cpu_set_irq_line(2,5,HOLD_LINE); /* assumes Z80 sandwiched between the 68Ks */
792 }
793 #endif
794
taitoz_sg_cpub_interrupt5(int x)795 static void taitoz_sg_cpub_interrupt5(int x)
796 {
797 cpu_set_irq_line(1,5,HOLD_LINE); /* assumes no Z80 */
798 }
799
800 #if 0
801 static void taitoz_cpub_interrupt6(int x)
802 {
803 cpu_set_irq_line(2,6,HOLD_LINE); /* assumes Z80 sandwiched between the 68Ks */
804 }
805 #endif
806
807
808 /***** Routines for particular games *****/
809
INTERRUPT_GEN(sci_interrupt)810 static INTERRUPT_GEN( sci_interrupt )
811 {
812 /* Need 2 int4's per int6 else (-$6b63,A5) never set to 1 which
813 causes all sprites to vanish! Spriteram has areas for 2 frames
814 so in theory only needs updating every other frame. */
815
816 sci_int6 = !sci_int6;
817
818 if (sci_int6)
819 timer_set(TIME_IN_CYCLES(200000-500,0),0, taitoz_interrupt6);
820 cpu_set_irq_line(0, 4, HOLD_LINE);
821 }
822
823 /* Double Axle seems to keep only 1 sprite frame in sprite ram,
824 which is probably wrong. Game seems to work with no int 6's
825 at all. Cpu control byte has 0,4,8,c poked into 2nd nibble
826 and it seems possible this should be causing int6's ? */
827
INTERRUPT_GEN(dblaxle_interrupt)828 static INTERRUPT_GEN( dblaxle_interrupt )
829 {
830 // Unsure how many int6's per frame, copy SCI for now
831 dblaxle_int6 = !dblaxle_int6;
832
833 if (dblaxle_int6)
834 timer_set(TIME_IN_CYCLES(200000-500,0),0, taitoz_interrupt6);
835
836 cpu_set_irq_line(0, 4, HOLD_LINE);
837 }
838
INTERRUPT_GEN(dblaxle_cpub_interrupt)839 static INTERRUPT_GEN( dblaxle_cpub_interrupt )
840 {
841 // Unsure how many int6's per frame
842 timer_set(TIME_IN_CYCLES(200000-500,0),0, taitoz_interrupt6);
843 cpu_set_irq_line(2, 4, HOLD_LINE);
844 }
845
846
847 /******************************************************************
848 EEPROM
849 ******************************************************************/
850
851 static data8_t default_eeprom[128]=
852 {
853 0x00,0x00,0x00,0xff,0x00,0x01,0x41,0x41,0x00,0x00,0x00,0xff,0x00,0x00,0xf0,0xf0,
854 0x00,0x00,0x00,0xff,0x00,0x01,0x41,0x41,0x00,0x00,0x00,0xff,0x00,0x00,0xf0,0xf0,
855 0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x01,0x40,0x00,0x00,0x00,0xf0,0x00,
856 0x00,0x01,0x42,0x85,0x00,0x00,0xf1,0xe3,0x00,0x01,0x40,0x00,0x00,0x00,0xf0,0x00,
857 0x00,0x01,0x42,0x85,0x00,0x00,0xf1,0xe3,0xcc,0xcb,0xff,0xff,0xff,0xff,0xff,0xff,
858 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
859 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
860 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
861 };
862
863 static struct EEPROM_interface eeprom_interface =
864 {
865 6, /* address bits */
866 16, /* data bits */
867 "0110", /* read command */
868 "0101", /* write command */
869 "0111", /* erase command */
870 "0100000000", /* lock command */
871 "0100111111" /* unlock command */
872 };
873
NVRAM_HANDLER(spacegun)874 static NVRAM_HANDLER( spacegun )
875 {
876 if (read_or_write)
877 EEPROM_save(file);
878 else
879 {
880 EEPROM_init(&eeprom_interface);
881
882 if (file)
883 EEPROM_load(file);
884 else
885 EEPROM_set_data(default_eeprom,128); /* Default the gun setup values */
886 }
887 }
888
eeprom_r(void)889 static int eeprom_r(void)
890 {
891 return (EEPROM_read_bit() & 0x01)<<7;
892 }
893
894 #if 0
895 static READ16_HANDLER( eep_latch_r )
896 {
897 return eep_latch;
898 }
899 #endif
900
WRITE16_HANDLER(spacegun_output_bypass_w)901 static WRITE16_HANDLER( spacegun_output_bypass_w )
902 {
903 switch (offset)
904 {
905 case 0x03:
906
907 /* 0000xxxx (unused)
908 000x0000 eeprom reset (active low)
909 00x00000 eeprom clock
910 0x000000 eeprom data
911 x0000000 (unused) */
912
913 COMBINE_DATA(&eep_latch);
914 EEPROM_write_bit(data & 0x40);
915 EEPROM_set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
916 EEPROM_set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
917 break;
918
919 default:
920 TC0220IOC_w( offset,data ); /* might be a 510NIO ! */
921 }
922 }
923
924
925 /**********************************************************
926 GAME INPUTS
927 **********************************************************/
928
READ16_HANDLER(contcirc_input_bypass_r)929 static READ16_HANDLER( contcirc_input_bypass_r )
930 {
931 /* Bypass TC0220IOC controller for analog input */
932
933 data8_t port = TC0220IOC_port_r(0); /* read port number */
934 int steer = 0;
935 int fake = input_port_6_word_r(0,0);
936
937 if (!(fake &0x10)) /* Analogue steer (the real control method) */
938 {
939 /* center around zero and reduce span to 0xc0 */
940 steer = ((input_port_5_word_r(0,0) - 0x80) * 0xc0) / 0x100;
941
942 }
943 else /* Digital steer */
944 {
945 if (fake &0x4)
946 {
947 steer = 0x60;
948 }
949 else if (fake &0x8)
950 {
951 steer = 0xff9f;
952 }
953 }
954
955 switch (port)
956 {
957 case 0x08:
958 return steer &0xff;
959
960 case 0x09:
961 return steer >> 8;
962
963 default:
964 return TC0220IOC_portreg_r( offset );
965 }
966 }
967
968
READ16_HANDLER(chasehq_input_bypass_r)969 static READ16_HANDLER( chasehq_input_bypass_r )
970 {
971 /* Bypass TC0220IOC controller for extra inputs */
972
973 data8_t port = TC0220IOC_port_r(0); /* read port number */
974 int steer = 0;
975 int fake = input_port_10_word_r(0,0);
976
977 if (!(fake &0x10)) /* Analogue steer (the real control method) */
978 {
979 /* center around zero */
980 steer = input_port_9_word_r(0,0) - 0x80;
981 }
982 else /* Digital steer */
983 {
984 if (fake &0x4)
985 {
986 steer = 0xff80;
987 }
988 else if (fake &0x8)
989 {
990 steer = 0x7f;
991 }
992 }
993
994 switch (port)
995 {
996 case 0x08:
997 return input_port_5_word_r(0,mem_mask);
998
999 case 0x09:
1000 return input_port_6_word_r(0,mem_mask);
1001
1002 case 0x0a:
1003 return input_port_7_word_r(0,mem_mask);
1004
1005 case 0x0b:
1006 return input_port_8_word_r(0,mem_mask);
1007
1008 case 0x0c:
1009 return steer &0xff;
1010
1011 case 0x0d:
1012 return steer >> 8;
1013
1014 default:
1015 return TC0220IOC_portreg_r( offset );
1016 }
1017 }
1018
1019
READ16_HANDLER(bshark_stick_r)1020 static READ16_HANDLER( bshark_stick_r )
1021 {
1022 switch (offset)
1023 {
1024 case 0x00:
1025 return input_port_5_word_r(0,mem_mask);
1026
1027 case 0x01:
1028 return input_port_6_word_r(0,mem_mask);
1029
1030 case 0x02:
1031 return input_port_7_word_r(0,mem_mask);
1032
1033 case 0x03:
1034 return input_port_8_word_r(0,mem_mask);
1035 }
1036
1037 logerror("CPU #0 PC %06x: warning - read unmapped stick offset %06x\n",activecpu_get_pc(),offset);
1038
1039 return 0xff;
1040 }
1041
1042 static data8_t nightstr_stick[128]=
1043 {
1044 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,
1045 0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,
1046 0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
1047 0xe8,0x00,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25,
1048 0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0x34,0x35,
1049 0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,
1050 0x46,0x47,0x48,0x49,0xb8
1051 };
1052
READ16_HANDLER(nightstr_stick_r)1053 static READ16_HANDLER( nightstr_stick_r )
1054 {
1055 switch (offset)
1056 {
1057 case 0x00:
1058 return nightstr_stick[(input_port_5_word_r(0,mem_mask) * 0x64) / 0x100];
1059
1060 case 0x01:
1061 return nightstr_stick[(input_port_6_word_r(0,mem_mask) * 0x64) / 0x100];
1062
1063 case 0x02:
1064 return input_port_7_word_r(0,mem_mask);
1065
1066 case 0x03:
1067 return input_port_8_word_r(0,mem_mask);
1068 }
1069
1070 logerror("CPU #0 PC %06x: warning - read unmapped stick offset %06x\n",activecpu_get_pc(),offset);
1071
1072 return 0xff;
1073 }
1074
WRITE16_HANDLER(bshark_stick_w)1075 static WRITE16_HANDLER( bshark_stick_w )
1076 {
1077 /* Each write invites a new interrupt as soon as the
1078 hardware has got the next a/d conversion ready. We set a token
1079 delay of 10000 cycles; our "coords" are always ready
1080 but we don't want CPUA to have an int6 before int4 is over (?)
1081 */
1082
1083 timer_set(TIME_IN_CYCLES(10000,0),0, taitoz_interrupt6);
1084 }
1085
1086
READ16_HANDLER(sci_steer_input_r)1087 static READ16_HANDLER( sci_steer_input_r )
1088 {
1089 int steer = 0;
1090 int fake = input_port_6_word_r(0,0);
1091
1092 if (!(fake &0x10)) /* Analogue steer (the real control method) */
1093 {
1094 /* center around zero and reduce span to 0xc0 */
1095 steer = ((input_port_5_word_r(0,0) - 0x80) * 0xc0) / 0x100;
1096 }
1097 else /* Digital steer */
1098 {
1099 if (fake &0x4)
1100 {
1101 steer = 0xffa0;
1102 }
1103 else if (fake &0x8)
1104 {
1105 steer = 0x5f;
1106 }
1107 }
1108
1109 switch (offset)
1110 {
1111 case 0x04:
1112 return (steer & 0xff);
1113
1114 case 0x05:
1115 return (steer & 0xff00) >> 8;
1116 }
1117
1118 logerror("CPU #0 PC %06x: warning - read unmapped steer input offset %06x\n",activecpu_get_pc(),offset);
1119
1120 return 0xff;
1121 }
1122
1123
READ16_HANDLER(spacegun_input_bypass_r)1124 static READ16_HANDLER( spacegun_input_bypass_r )
1125 {
1126 switch (offset)
1127 {
1128 case 0x03:
1129 return eeprom_r();
1130
1131 default:
1132 return TC0220IOC_r( offset ); /* might be a 510NIO ! */
1133 }
1134 }
1135
READ16_HANDLER(spacegun_lightgun_r)1136 static READ16_HANDLER( spacegun_lightgun_r )
1137 {
1138 switch (offset)
1139 {
1140 case 0x00:
1141 return input_port_5_word_r(0,mem_mask); /* P1X */
1142
1143 case 0x01:
1144 return input_port_6_word_r(0,mem_mask); /* P1Y */
1145
1146 case 0x02:
1147 return input_port_7_word_r(0,mem_mask); /* P2X */
1148
1149 case 0x03:
1150 return input_port_8_word_r(0,mem_mask); /* P2Y */
1151 }
1152
1153 return 0x0;
1154 }
1155
WRITE16_HANDLER(spacegun_lightgun_w)1156 static WRITE16_HANDLER( spacegun_lightgun_w )
1157 {
1158 /* Each write invites a new lightgun interrupt as soon as the
1159 hardware has got the next coordinate ready. We set a token
1160 delay of 10000 cycles; our "lightgun" coords are always ready
1161 but we don't want CPUB to have an int5 before int4 is over (?).
1162
1163 Four lightgun interrupts happen before the collected coords
1164 are moved to shared ram where CPUA can use them. */
1165
1166 timer_set(TIME_IN_CYCLES(10000,0),0, taitoz_sg_cpub_interrupt5);
1167 }
1168
1169
READ16_HANDLER(dblaxle_steer_input_r)1170 static READ16_HANDLER( dblaxle_steer_input_r )
1171 {
1172 int steer = 0;
1173 int fake = input_port_6_word_r(0,0);
1174
1175 if (!(fake &0x10)) /* Analogue steer (the real control method) */
1176 {
1177 /* center around zero and reduce span to 0x80 */
1178 steer = ((input_port_5_word_r(0,0) - 0x80) * 0x80) / 0x100;
1179 }
1180 else /* Digital steer */
1181 {
1182 if (fake &0x4)
1183 {
1184 steer = 0xffc0;
1185 }
1186 else if (fake &0x8)
1187 {
1188 steer = 0x3f;
1189 }
1190 }
1191
1192 switch (offset)
1193 {
1194 case 0x04:
1195 return steer >> 8;
1196
1197 case 0x05:
1198 return steer &0xff;
1199 }
1200
1201 logerror("CPU #0 PC %06x: warning - read unmapped steer input offset %02x\n",activecpu_get_pc(),offset);
1202 return 0x00;
1203 }
1204
1205
READ16_HANDLER(chasehq_motor_r)1206 static READ16_HANDLER( chasehq_motor_r )
1207 {
1208 switch (offset)
1209 {
1210 case 0x0:
1211 return (rand() &0xff); /* motor status ?? */
1212
1213 case 0x101:
1214 return 0x55; /* motor cpu status ? */
1215
1216 default:
1217 logerror("CPU #0 PC %06x: warning - read motor cpu %03x\n",activecpu_get_pc(),offset);
1218 return 0;
1219 }
1220 }
1221
WRITE16_HANDLER(chasehq_motor_w)1222 static WRITE16_HANDLER( chasehq_motor_w )
1223 {
1224 /* Writes $e00000-25 and $e00200-219 */
1225
1226 logerror("CPU #0 PC %06x: warning - write %04x to motor cpu %03x\n",activecpu_get_pc(),data,offset);
1227
1228 }
1229
READ16_HANDLER(aquajack_unknown_r)1230 static READ16_HANDLER( aquajack_unknown_r )
1231 {
1232 return 0xff;
1233 }
1234
1235
1236 /*****************************************************
1237 SOUND
1238 *****************************************************/
1239
1240 static int banknum = -1;
1241
reset_sound_region(void)1242 static void reset_sound_region(void) /* assumes Z80 sandwiched between 68Ks */
1243 {
1244 cpu_setbank( 10, memory_region(REGION_CPU2) + (banknum * 0x4000) + 0x10000 );
1245 }
1246
WRITE_HANDLER(sound_bankswitch_w)1247 static WRITE_HANDLER( sound_bankswitch_w )
1248 {
1249 banknum = (data - 1) & 7;
1250 reset_sound_region();
1251 }
1252
WRITE16_HANDLER(taitoz_sound_w)1253 static WRITE16_HANDLER( taitoz_sound_w )
1254 {
1255 if (offset == 0)
1256 taitosound_port_w (0, data & 0xff);
1257 else if (offset == 1)
1258 taitosound_comm_w (0, data & 0xff);
1259
1260 #ifdef MAME_DEBUG
1261 // if (data & 0xff00)
1262 // {
1263 // char buf[80];
1264 //
1265 // sprintf(buf,"taitoz_sound_w to high byte: %04x",data);
1266 // usrintf_showmessage(buf);
1267 // }
1268 #endif
1269 }
1270
READ16_HANDLER(taitoz_sound_r)1271 static READ16_HANDLER( taitoz_sound_r )
1272 {
1273 if (offset == 1)
1274 return ((taitosound_comm_r (0) & 0xff));
1275 else return 0;
1276 }
1277
1278 #if 0
1279 static WRITE16_HANDLER( taitoz_msb_sound_w )
1280 {
1281 if (offset == 0)
1282 taitosound_port_w (0,(data >> 8) & 0xff);
1283 else if (offset == 1)
1284 taitosound_comm_w (0,(data >> 8) & 0xff);
1285
1286 #ifdef MAME_DEBUG
1287 if (data & 0xff)
1288 {
1289 char buf[80];
1290
1291 sprintf(buf,"taitoz_msb_sound_w to low byte: %04x",data);
1292 usrintf_showmessage(buf);
1293 }
1294 #endif
1295 }
1296
1297 static READ16_HANDLER( taitoz_msb_sound_r )
1298 {
1299 if (offset == 1)
1300 return ((taitosound_comm_r (0) & 0xff) << 8);
1301 else return 0;
1302 }
1303 #endif
1304
1305 /***********************************************************
1306 MEMORY STRUCTURES
1307 ***********************************************************/
1308
1309
MEMORY_READ16_START(contcirc_readmem)1310 static MEMORY_READ16_START( contcirc_readmem )
1311 { 0x000000, 0x03ffff, MRA16_ROM },
1312 { 0x080000, 0x083fff, MRA16_RAM }, /* main CPUA ram */
1313 { 0x084000, 0x087fff, sharedram_r },
1314 { 0x100000, 0x100007, TC0110PCR_word_r }, /* palette */
1315 { 0x200000, 0x20ffff, TC0100SCN_word_0_r }, /* tilemaps */
1316 { 0x220000, 0x22000f, TC0100SCN_ctrl_word_0_r },
1317 { 0x300000, 0x301fff, TC0150ROD_word_r }, /* "root ram" */
1318 { 0x400000, 0x4006ff, MRA16_RAM }, /* spriteram */
1319 MEMORY_END
1320
1321 static MEMORY_WRITE16_START( contcirc_writemem )
1322 { 0x000000, 0x03ffff, MWA16_ROM },
1323 { 0x080000, 0x083fff, MWA16_RAM },
1324 { 0x084000, 0x087fff, sharedram_w, &taitoz_sharedram, &taitoz_sharedram_size },
1325 // { 0x090000, 0x090001, MWA16_NOP }, /* ??? */
1326 { 0x100000, 0x100007, TC0110PCR_step1_rbswap_word_w }, /* palette */
1327 { 0x200000, 0x20ffff, TC0100SCN_word_0_w }, /* tilemaps */
1328 { 0x220000, 0x22000f, TC0100SCN_ctrl_word_0_w },
1329 { 0x300000, 0x301fff, TC0150ROD_word_w }, /* "root ram" */
1330 { 0x400000, 0x4006ff, MWA16_RAM, &spriteram16, &spriteram_size },
1331 MEMORY_END
1332
1333 static MEMORY_READ16_START( contcirc_cpub_readmem )
1334 { 0x000000, 0x03ffff, MRA16_ROM },
1335 { 0x080000, 0x083fff, MRA16_RAM },
1336 { 0x084000, 0x087fff, sharedram_r },
1337 { 0x100000, 0x100001, contcirc_input_bypass_r },
1338 { 0x100002, 0x100003, TC0220IOC_halfword_port_r }, /* (actually game uses TC040IOC) */
1339 { 0x200000, 0x200003, taitoz_sound_r },
1340 MEMORY_END
1341
1342 static MEMORY_WRITE16_START( contcirc_cpub_writemem )
1343 { 0x000000, 0x03ffff, MWA16_ROM },
1344 { 0x080000, 0x083fff, MWA16_RAM },
1345 { 0x084000, 0x087fff, sharedram_w, &taitoz_sharedram },
1346 { 0x100000, 0x100001, TC0220IOC_halfword_portreg_w },
1347 { 0x100002, 0x100003, TC0220IOC_halfword_port_w },
1348 { 0x200000, 0x200003, taitoz_sound_w },
1349 MEMORY_END
1350
1351
1352 static MEMORY_READ16_START( chasehq_readmem )
1353 { 0x000000, 0x07ffff, MRA16_ROM },
1354 { 0x100000, 0x107fff, MRA16_RAM }, /* main CPUA ram */
1355 { 0x108000, 0x10bfff, sharedram_r },
1356 { 0x10c000, 0x10ffff, MRA16_RAM }, /* extra CPUA ram */
1357 { 0x400000, 0x400001, chasehq_input_bypass_r },
1358 { 0x400002, 0x400003, TC0220IOC_halfword_port_r },
1359 { 0x820000, 0x820003, taitoz_sound_r },
1360 { 0xa00000, 0xa00007, TC0110PCR_word_r }, /* palette */
1361 { 0xc00000, 0xc0ffff, TC0100SCN_word_0_r }, /* tilemaps */
1362 { 0xc20000, 0xc2000f, TC0100SCN_ctrl_word_0_r },
1363 { 0xd00000, 0xd007ff, MRA16_RAM }, /* spriteram */
1364 { 0xe00000, 0xe003ff, chasehq_motor_r }, /* motor cpu */
1365 MEMORY_END
1366
1367 static MEMORY_WRITE16_START( chasehq_writemem )
1368 { 0x000000, 0x07ffff, MWA16_ROM },
1369 { 0x100000, 0x107fff, MWA16_RAM },
1370 { 0x108000, 0x10bfff, sharedram_w, &taitoz_sharedram, &taitoz_sharedram_size },
1371 { 0x10c000, 0x10ffff, MWA16_RAM },
1372 { 0x400000, 0x400001, TC0220IOC_halfword_portreg_w },
1373 { 0x400002, 0x400003, TC0220IOC_halfword_port_w },
1374 { 0x800000, 0x800001, cpua_ctrl_w },
1375 { 0x820000, 0x820003, taitoz_sound_w },
1376 { 0xa00000, 0xa00007, TC0110PCR_step1_word_w }, /* palette */
1377 { 0xc00000, 0xc0ffff, TC0100SCN_word_0_w }, /* tilemaps */
1378 { 0xc20000, 0xc2000f, TC0100SCN_ctrl_word_0_w },
1379 { 0xd00000, 0xd007ff, MWA16_RAM, &spriteram16, &spriteram_size },
1380 { 0xe00000, 0xe003ff, chasehq_motor_w }, /* motor cpu */
1381 MEMORY_END
1382
1383 static MEMORY_READ16_START( chq_cpub_readmem )
1384 { 0x000000, 0x01ffff, MRA16_ROM },
1385 { 0x100000, 0x103fff, MRA16_RAM },
1386 { 0x108000, 0x10bfff, sharedram_r },
1387 { 0x800000, 0x801fff, TC0150ROD_word_r },
1388 MEMORY_END
1389
1390 static MEMORY_WRITE16_START( chq_cpub_writemem )
1391 { 0x000000, 0x01ffff, MWA16_ROM },
1392 { 0x100000, 0x103fff, MWA16_RAM },
1393 { 0x108000, 0x10bfff, sharedram_w, &taitoz_sharedram },
1394 { 0x800000, 0x801fff, TC0150ROD_word_w },
1395 MEMORY_END
1396
1397
1398 static MEMORY_READ16_START( enforce_readmem )
1399 { 0x000000, 0x03ffff, MRA16_ROM },
1400 { 0x100000, 0x103fff, MRA16_RAM }, /* main CPUA ram */
1401 { 0x104000, 0x107fff, sharedram_r },
1402 { 0x300000, 0x3006ff, MRA16_RAM }, /* spriteram */
1403 { 0x400000, 0x401fff, TC0150ROD_word_r }, /* "root ram" ??? */
1404 { 0x500000, 0x500007, TC0110PCR_word_r }, /* palette */
1405 { 0x600000, 0x60ffff, TC0100SCN_word_0_r }, /* tilemaps */
1406 { 0x620000, 0x62000f, TC0100SCN_ctrl_word_0_r },
1407 MEMORY_END
1408
1409 static MEMORY_WRITE16_START( enforce_writemem )
1410 { 0x000000, 0x03ffff, MWA16_ROM },
1411 { 0x100000, 0x103fff, MWA16_RAM },
1412 { 0x104000, 0x107fff, sharedram_w, &taitoz_sharedram, &taitoz_sharedram_size },
1413 { 0x200000, 0x200001, cpua_ctrl_w }, // works without?
1414 { 0x300000, 0x3006ff, MWA16_RAM, &spriteram16, &spriteram_size },
1415 { 0x400000, 0x401fff, TC0150ROD_word_w }, /* "root ram" ??? */
1416 { 0x500000, 0x500007, TC0110PCR_step1_rbswap_word_w }, /* palette */
1417 { 0x600000, 0x60ffff, TC0100SCN_word_0_w }, /* tilemaps */
1418 { 0x620000, 0x62000f, TC0100SCN_ctrl_word_0_w },
1419 MEMORY_END
1420
1421 static MEMORY_READ16_START( enforce_cpub_readmem )
1422 { 0x000000, 0x03ffff, MRA16_ROM },
1423 { 0x100000, 0x103fff, MRA16_RAM },
1424 { 0x104000, 0x107fff, sharedram_r },
1425 { 0x200000, 0x200003, taitoz_sound_r },
1426 { 0x300000, 0x300001, TC0220IOC_halfword_portreg_r },
1427 { 0x300002, 0x300003, TC0220IOC_halfword_port_r }, /* (actually game uses TC040IOC ?) */
1428 MEMORY_END
1429
1430 static MEMORY_WRITE16_START( enforce_cpub_writemem )
1431 { 0x000000, 0x03ffff, MWA16_ROM },
1432 { 0x100000, 0x103fff, MWA16_RAM },
1433 { 0x104000, 0x107fff, sharedram_w, &taitoz_sharedram },
1434 { 0x200000, 0x200003, taitoz_sound_w },
1435 { 0x300000, 0x300001, TC0220IOC_halfword_portreg_w },
1436 { 0x300002, 0x300003, TC0220IOC_halfword_port_w },
1437 MEMORY_END
1438
1439
1440 static MEMORY_READ16_START( bshark_readmem )
1441 { 0x000000, 0x07ffff, MRA16_ROM },
1442 { 0x100000, 0x10ffff, MRA16_RAM }, /* main CPUA ram */
1443 { 0x110000, 0x113fff, sharedram_r },
1444 { 0x400000, 0x40000f, TC0220IOC_halfword_r },
1445 { 0x800000, 0x800007, bshark_stick_r },
1446 { 0xa00000, 0xa01fff, paletteram16_word_r }, /* palette */
1447 { 0xc00000, 0xc00fff, MRA16_RAM }, /* spriteram */
1448 { 0xd00000, 0xd0ffff, TC0100SCN_word_0_r }, /* tilemaps */
1449 { 0xd20000, 0xd2000f, TC0100SCN_ctrl_word_0_r },
1450 MEMORY_END
1451
1452 static MEMORY_WRITE16_START( bshark_writemem )
1453 { 0x000000, 0x07ffff, MWA16_ROM },
1454 { 0x100000, 0x10ffff, MWA16_RAM },
1455 { 0x110000, 0x113fff, sharedram_w, &taitoz_sharedram, &taitoz_sharedram_size },
1456 { 0x400000, 0x40000f, TC0220IOC_halfword_w },
1457 { 0x600000, 0x600001, cpua_noz80_ctrl_w },
1458 { 0x800000, 0x800007, bshark_stick_w },
1459 { 0xa00000, 0xa01fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
1460 { 0xc00000, 0xc00fff, MWA16_RAM, &spriteram16, &spriteram_size },
1461 { 0xd00000, 0xd0ffff, TC0100SCN_word_0_w }, /* tilemaps */
1462 { 0xd20000, 0xd2000f, TC0100SCN_ctrl_word_0_w },
1463 MEMORY_END
1464
1465 static MEMORY_READ16_START( bshark_cpub_readmem )
1466 { 0x000000, 0x07ffff, MRA16_ROM },
1467 { 0x108000, 0x10bfff, MRA16_RAM },
1468 { 0x110000, 0x113fff, sharedram_r },
1469 // { 0x40000a, 0x40000b, taitoz_unknown_r }, // ???
1470 { 0x600000, 0x600001, YM2610_status_port_0_A_lsb_r },
1471 { 0x600002, 0x600003, YM2610_read_port_0_lsb_r },
1472 { 0x600004, 0x600005, YM2610_status_port_0_B_lsb_r },
1473 { 0x60000c, 0x60000d, MRA16_NOP },
1474 { 0x60000e, 0x60000f, MRA16_NOP },
1475 { 0x800000, 0x801fff, TC0150ROD_word_r }, /* "root ram" */
1476 MEMORY_END
1477
1478 static MEMORY_WRITE16_START( bshark_cpub_writemem )
1479 { 0x000000, 0x07ffff, MWA16_ROM },
1480 { 0x108000, 0x10bfff, MWA16_RAM },
1481 { 0x110000, 0x113fff, sharedram_w },
1482 // { 0x400000, 0x400007, MWA16_NOP }, // pan ???
1483 { 0x600000, 0x600001, YM2610_control_port_0_A_lsb_w },
1484 { 0x600002, 0x600003, YM2610_data_port_0_A_lsb_w },
1485 { 0x600004, 0x600005, YM2610_control_port_0_B_lsb_w },
1486 { 0x600006, 0x600007, YM2610_data_port_0_B_lsb_w },
1487 { 0x60000c, 0x60000d, MWA16_NOP }, // interrupt controller?
1488 { 0x60000e, 0x60000f, MWA16_NOP },
1489 { 0x800000, 0x801fff, TC0150ROD_word_w }, /* "root ram" */
1490 MEMORY_END
1491
1492
1493 static MEMORY_READ16_START( sci_readmem )
1494 { 0x000000, 0x07ffff, MRA16_ROM },
1495 { 0x100000, 0x107fff, MRA16_RAM }, /* main CPUA ram */
1496 { 0x108000, 0x10bfff, sharedram_r }, /* extent ?? */
1497 { 0x10c000, 0x10ffff, MRA16_RAM }, /* extra CPUA ram */
1498 { 0x200000, 0x20000f, TC0220IOC_halfword_r },
1499 { 0x200010, 0x20001f, sci_steer_input_r },
1500 { 0x420000, 0x420003, taitoz_sound_r },
1501 { 0x800000, 0x801fff, paletteram16_word_r },
1502 { 0xa00000, 0xa0ffff, TC0100SCN_word_0_r }, /* tilemaps */
1503 { 0xa20000, 0xa2000f, TC0100SCN_ctrl_word_0_r },
1504 { 0xc00000, 0xc03fff, MRA16_RAM }, /* spriteram */ // Raine draws only 0x1000
1505 { 0xc08000, 0xc08001, sci_spriteframe_r }, // debugging
1506 MEMORY_END
1507
1508 static MEMORY_WRITE16_START( sci_writemem )
1509 { 0x000000, 0x07ffff, MWA16_ROM },
1510 { 0x100000, 0x107fff, MWA16_RAM },
1511 { 0x108000, 0x10bfff, sharedram_w, &taitoz_sharedram, &taitoz_sharedram_size },
1512 { 0x10c000, 0x10ffff, MWA16_RAM },
1513 { 0x200000, 0x20000f, TC0220IOC_halfword_w },
1514 // { 0x400000, 0x400001, cpua_ctrl_w }, // ?? doesn't seem to fit what's written
1515 { 0x420000, 0x420003, taitoz_sound_w },
1516 { 0x800000, 0x801fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
1517 { 0xa00000, 0xa0ffff, TC0100SCN_word_0_w }, /* tilemaps */
1518 { 0xa20000, 0xa2000f, TC0100SCN_ctrl_word_0_w },
1519 { 0xc00000, 0xc03fff, MWA16_RAM, &spriteram16, &spriteram_size },
1520 { 0xc08000, 0xc08001, sci_spriteframe_w },
1521 MEMORY_END
1522
1523 static MEMORY_READ16_START( sci_cpub_readmem )
1524 { 0x000000, 0x01ffff, MRA16_ROM },
1525 { 0x200000, 0x203fff, MRA16_RAM },
1526 { 0x208000, 0x20bfff, sharedram_r },
1527 { 0xa00000, 0xa01fff, TC0150ROD_word_r },
1528 MEMORY_END
1529
1530 static MEMORY_WRITE16_START( sci_cpub_writemem )
1531 { 0x000000, 0x01ffff, MWA16_ROM },
1532 { 0x200000, 0x203fff, MWA16_RAM },
1533 { 0x208000, 0x20bfff, sharedram_w, &taitoz_sharedram },
1534 { 0xa00000, 0xa01fff, TC0150ROD_word_w },
1535 MEMORY_END
1536
1537
1538 static MEMORY_READ16_START( nightstr_readmem )
1539 { 0x000000, 0x07ffff, MRA16_ROM },
1540 { 0x100000, 0x10ffff, MRA16_RAM }, /* main CPUA ram */
1541 { 0x110000, 0x113fff, sharedram_r },
1542 { 0x400000, 0x40000f, TC0220IOC_halfword_r },
1543 { 0x820000, 0x820003, taitoz_sound_r },
1544 { 0xa00000, 0xa00007, TC0110PCR_word_r }, /* palette */
1545 { 0xc00000, 0xc0ffff, TC0100SCN_word_0_r }, /* tilemaps */
1546 { 0xc20000, 0xc2000f, TC0100SCN_ctrl_word_0_r },
1547 { 0xd00000, 0xd007ff, MRA16_RAM }, /* spriteram */
1548 { 0xe40000, 0xe40007, nightstr_stick_r },
1549 MEMORY_END
1550
1551 static MEMORY_WRITE16_START( nightstr_writemem )
1552 { 0x000000, 0x07ffff, MWA16_ROM },
1553 { 0x100000, 0x10ffff, MWA16_RAM },
1554 { 0x110000, 0x113fff, sharedram_w, &taitoz_sharedram, &taitoz_sharedram_size },
1555 { 0x400000, 0x40000f, TC0220IOC_halfword_w },
1556 { 0x800000, 0x800001, cpua_ctrl_w },
1557 { 0x820000, 0x820003, taitoz_sound_w },
1558 { 0xa00000, 0xa00007, TC0110PCR_step1_word_w }, /* palette */
1559 { 0xc00000, 0xc0ffff, TC0100SCN_word_0_w }, /* tilemaps */
1560 { 0xc20000, 0xc2000f, TC0100SCN_ctrl_word_0_w },
1561 { 0xd00000, 0xd007ff, MWA16_RAM, &spriteram16, &spriteram_size },
1562 // { 0xe00000, 0xe00001, MWA16_NOP }, /* ??? */
1563 // { 0xe00008, 0xe00009, MWA16_NOP }, /* ??? */
1564 // { 0xe00010, 0xe00011, MWA16_NOP }, /* ??? */
1565 { 0xe40000, 0xe40007, bshark_stick_w },
1566 MEMORY_END
1567
1568 static MEMORY_READ16_START( nightstr_cpub_readmem )
1569 { 0x000000, 0x03ffff, MRA16_ROM },
1570 { 0x100000, 0x103fff, MRA16_RAM },
1571 { 0x104000, 0x107fff, sharedram_r },
1572 { 0x800000, 0x801fff, TC0150ROD_word_r }, /* "root ram" */
1573 MEMORY_END
1574
1575 static MEMORY_WRITE16_START( nightstr_cpub_writemem )
1576 { 0x000000, 0x03ffff, MWA16_ROM },
1577 { 0x100000, 0x103fff, MWA16_RAM },
1578 { 0x104000, 0x107fff, sharedram_w, &taitoz_sharedram },
1579 { 0x800000, 0x801fff, TC0150ROD_word_w }, /* "root ram" */
1580 MEMORY_END
1581
1582
1583 static MEMORY_READ16_START( aquajack_readmem )
1584 { 0x000000, 0x03ffff, MRA16_ROM },
1585 { 0x100000, 0x103fff, MRA16_RAM }, /* main CPUA ram */
1586 { 0x104000, 0x107fff, sharedram_r },
1587 { 0x300000, 0x300007, TC0110PCR_word_r }, /* palette */
1588 { 0x800000, 0x801fff, TC0150ROD_word_r }, /* (like Contcirc, uses CPUA for road) */
1589 { 0xa00000, 0xa0ffff, TC0100SCN_word_0_r }, /* tilemaps */
1590 { 0xa20000, 0xa2000f, TC0100SCN_ctrl_word_0_r },
1591 { 0xc40000, 0xc403ff, MRA16_RAM }, /* spriteram */
1592 MEMORY_END
1593
1594 static MEMORY_WRITE16_START( aquajack_writemem )
1595 { 0x000000, 0x03ffff, MWA16_ROM },
1596 { 0x100000, 0x103fff, MWA16_RAM },
1597 { 0x104000, 0x107fff, sharedram_w, &taitoz_sharedram, &taitoz_sharedram_size },
1598 { 0x200000, 0x200001, cpua_ctrl_w }, // not needed, but it's probably like the others
1599 { 0x300000, 0x300007, TC0110PCR_step1_word_w }, /* palette */
1600 { 0x800000, 0x801fff, TC0150ROD_word_w },
1601 { 0xa00000, 0xa0ffff, TC0100SCN_word_0_w }, /* tilemaps */
1602 { 0xa20000, 0xa2000f, TC0100SCN_ctrl_word_0_w },
1603 { 0xc40000, 0xc403ff, MWA16_RAM, &spriteram16, &spriteram_size },
1604 MEMORY_END
1605
1606 static MEMORY_READ16_START( aquajack_cpub_readmem )
1607 { 0x000000, 0x03ffff, MRA16_ROM },
1608 { 0x100000, 0x103fff, MRA16_RAM },
1609 { 0x104000, 0x107fff, sharedram_r },
1610 { 0x200000, 0x20000f, TC0220IOC_halfword_r },
1611 { 0x300000, 0x300003, taitoz_sound_r },
1612 { 0x800800, 0x80083f, aquajack_unknown_r }, // Read regularly after write to 800800...
1613 // { 0x900000, 0x900007, taitoz_unknown_r },
1614 MEMORY_END
1615
1616 static MEMORY_WRITE16_START( aquajack_cpub_writemem )
1617 { 0x000000, 0x03ffff, MWA16_ROM },
1618 { 0x100000, 0x103fff, MWA16_RAM },
1619 { 0x104000, 0x107fff, sharedram_w, &taitoz_sharedram },
1620 { 0x200000, 0x20000f, TC0220IOC_halfword_w },
1621 { 0x300000, 0x300003, taitoz_sound_w },
1622 // { 0x800800, 0x800801, taitoz_unknown_w },
1623 // { 0x900000, 0x900007, taitoz_unknown_w },
1624 MEMORY_END
1625
1626
1627 static MEMORY_READ16_START( spacegun_readmem )
1628 { 0x000000, 0x07ffff, MRA16_ROM },
1629 { 0x30c000, 0x30ffff, MRA16_RAM }, /* local CPUA ram */
1630 { 0x310000, 0x31ffff, sharedram_r }, /* extent correct acc. to CPUB inits */
1631 { 0x500000, 0x5005ff, MRA16_RAM }, /* spriteram */
1632 { 0x900000, 0x90ffff, TC0100SCN_word_0_r }, /* tilemaps */
1633 { 0x920000, 0x92000f, TC0100SCN_ctrl_word_0_r },
1634 { 0xb00000, 0xb00007, TC0110PCR_word_r }, /* palette */
1635 MEMORY_END
1636
1637 static MEMORY_WRITE16_START( spacegun_writemem )
1638 { 0x000000, 0x07ffff, MWA16_ROM },
1639 { 0x30c000, 0x30ffff, MWA16_RAM },
1640 { 0x310000, 0x31ffff, sharedram_w, &taitoz_sharedram, &taitoz_sharedram_size },
1641 { 0x500000, 0x5005ff, MWA16_RAM, &spriteram16, &spriteram_size },
1642 { 0x900000, 0x90ffff, TC0100SCN_word_0_w }, /* tilemaps */
1643 { 0x920000, 0x92000f, TC0100SCN_ctrl_word_0_w },
1644 { 0xb00000, 0xb00007, TC0110PCR_step1_rbswap_word_w }, /* palette */
1645 MEMORY_END
1646
1647 static MEMORY_READ16_START( spacegun_cpub_readmem )
1648 { 0x000000, 0x03ffff, MRA16_ROM },
1649 { 0x20c000, 0x20ffff, MRA16_RAM }, /* local CPUB ram */
1650 { 0x210000, 0x21ffff, sharedram_r },
1651 { 0x800000, 0x80000f, spacegun_input_bypass_r },
1652 { 0xc00000, 0xc00001, YM2610_status_port_0_A_lsb_r },
1653 { 0xc00002, 0xc00003, YM2610_read_port_0_lsb_r },
1654 { 0xc00004, 0xc00005, YM2610_status_port_0_B_lsb_r },
1655 { 0xc0000c, 0xc0000d, MRA16_NOP },
1656 { 0xc0000e, 0xc0000f, MRA16_NOP },
1657 { 0xf00000, 0xf00007, spacegun_lightgun_r },
1658 MEMORY_END
1659
1660 static MEMORY_WRITE16_START( spacegun_cpub_writemem )
1661 { 0x000000, 0x03ffff, MWA16_ROM },
1662 { 0x20c000, 0x20ffff, MWA16_RAM },
1663 { 0x210000, 0x21ffff, sharedram_w },
1664 { 0x800000, 0x80000f, spacegun_output_bypass_w },
1665 { 0xc00000, 0xc00001, YM2610_control_port_0_A_lsb_w },
1666 { 0xc00002, 0xc00003, YM2610_data_port_0_A_lsb_w },
1667 { 0xc00004, 0xc00005, YM2610_control_port_0_B_lsb_w },
1668 { 0xc00006, 0xc00007, YM2610_data_port_0_B_lsb_w },
1669 { 0xc0000c, 0xc0000d, MWA16_NOP }, // interrupt controller?
1670 { 0xc0000e, 0xc0000f, MWA16_NOP },
1671 // { 0xc20000, 0xc20003, YM2610_???? }, /* Pan (acc. to Raine) */
1672 // { 0xe00000, 0xe00001, MWA16_NOP }, /* ??? */
1673 { 0xf00000, 0xf00007, spacegun_lightgun_w },
1674 MEMORY_END
1675
1676
1677 static MEMORY_READ16_START( dblaxle_readmem )
1678 { 0x000000, 0x07ffff, MRA16_ROM },
1679 { 0x200000, 0x203fff, MRA16_RAM }, /* main CPUA ram */
1680 { 0x210000, 0x21ffff, sharedram_r },
1681 { 0x400000, 0x40000f, TC0510NIO_halfword_wordswap_r },
1682 { 0x400010, 0x40001f, dblaxle_steer_input_r },
1683 { 0x620000, 0x620003, taitoz_sound_r },
1684 { 0x800000, 0x801fff, paletteram16_word_r }, /* palette */
1685 { 0xa00000, 0xa0ffff, TC0480SCP_word_r }, /* tilemaps */
1686 { 0xa30000, 0xa3002f, TC0480SCP_ctrl_word_r },
1687 { 0xc00000, 0xc03fff, MRA16_RAM }, /* spriteram */
1688 { 0xc08000, 0xc08001, sci_spriteframe_r }, // debugging
1689 MEMORY_END
1690
1691 static MEMORY_WRITE16_START( dblaxle_writemem )
1692 { 0x000000, 0x07ffff, MWA16_ROM },
1693 { 0x200000, 0x203fff, MWA16_RAM },
1694 { 0x210000, 0x21ffff, sharedram_w, &taitoz_sharedram, &taitoz_sharedram_size },
1695 { 0x400000, 0x40000f, TC0510NIO_halfword_wordswap_w },
1696 { 0x600000, 0x600001, cpua_ctrl_w }, /* could this be causing int6 ? */
1697 { 0x620000, 0x620003, taitoz_sound_w },
1698 { 0x800000, 0x801fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 },
1699 { 0x900000, 0x90ffff, TC0480SCP_word_w }, /* tilemap mirror */
1700 { 0xa00000, 0xa0ffff, TC0480SCP_word_w }, /* tilemaps */
1701 { 0xa30000, 0xa3002f, TC0480SCP_ctrl_word_w },
1702 { 0xc00000, 0xc03fff, MWA16_RAM, &spriteram16, &spriteram_size }, /* mostly unused ? */
1703 { 0xc08000, 0xc08001, sci_spriteframe_w }, /* set in int6, seems to stay zero */
1704 MEMORY_END
1705
1706 static MEMORY_READ16_START( dblaxle_cpub_readmem )
1707 { 0x000000, 0x03ffff, MRA16_ROM },
1708 { 0x100000, 0x103fff, MRA16_RAM },
1709 { 0x110000, 0x11ffff, sharedram_r },
1710 { 0x300000, 0x301fff, TC0150ROD_word_r },
1711 { 0x500000, 0x503fff, MRA16_RAM }, /* network ram ? (see Gunbustr) */
1712 MEMORY_END
1713
1714 static MEMORY_WRITE16_START( dblaxle_cpub_writemem )
1715 { 0x000000, 0x03ffff, MWA16_ROM },
1716 { 0x100000, 0x103fff, MWA16_RAM },
1717 { 0x110000, 0x11ffff, sharedram_w, &taitoz_sharedram },
1718 { 0x300000, 0x301fff, TC0150ROD_word_w },
1719 { 0x500000, 0x503fff, MWA16_RAM }, /* network ram ? (see Gunbustr) */
1720 MEMORY_END
1721
1722
1723 /***************************************************************************/
1724
1725 static MEMORY_READ_START( z80_sound_readmem )
1726 { 0x0000, 0x3fff, MRA_ROM },
1727 { 0x4000, 0x7fff, MRA_BANK10 },
1728 { 0xc000, 0xdfff, MRA_RAM },
1729 { 0xe000, 0xe000, YM2610_status_port_0_A_r },
1730 { 0xe001, 0xe001, YM2610_read_port_0_r },
1731 { 0xe002, 0xe002, YM2610_status_port_0_B_r },
1732 { 0xe200, 0xe200, MRA_NOP },
1733 { 0xe201, 0xe201, taitosound_slave_comm_r },
1734 { 0xea00, 0xea00, MRA_NOP },
1735 MEMORY_END
1736
1737 static MEMORY_WRITE_START( z80_sound_writemem )
1738 { 0x0000, 0x7fff, MWA_ROM },
1739 { 0xc000, 0xdfff, MWA_RAM },
1740 { 0xe000, 0xe000, YM2610_control_port_0_A_w },
1741 { 0xe001, 0xe001, YM2610_data_port_0_A_w },
1742 { 0xe002, 0xe002, YM2610_control_port_0_B_w },
1743 { 0xe003, 0xe003, YM2610_data_port_0_B_w },
1744 { 0xe200, 0xe200, taitosound_slave_port_w },
1745 { 0xe201, 0xe201, taitosound_slave_comm_w },
1746 { 0xe400, 0xe403, MWA_NOP }, /* pan */
1747 { 0xee00, 0xee00, MWA_NOP }, /* ? */
1748 { 0xf000, 0xf000, MWA_NOP }, /* ? */
1749 { 0xf200, 0xf200, sound_bankswitch_w },
1750 MEMORY_END
1751
1752
1753 /***********************************************************
1754 INPUT PORTS, DIPs
1755 ***********************************************************/
1756
1757 #define TAITO_Z_COINAGE_JAPAN_8 \
1758 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \
1759 PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) \
1760 PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \
1761 PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) \
1762 PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) \
1763 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) \
1764 PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) \
1765 PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) \
1766 PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) \
1767 PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) )
1768
1769 #define TAITO_Z_COINAGE_WORLD_8 \
1770 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \
1771 PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \
1772 PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \
1773 PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) \
1774 PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \
1775 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) \
1776 PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) \
1777 PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) \
1778 PORT_DIPSETTING( 0x40, DEF_STR( 1C_4C ) ) \
1779 PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) )
1780
1781 #define TAITO_Z_COINAGE_US_8 \
1782 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coinage ) ) \
1783 PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \
1784 PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \
1785 PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) \
1786 PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \
1787 PORT_DIPNAME( 0xc0, 0xc0, "Price to Continue" ) \
1788 PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) \
1789 PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) \
1790 PORT_DIPSETTING( 0x80, DEF_STR( 1C_1C ) ) \
1791 PORT_DIPSETTING( 0xc0, "Same as Start" )
1792
1793 #define TAITO_Z_DIFFICULTY_8 \
1794 PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) \
1795 PORT_DIPSETTING( 0x02, "Easy" ) \
1796 PORT_DIPSETTING( 0x03, "Normal" ) \
1797 PORT_DIPSETTING( 0x01, "Hard" ) \
1798 PORT_DIPSETTING( 0x00, "Hardest" )
1799
1800
1801 INPUT_PORTS_START( contcirc )
1802 PORT_START /* DSW A */
1803 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
1804 PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )
1805 PORT_DIPSETTING( 0x00, "Cockpit" ) // analogue accelerator pedal
1806 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
1807 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
1808 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1809 PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
1810 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )
1811 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1812 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
1813 TAITO_Z_COINAGE_WORLD_8
1814
1815 PORT_START /* DSW B */
1816 PORT_DIPNAME( 0x03, 0x03, "Difficulty 1 (time/speed)" )
1817 PORT_DIPSETTING( 0x02, "Easy" )
1818 PORT_DIPSETTING( 0x03, "Normal" )
1819 PORT_DIPSETTING( 0x01, "Hard" )
1820 PORT_DIPSETTING( 0x00, "Hardest" )
1821 PORT_DIPNAME( 0x0c, 0x0c, "Difficulty 2 (other cars)" )
1822 PORT_DIPSETTING( 0x08, "Easy" )
1823 PORT_DIPSETTING( 0x0c, "Normal" )
1824 PORT_DIPSETTING( 0x04, "Hard" )
1825 PORT_DIPSETTING( 0x00, "Hardest" )
1826 PORT_DIPNAME( 0x10, 0x10, "Steering wheel" ) //not sure what effect this has
1827 PORT_DIPSETTING( 0x10, "Free" )
1828 PORT_DIPSETTING( 0x00, "Locked" )
1829 PORT_DIPNAME( 0x20, 0x00, "Enable 3d alternate frames" )
1830 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1831 PORT_DIPSETTING( 0x20, DEF_STR( On ) )
1832 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
1833 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1834 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1835 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
1836 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1837 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1838
1839 PORT_START /* IN0 */
1840 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
1841 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
1842 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 )
1843 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 )
1844 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
1845 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON6 | IPF_PLAYER1 ) /* 3 for accel [7 levels] */
1846 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON5 | IPF_PLAYER1 )
1847 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER1 ) /* main accel key */
1848
1849 PORT_START /* IN1: b3 not mapped: standardized on holding b4=lo gear */
1850 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
1851 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
1852 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT )
1853 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
1854 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 | IPF_PLAYER1 ) /* gear shift lo/hi */
1855 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON8 | IPF_PLAYER1 ) /* 3 for brake [7 levels] */
1856 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 | IPF_PLAYER1 )
1857 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER1 ) /* main brake key */
1858
1859 PORT_START /* IN2, unused */
1860
1861 PORT_START /* IN3, "handle" i.e. steering */
1862 PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_X | IPF_REVERSE | IPF_PLAYER1, 50, 15, 0x00, 0xff)
1863
1864 PORT_START /* IN4, fake allowing digital steer */
1865 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_2WAY | IPF_PLAYER1 )
1866 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_PLAYER1 )
1867 PORT_DIPNAME( 0x10, 0x00, "Steering type" )
1868 PORT_DIPSETTING( 0x10, "Digital" )
1869 PORT_DIPSETTING( 0x00, "Analogue" )
1870 INPUT_PORTS_END
1871
1872 INPUT_PORTS_START( contcrcu )
1873 PORT_START /* DSW A */
1874 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
1875 PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )
1876 PORT_DIPSETTING( 0x00, "Cockpit" ) // analogue accelerator pedal
1877 PORT_DIPNAME( 0x02, 0x02, "Discounted continues" )
1878 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1879 PORT_DIPSETTING( 0x02, DEF_STR( On ) )
1880 PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
1881 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )
1882 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1883 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
1884 TAITO_Z_COINAGE_JAPAN_8 // confirmed
1885
1886 PORT_START /* DSW B */
1887 PORT_DIPNAME( 0x03, 0x03, "Difficulty 1 (time/speed)" )
1888 PORT_DIPSETTING( 0x02, "Easy" )
1889 PORT_DIPSETTING( 0x03, "Normal" )
1890 PORT_DIPSETTING( 0x01, "Hard" )
1891 PORT_DIPSETTING( 0x00, "Hardest" )
1892 PORT_DIPNAME( 0x0c, 0x0c, "Difficulty 2 (other cars)" )
1893 PORT_DIPSETTING( 0x08, "Easy" )
1894 PORT_DIPSETTING( 0x0c, "Normal" )
1895 PORT_DIPSETTING( 0x04, "Hard" )
1896 PORT_DIPSETTING( 0x00, "Hardest" )
1897 PORT_DIPNAME( 0x10, 0x10, "Steering wheel" ) //not sure what effect this has
1898 PORT_DIPSETTING( 0x10, "Free" )
1899 PORT_DIPSETTING( 0x00, "Locked" )
1900 PORT_DIPNAME( 0x20, 0x00, "Enable 3d alternate frames" )
1901 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1902 PORT_DIPSETTING( 0x20, DEF_STR( On ) )
1903 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) //acc. to manual
1904 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
1905 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1906 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) //acc. to manual
1907 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
1908 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1909
1910 PORT_START /* IN0 */
1911 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
1912 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
1913 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 )
1914 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 )
1915 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
1916 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON6 | IPF_PLAYER1 ) /* 3 for accel [7 levels] */
1917 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON5 | IPF_PLAYER1 )
1918 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER1 ) /* main accel key */
1919
1920 PORT_START /* IN1: b3 not mapped: standardized on holding b4=lo gear */
1921 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
1922 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
1923 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT )
1924 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
1925 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 | IPF_PLAYER1 ) /* gear shift lo/hi */
1926 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON8 | IPF_PLAYER1 ) /* 3 for brake [7 levels] */
1927 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 | IPF_PLAYER1 )
1928 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER1 ) /* main brake key */
1929
1930 PORT_START /* IN2, unused */
1931
1932 PORT_START /* IN3, "handle" i.e. steering */
1933 PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_X | IPF_REVERSE | IPF_PLAYER1, 50, 15, 0x00, 0xff)
1934
1935 PORT_START /* IN4, fake allowing digital steer */
1936 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_2WAY | IPF_PLAYER1 )
1937 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_PLAYER1 )
1938 PORT_DIPNAME( 0x10, 0x00, "Steering type" )
1939 PORT_DIPSETTING( 0x10, "Digital" )
1940 PORT_DIPSETTING( 0x00, "Analogue" )
1941 INPUT_PORTS_END
1942
1943 INPUT_PORTS_START( chasehq ) // IN3-6 perhaps used with cockpit setup? //
1944 PORT_START /* DSW A */
1945 PORT_DIPNAME( 0x03, 0x03, DEF_STR( Cabinet ) )
1946 PORT_DIPSETTING( 0x03, "Upright / Steering Lock" )
1947 PORT_DIPSETTING( 0x02, "Upright / No Steering Lock" )
1948 PORT_DIPSETTING( 0x01, "Full Throttle Convert, Cockpit" )
1949 PORT_DIPSETTING( 0x00, "Full Throttle Convert, Deluxe" )
1950 PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
1951 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )
1952 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1953 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
1954 TAITO_Z_COINAGE_WORLD_8
1955
1956 PORT_START /* DSW B */
1957 TAITO_Z_DIFFICULTY_8
1958 PORT_DIPNAME( 0x0c, 0x0c, "Timer Setting" )
1959 PORT_DIPSETTING( 0x08, "70 Seconds" )
1960 PORT_DIPSETTING( 0x04, "65 Seconds" )
1961 PORT_DIPSETTING( 0x0c, "60 Seconds" )
1962 PORT_DIPSETTING( 0x00, "55 Seconds" )
1963 PORT_DIPNAME( 0x10, 0x10, "Turbos Stocked" )
1964 PORT_DIPSETTING( 0x10, "3" )
1965 PORT_DIPSETTING( 0x00, "5" )
1966 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) )
1967 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
1968 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
1969 PORT_DIPNAME( 0x40, 0x40, "Damage Cleared at Continue" )
1970 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1971 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
1972 PORT_DIPNAME( 0x80, 0x80, "Allow Continue" )
1973 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
1974 PORT_DIPSETTING( 0x80, DEF_STR( On ) )
1975
1976 PORT_START /* IN0 */
1977 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
1978 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
1979 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 )
1980 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 )
1981 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
1982 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 ) /* brake */
1983 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1984 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1985
1986 PORT_START /* IN1 */
1987 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 ) /* turbo */
1988 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT )
1989 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
1990 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
1991 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 | IPF_PLAYER1 ) /* gear */
1992 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 ) /* accel */
1993 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1994 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1995
1996 PORT_START /* IN2, unused */
1997
1998 PORT_START /* IN3, ??? */
1999 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2000 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2001 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2002 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2003 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2004 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2005 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2006 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2007
2008 PORT_START /* IN4, ??? */
2009 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2010 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2011 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2012 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2013 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2014 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2015 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2016 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2017
2018 PORT_START /* IN5, ??? */
2019 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2020 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2021 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2022 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2023 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2024 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2025 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2026 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2027
2028 PORT_START /* IN6, ??? */
2029 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2030 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2031 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2032 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2033 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2034 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2035 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2036 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2037
2038 PORT_START /* IN7, steering */
2039 PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_X | IPF_PLAYER1, 50, 15, 0x00, 0xff )
2040
2041 PORT_START /* IN8, fake allowing digital steer */
2042 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_2WAY | IPF_PLAYER1 )
2043 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_PLAYER1 )
2044 PORT_DIPNAME( 0x10, 0x00, "Steering type" )
2045 PORT_DIPSETTING( 0x10, "Digital" )
2046 PORT_DIPSETTING( 0x00, "Analogue" )
2047 INPUT_PORTS_END
2048
2049 INPUT_PORTS_START( chasehqj ) // IN3-6 perhaps used with cockpit setup? //
2050 PORT_START /* DSW A */
2051 PORT_DIPNAME( 0x03, 0x03, DEF_STR( Cabinet ) )
2052 PORT_DIPSETTING( 0x03, "Upright / Steering Lock" )
2053 PORT_DIPSETTING( 0x02, "Upright / No Steering Lock" )
2054 PORT_DIPSETTING( 0x01, "Full Throttle Convert, Cockpit" )
2055 PORT_DIPSETTING( 0x00, "Full Throttle Convert, Deluxe" )
2056 PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
2057 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )
2058 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2059 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
2060 TAITO_Z_COINAGE_JAPAN_8
2061
2062 PORT_START /* DSW B */
2063 TAITO_Z_DIFFICULTY_8
2064 PORT_DIPNAME( 0x0c, 0x0c, "Timer Setting" )
2065 PORT_DIPSETTING( 0x08, "70 Seconds" )
2066 PORT_DIPSETTING( 0x04, "65 Seconds" )
2067 PORT_DIPSETTING( 0x0c, "60 Seconds" )
2068 PORT_DIPSETTING( 0x00, "55 Seconds" )
2069 PORT_DIPNAME( 0x10, 0x10, "Turbos Stocked" )
2070 PORT_DIPSETTING( 0x10, "3" )
2071 PORT_DIPSETTING( 0x00, "5" )
2072 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) )
2073 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
2074 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2075 PORT_DIPNAME( 0x40, 0x40, "Damage Cleared at Continue" )
2076 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2077 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
2078 PORT_DIPNAME( 0x80, 0x80, "Allow Continue" )
2079 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2080 PORT_DIPSETTING( 0x80, DEF_STR( On ) )
2081
2082 PORT_START /* IN0 */
2083 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2084 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2085 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 )
2086 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 )
2087 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
2088 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 ) /* brake */
2089 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2090 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2091
2092 PORT_START /* IN1 */
2093 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 ) /* turbo */
2094 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT )
2095 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2096 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
2097 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 | IPF_PLAYER1 ) /* gear */
2098 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 ) /* accel */
2099 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2100 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2101
2102 PORT_START /* IN2, unused */
2103
2104 PORT_START /* IN3, ??? */
2105 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2106 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2107 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2108 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2109 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2110 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2111 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2112 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2113
2114 PORT_START /* IN4, ??? */
2115 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2116 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2117 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2118 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2119 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2120 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2121 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2122 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2123
2124 PORT_START /* IN5, ??? */
2125 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2126 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2127 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2128 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2129 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2130 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2131 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2132 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2133
2134 PORT_START /* IN6, ??? */
2135 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2136 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2137 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2138 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2139 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2140 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2141 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2142 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2143
2144 PORT_START /* IN7, steering */
2145 PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_X | IPF_PLAYER1, 50, 15, 0x00, 0xff )
2146
2147 PORT_START /* IN8, fake allowing digital steer */
2148 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_2WAY | IPF_PLAYER1 )
2149 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_PLAYER1 )
2150 PORT_DIPNAME( 0x10, 0x00, "Steering type" )
2151 PORT_DIPSETTING( 0x10, "Digital" )
2152 PORT_DIPSETTING( 0x00, "Analogue" )
2153 INPUT_PORTS_END
2154
2155 INPUT_PORTS_START( enforce )
2156 PORT_START /* DSW A */
2157 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
2158 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2159 PORT_DIPSETTING( 0x01, DEF_STR( On ) )
2160 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
2161 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
2162 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2163 PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
2164 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )
2165 PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) // Says SHIFT HI in test mode !?
2166 PORT_DIPSETTING( 0x08, DEF_STR( On ) ) // Says SHIFT LO in test mode !?
2167 TAITO_Z_COINAGE_JAPAN_8
2168
2169 PORT_START /* DSW B */
2170 TAITO_Z_DIFFICULTY_8
2171 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
2172 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
2173 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2174 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
2175 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
2176 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2177 PORT_DIPNAME( 0x10, 0x00, "Background scenery" )
2178 PORT_DIPSETTING( 0x10, "Crazy scrolling" )
2179 PORT_DIPSETTING( 0x00, "Normal" )
2180 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
2181 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
2182 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2183 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
2184 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
2185 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2186 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
2187 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
2188 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2189
2190 PORT_START /* IN0 */
2191 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2192 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2193 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 )
2194 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 )
2195 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
2196 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER1 )
2197 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER1 )
2198 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER1 )
2199
2200 PORT_START /* IN1 */
2201 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 ) /* Bomb */
2202 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 ) /* Laser */
2203 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_TILT )
2204 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
2205 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2206 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2207 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2208 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
2209 INPUT_PORTS_END
2210
2211 INPUT_PORTS_START( bshark )
2212 PORT_START /* DSW A */
2213 PORT_DIPNAME( 0x01, 0x01, "Mirror screen" ) // manual says first two must be off
2214 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
2215 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2216 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
2217 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
2218 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2219 PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
2220 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )
2221 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2222 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
2223 TAITO_Z_COINAGE_US_8
2224
2225 PORT_START /* DSW B */
2226 TAITO_Z_DIFFICULTY_8
2227 PORT_DIPNAME( 0x0c, 0x04, "Speed of Sight" )
2228 PORT_DIPSETTING( 0x0c, "Slow" )
2229 PORT_DIPSETTING( 0x08, "Medium" )
2230 PORT_DIPSETTING( 0x04, "Fast" )
2231 PORT_DIPSETTING( 0x00, "Fastest" )
2232 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) // manual says all these must be off
2233 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
2234 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2235 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
2236 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
2237 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2238 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
2239 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
2240 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2241 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
2242 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
2243 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2244
2245 PORT_START /* IN0 */
2246 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN2 )
2247 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 )
2248 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
2249 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT )
2250 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2251 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2252 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2253 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2254
2255 PORT_START /* IN1, unused */
2256
2257 PORT_START /* IN2, b2-5 affect sound num in service mode but otherwise useless (?) */
2258 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
2259 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
2260 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
2261 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
2262 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER1 )
2263 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER1 )
2264 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 ) /* "Fire" */
2265 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 | IPF_PLAYER1 ) /* same as "Fire" */
2266
2267 PORT_START /* values chosen to match allowed crosshair area */
2268 PORT_ANALOG( 0xff, 0x00, IPT_AD_STICK_X | IPF_REVERSE | IPF_PLAYER1, 20, 4, 0xcc, 0x35)
2269
2270 PORT_START /* "X adjust" */
2271 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2272
2273 PORT_START /* values chosen to match allowed crosshair area */
2274 PORT_ANALOG( 0xff, 0x00, IPT_AD_STICK_Y | IPF_PLAYER1, 20, 4, 0xd5, 0x32)
2275
2276 PORT_START /* "Y adjust" */
2277 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2278 INPUT_PORTS_END
2279
2280 INPUT_PORTS_START( bsharkj )
2281 PORT_START /* DSW A */
2282 PORT_DIPNAME( 0x01, 0x01, "Mirror screen" )
2283 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
2284 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2285 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
2286 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
2287 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2288 PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
2289 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )
2290 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2291 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
2292 TAITO_Z_COINAGE_JAPAN_8
2293
2294 PORT_START /* DSW B */
2295 TAITO_Z_DIFFICULTY_8
2296 PORT_DIPNAME( 0x0c, 0x04, "Speed of Sight" )
2297 PORT_DIPSETTING( 0x0c, "Slow" )
2298 PORT_DIPSETTING( 0x08, "Medium" )
2299 PORT_DIPSETTING( 0x04, "Fast" )
2300 PORT_DIPSETTING( 0x00, "Fastest" )
2301 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
2302 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
2303 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2304 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
2305 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
2306 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2307 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
2308 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
2309 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2310 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
2311 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
2312 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2313
2314 PORT_START /* IN0 */
2315 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN2 )
2316 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 )
2317 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
2318 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT )
2319 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2320 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2321 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2322 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2323
2324 PORT_START /* IN1, unused */
2325
2326 PORT_START /* IN2, b2-5 affect sound num in service mode but otherwise useless (?) */
2327 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
2328 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
2329 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
2330 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
2331 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER1 )
2332 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER1 )
2333 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 ) /* "Fire" */
2334 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 | IPF_PLAYER1 ) /* same as "Fire" */
2335
2336 PORT_START /* values chosen to match allowed crosshair area */
2337 PORT_ANALOG( 0xff, 0x00, IPT_AD_STICK_X | IPF_REVERSE | IPF_PLAYER1, 20, 4, 0xcc, 0x35)
2338
2339 PORT_START /* "X adjust" */
2340 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2341
2342 PORT_START /* values chosen to match allowed crosshair area */
2343 PORT_ANALOG( 0xff, 0x00, IPT_AD_STICK_Y | IPF_PLAYER1, 20, 4, 0xd5, 0x32)
2344
2345 PORT_START /* "Y adjust" */
2346 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2347 INPUT_PORTS_END
2348
2349 INPUT_PORTS_START( sci ) // dsws may be slightly wrong
2350 PORT_START /* DSW A */
2351 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
2352 PORT_DIPSETTING( 0x01, "Cockpit" )
2353 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
2354 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) )
2355 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
2356 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2357 PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
2358 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )
2359 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2360 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
2361 TAITO_Z_COINAGE_WORLD_8
2362
2363 PORT_START /* DSW B */
2364 TAITO_Z_DIFFICULTY_8
2365 PORT_DIPNAME( 0x0c, 0x0c, "Timer Setting" )
2366 PORT_DIPSETTING( 0x08, "70 Seconds" )
2367 PORT_DIPSETTING( 0x04, "65 Seconds" )
2368 PORT_DIPSETTING( 0x0c, "60 Seconds" )
2369 PORT_DIPSETTING( 0x00, "55 Seconds" )
2370 PORT_DIPNAME( 0x10, 0x10, "Turbos Stocked" )
2371 PORT_DIPSETTING( 0x10, "3" )
2372 PORT_DIPSETTING( 0x00, "5" )
2373 PORT_DIPNAME( 0x20, 0x20, "Respond to Controls" )
2374 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2375 PORT_DIPSETTING( 0x20, DEF_STR( On ) )
2376 PORT_DIPNAME( 0x40, 0x40, "Damage Cleared at Continue" )
2377 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2378 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
2379 PORT_DIPNAME( 0x80, 0x80, "Siren Volume" )
2380 PORT_DIPSETTING( 0x80, "Normal" )
2381 PORT_DIPSETTING( 0x00, "Low" )
2382
2383 PORT_START /* IN0 */
2384 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2385 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 ) /* fire */
2386 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
2387 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
2388 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
2389 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 ) /* brake */
2390 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2391 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2392
2393 PORT_START /* IN1 */
2394 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER1 ) /* turbo */
2395 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT )
2396 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 | IPF_PLAYER1 ) /* "center" */
2397 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
2398 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 | IPF_PLAYER1 ) /* gear */
2399 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 ) /* accel */
2400 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2401 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2402
2403 PORT_START /* IN2, unused */
2404
2405 PORT_START /* IN3, steering */
2406 PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_X | IPF_PLAYER1, 50, 15, 0x00, 0xff )
2407
2408 PORT_START /* IN4, fake allowing digital steer */
2409 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_2WAY | IPF_PLAYER1 )
2410 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_PLAYER1 )
2411 PORT_DIPNAME( 0x10, 0x00, "Steering type" )
2412 PORT_DIPSETTING( 0x10, "Digital" )
2413 PORT_DIPSETTING( 0x00, "Analogue" )
2414 INPUT_PORTS_END
2415
2416 INPUT_PORTS_START( sciu ) // dsws may be slightly wrong
2417 PORT_START /* DSW A */
2418 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
2419 PORT_DIPSETTING( 0x01, "Cockpit" )
2420 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
2421 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) )
2422 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
2423 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2424 PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
2425 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )
2426 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2427 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
2428 TAITO_Z_COINAGE_US_8
2429
2430 PORT_START /* DSW B */
2431 TAITO_Z_DIFFICULTY_8
2432 PORT_DIPNAME( 0x0c, 0x0c, "Timer Setting" )
2433 PORT_DIPSETTING( 0x08, "70 Seconds" )
2434 PORT_DIPSETTING( 0x04, "65 Seconds" )
2435 PORT_DIPSETTING( 0x0c, "60 Seconds" )
2436 PORT_DIPSETTING( 0x00, "55 Seconds" )
2437 PORT_DIPNAME( 0x10, 0x10, "Turbos Stocked" )
2438 PORT_DIPSETTING( 0x10, "3" )
2439 PORT_DIPSETTING( 0x00, "5" )
2440 PORT_DIPNAME( 0x20, 0x20, "Respond to Controls" )
2441 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2442 PORT_DIPSETTING( 0x20, DEF_STR( On ) )
2443 PORT_DIPNAME( 0x40, 0x40, "Damage Cleared at Continue" )
2444 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2445 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
2446 PORT_DIPNAME( 0x80, 0x80, "Siren Volume" )
2447 PORT_DIPSETTING( 0x80, "Normal" )
2448 PORT_DIPSETTING( 0x00, "Low" )
2449
2450 PORT_START /* IN0 */
2451 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2452 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 ) /* fire */
2453 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
2454 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
2455 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
2456 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 ) /* brake */
2457 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2458 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2459
2460 PORT_START /* IN1 */
2461 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER1 ) /* turbo */
2462 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT )
2463 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 | IPF_PLAYER1 ) /* "center" */
2464 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
2465 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON4 | IPF_PLAYER1 ) /* gear */
2466 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 ) /* accel */
2467 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2468 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2469
2470 PORT_START /* IN2, unused */
2471
2472 PORT_START /* IN3, steering */
2473 PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_X | IPF_PLAYER1, 50, 15, 0x00, 0xff )
2474
2475 PORT_START /* IN4, fake allowing digital steer */
2476 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_2WAY | IPF_PLAYER1 )
2477 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_PLAYER1 )
2478 PORT_DIPNAME( 0x10, 0x00, "Steering type" )
2479 PORT_DIPSETTING( 0x10, "Digital" )
2480 PORT_DIPSETTING( 0x00, "Analogue" )
2481 INPUT_PORTS_END
2482
2483 INPUT_PORTS_START( nightstr )
2484 PORT_START /* DSW A */
2485 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
2486 PORT_DIPSETTING( 0x01, "Cockpit" )
2487 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
2488 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) /* Shown only as "OFF" in the manual */
2489 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
2490 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2491 PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
2492 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )
2493 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2494 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
2495 TAITO_Z_COINAGE_US_8
2496
2497 PORT_START /* DSW B */
2498 TAITO_Z_DIFFICULTY_8
2499 PORT_DIPNAME( 0x0c, 0x0c, "Bonus Shields" )
2500 PORT_DIPSETTING( 0x08, "3" )
2501 PORT_DIPSETTING( 0x04, "2" )
2502 PORT_DIPSETTING( 0x0c, "1" )
2503 PORT_DIPSETTING( 0x00, "None" )
2504 PORT_DIPNAME( 0x30, 0x30, "Shields" )
2505 PORT_DIPSETTING( 0x00, "3" )
2506 PORT_DIPSETTING( 0x10, "4" )
2507 PORT_DIPSETTING( 0x30, "5" )
2508 PORT_DIPSETTING( 0x20, "6" )
2509 PORT_DIPNAME( 0x40, 0x40, "Allow Continue" )
2510 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2511 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
2512 PORT_DIPNAME( 0x80, 0x80, "Trigger Turbo" )
2513 PORT_DIPSETTING( 0x80, "7 Shots / Second" )
2514 PORT_DIPSETTING( 0x00, "10 Shots / Second" )
2515
2516 PORT_START /* IN0 */
2517 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2518 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2519 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2520 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2521 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
2522 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
2523 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 )
2524 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_TILT )
2525
2526 PORT_START /* IN1, unused */
2527
2528 PORT_START /* IN2 */
2529 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
2530 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
2531 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER1 )
2532 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER1 )
2533 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER1 )
2534 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
2535 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
2536 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
2537
2538 PORT_START
2539 PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_X | IPF_PLAYER1, 60, 15, 0x00, 0xff)
2540
2541 PORT_START
2542 PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_Y | IPF_REVERSE | IPF_PLAYER1, 60, 15, 0x00, 0xff)
2543
2544 PORT_START /* X offset */
2545 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2546
2547 PORT_START /* Y offset */
2548 PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2549 INPUT_PORTS_END
2550
2551 INPUT_PORTS_START( aquajack )
2552 PORT_START /* DSW A */
2553 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) )
2554 PORT_DIPSETTING( 0x80, "Cockpit" )
2555 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
2556 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
2557 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
2558 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2559 PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
2560 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) )
2561 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2562 PORT_DIPSETTING( 0x10, DEF_STR( On ) )
2563 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_A ) )
2564 PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
2565 PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) )
2566 PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) )
2567 PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) )
2568 PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) )
2569 PORT_DIPSETTING( 0x03, DEF_STR( 1C_2C ) )
2570 PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) )
2571 PORT_DIPSETTING( 0x02, DEF_STR( 1C_4C ) )
2572 PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) )
2573
2574 PORT_START /* DSW B */
2575 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) )
2576 PORT_DIPSETTING( 0x40, "Easy" )
2577 PORT_DIPSETTING( 0xc0, "Normal" )
2578 PORT_DIPSETTING( 0x80, "Hard" )
2579 PORT_DIPSETTING( 0x00, "Hardest" )
2580 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
2581 PORT_DIPSETTING( 0x00, "30k" )
2582 PORT_DIPSETTING( 0x30, "50k" )
2583 PORT_DIPSETTING( 0x10, "80k" )
2584 PORT_DIPSETTING( 0x20, "100k" )
2585 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
2586 PORT_DIPSETTING( 0x08, "1" )
2587 PORT_DIPSETTING( 0x04, "2" )
2588 PORT_DIPSETTING( 0x0c, "3" )
2589 PORT_DIPSETTING( 0x00, "5" )
2590 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) /* Dips 7 & 8 shown as "Do Not Touch" in manual */
2591 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
2592 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2593 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) )
2594 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
2595 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2596
2597 PORT_START /* IN0 */
2598 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2599 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER1 )
2600 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
2601 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
2602 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
2603 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT )
2604 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2605 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2606
2607 PORT_START /* IN1 */
2608 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER1 )
2609 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER1 )
2610 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
2611 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER1 )
2612 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
2613 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
2614 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
2615 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2616
2617 PORT_START /* IN2, what is it ??? */
2618 PORT_ANALOG( 0xff, 0x80, IPT_DIAL | IPF_PLAYER1, 50, 10, 0, 0 )
2619 INPUT_PORTS_END
2620
2621 INPUT_PORTS_START( aquajckj )
2622 PORT_START /* DSW A */
2623 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) )
2624 PORT_DIPSETTING( 0x80, "Cockpit" )
2625 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
2626 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
2627 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
2628 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2629 PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
2630 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) )
2631 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2632 PORT_DIPSETTING( 0x10, DEF_STR( On ) )
2633 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_A ) )
2634 PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
2635 PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) )
2636 PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) )
2637 PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) )
2638 PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) )
2639 PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) )
2640 PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
2641 PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) )
2642 PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) )
2643
2644 PORT_START /* DSW B */
2645 PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) )
2646 PORT_DIPSETTING( 0x40, "Easy" )
2647 PORT_DIPSETTING( 0xc0, "Normal" )
2648 PORT_DIPSETTING( 0x80, "Hard" )
2649 PORT_DIPSETTING( 0x00, "Hardest" )
2650 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
2651 PORT_DIPSETTING( 0x00, "30k" )
2652 PORT_DIPSETTING( 0x30, "50k" )
2653 PORT_DIPSETTING( 0x10, "80k" )
2654 PORT_DIPSETTING( 0x20, "100k" )
2655 PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
2656 PORT_DIPSETTING( 0x08, "1" )
2657 PORT_DIPSETTING( 0x04, "2" )
2658 PORT_DIPSETTING( 0x0c, "3" )
2659 PORT_DIPSETTING( 0x00, "5" )
2660 PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) /* Dips 7 & 8 shown as "Do Not Touch" in manual */
2661 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
2662 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2663 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) )
2664 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
2665 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2666
2667 PORT_START /* IN0 */
2668 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2669 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER1 )
2670 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
2671 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
2672 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
2673 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT )
2674 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2675 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2676
2677 PORT_START /* IN1 */
2678 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_8WAY | IPF_PLAYER1 )
2679 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_PLAYER1 )
2680 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER1 )
2681 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_PLAYER1 )
2682 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
2683 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
2684 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
2685 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2686
2687 PORT_START /* IN2, what is it ??? */
2688 PORT_ANALOG( 0xff, 0x80, IPT_DIAL | IPF_PLAYER1, 50, 10, 0, 0 )
2689 INPUT_PORTS_END
2690
2691 INPUT_PORTS_START( spacegun )
2692 PORT_START /* DSW A */
2693 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) // Manual says Always Off
2694 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
2695 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2696 PORT_DIPNAME( 0x02, 0x02, "Always have gunsight power up" )
2697 PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
2698 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2699 PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
2700 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )
2701 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2702 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
2703 TAITO_Z_COINAGE_WORLD_8
2704
2705 PORT_START /* DSW B */
2706 TAITO_Z_DIFFICULTY_8
2707 PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) // Manual lists dips 3 through 6 and 8 as Always off
2708 PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
2709 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2710 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) )
2711 PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
2712 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2713 PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) )
2714 PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
2715 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2716 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) )
2717 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
2718 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2719 PORT_DIPNAME( 0x40, 0x40, "Allow Continue" )
2720 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2721 PORT_DIPSETTING( 0x40, DEF_STR( On ) )
2722 PORT_DIPNAME( 0x80, 0x80, "Disable Pedal (?)" )
2723 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
2724 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2725
2726 PORT_START /* IN0 */
2727 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 )
2728 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER2 )
2729 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 )
2730 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 )
2731 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
2732 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2733 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1)
2734 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2)
2735
2736 PORT_START /* IN1, unused */
2737
2738 PORT_START /* IN2 */
2739 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 )
2740 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
2741 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 )
2742 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER2 )
2743 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2744 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2745 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2746 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2747
2748 PORT_START
2749 PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_X | IPF_REVERSE | IPF_PLAYER1, 20, 22, 0, 0xff)
2750
2751 PORT_START
2752 PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_Y | IPF_PLAYER1, 20, 22, 0, 0xff)
2753
2754 PORT_START
2755 PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_X | IPF_REVERSE | IPF_PLAYER2, 20, 22, 0, 0xff)
2756
2757 PORT_START
2758 PORT_ANALOG( 0xff, 0x80, IPT_LIGHTGUN_Y | IPF_PLAYER2, 20, 22, 0, 0xff)
2759 INPUT_PORTS_END
2760
2761 INPUT_PORTS_START( dblaxle )
2762 PORT_START /* DSW A */
2763 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
2764 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
2765 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2766 PORT_DIPNAME( 0x02, 0x02, "Gear shift" )
2767 PORT_DIPSETTING( 0x02, "Normal" )
2768 PORT_DIPSETTING( 0x00, "Inverted" )
2769 PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
2770 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )
2771 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2772 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
2773 TAITO_Z_COINAGE_US_8
2774
2775 PORT_START /* DSW B */
2776 TAITO_Z_DIFFICULTY_8
2777 PORT_DIPNAME( 0x04, 0x00, "Multi-machine hookup ?" ) // doesn't boot if on
2778 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2779 PORT_DIPSETTING( 0x04, DEF_STR( On ) )
2780 PORT_DIPNAME( 0x08, 0x08, "Player Truck" )
2781 PORT_DIPSETTING( 0x08, "Red" )
2782 PORT_DIPSETTING( 0x00, "Blue" )
2783 PORT_DIPNAME( 0x10, 0x10, "Back button" )
2784 PORT_DIPSETTING( 0x10, "Normal" )
2785 PORT_DIPSETTING( 0x00, "Inverted" )
2786 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) // causes "Root CPU Error" on "Icy Road" (Tourniquet)
2787 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
2788 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2789 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
2790 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
2791 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2792 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
2793 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
2794 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2795
2796 PORT_START /* IN0 */
2797 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2798 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER1 ) /* shift */
2799 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
2800 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
2801 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
2802 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 ) /* brake */
2803 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2804 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER1 ) /* "back" */
2805
2806 PORT_START /* IN1 */
2807 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 ) /* nitro */
2808 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT )
2809 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 | IPF_PLAYER1 ) /* "center" */
2810 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
2811 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2812 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 ) /* accel */
2813 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2814 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2815
2816 PORT_START /* IN2, unused */
2817
2818 PORT_START /* IN3, steering */
2819 PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_X | IPF_PLAYER1, 40, 10, 0x00, 0xff )
2820
2821 PORT_START /* IN4, fake allowing digital steer */
2822 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_2WAY | IPF_PLAYER1 )
2823 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_PLAYER1 )
2824 PORT_DIPNAME( 0x10, 0x00, "Steering type" )
2825 PORT_DIPSETTING( 0x10, "Digital" )
2826 PORT_DIPSETTING( 0x00, "Analogue" )
2827 INPUT_PORTS_END
2828
2829 INPUT_PORTS_START( pwheelsj )
2830 PORT_START /* DSW A */
2831 PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
2832 PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
2833 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2834 PORT_DIPNAME( 0x02, 0x02, "Gear shift" )
2835 PORT_DIPSETTING( 0x02, "Normal" )
2836 PORT_DIPSETTING( 0x00, "Inverted" )
2837 PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
2838 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )
2839 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2840 PORT_DIPSETTING( 0x08, DEF_STR( On ) )
2841 TAITO_Z_COINAGE_JAPAN_8
2842
2843 PORT_START /* DSW B */
2844 TAITO_Z_DIFFICULTY_8
2845 PORT_DIPNAME( 0x04, 0x00, "Multi-machine hookup ?" ) // doesn't boot if on
2846 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
2847 PORT_DIPSETTING( 0x04, DEF_STR( On ) )
2848 PORT_DIPNAME( 0x08, 0x08, "Player Truck" )
2849 PORT_DIPSETTING( 0x08, "Red" )
2850 PORT_DIPSETTING( 0x00, "Blue" )
2851 PORT_DIPNAME( 0x10, 0x10, "Back button" )
2852 PORT_DIPSETTING( 0x10, "Normal" )
2853 PORT_DIPSETTING( 0x00, "Inverted" )
2854 PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) // causes "Root CPU Error" on "Icy Road" (Tourniquet)
2855 PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
2856 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2857 PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
2858 PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
2859 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2860 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
2861 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
2862 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
2863
2864 PORT_START /* IN0 */
2865 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2866 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_PLAYER1 ) /* shift */
2867 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
2868 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
2869 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
2870 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_PLAYER1 ) /* brake */
2871 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2872 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON5 | IPF_PLAYER1 ) /* "back" */
2873
2874 PORT_START /* IN1 */
2875 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_PLAYER1 ) /* nitro */
2876 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT )
2877 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 | IPF_PLAYER1 ) /* "center" */
2878 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
2879 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2880 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER1 ) /* accel */
2881 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2882 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2883
2884 PORT_START /* IN2, unused */
2885
2886 PORT_START /* IN3, steering */
2887 PORT_ANALOG( 0xff, 0x80, IPT_AD_STICK_X | IPF_PLAYER1, 40, 10, 0x00, 0xff )
2888
2889 PORT_START /* IN4, fake allowing digital steer */
2890 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_2WAY | IPF_PLAYER1 )
2891 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_2WAY | IPF_PLAYER1 )
2892 PORT_DIPNAME( 0x10, 0x00, "Steering type" )
2893 PORT_DIPSETTING( 0x10, "Digital" )
2894 PORT_DIPSETTING( 0x00, "Analogue" )
2895 INPUT_PORTS_END
2896
2897
2898 /***********************************************************
2899 GFX DECODING
2900 ***********************************************************/
2901
2902 static struct GfxLayout tile16x8_layout =
2903 {
2904 16,8, /* 16*8 sprites */
2905 RGN_FRAC(1,1),
2906 4, /* 4 bits per pixel */
2907 { 0, 8, 16, 24 },
2908 { 32, 33, 34, 35, 36, 37, 38, 39, 0, 1, 2, 3, 4, 5, 6, 7 },
2909 { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64 },
2910 64*8 /* every sprite takes 64 consecutive bytes */
2911 };
2912
2913 static struct GfxLayout tile16x16_layout =
2914 {
2915 16,16, /* 16*16 sprites */
2916 RGN_FRAC(1,1),
2917 4, /* 4 bits per pixel */
2918 { 0, 8, 16, 24 },
2919 { 32, 33, 34, 35, 36, 37, 38, 39, 0, 1, 2, 3, 4, 5, 6, 7 },
2920 { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,
2921 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 },
2922 64*16 /* every sprite takes 128 consecutive bytes */
2923 };
2924
2925 static struct GfxLayout charlayout =
2926 {
2927 8,8, /* 8*8 characters */
2928 RGN_FRAC(1,1),
2929 4, /* 4 bits per pixel */
2930 { 0, 1, 2, 3 },
2931 { 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 },
2932 { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
2933 32*8 /* every sprite takes 32 consecutive bytes */
2934 };
2935
2936 static struct GfxLayout dblaxle_charlayout =
2937 {
2938 16,16, /* 16*16 characters */
2939 RGN_FRAC(1,1),
2940 4, /* 4 bits per pixel */
2941 { 0, 1, 2, 3 },
2942 { 1*4, 0*4, 5*4, 4*4, 3*4, 2*4, 7*4, 6*4, 9*4, 8*4, 13*4, 12*4, 11*4, 10*4, 15*4, 14*4 },
2943 { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64, 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 },
2944 128*8 /* every sprite takes 128 consecutive bytes */
2945 };
2946
2947 static struct GfxDecodeInfo taitoz_gfxdecodeinfo[] =
2948 {
2949 { REGION_GFX2, 0x0, &tile16x8_layout, 0, 256 }, /* sprite parts */
2950 { REGION_GFX1, 0x0, &charlayout, 0, 256 }, /* sprites & playfield */
2951 { -1 } /* end of array */
2952 };
2953
2954 /* taitoic.c TC0100SCN routines expect scr stuff to be in second gfx
2955 slot, so 2nd batch of obj must be placed third */
2956
2957 static struct GfxDecodeInfo chasehq_gfxdecodeinfo[] =
2958 {
2959 { REGION_GFX2, 0x0, &tile16x16_layout, 0, 256 }, /* sprite parts */
2960 { REGION_GFX1, 0x0, &charlayout, 0, 256 }, /* sprites & playfield */
2961 { REGION_GFX4, 0x0, &tile16x16_layout, 0, 256 }, /* sprite parts */
2962 { -1 } /* end of array */
2963 };
2964
2965 static struct GfxDecodeInfo dblaxle_gfxdecodeinfo[] =
2966 {
2967 { REGION_GFX2, 0x0, &tile16x8_layout, 0, 256 }, /* sprite parts */
2968 { REGION_GFX1, 0x0, &dblaxle_charlayout, 0, 256 }, /* sprites & playfield */
2969 { -1 } /* end of array */
2970 };
2971
2972
2973
2974 /**************************************************************
2975 YM2610 (SOUND)
2976
2977 The first interface is for game boards with twin 68000 and Z80.
2978 Interface B is for games which lack a Z80 (Spacegun, Bshark).
2979 **************************************************************/
2980
2981 /* handler called by the YM2610 emulator when the internal timers cause an IRQ */
irqhandler(int irq)2982 static void irqhandler(int irq) // assumes Z80 sandwiched between 68Ks
2983 {
2984 cpu_set_irq_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE);
2985 }
2986
2987 /* handler called by the YM2610 emulator when the internal timers cause an IRQ */
irqhandlerb(int irq)2988 static void irqhandlerb(int irq)
2989 {
2990 // DG: this is probably specific to Z80 and wrong?
2991 // cpu_set_irq_line(1,0,irq ? ASSERT_LINE : CLEAR_LINE);
2992 }
2993
2994 static struct YM2610interface ym2610_interface =
2995 {
2996 1, /* 1 chip */
2997 16000000/2, /* 8 MHz ?? */
2998 { 25 },
2999 { 0 },
3000 { 0 },
3001 { 0 },
3002 { 0 },
3003 { irqhandler },
3004 { REGION_SOUND2 }, /* Delta-T */
3005 { REGION_SOUND1 }, /* ADPCM */
3006 { YM3012_VOL(100,MIXER_PAN_LEFT,100,MIXER_PAN_RIGHT) }
3007 };
3008
3009 static struct YM2610interface ym2610_interfaceb =
3010 {
3011 1, /* 1 chip */
3012 16000000/2, /* 8 MHz ?? */
3013 { 25 },
3014 { 0 },
3015 { 0 },
3016 { 0 },
3017 { 0 },
3018 { irqhandlerb },
3019 { REGION_SOUND2 }, /* Delta-T */
3020 { REGION_SOUND1 }, /* ADPCM */
3021 { YM3012_VOL(100,MIXER_PAN_LEFT,100,MIXER_PAN_RIGHT) }
3022 };
3023
3024
3025 /**************************************************************
3026 SUBWOOFER (SOUND)
3027 **************************************************************/
3028
subwoofer_sh_start(const struct MachineSound * msound)3029 static int subwoofer_sh_start(const struct MachineSound *msound)
3030 {
3031 /* Adjust the lowpass filter of the first three YM2610 channels */
3032
3033 /* 150 Hz is a common top frequency played by a generic */
3034 /* subwoofer, the real Arcade Machine may differs */
3035
3036 mixer_set_lowpass_frequency(0,20);
3037 mixer_set_lowpass_frequency(1,20);
3038 mixer_set_lowpass_frequency(2,20);
3039
3040 return 0;
3041 }
3042
3043 static struct CustomSound_interface subwoofer_interface =
3044 {
3045 subwoofer_sh_start,
3046 0, /* none */
3047 0 /* none */
3048 };
3049
3050
3051 /***********************************************************
3052 MACHINE DRIVERS
3053
3054 CPU Interleaving
3055 ----------------
3056
3057 Chasehq2 needs high interleaving to have sound (not checked
3058 since May 2001 - may have changed).
3059
3060 Enforce with interleave of 1 sometimes lets you take over from
3061 the demo game when you coin up! Set to 10 seems to cure this.
3062
3063 Bshark needs the high cpu interleaving to run test mode.
3064
3065 Nightstr needs the high cpu interleaving to get through init.
3066
3067 Aquajack has it VERY high to cure frequent sound-related
3068 hangs.
3069
3070 Dblaxle has 10 to boot up reliably but very occasionally gets
3071 a "root cpu error" still.
3072
3073 Mostly it's the 2nd 68K which writes to road chip, so syncing
3074 between it and the master 68K may be important. Contcirc
3075 and ChaseHQ have interleave of only 1 - possible cause of
3076 Contcirc road glitchiness in attract?
3077
3078 ***********************************************************/
3079
3080 /* Contcirc vis area seems narrower than the other games... */
3081
3082 static MACHINE_DRIVER_START( contcirc )
3083
3084 /* basic machine hardware */
3085 MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */
MDRV_CPU_MEMORY(contcirc_readmem,contcirc_writemem)3086 MDRV_CPU_MEMORY(contcirc_readmem,contcirc_writemem)
3087 MDRV_CPU_VBLANK_INT(irq6_line_hold,1)
3088
3089 MDRV_CPU_ADD(Z80,16000000/4)
3090 MDRV_CPU_FLAGS(CPU_AUDIO_CPU) /* 4 MHz ??? */
3091 MDRV_CPU_MEMORY(z80_sound_readmem,z80_sound_writemem)
3092
3093 MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */
3094 MDRV_CPU_MEMORY(contcirc_cpub_readmem,contcirc_cpub_writemem)
3095 MDRV_CPU_VBLANK_INT(irq6_line_hold,1)
3096
3097 MDRV_FRAMES_PER_SECOND(60)
3098 MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
3099
3100 /* video hardware */
3101 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
3102 MDRV_SCREEN_SIZE(40*8, 32*8)
3103 MDRV_VISIBLE_AREA(0*8, 40*8-1, 3*8, 31*8-1)
3104 MDRV_GFXDECODE(taitoz_gfxdecodeinfo)
3105 MDRV_PALETTE_LENGTH(4096)
3106
3107 MDRV_VIDEO_START(taitoz)
3108 MDRV_VIDEO_UPDATE(contcirc)
3109
3110 /* sound hardware */
3111 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
3112 MDRV_SOUND_ADD(YM2610, ym2610_interface)
3113 MDRV_SOUND_ADD(CUSTOM, subwoofer_interface)
3114 MACHINE_DRIVER_END
3115
3116
3117 static MACHINE_DRIVER_START( chasehq )
3118
3119 /* basic machine hardware */
3120 MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */
3121 MDRV_CPU_MEMORY(chasehq_readmem,chasehq_writemem)
3122 MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
3123
3124 MDRV_CPU_ADD(Z80,16000000/4)
3125 MDRV_CPU_FLAGS(CPU_AUDIO_CPU) /* 4 MHz ??? */
3126 MDRV_CPU_MEMORY(z80_sound_readmem,z80_sound_writemem)
3127
3128 MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */
3129 MDRV_CPU_MEMORY(chq_cpub_readmem,chq_cpub_writemem)
3130 MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
3131
3132 MDRV_FRAMES_PER_SECOND(60)
3133 MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
3134
3135 /* video hardware */
3136 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
3137 MDRV_SCREEN_SIZE(40*8, 32*8)
3138 MDRV_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
3139 MDRV_GFXDECODE(chasehq_gfxdecodeinfo)
3140 MDRV_PALETTE_LENGTH(4096)
3141
3142 MDRV_VIDEO_START(taitoz)
3143 MDRV_VIDEO_UPDATE(chasehq)
3144
3145 /* sound hardware */
3146 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
3147 MDRV_SOUND_ADD(YM2610, ym2610_interface)
3148 MACHINE_DRIVER_END
3149
3150
3151 static MACHINE_DRIVER_START( enforce )
3152
3153 /* basic machine hardware */
3154 MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */
3155 MDRV_CPU_MEMORY(enforce_readmem,enforce_writemem)
3156 MDRV_CPU_VBLANK_INT(irq6_line_hold,1)
3157
3158 MDRV_CPU_ADD(Z80,16000000/4)
3159 MDRV_CPU_FLAGS(CPU_AUDIO_CPU) /* 4 MHz ??? */
3160 MDRV_CPU_MEMORY(z80_sound_readmem,z80_sound_writemem)
3161
3162 MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */
3163 MDRV_CPU_MEMORY(enforce_cpub_readmem,enforce_cpub_writemem)
3164 MDRV_CPU_VBLANK_INT(irq6_line_hold,1)
3165
3166 MDRV_FRAMES_PER_SECOND(60)
3167 MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
3168 MDRV_INTERLEAVE(10)
3169
3170 /* video hardware */
3171 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
3172 MDRV_SCREEN_SIZE(40*8, 32*8)
3173 MDRV_VISIBLE_AREA(0*8, 40*8-1, 2*8, 31*8-1)
3174 MDRV_GFXDECODE(taitoz_gfxdecodeinfo)
3175 MDRV_PALETTE_LENGTH(4096)
3176
3177 MDRV_VIDEO_START(taitoz)
3178 MDRV_VIDEO_UPDATE(contcirc)
3179
3180 /* sound hardware */
3181 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
3182 MDRV_SOUND_ADD(YM2610, ym2610_interface)
3183 MDRV_SOUND_ADD(CUSTOM, subwoofer_interface)
3184 MACHINE_DRIVER_END
3185
3186
3187 static MACHINE_DRIVER_START( bshark )
3188
3189 /* basic machine hardware */
3190 MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */
3191 MDRV_CPU_MEMORY(bshark_readmem,bshark_writemem)
3192 MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
3193
3194 MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */
3195 MDRV_CPU_MEMORY(bshark_cpub_readmem,bshark_cpub_writemem)
3196 MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
3197
3198 MDRV_FRAMES_PER_SECOND(60)
3199 MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
3200 MDRV_INTERLEAVE(100)
3201
3202 /* video hardware */
3203 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
3204 MDRV_SCREEN_SIZE(40*8, 32*8)
3205 MDRV_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
3206 MDRV_GFXDECODE(taitoz_gfxdecodeinfo)
3207 MDRV_PALETTE_LENGTH(4096)
3208
3209 MDRV_VIDEO_START(taitoz)
3210 MDRV_VIDEO_UPDATE(bshark)
3211
3212 /* sound hardware */
3213 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
3214 MDRV_SOUND_ADD(YM2610, ym2610_interfaceb)
3215 MACHINE_DRIVER_END
3216
3217
3218 static MACHINE_DRIVER_START( sci )
3219
3220 /* basic machine hardware */
3221 MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */
3222 MDRV_CPU_MEMORY(sci_readmem,sci_writemem)
3223 MDRV_CPU_VBLANK_INT(sci_interrupt,1)
3224
3225 MDRV_CPU_ADD(Z80,16000000/4)
3226 MDRV_CPU_FLAGS(CPU_AUDIO_CPU) /* 4 MHz ??? */
3227 MDRV_CPU_MEMORY(z80_sound_readmem,z80_sound_writemem)
3228
3229 MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */
3230 MDRV_CPU_MEMORY(sci_cpub_readmem,sci_cpub_writemem)
3231 MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
3232
3233 MDRV_FRAMES_PER_SECOND(60)
3234 MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
3235 MDRV_INTERLEAVE(50)
3236
3237 /* video hardware */
3238 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
3239 MDRV_SCREEN_SIZE(40*8, 32*8)
3240 MDRV_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
3241 MDRV_GFXDECODE(taitoz_gfxdecodeinfo)
3242 MDRV_PALETTE_LENGTH(4096)
3243
3244 MDRV_VIDEO_START(taitoz)
3245 MDRV_VIDEO_UPDATE(sci)
3246
3247 /* sound hardware */
3248 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
3249 MDRV_SOUND_ADD(YM2610, ym2610_interface)
3250 MACHINE_DRIVER_END
3251
3252
3253 static MACHINE_DRIVER_START( nightstr )
3254
3255 /* basic machine hardware */
3256 MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */
3257 MDRV_CPU_MEMORY(nightstr_readmem,nightstr_writemem)
3258 MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
3259
3260 MDRV_CPU_ADD(Z80,16000000/4)
3261 MDRV_CPU_FLAGS(CPU_AUDIO_CPU) /* 4 MHz ??? */
3262 MDRV_CPU_MEMORY(z80_sound_readmem,z80_sound_writemem)
3263
3264 MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */
3265 MDRV_CPU_MEMORY(nightstr_cpub_readmem,nightstr_cpub_writemem)
3266 MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
3267
3268 MDRV_FRAMES_PER_SECOND(60)
3269 MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
3270 MDRV_INTERLEAVE(100)
3271
3272 /* video hardware */
3273 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
3274 MDRV_SCREEN_SIZE(40*8, 32*8)
3275 MDRV_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
3276 MDRV_GFXDECODE(chasehq_gfxdecodeinfo)
3277 MDRV_PALETTE_LENGTH(4096)
3278
3279 MDRV_VIDEO_START(taitoz)
3280 MDRV_VIDEO_UPDATE(chasehq)
3281
3282 /* sound hardware */
3283 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
3284 MDRV_SOUND_ADD(YM2610, ym2610_interface)
3285 MACHINE_DRIVER_END
3286
3287
3288 static MACHINE_DRIVER_START( aquajack )
3289
3290 /* basic machine hardware */
3291 MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */
3292 MDRV_CPU_MEMORY(aquajack_readmem,aquajack_writemem)
3293 MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
3294
3295 MDRV_CPU_ADD(Z80,16000000/4)
3296 MDRV_CPU_FLAGS(CPU_AUDIO_CPU) /* 4 MHz ??? */
3297 MDRV_CPU_MEMORY(z80_sound_readmem,z80_sound_writemem)
3298
3299 MDRV_CPU_ADD(M68000, 12000000) /* 12 MHz ??? */
3300 MDRV_CPU_MEMORY(aquajack_cpub_readmem,aquajack_cpub_writemem)
3301 MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
3302
3303 MDRV_FRAMES_PER_SECOND(60)
3304 MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
3305 MDRV_INTERLEAVE(500)
3306
3307 /* video hardware */
3308 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
3309 MDRV_SCREEN_SIZE(40*8, 32*8)
3310 MDRV_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
3311 MDRV_GFXDECODE(taitoz_gfxdecodeinfo)
3312 MDRV_PALETTE_LENGTH(4096)
3313
3314 MDRV_VIDEO_START(taitoz)
3315 MDRV_VIDEO_UPDATE(aquajack)
3316
3317 /* sound hardware */
3318 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
3319 MDRV_SOUND_ADD(YM2610, ym2610_interface)
3320 MACHINE_DRIVER_END
3321
3322
3323 static MACHINE_DRIVER_START( spacegun )
3324
3325 /* basic machine hardware */
3326 MDRV_CPU_ADD(M68000, 16000000) /* 16 MHz ??? */
3327 MDRV_CPU_MEMORY(spacegun_readmem,spacegun_writemem)
3328 MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
3329
3330 MDRV_CPU_ADD(M68000, 16000000) /* 16 MHz ??? */
3331 MDRV_CPU_MEMORY(spacegun_cpub_readmem,spacegun_cpub_writemem)
3332 MDRV_CPU_VBLANK_INT(irq4_line_hold,1)
3333
3334 MDRV_FRAMES_PER_SECOND(60)
3335 MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
3336
3337 MDRV_NVRAM_HANDLER(spacegun)
3338
3339 /* video hardware */
3340 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
3341 MDRV_SCREEN_SIZE(40*8, 32*8)
3342 MDRV_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
3343 MDRV_GFXDECODE(taitoz_gfxdecodeinfo)
3344 MDRV_PALETTE_LENGTH(4096)
3345
3346 MDRV_VIDEO_START(spacegun)
3347 MDRV_VIDEO_UPDATE(spacegun)
3348
3349 /* sound hardware */
3350 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
3351 MDRV_SOUND_ADD(YM2610, ym2610_interfaceb)
3352 MACHINE_DRIVER_END
3353
3354
3355 static MACHINE_DRIVER_START( dblaxle )
3356
3357 /* basic machine hardware */
3358 MDRV_CPU_ADD(M68000, 16000000) /* 16 MHz ??? */
3359 MDRV_CPU_MEMORY(dblaxle_readmem,dblaxle_writemem)
3360 MDRV_CPU_VBLANK_INT(dblaxle_interrupt,1)
3361
3362 MDRV_CPU_ADD(Z80,16000000/4)
3363 MDRV_CPU_FLAGS(CPU_AUDIO_CPU) /* 4 MHz ??? */
3364 MDRV_CPU_MEMORY(z80_sound_readmem,z80_sound_writemem)
3365
3366 MDRV_CPU_ADD(M68000, 16000000) /* 16 MHz ??? */
3367 MDRV_CPU_MEMORY(dblaxle_cpub_readmem,dblaxle_cpub_writemem)
3368 MDRV_CPU_VBLANK_INT(dblaxle_cpub_interrupt,1)
3369
3370 MDRV_FRAMES_PER_SECOND(60)
3371 MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
3372 MDRV_INTERLEAVE(10)
3373
3374 /* video hardware */
3375 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
3376 MDRV_SCREEN_SIZE(40*8, 32*8)
3377 MDRV_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
3378 MDRV_GFXDECODE(dblaxle_gfxdecodeinfo)
3379 MDRV_PALETTE_LENGTH(4096)
3380
3381 MDRV_VIDEO_START(taitoz)
3382 MDRV_VIDEO_UPDATE(dblaxle)
3383
3384 /* sound hardware */
3385 MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
3386 MDRV_SOUND_ADD(YM2610, ym2610_interface)
3387 MACHINE_DRIVER_END
3388
3389
3390 /***************************************************************************
3391 DRIVERS
3392
3393 Contcirc, Dblaxle sound sample rom order is uncertain as sound imperfect
3394 ***************************************************************************/
3395
3396 ROM_START( contcirc )
3397 ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 256K for 68000 code (CPU A) */
3398 ROM_LOAD16_BYTE( "ic25", 0x00000, 0x20000, CRC(f5c92e42) SHA1(42dfa1895e601df76d7022b83f05c4e5c843fd12) )
3399 ROM_LOAD16_BYTE( "cc_26.bin", 0x00001, 0x20000, CRC(1345ebe6) SHA1(88b9cc8ba2f7061beb8f6b763583cd45b03bcea1) )
3400
3401 ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 256K for 68000 code (CPU B) */
3402 ROM_LOAD16_BYTE( "ic35", 0x00000, 0x20000, CRC(16522f2d) SHA1(1d2823d61518936d342df3ed712da5bdfdf6e55a) )
3403 ROM_LOAD16_BYTE( "cc_36.bin", 0x00001, 0x20000, CRC(a1732ea5) SHA1(b773add433c20633e7acbc99d5cfeb7ccde83371) )
3404
3405 ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* Z80 sound cpu */
3406 ROM_LOAD( "b33-30", 0x00000, 0x04000, CRC(d8746234) SHA1(39132eedfe2ff4e3133f8020304da0d04dd757db) )
3407 ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */
3408
3409 ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
3410 ROM_LOAD( "b33-02", 0x00000, 0x80000, CRC(f6fb3ba2) SHA1(19b7c4cf33c4737405ebe53e7342578454e6ef95) ) /* SCR 8x8 */
3411
3412 ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
3413 ROM_LOAD32_BYTE( "b33-06", 0x000000, 0x080000, CRC(2cb40599) SHA1(48b269610f80a42608f563742e5266dcf11638d1) ) /* OBJ 16x8 */
3414 ROM_LOAD32_BYTE( "b33-05", 0x000001, 0x080000, CRC(bddf9eea) SHA1(284f4ba3dc107b4e26424963d8206c5ec4882983) )
3415 ROM_LOAD32_BYTE( "b33-04", 0x000002, 0x080000, CRC(8df866a2) SHA1(6b87d8e683fe7d31070b16620ebfee4edf7711b8) )
3416 ROM_LOAD32_BYTE( "b33-03", 0x000003, 0x080000, CRC(4f6c36d9) SHA1(18b15a991c3daf22b7f3f144edf3bd2abb3917eb) )
3417
3418 ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */
3419 ROM_LOAD( "b33-01", 0x00000, 0x80000, CRC(f11f2be8) SHA1(72ae08dc5bf5f6901fbb52d3b1dabcba90929b38) ) /* ROD, road lines */
3420
3421 ROM_REGION16_LE( 0x80000, REGION_USER1, 0 )
3422 ROM_LOAD16_WORD( "b33-07", 0x00000, 0x80000, CRC(151e1f52) SHA1(118c673d74f27c4e76b321cc0e84f166d9f0d412) ) /* STY spritemap */
3423
3424 ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */
3425 ROM_LOAD( "b33-09", 0x00000, 0x80000, CRC(1e6724b5) SHA1(48bb96b648605a9ceb88ff3b175a87226583c3d6) )
3426 ROM_LOAD( "b33-10", 0x80000, 0x80000, CRC(e9ce03ab) SHA1(17324e8f0422118bc0912eba5750d80469f40b78) )
3427
3428 ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */
3429 ROM_LOAD( "b33-08", 0x00000, 0x80000, CRC(caa1c4c8) SHA1(15ef4f36e56fab793d2249252c456677ca6a85c9) )
3430
3431 ROM_REGION( 0x10000, REGION_USER2, 0 )
3432 ROM_LOAD( "b14-30", 0x00000, 0x10000, CRC(dccb0c7f) SHA1(42f0af72f559133b74912a4478e1323062be4b77) ) /* unused roms */
3433 ROM_LOAD( "b14-31", 0x00000, 0x02000, CRC(5c6b013d) SHA1(6d02d4560076213b6fb6fe856143bb533090603e) )
3434 ROM_END
3435
3436 ROM_START( contcrcu )
3437 ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 256K for 68000 code (CPU A) */
3438 ROM_LOAD16_BYTE( "ic25", 0x00000, 0x20000, CRC(f5c92e42) SHA1(42dfa1895e601df76d7022b83f05c4e5c843fd12) )
3439 ROM_LOAD16_BYTE( "ic26", 0x00001, 0x20000, CRC(e7c1d1fa) SHA1(75e851629a54facb8804ee8a953ab3265633bbf4) )
3440
3441 ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 256K for 68000 code (CPU B) */
3442 ROM_LOAD16_BYTE( "ic35", 0x00000, 0x20000, CRC(16522f2d) SHA1(1d2823d61518936d342df3ed712da5bdfdf6e55a) )
3443 ROM_LOAD16_BYTE( "ic36", 0x00001, 0x20000, CRC(d6741e33) SHA1(8e86789e1664a34ceed85434fd3186f2571f0c4a) )
3444
3445 ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* Z80 sound cpu */
3446 ROM_LOAD( "b33-30", 0x00000, 0x04000, CRC(d8746234) SHA1(39132eedfe2ff4e3133f8020304da0d04dd757db) )
3447 ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */
3448
3449 ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
3450 ROM_LOAD( "b33-02", 0x00000, 0x80000, CRC(f6fb3ba2) SHA1(19b7c4cf33c4737405ebe53e7342578454e6ef95) ) /* SCR 8x8 */
3451
3452 ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
3453 ROM_LOAD32_BYTE( "b33-06", 0x000000, 0x080000, CRC(2cb40599) SHA1(48b269610f80a42608f563742e5266dcf11638d1) ) /* OBJ 16x8 */
3454 ROM_LOAD32_BYTE( "b33-05", 0x000001, 0x080000, CRC(bddf9eea) SHA1(284f4ba3dc107b4e26424963d8206c5ec4882983) )
3455 ROM_LOAD32_BYTE( "b33-04", 0x000002, 0x080000, CRC(8df866a2) SHA1(6b87d8e683fe7d31070b16620ebfee4edf7711b8) )
3456 ROM_LOAD32_BYTE( "b33-03", 0x000003, 0x080000, CRC(4f6c36d9) SHA1(18b15a991c3daf22b7f3f144edf3bd2abb3917eb) )
3457
3458 ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */
3459 ROM_LOAD( "b33-01", 0x00000, 0x80000, CRC(f11f2be8) SHA1(72ae08dc5bf5f6901fbb52d3b1dabcba90929b38) ) /* ROD, road lines */
3460
3461 ROM_REGION16_LE( 0x80000, REGION_USER1, 0 )
3462 ROM_LOAD16_WORD( "b33-07", 0x00000, 0x80000, CRC(151e1f52) SHA1(118c673d74f27c4e76b321cc0e84f166d9f0d412) ) /* STY spritemap */
3463
3464 ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */
3465 ROM_LOAD( "b33-09", 0x00000, 0x80000, CRC(1e6724b5) SHA1(48bb96b648605a9ceb88ff3b175a87226583c3d6) )
3466 ROM_LOAD( "b33-10", 0x80000, 0x80000, CRC(e9ce03ab) SHA1(17324e8f0422118bc0912eba5750d80469f40b78) )
3467
3468 ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */
3469 ROM_LOAD( "b33-08", 0x00000, 0x80000, CRC(caa1c4c8) SHA1(15ef4f36e56fab793d2249252c456677ca6a85c9) )
3470
3471 ROM_REGION( 0x10000, REGION_USER2, 0 )
3472 ROM_LOAD( "b14-30", 0x00000, 0x10000, CRC(dccb0c7f) SHA1(42f0af72f559133b74912a4478e1323062be4b77) ) /* unused roms */
3473 ROM_LOAD( "b14-31", 0x00000, 0x02000, CRC(5c6b013d) SHA1(6d02d4560076213b6fb6fe856143bb533090603e) )
3474 ROM_END
3475
3476 ROM_START( chasehq )
3477 ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */
3478 ROM_LOAD16_BYTE( "b52-130.36", 0x00000, 0x20000, CRC(4e7beb46) SHA1(b8890c4a2121aa93cfc3a41ddbb3b840d0804cfa) )
3479 ROM_LOAD16_BYTE( "b52-136.29", 0x00001, 0x20000, CRC(2f414df0) SHA1(0daad8b1f7512a5af0722983751841b5b18064ac) )
3480 ROM_LOAD16_BYTE( "b52-131.37", 0x40000, 0x20000, CRC(aa945d83) SHA1(9d8a8186a199cacc0e24cf1ee75d81ab8b056406) )
3481 ROM_LOAD16_BYTE( "b52-129.30", 0x40001, 0x20000, CRC(0eaebc08) SHA1(1dde3304b251ddeb52f1378ef3845269c3667169) )
3482
3483 ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* 128K for 68000 code (CPU B) */
3484 ROM_LOAD16_BYTE( "b52-132.39", 0x00000, 0x10000, CRC(a2f54789) SHA1(941a6470e3a5ae35d079657260a8d7d6a9fca122) )
3485 ROM_LOAD16_BYTE( "b52-133.55", 0x00001, 0x10000, CRC(12232f95) SHA1(2894b95fc1d0a6e5b323bf3e7f1968f02b30a845) )
3486
3487 ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* Z80 sound cpu */
3488 ROM_LOAD( "b52-137.51", 0x00000, 0x04000, CRC(37abb74a) SHA1(1feb1e49102c13a90e02c150472545cd9f6334da) )
3489 ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */
3490
3491 ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
3492 ROM_LOAD( "b52-29.27", 0x00000, 0x80000, CRC(8366d27c) SHA1(d7c5f588b39742927228ce73e5d69bda1e903df6) ) /* SCR 8x8 */
3493
3494 ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
3495 ROM_LOAD32_BYTE( "b52-34.5", 0x000000, 0x080000, CRC(7d8dce36) SHA1(ca082e647d10378144c05a70a8e4fe352d95eeaf) )
3496 ROM_LOAD32_BYTE( "b52-35.7", 0x000001, 0x080000, CRC(78eeec0d) SHA1(2e82186ca17c579816865ef21c52aef9e133fbf5) ) /* OBJ A 16x16 */
3497 ROM_LOAD32_BYTE( "b52-36.9", 0x000002, 0x080000, CRC(61e89e91) SHA1(f655b3caa37a8835c2eb11f4d72e985636ac5379) )
3498 ROM_LOAD32_BYTE( "b52-37.11", 0x000003, 0x080000, CRC(f02e47b9) SHA1(093864bd18bd58dafa57990e999f394ca3124452) )
3499
3500 ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */
3501 ROM_LOAD( "b52-28.4", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */
3502
3503 ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE )
3504 ROM_LOAD32_BYTE( "b52-30.4", 0x000000, 0x080000, CRC(1b8cc647) SHA1(8807fe01b6804507564fc179adf995bf86521fda) )
3505 ROM_LOAD32_BYTE( "b52-31.6", 0x000001, 0x080000, CRC(f1998e20) SHA1(b03d4e373e88933391f3533b885817edfca4cfdf) ) /* OBJ B 16x16 */
3506 ROM_LOAD32_BYTE( "b52-32.8", 0x000002, 0x080000, CRC(8620780c) SHA1(2545fd8fb03dcddc3da86d5ea06a6dc915acd1a1) )
3507 ROM_LOAD32_BYTE( "b52-33.10", 0x000003, 0x080000, CRC(e6f4b8c4) SHA1(8d15c75a16953aa56fb3dc6fd3b691e227bef622) )
3508
3509 ROM_REGION16_LE( 0x80000, REGION_USER1, 0 )
3510 ROM_LOAD16_WORD( "b52-38.34", 0x00000, 0x80000, CRC(5b5bf7f6) SHA1(71dd5b40b83870d351c9ecaccc4fb98c3a6740ae) ) /* STY spritemap */
3511
3512 ROM_REGION( 0x180000, REGION_SOUND1, 0 ) /* ADPCM samples */
3513 ROM_LOAD( "b52-115.71", 0x000000, 0x080000, CRC(4e117e93) SHA1(51d893fa21793335878c76f6d5987d99da60be04) )
3514 ROM_LOAD( "b52-114.72", 0x080000, 0x080000, CRC(3a73d6b1) SHA1(419f02a875b30913331db207e344d0eaa275297e) )
3515 ROM_LOAD( "b52-113.73", 0x100000, 0x080000, CRC(2c6a3a05) SHA1(f2f0dfbbbb6930bf53025064ebae9c07a95c6deb) )
3516
3517 ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */
3518 ROM_LOAD( "b52-116.70", 0x00000, 0x80000, CRC(ad46983c) SHA1(6fcad67456fbd8c967cd4786815f70b57a24a969) )
3519
3520 ROM_REGION( 0x10000, REGION_USER2, 0 )
3521 ROM_LOAD( "b52-01.7", 0x00000, 0x00100, CRC(89719d17) SHA1(50181b8172b0fc08b149db18caf10659be9c517f) ) /* unused roms */
3522 ROM_LOAD( "b52-03.135", 0x00000, 0x00400, CRC(a3f8490d) SHA1(349b8c9ba914603f72f800a3fc8e8277d756deb1) )
3523 ROM_LOAD( "b52-06.24", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )
3524 ROM_LOAD( "b52-18.93", 0x00000, 0x00100, CRC(60bdaf1a) SHA1(0cb9c6b821de9ccc1f38336608dd7ead46cb8d24) ) // identical to b52-18b
3525 ROM_LOAD( "b52-18a", 0x00000, 0x00100, CRC(6271be0d) SHA1(84282af98fc0de10e88282f7187cd865133ed6ce) )
3526 ROM_LOAD( "b52-49.68", 0x00000, 0x02000, CRC(60dd2ed1) SHA1(8673b6b3355975fb91cd1491e0ac7c0f590e3824) )
3527 ROM_LOAD( "b52-50.66", 0x00000, 0x10000, CRC(c189781c) SHA1(af3904ce51f715970965d110313491dbacf188b8) )
3528 ROM_LOAD( "b52-51.65", 0x00000, 0x10000, CRC(30cc1f79) SHA1(3b0e3e6e8bce7a7d04a5b0103e2ce4e18e52a68e) )
3529 ROM_LOAD( "b52-126.136", 0x00000, 0x00400, CRC(fa2f840e) SHA1(dd61ee6833bd43bbf619d36ec46f2bfa00880f40) )
3530 ROM_LOAD( "b52-127.156", 0x00000, 0x00400, CRC(77682a4f) SHA1(da2b3143f1c8688a22d8ec47bbb73b2f2e578480) )
3531
3532 // Various pals are listed in Malcor's notes: b52-118 thru 125,
3533 // b52-16 thru 21, b52-25 thru 27
3534 ROM_END
3535
3536 ROM_START( chasehqj )
3537 ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */
3538 ROM_LOAD16_BYTE( "b52-140.36", 0x00000, 0x20000, CRC(c1298a4b) SHA1(41981b72c9ebbea8f8a4aa32e74b9ed46dd71e32) )
3539 ROM_LOAD16_BYTE( "b52-139.29", 0x00001, 0x20000, CRC(997f732e) SHA1(0f7bd4b3c53e1f14830b3c288f2175e7c125c2cc) )
3540 ROM_LOAD16_BYTE( "b52-131.37", 0x40000, 0x20000, CRC(aa945d83) SHA1(9d8a8186a199cacc0e24cf1ee75d81ab8b056406) )
3541 ROM_LOAD16_BYTE( "b52-129.30", 0x40001, 0x20000, CRC(0eaebc08) SHA1(1dde3304b251ddeb52f1378ef3845269c3667169) )
3542
3543 ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* 128K for 68000 code (CPU B) */
3544 ROM_LOAD16_BYTE( "b52-132.39", 0x00000, 0x10000, CRC(a2f54789) SHA1(941a6470e3a5ae35d079657260a8d7d6a9fca122) )
3545 ROM_LOAD16_BYTE( "b52-133.55", 0x00001, 0x10000, CRC(12232f95) SHA1(2894b95fc1d0a6e5b323bf3e7f1968f02b30a845) )
3546
3547 ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* Z80 sound cpu */
3548 ROM_LOAD( "b52-134.51", 0x00000, 0x04000, CRC(91faac7f) SHA1(05f00e0909444566877d0ef678bae49f107e1628) )
3549 ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */
3550
3551 ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
3552 ROM_LOAD( "b52-29.27", 0x00000, 0x80000, CRC(8366d27c) SHA1(d7c5f588b39742927228ce73e5d69bda1e903df6) ) /* SCR 8x8*/
3553
3554 ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
3555 ROM_LOAD32_BYTE( "b52-34.5", 0x000000, 0x080000, CRC(7d8dce36) SHA1(ca082e647d10378144c05a70a8e4fe352d95eeaf) )
3556 ROM_LOAD32_BYTE( "b52-35.7", 0x000001, 0x080000, CRC(78eeec0d) SHA1(2e82186ca17c579816865ef21c52aef9e133fbf5) ) /* OBJ A 16x16 */
3557 ROM_LOAD32_BYTE( "b52-36.9", 0x000002, 0x080000, CRC(61e89e91) SHA1(f655b3caa37a8835c2eb11f4d72e985636ac5379) )
3558 ROM_LOAD32_BYTE( "b52-37.11", 0x000003, 0x080000, CRC(f02e47b9) SHA1(093864bd18bd58dafa57990e999f394ca3124452) )
3559
3560 ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */
3561 ROM_LOAD( "b52-28.4", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */
3562
3563 ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE )
3564 ROM_LOAD32_BYTE( "b52-30.4", 0x000000, 0x080000, CRC(1b8cc647) SHA1(8807fe01b6804507564fc179adf995bf86521fda) )
3565 ROM_LOAD32_BYTE( "b52-31.6", 0x000001, 0x080000, CRC(f1998e20) SHA1(b03d4e373e88933391f3533b885817edfca4cfdf) ) /* OBJ B 16x16 */
3566 ROM_LOAD32_BYTE( "b52-32.8", 0x000002, 0x080000, CRC(8620780c) SHA1(2545fd8fb03dcddc3da86d5ea06a6dc915acd1a1) )
3567 ROM_LOAD32_BYTE( "b52-33.10", 0x000003, 0x080000, CRC(e6f4b8c4) SHA1(8d15c75a16953aa56fb3dc6fd3b691e227bef622) )
3568
3569 ROM_REGION16_LE( 0x80000, REGION_USER1, 0 )
3570 ROM_LOAD16_WORD( "b52-38.34", 0x00000, 0x80000, CRC(5b5bf7f6) SHA1(71dd5b40b83870d351c9ecaccc4fb98c3a6740ae) ) /* STY spritemap */
3571
3572 ROM_REGION( 0x180000, REGION_SOUND1, 0 ) /* ADPCM samples */
3573 ROM_LOAD( "b52-41.71", 0x000000, 0x80000, CRC(8204880c) SHA1(4dfd6454b4a4c04db3593e98648afbfe8d1f59ed) )
3574 ROM_LOAD( "b52-40.72", 0x080000, 0x80000, CRC(f0551055) SHA1(4498cd058a52d5e87c6d502e844908a5df3abf2a) )
3575 ROM_LOAD( "b52-39.73", 0x100000, 0x80000, CRC(ac9cbbd3) SHA1(792f41fef37ff35067fd0173d944f90279176649) )
3576
3577 ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */
3578 ROM_LOAD( "b52-42.70", 0x00000, 0x80000, CRC(6e617df1) SHA1(e3d1678132130c66506f2e1419db2f6b5b062f74) )
3579
3580 ROM_REGION( 0x10000, REGION_USER2, 0 )
3581 ROM_LOAD( "b52-01.7", 0x00000, 0x00100, CRC(89719d17) SHA1(50181b8172b0fc08b149db18caf10659be9c517f) ) /* unused roms */
3582 ROM_LOAD( "b52-03.135", 0x00000, 0x00400, CRC(a3f8490d) SHA1(349b8c9ba914603f72f800a3fc8e8277d756deb1) )
3583 ROM_LOAD( "b52-06.24", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )
3584 ROM_LOAD( "b52-18.93", 0x00000, 0x00100, CRC(60bdaf1a) SHA1(0cb9c6b821de9ccc1f38336608dd7ead46cb8d24) ) // identical to b52-18b
3585 ROM_LOAD( "b52-18a", 0x00000, 0x00100, CRC(6271be0d) SHA1(84282af98fc0de10e88282f7187cd865133ed6ce) )
3586 ROM_LOAD( "b52-49.68", 0x00000, 0x02000, CRC(60dd2ed1) SHA1(8673b6b3355975fb91cd1491e0ac7c0f590e3824) )
3587 ROM_LOAD( "b52-50.66", 0x00000, 0x10000, CRC(c189781c) SHA1(af3904ce51f715970965d110313491dbacf188b8) )
3588 ROM_LOAD( "b52-51.65", 0x00000, 0x10000, CRC(30cc1f79) SHA1(3b0e3e6e8bce7a7d04a5b0103e2ce4e18e52a68e) )
3589 ROM_LOAD( "b52-126.136", 0x00000, 0x00400, CRC(fa2f840e) SHA1(dd61ee6833bd43bbf619d36ec46f2bfa00880f40) )
3590 ROM_LOAD( "b52-127.156", 0x00000, 0x00400, CRC(77682a4f) SHA1(da2b3143f1c8688a22d8ec47bbb73b2f2e578480) )
3591 ROM_END
3592
3593 ROM_START( enforce )
3594 ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 256K for 68000 code (CPU A) */
3595 ROM_LOAD16_BYTE( "b58-27.27", 0x00000, 0x20000, CRC(a1aa0191) SHA1(193d936e1bfe0da4ac984aba65d3e4e6c93a4c11) )
3596 ROM_LOAD16_BYTE( "b58-19.19", 0x00001, 0x20000, CRC(40f43da3) SHA1(bb3d6c6db8df77674bb76c16992d05c297d97c9f) )
3597
3598 ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 256K for 68000 code (CPU B) */
3599 ROM_LOAD16_BYTE( "b58-26.26", 0x00000, 0x20000, CRC(e823c85c) SHA1(199b19e81c76eb936f4cf31957ae08bed1395bda) )
3600 ROM_LOAD16_BYTE( "b58-18.18", 0x00001, 0x20000, CRC(65328a3e) SHA1(f51ca107910629e030678e183cc8fd06d2569098) )
3601
3602 ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* Z80 sound cpu */
3603 ROM_LOAD( "b58-32.41", 0x00000, 0x04000, CRC(f3fd8eca) SHA1(3b1ab64984ea43805b6494f8add26210ed1175c5) )
3604 ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */
3605
3606 ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
3607 ROM_LOAD( "b58-09.13", 0x00000, 0x80000, CRC(9ffd5b31) SHA1(0214fb32012a48560ca9c6ed5ee969d3c41cf95c) ) /* SCR 8x8 */
3608
3609 ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
3610 ROM_LOAD32_BYTE( "b58-04.7", 0x000000, 0x080000, CRC(9482f08d) SHA1(3fc74b9bebca1d82b300ba72c7297c3bcd69cfa9) )
3611 ROM_LOAD32_BYTE( "b58-03.6", 0x000001, 0x080000, CRC(158bc440) SHA1(ceab296146363a2e9a48f62118fba6123b4b5a1b) ) /* OBJ 16x8 */
3612 ROM_LOAD32_BYTE( "b58-02.2", 0x000002, 0x080000, CRC(6a6e307c) SHA1(fc4a68220e0dd0e64d75ba7c7af0c1ac97dc7fd9) )
3613 ROM_LOAD32_BYTE( "b58-01.1", 0x000003, 0x080000, CRC(01e9f0a8) SHA1(0d3a4dc81702e3c57c790eb8a45caca36cb47d4c) )
3614
3615 ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */
3616 ROM_LOAD( "b58-06.116", 0x00000, 0x80000, CRC(b3495d70) SHA1(ead4c2fd20b8f103a849201c7344cded013eb8bb) ) /* ROD, road lines */
3617
3618 ROM_REGION16_LE( 0x80000, REGION_USER1, 0 )
3619 ROM_LOAD16_WORD( "b58-05.71", 0x00000, 0x80000, CRC(d1f4991b) SHA1(f1c5a9b8dce994d013290e98fda7bedf73e95900) ) /* STY spritemap */
3620
3621 ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */
3622 ROM_LOAD( "b58-07.11", 0x000000, 0x080000, CRC(eeb5ba08) SHA1(fe40333e09339c76e503ce87b42a89b48d487016) )
3623 ROM_LOAD( "b58-08.12", 0x080000, 0x080000, CRC(049243cf) SHA1(1f3099b6d764114dc4161ed308369d0f3148dc4e) )
3624
3625 ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples ??? */
3626 ROM_LOAD( "b58-10.14", 0x00000, 0x80000, CRC(edce0cc1) SHA1(1f6cbc60502b8b12b349e48446ce3a4a1f76bccd) ) /* ??? */
3627
3628 ROM_REGION( 0x10000, REGION_USER2, 0 )
3629 ROM_LOAD( "b58-26a.104", 0x00000, 0x10000, CRC(dccb0c7f) SHA1(42f0af72f559133b74912a4478e1323062be4b77) ) /* unused roms */
3630 ROM_LOAD( "b58-27.56", 0x00000, 0x02000, CRC(5c6b013d) SHA1(6d02d4560076213b6fb6fe856143bb533090603e) )
3631 ROM_LOAD( "b58-23.52", 0x00000, 0x00100, CRC(7b7d8ff4) SHA1(18842ed8160739cd2e2ccc2db605153dbed6cc0a) )
3632 ROM_LOAD( "b58-24.51", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )
3633 ROM_LOAD( "b58-25.75", 0x00000, 0x00100, CRC(de547342) SHA1(3b2b116d4016ddbf46c41c625c7fcfd76129baa7) )
3634 // Add pals...
3635 ROM_END
3636
3637 ROM_START( bshark )
3638 ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */
3639 ROM_LOAD16_BYTE( "c34_71.98", 0x00000, 0x20000, CRC(df1fa629) SHA1(6cb207e577fac85da654f3dc56e2f9f25c38a76d) )
3640 ROM_LOAD16_BYTE( "c34_69.75", 0x00001, 0x20000, CRC(a54c137a) SHA1(632bf2d65f54035de2ecb87648dafa877c45e428) )
3641 ROM_LOAD16_BYTE( "c34_70.97", 0x40000, 0x20000, CRC(d77d81e2) SHA1(d60e586cefd9001e87cae583ca25bf5a8a461d8d) )
3642 ROM_LOAD16_BYTE( "bshark67.bin", 0x40001, 0x20000, CRC(39307c74) SHA1(65d1cb6b0baee29c1439180b8b4c6907e20b2921) )
3643
3644 ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 512K for 68000 code (CPU B) */
3645 ROM_LOAD16_BYTE( "c34_74.128", 0x00000, 0x20000, CRC(6869fa99) SHA1(16221f25c865a81ca4f6a987b6de02a3ccf3208c) )
3646 ROM_LOAD16_BYTE( "c34_72.112", 0x00001, 0x20000, CRC(c09c0f91) SHA1(32c78924617328abb11c094f89a90a92e72ed5e6) )
3647 ROM_LOAD16_BYTE( "c34_75.129", 0x40000, 0x20000, CRC(6ba65542) SHA1(9ba5af9dd240a198dfa760ca14b0f0c84eb307c9) )
3648 ROM_LOAD16_BYTE( "c34_73.113", 0x40001, 0x20000, CRC(f2fe62b5) SHA1(e31b5989b747de451ee6c2a5e15ec75235d84e0d) )
3649
3650 ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
3651 ROM_LOAD( "c34_05.3", 0x00000, 0x80000, CRC(596b83da) SHA1(826cf1e48a017a0cbfcc4a4f507dfb285594178b) ) /* SCR 8x8 */
3652
3653 ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
3654 ROM_LOAD32_BYTE( "c34_04.17", 0x000000, 0x080000, CRC(2446b0da) SHA1(bce5c73533e2bb7dfa7f18fad510f818cf1a542a) ) /* OBJ 16x8 */
3655 ROM_LOAD32_BYTE( "c34_03.16", 0x000001, 0x080000, CRC(a18eab78) SHA1(155f0efbfe73e18355804477d4b8954bb47bf1ef) )
3656 ROM_LOAD32_BYTE( "c34_02.15", 0x000002, 0x080000, CRC(8488ba10) SHA1(60f8f0dc9d4bc6bc452527250221c9915e9dfe6e) )
3657 ROM_LOAD32_BYTE( "c34_01.14", 0x000003, 0x080000, CRC(3ebe8c63) SHA1(fa7403bf895c041cb64234209c944683ae372e57) )
3658
3659 ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */
3660 ROM_LOAD( "c34_07.42", 0x00000, 0x80000, CRC(edb07808) SHA1(f32b4b93e9125536376d96fbca76c2b2f5f78656) ) /* ROD, road lines */
3661
3662 ROM_REGION16_LE( 0x80000, REGION_USER1, 0 )
3663 ROM_LOAD16_WORD( "c34_06.12", 0x00000, 0x80000, CRC(d200b6eb) SHA1(6bfe3a7dde8d4e983521877d2bb176f5d126b763) ) /* STY spritemap */
3664
3665 ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */
3666 ROM_LOAD( "c34_08.127", 0x00000, 0x80000, CRC(89a30450) SHA1(96b96ca5a3e20cdceb9ac5ddf377fb21a9a529fb) )
3667
3668 ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */
3669 ROM_LOAD( "c34_09.126", 0x00000, 0x80000, CRC(39d12b50) SHA1(5c5d1369597604376943e4825f6c09cc28d66047) )
3670
3671 ROM_REGION( 0x10000, REGION_USER2, 0 )
3672 ROM_LOAD( "c34_18.22", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) ) /* unused roms */
3673 ROM_LOAD( "c34_19.72", 0x00000, 0x00100, CRC(2ee9c404) SHA1(3a2ddaaaf7abe9f47f7e062b002fd3a61c80f60b) )
3674 ROM_LOAD( "c34_20.89", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )
3675 ROM_LOAD( "c34_21.7", 0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) )
3676 ROM_LOAD( "c34_22.8", 0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) )
3677 ROM_END
3678
3679 ROM_START( bsharkj )
3680 ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */
3681 ROM_LOAD16_BYTE( "c34_71.98", 0x00000, 0x20000, CRC(df1fa629) SHA1(6cb207e577fac85da654f3dc56e2f9f25c38a76d) )
3682 ROM_LOAD16_BYTE( "c34_69.75", 0x00001, 0x20000, CRC(a54c137a) SHA1(632bf2d65f54035de2ecb87648dafa877c45e428) )
3683 ROM_LOAD16_BYTE( "c34_70.97", 0x40000, 0x20000, CRC(d77d81e2) SHA1(d60e586cefd9001e87cae583ca25bf5a8a461d8d) )
3684 ROM_LOAD16_BYTE( "c34_66.74", 0x40001, 0x20000, CRC(a0392dce) SHA1(5d20f39b75e921fda82c33990463cec73879d113) )
3685
3686 ROM_REGION( 0x80000, REGION_CPU2, 0 ) /* 512K for 68000 code (CPU B) */
3687 ROM_LOAD16_BYTE( "c34_74.128", 0x00000, 0x20000, CRC(6869fa99) SHA1(16221f25c865a81ca4f6a987b6de02a3ccf3208c) )
3688 ROM_LOAD16_BYTE( "c34_72.112", 0x00001, 0x20000, CRC(c09c0f91) SHA1(32c78924617328abb11c094f89a90a92e72ed5e6) )
3689 ROM_LOAD16_BYTE( "c34_75.129", 0x40000, 0x20000, CRC(6ba65542) SHA1(9ba5af9dd240a198dfa760ca14b0f0c84eb307c9) )
3690 ROM_LOAD16_BYTE( "c34_73.113", 0x40001, 0x20000, CRC(f2fe62b5) SHA1(e31b5989b747de451ee6c2a5e15ec75235d84e0d) )
3691
3692 ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
3693 ROM_LOAD( "c34_05.3", 0x00000, 0x80000, CRC(596b83da) SHA1(826cf1e48a017a0cbfcc4a4f507dfb285594178b) ) /* SCR 8x8 */
3694
3695 ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
3696 ROM_LOAD32_BYTE( "c34_04.17", 0x000000, 0x080000, CRC(2446b0da) SHA1(bce5c73533e2bb7dfa7f18fad510f818cf1a542a) ) /* OBJ 16x8 */
3697 ROM_LOAD32_BYTE( "c34_03.16", 0x000001, 0x080000, CRC(a18eab78) SHA1(155f0efbfe73e18355804477d4b8954bb47bf1ef) )
3698 ROM_LOAD32_BYTE( "c34_02.15", 0x000002, 0x080000, CRC(8488ba10) SHA1(60f8f0dc9d4bc6bc452527250221c9915e9dfe6e) )
3699 ROM_LOAD32_BYTE( "c34_01.14", 0x000003, 0x080000, CRC(3ebe8c63) SHA1(fa7403bf895c041cb64234209c944683ae372e57) )
3700
3701 ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */
3702 ROM_LOAD( "c34_07.42", 0x00000, 0x80000, CRC(edb07808) SHA1(f32b4b93e9125536376d96fbca76c2b2f5f78656) ) /* ROD, road lines */
3703
3704 ROM_REGION16_LE( 0x80000, REGION_USER1, 0 )
3705 ROM_LOAD16_WORD( "c34_06.12", 0x00000, 0x80000, CRC(d200b6eb) SHA1(6bfe3a7dde8d4e983521877d2bb176f5d126b763) ) /* STY spritemap */
3706
3707 ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */
3708 ROM_LOAD( "c34_08.127", 0x00000, 0x80000, CRC(89a30450) SHA1(96b96ca5a3e20cdceb9ac5ddf377fb21a9a529fb) )
3709
3710 ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */
3711 ROM_LOAD( "c34_09.126", 0x00000, 0x80000, CRC(39d12b50) SHA1(5c5d1369597604376943e4825f6c09cc28d66047) )
3712
3713 ROM_REGION( 0x10000, REGION_USER2, 0 )
3714 ROM_LOAD( "c34_18.22", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) ) /* unused roms */
3715 ROM_LOAD( "c34_19.72", 0x00000, 0x00100, CRC(2ee9c404) SHA1(3a2ddaaaf7abe9f47f7e062b002fd3a61c80f60b) )
3716 ROM_LOAD( "c34_20.89", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )
3717 ROM_LOAD( "c34_21.7", 0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) )
3718 ROM_LOAD( "c34_22.8", 0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) )
3719 ROM_END
3720
3721 ROM_START( sci )
3722 ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */
3723 ROM_LOAD16_BYTE( "c09-37.rom", 0x00000, 0x20000, CRC(0fecea17) SHA1(0ad4454eee6646b0f978b1ba83206d64c1f6d081) )
3724 ROM_LOAD16_BYTE( "c09-40.rom", 0x00001, 0x20000, CRC(e46ebd9b) SHA1(52b0c1f95e8a664076d8fbc0f6204ca55893e281) )
3725 ROM_LOAD16_BYTE( "c09-38.rom", 0x40000, 0x20000, CRC(f4404f87) SHA1(8f051f1ffbf323cb3d613bc22afa53676590f29c) )
3726 ROM_LOAD16_BYTE( "c09-41.rom", 0x40001, 0x20000, CRC(de87bcb9) SHA1(b5537a25871ea90294f3b6f0b6386a883cfdf991) )
3727
3728 ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* 128K for 68000 code (CPU B) */
3729 ROM_LOAD16_BYTE( "c09-33.rom", 0x00000, 0x10000, CRC(cf4e6c5b) SHA1(8d6720b605b8e0c7f0473ba452c79bf5efc2615d) )
3730 ROM_LOAD16_BYTE( "c09-32.rom", 0x00001, 0x10000, CRC(a4713719) SHA1(b1110e397d3407ec63975cdd92a23cbb16348200) )
3731
3732 ROM_REGION( 0x2c000, REGION_CPU2, 0 ) /* Z80 sound cpu */
3733 ROM_LOAD( "c09-34.rom", 0x00000, 0x04000, CRC(a21b3151) SHA1(f59c7b1ba5edf97d72670ee194ce9fdc5c5b9a58) )
3734 ROM_CONTINUE( 0x10000, 0x1c000 ) /* banked stuff */
3735
3736 ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
3737 ROM_LOAD( "c09-05.rom", 0x00000, 0x80000, CRC(890b38f0) SHA1(b478c96214ce027926346a4653250c8ee8a98bdc) ) /* SCR 8x8 */
3738
3739 ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
3740 ROM_LOAD32_BYTE( "c09-04.rom", 0x000000, 0x080000, CRC(2cbb3c9b) SHA1(9e3d95f76f5f5d385b6a9516af781aefef1eb0ca) ) /* OBJ 16x8 */
3741 ROM_LOAD32_BYTE( "c09-02.rom", 0x000001, 0x080000, CRC(a83a0389) SHA1(932788b5b5f01326d0fbb2b9fdb94a8c7c004db3) )
3742 ROM_LOAD32_BYTE( "c09-03.rom", 0x000002, 0x080000, CRC(a31d0e80) SHA1(dfeff1b89dd7b3f19b26e77f2d66f6448cb00553) )
3743 ROM_LOAD32_BYTE( "c09-01.rom", 0x000003, 0x080000, CRC(64bfea10) SHA1(15ea43092027b1717d0f24fbe6ac2cdf11a7ddc6) )
3744
3745 ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */
3746 ROM_LOAD( "c09-07.rom", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */
3747
3748 ROM_REGION16_LE( 0x80000, REGION_USER1, 0 )
3749 ROM_LOAD16_WORD( "c09-06.rom", 0x00000, 0x80000, CRC(12df6d7b) SHA1(8ce742eb3f7eb6283b5ca32bb520d1cc7684d515) ) /* STY spritemap */
3750
3751 ROM_REGION( 0x180000, REGION_SOUND1, 0 ) /* ADPCM samples */
3752 ROM_LOAD( "c09-14.rom", 0x000000, 0x080000, CRC(ad78bf46) SHA1(4020744bbdc4b9ec3dee1a9d7b5ffa8def43d7b2) )
3753 ROM_LOAD( "c09-13.rom", 0x080000, 0x080000, CRC(d57c41d3) SHA1(3375a1fc6389840544b9fdb96b2fafbc8e3276e2) )
3754 ROM_LOAD( "c09-12.rom", 0x100000, 0x080000, CRC(56c99fa5) SHA1(3f9a6bc89d847cc4c99d35f98157ea3f187c0f98) )
3755
3756 ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */
3757 ROM_LOAD( "c09-15.rom", 0x00000, 0x80000, CRC(e63b9095) SHA1(c6ea670b5a90ab39429259ec1fefb2bde5d0213f) )
3758
3759 ROM_REGION( 0x10000, REGION_USER2, 0 )
3760 ROM_LOAD( "c09-16.rom", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) ) /* unused roms */
3761 ROM_LOAD( "c09-23.rom", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )
3762 // ROM_LOAD( "c09-21.rom", 0x00000, 0x00???, NO_DUMP ) /* pals (Guru dump) */
3763 // ROM_LOAD( "c09-22.rom", 0x00000, 0x00???, NO_DUMP )
3764 // ROM_LOAD( "c09-24.rom", 0x00000, 0x00???, NO_DUMP )
3765 // ROM_LOAD( "c09-25.rom", 0x00000, 0x00???, NO_DUMP )
3766 // ROM_LOAD( "c09-26.rom", 0x00000, 0x00???, NO_DUMP )
3767 ROM_END
3768
3769 ROM_START( scia )
3770 ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */
3771 ROM_LOAD16_BYTE( "c09-28.bin", 0x00000, 0x20000, CRC(630dbaad) SHA1(090f6a97007ac04f64d92ae5823b7254152144af) )
3772 ROM_LOAD16_BYTE( "c09-30.bin", 0x00001, 0x20000, CRC(68b1a97d) SHA1(c377f7880154b38fe25dc0ec420ca0cd7228fbad) )
3773 ROM_LOAD16_BYTE( "c09-36.bin", 0x40000, 0x20000, CRC(59e47cba) SHA1(313302bc62ff02b437b1091d394d2010ce66c7e7) )
3774 ROM_LOAD16_BYTE( "c09-31.bin", 0x40001, 0x20000, CRC(962b1fbf) SHA1(62181a289dfc6d1da674ba4bcbefeb16a67a55e3) )
3775
3776 ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* 128K for 68000 code (CPU B) */
3777 ROM_LOAD16_BYTE( "c09-33.rom", 0x00000, 0x10000, CRC(cf4e6c5b) SHA1(8d6720b605b8e0c7f0473ba452c79bf5efc2615d) )
3778 ROM_LOAD16_BYTE( "c09-32.rom", 0x00001, 0x10000, CRC(a4713719) SHA1(b1110e397d3407ec63975cdd92a23cbb16348200) )
3779
3780 ROM_REGION( 0x2c000, REGION_CPU2, 0 ) /* Z80 sound cpu */
3781 ROM_LOAD( "c09-34.rom", 0x00000, 0x04000, CRC(a21b3151) SHA1(f59c7b1ba5edf97d72670ee194ce9fdc5c5b9a58) )
3782 ROM_CONTINUE( 0x10000, 0x1c000 ) /* banked stuff */
3783
3784 ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
3785 ROM_LOAD( "c09-05.rom", 0x00000, 0x80000, CRC(890b38f0) SHA1(b478c96214ce027926346a4653250c8ee8a98bdc) ) /* SCR 8x8 */
3786
3787 ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
3788 ROM_LOAD32_BYTE( "c09-04.rom", 0x000000, 0x080000, CRC(2cbb3c9b) SHA1(9e3d95f76f5f5d385b6a9516af781aefef1eb0ca) ) /* OBJ 16x8 */
3789 ROM_LOAD32_BYTE( "c09-02.rom", 0x000001, 0x080000, CRC(a83a0389) SHA1(932788b5b5f01326d0fbb2b9fdb94a8c7c004db3) )
3790 ROM_LOAD32_BYTE( "c09-03.rom", 0x000002, 0x080000, CRC(a31d0e80) SHA1(dfeff1b89dd7b3f19b26e77f2d66f6448cb00553) )
3791 ROM_LOAD32_BYTE( "c09-01.rom", 0x000003, 0x080000, CRC(64bfea10) SHA1(15ea43092027b1717d0f24fbe6ac2cdf11a7ddc6) )
3792
3793 ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */
3794 ROM_LOAD( "c09-07.rom", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */
3795
3796 ROM_REGION16_LE( 0x80000, REGION_USER1, 0 )
3797 ROM_LOAD16_WORD( "c09-06.rom", 0x00000, 0x80000, CRC(12df6d7b) SHA1(8ce742eb3f7eb6283b5ca32bb520d1cc7684d515) ) /* STY spritemap */
3798
3799 ROM_REGION( 0x180000, REGION_SOUND1, 0 ) /* ADPCM samples */
3800 ROM_LOAD( "c09-14.rom", 0x000000, 0x080000, CRC(ad78bf46) SHA1(4020744bbdc4b9ec3dee1a9d7b5ffa8def43d7b2) )
3801 ROM_LOAD( "c09-13.rom", 0x080000, 0x080000, CRC(d57c41d3) SHA1(3375a1fc6389840544b9fdb96b2fafbc8e3276e2) )
3802 ROM_LOAD( "c09-12.rom", 0x100000, 0x080000, CRC(56c99fa5) SHA1(3f9a6bc89d847cc4c99d35f98157ea3f187c0f98) )
3803
3804 ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */
3805 ROM_LOAD( "c09-15.rom", 0x00000, 0x80000, CRC(e63b9095) SHA1(c6ea670b5a90ab39429259ec1fefb2bde5d0213f) )
3806
3807 ROM_REGION( 0x10000, REGION_USER2, 0 )
3808 ROM_LOAD( "c09-16.rom", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) ) /* unused roms */
3809 ROM_LOAD( "c09-23.rom", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )
3810 ROM_END
3811
3812 ROM_START( sciu )
3813 ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */
3814 ROM_LOAD16_BYTE( "c09-43.37", 0x00000, 0x20000, CRC(20a9343e) SHA1(b0185ddbda827236b7b41687f18c92e10c2dbd3a) )
3815 ROM_LOAD16_BYTE( "c09-44.40", 0x00001, 0x20000, CRC(7524338a) SHA1(f4e68a4d09f843f4697b4b4a4e94b5759a14fd01) )
3816 ROM_LOAD16_BYTE( "c09-41.38", 0x40000, 0x20000, CRC(83477f11) SHA1(f6dba2137a182dae215cf212bf85f4528e3d006d) )
3817 ROM_LOAD16_BYTE( "c09-41.rom", 0x40001, 0x20000, CRC(de87bcb9) SHA1(b5537a25871ea90294f3b6f0b6386a883cfdf991) )
3818
3819 ROM_REGION( 0x20000, REGION_CPU3, 0 ) /* 128K for 68000 code (CPU B) */
3820 ROM_LOAD16_BYTE( "c09-33.rom", 0x00000, 0x10000, CRC(cf4e6c5b) SHA1(8d6720b605b8e0c7f0473ba452c79bf5efc2615d) )
3821 ROM_LOAD16_BYTE( "c09-32.rom", 0x00001, 0x10000, CRC(a4713719) SHA1(b1110e397d3407ec63975cdd92a23cbb16348200) )
3822
3823 ROM_REGION( 0x2c000, REGION_CPU2, 0 ) /* Z80 sound cpu */
3824 ROM_LOAD( "c09-34.rom", 0x00000, 0x04000, CRC(a21b3151) SHA1(f59c7b1ba5edf97d72670ee194ce9fdc5c5b9a58) )
3825 ROM_CONTINUE( 0x10000, 0x1c000 ) /* banked stuff */
3826
3827 ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
3828 ROM_LOAD( "c09-05.rom", 0x00000, 0x80000, CRC(890b38f0) SHA1(b478c96214ce027926346a4653250c8ee8a98bdc) ) /* SCR 8x8 */
3829
3830 ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
3831 ROM_LOAD32_BYTE( "c09-04.rom", 0x000000, 0x080000, CRC(2cbb3c9b) SHA1(9e3d95f76f5f5d385b6a9516af781aefef1eb0ca) ) /* OBJ 16x8 */
3832 ROM_LOAD32_BYTE( "c09-02.rom", 0x000001, 0x080000, CRC(a83a0389) SHA1(932788b5b5f01326d0fbb2b9fdb94a8c7c004db3) )
3833 ROM_LOAD32_BYTE( "c09-03.rom", 0x000002, 0x080000, CRC(a31d0e80) SHA1(dfeff1b89dd7b3f19b26e77f2d66f6448cb00553) )
3834 ROM_LOAD32_BYTE( "c09-01.rom", 0x000003, 0x080000, CRC(64bfea10) SHA1(15ea43092027b1717d0f24fbe6ac2cdf11a7ddc6) )
3835
3836 ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */
3837 ROM_LOAD( "c09-07.rom", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */
3838
3839 ROM_REGION16_LE( 0x80000, REGION_USER1, 0 )
3840 ROM_LOAD16_WORD( "c09-06.rom", 0x00000, 0x80000, CRC(12df6d7b) SHA1(8ce742eb3f7eb6283b5ca32bb520d1cc7684d515) ) /* STY spritemap */
3841
3842 ROM_REGION( 0x180000, REGION_SOUND1, 0 ) /* ADPCM samples */
3843 ROM_LOAD( "c09-14.rom", 0x000000, 0x080000, CRC(ad78bf46) SHA1(4020744bbdc4b9ec3dee1a9d7b5ffa8def43d7b2) )
3844 ROM_LOAD( "c09-13.rom", 0x080000, 0x080000, CRC(d57c41d3) SHA1(3375a1fc6389840544b9fdb96b2fafbc8e3276e2) )
3845 ROM_LOAD( "c09-12.rom", 0x100000, 0x080000, CRC(56c99fa5) SHA1(3f9a6bc89d847cc4c99d35f98157ea3f187c0f98) )
3846
3847 ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */
3848 ROM_LOAD( "c09-15.rom", 0x00000, 0x80000, CRC(e63b9095) SHA1(c6ea670b5a90ab39429259ec1fefb2bde5d0213f) )
3849
3850 ROM_REGION( 0x10000, REGION_USER2, 0 )
3851 ROM_LOAD( "c09-16.rom", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) ) /* unused roms */
3852 ROM_LOAD( "c09-23.rom", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )
3853 ROM_END
3854
3855 ROM_START( nightstr )
3856 ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */
3857 ROM_LOAD16_BYTE( "b91-45.bin", 0x00000, 0x20000, CRC(7ad63421) SHA1(4ecfc3c8cd691d878e5d9212ccff0d225bb06bd9) )
3858 ROM_LOAD16_BYTE( "b91-44.bin", 0x00001, 0x20000, CRC(4bc30adf) SHA1(531d6ee9c8ff0d4ed07c15465ec7cb78cf976115) )
3859 ROM_LOAD16_BYTE( "b91-43.bin", 0x40000, 0x20000, CRC(3e6f727a) SHA1(ae837131a4c0c9bc5deba155c2a5b7ae72f1d070) )
3860 ROM_LOAD16_BYTE( "b91-46.bin", 0x40001, 0x20000, CRC(e870be95) SHA1(9a83df2c88a029bc40f5ce074143778ea555a2ba) )
3861
3862 ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 256K for 68000 code (CPU B) */
3863 ROM_LOAD16_BYTE( "b91-39.bin", 0x00000, 0x20000, CRC(725b23ae) SHA1(d4b4335863d32b9a81f7461240e960bf345c9835) )
3864 ROM_LOAD16_BYTE( "b91-40.bin", 0x00001, 0x20000, CRC(81fb364d) SHA1(f02733509039cde2c1de616e0a7969e31de1007a) )
3865
3866 ROM_REGION( 0x2c000, REGION_CPU2, 0 ) /* Z80 sound cpu */
3867 ROM_LOAD( "b91-41.bin", 0x00000, 0x04000, CRC(2694bb42) SHA1(ee770472655ac0ef55eeff04037457dbf6744e4f) )
3868 ROM_CONTINUE( 0x10000, 0x1c000 ) /* banked stuff */
3869
3870 ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
3871 ROM_LOAD( "b91-11.bin", 0x00000, 0x80000, CRC(fff8ce31) SHA1(fc729de92937a805d79379228d7a30041594c0df) ) /* SCR 8x8 */
3872
3873 ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
3874 ROM_LOAD32_BYTE( "b91-04.bin", 0x000000, 0x080000, CRC(8ca1970d) SHA1(d8504298a38a95f1d8f3a2fba479ec75fe4d5de7) ) /* OBJ A 16x16 */
3875 ROM_LOAD32_BYTE( "b91-03.bin", 0x000001, 0x080000, CRC(cd5fed39) SHA1(c16c67cc998889288e6e96535fd8e61afc93bc78) )
3876 ROM_LOAD32_BYTE( "b91-02.bin", 0x000002, 0x080000, CRC(457c64b8) SHA1(443f13d56d53ca6a7750ec974da675bad3f34a38) )
3877 ROM_LOAD32_BYTE( "b91-01.bin", 0x000003, 0x080000, CRC(3731d94f) SHA1(2978d3eb1f44595681e84f3aa8dc03d34a191455) )
3878
3879 ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */
3880 ROM_LOAD( "b91-10.bin", 0x00000, 0x80000, CRC(1d8f05b4) SHA1(04caa6a0887b90860c426a973dc3c3270e996818) ) /* ROD, road lines */
3881
3882 ROM_REGION( 0x200000, REGION_GFX4, ROMREGION_DISPOSE )
3883 ROM_LOAD32_BYTE( "b91-08.bin", 0x000000, 0x080000, CRC(66f35c34) SHA1(9040390fa9c626a54076a9461e0e198f059e2cb1) ) /* OBJ B 16x16 */
3884 ROM_LOAD32_BYTE( "b91-07.bin", 0x000001, 0x080000, CRC(4d8ec6cf) SHA1(2b7c10b459dc45313c4c90899a73c42c55b6c5c9) )
3885 ROM_LOAD32_BYTE( "b91-06.bin", 0x000002, 0x080000, CRC(a34dc839) SHA1(e1fcb763dbc562a62e862297458bde66d691606c) )
3886 ROM_LOAD32_BYTE( "b91-05.bin", 0x000003, 0x080000, CRC(5e72ac90) SHA1(c28c2718e873be5a254992ef8db256a394ca03ff) )
3887
3888 ROM_REGION16_LE( 0x80000, REGION_USER1, 0 )
3889 ROM_LOAD16_WORD( "b91-09.bin", 0x00000, 0x80000, CRC(5f247ca2) SHA1(3b89e5d035f27f62a14c5c7a976c804f9bb5c04d) ) /* STY spritemap */
3890
3891 ROM_REGION( 0x100000, REGION_SOUND1, 0 ) /* ADPCM samples */
3892 ROM_LOAD( "b91-13.bin", 0x00000, 0x80000, CRC(8c7bf0f5) SHA1(6e18531991225c24a9722c9fbe1af6ae6e9b866b) )
3893 ROM_LOAD( "b91-12.bin", 0x80000, 0x80000, CRC(da77c7af) SHA1(49662a69b83739e2e0209cabff83995a951383f4) )
3894
3895 ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */
3896 ROM_LOAD( "b91-14.bin", 0x00000, 0x80000, CRC(6bc314d3) SHA1(ae3e9c6b853bab4ec81a6bd951b39a4bc883f456) )
3897
3898 ROM_REGION( 0x10000, REGION_USER2, 0 )
3899 ROM_LOAD( "b91-26.bin", 0x00000, 0x400, CRC(77682a4f) SHA1(da2b3143f1c8688a22d8ec47bbb73b2f2e578480) ) /* unused roms */
3900 ROM_LOAD( "b91-27.bin", 0x00000, 0x400, CRC(a3f8490d) SHA1(349b8c9ba914603f72f800a3fc8e8277d756deb1) )
3901 ROM_LOAD( "b91-28.bin", 0x00000, 0x400, CRC(fa2f840e) SHA1(dd61ee6833bd43bbf619d36ec46f2bfa00880f40) )
3902 ROM_LOAD( "b91-29.bin", 0x00000, 0x2000, CRC(ad685be8) SHA1(e7681d76fa216c124c54544393c4f6a08fd7d74d) )
3903 ROM_LOAD( "b91-30.bin", 0x00000, 0x10000, CRC(30cc1f79) SHA1(3b0e3e6e8bce7a7d04a5b0103e2ce4e18e52a68e) )
3904 ROM_LOAD( "b91-31.bin", 0x00000, 0x10000, CRC(c189781c) SHA1(af3904ce51f715970965d110313491dbacf188b8) )
3905 ROM_LOAD( "b91-32.bin", 0x00000, 0x100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )
3906 ROM_LOAD( "b91-33.bin", 0x00000, 0x100, CRC(89719d17) SHA1(50181b8172b0fc08b149db18caf10659be9c517f) )
3907 ROM_END
3908
3909 ROM_START( aquajack )
3910 ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 256K for 68000 code (CPU A) */
3911 ROM_LOAD16_BYTE( "b77-22.rom", 0x00000, 0x20000, CRC(67400dde) SHA1(1e47c4fbd4449f2d973ac962ad58f22502d59198) )
3912 ROM_LOAD16_BYTE( "34.17", 0x00001, 0x20000, CRC(cd4d0969) SHA1(d610e7847a09f1ca892007440fa1b431bb0c41d2) )
3913
3914 ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 256K for 68000 code (CPU B) */
3915 ROM_LOAD16_BYTE( "b77-24.rom", 0x00000, 0x20000, CRC(95e643ed) SHA1(d47ddd50c744f33b3cbd5ef90880ca577977f5ca) )
3916 ROM_LOAD16_BYTE( "b77-23.rom", 0x00001, 0x20000, CRC(395a7d1c) SHA1(22cbbabb07f43e72a6139b6b9d68d6c1146d727f) )
3917
3918 ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */
3919 ROM_LOAD( "b77-20.rom", 0x00000, 0x04000, CRC(84ba54b7) SHA1(84e51c1a6a5b4eb2a65f4a6d9d54037323348f50) )
3920 ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */
3921
3922 ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
3923 ROM_LOAD( "b77-05.rom", 0x00000, 0x80000, CRC(7238f0ff) SHA1(95e2d6815e99392358bbeabf1afbf237673f2e24) ) /* SCR 8x8 */
3924
3925 ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
3926 ROM_LOAD32_BYTE( "b77-04.rom", 0x000000, 0x80000, CRC(bed0be6c) SHA1(2b11824f741b7f6755bd78f594af19b63a29092f) ) /* OBJ 16x8 */
3927 ROM_LOAD32_BYTE( "b77-03.rom", 0x000001, 0x80000, CRC(9a3030a7) SHA1(7b60fd066eccd04d9fcc131d9d06f151334ccab2) )
3928 ROM_LOAD32_BYTE( "b77-02.rom", 0x000002, 0x80000, CRC(daea0d2e) SHA1(10640651824234a589838e8f017964b79de79cb4) )
3929 ROM_LOAD32_BYTE( "b77-01.rom", 0x000003, 0x80000, CRC(cdab000d) SHA1(d83ee7f1dc17ab113bac38d0d062bb1519ff69f7) )
3930
3931 ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */
3932 ROM_LOAD( "b77-07.rom", 0x000000, 0x80000, CRC(7db1fc5e) SHA1(fbc88c2179b881d34d3a33d0a901d8da3445f9a8) ) /* ROD, road lines */
3933
3934 ROM_REGION16_LE( 0x80000, REGION_USER1, 0 )
3935 ROM_LOAD16_WORD( "b77-06.rom", 0x00000, 0x80000, CRC(ce2aed00) SHA1(9c992717914b13eb271122ecf7cca3634b013e56) ) /* STY spritemap */
3936
3937 ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */
3938 ROM_LOAD( "b77-09.rom", 0x00000, 0x80000, CRC(948e5ad9) SHA1(35cd6706470f01b5a244817d10fc65c075ff29b1) )
3939
3940 ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */
3941 ROM_LOAD( "b77-08.rom", 0x00000, 0x80000, CRC(119b9485) SHA1(2c9cd90be20df769e09016abccf59c8f119da286) )
3942
3943 /* (no unused roms in my set, there should be an 0x10000 one like the rest) */
3944 ROM_END
3945
3946 ROM_START( aquajckj )
3947 ROM_REGION( 0x40000, REGION_CPU1, 0 ) /* 256K for 68000 code (CPU A) */
3948 ROM_LOAD16_BYTE( "b77-22.rom", 0x00000, 0x20000, CRC(67400dde) SHA1(1e47c4fbd4449f2d973ac962ad58f22502d59198) )
3949 ROM_LOAD16_BYTE( "b77-21.rom", 0x00001, 0x20000, CRC(23436845) SHA1(e62111c902453e1b655c7f25bcea938a6f13aed2) )
3950
3951 ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 256K for 68000 code (CPU B) */
3952 ROM_LOAD16_BYTE( "b77-24.rom", 0x00000, 0x20000, CRC(95e643ed) SHA1(d47ddd50c744f33b3cbd5ef90880ca577977f5ca) )
3953 ROM_LOAD16_BYTE( "b77-23.rom", 0x00001, 0x20000, CRC(395a7d1c) SHA1(22cbbabb07f43e72a6139b6b9d68d6c1146d727f) )
3954
3955 ROM_REGION( 0x1c000, REGION_CPU2, 0 ) /* sound cpu */
3956 ROM_LOAD( "b77-20.rom", 0x00000, 0x04000, CRC(84ba54b7) SHA1(84e51c1a6a5b4eb2a65f4a6d9d54037323348f50) )
3957 ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */
3958
3959 ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
3960 ROM_LOAD( "b77-05.rom", 0x00000, 0x80000, CRC(7238f0ff) SHA1(95e2d6815e99392358bbeabf1afbf237673f2e24) ) /* SCR 8x8 */
3961
3962 ROM_REGION( 0x200000, REGION_GFX2, ROMREGION_DISPOSE )
3963 ROM_LOAD32_BYTE( "b77-04.rom", 0x000000, 0x80000, CRC(bed0be6c) SHA1(2b11824f741b7f6755bd78f594af19b63a29092f) ) /* OBJ 16x8 */
3964 ROM_LOAD32_BYTE( "b77-03.rom", 0x000001, 0x80000, CRC(9a3030a7) SHA1(7b60fd066eccd04d9fcc131d9d06f151334ccab2) )
3965 ROM_LOAD32_BYTE( "b77-02.rom", 0x000002, 0x80000, CRC(daea0d2e) SHA1(10640651824234a589838e8f017964b79de79cb4) )
3966 ROM_LOAD32_BYTE( "b77-01.rom", 0x000003, 0x80000, CRC(cdab000d) SHA1(d83ee7f1dc17ab113bac38d0d062bb1519ff69f7) )
3967
3968 ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */
3969 ROM_LOAD( "b77-07.rom", 0x000000, 0x80000, CRC(7db1fc5e) SHA1(fbc88c2179b881d34d3a33d0a901d8da3445f9a8) ) /* ROD, road lines */
3970
3971 ROM_REGION16_LE( 0x80000, REGION_USER1, 0 )
3972 ROM_LOAD16_WORD( "b77-06.rom", 0x00000, 0x80000, CRC(ce2aed00) SHA1(9c992717914b13eb271122ecf7cca3634b013e56) ) /* STY spritemap */
3973
3974 ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */
3975 ROM_LOAD( "b77-09.rom", 0x00000, 0x80000, CRC(948e5ad9) SHA1(35cd6706470f01b5a244817d10fc65c075ff29b1) )
3976
3977 ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */
3978 ROM_LOAD( "b77-08.rom", 0x00000, 0x80000, CRC(119b9485) SHA1(2c9cd90be20df769e09016abccf59c8f119da286) )
3979
3980 /* (no unused roms in my set, there should be an 0x10000 one like the rest) */
3981 ROM_END
3982
3983 ROM_START( spacegun )
3984 ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */
3985 ROM_LOAD16_BYTE( "c57-18.62", 0x00000, 0x20000, CRC(19d7d52e) SHA1(4361929a43f911864ece4dcd06995ea6b6156c59) )
3986 ROM_LOAD16_BYTE( "c57-20.74", 0x00001, 0x20000, CRC(2e58253f) SHA1(36fb52ce1c6cf9f537cf500ba330b167871969b9) )
3987 ROM_LOAD16_BYTE( "c57-17.59", 0x40000, 0x20000, CRC(e197edb8) SHA1(2ffd000aac1825ecd564c273f0cc055710ba4050) )
3988 ROM_LOAD16_BYTE( "c57-22.73", 0x40001, 0x20000, CRC(5855fde3) SHA1(fcd6d7ed16b61b9023596f0efb7f6971060a2e0b) )
3989
3990 ROM_REGION( 0x40000, REGION_CPU2, 0 ) /* 256K for 68000 code (CPU B) */
3991 ROM_LOAD16_BYTE( "c57-15.27", 0x00000, 0x20000, CRC(b36eb8f1) SHA1(e6e9fb844fd9acc6ee8a515a964d5df8de088a8c) )
3992 ROM_LOAD16_BYTE( "c57-16.29", 0x00001, 0x20000, CRC(bfb5d1e7) SHA1(cbf22e9043aac54e08c5da74d973da27844170ef) )
3993
3994 ROM_REGION( 0x80000, REGION_GFX1, ROMREGION_DISPOSE )
3995 ROM_LOAD( "c57-06.52", 0x00000, 0x80000, CRC(4ebadd5b) SHA1(d32a52b4d7dd19b0fa2551f93ce3d5cbcf2bc158) ) /* SCR 8x8 */
3996
3997 ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE )
3998 ROM_LOAD32_BYTE( "c57-01.25", 0x000000, 0x100000, CRC(f901b04e) SHA1(24bac1c3a0c585966a7cbeeebd9b2dd3acf45a67) ) /* OBJ 16x8 */
3999 ROM_LOAD32_BYTE( "c57-02.24", 0x000001, 0x100000, CRC(21ee4633) SHA1(ddb948b165127c8fb1a988b5a0f17f92117f1b66) )
4000 ROM_LOAD32_BYTE( "c57-03.12", 0x000002, 0x100000, CRC(fafca86f) SHA1(dc6ea78f0deafef632d8bd3677ec74e797dc69a2) )
4001 ROM_LOAD32_BYTE( "c57-04.11", 0x000003, 0x100000, CRC(a9787090) SHA1(8c05c4c0d14a9f60defb37225da37aadf946c563) )
4002
4003 ROM_REGION16_LE( 0x80000, REGION_USER1, 0 )
4004 ROM_LOAD16_WORD( "c57-05.36", 0x00000, 0x80000, CRC(6a70eb2e) SHA1(307dd876af65204e86e094b4015ffb4a655824f8) ) /* STY spritemap */
4005
4006 ROM_REGION( 0x80000, REGION_SOUND1, 0 ) /* ADPCM samples */
4007 ROM_LOAD( "c57-07.76", 0x00000, 0x80000, CRC(ad653dc1) SHA1(2ec440f793b0a686233fbe61c9462f8365c42b65) )
4008
4009 ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */
4010 ROM_LOAD( "c57-08.75", 0x00000, 0x80000, CRC(22593550) SHA1(e802e947e6947d146e1b57dbff7ac021e19e7b2b) )
4011
4012 /* (no unused 0x10000 rom like the rest?) */
4013 ROM_REGION( 0x10000, REGION_USER2, 0 )
4014 // ROM_LOAD( "c57-09.9", 0x00000, 0xada, CRC(306f130b) ) /* pals */
4015 // ROM_LOAD( "c57-10.47", 0x00000, 0xcd5, CRC(f11474bd) )
4016 // ROM_LOAD( "c57-11.48", 0x00000, 0xada, CRC(b33be19f) )
4017 // ROM_LOAD( "c57-12.61", 0x00000, 0xcd5, CRC(f1847096) )
4018 // ROM_LOAD( "c57-13.72", 0x00000, 0xada, CRC(795f0a85) )
4019 // ROM_LOAD( "c57-14.96", 0x00000, 0xada, CRC(5b3c40b7) )
4020 ROM_END
4021
4022 ROM_START( dblaxle )
4023 ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */
4024 ROM_LOAD16_BYTE( "c78-41.3", 0x00000, 0x20000, CRC(cf297fe4) SHA1(4875de63e8336062c27d83b55938bcb3d08a24a3) )
4025 ROM_LOAD16_BYTE( "c78-43.5", 0x00001, 0x20000, CRC(38a8bad6) SHA1(50977a6a364893549d2f7899bbc4e0c67086697e) )
4026 ROM_LOAD16_BYTE( "c78-42.4", 0x40000, 0x20000, CRC(4124ab2b) SHA1(96c3b6e01a1823259b3d7ca43e0a8631bfe33d0e) )
4027 ROM_LOAD16_BYTE( "c78-44.6", 0x40001, 0x20000, CRC(50a55b6e) SHA1(62a72d33030d50c157a5cf05f6bdc1b02c9b9ff1) )
4028
4029 ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 256K for 68000 code (CPU B) */
4030 ROM_LOAD16_BYTE( "c78-30-1.35", 0x00000, 0x20000, CRC(026aac18) SHA1(f50873982b4dc0fc822060f4c20c635efdd75d7e) )
4031 ROM_LOAD16_BYTE( "c78-31-1.36", 0x00001, 0x20000, CRC(67ce23e8) SHA1(983e998a79e3d4376b005c92ded050be236d37cc) )
4032
4033 ROM_REGION( 0x2c000, REGION_CPU2, 0 ) /* sound cpu */
4034 ROM_LOAD ( "ic42", 0x00000, 0x04000, CRC(f2186943) SHA1(2e9aed39fddf3aa1db7e20f8a709b6b82cc3e7df) )
4035 ROM_CONTINUE( 0x10000, 0x1c000 ) /* banked stuff */
4036
4037 ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
4038 ROM_LOAD16_BYTE( "c78-10.12", 0x00000, 0x80000, CRC(44b1897c) SHA1(7ad179db6d7dfeb139ea13cb4a231f99d177f2b1) ) /* SCR 8x8 */
4039 ROM_LOAD16_BYTE( "c78-11.11", 0x00001, 0x80000, CRC(7db3d4a3) SHA1(fc3c44ed36b212688a5bd8dc61321a994578258e) )
4040
4041 ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE )
4042 ROM_LOAD32_BYTE( "c78-08.25", 0x000000, 0x100000, CRC(6c725211) SHA1(3c1765f44fe57b496d305e994516674f71bd4c3c) ) /* OBJ 16x8 */
4043 ROM_LOAD32_BYTE( "c78-07.33", 0x000001, 0x100000, CRC(9da00d5b) SHA1(f6b664c7495b936ce1b99852da45ec92cb37062a) )
4044 ROM_LOAD32_BYTE( "c78-06.23", 0x000002, 0x100000, CRC(8309e91b) SHA1(3f27557bc82bf42cc77e3c7e363b51a0b119144d) )
4045 ROM_LOAD32_BYTE( "c78-05.31", 0x000003, 0x100000, CRC(90001f68) SHA1(5c08dfe6a2e12e6ca84035815563f38fc2c2c029) )
4046 // ROMX_LOAD ( "c78-05l.1", 0x000003, 0x080000, CRC(f24bf972) , ROM_SKIP(7) )
4047 // ROMX_LOAD ( "c78-05h.2", 0x000007, 0x080000, CRC(c01039b5) , ROM_SKIP(7) )
4048
4049 ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */
4050 ROM_LOAD( "c78-09.12", 0x000000, 0x80000, CRC(0dbde6f5) SHA1(4049271e3738b54e0c56d191889b1aea5664d49f) ) /* ROD, road lines */
4051
4052 ROM_REGION16_LE( 0x80000, REGION_USER1, 0 )
4053 ROM_LOAD16_WORD( "c78-04.3", 0x00000, 0x80000, CRC(cc1aa37c) SHA1(cfa2eb338dc81c98c637c2f0b14d2baea8b115f5) ) /* STY spritemap */
4054
4055 ROM_REGION( 0x180000, REGION_SOUND1, 0 ) /* ADPCM samples */
4056 ROM_LOAD( "c78-12.33", 0x000000, 0x80000, CRC(fbb39585) SHA1(4b7cdf9a3fba71155871b3e52d2301e50bf817ca) ) // Half size ??
4057 // ??? gap 0x80000-fffff //
4058 ROM_LOAD( "c78-13.46", 0x100000, 0x80000, CRC(1b363aa2) SHA1(0aae3988024654e98cc0c784307b1c329c8f0783) )
4059
4060 ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */
4061 ROM_LOAD( "c78-14.31", 0x00000, 0x80000, CRC(9cad4dfb) SHA1(9187ef827a3f1bc9233d0e45e72c72c0956c5912) )
4062
4063 ROM_REGION( 0x10000, REGION_USER2, 0 ) /* unused roms */
4064 ROM_LOAD( "c78-25.15", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) ) // 98% compression
4065 ROM_LOAD( "c78-15.22", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )
4066 ROM_LOAD( "c78-21.74", 0x00000, 0x00100, CRC(2926bf27) SHA1(bfbbe6c71bb29a05959f3de0d940816139f9ebfe) )
4067 ROM_LOAD( "c84-10.16", 0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) )
4068 ROM_LOAD( "c84-11.17", 0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) )
4069 ROM_END
4070
4071 ROM_START( pwheelsj )
4072 ROM_REGION( 0x80000, REGION_CPU1, 0 ) /* 512K for 68000 code (CPU A) */
4073 ROM_LOAD16_BYTE( "c78-26-2.2", 0x00000, 0x20000, CRC(25c8eb2e) SHA1(a526b886c76a19c9ce1abc25cf433574564605a3) )
4074 ROM_LOAD16_BYTE( "c78-28-2.4", 0x00001, 0x20000, CRC(a9500eb1) SHA1(ad300add3439515512003703df46e2f9317f2ee8) )
4075 ROM_LOAD16_BYTE( "c78-27-2.3", 0x40000, 0x20000, CRC(08d2cffb) SHA1(a4f117a15499c0df85bf8036f00871caa6723082) )
4076 ROM_LOAD16_BYTE( "c78-29-2.5", 0x40001, 0x20000, CRC(e1608004) SHA1(c4863264074de09ab38e7b73214f4271728e30aa) )
4077
4078 ROM_REGION( 0x40000, REGION_CPU3, 0 ) /* 256K for 68000 code (CPU B) */
4079 ROM_LOAD16_BYTE( "c78-30-1.35", 0x00000, 0x20000, CRC(026aac18) SHA1(f50873982b4dc0fc822060f4c20c635efdd75d7e) )
4080 ROM_LOAD16_BYTE( "c78-31-1.36", 0x00001, 0x20000, CRC(67ce23e8) SHA1(983e998a79e3d4376b005c92ded050be236d37cc) )
4081
4082 ROM_REGION( 0x2c000, REGION_CPU2, 0 ) /* sound cpu */
4083 ROM_LOAD ( "c78-32.42", 0x00000, 0x04000, CRC(1494199c) SHA1(f6b6ccaadbc5440f9342750a79ebc00c019ef355) )
4084 ROM_CONTINUE( 0x10000, 0x1c000 ) /* banked stuff */
4085
4086 ROM_REGION( 0x100000, REGION_GFX1, ROMREGION_DISPOSE )
4087 ROM_LOAD16_BYTE( "c78-10.12", 0x00000, 0x80000, CRC(44b1897c) SHA1(7ad179db6d7dfeb139ea13cb4a231f99d177f2b1) ) /* SCR 8x8 */
4088 ROM_LOAD16_BYTE( "c78-11.11", 0x00001, 0x80000, CRC(7db3d4a3) SHA1(fc3c44ed36b212688a5bd8dc61321a994578258e) )
4089
4090 ROM_REGION( 0x400000, REGION_GFX2, ROMREGION_DISPOSE )
4091 ROM_LOAD32_BYTE( "c78-08.25", 0x000000, 0x100000, CRC(6c725211) SHA1(3c1765f44fe57b496d305e994516674f71bd4c3c) ) /* OBJ 16x8 */
4092 ROM_LOAD32_BYTE( "c78-07.33", 0x000001, 0x100000, CRC(9da00d5b) SHA1(f6b664c7495b936ce1b99852da45ec92cb37062a) )
4093 ROM_LOAD32_BYTE( "c78-06.23", 0x000002, 0x100000, CRC(8309e91b) SHA1(3f27557bc82bf42cc77e3c7e363b51a0b119144d) )
4094 ROM_LOAD32_BYTE( "c78-05.31", 0x000003, 0x100000, CRC(90001f68) SHA1(5c08dfe6a2e12e6ca84035815563f38fc2c2c029) )
4095
4096 ROM_REGION( 0x80000, REGION_GFX3, 0 ) /* don't dispose */
4097 ROM_LOAD( "c78-09.12", 0x000000, 0x80000, CRC(0dbde6f5) SHA1(4049271e3738b54e0c56d191889b1aea5664d49f) ) /* ROD, road lines */
4098
4099 ROM_REGION16_LE( 0x80000, REGION_USER1, 0 )
4100 ROM_LOAD16_WORD( "c78-04.3", 0x00000, 0x80000, CRC(cc1aa37c) SHA1(cfa2eb338dc81c98c637c2f0b14d2baea8b115f5) ) /* STY spritemap */
4101
4102 ROM_REGION( 0x180000, REGION_SOUND1, 0 ) /* ADPCM samples */
4103 ROM_LOAD( "c78-01.33", 0x000000, 0x100000, CRC(90ff1e72) SHA1(6115e3683bc701922953b644427d1ddb471bf037) )
4104 ROM_LOAD( "c78-02.46", 0x100000, 0x080000, CRC(8882d2b7) SHA1(4d3abac1e50cd5ae79a562f430563032a11e8390) )
4105
4106 ROM_REGION( 0x80000, REGION_SOUND2, 0 ) /* Delta-T samples */
4107 ROM_LOAD( "c78-03.31", 0x00000, 0x80000, CRC(9b926a2f) SHA1(cc2d612441a5cc587e097bb8380b56753b9a4f7c) )
4108
4109 ROM_REGION( 0x10000, REGION_USER2, 0 ) /* unused roms */
4110 ROM_LOAD( "c78-25.15", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) ) // 98% compression
4111 ROM_LOAD( "c78-15.22", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )
4112 ROM_LOAD( "c78-21.74", 0x00000, 0x00100, CRC(2926bf27) SHA1(bfbbe6c71bb29a05959f3de0d940816139f9ebfe) )
4113 ROM_LOAD( "c84-10.16", 0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) )
4114 ROM_LOAD( "c84-11.17", 0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) )
4115 ROM_END
4116
4117
4118 static DRIVER_INIT( taitoz )
4119 {
4120 // taitosnd_setz80_soundcpu( 2 );
4121
4122 cpua_ctrl = 0xff;
4123 state_save_register_UINT16("main1", 0, "control", &cpua_ctrl, 1);
4124 state_save_register_func_postload(parse_control);
4125
4126 /* these are specific to various games: we ought to split the inits */
4127 state_save_register_int ("main2", 0, "control", &sci_int6);
4128 state_save_register_int ("main3", 0, "control", &dblaxle_int6);
4129 state_save_register_int ("main4", 0, "register", &ioc220_port);
4130
4131 state_save_register_int ("sound1", 0, "sound region", &banknum);
4132 state_save_register_func_postload(reset_sound_region);
4133 }
4134
DRIVER_INIT(bshark)4135 static DRIVER_INIT( bshark )
4136 {
4137 cpua_ctrl = 0xff;
4138 state_save_register_UINT16("main1", 0, "control", &cpua_ctrl, 1);
4139 state_save_register_func_postload(parse_control_noz80);
4140
4141 state_save_register_UINT16("main2", 0, "control", &eep_latch, 1);
4142 }
4143
4144
4145
4146 /* Release date order: contcirc 1989 (c) date is bogus */
4147
4148 GAMEX( 1989, contcirc, 0, contcirc, contcirc, taitoz, ROT0, "Taito Corporation Japan", "Continental Circus (World)", GAME_IMPERFECT_GRAPHICS )
4149 GAMEX( 1987, contcrcu, contcirc, contcirc, contcrcu, taitoz, ROT0, "Taito America Corporation", "Continental Circus (US)", GAME_IMPERFECT_GRAPHICS )
4150 GAMEX( 1988, chasehq, 0, chasehq, chasehq, taitoz, ROT0, "Taito Corporation Japan", "Chase H.Q. (World)", GAME_IMPERFECT_GRAPHICS )
4151 GAMEX( 1988, chasehqj, chasehq, chasehq, chasehqj, taitoz, ROT0, "Taito Corporation", "Chase H.Q. (Japan)", GAME_IMPERFECT_GRAPHICS )
4152 GAMEX( 1988, enforce, 0, enforce, enforce, taitoz, ROT0, "Taito Corporation", "Enforce (Japan)", GAME_IMPERFECT_GRAPHICS )
4153 GAMEX( 1989, bshark, 0, bshark, bshark, bshark, ORIENTATION_FLIP_X, "Taito America Corporation", "Battle Shark (US)", GAME_IMPERFECT_GRAPHICS )
4154 GAMEX( 1989, bsharkj, bshark, bshark, bsharkj, bshark, ORIENTATION_FLIP_X, "Taito Corporation", "Battle Shark (Japan)", GAME_IMPERFECT_GRAPHICS )
4155 GAMEX( 1989, sci, 0, sci, sci, taitoz, ROT0, "Taito Corporation Japan", "Special Criminal Investigation (World set 1)", GAME_IMPERFECT_GRAPHICS )
4156 GAMEX( 1989, scia, sci, sci, sci, taitoz, ROT0, "Taito Corporation Japan", "Special Criminal Investigation (World set 2)", GAME_IMPERFECT_GRAPHICS )
4157 GAMEX( 1989, sciu, sci, sci, sciu, taitoz, ROT0, "Taito America Corporation", "Special Criminal Investigation (US)", GAME_IMPERFECT_GRAPHICS )
4158 GAMEX( 1989, nightstr, 0, nightstr, nightstr, taitoz, ROT0, "Taito America Corporation", "Night Striker (US)", GAME_IMPERFECT_GRAPHICS )
4159 GAMEX( 1990, aquajack, 0, aquajack, aquajack, taitoz, ROT0, "Taito Corporation Japan", "Aqua Jack (World)", GAME_IMPERFECT_GRAPHICS )
4160 GAMEX( 1990, aquajckj, aquajack, aquajack, aquajckj, taitoz, ROT0, "Taito Corporation", "Aqua Jack (Japan)", GAME_IMPERFECT_GRAPHICS )
4161 GAME ( 1990, spacegun, 0, spacegun, spacegun, bshark, ORIENTATION_FLIP_X, "Taito Corporation Japan", "Space Gun (World)" )
4162 GAMEX( 1991, dblaxle, 0, dblaxle, dblaxle, taitoz, ROT0, "Taito America Corporation", "Double Axle (US)", GAME_IMPERFECT_GRAPHICS )
4163 GAMEX( 1991, pwheelsj, dblaxle, dblaxle, pwheelsj, taitoz, ROT0, "Taito Corporation", "Power Wheels (Japan)", GAME_IMPERFECT_GRAPHICS )
4164