1 // license:BSD-3-Clause
2 // copyright-holders:David Graves
3 // thanks-to:Richard Bush
4 /***************************************************************************
5 
6 Taito Z System [twin 68K with optional Z80]
7 -------------------------------------------
8 
9 David Graves
10 
11 (this is based on the F2 driver by Bryan McPhail, Brad Oliver, Andrew Prime,
12 Nicola Salmoria. Thanks to Richard Bush and the Raine team, whose open
13 source was very helpful in many areas particularly the sprites.)
14 
15 
16 The Taito Z system has a number of similarities with the Taito F2 system,
17 and uses some of the same custom Taito components.
18 
19 Taito Z supports 5 separate layers of graphics - one 64x64 tiled scrolling
20 background plane of 8x8 tiles, a similar foreground plane, another optional
21 plane used for drawing a road (e.g. Chasehq), a sprite plane [with varying
22 properties], and a text plane with character definitions held in ram.
23 
24 (Double Axle has four rather than two background planes, and they contain
25 32x32 16x16 tiles. This is because it uses a TC0480SCP rather than the
26 older TC0100SCN tilemap generator used in previous Taito Z games. The
27 hardware for Taito's Super Chase was a further development of this, with a
28 68020 for main CPU and Ensoniq sound - standard features of Taito's F3
29 system. Taito's F3 system superseded both Taito B and F2 systems, but the
30 Taito Z system was enhanced with F3 features and continued in games like
31 Super Chase and Under Fire up to the mid 1990s.)
32 
33 Each Taito Z game used one of the following sprite systems - allowing the
34 use of big sprites with minimal CPU overhead [*]:
35 
36 (i)  16x8 tiles aggregated through a spritemap rom into 128x128 sprites
37 (ii) 16x16 tiles aggregated through a spritemap rom into three sprite sizes:
38       128 x 128
39        64 x 128
40        32 x 128
41 (iii) 16x8 tiles aggregated through a spritemap rom into 64x64 sprites
42 
43 [* in Taito B/F2/F3 the CPU has to keep track of all the 16x16 tiles within
44 a big sprite]
45 
46 The Z system has twin 68K CPUs which communicate via shared ram.
47 Typically they share $4000 bytes, but Spacegun / Dbleaxle share $10000.
48 
49 The first 68000 handles screen, palette and sprites, and sometimes other
50 jobs [e.g. inputs; in one game it also handles the road].
51 
52 The second 68000 may handle functions such as:
53     (i)  inputs/dips, sound (through a YM2610) and/or
54     (ii) the "road" that's in every TaitoZ game except Spacegun.
55 
56 Most Z system games have a Z80 as well, which takes over sound duties.
57 Commands are written to it by the one of the 68000s.
58 
59 The memory map for the Taito Z games is similar in outline but usually
60 shuffled around: some games have different I/O because of analogue
61 sticks, light guns, cockpit hardware etc.
62 
63 
64 ****************************************************************************
65 
66 Contcirc board (B.Troha)
67 --------------
68 
69 Taito Sound PCB J1100137A K1100314A:
70 
71   Zilog Z0840004PSC     XTAL OSC          Yamaha
72   Z80 CPU               16.000 MHz        YM2610
73 
74   TC0060DCA              B33-30
75   TC0060DCA
76                                             TC0140SYT
77 
78                                           B33-08
79                                           B33-09
80                                           B33-10
81 
82 Notes: B33-30 is a OKI M27512-15
83 
84 
85 Taito Video Board PCB J1100139A K1100316A:
86 
87  B33-03     TC0050VDZ     TC0050VDZ                       TC0050VDZ
88  B33-04
89  B33-05
90  B33-06                      TC0020VAR
91 
92      B14-31
93 
94  B33-07
95 
96                       B14-30
97 
98 Notes: B14-31 is 27HC64 (Sharp LH5763J-70)
99        B14-30 is OKI M27512-15
100 DG:    TC0020VAR + 3xTC0050VDZ may be precursor to 370MSO/300FLA combo
101 
102 
103 Taito CPU Board J110138A K1100315A:
104 
105                                             XTAL OSC  XTAL OSC
106                                             24.000MHz 26.686MHz
107 
108                                                  B33-02
109 B33-01
110                   TC0150ROD                 TC0100SCN        NEC D43256C-10L
111                                                              NEC D43256C-10L
112 
113                                                       TC0110PCR
114 
115                                           TC0070RGB
116  MC6800P12 IC-25 MC68000P12 IC-35
117            IC-26            IC 36           TC0040IOC
118                                               DSWA  DSWB
119 
120 Notes: IC-41 Is 271001 Listed as JH1 (unsocketed / unused)
121        IC-42 Is 271001 Listed as JL1 (unsocketed / unused)
122 
123 
124 
125 ****************************************************************************
126 
127 Aquajack
128 Taito, 1990
129 
130 This game runs on Taito Z hardware
131 
132 Main PCB Layout
133 ---------------
134 
135 J1100196A
136 K1100456A
137 K1100457A AQUA JACK (sticker)
138 |--------------------------------------------------------------------------|
139 |B77-17.1 2063  B77-07.33           B77-05.105         DSWA(8)  DSWB(8)    |
140 |         2063                                        |------|             |
141 | |---------|  |---------|               |---------|  |TAITO | 2063      |-|
142 | |  TAITO  |  |  TAITO  |               |  TAITO  |  |TC0110| TC0070RGB |
143 | |TC0050VDZ|  |TC0150ROD| B77-19.46     |TC0100SCN|  |PCR   | 2063      |-|
144 | |(QFP100) |  |(QFP160) |               |(QFP160) |  |------|             |
145 | |         |  |         |               |         |          MB3771       |
146 | |---------|  |---------|               |---------|  |------|             |
147 |                                     58257  58257    |TAITO |        (G) 2|
148 | 2018         |---------|                            |TC0220| TC0060DCA  8|
149 | 2018         |  TAITO  |   |---------|              |IOC   | TC0060DCA  W|
150 | 2018         |TC0020VAR|   |  TAITO  |              |------|            A|
151 | 2018         |(QFP124) |   |TC0320OBR| 2063        TL074    MB3735      Y|
152 |              |         |   |(QFP144) |             TL074       VOL       |
153 | 2018         |---------|   |         | B77_20.54   YM3016                |
154 | 2018         B77-18.37     |---------| Z80         YM2610              |-|
155 | 2018         B77-06.39                                      MB3735     |
156 | 2018      |---------|                              |---------| VOL     |-|
157 |           |  TAITO  |                  16MHz  TL074|  TAITO  |           |
158 |           |TC0050VDZ|                              |TC0100SYT| B77-15.89 |
159 | B77-01.13 |(QFP100) |       2018      B77-08.57    |(QFP120) |          |-|
160 |           |         |       2018      B77-09.58    |         |          | |
161 | B77-02.14 |---------|      |--------------|        |---------|          | |
162 |           |---------|      |  MC68000P12  |                          (M)| |
163 | B77-03.15 |  TAITO  |      |--------------|        2063                 | |
164 |           |TC0050VDZ|                              2063                 |-|
165 | B77-04.16 |(QFP100) |   B77-14.60       B77_23.67|---------|             |
166 |           |         |   B77-13.51       2063     |  TAITO  | B77-16.94   |
167 |           |---------|  |--------------|          |TC0170ABT|             |
168 |                        |  MC68000P12  | B77_24.69|(QFP120) |        24MHz|
169 | B77_25.17   B77_22.31  |--------------| 2063     |         | 26.686MHz   |
170 | 2063        2063                                 |---------|             |
171 |--------------------------------------------------------------------------|
172 Notes:
173       68000 - Motorola MC68000P12 CPUs, running at 12.000MHz [24/2]
174         Z80 - Zilog Z0840004PSC Z80 CPU, running at 4.000MHz [16/4]
175      YM2610 - Yahama YM2610 sound chip, running at 8.000MHz [16/2]
176        2063 - Toshiba TMM2063 8K x8 SRAM (DIP28)
177        2018 - Toshiba TMM2018 2K x8 SRAM (DIP24)
178       58257 - Sony CXK58257 32K x8 SRAM (DIP28)
179      MB3771 - Fujitsu MB3771 System Reset IC (DIP8)
180         (G) - 28-Way Connector (Not JAMMA)
181         (M) - 50-pin Flat Cable Connector Joining Main PCB To Analog Control PCB
182 
183         OSC: 26.686, 24.000, 16.000
184 
185      Taito custom ICs -
186                        TC0070RGB - RGB/Video Mixer (Ceramic Flat Pack SIP25)
187                        TC0060DCA - Digital to Analog Conversion for Audio (Ceramic Flat Pack SIP20)
188                        TC0100SYT - Sound Communication
189                        TC0220IOC - Input/Output. This chip also provides the master reset via the MB3771. It probably does more things too,
190                                    including video output. For example, if the harness is connected backwards, this chip blows and kills
191                                    the PCB. Even manually resetting the 68000's cannot restart the PCB, and it just shows a wavey pattern
192                                    on screen.
193                        TC0110PCR - Palette Generator
194                        TC0100SCN - Tilemap Generator
195                        TC0150ROD - Road Generator
196                        TC0050VDZ - \ Motion Object Generator Combo?
197                        TC0170ABT - /
198                        TC0020VAR - ?
199                        TC0320OBR - Road Object Generator? (tied to TC0150ROD)
200 
201     ROMs -
202 
203 
204 Analog Control PCB
205 ------------------
206 J9100175A
207 K9100227A ADII PCB
208 K9100227A AQUA JACK (sticker)
209 |------------------|
210 |                  |
211 |    74LS244      |-|
212 |                 | |
213 |                 | |
214 |    ADC0809      | |
215 |              (M)| |
216 |                 | |
217 |    74LS245      | |
218 |(H)              | |
219 |                 | |
220 |    74HC74       | |
221 |                 |-|
222 |        4.9152MHz |
223 |------------------|
224 Notes:
225       All components listed
226 
227       (H) - 6 pin connector for attachment of Analog Controls
228       (M) - 50-pin Flat Cable Connector For Joining Analog Control PCB to Main PCB
229   ADC0809 - Texas Instruments ADC0809N Analog To Digital Convertor IC (DIP28)
230 
231 
232 
233 ****************************************************************************
234 Guru-Readme for Chase HQ (Taito 1988)
235 
236 CPU Board
237 ---------
238 
239 K1100357A
240 J1100157A CPU PCB
241 K1100357A CHASE HQ UP (sticker for upright)
242 M4300099A CHASE HQ DX (sticker for DX cabinet)
243 |------------------------------------------------------------------------|
244 |  B52-113.IC73     |---------|                     B52-119.IC20(PAL20L8)|
245 |                   |TAITO    |           68000-12  B52-118.IC21(PAL20L8)|
246 |  B52-114.IC72     |TC0140SYT|                                          |-|
247 |M                  |         |      B52-131.IC37 B52-129.IC30           | |
248 |  B52-115.IC71     |---------|      B52-130.IC36 B52-136.IC29           | |
249 |                                       TMM2063     TMM2063              | |
250 |  B52-116.IC70      Z80                                                 | |
251 |                    B52-137.IC51         B52-29.IC27         26.686MHz  | |
252 | TD62003                                  |---------|        24MHz      | |
253 |V           YM2610                        |TAITO    |                   | |
254 |                                          |TC0100SCN|      43256        |-|
255 |             16MHz                        |         |                   |
256 |                           TMM2063        |---------|      43256        |
257 |          TC0050DCA                   |---------|                       |-|
258 |            Y3016-F        TMM2063    |TAITO    | |------|              | |
259 |                                      |TC0170ABT| |TAITO |              | |
260 |        TL074 TL074                   |         | |TC0110|   B52-01.IC7 | |
261 |  MB3735  VOLUME B52-121.IC57(PAL20L8)|---------| |PCR   |              | |
262 |G    PC050CM     B52-120.IC56(PAL16L8)            |------|              | |
263 |  |---------|       68000-12       |---------|  B52-06.IC24 B52-28.IC4  | |
264 |  |TCOO40IOC|    B52-133.IC55      |TAITO    |       TMM2063   TMM2063  | |
265 |  |---------|        B52-132.IC39  |TC0150ROD|       TMM2063   TMM2063  |-|
266 | MB3771                            |         |                          |
267 | DIPSWB DIPSWA   TMM2063  TMM2063  |---------|           TC0070RGB      |
268 |------------------------------------------------------------------------|
269 Notes:
270       68000 - Motorola MC68000P12 CPUs, clock input 12.000MHz [24/2]
271         Z80 - Zilog Z0840004PSC Z80 CPU, clock input 4.000MHz [16/4]
272      YM2610 - Yamaha YM2610 sound chip, clock input 8.000MHz [16/2]
273     Y3016-F - Yamaha Y3016-F 2-Channel Serial & Binary Input Floating D/A Converter (SOIC16)
274               Clock input 2.66666MHz (16/2/3, source = pin 64 of YM2610)
275     TMM2063 - Toshiba TMM2063AP-70 8k x8-bit SRAM (DIP28)
276       43256 - NEC D43256AC-10L 32k x8-bit SRAM (DIP28)
277      MB3771 - Fujitsu MB3771 System Reset IC (DIP8)
278      MB3735 - Fujitsu MB3735 20w BTL Mono Power AMP. Note this amp chip has one input and one output, so sound
279               is mono. Where two speakers are present (cockpit/DX) the same sounds are output to both speakers
280               because the edge connector pins 10+L and 11+M are hard-wired together.
281       TL074 - Texas Instruments TL074 JFET Low-Noise Quad OP Amp
282     TD62003 - Toshiba TD62003 PNP 50V 0.5A Quad Darlington Switch (for driving CPU-controlled lamps via 2x NEC 2SB1150 PNP Darlington Transistors)
283           G - 28-Way Connector (Not JAMMA, but power/ground pins are the same as JAMMA)
284           V - 5-pin video connector
285           M - 50-pin flat cable connector. Only populated on the moving cabinet version. This is used to connect the motor PCB to the
286               main PCB. This connector and some adjacent 74LS244/245 logic chips are not populated on the upright PCB version.
287 
288       Syncs - Horizontal: 15.675kHz
289               Vertical: 60.0554Hz
290 
291        ROMs -
292               B52-137.IC51 - Z80 Sound Program
293 
294               B52-131.IC37 \
295               B52-129.IC30 | Main 68k Program (27C1001 EPROMs)
296               B52-130.IC36 |
297               B52-136.IC29 /
298 
299               B52-133.IC55 \ Sub 68k Program (27C512 EPROMs)
300               B52-132.IC39 /
301 
302               B52-29.IC27  - Tilemaps (23C4000 mask ROM)
303 
304               B52-01.IC7   - Road/Sprite Priority & Palette Select (MMI63S141 BI-POLAR PROM)
305 
306               B52-06.IC24  - Road A/B Internal Priority (MMI63S141 BI-POLAR PROM)
307 
308               B52-28.IC4   - TC0150ROD ROM for Road data (23C4000 mask ROM)
309 
310               Note: These ROMs match the World ROM-set in MAME ('chasehq'). These are the same ROMs found on a Chase HQ DX cabinet
311                     board-set which suggests any/all Chase HQ ROM-sets will work with the deluxe motion cabinet providing the Motor
312                     PCB is present and working.
313 
314 Taito custom ICs -
315                   TC0070RGB - 5-bit RGB Video Mixer/RGB DAC (Ceramic Flat Pack SIL25)
316                   PC050CM   - Coin/Counter/Lockout Functions
317                   TC0060DCA - 2-Channel Digital to Analog Conversion for Audio (Ceramic Flat Pack SIL20)
318                               Note: 2 channel audio from the YM2610 is input and output separately here but on the output it is
319                               merged via 2x 2.7k resistors to a single audio signal and fed to the MB3735 AMP chip on pin 1.
320                               The output from the MB3735 is mono.
321                   TC0140SYT - Sound Communication
322                   TC0040IOC - I/O Controls (start/shift/wheel/accelerator etc) and DIP switch management.
323                               This chip provides the master reset output on pin 2.
324                               On the upright cabinet, the accelerate pedal is a normally open switch (it is either off or on).
325                               The shift lever is a normally open switch (off/on). When open it is set to low gear and when closed
326                               (i.e. when pin 20 of connector G is grounded) it is set to high gear.
327                               The steering wheel hardware on Chase HQ uses one half of a trackball mechanism (left/right only)
328                               which is basically like a spinner. There is a segmented disc with optical sensor and another optical
329                               sensor to detect the wheel center position. The wheel returns to the center position with the help of
330                               a centering spring. The cockpit & DX cabs use 5k pots for the steering and accelerator, although
331                               micro-switches will also work fine with the correct control mechanisms.
332                   TC0110PCR - Palette Generator
333                   TC0100SCN - Tilemap Generator
334                   TC0150ROD - Road Generator
335                   TC0170ABT - Motion Object Generator
336 
337 
338 Edge Connector Pinouts (NOTE! This is correct as per schematics. Pinout found on the internet is not accurate)
339 ----------------------
340 
341             COMPONENT  |  SOLDER                       Video Connector (NOTE: when facing the edge connector, pin 5 is on the left)
342            ------------+------------                   ---------------
343                GND | 1 | A | GND                       1 GROUND
344                GND | 2 | B | GND                       2 RED
345                +5V | 3 | C | +5V                       3 GREEN
346                +5V | 4 | D | +5V                       4 BLUE
347                -5V | 5 | E | -5V                       5 SYNC
348               +12V | 6 | F | +12V
349                KEY |   |   | KEY
350          Counter 1 | 8 | J | Counter 2
351          Lockout 1 | 9 | K | Lockout 2                 Connector "H" (on video board. Note the PCB will work without this connector wired up)
352        Speaker 1 + |10---L | Speaker 2 + (cockpit/DX   -------------
353        Speaker 1 - |11---M | Speaker 2 - (cockpit/DX)  1  GND
354           Volume 1 |12 | N | Volume 2 (cockpit/DX)     2  GND
355                N/C |13 | P |                           3  GND
356                GND |14 | R | Service Coin              4  GND
357                GND |15 | S | Brake                     5  +5V
358             Coin 1 |16 | T | Coin 2                    6  +5V
359                    |17 | U |                           7  +5V
360              Nitro |18 | V | Tilt                      8  +5V
361 Wheel Center Sense |19 | W | Start                     9  N/C
362              Shift |20 | X | Accelerate                10 N/C
363                    |21 | Y |                           11 N/C
364             Lamp 1 |22 | Z | Lamp 2                    12 N/C
365                N/C |23 | a |
366                    |24 | b |
367                    |25 | c |
368      Steering Left |26 | d | Steering Right
369                GND |27 | e | GND
370                GND |28 | f | GND
371 
372 Note:
373       - 22 & Z are used to drive CPU-controlled lamps in the top header.
374       - N/C means there is no trace connected to this edge connector pad.
375       - Speaker 1 and 2 are hard-wired together at the edge connector and
376         the PCB has a single mono amp chip so sound is mono regardless
377         of how many speakers are in the cabinet.
378 
379 
380 Connector "M" (to Motor Control PCB, using standard 50-pin flat cable)
381 Note the labels shown are the signals.
382 
383   ------------+--------------
384    /MTRES | A | 1 | MTA0  \
385       GND | B | 2 | MTA1  |
386       GND | C | 3 | MTA2  |
387       GND | D | 4 | MTA3  |
388       GND | E | 5 | MTA4  |
389       GND | F | 6 | MTA5  | 11-bit Address Bus to/from Motor PCB
390       GND | H | 7 | MTA6  |
391       GND | J | 8 | MTA7  |
392       GND | K | 9 | MTA8  |
393       GND | L | 10| MTA9  |
394       GND | M | 11| MTA10 /
395       GND | N | 12| MTD0  \
396       GND | P | 13| MTD1  |
397       GND | R | 14| MTD2  |
398       GND | S | 15| MTD3  |
399       GND | T | 16| MTD4  | 8-bit Data Bus to/from Motor PCB
400       GND | U | 17| MTD5  |
401       GND | V | 18| MTD6  |
402       GND | W | 19| MTD7  /
403       GND | X | 20| MTR/W   Read/Write to/from Motor PCB
404       GND | Y | 21| MOTOR   Motor On/Off Signal?
405       GND | Z | 22| MTDTA   Acknowledge Signal?
406       GND | a | 23| GND
407       GND | b | 24| MTCK    Z80 clock from main board = 3.000MHz (24/8)
408       GND | c | 25| GND
409 
410 /MTRES is the Z80 reset signal. This stays low in upright cabinet mode, but when the
411 cabinet DIPs are set to deluxe this will go high to reset the Z80 on the motor PCB.
412 If the motor PCB is not present the signal will toggle low then high trying to reset
413 the Z80 until an acknowledge/ready signal (possibly MTDTA) comes back from the motor PCB.
414 Note none of these signals are present at the edge connector "M" if the 4 IC's at
415 IC78, IC79, IC80 & IC81 are not populated (i.e. if it's an upright PCB version).
416 Also note all these signals are present somewhere on the main PCB even if those logic chips
417 are not populated and regardless of the ROM set used. Most likely any ROM set will work
418 as a Deluxe version if the Motor PCB is present and working.
419 
420 
421 DIP Switches
422 ------------
423 
424 DIPSWA
425 |--------------------------------|---------------|-------------------------------|
426 | 1   2   3   4   5   6   7   8  | Function      | Option                        |
427 |--------------------------------|---------------|-------------------------------|
428 |OFF OFF                         | Cabinet       | Upright / Steering Lock*      |
429 |ON  OFF                         |               | Upright / Free Steering       |
430 |OFF ON                          |               | Cockpit / Steering Lock       |
431 |ON  ON                          |               | Deluxe  / Free Steering       |
432 |--------------------------------|---------------|-------------------------------|
433 |        OFF                     | Test Mode     | Game*                         |
434 |        ON                      |               | Test                          |
435 |--------------------------------|---------------|-------------------------------|
436 |            OFF                 | Demo Sounds   | On*                           |
437 |            ON                  |               | Off                           |
438 |--------------------------------|---------------|-------------------------------|
439 |                OFF OFF         | Coin A        | 1 Coin 1 Credit*              |
440 |                ON  OFF         |               | 2 Coins 1 Credit              |
441 |                OFF ON          |               | 3 Coins 1 Credit              |
442 |                ON  ON          |               | 4 Coins 1 Credit              |
443 |--------------------------------|---------------|-------------------------------|
444 |                        OFF OFF | Coin B        | 1 Coin 2 Credits*             |
445 |                        ON  OFF |               | 1 Coin 3 Credits              |
446 |                        OFF ON  |               | 1 Coin 4 Credits              |
447 |                        ON  ON  |               | 1 Coin 6 Credits              |
448 |--------------------------------|---------------|-------------------------------|
449 Notes:
450 * = Factory default setting
451 
452 Coinage varies by region. Coinage shown is World Coinage.
453 
454 DIPSWA 1 & 2 must be set to upright/cockpit cabinets otherwise there is an error on boot-up.
455 If both SW1 & SW2 are on, it enables the deluxe motion cabinet and the Motor PCB must be
456 present and working otherwise the game will complain with an error on boot-up "DIPSW A INITIAL ERROR!"
457 
458 Upright uses digital pedals. Digital Pedals means pedals are micro-switch (on/off only)
459 Cockpit/Deluxe uses analog pedals. Analog Pedals means pedals use 5k-ohm potentiometers.
460 Steering Lock means steering wheel uses 5k-ohm potentiometers and restricted wheel movement.
461 Free Steering means steering wheel uses spinner-like mechanism with additional sensor for center position and spring to re-center the wheel.
462 
463 DIPSWB
464 |--------------------------------|----------------|-------------------------------|
465 | 1   2   3   4   5   6   7   8  | Function       | Option                        |
466 |--------------------------------|----------------|-------------------------------|
467 |OFF OFF                         | Difficulty     | Medium*                       |
468 |ON  OFF                         |                | Easy                          |
469 |OFF ON                          |                | Hard                          |
470 |ON  ON                          |                | Hardest                       |
471 |--------------------------------|----------------|-------------------------------|
472 |        OFF OFF                 | Timer          | 60 Seconds*                   |
473 |        ON  OFF                 |                | 70 Seconds                    |
474 |        OFF ON                  |                | 65 Seconds                    |
475 |        ON  ON                  |                | 55 Seconds                    |
476 |--------------------------------|----------------|-------------------------------|
477 |                OFF             | Number of      | 3*                            |
478 |                ON              | Nitros         | 5                             |
479 |--------------------------------|----------------|-------------------------------|
480 |                    OFF         | Discount On    | Yes. 1 Coin To Continue*      |
481 |                    ON          | Continue       | No Discount To Continue       |
482 |--------------------------------|----------------|-------------------------------|
483 |                        OFF     | Criminal Damage| Clear*                        |
484 |                        ON      | On Continue    | Carry Over To Continued Game  |
485 |--------------------------------|----------------|-------------------------------|
486 |                            OFF | Allow Continue | Yes*                          |
487 |                            ON  |                | No                            |
488 |--------------------------------|----------------|-------------------------------|
489 * = Factory default setting
490 
491 
492 Video Board
493 -----------
494 
495 K1100358A
496 J1100158A VIDEO PCB
497 K1100358A CHASE HQ CP (sticker)
498 |------------------------------------------------------------------------|
499 |         B52-26.IC15 B52-26.IC52                                        |
500 |         B52-17.IC16 B52-17.IC53                                        |
501 | H       B52-26.IC17 B52-26.IC54                                        |-|
502 |         B52-17.IC18 B52-17.IC55                                        | |
503 |                                                                        | |
504 |                     62256 62256 62256 62256 62256 62256 62256 62256    | |
505 |                                                                        | |
506 |                     62256 62256 62256 62256 62256 62256 62256 62256    | |
507 |                                                                        | |
508 |  B52-30.IC4                          |---------|     B52-127.IC156     | |
509 |                                      |TAITO    |                       |-|
510 |  B52-34.IC5                          |TC0020VAR|                       |
511 |                                      |         | B52-03.IC135          |
512 |  B52-31.IC6                          |---------| B52-126.IC136         |-|
513 |                          B52-27.IC64                      B52-124.IC180| |
514 |  B52-35.IC7              B52-51.IC65                                   | |
515 |                          B52-50.IC66            B52-25.IC123           | |
516 |  B52-32.IC8                       B52-125.IC112 B52-122.IC124          | |
517 |                          B52-49.IC68            B52-123.IC125          | |
518 |  B52-36.IC9                                                            | |
519 |                                B52-16.IC92                             | |
520 |  B52-33.IC10 B52-19.IC33       B52-18.IC93                             |-|
521 |              B52-38.IC34       B52-16.IC94                       2018  |
522 |  B52-37.IC11 B52-20.IC35 B52-21.IC51                             2018  |
523 |------------------------------------------------------------------------|
524 Notes:
525       2018                       - 2k x8-bit SRAM
526       62256                      - 32k x8-bit SRAM
527       IC4/5/6                    - MB834100 Mask ROM
528       IC7/8/9/10/11/34           - 23C4000 Mask ROM
529       IC15/16/17/18/52/53/54/55  - PAL20R8
530       IC33/35/51/112/124/125/180 - PAL16L8
531       IC92/93/94                 - 63S141 Bi-Polar PROM
532       IC64/IC123                 - PAL20L8
533       IC135/136/156              - 63S441 Bi-Polar PROM
534       IC68                       - 27C64 EPROM
535       IC65/66                    - 27C512 EPROM
536       TC0020VAR                  - Taito custom IC Sprite Generator
537 
538 
539 Motor PCB (only for full motion DX cabinet)
540 ---------
541 
542 J9100093A
543 K9100120A
544 DRIVE LOGIC P.C.B.
545 |-----------------------------------------------|
546 |                       BRT BRY T1 T2 Y1 Y2 OPT | <-- 7 LEDs
547 |                                               |
548 |             B14-32.IC27  HC14                 |
549 |     4584    B14-33.IC26  LS07   TL081 TL081   |
550 |1    4584                 LS02               b1|
551 |8              D4701      LS32   TL081 TL081   |
552 |W    TLP521-4             LS139                |
553 |A              D4701      LS74   TL081 TL081   |
554 |Y                         LS393              b2|
555 |           LS273          LS393                |
556 |           LS273 LS161    LS30                 |
557 |           LS273 LS161    LS04                 |
558 |   LS244   LS273 LS161    LS138                |
559 |   LS245   LS245 LS161                         |
560 |   LS157   2016                                |
561 |                    2016                       |
562 |R  LS157   LS138  27C256.IC17                  |
563 |                                               |
564 |   LS157  B14-34.IC6  Z80                      |
565 |                                               |
566 |-----------------------------------------------|
567 Notes: (all IC's shown)
568          R        - 50 pin flat cable connector joining to main board connector M
569          18WAY    - 36 pin card edge connector joining to numerous sensors and switches on the DX cabinet
570          b1/b2    - 20 pin flat cable joining 2x Motor Power PCBs to Drive Logic PCB
571          Z80      - Z80A CPU. Clock input 3.000MHz from main board (24/8)
572          27C256   - 32k x8-bit EPROM
573          TLP521-4 - Toshiba TLP521-4 Photocoupler With 4 Isolated Channels
574          D4701    - NEC D4701 Incremental Encoder Counter
575          TL081    - Texas Instruments TL081 JFET-Input Operational Amplifier
576          4584     - Hex Schmitt Trigger Logic IC
577          2016     - 2k x8-bit SRAM
578          B14-*    - PAL16L8. Note the PALs and this Drive Logic PCB come from a Top Speed DX.
579                     The Chase HQ DX cabs are just converted Top Speed DX cabs.
580 
581 
582 ****************************************************************************
583 
584 ChaseHQ2(SCI) custom chips (Guru) (DG: same as Bshark except 0140SYT?)
585 --------------------------
586 
587 CPU PCB:
588 TC0170ABT
589 TC0150ROD
590 TC0140SYT
591 TC0220IOC
592 
593 c09-23.rom is a
594 PROM type AM27S21PC, location looks like this...
595 
596 -------------
597 |   68000   |
598 -------------
599 
600 c09-25    c09-26
601 c09-24
602 
603 |-------|
604 |       |
605 | ABT   |
606 |       |
607 |-------|
608 
609 c09-23     c09-07
610 
611 |-------|
612 |       |
613 | ROD   |
614 |       |
615 |-------|
616 
617 c09-32   c09-33
618 -------------
619 |   68000   |
620 -------------
621 
622 c09-21  c09-22
623 
624 Lower PCB:
625 TC0270MOD
626 TC0300FLA
627 TC0260DAR
628 TC0370MSO
629 TC0100SCN
630 TC0380BSH
631 
632 c09-16.rom is located next to
633 c09-05, which is located next to Taito TC0370MSO.
634 
635 SCI (Guru)
636 Taito, 1989
637 
638 Controls for this game are one wheel, one switch for shift lever (used for high gear)
639 and one switch each for accelerate, brake, gun and nitro.
640 
641 Note that the gear is low by default and is shifted to high gear by a lever which
642 holds the switch closed. The lever is not self-centering or spring-loaded to go back to
643 low. The lever must be physically shifted back to low when required.
644 
645 
646 PCB Layout
647 ----------
648 
649 CPU PCB  K1100490A  J1100209A
650 |----------------------------------------------------|
651 | 24MHz  C09-14.42  TC0140SYT   C09-22.3   C09-21.2  |
652 |        C09-13.43                    68000          |
653 |        C09-12.44              C09-33.6   C09-32.5  |
654 |        YM2610     C09-15.29   6264       6264      |
655 | YM3016 TL074 TL074  Z80                            |
656 |                   C09-34.31   6264       TC0150ROD |
657 |D             VOL    6264      6264                 |
658 |                                                    |
659 |        MB3735                 C09-07.15  C09-23.14 |
660 |          D633        16MHz                         |
661 |   62064             6264      6264       TC0170ABT |
662 |                    C09-28.37  6264                 |
663 |G  62003            C09-36.38           C09-24.22   |
664 |        TC0220IOC    6264     C09-26.26 C09-25.25   |
665 |                    C09-30.40        68000          |
666 |        DSWB DSWA   C09-31.41                       |
667 |----------------------------------------------------|
668 
669 Notes:
670       Clocks:
671              68000 : 16.000MHz (both)
672              Z80   : 4.000MHz
673              YM2610: 8.000MHz
674 
675       Vsync: 60Hz
676 
677       Misc parts:
678                  MB3735: 15w Power AMP with dual output (used for stereo sounds ; CH1/CH2)
679                  TL074 : JFET Lo Noise Quad OP Amp
680                  6264  : 8k x8 SRAM
681                TD62064 : NPN 50V 1.5A Quad Darlinton Switch (for driving coin meters)
682                TD62003 : PNP 50V 0.5A Quad Darlinton Switch (for driving coin meters)
683                   D633 : Si NPN POWER transistor used in 68k reset circuit (TIP122 compatible)
684       ROMs:
685             C09-12 to C09-14   - MB834100
686             C09-07             - HN62404
687             C09-32 to C09-33   - AM27C512
688             C09-30 to C09-31   - TC571000
689             C09-38 and C09-36  - TC571000
690             C09-23             - AM27S21
691             C09-22 and C09-26  - MMI PAL16L8B
692             C09-21 and
693             C09-24 to C09-25   - MMI PAL20L8B
694 
695 PINOUT CONNECTOR D (Note: All pinouts typed from an original Taito document)
696 ------------------
697 
698 1  +24V
699 2  +24V
700 3  GND
701 4  GND
702 5  D OUT
703 
704 Question: +24V and D OUT are for?
705 
706 
707 PINOUT CONNECTOR G (the meanings of some of these is a bit vague - PTL OUTx, DRV0, HANDLE CENTER SW etc)
708 
709          PARTS     |    SOLDER
710     ---------------|---------------
711              GND  1|A GND
712              GND  2|B GND
713              +5V  3|C +5V
714              +5V  4|D +5V
715              -5V  5|E -5V
716             +12V  6|F +12V
717              KEY  7|H KEY
718        COUNTER A  8|J COUNTER B
719      C LOCKOUT A  9|K C LOCKOUT B
720         SPK CH1+ 10|L SPK CH2+
721         SPK CH1- 11|M SPK CH2-
722          VOLUME2 12|N VOLUME1
723          VOLUME3 13|P MUTE
724              GND 14|R SERVICE SW
725              GND 15|S BRAKE SW0
726           COIN A 16|T COIN B
727        BRAKE SW1 17|U BRAKE SW2
728         NITRO SW 18|V TILT
729 HANDLE CENTER SW 19|W START SW
730         SHIFT SW 20|X ACCEL SW0
731        ACCEL SW1 21|Y ACCEL SW2
732         PTL OUT1 22|Z PTL OUT2
733             DRV0 23|a GUN SW
734          PADL X1 24|b PADL X2
735          PADL Y1 25|c PADL Y2
736        HANDLE Z1 26|d HANDLE Z2
737              GND 27|e GND
738              GND 28|f GND
739 
740 Question: What hardware is used for steering and where is it connected? It doesn't seem to use
741           a regular potentiometer for the steering??
742 
743 
744 PCB Layout
745 ----------
746 
747 VIDEO PCB  K1100491A  J1100210A
748 |-----------------------------------------------------|
749 |          TC0370MSO  C09-17.24  43256                |
750 |H                    C09-18.25  43256                |
751 |          C09-05.16                                  |
752 |          C09-16.17  26.686MHz  TC0100SCN  6264      |
753 |   C1815                                             |
754 |V  C1815                                   6264      |
755 |   C1815  TC0260DAR             C09-06.37            |
756 |6264                                                 |
757 |                                                     |
758 |                                TC0380BSH   C09-19.67|
759 |TC0270MOD TC0300FLA                                  |
760 |                                                     |
761 |43256    43256   43256   43256   C09-04.52  C09-20.71|
762 |43256    43256   43256   43256   C09-03.53           |
763 |43256    43256   43256   43256   C09-02.54           |
764 |43256    43256   43256   43256   C09-01.55           |
765 |-----------------------------------------------------|
766 
767 Notes:
768       ROMs:
769             C09-01 to C09-05   - 234000
770             C09-06             - HN62404
771             C09-17 to C09-18   - MMI 63S441
772             C09-19             - MMI PAL16L8B
773             C09-20             - AM27S21
774 
775       Misc parts:
776                 6264: 8k x8 SRAM
777                43256: 32k x8 SRAM
778                C1815: transistor used for driving RGB
779 
780 PINOUT CONNECTOR H
781 ------------------
782 
783 1  GND
784 2  GND
785 3  GND
786 4  GND
787 5  +5V
788 6  +5V
789 7  +5V
790 8  +5V
791 9  -5V
792 10 POST
793 11 +12V
794 12 NC
795 
796 
797 PINOUT CONNECTOR V
798 ------------------
799 
800 1  GND
801 2  RED
802 3  GREEN
803 4  BLUE
804 5  SYNC
805 6  NC
806 7  NC
807 
808 
809 
810 ****************************************************************************
811 
812 Enforce PCB info
813 ------------------
814 
815 Taito, 198?/199?
816 
817 Taito Z hardware
818 PCB No: K1100406A J1100175A (CPU PCB)
819         K1100407A J1100176A (VIDEO PCB)
820 
821 CPU: MC68000P12 (x2)
822 SND: Z80, YM2610, TC0040IOC, YM3016F
823 OSC: 26.686MHz, 24.000MHz, 16.000MHz
824 DIPs: 8 Position (x2)
825 
826 Taito Chips:
827 CPU board - TC0100SCN, TC0140SYT, TC0170ABT, TC0110PCR
828 Video Board - TC0150ROD, TC0050VDZ (x3), TC0020VAR
829 
830 Ram: CPU BOARD - 6264 (x9), 43256 (x2),
831      VIDEO BOARD - 2018 (x10), 6264 (x2)
832 
833 PALs/PROMs:
834 CPU BOARD - All located near/around the 68000's
835 b58-15 (PAL20L8)
836 b58-16 (PAL20L8)
837 b58-14 (PAL20L8)
838 b58-13 (PAL16L8)
839 b58-11 (PAL16L8)
840 b58-12 (PAL16L8)
841 
842 VIDEO BOARD -
843 b58-22 (PAL16L8) \
844 b58-23 (63s141)   |  near TC0150ROD
845 b58-24 (63s141)  /
846 
847 b58-20 (PAL16L8) \
848 b58-21 (PAL16R4)  |
849 b58-17 (PAL16L8)  |  near TC0020VAR
850 b58-18 (PAL16R4) /
851 
852 b58-25 (63S141)      near b58-27
853 b58-19 (PAL16R4)     near b58-04/03/02/01
854 
855 ROMs:
856 CPU BOARD - b58-18 , 27C010  \
857         b58-19 , 27C010   |  68k Program
858         b58-26 , 27C010   |
859         b58-27 , 27C010  /
860 
861         b58-07 , 27C4096 \
862         b58-08 , 27C4096  |
863         b58-09 , 27C4100  |  near TC0100SCN & TC0140SYT
864         b58-10 , 27C4096 /
865 
866         b58-32 , 27C512      z80 program
867 
868 VIDEO PCB - b58-06 , 27C4100     near TC0150ROD
869 
870         b58-26a, 27C512      ?
871         b58-27 , LH5763      ?
872 
873         b58-01 , 27C4100 \
874         b58-02 , 27C4100  |
875         b58-03 , 27C4100  |  near TC0050VDZ's
876         b58-04 , 27C4100 /
877 
878 
879 
880 ****************************************************************************
881 
882 BShark custom chips
883 -------------------
884 
885 TC0220IOC (known io chip)
886 TC0260DAR (known palette chip)
887 TC0400YSC  substitute for TC0140SYT when 68K writes directly to YM2610 ??
888 TC0170ABT  = same in Dblaxle
889 TC0100SCN (known tilemap chip)
890 TC0370MSO  = same in Dblaxle, Motion Objects ?
891 TC0300FLA  = same in Dblaxle
892 TC0270MOD  ???
893 TC0380BSH  ???
894 TC0150ROD (known road generator chip)
895 
896 
897 
898 ****************************************************************************
899 
900 DblAxle custom chip info
901 ------------------------
902 
903 TC0150ROD is next to road lines gfx chip [c78-09] but also
904 c78-15, an unused 256 byte rom. Perhaps this contains color
905 info for the road lines? Raine makes an artificial "pal map"
906 for the road, AFAICS.
907 
908 TC0170ABT is between 68000 CPUA and the TC0140SYT. Next to
909 that is the Z80A, the YM2610, and the three adpcm roms.
910 
911 On the graphics board we have the TC0480SCP next to its two
912 scr gfx roms: c78-10 & 11.
913 
914 The STY object mapping rom is next to c78-25, an unused
915 0x10000 byte rom which compresses by 98%. To right of this
916 are TC0370MSO (motion objects?), then TC0300FLA.
917 
918 Below c78-25 are two unused 1K roms: c84-10 and c84-11.
919 Below right is another unused 256 byte rom, c78-21.
920 (At the bottom are the 5 obj gfx roms.)
921 
922 K11000635A
923 ----------
924  43256   c78-11 SCN1 CHR
925  43256   c78-10 SCN0 CHR   TC0480SCP
926 
927  c78-04
928  STY ROM
929             c78-25   TC0370MSO   TC0300FLA
930             c84-10
931             c84-11                                      c78-21
932 
933                        43256 43256 43256 43256
934                  43256 43256 43256 43256 43256
935                  43256 43256 43256 43256 43256
936                                    43256 43256
937 
938                              c78-05L
939             c78-06 OBJ1
940                              c78-05H
941 
942             c78-08 OBJ3      c78-07 OBJ2
943 
944 Power Wheels
945 ------------
946 
947 Cpu PCB
948 
949 CPU:    68000-16 x2
950 Sound:  Z80-A
951     YM2610
952 OSC:    32.000MHz
953 Chips:  TC0140SYT
954     TC0150ROD
955     TC0170ABT
956     TC0310FAM
957     TC0510NIO
958 
959 
960 Video PCB
961 
962 OSC:    26.686MHz
963 Chips:  TC0260DAR
964     TC0270MOD
965     TC0300FLA
966     TC0370MSO
967     TC0380BSH
968     TC0480SCP
969 
970 
971 LAN interface board
972 
973 OSC:    40.000MHz
974     16.000MHz
975 Chips:  uPD72105C
976 
977 
978 
979 ****************************************************************************
980 
981 Racing Beat
982 -------------
983 
984 M43E0227A
985 K11E0674A
986 K1100650A J1100264A CPU PCB
987 |-------------------------------------------------------------|
988 |6264       62256        32MHz          DSWA   DSWB           |
989 |           62256                                             |
990 |C84-104.2                                                    |
991 |C84-110.3  TC0170ABT                          TC0510NIO      |
992 |C84-103.4                                                    |
993 |C84-111.5                                     MB3771         |
994 |                                   C84_101.42                |
995 |6264                 TC0140SYT                               |
996 |                                    6264                     |
997 |                                                             |
998 |                                                             |
999 |                         C84-85.31         Z80               |
1000 |68000                                                        |
1001 |                                                             |
1002 |                                                             |
1003 |PAL     PAL                                YM2610            |
1004 |                         C84-86.33                           |
1005 |PAL                                                          |
1006 |                             6264          C84-87.46         |
1007 |                                                             |
1008 |                                                             |
1009 |                   PAL   C84-99.35         YM3016            |
1010 |6264   6264                                                  |
1011 |                                                             |
1012 |                   PAL   C84-100.36        TL074             |
1013 |           TC0150ROD                                         |
1014 |C84-84.12                    6264                            |
1015 |                   PAL                                       |
1016 |                                                TL074        |
1017 |    C84-07.22                                        MB3735  |
1018 |                  68000                                      |
1019 |-------------------------------------------------------------|
1020 Notes:
1021       68000s running at 16MHz
1022       Z80 running at 4MHz
1023       YM2610 running at 8MHz
1024 
1025 
1026 K11X0675A
1027 K1100635A
1028 J1100256A VIDEO PCB
1029 |-------------------------------------------------------------|
1030 |                        26.686MHz       6264                 |
1031 |62256    C84-89.11                              TC0260DAR    |
1032 |                                                             |
1033 |62256    C84-90.12                                           |
1034 |                        TC0480SCP       6264                 |
1035 |                                                             |
1036 |                                        6264                 |
1037 |C84-88.3                                                     |
1038 |                                                             |
1039 |                                                             |
1040 |         C84-19.15                                           |
1041 |                        TC0370MSO     TC0300FLA    PAL       |
1042 |         C84-10.16                                           |
1043 |         C84-11.17                                           |
1044 |                                                    C84-09.74|
1045 |                                                             |
1046 |                    62256   62256   62256   62256            |
1047 |                                                             |
1048 |                                                             |
1049 |            62256   62256   62256   62256   62256            |
1050 |                                                             |
1051 |                                                             |
1052 |            62256   62256   62256   62256   62256            |
1053 |                                                             |
1054 |                                                             |
1055 |                                    62256   62256            |
1056 |  C84-91.23    C84-93.31                                     |
1057 |                                                             |
1058 |                              TC0380BSH           TC0270MOD  |
1059 |  C84-92.25    C84-94.33                                     |
1060 |                                                             |
1061 |-------------------------------------------------------------|
1062 
1063 
1064 TODO Lists
1065 ==========
1066 
1067 Is the no-Z80 sound handling correct: some voices in Bshark
1068 aren't that clear.
1069 
1070 Make taitosnd cpu-independent so we can restore Z80 to CPU3.
1071 
1072 Cockpit hardware
1073 
1074 DIPs - e.g. coinage
1075 
1076 Sprite zooming - dimensions may be got from the unused 64K rom
1077 on the video board (it's in the right place for it, both with
1078 Contcirc video chips and the chips used on later boards). These
1079 64K roms compare as follows - makes sense as these groups
1080 comprise the three sprite layout types used in TaitoZ games:
1081 
1082    Contcirc / Enforce                =IDENTICAL
1083    ChaseHQ / Nightstr                =IDENTICAL
1084    Bshark / SCI / Dblaxle / Racingb  =IDENTICAL
1085 
1086    Missing from Aquajack / Spacegun dumps (I would bet they are
1087    the same as Bshark). Can anyone dump these two along with any
1088    proms on the video board?
1089 
1090 
1091 Continental Circus
1092 ------------------
1093 
1094 Road priority incompletely understood - e.g. start barrier should
1095 be darkening LH edge of road as well as RH edge.
1096 
1097 Junk (?) stuff often written in high byte of sound word.
1098 
1099 Speculative YM2610 a/b/c channel filtering as these may be
1100 outputs to subwoofer (vibration). They sound better, anyway.
1101 
1102 
1103 Chasehq
1104 -------
1105 
1106 Motor CPU: appears to be identical to one in Topspeed.
1107 
1108 [Used to have junk sprites when you reach criminal car (the 'criminals
1109 here' sprite): two bits above tile number are used. Are these
1110 meaningless, or is some effect missing?]
1111 
1112 
1113 Enforce
1114 -------
1115 
1116 Test mode - SHIFT: LO/HI is not understood (appears to depend on Demo
1117 Sound DSW)
1118 
1119 Landscape in the background can be made to scroll rapidly with DSW.
1120 True to original?
1121 
1122 Some layer offsets are out a little.
1123 
1124 Road layer has wrong colors--regression?
1125 
1126 
1127 Battle Shark
1128 ------------
1129 
1130 Is road on the road stages correct? Hard to tell.
1131 
1132 Does the original have the "seeking" crosshair effect, making it a
1133 challenge to control?
1134 
1135 
1136 SCI
1137 ---
1138 
1139 Road seems ok, but are the green bushes in round 1 a little too far
1140 to the edge of the interroad verge?
1141 
1142 Sprite frames were plotted in opposite order so flickered. Reversing
1143 this has lost us alternate frames: probably need to buffer sprite
1144 ram by one frame to solve this?
1145 
1146 
1147 Night Striker
1148 -------------
1149 
1150 Road A/B priority problems will manifest in the choice tunnels with,
1151 one or the other having higher priority in top and bottom halves. Can
1152 someone provide a sequence of screenshots showing exactly what happens
1153 at the road split point.
1154 
1155 Strange page in test mode which lets you alter all sorts of settings,
1156 may relate to sit-in cockpit version. Can't find a dip that disables
1157 this. <- Test Mode 1? That's used for lamps and motor testing... -AS
1158 
1159 Motors (located at the 0xe000**) are mirrored, they use both bytes of a
1160 word, the high one is used during gameplay and the other one is used on service
1161 mode. The gameplay port is xor'ed (!).
1162 It works like this:
1163 --xx xx-- Force Feedback power
1164 ---- --x- "Reverse" motor
1165 ---- ---x "Turn" motor
1166 
1167 TC0220IOC offset 3 is used for lamps, both upright and cockpit version afaik:
1168 x--- ---- spot 2 lamp (right)
1169 -x-- ---- spot 1 lamp (left)
1170 --x- ---- motor lamp 3 (right)
1171 ---x ---- motor lamp 2 (center)
1172 ---- x--- motor lamp 1 (left)
1173 ---- -x-- trigger lamp
1174 ---- --x- start lamp
1175 ---- ---x shot lamp
1176 The two spot lamps are big red lamps located at the sides of the screen (at least
1177 in the upright version), they lights when the player gets hit and/or if he's dying.
1178 
1179 
1180 Aqua Jack
1181 ---------
1182 
1183 Some wrong colors. Hovercraft body should be red. 1st level sky/water
1184 should be blue.
1185 
1186 Sprites left on screen under hiscore table. Deliberate? Or is there
1187 a sprite disable bit somewhere.
1188 
1189 Should road body be largely transparent as I've implemented it?
1190 
1191 Sprite/sprite priorities often look bad. Sprites go to max size for
1192 a frame before they explode - surely a bug.
1193 
1194 Hangs briefly fairly often without massive cpu interleaving (500).
1195 Keys aren't very responsive in test mode.
1196 
1197 The problem code is this:
1198 
1199 CPUA
1200 $1fe02 hangs waiting for ($6002,A5) in shared ram to be zero.
1201 
1202 CPUB
1203 $1056 calls $11ea routine which starts by setting ($6002,A5) non-
1204 zero. At end (after $1218 waiting for a bit from sound comm port)
1205 it alters ($6002,A5) to zero (but this value lasts briefly!).
1206 
1207 Unless context rapidly switches back to cpua this change is missed
1208 because $11ea gets called again *very* rapidly at times when sounds
1209 are being written [that's when the problem manifested].
1210 
1211 $108a-c2 reads 0x20 bytes from unmapped area, not sure
1212 what it's doing. Perhaps this machine had some optional
1213 exotic input device...
1214 
1215 
1216 Spacegun
1217 --------
1218 
1219 Problem with the zoomed sprites not matching up very well
1220 when forming the background. They jerk a bit relative to
1221 each other... probably a cpu sync thing, perhaps also some
1222 fine-tuning required on the zoomed sprite dimension calcs.
1223 
1224 ADC clock unknown.
1225 
1226 
1227 Double Axle
1228 -----------
1229 
1230 Road occasionally has incorrectly unclipped line appearing at top
1231 (ice stage). Also road 'ghost' often remains on screen - also an
1232 interrupt issue I presume.
1233 
1234 Double Axle has poor sound: one ADPCM rom should be twice as long?
1235 [In log we saw stuff like this, suggesting extra ADPCM rom needed:
1236 YM2610: ADPCM-A end out of range: $001157ff
1237 YM2610: ADPCM-A start out of range: $00111f00]
1238 
1239 Various sprites go missing e.g. mountains half way through cross
1240 country course. Fall off the ledge and crash and you will see
1241 the explosion sprites make other mountain sprites vanish, as
1242 though their entries in spriteram are being overwritten. (Perhaps
1243 an int6 timing/number issue: sprites seem to be ChaseHQ2ish with
1244 a spriteframe toggle - currently this never changes which may be
1245 wrong.)
1246 
1247 Double Axle seems to keep only 1 sprite frame in sprite ram,
1248 which is probably wrong. Game seems to work with no int 6's
1249 at all. Cpu control byte has 0,4,8,c poked into 2nd nibble
1250 and it seems possible this should be causing int6's ?
1251 
1252 
1253 Racing Beat
1254 -----------
1255 
1256 Graphics problems:
1257 - tearing in the main road (tile layer 3 offset?)
1258   likely cause is mame/video/tc0480scp.c in bg23_draw:
1259       ** flawed calc ?? **
1260       x_index -= (m_x_offset - 0x1f + layer * 4) * ((row_zoom & 0xff) << 8);
1261 - car sprites palette flickering
1262 - layer missing sometimes (random?) ie. motor block sprite after inserting coin
1263 
1264 LAN board is unemulated
1265 
1266 DIP switches are not verified
1267 
1268 
1269 ***************************************************************************/
1270 
1271 #include "emu.h"
1272 #include "includes/taito_z.h"
1273 #include "includes/taitoipt.h"
1274 
1275 #include "cpu/m68000/m68000.h"
1276 #include "cpu/z80/z80.h"
1277 #include "machine/adc0808.h"
1278 #include "machine/eepromser.h"
1279 #include "sound/2610intf.h"
1280 #include "speaker.h"
1281 
1282 #include "contcirc.lh"
1283 #include "dblaxle.lh"
1284 #include "enforce.lh"
1285 
1286 
parse_cpu_control()1287 void taitoz_state::parse_cpu_control()
1288 {
1289 	/* bit 0 enables cpu B */
1290 	m_subcpu->set_input_line(INPUT_LINE_RESET, (m_cpua_ctrl & 0x1) ? CLEAR_LINE : ASSERT_LINE);
1291 }
1292 
cpua_ctrl_w(offs_t offset,u16 data,u16 mem_mask)1293 void taitoz_state::cpua_ctrl_w(offs_t offset, u16 data, u16 mem_mask)
1294 {
1295 	//logerror("CPU #0 PC %06x: write %04x to cpu control\n", m_maincpu->pc(), data);
1296 
1297 	if (mem_mask == 0xff00) data >>= 8;
1298 	data &= 0xff;
1299 
1300 	m_cpua_ctrl = data;
1301 	parse_cpu_control();
1302 }
1303 
chasehq_cpua_ctrl_w(offs_t offset,u16 data,u16 mem_mask)1304 void taitoz_state::chasehq_cpua_ctrl_w(offs_t offset, u16 data, u16 mem_mask)
1305 {
1306 	cpua_ctrl_w(offset, data, mem_mask);
1307 
1308 	m_lamps[0] = BIT(m_cpua_ctrl, 5);
1309 	m_lamps[1] = BIT(m_cpua_ctrl, 6);
1310 }
1311 
dblaxle_cpua_ctrl_w(offs_t offset,u16 data,u16 mem_mask)1312 void taitoz_state::dblaxle_cpua_ctrl_w(offs_t offset, u16 data, u16 mem_mask)
1313 {
1314 	cpua_ctrl_w(offset, data, mem_mask);
1315 
1316 	output().set_value("Wheel_Vibration", BIT(data, 2));
1317 }
1318 
1319 
1320 /***********************************************************
1321                         INTERRUPTS
1322 ***********************************************************/
1323 
device_timer(emu_timer & timer,device_timer_id id,int param,void * ptr)1324 void taitoz_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
1325 {
1326 	switch (id)
1327 	{
1328 	case TIMER_TAITOZ_INTERRUPT6:
1329 		/* 68000 A */
1330 		m_maincpu->set_input_line(6, HOLD_LINE);
1331 		break;
1332 	default:
1333 		throw emu_fatalerror("Unknown id in taitoz_state::device_timer");
1334 	}
1335 }
1336 
1337 /***** Routines for particular games *****/
1338 
INTERRUPT_GEN_MEMBER(taitoz_state::sci_interrupt)1339 INTERRUPT_GEN_MEMBER(taitoz_state::sci_interrupt)
1340 {
1341 	/* Need 2 int4's per int6 else (-$6b63,A5) never set to 1 which
1342 	   causes all sprites to vanish! Spriteram has areas for 2 frames
1343 	   so in theory only needs updating every other frame. */
1344 
1345 	m_sci_int6 = !m_sci_int6;
1346 
1347 	if (m_sci_int6)
1348 		timer_set(downcast<cpu_device *>(&device)->cycles_to_attotime(200000 - 500), TIMER_TAITOZ_INTERRUPT6);
1349 
1350 	device.execute().set_input_line(4, HOLD_LINE);
1351 }
1352 
1353 
1354 /******************************************************************
1355                               EEPROM
1356 ******************************************************************/
1357 
1358 static const u16 spacegun_default_eeprom[64]=
1359 {
1360 	0x0000,0x00ff,0x0001,0x4141,0x0000,0x00ff,0x0000,0xf0f0,
1361 	0x0000,0x00ff,0x0001,0x4141,0x0000,0x00ff,0x0000,0xf0f0,
1362 	0x0080,0x0080,0x0080,0x0080,0x0001,0x4000,0x0000,0xf000,
1363 	0x0001,0x4285,0x0000,0xf1e3,0x0001,0x4000,0x0000,0xf000,
1364 	0x0001,0x4285,0x0000,0xf1e3,0xcccb,0xffff,0xffff,0xffff,
1365 	0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
1366 	0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
1367 	0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
1368 };
1369 
1370 
1371 #if 0
1372 u16 taitoz_state::eep_latch_r()
1373 {
1374 	return m_eep_latch;
1375 }
1376 #endif
1377 
spacegun_eeprom_w(u8 data)1378 void taitoz_state::spacegun_eeprom_w(u8 data)
1379 {
1380 /*          0000xxxx    (unused)
1381             000x0000    eeprom reset (active low)
1382             00x00000    eeprom clock
1383             0x000000    eeprom data
1384             x0000000    (unused)                  */
1385 
1386 	m_eep_latch = data;
1387 	m_io_eepromout->write(data, 0xff);
1388 }
1389 
1390 
1391 /**********************************************************
1392                        GAME INPUTS
1393 **********************************************************/
1394 
CUSTOM_INPUT_MEMBER(taitoz_state::gas_pedal_r)1395 CUSTOM_INPUT_MEMBER(taitoz_state::gas_pedal_r)
1396 {
1397 	static const u8 retval[8] = { 0,1,3,2,6,7,5,4 };
1398 	return retval[m_gas.read_safe(0) & 7];
1399 }
1400 
CUSTOM_INPUT_MEMBER(taitoz_state::brake_pedal_r)1401 CUSTOM_INPUT_MEMBER(taitoz_state::brake_pedal_r)
1402 {
1403 	static const u8 retval[8] = { 0,1,3,2,6,7,5,4 };
1404 	return retval[m_brake.read_safe(0) & 7];
1405 }
1406 
1407 // enforceja only, 3 bits applied on both pots
CUSTOM_INPUT_MEMBER(taitoz_state::adstick_r)1408 template <int axis> CUSTOM_INPUT_MEMBER(taitoz_state::adstick_r)
1409 {
1410 	static const u8 retval[8] = { 0,1,3,2,6,7,5,4 };
1411 	u8 raw_value = ((axis == 0 ? m_stickx : m_sticky).read_safe(0) >> 5) & 7;
1412 	return retval[raw_value];
1413 }
1414 
contcirc_input_bypass_r()1415 u8 taitoz_state::contcirc_input_bypass_r()
1416 {
1417 	/* Bypass TC0040IOC controller for analog input */
1418 
1419 	u8 port = m_tc0040ioc->port_r();   /* read port number */
1420 	u16 steer = 0xff80 + m_steer.read_safe(0x80);
1421 
1422 	switch (port)
1423 	{
1424 		case 0x08:
1425 			return steer & 0xff;
1426 
1427 		case 0x09:
1428 			return steer >> 8;
1429 
1430 		default:
1431 			return m_tc0040ioc->portreg_r();
1432 	}
1433 }
1434 
1435 
chasehq_input_bypass_r()1436 u8 taitoz_state::chasehq_input_bypass_r()
1437 {
1438 	/* Bypass TC0040IOC controller for extra inputs */
1439 
1440 	u8 port = m_tc0040ioc->port_r();   /* read port number */
1441 	u16 steer = 0xff80 + m_steer.read_safe(0x80);
1442 
1443 	switch (port)
1444 	{
1445 		case 0x08:
1446 			return ioport("UNK1")->read();
1447 
1448 		case 0x09:
1449 			return ioport("UNK2")->read();
1450 
1451 		case 0x0a:
1452 			return ioport("UNK3")->read();
1453 
1454 		case 0x0b:
1455 			return ioport("UNK4")->read();
1456 
1457 		case 0x0c:
1458 			return steer & 0xff;
1459 
1460 		case 0x0d:
1461 			return steer >> 8;
1462 
1463 		default:
1464 			return m_tc0040ioc->portreg_r();
1465 	}
1466 }
1467 
1468 
sci_steer_input_r(offs_t offset)1469 u16 taitoz_state::sci_steer_input_r(offs_t offset)
1470 {
1471 	u16 steer = 0xff80 + m_steer.read_safe(0x80);
1472 
1473 	switch (offset)
1474 	{
1475 		case 0x04:
1476 			return (steer & 0xff);
1477 
1478 		case 0x05:
1479 			return (steer & 0xff00) >> 8;
1480 	}
1481 
1482 	logerror("CPU #0 PC %06x: warning - read unmapped steer input offset %06x\n", m_maincpu->pc(), offset);
1483 
1484 	return 0xff;
1485 }
1486 
1487 
spacegun_gun_output_w(u16 data)1488 void taitoz_state::spacegun_gun_output_w(u16 data)
1489 {
1490 	output().set_value("Player1_Gun_Recoil", BIT(data, 0));
1491 	output().set_value("Player2_Gun_Recoil", BIT(data, 1));
1492 }
1493 
1494 
dblaxle_steer_input_r(offs_t offset)1495 u16 taitoz_state::dblaxle_steer_input_r(offs_t offset)
1496 {
1497 	u16 steer = 0xff80 + m_steer.read_safe(0x80);
1498 
1499 	switch (offset)
1500 	{
1501 		case 0x04:
1502 			return steer >> 8;
1503 
1504 		case 0x05:
1505 			return steer & 0xff;
1506 	}
1507 
1508 	logerror("CPU #0 PC %06x: warning - read unmapped steer input offset %02x\n", m_maincpu->pc(), offset);
1509 
1510 	return 0x00;
1511 }
1512 
1513 // TODO: proper motorcpu hook-up
1514 
1515 
chasehq_motor_r(offs_t offset)1516 u16 taitoz_state::chasehq_motor_r(offs_t offset)
1517 {
1518 	switch (offset)
1519 	{
1520 		case 0x0:
1521 			return (machine().rand() &0xff);    /* motor status ?? */
1522 
1523 		case 0x101:
1524 			return 0x55;    /* motor cpu status ? */
1525 
1526 		default:
1527 			logerror("CPU #0 PC %06x: warning - read motor cpu %03x\n",m_maincpu->pc(),offset);
1528 			return 0;
1529 	}
1530 }
1531 
chasehq_motor_w(offs_t offset,u16 data)1532 void taitoz_state::chasehq_motor_w(offs_t offset, u16 data)
1533 {
1534 	/* Writes $e00000-25 and $e00200-219 */
1535 	switch (offset)
1536 	{
1537 		case 0x0:
1538 			break;
1539 
1540 		case 0x101:
1541 			/* outputs will go here, but driver is still broken */
1542 			break;
1543 	}
1544 
1545 	logerror("CPU #0 PC %06x: warning - write %04x to motor cpu %03x\n",m_maincpu->pc(),data,offset);
1546 }
1547 
1548 
nightstr_motor_w(offs_t offset,u16 data)1549 void taitoz_state::nightstr_motor_w(offs_t offset, u16 data)
1550 {
1551 	/* Despite the informative notes at the top, the high end of the word doesn't seem to output any useful data. */
1552 	/* I've added this so someone else can finish it.  */
1553 	switch (offset)
1554 	{
1555 	case 0:
1556 		output().set_value("Motor_1_Direction",0);
1557 		if (BIT(data, 0)) output().set_value("Motor_1_Direction",1);
1558 		if (BIT(data, 1)) output().set_value("Motor_1_Direction",2);
1559 		output().set_value("Motor_1_Speed",(data & 60)/4);
1560 
1561 		break;
1562 
1563 	case 4:
1564 		output().set_value("Motor_2_Direction",0);
1565 		if (BIT(data, 0)) output().set_value("Motor_2_Direction",1);
1566 		if (BIT(data, 1)) output().set_value("Motor_2_Direction",2);
1567 		output().set_value("Motor_2_Speed",(data & 60)/4);
1568 
1569 		break;
1570 
1571 	case 8:
1572 		output().set_value("Motor_3_Direction",0);
1573 		if (BIT(data, 0)) output().set_value("Motor_3_Direction",1);
1574 		if (BIT(data, 1)) output().set_value("Motor_3_Direction",2);
1575 		output().set_value("Motor_3_Speed",(data & 60)/4);
1576 
1577 		break;
1578 
1579 	default:
1580 		output().set_value("motor_debug",data);
1581 		break;
1582 	}
1583 
1584 }
1585 
1586 
coin_control_w(u8 data)1587 void taitoz_state::coin_control_w(u8 data)
1588 {
1589 	machine().bookkeeping().coin_lockout_w(0, BIT(~data, 0));
1590 	machine().bookkeeping().coin_lockout_w(1, BIT(~data, 1));
1591 	machine().bookkeeping().coin_counter_w(0, BIT( data, 2));
1592 	machine().bookkeeping().coin_counter_w(1, BIT( data, 3));
1593 }
1594 
1595 
aquajack_unknown_r()1596 u16 taitoz_state::aquajack_unknown_r()
1597 {
1598 	return 0xff;
1599 }
1600 
1601 
1602 /*****************************************************
1603                         SOUND
1604 *****************************************************/
1605 
sound_bankswitch_w(u8 data)1606 void taitoz_state::sound_bankswitch_w(u8 data)
1607 {
1608 	m_z80bank->set_entry(data & 7);
1609 }
1610 
1611 
1612 /**** sound pan control ****/
pancontrol_w(offs_t offset,u8 data)1613 void taitoz_state::pancontrol_w(offs_t offset, u8 data)
1614 {
1615 	m_filter[offset & 3]->flt_volume_set_volume(data / 255.0f);
1616 }
1617 
1618 
1619 /***********************************************************
1620                    MEMORY STRUCTURES
1621 ***********************************************************/
1622 
1623 
contcirc_map(address_map & map)1624 void taitoz_state::contcirc_map(address_map &map)
1625 {
1626 	map(0x000000, 0x03ffff).rom();
1627 	map(0x080000, 0x083fff).ram();
1628 	map(0x084000, 0x087fff).ram().share("share1");
1629 	map(0x090001, 0x090001).w(FUNC(taitoz_state::contcirc_out_w));    /* road palette bank, sub CPU reset, 3d glasses control */
1630 	map(0x100000, 0x100007).rw(m_tc0110pcr, FUNC(tc0110pcr_device::word_r), FUNC(tc0110pcr_device::step1_rbswap_word_w));   /* palette */
1631 	map(0x200000, 0x20ffff).rw(m_tc0100scn, FUNC(tc0100scn_device::ram_r), FUNC(tc0100scn_device::ram_w));    /* tilemaps */
1632 	map(0x220000, 0x22000f).rw(m_tc0100scn, FUNC(tc0100scn_device::ctrl_r), FUNC(tc0100scn_device::ctrl_w));
1633 	map(0x300000, 0x301fff).rw(m_tc0150rod, FUNC(tc0150rod_device::word_r), FUNC(tc0150rod_device::word_w));    /* "root ram" */
1634 	map(0x400000, 0x4006ff).ram().share("spriteram");
1635 }
1636 
contcirc_cpub_map(address_map & map)1637 void taitoz_state::contcirc_cpub_map(address_map &map)
1638 {
1639 	map(0x000000, 0x03ffff).rom();
1640 	map(0x080000, 0x083fff).ram();
1641 	map(0x084000, 0x087fff).ram().share("share1");
1642 	map(0x100001, 0x100001).r(FUNC(taitoz_state::contcirc_input_bypass_r)).w(m_tc0040ioc, FUNC(tc0040ioc_device::portreg_w)).umask16(0x00ff);
1643 	map(0x100003, 0x100003).rw(m_tc0040ioc, FUNC(tc0040ioc_device::watchdog_r), FUNC(tc0040ioc_device::port_w));
1644 	map(0x200001, 0x200001).w(m_tc0140syt, FUNC(tc0140syt_device::master_port_w));
1645 	map(0x200003, 0x200003).rw(m_tc0140syt, FUNC(tc0140syt_device::master_comm_r), FUNC(tc0140syt_device::master_comm_w));
1646 }
1647 
1648 
chasehq_map(address_map & map)1649 void taitoz_state::chasehq_map(address_map &map)
1650 {
1651 	map(0x000000, 0x07ffff).rom();
1652 	map(0x100000, 0x107fff).ram();
1653 	map(0x108000, 0x10bfff).ram().share("share1");
1654 	map(0x10c000, 0x10ffff).ram();
1655 	map(0x400001, 0x400001).r(FUNC(taitoz_state::chasehq_input_bypass_r)).w(m_tc0040ioc, FUNC(tc0040ioc_device::portreg_w)).umask16(0x00ff);
1656 	map(0x400003, 0x400003).rw(m_tc0040ioc, FUNC(tc0040ioc_device::watchdog_r), FUNC(tc0040ioc_device::port_w));
1657 	map(0x800000, 0x800001).w(FUNC(taitoz_state::chasehq_cpua_ctrl_w));
1658 	map(0x820001, 0x820001).w(m_tc0140syt, FUNC(tc0140syt_device::master_port_w));
1659 	map(0x820003, 0x820003).rw(m_tc0140syt, FUNC(tc0140syt_device::master_comm_r), FUNC(tc0140syt_device::master_comm_w));
1660 	map(0xa00000, 0xa00007).rw(m_tc0110pcr, FUNC(tc0110pcr_device::word_r), FUNC(tc0110pcr_device::step1_word_w));  /* palette */
1661 	map(0xc00000, 0xc0ffff).rw(m_tc0100scn, FUNC(tc0100scn_device::ram_r), FUNC(tc0100scn_device::ram_w));    /* tilemaps */
1662 	map(0xc20000, 0xc2000f).rw(m_tc0100scn, FUNC(tc0100scn_device::ctrl_r), FUNC(tc0100scn_device::ctrl_w));
1663 	map(0xd00000, 0xd007ff).ram().share("spriteram");
1664 	map(0xe00000, 0xe003ff).rw(FUNC(taitoz_state::chasehq_motor_r), FUNC(taitoz_state::chasehq_motor_w)); /* motor cpu */
1665 }
1666 
chq_cpub_map(address_map & map)1667 void taitoz_state::chq_cpub_map(address_map &map)
1668 {
1669 	map(0x000000, 0x01ffff).rom();
1670 	map(0x100000, 0x103fff).ram();
1671 	map(0x108000, 0x10bfff).ram().share("share1");
1672 	map(0x800000, 0x801fff).rw(m_tc0150rod, FUNC(tc0150rod_device::word_r), FUNC(tc0150rod_device::word_w));
1673 }
1674 
1675 
enforce_map(address_map & map)1676 void taitoz_state::enforce_map(address_map &map)
1677 {
1678 	map(0x000000, 0x03ffff).rom();
1679 	map(0x100000, 0x103fff).ram();
1680 	map(0x104000, 0x107fff).ram().share("share1");
1681 	map(0x200000, 0x200001).w(FUNC(taitoz_state::cpua_ctrl_w));  // works without?
1682 	map(0x300000, 0x3006ff).ram().share("spriteram");
1683 	map(0x400000, 0x401fff).rw(m_tc0150rod, FUNC(tc0150rod_device::word_r), FUNC(tc0150rod_device::word_w));    /* "root ram" ??? */
1684 	map(0x500000, 0x500007).rw(m_tc0110pcr, FUNC(tc0110pcr_device::word_r), FUNC(tc0110pcr_device::step1_rbswap_word_w));   /* palette */
1685 	map(0x600000, 0x60ffff).rw(m_tc0100scn, FUNC(tc0100scn_device::ram_r), FUNC(tc0100scn_device::ram_w));    /* tilemaps */
1686 	map(0x620000, 0x62000f).rw(m_tc0100scn, FUNC(tc0100scn_device::ctrl_r), FUNC(tc0100scn_device::ctrl_w));
1687 }
1688 
enforce_cpub_map(address_map & map)1689 void taitoz_state::enforce_cpub_map(address_map &map)
1690 {
1691 	map(0x000000, 0x03ffff).rom();
1692 	map(0x100000, 0x103fff).ram();
1693 	map(0x104000, 0x107fff).ram().share("share1");
1694 	map(0x200001, 0x200001).w(m_tc0140syt, FUNC(tc0140syt_device::master_port_w));
1695 	map(0x200003, 0x200003).rw(m_tc0140syt, FUNC(tc0140syt_device::master_comm_r), FUNC(tc0140syt_device::master_comm_w));
1696 	map(0x300000, 0x300003).rw(m_tc0040ioc, FUNC(tc0040ioc_device::read), FUNC(tc0040ioc_device::write)).umask16(0x00ff);
1697 }
1698 
1699 
bshark_map(address_map & map)1700 void taitoz_state::bshark_map(address_map &map)
1701 {
1702 	map(0x000000, 0x07ffff).rom();
1703 	map(0x100000, 0x10ffff).ram();
1704 	map(0x110000, 0x113fff).ram().share("share1");
1705 	map(0x400000, 0x40000f).rw(m_tc0220ioc, FUNC(tc0220ioc_device::read), FUNC(tc0220ioc_device::write)).umask16(0x00ff);
1706 	map(0x600000, 0x600001).w(FUNC(taitoz_state::cpua_ctrl_w));
1707 	map(0x800000, 0x80000f).rw("adc", FUNC(adc0808_device::data_r), FUNC(adc0808_device::address_offset_start_w)).umask16(0x00ff);
1708 	map(0xa00000, 0xa01fff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
1709 	map(0xc00000, 0xc00fff).ram().share("spriteram");
1710 	map(0xd00000, 0xd0ffff).rw(m_tc0100scn, FUNC(tc0100scn_device::ram_r), FUNC(tc0100scn_device::ram_w));    /* tilemaps */
1711 	map(0xd20000, 0xd2000f).rw(m_tc0100scn, FUNC(tc0100scn_device::ctrl_r), FUNC(tc0100scn_device::ctrl_w));
1712 }
1713 
bsharkjjs_map(address_map & map)1714 void taitoz_state::bsharkjjs_map(address_map &map)
1715 {
1716 	map(0x000000, 0x07ffff).rom();
1717 	map(0x100000, 0x10ffff).ram();
1718 	map(0x110000, 0x113fff).ram().share("share1");
1719 	map(0x400000, 0x40000f).rw(m_tc0220ioc, FUNC(tc0220ioc_device::read), FUNC(tc0220ioc_device::write)).umask16(0x00ff);
1720 	map(0x600000, 0x600001).w(FUNC(taitoz_state::cpua_ctrl_w));
1721 //  map(0x800000, 0x80000f) // No analog stick, this is the Joystick version
1722 	map(0xa00000, 0xa01fff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
1723 	map(0xc00000, 0xc00fff).ram().share("spriteram");
1724 	map(0xd00000, 0xd0ffff).rw(m_tc0100scn, FUNC(tc0100scn_device::ram_r), FUNC(tc0100scn_device::ram_w));    /* tilemaps */
1725 	map(0xd20000, 0xd2000f).rw(m_tc0100scn, FUNC(tc0100scn_device::ctrl_r), FUNC(tc0100scn_device::ctrl_w));
1726 }
1727 
bshark_cpub_map(address_map & map)1728 void taitoz_state::bshark_cpub_map(address_map &map)
1729 {
1730 	map(0x000000, 0x07ffff).rom();
1731 	map(0x108000, 0x10bfff).ram();
1732 	map(0x110000, 0x113fff).ram().share("share1");
1733 	map(0x400000, 0x400007).w(FUNC(taitoz_state::pancontrol_w)).umask16(0x00ff);  /* pan */
1734 //  map(0x40000a, 0x40000b).r(FUNC(taitoz_state::taitoz_unknown_r));  // ???
1735 	map(0x600000, 0x600007).rw("ymsnd", FUNC(ym2610_device::read), FUNC(ym2610_device::write)).umask16(0x00ff);
1736 	map(0x60000c, 0x60000d).noprw(); // interrupt controller?
1737 	map(0x60000e, 0x60000f).noprw();
1738 	map(0x800000, 0x801fff).rw(m_tc0150rod, FUNC(tc0150rod_device::word_r), FUNC(tc0150rod_device::word_w));
1739 }
1740 
1741 
sci_map(address_map & map)1742 void taitoz_state::sci_map(address_map &map)
1743 {
1744 	map(0x000000, 0x07ffff).rom();
1745 	map(0x100000, 0x107fff).ram();
1746 	map(0x108000, 0x10bfff).ram().share("share1");
1747 	map(0x10c000, 0x10ffff).ram();
1748 	map(0x200000, 0x20000f).rw(m_tc0220ioc, FUNC(tc0220ioc_device::read), FUNC(tc0220ioc_device::write)).umask16(0x00ff);
1749 	map(0x200010, 0x20001f).r(FUNC(taitoz_state::sci_steer_input_r));
1750 //  map(0x400000, 0x400001).w(FUNC(taitoz_state::cpua_ctrl_w));  // ?? doesn't seem to fit what's written
1751 	map(0x420001, 0x420001).w(m_tc0140syt, FUNC(tc0140syt_device::master_port_w));
1752 	map(0x420003, 0x420003).rw(m_tc0140syt, FUNC(tc0140syt_device::master_comm_r), FUNC(tc0140syt_device::master_comm_w));
1753 	map(0x800000, 0x801fff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
1754 	map(0xa00000, 0xa0ffff).rw(m_tc0100scn, FUNC(tc0100scn_device::ram_r), FUNC(tc0100scn_device::ram_w));    /* tilemaps */
1755 	map(0xa20000, 0xa2000f).rw(m_tc0100scn, FUNC(tc0100scn_device::ctrl_r), FUNC(tc0100scn_device::ctrl_w));
1756 	map(0xc00000, 0xc03fff).ram().share("spriteram");
1757 	map(0xc08000, 0xc08001).rw(FUNC(taitoz_state::sci_spriteframe_r), FUNC(taitoz_state::sci_spriteframe_w));
1758 }
1759 
sci_cpub_map(address_map & map)1760 void taitoz_state::sci_cpub_map(address_map &map)
1761 {
1762 	map(0x000000, 0x01ffff).rom();
1763 	map(0x200000, 0x203fff).ram();
1764 	map(0x208000, 0x20bfff).ram().share("share1");
1765 	map(0xa00000, 0xa01fff).rw(m_tc0150rod, FUNC(tc0150rod_device::word_r), FUNC(tc0150rod_device::word_w));
1766 }
1767 
1768 
nightstr_map(address_map & map)1769 void taitoz_state::nightstr_map(address_map &map)
1770 {
1771 	map(0x000000, 0x07ffff).rom();
1772 	map(0x100000, 0x10ffff).ram();
1773 	map(0x110000, 0x113fff).ram().share("share1");
1774 	map(0x400000, 0x40000f).rw(m_tc0220ioc, FUNC(tc0220ioc_device::read), FUNC(tc0220ioc_device::write)).umask16(0x00ff);
1775 	map(0x800000, 0x800001).w(FUNC(taitoz_state::cpua_ctrl_w));
1776 	map(0x820001, 0x820001).w(m_tc0140syt, FUNC(tc0140syt_device::master_port_w));
1777 	map(0x820003, 0x820003).rw(m_tc0140syt, FUNC(tc0140syt_device::master_comm_r), FUNC(tc0140syt_device::master_comm_w));
1778 	map(0xa00000, 0xa00007).rw(m_tc0110pcr, FUNC(tc0110pcr_device::word_r), FUNC(tc0110pcr_device::step1_word_w));  /* palette */
1779 	map(0xc00000, 0xc0ffff).rw(m_tc0100scn, FUNC(tc0100scn_device::ram_r), FUNC(tc0100scn_device::ram_w));    /* tilemaps */
1780 	map(0xc20000, 0xc2000f).rw(m_tc0100scn, FUNC(tc0100scn_device::ctrl_r), FUNC(tc0100scn_device::ctrl_w));
1781 	map(0xd00000, 0xd007ff).ram().share("spriteram");
1782 	map(0xe00000, 0xe00011).w(FUNC(taitoz_state::nightstr_motor_w));    /* Motor outputs */
1783 	map(0xe40000, 0xe4000f).rw("adc", FUNC(adc0808_device::data_r), FUNC(adc0808_device::address_offset_start_w)).umask16(0x00ff);
1784 }
1785 
nightstr_cpub_map(address_map & map)1786 void taitoz_state::nightstr_cpub_map(address_map &map)
1787 {
1788 	map(0x000000, 0x03ffff).rom();
1789 	map(0x100000, 0x103fff).ram();
1790 	map(0x104000, 0x107fff).ram().share("share1");
1791 	map(0x800000, 0x801fff).rw(m_tc0150rod, FUNC(tc0150rod_device::word_r), FUNC(tc0150rod_device::word_w));
1792 }
1793 
1794 
aquajack_map(address_map & map)1795 void taitoz_state::aquajack_map(address_map &map)
1796 {
1797 	map(0x000000, 0x03ffff).rom();
1798 	map(0x100000, 0x103fff).ram();
1799 	map(0x104000, 0x107fff).ram().share("share1");
1800 	map(0x200000, 0x200001).w(FUNC(taitoz_state::cpua_ctrl_w));  // not needed, but it's probably like the others
1801 	map(0x300000, 0x300007).rw(m_tc0110pcr, FUNC(tc0110pcr_device::word_r), FUNC(tc0110pcr_device::step1_word_w));  /* palette */
1802 	map(0x800000, 0x801fff).rw(m_tc0150rod, FUNC(tc0150rod_device::word_r), FUNC(tc0150rod_device::word_w));
1803 	map(0xa00000, 0xa0ffff).rw(m_tc0100scn, FUNC(tc0100scn_device::ram_r), FUNC(tc0100scn_device::ram_w));    /* tilemaps */
1804 	map(0xa20000, 0xa2000f).rw(m_tc0100scn, FUNC(tc0100scn_device::ctrl_r), FUNC(tc0100scn_device::ctrl_w));
1805 	map(0xc40000, 0xc403ff).ram().share("spriteram");
1806 }
1807 
aquajack_cpub_map(address_map & map)1808 void taitoz_state::aquajack_cpub_map(address_map &map)
1809 {
1810 	map(0x000000, 0x03ffff).rom();
1811 	map(0x100000, 0x103fff).ram();
1812 	map(0x104000, 0x107fff).ram().share("share1");
1813 	map(0x200000, 0x20000f).rw(m_tc0220ioc, FUNC(tc0220ioc_device::read), FUNC(tc0220ioc_device::write)).umask16(0x00ff);
1814 	map(0x300001, 0x300001).w(m_tc0140syt, FUNC(tc0140syt_device::master_port_w));
1815 	map(0x300003, 0x300003).rw(m_tc0140syt, FUNC(tc0140syt_device::master_comm_r), FUNC(tc0140syt_device::master_comm_w));
1816 	map(0x800800, 0x80083f).r(FUNC(taitoz_state::aquajack_unknown_r)); // Read regularly after write to 800800...
1817 //  map(0x800800, 0x800801).w(FUNC(taitoz_state::taitoz_unknown_w));
1818 //  map(0x900000, 0x900007).rw(FUNC(taitoz_state::taitoz_unknown_r), FUNC(taitoz_state::taitoz_unknown_w));
1819 }
1820 
1821 
spacegun_map(address_map & map)1822 void taitoz_state::spacegun_map(address_map &map)
1823 {
1824 	map(0x000000, 0x07ffff).rom();
1825 	map(0x30c000, 0x30ffff).ram();
1826 	map(0x310000, 0x31ffff).ram().share("share1");
1827 	map(0x500000, 0x5005ff).ram().share("spriteram");
1828 	map(0x900000, 0x90ffff).rw(m_tc0100scn, FUNC(tc0100scn_device::ram_r), FUNC(tc0100scn_device::ram_w));    /* tilemaps */
1829 	map(0x920000, 0x92000f).rw(m_tc0100scn, FUNC(tc0100scn_device::ctrl_r), FUNC(tc0100scn_device::ctrl_w));
1830 	map(0xb00000, 0xb00007).rw(m_tc0110pcr, FUNC(tc0110pcr_device::word_r), FUNC(tc0110pcr_device::step1_rbswap_word_w));   /* palette */
1831 }
1832 
spacegun_cpub_map(address_map & map)1833 void taitoz_state::spacegun_cpub_map(address_map &map)
1834 {
1835 	map(0x000000, 0x03ffff).rom();
1836 	map(0x20c000, 0x20ffff).ram();
1837 	map(0x210000, 0x21ffff).ram().share("share1");
1838 	map(0x800000, 0x80000f).rw(m_tc0510nio, FUNC(tc0510nio_device::read), FUNC(tc0510nio_device::write)).umask16(0x00ff).cswidth(16);
1839 	map(0xc00000, 0xc00007).rw("ymsnd", FUNC(ym2610_device::read), FUNC(ym2610_device::write)).umask16(0x00ff);
1840 	map(0xc0000c, 0xc0000d).noprw(); // interrupt controller?
1841 	map(0xc0000e, 0xc0000f).noprw();
1842 	map(0xc20000, 0xc20007).w(FUNC(taitoz_state::pancontrol_w)).umask16(0x00ff);  /* pan */
1843 	map(0xe00000, 0xe00001).w(FUNC(taitoz_state::spacegun_gun_output_w));    /* gun outputs */
1844 	map(0xf00000, 0xf0000f).rw("adc", FUNC(adc0808_device::data_r), FUNC(adc0808_device::address_offset_start_w)).umask16(0x00ff);
1845 }
1846 
1847 
dblaxle_map(address_map & map)1848 void taitoz_state::dblaxle_map(address_map &map)
1849 {
1850 	map(0x000000, 0x07ffff).rom();
1851 	map(0x200000, 0x203fff).ram();
1852 	map(0x210000, 0x21ffff).ram().share("share1");
1853 	map(0x400000, 0x40000f).rw(m_tc0510nio, FUNC(tc0510nio_device::halfword_wordswap_r), FUNC(tc0510nio_device::halfword_wordswap_w));
1854 	map(0x400010, 0x40001f).r(FUNC(taitoz_state::dblaxle_steer_input_r));
1855 	map(0x600000, 0x600001).w(FUNC(taitoz_state::dblaxle_cpua_ctrl_w));  /* could this be causing int6 ? */
1856 	map(0x620001, 0x620001).w(m_tc0140syt, FUNC(tc0140syt_device::master_port_w));
1857 	map(0x620003, 0x620003).rw(m_tc0140syt, FUNC(tc0140syt_device::master_comm_r), FUNC(tc0140syt_device::master_comm_w));
1858 	map(0x800000, 0x801fff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
1859 	map(0x900000, 0x90ffff).rw(m_tc0480scp, FUNC(tc0480scp_device::ram_r), FUNC(tc0480scp_device::ram_w));      /* tilemap mirror */
1860 	map(0xa00000, 0xa0ffff).rw(m_tc0480scp, FUNC(tc0480scp_device::ram_r), FUNC(tc0480scp_device::ram_w));      /* tilemaps */
1861 	map(0xa30000, 0xa3002f).rw(m_tc0480scp, FUNC(tc0480scp_device::ctrl_r), FUNC(tc0480scp_device::ctrl_w));
1862 	map(0xc00000, 0xc03fff).ram().share("spriteram"); /* mostly unused ? */
1863 	map(0xc08000, 0xc08001).rw(FUNC(taitoz_state::sci_spriteframe_r), FUNC(taitoz_state::sci_spriteframe_w)); /* set in int6, seems to stay zero */
1864 }
1865 
dblaxle_cpub_map(address_map & map)1866 void taitoz_state::dblaxle_cpub_map(address_map &map)
1867 {
1868 	map(0x000000, 0x03ffff).rom();
1869 	map(0x100000, 0x103fff).ram();
1870 	map(0x110000, 0x11ffff).ram().share("share1");
1871 	map(0x300000, 0x301fff).rw(m_tc0150rod, FUNC(tc0150rod_device::word_r), FUNC(tc0150rod_device::word_w));
1872 	map(0x500000, 0x503fff).ram(); /* network ram ? (see Gunbustr) */
1873 }
1874 
1875 
racingb_map(address_map & map)1876 void taitoz_state::racingb_map(address_map &map)
1877 {
1878 	map(0x000000, 0x07ffff).rom();
1879 	map(0x100000, 0x103fff).ram();
1880 	map(0x110000, 0x11ffff).ram().share("share1");
1881 	map(0x300000, 0x30000f).rw(m_tc0510nio, FUNC(tc0510nio_device::halfword_wordswap_r), FUNC(tc0510nio_device::halfword_wordswap_w));
1882 	map(0x300010, 0x30001f).r(FUNC(taitoz_state::dblaxle_steer_input_r));
1883 	map(0x500002, 0x500003).w(FUNC(taitoz_state::cpua_ctrl_w));
1884 	map(0x520001, 0x520001).w(m_tc0140syt, FUNC(tc0140syt_device::master_port_w));
1885 	map(0x520003, 0x520003).rw(m_tc0140syt, FUNC(tc0140syt_device::master_comm_r), FUNC(tc0140syt_device::master_comm_w));
1886 	map(0x700000, 0x701fff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
1887 	map(0x900000, 0x90ffff).rw(m_tc0480scp, FUNC(tc0480scp_device::ram_r), FUNC(tc0480scp_device::ram_w));      /* tilemaps */
1888 	map(0x930000, 0x93002f).rw(m_tc0480scp, FUNC(tc0480scp_device::ctrl_r), FUNC(tc0480scp_device::ctrl_w));
1889 	map(0xb00000, 0xb03fff).ram().share("spriteram"); /* mostly unused ? */
1890 	map(0xb08000, 0xb08001).rw(FUNC(taitoz_state::sci_spriteframe_r), FUNC(taitoz_state::sci_spriteframe_w)); /* alternates 0/0x100 */
1891 }
1892 
racingb_cpub_map(address_map & map)1893 void taitoz_state::racingb_cpub_map(address_map &map)
1894 {
1895 	map(0x000000, 0x03ffff).rom();
1896 	map(0x400000, 0x403fff).ram();
1897 	map(0x410000, 0x41ffff).ram().share("share1");
1898 	map(0xa00000, 0xa01fff).rw(m_tc0150rod, FUNC(tc0150rod_device::word_r), FUNC(tc0150rod_device::word_w));
1899 	map(0xd00000, 0xd03fff).ram(); /* network ram ? */
1900 }
1901 
1902 
1903 /***************************************************************************/
1904 
z80_sound_map(address_map & map)1905 void taitoz_state::z80_sound_map(address_map &map)
1906 {
1907 	map(0x0000, 0x3fff).rom();
1908 	map(0x4000, 0x7fff).bankr("z80bank");
1909 	map(0xc000, 0xdfff).ram();
1910 	map(0xe000, 0xe003).rw("ymsnd", FUNC(ym2610_device::read), FUNC(ym2610_device::write));
1911 	map(0xe200, 0xe200).nopr().w(m_tc0140syt, FUNC(tc0140syt_device::slave_port_w));
1912 	map(0xe201, 0xe201).rw(m_tc0140syt, FUNC(tc0140syt_device::slave_comm_r), FUNC(tc0140syt_device::slave_comm_w));
1913 	map(0xe400, 0xe403).w(FUNC(taitoz_state::pancontrol_w)); /* pan */
1914 	map(0xea00, 0xea00).nopr();
1915 	map(0xee00, 0xee00).nopw(); /* ? */
1916 	map(0xf000, 0xf000).nopw(); /* ? */
1917 	map(0xf200, 0xf200).w(FUNC(taitoz_state::sound_bankswitch_w));
1918 }
1919 
1920 
1921 /***********************************************************
1922                    INPUT PORTS, DIPs
1923 ***********************************************************/
1924 
1925 #define TAITO_Z_ANALOG_ADJUST( str ) \
1926 	PORT_DIPNAME( 0xff, 0x80, str ) \
1927 	PORT_DIPSETTING(    0x00, "-80" ) \
1928 	PORT_DIPSETTING(    0x01, "-7F" ) \
1929 	PORT_DIPSETTING(    0x02, "-7E" ) \
1930 	PORT_DIPSETTING(    0x03, "-7D" ) \
1931 	PORT_DIPSETTING(    0x04, "-7C" ) \
1932 	PORT_DIPSETTING(    0x05, "-7B" ) \
1933 	PORT_DIPSETTING(    0x06, "-7A" ) \
1934 	PORT_DIPSETTING(    0x07, "-79" ) \
1935 	PORT_DIPSETTING(    0x08, "-78" ) \
1936 	PORT_DIPSETTING(    0x09, "-77" ) \
1937 	PORT_DIPSETTING(    0x0a, "-76" ) \
1938 	PORT_DIPSETTING(    0x0b, "-75" ) \
1939 	PORT_DIPSETTING(    0x0c, "-74" ) \
1940 	PORT_DIPSETTING(    0x0d, "-73" ) \
1941 	PORT_DIPSETTING(    0x0e, "-72" ) \
1942 	PORT_DIPSETTING(    0x0f, "-71" ) \
1943 	PORT_DIPSETTING(    0x10, "-70" ) \
1944 	PORT_DIPSETTING(    0x11, "-6F" ) \
1945 	PORT_DIPSETTING(    0x12, "-6E" ) \
1946 	PORT_DIPSETTING(    0x13, "-6D" ) \
1947 	PORT_DIPSETTING(    0x14, "-6C" ) \
1948 	PORT_DIPSETTING(    0x15, "-6B" ) \
1949 	PORT_DIPSETTING(    0x16, "-6A" ) \
1950 	PORT_DIPSETTING(    0x17, "-69" ) \
1951 	PORT_DIPSETTING(    0x18, "-68" ) \
1952 	PORT_DIPSETTING(    0x19, "-67" ) \
1953 	PORT_DIPSETTING(    0x1a, "-66" ) \
1954 	PORT_DIPSETTING(    0x1b, "-65" ) \
1955 	PORT_DIPSETTING(    0x1c, "-64" ) \
1956 	PORT_DIPSETTING(    0x1d, "-63" ) \
1957 	PORT_DIPSETTING(    0x1e, "-62" ) \
1958 	PORT_DIPSETTING(    0x1f, "-61" ) \
1959 	PORT_DIPSETTING(    0x20, "-60" ) \
1960 	PORT_DIPSETTING(    0x21, "-5F" ) \
1961 	PORT_DIPSETTING(    0x22, "-5E" ) \
1962 	PORT_DIPSETTING(    0x23, "-5D" ) \
1963 	PORT_DIPSETTING(    0x24, "-5C" ) \
1964 	PORT_DIPSETTING(    0x25, "-5B" ) \
1965 	PORT_DIPSETTING(    0x26, "-5A" ) \
1966 	PORT_DIPSETTING(    0x27, "-59" ) \
1967 	PORT_DIPSETTING(    0x28, "-58" ) \
1968 	PORT_DIPSETTING(    0x29, "-57" ) \
1969 	PORT_DIPSETTING(    0x2a, "-56" ) \
1970 	PORT_DIPSETTING(    0x2b, "-55" ) \
1971 	PORT_DIPSETTING(    0x2c, "-54" ) \
1972 	PORT_DIPSETTING(    0x2d, "-53" ) \
1973 	PORT_DIPSETTING(    0x2e, "-52" ) \
1974 	PORT_DIPSETTING(    0x2f, "-51" ) \
1975 	PORT_DIPSETTING(    0x30, "-50" ) \
1976 	PORT_DIPSETTING(    0x31, "-4F" ) \
1977 	PORT_DIPSETTING(    0x32, "-4E" ) \
1978 	PORT_DIPSETTING(    0x33, "-4D" ) \
1979 	PORT_DIPSETTING(    0x34, "-4C" ) \
1980 	PORT_DIPSETTING(    0x35, "-4B" ) \
1981 	PORT_DIPSETTING(    0x36, "-4A" ) \
1982 	PORT_DIPSETTING(    0x37, "-49" ) \
1983 	PORT_DIPSETTING(    0x38, "-48" ) \
1984 	PORT_DIPSETTING(    0x39, "-47" ) \
1985 	PORT_DIPSETTING(    0x3a, "-46" ) \
1986 	PORT_DIPSETTING(    0x3b, "-45" ) \
1987 	PORT_DIPSETTING(    0x3c, "-44" ) \
1988 	PORT_DIPSETTING(    0x3d, "-43" ) \
1989 	PORT_DIPSETTING(    0x3e, "-42" ) \
1990 	PORT_DIPSETTING(    0x3f, "-41" ) \
1991 	PORT_DIPSETTING(    0x40, "-40" ) \
1992 	PORT_DIPSETTING(    0x41, "-3F" ) \
1993 	PORT_DIPSETTING(    0x42, "-3E" ) \
1994 	PORT_DIPSETTING(    0x43, "-3D" ) \
1995 	PORT_DIPSETTING(    0x44, "-3C" ) \
1996 	PORT_DIPSETTING(    0x45, "-3B" ) \
1997 	PORT_DIPSETTING(    0x46, "-3A" ) \
1998 	PORT_DIPSETTING(    0x47, "-39" ) \
1999 	PORT_DIPSETTING(    0x48, "-38" ) \
2000 	PORT_DIPSETTING(    0x49, "-37" ) \
2001 	PORT_DIPSETTING(    0x4a, "-36" ) \
2002 	PORT_DIPSETTING(    0x4b, "-35" ) \
2003 	PORT_DIPSETTING(    0x4c, "-34" ) \
2004 	PORT_DIPSETTING(    0x4d, "-33" ) \
2005 	PORT_DIPSETTING(    0x4e, "-32" ) \
2006 	PORT_DIPSETTING(    0x4f, "-31" ) \
2007 	PORT_DIPSETTING(    0x50, "-30" ) \
2008 	PORT_DIPSETTING(    0x51, "-2F" ) \
2009 	PORT_DIPSETTING(    0x52, "-2E" ) \
2010 	PORT_DIPSETTING(    0x53, "-2D" ) \
2011 	PORT_DIPSETTING(    0x54, "-2C" ) \
2012 	PORT_DIPSETTING(    0x55, "-2B" ) \
2013 	PORT_DIPSETTING(    0x56, "-2A" ) \
2014 	PORT_DIPSETTING(    0x57, "-29" ) \
2015 	PORT_DIPSETTING(    0x58, "-28" ) \
2016 	PORT_DIPSETTING(    0x59, "-27" ) \
2017 	PORT_DIPSETTING(    0x5a, "-26" ) \
2018 	PORT_DIPSETTING(    0x5b, "-25" ) \
2019 	PORT_DIPSETTING(    0x5c, "-24" ) \
2020 	PORT_DIPSETTING(    0x5d, "-23" ) \
2021 	PORT_DIPSETTING(    0x5e, "-22" ) \
2022 	PORT_DIPSETTING(    0x5f, "-21" ) \
2023 	PORT_DIPSETTING(    0x60, "-20" ) \
2024 	PORT_DIPSETTING(    0x61, "-1F" ) \
2025 	PORT_DIPSETTING(    0x62, "-1E" ) \
2026 	PORT_DIPSETTING(    0x63, "-1D" ) \
2027 	PORT_DIPSETTING(    0x64, "-1C" ) \
2028 	PORT_DIPSETTING(    0x65, "-1B" ) \
2029 	PORT_DIPSETTING(    0x66, "-1A" ) \
2030 	PORT_DIPSETTING(    0x67, "-19" ) \
2031 	PORT_DIPSETTING(    0x68, "-18" ) \
2032 	PORT_DIPSETTING(    0x69, "-17" ) \
2033 	PORT_DIPSETTING(    0x6a, "-16" ) \
2034 	PORT_DIPSETTING(    0x6b, "-15" ) \
2035 	PORT_DIPSETTING(    0x6c, "-14" ) \
2036 	PORT_DIPSETTING(    0x6d, "-13" ) \
2037 	PORT_DIPSETTING(    0x6e, "-12" ) \
2038 	PORT_DIPSETTING(    0x6f, "-11" ) \
2039 	PORT_DIPSETTING(    0x70, "-10" ) \
2040 	PORT_DIPSETTING(    0x71, "-0F" ) \
2041 	PORT_DIPSETTING(    0x72, "-0E" ) \
2042 	PORT_DIPSETTING(    0x73, "-0D" ) \
2043 	PORT_DIPSETTING(    0x74, "-0C" ) \
2044 	PORT_DIPSETTING(    0x75, "-0B" ) \
2045 	PORT_DIPSETTING(    0x76, "-0A" ) \
2046 	PORT_DIPSETTING(    0x77, "-09" ) \
2047 	PORT_DIPSETTING(    0x78, "-08" ) \
2048 	PORT_DIPSETTING(    0x79, "-07" ) \
2049 	PORT_DIPSETTING(    0x7a, "-06" ) \
2050 	PORT_DIPSETTING(    0x7b, "-05" ) \
2051 	PORT_DIPSETTING(    0x7c, "-04" ) \
2052 	PORT_DIPSETTING(    0x7d, "-03" ) \
2053 	PORT_DIPSETTING(    0x7e, "-02" ) \
2054 	PORT_DIPSETTING(    0x7f, "-01" ) \
2055 	PORT_DIPSETTING(    0x80, "+00" ) \
2056 	PORT_DIPSETTING(    0x81, "+01" ) \
2057 	PORT_DIPSETTING(    0x82, "+02" ) \
2058 	PORT_DIPSETTING(    0x83, "+03" ) \
2059 	PORT_DIPSETTING(    0x84, "+04" ) \
2060 	PORT_DIPSETTING(    0x85, "+05" ) \
2061 	PORT_DIPSETTING(    0x86, "+06" ) \
2062 	PORT_DIPSETTING(    0x87, "+07" ) \
2063 	PORT_DIPSETTING(    0x88, "+08" ) \
2064 	PORT_DIPSETTING(    0x89, "+09" ) \
2065 	PORT_DIPSETTING(    0x8a, "+0A" ) \
2066 	PORT_DIPSETTING(    0x8b, "+0B" ) \
2067 	PORT_DIPSETTING(    0x8c, "+0C" ) \
2068 	PORT_DIPSETTING(    0x8d, "+0D" ) \
2069 	PORT_DIPSETTING(    0x8e, "+0E" ) \
2070 	PORT_DIPSETTING(    0x8f, "+0F" ) \
2071 	PORT_DIPSETTING(    0x90, "+10" ) \
2072 	PORT_DIPSETTING(    0x91, "+11" ) \
2073 	PORT_DIPSETTING(    0x92, "+12" ) \
2074 	PORT_DIPSETTING(    0x93, "+13" ) \
2075 	PORT_DIPSETTING(    0x94, "+14" ) \
2076 	PORT_DIPSETTING(    0x95, "+15" ) \
2077 	PORT_DIPSETTING(    0x96, "+16" ) \
2078 	PORT_DIPSETTING(    0x97, "+17" ) \
2079 	PORT_DIPSETTING(    0x98, "+18" ) \
2080 	PORT_DIPSETTING(    0x99, "+19" ) \
2081 	PORT_DIPSETTING(    0x9a, "+1A" ) \
2082 	PORT_DIPSETTING(    0x9b, "+1B" ) \
2083 	PORT_DIPSETTING(    0x9c, "+1C" ) \
2084 	PORT_DIPSETTING(    0x9d, "+1D" ) \
2085 	PORT_DIPSETTING(    0x9e, "+1E" ) \
2086 	PORT_DIPSETTING(    0x9f, "+1F" ) \
2087 	PORT_DIPSETTING(    0xa0, "+20" ) \
2088 	PORT_DIPSETTING(    0xa1, "+21" ) \
2089 	PORT_DIPSETTING(    0xa2, "+22" ) \
2090 	PORT_DIPSETTING(    0xa3, "+23" ) \
2091 	PORT_DIPSETTING(    0xa4, "+24" ) \
2092 	PORT_DIPSETTING(    0xa5, "+25" ) \
2093 	PORT_DIPSETTING(    0xa6, "+26" ) \
2094 	PORT_DIPSETTING(    0xa7, "+27" ) \
2095 	PORT_DIPSETTING(    0xa8, "+28" ) \
2096 	PORT_DIPSETTING(    0xa9, "+29" ) \
2097 	PORT_DIPSETTING(    0xaa, "+2A" ) \
2098 	PORT_DIPSETTING(    0xab, "+2B" ) \
2099 	PORT_DIPSETTING(    0xac, "+2C" ) \
2100 	PORT_DIPSETTING(    0xad, "+2D" ) \
2101 	PORT_DIPSETTING(    0xae, "+2E" ) \
2102 	PORT_DIPSETTING(    0xaf, "+2F" ) \
2103 	PORT_DIPSETTING(    0xb0, "+30" ) \
2104 	PORT_DIPSETTING(    0xb1, "+31" ) \
2105 	PORT_DIPSETTING(    0xb2, "+32" ) \
2106 	PORT_DIPSETTING(    0xb3, "+33" ) \
2107 	PORT_DIPSETTING(    0xb4, "+34" ) \
2108 	PORT_DIPSETTING(    0xb5, "+35" ) \
2109 	PORT_DIPSETTING(    0xb6, "+36" ) \
2110 	PORT_DIPSETTING(    0xb7, "+37" ) \
2111 	PORT_DIPSETTING(    0xb8, "+38" ) \
2112 	PORT_DIPSETTING(    0xb9, "+39" ) \
2113 	PORT_DIPSETTING(    0xba, "+3A" ) \
2114 	PORT_DIPSETTING(    0xbb, "+3B" ) \
2115 	PORT_DIPSETTING(    0xbc, "+3C" ) \
2116 	PORT_DIPSETTING(    0xbd, "+3D" ) \
2117 	PORT_DIPSETTING(    0xbe, "+3E" ) \
2118 	PORT_DIPSETTING(    0xbf, "+3F" ) \
2119 	PORT_DIPSETTING(    0xc0, "+40" ) \
2120 	PORT_DIPSETTING(    0xc1, "+41" ) \
2121 	PORT_DIPSETTING(    0xc2, "+42" ) \
2122 	PORT_DIPSETTING(    0xc3, "+43" ) \
2123 	PORT_DIPSETTING(    0xc4, "+44" ) \
2124 	PORT_DIPSETTING(    0xc5, "+45" ) \
2125 	PORT_DIPSETTING(    0xc6, "+46" ) \
2126 	PORT_DIPSETTING(    0xc7, "+47" ) \
2127 	PORT_DIPSETTING(    0xc8, "+48" ) \
2128 	PORT_DIPSETTING(    0xc9, "+49" ) \
2129 	PORT_DIPSETTING(    0xca, "+4A" ) \
2130 	PORT_DIPSETTING(    0xcb, "+4B" ) \
2131 	PORT_DIPSETTING(    0xcc, "+4C" ) \
2132 	PORT_DIPSETTING(    0xcd, "+4D" ) \
2133 	PORT_DIPSETTING(    0xce, "+4E" ) \
2134 	PORT_DIPSETTING(    0xcf, "+4F" ) \
2135 	PORT_DIPSETTING(    0xd0, "+50" ) \
2136 	PORT_DIPSETTING(    0xd1, "+51" ) \
2137 	PORT_DIPSETTING(    0xd2, "+52" ) \
2138 	PORT_DIPSETTING(    0xd3, "+53" ) \
2139 	PORT_DIPSETTING(    0xd4, "+54" ) \
2140 	PORT_DIPSETTING(    0xd5, "+55" ) \
2141 	PORT_DIPSETTING(    0xd6, "+56" ) \
2142 	PORT_DIPSETTING(    0xd7, "+57" ) \
2143 	PORT_DIPSETTING(    0xd8, "+58" ) \
2144 	PORT_DIPSETTING(    0xd9, "+59" ) \
2145 	PORT_DIPSETTING(    0xda, "+5A" ) \
2146 	PORT_DIPSETTING(    0xdb, "+5B" ) \
2147 	PORT_DIPSETTING(    0xdc, "+5C" ) \
2148 	PORT_DIPSETTING(    0xdd, "+5D" ) \
2149 	PORT_DIPSETTING(    0xde, "+5E" ) \
2150 	PORT_DIPSETTING(    0xdf, "+5F" ) \
2151 	PORT_DIPSETTING(    0xe0, "+60" ) \
2152 	PORT_DIPSETTING(    0xe1, "+61" ) \
2153 	PORT_DIPSETTING(    0xe2, "+62" ) \
2154 	PORT_DIPSETTING(    0xe3, "+63" ) \
2155 	PORT_DIPSETTING(    0xe4, "+64" ) \
2156 	PORT_DIPSETTING(    0xe5, "+65" ) \
2157 	PORT_DIPSETTING(    0xe6, "+66" ) \
2158 	PORT_DIPSETTING(    0xe7, "+67" ) \
2159 	PORT_DIPSETTING(    0xe8, "+68" ) \
2160 	PORT_DIPSETTING(    0xe9, "+69" ) \
2161 	PORT_DIPSETTING(    0xea, "+6A" ) \
2162 	PORT_DIPSETTING(    0xeb, "+6B" ) \
2163 	PORT_DIPSETTING(    0xec, "+6C" ) \
2164 	PORT_DIPSETTING(    0xed, "+6D" ) \
2165 	PORT_DIPSETTING(    0xee, "+6E" ) \
2166 	PORT_DIPSETTING(    0xef, "+6F" ) \
2167 	PORT_DIPSETTING(    0xf0, "+70" ) \
2168 	PORT_DIPSETTING(    0xf1, "+71" ) \
2169 	PORT_DIPSETTING(    0xf2, "+72" ) \
2170 	PORT_DIPSETTING(    0xf3, "+73" ) \
2171 	PORT_DIPSETTING(    0xf4, "+74" ) \
2172 	PORT_DIPSETTING(    0xf5, "+75" ) \
2173 	PORT_DIPSETTING(    0xf6, "+76" ) \
2174 	PORT_DIPSETTING(    0xf7, "+77" ) \
2175 	PORT_DIPSETTING(    0xf8, "+78" ) \
2176 	PORT_DIPSETTING(    0xf9, "+79" ) \
2177 	PORT_DIPSETTING(    0xfa, "+7A" ) \
2178 	PORT_DIPSETTING(    0xfb, "+7B" ) \
2179 	PORT_DIPSETTING(    0xfc, "+7C" ) \
2180 	PORT_DIPSETTING(    0xfd, "+7D" ) \
2181 	PORT_DIPSETTING(    0xfe, "+7E" ) \
2182 	PORT_DIPSETTING(    0xff, "+7F" )
2183 
2184 
2185 static INPUT_PORTS_START( contcirc )
2186 	PORT_START("DSWA")
2187 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )          PORT_DIPLOCATION("SW A:1")
2188 	PORT_DIPSETTING(    0x01, "Cockpit" )           // analog pedals
2189 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )  // digital pedals, no brake?, allow free steering wheel
2190 	PORT_DIPNAME( 0x02, 0x02, DEF_STR( Continue_Price ) )   PORT_DIPLOCATION("SW A:2")
2191 	PORT_DIPSETTING(    0x02, "Same as Start" )
2192 	PORT_DIPSETTING(    0x00, "Discount" )
2193 	PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW A:3" )
2194 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )      PORT_DIPLOCATION("SW A:4")
2195 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2196 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
2197 	TAITO_COINAGE_WORLD_LOC(SW A)
2198 
2199 	PORT_START("DSWB")
2200 	PORT_DIPNAME( 0x03, 0x03, "Difficulty 1 (time/speed)" ) PORT_DIPLOCATION("SW B:1,2")
2201 	PORT_DIPSETTING(    0x02, DEF_STR( Easy ) )
2202 	PORT_DIPSETTING(    0x03, DEF_STR( Normal ) )
2203 	PORT_DIPSETTING(    0x01, DEF_STR( Hard ) )
2204 	PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
2205 	PORT_DIPNAME( 0x0c, 0x0c, "Difficulty 2 (other cars)" ) PORT_DIPLOCATION("SW B:3,4")
2206 	PORT_DIPSETTING(    0x08, DEF_STR( Easy ) )
2207 	PORT_DIPSETTING(    0x0c, DEF_STR( Normal ) )
2208 	PORT_DIPSETTING(    0x04, DEF_STR( Hard ) )
2209 	PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
2210 	PORT_DIPNAME( 0x10, 0x00, "Steering Wheel" )            PORT_DIPLOCATION("SW B:5") // no function in Cockpit cabinet?
2211 	PORT_DIPSETTING(    0x10, "Free" )
2212 	PORT_DIPSETTING(    0x00, "Locked" )
2213 	PORT_DIPNAME( 0x20, 0x00, "3D Effect" )                 PORT_DIPLOCATION("SW B:6") // unlisted in manual
2214 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2215 	PORT_DIPSETTING(    0x20, DEF_STR( On ) )
2216 	PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW B:7" )
2217 	PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW B:8" )
2218 
2219 	PORT_START("IN0")
2220 	PORT_BIT( 0x01, IP_ACTIVE_LOW,  IPT_UNKNOWN )
2221 	PORT_BIT( 0x02, IP_ACTIVE_LOW,  IPT_UNKNOWN )
2222 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 )
2223 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 )
2224 	PORT_BIT( 0x10, IP_ACTIVE_LOW,  IPT_SERVICE1 )
2225 	PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(taitoz_state, gas_pedal_r) PORT_CONDITION("DSWA", 0x01, EQUALS, 0x01)
2226 	PORT_BIT( 0xe0, IP_ACTIVE_LOW,  IPT_BUTTON1 ) PORT_NAME("Gas Switch") PORT_CONDITION("DSWA", 0x01, EQUALS, 0x00)
2227 
2228 	PORT_START("IN1")
2229 	PORT_BIT( 0x01, IP_ACTIVE_LOW,  IPT_UNKNOWN )
2230 	PORT_BIT( 0x02, IP_ACTIVE_LOW,  IPT_UNKNOWN )
2231 	PORT_BIT( 0x04, IP_ACTIVE_LOW,  IPT_TILT )
2232 	PORT_BIT( 0x08, IP_ACTIVE_LOW,  IPT_START1 )
2233 	PORT_BIT( 0x10, IP_ACTIVE_LOW,  IPT_BUTTON3 ) PORT_NAME("Shifter") PORT_TOGGLE
2234 	PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(taitoz_state, brake_pedal_r) PORT_CONDITION("DSWA", 0x01, EQUALS, 0x01)
2235 	PORT_BIT( 0xe0, IP_ACTIVE_LOW,  IPT_BUTTON2 ) PORT_NAME("Brake Switch") PORT_CONDITION("DSWA", 0x01, EQUALS, 0x00) // no function?
2236 
2237 	PORT_START("IN2")   /* unused */
2238 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2239 
2240 	PORT_START("STEER")
2241 	PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x20, 0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE PORT_NAME("Steering Wheel") PORT_CONDITION("DSWB", 0x10, EQUALS, 0x00)
2242 	PORT_BIT( 0xffff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(2) PORT_REVERSE PORT_NAME("Steering Wheel") PORT_CONDITION("DSWB", 0x10, EQUALS, 0x10)
2243 
2244 	PORT_START("GAS")
2245 	PORT_BIT( 0x07, 0x00, IPT_PEDAL )  PORT_SENSITIVITY(25) PORT_KEYDELTA(1) PORT_NAME("Gas Pedal") PORT_CONDITION("DSWA", 0x01, EQUALS, 0x01)
2246 
2247 	PORT_START("BRAKE")
2248 	PORT_BIT( 0x07, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(1) PORT_NAME("Brake Pedal") PORT_CONDITION("DSWA", 0x01, EQUALS, 0x01)
2249 INPUT_PORTS_END
2250 
2251 static INPUT_PORTS_START( contcrcu )
2252 	PORT_INCLUDE(contcirc)
2253 
2254 	PORT_MODIFY("DSWA")     // confirmed
2255 	TAITO_COINAGE_JAPAN_OLD_LOC(SW A)
2256 INPUT_PORTS_END
2257 
2258 static INPUT_PORTS_START( contcrcj )
2259 	PORT_INCLUDE(contcirc)
2260 
2261 	PORT_MODIFY("DSWA")     // confirmed correct for US set as well
2262 	TAITO_COINAGE_JAPAN_OLD_LOC(SW A)
2263 
2264 	PORT_MODIFY("DSWB")
2265 	PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW B:6" ) // Japan & US set 2 CANNOT turn off 3D effect!!
2266 INPUT_PORTS_END
2267 
2268 static INPUT_PORTS_START( chasehq ) // IN3-6 perhaps used with cockpit setup? //
2269 	PORT_START("DSWA")
2270 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Cabinet ) )          PORT_DIPLOCATION("SW A:1,2") /* US Manual states DIPS 1 & 2 "MUST REMAIN OFF" */
2271 	PORT_DIPSETTING(    0x03, "Upright / Steering Lock" )           // digital pedals, locked steering wheel
2272 	PORT_DIPSETTING(    0x02, "Upright / No Steering Lock" )        // digital pedals, free steering wheel
2273 	PORT_DIPSETTING(    0x01, "Full Throttle Convert, Cockpit" )    // analog pedals, locked steering wheel
2274 	PORT_DIPSETTING(    0x00, "Full Throttle Convert, Deluxe" )     // analog pedals, locked steering wheel, motor
2275 	PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW A:3" )
2276 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )      PORT_DIPLOCATION("SW A:4")
2277 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2278 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
2279 	TAITO_COINAGE_WORLD_LOC(SW A)
2280 
2281 	PORT_START("DSWB")
2282 	TAITO_DIFFICULTY_LOC(SW B)
2283 	PORT_DIPNAME( 0x0c, 0x0c, "Timer Setting" )             PORT_DIPLOCATION("SW B:3,4")
2284 	PORT_DIPSETTING(    0x08, "70 Seconds" )
2285 	PORT_DIPSETTING(    0x04, "65 Seconds" )
2286 	PORT_DIPSETTING(    0x0c, "60 Seconds" )
2287 	PORT_DIPSETTING(    0x00, "55 Seconds" )
2288 	PORT_DIPNAME( 0x10, 0x10, "Turbos Stocked" )            PORT_DIPLOCATION("SW B:5")
2289 	PORT_DIPSETTING(    0x10, "3" )
2290 	PORT_DIPSETTING(    0x00, "5" )
2291 	PORT_DIPNAME( 0x20, 0x20, DEF_STR( Continue_Price ) )   PORT_DIPLOCATION("SW B:6")
2292 	PORT_DIPSETTING(    0x20, "Same as Start" )
2293 	PORT_DIPSETTING(    0x00, "Discount" )
2294 	PORT_DIPNAME( 0x40, 0x40, "Clear Damage on Continue" )  PORT_DIPLOCATION("SW B:7")
2295 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2296 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
2297 	PORT_DIPNAME( 0x80, 0x80, DEF_STR( Allow_Continue ) )   PORT_DIPLOCATION("SW B:8")
2298 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2299 	PORT_DIPSETTING(    0x80, DEF_STR( On ) )
2300 
2301 	PORT_START("IN0")
2302 	PORT_BIT( 0x01, IP_ACTIVE_LOW,  IPT_UNKNOWN )
2303 	PORT_BIT( 0x02, IP_ACTIVE_LOW,  IPT_UNKNOWN )
2304 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN1 )
2305 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 )
2306 	PORT_BIT( 0x10, IP_ACTIVE_LOW,  IPT_SERVICE1 )
2307 	PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(taitoz_state, brake_pedal_r) PORT_CONDITION("DSWA", 0x02, EQUALS, 0x00)
2308 	PORT_BIT( 0x20, IP_ACTIVE_LOW,  IPT_BUTTON2 ) PORT_NAME("Brake Switch") PORT_CONDITION("DSWA", 0x02, EQUALS, 0x02)
2309 
2310 	PORT_START("IN1")
2311 	PORT_BIT( 0x01, IP_ACTIVE_LOW,  IPT_BUTTON3 ) PORT_NAME("Turbo")
2312 	PORT_BIT( 0x02, IP_ACTIVE_LOW,  IPT_TILT )
2313 	PORT_BIT( 0x04, IP_ACTIVE_LOW,  IPT_SERVICE2 ) PORT_NAME("Calibrate") // ?
2314 	PORT_BIT( 0x08, IP_ACTIVE_LOW,  IPT_START1 )
2315 	PORT_BIT( 0x10, IP_ACTIVE_LOW,  IPT_BUTTON4 ) PORT_NAME("Shifter") PORT_TOGGLE
2316 	PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(taitoz_state, gas_pedal_r) PORT_CONDITION("DSWA", 0x02, EQUALS, 0x00)
2317 	PORT_BIT( 0x20, IP_ACTIVE_LOW,  IPT_BUTTON1 ) PORT_NAME("Gas Switch") PORT_CONDITION("DSWA", 0x02, EQUALS, 0x02)
2318 
2319 	PORT_START("IN2")   /* unused */
2320 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2321 
2322 	PORT_START("UNK1")  /* ??? */
2323 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2324 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2325 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2326 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2327 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2328 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2329 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2330 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2331 
2332 	PORT_START("UNK2")  /* ??? */
2333 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2334 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2335 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2336 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2337 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2338 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2339 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2340 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2341 
2342 	PORT_START("UNK3")  /* ??? */
2343 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2344 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2345 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2346 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2347 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2348 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2349 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2350 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2351 
2352 	PORT_START("UNK4")  /* ??? */
2353 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2354 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2355 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2356 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2357 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2358 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2359 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2360 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2361 
2362 	PORT_START("STEER")
2363 	PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x20, 0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_NAME("Steering Wheel") PORT_CONDITION("DSWA", 0x03, NOTEQUALS, 0x02)
2364 	PORT_BIT( 0xffff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(2) PORT_NAME("Steering Wheel") PORT_CONDITION("DSWA", 0x03, EQUALS, 0x02)
2365 
2366 	PORT_START("GAS")
2367 	PORT_BIT( 0x07, 0x00, IPT_PEDAL )  PORT_SENSITIVITY(25) PORT_KEYDELTA(1) PORT_NAME("Gas Pedal") PORT_CONDITION("DSWA", 0x02, EQUALS, 0x00)
2368 
2369 	PORT_START("BRAKE")
2370 	PORT_BIT( 0x07, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(1) PORT_NAME("Brake Pedal") PORT_CONDITION("DSWA", 0x02, EQUALS, 0x00)
2371 INPUT_PORTS_END
2372 
2373 static INPUT_PORTS_START( chasehqj )
2374 	PORT_INCLUDE(chasehq)
2375 
2376 	PORT_MODIFY("DSWA")
2377 	TAITO_COINAGE_JAPAN_OLD_LOC(SW A)
2378 INPUT_PORTS_END
2379 
2380 static INPUT_PORTS_START( enforce )
2381 	PORT_START("DSWA")
2382 	PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW A:1" )
2383 	PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW A:2" )
2384 	PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW A:3" )
2385 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW A:4")
2386 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )      // Says SHIFT HI in test mode !?
2387 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )       // Says SHIFT LO in test mode !?
2388 	TAITO_COINAGE_WORLD_LOC(SW A)
2389 
2390 	PORT_START("DSWB")
2391 	TAITO_DIFFICULTY_LOC(SW B)
2392 	PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SW B:3" )
2393 	PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW B:4" )
2394 	PORT_DIPNAME( 0x10, 0x00, "Background scenery" ) PORT_DIPLOCATION("SW B:5")
2395 	PORT_DIPSETTING(    0x10, "Crazy scrolling" )
2396 	PORT_DIPSETTING(    0x00, DEF_STR( Normal ) )
2397 	PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW B:6" )
2398 	PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW B:7" )
2399 	PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW B:8" )
2400 
2401 	PORT_START("IN0")
2402 	PORT_BIT( 0x01, IP_ACTIVE_LOW,  IPT_UNKNOWN )
2403 	PORT_BIT( 0x02, IP_ACTIVE_LOW,  IPT_UNKNOWN )
2404 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 )
2405 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 )
2406 	PORT_BIT( 0x10, IP_ACTIVE_LOW,  IPT_SERVICE1 )
2407 	PORT_BIT( 0x20, IP_ACTIVE_LOW,  IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
2408 	PORT_BIT( 0x40, IP_ACTIVE_LOW,  IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
2409 	PORT_BIT( 0x80, IP_ACTIVE_LOW,  IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
2410 
2411 	PORT_START("IN1")
2412 	PORT_BIT( 0x01, IP_ACTIVE_LOW,  IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Gatling Gun") PORT_PLAYER(1)
2413 	PORT_BIT( 0x02, IP_ACTIVE_LOW,  IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Laser") PORT_PLAYER(1)
2414 	PORT_BIT( 0x04, IP_ACTIVE_LOW,  IPT_TILT )
2415 	PORT_BIT( 0x08, IP_ACTIVE_LOW,  IPT_START1 )
2416 	PORT_BIT( 0x10, IP_ACTIVE_LOW,  IPT_UNKNOWN )
2417 	PORT_BIT( 0x20, IP_ACTIVE_LOW,  IPT_UNKNOWN )
2418 	PORT_BIT( 0x40, IP_ACTIVE_LOW,  IPT_UNKNOWN )
2419 	PORT_BIT( 0x80, IP_ACTIVE_LOW,  IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
2420 
2421 	PORT_START("IN2")   /* unused */
2422 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2423 INPUT_PORTS_END
2424 
2425 static INPUT_PORTS_START( enforcej )
2426 	PORT_INCLUDE(enforce)
2427 
2428 	PORT_MODIFY("DSWA")
2429 	TAITO_COINAGE_JAPAN_OLD_LOC(SW A)
2430 INPUT_PORTS_END
2431 
2432 static INPUT_PORTS_START( enforceja )
2433 	PORT_INCLUDE(enforce)
2434 
2435 	PORT_MODIFY("IN0")
2436 	PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 )
2437 	PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 )
2438 	PORT_BIT( 0x10, IP_ACTIVE_LOW,  IPT_SERVICE1 )
2439 	PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(taitoz_state, adstick_r<0>);
2440 
2441 	PORT_MODIFY("IN1")
2442 	PORT_BIT( 0xe0, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(taitoz_state, adstick_r<1>);
2443 
2444 	PORT_MODIFY("IN2")
2445 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P1 Shifter") PORT_TOGGLE PORT_PLAYER(1)
2446 	PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED )
2447 
2448 	PORT_MODIFY("DSWA")
2449 	TAITO_COINAGE_JAPAN_OLD_LOC(SW A)
2450 
2451 	PORT_MODIFY("DSWB")
2452 	PORT_DIPNAME( 0x30, 0x30, "3D Effects" )                 PORT_DIPLOCATION("SW B:5,6")
2453 	PORT_DIPSETTING(    0x30, DEF_STR( Off ) )
2454 	PORT_DIPSETTING(    0x20, DEF_STR( On ) )
2455 	PORT_DIPSETTING(    0x00, "In Game Only" )
2456 	PORT_DIPSETTING(    0x10, "In Game Only (duplicate)" )
2457 
2458 	PORT_START("STICKX")
2459 	PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(4) PORT_PLAYER(1)
2460 
2461 	PORT_START("STICKY")
2462 	PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(20) PORT_KEYDELTA(4) PORT_PLAYER(1)
2463 INPUT_PORTS_END
2464 
2465 static INPUT_PORTS_START( bshark )
2466 	PORT_START("DSWA")
2467 	PORT_DIPNAME( 0x01, 0x01, "Mirror screen" ) PORT_DIPLOCATION("SW A:1")  // manual says it must be off
2468 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
2469 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2470 	PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW A:2" )   // manual says it must be off
2471 	PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW A:3" )
2472 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW A:4")
2473 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2474 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
2475 	TAITO_COINAGE_WORLD_LOC(SW A)
2476 
2477 	PORT_START("DSWB")
2478 	TAITO_DIFFICULTY_LOC(SW B)
2479 	PORT_DIPNAME( 0x0c, 0x04, "Speed of Sight" ) PORT_DIPLOCATION("SW B:3,4")
2480 	PORT_DIPSETTING(    0x0c, "Slow" )
2481 	PORT_DIPSETTING(    0x08, DEF_STR( Medium ) )
2482 	PORT_DIPSETTING(    0x04, "Fast" )
2483 	PORT_DIPSETTING(    0x00, "Fastest" )
2484 	PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW B:5" )   // manual says all these must be off
2485 	PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW B:6" )
2486 	PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW B:7" )
2487 	PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW B:8" )
2488 
2489 	PORT_START("IN0")
2490 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN2 )
2491 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 )
2492 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
2493 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT )
2494 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2495 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2496 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2497 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2498 
2499 	PORT_START("IN1")   /* unused */
2500 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2501 
2502 	PORT_START("IN2")   /* b2-5 affect sound num in service mode but otherwise useless (?) */
2503 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
2504 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
2505 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
2506 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
2507 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
2508 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1)
2509 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* "Fire" */
2510 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) /* same as "Fire" */
2511 
2512 	PORT_START("STICKX")    /* values chosen to match allowed crosshair area */
2513 	PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x35, 0xcc) PORT_SENSITIVITY(20) PORT_KEYDELTA(4) PORT_REVERSE PORT_PLAYER(1)
2514 
2515 	PORT_START("X_ADJUST")  /* declare as DIP SWITCH instead of VARIABLE REGISTER */
2516 	TAITO_Z_ANALOG_ADJUST( "Adjust Stick H (VARIABLE REGISTER)" )
2517 
2518 	PORT_START("STICKY")    /* values chosen to match allowed crosshair area */
2519 	PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x32, 0xd5) PORT_SENSITIVITY(20) PORT_KEYDELTA(4) PORT_PLAYER(1)
2520 
2521 	PORT_START("Y_ADJUST")  /* declare as DIP SWITCH instead of VARIABLE REGISTER */
2522 	TAITO_Z_ANALOG_ADJUST( "Adjust Stick V (VARIABLE REGISTER)" )
2523 INPUT_PORTS_END
2524 
2525 static INPUT_PORTS_START( bsharku )
2526 	PORT_INCLUDE(bshark)
2527 
2528 	PORT_MODIFY("DSWA")
2529 	TAITO_COINAGE_US_LOC(SW A)
2530 INPUT_PORTS_END
2531 
2532 static INPUT_PORTS_START( bsharkj )
2533 	PORT_INCLUDE(bshark)
2534 
2535 	PORT_MODIFY("DSWA")
2536 	TAITO_COINAGE_JAPAN_OLD_LOC(SW A)
2537 INPUT_PORTS_END
2538 
2539 static INPUT_PORTS_START( bsharkjjs )
2540 	PORT_START("DSWA")
2541 	PORT_DIPNAME( 0x01, 0x01, "Mirror screen" ) PORT_DIPLOCATION("SW A:1")  // manual says it must be off
2542 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
2543 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2544 	PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW A:2" )   // manual says it must be off
2545 	PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW A:3" )
2546 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW A:4")
2547 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2548 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
2549 	TAITO_COINAGE_JAPAN_OLD_LOC(SW A)
2550 
2551 	PORT_START("DSWB")
2552 	TAITO_DIFFICULTY_LOC(SW B)
2553 	PORT_DIPNAME( 0x0c, 0x04, "Speed of Sight" ) PORT_DIPLOCATION("SW B:3,4")
2554 	PORT_DIPSETTING(    0x0c, "Slow" )
2555 	PORT_DIPSETTING(    0x08, DEF_STR( Medium ) )
2556 	PORT_DIPSETTING(    0x04, "Fast" )
2557 	PORT_DIPSETTING(    0x00, "Fastest" )
2558 	PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW B:5" )   // manual says all these must be off
2559 	PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW B:6" )
2560 	PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW B:7" )
2561 	PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW B:8" )
2562 
2563 	PORT_START("IN0")
2564 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN2 )
2565 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 )
2566 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
2567 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT )
2568 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2569 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2570 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2571 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2572 
2573 	PORT_START("IN1")   /* unused */
2574 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2575 
2576 	PORT_START("IN2")
2577 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
2578 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
2579 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
2580 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
2581 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
2582 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
2583 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Fire") PORT_PLAYER(1)   /* "Fire" */
2584 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Warp") PORT_PLAYER(1)   /* Same as Fire, but called "Warp" in Service Mode */
2585 INPUT_PORTS_END
2586 
2587 static INPUT_PORTS_START( sci )
2588 	PORT_START("DSWA")
2589 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) )          PORT_DIPLOCATION("SW A:1")
2590 	PORT_DIPSETTING(    0x01, "Cockpit" )
2591 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
2592 	PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW A:2" ) /* Manual states "MUST REMAIN OFF" */
2593 	PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW A:3" )
2594 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )      PORT_DIPLOCATION("SW A:4")
2595 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2596 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
2597 	TAITO_COINAGE_WORLD_LOC(SW A)
2598 
2599 	PORT_START("DSWB")
2600 	TAITO_DIFFICULTY_LOC(SW B)
2601 	PORT_DIPNAME( 0x0c, 0x0c, "Timer Setting" )             PORT_DIPLOCATION("SW B:3,4")
2602 	PORT_DIPSETTING(    0x08, "70 Seconds" )
2603 	PORT_DIPSETTING(    0x04, "65 Seconds" )
2604 	PORT_DIPSETTING(    0x0c, "60 Seconds" )
2605 	PORT_DIPSETTING(    0x00, "55 Seconds" )
2606 	PORT_DIPNAME( 0x10, 0x10, "Turbos Stocked" )            PORT_DIPLOCATION("SW B:5")
2607 	PORT_DIPSETTING(    0x10, "3" )
2608 	PORT_DIPSETTING(    0x00, "5" )
2609 	PORT_DIPNAME( 0x20, 0x20, "Steering Radius" )           PORT_DIPLOCATION("SW B:6")
2610 	PORT_DIPSETTING(    0x00, "270 Degree" )
2611 	PORT_DIPSETTING(    0x20, "360 Degree" )
2612 	PORT_DIPNAME( 0x40, 0x40, "Clear Damage on Continue" )  PORT_DIPLOCATION("SW B:7")
2613 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2614 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
2615 	PORT_DIPNAME( 0x80, 0x80, "Siren Volume" )              PORT_DIPLOCATION("SW B:8")
2616 	PORT_DIPSETTING(    0x80, DEF_STR( Normal ) )
2617 	PORT_DIPSETTING(    0x00, DEF_STR( Low ) )
2618 
2619 	PORT_START("IN0")
2620 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2621 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Gun Trigger")
2622 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
2623 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
2624 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
2625 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Brake Switch")
2626 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2627 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2628 
2629 	PORT_START("IN1")
2630 	PORT_BIT( 0x01, IP_ACTIVE_LOW,  IPT_BUTTON3 ) PORT_NAME("Turbo")
2631 	PORT_BIT( 0x02, IP_ACTIVE_LOW,  IPT_TILT )
2632 	PORT_BIT( 0x04, IP_ACTIVE_LOW,  IPT_SERVICE2 ) PORT_NAME("Center")
2633 	PORT_BIT( 0x08, IP_ACTIVE_LOW,  IPT_START1 )
2634 	PORT_BIT( 0x10, IP_ACTIVE_LOW,  IPT_BUTTON4 ) PORT_NAME("Shifter") PORT_TOGGLE
2635 	PORT_BIT( 0x20, IP_ACTIVE_LOW,  IPT_BUTTON1 ) PORT_NAME("Gas Switch")
2636 	PORT_BIT( 0x40, IP_ACTIVE_LOW,  IPT_UNKNOWN )
2637 	PORT_BIT( 0x80, IP_ACTIVE_LOW,  IPT_UNKNOWN )
2638 
2639 	PORT_START("IN2")   /* unused */
2640 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2641 
2642 	PORT_START("STEER") /* steering */
2643 	PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x20, 0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_NAME("Steering Wheel")
2644 INPUT_PORTS_END
2645 
2646 static INPUT_PORTS_START( sciu )
2647 	PORT_INCLUDE(sci)
2648 
2649 	PORT_MODIFY("DSWA")
2650 	TAITO_COINAGE_US_LOC(SW A)
2651 INPUT_PORTS_END
2652 
2653 static INPUT_PORTS_START( scij )
2654 	PORT_INCLUDE(sci)
2655 
2656 	PORT_MODIFY("DSWA")
2657 	TAITO_COINAGE_JAPAN_OLD_LOC(SW A)
2658 INPUT_PORTS_END
2659 
2660 static INPUT_PORTS_START( nightstr )
2661 	PORT_START("DSWA")
2662 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW A:1")
2663 	PORT_DIPSETTING(    0x01, "Cockpit" )
2664 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
2665 	PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW A:2" )   // manual says it must be off
2666 	PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW A:3" )
2667 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW A:4")
2668 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2669 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
2670 	TAITO_COINAGE_WORLD_LOC(SW A)
2671 
2672 	PORT_START("DSWB")
2673 	TAITO_DIFFICULTY_LOC(SW B)
2674 	PORT_DIPNAME( 0x0c, 0x0c, "Bonus Shields" ) PORT_DIPLOCATION("SW B:3,4")
2675 	PORT_DIPSETTING(    0x08, "3" )
2676 	PORT_DIPSETTING(    0x04, "2" )
2677 	PORT_DIPSETTING(    0x0c, "1" )
2678 	PORT_DIPSETTING(    0x00, DEF_STR( None ) )
2679 	PORT_DIPNAME( 0x30, 0x30, "Shields" ) PORT_DIPLOCATION("SW B:5,6")
2680 	PORT_DIPSETTING(    0x00, "3" )
2681 	PORT_DIPSETTING(    0x10, "4" )
2682 	PORT_DIPSETTING(    0x30, "5" )
2683 	PORT_DIPSETTING(    0x20, "6" )
2684 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW B:7")
2685 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2686 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
2687 	PORT_DIPNAME( 0x80, 0x80, "Trigger Turbo" ) PORT_DIPLOCATION("SW B:8")
2688 	PORT_DIPSETTING(    0x80, "7 Shots / Second" )
2689 	PORT_DIPSETTING(    0x00, "10 Shots / Second" )
2690 
2691 	PORT_START("IN0")
2692 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2693 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
2694 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
2695 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
2696 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
2697 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
2698 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 )
2699 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_TILT )
2700 
2701 	PORT_START("IN1")   /* unused */
2702 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2703 
2704 	PORT_START("IN2")
2705 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
2706 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
2707 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
2708 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
2709 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
2710 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
2711 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
2712 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
2713 
2714 	PORT_START("STICKX")
2715 	PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(60) PORT_KEYDELTA(15) PORT_PLAYER(1)
2716 
2717 	PORT_START("STICKY")
2718 	PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(60) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(1)
2719 
2720 	PORT_START("X_ADJUST")  /* declare as DIP SWITCH instead of VARIABLE REGISTER */
2721 	TAITO_Z_ANALOG_ADJUST( "Adjust Stick H (VARIABLE REGISTER)" )
2722 
2723 	PORT_START("Y_ADJUST")  /* declare as DIP SWITCH instead of VARIABLE REGISTER */
2724 	TAITO_Z_ANALOG_ADJUST( "Adjust Stick V (VARIABLE REGISTER)" )
2725 INPUT_PORTS_END
2726 
2727 static INPUT_PORTS_START( nghtstrj )
2728 	PORT_INCLUDE( nightstr )
2729 
2730 	PORT_MODIFY("DSWA")
2731 	TAITO_COINAGE_JAPAN_OLD_LOC(SW A)
2732 INPUT_PORTS_END
2733 
2734 static INPUT_PORTS_START( nghtstru )
2735 	PORT_INCLUDE( nightstr )
2736 
2737 	PORT_MODIFY("DSWA")
2738 	TAITO_COINAGE_US_LOC(SW A)
2739 INPUT_PORTS_END
2740 
2741 static INPUT_PORTS_START( aquajack )
2742 	PORT_START("DSWA")
2743 	PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW A:1")
2744 	PORT_DIPSETTING(    0x80, "Cockpit" )
2745 	PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
2746 	PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW A:2" ) /* Dip 2 shown as "Must Remain in "Off" Position" in manual */
2747 	PORT_SERVICE_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW A:3" )
2748 	PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW A:4")
2749 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2750 	PORT_DIPSETTING(    0x10, DEF_STR( On ) )
2751 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW A:6,5")
2752 	PORT_DIPSETTING(    0x00, DEF_STR( 4C_1C ) )
2753 	PORT_DIPSETTING(    0x08, DEF_STR( 3C_1C ) )
2754 	PORT_DIPSETTING(    0x04, DEF_STR( 2C_1C ) )
2755 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_1C ) )
2756 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW A:8,7")  /* The Romstar (US version) manual list this as "Continue Pricing" */
2757 	PORT_DIPSETTING(    0x03, DEF_STR( 1C_2C ) )    /* Same pricing as Coin A */
2758 	PORT_DIPSETTING(    0x01, DEF_STR( 1C_3C ) )    /* 1 Coin to Continue  */
2759 	PORT_DIPSETTING(    0x02, DEF_STR( 1C_4C ) )    /* 2 Coins to Continue */
2760 	PORT_DIPSETTING(    0x00, DEF_STR( 1C_6C ) )    /* 3 Coins to Continue */
2761 
2762 	PORT_START("DSWB")
2763 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW B:2,1")
2764 	PORT_DIPSETTING(    0x40, DEF_STR( Easy ) )
2765 	PORT_DIPSETTING(    0xc0, DEF_STR( Normal ) )
2766 	PORT_DIPSETTING(    0x80, DEF_STR( Hard ) )
2767 	PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
2768 	PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW B:4,3")
2769 	PORT_DIPSETTING(    0x00, "30k" )
2770 	PORT_DIPSETTING(    0x30, "50k" )
2771 	PORT_DIPSETTING(    0x10, "80k" )
2772 	PORT_DIPSETTING(    0x20, "100k" )
2773 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW B:6,5")
2774 	PORT_DIPSETTING(    0x08, "1" )
2775 	PORT_DIPSETTING(    0x04, "2" )
2776 	PORT_DIPSETTING(    0x0c, "3" )
2777 	PORT_DIPSETTING(    0x00, "5" )
2778 	PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW B:7" ) /* Dip 7 shown as "Do Not Touch" in manuals */
2779 	PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW B:8" ) /* Dip 8 */
2780 	/* The previous taito_z.c said ---
2781 	    The Romstar (US version) manual list this as "Endless Game" - Has no effect on "World" version
2782 	   --- , and declared it as unused switch.
2783 	*/
2784 	/* PORT_DIPNAME( 0x01, 0x01, "Endless Game" ) PORT_DIPLOCATION("SW B:8") */
2785 	/* PORT_DIPSETTING(    0x01, "Normal Game" ) */
2786 	/* PORT_DIPSETTING(    0x00, "Endless Game" ) */
2787 
2788 	PORT_START("IN0")
2789 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2790 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
2791 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
2792 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
2793 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
2794 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_TILT )
2795 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2796 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2797 
2798 	PORT_START("IN1")
2799 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
2800 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
2801 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
2802 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
2803 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
2804 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
2805 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
2806 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2807 
2808 	PORT_START("IN2")   /* what is it ??? */
2809 	PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_PLAYER(1)
2810 INPUT_PORTS_END
2811 
2812 static INPUT_PORTS_START( aquajckj )
2813 	PORT_INCLUDE(aquajack)
2814 
2815 	PORT_MODIFY("DSWA")
2816 	PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW A:6,5")
2817 	PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
2818 	PORT_DIPSETTING(    0x0c, DEF_STR( 1C_1C ) )
2819 	PORT_DIPSETTING(    0x00, DEF_STR( 2C_3C ) )
2820 	PORT_DIPSETTING(    0x04, DEF_STR( 1C_2C ) )
2821 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW A:8,7")
2822 	PORT_DIPSETTING(    0x02, DEF_STR( 2C_1C ) )
2823 	PORT_DIPSETTING(    0x03, DEF_STR( 1C_1C ) )
2824 	PORT_DIPSETTING(    0x00, DEF_STR( 2C_3C ) )
2825 	PORT_DIPSETTING(    0x01, DEF_STR( 1C_2C ) )
2826 INPUT_PORTS_END
2827 
2828 static INPUT_PORTS_START( spacegun )
2829 	PORT_START("DSWA")
2830 	PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW A:1" )   // Manual says Always Off
2831 	PORT_DIPNAME( 0x02, 0x02, "Always have gunsight power up" ) PORT_DIPLOCATION("SW A:2")
2832 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
2833 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2834 	PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW A:3" )
2835 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW A:4")
2836 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2837 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
2838 	TAITO_COINAGE_WORLD_LOC(SW A)
2839 
2840 	PORT_START("DSWB")
2841 	TAITO_DIFFICULTY_LOC(SW B)
2842 	PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SW B:3" )   // Manual lists dips 3 through 6 and 8 as Always off
2843 	PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW B:4" )
2844 	PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW B:5" )
2845 	PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW B:6" )
2846 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW B:7")
2847 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2848 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
2849 	PORT_DIPNAME( 0x80, 0x80, "Disable Pedal (?)" ) PORT_DIPLOCATION("SW B:8")
2850 	PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
2851 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
2852 
2853 	PORT_START("IN0")
2854 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
2855 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
2856 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 )
2857 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 )
2858 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
2859 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2860 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1)
2861 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2)
2862 
2863 	PORT_START("IN1")   /* unused */
2864 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2865 
2866 	PORT_START("IN2")
2867 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
2868 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
2869 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
2870 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
2871 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2872 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
2873 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2874 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2875 
2876 	PORT_START( "EEPROMOUT" )
2877 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
2878 	PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
2879 	PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
2880 
2881 	PORT_START("STICKX1")
2882 	PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(13) PORT_CENTERDELTA(0) PORT_REVERSE PORT_PLAYER(1)
2883 
2884 	PORT_START("STICKY1")
2885 	PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(13) PORT_CENTERDELTA(0) PORT_PLAYER(1)
2886 
2887 	PORT_START("STICKX2")
2888 	PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(13) PORT_CENTERDELTA(0) PORT_REVERSE PORT_PLAYER(2)
2889 
2890 	PORT_START("STICKY2")
2891 	PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(13) PORT_CENTERDELTA(0) PORT_PLAYER(2)
2892 INPUT_PORTS_END
2893 
2894 static INPUT_PORTS_START( spacegnj )
2895 	PORT_INCLUDE( spacegun )
2896 
2897 	PORT_MODIFY("DSWA")
2898 	TAITO_COINAGE_JAPAN_OLD_LOC(SW A)
2899 INPUT_PORTS_END
2900 
2901 static INPUT_PORTS_START( spacegnu )
2902 	PORT_INCLUDE( spacegun )
2903 
2904 	PORT_MODIFY("DSWA")
2905 	TAITO_COINAGE_US_LOC(SW A)
2906 INPUT_PORTS_END
2907 
2908 static INPUT_PORTS_START( dblaxle ) // Side by Side linkable versions
2909 	PORT_START("DSWA")
2910 	PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW A:1" )
2911 	PORT_DIPNAME( 0x02, 0x02, "Gear shift" )            PORT_DIPLOCATION("SW A:2")
2912 	PORT_DIPSETTING(    0x02, DEF_STR( Normal ) )
2913 	PORT_DIPSETTING(    0x00, "Inverted" )
2914 	PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW A:3" )
2915 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION("SW A:4")
2916 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2917 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
2918 	TAITO_COINAGE_US_LOC(SW A)
2919 
2920 	PORT_START("DSWB")
2921 	TAITO_DIFFICULTY_LOC(SW B)
2922 	PORT_DIPNAME( 0x04, 0x00, "Network?" )              PORT_DIPLOCATION("SW B:3") // doesn't boot if on
2923 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2924 	PORT_DIPSETTING(    0x04, DEF_STR( On ) )
2925 	PORT_DIPNAME( 0x08, 0x08, "Player Truck" )          PORT_DIPLOCATION("SW B:4")
2926 	PORT_DIPSETTING(    0x08, "Red" )
2927 	PORT_DIPSETTING(    0x00, "Blue" )
2928 	PORT_DIPNAME( 0x10, 0x10, "Back button" )           PORT_DIPLOCATION("SW B:5")
2929 	PORT_DIPSETTING(    0x10, DEF_STR( Normal ) )
2930 	PORT_DIPSETTING(    0x00, "Inverted" )
2931 	PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW B:6" ) // causes "Root CPU Error" on "Icy Road" (Tourniquet)
2932 	PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW B:7" )
2933 	PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW B:8" )
2934 
2935 	PORT_START("IN0")
2936 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
2937 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Shifter") PORT_TOGGLE
2938 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
2939 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
2940 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
2941 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Brake Switch")
2942 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2943 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Reverse")
2944 
2945 	PORT_START("IN1")
2946 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Nitro")
2947 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT )
2948 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Center")
2949 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
2950 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
2951 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Gas Switch")
2952 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
2953 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
2954 
2955 	PORT_START("IN2")   /* unused */
2956 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2957 
2958 	PORT_START("STEER")
2959 	PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x40, 0xc0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_NAME("Steering Wheel")
2960 INPUT_PORTS_END
2961 
2962 static INPUT_PORTS_START( dblaxles ) // Single player versions
2963 	PORT_INCLUDE(dblaxle)
2964 
2965 	PORT_MODIFY("DSWA")
2966 	PORT_DIPNAME( 0x01, 0x01, "Handle Pulse" ) PORT_DIPLOCATION("SW A:1")
2967 	PORT_DIPSETTING(    0x01, DEF_STR( Normal ) )
2968 	PORT_DIPSETTING(    0x00, "Fast" )
2969 
2970 	PORT_MODIFY("DSWB")
2971 	PORT_DIPNAME( 0x04, 0x00, "Back Gear" )           PORT_DIPLOCATION("SW B:3") // If set to NORMAL you need to keep REVERSE pressed to go forward
2972 	PORT_DIPSETTING(    0x04, DEF_STR( Normal ) )
2973 	PORT_DIPSETTING(    0x00, "No Back Gear" )
2974 	PORT_DIPNAME( 0x08, 0x08, "Vibration Mode" ) PORT_DIPLOCATION("SW B:4")
2975 	PORT_DIPSETTING(    0x08, "Partial Vibration" )
2976 	PORT_DIPSETTING(    0x00, "All The Time Vibration" )
2977 	PORT_DIPNAME( 0x10, 0x10, "Steering Wheel Vibration" ) PORT_DIPLOCATION("SW B:5")
2978 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2979 	PORT_DIPSETTING(    0x10, DEF_STR( On ) )
2980 	PORT_DIPNAME( 0x20, 0x20, "Select Round" ) PORT_DIPLOCATION("SW B:6")
2981 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2982 	PORT_DIPSETTING(    0x20, DEF_STR( On ) )
2983 	PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW B:7")
2984 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2985 	PORT_DIPSETTING(    0x40, DEF_STR( On ) )
2986 	PORT_DIPNAME( 0x80, 0x00, "Buy-In" ) PORT_DIPLOCATION("SW B:8") // manual states "In countries except North America this setting should be ON"
2987 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
2988 	PORT_DIPSETTING(    0x80, DEF_STR( On ) ) // You buy truck upgrades like Big Tires, Engine and Nitro canisters before the race
2989 INPUT_PORTS_END
2990 
2991 static INPUT_PORTS_START( pwheelsj )
2992 	PORT_INCLUDE(dblaxle)
2993 
2994 	PORT_MODIFY("DSWA")
2995 	TAITO_COINAGE_JAPAN_OLD_LOC(SW A)
2996 INPUT_PORTS_END
2997 
2998 static INPUT_PORTS_START( racingb )
2999 	PORT_START("DSWA")
3000 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )      PORT_DIPLOCATION("SW A:1") // don't know what is what
3001 	PORT_DIPSETTING(    0x00, "Type 0" ) // free steering wheel
3002 	PORT_DIPSETTING(    0x01, "Type 1" ) // locked steering wheel
3003 	PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW A:2" )
3004 	PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW A:3" )
3005 	PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION("SW A:4")
3006 	PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
3007 	PORT_DIPSETTING(    0x08, DEF_STR( On ) )
3008 	TAITO_COINAGE_WORLD_LOC(SW A)
3009 
3010 	PORT_START("DSWB")
3011 	PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW B:1" )
3012 	PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW B:2" )
3013 	PORT_DIPNAME( 0x04, 0x04, "Steering Wheel Range" )  PORT_DIPLOCATION("SW B:3") // no function in Type 0 cabinet?
3014 	PORT_DIPSETTING(    0x04, DEF_STR( Normal ) )
3015 	PORT_DIPSETTING(    0x00, DEF_STR( High ) )
3016 	PORT_DIPNAME( 0x08, 0x08, "Steering Wheel Type" )   PORT_DIPLOCATION("SW B:4") // no function in Type 0 cabinet?
3017 	PORT_DIPSETTING(    0x00, "Free" )
3018 	PORT_DIPSETTING(    0x08, "Locked" )
3019 	PORT_DIPNAME( 0x10, 0x10, "Network" )               PORT_DIPLOCATION("SW B:5") // gives a LAN error
3020 	PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
3021 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
3022 	PORT_DIPNAME( 0x60, 0x60, "Player Car" )            PORT_DIPLOCATION("SW B:6,7")
3023 	PORT_DIPSETTING(    0x60, "Red" )
3024 	PORT_DIPSETTING(    0x40, "Blue" )
3025 	PORT_DIPSETTING(    0x20, "Green" )
3026 	PORT_DIPSETTING(    0x00, "Yellow" )
3027 	PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW B:8" ) // affects car color too?
3028 
3029 	PORT_START("IN0")
3030 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
3031 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Shifter") PORT_TOGGLE
3032 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
3033 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
3034 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
3035 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Brake Switch")
3036 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
3037 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
3038 
3039 	PORT_START("IN1")
3040 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Pit In")
3041 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
3042 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Center")
3043 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
3044 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
3045 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Gas Switch")
3046 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
3047 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
3048 
3049 	PORT_START("IN2")   /* unused */
3050 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
3051 
3052 	PORT_START("STEER")
3053 	PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_NAME("Steering Wheel") PORT_CONDITION("DSWB", 0x08, EQUALS, 0x08)
3054 	PORT_BIT( 0xffff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_NAME("Steering Wheel") PORT_CONDITION("DSWB", 0x08, EQUALS, 0x00)
3055 INPUT_PORTS_END
3056 
3057 
3058 /***********************************************************
3059                        GFX DECODING
3060 ***********************************************************/
3061 
3062 static const gfx_layout tile16x8_layout =
3063 {
3064 	16,8,   /* 16*8 sprites */
3065 	RGN_FRAC(1,1),
3066 	4,  /* 4 bits per pixel */
3067 	{ STEP4(0,16) },
3068 	{ STEP16(0,1) },
3069 	{ STEP8(0,16*4) },
3070 	64*8    /* every sprite takes 64 consecutive bytes */
3071 };
3072 
3073 static const gfx_layout tile16x16_layout =
3074 {
3075 	16,16,  /* 16*16 sprites */
3076 	RGN_FRAC(1,1),
3077 	4,  /* 4 bits per pixel */
3078 	{ STEP4(0,16) },
3079 	{ STEP16(0,1) },
3080 	{ STEP16(0,16*4) },
3081 	64*16   /* every sprite takes 128 consecutive bytes */
3082 };
3083 
3084 static GFXDECODE_START( gfx_taitoz )
3085 	GFXDECODE_ENTRY( "sprites", 0x0, tile16x8_layout, 0, 256 )    /* sprite parts */
3086 GFXDECODE_END
3087 
GFXDECODE_START(gfx_chasehq)3088 static GFXDECODE_START( gfx_chasehq )
3089 	GFXDECODE_ENTRY( "sprites",  0x0, tile16x16_layout, 0, 256 )   /* sprite parts */
3090 	GFXDECODE_ENTRY( "sprites2", 0x0, tile16x16_layout, 0, 256 )   /* sprite parts */
3091 GFXDECODE_END
3092 
3093 
3094 /***********************************************************
3095                       MACHINE DRIVERS
3096 
3097 CPU Interleaving
3098 ----------------
3099 
3100 Chasehq2 needs high interleaving to have sound (not checked
3101 since May 2001 - may have changed).
3102 
3103 Enforce with interleave of 1 sometimes lets you take over from
3104 the demo game when you coin up! Set to 10 seems to cure this.
3105 
3106 Bshark needs the high cpu interleaving to run test mode.
3107 
3108 Nightstr needs the high cpu interleaving to get through init.
3109 
3110 Aquajack has it VERY high to cure frequent sound-related
3111 hangs.
3112 
3113 Dblaxle has 10 to boot up reliably but very occasionally gets
3114 a "root cpu error" still.
3115 
3116 Racingb inherited interleave from Dblaxle - other values not
3117 tested!
3118 
3119 Mostly it's the 2nd 68K which writes to road chip, so syncing
3120 between it and the master 68K may be important. Contcirc
3121 and ChaseHQ have interleave of only 1 - possible cause of
3122 Contcirc road glitchiness in attract?
3123 
3124 ***********************************************************/
3125 
3126 /***********************************************************
3127                    SAVE STATES
3128 ***********************************************************/
3129 
3130 void taitoz_state::device_post_load()
3131 {
3132 	parse_cpu_control();
3133 }
3134 
machine_start()3135 void taitoz_state::machine_start()
3136 {
3137 	if (m_z80bank)
3138 	{
3139 		int banks = memregion("audiocpu")->bytes() / 0x4000;
3140 		m_z80bank->configure_entries(0, banks, memregion("audiocpu")->base(), 0x4000);
3141 	}
3142 
3143 	save_item(NAME(m_cpua_ctrl));
3144 
3145 	/* these are specific to various games: we ought to split the inits */
3146 	save_item(NAME(m_sci_int6));
3147 	save_item(NAME(m_ioc220_port));
3148 }
3149 
MACHINE_START_MEMBER(taitoz_state,chasehq)3150 MACHINE_START_MEMBER(taitoz_state,chasehq)
3151 {
3152 	m_lamps.resolve();
3153 	machine_start();
3154 }
3155 
machine_reset()3156 void taitoz_state::machine_reset()
3157 {
3158 	m_cpua_ctrl = 0xff;
3159 	m_sci_int6 = 0;
3160 	m_ioc220_port = 0;
3161 }
3162 
screen_config(machine_config & config,int vdisp_start,int vdisp_end)3163 void taitoz_state::screen_config(machine_config &config, int vdisp_start, int vdisp_end)
3164 {
3165 //  26.860 MHz comes from the video board, assume /4 pixel clock
3166 //  contcirc and enforce uses a narrower visible area (checked via service mode),
3167 //  confirm if they outputs the same syncs.
3168 	SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
3169 	m_screen->set_raw(XTAL(26'686'000)/4, 424, 0, 320, 262, vdisp_start, vdisp_end);
3170 }
3171 
contcirc(machine_config & config)3172 void taitoz_state::contcirc(machine_config &config)
3173 {
3174 	M68000(config, m_maincpu, 12000000);   /* 12 MHz ??? */
3175 	m_maincpu->set_addrmap(AS_PROGRAM, &taitoz_state::contcirc_map);
3176 	m_maincpu->set_vblank_int("screen", FUNC(taitoz_state::irq6_line_hold));
3177 
3178 	Z80(config, m_audiocpu, 16000000/4);    /* 4 MHz ??? */
3179 	m_audiocpu->set_addrmap(AS_PROGRAM, &taitoz_state::z80_sound_map);
3180 
3181 	M68000(config, m_subcpu, 12000000);   /* 12 MHz ??? */
3182 	m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::contcirc_cpub_map);
3183 	m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq6_line_hold));
3184 
3185 	TC0040IOC(config, m_tc0040ioc, 0);
3186 	m_tc0040ioc->read_0_callback().set_ioport("DSWA");
3187 	m_tc0040ioc->read_1_callback().set_ioport("DSWB");
3188 	m_tc0040ioc->read_2_callback().set_ioport("IN0");
3189 	m_tc0040ioc->read_3_callback().set_ioport("IN1");
3190 	m_tc0040ioc->write_4_callback().set(FUNC(taitoz_state::coin_control_w));
3191 	m_tc0040ioc->read_7_callback().set_ioport("IN2");
3192 
3193 	screen_config(config, 24, 248);
3194 	m_screen->set_screen_update(FUNC(taitoz_state::screen_update_contcirc));
3195 	m_screen->set_palette(m_tc0110pcr);
3196 
3197 	GFXDECODE(config, m_gfxdecode, m_tc0110pcr, gfx_taitoz);
3198 
3199 	MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
3200 
3201 	TC0100SCN(config, m_tc0100scn, 0);
3202 	m_tc0100scn->set_palette(m_tc0110pcr);
3203 
3204 	TC0150ROD(config, m_tc0150rod, 0);
3205 
3206 	TC0110PCR(config, m_tc0110pcr, 0);
3207 
3208 	/* sound hardware */
3209 	SPEAKER(config, "front").front_center();
3210 	SPEAKER(config, "rear").rear_center();
3211 	SPEAKER(config, "subwoofer").set_position(0.0, 0.0, 0.0); // FIXME: where is this speaker located?
3212 
3213 	ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2));
3214 	ymsnd.irq_handler().set_inputline(m_audiocpu, 0);
3215 	ymsnd.add_route(0, "subwoofer", 0.20);
3216 	ymsnd.add_route(1, "2610.1.l", 2.0);
3217 	ymsnd.add_route(1, "2610.1.r", 2.0);
3218 	ymsnd.add_route(2, "2610.2.l", 2.0);
3219 	ymsnd.add_route(2, "2610.2.r", 2.0);
3220 
3221 	FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rear", 1.0);
3222 	FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "front", 1.0);
3223 	FILTER_VOLUME(config, "2610.2.r").add_route(ALL_OUTPUTS, "rear", 1.0);
3224 	FILTER_VOLUME(config, "2610.2.l").add_route(ALL_OUTPUTS, "front", 1.0);
3225 
3226 	TC0140SYT(config, m_tc0140syt, 0);
3227 	m_tc0140syt->set_master_tag(m_subcpu);
3228 	m_tc0140syt->set_slave_tag(m_audiocpu);
3229 }
3230 
chasehq(machine_config & config)3231 void taitoz_state::chasehq(machine_config &config)
3232 {
3233 	/* basic machine hardware */
3234 	M68000(config, m_maincpu, 12000000);   /* 12 MHz ??? */
3235 	m_maincpu->set_addrmap(AS_PROGRAM, &taitoz_state::chasehq_map);
3236 	m_maincpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold));
3237 
3238 	Z80(config, m_audiocpu, 16000000/4);    /* 4 MHz ??? */
3239 	m_audiocpu->set_addrmap(AS_PROGRAM, &taitoz_state::z80_sound_map);
3240 
3241 	M68000(config, m_subcpu, 12000000);   /* 12 MHz ??? */
3242 	m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::chq_cpub_map);
3243 	m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold));
3244 
3245 	MCFG_MACHINE_START_OVERRIDE(taitoz_state,chasehq)
3246 
3247 	TC0040IOC(config, m_tc0040ioc, 0);
3248 	m_tc0040ioc->read_0_callback().set_ioport("DSWA");
3249 	m_tc0040ioc->read_1_callback().set_ioport("DSWB");
3250 	m_tc0040ioc->read_2_callback().set_ioport("IN0");
3251 	m_tc0040ioc->read_3_callback().set_ioport("IN1");
3252 	m_tc0040ioc->write_4_callback().set(FUNC(taitoz_state::coin_control_w));
3253 	m_tc0040ioc->read_7_callback().set_ioport("IN2");
3254 
3255 	/* video hardware */
3256 	screen_config(config, 16, 256);
3257 	m_screen->set_screen_update(FUNC(taitoz_state::screen_update_chasehq));
3258 	m_screen->set_palette(m_tc0110pcr);
3259 
3260 	GFXDECODE(config, m_gfxdecode, m_tc0110pcr, gfx_chasehq);
3261 
3262 	MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
3263 
3264 	TC0100SCN(config, m_tc0100scn, 0);
3265 	m_tc0100scn->set_palette(m_tc0110pcr);
3266 
3267 	TC0150ROD(config, m_tc0150rod, 0);
3268 
3269 	TC0110PCR(config, m_tc0110pcr, 0);
3270 
3271 	/* sound hardware */
3272 	SPEAKER(config, "front").front_center();
3273 	SPEAKER(config, "rear").rear_center();
3274 	SPEAKER(config, "subwoofer").set_position(0.0, 0.0, 0.0); // FIXME: where is this speaker located?
3275 
3276 	ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2));
3277 	ymsnd.irq_handler().set_inputline(m_audiocpu, 0);
3278 	ymsnd.add_route(0, "subwoofer", 0.20);
3279 	ymsnd.add_route(1, "2610.1.l", 1.0);
3280 	ymsnd.add_route(1, "2610.1.r", 1.0);
3281 	ymsnd.add_route(2, "2610.2.l", 1.0);
3282 	ymsnd.add_route(2, "2610.2.r", 1.0);
3283 
3284 	FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rear", 1.0);
3285 	FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "front", 1.0);
3286 	FILTER_VOLUME(config, "2610.2.r").add_route(ALL_OUTPUTS, "rear", 1.0);
3287 	FILTER_VOLUME(config, "2610.2.l").add_route(ALL_OUTPUTS, "front", 1.0);
3288 
3289 	TC0140SYT(config, m_tc0140syt, 0);
3290 	m_tc0140syt->set_master_tag(m_subcpu);
3291 	m_tc0140syt->set_slave_tag(m_audiocpu);
3292 }
3293 
enforce(machine_config & config)3294 void taitoz_state::enforce(machine_config &config)
3295 {
3296 	/* basic machine hardware */
3297 	M68000(config, m_maincpu, 12000000);   /* 12 MHz ??? */
3298 	m_maincpu->set_addrmap(AS_PROGRAM, &taitoz_state::enforce_map);
3299 	m_maincpu->set_vblank_int("screen", FUNC(taitoz_state::irq6_line_hold));
3300 
3301 	Z80(config, m_audiocpu, 16000000/4);    /* 4 MHz ??? */
3302 	m_audiocpu->set_addrmap(AS_PROGRAM, &taitoz_state::z80_sound_map);
3303 
3304 	M68000(config, m_subcpu, 12000000);   /* 12 MHz ??? */
3305 	m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::enforce_cpub_map);
3306 	m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq6_line_hold));
3307 
3308 	config.set_maximum_quantum(attotime::from_hz(600));
3309 
3310 	TC0040IOC(config, m_tc0040ioc, 0);
3311 	m_tc0040ioc->read_0_callback().set_ioport("DSWA");
3312 	m_tc0040ioc->read_1_callback().set_ioport("DSWB");
3313 	m_tc0040ioc->read_2_callback().set_ioport("IN0");
3314 	m_tc0040ioc->read_3_callback().set_ioport("IN1");
3315 	m_tc0040ioc->write_4_callback().set(FUNC(taitoz_state::coin_control_w));
3316 	m_tc0040ioc->read_7_callback().set_ioport("IN2");
3317 
3318 	/* video hardware */
3319 	screen_config(config, 24, 248);
3320 	m_screen->set_screen_update(FUNC(taitoz_state::screen_update_contcirc));
3321 	m_screen->set_palette(m_tc0110pcr);
3322 
3323 	GFXDECODE(config, m_gfxdecode, m_tc0110pcr, gfx_taitoz);
3324 
3325 	MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
3326 
3327 	TC0100SCN(config, m_tc0100scn, 0);
3328 	m_tc0100scn->set_palette(m_tc0110pcr);
3329 
3330 	TC0150ROD(config, m_tc0150rod, 0);
3331 
3332 	TC0110PCR(config, m_tc0110pcr, 0);
3333 
3334 	/* sound hardware */
3335 	SPEAKER(config, "lspeaker").front_left();
3336 	SPEAKER(config, "rspeaker").front_right();
3337 
3338 	ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2));
3339 	ymsnd.irq_handler().set_inputline(m_audiocpu, 0);
3340 	ymsnd.add_route(0, "lspeaker", 0.25);
3341 	ymsnd.add_route(0, "rspeaker", 0.25);
3342 	ymsnd.add_route(1, "2610.1.l", 20.0);
3343 	ymsnd.add_route(1, "2610.1.r", 20.0);
3344 	ymsnd.add_route(2, "2610.2.l", 20.0);
3345 	ymsnd.add_route(2, "2610.2.r", 20.0);
3346 
3347 	FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0);
3348 	FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
3349 	FILTER_VOLUME(config, "2610.2.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0);
3350 	FILTER_VOLUME(config, "2610.2.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
3351 
3352 	TC0140SYT(config, m_tc0140syt, 0);
3353 	m_tc0140syt->set_master_tag(m_subcpu);
3354 	m_tc0140syt->set_slave_tag(m_audiocpu);
3355 }
3356 
bshark_base(machine_config & config)3357 void taitoz_state::bshark_base(machine_config &config)
3358 {
3359 	/* basic machine hardware */
3360 	M68000(config, m_maincpu, 12000000);   /* 12 MHz ??? */
3361 	m_maincpu->set_addrmap(AS_PROGRAM, &taitoz_state::bshark_map);
3362 	m_maincpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold));
3363 
3364 	M68000(config, m_subcpu, 12000000);   /* 12 MHz ??? */
3365 	m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::bshark_cpub_map);
3366 	m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold));
3367 
3368 	config.set_maximum_quantum(attotime::from_hz(6000));
3369 
3370 	TC0220IOC(config, m_tc0220ioc, 0);
3371 	m_tc0220ioc->read_0_callback().set_ioport("DSWA");
3372 	m_tc0220ioc->read_1_callback().set_ioport("DSWB");
3373 	m_tc0220ioc->read_2_callback().set_ioport("IN0");
3374 	m_tc0220ioc->read_3_callback().set_ioport("IN1");
3375 	m_tc0220ioc->write_4_callback().set(FUNC(taitoz_state::coin_control_w));
3376 	m_tc0220ioc->read_7_callback().set_ioport("IN2");
3377 
3378 	screen_config(config, 16, 256);
3379 	m_screen->set_screen_update(FUNC(taitoz_state::screen_update_bshark));
3380 	m_screen->set_palette("palette");
3381 
3382 	GFXDECODE(config, m_gfxdecode, "palette", gfx_taitoz);
3383 	PALETTE(config, "palette").set_format(palette_device::xBGR_555, 4096);
3384 
3385 	MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
3386 
3387 	TC0100SCN(config, m_tc0100scn, 0);
3388 	m_tc0100scn->set_palette("palette");
3389 
3390 	TC0150ROD(config, m_tc0150rod, 0);
3391 
3392 	/* sound hardware */
3393 	SPEAKER(config, "lspeaker").front_left();
3394 	SPEAKER(config, "rspeaker").front_right();
3395 
3396 	ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2));
3397 	//ymsnd.irq_handler().set_inputline(m_audiocpu, 0); // DG: this is probably specific to Z80 and wrong?
3398 	ymsnd.add_route(0, "lspeaker", 0.25);
3399 	ymsnd.add_route(0, "rspeaker", 0.25);
3400 	ymsnd.add_route(1, "2610.1.l", 28.0);
3401 	ymsnd.add_route(1, "2610.1.r", 28.0);
3402 	ymsnd.add_route(2, "2610.2.l", 28.0);
3403 	ymsnd.add_route(2, "2610.2.r", 28.0);
3404 
3405 	FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0);
3406 	FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
3407 	FILTER_VOLUME(config, "2610.2.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0);
3408 	FILTER_VOLUME(config, "2610.2.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
3409 }
3410 
bshark(machine_config & config)3411 void taitoz_state::bshark(machine_config &config)
3412 {
3413 	bshark_base(config);
3414 
3415 	adc0809_device &adc(ADC0809(config, "adc", 500000)); // clock unknown
3416 	adc.eoc_ff_callback().set_inputline("maincpu", 6);
3417 	adc.in_callback<0>().set_ioport("STICKX");
3418 	adc.in_callback<1>().set_ioport("X_ADJUST");
3419 	adc.in_callback<2>().set_ioport("STICKY");
3420 	adc.in_callback<3>().set_ioport("Y_ADJUST");
3421 }
3422 
bsharkjjs(machine_config & config)3423 void taitoz_state::bsharkjjs(machine_config &config)
3424 {
3425 	bshark_base(config);
3426 	m_maincpu->set_addrmap(AS_PROGRAM, &taitoz_state::bsharkjjs_map);
3427 }
3428 
3429 
sci(machine_config & config)3430 void taitoz_state::sci(machine_config &config)
3431 {
3432 	/* basic machine hardware */
3433 	M68000(config, m_maincpu, 12000000);   /* 12 MHz ??? */
3434 	m_maincpu->set_addrmap(AS_PROGRAM, &taitoz_state::sci_map);
3435 	m_maincpu->set_vblank_int("screen", FUNC(taitoz_state::sci_interrupt));
3436 
3437 	Z80(config, m_audiocpu, 16000000/4);    /* 4 MHz ??? */
3438 	m_audiocpu->set_addrmap(AS_PROGRAM, &taitoz_state::z80_sound_map);
3439 
3440 	M68000(config, m_subcpu, 12000000);   /* 12 MHz ??? */
3441 	m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::sci_cpub_map);
3442 	m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold));
3443 
3444 	config.set_maximum_quantum(attotime::from_hz(3000));
3445 
3446 	TC0220IOC(config, m_tc0220ioc, 0);
3447 	m_tc0220ioc->read_0_callback().set_ioport("DSWA");
3448 	m_tc0220ioc->read_1_callback().set_ioport("DSWB");
3449 	m_tc0220ioc->read_2_callback().set_ioport("IN0");
3450 	m_tc0220ioc->read_3_callback().set_ioport("IN1");
3451 	m_tc0220ioc->write_4_callback().set(FUNC(taitoz_state::coin_control_w));
3452 	m_tc0220ioc->read_7_callback().set_ioport("IN2");
3453 
3454 	/* video hardware */
3455 	screen_config(config, 16, 256);
3456 	m_screen->set_screen_update(FUNC(taitoz_state::screen_update_sci));
3457 	m_screen->set_palette("palette");
3458 
3459 	GFXDECODE(config, m_gfxdecode, "palette", gfx_taitoz);
3460 	PALETTE(config, "palette").set_format(palette_device::xBGR_555, 4096);
3461 
3462 	MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
3463 
3464 	TC0100SCN(config, m_tc0100scn, 0);
3465 	m_tc0100scn->set_palette("palette");
3466 
3467 	TC0150ROD(config, m_tc0150rod, 0);
3468 
3469 	/* sound hardware */
3470 	SPEAKER(config, "lspeaker").front_left();
3471 	SPEAKER(config, "rspeaker").front_right();
3472 
3473 	ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2));
3474 	ymsnd.irq_handler().set_inputline(m_audiocpu, 0);
3475 	ymsnd.add_route(0, "lspeaker", 0.25);
3476 	ymsnd.add_route(0, "rspeaker", 0.25);
3477 	ymsnd.add_route(1, "2610.1.l", 2.0);
3478 	ymsnd.add_route(1, "2610.1.r", 2.0);
3479 	ymsnd.add_route(2, "2610.2.l", 2.0);
3480 	ymsnd.add_route(2, "2610.2.r", 2.0);
3481 
3482 	FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0);
3483 	FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
3484 	FILTER_VOLUME(config, "2610.2.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0);
3485 	FILTER_VOLUME(config, "2610.2.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
3486 
3487 	TC0140SYT(config, m_tc0140syt, 0);
3488 	m_tc0140syt->set_master_tag(m_subcpu);
3489 	m_tc0140syt->set_slave_tag(m_audiocpu);
3490 }
3491 
nightstr(machine_config & config)3492 void taitoz_state::nightstr(machine_config &config)
3493 {
3494 	/* basic machine hardware */
3495 	M68000(config, m_maincpu, 12000000);   /* 12 MHz ??? */
3496 	m_maincpu->set_addrmap(AS_PROGRAM, &taitoz_state::nightstr_map);
3497 	m_maincpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold));
3498 
3499 	Z80(config, m_audiocpu, 16000000/4);    /* 4 MHz ??? */
3500 	m_audiocpu->set_addrmap(AS_PROGRAM, &taitoz_state::z80_sound_map);
3501 
3502 	M68000(config, m_subcpu, 12000000);   /* 12 MHz ??? */
3503 	m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::nightstr_cpub_map);
3504 	m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold));
3505 
3506 	config.set_maximum_quantum(attotime::from_hz(6000));
3507 
3508 	adc0809_device &adc(ADC0809(config, "adc", 500000)); // clock unknown
3509 	adc.eoc_ff_callback().set_inputline("maincpu", 6);
3510 	adc.in_callback<0>().set_ioport("STICKX");
3511 	adc.in_callback<1>().set_ioport("STICKY");
3512 	adc.in_callback<2>().set_ioport("X_ADJUST");
3513 	adc.in_callback<3>().set_ioport("Y_ADJUST");
3514 
3515 	TC0220IOC(config, m_tc0220ioc, 0);
3516 	m_tc0220ioc->read_0_callback().set_ioport("DSWA");
3517 	m_tc0220ioc->read_1_callback().set_ioport("DSWB");
3518 	m_tc0220ioc->read_2_callback().set_ioport("IN0");
3519 	m_tc0220ioc->read_3_callback().set_ioport("IN1");
3520 	m_tc0220ioc->write_4_callback().set(FUNC(taitoz_state::coin_control_w));
3521 	m_tc0220ioc->read_7_callback().set_ioport("IN2");
3522 
3523 	/* video hardware */
3524 	screen_config(config, 16, 256);
3525 	m_screen->set_screen_update(FUNC(taitoz_state::screen_update_chasehq));
3526 	m_screen->set_palette(m_tc0110pcr);
3527 
3528 	GFXDECODE(config, m_gfxdecode, m_tc0110pcr, gfx_chasehq);
3529 
3530 	MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
3531 
3532 	TC0100SCN(config, m_tc0100scn, 0);
3533 	m_tc0100scn->set_palette(m_tc0110pcr);
3534 
3535 	TC0150ROD(config, m_tc0150rod, 0);
3536 
3537 	TC0110PCR(config, m_tc0110pcr, 0);
3538 
3539 	/* sound hardware */
3540 	SPEAKER(config, "front").front_center();
3541 	SPEAKER(config, "rear").rear_center();
3542 	SPEAKER(config, "subwoofer").set_position(0.0, 0.0, 0.0); // FIXME: where is this located in the cabinet?
3543 
3544 	ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2));
3545 	ymsnd.irq_handler().set_inputline(m_audiocpu, 0);
3546 	ymsnd.add_route(0, "subwoofer", 0.20);
3547 	ymsnd.add_route(1, "2610.1.l", 2.0);
3548 	ymsnd.add_route(1, "2610.1.r", 2.0);
3549 	ymsnd.add_route(2, "2610.2.l", 2.0);
3550 	ymsnd.add_route(2, "2610.2.r", 2.0);
3551 
3552 	FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rear", 1.0);
3553 	FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "front", 1.0);
3554 	FILTER_VOLUME(config, "2610.2.r").add_route(ALL_OUTPUTS, "rear", 1.0);
3555 	FILTER_VOLUME(config, "2610.2.l").add_route(ALL_OUTPUTS, "front", 1.0);
3556 
3557 	TC0140SYT(config, m_tc0140syt, 0);
3558 	m_tc0140syt->set_master_tag(m_subcpu);
3559 	m_tc0140syt->set_slave_tag(m_audiocpu);
3560 }
3561 
aquajack(machine_config & config)3562 void taitoz_state::aquajack(machine_config &config)
3563 {
3564 	/* basic machine hardware */
3565 	M68000(config, m_maincpu, 12000000);   /* 12 MHz ??? */
3566 	m_maincpu->set_addrmap(AS_PROGRAM, &taitoz_state::aquajack_map);
3567 	m_maincpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold));
3568 
3569 	Z80(config, m_audiocpu, 16000000/4);    /* 4 MHz ??? */
3570 	m_audiocpu->set_addrmap(AS_PROGRAM, &taitoz_state::z80_sound_map);
3571 
3572 	M68000(config, m_subcpu, 12000000);   /* 12 MHz ??? */
3573 	m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::aquajack_cpub_map);
3574 	m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold));
3575 
3576 	config.set_maximum_quantum(attotime::from_hz(30000));
3577 
3578 	TC0220IOC(config, m_tc0220ioc, 0);
3579 	m_tc0220ioc->read_0_callback().set_ioport("DSWA");
3580 	m_tc0220ioc->read_1_callback().set_ioport("DSWB");
3581 	m_tc0220ioc->read_2_callback().set_ioport("IN0");
3582 	m_tc0220ioc->read_3_callback().set_ioport("IN1");
3583 	m_tc0220ioc->write_4_callback().set(FUNC(taitoz_state::coin_control_w));
3584 	m_tc0220ioc->read_7_callback().set_ioport("IN2");
3585 
3586 	/* video hardware */
3587 	screen_config(config, 16, 256);
3588 	m_screen->set_screen_update(FUNC(taitoz_state::screen_update_aquajack));
3589 	m_screen->set_palette(m_tc0110pcr);
3590 
3591 	GFXDECODE(config, m_gfxdecode, m_tc0110pcr, gfx_taitoz);
3592 
3593 	MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
3594 
3595 	TC0100SCN(config, m_tc0100scn, 0);
3596 	m_tc0100scn->set_palette(m_tc0110pcr);
3597 
3598 	TC0150ROD(config, m_tc0150rod, 0);
3599 
3600 	TC0110PCR(config, m_tc0110pcr, 0);
3601 
3602 	/* sound hardware */
3603 	SPEAKER(config, "lspeaker").front_left();
3604 	SPEAKER(config, "rspeaker").front_right();
3605 
3606 	ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2));
3607 	ymsnd.irq_handler().set_inputline(m_audiocpu, 0);
3608 	ymsnd.add_route(0, "lspeaker", 0.25);
3609 	ymsnd.add_route(0, "rspeaker", 0.25);
3610 	ymsnd.add_route(1, "2610.1.l", 2.0);
3611 	ymsnd.add_route(1, "2610.1.r", 2.0);
3612 	ymsnd.add_route(2, "2610.2.l", 2.0);
3613 	ymsnd.add_route(2, "2610.2.r", 2.0);
3614 
3615 	FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0);
3616 	FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
3617 	FILTER_VOLUME(config, "2610.2.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0);
3618 	FILTER_VOLUME(config, "2610.2.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
3619 
3620 	TC0140SYT(config, m_tc0140syt, 0);
3621 	m_tc0140syt->set_master_tag(m_subcpu);
3622 	m_tc0140syt->set_slave_tag(m_audiocpu);
3623 }
3624 
spacegun(machine_config & config)3625 void taitoz_state::spacegun(machine_config &config)
3626 {
3627 	/* basic machine hardware */
3628 	M68000(config, m_maincpu, 16000000);   /* 16 MHz ??? */
3629 	m_maincpu->set_addrmap(AS_PROGRAM, &taitoz_state::spacegun_map);
3630 	m_maincpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold));
3631 
3632 	M68000(config, m_subcpu, 16000000);   /* 16 MHz ??? */
3633 	m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::spacegun_cpub_map);
3634 	m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold));
3635 
3636 	EEPROM_93C46_16BIT(config, m_eeprom).default_data(spacegun_default_eeprom, 128);
3637 
3638 	adc0809_device &adc(ADC0809(config, "adc", 500000)); // clock unknown
3639 	adc.eoc_ff_callback().set_inputline("sub", 5);
3640 	adc.in_callback<0>().set_ioport("STICKX1");
3641 	adc.in_callback<1>().set_ioport("STICKY1");
3642 	adc.in_callback<2>().set_ioport("STICKX2");
3643 	adc.in_callback<3>().set_ioport("STICKY2");
3644 
3645 	TC0510NIO(config, m_tc0510nio, 0);
3646 	m_tc0510nio->read_0_callback().set_ioport("DSWA");
3647 	m_tc0510nio->read_1_callback().set_ioport("DSWB");
3648 	m_tc0510nio->read_2_callback().set_ioport("IN0");
3649 	m_tc0510nio->read_3_callback().set(m_eeprom, FUNC(eeprom_serial_93cxx_device::do_read)).lshift(7);
3650 	m_tc0510nio->write_3_callback().set(FUNC(taitoz_state::spacegun_eeprom_w));
3651 	m_tc0510nio->write_4_callback().set(FUNC(taitoz_state::coin_control_w));
3652 	m_tc0510nio->read_7_callback().set_ioport("IN2");
3653 
3654 	/* video hardware */
3655 	screen_config(config, 16, 256);
3656 	m_screen->set_screen_update(FUNC(taitoz_state::screen_update_spacegun));
3657 	m_screen->set_palette(m_tc0110pcr);
3658 
3659 	GFXDECODE(config, m_gfxdecode, m_tc0110pcr, gfx_taitoz);
3660 
3661 	TC0100SCN(config, m_tc0100scn, 0);
3662 	m_tc0100scn->set_offsets(4, 0);
3663 	m_tc0100scn->set_palette(m_tc0110pcr);
3664 
3665 	TC0110PCR(config, m_tc0110pcr, 0);
3666 
3667 	/* sound hardware */
3668 	SPEAKER(config, "lspeaker").front_left();
3669 	SPEAKER(config, "rspeaker").front_right();
3670 
3671 	ym2610_device &ymsnd(YM2610(config, "ymsnd", 16000000/2));
3672 	//ymsnd.irq_handler().set_inputline(m_audiocpu, 0); // DG: this is probably specific to Z80 and wrong?
3673 	ymsnd.add_route(0, "lspeaker", 0.25);
3674 	ymsnd.add_route(0, "rspeaker", 0.25);
3675 	ymsnd.add_route(1, "2610.1.l", 8.0);
3676 	ymsnd.add_route(1, "2610.1.r", 8.0);
3677 	ymsnd.add_route(2, "2610.2.l", 8.0);
3678 	ymsnd.add_route(2, "2610.2.r", 8.0);
3679 
3680 	FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0);
3681 	FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
3682 	FILTER_VOLUME(config, "2610.2.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0);
3683 	FILTER_VOLUME(config, "2610.2.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
3684 }
3685 
dblaxle(machine_config & config)3686 void taitoz_state::dblaxle(machine_config &config)
3687 {
3688 	/* basic machine hardware */
3689 	M68000(config, m_maincpu, XTAL(32'000'000)/2);
3690 	m_maincpu->set_addrmap(AS_PROGRAM, &taitoz_state::dblaxle_map);
3691 	m_maincpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold));
3692 
3693 	Z80(config, m_audiocpu, XTAL(32'000'000)/8);
3694 	m_audiocpu->set_addrmap(AS_PROGRAM, &taitoz_state::z80_sound_map);
3695 
3696 	M68000(config, m_subcpu, XTAL(32'000'000)/2);
3697 	m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::dblaxle_cpub_map);
3698 	m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold));
3699 
3700 	// make quantum time to be a multiple of the xtal (fixes road layer stuck on continue)
3701 	config.set_maximum_quantum(attotime::from_hz(XTAL(32'000'000)/1024));
3702 
3703 	TC0510NIO(config, m_tc0510nio, 0);
3704 	m_tc0510nio->read_0_callback().set_ioport("DSWA");
3705 	m_tc0510nio->read_1_callback().set_ioport("DSWB");
3706 	m_tc0510nio->read_2_callback().set_ioport("IN0");
3707 	m_tc0510nio->read_3_callback().set_ioport("IN1");
3708 	m_tc0510nio->write_4_callback().set(FUNC(taitoz_state::coin_control_w));
3709 	m_tc0510nio->read_7_callback().set_ioport("IN2");
3710 
3711 	/* video hardware */
3712 	screen_config(config, 16, 256);
3713 	m_screen->set_screen_update(FUNC(taitoz_state::screen_update_dblaxle));
3714 	m_screen->set_palette("palette");
3715 
3716 	GFXDECODE(config, m_gfxdecode, "palette", gfx_taitoz);
3717 	PALETTE(config, "palette").set_format(palette_device::xBGR_555, 4096);
3718 
3719 	MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
3720 
3721 	TC0480SCP(config, m_tc0480scp, 0);
3722 	m_tc0480scp->set_palette("palette");
3723 	m_tc0480scp->set_offsets(0x1f, 0x08);
3724 
3725 	TC0150ROD(config, m_tc0150rod, 0);
3726 
3727 	/* sound hardware */
3728 	SPEAKER(config, "lspeaker").front_left();
3729 	SPEAKER(config, "rspeaker").front_right();
3730 
3731 	ym2610_device &ymsnd(YM2610(config, "ymsnd", XTAL(32'000'000)/4));
3732 	ymsnd.irq_handler().set_inputline(m_audiocpu, 0);
3733 	ymsnd.add_route(0, "lspeaker", 0.25);
3734 	ymsnd.add_route(0, "rspeaker", 0.25);
3735 	ymsnd.add_route(1, "2610.1.l", 8.0);
3736 	ymsnd.add_route(1, "2610.1.r", 8.0);
3737 	ymsnd.add_route(2, "2610.2.l", 8.0);
3738 	ymsnd.add_route(2, "2610.2.r", 8.0);
3739 
3740 	FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0);
3741 	FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
3742 	FILTER_VOLUME(config, "2610.2.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0);
3743 	FILTER_VOLUME(config, "2610.2.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
3744 
3745 	TC0140SYT(config, m_tc0140syt, 0);
3746 	m_tc0140syt->set_master_tag(m_subcpu);
3747 	m_tc0140syt->set_slave_tag(m_audiocpu);
3748 }
3749 
racingb(machine_config & config)3750 void taitoz_state::racingb(machine_config &config)
3751 {
3752 	/* basic machine hardware */
3753 	M68000(config, m_maincpu, XTAL(32'000'000)/2);
3754 	m_maincpu->set_addrmap(AS_PROGRAM, &taitoz_state::racingb_map);
3755 	m_maincpu->set_vblank_int("screen", FUNC(taitoz_state::sci_interrupt));
3756 
3757 	Z80(config, m_audiocpu, XTAL(32'000'000)/8);
3758 	m_audiocpu->set_addrmap(AS_PROGRAM, &taitoz_state::z80_sound_map);
3759 
3760 	M68000(config, m_subcpu, XTAL(32'000'000)/2);
3761 	m_subcpu->set_addrmap(AS_PROGRAM, &taitoz_state::racingb_cpub_map);
3762 	m_subcpu->set_vblank_int("screen", FUNC(taitoz_state::irq4_line_hold));
3763 
3764 	config.set_maximum_quantum(attotime::from_hz(600));
3765 
3766 	TC0510NIO(config, m_tc0510nio, 0);
3767 	m_tc0510nio->read_0_callback().set_ioport("DSWA");
3768 	m_tc0510nio->read_1_callback().set_ioport("DSWB");
3769 	m_tc0510nio->read_2_callback().set_ioport("IN0");
3770 	m_tc0510nio->read_3_callback().set_ioport("IN1");
3771 	m_tc0510nio->write_4_callback().set(FUNC(taitoz_state::coin_control_w));
3772 	m_tc0510nio->read_7_callback().set_ioport("IN2");
3773 
3774 	/* video hardware */
3775 	screen_config(config, 16, 256);
3776 	m_screen->set_screen_update(FUNC(taitoz_state::screen_update_racingb));
3777 	m_screen->set_palette("palette");
3778 
3779 	GFXDECODE(config, m_gfxdecode, "palette", gfx_taitoz);
3780 	PALETTE(config, "palette").set_format(palette_device::xBGR_555, 4096);
3781 
3782 	MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz)
3783 
3784 	TC0480SCP(config, m_tc0480scp, 0);
3785 	m_tc0480scp->set_palette("palette");
3786 	m_tc0480scp->set_offsets(0x1f, 0x08);
3787 
3788 	TC0150ROD(config, m_tc0150rod, 0);
3789 
3790 	/* sound hardware */
3791 	SPEAKER(config, "lspeaker").front_left();
3792 	SPEAKER(config, "rspeaker").front_right();
3793 
3794 	ym2610_device &ymsnd(YM2610(config, "ymsnd", XTAL(32'000'000)/4));
3795 	ymsnd.irq_handler().set_inputline(m_audiocpu, 0);
3796 	ymsnd.add_route(0, "lspeaker", 0.25);
3797 	ymsnd.add_route(0, "rspeaker", 0.25);
3798 	ymsnd.add_route(1, "2610.1.l", 8.0);
3799 	ymsnd.add_route(1, "2610.1.r", 8.0);
3800 	ymsnd.add_route(2, "2610.2.l", 8.0);
3801 	ymsnd.add_route(2, "2610.2.r", 8.0);
3802 
3803 	FILTER_VOLUME(config, "2610.1.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0);
3804 	FILTER_VOLUME(config, "2610.1.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
3805 	FILTER_VOLUME(config, "2610.2.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0);
3806 	FILTER_VOLUME(config, "2610.2.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
3807 
3808 	TC0140SYT(config, m_tc0140syt, 0);
3809 	m_tc0140syt->set_master_tag(m_subcpu);
3810 	m_tc0140syt->set_slave_tag(m_audiocpu);
3811 }
3812 
3813 
3814 /***************************************************************************
3815                                  DRIVERS
3816 
3817 Contcirc, Dblaxle sound sample rom order is uncertain as sound imperfect
3818 ***************************************************************************/
3819 
3820 ROM_START( contcirc ) /* 3D Effects controlled via dipswitch, when on can toggle effect with START1 button */
3821 	ROM_REGION( 0x40000, "maincpu", 0 ) /* 256K for 68000 code (CPU A) */
CRC(f5c92e42)3822 	ROM_LOAD16_BYTE( "b33-ww.ic25", 0x00000, 0x20000, CRC(f5c92e42) SHA1(42dfa1895e601df76d7022b83f05c4e5c843fd12) ) /* Needs actual Taito ID number here */
3823 	ROM_LOAD16_BYTE( "b33-xx.ic26", 0x00001, 0x20000, CRC(e7c1d1fa) SHA1(75e851629a54facb8804ee8a953ab3265633bbf4) ) /* Needs actual Taito ID number here */
3824 
3825 	ROM_REGION( 0x40000, "sub", 0 ) /* 256K for 68000 code (CPU B) */
3826 	ROM_LOAD16_BYTE( "b33-yy.ic35", 0x00000, 0x20000, CRC(16522f2d) SHA1(1d2823d61518936d342df3ed712da5bdfdf6e55a) ) /* Needs actual Taito ID number here */
3827 	ROM_LOAD16_BYTE( "cc_36.bin",   0x00001, 0x20000, CRC(a1732ea5) SHA1(b773add433c20633e7acbc99d5cfeb7ccde83371) ) /* Needs actual Taito ID number here */
3828 
3829 	ROM_REGION( 0x10000, "audiocpu", 0 )    /* Z80 sound cpu */
3830 	ROM_LOAD( "b33-30.11", 0x00000, 0x10000, CRC(d8746234) SHA1(39132eedfe2ff4e3133f8020304da0d04dd757db) )
3831 
3832 	ROM_REGION( 0x80000, "tc0100scn", 0 )
3833 	ROM_LOAD16_WORD_SWAP( "b33-02.57", 0x00000, 0x80000, CRC(f6fb3ba2) SHA1(19b7c4cf33c4737405ebe53e7342578454e6ef95) ) /* SCR 8x8 */
3834 
3835 	ROM_REGION( 0x200000, "sprites", 0 )
3836 	ROM_LOAD64_WORD_SWAP( "b33-06", 0x000000, 0x080000, CRC(2cb40599) SHA1(48b269610f80a42608f563742e5266dcf11638d1) )   /* OBJ 16x8 */
3837 	ROM_LOAD64_WORD_SWAP( "b33-05", 0x000002, 0x080000, CRC(bddf9eea) SHA1(284f4ba3dc107b4e26424963d8206c5ec4882983) )
3838 	ROM_LOAD64_WORD_SWAP( "b33-04", 0x000004, 0x080000, CRC(8df866a2) SHA1(6b87d8e683fe7d31070b16620ebfee4edf7711b8) )
3839 	ROM_LOAD64_WORD_SWAP( "b33-03", 0x000006, 0x080000, CRC(4f6c36d9) SHA1(18b15a991c3daf22b7f3f144edf3bd2abb3917eb) )
3840 
3841 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
3842 	ROM_LOAD16_WORD( "b33-01.3", 0x00000, 0x80000, CRC(f11f2be8) SHA1(72ae08dc5bf5f6901fbb52d3b1dabcba90929b38) )  /* ROD, road lines */
3843 
3844 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
3845 	ROM_LOAD16_WORD( "b33-07.64", 0x00000, 0x80000, CRC(151e1f52) SHA1(118c673d74f27c4e76b321cc0e84f166d9f0d412) )  /* STY spritemap */
3846 
3847 	ROM_REGION( 0x100000, "ymsnd", 0 )  /* ADPCM samples */
3848 	ROM_LOAD( "b33-09.18", 0x00000, 0x80000, CRC(1e6724b5) SHA1(48bb96b648605a9ceb88ff3b175a87226583c3d6) )
3849 	ROM_LOAD( "b33-10.17", 0x80000, 0x80000, CRC(e9ce03ab) SHA1(17324e8f0422118bc0912eba5750d80469f40b78) )
3850 
3851 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
3852 	ROM_LOAD( "b33-08.19", 0x00000, 0x80000, CRC(caa1c4c8) SHA1(15ef4f36e56fab793d2249252c456677ca6a85c9) )
3853 
3854 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
3855 	ROM_LOAD( "b14-30.97",   0x00000, 0x10000, CRC(dccb0c7f) SHA1(42f0af72f559133b74912a4478e1323062be4b77) )   // sprite vertical zoom
3856 	ROM_LOAD( "b14-31.50",   0x00000, 0x02000, CRC(5c6b013d) SHA1(6d02d4560076213b6fb6fe856143bb533090603e) )   // sprite horizontal zoom
3857 	ROM_LOAD( "b33-17.16",   0x00000, 0x00100, CRC(7b7d8ff4) SHA1(18842ed8160739cd2e2ccc2db605153dbed6cc0a) )   // road/sprite priority and palette select
3858 	ROM_LOAD( "b33-18.17",   0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )   // road A/B internal priority
3859 ROM_END
3860 
3861 ROM_START( contcircu ) /* 3D Effects controlled via dipswitch, when on can toggle effect with START1 button */
3862 	ROM_REGION( 0x40000, "maincpu", 0 ) /* 256K for 68000 code (CPU A) */
3863 	ROM_LOAD16_BYTE( "b33-ww.ic25", 0x00000, 0x20000, CRC(f5c92e42) SHA1(42dfa1895e601df76d7022b83f05c4e5c843fd12) ) /* Needs actual Taito ID number here */
3864 	ROM_LOAD16_BYTE( "b33-xx.ic26", 0x00001, 0x20000, CRC(e7c1d1fa) SHA1(75e851629a54facb8804ee8a953ab3265633bbf4) ) /* Needs actual Taito ID number here */
3865 
3866 	ROM_REGION( 0x40000, "sub", 0 ) /* 256K for 68000 code (CPU B) */
3867 	ROM_LOAD16_BYTE( "b33-yy.ic35", 0x00000, 0x20000, CRC(16522f2d) SHA1(1d2823d61518936d342df3ed712da5bdfdf6e55a) ) /* Needs actual Taito ID number here */
3868 	ROM_LOAD16_BYTE( "b33-zz.ic36", 0x00001, 0x20000, CRC(d6741e33) SHA1(8e86789e1664a34ceed85434fd3186f2571f0c4a) ) /* Needs actual Taito ID number here */
3869 
3870 	ROM_REGION( 0x10000, "audiocpu", 0 )    /* Z80 sound cpu */
3871 	ROM_LOAD( "b33-30.11", 0x00000, 0x10000, CRC(d8746234) SHA1(39132eedfe2ff4e3133f8020304da0d04dd757db) )
3872 
3873 	ROM_REGION( 0x80000, "tc0100scn", 0 )
3874 	ROM_LOAD16_WORD_SWAP( "b33-02.57", 0x00000, 0x80000, CRC(f6fb3ba2) SHA1(19b7c4cf33c4737405ebe53e7342578454e6ef95) ) /* SCR 8x8 */
3875 
3876 	ROM_REGION( 0x200000, "sprites", 0 )
3877 	ROM_LOAD64_WORD_SWAP( "b33-06", 0x000000, 0x080000, CRC(2cb40599) SHA1(48b269610f80a42608f563742e5266dcf11638d1) )   /* OBJ 16x8 */
3878 	ROM_LOAD64_WORD_SWAP( "b33-05", 0x000002, 0x080000, CRC(bddf9eea) SHA1(284f4ba3dc107b4e26424963d8206c5ec4882983) )
3879 	ROM_LOAD64_WORD_SWAP( "b33-04", 0x000004, 0x080000, CRC(8df866a2) SHA1(6b87d8e683fe7d31070b16620ebfee4edf7711b8) )
3880 	ROM_LOAD64_WORD_SWAP( "b33-03", 0x000006, 0x080000, CRC(4f6c36d9) SHA1(18b15a991c3daf22b7f3f144edf3bd2abb3917eb) )
3881 
3882 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
3883 	ROM_LOAD16_WORD( "b33-01.3", 0x00000, 0x80000, CRC(f11f2be8) SHA1(72ae08dc5bf5f6901fbb52d3b1dabcba90929b38) )  /* ROD, road lines */
3884 
3885 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
3886 	ROM_LOAD16_WORD( "b33-07.64", 0x00000, 0x80000, CRC(151e1f52) SHA1(118c673d74f27c4e76b321cc0e84f166d9f0d412) )  /* STY spritemap */
3887 
3888 	ROM_REGION( 0x100000, "ymsnd", 0 )  /* ADPCM samples */
3889 	ROM_LOAD( "b33-09.18", 0x00000, 0x80000, CRC(1e6724b5) SHA1(48bb96b648605a9ceb88ff3b175a87226583c3d6) )
3890 	ROM_LOAD( "b33-10.17", 0x80000, 0x80000, CRC(e9ce03ab) SHA1(17324e8f0422118bc0912eba5750d80469f40b78) )
3891 
3892 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
3893 	ROM_LOAD( "b33-08.19", 0x00000, 0x80000, CRC(caa1c4c8) SHA1(15ef4f36e56fab793d2249252c456677ca6a85c9) )
3894 
3895 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
3896 	ROM_LOAD( "b14-30.97",   0x00000, 0x10000, CRC(dccb0c7f) SHA1(42f0af72f559133b74912a4478e1323062be4b77) )   // sprite vertical zoom
3897 	ROM_LOAD( "b14-31.50",   0x00000, 0x02000, CRC(5c6b013d) SHA1(6d02d4560076213b6fb6fe856143bb533090603e) )   // sprite horizontal zoom
3898 	ROM_LOAD( "b33-17.16",   0x00000, 0x00100, CRC(7b7d8ff4) SHA1(18842ed8160739cd2e2ccc2db605153dbed6cc0a) )   // road/sprite priority and palette select
3899 	ROM_LOAD( "b33-18.17",   0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )   // road A/B internal priority
3900 ROM_END
3901 
3902 ROM_START( contcircua )
3903 	ROM_REGION( 0x40000, "maincpu", 0 ) /* 256K for 68000 code (CPU A) */
3904 	ROM_LOAD16_BYTE( "b33-34.ic25", 0x00000, 0x20000, CRC(e1e016c1) SHA1(d6ca3bcf03828dc296eab73185f773860bbaaae6) ) /* 3D Effects ALWAYS ON */
3905 	ROM_LOAD16_BYTE( "b33-33.ic26", 0x00001, 0x20000, CRC(f539d44b) SHA1(1b77d97376f9bf3bbd728d459f0a0afbadc6d756) )
3906 
3907 	ROM_REGION( 0x40000, "sub", 0 ) /* 256K for 68000 code (CPU B) */
3908 	ROM_LOAD16_BYTE( "b33-21-2.ic35", 0x00000, 0x20000, CRC(2723f9e3) SHA1(18a86e352bb0aeec6ad6c537294ddd0d33823ea6) )
3909 	ROM_LOAD16_BYTE( "b33-31-1.ic36", 0x00001, 0x20000, CRC(438431f7) SHA1(9be4ac6526d5aee01c3691f189583a2cfdad0e45) ) /* Is this really B33 31-2 ?? */
3910 
3911 	ROM_REGION( 0x10000, "audiocpu", 0 )    /* Z80 sound cpu */
3912 	ROM_LOAD( "b33-30.11", 0x00000, 0x10000, CRC(d8746234) SHA1(39132eedfe2ff4e3133f8020304da0d04dd757db) )
3913 
3914 	ROM_REGION( 0x80000, "tc0100scn", 0 )
3915 	ROM_LOAD16_WORD_SWAP( "b33-02.57", 0x00000, 0x80000, CRC(f6fb3ba2) SHA1(19b7c4cf33c4737405ebe53e7342578454e6ef95) ) /* SCR 8x8 */
3916 
3917 	ROM_REGION( 0x200000, "sprites", 0 )
3918 	ROM_LOAD64_WORD_SWAP( "b33-06", 0x000000, 0x080000, CRC(2cb40599) SHA1(48b269610f80a42608f563742e5266dcf11638d1) )   /* OBJ 16x8 */
3919 	ROM_LOAD64_WORD_SWAP( "b33-05", 0x000002, 0x080000, CRC(bddf9eea) SHA1(284f4ba3dc107b4e26424963d8206c5ec4882983) )
3920 	ROM_LOAD64_WORD_SWAP( "b33-04", 0x000004, 0x080000, CRC(8df866a2) SHA1(6b87d8e683fe7d31070b16620ebfee4edf7711b8) )
3921 	ROM_LOAD64_WORD_SWAP( "b33-03", 0x000006, 0x080000, CRC(4f6c36d9) SHA1(18b15a991c3daf22b7f3f144edf3bd2abb3917eb) )
3922 
3923 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
3924 	ROM_LOAD16_WORD( "b33-01.3", 0x00000, 0x80000, CRC(f11f2be8) SHA1(72ae08dc5bf5f6901fbb52d3b1dabcba90929b38) )  /* ROD, road lines */
3925 
3926 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
3927 	ROM_LOAD16_WORD( "b33-07.64", 0x00000, 0x80000, CRC(151e1f52) SHA1(118c673d74f27c4e76b321cc0e84f166d9f0d412) )  /* STY spritemap */
3928 
3929 	ROM_REGION( 0x100000, "ymsnd", 0 )  /* ADPCM samples */
3930 	ROM_LOAD( "b33-09.18", 0x00000, 0x80000, CRC(1e6724b5) SHA1(48bb96b648605a9ceb88ff3b175a87226583c3d6) )
3931 	ROM_LOAD( "b33-10.17", 0x80000, 0x80000, CRC(e9ce03ab) SHA1(17324e8f0422118bc0912eba5750d80469f40b78) )
3932 
3933 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
3934 	ROM_LOAD( "b33-08.19", 0x00000, 0x80000, CRC(caa1c4c8) SHA1(15ef4f36e56fab793d2249252c456677ca6a85c9) )
3935 
3936 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
3937 	ROM_LOAD( "b14-30.97",   0x00000, 0x10000, CRC(dccb0c7f) SHA1(42f0af72f559133b74912a4478e1323062be4b77) )   // sprite vertical zoom
3938 	ROM_LOAD( "b14-31.50",   0x00000, 0x02000, CRC(5c6b013d) SHA1(6d02d4560076213b6fb6fe856143bb533090603e) )   // sprite horizontal zoom
3939 	ROM_LOAD( "b33-17.16",   0x00000, 0x00100, CRC(7b7d8ff4) SHA1(18842ed8160739cd2e2ccc2db605153dbed6cc0a) )   // road/sprite priority and palette select
3940 	ROM_LOAD( "b33-18.17",   0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )   // road A/B internal priority
3941 ROM_END
3942 
3943 ROM_START( contcircj )
3944 	ROM_REGION( 0x40000, "maincpu", 0 ) /* 256K for 68000 code (CPU A) */
3945 	ROM_LOAD16_BYTE( "b33-19.ic25", 0x00000, 0x20000, CRC(b85360c8) SHA1(a52550c0889b99453b845dcfab2ed9581f9fdbe8) ) /* 3D Effects ALWAYS ON */
3946 	ROM_LOAD16_BYTE( "b33-20.ic26", 0x00001, 0x20000, CRC(9f88378b) SHA1(dc4f3dbeb98031ced0591623a2ba7a2653cb6ff4) )
3947 
3948 	ROM_REGION( 0x40000, "sub", 0 ) /* 256K for 68000 code (CPU B) */
3949 	ROM_LOAD16_BYTE( "b33-21-2.ic35", 0x00000, 0x20000, CRC(2723f9e3) SHA1(18a86e352bb0aeec6ad6c537294ddd0d33823ea6) )
3950 	ROM_LOAD16_BYTE( "b33-22-2.ic36", 0x00001, 0x20000, CRC(da8d604d) SHA1(31a4b686d12511a2522c7047a39aa09c0778f230) )
3951 
3952 	ROM_REGION( 0x10000, "audiocpu", 0 )    /* Z80 sound cpu */
3953 	ROM_LOAD( "b33-30.11", 0x00000, 0x10000, CRC(d8746234) SHA1(39132eedfe2ff4e3133f8020304da0d04dd757db) )
3954 
3955 	ROM_REGION( 0x80000, "tc0100scn", 0 )
3956 	ROM_LOAD16_WORD_SWAP( "b33-02.57", 0x00000, 0x80000, CRC(f6fb3ba2) SHA1(19b7c4cf33c4737405ebe53e7342578454e6ef95) ) /* SCR 8x8 */
3957 
3958 	ROM_REGION( 0x200000, "sprites", 0 )
3959 	ROM_LOAD64_WORD_SWAP( "b33-06", 0x000000, 0x080000, CRC(2cb40599) SHA1(48b269610f80a42608f563742e5266dcf11638d1) )   /* OBJ 16x8 */
3960 	ROM_LOAD64_WORD_SWAP( "b33-05", 0x000002, 0x080000, CRC(bddf9eea) SHA1(284f4ba3dc107b4e26424963d8206c5ec4882983) )
3961 	ROM_LOAD64_WORD_SWAP( "b33-04", 0x000004, 0x080000, CRC(8df866a2) SHA1(6b87d8e683fe7d31070b16620ebfee4edf7711b8) )
3962 	ROM_LOAD64_WORD_SWAP( "b33-03", 0x000006, 0x080000, CRC(4f6c36d9) SHA1(18b15a991c3daf22b7f3f144edf3bd2abb3917eb) )
3963 
3964 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
3965 	ROM_LOAD16_WORD( "b33-01.3", 0x00000, 0x80000, CRC(f11f2be8) SHA1(72ae08dc5bf5f6901fbb52d3b1dabcba90929b38) )  /* ROD, road lines */
3966 
3967 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
3968 	ROM_LOAD16_WORD( "b33-07.64", 0x00000, 0x80000, CRC(151e1f52) SHA1(118c673d74f27c4e76b321cc0e84f166d9f0d412) )  /* STY spritemap */
3969 
3970 	ROM_REGION( 0x100000, "ymsnd", 0 )  /* ADPCM samples */
3971 	ROM_LOAD( "b33-09.18", 0x00000, 0x80000, CRC(1e6724b5) SHA1(48bb96b648605a9ceb88ff3b175a87226583c3d6) )
3972 	ROM_LOAD( "b33-10.17", 0x80000, 0x80000, CRC(e9ce03ab) SHA1(17324e8f0422118bc0912eba5750d80469f40b78) )
3973 
3974 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
3975 	ROM_LOAD( "b33-08.19", 0x00000, 0x80000, CRC(caa1c4c8) SHA1(15ef4f36e56fab793d2249252c456677ca6a85c9) )
3976 
3977 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
3978 	ROM_LOAD( "b14-30.97",   0x00000, 0x10000, CRC(dccb0c7f) SHA1(42f0af72f559133b74912a4478e1323062be4b77) )   // sprite vertical zoom
3979 	ROM_LOAD( "b14-31.50",   0x00000, 0x02000, CRC(5c6b013d) SHA1(6d02d4560076213b6fb6fe856143bb533090603e) )   // sprite horizontal zoom
3980 	ROM_LOAD( "b33-17.16",   0x00000, 0x00100, CRC(7b7d8ff4) SHA1(18842ed8160739cd2e2ccc2db605153dbed6cc0a) )   // road/sprite priority and palette select
3981 	ROM_LOAD( "b33-18.17",   0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )   // road A/B internal priority
3982 ROM_END
3983 
3984 ROM_START( chasehq )
3985 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
3986 	ROM_LOAD16_BYTE( "b52-130.36", 0x00000, 0x20000, CRC(4e7beb46) SHA1(b8890c4a2121aa93cfc3a41ddbb3b840d0804cfa) )
3987 	ROM_LOAD16_BYTE( "b52-136.29", 0x00001, 0x20000, CRC(2f414df0) SHA1(0daad8b1f7512a5af0722983751841b5b18064ac) )
3988 	ROM_LOAD16_BYTE( "b52-131.37", 0x40000, 0x20000, CRC(aa945d83) SHA1(9d8a8186a199cacc0e24cf1ee75d81ab8b056406) )
3989 	ROM_LOAD16_BYTE( "b52-129.30", 0x40001, 0x20000, CRC(0eaebc08) SHA1(1dde3304b251ddeb52f1378ef3845269c3667169) )
3990 
3991 	ROM_REGION( 0x20000, "sub", 0 ) /* 128K for 68000 code (CPU B) */
3992 	ROM_LOAD16_BYTE( "b52-132.39", 0x00000, 0x10000, CRC(a2f54789) SHA1(941a6470e3a5ae35d079657260a8d7d6a9fca122) )
3993 	ROM_LOAD16_BYTE( "b52-133.55", 0x00001, 0x10000, CRC(12232f95) SHA1(2894b95fc1d0a6e5b323bf3e7f1968f02b30a845) )
3994 
3995 	ROM_REGION( 0x10000, "audiocpu", 0 )    /* Z80 sound cpu */
3996 	ROM_LOAD( "b52-137.51",   0x00000, 0x10000, CRC(37abb74a) SHA1(1feb1e49102c13a90e02c150472545cd9f6334da) )
3997 
3998 	ROM_REGION( 0x8000, "motorcpu", 0 )
3999 	ROM_LOAD( "27c256.ic17",   0x0000, 0x8000, CRC(e52dfee1) SHA1(6e58e18eb2de3c899b950a4307ea21cd23683657) )
4000 
4001 	ROM_REGION( 0x80000, "tc0100scn", 0 )
4002 	ROM_LOAD16_WORD_SWAP( "b52-29.27", 0x00000, 0x80000, CRC(8366d27c) SHA1(d7c5f588b39742927228ce73e5d69bda1e903df6) ) /* SCR 8x8 */
4003 
4004 	ROM_REGION( 0x200000, "sprites", 0 )
4005 	ROM_LOAD64_WORD_SWAP( "b52-34.5",  0x000000, 0x080000, CRC(7d8dce36) SHA1(ca082e647d10378144c05a70a8e4fe352d95eeaf) )
4006 	ROM_LOAD64_WORD_SWAP( "b52-35.7",  0x000002, 0x080000, CRC(78eeec0d) SHA1(2e82186ca17c579816865ef21c52aef9e133fbf5) )    /* OBJ A 16x16 */
4007 	ROM_LOAD64_WORD_SWAP( "b52-36.9",  0x000004, 0x080000, CRC(61e89e91) SHA1(f655b3caa37a8835c2eb11f4d72e985636ac5379) )
4008 	ROM_LOAD64_WORD_SWAP( "b52-37.11", 0x000006, 0x080000, CRC(f02e47b9) SHA1(093864bd18bd58dafa57990e999f394ca3124452) )
4009 
4010 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
4011 	ROM_LOAD16_WORD( "b52-28.4", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) )  /* ROD, road lines */
4012 
4013 	ROM_REGION( 0x200000, "sprites2", 0 )
4014 	ROM_LOAD64_WORD_SWAP( "b52-30.4",  0x000000, 0x080000, CRC(1b8cc647) SHA1(8807fe01b6804507564fc179adf995bf86521fda) )
4015 	ROM_LOAD64_WORD_SWAP( "b52-31.6",  0x000002, 0x080000, CRC(f1998e20) SHA1(b03d4e373e88933391f3533b885817edfca4cfdf) )    /* OBJ B 16x16 */
4016 	ROM_LOAD64_WORD_SWAP( "b52-32.8",  0x000004, 0x080000, CRC(8620780c) SHA1(2545fd8fb03dcddc3da86d5ea06a6dc915acd1a1) )
4017 	ROM_LOAD64_WORD_SWAP( "b52-33.10", 0x000006, 0x080000, CRC(e6f4b8c4) SHA1(8d15c75a16953aa56fb3dc6fd3b691e227bef622) )
4018 
4019 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
4020 	ROM_LOAD16_WORD( "b52-38.34", 0x00000, 0x80000, CRC(5b5bf7f6) SHA1(71dd5b40b83870d351c9ecaccc4fb98c3a6740ae) )  /* STY spritemap */
4021 
4022 	ROM_REGION( 0x180000, "ymsnd", 0 )  /* ADPCM samples */
4023 	ROM_LOAD( "b52-115.71", 0x000000, 0x080000, CRC(4e117e93) SHA1(51d893fa21793335878c76f6d5987d99da60be04) )
4024 	ROM_LOAD( "b52-114.72", 0x080000, 0x080000, CRC(3a73d6b1) SHA1(419f02a875b30913331db207e344d0eaa275297e) )
4025 	ROM_LOAD( "b52-113.73", 0x100000, 0x080000, CRC(2c6a3a05) SHA1(f2f0dfbbbb6930bf53025064ebae9c07a95c6deb) )
4026 
4027 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
4028 	ROM_LOAD( "b52-116.70", 0x00000, 0x80000, CRC(ad46983c) SHA1(6fcad67456fbd8c967cd4786815f70b57a24a969) )
4029 
4030 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
4031 	ROM_LOAD( "b52-01.7",    0x00000, 0x00100, CRC(89719d17) SHA1(50181b8172b0fc08b149db18caf10659be9c517f) )   // road/sprite priority and palette select
4032 	ROM_LOAD( "b52-03.135",  0x00000, 0x00400, CRC(a3f8490d) SHA1(349b8c9ba914603f72f800a3fc8e8277d756deb1) )
4033 	ROM_LOAD( "b52-06.24",   0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )   // road A/B internal priority
4034 	ROM_LOAD( "b52-18.93",   0x00000, 0x00100, CRC(60bdaf1a) SHA1(0cb9c6b821de9ccc1f38336608dd7ead46cb8d24) )   // identical to b52-18b
4035 	ROM_LOAD( "b52-18a",     0x00000, 0x00100, CRC(6271be0d) SHA1(84282af98fc0de10e88282f7187cd865133ed6ce) )
4036 	ROM_LOAD( "b52-49.68",   0x00000, 0x02000, CRC(60dd2ed1) SHA1(8673b6b3355975fb91cd1491e0ac7c0f590e3824) )
4037 	ROM_LOAD( "b52-50.66",   0x00000, 0x10000, CRC(c189781c) SHA1(af3904ce51f715970965d110313491dbacf188b8) )
4038 	ROM_LOAD( "b52-51.65",   0x00000, 0x10000, CRC(30cc1f79) SHA1(3b0e3e6e8bce7a7d04a5b0103e2ce4e18e52a68e) )
4039 	ROM_LOAD( "b52-126.136", 0x00000, 0x00400, CRC(fa2f840e) SHA1(dd61ee6833bd43bbf619d36ec46f2bfa00880f40) )
4040 	ROM_LOAD( "b52-127.156", 0x00000, 0x00400, CRC(77682a4f) SHA1(da2b3143f1c8688a22d8ec47bbb73b2f2e578480) )
4041 
4042 	ROM_REGION( 0x02a00, "plds", 0 )
4043 	ROM_LOAD( "pal20l8b-b52-17.ic18",   0x0000, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) )
4044 	ROM_LOAD( "pal20l8b-b52-17.ic16",   0x0200, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) )
4045 	ROM_LOAD( "pal20l8b-b52-17.ic53",   0x0400, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) )
4046 	ROM_LOAD( "pal20l8b-b52-17.ic55",   0x0600, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) )
4047 	ROM_LOAD( "pal16l8b-b52-19.ic33",   0x0800, 0x0104, CRC(3ba292dc) SHA1(ce904e92e9c0d73802e6f53dc747204c194281c5) )
4048 	ROM_LOAD( "pal16l8b-b52-20.ic35",   0x0a00, 0x0104, CRC(bd39ad73) SHA1(03120f3d7d0b9b9105990e226388f9cdd53e5789) )
4049 	ROM_LOAD( "pal16l8b-b52-21.ic51",   0x0c00, 0x0104, CRC(2fe76aa4) SHA1(9ea187cff3e0edb58b019400cfc4bf342d4304c3) )
4050 	ROM_LOAD( "pal20l8b-b52-25.ic123",  0x0e00, 0x0144, CRC(372b632d) SHA1(84631489c9f56907a97d686c35b15284fab09e8d) )
4051 	ROM_LOAD( "pal20l8b-b52-26.ic15",   0x1000, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) )
4052 	ROM_LOAD( "pal20l8b-b52-26.ic18",   0x1200, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) )
4053 	ROM_LOAD( "pal20l8b-b52-26.ic52",   0x1400, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) )
4054 	ROM_LOAD( "pal20l8b-b52-26.ic54",   0x1600, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) )
4055 	ROM_LOAD( "pal20l8b-b52-27.ic64",   0x1800, 0x0144, CRC(61c2ab26) SHA1(8540d452a21581739b1ab08708b0c799dd2d2393) )
4056 	ROM_LOAD( "pal20l8b-b52-118.ic20",  0x1a00, 0x0144, CRC(9c5fe4af) SHA1(1fbc6461f067eeac9679ca32c126563951a99c09) )
4057 	ROM_LOAD( "pal20l8b-b52-119.ic21",  0x1c00, 0x0144, CRC(8b8e2106) SHA1(be59baae5cada9901c2ea8891f99731f010364db) )
4058 	ROM_LOAD( "pal16l8b-b52-120.ic56",  0x1e00, 0x0104, CRC(3e7effa0) SHA1(0e8c09613b6a9311261aa8fa8bafab0f27081741) )
4059 	ROM_LOAD( "pal20l8b-b52-121.ic57",  0x2000, 0x0144, CRC(7056fd1d) SHA1(fc032f24b95ff7a8bf5a7badddef51c5447c445d) )
4060 	ROM_LOAD( "pal16l8b-b52-122.ic124", 0x2200, 0x0104, CRC(04c0fb04) SHA1(53dfeb747e213c67a78c1407e43cdad4cec2cb7e) )
4061 	ROM_LOAD( "pal16l8b-b52-123.ic125", 0x2400, 0x0104, CRC(3865d1c8) SHA1(2d77326be4fb047243c3d5c33c442b009bf6fc04) )
4062 	ROM_LOAD( "pal16l8b-b52-124.ic180", 0x2600, 0x0104, CRC(d448a25a) SHA1(9339a7969418af30493f4c14cd9bce47d030d1ad) )   /* is this read protected? - taken from chasehqju */
4063 	ROM_LOAD( "pal16l8b-b52-125.ic112", 0x2800, 0x0104, CRC(7628c557) SHA1(11bf628e091dc02e0c2e17ae726061ac04705a54) )
4064 ROM_END
4065 
4066 ROM_START( chasehqj )
4067 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
4068 	ROM_LOAD16_BYTE( "b52-140.36", 0x00000, 0x20000, CRC(c1298a4b) SHA1(41981b72c9ebbea8f8a4aa32e74b9ed46dd71e32) )
4069 	ROM_LOAD16_BYTE( "b52-139.29", 0x00001, 0x20000, CRC(997f732e) SHA1(0f7bd4b3c53e1f14830b3c288f2175e7c125c2cc) )
4070 	ROM_LOAD16_BYTE( "b52-131.37", 0x40000, 0x20000, CRC(aa945d83) SHA1(9d8a8186a199cacc0e24cf1ee75d81ab8b056406) )
4071 	ROM_LOAD16_BYTE( "b52-129.30", 0x40001, 0x20000, CRC(0eaebc08) SHA1(1dde3304b251ddeb52f1378ef3845269c3667169) )
4072 
4073 	ROM_REGION( 0x20000, "sub", 0 ) /* 128K for 68000 code (CPU B) */
4074 	ROM_LOAD16_BYTE( "b52-132.39", 0x00000, 0x10000, CRC(a2f54789) SHA1(941a6470e3a5ae35d079657260a8d7d6a9fca122) )
4075 	ROM_LOAD16_BYTE( "b52-133.55", 0x00001, 0x10000, CRC(12232f95) SHA1(2894b95fc1d0a6e5b323bf3e7f1968f02b30a845) )
4076 
4077 	ROM_REGION( 0x10000, "audiocpu", 0 )    /* Z80 sound cpu */
4078 	ROM_LOAD( "b52-134.51",    0x00000, 0x10000, CRC(91faac7f) SHA1(05f00e0909444566877d0ef678bae49f107e1628) )
4079 
4080 	ROM_REGION( 0x8000, "motorcpu", 0 )
4081 	ROM_LOAD( "27c256.ic17",   0x0000, 0x8000, CRC(e52dfee1) SHA1(6e58e18eb2de3c899b950a4307ea21cd23683657) )
4082 
4083 	ROM_REGION( 0x80000, "tc0100scn", 0 )
4084 	ROM_LOAD16_WORD_SWAP( "b52-29.27", 0x00000, 0x80000, CRC(8366d27c) SHA1(d7c5f588b39742927228ce73e5d69bda1e903df6) ) /* SCR 8x8*/
4085 
4086 	ROM_REGION( 0x200000, "sprites", 0 )
4087 	ROM_LOAD64_WORD_SWAP( "b52-34.5",  0x000000, 0x080000, CRC(7d8dce36) SHA1(ca082e647d10378144c05a70a8e4fe352d95eeaf) )
4088 	ROM_LOAD64_WORD_SWAP( "b52-35.7",  0x000002, 0x080000, CRC(78eeec0d) SHA1(2e82186ca17c579816865ef21c52aef9e133fbf5) )    /* OBJ A 16x16 */
4089 	ROM_LOAD64_WORD_SWAP( "b52-36.9",  0x000004, 0x080000, CRC(61e89e91) SHA1(f655b3caa37a8835c2eb11f4d72e985636ac5379) )
4090 	ROM_LOAD64_WORD_SWAP( "b52-37.11", 0x000006, 0x080000, CRC(f02e47b9) SHA1(093864bd18bd58dafa57990e999f394ca3124452) )
4091 
4092 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
4093 	ROM_LOAD16_WORD( "b52-28.4", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) )  /* ROD, road lines */
4094 
4095 	ROM_REGION( 0x200000, "sprites2", 0 )
4096 	ROM_LOAD64_WORD_SWAP( "b52-30.4",  0x000000, 0x080000, CRC(1b8cc647) SHA1(8807fe01b6804507564fc179adf995bf86521fda) )
4097 	ROM_LOAD64_WORD_SWAP( "b52-31.6",  0x000002, 0x080000, CRC(f1998e20) SHA1(b03d4e373e88933391f3533b885817edfca4cfdf) )    /* OBJ B 16x16 */
4098 	ROM_LOAD64_WORD_SWAP( "b52-32.8",  0x000004, 0x080000, CRC(8620780c) SHA1(2545fd8fb03dcddc3da86d5ea06a6dc915acd1a1) )
4099 	ROM_LOAD64_WORD_SWAP( "b52-33.10", 0x000006, 0x080000, CRC(e6f4b8c4) SHA1(8d15c75a16953aa56fb3dc6fd3b691e227bef622) )
4100 
4101 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
4102 	ROM_LOAD16_WORD( "b52-38.34", 0x00000, 0x80000, CRC(5b5bf7f6) SHA1(71dd5b40b83870d351c9ecaccc4fb98c3a6740ae) )  /* STY spritemap */
4103 
4104 	ROM_REGION( 0x180000, "ymsnd", 0 )  /* ADPCM samples */
4105 	ROM_LOAD( "b52-41.71", 0x000000, 0x80000, CRC(8204880c) SHA1(4dfd6454b4a4c04db3593e98648afbfe8d1f59ed) )
4106 	ROM_LOAD( "b52-40.72", 0x080000, 0x80000, CRC(f0551055) SHA1(4498cd058a52d5e87c6d502e844908a5df3abf2a) )
4107 	ROM_LOAD( "b52-39.73", 0x100000, 0x80000, CRC(ac9cbbd3) SHA1(792f41fef37ff35067fd0173d944f90279176649) )
4108 
4109 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
4110 	ROM_LOAD( "b52-42.70", 0x00000, 0x80000, CRC(6e617df1) SHA1(e3d1678132130c66506f2e1419db2f6b5b062f74) )
4111 
4112 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
4113 	ROM_LOAD( "b52-01.7",    0x00000, 0x00100, CRC(89719d17) SHA1(50181b8172b0fc08b149db18caf10659be9c517f) )   // road/sprite priority and palette select
4114 	ROM_LOAD( "b52-03.135",  0x00000, 0x00400, CRC(a3f8490d) SHA1(349b8c9ba914603f72f800a3fc8e8277d756deb1) )
4115 	ROM_LOAD( "b52-06.24",   0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )   // road A/B internal priority
4116 	ROM_LOAD( "b52-18.93",   0x00000, 0x00100, CRC(60bdaf1a) SHA1(0cb9c6b821de9ccc1f38336608dd7ead46cb8d24) )   // identical to b52-18b
4117 	ROM_LOAD( "b52-18a",     0x00000, 0x00100, CRC(6271be0d) SHA1(84282af98fc0de10e88282f7187cd865133ed6ce) )
4118 	ROM_LOAD( "b52-49.68",   0x00000, 0x02000, CRC(60dd2ed1) SHA1(8673b6b3355975fb91cd1491e0ac7c0f590e3824) )
4119 	ROM_LOAD( "b52-50.66",   0x00000, 0x10000, CRC(c189781c) SHA1(af3904ce51f715970965d110313491dbacf188b8) )
4120 	ROM_LOAD( "b52-51.65",   0x00000, 0x10000, CRC(30cc1f79) SHA1(3b0e3e6e8bce7a7d04a5b0103e2ce4e18e52a68e) )
4121 	ROM_LOAD( "b52-126.136", 0x00000, 0x00400, CRC(fa2f840e) SHA1(dd61ee6833bd43bbf619d36ec46f2bfa00880f40) )
4122 	ROM_LOAD( "b52-127.156", 0x00000, 0x00400, CRC(77682a4f) SHA1(da2b3143f1c8688a22d8ec47bbb73b2f2e578480) )
4123 
4124 	ROM_REGION( 0x02a00, "plds", 0 )
4125 	ROM_LOAD( "pal20l8b-b52-17.ic18",   0x0000, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) )
4126 	ROM_LOAD( "pal20l8b-b52-17.ic16",   0x0200, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) )
4127 	ROM_LOAD( "pal20l8b-b52-17.ic53",   0x0400, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) )
4128 	ROM_LOAD( "pal20l8b-b52-17.ic55",   0x0600, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) )
4129 	ROM_LOAD( "pal16l8b-b52-19.ic33",   0x0800, 0x0104, CRC(3ba292dc) SHA1(ce904e92e9c0d73802e6f53dc747204c194281c5) )
4130 	ROM_LOAD( "pal16l8b-b52-20.ic35",   0x0a00, 0x0104, CRC(bd39ad73) SHA1(03120f3d7d0b9b9105990e226388f9cdd53e5789) )
4131 	ROM_LOAD( "pal16l8b-b52-21.ic51",   0x0c00, 0x0104, CRC(2fe76aa4) SHA1(9ea187cff3e0edb58b019400cfc4bf342d4304c3) )
4132 	ROM_LOAD( "pal20l8b-b52-25.ic123",  0x0e00, 0x0144, CRC(372b632d) SHA1(84631489c9f56907a97d686c35b15284fab09e8d) )
4133 	ROM_LOAD( "pal20l8b-b52-26.ic15",   0x1000, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) )
4134 	ROM_LOAD( "pal20l8b-b52-26.ic18",   0x1200, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) )
4135 	ROM_LOAD( "pal20l8b-b52-26.ic52",   0x1400, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) )
4136 	ROM_LOAD( "pal20l8b-b52-26.ic54",   0x1600, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) )
4137 	ROM_LOAD( "pal20l8b-b52-27.ic64",   0x1800, 0x0144, CRC(61c2ab26) SHA1(8540d452a21581739b1ab08708b0c799dd2d2393) )
4138 	ROM_LOAD( "pal20l8b-b52-118.ic20",  0x1a00, 0x0144, CRC(9c5fe4af) SHA1(1fbc6461f067eeac9679ca32c126563951a99c09) )
4139 	ROM_LOAD( "pal20l8b-b52-119.ic21",  0x1c00, 0x0144, CRC(8b8e2106) SHA1(be59baae5cada9901c2ea8891f99731f010364db) )
4140 	ROM_LOAD( "pal16l8b-b52-120.ic56",  0x1e00, 0x0104, CRC(3e7effa0) SHA1(0e8c09613b6a9311261aa8fa8bafab0f27081741) )
4141 	ROM_LOAD( "pal20l8b-b52-121.ic57",  0x2000, 0x0144, CRC(7056fd1d) SHA1(fc032f24b95ff7a8bf5a7badddef51c5447c445d) )
4142 	ROM_LOAD( "pal16l8b-b52-122.ic124", 0x2200, 0x0104, CRC(04c0fb04) SHA1(53dfeb747e213c67a78c1407e43cdad4cec2cb7e) )
4143 	ROM_LOAD( "pal16l8b-b52-123.ic125", 0x2400, 0x0104, CRC(3865d1c8) SHA1(2d77326be4fb047243c3d5c33c442b009bf6fc04) )
4144 	ROM_LOAD( "pal16l8b-b52-124.ic180", 0x2600, 0x0104, CRC(d448a25a) SHA1(9339a7969418af30493f4c14cd9bce47d030d1ad) )   /* is this read protected? - taken from chasehqju */
4145 	ROM_LOAD( "pal16l8b-b52-125.ic112", 0x2800, 0x0104, CRC(7628c557) SHA1(11bf628e091dc02e0c2e17ae726061ac04705a54) )
4146 ROM_END
4147 
4148 ROM_START( chasehqju )
4149 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
4150 	ROM_LOAD16_BYTE( "b52-130.36", 0x00000, 0x20000, CRC(4e7beb46) SHA1(b8890c4a2121aa93cfc3a41ddbb3b840d0804cfa) ) // ==  b52-130.36            chasehq    Chase H.Q. (World)
4151 	ROM_LOAD16_BYTE( "b52-128.29", 0x00001, 0x20000, CRC(c14f2cdc) SHA1(7136da9211d02534109fc1aa678b77b950c07942) )
4152 	ROM_LOAD16_BYTE( "b52-131.37", 0x40000, 0x20000, CRC(aa945d83) SHA1(9d8a8186a199cacc0e24cf1ee75d81ab8b056406) )
4153 	ROM_LOAD16_BYTE( "b52-129.30", 0x40001, 0x20000, CRC(0eaebc08) SHA1(1dde3304b251ddeb52f1378ef3845269c3667169) )
4154 
4155 	ROM_REGION( 0x20000, "sub", 0 ) /* 128K for 68000 code (CPU B) */
4156 	ROM_LOAD16_BYTE( "b52-132.39", 0x00000, 0x10000, CRC(a2f54789) SHA1(941a6470e3a5ae35d079657260a8d7d6a9fca122) )
4157 	ROM_LOAD16_BYTE( "b52-133.55", 0x00001, 0x10000, CRC(12232f95) SHA1(2894b95fc1d0a6e5b323bf3e7f1968f02b30a845) )
4158 
4159 	ROM_REGION( 0x10000, "audiocpu", 0 )    /* Z80 sound cpu */
4160 	ROM_LOAD( "b52-134.51",    0x00000, 0x10000, CRC(91faac7f) SHA1(05f00e0909444566877d0ef678bae49f107e1628) )
4161 
4162 	ROM_REGION( 0x80000, "tc0100scn", 0 )
4163 	ROM_LOAD16_WORD_SWAP( "b52-29.27", 0x00000, 0x80000, CRC(8366d27c) SHA1(d7c5f588b39742927228ce73e5d69bda1e903df6) ) /* SCR 8x8*/
4164 
4165 	ROM_REGION( 0x200000, "sprites", 0 )
4166 	ROM_LOAD64_WORD_SWAP( "b52-34.5",  0x000000, 0x080000, CRC(7d8dce36) SHA1(ca082e647d10378144c05a70a8e4fe352d95eeaf) )
4167 	ROM_LOAD64_WORD_SWAP( "b52-35.7",  0x000002, 0x080000, CRC(78eeec0d) SHA1(2e82186ca17c579816865ef21c52aef9e133fbf5) )    /* OBJ A 16x16 */
4168 	ROM_LOAD64_WORD_SWAP( "b52-36.9",  0x000004, 0x080000, CRC(61e89e91) SHA1(f655b3caa37a8835c2eb11f4d72e985636ac5379) )
4169 	ROM_LOAD64_WORD_SWAP( "b52-37.11", 0x000006, 0x080000, CRC(f02e47b9) SHA1(093864bd18bd58dafa57990e999f394ca3124452) )
4170 
4171 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
4172 	ROM_LOAD16_WORD( "b52-28.4", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) )  /* ROD, road lines */
4173 
4174 	ROM_REGION( 0x200000, "sprites2", 0 )
4175 	ROM_LOAD64_WORD_SWAP( "b52-30.4",  0x000000, 0x080000, CRC(1b8cc647) SHA1(8807fe01b6804507564fc179adf995bf86521fda) )
4176 	ROM_LOAD64_WORD_SWAP( "b52-31.6",  0x000002, 0x080000, CRC(f1998e20) SHA1(b03d4e373e88933391f3533b885817edfca4cfdf) )    /* OBJ B 16x16 */
4177 	ROM_LOAD64_WORD_SWAP( "b52-32.8",  0x000004, 0x080000, CRC(8620780c) SHA1(2545fd8fb03dcddc3da86d5ea06a6dc915acd1a1) )
4178 	ROM_LOAD64_WORD_SWAP( "b52-33.10", 0x000006, 0x080000, CRC(e6f4b8c4) SHA1(8d15c75a16953aa56fb3dc6fd3b691e227bef622) )
4179 
4180 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
4181 	ROM_LOAD16_WORD( "b52-38.34", 0x00000, 0x80000, CRC(5b5bf7f6) SHA1(71dd5b40b83870d351c9ecaccc4fb98c3a6740ae) )  /* STY spritemap */
4182 
4183 	ROM_REGION( 0x180000, "ymsnd", 0 )  /* ADPCM samples */
4184 	ROM_LOAD( "b52-41.71", 0x000000, 0x80000, CRC(8204880c) SHA1(4dfd6454b4a4c04db3593e98648afbfe8d1f59ed) )
4185 	ROM_LOAD( "b52-40.72", 0x080000, 0x80000, CRC(f0551055) SHA1(4498cd058a52d5e87c6d502e844908a5df3abf2a) )
4186 	ROM_LOAD( "b52-39.73", 0x100000, 0x80000, CRC(ac9cbbd3) SHA1(792f41fef37ff35067fd0173d944f90279176649) )
4187 
4188 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
4189 	ROM_LOAD( "b52-42.70", 0x00000, 0x80000, CRC(6e617df1) SHA1(e3d1678132130c66506f2e1419db2f6b5b062f74) )
4190 
4191 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
4192 	ROM_LOAD( "b52-01.7",    0x00000, 0x00100, CRC(89719d17) SHA1(50181b8172b0fc08b149db18caf10659be9c517f) )   // road/sprite priority and palette select
4193 	ROM_LOAD( "b52-03.135",  0x00000, 0x00400, CRC(a3f8490d) SHA1(349b8c9ba914603f72f800a3fc8e8277d756deb1) )
4194 	ROM_LOAD( "b52-06.24",   0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )   // road A/B internal priority
4195 	ROM_LOAD( "b52-18.93",   0x00000, 0x00100, CRC(60bdaf1a) SHA1(0cb9c6b821de9ccc1f38336608dd7ead46cb8d24) )   // identical to b52-18b
4196 	ROM_LOAD( "b52-18a",     0x00000, 0x00100, CRC(6271be0d) SHA1(84282af98fc0de10e88282f7187cd865133ed6ce) )
4197 	ROM_LOAD( "b52-49.68",   0x00000, 0x02000, CRC(60dd2ed1) SHA1(8673b6b3355975fb91cd1491e0ac7c0f590e3824) )
4198 	ROM_LOAD( "b52-50.66",   0x00000, 0x10000, CRC(c189781c) SHA1(af3904ce51f715970965d110313491dbacf188b8) )
4199 	ROM_LOAD( "b52-51.65",   0x00000, 0x10000, CRC(30cc1f79) SHA1(3b0e3e6e8bce7a7d04a5b0103e2ce4e18e52a68e) )
4200 	ROM_LOAD( "b52-126.136", 0x00000, 0x00400, CRC(fa2f840e) SHA1(dd61ee6833bd43bbf619d36ec46f2bfa00880f40) )
4201 	ROM_LOAD( "b52-127.156", 0x00000, 0x00400, CRC(77682a4f) SHA1(da2b3143f1c8688a22d8ec47bbb73b2f2e578480) )
4202 
4203 	ROM_REGION( 0x02a00, "plds", 0 )
4204 	ROM_LOAD( "pal20l8b-b52-17.ic18",   0x0000, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) )
4205 	ROM_LOAD( "pal20l8b-b52-17.ic16",   0x0200, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) )
4206 	ROM_LOAD( "pal20l8b-b52-17.ic53",   0x0400, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) )
4207 	ROM_LOAD( "pal20l8b-b52-17.ic55",   0x0600, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) )
4208 	ROM_LOAD( "pal16l8b-b52-19.ic33",   0x0800, 0x0104, CRC(3ba292dc) SHA1(ce904e92e9c0d73802e6f53dc747204c194281c5) )
4209 	ROM_LOAD( "pal16l8b-b52-20.ic35",   0x0a00, 0x0104, CRC(bd39ad73) SHA1(03120f3d7d0b9b9105990e226388f9cdd53e5789) )
4210 	ROM_LOAD( "pal16l8b-b52-21.ic51",   0x0c00, 0x0104, CRC(2fe76aa4) SHA1(9ea187cff3e0edb58b019400cfc4bf342d4304c3) )
4211 	ROM_LOAD( "pal20l8b-b52-25.ic123",  0x0e00, 0x0144, CRC(372b632d) SHA1(84631489c9f56907a97d686c35b15284fab09e8d) )
4212 	ROM_LOAD( "pal20l8b-b52-26.ic15",   0x1000, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) )
4213 	ROM_LOAD( "pal20l8b-b52-26.ic18",   0x1200, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) )
4214 	ROM_LOAD( "pal20l8b-b52-26.ic52",   0x1400, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) )
4215 	ROM_LOAD( "pal20l8b-b52-26.ic54",   0x1600, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) )
4216 	ROM_LOAD( "pal20l8b-b52-27.ic64",   0x1800, 0x0144, CRC(61c2ab26) SHA1(8540d452a21581739b1ab08708b0c799dd2d2393) )
4217 	ROM_LOAD( "pal20l8b-b52-118.ic20",  0x1a00, 0x0144, CRC(9c5fe4af) SHA1(1fbc6461f067eeac9679ca32c126563951a99c09) )
4218 	ROM_LOAD( "pal20l8b-b52-119.ic21",  0x1c00, 0x0144, CRC(8b8e2106) SHA1(be59baae5cada9901c2ea8891f99731f010364db) )
4219 	ROM_LOAD( "pal16l8b-b52-120.ic56",  0x1e00, 0x0104, CRC(3e7effa0) SHA1(0e8c09613b6a9311261aa8fa8bafab0f27081741) )
4220 	ROM_LOAD( "pal20l8b-b52-121.ic57",  0x2000, 0x0144, CRC(7056fd1d) SHA1(fc032f24b95ff7a8bf5a7badddef51c5447c445d) )
4221 	ROM_LOAD( "pal16l8b-b52-122.ic124", 0x2200, 0x0104, CRC(04c0fb04) SHA1(53dfeb747e213c67a78c1407e43cdad4cec2cb7e) )
4222 	ROM_LOAD( "pal16l8b-b52-123.ic125", 0x2400, 0x0104, CRC(3865d1c8) SHA1(2d77326be4fb047243c3d5c33c442b009bf6fc04) )
4223 	ROM_LOAD( "pal16l8b-b52-124.ic180", 0x2600, 0x0104, CRC(d448a25a) SHA1(9339a7969418af30493f4c14cd9bce47d030d1ad) )   /* is this read protected? */
4224 	ROM_LOAD( "pal16l8b-b52-125.ic112", 0x2800, 0x0104, CRC(7628c557) SHA1(11bf628e091dc02e0c2e17ae726061ac04705a54) )
4225 ROM_END
4226 
4227 ROM_START( chasehqu )
4228 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
4229 	ROM_LOAD16_BYTE( "b52-138.36", 0x00000, 0x20000, CRC(8b71fe51) SHA1(6f2352aa2112dd18d328acddacf412b54c896ec0) )
4230 	ROM_LOAD16_BYTE( "b52-135.29", 0x00001, 0x20000, CRC(5ba56a7c) SHA1(3af6f1008181d5a5951fbd6a48dd7592a9e38f96) )
4231 	ROM_LOAD16_BYTE( "b52-131.37", 0x40000, 0x20000, CRC(aa945d83) SHA1(9d8a8186a199cacc0e24cf1ee75d81ab8b056406) )
4232 	ROM_LOAD16_BYTE( "b52-129.30", 0x40001, 0x20000, CRC(0eaebc08) SHA1(1dde3304b251ddeb52f1378ef3845269c3667169) )
4233 
4234 	ROM_REGION( 0x20000, "sub", 0 ) /* 128K for 68000 code (CPU B) */
4235 	ROM_LOAD16_BYTE( "b52-132.39", 0x00000, 0x10000, CRC(a2f54789) SHA1(941a6470e3a5ae35d079657260a8d7d6a9fca122) )
4236 	ROM_LOAD16_BYTE( "b52-133.55", 0x00001, 0x10000, CRC(12232f95) SHA1(2894b95fc1d0a6e5b323bf3e7f1968f02b30a845) )
4237 
4238 	ROM_REGION( 0x10000, "audiocpu", 0 )    /* Z80 sound cpu */
4239 	ROM_LOAD( "b52-137.51",   0x00000, 0x10000, CRC(37abb74a) SHA1(1feb1e49102c13a90e02c150472545cd9f6334da) )
4240 
4241 	ROM_REGION( 0x8000, "motorcpu", 0 )
4242 	ROM_LOAD( "27c256.ic17",   0x0000, 0x8000, CRC(e52dfee1) SHA1(6e58e18eb2de3c899b950a4307ea21cd23683657) )
4243 
4244 	ROM_REGION( 0x80000, "tc0100scn", 0 )
4245 	ROM_LOAD16_WORD_SWAP( "b52-29.27", 0x00000, 0x80000, CRC(8366d27c) SHA1(d7c5f588b39742927228ce73e5d69bda1e903df6) ) /* SCR 8x8*/
4246 
4247 	ROM_REGION( 0x200000, "sprites", 0 )
4248 	ROM_LOAD64_WORD_SWAP( "b52-34.5",  0x000000, 0x080000, CRC(7d8dce36) SHA1(ca082e647d10378144c05a70a8e4fe352d95eeaf) )
4249 	ROM_LOAD64_WORD_SWAP( "b52-35.7",  0x000002, 0x080000, CRC(78eeec0d) SHA1(2e82186ca17c579816865ef21c52aef9e133fbf5) )    /* OBJ A 16x16 */
4250 	ROM_LOAD64_WORD_SWAP( "b52-36.9",  0x000004, 0x080000, CRC(61e89e91) SHA1(f655b3caa37a8835c2eb11f4d72e985636ac5379) )
4251 	ROM_LOAD64_WORD_SWAP( "b52-37.11", 0x000006, 0x080000, CRC(f02e47b9) SHA1(093864bd18bd58dafa57990e999f394ca3124452) )
4252 
4253 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
4254 	ROM_LOAD16_WORD( "b52-28.4", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) )  /* ROD, road lines */
4255 
4256 	ROM_REGION( 0x200000, "sprites2", 0 )
4257 	ROM_LOAD64_WORD_SWAP( "b52-30.4",  0x000000, 0x080000, CRC(1b8cc647) SHA1(8807fe01b6804507564fc179adf995bf86521fda) )
4258 	ROM_LOAD64_WORD_SWAP( "b52-31.6",  0x000002, 0x080000, CRC(f1998e20) SHA1(b03d4e373e88933391f3533b885817edfca4cfdf) )    /* OBJ B 16x16 */
4259 	ROM_LOAD64_WORD_SWAP( "b52-32.8",  0x000004, 0x080000, CRC(8620780c) SHA1(2545fd8fb03dcddc3da86d5ea06a6dc915acd1a1) )
4260 	ROM_LOAD64_WORD_SWAP( "b52-33.10", 0x000006, 0x080000, CRC(e6f4b8c4) SHA1(8d15c75a16953aa56fb3dc6fd3b691e227bef622) )
4261 
4262 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
4263 	ROM_LOAD16_WORD( "b52-38.34", 0x00000, 0x80000, CRC(5b5bf7f6) SHA1(71dd5b40b83870d351c9ecaccc4fb98c3a6740ae) )  /* STY spritemap */
4264 
4265 	ROM_REGION( 0x180000, "ymsnd", 0 )  /* ADPCM samples */
4266 	ROM_LOAD( "b52-115.71", 0x000000, 0x080000, CRC(4e117e93) SHA1(51d893fa21793335878c76f6d5987d99da60be04) )
4267 	ROM_LOAD( "b52-114.72", 0x080000, 0x080000, CRC(3a73d6b1) SHA1(419f02a875b30913331db207e344d0eaa275297e) )
4268 	ROM_LOAD( "b52-113.73", 0x100000, 0x080000, CRC(2c6a3a05) SHA1(f2f0dfbbbb6930bf53025064ebae9c07a95c6deb) )
4269 
4270 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
4271 	ROM_LOAD( "b52-116.70", 0x00000, 0x80000, CRC(ad46983c) SHA1(6fcad67456fbd8c967cd4786815f70b57a24a969) )
4272 
4273 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
4274 	ROM_LOAD( "b52-01.7",    0x00000, 0x00100, CRC(89719d17) SHA1(50181b8172b0fc08b149db18caf10659be9c517f) )   // road/sprite priority and palette select
4275 	ROM_LOAD( "b52-03.135",  0x00000, 0x00400, CRC(a3f8490d) SHA1(349b8c9ba914603f72f800a3fc8e8277d756deb1) )
4276 	ROM_LOAD( "b52-06.24",   0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )   // road A/B internal priority
4277 	ROM_LOAD( "b52-18.93",   0x00000, 0x00100, CRC(60bdaf1a) SHA1(0cb9c6b821de9ccc1f38336608dd7ead46cb8d24) )   // identical to b52-18b
4278 	ROM_LOAD( "b52-18a",     0x00000, 0x00100, CRC(6271be0d) SHA1(84282af98fc0de10e88282f7187cd865133ed6ce) )
4279 	ROM_LOAD( "b52-49.68",   0x00000, 0x02000, CRC(60dd2ed1) SHA1(8673b6b3355975fb91cd1491e0ac7c0f590e3824) )
4280 	ROM_LOAD( "b52-50.66",   0x00000, 0x10000, CRC(c189781c) SHA1(af3904ce51f715970965d110313491dbacf188b8) )
4281 	ROM_LOAD( "b52-51.65",   0x00000, 0x10000, CRC(30cc1f79) SHA1(3b0e3e6e8bce7a7d04a5b0103e2ce4e18e52a68e) )
4282 	ROM_LOAD( "b52-126.136", 0x00000, 0x00400, CRC(fa2f840e) SHA1(dd61ee6833bd43bbf619d36ec46f2bfa00880f40) )
4283 	ROM_LOAD( "b52-127.156", 0x00000, 0x00400, CRC(77682a4f) SHA1(da2b3143f1c8688a22d8ec47bbb73b2f2e578480) )
4284 
4285 	ROM_REGION( 0x02a00, "plds", 0 )
4286 	ROM_LOAD( "pal20l8b-b52-17.ic18",   0x0000, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) )
4287 	ROM_LOAD( "pal20l8b-b52-17.ic16",   0x0200, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) )
4288 	ROM_LOAD( "pal20l8b-b52-17.ic53",   0x0400, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) )
4289 	ROM_LOAD( "pal20l8b-b52-17.ic55",   0x0600, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) )
4290 	ROM_LOAD( "pal16l8b-b52-19.ic33",   0x0800, 0x0104, CRC(3ba292dc) SHA1(ce904e92e9c0d73802e6f53dc747204c194281c5) )
4291 	ROM_LOAD( "pal16l8b-b52-20.ic35",   0x0a00, 0x0104, CRC(bd39ad73) SHA1(03120f3d7d0b9b9105990e226388f9cdd53e5789) )
4292 	ROM_LOAD( "pal16l8b-b52-21.ic51",   0x0c00, 0x0104, CRC(2fe76aa4) SHA1(9ea187cff3e0edb58b019400cfc4bf342d4304c3) )
4293 	ROM_LOAD( "pal20l8b-b52-25.ic123",  0x0e00, 0x0144, CRC(372b632d) SHA1(84631489c9f56907a97d686c35b15284fab09e8d) )
4294 	ROM_LOAD( "pal20l8b-b52-26.ic15",   0x1000, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) )
4295 	ROM_LOAD( "pal20l8b-b52-26.ic18",   0x1200, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) )
4296 	ROM_LOAD( "pal20l8b-b52-26.ic52",   0x1400, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) )
4297 	ROM_LOAD( "pal20l8b-b52-26.ic54",   0x1600, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) )
4298 	ROM_LOAD( "pal20l8b-b52-27.ic64",   0x1800, 0x0144, CRC(61c2ab26) SHA1(8540d452a21581739b1ab08708b0c799dd2d2393) )
4299 	ROM_LOAD( "pal20l8b-b52-118.ic20",  0x1a00, 0x0144, CRC(9c5fe4af) SHA1(1fbc6461f067eeac9679ca32c126563951a99c09) )
4300 	ROM_LOAD( "pal20l8b-b52-119.ic21",  0x1c00, 0x0144, CRC(8b8e2106) SHA1(be59baae5cada9901c2ea8891f99731f010364db) )
4301 	ROM_LOAD( "pal16l8b-b52-120.ic56",  0x1e00, 0x0104, CRC(3e7effa0) SHA1(0e8c09613b6a9311261aa8fa8bafab0f27081741) )
4302 	ROM_LOAD( "pal20l8b-b52-121.ic57",  0x2000, 0x0144, CRC(7056fd1d) SHA1(fc032f24b95ff7a8bf5a7badddef51c5447c445d) )
4303 	ROM_LOAD( "pal16l8b-b52-122.ic124", 0x2200, 0x0104, CRC(04c0fb04) SHA1(53dfeb747e213c67a78c1407e43cdad4cec2cb7e) )
4304 	ROM_LOAD( "pal16l8b-b52-123.ic125", 0x2400, 0x0104, CRC(3865d1c8) SHA1(2d77326be4fb047243c3d5c33c442b009bf6fc04) )
4305 	ROM_LOAD( "pal16l8b-b52-124.ic180", 0x2600, 0x0104, CRC(d448a25a) SHA1(9339a7969418af30493f4c14cd9bce47d030d1ad) )   /* is this read protected? - taken from chasehqju */
4306 	ROM_LOAD( "pal16l8b-b52-125.ic112", 0x2800, 0x0104, CRC(7628c557) SHA1(11bf628e091dc02e0c2e17ae726061ac04705a54) )
4307 ROM_END
4308 
4309 ROM_START( enforce )
4310 	ROM_REGION( 0x40000, "maincpu", 0 ) /* 256K for 68000 code (CPU A) */
4311 	ROM_LOAD16_BYTE( "b58-38.27", 0x00000, 0x20000, CRC(a1aa0191) SHA1(193d936e1bfe0da4ac984aba65d3e4e6c93a4c11) )
4312 	ROM_LOAD16_BYTE( "b58-36.19", 0x00001, 0x20000, CRC(40f43da3) SHA1(bb3d6c6db8df77674bb76c16992d05c297d97c9f) )
4313 
4314 	ROM_REGION( 0x40000, "sub", 0 ) /* 256K for 68000 code (CPU B) */
4315 	ROM_LOAD16_BYTE( "b58-37.26", 0x00000, 0x20000, CRC(e823c85c) SHA1(199b19e81c76eb936f4cf31957ae08bed1395bda) )
4316 	ROM_LOAD16_BYTE( "b58-35.18", 0x00001, 0x20000, CRC(8b3ceb12) SHA1(c3f7d1ae5082715f202435c13e6d6f7ac4048750) )
4317 
4318 	ROM_REGION( 0x10000, "audiocpu", 0 )    /* Z80 sound cpu */
4319 	ROM_LOAD( "b58-32.41",   0x00000, 0x10000, CRC(f3fd8eca) SHA1(3b1ab64984ea43805b6494f8add26210ed1175c5) )
4320 
4321 	ROM_REGION( 0x80000, "tc0100scn", 0 )
4322 	ROM_LOAD16_WORD_SWAP( "b58-09.13", 0x00000, 0x80000, CRC(9ffd5b31) SHA1(0214fb32012a48560ca9c6ed5ee969d3c41cf95c) ) /* SCR 8x8 */
4323 
4324 	ROM_REGION( 0x200000, "sprites", 0 )
4325 	ROM_LOAD64_WORD_SWAP( "b58-04.7",  0x000000, 0x080000, CRC(9482f08d) SHA1(3fc74b9bebca1d82b300ba72c7297c3bcd69cfa9) )
4326 	ROM_LOAD64_WORD_SWAP( "b58-03.6",  0x000002, 0x080000, CRC(158bc440) SHA1(ceab296146363a2e9a48f62118fba6123b4b5a1b) )    /* OBJ 16x8 */
4327 	ROM_LOAD64_WORD_SWAP( "b58-02.2",  0x000004, 0x080000, CRC(6a6e307c) SHA1(fc4a68220e0dd0e64d75ba7c7af0c1ac97dc7fd9) )
4328 	ROM_LOAD64_WORD_SWAP( "b58-01.1",  0x000006, 0x080000, CRC(01e9f0a8) SHA1(0d3a4dc81702e3c57c790eb8a45caca36cb47d4c) )
4329 
4330 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
4331 	ROM_LOAD16_WORD( "b58-06.116", 0x00000, 0x80000, CRC(b3495d70) SHA1(ead4c2fd20b8f103a849201c7344cded013eb8bb) )    /* ROD, road lines */
4332 
4333 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
4334 	ROM_LOAD16_WORD( "b58-05.71", 0x00000, 0x80000, CRC(d1f4991b) SHA1(f1c5a9b8dce994d013290e98fda7bedf73e95900) )  /* STY spritemap */
4335 
4336 	ROM_REGION( 0x100000, "ymsnd", 0 )  /* ADPCM samples */
4337 	ROM_LOAD( "b58-07.11", 0x000000, 0x080000, CRC(eeb5ba08) SHA1(fe40333e09339c76e503ce87b42a89b48d487016) )
4338 	ROM_LOAD( "b58-08.12", 0x080000, 0x080000, CRC(049243cf) SHA1(1f3099b6d764114dc4161ed308369d0f3148dc4e) )
4339 
4340 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples ??? */
4341 	ROM_LOAD( "b58-10.14", 0x00000, 0x80000, CRC(edce0cc1) SHA1(1f6cbc60502b8b12b349e48446ce3a4a1f76bccd) ) /* ??? */
4342 
4343 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
4344 	ROM_LOAD( "b58-26.104", 0x00000, 0x10000, CRC(dccb0c7f) SHA1(42f0af72f559133b74912a4478e1323062be4b77) )    // sprite vertical zoom
4345 	ROM_LOAD( "b58-27.56",  0x00000, 0x02000, CRC(5c6b013d) SHA1(6d02d4560076213b6fb6fe856143bb533090603e) )    // sprite horizontal zoom
4346 	ROM_LOAD( "b58-23.52",  0x00000, 0x00100, CRC(7b7d8ff4) SHA1(18842ed8160739cd2e2ccc2db605153dbed6cc0a) )    // road/sprite priority and palette select
4347 	ROM_LOAD( "b58-24.51",  0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )    // road A/B internal priority
4348 	ROM_LOAD( "b58-25.75",  0x00000, 0x00100, CRC(de547342) SHA1(3b2b116d4016ddbf46c41c625c7fcfd76129baa7) )
4349 // Add pals...
4350 ROM_END
4351 
4352 ROM_START( enforcej )
4353 	ROM_REGION( 0x40000, "maincpu", 0 ) /* 256K for 68000 code (CPU A) */
4354 	ROM_LOAD16_BYTE( "b58-17.27", 0x00000, 0x20000, CRC(a1aa0191) SHA1(193d936e1bfe0da4ac984aba65d3e4e6c93a4c11) )
4355 	ROM_LOAD16_BYTE( "b58-19.19", 0x00001, 0x20000, CRC(40f43da3) SHA1(bb3d6c6db8df77674bb76c16992d05c297d97c9f) )
4356 
4357 	ROM_REGION( 0x40000, "sub", 0 ) /* 256K for 68000 code (CPU B) */
4358 	ROM_LOAD16_BYTE( "b58-16.26", 0x00000, 0x20000, CRC(e823c85c) SHA1(199b19e81c76eb936f4cf31957ae08bed1395bda) )
4359 	ROM_LOAD16_BYTE( "b58-18.18", 0x00001, 0x20000, CRC(65328a3e) SHA1(f51ca107910629e030678e183cc8fd06d2569098) )
4360 
4361 	ROM_REGION( 0x10000, "audiocpu", 0 )    /* Z80 sound cpu */
4362 	ROM_LOAD( "b58-32.41",   0x00000, 0x10000, CRC(f3fd8eca) SHA1(3b1ab64984ea43805b6494f8add26210ed1175c5) )
4363 
4364 	ROM_REGION( 0x80000, "tc0100scn", 0 )
4365 	ROM_LOAD16_WORD_SWAP( "b58-09.13", 0x00000, 0x80000, CRC(9ffd5b31) SHA1(0214fb32012a48560ca9c6ed5ee969d3c41cf95c) ) /* SCR 8x8 */
4366 
4367 	ROM_REGION( 0x200000, "sprites", 0 )
4368 	ROM_LOAD64_WORD_SWAP( "b58-04.7",  0x000000, 0x080000, CRC(9482f08d) SHA1(3fc74b9bebca1d82b300ba72c7297c3bcd69cfa9) )
4369 	ROM_LOAD64_WORD_SWAP( "b58-03.6",  0x000002, 0x080000, CRC(158bc440) SHA1(ceab296146363a2e9a48f62118fba6123b4b5a1b) )    /* OBJ 16x8 */
4370 	ROM_LOAD64_WORD_SWAP( "b58-02.2",  0x000004, 0x080000, CRC(6a6e307c) SHA1(fc4a68220e0dd0e64d75ba7c7af0c1ac97dc7fd9) )
4371 	ROM_LOAD64_WORD_SWAP( "b58-01.1",  0x000006, 0x080000, CRC(01e9f0a8) SHA1(0d3a4dc81702e3c57c790eb8a45caca36cb47d4c) )
4372 
4373 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
4374 	ROM_LOAD16_WORD( "b58-06.116", 0x00000, 0x80000, CRC(b3495d70) SHA1(ead4c2fd20b8f103a849201c7344cded013eb8bb) )    /* ROD, road lines */
4375 
4376 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
4377 	ROM_LOAD16_WORD( "b58-05.71", 0x00000, 0x80000, CRC(d1f4991b) SHA1(f1c5a9b8dce994d013290e98fda7bedf73e95900) )  /* STY spritemap */
4378 
4379 	ROM_REGION( 0x100000, "ymsnd", 0 )  /* ADPCM samples */
4380 	ROM_LOAD( "b58-07.11", 0x000000, 0x080000, CRC(eeb5ba08) SHA1(fe40333e09339c76e503ce87b42a89b48d487016) )
4381 	ROM_LOAD( "b58-08.12", 0x080000, 0x080000, CRC(049243cf) SHA1(1f3099b6d764114dc4161ed308369d0f3148dc4e) )
4382 
4383 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples ??? */
4384 	ROM_LOAD( "b58-10.14", 0x00000, 0x80000, CRC(edce0cc1) SHA1(1f6cbc60502b8b12b349e48446ce3a4a1f76bccd) ) /* ??? */
4385 
4386 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
4387 	ROM_LOAD( "b58-26.104", 0x00000, 0x10000, CRC(dccb0c7f) SHA1(42f0af72f559133b74912a4478e1323062be4b77) )    // sprite vertical zoom
4388 	ROM_LOAD( "b58-27.56",  0x00000, 0x02000, CRC(5c6b013d) SHA1(6d02d4560076213b6fb6fe856143bb533090603e) )    // sprite horizontal zoom
4389 	ROM_LOAD( "b58-23.52",  0x00000, 0x00100, CRC(7b7d8ff4) SHA1(18842ed8160739cd2e2ccc2db605153dbed6cc0a) )    // road/sprite priority and palette select
4390 	ROM_LOAD( "b58-24.51",  0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )    // road A/B internal priority
4391 	ROM_LOAD( "b58-25.75",  0x00000, 0x00100, CRC(de547342) SHA1(3b2b116d4016ddbf46c41c625c7fcfd76129baa7) )
4392 // Add pals...
4393 ROM_END
4394 
4395 ROM_START( enforceja )
4396 	ROM_REGION( 0x40000, "maincpu", 0 ) /* 256K for 68000 code (CPU A) */
4397 	ROM_LOAD16_BYTE( "b58-31.27", 0x00000, 0x20000, CRC(d686e371) SHA1(d2db6c093cec8211c2be1b78d7815aeef5d91fca) )
4398 	ROM_LOAD16_BYTE( "b58-30.19", 0x00001, 0x20000, CRC(cd73c0d8) SHA1(8e1e95272f11b3be7b896e06baf1d3efa9b4c8c7) )
4399 
4400 	ROM_REGION( 0x40000, "sub", 0 ) /* 256K for 68000 code (CPU B) */
4401 	ROM_LOAD16_BYTE( "b58-29.26", 0x00000, 0x20000, CRC(8482a4e4) SHA1(32c4dd66b2062c62830c2ca2abbd3e23f1883de9) )
4402 	ROM_LOAD16_BYTE( "b58-28.18", 0x00001, 0x20000, CRC(9735e2b1) SHA1(21e718a1a3d005d022b4aaab2da8350767f72a65) )
4403 
4404 	ROM_REGION( 0x10000, "audiocpu", 0 )    /* Z80 sound cpu */
4405 	ROM_LOAD( "b58-32.41",   0x00000, 0x10000, CRC(f3fd8eca) SHA1(3b1ab64984ea43805b6494f8add26210ed1175c5) )
4406 
4407 	ROM_REGION( 0x80000, "tc0100scn", 0 )
4408 	ROM_LOAD16_WORD_SWAP( "b58-09.13", 0x00000, 0x80000, CRC(9ffd5b31) SHA1(0214fb32012a48560ca9c6ed5ee969d3c41cf95c) ) /* SCR 8x8 */
4409 
4410 	ROM_REGION( 0x200000, "sprites", 0 )
4411 	ROM_LOAD64_WORD_SWAP( "b58-04.7",  0x000000, 0x080000, CRC(9482f08d) SHA1(3fc74b9bebca1d82b300ba72c7297c3bcd69cfa9) )
4412 	ROM_LOAD64_WORD_SWAP( "b58-03.6",  0x000002, 0x080000, CRC(158bc440) SHA1(ceab296146363a2e9a48f62118fba6123b4b5a1b) )    /* OBJ 16x8 */
4413 	ROM_LOAD64_WORD_SWAP( "b58-02.2",  0x000004, 0x080000, CRC(6a6e307c) SHA1(fc4a68220e0dd0e64d75ba7c7af0c1ac97dc7fd9) )
4414 	ROM_LOAD64_WORD_SWAP( "b58-01.1",  0x000006, 0x080000, CRC(01e9f0a8) SHA1(0d3a4dc81702e3c57c790eb8a45caca36cb47d4c) )
4415 
4416 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
4417 	ROM_LOAD16_WORD( "b58-06.116", 0x00000, 0x80000, CRC(b3495d70) SHA1(ead4c2fd20b8f103a849201c7344cded013eb8bb) )    /* ROD, road lines */
4418 
4419 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
4420 	ROM_LOAD16_WORD( "b58-05.71", 0x00000, 0x80000, CRC(d1f4991b) SHA1(f1c5a9b8dce994d013290e98fda7bedf73e95900) )  /* STY spritemap */
4421 
4422 	ROM_REGION( 0x100000, "ymsnd", 0 )  /* ADPCM samples */
4423 	ROM_LOAD( "b58-07.11", 0x000000, 0x080000, CRC(eeb5ba08) SHA1(fe40333e09339c76e503ce87b42a89b48d487016) )
4424 	ROM_LOAD( "b58-08.12", 0x080000, 0x080000, CRC(049243cf) SHA1(1f3099b6d764114dc4161ed308369d0f3148dc4e) )
4425 
4426 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples ??? */
4427 	ROM_LOAD( "b58-10.14", 0x00000, 0x80000, CRC(edce0cc1) SHA1(1f6cbc60502b8b12b349e48446ce3a4a1f76bccd) ) /* ??? */
4428 
4429 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
4430 	ROM_LOAD( "b58-26.104", 0x00000, 0x10000, CRC(dccb0c7f) SHA1(42f0af72f559133b74912a4478e1323062be4b77) )    // sprite vertical zoom
4431 	ROM_LOAD( "b58-27.56",  0x00000, 0x02000, CRC(5c6b013d) SHA1(6d02d4560076213b6fb6fe856143bb533090603e) )    // sprite horizontal zoom
4432 	ROM_LOAD( "b58-23.52",  0x00000, 0x00100, CRC(7b7d8ff4) SHA1(18842ed8160739cd2e2ccc2db605153dbed6cc0a) )    // road/sprite priority and palette select
4433 	ROM_LOAD( "b58-24.51",  0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )    // road A/B internal priority
4434 	ROM_LOAD( "b58-25.75",  0x00000, 0x00100, CRC(de547342) SHA1(3b2b116d4016ddbf46c41c625c7fcfd76129baa7) )
4435 // Add pals...
4436 ROM_END
4437 
4438 ROM_START( bshark )
4439 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
4440 	ROM_LOAD16_BYTE( "c34_71.98", 0x00000, 0x20000, CRC(df1fa629) SHA1(6cb207e577fac85da654f3dc56e2f9f25c38a76d) )
4441 	ROM_LOAD16_BYTE( "c34_69.75", 0x00001, 0x20000, CRC(a54c137a) SHA1(632bf2d65f54035de2ecb87648dafa877c45e428) )
4442 	ROM_LOAD16_BYTE( "c34_70.97", 0x40000, 0x20000, CRC(d77d81e2) SHA1(d60e586cefd9001e87cae583ca25bf5a8a461d8d) )
4443 	ROM_LOAD16_BYTE( "c34_68.74", 0x40001, 0x20000, CRC(4e374ce2) SHA1(bf0436d40cfed75dcbd3e40a7c6aa45eeff6666e) )
4444 
4445 	ROM_REGION( 0x80000, "sub", 0 ) /* 512K for 68000 code (CPU B) */
4446 	ROM_LOAD16_BYTE( "c34_74.128", 0x00000, 0x20000, CRC(6869fa99) SHA1(16221f25c865a81ca4f6a987b6de02a3ccf3208c) )
4447 	ROM_LOAD16_BYTE( "c34_72.112", 0x00001, 0x20000, CRC(c09c0f91) SHA1(32c78924617328abb11c094f89a90a92e72ed5e6) )
4448 	ROM_LOAD16_BYTE( "c34_75.129", 0x40000, 0x20000, CRC(6ba65542) SHA1(9ba5af9dd240a198dfa760ca14b0f0c84eb307c9) )
4449 	ROM_LOAD16_BYTE( "c34_73.113", 0x40001, 0x20000, CRC(f2fe62b5) SHA1(e31b5989b747de451ee6c2a5e15ec75235d84e0d) )
4450 
4451 	ROM_REGION( 0x80000, "tc0100scn", 0 )
4452 	ROM_LOAD16_WORD_SWAP( "c34_05.3", 0x00000, 0x80000, CRC(596b83da) SHA1(826cf1e48a017a0cbfcc4a4f507dfb285594178b) )  /* SCR 8x8 */
4453 
4454 	ROM_REGION( 0x200000, "sprites", 0 )
4455 	ROM_LOAD64_WORD_SWAP( "c34_04.17", 0x000000, 0x080000, CRC(2446b0da) SHA1(bce5c73533e2bb7dfa7f18fad510f818cf1a542a) )    /* OBJ 16x8 */
4456 	ROM_LOAD64_WORD_SWAP( "c34_03.16", 0x000002, 0x080000, CRC(a18eab78) SHA1(155f0efbfe73e18355804477d4b8954bb47bf1ef) )
4457 	ROM_LOAD64_WORD_SWAP( "c34_02.15", 0x000004, 0x080000, CRC(8488ba10) SHA1(60f8f0dc9d4bc6bc452527250221c9915e9dfe6e) )
4458 	ROM_LOAD64_WORD_SWAP( "c34_01.14", 0x000006, 0x080000, CRC(3ebe8c63) SHA1(fa7403bf895c041cb64234209c944683ae372e57) )
4459 
4460 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
4461 	ROM_LOAD16_WORD( "c34_07.42", 0x00000, 0x80000, CRC(edb07808) SHA1(f32b4b93e9125536376d96fbca76c2b2f5f78656) ) /* ROD, road lines */
4462 
4463 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
4464 	ROM_LOAD16_WORD( "c34_06.12", 0x00000, 0x80000, CRC(d200b6eb) SHA1(6bfe3a7dde8d4e983521877d2bb176f5d126b763) )  /* STY spritemap */
4465 
4466 	ROM_REGION( 0x80000, "ymsnd", 0 )   /* ADPCM samples */
4467 	ROM_LOAD( "c34_08.127", 0x00000, 0x80000, CRC(89a30450) SHA1(96b96ca5a3e20cdceb9ac5ddf377fb21a9a529fb) )
4468 
4469 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
4470 	ROM_LOAD( "c34_09.126", 0x00000, 0x80000, CRC(39d12b50) SHA1(5c5d1369597604376943e4825f6c09cc28d66047) )
4471 
4472 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
4473 	ROM_LOAD( "c34_18.22", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) )
4474 	ROM_LOAD( "c34_19.72", 0x00000, 0x00100, CRC(2ee9c404) SHA1(3a2ddaaaf7abe9f47f7e062b002fd3a61c80f60b) ) // road/sprite priority and palette select
4475 	ROM_LOAD( "c34_20.89", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // road A/B internal priority
4476 	ROM_LOAD( "c34_21.7",  0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) )
4477 	ROM_LOAD( "c34_22.8",  0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) )
4478 ROM_END
4479 
4480 ROM_START( bsharku )
4481 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
4482 	ROM_LOAD16_BYTE( "c34_71.98", 0x00000, 0x20000, CRC(df1fa629) SHA1(6cb207e577fac85da654f3dc56e2f9f25c38a76d) )
4483 	ROM_LOAD16_BYTE( "c34_69.75", 0x00001, 0x20000, CRC(a54c137a) SHA1(632bf2d65f54035de2ecb87648dafa877c45e428) )
4484 	ROM_LOAD16_BYTE( "c34_70.97", 0x40000, 0x20000, CRC(d77d81e2) SHA1(d60e586cefd9001e87cae583ca25bf5a8a461d8d) )
4485 	ROM_LOAD16_BYTE( "c34_67.74", 0x40001, 0x20000, CRC(39307c74) SHA1(65d1cb6b0baee29c1439180b8b4c6907e20b2921) )
4486 
4487 	ROM_REGION( 0x80000, "sub", 0 ) /* 512K for 68000 code (CPU B) */
4488 	ROM_LOAD16_BYTE( "c34_74.128", 0x00000, 0x20000, CRC(6869fa99) SHA1(16221f25c865a81ca4f6a987b6de02a3ccf3208c) )
4489 	ROM_LOAD16_BYTE( "c34_72.112", 0x00001, 0x20000, CRC(c09c0f91) SHA1(32c78924617328abb11c094f89a90a92e72ed5e6) )
4490 	ROM_LOAD16_BYTE( "c34_75.129", 0x40000, 0x20000, CRC(6ba65542) SHA1(9ba5af9dd240a198dfa760ca14b0f0c84eb307c9) )
4491 	ROM_LOAD16_BYTE( "c34_73.113", 0x40001, 0x20000, CRC(f2fe62b5) SHA1(e31b5989b747de451ee6c2a5e15ec75235d84e0d) )
4492 
4493 	ROM_REGION( 0x80000, "tc0100scn", 0 )
4494 	ROM_LOAD16_WORD_SWAP( "c34_05.3", 0x00000, 0x80000, CRC(596b83da) SHA1(826cf1e48a017a0cbfcc4a4f507dfb285594178b) )  /* SCR 8x8 */
4495 
4496 	ROM_REGION( 0x200000, "sprites", 0 )
4497 	ROM_LOAD64_WORD_SWAP( "c34_04.17", 0x000000, 0x080000, CRC(2446b0da) SHA1(bce5c73533e2bb7dfa7f18fad510f818cf1a542a) )    /* OBJ 16x8 */
4498 	ROM_LOAD64_WORD_SWAP( "c34_03.16", 0x000002, 0x080000, CRC(a18eab78) SHA1(155f0efbfe73e18355804477d4b8954bb47bf1ef) )
4499 	ROM_LOAD64_WORD_SWAP( "c34_02.15", 0x000004, 0x080000, CRC(8488ba10) SHA1(60f8f0dc9d4bc6bc452527250221c9915e9dfe6e) )
4500 	ROM_LOAD64_WORD_SWAP( "c34_01.14", 0x000006, 0x080000, CRC(3ebe8c63) SHA1(fa7403bf895c041cb64234209c944683ae372e57) )
4501 
4502 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
4503 	ROM_LOAD16_WORD( "c34_07.42", 0x00000, 0x80000, CRC(edb07808) SHA1(f32b4b93e9125536376d96fbca76c2b2f5f78656) ) /* ROD, road lines */
4504 
4505 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
4506 	ROM_LOAD16_WORD( "c34_06.12", 0x00000, 0x80000, CRC(d200b6eb) SHA1(6bfe3a7dde8d4e983521877d2bb176f5d126b763) )  /* STY spritemap */
4507 
4508 	ROM_REGION( 0x80000, "ymsnd", 0 )   /* ADPCM samples */
4509 	ROM_LOAD( "c34_08.127", 0x00000, 0x80000, CRC(89a30450) SHA1(96b96ca5a3e20cdceb9ac5ddf377fb21a9a529fb) )
4510 
4511 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
4512 	ROM_LOAD( "c34_09.126", 0x00000, 0x80000, CRC(39d12b50) SHA1(5c5d1369597604376943e4825f6c09cc28d66047) )
4513 
4514 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
4515 	ROM_LOAD( "c34_18.22", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) )
4516 	ROM_LOAD( "c34_19.72", 0x00000, 0x00100, CRC(2ee9c404) SHA1(3a2ddaaaf7abe9f47f7e062b002fd3a61c80f60b) ) // road/sprite priority and palette select
4517 	ROM_LOAD( "c34_20.89", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // road A/B internal priority
4518 	ROM_LOAD( "c34_21.7",  0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) )
4519 	ROM_LOAD( "c34_22.8",  0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) )
4520 ROM_END
4521 
4522 ROM_START( bsharkj )
4523 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
4524 	ROM_LOAD16_BYTE( "c34_71.98", 0x00000, 0x20000, CRC(df1fa629) SHA1(6cb207e577fac85da654f3dc56e2f9f25c38a76d) )
4525 	ROM_LOAD16_BYTE( "c34_69.75", 0x00001, 0x20000, CRC(a54c137a) SHA1(632bf2d65f54035de2ecb87648dafa877c45e428) )
4526 	ROM_LOAD16_BYTE( "c34_70.97", 0x40000, 0x20000, CRC(d77d81e2) SHA1(d60e586cefd9001e87cae583ca25bf5a8a461d8d) )
4527 	ROM_LOAD16_BYTE( "c34_66.74", 0x40001, 0x20000, CRC(a0392dce) SHA1(5d20f39b75e921fda82c33990463cec73879d113) )
4528 
4529 	ROM_REGION( 0x80000, "sub", 0 ) /* 512K for 68000 code (CPU B) */
4530 	ROM_LOAD16_BYTE( "c34_74.128", 0x00000, 0x20000, CRC(6869fa99) SHA1(16221f25c865a81ca4f6a987b6de02a3ccf3208c) )
4531 	ROM_LOAD16_BYTE( "c34_72.112", 0x00001, 0x20000, CRC(c09c0f91) SHA1(32c78924617328abb11c094f89a90a92e72ed5e6) )
4532 	ROM_LOAD16_BYTE( "c34_75.129", 0x40000, 0x20000, CRC(6ba65542) SHA1(9ba5af9dd240a198dfa760ca14b0f0c84eb307c9) )
4533 	ROM_LOAD16_BYTE( "c34_73.113", 0x40001, 0x20000, CRC(f2fe62b5) SHA1(e31b5989b747de451ee6c2a5e15ec75235d84e0d) )
4534 
4535 	ROM_REGION( 0x80000, "tc0100scn", 0 )
4536 	ROM_LOAD16_WORD_SWAP( "c34_05.3", 0x00000, 0x80000, CRC(596b83da) SHA1(826cf1e48a017a0cbfcc4a4f507dfb285594178b) )  /* SCR 8x8 */
4537 
4538 	ROM_REGION( 0x200000, "sprites", 0 )
4539 	ROM_LOAD64_WORD_SWAP( "c34_04.17", 0x000000, 0x080000, CRC(2446b0da) SHA1(bce5c73533e2bb7dfa7f18fad510f818cf1a542a) )    /* OBJ 16x8 */
4540 	ROM_LOAD64_WORD_SWAP( "c34_03.16", 0x000002, 0x080000, CRC(a18eab78) SHA1(155f0efbfe73e18355804477d4b8954bb47bf1ef) )
4541 	ROM_LOAD64_WORD_SWAP( "c34_02.15", 0x000004, 0x080000, CRC(8488ba10) SHA1(60f8f0dc9d4bc6bc452527250221c9915e9dfe6e) )
4542 	ROM_LOAD64_WORD_SWAP( "c34_01.14", 0x000006, 0x080000, CRC(3ebe8c63) SHA1(fa7403bf895c041cb64234209c944683ae372e57) )
4543 
4544 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
4545 	ROM_LOAD16_WORD( "c34_07.42", 0x00000, 0x80000, CRC(edb07808) SHA1(f32b4b93e9125536376d96fbca76c2b2f5f78656) ) /* ROD, road lines */
4546 
4547 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
4548 	ROM_LOAD16_WORD( "c34_06.12", 0x00000, 0x80000, CRC(d200b6eb) SHA1(6bfe3a7dde8d4e983521877d2bb176f5d126b763) )  /* STY spritemap */
4549 
4550 	ROM_REGION( 0x80000, "ymsnd", 0 )   /* ADPCM samples */
4551 	ROM_LOAD( "c34_08.127", 0x00000, 0x80000, CRC(89a30450) SHA1(96b96ca5a3e20cdceb9ac5ddf377fb21a9a529fb) )
4552 
4553 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
4554 	ROM_LOAD( "c34_09.126", 0x00000, 0x80000, CRC(39d12b50) SHA1(5c5d1369597604376943e4825f6c09cc28d66047) )
4555 
4556 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
4557 	ROM_LOAD( "c34_18.22", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) )
4558 	ROM_LOAD( "c34_19.72", 0x00000, 0x00100, CRC(2ee9c404) SHA1(3a2ddaaaf7abe9f47f7e062b002fd3a61c80f60b) ) // road/sprite priority and palette select
4559 	ROM_LOAD( "c34_20.89", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // road A/B internal priority
4560 	ROM_LOAD( "c34_21.7",  0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) )
4561 	ROM_LOAD( "c34_22.8",  0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) )
4562 ROM_END
4563 
4564 ROM_START( bsharkjjs )
4565 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
4566 	ROM_LOAD16_BYTE( "c34_79.98", 0x00000, 0x20000, CRC(bc3f2e93) SHA1(a03778fb8c8fb91956005cab0f2050262bc8f306) )
4567 	ROM_LOAD16_BYTE( "c34_77.75", 0x00001, 0x20000, CRC(917916d0) SHA1(86db550737a20fd5aa2862f7a6be0d47da5fc74e) )
4568 	ROM_LOAD16_BYTE( "c34_78.97", 0x40000, 0x20000, CRC(f2fcc880) SHA1(6d8530056bd2e0e54061d95048b3b5e0b1eb76ef) )
4569 	ROM_LOAD16_BYTE( "c34_76.74", 0x40001, 0x20000, CRC(de97fac0) SHA1(53baf70bbf0102ff965921330e2d7a918318acff) )
4570 
4571 	ROM_REGION( 0x80000, "sub", 0 ) /* 512K for 68000 code (CPU B) */
4572 	ROM_LOAD16_BYTE( "c34_82.128", 0x00000, 0x20000, CRC(6869fa99) SHA1(16221f25c865a81ca4f6a987b6de02a3ccf3208c) )
4573 	ROM_LOAD16_BYTE( "c34_80.112", 0x00001, 0x20000, CRC(e1783eb4) SHA1(02aaaf117f258625052734064692d2c1679b80b6) )
4574 	ROM_LOAD16_BYTE( "c34_83.129", 0x40000, 0x20000, CRC(eec0b364) SHA1(17010b19570ee65020ae09e5734b48a763a12e3f) )
4575 	ROM_LOAD16_BYTE( "c34_81.113", 0x40001, 0x20000, CRC(23ce6bcf) SHA1(b084209f809793d8f0f11ddabee217ba1abd6038) )
4576 
4577 	ROM_REGION( 0x80000, "tc0100scn", 0 )
4578 	ROM_LOAD16_WORD_SWAP( "c34_05.3", 0x00000, 0x80000, CRC(596b83da) SHA1(826cf1e48a017a0cbfcc4a4f507dfb285594178b) )  /* SCR 8x8 */
4579 
4580 	ROM_REGION( 0x200000, "sprites", 0 )
4581 	ROM_LOAD64_WORD_SWAP( "c34_04.17", 0x000000, 0x080000, CRC(2446b0da) SHA1(bce5c73533e2bb7dfa7f18fad510f818cf1a542a) )    /* OBJ 16x8 */
4582 	ROM_LOAD64_WORD_SWAP( "c34_03.16", 0x000002, 0x080000, CRC(a18eab78) SHA1(155f0efbfe73e18355804477d4b8954bb47bf1ef) )
4583 	ROM_LOAD64_WORD_SWAP( "c34_02.15", 0x000004, 0x080000, CRC(8488ba10) SHA1(60f8f0dc9d4bc6bc452527250221c9915e9dfe6e) )
4584 	ROM_LOAD64_WORD_SWAP( "c34_01.14", 0x000006, 0x080000, CRC(3ebe8c63) SHA1(fa7403bf895c041cb64234209c944683ae372e57) )
4585 
4586 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
4587 	ROM_LOAD16_WORD( "c34_07.42", 0x00000, 0x80000, CRC(edb07808) SHA1(f32b4b93e9125536376d96fbca76c2b2f5f78656) ) /* ROD, road lines */
4588 
4589 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
4590 	ROM_LOAD16_WORD( "c34_06.12", 0x00000, 0x80000, CRC(d200b6eb) SHA1(6bfe3a7dde8d4e983521877d2bb176f5d126b763) )  /* STY spritemap */
4591 
4592 	ROM_REGION( 0x80000, "ymsnd", 0 )   /* ADPCM samples */
4593 	ROM_LOAD( "c34_08.127", 0x00000, 0x80000, CRC(89a30450) SHA1(96b96ca5a3e20cdceb9ac5ddf377fb21a9a529fb) )
4594 
4595 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
4596 	ROM_LOAD( "c34_09.126", 0x00000, 0x80000, CRC(39d12b50) SHA1(5c5d1369597604376943e4825f6c09cc28d66047) )
4597 
4598 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
4599 	ROM_LOAD( "c34_18.22", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) )
4600 	ROM_LOAD( "c34_19.72", 0x00000, 0x00100, CRC(2ee9c404) SHA1(3a2ddaaaf7abe9f47f7e062b002fd3a61c80f60b) ) // road/sprite priority and palette select
4601 	ROM_LOAD( "c34_20.89", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // road A/B internal priority
4602 	ROM_LOAD( "c34_21.7",  0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) )
4603 	ROM_LOAD( "c34_22.8",  0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) )
4604 ROM_END
4605 
4606 ROM_START( sci )
4607 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
4608 	ROM_LOAD16_BYTE( "c09-37.43", 0x00000, 0x20000, CRC(0fecea17) SHA1(0ad4454eee6646b0f978b1ba83206d64c1f6d081) )
4609 	ROM_LOAD16_BYTE( "c09-38.40", 0x00001, 0x20000, CRC(e46ebd9b) SHA1(52b0c1f95e8a664076d8fbc0f6204ca55893e281) )
4610 	ROM_LOAD16_BYTE( "c09-42.38", 0x40000, 0x20000, CRC(f4404f87) SHA1(8f051f1ffbf323cb3d613bc22afa53676590f29c) )
4611 	ROM_LOAD16_BYTE( "c09-39.41", 0x40001, 0x20000, CRC(de87bcb9) SHA1(b5537a25871ea90294f3b6f0b6386a883cfdf991) )
4612 
4613 	ROM_REGION( 0x20000, "sub", 0 ) /* 128K for 68000 code (CPU B) */
4614 	ROM_LOAD16_BYTE( "c09-33.6", 0x00000, 0x10000, CRC(cf4e6c5b) SHA1(8d6720b605b8e0c7f0473ba452c79bf5efc2615d) ) /* Actual label is "C09 33*" */
4615 	ROM_LOAD16_BYTE( "c09-32.5", 0x00001, 0x10000, CRC(a4713719) SHA1(b1110e397d3407ec63975cdd92a23cbb16348200) ) /* Actual label is "C09 32*" */
4616 
4617 	ROM_REGION( 0x20000, "audiocpu", 0 )    /* Z80 sound cpu */
4618 	ROM_LOAD( "c09-34.31",   0x00000, 0x20000, CRC(a21b3151) SHA1(f59c7b1ba5edf97d72670ee194ce9fdc5c5b9a58) )
4619 
4620 	ROM_REGION( 0x80000, "tc0100scn", 0 )
4621 	ROM_LOAD16_WORD_SWAP( "c09-05.16", 0x00000, 0x80000, CRC(890b38f0) SHA1(b478c96214ce027926346a4653250c8ee8a98bdc) ) /* SCR 8x8 */
4622 
4623 	ROM_REGION( 0x200000, "sprites", 0 )
4624 	ROM_LOAD64_WORD_SWAP( "c09-04.52", 0x000000, 0x080000, CRC(2cbb3c9b) SHA1(9e3d95f76f5f5d385b6a9516af781aefef1eb0ca) )    /* OBJ 16x8 */
4625 	ROM_LOAD64_WORD_SWAP( "c09-02.53", 0x000002, 0x080000, CRC(a83a0389) SHA1(932788b5b5f01326d0fbb2b9fdb94a8c7c004db3) )
4626 	ROM_LOAD64_WORD_SWAP( "c09-03.54", 0x000004, 0x080000, CRC(a31d0e80) SHA1(dfeff1b89dd7b3f19b26e77f2d66f6448cb00553) )
4627 	ROM_LOAD64_WORD_SWAP( "c09-01.55", 0x000006, 0x080000, CRC(64bfea10) SHA1(15ea43092027b1717d0f24fbe6ac2cdf11a7ddc6) )
4628 
4629 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
4630 	ROM_LOAD16_WORD( "c09-07.15", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */
4631 
4632 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
4633 	ROM_LOAD16_WORD( "c09-06.37", 0x00000, 0x80000, CRC(12df6d7b) SHA1(8ce742eb3f7eb6283b5ca32bb520d1cc7684d515) )  /* STY spritemap */
4634 
4635 	ROM_REGION( 0x180000, "ymsnd", 0 )  /* ADPCM samples */
4636 	ROM_LOAD( "c09-14.42", 0x000000, 0x080000, CRC(ad78bf46) SHA1(4020744bbdc4b9ec3dee1a9d7b5ffa8def43d7b2) )
4637 	ROM_LOAD( "c09-13.43", 0x080000, 0x080000, CRC(d57c41d3) SHA1(3375a1fc6389840544b9fdb96b2fafbc8e3276e2) )
4638 	ROM_LOAD( "c09-12.44", 0x100000, 0x080000, CRC(56c99fa5) SHA1(3f9a6bc89d847cc4c99d35f98157ea3f187c0f98) )
4639 
4640 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
4641 	ROM_LOAD( "c09-15.29", 0x00000, 0x80000, CRC(e63b9095) SHA1(c6ea670b5a90ab39429259ec1fefb2bde5d0213f) )
4642 
4643 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
4644 	ROM_LOAD( "c09-16.17", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) )
4645 	ROM_LOAD( "c09-17.24", 0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) ) // same data also found on Racing Beat, Double Axle & Battle Shark
4646 	ROM_LOAD( "c09-18.25", 0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) ) // same data also found on Racing Beat, Double Axle & Battle Shark
4647 	ROM_LOAD( "c09-20.71", 0x00000, 0x00100, CRC(cd8ffd80) SHA1(133bcd291a3751bce5293cb6b685f87258e8db19) ) // road/sprite priority and palette select
4648 	ROM_LOAD( "c09-23.14", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // road A/B internal priority
4649 	ROM_LOAD( "c09-19_pal16l8b.ic67", 0x00000, 0x00104, CRC(a0608442) SHA1(bcda5ef6582e82b2b369c24474bb14bd29e5d537) ) // MMI PAL16L8B
4650 	ROM_LOAD( "c09-21_pal20l8b.ic2",  0x00000, 0x00144, CRC(583f9214) SHA1(1a5f3e9619bf6ba95f92ce9d12917014db8853a1) ) // MMI PAL20L8B
4651 	ROM_LOAD( "c09-22_pal16l8b.ic3",  0x00000, 0x00104, CRC(b506d7a7) SHA1(603eb14d2703b94ae80894daa7f9f25890b7918c) ) // MMI PAL16L8B
4652 	ROM_LOAD( "c09-24_pal20l8b.ic22", 0x00000, 0x00144, CRC(2ff83694) SHA1(c6594b1cfd3958d9b4ddb8d68d506929cfa0a759) ) // MMI PAL20L8B
4653 	ROM_LOAD( "c09-25_pal20l8b.ic25", 0x00000, 0x00144, CRC(c69bf3fc) SHA1(83f1cc9f475aed47e969b77059f3332ef5068981) ) // MMI PAL20L8B
4654 	ROM_LOAD( "c09-26_pal16l8b.ic26", 0x00000, 0x00104, CRC(36a8eb27) SHA1(8ec25c860e6568a3d1a7e7a8ed6a6397f135455c) ) // MMI PAL16L8B
4655 ROM_END
4656 
4657 ROM_START( scia )
4658 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
4659 	ROM_LOAD16_BYTE( "c09-28.43",  0x00000, 0x20000, CRC(630dbaad) SHA1(090f6a97007ac04f64d92ae5823b7254152144af) )
4660 	ROM_LOAD16_BYTE( "c09-30.40",  0x00001, 0x20000, CRC(68b1a97d) SHA1(c377f7880154b38fe25dc0ec420ca0cd7228fbad) )
4661 	ROM_LOAD16_BYTE( "c09-36.38",  0x40000, 0x20000, CRC(59e47cba) SHA1(313302bc62ff02b437b1091d394d2010ce66c7e7) )
4662 	ROM_LOAD16_BYTE( "c09-31.41",  0x40001, 0x20000, CRC(962b1fbf) SHA1(62181a289dfc6d1da674ba4bcbefeb16a67a55e3) )
4663 
4664 	ROM_REGION( 0x20000, "sub", 0 ) /* 128K for 68000 code (CPU B) */
4665 	ROM_LOAD16_BYTE( "c09-33.6", 0x00000, 0x10000, CRC(cf4e6c5b) SHA1(8d6720b605b8e0c7f0473ba452c79bf5efc2615d) ) /* Actual label is "C09 33*" */
4666 	ROM_LOAD16_BYTE( "c09-32.5", 0x00001, 0x10000, CRC(a4713719) SHA1(b1110e397d3407ec63975cdd92a23cbb16348200) ) /* Actual label is "C09 32*" */
4667 
4668 	ROM_REGION( 0x20000, "audiocpu", 0 )    /* Z80 sound cpu */
4669 	ROM_LOAD( "c09-34.31",   0x00000, 0x20000, CRC(a21b3151) SHA1(f59c7b1ba5edf97d72670ee194ce9fdc5c5b9a58) )
4670 
4671 	ROM_REGION( 0x80000, "tc0100scn", 0 )
4672 	ROM_LOAD16_WORD_SWAP( "c09-05.16", 0x00000, 0x80000, CRC(890b38f0) SHA1(b478c96214ce027926346a4653250c8ee8a98bdc) ) /* SCR 8x8 */
4673 
4674 	ROM_REGION( 0x200000, "sprites", 0 )
4675 	ROM_LOAD64_WORD_SWAP( "c09-04.52", 0x000000, 0x080000, CRC(2cbb3c9b) SHA1(9e3d95f76f5f5d385b6a9516af781aefef1eb0ca) )    /* OBJ 16x8 */
4676 	ROM_LOAD64_WORD_SWAP( "c09-02.53", 0x000002, 0x080000, CRC(a83a0389) SHA1(932788b5b5f01326d0fbb2b9fdb94a8c7c004db3) )
4677 	ROM_LOAD64_WORD_SWAP( "c09-03.54", 0x000004, 0x080000, CRC(a31d0e80) SHA1(dfeff1b89dd7b3f19b26e77f2d66f6448cb00553) )
4678 	ROM_LOAD64_WORD_SWAP( "c09-01.55", 0x000006, 0x080000, CRC(64bfea10) SHA1(15ea43092027b1717d0f24fbe6ac2cdf11a7ddc6) )
4679 
4680 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
4681 	ROM_LOAD16_WORD( "c09-07.15", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */
4682 
4683 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
4684 	ROM_LOAD16_WORD( "c09-06.37", 0x00000, 0x80000, CRC(12df6d7b) SHA1(8ce742eb3f7eb6283b5ca32bb520d1cc7684d515) )  /* STY spritemap */
4685 
4686 	ROM_REGION( 0x180000, "ymsnd", 0 )  /* ADPCM samples */
4687 	ROM_LOAD( "c09-14.42", 0x000000, 0x080000, CRC(ad78bf46) SHA1(4020744bbdc4b9ec3dee1a9d7b5ffa8def43d7b2) )
4688 	ROM_LOAD( "c09-13.43", 0x080000, 0x080000, CRC(d57c41d3) SHA1(3375a1fc6389840544b9fdb96b2fafbc8e3276e2) )
4689 	ROM_LOAD( "c09-12.44", 0x100000, 0x080000, CRC(56c99fa5) SHA1(3f9a6bc89d847cc4c99d35f98157ea3f187c0f98) )
4690 
4691 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
4692 	ROM_LOAD( "c09-15.29", 0x00000, 0x80000, CRC(e63b9095) SHA1(c6ea670b5a90ab39429259ec1fefb2bde5d0213f) )
4693 
4694 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
4695 	ROM_LOAD( "c09-16.17", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) )
4696 	ROM_LOAD( "c09-17.24", 0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) ) // AMD AM27S33 BPROM - same data also found on Racing Beat, Double Axle & Battle Shark
4697 	ROM_LOAD( "c09-18.25", 0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) ) // AMD AM27S33 BPROM - same data also found on Racing Beat, Double Axle & Battle Shark
4698 	ROM_LOAD( "c09-20.71", 0x00000, 0x00100, CRC(cd8ffd80) SHA1(133bcd291a3751bce5293cb6b685f87258e8db19) ) // AMD AM27S21 BPROM - road/sprite priority and palette select
4699 	ROM_LOAD( "c09-23.14", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // AMD AM27S21 BPROM - road A/B internal priority
4700 	ROM_LOAD( "c09-19_pal16l8b.ic67", 0x00000, 0x00104, CRC(a0608442) SHA1(bcda5ef6582e82b2b369c24474bb14bd29e5d537) ) // MMI PAL16L8B
4701 	ROM_LOAD( "c09-21_pal20l8b.ic2",  0x00000, 0x00144, CRC(583f9214) SHA1(1a5f3e9619bf6ba95f92ce9d12917014db8853a1) ) // MMI PAL20L8B
4702 	ROM_LOAD( "c09-22_pal16l8b.ic3",  0x00000, 0x00104, CRC(b506d7a7) SHA1(603eb14d2703b94ae80894daa7f9f25890b7918c) ) // MMI PAL16L8B
4703 	ROM_LOAD( "c09-24_pal20l8b.ic22", 0x00000, 0x00144, CRC(2ff83694) SHA1(c6594b1cfd3958d9b4ddb8d68d506929cfa0a759) ) // MMI PAL20L8B
4704 	ROM_LOAD( "c09-25_pal20l8b.ic25", 0x00000, 0x00144, CRC(c69bf3fc) SHA1(83f1cc9f475aed47e969b77059f3332ef5068981) ) // MMI PAL20L8B
4705 	ROM_LOAD( "c09-26_pal16l8b.ic26", 0x00000, 0x00104, CRC(36a8eb27) SHA1(8ec25c860e6568a3d1a7e7a8ed6a6397f135455c) ) // MMI PAL16L8B
4706 ROM_END
4707 
4708 ROM_START( scij )
4709 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
4710 	ROM_LOAD16_BYTE( "c09-37.43", 0x00000, 0x20000, CRC(0fecea17) SHA1(0ad4454eee6646b0f978b1ba83206d64c1f6d081) )
4711 	ROM_LOAD16_BYTE( "c09-38.40", 0x00001, 0x20000, CRC(e46ebd9b) SHA1(52b0c1f95e8a664076d8fbc0f6204ca55893e281) )
4712 	ROM_LOAD16_BYTE( "c09-40.38", 0x40000, 0x20000, CRC(1a4e2eab) SHA1(7c95ba516d164b7b4e6eaf80e3dacf7c35d8123d) )
4713 	ROM_LOAD16_BYTE( "c09-39.41", 0x40001, 0x20000, CRC(de87bcb9) SHA1(b5537a25871ea90294f3b6f0b6386a883cfdf991) )
4714 
4715 	ROM_REGION( 0x20000, "sub", 0 ) /* 128K for 68000 code (CPU B) */
4716 	ROM_LOAD16_BYTE( "c09-33.6", 0x00000, 0x10000, CRC(cf4e6c5b) SHA1(8d6720b605b8e0c7f0473ba452c79bf5efc2615d) ) /* Actual label is "C09 33*" */
4717 	ROM_LOAD16_BYTE( "c09-32.5", 0x00001, 0x10000, CRC(a4713719) SHA1(b1110e397d3407ec63975cdd92a23cbb16348200) ) /* Actual label is "C09 32*" */
4718 
4719 	ROM_REGION( 0x20000, "audiocpu", 0 )    /* Z80 sound cpu */
4720 	ROM_LOAD( "c09-27.31",   0x00000, 0x20000, CRC(cd161dca) SHA1(2e0632f290f8efae5e479c67ca8808a90e0f4afd) )
4721 
4722 	ROM_REGION( 0x80000, "tc0100scn", 0 )
4723 	ROM_LOAD16_WORD_SWAP( "c09-05.16", 0x00000, 0x80000, CRC(890b38f0) SHA1(b478c96214ce027926346a4653250c8ee8a98bdc) ) /* SCR 8x8 */
4724 
4725 	ROM_REGION( 0x200000, "sprites", 0 )
4726 	ROM_LOAD64_WORD_SWAP( "c09-04.52", 0x000000, 0x080000, CRC(2cbb3c9b) SHA1(9e3d95f76f5f5d385b6a9516af781aefef1eb0ca) )    /* OBJ 16x8 */
4727 	ROM_LOAD64_WORD_SWAP( "c09-02.53", 0x000002, 0x080000, CRC(a83a0389) SHA1(932788b5b5f01326d0fbb2b9fdb94a8c7c004db3) )
4728 	ROM_LOAD64_WORD_SWAP( "c09-03.54", 0x000004, 0x080000, CRC(a31d0e80) SHA1(dfeff1b89dd7b3f19b26e77f2d66f6448cb00553) )
4729 	ROM_LOAD64_WORD_SWAP( "c09-01.55", 0x000006, 0x080000, CRC(64bfea10) SHA1(15ea43092027b1717d0f24fbe6ac2cdf11a7ddc6) )
4730 
4731 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
4732 	ROM_LOAD16_WORD( "c09-07.15", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */
4733 
4734 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
4735 	ROM_LOAD16_WORD( "c09-06.37", 0x00000, 0x80000, CRC(12df6d7b) SHA1(8ce742eb3f7eb6283b5ca32bb520d1cc7684d515) )  /* STY spritemap */
4736 
4737 	ROM_REGION( 0x180000, "ymsnd", 0 )  /* ADPCM samples */
4738 	ROM_LOAD( "c09-10.42", 0x000000, 0x080000, CRC(ad78bf46) SHA1(4020744bbdc4b9ec3dee1a9d7b5ffa8def43d7b2) )
4739 	ROM_LOAD( "c09-09.43", 0x080000, 0x080000, CRC(6a655c00) SHA1(5ae1ee422226e386550b69a1f35668c10d3bdcc2) )
4740 	ROM_LOAD( "c09-08.44", 0x100000, 0x080000, CRC(7ddfc316) SHA1(47f0ed8eecd4719b4c5cb8762ee6b8bb01686812) )
4741 
4742 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
4743 	ROM_LOAD( "c09-11.29", 0x00000, 0x80000, CRC(6b1a11e1) SHA1(4304d029ecf91fa5b779057f195f75ebdd0a7c1c) )
4744 
4745 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
4746 	ROM_LOAD( "c09-16.17", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) )
4747 	ROM_LOAD( "c09-17.24", 0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) ) // AMD AM27S33 BPROM - same data also found on Racing Beat, Double Axle & Battle Shark
4748 	ROM_LOAD( "c09-18.25", 0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) ) // AMD AM27S33 BPROM - same data also found on Racing Beat, Double Axle & Battle Shark
4749 	ROM_LOAD( "c09-20.71", 0x00000, 0x00100, CRC(cd8ffd80) SHA1(133bcd291a3751bce5293cb6b685f87258e8db19) ) // AMD AM27S21 BPROM - road/sprite priority and palette select
4750 	ROM_LOAD( "c09-23.14", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // AMD AM27S21 BPROM - road A/B internal priority
4751 	ROM_LOAD( "c09-19_pal16l8b.ic67", 0x00000, 0x00104, CRC(a0608442) SHA1(bcda5ef6582e82b2b369c24474bb14bd29e5d537) ) // MMI PAL16L8B
4752 	ROM_LOAD( "c09-21_pal20l8b.ic2",  0x00000, 0x00144, CRC(583f9214) SHA1(1a5f3e9619bf6ba95f92ce9d12917014db8853a1) ) // MMI PAL20L8B
4753 	ROM_LOAD( "c09-22_pal16l8b.ic3",  0x00000, 0x00104, CRC(b506d7a7) SHA1(603eb14d2703b94ae80894daa7f9f25890b7918c) ) // MMI PAL16L8B
4754 	ROM_LOAD( "c09-24_pal20l8b.ic22", 0x00000, 0x00144, CRC(2ff83694) SHA1(c6594b1cfd3958d9b4ddb8d68d506929cfa0a759) ) // MMI PAL20L8B
4755 	ROM_LOAD( "c09-25_pal20l8b.ic25", 0x00000, 0x00144, CRC(c69bf3fc) SHA1(83f1cc9f475aed47e969b77059f3332ef5068981) ) // MMI PAL20L8B
4756 	ROM_LOAD( "c09-26_pal16l8b.ic26", 0x00000, 0x00104, CRC(36a8eb27) SHA1(8ec25c860e6568a3d1a7e7a8ed6a6397f135455c) ) // MMI PAL16L8B
4757 ROM_END
4758 
4759 ROM_START( sciu )
4760 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
4761 	ROM_LOAD16_BYTE( "c09-43.43",  0x00000, 0x20000, CRC(20a9343e) SHA1(b0185ddbda827236b7b41687f18c92e10c2dbd3a) )
4762 	ROM_LOAD16_BYTE( "c09-44.40",  0x00001, 0x20000, CRC(7524338a) SHA1(f4e68a4d09f843f4697b4b4a4e94b5759a14fd01) )
4763 	ROM_LOAD16_BYTE( "c09-41.38",  0x40000, 0x20000, CRC(83477f11) SHA1(f6dba2137a182dae215cf212bf85f4528e3d006d) )
4764 	ROM_LOAD16_BYTE( "c09-39.41",  0x40001, 0x20000, CRC(de87bcb9) SHA1(b5537a25871ea90294f3b6f0b6386a883cfdf991) )
4765 
4766 	ROM_REGION( 0x20000, "sub", 0 ) /* 128K for 68000 code (CPU B) */
4767 	ROM_LOAD16_BYTE( "c09-33.6", 0x00000, 0x10000, CRC(cf4e6c5b) SHA1(8d6720b605b8e0c7f0473ba452c79bf5efc2615d) ) /* Actual label is "C09 33*" */
4768 	ROM_LOAD16_BYTE( "c09-32.5", 0x00001, 0x10000, CRC(a4713719) SHA1(b1110e397d3407ec63975cdd92a23cbb16348200) ) /* Actual label is "C09 32*" */
4769 
4770 	ROM_REGION( 0x20000, "audiocpu", 0 )    /* Z80 sound cpu */
4771 	ROM_LOAD( "c09-34.31",   0x00000, 0x20000, CRC(a21b3151) SHA1(f59c7b1ba5edf97d72670ee194ce9fdc5c5b9a58) )
4772 
4773 	ROM_REGION( 0x80000, "tc0100scn", 0 )
4774 	ROM_LOAD16_WORD_SWAP( "c09-05.16", 0x00000, 0x80000, CRC(890b38f0) SHA1(b478c96214ce027926346a4653250c8ee8a98bdc) ) /* SCR 8x8 */
4775 
4776 	ROM_REGION( 0x200000, "sprites", 0 )
4777 	ROM_LOAD64_WORD_SWAP( "c09-04.52", 0x000000, 0x080000, CRC(2cbb3c9b) SHA1(9e3d95f76f5f5d385b6a9516af781aefef1eb0ca) )    /* OBJ 16x8 */
4778 	ROM_LOAD64_WORD_SWAP( "c09-02.53", 0x000002, 0x080000, CRC(a83a0389) SHA1(932788b5b5f01326d0fbb2b9fdb94a8c7c004db3) )
4779 	ROM_LOAD64_WORD_SWAP( "c09-03.54", 0x000004, 0x080000, CRC(a31d0e80) SHA1(dfeff1b89dd7b3f19b26e77f2d66f6448cb00553) )
4780 	ROM_LOAD64_WORD_SWAP( "c09-01.55", 0x000006, 0x080000, CRC(64bfea10) SHA1(15ea43092027b1717d0f24fbe6ac2cdf11a7ddc6) )
4781 
4782 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
4783 	ROM_LOAD16_WORD( "c09-07.15", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */
4784 
4785 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
4786 	ROM_LOAD16_WORD( "c09-06.37", 0x00000, 0x80000, CRC(12df6d7b) SHA1(8ce742eb3f7eb6283b5ca32bb520d1cc7684d515) )  /* STY spritemap */
4787 
4788 	ROM_REGION( 0x180000, "ymsnd", 0 )  /* ADPCM samples */
4789 	ROM_LOAD( "c09-14.42", 0x000000, 0x080000, CRC(ad78bf46) SHA1(4020744bbdc4b9ec3dee1a9d7b5ffa8def43d7b2) )
4790 	ROM_LOAD( "c09-13.43", 0x080000, 0x080000, CRC(d57c41d3) SHA1(3375a1fc6389840544b9fdb96b2fafbc8e3276e2) )
4791 	ROM_LOAD( "c09-12.44", 0x100000, 0x080000, CRC(56c99fa5) SHA1(3f9a6bc89d847cc4c99d35f98157ea3f187c0f98) )
4792 
4793 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
4794 	ROM_LOAD( "c09-15.29", 0x00000, 0x80000, CRC(e63b9095) SHA1(c6ea670b5a90ab39429259ec1fefb2bde5d0213f) )
4795 
4796 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
4797 	ROM_LOAD( "c09-16.17", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) )
4798 	ROM_LOAD( "c09-17.24", 0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) ) // AMD AM27S33 BPROM - same data also found on Racing Beat, Double Axle & Battle Shark
4799 	ROM_LOAD( "c09-18.25", 0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) ) // AMD AM27S33 BPROM - same data also found on Racing Beat, Double Axle & Battle Shark
4800 	ROM_LOAD( "c09-20.71", 0x00000, 0x00100, CRC(cd8ffd80) SHA1(133bcd291a3751bce5293cb6b685f87258e8db19) ) // AMD AM27S21 BPROM - road/sprite priority and palette select
4801 	ROM_LOAD( "c09-23.14", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // AMD AM27S21 BPROM - road A/B internal priority
4802 	ROM_LOAD( "c09-19_pal16l8b.ic67", 0x00000, 0x00104, CRC(a0608442) SHA1(bcda5ef6582e82b2b369c24474bb14bd29e5d537) ) // MMI PAL16L8B
4803 	ROM_LOAD( "c09-21_pal20l8b.ic2",  0x00000, 0x00144, CRC(583f9214) SHA1(1a5f3e9619bf6ba95f92ce9d12917014db8853a1) ) // MMI PAL20L8B
4804 	ROM_LOAD( "c09-22_pal16l8b.ic3",  0x00000, 0x00104, CRC(b506d7a7) SHA1(603eb14d2703b94ae80894daa7f9f25890b7918c) ) // MMI PAL16L8B
4805 	ROM_LOAD( "c09-24_pal20l8b.ic22", 0x00000, 0x00144, CRC(2ff83694) SHA1(c6594b1cfd3958d9b4ddb8d68d506929cfa0a759) ) // MMI PAL20L8B
4806 	ROM_LOAD( "c09-25_pal20l8b.ic25", 0x00000, 0x00144, CRC(c69bf3fc) SHA1(83f1cc9f475aed47e969b77059f3332ef5068981) ) // MMI PAL20L8B
4807 	ROM_LOAD( "c09-26_pal16l8b.ic26", 0x00000, 0x00104, CRC(36a8eb27) SHA1(8ec25c860e6568a3d1a7e7a8ed6a6397f135455c) ) // MMI PAL16L8B
4808 ROM_END
4809 
4810 ROM_START( scin )
4811 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
4812 	ROM_LOAD16_BYTE( "ic37.37", 0x00000, 0x20000, CRC(33fb159c) SHA1(b004a5249414f69768d8a951ded3c104ea107b32) )
4813 	ROM_LOAD16_BYTE( "ic40.38", 0x00001, 0x20000, CRC(657df3f2) SHA1(80e30961e2cdcb834d2cbd48803ace68acaab422) )
4814 	ROM_LOAD16_BYTE( "ic38.42", 0x40000, 0x20000, CRC(0a09b90b) SHA1(0970644a0d79ab3898187849bec6c7cf598652f3) )
4815 	ROM_LOAD16_BYTE( "ic41.39", 0x40001, 0x20000, CRC(43167b2a) SHA1(1e6f2a113deb57df869ec2ceb99d6a7ecfa5d7e5) )
4816 
4817 	ROM_REGION( 0x20000, "sub", 0 ) /* 128K for 68000 code (CPU B) */
4818 	ROM_LOAD16_BYTE( "c09-33.6", 0x00000, 0x10000, CRC(cf4e6c5b) SHA1(8d6720b605b8e0c7f0473ba452c79bf5efc2615d) ) /* Actual label is "C09 33*" */
4819 	ROM_LOAD16_BYTE( "c09-32.5", 0x00001, 0x10000, CRC(a4713719) SHA1(b1110e397d3407ec63975cdd92a23cbb16348200) ) /* Actual label is "C09 32*" */
4820 
4821 	ROM_REGION( 0x20000, "audiocpu", 0 )    /* Z80 sound cpu */
4822 	ROM_LOAD( "c09-34.31",   0x00000, 0x20000, CRC(a21b3151) SHA1(f59c7b1ba5edf97d72670ee194ce9fdc5c5b9a58) )
4823 
4824 	ROM_REGION( 0x80000, "tc0100scn", 0 )
4825 	ROM_LOAD16_WORD_SWAP( "c09-05.16", 0x00000, 0x80000, CRC(890b38f0) SHA1(b478c96214ce027926346a4653250c8ee8a98bdc) ) /* SCR 8x8 */
4826 
4827 	ROM_REGION( 0x200000, "sprites", 0 )
4828 	ROM_LOAD64_WORD_SWAP( "c09-04.52", 0x000000, 0x080000, CRC(2cbb3c9b) SHA1(9e3d95f76f5f5d385b6a9516af781aefef1eb0ca) )    /* OBJ 16x8 */
4829 	ROM_LOAD64_WORD_SWAP( "c09-02.53", 0x000002, 0x080000, CRC(a83a0389) SHA1(932788b5b5f01326d0fbb2b9fdb94a8c7c004db3) )
4830 	ROM_LOAD64_WORD_SWAP( "c09-03.54", 0x000004, 0x080000, CRC(a31d0e80) SHA1(dfeff1b89dd7b3f19b26e77f2d66f6448cb00553) )
4831 	ROM_LOAD64_WORD_SWAP( "c09-01.55", 0x000006, 0x080000, CRC(64bfea10) SHA1(15ea43092027b1717d0f24fbe6ac2cdf11a7ddc6) )
4832 
4833 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
4834 	ROM_LOAD16_WORD( "c09-07.15", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) ) /* ROD, road lines */
4835 
4836 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
4837 	ROM_LOAD16_WORD( "c09-06.37", 0x00000, 0x80000, CRC(12df6d7b) SHA1(8ce742eb3f7eb6283b5ca32bb520d1cc7684d515) )  /* STY spritemap */
4838 
4839 	ROM_REGION( 0x180000, "ymsnd", 0 )  /* ADPCM samples */
4840 	ROM_LOAD( "c09-14.42", 0x000000, 0x080000, CRC(ad78bf46) SHA1(4020744bbdc4b9ec3dee1a9d7b5ffa8def43d7b2) )
4841 	ROM_LOAD( "c09-13.43", 0x080000, 0x080000, CRC(d57c41d3) SHA1(3375a1fc6389840544b9fdb96b2fafbc8e3276e2) )
4842 	ROM_LOAD( "c09-12.44", 0x100000, 0x080000, CRC(56c99fa5) SHA1(3f9a6bc89d847cc4c99d35f98157ea3f187c0f98) )
4843 
4844 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
4845 	ROM_LOAD( "c09-15.29", 0x00000, 0x80000, CRC(e63b9095) SHA1(c6ea670b5a90ab39429259ec1fefb2bde5d0213f) )
4846 
4847 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
4848 	ROM_LOAD( "c09-16.17", 0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) )
4849 	ROM_LOAD( "c09-17.24", 0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) ) // AMD AM27S33 BPROM - same data also found on Racing Beat, Double Axle & Battle Shark
4850 	ROM_LOAD( "c09-18.25", 0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) ) // AMD AM27S33 BPROM - same data also found on Racing Beat, Double Axle & Battle Shark
4851 	ROM_LOAD( "c09-20.71", 0x00000, 0x00100, CRC(cd8ffd80) SHA1(133bcd291a3751bce5293cb6b685f87258e8db19) ) // AMD AM27S21 BPROM - road/sprite priority and palette select
4852 	ROM_LOAD( "c09-23.14", 0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) ) // AMD AM27S21 BPROM - road A/B internal priority
4853 	ROM_LOAD( "c09-19_pal16l8b.ic67", 0x00000, 0x00104, CRC(a0608442) SHA1(bcda5ef6582e82b2b369c24474bb14bd29e5d537) ) // MMI PAL16L8B
4854 	ROM_LOAD( "c09-21_pal20l8b.ic2",  0x00000, 0x00144, CRC(583f9214) SHA1(1a5f3e9619bf6ba95f92ce9d12917014db8853a1) ) // MMI PAL20L8B
4855 	ROM_LOAD( "c09-22_pal16l8b.ic3",  0x00000, 0x00104, CRC(b506d7a7) SHA1(603eb14d2703b94ae80894daa7f9f25890b7918c) ) // MMI PAL16L8B
4856 	ROM_LOAD( "c09-24_pal20l8b.ic22", 0x00000, 0x00144, CRC(2ff83694) SHA1(c6594b1cfd3958d9b4ddb8d68d506929cfa0a759) ) // MMI PAL20L8B
4857 	ROM_LOAD( "c09-25_pal20l8b.ic25", 0x00000, 0x00144, CRC(c69bf3fc) SHA1(83f1cc9f475aed47e969b77059f3332ef5068981) ) // MMI PAL20L8B
4858 	ROM_LOAD( "c09-26_pal16l8b.ic26", 0x00000, 0x00104, CRC(36a8eb27) SHA1(8ec25c860e6568a3d1a7e7a8ed6a6397f135455c) ) // MMI PAL16L8B
4859 
4860 ROM_END
4861 
4862 ROM_START( nightstr )
4863 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
4864 	ROM_LOAD16_BYTE( "b91-45.bin", 0x00000, 0x20000, CRC(7ad63421) SHA1(4ecfc3c8cd691d878e5d9212ccff0d225bb06bd9) )
4865 	ROM_LOAD16_BYTE( "b91-44.bin", 0x00001, 0x20000, CRC(4bc30adf) SHA1(531d6ee9c8ff0d4ed07c15465ec7cb78cf976115) )
4866 	ROM_LOAD16_BYTE( "b91-43.bin", 0x40000, 0x20000, CRC(3e6f727a) SHA1(ae837131a4c0c9bc5deba155c2a5b7ae72f1d070) )
4867 	ROM_LOAD16_BYTE( "b91-47.bin", 0x40001, 0x20000, CRC(9f778e03) SHA1(37888c3f4c52b5a714678f0f1e39f6a4f19beef9) )
4868 
4869 	ROM_REGION( 0x40000, "sub", 0 ) /* 256K for 68000 code (CPU B) */
4870 	ROM_LOAD16_BYTE( "b91-39.bin", 0x00000, 0x20000, CRC(725b23ae) SHA1(d4b4335863d32b9a81f7461240e960bf345c9835) )
4871 	ROM_LOAD16_BYTE( "b91-40.bin", 0x00001, 0x20000, CRC(81fb364d) SHA1(f02733509039cde2c1de616e0a7969e31de1007a) )
4872 
4873 	ROM_REGION( 0x20000, "audiocpu", 0 )    /* Z80 sound cpu */
4874 	ROM_LOAD( "b91-41.bin",   0x00000, 0x20000, CRC(2694bb42) SHA1(ee770472655ac0ef55eeff04037457dbf6744e4f) )
4875 
4876 	ROM_REGION( 0x80000, "tc0100scn", 0 )
4877 	ROM_LOAD16_WORD_SWAP( "b91-11.bin", 0x00000, 0x80000, CRC(fff8ce31) SHA1(fc729de92937a805d79379228d7a30041594c0df) )    /* SCR 8x8 */
4878 
4879 	ROM_REGION( 0x200000, "sprites", 0 )
4880 	ROM_LOAD64_WORD_SWAP( "b91-04.bin", 0x000000, 0x080000, CRC(8ca1970d) SHA1(d8504298a38a95f1d8f3a2fba479ec75fe4d5de7) )   /* OBJ A 16x16 */
4881 	ROM_LOAD64_WORD_SWAP( "b91-03.bin", 0x000002, 0x080000, CRC(cd5fed39) SHA1(c16c67cc998889288e6e96535fd8e61afc93bc78) )
4882 	ROM_LOAD64_WORD_SWAP( "b91-02.bin", 0x000004, 0x080000, CRC(457c64b8) SHA1(443f13d56d53ca6a7750ec974da675bad3f34a38) )
4883 	ROM_LOAD64_WORD_SWAP( "b91-01.bin", 0x000006, 0x080000, CRC(3731d94f) SHA1(2978d3eb1f44595681e84f3aa8dc03d34a191455) )
4884 
4885 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
4886 	ROM_LOAD16_WORD( "b91-10.bin", 0x00000, 0x80000, CRC(1d8f05b4) SHA1(04caa6a0887b90860c426a973dc3c3270e996818) )    /* ROD, road lines */
4887 
4888 	ROM_REGION( 0x200000, "sprites2", 0 )
4889 	ROM_LOAD64_WORD_SWAP( "b91-08.bin", 0x000000, 0x080000, CRC(66f35c34) SHA1(9040390fa9c626a54076a9461e0e198f059e2cb1) )   /* OBJ B 16x16 */
4890 	ROM_LOAD64_WORD_SWAP( "b91-07.bin", 0x000002, 0x080000, CRC(4d8ec6cf) SHA1(2b7c10b459dc45313c4c90899a73c42c55b6c5c9) )
4891 	ROM_LOAD64_WORD_SWAP( "b91-06.bin", 0x000004, 0x080000, CRC(a34dc839) SHA1(e1fcb763dbc562a62e862297458bde66d691606c) )
4892 	ROM_LOAD64_WORD_SWAP( "b91-05.bin", 0x000006, 0x080000, CRC(5e72ac90) SHA1(c28c2718e873be5a254992ef8db256a394ca03ff) )
4893 
4894 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
4895 	ROM_LOAD16_WORD( "b91-09.bin", 0x00000, 0x80000, CRC(5f247ca2) SHA1(3b89e5d035f27f62a14c5c7a976c804f9bb5c04d) ) /* STY spritemap */
4896 
4897 	ROM_REGION( 0x100000, "ymsnd", 0 )  /* ADPCM samples */
4898 	ROM_LOAD( "b91-13.bin", 0x00000, 0x80000, CRC(8c7bf0f5) SHA1(6e18531991225c24a9722c9fbe1af6ae6e9b866b) )
4899 	ROM_LOAD( "b91-12.bin", 0x80000, 0x80000, CRC(da77c7af) SHA1(49662a69b83739e2e0209cabff83995a951383f4) )
4900 
4901 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
4902 	ROM_LOAD( "b91-14.bin", 0x00000, 0x80000, CRC(6bc314d3) SHA1(ae3e9c6b853bab4ec81a6bd951b39a4bc883f456) )
4903 
4904 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
4905 	ROM_LOAD( "b91-26.bin", 0x00000, 0x0400,  CRC(77682a4f) SHA1(da2b3143f1c8688a22d8ec47bbb73b2f2e578480) )
4906 	ROM_LOAD( "b91-27.bin", 0x00000, 0x0400,  CRC(a3f8490d) SHA1(349b8c9ba914603f72f800a3fc8e8277d756deb1) )
4907 	ROM_LOAD( "b91-28.bin", 0x00000, 0x0400,  CRC(fa2f840e) SHA1(dd61ee6833bd43bbf619d36ec46f2bfa00880f40) )
4908 	ROM_LOAD( "b91-29.bin", 0x00000, 0x2000,  CRC(ad685be8) SHA1(e7681d76fa216c124c54544393c4f6a08fd7d74d) )
4909 	ROM_LOAD( "b91-30.bin", 0x00000, 0x10000, CRC(30cc1f79) SHA1(3b0e3e6e8bce7a7d04a5b0103e2ce4e18e52a68e) )
4910 	ROM_LOAD( "b91-31.bin", 0x00000, 0x10000, CRC(c189781c) SHA1(af3904ce51f715970965d110313491dbacf188b8) )
4911 	ROM_LOAD( "b91-32.bin", 0x00000, 0x0100,  CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )    // road A/B internal priority
4912 	ROM_LOAD( "b91-33.bin", 0x00000, 0x0100,  CRC(89719d17) SHA1(50181b8172b0fc08b149db18caf10659be9c517f) )    // road/sprite priority and palette select
4913 ROM_END
4914 
4915 ROM_START( nightstru )
4916 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
4917 	ROM_LOAD16_BYTE( "b91-45.bin", 0x00000, 0x20000, CRC(7ad63421) SHA1(4ecfc3c8cd691d878e5d9212ccff0d225bb06bd9) )
4918 	ROM_LOAD16_BYTE( "b91-44.bin", 0x00001, 0x20000, CRC(4bc30adf) SHA1(531d6ee9c8ff0d4ed07c15465ec7cb78cf976115) )
4919 	ROM_LOAD16_BYTE( "b91-43.bin", 0x40000, 0x20000, CRC(3e6f727a) SHA1(ae837131a4c0c9bc5deba155c2a5b7ae72f1d070) )
4920 	ROM_LOAD16_BYTE( "b91-46.bin", 0x40001, 0x20000, CRC(e870be95) SHA1(9a83df2c88a029bc40f5ce074143778ea555a2ba) )
4921 
4922 	ROM_REGION( 0x40000, "sub", 0 ) /* 256K for 68000 code (CPU B) */
4923 	ROM_LOAD16_BYTE( "b91-39.bin", 0x00000, 0x20000, CRC(725b23ae) SHA1(d4b4335863d32b9a81f7461240e960bf345c9835) )
4924 	ROM_LOAD16_BYTE( "b91-40.bin", 0x00001, 0x20000, CRC(81fb364d) SHA1(f02733509039cde2c1de616e0a7969e31de1007a) )
4925 
4926 	ROM_REGION( 0x20000, "audiocpu", 0 )    /* Z80 sound cpu */
4927 	ROM_LOAD( "b91-41.bin",   0x00000, 0x20000, CRC(2694bb42) SHA1(ee770472655ac0ef55eeff04037457dbf6744e4f) )
4928 
4929 	ROM_REGION( 0x80000, "tc0100scn", 0 )
4930 	ROM_LOAD16_WORD_SWAP( "b91-11.bin", 0x00000, 0x80000, CRC(fff8ce31) SHA1(fc729de92937a805d79379228d7a30041594c0df) )    /* SCR 8x8 */
4931 
4932 	ROM_REGION( 0x200000, "sprites", 0 )
4933 	ROM_LOAD64_WORD_SWAP( "b91-04.bin", 0x000000, 0x080000, CRC(8ca1970d) SHA1(d8504298a38a95f1d8f3a2fba479ec75fe4d5de7) )   /* OBJ A 16x16 */
4934 	ROM_LOAD64_WORD_SWAP( "b91-03.bin", 0x000002, 0x080000, CRC(cd5fed39) SHA1(c16c67cc998889288e6e96535fd8e61afc93bc78) )
4935 	ROM_LOAD64_WORD_SWAP( "b91-02.bin", 0x000004, 0x080000, CRC(457c64b8) SHA1(443f13d56d53ca6a7750ec974da675bad3f34a38) )
4936 	ROM_LOAD64_WORD_SWAP( "b91-01.bin", 0x000006, 0x080000, CRC(3731d94f) SHA1(2978d3eb1f44595681e84f3aa8dc03d34a191455) )
4937 
4938 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
4939 	ROM_LOAD16_WORD( "b91-10.bin", 0x00000, 0x80000, CRC(1d8f05b4) SHA1(04caa6a0887b90860c426a973dc3c3270e996818) )    /* ROD, road lines */
4940 
4941 	ROM_REGION( 0x200000, "sprites2", 0 )
4942 	ROM_LOAD64_WORD_SWAP( "b91-08.bin", 0x000000, 0x080000, CRC(66f35c34) SHA1(9040390fa9c626a54076a9461e0e198f059e2cb1) )   /* OBJ B 16x16 */
4943 	ROM_LOAD64_WORD_SWAP( "b91-07.bin", 0x000002, 0x080000, CRC(4d8ec6cf) SHA1(2b7c10b459dc45313c4c90899a73c42c55b6c5c9) )
4944 	ROM_LOAD64_WORD_SWAP( "b91-06.bin", 0x000004, 0x080000, CRC(a34dc839) SHA1(e1fcb763dbc562a62e862297458bde66d691606c) )
4945 	ROM_LOAD64_WORD_SWAP( "b91-05.bin", 0x000006, 0x080000, CRC(5e72ac90) SHA1(c28c2718e873be5a254992ef8db256a394ca03ff) )
4946 
4947 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
4948 	ROM_LOAD16_WORD( "b91-09.bin", 0x00000, 0x80000, CRC(5f247ca2) SHA1(3b89e5d035f27f62a14c5c7a976c804f9bb5c04d) ) /* STY spritemap */
4949 
4950 	ROM_REGION( 0x100000, "ymsnd", 0 )  /* ADPCM samples */
4951 	ROM_LOAD( "b91-13.bin", 0x00000, 0x80000, CRC(8c7bf0f5) SHA1(6e18531991225c24a9722c9fbe1af6ae6e9b866b) )
4952 	ROM_LOAD( "b91-12.bin", 0x80000, 0x80000, CRC(da77c7af) SHA1(49662a69b83739e2e0209cabff83995a951383f4) )
4953 
4954 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
4955 	ROM_LOAD( "b91-14.bin", 0x00000, 0x80000, CRC(6bc314d3) SHA1(ae3e9c6b853bab4ec81a6bd951b39a4bc883f456) )
4956 
4957 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
4958 	ROM_LOAD( "b91-26.bin", 0x00000, 0x0400,  CRC(77682a4f) SHA1(da2b3143f1c8688a22d8ec47bbb73b2f2e578480) )
4959 	ROM_LOAD( "b91-27.bin", 0x00000, 0x0400,  CRC(a3f8490d) SHA1(349b8c9ba914603f72f800a3fc8e8277d756deb1) )
4960 	ROM_LOAD( "b91-28.bin", 0x00000, 0x0400,  CRC(fa2f840e) SHA1(dd61ee6833bd43bbf619d36ec46f2bfa00880f40) )
4961 	ROM_LOAD( "b91-29.bin", 0x00000, 0x2000,  CRC(ad685be8) SHA1(e7681d76fa216c124c54544393c4f6a08fd7d74d) )
4962 	ROM_LOAD( "b91-30.bin", 0x00000, 0x10000, CRC(30cc1f79) SHA1(3b0e3e6e8bce7a7d04a5b0103e2ce4e18e52a68e) )
4963 	ROM_LOAD( "b91-31.bin", 0x00000, 0x10000, CRC(c189781c) SHA1(af3904ce51f715970965d110313491dbacf188b8) )
4964 	ROM_LOAD( "b91-32.bin", 0x00000, 0x0100,  CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )    // road A/B internal priority
4965 	ROM_LOAD( "b91-33.bin", 0x00000, 0x0100,  CRC(89719d17) SHA1(50181b8172b0fc08b149db18caf10659be9c517f) )    // road/sprite priority and palette select
4966 ROM_END
4967 
4968 ROM_START( nightstrj )
4969 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
4970 	ROM_LOAD16_BYTE( "b91-45.bin", 0x00000, 0x20000, CRC(7ad63421) SHA1(4ecfc3c8cd691d878e5d9212ccff0d225bb06bd9) )
4971 	ROM_LOAD16_BYTE( "b91-44.bin", 0x00001, 0x20000, CRC(4bc30adf) SHA1(531d6ee9c8ff0d4ed07c15465ec7cb78cf976115) )
4972 	ROM_LOAD16_BYTE( "b91-43.bin", 0x40000, 0x20000, CRC(3e6f727a) SHA1(ae837131a4c0c9bc5deba155c2a5b7ae72f1d070) )
4973 	ROM_LOAD16_BYTE( "b91-42.bin", 0x40001, 0x20000, CRC(7179ef2f) SHA1(4c45f0c4dfcf16665d7eca4fdcd6a959d9b6fc01) )
4974 
4975 	ROM_REGION( 0x40000, "sub", 0 ) /* 256K for 68000 code (CPU B) */
4976 	ROM_LOAD16_BYTE( "b91-39.bin", 0x00000, 0x20000, CRC(725b23ae) SHA1(d4b4335863d32b9a81f7461240e960bf345c9835) )
4977 	ROM_LOAD16_BYTE( "b91-40.bin", 0x00001, 0x20000, CRC(81fb364d) SHA1(f02733509039cde2c1de616e0a7969e31de1007a) )
4978 
4979 	ROM_REGION( 0x20000, "audiocpu", 0 )    /* Z80 sound cpu */
4980 	ROM_LOAD( "b91-41.bin",   0x00000, 0x20000, CRC(2694bb42) SHA1(ee770472655ac0ef55eeff04037457dbf6744e4f) )
4981 
4982 	ROM_REGION( 0x80000, "tc0100scn", 0 )
4983 	ROM_LOAD16_WORD_SWAP( "b91-11.bin", 0x00000, 0x80000, CRC(fff8ce31) SHA1(fc729de92937a805d79379228d7a30041594c0df) )    /* SCR 8x8 */
4984 
4985 	ROM_REGION( 0x200000, "sprites", 0 )
4986 	ROM_LOAD64_WORD_SWAP( "b91-04.bin", 0x000000, 0x080000, CRC(8ca1970d) SHA1(d8504298a38a95f1d8f3a2fba479ec75fe4d5de7) )   /* OBJ A 16x16 */
4987 	ROM_LOAD64_WORD_SWAP( "b91-03.bin", 0x000002, 0x080000, CRC(cd5fed39) SHA1(c16c67cc998889288e6e96535fd8e61afc93bc78) )
4988 	ROM_LOAD64_WORD_SWAP( "b91-02.bin", 0x000004, 0x080000, CRC(457c64b8) SHA1(443f13d56d53ca6a7750ec974da675bad3f34a38) )
4989 	ROM_LOAD64_WORD_SWAP( "b91-01.bin", 0x000006, 0x080000, CRC(3731d94f) SHA1(2978d3eb1f44595681e84f3aa8dc03d34a191455) )
4990 
4991 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
4992 	ROM_LOAD16_WORD( "b91-10.bin", 0x00000, 0x80000, CRC(1d8f05b4) SHA1(04caa6a0887b90860c426a973dc3c3270e996818) )    /* ROD, road lines */
4993 
4994 	ROM_REGION( 0x200000, "sprites2", 0 )
4995 	ROM_LOAD64_WORD_SWAP( "b91-08.bin", 0x000000, 0x080000, CRC(66f35c34) SHA1(9040390fa9c626a54076a9461e0e198f059e2cb1) )   /* OBJ B 16x16 */
4996 	ROM_LOAD64_WORD_SWAP( "b91-07.bin", 0x000002, 0x080000, CRC(4d8ec6cf) SHA1(2b7c10b459dc45313c4c90899a73c42c55b6c5c9) )
4997 	ROM_LOAD64_WORD_SWAP( "b91-06.bin", 0x000004, 0x080000, CRC(a34dc839) SHA1(e1fcb763dbc562a62e862297458bde66d691606c) )
4998 	ROM_LOAD64_WORD_SWAP( "b91-05.bin", 0x000006, 0x080000, CRC(5e72ac90) SHA1(c28c2718e873be5a254992ef8db256a394ca03ff) )
4999 
5000 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
5001 	ROM_LOAD16_WORD( "b91-09.bin", 0x00000, 0x80000, CRC(5f247ca2) SHA1(3b89e5d035f27f62a14c5c7a976c804f9bb5c04d) ) /* STY spritemap */
5002 
5003 	ROM_REGION( 0x100000, "ymsnd", 0 )  /* ADPCM samples */
5004 	ROM_LOAD( "b91-13.bin", 0x00000, 0x80000, CRC(8c7bf0f5) SHA1(6e18531991225c24a9722c9fbe1af6ae6e9b866b) )
5005 	ROM_LOAD( "b91-12.bin", 0x80000, 0x80000, CRC(da77c7af) SHA1(49662a69b83739e2e0209cabff83995a951383f4) )
5006 
5007 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
5008 	ROM_LOAD( "b91-14.bin", 0x00000, 0x80000, CRC(6bc314d3) SHA1(ae3e9c6b853bab4ec81a6bd951b39a4bc883f456) )
5009 
5010 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
5011 	ROM_LOAD( "b91-26.bin", 0x00000, 0x0400,  CRC(77682a4f) SHA1(da2b3143f1c8688a22d8ec47bbb73b2f2e578480) )
5012 	ROM_LOAD( "b91-27.bin", 0x00000, 0x0400,  CRC(a3f8490d) SHA1(349b8c9ba914603f72f800a3fc8e8277d756deb1) )
5013 	ROM_LOAD( "b91-28.bin", 0x00000, 0x0400,  CRC(fa2f840e) SHA1(dd61ee6833bd43bbf619d36ec46f2bfa00880f40) )
5014 	ROM_LOAD( "b91-29.bin", 0x00000, 0x2000,  CRC(ad685be8) SHA1(e7681d76fa216c124c54544393c4f6a08fd7d74d) )
5015 	ROM_LOAD( "b91-30.bin", 0x00000, 0x10000, CRC(30cc1f79) SHA1(3b0e3e6e8bce7a7d04a5b0103e2ce4e18e52a68e) )
5016 	ROM_LOAD( "b91-31.bin", 0x00000, 0x10000, CRC(c189781c) SHA1(af3904ce51f715970965d110313491dbacf188b8) )
5017 	ROM_LOAD( "b91-32.bin", 0x00000, 0x0100,  CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )    // road A/B internal priority
5018 	ROM_LOAD( "b91-33.bin", 0x00000, 0x0100,  CRC(89719d17) SHA1(50181b8172b0fc08b149db18caf10659be9c517f) )    // road/sprite priority and palette select
5019 ROM_END
5020 
5021 ROM_START( aquajack )
5022 	ROM_REGION( 0x40000, "maincpu", 0 ) /* 256K for 68000 code (CPU A) */
5023 	ROM_LOAD16_BYTE( "b77-22.ic31", 0x00000, 0x20000, CRC(67400dde) SHA1(1e47c4fbd4449f2d973ac962ad58f22502d59198) )
5024 	ROM_LOAD16_BYTE( "b77-26.ic17", 0x00001, 0x20000, CRC(cd4d0969) SHA1(d610e7847a09f1ca892007440fa1b431bb0c41d2) )
5025 
5026 	ROM_REGION( 0x40000, "sub", 0 ) /* 256K for 68000 code (CPU B) */
5027 	ROM_LOAD16_BYTE( "b77-24.ic69", 0x00000, 0x20000, CRC(95e643ed) SHA1(d47ddd50c744f33b3cbd5ef90880ca577977f5ca) )
5028 	ROM_LOAD16_BYTE( "b77-23.ic67", 0x00001, 0x20000, CRC(395a7d1c) SHA1(22cbbabb07f43e72a6139b6b9d68d6c1146d727f) )
5029 
5030 	ROM_REGION( 0x10000, "audiocpu", 0 )    /* sound cpu */
5031 	ROM_LOAD( "b77-20.ic54",  0x00000, 0x10000, CRC(84ba54b7) SHA1(84e51c1a6a5b4eb2a65f4a6d9d54037323348f50) )
5032 
5033 	ROM_REGION( 0x80000, "tc0100scn", 0 )
5034 	ROM_LOAD16_WORD_SWAP( "b77-05.ic105", 0x00000, 0x80000, CRC(7238f0ff) SHA1(95e2d6815e99392358bbeabf1afbf237673f2e24) )  /* SCR 8x8 */
5035 
5036 	ROM_REGION( 0x200000, "sprites", 0 )
5037 	ROM_LOAD64_WORD_SWAP( "b77-04.ic16", 0x000000, 0x80000, CRC(bed0be6c) SHA1(2b11824f741b7f6755bd78f594af19b63a29092f) )   /* OBJ 16x8 */
5038 	ROM_LOAD64_WORD_SWAP( "b77-03.ic15", 0x000002, 0x80000, CRC(9a3030a7) SHA1(7b60fd066eccd04d9fcc131d9d06f151334ccab2) )
5039 	ROM_LOAD64_WORD_SWAP( "b77-02.ic14", 0x000004, 0x80000, CRC(daea0d2e) SHA1(10640651824234a589838e8f017964b79de79cb4) )
5040 	ROM_LOAD64_WORD_SWAP( "b77-01.ic13", 0x000006, 0x80000, CRC(cdab000d) SHA1(d83ee7f1dc17ab113bac38d0d062bb1519ff69f7) )
5041 
5042 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
5043 	ROM_LOAD16_WORD( "b77-07.ic33", 0x000000, 0x80000, CRC(7db1fc5e) SHA1(fbc88c2179b881d34d3a33d0a901d8da3445f9a8) )  /* ROD, road lines */
5044 
5045 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
5046 	ROM_LOAD16_WORD( "b77-06.ic39", 0x00000, 0x80000, CRC(ce2aed00) SHA1(9c992717914b13eb271122ecf7cca3634b013e56) )    /* STY spritemap */
5047 
5048 	ROM_REGION( 0x80000, "ymsnd", 0 )   /* ADPCM samples */
5049 	ROM_LOAD( "b77-09.ic58", 0x00000, 0x80000, CRC(948e5ad9) SHA1(35cd6706470f01b5a244817d10fc65c075ff29b1) )
5050 
5051 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
5052 	ROM_LOAD( "b77-08.ic57", 0x00000, 0x80000, CRC(119b9485) SHA1(2c9cd90be20df769e09016abccf59c8f119da286) )
5053 
5054 	ROM_REGION( 0x00200, "user2", 0 )   /* unused PROMs */
5055 	ROM_LOAD( "b77-17.ic1",  0x00000, 0x0100,  CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )   // road A/B internal priority
5056 	ROM_LOAD( "b77-18.ic37", 0x00100, 0x0100,  CRC(7b7d8ff4) SHA1(18842ed8160739cd2e2ccc2db605153dbed6cc0a) )   // road/sprite priority and palette select
5057 
5058 /*  (no unused roms in my set, there should be an 0x10000 one like the rest) */
5059 ROM_END
5060 
5061 ROM_START( aquajacku )
5062 	ROM_REGION( 0x40000, "maincpu", 0 ) /* 256K for 68000 code (CPU A) */
5063 	ROM_LOAD16_BYTE( "b77-22.ic31", 0x00000, 0x20000, CRC(67400dde) SHA1(1e47c4fbd4449f2d973ac962ad58f22502d59198) )
5064 	ROM_LOAD16_BYTE( "b77-25.ic17", 0x00001, 0x20000, CRC(ba4a39ff) SHA1(89527c7e3106ae77c85372117fea24a8553ab377) )
5065 
5066 	ROM_REGION( 0x40000, "sub", 0 ) /* 256K for 68000 code (CPU B) */
5067 	ROM_LOAD16_BYTE( "b77-24.ic69", 0x00000, 0x20000, CRC(95e643ed) SHA1(d47ddd50c744f33b3cbd5ef90880ca577977f5ca) )
5068 	ROM_LOAD16_BYTE( "b77-23.ic67", 0x00001, 0x20000, CRC(395a7d1c) SHA1(22cbbabb07f43e72a6139b6b9d68d6c1146d727f) )
5069 
5070 	ROM_REGION( 0x10000, "audiocpu", 0 )    /* sound cpu */
5071 	ROM_LOAD( "b77-20.ic54",  0x00000, 0x10000, CRC(84ba54b7) SHA1(84e51c1a6a5b4eb2a65f4a6d9d54037323348f50) )
5072 
5073 	ROM_REGION( 0x80000, "tc0100scn", 0 )
5074 	ROM_LOAD16_WORD_SWAP( "b77-05.ic105", 0x00000, 0x80000, CRC(7238f0ff) SHA1(95e2d6815e99392358bbeabf1afbf237673f2e24) )  /* SCR 8x8 */
5075 
5076 	ROM_REGION( 0x200000, "sprites", 0 )
5077 	ROM_LOAD64_WORD_SWAP( "b77-04.ic16", 0x000000, 0x80000, CRC(bed0be6c) SHA1(2b11824f741b7f6755bd78f594af19b63a29092f) )   /* OBJ 16x8 */
5078 	ROM_LOAD64_WORD_SWAP( "b77-03.ic15", 0x000002, 0x80000, CRC(9a3030a7) SHA1(7b60fd066eccd04d9fcc131d9d06f151334ccab2) )
5079 	ROM_LOAD64_WORD_SWAP( "b77-02.ic14", 0x000004, 0x80000, CRC(daea0d2e) SHA1(10640651824234a589838e8f017964b79de79cb4) )
5080 	ROM_LOAD64_WORD_SWAP( "b77-01.ic13", 0x000006, 0x80000, CRC(cdab000d) SHA1(d83ee7f1dc17ab113bac38d0d062bb1519ff69f7) )
5081 
5082 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
5083 	ROM_LOAD16_WORD( "b77-07.ic33", 0x000000, 0x80000, CRC(7db1fc5e) SHA1(fbc88c2179b881d34d3a33d0a901d8da3445f9a8) )  /* ROD, road lines */
5084 
5085 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
5086 	ROM_LOAD16_WORD( "b77-06.ic39", 0x00000, 0x80000, CRC(ce2aed00) SHA1(9c992717914b13eb271122ecf7cca3634b013e56) )    /* STY spritemap */
5087 
5088 	ROM_REGION( 0x80000, "ymsnd", 0 )   /* ADPCM samples */
5089 	ROM_LOAD( "b77-09.ic58", 0x00000, 0x80000, CRC(948e5ad9) SHA1(35cd6706470f01b5a244817d10fc65c075ff29b1) )
5090 
5091 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
5092 	ROM_LOAD( "b77-08.ic57", 0x00000, 0x80000, CRC(119b9485) SHA1(2c9cd90be20df769e09016abccf59c8f119da286) )
5093 
5094 	ROM_REGION( 0x00200, "user2", 0 )   /* unused PROMs */
5095 	ROM_LOAD( "b77-17.ic1",  0x00000, 0x0100,  CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )   // road A/B internal priority
5096 	ROM_LOAD( "b77-18.ic37", 0x00100, 0x0100,  CRC(7b7d8ff4) SHA1(18842ed8160739cd2e2ccc2db605153dbed6cc0a) )   // road/sprite priority and palette select
5097 
5098 /*  (no unused roms in my set, there should be an 0x10000 one like the rest) */
5099 ROM_END
5100 
5101 ROM_START( aquajackj )
5102 	ROM_REGION( 0x40000, "maincpu", 0 ) /* 256K for 68000 code (CPU A) */
5103 	ROM_LOAD16_BYTE( "b77-22.ic31", 0x00000, 0x20000, CRC(67400dde) SHA1(1e47c4fbd4449f2d973ac962ad58f22502d59198) )
5104 	ROM_LOAD16_BYTE( "b77-21.ic17", 0x00001, 0x20000, CRC(23436845) SHA1(e62111c902453e1b655c7f25bcea938a6f13aed2) )
5105 
5106 	ROM_REGION( 0x40000, "sub", 0 ) /* 256K for 68000 code (CPU B) */
5107 	ROM_LOAD16_BYTE( "b77-24.ic69", 0x00000, 0x20000, CRC(95e643ed) SHA1(d47ddd50c744f33b3cbd5ef90880ca577977f5ca) )
5108 	ROM_LOAD16_BYTE( "b77-23.ic67", 0x00001, 0x20000, CRC(395a7d1c) SHA1(22cbbabb07f43e72a6139b6b9d68d6c1146d727f) )
5109 
5110 	ROM_REGION( 0x10000, "audiocpu", 0 )    /* sound cpu */
5111 	ROM_LOAD( "b77-20.ic54",  0x00000, 0x10000, CRC(84ba54b7) SHA1(84e51c1a6a5b4eb2a65f4a6d9d54037323348f50) )
5112 
5113 	ROM_REGION( 0x80000, "tc0100scn", 0 )
5114 	ROM_LOAD16_WORD_SWAP( "b77-05.ic105", 0x00000, 0x80000, CRC(7238f0ff) SHA1(95e2d6815e99392358bbeabf1afbf237673f2e24) )  /* SCR 8x8 */
5115 
5116 	ROM_REGION( 0x200000, "sprites", 0 )
5117 	ROM_LOAD64_WORD_SWAP( "b77-04.ic16", 0x000000, 0x80000, CRC(bed0be6c) SHA1(2b11824f741b7f6755bd78f594af19b63a29092f) )   /* OBJ 16x8 */
5118 	ROM_LOAD64_WORD_SWAP( "b77-03.ic15", 0x000002, 0x80000, CRC(9a3030a7) SHA1(7b60fd066eccd04d9fcc131d9d06f151334ccab2) )
5119 	ROM_LOAD64_WORD_SWAP( "b77-02.ic14", 0x000004, 0x80000, CRC(daea0d2e) SHA1(10640651824234a589838e8f017964b79de79cb4) )
5120 	ROM_LOAD64_WORD_SWAP( "b77-01.ic13", 0x000006, 0x80000, CRC(cdab000d) SHA1(d83ee7f1dc17ab113bac38d0d062bb1519ff69f7) )
5121 
5122 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
5123 	ROM_LOAD16_WORD( "b77-07.ic33", 0x000000, 0x80000, CRC(7db1fc5e) SHA1(fbc88c2179b881d34d3a33d0a901d8da3445f9a8) )  /* ROD, road lines */
5124 
5125 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
5126 	ROM_LOAD16_WORD( "b77-06.ic39", 0x00000, 0x80000, CRC(ce2aed00) SHA1(9c992717914b13eb271122ecf7cca3634b013e56) )    /* STY spritemap */
5127 
5128 	ROM_REGION( 0x80000, "ymsnd", 0 )   /* ADPCM samples */
5129 	ROM_LOAD( "b77-09.ic58", 0x00000, 0x80000, CRC(948e5ad9) SHA1(35cd6706470f01b5a244817d10fc65c075ff29b1) )
5130 
5131 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
5132 	ROM_LOAD( "b77-08.ic57", 0x00000, 0x80000, CRC(119b9485) SHA1(2c9cd90be20df769e09016abccf59c8f119da286) )
5133 
5134 	ROM_REGION( 0x00200, "user2", 0 )   /* unused PROMs */
5135 	ROM_LOAD( "b77-17.ic1",  0x00000, 0x0100,  CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )   // road A/B internal priority
5136 	ROM_LOAD( "b77-18.ic37", 0x00100, 0x0100,  CRC(7b7d8ff4) SHA1(18842ed8160739cd2e2ccc2db605153dbed6cc0a) )   // road/sprite priority and palette select
5137 
5138 /*  (no unused roms in my set, there should be an 0x10000 one like the rest) */
5139 ROM_END
5140 
5141 ROM_START( spacegun )
5142 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
5143 	ROM_LOAD16_BYTE( "c57-18.62", 0x00000, 0x20000, CRC(19d7d52e) SHA1(4361929a43f911864ece4dcd06995ea6b6156c59) )
5144 	ROM_LOAD16_BYTE( "c57-20.74", 0x00001, 0x20000, CRC(2e58253f) SHA1(36fb52ce1c6cf9f537cf500ba330b167871969b9) )
5145 	ROM_LOAD16_BYTE( "c57-17.59", 0x40000, 0x20000, CRC(e197edb8) SHA1(2ffd000aac1825ecd564c273f0cc055710ba4050) )
5146 	ROM_LOAD16_BYTE( "c57-22.73", 0x40001, 0x20000, CRC(5855fde3) SHA1(fcd6d7ed16b61b9023596f0efb7f6971060a2e0b) )
5147 
5148 	ROM_REGION( 0x40000, "sub", 0 ) /* 256K for 68000 code (CPU B) */
5149 	ROM_LOAD16_BYTE( "c57-15+.27", 0x00000, 0x20000, CRC(b36eb8f1) SHA1(e6e9fb844fd9acc6ee8a515a964d5df8de088a8c) ) /* Actual label is "C57 15*" */
5150 	ROM_LOAD16_BYTE( "c57-16+.29", 0x00001, 0x20000, CRC(bfb5d1e7) SHA1(cbf22e9043aac54e08c5da74d973da27844170ef) ) /* Actual label is "C57 16*" */
5151 
5152 	ROM_REGION( 0x80000, "tc0100scn", 0 )
5153 	ROM_LOAD16_WORD_SWAP( "c57-06.52", 0x00000, 0x80000, CRC(4ebadd5b) SHA1(d32a52b4d7dd19b0fa2551f93ce3d5cbcf2bc158) )     /* SCR 8x8 */
5154 
5155 	ROM_REGION( 0x400000, "sprites", 0 )
5156 	ROM_LOAD64_WORD_SWAP( "c57-01.25", 0x000000, 0x100000, CRC(f901b04e) SHA1(24bac1c3a0c585966a7cbeeebd9b2dd3acf45a67) )    /* OBJ 16x8 */
5157 	ROM_LOAD64_WORD_SWAP( "c57-02.24", 0x000002, 0x100000, CRC(21ee4633) SHA1(ddb948b165127c8fb1a988b5a0f17f92117f1b66) )
5158 	ROM_LOAD64_WORD_SWAP( "c57-03.12", 0x000004, 0x100000, CRC(fafca86f) SHA1(dc6ea78f0deafef632d8bd3677ec74e797dc69a2) )
5159 	ROM_LOAD64_WORD_SWAP( "c57-04.11", 0x000006, 0x100000, CRC(a9787090) SHA1(8c05c4c0d14a9f60defb37225da37aadf946c563) )
5160 
5161 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
5162 	ROM_LOAD16_WORD( "c57-05.36", 0x00000, 0x80000, CRC(6a70eb2e) SHA1(307dd876af65204e86e094b4015ffb4a655824f8) )  /* STY spritemap */
5163 
5164 	ROM_REGION( 0x80000, "ymsnd", 0 )   /* ADPCM samples */
5165 	ROM_LOAD( "c57-07.76", 0x00000, 0x80000, CRC(ad653dc1) SHA1(2ec440f793b0a686233fbe61c9462f8365c42b65) )
5166 
5167 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
5168 	ROM_LOAD( "c57-08.75", 0x00000, 0x80000, CRC(22593550) SHA1(e802e947e6947d146e1b57dbff7ac021e19e7b2b) )
5169 
5170 	ROM_REGION( 0x0c00, "plds", 0 )
5171 	ROM_LOAD( "pal16l8-c57-09.9",  0x0000, 0x0104, CRC(ea93161e) SHA1(c83c6ce3696b2754abb861d41a8d587a8e82aa1e) )
5172 	ROM_LOAD( "pal20l8-c57-10.47", 0x0200, 0x0144, CRC(3ee56888) SHA1(030efb0903d919686748b1ff86a327990832d0fa) )
5173 	ROM_LOAD( "pal16l8-c57-11.48", 0x0400, 0x0104, CRC(6bb4372e) SHA1(513bf6f032a9043303b8660c106753ae214d28ff) )
5174 	ROM_LOAD( "pal20l8-c57-12.61", 0x0600, 0x0144, CRC(debddb13) SHA1(47be25b3bb157d37b9813737544a56a2090f85ba) )
5175 	ROM_LOAD( "pal16l8-c57-13.72", 0x0800, 0x0104, CRC(1369f23e) SHA1(bbc960cfc3edd07e89134e1b876aa7a6c0cba5ac) )
5176 	ROM_LOAD( "pal16r4-c57-14.96", 0x0a00, 0x0104, CRC(75e1bf61) SHA1(e8358329a78ec0ab87641b2ecaec0b2b67c6ca30) )
5177 ROM_END
5178 
5179 ROM_START( spacegunu )
5180 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
5181 	ROM_LOAD16_BYTE( "c57-18.62", 0x00000, 0x20000, CRC(19d7d52e) SHA1(4361929a43f911864ece4dcd06995ea6b6156c59) )
5182 	ROM_LOAD16_BYTE( "c57-20.74", 0x00001, 0x20000, CRC(2e58253f) SHA1(36fb52ce1c6cf9f537cf500ba330b167871969b9) )
5183 	ROM_LOAD16_BYTE( "c57-17.59", 0x40000, 0x20000, CRC(e197edb8) SHA1(2ffd000aac1825ecd564c273f0cc055710ba4050) )
5184 	ROM_LOAD16_BYTE( "c57-21.73", 0x40001, 0x20000, CRC(2f52cd75) SHA1(7dfd1f57925a0993608055247d565af810753189) )
5185 
5186 	ROM_REGION( 0x40000, "sub", 0 ) /* 256K for 68000 code (CPU B) */
5187 	ROM_LOAD16_BYTE( "c57-15+.27", 0x00000, 0x20000, CRC(b36eb8f1) SHA1(e6e9fb844fd9acc6ee8a515a964d5df8de088a8c) ) /* Actual label is "C57 15*" */
5188 	ROM_LOAD16_BYTE( "c57-16+.29", 0x00001, 0x20000, CRC(bfb5d1e7) SHA1(cbf22e9043aac54e08c5da74d973da27844170ef) ) /* Actual label is "C57 16*" */
5189 
5190 	ROM_REGION( 0x80000, "tc0100scn", 0 )
5191 	ROM_LOAD16_WORD_SWAP( "c57-06.52", 0x00000, 0x80000, CRC(4ebadd5b) SHA1(d32a52b4d7dd19b0fa2551f93ce3d5cbcf2bc158) )     /* SCR 8x8 */
5192 
5193 	ROM_REGION( 0x400000, "sprites", 0 )
5194 	ROM_LOAD64_WORD_SWAP( "c57-01.25", 0x000000, 0x100000, CRC(f901b04e) SHA1(24bac1c3a0c585966a7cbeeebd9b2dd3acf45a67) )    /* OBJ 16x8 */
5195 	ROM_LOAD64_WORD_SWAP( "c57-02.24", 0x000002, 0x100000, CRC(21ee4633) SHA1(ddb948b165127c8fb1a988b5a0f17f92117f1b66) )
5196 	ROM_LOAD64_WORD_SWAP( "c57-03.12", 0x000004, 0x100000, CRC(fafca86f) SHA1(dc6ea78f0deafef632d8bd3677ec74e797dc69a2) )
5197 	ROM_LOAD64_WORD_SWAP( "c57-04.11", 0x000006, 0x100000, CRC(a9787090) SHA1(8c05c4c0d14a9f60defb37225da37aadf946c563) )
5198 
5199 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
5200 	ROM_LOAD16_WORD( "c57-05.36", 0x00000, 0x80000, CRC(6a70eb2e) SHA1(307dd876af65204e86e094b4015ffb4a655824f8) )  /* STY spritemap */
5201 
5202 	ROM_REGION( 0x80000, "ymsnd", 0 )   /* ADPCM samples */
5203 	ROM_LOAD( "c57-07.76", 0x00000, 0x80000, CRC(ad653dc1) SHA1(2ec440f793b0a686233fbe61c9462f8365c42b65) )
5204 
5205 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
5206 	ROM_LOAD( "c57-08.75", 0x00000, 0x80000, CRC(22593550) SHA1(e802e947e6947d146e1b57dbff7ac021e19e7b2b) )
5207 
5208 	ROM_REGION( 0x0c00, "plds", 0 )
5209 	ROM_LOAD( "pal16l8-c57-09.9",  0x0000, 0x0104, CRC(ea93161e) SHA1(c83c6ce3696b2754abb861d41a8d587a8e82aa1e) )
5210 	ROM_LOAD( "pal20l8-c57-10.47", 0x0200, 0x0144, CRC(3ee56888) SHA1(030efb0903d919686748b1ff86a327990832d0fa) )
5211 	ROM_LOAD( "pal16l8-c57-11.48", 0x0400, 0x0104, CRC(6bb4372e) SHA1(513bf6f032a9043303b8660c106753ae214d28ff) )
5212 	ROM_LOAD( "pal20l8-c57-12.61", 0x0600, 0x0144, CRC(debddb13) SHA1(47be25b3bb157d37b9813737544a56a2090f85ba) )
5213 	ROM_LOAD( "pal16l8-c57-13.72", 0x0800, 0x0104, CRC(1369f23e) SHA1(bbc960cfc3edd07e89134e1b876aa7a6c0cba5ac) )
5214 	ROM_LOAD( "pal16r4-c57-14.96", 0x0a00, 0x0104, CRC(75e1bf61) SHA1(e8358329a78ec0ab87641b2ecaec0b2b67c6ca30) )
5215 ROM_END
5216 
5217 ROM_START( spacegunj )
5218 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
5219 	ROM_LOAD16_BYTE( "c57-18+.62", 0x00000, 0x20000, CRC(c648c093) SHA1(136baf474036a64c6c19e1c3ced36f796ca47f0e) ) /* Actual label is "C57 18*" */
5220 	ROM_LOAD16_BYTE( "c57-20+.74", 0x00001, 0x20000, CRC(4de524f6) SHA1(ae4557cb17ad434939174a8092f117da90178320) ) /* Actual label is "C57 20*" */
5221 	ROM_LOAD16_BYTE( "c57-17.59",  0x40000, 0x20000, CRC(e197edb8) SHA1(2ffd000aac1825ecd564c273f0cc055710ba4050) )
5222 	ROM_LOAD16_BYTE( "c57-19.73",  0x40001, 0x20000, CRC(c15cac59) SHA1(62d7ce8f15032d215c6ca3d65605195958758ea6) )
5223 
5224 	ROM_REGION( 0x40000, "sub", 0 ) /* 256K for 68000 code (CPU B) */
5225 	ROM_LOAD16_BYTE( "c57-15+.27", 0x00000, 0x20000, CRC(b36eb8f1) SHA1(e6e9fb844fd9acc6ee8a515a964d5df8de088a8c) ) /* Actual label is "C57 15*" */
5226 	ROM_LOAD16_BYTE( "c57-16+.29", 0x00001, 0x20000, CRC(bfb5d1e7) SHA1(cbf22e9043aac54e08c5da74d973da27844170ef) ) /* Actual label is "C57 16*" */
5227 
5228 	ROM_REGION( 0x80000, "tc0100scn", 0 )
5229 	ROM_LOAD16_WORD_SWAP( "c57-06.52", 0x00000, 0x80000, CRC(4ebadd5b) SHA1(d32a52b4d7dd19b0fa2551f93ce3d5cbcf2bc158) )     /* SCR 8x8 */
5230 
5231 	ROM_REGION( 0x400000, "sprites", 0 )
5232 	ROM_LOAD64_WORD_SWAP( "c57-01.25", 0x000000, 0x100000, CRC(f901b04e) SHA1(24bac1c3a0c585966a7cbeeebd9b2dd3acf45a67) )    /* OBJ 16x8 */
5233 	ROM_LOAD64_WORD_SWAP( "c57-02.24", 0x000002, 0x100000, CRC(21ee4633) SHA1(ddb948b165127c8fb1a988b5a0f17f92117f1b66) )
5234 	ROM_LOAD64_WORD_SWAP( "c57-03.12", 0x000004, 0x100000, CRC(fafca86f) SHA1(dc6ea78f0deafef632d8bd3677ec74e797dc69a2) )
5235 	ROM_LOAD64_WORD_SWAP( "c57-04.11", 0x000006, 0x100000, CRC(a9787090) SHA1(8c05c4c0d14a9f60defb37225da37aadf946c563) )
5236 
5237 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
5238 	ROM_LOAD16_WORD( "c57-05.36", 0x00000, 0x80000, CRC(6a70eb2e) SHA1(307dd876af65204e86e094b4015ffb4a655824f8) )  /* STY spritemap */
5239 
5240 	ROM_REGION( 0x80000, "ymsnd", 0 )   /* ADPCM samples */
5241 	ROM_LOAD( "c57-07.76", 0x00000, 0x80000, CRC(ad653dc1) SHA1(2ec440f793b0a686233fbe61c9462f8365c42b65) )
5242 
5243 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
5244 	ROM_LOAD( "c57-08.75", 0x00000, 0x80000, CRC(22593550) SHA1(e802e947e6947d146e1b57dbff7ac021e19e7b2b) )
5245 
5246 	ROM_REGION( 0x0c00, "plds", 0 )
5247 	ROM_LOAD( "pal16l8-c57-09.9",  0x0000, 0x0104, CRC(ea93161e) SHA1(c83c6ce3696b2754abb861d41a8d587a8e82aa1e) )
5248 	ROM_LOAD( "pal20l8-c57-10.47", 0x0200, 0x0144, CRC(3ee56888) SHA1(030efb0903d919686748b1ff86a327990832d0fa) )
5249 	ROM_LOAD( "pal16l8-c57-11.48", 0x0400, 0x0104, CRC(6bb4372e) SHA1(513bf6f032a9043303b8660c106753ae214d28ff) )
5250 	ROM_LOAD( "pal20l8-c57-12.61", 0x0600, 0x0144, CRC(debddb13) SHA1(47be25b3bb157d37b9813737544a56a2090f85ba) )
5251 	ROM_LOAD( "pal16l8-c57-13.72", 0x0800, 0x0104, CRC(1369f23e) SHA1(bbc960cfc3edd07e89134e1b876aa7a6c0cba5ac) )
5252 	ROM_LOAD( "pal16r4-c57-14.96", 0x0a00, 0x0104, CRC(75e1bf61) SHA1(e8358329a78ec0ab87641b2ecaec0b2b67c6ca30) )
5253 ROM_END
5254 
5255 ROM_START( dblaxle ) /* Manual refers to this version as the "Version Without Communication" */
5256 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
5257 	ROM_LOAD16_BYTE( "c78_49-1.2",  0x00000, 0x20000, CRC(a6f0c631) SHA1(371cb7807d2350ceca36fc0fb6a65d3179c011b0) )
5258 	ROM_LOAD16_BYTE( "c78_51-1.4",  0x00001, 0x20000, CRC(ef24e83b) SHA1(a0bc1d2192bccfcb6f859aa0a27f43cc92080e1e) )
5259 	ROM_LOAD16_BYTE( "c78_50-1.3",  0x40000, 0x20000, CRC(8b0440f4) SHA1(31f7fcb8acfac13bbf2036670b665744acd37d25) )
5260 	ROM_LOAD16_BYTE( "c78_53-1.5",  0x40001, 0x20000, CRC(2bb91763) SHA1(a7cd2ac9f3937d88194d7c994d76abc89cc30f4d) )
5261 
5262 	ROM_REGION( 0x40000, "sub", 0 ) /* 256K for 68000 code (CPU B) */
5263 	ROM_LOAD16_BYTE( "c78-30-1.35", 0x00000, 0x20000, CRC(026aac18) SHA1(f50873982b4dc0fc822060f4c20c635efdd75d7e) )
5264 	ROM_LOAD16_BYTE( "c78-31-1.36", 0x00001, 0x20000, CRC(67ce23e8) SHA1(983e998a79e3d4376b005c92ded050be236d37cc) )
5265 
5266 	ROM_REGION( 0x20000, "audiocpu", 0 )    /* sound cpu */
5267 	ROM_LOAD( "c78-34.c42",         0x00000, 0x20000, CRC(f2186943) SHA1(2e9aed39fddf3aa1db7e20f8a709b6b82cc3e7df) )
5268 
5269 	ROM_REGION( 0x100000, "tc0480scp", 0 )
5270 	ROM_LOAD32_WORD( "c78-10.12", 0x00000, 0x80000, CRC(44b1897c) SHA1(7ad179db6d7dfeb139ea13cb4a231f99d177f2b1) )  /* SCR 16x16 */
5271 	ROM_LOAD32_WORD( "c78-11.11", 0x00002, 0x80000, CRC(7db3d4a3) SHA1(fc3c44ed36b212688a5bd8dc61321a994578258e) )
5272 
5273 	ROM_REGION( 0x400000, "sprites", 0 )
5274 	ROM_LOAD64_WORD_SWAP( "c78-08.25", 0x000000, 0x100000, CRC(6c725211) SHA1(3c1765f44fe57b496d305e994516674f71bd4c3c) )    /* OBJ 16x8 */
5275 	ROM_LOAD64_WORD_SWAP( "c78-07.33", 0x000002, 0x100000, CRC(9da00d5b) SHA1(f6b664c7495b936ce1b99852da45ec92cb37062a) )
5276 	ROM_LOAD64_WORD_SWAP( "c78-06.23", 0x000004, 0x100000, CRC(8309e91b) SHA1(3f27557bc82bf42cc77e3c7e363b51a0b119144d) )
5277 	ROM_LOAD64_WORD_SWAP( "c78-05.31", 0x000006, 0x100000, CRC(90001f68) SHA1(5c08dfe6a2e12e6ca84035815563f38fc2c2c029) )
5278 //  ROMX_LOAD      ( "c78-05l.1", 0x000007, 0x080000, CRC(f24bf972) , ROM_SKIP(7) )
5279 //  ROMX_LOAD      ( "c78-05h.2", 0x000006, 0x080000, CRC(c01039b5) , ROM_SKIP(7) )
5280 
5281 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
5282 	ROM_LOAD16_WORD( "c78-09.12", 0x000000, 0x80000, CRC(0dbde6f5) SHA1(4049271e3738b54e0c56d191889b1aea5664d49f) )    /* ROD, road lines */
5283 
5284 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
5285 	ROM_LOAD16_WORD( "c78-04.3", 0x00000, 0x80000, CRC(cc1aa37c) SHA1(cfa2eb338dc81c98c637c2f0b14d2baea8b115f5) )   /* STY spritemap */
5286 
5287 	ROM_REGION( 0x180000, "ymsnd", 0 )  /* ADPCM samples */
5288 	ROM_LOAD( "c78-12.33", 0x000000, 0x100000, CRC(b0267404) SHA1(ffd337336ff9b096e3725f733364762f6e6d3fab) )
5289 	ROM_LOAD( "c78-13.46", 0x100000, 0x080000, CRC(1b363aa2) SHA1(0aae3988024654e98cc0c784307b1c329c8f0783) )
5290 
5291 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
5292 	ROM_LOAD( "c78-14.31",  0x00000, 0x80000, CRC(9cad4dfb) SHA1(9187ef827a3f1bc9233d0e45e72c72c0956c5912) )
5293 
5294 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
5295 	ROM_LOAD( "c78-25.15",  0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) )    // 98% compression
5296 	ROM_LOAD( "c78-15.22",  0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )    // road A/B internal priority
5297 	ROM_LOAD( "c78-21.74",  0x00000, 0x00100, CRC(2926bf27) SHA1(bfbbe6c71bb29a05959f3de0d940816139f9ebfe) )    // road/sprite priority and palette select
5298 	ROM_LOAD( "c84-10.16",  0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) )
5299 	ROM_LOAD( "c84-11.17",  0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) )
5300 ROM_END
5301 
5302 ROM_START( dblaxleu ) /* Manual refers to this version as the "Version Without Communication" */
5303 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
5304 	ROM_LOAD16_BYTE( "c78_49+.2",  0x00000, 0x20000, CRC(3bb0344a) SHA1(dad031033838bf65c83fb3715a9727f2d165909b) ) /* Actual label is C78 49* */
5305 	ROM_LOAD16_BYTE( "c78_51+.4",  0x00001, 0x20000, CRC(918176cb) SHA1(b78bce351e240b447fbb9a1f44c8efa3e6b98cbe) ) /* Actual label is C78 51* */
5306 	ROM_LOAD16_BYTE( "c78_50+.3",  0x40000, 0x20000, CRC(5a12e2bb) SHA1(53a91cc8fcf42934aa282f5a1bb286461dc2a421) ) /* Actual label is C78 50* */
5307 	ROM_LOAD16_BYTE( "c78_53+.5",  0x40001, 0x20000, CRC(62f910d4) SHA1(3d952ffcb30a264751b4b282ae8c26ecea09c05c) ) /* Actual label is C78 53* */
5308 
5309 	ROM_REGION( 0x40000, "sub", 0 ) /* 256K for 68000 code (CPU B) */
5310 	ROM_LOAD16_BYTE( "c78-30+.35", 0x00000, 0x20000, CRC(f73b3ce1) SHA1(1794d1c74599d58302c6dbfabcc1b3110d19b1fb) ) /* Label missing, it's either C78 30 or C78 30* */
5311 	ROM_LOAD16_BYTE( "c78-31+.36", 0x00001, 0x20000, CRC(4639adee) SHA1(24569dd4801c622758e60d3e526480ac6b5f85d2) ) /* Label missing, it's either C78 31 or C78 31* */
5312 
5313 	ROM_REGION( 0x20000, "audiocpu", 0 )    /* sound cpu */
5314 	ROM_LOAD( "c78-34.c42",        0x00000, 0x20000, CRC(f2186943) SHA1(2e9aed39fddf3aa1db7e20f8a709b6b82cc3e7df) )
5315 
5316 	ROM_REGION( 0x100000, "tc0480scp", 0 )
5317 	ROM_LOAD32_WORD( "c78-10.12", 0x00000, 0x80000, CRC(44b1897c) SHA1(7ad179db6d7dfeb139ea13cb4a231f99d177f2b1) )  /* SCR 16x16 */
5318 	ROM_LOAD32_WORD( "c78-11.11", 0x00002, 0x80000, CRC(7db3d4a3) SHA1(fc3c44ed36b212688a5bd8dc61321a994578258e) )
5319 
5320 	ROM_REGION( 0x400000, "sprites", 0 )
5321 	ROM_LOAD64_WORD_SWAP( "c78-08.25", 0x000000, 0x100000, CRC(6c725211) SHA1(3c1765f44fe57b496d305e994516674f71bd4c3c) )    /* OBJ 16x8 */
5322 	ROM_LOAD64_WORD_SWAP( "c78-07.33", 0x000002, 0x100000, CRC(9da00d5b) SHA1(f6b664c7495b936ce1b99852da45ec92cb37062a) )
5323 	ROM_LOAD64_WORD_SWAP( "c78-06.23", 0x000004, 0x100000, CRC(8309e91b) SHA1(3f27557bc82bf42cc77e3c7e363b51a0b119144d) )
5324 	ROM_LOAD64_WORD_SWAP( "c78-05.31", 0x000006, 0x100000, CRC(90001f68) SHA1(5c08dfe6a2e12e6ca84035815563f38fc2c2c029) )
5325 //  ROMX_LOAD      ( "c78-05l.1", 0x000007, 0x080000, CRC(f24bf972) , ROM_SKIP(7) )
5326 //  ROMX_LOAD      ( "c78-05h.2", 0x000006, 0x080000, CRC(c01039b5) , ROM_SKIP(7) )
5327 
5328 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
5329 	ROM_LOAD16_WORD( "c78-09.12", 0x000000, 0x80000, CRC(0dbde6f5) SHA1(4049271e3738b54e0c56d191889b1aea5664d49f) )    /* ROD, road lines */
5330 
5331 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
5332 	ROM_LOAD16_WORD( "c78-04.3", 0x00000, 0x80000, CRC(cc1aa37c) SHA1(cfa2eb338dc81c98c637c2f0b14d2baea8b115f5) )   /* STY spritemap */
5333 
5334 	ROM_REGION( 0x180000, "ymsnd", 0 )  /* ADPCM samples */
5335 	ROM_LOAD( "c78-12.33", 0x000000, 0x100000, CRC(b0267404) SHA1(ffd337336ff9b096e3725f733364762f6e6d3fab) )
5336 	ROM_LOAD( "c78-13.46", 0x100000, 0x080000, CRC(1b363aa2) SHA1(0aae3988024654e98cc0c784307b1c329c8f0783) )
5337 
5338 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
5339 	ROM_LOAD( "c78-14.31",  0x00000, 0x80000, CRC(9cad4dfb) SHA1(9187ef827a3f1bc9233d0e45e72c72c0956c5912) )
5340 
5341 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
5342 	ROM_LOAD( "c78-25.15",  0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) )    // 98% compression
5343 	ROM_LOAD( "c78-15.22",  0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )    // road A/B internal priority
5344 	ROM_LOAD( "c78-21.74",  0x00000, 0x00100, CRC(2926bf27) SHA1(bfbbe6c71bb29a05959f3de0d940816139f9ebfe) )    // road/sprite priority and palette select
5345 	ROM_LOAD( "c84-10.16",  0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) )
5346 	ROM_LOAD( "c84-11.17",  0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) )
5347 ROM_END
5348 
5349 ROM_START( dblaxleul ) /* Side by side linkable version */
5350 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
5351 	ROM_LOAD16_BYTE( "c78_41-1.2",  0x00000, 0x20000, CRC(cf297fe4) SHA1(4875de63e8336062c27d83b55938bcb3d08a24a3) )
5352 	ROM_LOAD16_BYTE( "c78_43-1.4",  0x00001, 0x20000, CRC(38a8bad6) SHA1(50977a6a364893549d2f7899bbc4e0c67086697e) )
5353 	ROM_LOAD16_BYTE( "c78_42-1.3",  0x40000, 0x20000, CRC(4124ab2b) SHA1(96c3b6e01a1823259b3d7ca43e0a8631bfe33d0e) )
5354 	ROM_LOAD16_BYTE( "c78_44-1.5",  0x40001, 0x20000, CRC(50a55b6e) SHA1(62a72d33030d50c157a5cf05f6bdc1b02c9b9ff1) )
5355 
5356 	ROM_REGION( 0x40000, "sub", 0 ) /* 256K for 68000 code (CPU B) */
5357 	ROM_LOAD16_BYTE( "c78-30-1.35", 0x00000, 0x20000, CRC(026aac18) SHA1(f50873982b4dc0fc822060f4c20c635efdd75d7e) )
5358 	ROM_LOAD16_BYTE( "c78-31-1.36", 0x00001, 0x20000, CRC(67ce23e8) SHA1(983e998a79e3d4376b005c92ded050be236d37cc) )
5359 
5360 	ROM_REGION( 0x20000, "audiocpu", 0 )    /* sound cpu */
5361 	ROM_LOAD( "c78-34.c42",         0x00000, 0x20000, CRC(f2186943) SHA1(2e9aed39fddf3aa1db7e20f8a709b6b82cc3e7df) )
5362 
5363 	ROM_REGION( 0x100000, "tc0480scp", 0 )
5364 	ROM_LOAD32_WORD( "c78-10.12", 0x00000, 0x80000, CRC(44b1897c) SHA1(7ad179db6d7dfeb139ea13cb4a231f99d177f2b1) )  /* SCR 16x16 */
5365 	ROM_LOAD32_WORD( "c78-11.11", 0x00002, 0x80000, CRC(7db3d4a3) SHA1(fc3c44ed36b212688a5bd8dc61321a994578258e) )
5366 
5367 	ROM_REGION( 0x400000, "sprites", 0 )
5368 	ROM_LOAD64_WORD_SWAP( "c78-08.25", 0x000000, 0x100000, CRC(6c725211) SHA1(3c1765f44fe57b496d305e994516674f71bd4c3c) )    /* OBJ 16x8 */
5369 	ROM_LOAD64_WORD_SWAP( "c78-07.33", 0x000002, 0x100000, CRC(9da00d5b) SHA1(f6b664c7495b936ce1b99852da45ec92cb37062a) )
5370 	ROM_LOAD64_WORD_SWAP( "c78-06.23", 0x000004, 0x100000, CRC(8309e91b) SHA1(3f27557bc82bf42cc77e3c7e363b51a0b119144d) )
5371 	ROM_LOAD64_WORD_SWAP( "c78-05.31", 0x000006, 0x100000, CRC(90001f68) SHA1(5c08dfe6a2e12e6ca84035815563f38fc2c2c029) )
5372 //  ROMX_LOAD      ( "c78-05l.1", 0x000007, 0x080000, CRC(f24bf972) , ROM_SKIP(7) )
5373 //  ROMX_LOAD      ( "c78-05h.2", 0x000006, 0x080000, CRC(c01039b5) , ROM_SKIP(7) )
5374 
5375 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
5376 	ROM_LOAD16_WORD( "c78-09.12", 0x000000, 0x80000, CRC(0dbde6f5) SHA1(4049271e3738b54e0c56d191889b1aea5664d49f) )    /* ROD, road lines */
5377 
5378 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
5379 	ROM_LOAD16_WORD( "c78-04.3", 0x00000, 0x80000, CRC(cc1aa37c) SHA1(cfa2eb338dc81c98c637c2f0b14d2baea8b115f5) )   /* STY spritemap */
5380 
5381 	ROM_REGION( 0x180000, "ymsnd", 0 )  /* ADPCM samples */
5382 	ROM_LOAD( "c78-12.33", 0x000000, 0x100000, CRC(b0267404) SHA1(ffd337336ff9b096e3725f733364762f6e6d3fab) )
5383 	ROM_LOAD( "c78-13.46", 0x100000, 0x080000, CRC(1b363aa2) SHA1(0aae3988024654e98cc0c784307b1c329c8f0783) )
5384 
5385 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
5386 	ROM_LOAD( "c78-14.31",  0x00000, 0x80000, CRC(9cad4dfb) SHA1(9187ef827a3f1bc9233d0e45e72c72c0956c5912) )
5387 
5388 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
5389 	ROM_LOAD( "c78-25.15",  0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) )    // 98% compression
5390 	ROM_LOAD( "c78-15.22",  0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )    // road A/B internal priority
5391 	ROM_LOAD( "c78-21.74",  0x00000, 0x00100, CRC(2926bf27) SHA1(bfbbe6c71bb29a05959f3de0d940816139f9ebfe) )    // road/sprite priority and palette select
5392 	ROM_LOAD( "c84-10.16",  0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) )
5393 	ROM_LOAD( "c84-11.17",  0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) )
5394 ROM_END
5395 
5396 ROM_START( pwheelsj ) /* Side by side linkable version */
5397 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
5398 	ROM_LOAD16_BYTE( "c78_26-2.2",  0x00000, 0x20000, CRC(25c8eb2e) SHA1(a526b886c76a19c9ce1abc25cf433574564605a3) )
5399 	ROM_LOAD16_BYTE( "c78_28-2.4",  0x00001, 0x20000, CRC(a9500eb1) SHA1(ad300add3439515512003703df46e2f9317f2ee8) )
5400 	ROM_LOAD16_BYTE( "c78_27-2.3",  0x40000, 0x20000, CRC(08d2cffb) SHA1(a4f117a15499c0df85bf8036f00871caa6723082) )
5401 	ROM_LOAD16_BYTE( "c78_29-2.5",  0x40001, 0x20000, CRC(e1608004) SHA1(c4863264074de09ab38e7b73214f4271728e30aa) )
5402 
5403 	ROM_REGION( 0x40000, "sub", 0 ) /* 256K for 68000 code (CPU B) */
5404 	ROM_LOAD16_BYTE( "c78-30-1.35", 0x00000, 0x20000, CRC(026aac18) SHA1(f50873982b4dc0fc822060f4c20c635efdd75d7e) )
5405 	ROM_LOAD16_BYTE( "c78-31-1.36", 0x00001, 0x20000, CRC(67ce23e8) SHA1(983e998a79e3d4376b005c92ded050be236d37cc) )
5406 
5407 	ROM_REGION( 0x20000, "audiocpu", 0 )    /* sound cpu */
5408 	ROM_LOAD( "c78-32.42",          0x00000, 0x20000, CRC(1494199c) SHA1(f6b6ccaadbc5440f9342750a79ebc00c019ef355) )
5409 
5410 	ROM_REGION( 0x100000, "tc0480scp", 0 )
5411 	ROM_LOAD32_WORD( "c78-10.12", 0x00000, 0x80000, CRC(44b1897c) SHA1(7ad179db6d7dfeb139ea13cb4a231f99d177f2b1) )  /* SCR 16x16 */
5412 	ROM_LOAD32_WORD( "c78-11.11", 0x00002, 0x80000, CRC(7db3d4a3) SHA1(fc3c44ed36b212688a5bd8dc61321a994578258e) )
5413 
5414 	ROM_REGION( 0x400000, "sprites", 0 )
5415 	ROM_LOAD64_WORD_SWAP( "c78-08.25", 0x000000, 0x100000, CRC(6c725211) SHA1(3c1765f44fe57b496d305e994516674f71bd4c3c) )    /* OBJ 16x8 */
5416 	ROM_LOAD64_WORD_SWAP( "c78-07.33", 0x000002, 0x100000, CRC(9da00d5b) SHA1(f6b664c7495b936ce1b99852da45ec92cb37062a) )
5417 	ROM_LOAD64_WORD_SWAP( "c78-06.23", 0x000004, 0x100000, CRC(8309e91b) SHA1(3f27557bc82bf42cc77e3c7e363b51a0b119144d) )
5418 	ROM_LOAD64_WORD_SWAP( "c78-05.31", 0x000006, 0x100000, CRC(90001f68) SHA1(5c08dfe6a2e12e6ca84035815563f38fc2c2c029) )
5419 
5420 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
5421 	ROM_LOAD16_WORD( "c78-09.12", 0x000000, 0x80000, CRC(0dbde6f5) SHA1(4049271e3738b54e0c56d191889b1aea5664d49f) )    /* ROD, road lines */
5422 
5423 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
5424 	ROM_LOAD16_WORD( "c78-04.3", 0x00000, 0x80000, CRC(cc1aa37c) SHA1(cfa2eb338dc81c98c637c2f0b14d2baea8b115f5) )   /* STY spritemap */
5425 
5426 	ROM_REGION( 0x180000, "ymsnd", 0 )  /* ADPCM samples */
5427 	ROM_LOAD( "c78-01.33", 0x000000, 0x100000, CRC(90ff1e72) SHA1(6115e3683bc701922953b644427d1ddb471bf037) )
5428 	ROM_LOAD( "c78-02.46", 0x100000, 0x080000, CRC(8882d2b7) SHA1(4d3abac1e50cd5ae79a562f430563032a11e8390) )
5429 
5430 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
5431 	ROM_LOAD( "c78-03.31",  0x00000, 0x80000, CRC(9b926a2f) SHA1(cc2d612441a5cc587e097bb8380b56753b9a4f7c) )
5432 
5433 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
5434 	ROM_LOAD( "c78-25.15",  0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) )    // 98% compression
5435 	ROM_LOAD( "c78-15.22",  0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )    // road A/B internal priority
5436 	ROM_LOAD( "c78-21.74",  0x00000, 0x00100, CRC(2926bf27) SHA1(bfbbe6c71bb29a05959f3de0d940816139f9ebfe) )    // road/sprite priority and palette select
5437 	ROM_LOAD( "c84-10.16",  0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) )
5438 	ROM_LOAD( "c84-11.17",  0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) )
5439 ROM_END
5440 
5441 ROM_START( racingb )
5442 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
5443 	ROM_LOAD16_BYTE( "c84-110.3",  0x00000, 0x20000, CRC(119a8d3b) SHA1(bcda256730c4427c25aab17d2178814289361a78) )
5444 	ROM_LOAD16_BYTE( "c84-111.5",  0x00001, 0x20000, CRC(1f095692) SHA1(6a36f3a62de9fc24724e68a23de782bc21c01734) )
5445 	ROM_LOAD16_BYTE( "c84-104.2",  0x40000, 0x20000, CRC(37077fc6) SHA1(3498db29936f806e1cb624031940fda2e7e601fe) )
5446 	ROM_LOAD16_BYTE( "c84-103.4",  0x40001, 0x20000, CRC(4ca1d1c2) SHA1(cd526db226362b7d4429a29392dee40bcc519556) )
5447 
5448 	ROM_REGION( 0x40000, "sub", 0 ) /* 256K for 68000 code (CPU B) */
5449 	ROM_LOAD16_BYTE( "c84-99.35",  0x00000, 0x20000, CRC(24778f40) SHA1(5a588be1774af4e179bdc0e16cd118e74bb9f6ff) )
5450 	ROM_LOAD16_BYTE( "c84-100.36", 0x00001, 0x20000, CRC(2b99258a) SHA1(ff2da0f3a0391f55e20655554d72b82cc29fbc87) )
5451 
5452 	ROM_REGION( 0x20000, "audiocpu", 0 )    /* sound cpu */
5453 	ROM_LOAD( "c84-101.42",        0x00000, 0x20000, CRC(9322106e) SHA1(6c42ee7b9c76483fec2e397ec2737c030a082267) )
5454 
5455 	ROM_REGION( 0x100000, "tc0480scp", 0 )
5456 	ROM_LOAD32_WORD( "c84-90.12",  0x00000, 0x80000, CRC(83ee0e8d) SHA1(a3b6067913f15656e1f74b30b4c0364a50d1846a) ) /* SCR 16x16 */
5457 	ROM_LOAD32_WORD( "c84-89.11",  0x00002, 0x80000, CRC(aae43c87) SHA1(cfc05553f7a18132127ae5f1d181fcc582432b56) )
5458 
5459 	ROM_REGION( 0x400000, "sprites", 0 )
5460 	ROM_LOAD64_WORD_SWAP( "c84-92.25", 0x000000, 0x100000, CRC(56e8fd55) SHA1(852446d4069a446dd9b88b29e461b83b8d626b2c) )    /* OBJ 16x8 */
5461 	ROM_LOAD64_WORD_SWAP( "c84-94.33", 0x000002, 0x100000, CRC(6117c19b) SHA1(6b9587fb864a325aec17a73046ba5b7be08a8dd2) )
5462 	ROM_LOAD64_WORD_SWAP( "c84-91.23", 0x000004, 0x100000, CRC(b1b0146c) SHA1(d01f08085d644b17445d904a4684c00f133f7bae) )
5463 	ROM_LOAD64_WORD_SWAP( "c84-93.31", 0x000006, 0x100000, CRC(8837bb4e) SHA1(c41fff198a3c87c6e1672174ede589434374c1b3) )
5464 
5465 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
5466 	ROM_LOAD16_WORD( "c84-84.12", 0x000000, 0x80000, CRC(34dc486b) SHA1(2f503be67adbc5293f2d1218c838416fd931796c) )    /* ROD, road lines */
5467 
5468 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
5469 	ROM_LOAD16_WORD( "c84-88.3", 0x00000, 0x80000, CRC(edd1f49c) SHA1(f11c419dcc7da03ef1f1665c1344c27ff35fe867) )   /* STY spritemap */
5470 
5471 	ROM_REGION( 0x180000, "ymsnd", 0 )  /* ADPCM samples */
5472 	ROM_LOAD( "c84-86.33", 0x000000, 0x100000, CRC(98d9771e) SHA1(0cbb6b08e1fa5e632309962d7ad7dca448ef4d78) )
5473 	ROM_LOAD( "c84-87.46", 0x100000, 0x080000, CRC(9c1dd80c) SHA1(e1bae4e02fd94413fac4683e39e530f9d508d658) )
5474 
5475 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
5476 	ROM_LOAD( "c84-85.31",  0x00000, 0x80000, CRC(24cd838d) SHA1(18139f7df191ff2d005d76b3a85a6fafb630ea42) )
5477 
5478 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
5479 	ROM_LOAD( "c84-19.15",  0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) )
5480 	ROM_LOAD( "c84-07.22",  0x00000, 0x00100, CRC(95a15c77) SHA1(10246020776cf23c0659f41db66ae2c86db09ed2) )    // road A/B internal priority? bad dump?
5481 	ROM_LOAD( "c84-09.74",  0x00000, 0x00100, CRC(71217472) SHA1(69352cd484b4d5b41b37697aea24107dff8f1b24) )    // road/sprite priority and palette select?
5482 	ROM_LOAD( "c84-10.16",  0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) )
5483 	ROM_LOAD( "c84-11.17",  0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) )
5484 ROM_END
5485 
5486 ROM_START( racingbj )
5487 	ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code (CPU A) */
5488 	ROM_LOAD16_BYTE( "c84-107.ic3",  0x00000, 0x20000, CRC(520aa110) SHA1(bc524ce35bcefe5877b5f6e0cae4f6550027673e) )
5489 	ROM_LOAD16_BYTE( "c84-109.ic5",  0x00001, 0x20000, CRC(7ec710de) SHA1(bc66a695fb0f63b819a77f2133b423368bbec6b1) )
5490 	ROM_LOAD16_BYTE( "c84-104.2",    0x40000, 0x20000, CRC(37077fc6) SHA1(3498db29936f806e1cb624031940fda2e7e601fe) )
5491 	ROM_LOAD16_BYTE( "c84-108.ic4",  0x40001, 0x20000, CRC(a2afb0ee) SHA1(82493d97e522bffe511f62dffaba0fc71936c61d) )
5492 
5493 	ROM_REGION( 0x40000, "sub", 0 ) /* 256K for 68000 code (CPU B) */
5494 	ROM_LOAD16_BYTE( "c84-99.35",  0x00000, 0x20000, CRC(24778f40) SHA1(5a588be1774af4e179bdc0e16cd118e74bb9f6ff) )
5495 	ROM_LOAD16_BYTE( "c84-100.36", 0x00001, 0x20000, CRC(2b99258a) SHA1(ff2da0f3a0391f55e20655554d72b82cc29fbc87) )
5496 
5497 	ROM_REGION( 0x20000, "audiocpu", 0 )    /* sound cpu */
5498 	ROM_LOAD( "c84-101.42",        0x00000, 0x20000, CRC(9322106e) SHA1(6c42ee7b9c76483fec2e397ec2737c030a082267) )
5499 
5500 	ROM_REGION( 0x100000, "tc0480scp", 0 )
5501 	ROM_LOAD32_WORD( "c84-90.12",  0x00000, 0x80000, CRC(83ee0e8d) SHA1(a3b6067913f15656e1f74b30b4c0364a50d1846a) ) /* SCR 16x16 */
5502 	ROM_LOAD32_WORD( "c84-89.11",  0x00002, 0x80000, CRC(aae43c87) SHA1(cfc05553f7a18132127ae5f1d181fcc582432b56) )
5503 
5504 	ROM_REGION( 0x400000, "sprites", 0 )
5505 	ROM_LOAD64_WORD_SWAP( "c84-92.25", 0x000000, 0x100000, CRC(56e8fd55) SHA1(852446d4069a446dd9b88b29e461b83b8d626b2c) )    /* OBJ 16x8 */
5506 	ROM_LOAD64_WORD_SWAP( "c84-94.33", 0x000002, 0x100000, CRC(6117c19b) SHA1(6b9587fb864a325aec17a73046ba5b7be08a8dd2) )
5507 	ROM_LOAD64_WORD_SWAP( "c84-91.23", 0x000004, 0x100000, CRC(b1b0146c) SHA1(d01f08085d644b17445d904a4684c00f133f7bae) )
5508 	ROM_LOAD64_WORD_SWAP( "c84-93.31", 0x000006, 0x100000, CRC(8837bb4e) SHA1(c41fff198a3c87c6e1672174ede589434374c1b3) )
5509 
5510 	ROM_REGION16_LE( 0x80000, "tc0150rod", 0 )
5511 	ROM_LOAD16_WORD( "c84-84.12", 0x000000, 0x80000, CRC(34dc486b) SHA1(2f503be67adbc5293f2d1218c838416fd931796c) )    /* ROD, road lines */
5512 
5513 	ROM_REGION16_LE( 0x80000, "spritemap", 0 )
5514 	ROM_LOAD16_WORD( "c84-88.3", 0x00000, 0x80000, CRC(edd1f49c) SHA1(f11c419dcc7da03ef1f1665c1344c27ff35fe867) )   /* STY spritemap */
5515 
5516 	ROM_REGION( 0x180000, "ymsnd", 0 )  /* ADPCM samples */
5517 	ROM_LOAD( "c84-86.33", 0x000000, 0x100000, CRC(98d9771e) SHA1(0cbb6b08e1fa5e632309962d7ad7dca448ef4d78) )
5518 	ROM_LOAD( "c84-87.46", 0x100000, 0x080000, CRC(9c1dd80c) SHA1(e1bae4e02fd94413fac4683e39e530f9d508d658) )
5519 
5520 	ROM_REGION( 0x80000, "ymsnd.deltat", 0 )    /* Delta-T samples */
5521 	ROM_LOAD( "c84-85.31",  0x00000, 0x80000, CRC(24cd838d) SHA1(18139f7df191ff2d005d76b3a85a6fafb630ea42) )
5522 
5523 	ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
5524 	ROM_LOAD( "c84-19.15",  0x00000, 0x10000, CRC(7245a6f6) SHA1(5bdde4e3bcde8c59dc84478c3cc079d7ef8ee9c5) )
5525 	ROM_LOAD( "c84-07.22",  0x00000, 0x00100, CRC(95a15c77) SHA1(10246020776cf23c0659f41db66ae2c86db09ed2) )    // road A/B internal priority? bad dump?
5526 	ROM_LOAD( "c84-09.74",  0x00000, 0x00100, CRC(71217472) SHA1(69352cd484b4d5b41b37697aea24107dff8f1b24) )    // road/sprite priority and palette select?
5527 	ROM_LOAD( "c84-10.16",  0x00000, 0x00400, CRC(643e8bfc) SHA1(a6e6086fb8fbd102e01ec72fe60a4232f5909565) )
5528 	ROM_LOAD( "c84-11.17",  0x00000, 0x00400, CRC(10728853) SHA1(45d7cc8e06fbe01295cc2194bca9586f0ef8b12b) )
5529 ROM_END
5530 
5531 
5532 void taitoz_state::init_bshark()
5533 {
5534 	m_eep_latch = 0;
5535 
5536 	save_item(NAME(m_eep_latch));
5537 }
5538 
5539 
5540 GAMEL(1987, contcirc,   0,        contcirc,  contcirc,  taitoz_state, empty_init,  ROT0,               "Taito Corporation Japan",   "Continental Circus (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc )
5541 GAMEL(1987, contcircu,  contcirc, contcirc,  contcrcu,  taitoz_state, empty_init,  ROT0,               "Taito America Corporation", "Continental Circus (US set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc )
5542 GAMEL(1987, contcircua, contcirc, contcirc,  contcrcj,  taitoz_state, empty_init,  ROT0,               "Taito America Corporation", "Continental Circus (US set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc )
5543 GAMEL(1987, contcircj , contcirc, contcirc,  contcrcj,  taitoz_state, empty_init,  ROT0,               "Taito Corporation",         "Continental Circus (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc )
5544 
5545 GAMEL(1988, chasehq,    0,        chasehq,   chasehq,   taitoz_state, empty_init,  ROT0,               "Taito Corporation Japan",   "Chase H.Q. (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc )
5546 GAMEL(1988, chasehqj,   chasehq,  chasehq,   chasehqj,  taitoz_state, empty_init,  ROT0,               "Taito Corporation",         "Chase H.Q. (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc )
5547 GAMEL(1988, chasehqju,  chasehq,  chasehq,   chasehq,   taitoz_state, empty_init,  ROT0,               "Taito Corporation",         "Chase H.Q. (Japan, upright?)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc ) // same code rev as Chase H.Q. (World)
5548 GAMEL(1988, chasehqu,   chasehq,  chasehq,   chasehq,   taitoz_state, empty_init,  ROT0,               "Taito America Corporation", "Chase H.Q. (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc )
5549 
5550 GAME( 1988, enforce,    0,        enforce,   enforce,   taitoz_state, empty_init,  ROT0,               "Taito Corporation Japan",   "Enforce (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
5551 GAME( 1988, enforcej,   enforce,  enforce,   enforcej,  taitoz_state, empty_init,  ROT0,               "Taito Corporation",         "Enforce (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
5552 GAMEL( 1988, enforceja,  enforce,  enforce,  enforceja, taitoz_state, empty_init,  ROT0,               "Taito Corporation",         "Enforce (Japan, Analog Controls)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_enforce )
5553 
5554 GAME( 1989, bshark,     0,        bshark,    bshark,    taitoz_state, init_bshark, ORIENTATION_FLIP_X, "Taito Corporation Japan",   "Battle Shark (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
5555 GAME( 1989, bsharku,    bshark,   bshark,    bsharku,   taitoz_state, init_bshark, ORIENTATION_FLIP_X, "Taito America Corporation", "Battle Shark (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
5556 GAME( 1989, bsharkj,    bshark,   bshark,    bsharkj,   taitoz_state, init_bshark, ORIENTATION_FLIP_X, "Taito Corporation",         "Battle Shark (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
5557 GAME( 1989, bsharkjjs,  bshark,   bsharkjjs, bsharkjjs, taitoz_state, init_bshark, ORIENTATION_FLIP_X, "Taito Corporation",         "Battle Shark (Japan, Joystick)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
5558 
5559 GAMEL(1989, sci,        0,        sci,       sci,       taitoz_state, empty_init,  ROT0,               "Taito Corporation Japan",   "Special Criminal Investigation (World set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc )
5560 GAMEL(1989, scia,       sci,      sci,       sci,       taitoz_state, empty_init,  ROT0,               "Taito Corporation Japan",   "Special Criminal Investigation (World set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc )
5561 GAMEL(1989, scij,       sci,      sci,       scij,      taitoz_state, empty_init,  ROT0,               "Taito Corporation",         "Special Criminal Investigation (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc )
5562 GAMEL(1989, sciu,       sci,      sci,       sciu,      taitoz_state, empty_init,  ROT0,               "Taito America Corporation", "Special Criminal Investigation (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc )
5563 GAMEL(1991, scin,       sci,      sci,       sci,       taitoz_state, empty_init,  ROT0,               "hack (Negro Torino)",       "Super Special Criminal Investigation (Negro Torino hack)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_contcirc )
5564 
5565 GAME( 1989, nightstr,   0,        nightstr,  nightstr,  taitoz_state, empty_init,  ROT0,               "Taito Corporation Japan",   "Night Striker (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
5566 GAME( 1989, nightstrj,  nightstr, nightstr,  nghtstrj,  taitoz_state, empty_init,  ROT0,               "Taito Corporation",         "Night Striker (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
5567 GAME( 1989, nightstru,  nightstr, nightstr,  nghtstru,  taitoz_state, empty_init,  ROT0,               "Taito America Corporation", "Night Striker (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
5568 
5569 GAME( 1990, aquajack,   0,        aquajack,  aquajack,  taitoz_state, empty_init,  ROT0,               "Taito Corporation Japan",   "Aqua Jack (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
5570 GAME( 1990, aquajacku,  aquajack, aquajack,  aquajack,  taitoz_state, empty_init,  ROT0,               "Taito America Corporation", "Aqua Jack (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
5571 GAME( 1990, aquajackj,  aquajack, aquajack,  aquajckj,  taitoz_state, empty_init,  ROT0,               "Taito Corporation",         "Aqua Jack (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
5572 
5573 GAME( 1990, spacegun,   0,        spacegun,  spacegun,  taitoz_state, init_bshark, ORIENTATION_FLIP_X, "Taito Corporation Japan",   "Space Gun (World)", MACHINE_SUPPORTS_SAVE )
5574 GAME( 1990, spacegunj,  spacegun, spacegun,  spacegnj,  taitoz_state, init_bshark, ORIENTATION_FLIP_X, "Taito Corporation",         "Space Gun (Japan)", MACHINE_SUPPORTS_SAVE )
5575 GAME( 1990, spacegunu,  spacegun, spacegun,  spacegnu,  taitoz_state, init_bshark, ORIENTATION_FLIP_X, "Taito America Corporation", "Space Gun (US)", MACHINE_SUPPORTS_SAVE )
5576 
5577 GAMEL(1991, dblaxle,    0,        dblaxle,   dblaxles,  taitoz_state, empty_init,  ROT0,               "Taito America Corporation", "Double Axle (US, Rev 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_dblaxle )
5578 GAMEL(1991, dblaxleu,   dblaxle,  dblaxle,   dblaxles,  taitoz_state, empty_init,  ROT0,               "Taito America Corporation", "Double Axle (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_dblaxle )
5579 GAMEL(1991, dblaxleul,  dblaxle,  dblaxle,   dblaxle,   taitoz_state, empty_init,  ROT0,               "Taito America Corporation", "Double Axle (US, Rev 1, Linkable)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dblaxle )
5580 GAMEL(1991, pwheelsj,   dblaxle,  dblaxle,   pwheelsj,  taitoz_state, empty_init,  ROT0,               "Taito Corporation",         "Power Wheels (Japan, Rev 2, Linkable)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dblaxle )
5581 
5582 GAMEL(1991, racingb,    0,        racingb,   racingb,   taitoz_state, empty_init,  ROT0,               "Taito Corporation Japan",   "Racing Beat (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dblaxle )
5583 GAMEL(1991, racingbj,   racingb,  racingb,   racingb,   taitoz_state, empty_init,  ROT0,               "Taito Corporation",         "Racing Beat (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN, layout_dblaxle )
5584