1 // license:BSD-3-Clause
2 // copyright-holders:Aaron Giles
3 /***************************************************************************
4 
5     Sega Out Run hardware
6 
7 ****************************************************************************
8 
9     Known bugs:
10         * LED connected to stop lights no longer working
11 
12     To do for each game:
13         * verify analog input min/max
14         * verify protection
15 
16 --
17 
18 Guru's Outrun & Super Hang On Board Notes:
19 
20 Outrun & Super Hang On
21 Sega, 1986, 1987
22 
23 PCB Layouts
24 -----------
25 
26 CPU Board: The CPU board used on Outrun and Super Hang On is identical. Only the ROMs are changed,
27 all other chips including PALs/PLDs and custom chips are the same.
28 The non-encrypted versions are documented below as they are easy to repair and that version is used to
29 resurrect dead FD1089/1094 versions :-)
30 
31 171-5376-01
32 837-6063-01 SEGA 1986
33 Sticker: 837-6278-02 (for Super Hang On)
34 Sticker: 834-6277-02 SUPER HANG ON
35 Sticker: 834-6065-02 OUT RUN
36 Sticker: 834-6065-04 OUT RUN (REV B)
37 |-----------------------------------------------------------------------------------|
38 |                        IC71   TMM2115                      J     5.5V_0.1F        |
39 |                               TMM2115       16MHz                                 |
40 |                        IC70     |--------|          MF6CN-50                    N |
41 |                                 |315-5218|          MF6CN-50   4066  LM324        |
42 |                        IC69     |        |                                        |
43 |                                 |--------|          MP7633JN                    P |
44 |                        IC68                                                       |
45 |                                          Z80A              TL084               LED|
46 |                        IC67              IC88    315-5224           |-----------| |
47 |                                       TMM2115              YM3012   |SEGA       | |
48 |                        IC66                      YM2151             |315-5195   | |
49 | 315-5222 315-5155 315-5155            40MHz      MB3771             |           | |
50 | IC11          IC47                                                  |           | |
51 |                                                                     |-----------| |
52 |                           315-5225 315-5226                                       |
53 |                           |---------------------|         |---------------------| |
54 |          315-5223A        |        68000        |         |        68000        | |
55 |                           |---------------------|         |---------------------| |
56 |                                                                                   |
57 |                                                                                   |
58 |                                                                                   |
59 |                                                                                   |
60 |                               IC58        IC76                IC118       IC133   |
61 |                                                                                   |
62 |                               IC57        IC75                IC117       IC132   |
63 |           TMM2115   TMM2115                                                       |
64 |                               IC56        IC74                IC116       IC131   |
65 |           TMM2115   TMM2115                                                       |
66 |                               TMM2063     TMM2063             TMM2063     TMM2063 |
67 |                                                                                   |
68 |                               TMM2063     TMM2063             TMM2062     TMM2063 |
69 |                                                                                   |
70 |                                                                                   |
71 |         A                         B                                 C             |
72 |-----------------------------------------------------------------------------------|
73 Notes:
74       68000     - Clock Input 10.000MHz [40/4]
75       Z80A      - Clock Input 4.000MHz [16/4]
76       YM2151    - Yamaha YM2151 FM Operator Type M (OPM) Sound Generator IC. Clock Input 4.000MHz [16/4]
77       YM3012    - Yamaha YM3012 2-Channel Serial Input Floating Point Digital to Analog Converter (DIP16)
78       TMM2063   - Toshiba TMM2063 8kx8 SRAM (NDIP28)
79       TMM2115   - Toshiba TMM2115 2kx8 SRAM (NDIP24)
80       TL084     - Texas Instruments TL084 Quad JFET-Input General-Purpose Operational Amplifier (DIP14)
81       LM324     - National Semiconductor LM324 Low Power Quad Operational Amplifier (DIP14)
82       MP7633JN  - Exar Corporation MP7633JN 15V CMOS 10-Bit Multiplying Digital-to-Analog Converter (DIP16)
83                   Also equivalent to National Semiconductor DAC1022LCN and AD7520JN / AD7530JN
84       MF6CN-50  - National Semiconductor MF6CN-50 6th Order Switched Capacitor Butterworth Lowpass Filter (DIP14)
85       5.5V_0.1F - 0.1 Farad Super Cap for Capacitor Backed RAM
86       4066      - NEC D74HC4066 Quad Bilateral Switch (DIP14)
87       MB3771    - Fujitsu MB3771 Master Reset IC (DIP8)
88       J         - 10 Pin Connector for 5V Input and GND
89       N         - 6 Pin Connector for Unamplified Stereo Sound Output
90       P         - 4 Pin Connector (not used)
91       A/B/C     - 50 Pin Connectors (x3) for joining CPU Board to Video Board
92       315-5155  - Sega custom PAL (Road Bit Extraction) (DIP20)
93       315-5195  - Sega Memory Mapper IC (in PGA package)
94       315-5218  - Sega PCM Sound Controller IC (QFP100).
95                   Clock input 16.000MHz on pin 80
96                   Clock outputs: pin 2 - 4.000MHz, pin 80 - 500.000kHz, pin 89 - 62.500KHz
97       315-5222  - Signetics PLS153N (Road Mixing) (DIP20)
98       315-5223A - Signetics CK2605 (DIP20)
99       315-5224  - Signetics CK2605 (DIP20)
100       315-5225  - MMI PAL16R4 (DIP20)
101       315-5226  - MMI PAL16R4 (DIP20)
102 
103       Measurements
104       ------------
105       OSC1 - 39.99967MHz
106       OSC2 - 16.00019MHz
107 
108 
109       ROMs (EPR/MPR)
110       ----
111                      IC88  IC66  IC67  IC68  IC69  IC70  IC71  IC47  IC11  IC58  IC57  IC56  IC76  IC75  IC74  IC118  IC117  IC116  IC133  IC132  IC131
112       -------------------------------------------------------------------------------------------------------------------------------------------------
113       Out Run        10187 10193 10192 10191 10190 10189 10188 10186 10185 10329 10330 -     10327 10328 -     10382  10383  -      10380  10381  -
114       Super Hang On  10649 10643 10644 10645 10646 -     -     10642 -     10790 10791 -     10792 10793 -     10884  10885  -      10886  10887  -
115       -------------------------------------------------------------------------------------------------------------------------------------------------
116 
117 
118 Video Board: (Used only on Super Hang On)
119 
120 171-5480
121 837-6279 SEGA 1987
122 Sticker: 837-6279-03
123 |-----------------------------------------------------------------------------------|
124 |10675.8 10676.7 10677.6 10678.5 10679.4 10680.3 10681.2 IC1  LED  CN6       CN5    |
125 |                                                                                   |
126 |                                                                               DSWB|
127 |                                                                                   |
128 |10682.16 10683.15 10684.14 10685.13 10686.12 10687.11 10688.10 IC9                 |
129 |JP3 JP1                                                                        DSWA|
130 |JP4 JP2                                                                            |
131 |                                                                TLP521-4           |
132 |315-5251           315-5213          TMM2018  TMM2018           TLP521-4           |
133 |      |-----------|                                             TLP521-4           |
134 |      | SEGA      |                                             TLP521-4           |
135 |      | 315-5196  |                                                                |
136 |      |           |                                                   ULN2003      |
137 |      |           |                                                     D4051      |
138 |      |-----------|                                                             CN4|
139 |                                                                                   |
140 |                                                                                   |
141 |                                                                                   |
142 |                                                                                   |
143 |                                                                                   |
144 |  TMM2018  TMM2018  TMM2018  TMM2018                                               |
145 |JP5                                                                                |
146 |JP6  10650.56 10651.55 10652.54                                                    |
147 |                                  D42832   TMM2115                           DAP601|
148 |                                                                             DAP601|
149 |25.1748MHz                                                                 ADC0804 |
150 |      |-----------|                                                                |
151 |   JP7| SEGA      |               D42832   TMM2115                                 |
152 |      | 315-5197  |                                                                |
153 |JP8   |           |                                               |----------|     |
154 |      |           |                                               | SEGA     |     |
155 |      |-----------|               TMM2115  TMM2115                | 315-5242 |     |
156 |                                                                  |----------|     |
157 |         A                         B                                 C             |
158 |-----------------------------------------------------------------------------------|
159 Notes:
160       D42832   - NEC D42832 32kx8 SRAM (DIP28)
161       TMM2018  - Toshiba TMM2018 2kx8 SRAM (NDIP24)
162       TMM2115  - Toshiba TMM2115 2kx8 SRAM (NDIP24)
163       TLP521-4 - Toshiba TLP521-4 Photocoupler Gallium Arsenide Infrared Diode & Photo???Transistor (DIP16)
164       ADC0804  - National Semiconductor ADC0804 8-Bit Microprocessor Compatible A/D Converter (DIP20)
165       ULN2003  - NEC uPA2003 7 High-Voltage, High-Current Darlington Transistor Arrays (DIP16)
166       D4051    - NEC D4051 Single 8-Channel, Dual 4-Channel, Triple 2-Channel Analog Multiplexer/Demultiplexer with Logic Level Conversion (DIP16)
167       DAP601   - Diotec Semiconductor DAP601 Small Signal Diode Array IC (SIP7)
168       CN4      - 50 Pin Connector for Controls/Inputs/Outputs
169       CN5      - 6 Pin Connector for Video Output (RGB/Sync/GND)
170       CN6      - 10 Pin Connector for 5V Input and GND
171       A/B/C    - 50 Pin Connectors (x3) for joining Video Board to CPU Board
172       315-5196 - Sega Custom Sprite Generator (PGA package)
173       315-5197 - Sega Custom Tilemap Generator (PGA package)
174       315-5213 - MMI PAL16R6 (sprite-related) (DIP20)
175       315-5242 - Sega Custom Color Encoder (wide custom DIP32 ceramic package with surface mount caps/resistors/transistors and a QFP44 IC)
176       315-5251 - Signetics CK2605 (DIP20)
177       JPx      - 0-Ohm Resistors for ROM Configuration
178                  JP1: 512 populated
179                  JP2: 1M  populated from lower hole to JP4 upper hole (i.e. diagonally across both JP2 and JP4)
180                  JP3: 1M  not populated
181                  JP4: 512, see JP2
182                  JP5: 256 populated
183                  JP6: 512 not populated
184                  JP7: 512 not populated
185                  JP8: 256 populated
186       106xx.xx   ROMs, 1065x = 27C256, all other 106xx.xx are 27C512
187       IC1/9    - DIP28 sockets not populated
188 
189       Measurements
190       ------------
191       VSync - 60.0543Hz
192       HSync - 15.6740kHz
193       OSC1  - 25.1747MHz
194 
195 
196 Video Board: (Used only on Out Run)
197 
198 171-5377-01
199 837-6064 SEGA 1986
200 |-----------------------------------------------------------------------------------|
201 |HM65256 HM65256 HM65256 HM65256                              LED   K         H     |
202 |                HM65256 HM65256 HM65256 HM65256  TMM2063                           |
203 |                                                 TMM2063                       DSWB|
204 |                                                                                   |
205 |HM65256 HM65256 HM65256 HM65256                                                    |
206 |                HM65256 HM65256 HM65256 HM65256                                DSWA|
207 |                                                                                   |
208 |                                                                                   |
209 |                   25.1748MHz  TMM2018               TMM2015             2401      |
210 | |-----------|                 TMM2018               HM65256             2401      |
211 | | SEGA      |                                       TMM2015             2401      |
212 | | 315-5211  |                                       HM65256             2401      |
213 | |           |                                                                     |
214 | |           |                                                                     |
215 | |-----------|                                                                    G|
216 |               315-5227A                                                           |
217 |   R1    R2     R3                                                                 |
218 |                                                                                   |
219 |IC12 IC16 IC20 IC24 IC28 IC32 IC36 IC40 IC44                                       |
220 |                                                |-----------|       315-5228       |
221 |                                                | SEGA      |                      |
222 |                                                | 315-5197  |                      |
223 |IC11 IC15 IC19 IC23 IC27 IC31 IC35 IC39 IC43    |           |             UPD2003  |
224 |                                                |           |             UPD2003 F|
225 |                                                |-----------|             UPD2003  |
226 |                                                     R11 R12 R13                   |
227 |IC10 IC14 IC18 IC22 IC26 IC30 IC34 IC38 IC42  IC102 IC103 IC104                    |
228 |                                                                                   |
229 |                                                                      8255         |
230 |                                                                                   |
231 |IC9  IC13 IC17 IC21 IC25 IC29 IC33 IC37 IC41  IC99  IC100 IC101            DAP601  |
232 |                                                                           DAP601 D|
233 |                                                                           ADC0804 |
234 |         A                         B                                 C     4051    |
235 |-----------------------------------------------------------------------------------|
236 Notes:
237       HM65256  - Hitachi HM65256 or uPD42832 32kx8 SRAM (DIP28)
238       TMM2063  - Toshiba TMM2063 8kx8 SRAM (NDIP28)
239       TMM2018  - Toshiba TMM2018 2kx8 SRAM (NDIP24)
240       TMM2015  - Toshiba TMM2015 2kx8 SRAM (NDIP24)
241       ADC0804  - National Semiconductor ADC0804 8-Bit Microprocessor Compatible A/D Converter (DIP20)
242       ULN2003  - NEC uPA2003 7 High-Voltage, High-Current Darlington Transistor Arrays (DIP16)
243       D4051    - NEC D4051 Single 8-Channel, Dual 4-Channel, Triple 2-Channel Analog Multiplexer/Demultiplexer with Logic Level Conversion (DIP16)
244       DAP601   - Diotec Semiconductor DAP601 Small Signal Diode Array IC (SIP7)
245       8255     - NEC D8255AC-2 Programmable Peripheral Interface Adapter (DIP40)
246       2401     - NEC 2401 (or Sharp PC817) 4-Channel Type Photocoupler (DIP16)
247       G        - 50 Pin Connector for Controls/Inputs/Outputs
248       H        - 6 Pin Connector for Video Output (RGB/Sync/GND)
249       K        - 10 Pin Connector for 5V Input and GND
250       A/B/C    - 50 Pin Connectors (x3) for joining Video Board to CPU Board
251       F        - 26 Pin Connector
252       D        - 20 Pin Connector
253       315-5197 - Sega Custom Tilemap Generator (PGA package)
254       315-5211 - Sega Custom Sprite Generator (PGA package)
255       315-5227A- Signetics CK2678 (DIP20)
256       315-5228 - Signetics CK2605 (DIP20)
257       R1/2/3   - 0-Ohm Resistors for ROM Configuration (for IC9 - IC44)
258                  For 831000 mask ROMs: R1 populated, R2 & R3 not populated
259                  For 27C256 EPROMs: R1 not populated, R2 & R3 populated
260                  Other possible configurations unknown
261       R11/12/13- 0-Ohm Resistors for ROM Configuration (for IC99 - IC104)
262                  For 27C256 EPROMs: R11 & R13 populated, R12 not populated
263                  Other possible configurations unknown
264       ICxx     - DIP28 sockets
265 
266       Measurements
267       ------------
268       VSync - 60.0543Hz
269       HSync - 15.6740kHz
270       OSC1  - 25.1747MHz
271 
272 ***************************************************************************/
273 
274 #include "emu.h"
275 #include "includes/segaorun.h"
276 #include "includes/segaipt.h"
277 
278 #include "machine/fd1089.h"
279 #include "sound/ym2151.h"
280 #include "sound/segapcm.h"
281 #include "speaker.h"
282 
283 #include "outrun.lh"
284 
285 
286 //**************************************************************************
287 //  CONSTANTS
288 //**************************************************************************
289 
290 const auto MASTER_CLOCK = XTAL(40'000'000);
291 const auto SOUND_CLOCK = XTAL(16'000'000);
292 const auto MASTER_CLOCK_25MHz = XTAL(25'174'800);
293 
294 //**************************************************************************
295 //  PPI READ/WRITE CALLBACKS
296 //**************************************************************************
297 
298 //-------------------------------------------------
299 //  unknown_port*_r - loggers for reading
300 //  unknown ports
301 //-------------------------------------------------
302 
unknown_porta_r()303 uint8_t segaorun_state::unknown_porta_r()
304 {
305 	//logerror("%06X:read from 8255 port A\n", m_maincpu->pc());
306 	return m_adc->intr_r() << 6;
307 }
308 
unknown_portb_r()309 uint8_t segaorun_state::unknown_portb_r()
310 {
311 	//logerror("%06X:read from 8255 port B\n", m_maincpu->pc());
312 	return 0;
313 }
314 
unknown_portc_r()315 uint8_t segaorun_state::unknown_portc_r()
316 {
317 	//logerror("%06X:read from 8255 port C\n", m_maincpu->pc());
318 	return 0;
319 }
320 
321 
322 //-------------------------------------------------
323 //  unknown_port*_w - loggers for writing
324 //  unknown ports
325 //-------------------------------------------------
326 
unknown_porta_w(uint8_t data)327 void segaorun_state::unknown_porta_w(uint8_t data)
328 {
329 	//logerror("%06X:write %02X to 8255 port A\n", m_maincpu->pc(), data);
330 }
331 
unknown_portb_w(uint8_t data)332 void segaorun_state::unknown_portb_w(uint8_t data)
333 {
334 	//logerror("%06X:write %02X to 8255 port B\n", m_maincpu->pc(), data);
335 }
336 
337 
338 //-------------------------------------------------
339 //  video_control_w - display enable, ADC select,
340 //  sound interrupt control
341 //-------------------------------------------------
342 
video_control_w(uint8_t data)343 void segaorun_state::video_control_w(uint8_t data)
344 {
345 	// PPI Output port C:
346 	//  D7: SG1 -- connects to sprite chip
347 	//  D6: SG0 -- connects to mixing
348 	//  D5: Screen display (1= blanked, 0= displayed)
349 	//  D4-D2: (ADC2-0)
350 	//  D1: (CONT) - affects sprite hardware
351 	//  D0: Sound section reset (1= normal operation, 0= reset)
352 
353 	m_segaic16vid->set_display_enable(data & 0x20);
354 	m_adc_select = (data >> 2) & 7;
355 	m_soundcpu->set_input_line(INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE);
356 }
357 
358 
359 //-------------------------------------------------
360 //  bankmotor_limit_r - bank motor limit switches
361 //  for deluxe cabs
362 //-------------------------------------------------
363 
bankmotor_limit_r()364 uint8_t segaorun_state::bankmotor_limit_r()
365 {
366 	uint8_t ret = 0xff;
367 
368 	// PPI Input port A:
369 	//  D6: ADC interrupt
370 	//  D5: left limit
371 	//  D4: center
372 	//  D3: right limit
373 	//  other bits: ?
374 	uint8_t pos = m_bankmotor_pos >> 8 & 0xff;
375 
376 	// these values may need to be tweaked when hooking up real motors to MAME
377 	const int left_limit = 0x20;
378 	const int center = 0x80;
379 	const int right_limit = 0xe0;
380 	const int tolerance = 2;
381 
382 	if (pos <= left_limit + tolerance)
383 		ret ^= 0x20;
384 	else if (pos >= center - tolerance && pos <= center + tolerance)
385 		ret ^= 0x10;
386 	else if (pos >= right_limit - tolerance)
387 		ret ^= 0x08;
388 
389 	if (!m_adc->intr_r())
390 		ret ^= 0x40;
391 
392 	return ret;
393 }
394 
395 
396 //-------------------------------------------------
397 //  bankmotor_control_w - bank motor control
398 //  for deluxe cabs
399 //-------------------------------------------------
400 
bankmotor_control_w(uint8_t data)401 void segaorun_state::bankmotor_control_w(uint8_t data)
402 {
403 	// PPI Output port B
404 	data &= 0x0f;
405 
406 	if (data == 0)
407 		return;
408 
409 	m_bankmotor_delta = 8 - data;
410 
411 	// convert to speed and direction for output
412 	if (data < 8)
413 	{
414 		// left
415 		output().set_value("Bank_Motor_Direction", 1);
416 		output().set_value("Bank_Motor_Speed", 8 - data);
417 	}
418 	else if (data == 8)
419 	{
420 		// no movement
421 		output().set_value("Bank_Motor_Direction", 0);
422 		output().set_value("Bank_Motor_Speed", 0);
423 	}
424 	else
425 	{
426 		// right
427 		output().set_value("Bank_Motor_Direction", 2);
428 		output().set_value("Bank_Motor_Speed", data - 8);
429 	}
430 }
431 
432 
433 
434 //**************************************************************************
435 //  MEMORY MAPPING
436 //**************************************************************************
437 
438 //-------------------------------------------------
439 //  memory_mapper - callback to implement memory
440 //  mapping for a given index
441 //-------------------------------------------------
442 
memory_mapper(sega_315_5195_mapper_device & mapper,uint8_t index)443 void segaorun_state::memory_mapper(sega_315_5195_mapper_device &mapper, uint8_t index)
444 {
445 	switch (index)
446 	{
447 		case 5:
448 			mapper.map_as_handler(0x90000, 0x10000, 0xf00000, read16_delegate(*this, FUNC(segaorun_state::sega_road_control_0_r)), write16_delegate(*this, FUNC(segaorun_state::sega_road_control_0_w)));
449 			mapper.map_as_ram(0x80000, 0x01000, 0xf0f000, "segaic16road:roadram", write16_delegate(*this));
450 			mapper.map_as_ram(0x60000, 0x08000, 0xf18000, "cpu1ram", write16_delegate(*this));
451 			mapper.map_as_ram(0x00000, 0x60000, 0xf00000, "cpu1rom", write16_delegate(*this, FUNC(segaorun_state::nop_w)));
452 			break;
453 
454 		case 4:
455 			mapper.map_as_handler(0x90000, 0x10000, 0xf00000, read16_delegate(*this, FUNC(segaorun_state::misc_io_r)), write16_delegate(*this, FUNC(segaorun_state::misc_io_w)));
456 			break;
457 
458 		case 3:
459 			mapper.map_as_ram(0x00000, 0x01000, 0xfff000, "sprites", write16_delegate(*this));
460 			break;
461 
462 		case 2:
463 			mapper.map_as_ram(0x00000, 0x02000, 0xffe000, "paletteram", write16_delegate(*this, FUNC(segaorun_state::paletteram_w)));
464 			break;
465 
466 		case 1:
467 			mapper.map_as_ram(0x00000, 0x10000, 0xfe0000, "tileram", write16_delegate(*this, FUNC(segaorun_state::tileram_w)));
468 			mapper.map_as_ram(0x10000, 0x01000, 0xfef000, "textram", write16_delegate(*this, FUNC(segaorun_state::textram_w)));
469 			break;
470 
471 		case 0:
472 			mapper.map_as_ram(0x60000, 0x08000, 0xf98000, "workram", write16_delegate(*this));
473 			mapper.map_as_rom(0x00000, 0x60000, 0xf80000, "rom0base", "decrypted_rom0base", 0x00000, write16_delegate(*this));
474 			break;
475 	}
476 }
477 
478 
479 
480 //**************************************************************************
481 //  MAIN CPU READ/WRITE HANDLERS
482 //**************************************************************************
483 
484 //-------------------------------------------------
485 //  misc_io_r - miscellaneous I/O reads
486 //-------------------------------------------------
487 
misc_io_r(address_space & space,offs_t offset,uint16_t mem_mask)488 uint16_t segaorun_state::misc_io_r(address_space &space, offs_t offset, uint16_t mem_mask)
489 {
490 	if (!m_custom_io_r.isnull())
491 		return m_custom_io_r(space, offset);
492 
493 	logerror("%06X:misc_io_r - unknown read access to address %04X\n", m_maincpu->pc(), offset * 2);
494 	return m_mapper->open_bus_r();
495 }
496 
497 
498 //-------------------------------------------------
499 //  misc_io_w - miscellaneous I/O writes
500 //-------------------------------------------------
501 
misc_io_w(address_space & space,offs_t offset,uint16_t data,uint16_t mem_mask)502 void segaorun_state::misc_io_w(address_space &space, offs_t offset, uint16_t data, uint16_t mem_mask)
503 {
504 	if (!m_custom_io_w.isnull())
505 	{
506 		m_custom_io_w(offset, data, mem_mask);
507 		return;
508 	}
509 
510 	logerror("%06X:misc_io_w - unknown write access to address %04X = %04X & %04X\n", m_maincpu->pc(), offset * 2, data, mem_mask);
511 }
512 
513 
514 //-------------------------------------------------
515 //  nop_w - no-op write when mapping ROMs as RAM
516 //-------------------------------------------------
517 
nop_w(address_space & space,offs_t offset,uint16_t data,uint16_t mem_mask)518 void segaorun_state::nop_w(address_space &space, offs_t offset, uint16_t data, uint16_t mem_mask)
519 {
520 }
521 
522 
523 
524 //**************************************************************************
525 //  DRIVER OVERRIDES
526 //**************************************************************************
527 
528 //-------------------------------------------------
529 //  machine_reset - reset the state of the machine
530 //-------------------------------------------------
531 
machine_reset()532 void segaorun_state::machine_reset()
533 {
534 	// reset misc components
535 	if (m_custom_map != nullptr)
536 		m_mapper->configure_explicit(m_custom_map);
537 	m_segaic16vid->tilemap_reset(*m_screen);
538 
539 	// hook the RESET line, which resets CPU #1
540 	m_maincpu->set_reset_callback(*this, FUNC(segaorun_state::m68k_reset_callback));
541 
542 	// start timers to track interrupts
543 	m_scanline_timer->adjust(m_screen->time_until_pos(223), 223);
544 }
545 
546 
547 //-------------------------------------------------
548 //  device_timer - handle device timers
549 //-------------------------------------------------
550 
device_timer(emu_timer & timer,device_timer_id id,int param,void * ptr)551 void segaorun_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
552 {
553 	switch (id)
554 	{
555 		case TID_IRQ2_GEN:
556 			// set the IRQ2 line
557 			m_irq2_state = 1;
558 			update_main_irqs();
559 			break;
560 
561 		case TID_SCANLINE:
562 		{
563 			int scanline = param;
564 			int next_scanline = scanline;
565 
566 			// trigger IRQs on certain scanlines
567 			switch (scanline)
568 			{
569 				// IRQ2 triggers on HBLANK of scanlines 65, 129, 193
570 				case 65:
571 				case 129:
572 				case 193:
573 					m_irq2_gen_timer->adjust(m_screen->time_until_pos(scanline, m_screen->visible_area().max_x + 1));
574 					next_scanline = scanline + 1;
575 					break;
576 
577 				// IRQ2 turns off at the start of scanlines 66, 130, 194
578 				case 66:
579 				case 130:
580 				case 194:
581 					m_irq2_state = 0;
582 					next_scanline = (scanline == 194) ? 223 : (scanline + 63);
583 					break;
584 
585 				// VBLANK triggers on scanline 223
586 				case 223:
587 					m_vblank_irq_state = 1;
588 					next_scanline = scanline + 1;
589 					m_subcpu->set_input_line(4, ASSERT_LINE);
590 					break;
591 
592 				// VBLANK turns off at the start of scanline 224
593 				case 224:
594 					m_vblank_irq_state = 0;
595 					next_scanline = 65;
596 					m_subcpu->set_input_line(4, CLEAR_LINE);
597 					break;
598 
599 				default:
600 					break;
601 			}
602 
603 			// update IRQs on the main CPU
604 			update_main_irqs();
605 
606 			// come back at the next targeted scanline
607 			timer.adjust(m_screen->time_until_pos(next_scanline), next_scanline);
608 			break;
609 		}
610 
611 		default:
612 			throw emu_fatalerror("Unknown id in segaorun_state::device_timer");
613 	}
614 }
615 
616 
TIMER_DEVICE_CALLBACK_MEMBER(segaorun_state::bankmotor_update)617 TIMER_DEVICE_CALLBACK_MEMBER(segaorun_state::bankmotor_update)
618 {
619 	// arbitrary timer for updating bank motor position
620 	// these values may need to be tweaked when hooking up real motors to MAME
621 	const int speed = 100;
622 	const int left_limit = 0x2000;
623 	const int right_limit = 0xe000;
624 
625 	m_bankmotor_pos += speed * m_bankmotor_delta;
626 	if (m_bankmotor_pos <= left_limit)
627 		m_bankmotor_pos = left_limit;
628 	else if (m_bankmotor_pos >= right_limit)
629 		m_bankmotor_pos = right_limit;
630 }
631 
632 
633 
634 //**************************************************************************
635 //  CUSTOM I/O HANDLERS
636 //**************************************************************************
637 
638 //-------------------------------------------------
639 //  outrun_custom_io_r - custom I/O read handler
640 //  for Out Run
641 //-------------------------------------------------
642 
outrun_custom_io_r(address_space & space,offs_t offset)643 uint16_t segaorun_state::outrun_custom_io_r(address_space &space, offs_t offset)
644 {
645 	offset &= 0x7f/2;
646 	switch (offset & 0x70/2)
647 	{
648 		case 0x00/2:
649 			return m_i8255->read(offset & 3);
650 
651 		case 0x10/2:
652 		{
653 			return m_digital_ports[offset & 3]->read();
654 		}
655 
656 		case 0x30/2:
657 			return m_adc->read();
658 
659 		case 0x60/2:
660 			return m_watchdog->reset_r(space);
661 
662 		default:
663 			break;
664 	}
665 
666 	logerror("%06X:outrun_custom_io_r - unknown read access to address %04X\n", m_maincpu->pc(), offset * 2);
667 	return m_mapper->open_bus_r();
668 }
669 
670 
671 //-------------------------------------------------
672 //  outrun_custom_io_w - custom I/O write handler
673 //  for Out Run
674 //-------------------------------------------------
675 
outrun_custom_io_w(offs_t offset,uint16_t data,uint16_t mem_mask)676 void segaorun_state::outrun_custom_io_w(offs_t offset, uint16_t data, uint16_t mem_mask)
677 {
678 	offset &= 0x7f/2;
679 	switch (offset & 0x70/2)
680 	{
681 		case 0x00/2:
682 			if (ACCESSING_BITS_0_7)
683 				m_i8255->write(offset & 3, data);
684 			return;
685 
686 		case 0x20/2:
687 			if (ACCESSING_BITS_0_7)
688 			{
689 				// Output port:
690 				//  D7: /MUTE
691 				//  D5: Vibration motor
692 				//  D2: Start lamp
693 				//  D1: Brake lamp
694 				//  other bits: ?
695 				machine().sound().system_enable(data & 0x80);
696 				output().set_value("Vibration_motor", data >> 5 & 1);
697 				output().set_value("Start_lamp", data >> 2 & 1);
698 				output().set_value("Brake_lamp", data >> 1 & 1);
699 			}
700 			return;
701 
702 		case 0x30/2:
703 			m_adc->write();
704 			return;
705 
706 		case 0x60/2:
707 			m_watchdog->watchdog_reset();
708 			return;
709 
710 		case 0x70/2:
711 			m_sprites->draw_write(data);
712 			return;
713 
714 		default:
715 			break;
716 	}
717 
718 	logerror("%06X:misc_io_w - unknown write access to address %04X = %04X & %04X\n", m_maincpu->pc(), offset * 2, data, mem_mask);
719 }
720 
721 
722 //-------------------------------------------------
723 //  shangon_custom_io_r - custom I/O read handler
724 //  for Super Hang-On
725 //-------------------------------------------------
726 
shangon_custom_io_r(address_space & space,offs_t offset)727 uint16_t segaorun_state::shangon_custom_io_r(address_space &space, offs_t offset)
728 {
729 	offset &= 0x303f/2;
730 	switch (offset)
731 	{
732 		case 0x1000/2:
733 		case 0x1002/2:
734 		case 0x1004/2:
735 		case 0x1006/2:
736 		{
737 			return m_digital_ports[offset & 3]->read();
738 		}
739 
740 		case 0x3020/2:
741 			return m_adc->read();
742 
743 		default:
744 			break;
745 	}
746 
747 	logerror("%06X:misc_io_r - unknown read access to address %04X\n", m_maincpu->pc(), offset * 2);
748 	return m_mapper->open_bus_r();
749 }
750 
751 
752 //-------------------------------------------------
753 //  shangon_custom_io_w - custom I/O write handler
754 //  for Super Hang-On
755 //-------------------------------------------------
756 
shangon_custom_io_w(offs_t offset,uint16_t data,uint16_t mem_mask)757 void segaorun_state::shangon_custom_io_w(offs_t offset, uint16_t data, uint16_t mem_mask)
758 {
759 	offset &= 0x303f/2;
760 	switch (offset)
761 	{
762 		case 0x0000/2:
763 			if (ACCESSING_BITS_0_7)
764 			{
765 				// Output port:
766 				//  D7-D6: (ADC1-0)
767 				//  D5: Screen display
768 				//  D3: Vibration motor
769 				//  D2: Start lamp
770 				//  other bits: ?
771 				m_adc_select = data >> 6 & 3;
772 				m_segaic16vid->set_display_enable(data >> 5 & 1);
773 				output().set_value("Vibration_motor", data >> 3 & 1);
774 				output().set_value("Start_lamp", data >> 2 & 1);
775 			}
776 			return;
777 
778 		case 0x0020/2:
779 			if (ACCESSING_BITS_0_7)
780 			{
781 				// Output port:
782 				//  D0: Sound section reset (1= normal operation, 0= reset)
783 				m_soundcpu->set_input_line(INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
784 			}
785 			return;
786 
787 		case 0x3000/2:
788 			m_watchdog->watchdog_reset();
789 			return;
790 
791 		case 0x3020/2:
792 			m_adc->write();
793 			return;
794 
795 		default:
796 			break;
797 	}
798 
799 	logerror("%06X:misc_io_w - unknown write access to address %04X = %04X & %04X\n", m_maincpu->pc(), offset * 2, data, mem_mask);
800 }
801 
802 
803 //-------------------------------------------------
804 //  analog_r - read multiplexed analog ports
805 //-------------------------------------------------
806 
analog_r()807 uint8_t segaorun_state::analog_r()
808 {
809 	return m_adc_ports[m_adc_select].read_safe(0x10);
810 }
811 
812 
813 
814 //**************************************************************************
815 //  INTERNAL HELPERS
816 //**************************************************************************
817 
818 //-------------------------------------------------
819 //  update_main_irqs - flush IRQ state to the
820 //  CPU device
821 //-------------------------------------------------
822 
update_main_irqs()823 void segaorun_state::update_main_irqs()
824 {
825 	// update IRQ states on all IRQ lines
826 	m_maincpu->set_input_line(2, m_irq2_state ? ASSERT_LINE : CLEAR_LINE);
827 	m_maincpu->set_input_line(4, m_vblank_irq_state ? ASSERT_LINE : CLEAR_LINE);
828 	m_maincpu->set_input_line(6, (m_vblank_irq_state && m_irq2_state) ? ASSERT_LINE : CLEAR_LINE);
829 
830 	// boost interleave during VBLANK and IRQ2 signals
831 	if (m_vblank_irq_state || m_irq2_state)
832 		machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
833 }
834 
835 
836 //-------------------------------------------------
837 //  m68k_reset_callback - callback for when the
838 //  main 68000 is reset
839 //-------------------------------------------------
840 
WRITE_LINE_MEMBER(segaorun_state::m68k_reset_callback)841 WRITE_LINE_MEMBER(segaorun_state::m68k_reset_callback)
842 {
843 	m_subcpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero);
844 }
845 
846 
847 
848 //**************************************************************************
849 //  MAIN CPU MEMORY MAP
850 //**************************************************************************
851 
outrun_map(address_map & map)852 void segaorun_state::outrun_map(address_map &map)
853 {
854 	map.unmap_value_high();
855 	map(0x000000, 0xffffff).rw(m_mapper, FUNC(sega_315_5195_mapper_device::read), FUNC(sega_315_5195_mapper_device::write)).umask16(0x00ff);
856 
857 	// these get overwritten by the memory mapper above, but we put them here
858 	// so they are properly allocated and tracked for saving
859 	map(0x100000, 0x100fff).ram().share("sprites");
860 	map(0x200000, 0x201fff).ram().share("paletteram");
861 	map(0x300000, 0x30ffff).ram().share("tileram");
862 	map(0x400000, 0x400fff).ram().share("textram");
863 	map(0x500000, 0x507fff).ram().share("workram");
864 }
865 
decrypted_opcodes_map(address_map & map)866 void segaorun_state::decrypted_opcodes_map(address_map &map)
867 {
868 	map(0x00000, 0xfffff).bankr("fd1094_decrypted_opcodes");
869 }
870 
871 //**************************************************************************
872 //  SECOND CPU MEMORY MAP
873 //**************************************************************************
874 
sub_map(address_map & map)875 void segaorun_state::sub_map(address_map &map)
876 {
877 	map.unmap_value_high();
878 	map.global_mask(0xfffff);
879 	map(0x000000, 0x05ffff).rom().share("cpu1rom");
880 	map(0x060000, 0x067fff).mirror(0x018000).ram().share("cpu1ram");
881 	map(0x080000, 0x080fff).mirror(0x00f000).ram().share("segaic16road:roadram");
882 	map(0x090000, 0x09ffff).rw(m_segaic16road, FUNC(segaic16_road_device::segaic16_road_control_0_r), FUNC(segaic16_road_device::segaic16_road_control_0_w));
883 }
884 
885 
886 
887 //**************************************************************************
888 //  SOUND CPU MEMORY MAP
889 //**************************************************************************
890 
sound_map(address_map & map)891 void segaorun_state::sound_map(address_map &map)
892 {
893 	map.unmap_value_high();
894 	map(0x0000, 0xefff).rom();
895 	map(0xf000, 0xf0ff).mirror(0x0700).rw("pcm", FUNC(segapcm_device::read), FUNC(segapcm_device::write));
896 	map(0xf800, 0xffff).ram();
897 }
898 
sound_portmap(address_map & map)899 void segaorun_state::sound_portmap(address_map &map)
900 {
901 	map.unmap_value_high();
902 	map.global_mask(0xff);
903 	map(0x00, 0x01).mirror(0x3e).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
904 	map(0x40, 0x40).mirror(0x3f).r(m_mapper, FUNC(sega_315_5195_mapper_device::pread));
905 }
906 
907 
908 
909 //**************************************************************************
910 //  GENERIC PORT DEFINITIONS
911 //**************************************************************************
912 
CUSTOM_INPUT_MEMBER(segaorun_state::bankmotor_pos_r)913 CUSTOM_INPUT_MEMBER(segaorun_state::bankmotor_pos_r)
914 {
915 	return m_bankmotor_pos >> 8 & 0xff;
916 }
917 
918 
919 static INPUT_PORTS_START( outrun_generic )
920 	PORT_START("SERVICE")
921 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
922 	PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW )
923 	PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
924 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
925 	PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Gear Shift") PORT_TOGGLE
926 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
927 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
928 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
929 
930 	PORT_START("UNKNOWN")
931 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
932 
933 	PORT_START("COINAGE")
SEGA_COINAGE_LOC(SWA)934 	SEGA_COINAGE_LOC(SWA)
935 
936 	PORT_START("DSW")
937 	PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SWB:1" )
938 	PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SWB:2" )
939 	PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) )  PORT_DIPLOCATION("SWB:3")
940 	PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
941 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
942 	PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_LOW, "SWB:4" )
943 	PORT_DIPNAME( 0x30, 0x30, "Time Adj." )  PORT_DIPLOCATION("SWB:5,6")
944 	PORT_DIPSETTING(    0x20, DEF_STR( Easy ) )
945 	PORT_DIPSETTING(    0x30, DEF_STR( Normal ) )
946 	PORT_DIPSETTING(    0x10, DEF_STR( Hard ) )
947 	PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
948 	PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:7,8") // Number of Enemy Cars
949 	PORT_DIPSETTING(    0x80, DEF_STR( Easy ) )
950 	PORT_DIPSETTING(    0xc0, DEF_STR( Normal ) )
951 	PORT_DIPSETTING(    0x40, DEF_STR( Hard ) )
952 	PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
953 
954 	PORT_START("ADC.0")  // steering
955 	PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4)
956 
957 	PORT_START("ADC.1")  // gas pedal
958 	PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20)
959 
960 	PORT_START("ADC.2")  // brake
961 	PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(100) PORT_KEYDELTA(40)
962 
963 	PORT_START("ADC.3")
964 	PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(segaorun_state, bankmotor_pos_r)
965 INPUT_PORTS_END
966 
967 
968 
969 //**************************************************************************
970 //  GAME-SPECIFIC PORT DEFINITIONS
971 //**************************************************************************
972 
973 static INPUT_PORTS_START( outrun )
974 	PORT_INCLUDE( outrun_generic )
975 
976 	PORT_MODIFY("DSW")
977 	PORT_DIPNAME( 0x03, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1,2")
978 	PORT_DIPSETTING(    0x03, "Moving" )
979 	PORT_DIPSETTING(    0x02, "Up Cockpit" )
980 	PORT_DIPSETTING(    0x01, "Mini Up" )
981 	PORT_DIPSETTING(    0x00, DEF_STR( Unused ) )
982 INPUT_PORTS_END
983 
984 static INPUT_PORTS_START( outruneh )
985 	PORT_INCLUDE( outrun_generic )
986 
987 	PORT_MODIFY("DSW")
988 	PORT_DIPNAME( 0x03, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1,2")
989 	PORT_DIPSETTING(    0x03, "Moving" )
990 	PORT_DIPSETTING(    0x02, "Up Cockpit" )
991 	PORT_DIPSETTING(    0x01, "Mini Up" )
992 	PORT_DIPSETTING(    0x00, DEF_STR( Unused ) )
993 	PORT_DIPNAME( 0x08, 0x08, "Speed Indicator" )  PORT_DIPLOCATION("SWB:4")
994 	PORT_DIPSETTING(    0x08, "km/h" )
995 	PORT_DIPSETTING(    0x00, "MPH" )
996 INPUT_PORTS_END
997 
998 
999 static INPUT_PORTS_START( outrundx )
1000 	PORT_INCLUDE( outrun_generic )
1001 
1002 	PORT_MODIFY("DSW")
1003 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1")
1004 	PORT_DIPSETTING(    0x00, "Not Moving" )
1005 	PORT_DIPSETTING(    0x01, "Moving" )
1006 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2")
1007 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1008 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1009 	PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SWB:3" )
1010 INPUT_PORTS_END
1011 
1012 static INPUT_PORTS_START( outrundxeh )
1013 	PORT_INCLUDE( outrun_generic )
1014 
1015 	PORT_MODIFY("DSW")
1016 	PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1")
1017 	PORT_DIPSETTING(    0x00, "Not Moving" )
1018 	PORT_DIPSETTING(    0x01, "Moving" )
1019 	PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2")
1020 	PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1021 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1022 	PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SWB:3" )
1023 	PORT_DIPNAME( 0x08, 0x08, "Speed Indicator" )  PORT_DIPLOCATION("SWB:4")
1024 	PORT_DIPSETTING(    0x08, "km/h" )
1025 	PORT_DIPSETTING(    0x00, "MPH" )
1026 INPUT_PORTS_END
1027 
1028 
1029 // This is used by the Outrun to Turbo Outrun conversion kit
1030 // In service mode, all four settings for DSW-B 1&2 are valid
1031 // In game, uses motors only if DSW-B 1&2 are both OFF ("Moving")
1032 static INPUT_PORTS_START( toutrun )
1033 	PORT_INCLUDE( outrun_generic )
1034 
1035 	PORT_MODIFY("SERVICE")
1036 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Turbo")
1037 
1038 	PORT_MODIFY("DSW")
1039 	PORT_DIPNAME( 0x03, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1,2")
1040 	PORT_DIPSETTING(    0x03, "Moving" )
1041 	PORT_DIPSETTING(    0x02, "Cockpit Conversion" )
1042 	PORT_DIPSETTING(    0x01, "Mini Up" )
1043 	PORT_DIPSETTING(    0x00, "Cockpit" )
1044 	PORT_DIPNAME( 0x08, 0x08, "Turbo" ) PORT_DIPLOCATION("SWB:4")
1045 	PORT_DIPSETTING(    0x00, "Use Start Button" )
1046 	PORT_DIPSETTING(    0x08, "Use Turbo Shifter" )
1047 	PORT_DIPNAME( 0x30, 0x10, "Credits" ) PORT_DIPLOCATION("SWB:5,6")
1048 	PORT_DIPSETTING(    0x20, "3 to Start/2 to Continue" )
1049 	PORT_DIPSETTING(    0x30, "2 to Start/1 to Continue" )
1050 	PORT_DIPSETTING(    0x10, "1 to Start/1 to Continue" )
1051 	PORT_DIPSETTING(    0x00, "2 to Start/2 to Continue" )
1052 INPUT_PORTS_END
1053 
1054 
1055 // This is used by the deluxe cockpit version
1056 // In service mode, the only valid setting for DSW-B 1&2 is both OFF ("Moving")
1057 // In game, uses motors regardless of DSW-B 1&2 setting
1058 static INPUT_PORTS_START( toutrunm )
1059 	PORT_INCLUDE( toutrun )
1060 
1061 	PORT_MODIFY("DSW")
1062 	PORT_DIPNAME( 0x03, 0x03, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1,2")
1063 	PORT_DIPSETTING(    0x03, "Moving" )
1064 	PORT_DIPSETTING(    0x02, DEF_STR( Unused ) )
1065 	PORT_DIPSETTING(    0x01, DEF_STR( Unused ) )
1066 	PORT_DIPSETTING(    0x00, DEF_STR( Unused ) )
1067 INPUT_PORTS_END
1068 
1069 
1070 // This is used by the sitdown/cockpit version
1071 // In service mode, the only valid setting for DSW-B 1&2 is both ON ("Cockpit")
1072 // In game, does not use motors regardless of DSW-B 1&2 setting
1073 // In service mode, the only valid setting for DSW-B 4 is OFF
1074 // In game, always uses Turbo Shifter button regardless of DSW-B 4 setting
1075 static INPUT_PORTS_START( toutrunc )
1076 	PORT_INCLUDE( toutrun )
1077 
1078 	PORT_MODIFY("DSW")
1079 	PORT_DIPNAME( 0x03, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1,2")
1080 	PORT_DIPSETTING(    0x03, DEF_STR( Unused ) )
1081 	PORT_DIPSETTING(    0x02, DEF_STR( Unused ) )
1082 	PORT_DIPSETTING(    0x01, DEF_STR( Unused ) )
1083 	PORT_DIPSETTING(    0x00, "Cockpit" )
1084 	PORT_DIPNAME( 0x08, 0x08, "Turbo" ) PORT_DIPLOCATION("SWB:4")
1085 	PORT_DIPSETTING(    0x00, DEF_STR( Unused ) )
1086 	PORT_DIPSETTING(    0x08, "Use Turbo Shifter" )
1087 INPUT_PORTS_END
1088 
1089 static INPUT_PORTS_START( toutrunct )
1090 	PORT_INCLUDE( toutrunc )
1091 
1092 	PORT_MODIFY("DSW")
1093 	PORT_DIPNAME( 0x30, 0x30, "Time Adjust" ) PORT_DIPLOCATION("SWB:5,6")
1094 	PORT_DIPSETTING(    0x20, DEF_STR( Easy ) )
1095 	PORT_DIPSETTING(    0x30, DEF_STR( Normal ) )
1096 	PORT_DIPSETTING(    0x10, DEF_STR( Hard ) )
1097 	PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
1098 INPUT_PORTS_END
1099 
1100 static INPUT_PORTS_START( shangon )
1101 	PORT_INCLUDE( outrun_generic )
1102 
1103 	PORT_MODIFY("SERVICE")
1104 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1105 
1106 	PORT_MODIFY("UNKNOWN")
1107 	PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1108 	PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1109 	PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW )
1110 	PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 )
1111 	PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
1112 	PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Supercharger")
1113 	PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
1114 	PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
1115 
1116 	PORT_MODIFY("DSW")
1117 	PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:1")
1118 	PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1119 	PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1120 	PORT_DIPNAME( 0x06, 0x06, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:2,3") // Other Bike's Appearance Frequency
1121 	PORT_DIPSETTING(    0x04, DEF_STR( Easy ) )      // 30% Less then Normal
1122 	PORT_DIPSETTING(    0x06, DEF_STR( Normal ) )
1123 	PORT_DIPSETTING(    0x02, DEF_STR( Hard ) )      // 40% More then Normal
1124 	PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )   // 80% More then Normal
1125 	PORT_DIPNAME( 0x18, 0x18, "Time Adj." ) PORT_DIPLOCATION("SWB:4,5")
1126 	PORT_DIPSETTING(    0x10, DEF_STR( Easy ) )
1127 	PORT_DIPSETTING(    0x18, DEF_STR( Normal ) )
1128 	PORT_DIPSETTING(    0x08, DEF_STR( Hard ) )
1129 	PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
1130 	PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SWB:6" )
1131 	PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_LOW, "SWB:7" )
1132 	PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWB:8" )
1133 
1134 	PORT_MODIFY("ADC.0") // steering
1135 	PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
1136 
1137 	PORT_MODIFY("ADC.3")
1138 	PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
1139 INPUT_PORTS_END
1140 
1141 
1142 
1143 //**************************************************************************
1144 //  GRAPHICS DEFINITIONS
1145 //**************************************************************************
1146 
1147 static GFXDECODE_START( gfx_segaorun )
1148 	GFXDECODE_ENTRY( "gfx1", 0, gfx_8x8x3_planar, 0, 1024 )
1149 GFXDECODE_END
1150 
1151 
1152 
1153 //**************************************************************************
1154 //  GENERIC MACHINE DRIVERS
1155 //**************************************************************************
1156 
1157 void segaorun_state::outrun_base(machine_config &config)
1158 {
1159 	// basic machine hardware
1160 	M68000(config, m_maincpu, MASTER_CLOCK/4);
1161 	m_maincpu->set_addrmap(AS_PROGRAM, &segaorun_state::outrun_map);
1162 
1163 	M68000(config, m_subcpu, MASTER_CLOCK/4);
1164 	m_subcpu->set_addrmap(AS_PROGRAM, &segaorun_state::sub_map);
1165 
1166 	Z80(config, m_soundcpu, SOUND_CLOCK/4);
1167 	m_soundcpu->set_addrmap(AS_PROGRAM, &segaorun_state::sound_map);
1168 	m_soundcpu->set_addrmap(AS_IO, &segaorun_state::sound_portmap);
1169 
1170 	config.set_maximum_quantum(attotime::from_hz(6000));
1171 
1172 	WATCHDOG_TIMER(config, m_watchdog);
1173 
1174 	I8255(config, m_i8255);
1175 	m_i8255->in_pa_callback().set(FUNC(segaorun_state::bankmotor_limit_r));
1176 	m_i8255->out_pa_callback().set(FUNC(segaorun_state::unknown_porta_w));
1177 	m_i8255->in_pb_callback().set(FUNC(segaorun_state::unknown_portb_r));
1178 	m_i8255->out_pb_callback().set(FUNC(segaorun_state::bankmotor_control_w));
1179 	m_i8255->in_pc_callback().set(FUNC(segaorun_state::unknown_portc_r));
1180 	m_i8255->out_pc_callback().set(FUNC(segaorun_state::video_control_w));
1181 
1182 	ADC0804(config, m_adc, MASTER_CLOCK_25MHz/4/6);
1183 	m_adc->vin_callback().set(FUNC(segaorun_state::analog_r));
1184 
1185 	SEGA_315_5195_MEM_MAPPER(config, m_mapper, MASTER_CLOCK/4, m_maincpu);
1186 	m_mapper->set_mapper(FUNC(segaorun_state::memory_mapper));
1187 	m_mapper->pbf().set_inputline(m_soundcpu, INPUT_LINE_NMI);
1188 
1189 	// video hardware
1190 	GFXDECODE(config, "gfxdecode", m_palette, gfx_segaorun);
1191 	PALETTE(config, m_palette).set_entries(4096*2);
1192 
1193 	SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
1194 	m_screen->set_raw(MASTER_CLOCK_25MHz/4, 400, 0, 320, 262, 0, 224);
1195 	m_screen->set_screen_update(FUNC(segaorun_state::screen_update_outrun));
1196 	m_screen->set_palette(m_palette);
1197 
1198 	SEGAIC16VID(config, m_segaic16vid, 0, "gfxdecode");
1199 	SEGAIC16_ROAD(config, m_segaic16road, 0);
1200 
1201 	// sound hardware
1202 	SPEAKER(config, "lspeaker").front_left();
1203 	SPEAKER(config, "rspeaker").front_right();
1204 
1205 	YM2151(config, "ymsnd", SOUND_CLOCK/4).add_route(0, "lspeaker", 0.43).add_route(1, "rspeaker", 0.43);
1206 
1207 	segapcm_device &pcm(SEGAPCM(config, "pcm", SOUND_CLOCK/4));
1208 	pcm.set_bank(segapcm_device::BANK_512);
1209 	pcm.add_route(0, "lspeaker", 1.0);
1210 	pcm.add_route(1, "rspeaker", 1.0);
1211 }
1212 
1213 
1214 
1215 //**************************************************************************
1216 //  GAME-SPECIFIC MACHINE DRIVERS
1217 //**************************************************************************
1218 
outrundx(machine_config & config)1219 void segaorun_state::outrundx(machine_config &config)
1220 {
1221 	outrun_base(config);
1222 
1223 	// basic machine hardware
1224 	TIMER(config, "bankmotor").configure_periodic(FUNC(segaorun_state::bankmotor_update), attotime::from_msec(10));
1225 
1226 	// video hardware
1227 	SEGA_OUTRUN_SPRITES(config, m_sprites, 0);
1228 }
1229 
outrun(machine_config & config)1230 void segaorun_state::outrun(machine_config &config)
1231 {
1232 	outrundx(config);
1233 
1234 	NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
1235 }
1236 
outrun_fd1094(machine_config & config)1237 void segaorun_state::outrun_fd1094(machine_config &config)
1238 {
1239 	outrun(config);
1240 
1241 	// basic machine hardware
1242 	FD1094(config.replace(), m_maincpu, MASTER_CLOCK/4);
1243 	m_maincpu->set_addrmap(AS_PROGRAM, &segaorun_state::outrun_map);
1244 	m_maincpu->set_addrmap(AS_OPCODES, &segaorun_state::decrypted_opcodes_map);
1245 }
1246 
outrun_fd1089a(machine_config & config)1247 void segaorun_state::outrun_fd1089a(machine_config &config)
1248 {
1249 	outrun(config);
1250 
1251 	// basic machine hardware
1252 	FD1089A(config.replace(), m_maincpu, MASTER_CLOCK/4);
1253 	m_maincpu->set_addrmap(AS_PROGRAM, &segaorun_state::outrun_map);
1254 }
1255 
shangon(machine_config & config)1256 void segaorun_state::shangon(machine_config &config)
1257 {
1258 	outrun_base(config);
1259 
1260 	// basic machine hardware
1261 	m_i8255->in_pa_callback().set(FUNC(segaorun_state::unknown_porta_r));
1262 	m_i8255->out_pa_callback().set(FUNC(segaorun_state::unknown_porta_w));
1263 	m_i8255->in_pb_callback().set(FUNC(segaorun_state::unknown_portb_r));
1264 	m_i8255->out_pb_callback().set(FUNC(segaorun_state::unknown_portb_w));
1265 	m_i8255->in_pc_callback().set(FUNC(segaorun_state::unknown_portc_r));
1266 	m_i8255->out_pc_callback().set(FUNC(segaorun_state::video_control_w));
1267 
1268 	NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
1269 
1270 	// video hardware
1271 	m_screen->set_raw(MASTER_CLOCK_25MHz/4, 400, 0, 320, 262, 0, 224);
1272 	m_screen->set_screen_update(FUNC(segaorun_state::screen_update_shangon));
1273 
1274 	SEGA_SYS16B_SPRITES(config, m_sprites, 0);
1275 }
1276 
shangon_fd1089b(machine_config & config)1277 void segaorun_state::shangon_fd1089b(machine_config &config)
1278 {
1279 	shangon(config);
1280 
1281 	// basic machine hardware
1282 	FD1089B(config.replace(), m_maincpu, MASTER_CLOCK/4);
1283 	m_maincpu->set_addrmap(AS_PROGRAM, &segaorun_state::outrun_map);
1284 }
1285 
1286 
1287 
1288 //**************************************************************************
1289 //  ROM DEFINITIONS
1290 //**************************************************************************
1291 
1292 
1293 //*************************************************************************************************************************
1294 //*************************************************************************************************************************
1295 //*************************************************************************************************************************
1296 //  Outrun
1297 //  CPU: 68000
1298 //   GAME BD  834-6065-04
1299 //   CPU BD   837-6063-02 (or 837-6095)
1300 //   VIDEO BD 837-6064-02 (or 837-6096)
1301 //
1302 //  Note: Manuals for Upright Standard and Sitdown Standard list the same Main & Sub CPU EPR codes.
1303 //        Dipswitches are used to determine the machine type.
1304 //
1305 ROM_START( outrun )
1306 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
1307 	ROM_LOAD16_BYTE( "epr-10380b.133", 0x000000, 0x10000, CRC(1f6cadad) SHA1(31e870f307f44eb4f293b607123b623beee2bc3c) )
CRC(c4c3fa1a)1308 	ROM_LOAD16_BYTE( "epr-10382b.118", 0x000001, 0x10000, CRC(c4c3fa1a) SHA1(69236cf9f27691dee290c79db1fc9b5e73ea77d7) )
1309 	ROM_LOAD16_BYTE( "epr-10381b.132", 0x020000, 0x10000, CRC(be8c412b) SHA1(bf3ff05bbf81bdd44567f3b9bb4919ed4a499624) ) // Same as the "A" version below ???
1310 	ROM_LOAD16_BYTE( "epr-10383b.117", 0x020001, 0x10000, CRC(10a2014a) SHA1(1970895145ad8b5735f66ed8c837d9d453ce9b23) )
1311 
1312 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
1313 	ROM_LOAD16_BYTE( "epr-10327a.76", 0x00000, 0x10000, CRC(e28a5baf) SHA1(f715bde96c73ed47035acf5a41630fdeb41bb2f9) )
1314 	ROM_LOAD16_BYTE( "epr-10329a.58", 0x00001, 0x10000, CRC(da131c81) SHA1(57d5219bd0e2fd886217e37e8773fd76be9b40eb) )
1315 	ROM_LOAD16_BYTE( "epr-10328a.75", 0x20000, 0x10000, CRC(d5ec5e5d) SHA1(a4e3cfca4d803e72bc4fcf91ab00e21bf3f8959f) )
1316 	ROM_LOAD16_BYTE( "epr-10330a.57", 0x20001, 0x10000, CRC(ba9ec82a) SHA1(2136c9572e26b7ae6de402c0cd53174407cc6018) )
1317 
1318 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
1319 	ROM_LOAD( "opr-10268.99",  0x00000, 0x08000, CRC(95344b04) SHA1(b3480714b11fc49b449660431f85d4ba92f799ba) )
1320 	ROM_LOAD( "opr-10232.102", 0x08000, 0x08000, CRC(776ba1eb) SHA1(e3477961d19e694c97643066534a1f720e0c4327) )
1321 	ROM_LOAD( "opr-10267.100", 0x10000, 0x08000, CRC(a85bb823) SHA1(a7e0143dee5a47e679fd5155e58e717813912692) )
1322 	ROM_LOAD( "opr-10231.103", 0x18000, 0x08000, CRC(8908bcbf) SHA1(8e1237b640a6f26bdcbfd5e201dadb2687c4febb) )
1323 	ROM_LOAD( "opr-10266.101", 0x20000, 0x08000, CRC(9f6f1a74) SHA1(09164e858ebeedcff4d389524ddf89e7c216dcae) )
1324 	ROM_LOAD( "opr-10230.104", 0x28000, 0x08000, CRC(686f5e50) SHA1(03697b892f911177968aa40de6c5f464eb0258e7) )
1325 
1326 	ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
1327 	// VIDEO BD 837-6064-02 uses mask ROMs four times the size of those used on VIDEO BD 837-6064-01, same data
1328 	ROM_LOAD32_BYTE( "mpr-10371.9",  0x00000, 0x20000, CRC(7cc86208) SHA1(21320f945f7c8e990c97c9b1232a0f4b6bd00f8f) )
1329 	ROM_LOAD32_BYTE( "mpr-10373.10", 0x00001, 0x20000, CRC(b0d26ac9) SHA1(3a9ce8547cd43b7b04abddf9a9ab5634e0bbfaba) )
1330 	ROM_LOAD32_BYTE( "mpr-10375.11", 0x00002, 0x20000, CRC(59b60bd7) SHA1(e5d8c67e020608edd24ba87b7687b2ac2483ee7f) )
1331 	ROM_LOAD32_BYTE( "mpr-10377.12", 0x00003, 0x20000, CRC(17a1b04a) SHA1(9f7210cb4153ac9029a785dcd4b45f4513a4b008) )
1332 	ROM_LOAD32_BYTE( "mpr-10372.13", 0x80000, 0x20000, CRC(b557078c) SHA1(a3746a2da077a8df4932348f650a061f413e8430) )
1333 	ROM_LOAD32_BYTE( "mpr-10374.14", 0x80001, 0x20000, CRC(8051e517) SHA1(9c8509fbed170b4ac74c169da573393e54774f49) )
1334 	ROM_LOAD32_BYTE( "mpr-10376.15", 0x80002, 0x20000, CRC(f3b8f318) SHA1(a5f2532613f33a64441e0f75443c10ba78dccc6e) )
1335 	ROM_LOAD32_BYTE( "mpr-10378.16", 0x80003, 0x20000, CRC(a1062984) SHA1(4399030a155caf71f2dec7f75c4b65531ab53576) )
1336 
1337 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road)
1338 	ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
1339 	ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
1340 
1341 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
1342 	ROM_LOAD( "epr-10187.88", 0x00000, 0x8000, CRC(a10abaa9) SHA1(01c8a819587a66d2ee4d255656e36fa0904377b0) )
1343 
1344 	ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
1345 	ROM_LOAD( "opr-10193.66", 0x00000, 0x08000, CRC(bcd10dde) SHA1(417ce1d7242884640c5b14f4db8ee57cde7d085d) )
1346 	ROM_RELOAD(               0x08000, 0x08000 )
1347 	ROM_LOAD( "opr-10192.67", 0x10000, 0x08000, CRC(770f1270) SHA1(686bdf44d45c1d6002622f6658f037735382f3e0) )
1348 	ROM_RELOAD(               0x18000, 0x08000 )
1349 	ROM_LOAD( "opr-10191.68", 0x20000, 0x08000, CRC(20a284ab) SHA1(7c9027416d4122791ba53782fe2230cf02b7d506) )
1350 	ROM_RELOAD(               0x28000, 0x08000 )
1351 	ROM_LOAD( "opr-10190.69", 0x30000, 0x08000, CRC(7cab70e2) SHA1(a3c581d2b438630d0d4c39481dcfd85681c9f889) )
1352 	ROM_RELOAD(               0x38000, 0x08000 )
1353 	ROM_LOAD( "opr-10189.70", 0x40000, 0x08000, CRC(01366b54) SHA1(f467a6b807694d5832a985f5381c170d24aaee4e) )
1354 	ROM_RELOAD(               0x48000, 0x08000 )
1355 	ROM_LOAD( "opr-10188.71", 0x50000, 0x08000, CRC(bad30ad9) SHA1(f70dd3a6362c314adef313b064102f7a250401c8) )
1356 	ROM_RELOAD(               0x58000, 0x08000 )
1357 ROM_END
1358 
1359 ROM_START( outruneh )
1360 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
1361 	ROM_LOAD16_BYTE( "enhanced_110_epr-10380b.133", 0x000000, 0x10000, CRC(30d6ab84) SHA1(2ab4baee7bcf160fb9b47e50d20618537c1b1b45) )
1362 	ROM_LOAD16_BYTE( "enhanced_110_epr-10382b.118", 0x000001, 0x10000, CRC(62041a21) SHA1(c3245c7b6ed0268c5baa2cd542f27bc88f5ad315) )
1363 	ROM_LOAD16_BYTE( "enhanced_110_epr-10381b.132", 0x020000, 0x10000, CRC(a3cc8db5) SHA1(f48d2a66c622b34a24705da5719f5adecaff9916) )
1364 	ROM_LOAD16_BYTE( "enhanced_110_epr-10383b.117", 0x020001, 0x10000, CRC(21ab78a0) SHA1(7eb12851f3e10e8d9bf1e72e8b88e84b53f12b6b) )
1365 
1366 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
1367 	ROM_LOAD16_BYTE( "epr-10327a.76", 0x00000, 0x10000, CRC(e28a5baf) SHA1(f715bde96c73ed47035acf5a41630fdeb41bb2f9) )
1368 	ROM_LOAD16_BYTE( "epr-10329a.58", 0x00001, 0x10000, CRC(da131c81) SHA1(57d5219bd0e2fd886217e37e8773fd76be9b40eb) )
1369 	ROM_LOAD16_BYTE( "epr-10328a.75", 0x20000, 0x10000, CRC(d5ec5e5d) SHA1(a4e3cfca4d803e72bc4fcf91ab00e21bf3f8959f) )
1370 	ROM_LOAD16_BYTE( "epr-10330a.57", 0x20001, 0x10000, CRC(ba9ec82a) SHA1(2136c9572e26b7ae6de402c0cd53174407cc6018) )
1371 
1372 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
1373 	ROM_LOAD( "opr-10268.99",  0x00000, 0x08000, CRC(95344b04) SHA1(b3480714b11fc49b449660431f85d4ba92f799ba) )
1374 	ROM_LOAD( "opr-10232.102", 0x08000, 0x08000, CRC(776ba1eb) SHA1(e3477961d19e694c97643066534a1f720e0c4327) )
1375 	ROM_LOAD( "opr-10267.100", 0x10000, 0x08000, CRC(a85bb823) SHA1(a7e0143dee5a47e679fd5155e58e717813912692) )
1376 	ROM_LOAD( "opr-10231.103", 0x18000, 0x08000, CRC(8908bcbf) SHA1(8e1237b640a6f26bdcbfd5e201dadb2687c4febb) )
1377 	ROM_LOAD( "opr-10266.101", 0x20000, 0x08000, CRC(9f6f1a74) SHA1(09164e858ebeedcff4d389524ddf89e7c216dcae) )
1378 	ROM_LOAD( "opr-10230.104", 0x28000, 0x08000, CRC(686f5e50) SHA1(03697b892f911177968aa40de6c5f464eb0258e7) )
1379 
1380 	ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
1381 	// VIDEO BD 837-6064-02 uses mask ROMs four times the size of those used on VIDEO BD 837-6064-01, same data
1382 	ROM_LOAD32_BYTE( "mpr-10371.9",  0x00000, 0x20000, CRC(7cc86208) SHA1(21320f945f7c8e990c97c9b1232a0f4b6bd00f8f) )
1383 	ROM_LOAD32_BYTE( "mpr-10373.10", 0x00001, 0x20000, CRC(b0d26ac9) SHA1(3a9ce8547cd43b7b04abddf9a9ab5634e0bbfaba) )
1384 	ROM_LOAD32_BYTE( "mpr-10375.11", 0x00002, 0x20000, CRC(59b60bd7) SHA1(e5d8c67e020608edd24ba87b7687b2ac2483ee7f) )
1385 	ROM_LOAD32_BYTE( "mpr-10377.12", 0x00003, 0x20000, CRC(17a1b04a) SHA1(9f7210cb4153ac9029a785dcd4b45f4513a4b008) )
1386 	ROM_LOAD32_BYTE( "mpr-10372.13", 0x80000, 0x20000, CRC(b557078c) SHA1(a3746a2da077a8df4932348f650a061f413e8430) )
1387 	ROM_LOAD32_BYTE( "mpr-10374.14", 0x80001, 0x20000, CRC(8051e517) SHA1(9c8509fbed170b4ac74c169da573393e54774f49) )
1388 	ROM_LOAD32_BYTE( "mpr-10376.15", 0x80002, 0x20000, CRC(f3b8f318) SHA1(a5f2532613f33a64441e0f75443c10ba78dccc6e) )
1389 	ROM_LOAD32_BYTE( "mpr-10378.16", 0x80003, 0x20000, CRC(a1062984) SHA1(4399030a155caf71f2dec7f75c4b65531ab53576) )
1390 
1391 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road)
1392 	ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
1393 	ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
1394 
1395 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
1396 	ROM_LOAD( "epr-10187.88", 0x00000, 0x8000, CRC(a10abaa9) SHA1(01c8a819587a66d2ee4d255656e36fa0904377b0) )
1397 
1398 	ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
1399 	ROM_LOAD( "opr-10193.66", 0x00000, 0x08000, CRC(bcd10dde) SHA1(417ce1d7242884640c5b14f4db8ee57cde7d085d) )
1400 	ROM_RELOAD(               0x08000, 0x08000 )
1401 	ROM_LOAD( "opr-10192.67", 0x10000, 0x08000, CRC(770f1270) SHA1(686bdf44d45c1d6002622f6658f037735382f3e0) )
1402 	ROM_RELOAD(               0x18000, 0x08000 )
1403 	ROM_LOAD( "opr-10191.68", 0x20000, 0x08000, CRC(20a284ab) SHA1(7c9027416d4122791ba53782fe2230cf02b7d506) )
1404 	ROM_RELOAD(               0x28000, 0x08000 )
1405 	ROM_LOAD( "opr-10190.69", 0x30000, 0x08000, CRC(7cab70e2) SHA1(a3c581d2b438630d0d4c39481dcfd85681c9f889) )
1406 	ROM_RELOAD(               0x38000, 0x08000 )
1407 	ROM_LOAD( "opr-10189.70", 0x40000, 0x08000, CRC(01366b54) SHA1(f467a6b807694d5832a985f5381c170d24aaee4e) )
1408 	ROM_RELOAD(               0x48000, 0x08000 )
1409 	ROM_LOAD( "enhanced_103_opr-10188.71", 0x50000, 0x08000, CRC(37598616) SHA1(e7c8ae6c59742e1de7ec5a95c5aebfab5716d959) ) // unofficial replacement for factory defective opr-10188
1410 	ROM_RELOAD(               0x58000, 0x08000 )
1411 ROM_END
1412 
1413 
1414 //*************************************************************************************************************************
1415 //  Outrun
1416 //  CPU: 68000
1417 //   GAME BD  834-6065-04
1418 //   CPU BD   837-6063-02
1419 //   VIDEO BD 837-6064-02
1420 //
1421 //  Note: Starting with revision A and going forward Outrun added support for Cabinet styles: Moving, Up Cockpit & Mini Up
1422 //        as well as moving the Demo Sounds dipswitch down from SWB-2 to SWB-3 to make room for Cabinet settings.
1423 //
1424 //        The Outrun Standard & Upright Type Owner's Manuals show program ROMs as EPR-10380A through EPR-10383A
1425 //
1426 ROM_START( outrunra )
1427 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
1428 	ROM_LOAD16_BYTE( "epr-10380a.133", 0x000000, 0x10000, CRC(434fadbc) SHA1(83c861d331e69ef4f2452c313ae4b5ea9d8b7948) )
1429 	ROM_LOAD16_BYTE( "epr-10382a.118", 0x000001, 0x10000, CRC(1ddcc04e) SHA1(945d207d8d602d7fdb6d25f6b93c9c0b995e8d5a) )
1430 	ROM_LOAD16_BYTE( "epr-10381a.132", 0x020000, 0x10000, CRC(be8c412b) SHA1(bf3ff05bbf81bdd44567f3b9bb4919ed4a499624) ) // Same as the original version below, but labeled as rev A
1431 	ROM_LOAD16_BYTE( "epr-10383a.117", 0x020001, 0x10000, CRC(dcc586e7) SHA1(d6e1de6b562359574d94b88ce6101646c506e701) ) // Same as the original version below, but labeled as rev A
1432 
1433 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
1434 	ROM_LOAD16_BYTE( "epr-10327a.76", 0x00000, 0x10000, CRC(e28a5baf) SHA1(f715bde96c73ed47035acf5a41630fdeb41bb2f9) )
1435 	ROM_LOAD16_BYTE( "epr-10329a.58", 0x00001, 0x10000, CRC(da131c81) SHA1(57d5219bd0e2fd886217e37e8773fd76be9b40eb) )
1436 	ROM_LOAD16_BYTE( "epr-10328a.75", 0x20000, 0x10000, CRC(d5ec5e5d) SHA1(a4e3cfca4d803e72bc4fcf91ab00e21bf3f8959f) )
1437 	ROM_LOAD16_BYTE( "epr-10330a.57", 0x20001, 0x10000, CRC(ba9ec82a) SHA1(2136c9572e26b7ae6de402c0cd53174407cc6018) )
1438 
1439 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
1440 	ROM_LOAD( "opr-10268.99",  0x00000, 0x08000, CRC(95344b04) SHA1(b3480714b11fc49b449660431f85d4ba92f799ba) )
1441 	ROM_LOAD( "opr-10232.102", 0x08000, 0x08000, CRC(776ba1eb) SHA1(e3477961d19e694c97643066534a1f720e0c4327) )
1442 	ROM_LOAD( "opr-10267.100", 0x10000, 0x08000, CRC(a85bb823) SHA1(a7e0143dee5a47e679fd5155e58e717813912692) )
1443 	ROM_LOAD( "opr-10231.103", 0x18000, 0x08000, CRC(8908bcbf) SHA1(8e1237b640a6f26bdcbfd5e201dadb2687c4febb) )
1444 	ROM_LOAD( "opr-10266.101", 0x20000, 0x08000, CRC(9f6f1a74) SHA1(09164e858ebeedcff4d389524ddf89e7c216dcae) )
1445 	ROM_LOAD( "opr-10230.104", 0x28000, 0x08000, CRC(686f5e50) SHA1(03697b892f911177968aa40de6c5f464eb0258e7) )
1446 
1447 	ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
1448 	// VIDEO BD 837-6064-02 uses mask ROMs four times the size of those used on VIDEO BD 837-6064-01, same data
1449 	ROM_LOAD32_BYTE( "mpr-10371.9",  0x00000, 0x20000, CRC(7cc86208) SHA1(21320f945f7c8e990c97c9b1232a0f4b6bd00f8f) )
1450 	ROM_LOAD32_BYTE( "mpr-10373.10", 0x00001, 0x20000, CRC(b0d26ac9) SHA1(3a9ce8547cd43b7b04abddf9a9ab5634e0bbfaba) )
1451 	ROM_LOAD32_BYTE( "mpr-10375.11", 0x00002, 0x20000, CRC(59b60bd7) SHA1(e5d8c67e020608edd24ba87b7687b2ac2483ee7f) )
1452 	ROM_LOAD32_BYTE( "mpr-10377.12", 0x00003, 0x20000, CRC(17a1b04a) SHA1(9f7210cb4153ac9029a785dcd4b45f4513a4b008) )
1453 	ROM_LOAD32_BYTE( "mpr-10372.13", 0x80000, 0x20000, CRC(b557078c) SHA1(a3746a2da077a8df4932348f650a061f413e8430) )
1454 	ROM_LOAD32_BYTE( "mpr-10374.14", 0x80001, 0x20000, CRC(8051e517) SHA1(9c8509fbed170b4ac74c169da573393e54774f49) )
1455 	ROM_LOAD32_BYTE( "mpr-10376.15", 0x80002, 0x20000, CRC(f3b8f318) SHA1(a5f2532613f33a64441e0f75443c10ba78dccc6e) )
1456 	ROM_LOAD32_BYTE( "mpr-10378.16", 0x80003, 0x20000, CRC(a1062984) SHA1(4399030a155caf71f2dec7f75c4b65531ab53576) )
1457 
1458 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road)
1459 	ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
1460 	ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
1461 
1462 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
1463 	ROM_LOAD( "epr-10187.88", 0x00000, 0x8000, CRC(a10abaa9) SHA1(01c8a819587a66d2ee4d255656e36fa0904377b0) )
1464 
1465 	ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
1466 	ROM_LOAD( "opr-10193.66", 0x00000, 0x08000, CRC(bcd10dde) SHA1(417ce1d7242884640c5b14f4db8ee57cde7d085d) )
1467 	ROM_RELOAD(               0x08000, 0x08000 )
1468 	ROM_LOAD( "opr-10192.67", 0x10000, 0x08000, CRC(770f1270) SHA1(686bdf44d45c1d6002622f6658f037735382f3e0) )
1469 	ROM_RELOAD(               0x18000, 0x08000 )
1470 	ROM_LOAD( "opr-10191.68", 0x20000, 0x08000, CRC(20a284ab) SHA1(7c9027416d4122791ba53782fe2230cf02b7d506) )
1471 	ROM_RELOAD(               0x28000, 0x08000 )
1472 	ROM_LOAD( "opr-10190.69", 0x30000, 0x08000, CRC(7cab70e2) SHA1(a3c581d2b438630d0d4c39481dcfd85681c9f889) )
1473 	ROM_RELOAD(               0x38000, 0x08000 )
1474 	ROM_LOAD( "opr-10189.70", 0x40000, 0x08000, CRC(01366b54) SHA1(f467a6b807694d5832a985f5381c170d24aaee4e) )
1475 	ROM_RELOAD(               0x48000, 0x08000 )
1476 	ROM_LOAD( "opr-10188.71", 0x50000, 0x08000, CRC(bad30ad9) SHA1(f70dd3a6362c314adef313b064102f7a250401c8) )
1477 	ROM_RELOAD(               0x58000, 0x08000 )
1478 ROM_END
1479 
1480 //*************************************************************************************************************************
1481 //  Outrun Deluxe
1482 //  CPU: 68000
1483 //   GAME BD  834-6065-02
1484 //   CPU BD   837-6063-02
1485 //   VIDEO BD 837-6064-01
1486 //
1487 //  Note: This is a Deluxe version. IE: Motor On / Off at SWB-1 and Demo Sounds at SWB-2
1488 //
1489 //        The Outrun Deluxe Type Owner's Manual show program ROMs as EPR-10380 through EPR-10383
1490 //
1491 ROM_START( outrundx )
1492 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
1493 	ROM_LOAD16_BYTE( "epr-10380.133", 0x000000, 0x10000, CRC(e339e87a) SHA1(ac319cdafb156adcf6be29ae1b82d46d3048022e) )
1494 	ROM_LOAD16_BYTE( "epr-10382.118", 0x000001, 0x10000, CRC(65248dd5) SHA1(4b75526df71bba0d588f47a65790a3d21b236302) )
1495 	ROM_LOAD16_BYTE( "epr-10381.132", 0x020000, 0x10000, CRC(be8c412b) SHA1(bf3ff05bbf81bdd44567f3b9bb4919ed4a499624) )
1496 	ROM_LOAD16_BYTE( "epr-10383.117", 0x020001, 0x10000, CRC(dcc586e7) SHA1(d6e1de6b562359574d94b88ce6101646c506e701) )
1497 
1498 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
1499 	ROM_LOAD16_BYTE( "epr-10327.76", 0x00000, 0x10000, CRC(da99d855) SHA1(77d18092e3c10a400e62eeba562f161398fe37a7) )
1500 	ROM_LOAD16_BYTE( "epr-10329.58", 0x00001, 0x10000, CRC(fe0fa5e2) SHA1(e63fe5f7950af35131539836f18fa056767c2c80) )
1501 	ROM_LOAD16_BYTE( "epr-10328.75", 0x20000, 0x10000, CRC(3c0e9a7f) SHA1(0e182fdac70423a85dc2b996c70bcb3954e75e10) )
1502 	ROM_LOAD16_BYTE( "epr-10330.57", 0x20001, 0x10000, CRC(59786e99) SHA1(834bf361ca67cee3793c324bb26cf0ec82a72068) )
1503 
1504 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
1505 	ROM_LOAD( "opr-10268.99",  0x00000, 0x08000, CRC(95344b04) SHA1(b3480714b11fc49b449660431f85d4ba92f799ba) )
1506 	ROM_LOAD( "opr-10232.102", 0x08000, 0x08000, CRC(776ba1eb) SHA1(e3477961d19e694c97643066534a1f720e0c4327) )
1507 	ROM_LOAD( "opr-10267.100", 0x10000, 0x08000, CRC(a85bb823) SHA1(a7e0143dee5a47e679fd5155e58e717813912692) )
1508 	ROM_LOAD( "opr-10231.103", 0x18000, 0x08000, CRC(8908bcbf) SHA1(8e1237b640a6f26bdcbfd5e201dadb2687c4febb) )
1509 	ROM_LOAD( "opr-10266.101", 0x20000, 0x08000, CRC(9f6f1a74) SHA1(09164e858ebeedcff4d389524ddf89e7c216dcae) )
1510 	ROM_LOAD( "opr-10230.104", 0x28000, 0x08000, CRC(686f5e50) SHA1(03697b892f911177968aa40de6c5f464eb0258e7) )
1511 
1512 	ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
1513 	// VIDEO BD 837-6064-01 uses EPROMs a fourth of the size of those used on VIDEO BD 837-6064-02, same data
1514 	ROM_LOAD32_BYTE( "epr-10194.26", 0x00000, 0x08000, CRC(f0eda3bd) SHA1(173e10a10372d42da81e6eb48c3e23a117638c0c) )
1515 	ROM_LOAD32_BYTE( "epr-10203.38", 0x00001, 0x08000, CRC(8445a622) SHA1(1187dee7db09a42446fc75872d49936310141eb8) )
1516 	ROM_LOAD32_BYTE( "epr-10212.52", 0x00002, 0x08000, CRC(dee7e731) SHA1(f09d18f8d8405025b87dd01488ad2098e28410b0) )
1517 	ROM_LOAD32_BYTE( "epr-10221.66", 0x00003, 0x08000, CRC(43431387) SHA1(a28896e888bc4d4f67babd49003d663c1ceabb71) )
1518 	ROM_LOAD32_BYTE( "epr-10195.27", 0x20000, 0x08000, CRC(0de75cdd) SHA1(a97faea76aca663ccbbde327f3d1d8ae256649d3) )
1519 	ROM_LOAD32_BYTE( "epr-10204.39", 0x20001, 0x08000, CRC(5f4b5abb) SHA1(f81637b2eb6a4bde76c43eedfad7e5375594c7bd) )
1520 	ROM_LOAD32_BYTE( "epr-10213.53", 0x20002, 0x08000, CRC(1d1b22f0) SHA1(d3b1c36d08c4b7b08f9969a521e62eebd5b2238d) )
1521 	ROM_LOAD32_BYTE( "epr-10222.67", 0x20003, 0x08000, CRC(a254c706) SHA1(e2801a0a7fd5546a48cd53ad7e4743d821d985ff) )
1522 	ROM_LOAD32_BYTE( "epr-10196.28", 0x40000, 0x08000, CRC(8688bb59) SHA1(0aaa90c5101aa1db00db776a15a0a525587dfc43) )
1523 	ROM_LOAD32_BYTE( "epr-10205.40", 0x40001, 0x08000, CRC(74bd93ca) SHA1(6a02ea3b977e56cfd61302afa2abf6c2dc766ba7) )
1524 	ROM_LOAD32_BYTE( "epr-10214.54", 0x40002, 0x08000, CRC(57527e18) SHA1(4cc95c4b741f495e5b9c3b9d4d9ab9a6fded9aeb) )
1525 	ROM_LOAD32_BYTE( "epr-10223.68", 0x40003, 0x08000, CRC(3850690e) SHA1(0f92743f848edc8deaeeef3afca5f662ceba61e7) )
1526 	ROM_LOAD32_BYTE( "epr-10197.29", 0x60000, 0x08000, CRC(009165a6) SHA1(987b91e8c5c54bb7c4520b13a72f1f47c34278f4) )
1527 	ROM_LOAD32_BYTE( "epr-10206.41", 0x60001, 0x08000, CRC(954542c5) SHA1(3c67e3568c04ba083f4aacad2e8857cdd16b3b2f) )
1528 	ROM_LOAD32_BYTE( "epr-10215.55", 0x60002, 0x08000, CRC(69be5a6c) SHA1(2daac5877a71de04878f231f03361f697552431f) )
1529 	ROM_LOAD32_BYTE( "epr-10224.69", 0x60003, 0x08000, CRC(5cffc346) SHA1(0481f864bb584c96cd92c260a62c0c1d4030bde8) )
1530 	ROM_LOAD32_BYTE( "epr-10198.30", 0x80000, 0x08000, CRC(d894992e) SHA1(451469f743a0019b8797d16ba7b26a267d13fe06) )
1531 	ROM_LOAD32_BYTE( "epr-10207.42", 0x80001, 0x08000, CRC(ca61cea4) SHA1(7c39e2863f5c7be290522acdaf046b1dab7a3542) )
1532 	ROM_LOAD32_BYTE( "epr-10216.56", 0x80002, 0x08000, CRC(d394134d) SHA1(42f768a9c9eb9f556d197548c35b3a0cd5414734) )
1533 	ROM_LOAD32_BYTE( "epr-10225.70", 0x80003, 0x08000, CRC(0a5d1f2b) SHA1(43d9c7539b6cebbac3395a4ba71a702300c9e644) )
1534 	ROM_LOAD32_BYTE( "epr-10199.31", 0xa0000, 0x08000, CRC(86376af6) SHA1(971f4b0d9a01ca7ffb50cefbe1ab41b703a4a41a) )
1535 	ROM_LOAD32_BYTE( "epr-10208.43", 0xa0001, 0x08000, CRC(6830b7fa) SHA1(3ece1971a4f025104ebd026da6751caea9aa8a64) )
1536 	ROM_LOAD32_BYTE( "epr-10217.57", 0xa0002, 0x08000, CRC(bf2c9b76) SHA1(248e273255968115a60855b1fffcce1dbeacc3d4) )
1537 	ROM_LOAD32_BYTE( "epr-10226.71", 0xa0003, 0x08000, CRC(5a452474) SHA1(6789a33b55a1693ec9cc196b3ebd220b14169e08) )
1538 	ROM_LOAD32_BYTE( "epr-10200.32", 0xc0000, 0x08000, CRC(1e5d4f73) SHA1(79deddf4461dad5784441c2839894207b7d2ecac) )
1539 	ROM_LOAD32_BYTE( "epr-10209.44", 0xc0001, 0x08000, CRC(5c15419e) SHA1(7b4e9c0cb430afae7f927c0224021add0a627251) )
1540 	ROM_LOAD32_BYTE( "epr-10218.58", 0xc0002, 0x08000, CRC(db4bdb39) SHA1(b4661611b28e7ff1c721565175038cfd1e99d383) )
1541 	ROM_LOAD32_BYTE( "epr-10227.72", 0xc0003, 0x08000, CRC(c7def392) SHA1(fa7d1245eefdc3abb9520118bbb0d025ca62901e) )
1542 	ROM_LOAD32_BYTE( "epr-10201.33", 0xe0000, 0x08000, CRC(1d9d4b9c) SHA1(3264b66c87aa7de4c140450b96adbe3071231d4a) )
1543 	ROM_LOAD32_BYTE( "epr-10210.45", 0xe0001, 0x08000, CRC(39422931) SHA1(8d8a3f4597945c92aebd20c0784180696b6c9c1c) )
1544 	ROM_LOAD32_BYTE( "epr-10219.59", 0xe0002, 0x08000, CRC(e73b9224) SHA1(1904a71a0c18ab2a3a5929e72b1c215dbb0fa213) )
1545 	ROM_LOAD32_BYTE( "epr-10228.73", 0xe0003, 0x08000, CRC(25803978) SHA1(1a18922aeb516e8deb026d52e3cdcc4e69385af5) )
1546 
1547 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road)
1548 	ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
1549 	ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
1550 
1551 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
1552 	ROM_LOAD( "epr-10187.88", 0x00000, 0x8000, CRC(a10abaa9) SHA1(01c8a819587a66d2ee4d255656e36fa0904377b0) )
1553 
1554 	ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
1555 	ROM_LOAD( "opr-10193.66", 0x00000, 0x08000, CRC(bcd10dde) SHA1(417ce1d7242884640c5b14f4db8ee57cde7d085d) )
1556 	ROM_RELOAD(               0x08000, 0x08000 )
1557 	ROM_LOAD( "opr-10192.67", 0x10000, 0x08000, CRC(770f1270) SHA1(686bdf44d45c1d6002622f6658f037735382f3e0) )
1558 	ROM_RELOAD(               0x18000, 0x08000 )
1559 	ROM_LOAD( "opr-10191.68", 0x20000, 0x08000, CRC(20a284ab) SHA1(7c9027416d4122791ba53782fe2230cf02b7d506) )
1560 	ROM_RELOAD(               0x28000, 0x08000 )
1561 	ROM_LOAD( "opr-10190.69", 0x30000, 0x08000, CRC(7cab70e2) SHA1(a3c581d2b438630d0d4c39481dcfd85681c9f889) )
1562 	ROM_RELOAD(               0x38000, 0x08000 )
1563 	ROM_LOAD( "opr-10189.70", 0x40000, 0x08000, CRC(01366b54) SHA1(f467a6b807694d5832a985f5381c170d24aaee4e) )
1564 	ROM_RELOAD(               0x48000, 0x08000 )
1565 	ROM_LOAD( "opr-10188.71", 0x50000, 0x08000, CRC(bad30ad9) SHA1(f70dd3a6362c314adef313b064102f7a250401c8) )
1566 	ROM_RELOAD(               0x58000, 0x08000 )
1567 ROM_END
1568 
1569 ROM_START( outrundxeh )
1570 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
1571 	ROM_LOAD16_BYTE( "enhanced_103_epr-10380.133", 0x000000, 0x10000, CRC(0e7db21f) SHA1(f6c3fc26708da518989fffe3faf6c6d46a44c670) )
1572 	ROM_LOAD16_BYTE( "enhanced_103_epr-10382.118", 0x000001, 0x10000, CRC(4e1ded90) SHA1(a86b756b4aa152359db86b424314100beecb9594) )
1573 	ROM_LOAD16_BYTE( "enhanced_103_epr-10381.132", 0x020000, 0x10000, CRC(5f8ef718) SHA1(a1360f5199da6e2d869f848eeae7a24e65f1c7ff) )
1574 	ROM_LOAD16_BYTE( "enhanced_103_epr-10383.117", 0x020001, 0x10000, CRC(9794985b) SHA1(b9a1e48b6e5f874141dd62c0672a1c0b191b9708) )
1575 
1576 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
1577 	ROM_LOAD16_BYTE( "epr-10327.76", 0x00000, 0x10000, CRC(da99d855) SHA1(77d18092e3c10a400e62eeba562f161398fe37a7) )
1578 	ROM_LOAD16_BYTE( "epr-10329.58", 0x00001, 0x10000, CRC(fe0fa5e2) SHA1(e63fe5f7950af35131539836f18fa056767c2c80) )
1579 	ROM_LOAD16_BYTE( "epr-10328.75", 0x20000, 0x10000, CRC(3c0e9a7f) SHA1(0e182fdac70423a85dc2b996c70bcb3954e75e10) )
1580 	ROM_LOAD16_BYTE( "epr-10330.57", 0x20001, 0x10000, CRC(59786e99) SHA1(834bf361ca67cee3793c324bb26cf0ec82a72068) )
1581 
1582 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
1583 	ROM_LOAD( "opr-10268.99",  0x00000, 0x08000, CRC(95344b04) SHA1(b3480714b11fc49b449660431f85d4ba92f799ba) )
1584 	ROM_LOAD( "opr-10232.102", 0x08000, 0x08000, CRC(776ba1eb) SHA1(e3477961d19e694c97643066534a1f720e0c4327) )
1585 	ROM_LOAD( "opr-10267.100", 0x10000, 0x08000, CRC(a85bb823) SHA1(a7e0143dee5a47e679fd5155e58e717813912692) )
1586 	ROM_LOAD( "opr-10231.103", 0x18000, 0x08000, CRC(8908bcbf) SHA1(8e1237b640a6f26bdcbfd5e201dadb2687c4febb) )
1587 	ROM_LOAD( "opr-10266.101", 0x20000, 0x08000, CRC(9f6f1a74) SHA1(09164e858ebeedcff4d389524ddf89e7c216dcae) )
1588 	ROM_LOAD( "opr-10230.104", 0x28000, 0x08000, CRC(686f5e50) SHA1(03697b892f911177968aa40de6c5f464eb0258e7) )
1589 
1590 	ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
1591 	// VIDEO BD 837-6064-01 uses EPROMs a fourth of the size of those used on VIDEO BD 837-6064-02, same data
1592 	ROM_LOAD32_BYTE( "epr-10194.26", 0x00000, 0x08000, CRC(f0eda3bd) SHA1(173e10a10372d42da81e6eb48c3e23a117638c0c) )
1593 	ROM_LOAD32_BYTE( "epr-10203.38", 0x00001, 0x08000, CRC(8445a622) SHA1(1187dee7db09a42446fc75872d49936310141eb8) )
1594 	ROM_LOAD32_BYTE( "epr-10212.52", 0x00002, 0x08000, CRC(dee7e731) SHA1(f09d18f8d8405025b87dd01488ad2098e28410b0) )
1595 	ROM_LOAD32_BYTE( "epr-10221.66", 0x00003, 0x08000, CRC(43431387) SHA1(a28896e888bc4d4f67babd49003d663c1ceabb71) )
1596 	ROM_LOAD32_BYTE( "epr-10195.27", 0x20000, 0x08000, CRC(0de75cdd) SHA1(a97faea76aca663ccbbde327f3d1d8ae256649d3) )
1597 	ROM_LOAD32_BYTE( "epr-10204.39", 0x20001, 0x08000, CRC(5f4b5abb) SHA1(f81637b2eb6a4bde76c43eedfad7e5375594c7bd) )
1598 	ROM_LOAD32_BYTE( "epr-10213.53", 0x20002, 0x08000, CRC(1d1b22f0) SHA1(d3b1c36d08c4b7b08f9969a521e62eebd5b2238d) )
1599 	ROM_LOAD32_BYTE( "epr-10222.67", 0x20003, 0x08000, CRC(a254c706) SHA1(e2801a0a7fd5546a48cd53ad7e4743d821d985ff) )
1600 	ROM_LOAD32_BYTE( "epr-10196.28", 0x40000, 0x08000, CRC(8688bb59) SHA1(0aaa90c5101aa1db00db776a15a0a525587dfc43) )
1601 	ROM_LOAD32_BYTE( "epr-10205.40", 0x40001, 0x08000, CRC(74bd93ca) SHA1(6a02ea3b977e56cfd61302afa2abf6c2dc766ba7) )
1602 	ROM_LOAD32_BYTE( "epr-10214.54", 0x40002, 0x08000, CRC(57527e18) SHA1(4cc95c4b741f495e5b9c3b9d4d9ab9a6fded9aeb) )
1603 	ROM_LOAD32_BYTE( "epr-10223.68", 0x40003, 0x08000, CRC(3850690e) SHA1(0f92743f848edc8deaeeef3afca5f662ceba61e7) )
1604 	ROM_LOAD32_BYTE( "epr-10197.29", 0x60000, 0x08000, CRC(009165a6) SHA1(987b91e8c5c54bb7c4520b13a72f1f47c34278f4) )
1605 	ROM_LOAD32_BYTE( "epr-10206.41", 0x60001, 0x08000, CRC(954542c5) SHA1(3c67e3568c04ba083f4aacad2e8857cdd16b3b2f) )
1606 	ROM_LOAD32_BYTE( "epr-10215.55", 0x60002, 0x08000, CRC(69be5a6c) SHA1(2daac5877a71de04878f231f03361f697552431f) )
1607 	ROM_LOAD32_BYTE( "epr-10224.69", 0x60003, 0x08000, CRC(5cffc346) SHA1(0481f864bb584c96cd92c260a62c0c1d4030bde8) )
1608 	ROM_LOAD32_BYTE( "epr-10198.30", 0x80000, 0x08000, CRC(d894992e) SHA1(451469f743a0019b8797d16ba7b26a267d13fe06) )
1609 	ROM_LOAD32_BYTE( "epr-10207.42", 0x80001, 0x08000, CRC(ca61cea4) SHA1(7c39e2863f5c7be290522acdaf046b1dab7a3542) )
1610 	ROM_LOAD32_BYTE( "epr-10216.56", 0x80002, 0x08000, CRC(d394134d) SHA1(42f768a9c9eb9f556d197548c35b3a0cd5414734) )
1611 	ROM_LOAD32_BYTE( "epr-10225.70", 0x80003, 0x08000, CRC(0a5d1f2b) SHA1(43d9c7539b6cebbac3395a4ba71a702300c9e644) )
1612 	ROM_LOAD32_BYTE( "epr-10199.31", 0xa0000, 0x08000, CRC(86376af6) SHA1(971f4b0d9a01ca7ffb50cefbe1ab41b703a4a41a) )
1613 	ROM_LOAD32_BYTE( "epr-10208.43", 0xa0001, 0x08000, CRC(6830b7fa) SHA1(3ece1971a4f025104ebd026da6751caea9aa8a64) )
1614 	ROM_LOAD32_BYTE( "epr-10217.57", 0xa0002, 0x08000, CRC(bf2c9b76) SHA1(248e273255968115a60855b1fffcce1dbeacc3d4) )
1615 	ROM_LOAD32_BYTE( "epr-10226.71", 0xa0003, 0x08000, CRC(5a452474) SHA1(6789a33b55a1693ec9cc196b3ebd220b14169e08) )
1616 	ROM_LOAD32_BYTE( "epr-10200.32", 0xc0000, 0x08000, CRC(1e5d4f73) SHA1(79deddf4461dad5784441c2839894207b7d2ecac) )
1617 	ROM_LOAD32_BYTE( "epr-10209.44", 0xc0001, 0x08000, CRC(5c15419e) SHA1(7b4e9c0cb430afae7f927c0224021add0a627251) )
1618 	ROM_LOAD32_BYTE( "epr-10218.58", 0xc0002, 0x08000, CRC(db4bdb39) SHA1(b4661611b28e7ff1c721565175038cfd1e99d383) )
1619 	ROM_LOAD32_BYTE( "epr-10227.72", 0xc0003, 0x08000, CRC(c7def392) SHA1(fa7d1245eefdc3abb9520118bbb0d025ca62901e) )
1620 	ROM_LOAD32_BYTE( "epr-10201.33", 0xe0000, 0x08000, CRC(1d9d4b9c) SHA1(3264b66c87aa7de4c140450b96adbe3071231d4a) )
1621 	ROM_LOAD32_BYTE( "epr-10210.45", 0xe0001, 0x08000, CRC(39422931) SHA1(8d8a3f4597945c92aebd20c0784180696b6c9c1c) )
1622 	ROM_LOAD32_BYTE( "epr-10219.59", 0xe0002, 0x08000, CRC(e73b9224) SHA1(1904a71a0c18ab2a3a5929e72b1c215dbb0fa213) )
1623 	ROM_LOAD32_BYTE( "epr-10228.73", 0xe0003, 0x08000, CRC(25803978) SHA1(1a18922aeb516e8deb026d52e3cdcc4e69385af5) )
1624 
1625 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road)
1626 	ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
1627 	ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
1628 
1629 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
1630 	ROM_LOAD( "epr-10187.88", 0x00000, 0x8000, CRC(a10abaa9) SHA1(01c8a819587a66d2ee4d255656e36fa0904377b0) )
1631 
1632 	ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
1633 	ROM_LOAD( "opr-10193.66", 0x00000, 0x08000, CRC(bcd10dde) SHA1(417ce1d7242884640c5b14f4db8ee57cde7d085d) )
1634 	ROM_RELOAD(               0x08000, 0x08000 )
1635 	ROM_LOAD( "opr-10192.67", 0x10000, 0x08000, CRC(770f1270) SHA1(686bdf44d45c1d6002622f6658f037735382f3e0) )
1636 	ROM_RELOAD(               0x18000, 0x08000 )
1637 	ROM_LOAD( "opr-10191.68", 0x20000, 0x08000, CRC(20a284ab) SHA1(7c9027416d4122791ba53782fe2230cf02b7d506) )
1638 	ROM_RELOAD(               0x28000, 0x08000 )
1639 	ROM_LOAD( "opr-10190.69", 0x30000, 0x08000, CRC(7cab70e2) SHA1(a3c581d2b438630d0d4c39481dcfd85681c9f889) )
1640 	ROM_RELOAD(               0x38000, 0x08000 )
1641 	ROM_LOAD( "opr-10189.70", 0x40000, 0x08000, CRC(01366b54) SHA1(f467a6b807694d5832a985f5381c170d24aaee4e) )
1642 	ROM_RELOAD(               0x48000, 0x08000 )
1643 	ROM_LOAD( "enhanced_103_opr-10188.71", 0x50000, 0x08000, CRC(37598616) SHA1(e7c8ae6c59742e1de7ec5a95c5aebfab5716d959) ) // unofficial replacement for factory defective opr-10188
1644 	ROM_RELOAD(               0x58000, 0x08000 )
1645 ROM_END
1646 
1647 //*************************************************************************************************************************
1648 //  Outrun Deluxe (Japan)
1649 //  CPU: FD1089A (317-0019)
1650 //   GAME BD  834-6065-01
1651 //   CPU BD   837-6063-01
1652 //   VIDEO BD 837-6064-02
1653 //
1654 //  Note: This is a Deluxe version. IE: Motor On / Off at SWB-1 and Demo Sounds at SWB-2
1655 //
1656 ROM_START( outrundxj )
1657 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code - protected
1658 	ROM_LOAD16_BYTE( "epr-10331.ic133", 0x000000, 0x10000, CRC(64a7f657) SHA1(ababc9485a52bd55e90727335ab1d1037697bc6b) )
1659 	ROM_LOAD16_BYTE( "epr-10333.ic118", 0x000001, 0x10000, CRC(fce8394e) SHA1(359ce9f05caf091945fe857ffba037c5aada84e5) )
1660 	ROM_LOAD16_BYTE( "epr-10332.ic132", 0x020000, 0x10000, CRC(53d298d7) SHA1(6df0ad9758d99d53154d662b540211e9c7d2cd02) )
1661 	ROM_LOAD16_BYTE( "epr-10334.ic117", 0x020001, 0x10000, CRC(ff22ad0b) SHA1(41f7c075e0c84a16c0ac46e35bff5e9484920664) )
1662 
1663 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
1664 	ROM_LOAD16_BYTE( "epr-10327.76", 0x00000, 0x10000, CRC(da99d855) SHA1(77d18092e3c10a400e62eeba562f161398fe37a7) )
1665 	ROM_LOAD16_BYTE( "epr-10329.58", 0x00001, 0x10000, CRC(fe0fa5e2) SHA1(e63fe5f7950af35131539836f18fa056767c2c80) )
1666 	ROM_LOAD16_BYTE( "epr-10328.75", 0x20000, 0x10000, CRC(3c0e9a7f) SHA1(0e182fdac70423a85dc2b996c70bcb3954e75e10) )
1667 	ROM_LOAD16_BYTE( "epr-10330.57", 0x20001, 0x10000, CRC(59786e99) SHA1(834bf361ca67cee3793c324bb26cf0ec82a72068) )
1668 
1669 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
1670 	ROM_LOAD( "opr-10268.99",  0x00000, 0x08000, CRC(95344b04) SHA1(b3480714b11fc49b449660431f85d4ba92f799ba) )
1671 	ROM_LOAD( "opr-10232.102", 0x08000, 0x08000, CRC(776ba1eb) SHA1(e3477961d19e694c97643066534a1f720e0c4327) )
1672 	ROM_LOAD( "opr-10267.100", 0x10000, 0x08000, CRC(a85bb823) SHA1(a7e0143dee5a47e679fd5155e58e717813912692) )
1673 	ROM_LOAD( "opr-10231.103", 0x18000, 0x08000, CRC(8908bcbf) SHA1(8e1237b640a6f26bdcbfd5e201dadb2687c4febb) )
1674 	ROM_LOAD( "opr-10266.101", 0x20000, 0x08000, CRC(9f6f1a74) SHA1(09164e858ebeedcff4d389524ddf89e7c216dcae) )
1675 	ROM_LOAD( "opr-10230.104", 0x28000, 0x08000, CRC(686f5e50) SHA1(03697b892f911177968aa40de6c5f464eb0258e7) )
1676 
1677 	ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
1678 	// VIDEO BD 837-6064-02 uses mask ROMs four times the size of those used on VIDEO BD 837-6064-01, same data
1679 	ROM_LOAD32_BYTE( "mpr-10371.9",  0x00000, 0x20000, CRC(7cc86208) SHA1(21320f945f7c8e990c97c9b1232a0f4b6bd00f8f) )
1680 	ROM_LOAD32_BYTE( "mpr-10373.10", 0x00001, 0x20000, CRC(b0d26ac9) SHA1(3a9ce8547cd43b7b04abddf9a9ab5634e0bbfaba) )
1681 	ROM_LOAD32_BYTE( "mpr-10375.11", 0x00002, 0x20000, CRC(59b60bd7) SHA1(e5d8c67e020608edd24ba87b7687b2ac2483ee7f) )
1682 	ROM_LOAD32_BYTE( "mpr-10377.12", 0x00003, 0x20000, CRC(17a1b04a) SHA1(9f7210cb4153ac9029a785dcd4b45f4513a4b008) )
1683 	ROM_LOAD32_BYTE( "mpr-10372.13", 0x80000, 0x20000, CRC(b557078c) SHA1(a3746a2da077a8df4932348f650a061f413e8430) )
1684 	ROM_LOAD32_BYTE( "mpr-10374.14", 0x80001, 0x20000, CRC(8051e517) SHA1(9c8509fbed170b4ac74c169da573393e54774f49) )
1685 	ROM_LOAD32_BYTE( "mpr-10376.15", 0x80002, 0x20000, CRC(f3b8f318) SHA1(a5f2532613f33a64441e0f75443c10ba78dccc6e) )
1686 	ROM_LOAD32_BYTE( "mpr-10378.16", 0x80003, 0x20000, CRC(a1062984) SHA1(4399030a155caf71f2dec7f75c4b65531ab53576) )
1687 
1688 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road)
1689 	ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
1690 	ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
1691 
1692 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
1693 	ROM_LOAD( "epr-10187.88", 0x00000, 0x8000, CRC(a10abaa9) SHA1(01c8a819587a66d2ee4d255656e36fa0904377b0) )
1694 
1695 	ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
1696 	ROM_LOAD( "opr-10193.66", 0x00000, 0x08000, CRC(bcd10dde) SHA1(417ce1d7242884640c5b14f4db8ee57cde7d085d) )
1697 	ROM_RELOAD(               0x08000, 0x08000 )
1698 	ROM_LOAD( "opr-10192.67", 0x10000, 0x08000, CRC(770f1270) SHA1(686bdf44d45c1d6002622f6658f037735382f3e0) )
1699 	ROM_RELOAD(               0x18000, 0x08000 )
1700 	ROM_LOAD( "opr-10191.68", 0x20000, 0x08000, CRC(20a284ab) SHA1(7c9027416d4122791ba53782fe2230cf02b7d506) )
1701 	ROM_RELOAD(               0x28000, 0x08000 )
1702 	ROM_LOAD( "opr-10190.69", 0x30000, 0x08000, CRC(7cab70e2) SHA1(a3c581d2b438630d0d4c39481dcfd85681c9f889) )
1703 	ROM_RELOAD(               0x38000, 0x08000 )
1704 	ROM_LOAD( "opr-10189.70", 0x40000, 0x08000, CRC(01366b54) SHA1(f467a6b807694d5832a985f5381c170d24aaee4e) )
1705 	ROM_RELOAD(               0x48000, 0x08000 )
1706 	ROM_LOAD( "opr-10188.71", 0x50000, 0x08000, CRC(bad30ad9) SHA1(f70dd3a6362c314adef313b064102f7a250401c8) )
1707 	ROM_RELOAD(               0x58000, 0x08000 )
1708 
1709 	ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
1710 	ROM_LOAD( "317-0019.key", 0x0000, 0x2000, CRC(8ffbed98) SHA1(9c1147a1115c2b8555405bdbb5f04cae55b8ba29) )
1711 ROM_END
1712 
1713 //*************************************************************************************************************************
1714 //  Outrun Deluxe (earlier??)
1715 //  CPU: 68000
1716 //   GAME BD  834-6065 Rev A
1717 //   CPU BD   837-6063
1718 //   VIDEO BD 837-6064-01
1719 //
1720 //  Note: This is a Deluxe version. IE: Motor On / Off at SWB-1 and Demo Sounds at SWB-2
1721 //
1722 ROM_START( outrundxa )
1723 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
1724 	// Earlier version of CPU BD?? uses half size EPROMs compared to the above sets
1725 	ROM_LOAD16_BYTE( "epr-10183.115", 0x000000, 0x8000, CRC(3d992396) SHA1(8cef43799b71cfd36d3fea140afff7fe0bafcfc1) )
1726 	ROM_LOAD16_BYTE( "epr-10261.130", 0x000001, 0x8000, CRC(1d034847) SHA1(664b24c13f7885403328906682213e38c1ad994e) )
1727 	ROM_LOAD16_BYTE( "epr-10184.116", 0x010000, 0x8000, CRC(1a73dc46) SHA1(70f31619e80eb3d70747e7006e135c8bc0a31675) )
1728 	ROM_LOAD16_BYTE( "epr-10262.131", 0x010001, 0x8000, CRC(5386b6b3) SHA1(a554ed1b4e07811c4accc59c063baa42949b6670) )
1729 	ROM_LOAD16_BYTE( "epr-10258.117", 0x020000, 0x8000, CRC(39408e4f) SHA1(4f7f8b393dfb1e1935d595ae55a6913a27b02f80) )
1730 	ROM_LOAD16_BYTE( "epr-10263.132", 0x020001, 0x8000, CRC(eda65fd6) SHA1(dd9c072856edffff3e73423f22ab40c5893bd26f) )
1731 	ROM_LOAD16_BYTE( "epr-10259.118", 0x030000, 0x8000, CRC(95100b1a) SHA1(d2a5eb97623321b6c943bc435de26bf5d39ea312) )
1732 	ROM_LOAD16_BYTE( "epr-10264.133", 0x030001, 0x8000, CRC(cc94b102) SHA1(29dc7e2a8509d0b5d30e2fb9404e0517b97f64e8) )
1733 
1734 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
1735 	ROM_LOAD16_BYTE( "epr-10173.66", 0x000000, 0x8000, CRC(6c2775c0) SHA1(2dd3a4e7f7b8808da74fbd53423a83775afff5d5) )
1736 	ROM_LOAD16_BYTE( "epr-10178.86", 0x000001, 0x8000, CRC(6d36be05) SHA1(02527701451bbdfa14280ef4db6f4d540e6ee470) )
1737 	ROM_LOAD16_BYTE( "epr-10174.67", 0x010000, 0x8000, CRC(aae7efad) SHA1(bbc68daafc8bb61d0b065baa3a3583e95de4d9ad) )
1738 	ROM_LOAD16_BYTE( "epr-10179.87", 0x010001, 0x8000, CRC(180fd041) SHA1(87f1566cff1bded7642e260b8337a278052727bb) )
1739 	ROM_LOAD16_BYTE( "epr-10175.68", 0x020000, 0x8000, CRC(31c76063) SHA1(a3069c5443e7f87c38a69530f00ccc6e9a8eac42) )
1740 	ROM_LOAD16_BYTE( "epr-10180.88", 0x020001, 0x8000, CRC(4713b264) SHA1(ab498b5232520657bae841927ee74994a6fb1c4e) )
1741 	ROM_LOAD16_BYTE( "epr-10176.69", 0x030000, 0x8000, CRC(a7811f90) SHA1(a2ac49f0947ddddbbdaa90ebdefd232fdbf27c35) )
1742 	ROM_LOAD16_BYTE( "epr-10181.89", 0x030001, 0x8000, CRC(e009a04d) SHA1(f3253a0feb6acd08238e025e7ab8b5cb175d1c67) )
1743 
1744 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
1745 	ROM_LOAD( "opr-10268.99",  0x00000, 0x08000, CRC(95344b04) SHA1(b3480714b11fc49b449660431f85d4ba92f799ba) )
1746 	ROM_LOAD( "opr-10232.102", 0x08000, 0x08000, CRC(776ba1eb) SHA1(e3477961d19e694c97643066534a1f720e0c4327) )
1747 	ROM_LOAD( "opr-10267.100", 0x10000, 0x08000, CRC(a85bb823) SHA1(a7e0143dee5a47e679fd5155e58e717813912692) )
1748 	ROM_LOAD( "opr-10231.103", 0x18000, 0x08000, CRC(8908bcbf) SHA1(8e1237b640a6f26bdcbfd5e201dadb2687c4febb) )
1749 	ROM_LOAD( "opr-10266.101", 0x20000, 0x08000, CRC(9f6f1a74) SHA1(09164e858ebeedcff4d389524ddf89e7c216dcae) )
1750 	ROM_LOAD( "opr-10230.104", 0x28000, 0x08000, CRC(686f5e50) SHA1(03697b892f911177968aa40de6c5f464eb0258e7) )
1751 
1752 	ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
1753 	// VIDEO BD 837-6064-01 uses EPROMs a fourth of the size of those used on VIDEO BD 837-6064-02, same data
1754 	ROM_LOAD32_BYTE( "epr-10194.26", 0x00000, 0x08000, CRC(f0eda3bd) SHA1(173e10a10372d42da81e6eb48c3e23a117638c0c) )
1755 	ROM_LOAD32_BYTE( "epr-10203.38", 0x00001, 0x08000, CRC(8445a622) SHA1(1187dee7db09a42446fc75872d49936310141eb8) )
1756 	ROM_LOAD32_BYTE( "epr-10212.52", 0x00002, 0x08000, CRC(dee7e731) SHA1(f09d18f8d8405025b87dd01488ad2098e28410b0) )
1757 	ROM_LOAD32_BYTE( "epr-10221.66", 0x00003, 0x08000, CRC(43431387) SHA1(a28896e888bc4d4f67babd49003d663c1ceabb71) )
1758 	ROM_LOAD32_BYTE( "epr-10195.27", 0x20000, 0x08000, CRC(0de75cdd) SHA1(a97faea76aca663ccbbde327f3d1d8ae256649d3) )
1759 	ROM_LOAD32_BYTE( "epr-10204.39", 0x20001, 0x08000, CRC(5f4b5abb) SHA1(f81637b2eb6a4bde76c43eedfad7e5375594c7bd) )
1760 	ROM_LOAD32_BYTE( "epr-10213.53", 0x20002, 0x08000, CRC(1d1b22f0) SHA1(d3b1c36d08c4b7b08f9969a521e62eebd5b2238d) )
1761 	ROM_LOAD32_BYTE( "epr-10222.67", 0x20003, 0x08000, CRC(a254c706) SHA1(e2801a0a7fd5546a48cd53ad7e4743d821d985ff) )
1762 	ROM_LOAD32_BYTE( "epr-10196.28", 0x40000, 0x08000, CRC(8688bb59) SHA1(0aaa90c5101aa1db00db776a15a0a525587dfc43) )
1763 	ROM_LOAD32_BYTE( "epr-10205.40", 0x40001, 0x08000, CRC(74bd93ca) SHA1(6a02ea3b977e56cfd61302afa2abf6c2dc766ba7) )
1764 	ROM_LOAD32_BYTE( "epr-10214.54", 0x40002, 0x08000, CRC(57527e18) SHA1(4cc95c4b741f495e5b9c3b9d4d9ab9a6fded9aeb) )
1765 	ROM_LOAD32_BYTE( "epr-10223.68", 0x40003, 0x08000, CRC(3850690e) SHA1(0f92743f848edc8deaeeef3afca5f662ceba61e7) )
1766 	ROM_LOAD32_BYTE( "epr-10197.29", 0x60000, 0x08000, CRC(009165a6) SHA1(987b91e8c5c54bb7c4520b13a72f1f47c34278f4) )
1767 	ROM_LOAD32_BYTE( "epr-10206.41", 0x60001, 0x08000, CRC(954542c5) SHA1(3c67e3568c04ba083f4aacad2e8857cdd16b3b2f) )
1768 	ROM_LOAD32_BYTE( "epr-10215.55", 0x60002, 0x08000, CRC(69be5a6c) SHA1(2daac5877a71de04878f231f03361f697552431f) )
1769 	ROM_LOAD32_BYTE( "epr-10224.69", 0x60003, 0x08000, CRC(5cffc346) SHA1(0481f864bb584c96cd92c260a62c0c1d4030bde8) )
1770 	ROM_LOAD32_BYTE( "epr-10198.30", 0x80000, 0x08000, CRC(d894992e) SHA1(451469f743a0019b8797d16ba7b26a267d13fe06) )
1771 	ROM_LOAD32_BYTE( "epr-10207.42", 0x80001, 0x08000, CRC(ca61cea4) SHA1(7c39e2863f5c7be290522acdaf046b1dab7a3542) )
1772 	ROM_LOAD32_BYTE( "epr-10216.56", 0x80002, 0x08000, CRC(d394134d) SHA1(42f768a9c9eb9f556d197548c35b3a0cd5414734) )
1773 	ROM_LOAD32_BYTE( "epr-10225.70", 0x80003, 0x08000, CRC(0a5d1f2b) SHA1(43d9c7539b6cebbac3395a4ba71a702300c9e644) )
1774 	ROM_LOAD32_BYTE( "epr-10199.31", 0xa0000, 0x08000, CRC(86376af6) SHA1(971f4b0d9a01ca7ffb50cefbe1ab41b703a4a41a) )
1775 	ROM_LOAD32_BYTE( "epr-10208.43", 0xa0001, 0x08000, CRC(6830b7fa) SHA1(3ece1971a4f025104ebd026da6751caea9aa8a64) )
1776 	ROM_LOAD32_BYTE( "epr-10217.57", 0xa0002, 0x08000, CRC(bf2c9b76) SHA1(248e273255968115a60855b1fffcce1dbeacc3d4) )
1777 	ROM_LOAD32_BYTE( "epr-10226.71", 0xa0003, 0x08000, CRC(5a452474) SHA1(6789a33b55a1693ec9cc196b3ebd220b14169e08) )
1778 	ROM_LOAD32_BYTE( "epr-10200.32", 0xc0000, 0x08000, CRC(1e5d4f73) SHA1(79deddf4461dad5784441c2839894207b7d2ecac) )
1779 	ROM_LOAD32_BYTE( "epr-10209.44", 0xc0001, 0x08000, CRC(5c15419e) SHA1(7b4e9c0cb430afae7f927c0224021add0a627251) )
1780 	ROM_LOAD32_BYTE( "epr-10218.58", 0xc0002, 0x08000, CRC(db4bdb39) SHA1(b4661611b28e7ff1c721565175038cfd1e99d383) )
1781 	ROM_LOAD32_BYTE( "epr-10227.72", 0xc0003, 0x08000, CRC(c7def392) SHA1(fa7d1245eefdc3abb9520118bbb0d025ca62901e) )
1782 	ROM_LOAD32_BYTE( "epr-10201.33", 0xe0000, 0x08000, CRC(1d9d4b9c) SHA1(3264b66c87aa7de4c140450b96adbe3071231d4a) )
1783 	ROM_LOAD32_BYTE( "epr-10210.45", 0xe0001, 0x08000, CRC(39422931) SHA1(8d8a3f4597945c92aebd20c0784180696b6c9c1c) )
1784 	ROM_LOAD32_BYTE( "epr-10219.59", 0xe0002, 0x08000, CRC(e73b9224) SHA1(1904a71a0c18ab2a3a5929e72b1c215dbb0fa213) )
1785 	ROM_LOAD32_BYTE( "epr-10228.73", 0xe0003, 0x08000, CRC(25803978) SHA1(1a18922aeb516e8deb026d52e3cdcc4e69385af5) )
1786 
1787 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road)
1788 	ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
1789 	ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
1790 
1791 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
1792 	ROM_LOAD( "epr-10187.88", 0x00000, 0x8000, CRC(a10abaa9) SHA1(01c8a819587a66d2ee4d255656e36fa0904377b0) )
1793 
1794 	ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
1795 	ROM_LOAD( "opr-10193.66", 0x00000, 0x08000, CRC(bcd10dde) SHA1(417ce1d7242884640c5b14f4db8ee57cde7d085d) )
1796 	ROM_RELOAD(               0x08000, 0x08000 )
1797 	ROM_LOAD( "opr-10192.67", 0x10000, 0x08000, CRC(770f1270) SHA1(686bdf44d45c1d6002622f6658f037735382f3e0) )
1798 	ROM_RELOAD(               0x18000, 0x08000 )
1799 	ROM_LOAD( "opr-10191.68", 0x20000, 0x08000, CRC(20a284ab) SHA1(7c9027416d4122791ba53782fe2230cf02b7d506) )
1800 	ROM_RELOAD(               0x28000, 0x08000 )
1801 	ROM_LOAD( "opr-10190.69", 0x30000, 0x08000, CRC(7cab70e2) SHA1(a3c581d2b438630d0d4c39481dcfd85681c9f889) )
1802 	ROM_RELOAD(               0x38000, 0x08000 )
1803 	ROM_LOAD( "opr-10189.70", 0x40000, 0x08000, CRC(01366b54) SHA1(f467a6b807694d5832a985f5381c170d24aaee4e) )
1804 	ROM_RELOAD(               0x48000, 0x08000 )
1805 	ROM_LOAD( "opr-10188.71", 0x50000, 0x08000, CRC(bad30ad9) SHA1(f70dd3a6362c314adef313b064102f7a250401c8) )
1806 	ROM_RELOAD(               0x58000, 0x08000 )
1807 ROM_END
1808 
1809 //*************************************************************************************************************************
1810 //  Outrun (bootleg)
1811 //
1812 //  Outrun bootleg made by PHILKO
1813 //
1814 //  It is composed of 3 boards.
1815 //
1816 //  The upper board contains:
1817 //  2x 68000 cpus
1818 //  1x z80 cpu
1819 //  1x ym2151
1820 //  1x 20mhz osc (near 68k)
1821 //  1x 16mhz osc (near z80)
1822 //  2x pots
1823 //  1x PHILKO custom chip quad package soldered (gfx chip?). it's marked "Philko PK8702 8717".
1824 //  EPROMs from a-1 to a-14
1825 //
1826 //  Mid board contains:
1827 //  many TTLs and rams
1828 //  1x NEC D8255AC-2 (I/O chip?)
1829 //  5x Philko custom chips dip package (little as a ttl). They are all marked "Philko PK8701 8720"
1830 //  EPROMs a-15, a-16 and a-17
1831 //
1832 //  Lower board contains:
1833 //  lots of rams
1834 //  1x custom Philko chip the size of a z80. it's marked "Philko PK8703"
1835 //  1x custom Philko chip the size of a z80. it's marked "Philko PK8704"
1836 //  1x custom Philko chip the size of a z80. it's marked "Philko PK8705"
1837 //  EPROMs from a-18 to a-33
1838 //
1839 //  Dumped by Corrado Tomaselli
1840 //
1841 ROM_START( outrunb )
1842 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
1843 	ROM_LOAD16_BYTE( "a-10.bin", 0x000000, 0x10000, CRC(cddceea2) SHA1(34cb4ca61c941e96e585f3cd2aed79bdde67f8eb) )
1844 	ROM_LOAD16_BYTE( "a-9.bin",  0x000001, 0x10000, CRC(14e97a67) SHA1(a86ccb719ad695ed814bedfe02dbafa435fc65da) )
1845 	ROM_LOAD16_BYTE( "a-14.bin", 0x020000, 0x10000, CRC(3092d857) SHA1(8ebfeab9217b80a7983a4f8eb7bb7d3387d791b3) )
1846 	ROM_LOAD16_BYTE( "a-13.bin", 0x020001, 0x10000, CRC(30a1c496) SHA1(734c82930197e6e8cd2bea145aedda6b3c1145d0) )
1847 
1848 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
1849 	ROM_LOAD16_BYTE( "a-8.bin",  0x00000, 0x10000, CRC(d7f5aae0) SHA1(0f9b693f078cdbbfeade5a373a94a20110d586ca) )
1850 	ROM_LOAD16_BYTE( "a-7.bin",  0x00001, 0x10000, CRC(88c2e78f) SHA1(198cab9133345e4529f7fb52c29974c9a1a84933) )
1851 	ROM_LOAD16_BYTE( "a-12.bin", 0x20000, 0x10000, CRC(d5ec5e5d) SHA1(a4e3cfca4d803e72bc4fcf91ab00e21bf3f8959f) )
1852 	ROM_LOAD16_BYTE( "a-11.bin", 0x20001, 0x10000, CRC(74c5fbec) SHA1(a44f1477d830fdb4d6c29351da94776843e5d3e1) )
1853 
1854 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
1855 	ROM_LOAD( "a-15.bin",   0x00000, 0x10000, CRC(4c489133) SHA1(db97de9d84ca5916e69972ee19ccb4c15fa98bf9) )
1856 	ROM_LOAD( "a-17.bin",   0x10000, 0x10000, CRC(899c781d) SHA1(4f759c316a57a1e42838375525290425d25b53e1) )
1857 	ROM_LOAD( "a-16.bin",   0x20000, 0x10000, CRC(98dd4d15) SHA1(914ebcb330455ab35968b4add4d94be123a185a5) )
1858 
1859 	ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
1860 	ROM_LOAD32_BYTE( "a-18.bin",    0x00000, 0x10000, CRC(77377e00) SHA1(4f376b05692f33d529f4c058dac989136c808ca1) )
1861 	ROM_LOAD32_BYTE( "a-20.bin",    0x00001, 0x10000, CRC(69ecc975) SHA1(3560e9a31fc71e263a6ff61224b8db2b17836075) )
1862 	ROM_LOAD32_BYTE( "a-22.bin",    0x00002, 0x10000, CRC(b6a8d0e2) SHA1(6184700dbe2c8c9c91f220e246501b7a865e4a05) )
1863 	ROM_LOAD32_BYTE( "a-24.bin",    0x00003, 0x10000, CRC(d632d8a2) SHA1(27ca6faaa073bd01b2be959dba0359f93e8c1ec1) )
1864 	ROM_LOAD32_BYTE( "a-26.bin",    0x40000, 0x10000, CRC(4f784236) SHA1(1fb610fd29d3ddd8c5d4892ae215386b18552e6f) )
1865 	ROM_LOAD32_BYTE( "a-28.bin",    0x40001, 0x10000, CRC(ee4f7154) SHA1(3a84c1b19d9dfcd5310e9cee90c0d4562a4a7786) )
1866 	ROM_LOAD32_BYTE( "a-30.bin",    0x40002, 0x10000, CRC(e9880aa3) SHA1(cc47f631e758bd856bbc6d010fe230f9b1ed29de) )
1867 	ROM_LOAD32_BYTE( "a-32.bin",    0x40003, 0x10000, CRC(dc286dc2) SHA1(eaa245b81f8a324988f617467fc3134a39b59c65) )
1868 	ROM_LOAD32_BYTE( "a-19.bin",    0x80000, 0x10000, CRC(2c0e7277) SHA1(cf14d1ca1fba2e2687998c04ad2ab8c629917412) )
1869 	ROM_LOAD32_BYTE( "a-21.bin",    0x80001, 0x10000, CRC(54761e57) SHA1(dc0fc645eb998675ab9fe683d63d4ee57ae23693) )
1870 	ROM_LOAD32_BYTE( "a-23.bin",    0x80002, 0x10000, CRC(a00d0676) SHA1(c2ab29a7489c6f774ce26ef023758215ea3f7050) )
1871 	ROM_LOAD32_BYTE( "a-25.bin",    0x80003, 0x10000, CRC(da398368) SHA1(115b2881d2d5ddeda2ce82bb209a2c0b4acfcae4) )
1872 	ROM_LOAD32_BYTE( "a-27.bin",    0xc0000, 0x10000, CRC(8d459356) SHA1(143914b1ac074708fed1d89072f915424aeb841e) )
1873 	ROM_LOAD32_BYTE( "a-29.bin",    0xc0001, 0x10000, CRC(a8245727) SHA1(13c1d417078d91b8c97e35d632e1ac4bc9bd64e3) )
1874 	ROM_LOAD32_BYTE( "a-31.bin",    0xc0002, 0x10000, CRC(ef7d06fe) SHA1(541b5ba45f4140e2cc29a9da2592b476d414af5d) )
1875 	ROM_LOAD32_BYTE( "a-33.bin",    0xc0003, 0x10000, CRC(1222af9f) SHA1(2364bd54cbe21dd688efff32e93bf154546c93d6) )
1876 
1877 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx - correct order unknown (identical after bitswapping)
1878 	ROM_LOAD( "a-2.bin", 0x0000, 0x8000, CRC(ed5bda9c) SHA1(f09a34caf1f9f6b119700a00635ab8fa8244362d) )
1879 	ROM_LOAD( "a-3.bin", 0x8000, 0x8000, CRC(666fe754) SHA1(606090db53d658d7b04dca4748014a411e12f259) )
1880 
1881 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
1882 	ROM_LOAD( "a-1.bin", 0x00000, 0x8000, CRC(209bb53a) SHA1(4ec9ca7532354f05f06295a01c4fa4982268e1d5) )
1883 
1884 	ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
1885 	ROM_LOAD( "a-6.bin", 0x00000, 0x08000, CRC(191f98f4) SHA1(a6ac6feeeeed8e08a19bfa280c5f5f8bc69833e2) )
1886 	ROM_CONTINUE(        0x10000, 0x08000 )
1887 	ROM_LOAD( "a-5.bin", 0x20000, 0x08000, CRC(374466d0) SHA1(c648bcb17ed0501bb3e94994716b4a7b81ec75e4) )
1888 	ROM_CONTINUE(        0x30000, 0x08000 )
1889 	ROM_LOAD( "a-4.bin", 0x40000, 0x08000, CRC(2a27d0b0) SHA1(018db0e80af37c22c4eb57747093ac3b9faf8931) )
1890 	ROM_CONTINUE(        0x50000, 0x08000 )
1891 ROM_END
1892 
1893 
1894 //*************************************************************************************************************************
1895 //*************************************************************************************************************************
1896 //*************************************************************************************************************************
1897 //  Super Hangon
1898 //  CPU: 68000 (317-????)
1899 //   GAME BD SUPER HANG-ON  834-6277-07 SUPER HANG ON
1900 //   CPU BD SUPER HANG-ON   837-6278-01 (or 837-6278-03)
1901 //   VIDEO BD SUPER HANG-ON 837-6279-01
1902 //
1903 ROM_START( shangon )
1904 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
1905 	ROM_LOAD16_BYTE( "epr-10886.133", 0x000000, 0x10000, CRC(8be3cd36) SHA1(de96481807e782ca441d51e99f1a221bdee7d170) )
1906 	ROM_LOAD16_BYTE( "epr-10884.118", 0x000001, 0x10000, CRC(cb06150d) SHA1(840dada0cdeec444b554e6c1f2bdacc1047be567) )
1907 	ROM_LOAD16_BYTE( "epr-10887.132", 0x020000, 0x10000, CRC(8d248bb0) SHA1(7d8ed61609fd0df203255e7d046d9d30983f1dcd) )
1908 	ROM_LOAD16_BYTE( "epr-10885.117", 0x020001, 0x10000, CRC(70795f26) SHA1(332921b0a6534c4cbfe76ff957c721cc80d341b0) )
1909 
1910 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
1911 	ROM_LOAD16_BYTE( "epr-10792.76", 0x00000, 0x10000, CRC(16299d25) SHA1(b14d5feef3e6889320d51ffca36801f4c9c4d5f8) )
1912 	ROM_LOAD16_BYTE( "epr-10790.58", 0x00001, 0x10000, CRC(2246cbc1) SHA1(c192b1ddf4c848adb564c7c87d5413d62ed650d7) )
1913 	ROM_LOAD16_BYTE( "epr-10793.75", 0x20000, 0x10000, CRC(d9525427) SHA1(cdb24db9f7a293f20fd8becc4afe84fd6abd678a) )
1914 	ROM_LOAD16_BYTE( "epr-10791.57", 0x20001, 0x10000, CRC(5faf4cbe) SHA1(41659a961e6469d9233849c3c587cd5a0a141344) )
1915 
1916 	ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
1917 	ROM_LOAD( "epr-10652.54", 0x00000, 0x08000, CRC(260286f9) SHA1(dc7c8d2c6ef924a937328685eed19bda1c8b1819) )
1918 	ROM_LOAD( "epr-10651.55", 0x08000, 0x08000, CRC(c609ee7b) SHA1(c6dacf81cbfe7e5df1f9a967cf571be1dcf1c429) )
1919 	ROM_LOAD( "epr-10650.56", 0x10000, 0x08000, CRC(b236a403) SHA1(af02b8122794c083a66f2ab35d2c73b84b2df0be) )
1920 
1921 	ROM_REGION16_BE( 0x100000, "sprites", 0 ) // sprites
1922 	// Super Hang-On Video board 837-6279-01 (mask ROM type), same data but mask ROMs twice the size as "EPR" counterparts
1923 	ROM_LOAD16_BYTE( "mpr-10794.8",  0x000001, 0x020000, CRC(7c958e63) SHA1(ef79614e94280607a6cdf6e13db051accfd2add0) )
1924 	ROM_LOAD16_BYTE( "mpr-10798.16", 0x000000, 0x020000, CRC(7d58f807) SHA1(783c9929d27a0270b3f7d5eb799cee6b2e5b7ae5) )
1925 	ROM_LOAD16_BYTE( "mpr-10795.6",  0x040001, 0x020000, CRC(d9d31f8c) SHA1(3ce07b83e3aa2d8834c1a449fa31e003df5486a3) )
1926 	ROM_LOAD16_BYTE( "mpr-10799.14", 0x040000, 0x020000, CRC(96d90d3d) SHA1(6572cbce8f98a1a7a8e59b0c502ab274f78d2819) )
1927 	ROM_LOAD16_BYTE( "mpr-10796.4",  0x080001, 0x020000, CRC(fb48957c) SHA1(86a66bcf38686be5537a1361d390ecbbccdddc11) )
1928 	ROM_LOAD16_BYTE( "mpr-10800.12", 0x080000, 0x020000, CRC(feaff98e) SHA1(20e38f9039079f64919d750a2e1382503d437463) )
1929 	ROM_LOAD16_BYTE( "mpr-10797.2",  0x0c0001, 0x020000, CRC(27f2870d) SHA1(40a34e4555885bf3c6a42e472b80d11c3bd4dcba) )
1930 	ROM_LOAD16_BYTE( "mpr-10801.10", 0x0c0000, 0x020000, CRC(12781795) SHA1(44bf6f657f32b9fab119557eb73c2fbf78700204) )
1931 
1932 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx
1933 	ROM_LOAD( "epr-10642.47", 0x0000, 0x8000, CRC(7836bcc3) SHA1(26f308bf96224311ddf685799d7aa29aac42dd2f) )
1934 	// socket IC11 not populated
1935 
1936 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
1937 	ROM_LOAD( "epr-10649c.88", 0x0000, 0x08000, CRC(f6c1ce71) SHA1(12299f7e5378a56be3a31cce3b8b74e48744f33a) )
1938 
1939 	ROM_REGION( 0x40000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
1940 	ROM_LOAD( "epr-10643.66", 0x00000, 0x08000, CRC(06f55364) SHA1(fd685795e12541e3d0059d383fab293b3980d247) )
1941 	ROM_RELOAD(               0x08000, 0x08000 )
1942 	ROM_LOAD( "epr-10644.67", 0x10000, 0x08000, CRC(b41d541d) SHA1(28bbfa5edaa4a5901c74074354ba6f14d8f42ff6) )
1943 	ROM_RELOAD(               0x18000, 0x08000 )
1944 	ROM_LOAD( "epr-10645.68", 0x20000, 0x08000, CRC(a60dabff) SHA1(bbef0fb0d7837cc7efc866226bfa2bd7fab06459) )
1945 	ROM_RELOAD(               0x28000, 0x08000 )
1946 	ROM_LOAD( "epr-10646.69", 0x30000, 0x08000, CRC(473cc411) SHA1(04ca2d047eb59581cd5d76e0ac6eca8b19eef497) )
1947 	ROM_RELOAD(               0x38000, 0x08000 )
1948 ROM_END
1949 
1950 //*************************************************************************************************************************
1951 //  Super Hangon
1952 //  CPU: FD1089B (317-0034)
1953 //   GAME BD SUPER HANG-ON  834-6277-02
1954 //   CPU BD SUPER HANG-ON   837-6278-01 (or 837-6278-03)
1955 //   VIDEO BD SUPER HANG-ON 837-6279 (or 837-6279-02, ROMs would be "OPR")
1956 //
1957 //  Manual states for this set:
1958 //      834-6277-01 (Object data (sprites) EPR type AKA EP-ROM type)
1959 //      834-6277-03 (Object data (sprites) MPR type AKA Mask-ROM type)
1960 //      834-6277-05 (Object data (sprites) OPR type AKA One Time ROM type)
1961 //
1962 ROM_START( shangon3 )
1963 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code - protected
1964 	ROM_LOAD16_BYTE( "epr-10789.133",  0x000000, 0x10000, CRC(6092c5ce) SHA1(dc010ab6d4dbbcb2f38de9f4f80674e9e1502dea) )
1965 	ROM_LOAD16_BYTE( "epr-10788.118",  0x000001, 0x10000, CRC(c3d8a1ea) SHA1(b7f5de5e9ab9e5fb59937c11acd960f8e4a9bc2f) )
1966 	ROM_LOAD16_BYTE( "epr-10637a.132", 0x020000, 0x10000, CRC(ad6c1308) SHA1(ee63168205bcb8b2c3dcbc3d7ba8a7f8f8a85952) )
1967 	ROM_LOAD16_BYTE( "epr-10635a.117", 0x020001, 0x10000, CRC(a2415595) SHA1(2a8b960ea70066bf43c7b3772a0ed53d7c737b2c) )
1968 
1969 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
1970 	ROM_LOAD16_BYTE( "epr-10792.76", 0x00000, 0x10000, CRC(16299d25) SHA1(b14d5feef3e6889320d51ffca36801f4c9c4d5f8) )
1971 	ROM_LOAD16_BYTE( "epr-10790.58", 0x00001, 0x10000, CRC(2246cbc1) SHA1(c192b1ddf4c848adb564c7c87d5413d62ed650d7) )
1972 	ROM_LOAD16_BYTE( "epr-10793.75", 0x20000, 0x10000, CRC(d9525427) SHA1(cdb24db9f7a293f20fd8becc4afe84fd6abd678a) )
1973 	ROM_LOAD16_BYTE( "epr-10791.57", 0x20001, 0x10000, CRC(5faf4cbe) SHA1(41659a961e6469d9233849c3c587cd5a0a141344) )
1974 
1975 	ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
1976 	ROM_LOAD( "epr-10652.54", 0x00000, 0x08000, CRC(260286f9) SHA1(dc7c8d2c6ef924a937328685eed19bda1c8b1819) )
1977 	ROM_LOAD( "epr-10651.55", 0x08000, 0x08000, CRC(c609ee7b) SHA1(c6dacf81cbfe7e5df1f9a967cf571be1dcf1c429) )
1978 	ROM_LOAD( "epr-10650.56", 0x10000, 0x08000, CRC(b236a403) SHA1(af02b8122794c083a66f2ab35d2c73b84b2df0be) )
1979 
1980 	ROM_REGION16_BE( 0x0e0000, "sprites", 0 ) // sprites
1981 	ROM_LOAD16_BYTE( "epr-10675.8",  0x000001, 0x010000, CRC(d6ac012b) SHA1(305023b1a0a9d84cfc081ffc2ad7578b53d562f2) )
1982 	ROM_LOAD16_BYTE( "epr-10682.16", 0x000000, 0x010000, CRC(d9d83250) SHA1(f8ca3197edcdf53643a5b335c3c044ddc1310cd4) )
1983 	ROM_LOAD16_BYTE( "epr-10676.7",  0x020001, 0x010000, CRC(25ebf2c5) SHA1(abcf673ae4e280417dd9f46d18c0ec7c0e4802ae) )
1984 	ROM_LOAD16_BYTE( "epr-10683.15", 0x020000, 0x010000, CRC(6365d2e9) SHA1(688e2ba194e859f86cd3486c2575ebae257e975a) )
1985 	ROM_LOAD16_BYTE( "epr-10677.6",  0x040001, 0x010000, CRC(8a57b8d6) SHA1(df1a31559dd2d1e7c2c9d800bf97526bdf3e84e6) )
1986 	ROM_LOAD16_BYTE( "epr-10684.14", 0x040000, 0x010000, CRC(3aff8910) SHA1(4b41a49a7f02363424e814b37edce9a7a44a112e) )
1987 	ROM_LOAD16_BYTE( "epr-10678.5",  0x060001, 0x010000, CRC(af473098) SHA1(a2afaba1cbf672949dc50e407b46d7e9ae183774) )
1988 	ROM_LOAD16_BYTE( "epr-10685.13", 0x060000, 0x010000, CRC(80bafeef) SHA1(f01bcf65485e60f34e533295a896fca0b92e5b14) )
1989 	ROM_LOAD16_BYTE( "epr-10679.4",  0x080001, 0x010000, CRC(03bc4878) SHA1(548fc58bcc620204e30fa12fa4c4f0a3f6a1e4c0) )
1990 	ROM_LOAD16_BYTE( "epr-10686.12", 0x080000, 0x010000, CRC(274b734e) SHA1(906fa528659bc17c9b4744cec52f7096711adce8) )
1991 	ROM_LOAD16_BYTE( "epr-10680.3",  0x0a0001, 0x010000, CRC(9f0677ed) SHA1(5964642b70bfad418da44f2d91476f887b021f74) )
1992 	ROM_LOAD16_BYTE( "epr-10687.11", 0x0a0000, 0x010000, CRC(508a4701) SHA1(d17aea2aadc2e2cd65d81bf91feb3ef6923d5c0b) )
1993 	ROM_LOAD16_BYTE( "epr-10681.2",  0x0c0001, 0x010000, CRC(b176ea72) SHA1(7ec0eb0f13398d014c2e235773ded00351edb3e2) )
1994 	ROM_LOAD16_BYTE( "epr-10688.10", 0x0c0000, 0x010000, CRC(42fcd51d) SHA1(0eacb3527dc21746e5b901fcac83f2764a0f9e2c) )
1995 
1996 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx
1997 	ROM_LOAD( "epr-10642.47", 0x0000, 0x8000, CRC(7836bcc3) SHA1(26f308bf96224311ddf685799d7aa29aac42dd2f) )
1998 	// socket IC11 not populated
1999 
2000 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2001 	ROM_LOAD( "epr-10649a.88", 0x0000, 0x08000, CRC(bf38330f) SHA1(3d825bb02ef5a9f5c4fcaa71b3735e7f8e47f178) )
2002 
2003 	ROM_REGION( 0x40000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
2004 	ROM_LOAD( "epr-10643.66", 0x00000, 0x08000, CRC(06f55364) SHA1(fd685795e12541e3d0059d383fab293b3980d247) )
2005 	ROM_RELOAD(               0x08000, 0x08000 )
2006 	ROM_LOAD( "epr-10644.67", 0x10000, 0x08000, CRC(b41d541d) SHA1(28bbfa5edaa4a5901c74074354ba6f14d8f42ff6) )
2007 	ROM_RELOAD(               0x18000, 0x08000 )
2008 	ROM_LOAD( "epr-10645.68", 0x20000, 0x08000, CRC(a60dabff) SHA1(bbef0fb0d7837cc7efc866226bfa2bd7fab06459) )
2009 	ROM_RELOAD(               0x28000, 0x08000 )
2010 	ROM_LOAD( "epr-10646.69", 0x30000, 0x08000, CRC(473cc411) SHA1(04ca2d047eb59581cd5d76e0ac6eca8b19eef497) )
2011 	ROM_RELOAD(               0x38000, 0x08000 )
2012 
2013 	ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
2014 	ROM_LOAD( "317-0034.key", 0x0000, 0x2000, CRC(ad61539a) SHA1(5db534ff3ce2736222e4475f9bf093b3d2d55f1a) )
2015 ROM_END
2016 
2017 ROM_START( shangon3d )
2018 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
2019 	ROM_LOAD16_BYTE( "bootleg_epr-10789.133",  0x000000, 0x10000, CRC(9ec9b552) SHA1(0806acfdd1bc7711c90d608dd1383cc06902bfd5) )
2020 	ROM_LOAD16_BYTE( "bootleg_epr-10788.118",  0x000001, 0x10000, CRC(693821c4) SHA1(be020570480670fefb29cc4ec57497f4c6c9d425) )
2021 	ROM_LOAD16_BYTE( "bootleg_epr-10637a.132", 0x020000, 0x10000, CRC(a67a65b5) SHA1(b36503ea45aa852dd72f30461e009056e766f555) )
2022 	ROM_LOAD16_BYTE( "bootleg_epr-10635a.117", 0x020001, 0x10000, CRC(689961b9) SHA1(3f7cb83abd93f68be4168d2115d4dcab0487d1ef) )
2023 
2024 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
2025 	ROM_LOAD16_BYTE( "epr-10792.76", 0x00000, 0x10000, CRC(16299d25) SHA1(b14d5feef3e6889320d51ffca36801f4c9c4d5f8) )
2026 	ROM_LOAD16_BYTE( "epr-10790.58", 0x00001, 0x10000, CRC(2246cbc1) SHA1(c192b1ddf4c848adb564c7c87d5413d62ed650d7) )
2027 	ROM_LOAD16_BYTE( "epr-10793.75", 0x20000, 0x10000, CRC(d9525427) SHA1(cdb24db9f7a293f20fd8becc4afe84fd6abd678a) )
2028 	ROM_LOAD16_BYTE( "epr-10791.57", 0x20001, 0x10000, CRC(5faf4cbe) SHA1(41659a961e6469d9233849c3c587cd5a0a141344) )
2029 
2030 	ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
2031 	ROM_LOAD( "epr-10652.54", 0x00000, 0x08000, CRC(260286f9) SHA1(dc7c8d2c6ef924a937328685eed19bda1c8b1819) )
2032 	ROM_LOAD( "epr-10651.55", 0x08000, 0x08000, CRC(c609ee7b) SHA1(c6dacf81cbfe7e5df1f9a967cf571be1dcf1c429) )
2033 	ROM_LOAD( "epr-10650.56", 0x10000, 0x08000, CRC(b236a403) SHA1(af02b8122794c083a66f2ab35d2c73b84b2df0be) )
2034 
2035 	ROM_REGION16_BE( 0x0e0000, "sprites", 0 ) // sprites
2036 	ROM_LOAD16_BYTE( "epr-10675.8",  0x000001, 0x010000, CRC(d6ac012b) SHA1(305023b1a0a9d84cfc081ffc2ad7578b53d562f2) )
2037 	ROM_LOAD16_BYTE( "epr-10682.16", 0x000000, 0x010000, CRC(d9d83250) SHA1(f8ca3197edcdf53643a5b335c3c044ddc1310cd4) )
2038 	ROM_LOAD16_BYTE( "epr-10676.7",  0x020001, 0x010000, CRC(25ebf2c5) SHA1(abcf673ae4e280417dd9f46d18c0ec7c0e4802ae) )
2039 	ROM_LOAD16_BYTE( "epr-10683.15", 0x020000, 0x010000, CRC(6365d2e9) SHA1(688e2ba194e859f86cd3486c2575ebae257e975a) )
2040 	ROM_LOAD16_BYTE( "epr-10677.6",  0x040001, 0x010000, CRC(8a57b8d6) SHA1(df1a31559dd2d1e7c2c9d800bf97526bdf3e84e6) )
2041 	ROM_LOAD16_BYTE( "epr-10684.14", 0x040000, 0x010000, CRC(3aff8910) SHA1(4b41a49a7f02363424e814b37edce9a7a44a112e) )
2042 	ROM_LOAD16_BYTE( "epr-10678.5",  0x060001, 0x010000, CRC(af473098) SHA1(a2afaba1cbf672949dc50e407b46d7e9ae183774) )
2043 	ROM_LOAD16_BYTE( "epr-10685.13", 0x060000, 0x010000, CRC(80bafeef) SHA1(f01bcf65485e60f34e533295a896fca0b92e5b14) )
2044 	ROM_LOAD16_BYTE( "epr-10679.4",  0x080001, 0x010000, CRC(03bc4878) SHA1(548fc58bcc620204e30fa12fa4c4f0a3f6a1e4c0) )
2045 	ROM_LOAD16_BYTE( "epr-10686.12", 0x080000, 0x010000, CRC(274b734e) SHA1(906fa528659bc17c9b4744cec52f7096711adce8) )
2046 	ROM_LOAD16_BYTE( "epr-10680.3",  0x0a0001, 0x010000, CRC(9f0677ed) SHA1(5964642b70bfad418da44f2d91476f887b021f74) )
2047 	ROM_LOAD16_BYTE( "epr-10687.11", 0x0a0000, 0x010000, CRC(508a4701) SHA1(d17aea2aadc2e2cd65d81bf91feb3ef6923d5c0b) )
2048 	ROM_LOAD16_BYTE( "epr-10681.2",  0x0c0001, 0x010000, CRC(b176ea72) SHA1(7ec0eb0f13398d014c2e235773ded00351edb3e2) )
2049 	ROM_LOAD16_BYTE( "epr-10688.10", 0x0c0000, 0x010000, CRC(42fcd51d) SHA1(0eacb3527dc21746e5b901fcac83f2764a0f9e2c) )
2050 
2051 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx
2052 	ROM_LOAD( "epr-10642.47", 0x0000, 0x8000, CRC(7836bcc3) SHA1(26f308bf96224311ddf685799d7aa29aac42dd2f) )
2053 	// socket IC11 not populated
2054 
2055 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2056 	ROM_LOAD( "epr-10649a.88", 0x0000, 0x08000, CRC(bf38330f) SHA1(3d825bb02ef5a9f5c4fcaa71b3735e7f8e47f178) )
2057 
2058 	ROM_REGION( 0x40000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
2059 	ROM_LOAD( "epr-10643.66", 0x00000, 0x08000, CRC(06f55364) SHA1(fd685795e12541e3d0059d383fab293b3980d247) )
2060 	ROM_RELOAD(               0x08000, 0x08000 )
2061 	ROM_LOAD( "epr-10644.67", 0x10000, 0x08000, CRC(b41d541d) SHA1(28bbfa5edaa4a5901c74074354ba6f14d8f42ff6) )
2062 	ROM_RELOAD(               0x18000, 0x08000 )
2063 	ROM_LOAD( "epr-10645.68", 0x20000, 0x08000, CRC(a60dabff) SHA1(bbef0fb0d7837cc7efc866226bfa2bd7fab06459) )
2064 	ROM_RELOAD(               0x28000, 0x08000 )
2065 	ROM_LOAD( "epr-10646.69", 0x30000, 0x08000, CRC(473cc411) SHA1(04ca2d047eb59581cd5d76e0ac6eca8b19eef497) )
2066 	ROM_RELOAD(               0x38000, 0x08000 )
2067 ROM_END
2068 
2069 //*************************************************************************************************************************
2070 //  Super Hangon
2071 //  CPU: FD1089B (317-0034)
2072 //   CPU BD SUPER HANG-ON   837-6278-01 (or 837-6278-03)
2073 //   VIDEO BD SUPER HANG-ON 837-6279 (or 837-6279-02, ROMs would be "OPR")
2074 //
2075 ROM_START( shangon2 )
2076 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code - protected
2077 	ROM_LOAD16_BYTE( "epr-10636a.133", 0x000000, 0x10000, CRC(74a64f4f) SHA1(3266a9a3c68e147bc8626de7ec45b59fd28f9d1d) )
2078 	ROM_LOAD16_BYTE( "epr-10634a.118", 0x000001, 0x10000, CRC(1608cb4a) SHA1(56b0a6a0a4951f15a269d94d18821809ac0d3d53) )
2079 	ROM_LOAD16_BYTE( "epr-10637a.132", 0x020000, 0x10000, CRC(ad6c1308) SHA1(ee63168205bcb8b2c3dcbc3d7ba8a7f8f8a85952) )
2080 	ROM_LOAD16_BYTE( "epr-10635a.117", 0x020001, 0x10000, CRC(a2415595) SHA1(2a8b960ea70066bf43c7b3772a0ed53d7c737b2c) )
2081 
2082 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
2083 	ROM_LOAD16_BYTE( "epr-10640.76", 0x00000, 0x10000, CRC(02be68db) SHA1(8c9f98ee49db54ee53b721ecf53f91737ae6cd73) )
2084 	ROM_LOAD16_BYTE( "epr-10638.58", 0x00001, 0x10000, CRC(f13e8bee) SHA1(1c16c018f58f1fb49e240314a7e97a947087fad9) )
2085 	ROM_LOAD16_BYTE( "epr-10641.75", 0x20000, 0x10000, CRC(38c3f808) SHA1(36fae99b56980ef33853170afe10b363cd41c053) )
2086 	ROM_LOAD16_BYTE( "epr-10639.57", 0x20001, 0x10000, CRC(8cdbcde8) SHA1(0bcb4df96ee16db3dd4ce52fccd939f48a4bc1a0) )
2087 
2088 	ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
2089 	ROM_LOAD( "epr-10652.54", 0x00000, 0x08000, CRC(260286f9) SHA1(dc7c8d2c6ef924a937328685eed19bda1c8b1819) )
2090 	ROM_LOAD( "epr-10651.55", 0x08000, 0x08000, CRC(c609ee7b) SHA1(c6dacf81cbfe7e5df1f9a967cf571be1dcf1c429) )
2091 	ROM_LOAD( "epr-10650.56", 0x10000, 0x08000, CRC(b236a403) SHA1(af02b8122794c083a66f2ab35d2c73b84b2df0be) )
2092 
2093 	ROM_REGION16_BE( 0x0e0000, "sprites", 0 ) // sprites
2094 	ROM_LOAD16_BYTE( "epr-10675.8",  0x000001, 0x010000, CRC(d6ac012b) SHA1(305023b1a0a9d84cfc081ffc2ad7578b53d562f2) )
2095 	ROM_LOAD16_BYTE( "epr-10682.16", 0x000000, 0x010000, CRC(d9d83250) SHA1(f8ca3197edcdf53643a5b335c3c044ddc1310cd4) )
2096 	ROM_LOAD16_BYTE( "epr-10676.7",  0x020001, 0x010000, CRC(25ebf2c5) SHA1(abcf673ae4e280417dd9f46d18c0ec7c0e4802ae) )
2097 	ROM_LOAD16_BYTE( "epr-10683.15", 0x020000, 0x010000, CRC(6365d2e9) SHA1(688e2ba194e859f86cd3486c2575ebae257e975a) )
2098 	ROM_LOAD16_BYTE( "epr-10677.6",  0x040001, 0x010000, CRC(8a57b8d6) SHA1(df1a31559dd2d1e7c2c9d800bf97526bdf3e84e6) )
2099 	ROM_LOAD16_BYTE( "epr-10684.14", 0x040000, 0x010000, CRC(3aff8910) SHA1(4b41a49a7f02363424e814b37edce9a7a44a112e) )
2100 	ROM_LOAD16_BYTE( "epr-10678.5",  0x060001, 0x010000, CRC(af473098) SHA1(a2afaba1cbf672949dc50e407b46d7e9ae183774) )
2101 	ROM_LOAD16_BYTE( "epr-10685.13", 0x060000, 0x010000, CRC(80bafeef) SHA1(f01bcf65485e60f34e533295a896fca0b92e5b14) )
2102 	ROM_LOAD16_BYTE( "epr-10679.4",  0x080001, 0x010000, CRC(03bc4878) SHA1(548fc58bcc620204e30fa12fa4c4f0a3f6a1e4c0) )
2103 	ROM_LOAD16_BYTE( "epr-10686.12", 0x080000, 0x010000, CRC(274b734e) SHA1(906fa528659bc17c9b4744cec52f7096711adce8) )
2104 	ROM_LOAD16_BYTE( "epr-10680.3",  0x0a0001, 0x010000, CRC(9f0677ed) SHA1(5964642b70bfad418da44f2d91476f887b021f74) )
2105 	ROM_LOAD16_BYTE( "epr-10687.11", 0x0a0000, 0x010000, CRC(508a4701) SHA1(d17aea2aadc2e2cd65d81bf91feb3ef6923d5c0b) )
2106 	ROM_LOAD16_BYTE( "epr-10681.2",  0x0c0001, 0x010000, CRC(b176ea72) SHA1(7ec0eb0f13398d014c2e235773ded00351edb3e2) )
2107 	ROM_LOAD16_BYTE( "epr-10688.10", 0x0c0000, 0x010000, CRC(42fcd51d) SHA1(0eacb3527dc21746e5b901fcac83f2764a0f9e2c) )
2108 
2109 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx
2110 	ROM_LOAD( "epr-10642.47", 0x0000, 0x8000, CRC(7836bcc3) SHA1(26f308bf96224311ddf685799d7aa29aac42dd2f) )
2111 	// socket IC11 not populated
2112 
2113 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2114 	ROM_LOAD( "ic88", 0x0000, 0x08000, CRC(1254efa6) SHA1(997770ccdd776de6e335a6d8b1e15d200cbd4410) ) // EPR-10649 or EPR-10649B ???
2115 
2116 	ROM_REGION( 0x40000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
2117 	ROM_LOAD( "epr-10643.66", 0x00000, 0x08000, CRC(06f55364) SHA1(fd685795e12541e3d0059d383fab293b3980d247) )
2118 	ROM_RELOAD(               0x08000, 0x08000 )
2119 	ROM_LOAD( "epr-10644.67", 0x10000, 0x08000, CRC(b41d541d) SHA1(28bbfa5edaa4a5901c74074354ba6f14d8f42ff6) )
2120 	ROM_RELOAD(               0x18000, 0x08000 )
2121 	ROM_LOAD( "epr-10645.68", 0x20000, 0x08000, CRC(a60dabff) SHA1(bbef0fb0d7837cc7efc866226bfa2bd7fab06459) )
2122 	ROM_RELOAD(               0x28000, 0x08000 )
2123 	ROM_LOAD( "epr-10646.69", 0x30000, 0x08000, CRC(473cc411) SHA1(04ca2d047eb59581cd5d76e0ac6eca8b19eef497) )
2124 	ROM_RELOAD(               0x38000, 0x08000 )
2125 
2126 	ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
2127 	ROM_LOAD( "317-0034.key", 0x0000, 0x2000, CRC(ad61539a) SHA1(5db534ff3ce2736222e4475f9bf093b3d2d55f1a) )
2128 ROM_END
2129 
2130 //*************************************************************************************************************************
2131 //  Super Hangon
2132 //  CPU: FD1089B (317-0034)
2133 //   CPU BD SUPER HANG-ON   837-6278-01 (or 837-6278-03)
2134 //   VIDEO BD SUPER HANG-ON 837-6279 (or 837-6279-02, ROMs would be "OPR")
2135 //
2136 ROM_START( shangon1 )
2137 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code - protected
2138 	ROM_LOAD16_BYTE( "epr-10636.133", 0x000000, 0x10000, CRC(e52721fe) SHA1(21f0aa14d0cbda3d762bca86efe089646031aef5) )
2139 	ROM_LOAD16_BYTE( "epr-10634.118", 0x000001, 0x10000, CRC(08feca97) SHA1(011aa59155d77150ed3a5c3a3b031c699736d262) )
2140 	ROM_LOAD16_BYTE( "epr-10637.132", 0x020000, 0x10000, CRC(5d55d65f) SHA1(d02d76b98d74746b078b0f49f0320b8be48e4c47) )
2141 	ROM_LOAD16_BYTE( "epr-10635.117", 0x020001, 0x10000, CRC(b967e8c3) SHA1(00224b337b162daff03bbfabdcf8541025220d46) )
2142 
2143 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
2144 	ROM_LOAD16_BYTE( "epr-10640.76", 0x00000, 0x10000, CRC(02be68db) SHA1(8c9f98ee49db54ee53b721ecf53f91737ae6cd73) )
2145 	ROM_LOAD16_BYTE( "epr-10638.58", 0x00001, 0x10000, CRC(f13e8bee) SHA1(1c16c018f58f1fb49e240314a7e97a947087fad9) )
2146 	ROM_LOAD16_BYTE( "epr-10641.75", 0x20000, 0x10000, CRC(38c3f808) SHA1(36fae99b56980ef33853170afe10b363cd41c053) )
2147 	ROM_LOAD16_BYTE( "epr-10639.57", 0x20001, 0x10000, CRC(8cdbcde8) SHA1(0bcb4df96ee16db3dd4ce52fccd939f48a4bc1a0) )
2148 
2149 	ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
2150 	ROM_LOAD( "epr-10652.54", 0x00000, 0x08000, CRC(260286f9) SHA1(dc7c8d2c6ef924a937328685eed19bda1c8b1819) )
2151 	ROM_LOAD( "epr-10651.55", 0x08000, 0x08000, CRC(c609ee7b) SHA1(c6dacf81cbfe7e5df1f9a967cf571be1dcf1c429) )
2152 	ROM_LOAD( "epr-10650.56", 0x10000, 0x08000, CRC(b236a403) SHA1(af02b8122794c083a66f2ab35d2c73b84b2df0be) )
2153 
2154 	ROM_REGION16_BE( 0x0e0000, "sprites", 0 ) // sprites
2155 	ROM_LOAD16_BYTE( "epr-10675.8",  0x000001, 0x010000, CRC(d6ac012b) SHA1(305023b1a0a9d84cfc081ffc2ad7578b53d562f2) )
2156 	ROM_LOAD16_BYTE( "epr-10682.16", 0x000000, 0x010000, CRC(d9d83250) SHA1(f8ca3197edcdf53643a5b335c3c044ddc1310cd4) )
2157 	ROM_LOAD16_BYTE( "epr-10676.7",  0x020001, 0x010000, CRC(25ebf2c5) SHA1(abcf673ae4e280417dd9f46d18c0ec7c0e4802ae) )
2158 	ROM_LOAD16_BYTE( "epr-10683.15", 0x020000, 0x010000, CRC(6365d2e9) SHA1(688e2ba194e859f86cd3486c2575ebae257e975a) )
2159 	ROM_LOAD16_BYTE( "epr-10677.6",  0x040001, 0x010000, CRC(8a57b8d6) SHA1(df1a31559dd2d1e7c2c9d800bf97526bdf3e84e6) )
2160 	ROM_LOAD16_BYTE( "epr-10684.14", 0x040000, 0x010000, CRC(3aff8910) SHA1(4b41a49a7f02363424e814b37edce9a7a44a112e) )
2161 	ROM_LOAD16_BYTE( "epr-10678.5",  0x060001, 0x010000, CRC(af473098) SHA1(a2afaba1cbf672949dc50e407b46d7e9ae183774) )
2162 	ROM_LOAD16_BYTE( "epr-10685.13", 0x060000, 0x010000, CRC(80bafeef) SHA1(f01bcf65485e60f34e533295a896fca0b92e5b14) )
2163 	ROM_LOAD16_BYTE( "epr-10679.4",  0x080001, 0x010000, CRC(03bc4878) SHA1(548fc58bcc620204e30fa12fa4c4f0a3f6a1e4c0) )
2164 	ROM_LOAD16_BYTE( "epr-10686.12", 0x080000, 0x010000, CRC(274b734e) SHA1(906fa528659bc17c9b4744cec52f7096711adce8) )
2165 	ROM_LOAD16_BYTE( "epr-10680.3",  0x0a0001, 0x010000, CRC(9f0677ed) SHA1(5964642b70bfad418da44f2d91476f887b021f74) )
2166 	ROM_LOAD16_BYTE( "epr-10687.11", 0x0a0000, 0x010000, CRC(508a4701) SHA1(d17aea2aadc2e2cd65d81bf91feb3ef6923d5c0b) )
2167 	ROM_LOAD16_BYTE( "epr-10681.2",  0x0c0001, 0x010000, CRC(b176ea72) SHA1(7ec0eb0f13398d014c2e235773ded00351edb3e2) )
2168 	ROM_LOAD16_BYTE( "epr-10688.10", 0x0c0000, 0x010000, CRC(42fcd51d) SHA1(0eacb3527dc21746e5b901fcac83f2764a0f9e2c) )
2169 
2170 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx
2171 	ROM_LOAD( "epr-10642.47", 0x0000, 0x8000, CRC(7836bcc3) SHA1(26f308bf96224311ddf685799d7aa29aac42dd2f) )
2172 	// socket IC11 not populated
2173 
2174 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2175 	ROM_LOAD( "ic88", 0x0000, 0x08000, CRC(1254efa6) SHA1(997770ccdd776de6e335a6d8b1e15d200cbd4410) ) // EPR-10649 or EPR-10649B ???
2176 
2177 	ROM_REGION( 0x40000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
2178 	ROM_LOAD( "epr-10643.66", 0x00000, 0x08000, CRC(06f55364) SHA1(fd685795e12541e3d0059d383fab293b3980d247) )
2179 	ROM_RELOAD(               0x08000, 0x08000 )
2180 	ROM_LOAD( "epr-10644.67", 0x10000, 0x08000, CRC(b41d541d) SHA1(28bbfa5edaa4a5901c74074354ba6f14d8f42ff6) )
2181 	ROM_RELOAD(               0x18000, 0x08000 )
2182 	ROM_LOAD( "epr-10645.68", 0x20000, 0x08000, CRC(a60dabff) SHA1(bbef0fb0d7837cc7efc866226bfa2bd7fab06459) )
2183 	ROM_RELOAD(               0x28000, 0x08000 )
2184 	ROM_LOAD( "epr-10646.69", 0x30000, 0x08000, CRC(473cc411) SHA1(04ca2d047eb59581cd5d76e0ac6eca8b19eef497) )
2185 	ROM_RELOAD(               0x38000, 0x08000 )
2186 
2187 	ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
2188 	ROM_LOAD( "317-0034.key", 0x0000, 0x2000, CRC(ad61539a) SHA1(5db534ff3ce2736222e4475f9bf093b3d2d55f1a) )
2189 ROM_END
2190 
2191 //*************************************************************************************************************************
2192 //  Limited Edition Hangon
2193 //  CPU: 68000 (317-????)
2194 //   CPU BD SUPER HANG-ON   837-6278-01 (or 837-6278-03)
2195 //   VIDEO BD SUPER HANG-ON 837-6279 (or 837-6279-02, ROM would be "OPR")
2196 //
2197 ROM_START( shangonle )
2198 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
2199 	ROM_LOAD16_BYTE( "epr-13944.133", 0x000000, 0x10000, CRC(989a80db) SHA1(5026e5cf52d4fd85a0bab6c4ea7a34cf266b2a3b) )
2200 	ROM_LOAD16_BYTE( "epr-13943.118", 0x000001, 0x10000, CRC(426e3050) SHA1(f332ea76285b4e1361d818cbe5aab0640b4185c3) )
2201 	ROM_LOAD16_BYTE( "epr-10899.132", 0x020000, 0x10000, CRC(bb3faa37) SHA1(ccf3352255503fd6619e6e116d187a8cd1ff75e6) )
2202 	ROM_LOAD16_BYTE( "epr-10897.117", 0x020001, 0x10000, CRC(5f087eb1) SHA1(bdfcc39e92087057acc4e91741a03e7ba57824c1) )
2203 
2204 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
2205 	ROM_LOAD16_BYTE( "epr-10640.76", 0x00000, 0x10000, CRC(02be68db) SHA1(8c9f98ee49db54ee53b721ecf53f91737ae6cd73) )
2206 	ROM_LOAD16_BYTE( "epr-10638.58", 0x00001, 0x10000, CRC(f13e8bee) SHA1(1c16c018f58f1fb49e240314a7e97a947087fad9) )
2207 	ROM_LOAD16_BYTE( "epr-10641.75", 0x20000, 0x10000, CRC(38c3f808) SHA1(36fae99b56980ef33853170afe10b363cd41c053) )
2208 	ROM_LOAD16_BYTE( "epr-10639.57", 0x20001, 0x10000, CRC(8cdbcde8) SHA1(0bcb4df96ee16db3dd4ce52fccd939f48a4bc1a0) )
2209 
2210 	ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
2211 	ROM_LOAD( "epr-10652.54", 0x00000, 0x08000, CRC(260286f9) SHA1(dc7c8d2c6ef924a937328685eed19bda1c8b1819) )
2212 	ROM_LOAD( "epr-10651.55", 0x08000, 0x08000, CRC(c609ee7b) SHA1(c6dacf81cbfe7e5df1f9a967cf571be1dcf1c429) )
2213 	ROM_LOAD( "epr-10650.56", 0x10000, 0x08000, CRC(b236a403) SHA1(af02b8122794c083a66f2ab35d2c73b84b2df0be) )
2214 
2215 	ROM_REGION16_BE( 0x0e0000, "sprites", 0 ) // sprites
2216 	ROM_LOAD16_BYTE( "epr-10675.8",  0x000001, 0x010000, CRC(d6ac012b) SHA1(305023b1a0a9d84cfc081ffc2ad7578b53d562f2) )
2217 	ROM_LOAD16_BYTE( "epr-10682.16", 0x000000, 0x010000, CRC(d9d83250) SHA1(f8ca3197edcdf53643a5b335c3c044ddc1310cd4) )
2218 	ROM_LOAD16_BYTE( "epr-13945.7",  0x020001, 0x010000, CRC(fbb1eef9) SHA1(2798df2f25706e0d3be01d945274f478d7e5a2ae) )
2219 	ROM_LOAD16_BYTE( "epr-13946.15", 0x020000, 0x010000, CRC(03144930) SHA1(c20f4883ee2de35cd0b67949de0e41464f2c5fae) )
2220 	ROM_LOAD16_BYTE( "epr-10677.6",  0x040001, 0x010000, CRC(8a57b8d6) SHA1(df1a31559dd2d1e7c2c9d800bf97526bdf3e84e6) )
2221 	ROM_LOAD16_BYTE( "epr-10684.14", 0x040000, 0x010000, CRC(3aff8910) SHA1(4b41a49a7f02363424e814b37edce9a7a44a112e) )
2222 	ROM_LOAD16_BYTE( "epr-10678.5",  0x060001, 0x010000, CRC(af473098) SHA1(a2afaba1cbf672949dc50e407b46d7e9ae183774) )
2223 	ROM_LOAD16_BYTE( "epr-10685.13", 0x060000, 0x010000, CRC(80bafeef) SHA1(f01bcf65485e60f34e533295a896fca0b92e5b14) )
2224 	ROM_LOAD16_BYTE( "epr-10679.4",  0x080001, 0x010000, CRC(03bc4878) SHA1(548fc58bcc620204e30fa12fa4c4f0a3f6a1e4c0) )
2225 	ROM_LOAD16_BYTE( "epr-10686.12", 0x080000, 0x010000, CRC(274b734e) SHA1(906fa528659bc17c9b4744cec52f7096711adce8) )
2226 	ROM_LOAD16_BYTE( "epr-10680.3",  0x0a0001, 0x010000, CRC(9f0677ed) SHA1(5964642b70bfad418da44f2d91476f887b021f74) )
2227 	ROM_LOAD16_BYTE( "epr-10687.11", 0x0a0000, 0x010000, CRC(508a4701) SHA1(d17aea2aadc2e2cd65d81bf91feb3ef6923d5c0b) )
2228 	ROM_LOAD16_BYTE( "epr-10681.2",  0x0c0001, 0x010000, CRC(b176ea72) SHA1(7ec0eb0f13398d014c2e235773ded00351edb3e2) )
2229 	ROM_LOAD16_BYTE( "epr-10688.10", 0x0c0000, 0x010000, CRC(42fcd51d) SHA1(0eacb3527dc21746e5b901fcac83f2764a0f9e2c) )
2230 
2231 	ROM_REGION( 0x10000, "segaic16road", 0 ) // Road Graphics
2232 	ROM_LOAD( "epr-10642.47", 0x0000, 0x8000, CRC(7836bcc3) SHA1(26f308bf96224311ddf685799d7aa29aac42dd2f) )
2233 	// socket IC11 not populated
2234 
2235 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2236 	ROM_LOAD( "epr-10649c.88", 0x0000, 0x08000, CRC(f6c1ce71) SHA1(12299f7e5378a56be3a31cce3b8b74e48744f33a) )
2237 
2238 	ROM_REGION( 0x40000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
2239 	ROM_LOAD( "epr-10643.66", 0x00000, 0x08000, CRC(06f55364) SHA1(fd685795e12541e3d0059d383fab293b3980d247) )
2240 	ROM_RELOAD(               0x08000, 0x08000 )
2241 	ROM_LOAD( "epr-10644.67", 0x10000, 0x08000, CRC(b41d541d) SHA1(28bbfa5edaa4a5901c74074354ba6f14d8f42ff6) )
2242 	ROM_RELOAD(               0x18000, 0x08000 )
2243 	ROM_LOAD( "epr-10645.68", 0x20000, 0x08000, CRC(a60dabff) SHA1(bbef0fb0d7837cc7efc866226bfa2bd7fab06459) )
2244 	ROM_RELOAD(               0x28000, 0x08000 )
2245 	ROM_LOAD( "epr-10646.69", 0x30000, 0x08000, CRC(473cc411) SHA1(04ca2d047eb59581cd5d76e0ac6eca8b19eef497) )
2246 	ROM_RELOAD(               0x38000, 0x08000 )
2247 ROM_END
2248 
2249 
2250 //*************************************************************************************************************************
2251 //*************************************************************************************************************************
2252 //*************************************************************************************************************************
2253 //  Turbo Outrun (Out Run upgrade set)
2254 //  CPU: FD1094 (317-0118)
2255 //  GAME BD   834-6919-12
2256 //   CPU BD   837-6905-12
2257 //   VIDEO BD 837-6906-02
2258 //
2259 ROM_START( toutrun )
2260 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
2261 	ROM_LOAD16_BYTE( "epr-12513.133", 0x000000, 0x10000, CRC(ae8835a5) SHA1(09573964d4f42ac0f08be3682b73e3420df27c6d) )
2262 	ROM_LOAD16_BYTE( "epr-12512.118", 0x000001, 0x10000, CRC(f90372ad) SHA1(b42dd8c580421b4d7ffacf8d3baa7b9fc9e392ef) )
2263 	ROM_LOAD16_BYTE( "epr-12515.132", 0x020000, 0x10000, CRC(1f047df4) SHA1(c1c67847f1390e671c19f0b90c3cbfbc237d960b) )
2264 	ROM_LOAD16_BYTE( "epr-12514.117", 0x020001, 0x10000, CRC(5539e9c3) SHA1(01046e3b836f66ba6d5c4be1611de48197aca67f) )
2265 	ROM_LOAD16_BYTE( "epr-12293.131", 0x040000, 0x10000, CRC(f4321eea) SHA1(64334acc82c14bb58b7d51719f34fd81cfb9fc6b) )
2266 	ROM_LOAD16_BYTE( "epr-12292.116", 0x040001, 0x10000, CRC(51d98af0) SHA1(6e7115706bfafb687faa23d55d4a8c8e498a4df2) )
2267 
2268 	ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2269 	ROM_LOAD( "317-0118.key", 0x0000, 0x2000, CRC(083d7d56) SHA1(3153e44479986859f60a26fe9264ecea07e6e469) )
2270 
2271 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
2272 	ROM_LOAD16_BYTE( "opr-12295.76", 0x000000, 0x10000, CRC(d43a3a84) SHA1(362c98f62c205b6b40b7e8a4ba107745b547b984) )
2273 	ROM_LOAD16_BYTE( "opr-12294.58", 0x000001, 0x10000, CRC(27cdcfd3) SHA1(4fe57db95b109ab1bb1326789e06a3d3aac311cc) )
2274 	ROM_LOAD16_BYTE( "opr-12297.75", 0x020000, 0x10000, CRC(1d9b5677) SHA1(fb6e33acc43fbc7a8d7ac44045439ecdf794fdeb) )
2275 	ROM_LOAD16_BYTE( "opr-12296.57", 0x020001, 0x10000, CRC(0a513671) SHA1(4c13ca3a6f0aa9d06ed80798b466cca0c966a265) )
2276 
2277 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2278 	ROM_LOAD( "opr-12323.102", 0x00000, 0x10000, CRC(4de43a6f) SHA1(68909338e1f192ac2699c8a8d24c3f46502dd019) )
2279 	ROM_LOAD( "opr-12324.103", 0x10000, 0x10000, CRC(24607a55) SHA1(69033f2281cd42e88233c23d809b73607fe54853) )
2280 	ROM_LOAD( "opr-12325.104", 0x20000, 0x10000, CRC(1405137a) SHA1(367db88d36852e35c5e839f692be5ea8c8e072d2) )
2281 
2282 	ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
2283 	// Video BD 837-6906-2, Mask ROMs twice the size as EPR/OPR counterparts
2284 	ROM_LOAD32_BYTE( "mpr-12336.9",   0x00000, 0x20000, CRC(dda465c7) SHA1(83acc12a387b004986f084f25964c15a9f88a41a) )
2285 	ROM_LOAD32_BYTE( "mpr-12337.10",  0x00001, 0x20000, CRC(828233d1) SHA1(d73a200af4245d590e1fd3ac436723f99cc50452) )
2286 	ROM_LOAD32_BYTE( "mpr-12338.11",  0x00002, 0x20000, CRC(46b4b5f4) SHA1(afeb2e5ac6792edafe7328993fe8dfcd4bce1924) )
2287 	ROM_LOAD32_BYTE( "mpr-12339.12",  0x00003, 0x20000, CRC(0d7e3bab) SHA1(fdb603df55785ded593daf591ddd90f8f24e0d47) )
2288 	ROM_LOAD32_BYTE( "mpr-12364.13",  0x80000, 0x20000, CRC(a4b83e65) SHA1(966d8c163cef0842abff54e1dba3f15248e73f68) )
2289 	ROM_LOAD32_BYTE( "mpr-12365.14",  0x80001, 0x20000, CRC(4a80b2a9) SHA1(14b4fe71e102622a73c8dc0dbd0013cbbe6fcf9d) )
2290 	ROM_LOAD32_BYTE( "mpr-12366.15",  0x80002, 0x20000, CRC(385cb3ab) SHA1(fec6d80d488bfe26524fa3a48b195a45a073e481) )
2291 	ROM_LOAD32_BYTE( "mpr-12367.16",  0x80003, 0x20000, CRC(4930254a) SHA1(00f24be3bf02b143fa554f4d32e283bdac79af6a) )
2292 
2293 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road)
2294 	ROM_LOAD( "epr-12299.47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Manual shows both as EPR-12298
2295 	ROM_LOAD( "epr-12298.11", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) )
2296 
2297 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2298 	ROM_LOAD( "epr-12300.88", 0x00000, 0x10000, CRC(e8ff7011) SHA1(6eaf3aea507007ea31d507ed7825d905f4b8e7ab) )
2299 
2300 	ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
2301 	ROM_LOAD( "opr-12301.66", 0x00000, 0x10000, CRC(6e78ad15) SHA1(c31ddf434b459cd1a381d2a028beabddd4ed10d2) )
2302 	ROM_LOAD( "opr-12302.67", 0x10000, 0x10000, CRC(e72928af) SHA1(40e0b178958cfe97c097fe9d82b5de54bc27a29f) )
2303 	ROM_LOAD( "opr-12303.68", 0x20000, 0x10000, CRC(8384205c) SHA1(c1f9d52bc587eab5a97867198e9aa7c19e973429) )
2304 	ROM_LOAD( "opr-12304.69", 0x30000, 0x10000, CRC(e1762ac3) SHA1(855f06c082a17d90857e6efa3cf95b0eda0e634d) )
2305 	ROM_LOAD( "opr-12305.70", 0x40000, 0x10000, CRC(ba9ce677) SHA1(056781f92450c902e1d279a02bda28337815cba9) )
2306 	ROM_LOAD( "opr-12306.71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) )
2307 ROM_END
2308 
2309 ROM_START( toutrund )
2310 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
2311 	ROM_LOAD16_BYTE( "bootleg_epr-12513.133", 0x000000, 0x10000, CRC(a1881cea) SHA1(f04291475d603a4558ebeeeaa45b03761c9c0e68) )
2312 	ROM_LOAD16_BYTE( "bootleg_epr-12512.118", 0x000001, 0x10000, CRC(5e9d788b) SHA1(189dfcdfbd20ed69d861858632b50aa97826d1a9) )
2313 	ROM_LOAD16_BYTE( "bootleg_epr-12515.132", 0x020000, 0x10000, CRC(fd432e2d) SHA1(dfef4f1f8ac5f7d8e905dc95daddbfd299257aa1) )
2314 	ROM_LOAD16_BYTE( "bootleg_epr-12514.117", 0x020001, 0x10000, CRC(faf00bd6) SHA1(1e35fa02826a5680926d5d3d1cc83b09d4e170bf) )
2315 	ROM_LOAD16_BYTE( "epr-12293.131", 0x040000, 0x10000, CRC(f4321eea) SHA1(64334acc82c14bb58b7d51719f34fd81cfb9fc6b) )
2316 	ROM_LOAD16_BYTE( "epr-12292.116", 0x040001, 0x10000, CRC(51d98af0) SHA1(6e7115706bfafb687faa23d55d4a8c8e498a4df2) )
2317 
2318 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
2319 	ROM_LOAD16_BYTE( "opr-12295.76", 0x000000, 0x10000, CRC(d43a3a84) SHA1(362c98f62c205b6b40b7e8a4ba107745b547b984) )
2320 	ROM_LOAD16_BYTE( "opr-12294.58", 0x000001, 0x10000, CRC(27cdcfd3) SHA1(4fe57db95b109ab1bb1326789e06a3d3aac311cc) )
2321 	ROM_LOAD16_BYTE( "opr-12297.75", 0x020000, 0x10000, CRC(1d9b5677) SHA1(fb6e33acc43fbc7a8d7ac44045439ecdf794fdeb) )
2322 	ROM_LOAD16_BYTE( "opr-12296.57", 0x020001, 0x10000, CRC(0a513671) SHA1(4c13ca3a6f0aa9d06ed80798b466cca0c966a265) )
2323 
2324 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2325 	ROM_LOAD( "opr-12323.102", 0x00000, 0x10000, CRC(4de43a6f) SHA1(68909338e1f192ac2699c8a8d24c3f46502dd019) )
2326 	ROM_LOAD( "opr-12324.103", 0x10000, 0x10000, CRC(24607a55) SHA1(69033f2281cd42e88233c23d809b73607fe54853) )
2327 	ROM_LOAD( "opr-12325.104", 0x20000, 0x10000, CRC(1405137a) SHA1(367db88d36852e35c5e839f692be5ea8c8e072d2) )
2328 
2329 	ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
2330 	// Video BD 837-6906-2, Mask ROMs twice the size as EPR/OPR counterparts
2331 	ROM_LOAD32_BYTE( "mpr-12336.9",   0x00000, 0x20000, CRC(dda465c7) SHA1(83acc12a387b004986f084f25964c15a9f88a41a) )
2332 	ROM_LOAD32_BYTE( "mpr-12337.10",  0x00001, 0x20000, CRC(828233d1) SHA1(d73a200af4245d590e1fd3ac436723f99cc50452) )
2333 	ROM_LOAD32_BYTE( "mpr-12338.11",  0x00002, 0x20000, CRC(46b4b5f4) SHA1(afeb2e5ac6792edafe7328993fe8dfcd4bce1924) )
2334 	ROM_LOAD32_BYTE( "mpr-12339.12",  0x00003, 0x20000, CRC(0d7e3bab) SHA1(fdb603df55785ded593daf591ddd90f8f24e0d47) )
2335 	ROM_LOAD32_BYTE( "mpr-12364.13",  0x80000, 0x20000, CRC(a4b83e65) SHA1(966d8c163cef0842abff54e1dba3f15248e73f68) )
2336 	ROM_LOAD32_BYTE( "mpr-12365.14",  0x80001, 0x20000, CRC(4a80b2a9) SHA1(14b4fe71e102622a73c8dc0dbd0013cbbe6fcf9d) )
2337 	ROM_LOAD32_BYTE( "mpr-12366.15",  0x80002, 0x20000, CRC(385cb3ab) SHA1(fec6d80d488bfe26524fa3a48b195a45a073e481) )
2338 	ROM_LOAD32_BYTE( "mpr-12367.16",  0x80003, 0x20000, CRC(4930254a) SHA1(00f24be3bf02b143fa554f4d32e283bdac79af6a) )
2339 
2340 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road)
2341 	ROM_LOAD( "epr-12299.47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Manual shows both as EPR-12298
2342 	ROM_LOAD( "epr-12298.11", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) )
2343 
2344 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2345 	ROM_LOAD( "epr-12300.88", 0x00000, 0x10000, CRC(e8ff7011) SHA1(6eaf3aea507007ea31d507ed7825d905f4b8e7ab) )
2346 
2347 	ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
2348 	ROM_LOAD( "opr-12301.66", 0x00000, 0x10000, CRC(6e78ad15) SHA1(c31ddf434b459cd1a381d2a028beabddd4ed10d2) )
2349 	ROM_LOAD( "opr-12302.67", 0x10000, 0x10000, CRC(e72928af) SHA1(40e0b178958cfe97c097fe9d82b5de54bc27a29f) )
2350 	ROM_LOAD( "opr-12303.68", 0x20000, 0x10000, CRC(8384205c) SHA1(c1f9d52bc587eab5a97867198e9aa7c19e973429) )
2351 	ROM_LOAD( "opr-12304.69", 0x30000, 0x10000, CRC(e1762ac3) SHA1(855f06c082a17d90857e6efa3cf95b0eda0e634d) )
2352 	ROM_LOAD( "opr-12305.70", 0x40000, 0x10000, CRC(ba9ce677) SHA1(056781f92450c902e1d279a02bda28337815cba9) )
2353 	ROM_LOAD( "opr-12306.71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) )
2354 ROM_END
2355 
2356 
2357 //*************************************************************************************************************************
2358 //  Turbo Outrun Japan (Out Run upgrade set)
2359 //  CPU: FD1094 (317-0117)
2360 //  GAME BD   834-6919-12
2361 //   CPU BD   837-6905-12
2362 //   VIDEO BD 837-6906-02
2363 //
2364 ROM_START( toutrunj )
2365 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
2366 	ROM_LOAD16_BYTE( "epr-12509.133", 0x000000, 0x10000, CRC(de226e8a) SHA1(65c6ca6beeb6091d156fdd19378d4c45c8d2c225) )
2367 	ROM_LOAD16_BYTE( "epr-12508.118", 0x000001, 0x10000, CRC(9fa2fc20) SHA1(88fcb721936663e8f853b043c127ab1859d78a3b) )
2368 	ROM_LOAD16_BYTE( "epr-12511.132", 0x020000, 0x10000, CRC(ad7ff20f) SHA1(d914f50c26c314e702dca9deb1274a25c95abafe) )
2369 	ROM_LOAD16_BYTE( "epr-12510.117", 0x020001, 0x10000, CRC(a0ed6196) SHA1(3d0494854b2161391d97b1975d610ce5883d3b42) )
2370 	ROM_LOAD16_BYTE( "epr-12293.131", 0x040000, 0x10000, CRC(f4321eea) SHA1(64334acc82c14bb58b7d51719f34fd81cfb9fc6b) )
2371 	ROM_LOAD16_BYTE( "epr-12292.116", 0x040001, 0x10000, CRC(51d98af0) SHA1(6e7115706bfafb687faa23d55d4a8c8e498a4df2) )
2372 
2373 	ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2374 	ROM_LOAD( "317-0117.key", 0x0000, 0x2000, CRC(dcac383e) SHA1(1a910930daa71c114a414ffcf2d5695167cca912) )
2375 
2376 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
2377 	ROM_LOAD16_BYTE( "opr-12295.76", 0x000000, 0x10000, CRC(d43a3a84) SHA1(362c98f62c205b6b40b7e8a4ba107745b547b984) )
2378 	ROM_LOAD16_BYTE( "opr-12294.58", 0x000001, 0x10000, CRC(27cdcfd3) SHA1(4fe57db95b109ab1bb1326789e06a3d3aac311cc) )
2379 	ROM_LOAD16_BYTE( "opr-12297.75", 0x020000, 0x10000, CRC(1d9b5677) SHA1(fb6e33acc43fbc7a8d7ac44045439ecdf794fdeb) )
2380 	ROM_LOAD16_BYTE( "opr-12296.57", 0x020001, 0x10000, CRC(0a513671) SHA1(4c13ca3a6f0aa9d06ed80798b466cca0c966a265) )
2381 
2382 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2383 	ROM_LOAD( "opr-12323.102", 0x00000, 0x10000, CRC(4de43a6f) SHA1(68909338e1f192ac2699c8a8d24c3f46502dd019) )
2384 	ROM_LOAD( "opr-12324.103", 0x10000, 0x10000, CRC(24607a55) SHA1(69033f2281cd42e88233c23d809b73607fe54853) )
2385 	ROM_LOAD( "opr-12325.104", 0x20000, 0x10000, CRC(1405137a) SHA1(367db88d36852e35c5e839f692be5ea8c8e072d2) )
2386 
2387 	ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
2388 	// Video BD 837-6906-2, Mask ROMs twice the size as EPR/OPR counterparts
2389 	ROM_LOAD32_BYTE( "mpr-12336.9",   0x00000, 0x20000, CRC(dda465c7) SHA1(83acc12a387b004986f084f25964c15a9f88a41a) )
2390 	ROM_LOAD32_BYTE( "mpr-12337.10",  0x00001, 0x20000, CRC(828233d1) SHA1(d73a200af4245d590e1fd3ac436723f99cc50452) )
2391 	ROM_LOAD32_BYTE( "mpr-12338.11",  0x00002, 0x20000, CRC(46b4b5f4) SHA1(afeb2e5ac6792edafe7328993fe8dfcd4bce1924) )
2392 	ROM_LOAD32_BYTE( "mpr-12339.12",  0x00003, 0x20000, CRC(0d7e3bab) SHA1(fdb603df55785ded593daf591ddd90f8f24e0d47) )
2393 	ROM_LOAD32_BYTE( "mpr-12364.13",  0x80000, 0x20000, CRC(a4b83e65) SHA1(966d8c163cef0842abff54e1dba3f15248e73f68) )
2394 	ROM_LOAD32_BYTE( "mpr-12365.14",  0x80001, 0x20000, CRC(4a80b2a9) SHA1(14b4fe71e102622a73c8dc0dbd0013cbbe6fcf9d) )
2395 	ROM_LOAD32_BYTE( "mpr-12366.15",  0x80002, 0x20000, CRC(385cb3ab) SHA1(fec6d80d488bfe26524fa3a48b195a45a073e481) )
2396 	ROM_LOAD32_BYTE( "mpr-12367.16",  0x80003, 0x20000, CRC(4930254a) SHA1(00f24be3bf02b143fa554f4d32e283bdac79af6a) )
2397 
2398 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road)
2399 	ROM_LOAD( "epr-12299.47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Manual shows both as EPR-12298
2400 	ROM_LOAD( "epr-12298.11", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) )
2401 
2402 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2403 	ROM_LOAD( "epr-12300.88", 0x00000, 0x10000, CRC(e8ff7011) SHA1(6eaf3aea507007ea31d507ed7825d905f4b8e7ab) )
2404 
2405 	ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
2406 	ROM_LOAD( "opr-12301.66", 0x00000, 0x10000, CRC(6e78ad15) SHA1(c31ddf434b459cd1a381d2a028beabddd4ed10d2) )
2407 	ROM_LOAD( "opr-12302.67", 0x10000, 0x10000, CRC(e72928af) SHA1(40e0b178958cfe97c097fe9d82b5de54bc27a29f) )
2408 	ROM_LOAD( "opr-12303.68", 0x20000, 0x10000, CRC(8384205c) SHA1(c1f9d52bc587eab5a97867198e9aa7c19e973429) )
2409 	ROM_LOAD( "opr-12304.69", 0x30000, 0x10000, CRC(e1762ac3) SHA1(855f06c082a17d90857e6efa3cf95b0eda0e634d) )
2410 	ROM_LOAD( "opr-12305.70", 0x40000, 0x10000, CRC(ba9ce677) SHA1(056781f92450c902e1d279a02bda28337815cba9) )
2411 	ROM_LOAD( "opr-12306.71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) )
2412 ROM_END
2413 
2414 
2415 ROM_START( toutrunjd )
2416 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
2417 	ROM_LOAD16_BYTE( "bootleg_epr-12509.133", 0x000000, 0x10000, CRC(6bd28e3e) SHA1(084af152d0579ea2abffe3dfdc5ecec8ad9c824c) )
2418 	ROM_LOAD16_BYTE( "bootleg_epr-12508.118", 0x000001, 0x10000, CRC(e059ec88) SHA1(ed0c1ed74e920b434ec6c25863a01576495b5f37) )
2419 	ROM_LOAD16_BYTE( "bootleg_epr-12511.132", 0x020000, 0x10000, CRC(fd432e2d) SHA1(dfef4f1f8ac5f7d8e905dc95daddbfd299257aa1) )
2420 	ROM_LOAD16_BYTE( "bootleg_epr-12510.117", 0x020001, 0x10000, CRC(faf00bd6) SHA1(1e35fa02826a5680926d5d3d1cc83b09d4e170bf) )
2421 	ROM_LOAD16_BYTE( "epr-12293.131", 0x040000, 0x10000, CRC(f4321eea) SHA1(64334acc82c14bb58b7d51719f34fd81cfb9fc6b) )
2422 	ROM_LOAD16_BYTE( "epr-12292.116", 0x040001, 0x10000, CRC(51d98af0) SHA1(6e7115706bfafb687faa23d55d4a8c8e498a4df2) )
2423 
2424 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
2425 	ROM_LOAD16_BYTE( "opr-12295.76", 0x000000, 0x10000, CRC(d43a3a84) SHA1(362c98f62c205b6b40b7e8a4ba107745b547b984) )
2426 	ROM_LOAD16_BYTE( "opr-12294.58", 0x000001, 0x10000, CRC(27cdcfd3) SHA1(4fe57db95b109ab1bb1326789e06a3d3aac311cc) )
2427 	ROM_LOAD16_BYTE( "opr-12297.75", 0x020000, 0x10000, CRC(1d9b5677) SHA1(fb6e33acc43fbc7a8d7ac44045439ecdf794fdeb) )
2428 	ROM_LOAD16_BYTE( "opr-12296.57", 0x020001, 0x10000, CRC(0a513671) SHA1(4c13ca3a6f0aa9d06ed80798b466cca0c966a265) )
2429 
2430 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2431 	ROM_LOAD( "opr-12323.102", 0x00000, 0x10000, CRC(4de43a6f) SHA1(68909338e1f192ac2699c8a8d24c3f46502dd019) )
2432 	ROM_LOAD( "opr-12324.103", 0x10000, 0x10000, CRC(24607a55) SHA1(69033f2281cd42e88233c23d809b73607fe54853) )
2433 	ROM_LOAD( "opr-12325.104", 0x20000, 0x10000, CRC(1405137a) SHA1(367db88d36852e35c5e839f692be5ea8c8e072d2) )
2434 
2435 	ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
2436 	// Video BD 837-6906-2, Mask ROMs twice the size as EPR/OPR counterparts
2437 	ROM_LOAD32_BYTE( "mpr-12336.9",   0x00000, 0x20000, CRC(dda465c7) SHA1(83acc12a387b004986f084f25964c15a9f88a41a) )
2438 	ROM_LOAD32_BYTE( "mpr-12337.10",  0x00001, 0x20000, CRC(828233d1) SHA1(d73a200af4245d590e1fd3ac436723f99cc50452) )
2439 	ROM_LOAD32_BYTE( "mpr-12338.11",  0x00002, 0x20000, CRC(46b4b5f4) SHA1(afeb2e5ac6792edafe7328993fe8dfcd4bce1924) )
2440 	ROM_LOAD32_BYTE( "mpr-12339.12",  0x00003, 0x20000, CRC(0d7e3bab) SHA1(fdb603df55785ded593daf591ddd90f8f24e0d47) )
2441 	ROM_LOAD32_BYTE( "mpr-12364.13",  0x80000, 0x20000, CRC(a4b83e65) SHA1(966d8c163cef0842abff54e1dba3f15248e73f68) )
2442 	ROM_LOAD32_BYTE( "mpr-12365.14",  0x80001, 0x20000, CRC(4a80b2a9) SHA1(14b4fe71e102622a73c8dc0dbd0013cbbe6fcf9d) )
2443 	ROM_LOAD32_BYTE( "mpr-12366.15",  0x80002, 0x20000, CRC(385cb3ab) SHA1(fec6d80d488bfe26524fa3a48b195a45a073e481) )
2444 	ROM_LOAD32_BYTE( "mpr-12367.16",  0x80003, 0x20000, CRC(4930254a) SHA1(00f24be3bf02b143fa554f4d32e283bdac79af6a) )
2445 
2446 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road)
2447 	ROM_LOAD( "epr-12299.47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Manual shows both as EPR-12298
2448 	ROM_LOAD( "epr-12298.11", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) )
2449 
2450 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2451 	ROM_LOAD( "epr-12300.88", 0x00000, 0x10000, CRC(e8ff7011) SHA1(6eaf3aea507007ea31d507ed7825d905f4b8e7ab) )
2452 
2453 	ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
2454 	ROM_LOAD( "opr-12301.66", 0x00000, 0x10000, CRC(6e78ad15) SHA1(c31ddf434b459cd1a381d2a028beabddd4ed10d2) )
2455 	ROM_LOAD( "opr-12302.67", 0x10000, 0x10000, CRC(e72928af) SHA1(40e0b178958cfe97c097fe9d82b5de54bc27a29f) )
2456 	ROM_LOAD( "opr-12303.68", 0x20000, 0x10000, CRC(8384205c) SHA1(c1f9d52bc587eab5a97867198e9aa7c19e973429) )
2457 	ROM_LOAD( "opr-12304.69", 0x30000, 0x10000, CRC(e1762ac3) SHA1(855f06c082a17d90857e6efa3cf95b0eda0e634d) )
2458 	ROM_LOAD( "opr-12305.70", 0x40000, 0x10000, CRC(ba9ce677) SHA1(056781f92450c902e1d279a02bda28337815cba9) )
2459 	ROM_LOAD( "opr-12306.71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) )
2460 ROM_END
2461 
2462 //*************************************************************************************************************************
2463 //  Turbo Outrun (Cockpit version)
2464 //  CPU: FD1094 (317-0107)
2465 //  GAME BD   834-6919-02
2466 //   CPU BD   837-6905
2467 //   VIDEO BD 837-6906
2468 //
2469 //  Must set Cabinet Type dipswitch (DSW-B 1&2 to both ON) to Cockpit - Other settings show "no use"
2470 //  Must set Turbo Switch dipswitch (DSW-B 4 to OFF) to Use Turbo Shifter - Other settings show "no use"
2471 //
2472 ROM_START( toutrun3 )
2473 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
2474 	ROM_LOAD16_BYTE( "epr-12410.133", 0x000000, 0x10000, CRC(aa74f3e9) SHA1(2daf6b17317542063c0a40beea5b45c797192591) )
2475 	ROM_LOAD16_BYTE( "epr-12409.118", 0x000001, 0x10000, CRC(c11c8ef7) SHA1(4c1c5100d7fd728642d58e4bf45fba48695841e3) )
2476 	ROM_LOAD16_BYTE( "epr-12412.132", 0x020000, 0x10000, CRC(b0534647) SHA1(40f2260ff0d0ac662d118cc7280bb26006ee75e9) )
2477 	ROM_LOAD16_BYTE( "epr-12411.117", 0x020001, 0x10000, CRC(12bb0d83) SHA1(4aa1b724b2a7258fff7aa1971582950b3163c0db) )
2478 	ROM_LOAD16_BYTE( "epr-12293.131", 0x040000, 0x10000, CRC(f4321eea) SHA1(64334acc82c14bb58b7d51719f34fd81cfb9fc6b) )
2479 	ROM_LOAD16_BYTE( "epr-12292.116", 0x040001, 0x10000, CRC(51d98af0) SHA1(6e7115706bfafb687faa23d55d4a8c8e498a4df2) )
2480 
2481 	ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2482 	ROM_LOAD( "317-0107.key", 0x0000, 0x2000, CRC(33e632ae) SHA1(9fd8bd11d0a87ec4dfc4dc386012ab7992cb2bd7) )
2483 
2484 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
2485 	ROM_LOAD16_BYTE( "opr-12295.76", 0x000000, 0x10000, CRC(d43a3a84) SHA1(362c98f62c205b6b40b7e8a4ba107745b547b984) )
2486 	ROM_LOAD16_BYTE( "opr-12294.58", 0x000001, 0x10000, CRC(27cdcfd3) SHA1(4fe57db95b109ab1bb1326789e06a3d3aac311cc) )
2487 	ROM_LOAD16_BYTE( "opr-12297.75", 0x020000, 0x10000, CRC(1d9b5677) SHA1(fb6e33acc43fbc7a8d7ac44045439ecdf794fdeb) )
2488 	ROM_LOAD16_BYTE( "opr-12296.57", 0x020001, 0x10000, CRC(0a513671) SHA1(4c13ca3a6f0aa9d06ed80798b466cca0c966a265) )
2489 
2490 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2491 	ROM_LOAD( "opr-12323.102", 0x00000, 0x10000, CRC(4de43a6f) SHA1(68909338e1f192ac2699c8a8d24c3f46502dd019) )
2492 	ROM_LOAD( "opr-12324.103", 0x10000, 0x10000, CRC(24607a55) SHA1(69033f2281cd42e88233c23d809b73607fe54853) )
2493 	ROM_LOAD( "opr-12325.104", 0x20000, 0x10000, CRC(1405137a) SHA1(367db88d36852e35c5e839f692be5ea8c8e072d2) )
2494 
2495 	ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
2496 	ROM_LOAD32_BYTE( "opr-12307.9",  0x00000, 0x10000, CRC(437dcf09) SHA1(0022ee4d1c3698f77271e570cef98a8a1e5c5d6a) )
2497 	ROM_LOAD32_BYTE( "opr-12308.10", 0x00001, 0x10000, CRC(0de70cc2) SHA1(c03f8f8cda72daf64af2878bf254840ac6dd17eb) )
2498 	ROM_LOAD32_BYTE( "opr-12309.11", 0x00002, 0x10000, CRC(deb8c242) SHA1(c05d8ced4eafae52c4795fb1471cd66f5903d1aa) )
2499 	ROM_LOAD32_BYTE( "opr-12310.12", 0x00003, 0x10000, CRC(45cf157e) SHA1(5d0be2a374a53ea1fe0ba2bf9b2173e96de1eb51) )
2500 	ROM_LOAD32_BYTE( "opr-12311.13", 0x40000, 0x10000, CRC(ae2bd639) SHA1(64bb60ae7e3f87fbbce00106ba65c4e6fc1af0e4) )
2501 	ROM_LOAD32_BYTE( "opr-12312.14", 0x40001, 0x10000, CRC(626000e7) SHA1(4a7f9e76dd76a3dc56b8257149bc94be3f4f2e87) )
2502 	ROM_LOAD32_BYTE( "opr-12313.15", 0x40002, 0x10000, CRC(52870c37) SHA1(3a6836a46d94c0f9115800d206410252a1134c57) )
2503 	ROM_LOAD32_BYTE( "opr-12314.16", 0x40003, 0x10000, CRC(40c461ea) SHA1(7bed8f24112dc3c827fd087138fcf2700092aa59) )
2504 	ROM_LOAD32_BYTE( "opr-12315.17", 0x80000, 0x10000, CRC(3ff9a3a3) SHA1(0d90fe2669d03bd07a0d3b05934201778e28d54c) )
2505 	ROM_LOAD32_BYTE( "opr-12316.18", 0x80001, 0x10000, CRC(8a1e6dc8) SHA1(32f09ec504c2b6772815bad7380a2f738f11746a) )
2506 	ROM_LOAD32_BYTE( "opr-12317.19", 0x80002, 0x10000, CRC(77e382d4) SHA1(5b7912069a46043b7be989d82436add85497d318) )
2507 	ROM_LOAD32_BYTE( "opr-12318.20", 0x80003, 0x10000, CRC(d1afdea9) SHA1(813eccc88d5046992be5b5a0618d32127d16e30b) )
2508 	ROM_LOAD32_BYTE( "opr-12319.25", 0xc0000, 0x10000, CRC(df23baf9) SHA1(f9611391bb3b3b92203fa9f6dd461e3a6e863622) )
2509 	ROM_LOAD32_BYTE( "opr-12320.22", 0xc0001, 0x10000, CRC(7931e446) SHA1(9f2161a689ebad61f6653942e23d9c2bc6170d4a) )
2510 	ROM_LOAD32_BYTE( "opr-12321.23", 0xc0002, 0x10000, CRC(830bacd4) SHA1(5a4816969437ee1edca5845006c0b8e9ba365491) )
2511 	ROM_LOAD32_BYTE( "opr-12322.24", 0xc0003, 0x10000, CRC(8b812492) SHA1(bf1f9e059c093c0991c7caf1b01c739ed54b8357) )
2512 
2513 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road)
2514 	ROM_LOAD( "epr-12299.47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Manual shows both as EPR-12298
2515 	ROM_LOAD( "epr-12298.11", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) )
2516 
2517 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2518 	ROM_LOAD( "epr-12300.88", 0x00000, 0x10000, CRC(e8ff7011) SHA1(6eaf3aea507007ea31d507ed7825d905f4b8e7ab) )
2519 
2520 	ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
2521 	ROM_LOAD( "opr-12301.66", 0x00000, 0x10000, CRC(6e78ad15) SHA1(c31ddf434b459cd1a381d2a028beabddd4ed10d2) )
2522 	ROM_LOAD( "opr-12302.67", 0x10000, 0x10000, CRC(e72928af) SHA1(40e0b178958cfe97c097fe9d82b5de54bc27a29f) )
2523 	ROM_LOAD( "opr-12303.68", 0x20000, 0x10000, CRC(8384205c) SHA1(c1f9d52bc587eab5a97867198e9aa7c19e973429) )
2524 	ROM_LOAD( "opr-12304.69", 0x30000, 0x10000, CRC(e1762ac3) SHA1(855f06c082a17d90857e6efa3cf95b0eda0e634d) )
2525 	ROM_LOAD( "opr-12305.70", 0x40000, 0x10000, CRC(ba9ce677) SHA1(056781f92450c902e1d279a02bda28337815cba9) )
2526 	ROM_LOAD( "opr-12306.71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) )
2527 ROM_END
2528 
2529 ROM_START( toutrun3d )
2530 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
2531 	ROM_LOAD16_BYTE( "bootleg_epr-12410.133", 0x000000, 0x10000, CRC(8e716903) SHA1(6a5c168097623c97358fc5dd8e205cf61932d3e9) )
2532 	ROM_LOAD16_BYTE( "bootleg_epr-12409.118", 0x000001, 0x10000, CRC(675d4dd8) SHA1(e74dc3c21196baac94c41e844b2a9054842ae863) )
2533 	ROM_LOAD16_BYTE( "bootleg_epr-12412.132", 0x020000, 0x10000, CRC(89da477c) SHA1(f854a48d96539d87d2417d936bd6bec1b7ea32fd) )
2534 	ROM_LOAD16_BYTE( "bootleg_epr-12411.117", 0x020001, 0x10000, CRC(285837ee) SHA1(186fff13cd50af504c0dc0296af96dfa24d0d32e) )
2535 	ROM_LOAD16_BYTE( "epr-12293.131", 0x040000, 0x10000, CRC(f4321eea) SHA1(64334acc82c14bb58b7d51719f34fd81cfb9fc6b) )
2536 	ROM_LOAD16_BYTE( "epr-12292.116", 0x040001, 0x10000, CRC(51d98af0) SHA1(6e7115706bfafb687faa23d55d4a8c8e498a4df2) )
2537 
2538 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
2539 	ROM_LOAD16_BYTE( "opr-12295.76", 0x000000, 0x10000, CRC(d43a3a84) SHA1(362c98f62c205b6b40b7e8a4ba107745b547b984) )
2540 	ROM_LOAD16_BYTE( "opr-12294.58", 0x000001, 0x10000, CRC(27cdcfd3) SHA1(4fe57db95b109ab1bb1326789e06a3d3aac311cc) )
2541 	ROM_LOAD16_BYTE( "opr-12297.75", 0x020000, 0x10000, CRC(1d9b5677) SHA1(fb6e33acc43fbc7a8d7ac44045439ecdf794fdeb) )
2542 	ROM_LOAD16_BYTE( "opr-12296.57", 0x020001, 0x10000, CRC(0a513671) SHA1(4c13ca3a6f0aa9d06ed80798b466cca0c966a265) )
2543 
2544 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2545 	ROM_LOAD( "opr-12323.102", 0x00000, 0x10000, CRC(4de43a6f) SHA1(68909338e1f192ac2699c8a8d24c3f46502dd019) )
2546 	ROM_LOAD( "opr-12324.103", 0x10000, 0x10000, CRC(24607a55) SHA1(69033f2281cd42e88233c23d809b73607fe54853) )
2547 	ROM_LOAD( "opr-12325.104", 0x20000, 0x10000, CRC(1405137a) SHA1(367db88d36852e35c5e839f692be5ea8c8e072d2) )
2548 
2549 	ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
2550 	ROM_LOAD32_BYTE( "opr-12307.9",  0x00000, 0x10000, CRC(437dcf09) SHA1(0022ee4d1c3698f77271e570cef98a8a1e5c5d6a) )
2551 	ROM_LOAD32_BYTE( "opr-12308.10", 0x00001, 0x10000, CRC(0de70cc2) SHA1(c03f8f8cda72daf64af2878bf254840ac6dd17eb) )
2552 	ROM_LOAD32_BYTE( "opr-12309.11", 0x00002, 0x10000, CRC(deb8c242) SHA1(c05d8ced4eafae52c4795fb1471cd66f5903d1aa) )
2553 	ROM_LOAD32_BYTE( "opr-12310.12", 0x00003, 0x10000, CRC(45cf157e) SHA1(5d0be2a374a53ea1fe0ba2bf9b2173e96de1eb51) )
2554 	ROM_LOAD32_BYTE( "opr-12311.13", 0x40000, 0x10000, CRC(ae2bd639) SHA1(64bb60ae7e3f87fbbce00106ba65c4e6fc1af0e4) )
2555 	ROM_LOAD32_BYTE( "opr-12312.14", 0x40001, 0x10000, CRC(626000e7) SHA1(4a7f9e76dd76a3dc56b8257149bc94be3f4f2e87) )
2556 	ROM_LOAD32_BYTE( "opr-12313.15", 0x40002, 0x10000, CRC(52870c37) SHA1(3a6836a46d94c0f9115800d206410252a1134c57) )
2557 	ROM_LOAD32_BYTE( "opr-12314.16", 0x40003, 0x10000, CRC(40c461ea) SHA1(7bed8f24112dc3c827fd087138fcf2700092aa59) )
2558 	ROM_LOAD32_BYTE( "opr-12315.17", 0x80000, 0x10000, CRC(3ff9a3a3) SHA1(0d90fe2669d03bd07a0d3b05934201778e28d54c) )
2559 	ROM_LOAD32_BYTE( "opr-12316.18", 0x80001, 0x10000, CRC(8a1e6dc8) SHA1(32f09ec504c2b6772815bad7380a2f738f11746a) )
2560 	ROM_LOAD32_BYTE( "opr-12317.19", 0x80002, 0x10000, CRC(77e382d4) SHA1(5b7912069a46043b7be989d82436add85497d318) )
2561 	ROM_LOAD32_BYTE( "opr-12318.20", 0x80003, 0x10000, CRC(d1afdea9) SHA1(813eccc88d5046992be5b5a0618d32127d16e30b) )
2562 	ROM_LOAD32_BYTE( "opr-12319.25", 0xc0000, 0x10000, CRC(df23baf9) SHA1(f9611391bb3b3b92203fa9f6dd461e3a6e863622) )
2563 	ROM_LOAD32_BYTE( "opr-12320.22", 0xc0001, 0x10000, CRC(7931e446) SHA1(9f2161a689ebad61f6653942e23d9c2bc6170d4a) )
2564 	ROM_LOAD32_BYTE( "opr-12321.23", 0xc0002, 0x10000, CRC(830bacd4) SHA1(5a4816969437ee1edca5845006c0b8e9ba365491) )
2565 	ROM_LOAD32_BYTE( "opr-12322.24", 0xc0003, 0x10000, CRC(8b812492) SHA1(bf1f9e059c093c0991c7caf1b01c739ed54b8357) )
2566 
2567 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road)
2568 	ROM_LOAD( "epr-12299.47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Manual shows both as EPR-12298
2569 	ROM_LOAD( "epr-12298.11", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) )
2570 
2571 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2572 	ROM_LOAD( "epr-12300.88", 0x00000, 0x10000, CRC(e8ff7011) SHA1(6eaf3aea507007ea31d507ed7825d905f4b8e7ab) )
2573 
2574 	ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
2575 	ROM_LOAD( "opr-12301.66", 0x00000, 0x10000, CRC(6e78ad15) SHA1(c31ddf434b459cd1a381d2a028beabddd4ed10d2) )
2576 	ROM_LOAD( "opr-12302.67", 0x10000, 0x10000, CRC(e72928af) SHA1(40e0b178958cfe97c097fe9d82b5de54bc27a29f) )
2577 	ROM_LOAD( "opr-12303.68", 0x20000, 0x10000, CRC(8384205c) SHA1(c1f9d52bc587eab5a97867198e9aa7c19e973429) )
2578 	ROM_LOAD( "opr-12304.69", 0x30000, 0x10000, CRC(e1762ac3) SHA1(855f06c082a17d90857e6efa3cf95b0eda0e634d) )
2579 	ROM_LOAD( "opr-12305.70", 0x40000, 0x10000, CRC(ba9ce677) SHA1(056781f92450c902e1d279a02bda28337815cba9) )
2580 	ROM_LOAD( "opr-12306.71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) )
2581 ROM_END
2582 
2583 //*************************************************************************************************************************
2584 //  Turbo Outrun (Cockpit version)
2585 //  CPU: FD1094 (317-0106)
2586 //  GAME BD   834-6919-01
2587 //   CPU BD   837-6905
2588 //   VIDEO BD 837-6906
2589 //
2590 //  Must set Cabinet Type dipswitch (DSW-B 1&2 to both ON) to Cockpit - Other settings show "no use"
2591 //  Must set Turbo Switch dipswitch (DSW-B 4 to OFF) to Use Turbo Shifter - Other settings show "no use"
2592 //
2593 ROM_START( toutrun2 )
2594 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
2595 	ROM_LOAD16_BYTE( "epr-12397.133", 0x000000, 0x10000, CRC(e4b57d7d) SHA1(62be55356c82b38ebebcc87a5458e23300019339) )
2596 	ROM_LOAD16_BYTE( "epr-12396.118", 0x000001, 0x10000, CRC(5e7115cb) SHA1(02c9ec91d9afb424e5045671ab0b5499181728c9) )
2597 	ROM_LOAD16_BYTE( "epr-12399.132", 0x020000, 0x10000, CRC(62c77b1b) SHA1(004803c68cb1b3e414296ffbf50dc3b33b9ffb9a) )
2598 	ROM_LOAD16_BYTE( "epr-12398.117", 0x020001, 0x10000, CRC(18e34520) SHA1(3f10ecb809106b82fd44fd6244d8d8e7f1c8e08d) )
2599 	ROM_LOAD16_BYTE( "epr-12293.131", 0x040000, 0x10000, CRC(f4321eea) SHA1(64334acc82c14bb58b7d51719f34fd81cfb9fc6b) )
2600 	ROM_LOAD16_BYTE( "epr-12292.116", 0x040001, 0x10000, CRC(51d98af0) SHA1(6e7115706bfafb687faa23d55d4a8c8e498a4df2) )
2601 
2602 	ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2603 	ROM_LOAD( "317-0106.key", 0x0000, 0x2000, CRC(a4e33916) SHA1(61d13bf85e13c15642d143ea79afa501980d672f) )
2604 
2605 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
2606 	ROM_LOAD16_BYTE( "opr-12295.76", 0x000000, 0x10000, CRC(d43a3a84) SHA1(362c98f62c205b6b40b7e8a4ba107745b547b984) )
2607 	ROM_LOAD16_BYTE( "opr-12294.58", 0x000001, 0x10000, CRC(27cdcfd3) SHA1(4fe57db95b109ab1bb1326789e06a3d3aac311cc) )
2608 	ROM_LOAD16_BYTE( "opr-12297.75", 0x020000, 0x10000, CRC(1d9b5677) SHA1(fb6e33acc43fbc7a8d7ac44045439ecdf794fdeb) )
2609 	ROM_LOAD16_BYTE( "opr-12296.57", 0x020001, 0x10000, CRC(0a513671) SHA1(4c13ca3a6f0aa9d06ed80798b466cca0c966a265) )
2610 
2611 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2612 	ROM_LOAD( "opr-12323.102", 0x00000, 0x10000, CRC(4de43a6f) SHA1(68909338e1f192ac2699c8a8d24c3f46502dd019) )
2613 	ROM_LOAD( "opr-12324.103", 0x10000, 0x10000, CRC(24607a55) SHA1(69033f2281cd42e88233c23d809b73607fe54853) )
2614 	ROM_LOAD( "opr-12325.104", 0x20000, 0x10000, CRC(1405137a) SHA1(367db88d36852e35c5e839f692be5ea8c8e072d2) )
2615 
2616 	ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
2617 	ROM_LOAD32_BYTE( "opr-12307.9",  0x00000, 0x10000, CRC(437dcf09) SHA1(0022ee4d1c3698f77271e570cef98a8a1e5c5d6a) )
2618 	ROM_LOAD32_BYTE( "opr-12308.10", 0x00001, 0x10000, CRC(0de70cc2) SHA1(c03f8f8cda72daf64af2878bf254840ac6dd17eb) )
2619 	ROM_LOAD32_BYTE( "opr-12309.11", 0x00002, 0x10000, CRC(deb8c242) SHA1(c05d8ced4eafae52c4795fb1471cd66f5903d1aa) )
2620 	ROM_LOAD32_BYTE( "opr-12310.12", 0x00003, 0x10000, CRC(45cf157e) SHA1(5d0be2a374a53ea1fe0ba2bf9b2173e96de1eb51) )
2621 	ROM_LOAD32_BYTE( "opr-12311.13", 0x40000, 0x10000, CRC(ae2bd639) SHA1(64bb60ae7e3f87fbbce00106ba65c4e6fc1af0e4) )
2622 	ROM_LOAD32_BYTE( "opr-12312.14", 0x40001, 0x10000, CRC(626000e7) SHA1(4a7f9e76dd76a3dc56b8257149bc94be3f4f2e87) )
2623 	ROM_LOAD32_BYTE( "opr-12313.15", 0x40002, 0x10000, CRC(52870c37) SHA1(3a6836a46d94c0f9115800d206410252a1134c57) )
2624 	ROM_LOAD32_BYTE( "opr-12314.16", 0x40003, 0x10000, CRC(40c461ea) SHA1(7bed8f24112dc3c827fd087138fcf2700092aa59) )
2625 	ROM_LOAD32_BYTE( "opr-12315.17", 0x80000, 0x10000, CRC(3ff9a3a3) SHA1(0d90fe2669d03bd07a0d3b05934201778e28d54c) )
2626 	ROM_LOAD32_BYTE( "opr-12316.18", 0x80001, 0x10000, CRC(8a1e6dc8) SHA1(32f09ec504c2b6772815bad7380a2f738f11746a) )
2627 	ROM_LOAD32_BYTE( "opr-12317.19", 0x80002, 0x10000, CRC(77e382d4) SHA1(5b7912069a46043b7be989d82436add85497d318) )
2628 	ROM_LOAD32_BYTE( "opr-12318.20", 0x80003, 0x10000, CRC(d1afdea9) SHA1(813eccc88d5046992be5b5a0618d32127d16e30b) )
2629 	ROM_LOAD32_BYTE( "opr-12319.25", 0xc0000, 0x10000, CRC(df23baf9) SHA1(f9611391bb3b3b92203fa9f6dd461e3a6e863622) )
2630 	ROM_LOAD32_BYTE( "opr-12320.22", 0xc0001, 0x10000, CRC(7931e446) SHA1(9f2161a689ebad61f6653942e23d9c2bc6170d4a) )
2631 	ROM_LOAD32_BYTE( "opr-12321.23", 0xc0002, 0x10000, CRC(830bacd4) SHA1(5a4816969437ee1edca5845006c0b8e9ba365491) )
2632 	ROM_LOAD32_BYTE( "opr-12322.24", 0xc0003, 0x10000, CRC(8b812492) SHA1(bf1f9e059c093c0991c7caf1b01c739ed54b8357) )
2633 
2634 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road)
2635 	ROM_LOAD( "epr-12299.47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Manual shows both as EPR-12298
2636 	ROM_LOAD( "epr-12298.11", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) )
2637 
2638 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2639 	ROM_LOAD( "epr-12300.88", 0x00000, 0x10000, CRC(e8ff7011) SHA1(6eaf3aea507007ea31d507ed7825d905f4b8e7ab) )
2640 
2641 	ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
2642 	ROM_LOAD( "opr-12301.66", 0x00000, 0x10000, CRC(6e78ad15) SHA1(c31ddf434b459cd1a381d2a028beabddd4ed10d2) )
2643 	ROM_LOAD( "opr-12302.67", 0x10000, 0x10000, CRC(e72928af) SHA1(40e0b178958cfe97c097fe9d82b5de54bc27a29f) )
2644 	ROM_LOAD( "opr-12303.68", 0x20000, 0x10000, CRC(8384205c) SHA1(c1f9d52bc587eab5a97867198e9aa7c19e973429) )
2645 	ROM_LOAD( "opr-12304.69", 0x30000, 0x10000, CRC(e1762ac3) SHA1(855f06c082a17d90857e6efa3cf95b0eda0e634d) )
2646 	ROM_LOAD( "opr-12305.70", 0x40000, 0x10000, CRC(ba9ce677) SHA1(056781f92450c902e1d279a02bda28337815cba9) )
2647 	ROM_LOAD( "opr-12306.71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) )
2648 ROM_END
2649 
2650 
2651 ROM_START( toutrun2d )
2652 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
2653 	ROM_LOAD16_BYTE( "bootleg_epr-12397.133", 0x000000, 0x10000, CRC(815ec9af) SHA1(94128ae06630bcfc21194c5113894c775e07d766) )
2654 	ROM_LOAD16_BYTE( "bootleg_epr-12396.118", 0x000001, 0x10000, CRC(84484188) SHA1(211b7e8bffa9490da321fc28bfe3ee4f4f368742) )
2655 	ROM_LOAD16_BYTE( "bootleg_epr-12399.132", 0x020000, 0x10000, CRC(27ef9e5d) SHA1(65eac53884583fe247ba5c9fab0bade27673526a) )
2656 	ROM_LOAD16_BYTE( "bootleg_epr-12398.117", 0x020001, 0x10000, CRC(6da9f13b) SHA1(383ea9d1d068a2c2d7b57202576628286c1496c8) )
2657 	ROM_LOAD16_BYTE( "epr-12293.131", 0x040000, 0x10000, CRC(f4321eea) SHA1(64334acc82c14bb58b7d51719f34fd81cfb9fc6b) )
2658 	ROM_LOAD16_BYTE( "epr-12292.116", 0x040001, 0x10000, CRC(51d98af0) SHA1(6e7115706bfafb687faa23d55d4a8c8e498a4df2) )
2659 
2660 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
2661 	ROM_LOAD16_BYTE( "opr-12295.76", 0x000000, 0x10000, CRC(d43a3a84) SHA1(362c98f62c205b6b40b7e8a4ba107745b547b984) )
2662 	ROM_LOAD16_BYTE( "opr-12294.58", 0x000001, 0x10000, CRC(27cdcfd3) SHA1(4fe57db95b109ab1bb1326789e06a3d3aac311cc) )
2663 	ROM_LOAD16_BYTE( "opr-12297.75", 0x020000, 0x10000, CRC(1d9b5677) SHA1(fb6e33acc43fbc7a8d7ac44045439ecdf794fdeb) )
2664 	ROM_LOAD16_BYTE( "opr-12296.57", 0x020001, 0x10000, CRC(0a513671) SHA1(4c13ca3a6f0aa9d06ed80798b466cca0c966a265) )
2665 
2666 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2667 	ROM_LOAD( "opr-12323.102", 0x00000, 0x10000, CRC(4de43a6f) SHA1(68909338e1f192ac2699c8a8d24c3f46502dd019) )
2668 	ROM_LOAD( "opr-12324.103", 0x10000, 0x10000, CRC(24607a55) SHA1(69033f2281cd42e88233c23d809b73607fe54853) )
2669 	ROM_LOAD( "opr-12325.104", 0x20000, 0x10000, CRC(1405137a) SHA1(367db88d36852e35c5e839f692be5ea8c8e072d2) )
2670 
2671 	ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
2672 	ROM_LOAD32_BYTE( "opr-12307.9",  0x00000, 0x10000, CRC(437dcf09) SHA1(0022ee4d1c3698f77271e570cef98a8a1e5c5d6a) )
2673 	ROM_LOAD32_BYTE( "opr-12308.10", 0x00001, 0x10000, CRC(0de70cc2) SHA1(c03f8f8cda72daf64af2878bf254840ac6dd17eb) )
2674 	ROM_LOAD32_BYTE( "opr-12309.11", 0x00002, 0x10000, CRC(deb8c242) SHA1(c05d8ced4eafae52c4795fb1471cd66f5903d1aa) )
2675 	ROM_LOAD32_BYTE( "opr-12310.12", 0x00003, 0x10000, CRC(45cf157e) SHA1(5d0be2a374a53ea1fe0ba2bf9b2173e96de1eb51) )
2676 	ROM_LOAD32_BYTE( "opr-12311.13", 0x40000, 0x10000, CRC(ae2bd639) SHA1(64bb60ae7e3f87fbbce00106ba65c4e6fc1af0e4) )
2677 	ROM_LOAD32_BYTE( "opr-12312.14", 0x40001, 0x10000, CRC(626000e7) SHA1(4a7f9e76dd76a3dc56b8257149bc94be3f4f2e87) )
2678 	ROM_LOAD32_BYTE( "opr-12313.15", 0x40002, 0x10000, CRC(52870c37) SHA1(3a6836a46d94c0f9115800d206410252a1134c57) )
2679 	ROM_LOAD32_BYTE( "opr-12314.16", 0x40003, 0x10000, CRC(40c461ea) SHA1(7bed8f24112dc3c827fd087138fcf2700092aa59) )
2680 	ROM_LOAD32_BYTE( "opr-12315.17", 0x80000, 0x10000, CRC(3ff9a3a3) SHA1(0d90fe2669d03bd07a0d3b05934201778e28d54c) )
2681 	ROM_LOAD32_BYTE( "opr-12316.18", 0x80001, 0x10000, CRC(8a1e6dc8) SHA1(32f09ec504c2b6772815bad7380a2f738f11746a) )
2682 	ROM_LOAD32_BYTE( "opr-12317.19", 0x80002, 0x10000, CRC(77e382d4) SHA1(5b7912069a46043b7be989d82436add85497d318) )
2683 	ROM_LOAD32_BYTE( "opr-12318.20", 0x80003, 0x10000, CRC(d1afdea9) SHA1(813eccc88d5046992be5b5a0618d32127d16e30b) )
2684 	ROM_LOAD32_BYTE( "opr-12319.25", 0xc0000, 0x10000, CRC(df23baf9) SHA1(f9611391bb3b3b92203fa9f6dd461e3a6e863622) )
2685 	ROM_LOAD32_BYTE( "opr-12320.22", 0xc0001, 0x10000, CRC(7931e446) SHA1(9f2161a689ebad61f6653942e23d9c2bc6170d4a) )
2686 	ROM_LOAD32_BYTE( "opr-12321.23", 0xc0002, 0x10000, CRC(830bacd4) SHA1(5a4816969437ee1edca5845006c0b8e9ba365491) )
2687 	ROM_LOAD32_BYTE( "opr-12322.24", 0xc0003, 0x10000, CRC(8b812492) SHA1(bf1f9e059c093c0991c7caf1b01c739ed54b8357) )
2688 
2689 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road)
2690 	ROM_LOAD( "epr-12299.47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Manual shows both as EPR-12298
2691 	ROM_LOAD( "epr-12298.11", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) )
2692 
2693 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2694 	ROM_LOAD( "epr-12300.88", 0x00000, 0x10000, CRC(e8ff7011) SHA1(6eaf3aea507007ea31d507ed7825d905f4b8e7ab) )
2695 
2696 	ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
2697 	ROM_LOAD( "opr-12301.66", 0x00000, 0x10000, CRC(6e78ad15) SHA1(c31ddf434b459cd1a381d2a028beabddd4ed10d2) )
2698 	ROM_LOAD( "opr-12302.67", 0x10000, 0x10000, CRC(e72928af) SHA1(40e0b178958cfe97c097fe9d82b5de54bc27a29f) )
2699 	ROM_LOAD( "opr-12303.68", 0x20000, 0x10000, CRC(8384205c) SHA1(c1f9d52bc587eab5a97867198e9aa7c19e973429) )
2700 	ROM_LOAD( "opr-12304.69", 0x30000, 0x10000, CRC(e1762ac3) SHA1(855f06c082a17d90857e6efa3cf95b0eda0e634d) )
2701 	ROM_LOAD( "opr-12305.70", 0x40000, 0x10000, CRC(ba9ce677) SHA1(056781f92450c902e1d279a02bda28337815cba9) )
2702 	ROM_LOAD( "opr-12306.71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) )
2703 ROM_END
2704 
2705 //*************************************************************************************************************************
2706 //  Turbo Outrun (White cockpit/sitdown Deluxe version)
2707 //  CPU: FD1094 (317-0109)
2708 //
2709 // NOTE: 4 program ROMs EPR-12289 through EPR12291 conflicts with the Japan 317-0101 set. This set's program numbers
2710 //       needs to be verified, Sega was very good at using different numbers for different data / versions.
2711 //
2712 ROM_START( toutrun1 )
2713 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
2714 	ROM_LOAD16_BYTE( "epr-12289.133", 0x000000, 0x10000, CRC(812fd035) SHA1(7bea9ba611333dfb86cfc2e2be8cff5f700b6f71) ) // ROM label conflicts with the 317-0101 set below
2715 	ROM_LOAD16_BYTE( "epr-12288.118", 0x000001, 0x10000, CRC(2f1151bb) SHA1(e91600d4f4e5d3d5a67cafb1ff34006f281434f1) ) // ROM label conflicts with the 317-0101 set below
2716 	ROM_LOAD16_BYTE( "epr-12291.132", 0x020000, 0x10000, CRC(8ca284d2) SHA1(93f71ec554ab000294aaa4de9ece0eecfcfe3c46) ) // ROM label conflicts with the 317-0101 set below
2717 	ROM_LOAD16_BYTE( "epr-12290.117", 0x020001, 0x10000, CRC(44dbf3cb) SHA1(ad867a66d97e9f5b9e14a8d05049581214a077bf) ) // ROM label conflicts with the 317-0101 set below
2718 	ROM_LOAD16_BYTE( "epr-12293.131", 0x040000, 0x10000, CRC(f4321eea) SHA1(64334acc82c14bb58b7d51719f34fd81cfb9fc6b) )
2719 	ROM_LOAD16_BYTE( "epr-12292.116", 0x040001, 0x10000, CRC(51d98af0) SHA1(6e7115706bfafb687faa23d55d4a8c8e498a4df2) )
2720 
2721 	ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2722 	ROM_LOAD( "317-0109.key", 0x0000, 0x2000, CRC(e12a6e78) SHA1(358325490fc93bb979e9a9a296ce639d331e8b52) )
2723 
2724 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
2725 	ROM_LOAD16_BYTE( "opr-12295.76", 0x000000, 0x10000, CRC(d43a3a84) SHA1(362c98f62c205b6b40b7e8a4ba107745b547b984) )
2726 	ROM_LOAD16_BYTE( "opr-12294.58", 0x000001, 0x10000, CRC(27cdcfd3) SHA1(4fe57db95b109ab1bb1326789e06a3d3aac311cc) )
2727 	ROM_LOAD16_BYTE( "opr-12297.75", 0x020000, 0x10000, CRC(1d9b5677) SHA1(fb6e33acc43fbc7a8d7ac44045439ecdf794fdeb) )
2728 	ROM_LOAD16_BYTE( "opr-12296.57", 0x020001, 0x10000, CRC(0a513671) SHA1(4c13ca3a6f0aa9d06ed80798b466cca0c966a265) )
2729 
2730 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2731 	ROM_LOAD( "opr-12323.102", 0x00000, 0x10000, CRC(4de43a6f) SHA1(68909338e1f192ac2699c8a8d24c3f46502dd019) )
2732 	ROM_LOAD( "opr-12324.103", 0x10000, 0x10000, CRC(24607a55) SHA1(69033f2281cd42e88233c23d809b73607fe54853) )
2733 	ROM_LOAD( "opr-12325.104", 0x20000, 0x10000, CRC(1405137a) SHA1(367db88d36852e35c5e839f692be5ea8c8e072d2) )
2734 
2735 	ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
2736 	ROM_LOAD32_BYTE( "opr-12307.9",  0x00000, 0x10000, CRC(437dcf09) SHA1(0022ee4d1c3698f77271e570cef98a8a1e5c5d6a) )
2737 	ROM_LOAD32_BYTE( "opr-12308.10", 0x00001, 0x10000, CRC(0de70cc2) SHA1(c03f8f8cda72daf64af2878bf254840ac6dd17eb) )
2738 	ROM_LOAD32_BYTE( "opr-12309.11", 0x00002, 0x10000, CRC(deb8c242) SHA1(c05d8ced4eafae52c4795fb1471cd66f5903d1aa) )
2739 	ROM_LOAD32_BYTE( "opr-12310.12", 0x00003, 0x10000, CRC(45cf157e) SHA1(5d0be2a374a53ea1fe0ba2bf9b2173e96de1eb51) )
2740 	ROM_LOAD32_BYTE( "opr-12311.13", 0x40000, 0x10000, CRC(ae2bd639) SHA1(64bb60ae7e3f87fbbce00106ba65c4e6fc1af0e4) )
2741 	ROM_LOAD32_BYTE( "opr-12312.14", 0x40001, 0x10000, CRC(626000e7) SHA1(4a7f9e76dd76a3dc56b8257149bc94be3f4f2e87) )
2742 	ROM_LOAD32_BYTE( "opr-12313.15", 0x40002, 0x10000, CRC(52870c37) SHA1(3a6836a46d94c0f9115800d206410252a1134c57) )
2743 	ROM_LOAD32_BYTE( "opr-12314.16", 0x40003, 0x10000, CRC(40c461ea) SHA1(7bed8f24112dc3c827fd087138fcf2700092aa59) )
2744 	ROM_LOAD32_BYTE( "opr-12315.17", 0x80000, 0x10000, CRC(3ff9a3a3) SHA1(0d90fe2669d03bd07a0d3b05934201778e28d54c) )
2745 	ROM_LOAD32_BYTE( "opr-12316.18", 0x80001, 0x10000, CRC(8a1e6dc8) SHA1(32f09ec504c2b6772815bad7380a2f738f11746a) )
2746 	ROM_LOAD32_BYTE( "opr-12317.19", 0x80002, 0x10000, CRC(77e382d4) SHA1(5b7912069a46043b7be989d82436add85497d318) )
2747 	ROM_LOAD32_BYTE( "opr-12318.20", 0x80003, 0x10000, CRC(d1afdea9) SHA1(813eccc88d5046992be5b5a0618d32127d16e30b) )
2748 	ROM_LOAD32_BYTE( "opr-12319.25", 0xc0000, 0x10000, CRC(df23baf9) SHA1(f9611391bb3b3b92203fa9f6dd461e3a6e863622) )
2749 	ROM_LOAD32_BYTE( "opr-12320.22", 0xc0001, 0x10000, CRC(7931e446) SHA1(9f2161a689ebad61f6653942e23d9c2bc6170d4a) )
2750 	ROM_LOAD32_BYTE( "opr-12321.23", 0xc0002, 0x10000, CRC(830bacd4) SHA1(5a4816969437ee1edca5845006c0b8e9ba365491) )
2751 	ROM_LOAD32_BYTE( "opr-12322.24", 0xc0003, 0x10000, CRC(8b812492) SHA1(bf1f9e059c093c0991c7caf1b01c739ed54b8357) )
2752 
2753 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road)
2754 	ROM_LOAD( "epr-12299.47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Manual shows both as EPR-12298
2755 	ROM_LOAD( "epr-12298.11", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) )
2756 
2757 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2758 	ROM_LOAD( "epr-12300.88", 0x00000, 0x10000, CRC(e8ff7011) SHA1(6eaf3aea507007ea31d507ed7825d905f4b8e7ab) )
2759 
2760 	ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
2761 	ROM_LOAD( "opr-12301.66", 0x00000, 0x10000, CRC(6e78ad15) SHA1(c31ddf434b459cd1a381d2a028beabddd4ed10d2) )
2762 	ROM_LOAD( "opr-12302.67", 0x10000, 0x10000, CRC(e72928af) SHA1(40e0b178958cfe97c097fe9d82b5de54bc27a29f) )
2763 	ROM_LOAD( "opr-12303.68", 0x20000, 0x10000, CRC(8384205c) SHA1(c1f9d52bc587eab5a97867198e9aa7c19e973429) )
2764 	ROM_LOAD( "opr-12304.69", 0x30000, 0x10000, CRC(e1762ac3) SHA1(855f06c082a17d90857e6efa3cf95b0eda0e634d) )
2765 	ROM_LOAD( "opr-12305.70", 0x40000, 0x10000, CRC(ba9ce677) SHA1(056781f92450c902e1d279a02bda28337815cba9) )
2766 	ROM_LOAD( "opr-12306.71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) )
2767 ROM_END
2768 
2769 
2770 
2771 //*************************************************************************************************************************
2772 //  Turbo Outrun (Japan DX) (original all EPR based board)
2773 //  CPU: FD1094 (317-0101)
2774 //  GAME BD   834-6919 TURBO OUT RUN  (whited out spot on label for set number)
2775 //   CPU BD   837-6905
2776 //   VIDEO BD 837-6906
2777 //
2778 // NOTE: This PCB set used EPROMs instead of the OPR (One time PRogram) used by other sets.
2779 //       Same data so the ROM numbers are the same, just labeled EPR-xxxxx versus OPR-xxxxx
2780 //
2781 ROM_START( toutrunj1 )
2782 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
2783 	ROM_LOAD16_BYTE( "epr-12289.ic133", 0x000000, 0x10000, CRC(89380754) SHA1(52b3bf7ed04a58dbf13440f58ae6e71a28fca5f6) ) // Verified correct labels but conflicts with the 317-0109 set
2784 	ROM_LOAD16_BYTE( "epr-12288.ic118", 0x000001, 0x10000, CRC(47b47ef1) SHA1(1af002721ec9bf72c17e3184cf5df82e7b5f45e1) ) // Verified correct labels but conflicts with the 317-0109 set
2785 	ROM_LOAD16_BYTE( "epr-12291.ic132", 0x020000, 0x10000, CRC(1f4ab0c6) SHA1(5c21ad7e3b232d6d3bce325f878659ba9cfda0da) ) // Verified correct labels but conflicts with the 317-0109 set
2786 	ROM_LOAD16_BYTE( "epr-12290.ic117", 0x020001, 0x10000, CRC(67e81543) SHA1(a2844c2bbe139e709aa7679f82e38e93d9494e6d) ) // Verified correct labels but conflicts with the 317-0109 set
2787 	ROM_LOAD16_BYTE( "epr-12293.ic131", 0x040000, 0x10000, CRC(f4321eea) SHA1(64334acc82c14bb58b7d51719f34fd81cfb9fc6b) )
2788 	ROM_LOAD16_BYTE( "epr-12292.ic116", 0x040001, 0x10000, CRC(51d98af0) SHA1(6e7115706bfafb687faa23d55d4a8c8e498a4df2) )
2789 
2790 	ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2791 	ROM_LOAD( "317-0101.key", 0x0000, 0x2000, CRC(eb636314) SHA1(a10e5585a0af2865a9aa640a3b6bd1cf60f47a1e) )
2792 
2793 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
2794 	ROM_LOAD16_BYTE( "epr-12295.ic76", 0x000000, 0x10000, CRC(d43a3a84) SHA1(362c98f62c205b6b40b7e8a4ba107745b547b984) )
2795 	ROM_LOAD16_BYTE( "epr-12294.ic58", 0x000001, 0x10000, CRC(27cdcfd3) SHA1(4fe57db95b109ab1bb1326789e06a3d3aac311cc) )
2796 	ROM_LOAD16_BYTE( "epr-12297.ic75", 0x020000, 0x10000, CRC(1d9b5677) SHA1(fb6e33acc43fbc7a8d7ac44045439ecdf794fdeb) )
2797 	ROM_LOAD16_BYTE( "epr-12296.ic57", 0x020001, 0x10000, CRC(0a513671) SHA1(4c13ca3a6f0aa9d06ed80798b466cca0c966a265) )
2798 
2799 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2800 	ROM_LOAD( "epr-12323.ic102", 0x00000, 0x10000, CRC(4de43a6f) SHA1(68909338e1f192ac2699c8a8d24c3f46502dd019) )
2801 	ROM_LOAD( "epr-12324.ic103", 0x10000, 0x10000, CRC(24607a55) SHA1(69033f2281cd42e88233c23d809b73607fe54853) )
2802 	ROM_LOAD( "epr-12325.ic104", 0x20000, 0x10000, CRC(1405137a) SHA1(367db88d36852e35c5e839f692be5ea8c8e072d2) )
2803 
2804 	ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
2805 	ROM_LOAD32_BYTE( "epr-12307.ic9",  0x00000, 0x10000, CRC(437dcf09) SHA1(0022ee4d1c3698f77271e570cef98a8a1e5c5d6a) )
2806 	ROM_LOAD32_BYTE( "epr-12308.ic10", 0x00001, 0x10000, CRC(0de70cc2) SHA1(c03f8f8cda72daf64af2878bf254840ac6dd17eb) )
2807 	ROM_LOAD32_BYTE( "epr-12309.ic11", 0x00002, 0x10000, CRC(deb8c242) SHA1(c05d8ced4eafae52c4795fb1471cd66f5903d1aa) )
2808 	ROM_LOAD32_BYTE( "epr-12310.ic12", 0x00003, 0x10000, CRC(45cf157e) SHA1(5d0be2a374a53ea1fe0ba2bf9b2173e96de1eb51) )
2809 	ROM_LOAD32_BYTE( "epr-12311.ic13", 0x40000, 0x10000, CRC(ae2bd639) SHA1(64bb60ae7e3f87fbbce00106ba65c4e6fc1af0e4) )
2810 	ROM_LOAD32_BYTE( "epr-12312.ic14", 0x40001, 0x10000, CRC(626000e7) SHA1(4a7f9e76dd76a3dc56b8257149bc94be3f4f2e87) )
2811 	ROM_LOAD32_BYTE( "epr-12313.ic15", 0x40002, 0x10000, CRC(52870c37) SHA1(3a6836a46d94c0f9115800d206410252a1134c57) )
2812 	ROM_LOAD32_BYTE( "epr-12314.ic16", 0x40003, 0x10000, CRC(40c461ea) SHA1(7bed8f24112dc3c827fd087138fcf2700092aa59) )
2813 	ROM_LOAD32_BYTE( "epr-12315.ic17", 0x80000, 0x10000, CRC(3ff9a3a3) SHA1(0d90fe2669d03bd07a0d3b05934201778e28d54c) )
2814 	ROM_LOAD32_BYTE( "epr-12316.ic18", 0x80001, 0x10000, CRC(8a1e6dc8) SHA1(32f09ec504c2b6772815bad7380a2f738f11746a) )
2815 	ROM_LOAD32_BYTE( "epr-12317.ic19", 0x80002, 0x10000, CRC(77e382d4) SHA1(5b7912069a46043b7be989d82436add85497d318) )
2816 	ROM_LOAD32_BYTE( "epr-12318.ic20", 0x80003, 0x10000, CRC(d1afdea9) SHA1(813eccc88d5046992be5b5a0618d32127d16e30b) )
2817 	ROM_LOAD32_BYTE( "epr-12319.ic21", 0xc0000, 0x10000, CRC(df23baf9) SHA1(f9611391bb3b3b92203fa9f6dd461e3a6e863622) )
2818 	ROM_LOAD32_BYTE( "epr-12320.ic22", 0xc0001, 0x10000, CRC(7931e446) SHA1(9f2161a689ebad61f6653942e23d9c2bc6170d4a) )
2819 	ROM_LOAD32_BYTE( "epr-12321.ic23", 0xc0002, 0x10000, CRC(830bacd4) SHA1(5a4816969437ee1edca5845006c0b8e9ba365491) )
2820 	ROM_LOAD32_BYTE( "epr-12322.ic24", 0xc0003, 0x10000, CRC(8b812492) SHA1(bf1f9e059c093c0991c7caf1b01c739ed54b8357) )
2821 
2822 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road)
2823 	ROM_LOAD( "epr-12298.ic47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Both are EPR-12298
2824 	ROM_LOAD( "epr-12298.ic28", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) )
2825 
2826 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2827 	ROM_LOAD( "epr-12300.ic88", 0x00000, 0x10000, CRC(e8ff7011) SHA1(6eaf3aea507007ea31d507ed7825d905f4b8e7ab) )
2828 
2829 	ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
2830 	ROM_LOAD( "epr-12301.ic66", 0x00000, 0x10000, CRC(6e78ad15) SHA1(c31ddf434b459cd1a381d2a028beabddd4ed10d2) )
2831 	ROM_LOAD( "epr-12302.ic67", 0x10000, 0x10000, CRC(e72928af) SHA1(40e0b178958cfe97c097fe9d82b5de54bc27a29f) )
2832 	ROM_LOAD( "epr-12303.ic68", 0x20000, 0x10000, CRC(8384205c) SHA1(c1f9d52bc587eab5a97867198e9aa7c19e973429) )
2833 	ROM_LOAD( "epr-12304.ic69", 0x30000, 0x10000, CRC(e1762ac3) SHA1(855f06c082a17d90857e6efa3cf95b0eda0e634d) )
2834 	ROM_LOAD( "epr-12305.ic70", 0x40000, 0x10000, CRC(ba9ce677) SHA1(056781f92450c902e1d279a02bda28337815cba9) )
2835 	ROM_LOAD( "epr-12306.ic71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) )
2836 ROM_END
2837 
2838 
2839 ROM_START( toutrunj1d )
2840 	ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
2841 	ROM_LOAD16_BYTE( "bootleg_epr-12289.133", 0x000000, 0x10000, CRC(bcdb64ae) SHA1(731d232d0c705d0caf6c01c721f58c48c166d131) )
2842 	ROM_LOAD16_BYTE( "bootleg_epr-12288.118", 0x000001, 0x10000, CRC(58051f8d) SHA1(f2763359fb4f71b5dca05fe7291b1dc070361744) )
2843 	ROM_LOAD16_BYTE( "bootleg_epr-12291.132", 0x020000, 0x10000, CRC(0f00d22c) SHA1(6629508b228334dd3836f81bbb3a8dcb07343e95) )
2844 	ROM_LOAD16_BYTE( "bootleg_epr-12290.117", 0x020001, 0x10000, CRC(da4a77ac) SHA1(758e5ca9d66436bd64acc8297f46f23b37a982e1) )
2845 	ROM_LOAD16_BYTE( "epr-12293.ic131", 0x040000, 0x10000, CRC(f4321eea) SHA1(64334acc82c14bb58b7d51719f34fd81cfb9fc6b) )
2846 	ROM_LOAD16_BYTE( "epr-12292.ic116", 0x040001, 0x10000, CRC(51d98af0) SHA1(6e7115706bfafb687faa23d55d4a8c8e498a4df2) )
2847 
2848 	ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
2849 	ROM_LOAD16_BYTE( "epr-12295.ic76", 0x000000, 0x10000, CRC(d43a3a84) SHA1(362c98f62c205b6b40b7e8a4ba107745b547b984) )
2850 	ROM_LOAD16_BYTE( "epr-12294.ic58", 0x000001, 0x10000, CRC(27cdcfd3) SHA1(4fe57db95b109ab1bb1326789e06a3d3aac311cc) )
2851 	ROM_LOAD16_BYTE( "epr-12297.ic75", 0x020000, 0x10000, CRC(1d9b5677) SHA1(fb6e33acc43fbc7a8d7ac44045439ecdf794fdeb) )
2852 	ROM_LOAD16_BYTE( "epr-12296.ic57", 0x020001, 0x10000, CRC(0a513671) SHA1(4c13ca3a6f0aa9d06ed80798b466cca0c966a265) )
2853 
2854 	ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2855 	ROM_LOAD( "epr-12323.ic102", 0x00000, 0x10000, CRC(4de43a6f) SHA1(68909338e1f192ac2699c8a8d24c3f46502dd019) )
2856 	ROM_LOAD( "epr-12324.ic103", 0x10000, 0x10000, CRC(24607a55) SHA1(69033f2281cd42e88233c23d809b73607fe54853) )
2857 	ROM_LOAD( "epr-12325.ic104", 0x20000, 0x10000, CRC(1405137a) SHA1(367db88d36852e35c5e839f692be5ea8c8e072d2) )
2858 
2859 	ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
2860 	ROM_LOAD32_BYTE( "epr-12307.ic9",  0x00000, 0x10000, CRC(437dcf09) SHA1(0022ee4d1c3698f77271e570cef98a8a1e5c5d6a) )
2861 	ROM_LOAD32_BYTE( "epr-12308.ic10", 0x00001, 0x10000, CRC(0de70cc2) SHA1(c03f8f8cda72daf64af2878bf254840ac6dd17eb) )
2862 	ROM_LOAD32_BYTE( "epr-12309.ic11", 0x00002, 0x10000, CRC(deb8c242) SHA1(c05d8ced4eafae52c4795fb1471cd66f5903d1aa) )
2863 	ROM_LOAD32_BYTE( "epr-12310.ic12", 0x00003, 0x10000, CRC(45cf157e) SHA1(5d0be2a374a53ea1fe0ba2bf9b2173e96de1eb51) )
2864 	ROM_LOAD32_BYTE( "epr-12311.ic13", 0x40000, 0x10000, CRC(ae2bd639) SHA1(64bb60ae7e3f87fbbce00106ba65c4e6fc1af0e4) )
2865 	ROM_LOAD32_BYTE( "epr-12312.ic14", 0x40001, 0x10000, CRC(626000e7) SHA1(4a7f9e76dd76a3dc56b8257149bc94be3f4f2e87) )
2866 	ROM_LOAD32_BYTE( "epr-12313.ic15", 0x40002, 0x10000, CRC(52870c37) SHA1(3a6836a46d94c0f9115800d206410252a1134c57) )
2867 	ROM_LOAD32_BYTE( "epr-12314.ic16", 0x40003, 0x10000, CRC(40c461ea) SHA1(7bed8f24112dc3c827fd087138fcf2700092aa59) )
2868 	ROM_LOAD32_BYTE( "epr-12315.ic17", 0x80000, 0x10000, CRC(3ff9a3a3) SHA1(0d90fe2669d03bd07a0d3b05934201778e28d54c) )
2869 	ROM_LOAD32_BYTE( "epr-12316.ic18", 0x80001, 0x10000, CRC(8a1e6dc8) SHA1(32f09ec504c2b6772815bad7380a2f738f11746a) )
2870 	ROM_LOAD32_BYTE( "epr-12317.ic19", 0x80002, 0x10000, CRC(77e382d4) SHA1(5b7912069a46043b7be989d82436add85497d318) )
2871 	ROM_LOAD32_BYTE( "epr-12318.ic20", 0x80003, 0x10000, CRC(d1afdea9) SHA1(813eccc88d5046992be5b5a0618d32127d16e30b) )
2872 	ROM_LOAD32_BYTE( "epr-12319.ic21", 0xc0000, 0x10000, CRC(df23baf9) SHA1(f9611391bb3b3b92203fa9f6dd461e3a6e863622) )
2873 	ROM_LOAD32_BYTE( "epr-12320.ic22", 0xc0001, 0x10000, CRC(7931e446) SHA1(9f2161a689ebad61f6653942e23d9c2bc6170d4a) )
2874 	ROM_LOAD32_BYTE( "epr-12321.ic23", 0xc0002, 0x10000, CRC(830bacd4) SHA1(5a4816969437ee1edca5845006c0b8e9ba365491) )
2875 	ROM_LOAD32_BYTE( "epr-12322.ic24", 0xc0003, 0x10000, CRC(8b812492) SHA1(bf1f9e059c093c0991c7caf1b01c739ed54b8357) )
2876 
2877 	ROM_REGION( 0x10000, "segaic16road", 0 ) // road gfx (2 identical ROMs, 1 for each road)
2878 	ROM_LOAD( "epr-12298.ic47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Both are EPR-12298
2879 	ROM_LOAD( "epr-12298.ic28", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) )
2880 
2881 	ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2882 	ROM_LOAD( "epr-12300.ic88", 0x00000, 0x10000, CRC(e8ff7011) SHA1(6eaf3aea507007ea31d507ed7825d905f4b8e7ab) )
2883 
2884 	ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
2885 	ROM_LOAD( "epr-12301.ic66", 0x00000, 0x10000, CRC(6e78ad15) SHA1(c31ddf434b459cd1a381d2a028beabddd4ed10d2) )
2886 	ROM_LOAD( "epr-12302.ic67", 0x10000, 0x10000, CRC(e72928af) SHA1(40e0b178958cfe97c097fe9d82b5de54bc27a29f) )
2887 	ROM_LOAD( "epr-12303.ic68", 0x20000, 0x10000, CRC(8384205c) SHA1(c1f9d52bc587eab5a97867198e9aa7c19e973429) )
2888 	ROM_LOAD( "epr-12304.ic69", 0x30000, 0x10000, CRC(e1762ac3) SHA1(855f06c082a17d90857e6efa3cf95b0eda0e634d) )
2889 	ROM_LOAD( "epr-12305.ic70", 0x40000, 0x10000, CRC(ba9ce677) SHA1(056781f92450c902e1d279a02bda28337815cba9) )
2890 	ROM_LOAD( "epr-12306.ic71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) )
2891 ROM_END
2892 
2893 //**************************************************************************
2894 //  CONFIGURATION
2895 //**************************************************************************
2896 
2897 //-------------------------------------------------
2898 //  init_generic - common initialization
2899 //-------------------------------------------------
2900 
2901 void segaorun_state::init_generic()
2902 {
2903 	// allocate a scanline timer
2904 	m_scanline_timer = timer_alloc(TID_SCANLINE);
2905 
2906 	m_irq2_gen_timer = timer_alloc(TID_IRQ2_GEN);
2907 
2908 	// configure the NVRAM to point to our workram
2909 	if (m_nvram != nullptr)
2910 		m_nvram->set_base(m_workram, m_workram.bytes());
2911 
2912 	// save state
2913 	save_item(NAME(m_adc_select));
2914 	save_item(NAME(m_vblank_irq_state));
2915 	save_item(NAME(m_irq2_state));
2916 }
2917 
2918 
2919 //-------------------------------------------------
2920 //  init_* - game-specific initialization
2921 //-------------------------------------------------
2922 
init_outrun()2923 void segaorun_state::init_outrun()
2924 {
2925 	init_generic();
2926 	m_custom_io_r = read16m_delegate(*this, FUNC(segaorun_state::outrun_custom_io_r));
2927 	m_custom_io_w = write16s_delegate(*this, FUNC(segaorun_state::outrun_custom_io_w));
2928 }
2929 
init_outrunb()2930 void segaorun_state::init_outrunb()
2931 {
2932 	init_outrun();
2933 
2934 	// hard code a memory map
2935 	static const uint8_t memory_map[] = { 0x02,0x00,0x0d,0x10,0x00,0x12,0x0c,0x13,0x08,0x14,0x0f,0x20,0x00,0x00,0x00,0x00 };
2936 	m_custom_map = memory_map;
2937 
2938 	// main CPU: swap bits 11,12 and 6,7
2939 	uint16_t *word = (uint16_t *)memregion("maincpu")->base();
2940 	uint32_t length = memregion("maincpu")->bytes() / 2;
2941 	for (uint32_t i = 0; i < length; i++)
2942 		word[i] = bitswap<16>(word[i], 15,14,11,12,13,10,9,8,6,7,5,4,3,2,1,0);
2943 
2944 	// sub CPU: swap bits 14,15 and 2,3
2945 	word = (uint16_t *)memregion("subcpu")->base();
2946 	length = memregion("subcpu")->bytes() / 2;
2947 	for (uint32_t i = 0; i < length; i++)
2948 		word[i] = bitswap<16>(word[i], 14,15,13,12,11,10,9,8,7,6,5,4,2,3,1,0);
2949 
2950 	// road gfx
2951 	// ROM a-2.bin: swap bits 6,7
2952 	// ROM a-3.bin: swap bits 5,6
2953 	uint8_t *byte = memregion("segaic16road")->base();
2954 	length = memregion("segaic16road")->bytes() / 2;
2955 	for (uint32_t i = 0; i < length; i++)
2956 	{
2957 		byte[i]        = bitswap<8>(byte[i],        6,7,5,4,3,2,1,0);
2958 		byte[i+length] = bitswap<8>(byte[i+length], 7,5,6,4,3,2,1,0);
2959 	}
2960 
2961 	// Z80 code: swap bits 5,6
2962 	byte = memregion("soundcpu")->base();
2963 	length = memregion("soundcpu")->bytes();
2964 	for (uint32_t i = 0; i < length; i++)
2965 		byte[i] = bitswap<8>(byte[i], 7,5,6,4,3,2,1,0);
2966 }
2967 
init_shangon()2968 void segaorun_state::init_shangon()
2969 {
2970 	init_generic();
2971 	m_shangon_video = true;
2972 	m_custom_io_r = read16m_delegate(*this, FUNC(segaorun_state::shangon_custom_io_r));
2973 	m_custom_io_w = write16s_delegate(*this, FUNC(segaorun_state::shangon_custom_io_w));
2974 }
2975 
2976 
2977 
2978 //**************************************************************************
2979 //  GAME DRIVERS
2980 //**************************************************************************
2981 
2982 //    YEAR, NAME,     PARENT,  MACHINE,         INPUT,    INIT,                   MONITOR,COMPANY,FULLNAME,FLAGS,                                                  LAYOUT
2983 GAMEL(1986, outrun,    0,       outrun,          outrun,     segaorun_state, init_outrun,  ROT0,   "Sega",    "Out Run (sitdown/upright, Rev B)", 0,                        layout_outrun ) // Upright/Sitdown determined by dipswitch settings
2984 GAMEL(1986, outrunra,  outrun,  outrun,          outrun,     segaorun_state, init_outrun,  ROT0,   "Sega",    "Out Run (sitdown/upright, Rev A)", 0,                        layout_outrun ) // Upright/Sitdown determined by dipswitch settings
2985 GAMEL(1986, outrundx,  outrun,  outrun,          outrundx,   segaorun_state, init_outrun,  ROT0,   "Sega",    "Out Run (deluxe sitdown)", 0,                                layout_outrun )
2986 GAMEL(1986, outrundxj, outrun,  outrun_fd1089a,  outrundx,   segaorun_state, init_outrun,  ROT0,   "Sega",    "Out Run (Japan, deluxe sitdown) (FD1089A 317-0019)", 0,      layout_outrun ) // No Japanese text, different course order
2987 GAMEL(1986, outrundxa, outrun,  outrundx,        outrundx,   segaorun_state, init_outrun,  ROT0,   "Sega",    "Out Run (deluxe sitdown earlier version)", 0,                layout_outrun )
2988 GAMEL(1986, outrunb,   outrun,  outrun,          outrun,     segaorun_state, init_outrunb, ROT0,   "bootleg", "Out Run (bootleg)", 0,                                       layout_outrun )
2989 
2990 GAME( 1987, shangon,   0,       shangon,         shangon,    segaorun_state, init_shangon, ROT0,   "Sega",    "Super Hang-On (sitdown/upright) (unprotected)", 0 )
2991 GAME( 1987, shangon3,  shangon, shangon_fd1089b, shangon,    segaorun_state, init_shangon, ROT0,   "Sega",    "Super Hang-On (sitdown/upright) (FD1089B 317-0034)", 0 )
2992 GAME( 1987, shangon2,  shangon, shangon_fd1089b, shangon,    segaorun_state, init_shangon, ROT0,   "Sega",    "Super Hang-On (mini ride-on, Rev A) (FD1089B 317-0034)", 0 )
2993 GAME( 1987, shangon1,  shangon, shangon_fd1089b, shangon,    segaorun_state, init_shangon, ROT0,   "Sega",    "Super Hang-On (mini ride-on) (FD1089B 317-0034)", 0 )
2994 GAME( 1991, shangonle, shangon, shangon,         shangon,    segaorun_state, init_shangon, ROT0,   "Sega",    "Limited Edition Hang-On", 0 )
2995 
2996 GAMEL(1989, toutrun,   0,       outrun_fd1094,   toutrun,    segaorun_state, init_outrun,  ROT0,   "Sega",    "Turbo Out Run (Out Run upgrade) (FD1094 317-0118)", 0,        layout_outrun ) // Cabinet determined by dipswitch settings
2997 GAMEL(1989, toutrunj,  toutrun, outrun_fd1094,   toutrun,    segaorun_state, init_outrun,  ROT0,   "Sega",    "Turbo Out Run (Japan, Out Run upgrade) (FD1094 317-0117)", 0, layout_outrun ) // Cabinet determined by dipswitch settings
2998 GAMEL(1989, toutrun3,  toutrun, outrun_fd1094,   toutrunc,   segaorun_state, init_outrun,  ROT0,   "Sega",    "Turbo Out Run (cockpit) (FD1094 317-0107)", 0,                layout_outrun )
2999 GAMEL(1989, toutrun2,  toutrun, outrun_fd1094,   toutrunct,  segaorun_state, init_outrun,  ROT0,   "Sega",    "Turbo Out Run (cockpit) (FD1094 317-0106)", 0,                layout_outrun )
3000 GAMEL(1989, toutrun1,  toutrun, outrun_fd1094,   toutrunm,   segaorun_state, init_outrun,  ROT0,   "Sega",    "Turbo Out Run (deluxe cockpit) (FD1094 317-0109)", 0,         layout_outrun )
3001 GAMEL(1989, toutrunj1, toutrun, outrun_fd1094,   toutrunct,  segaorun_state, init_outrun,  ROT0,   "Sega",    "Turbo Out Run (Japan, cockpit) (FD1094 317-0101)", 0,         layout_outrun )
3002 
3003 // decrypted bootlegs
3004 GAMEL(1989, toutrund,  toutrun, outrun,          toutrun,    segaorun_state, init_outrun,  ROT0,   "bootleg",    "Turbo Out Run (Out Run upgrade) (bootleg of FD1094 317-0118 set)", 0,        layout_outrun ) // Cabinet determined by dipswitch settings
3005 GAMEL(1989, toutrunjd, toutrun, outrun,          toutrun,    segaorun_state, init_outrun,  ROT0,   "bootleg",    "Turbo Out Run (Japan, Out Run upgrade) (bootleg of FD1094 317-0117 set)", 0, layout_outrun ) // Cabinet determined by dipswitch settings
3006 GAMEL(1989, toutrun3d, toutrun, outrun,          toutrunc,   segaorun_state, init_outrun,  ROT0,   "bootleg",    "Turbo Out Run (cockpit) (bootleg of FD1094 317-0107 set)", 0,                layout_outrun )
3007 GAMEL(1989, toutrunj1d,toutrun, outrun,          toutrunct,  segaorun_state, init_outrun,  ROT0,   "bootleg",    "Turbo Out Run (Japan, cockpit) (bootleg of FD1094 317-0101 set)", 0,         layout_outrun )
3008 GAMEL(1989, toutrun2d, toutrun, outrun,          toutrunct,  segaorun_state, init_outrun,  ROT0,   "bootleg",    "Turbo Out Run (cockpit) (bootleg of FD1094 317-0106 set)", 0,                layout_outrun )
3009 
3010 
3011 GAME( 1987, shangon3d, shangon, shangon,         shangon,    segaorun_state, init_shangon, ROT0,   "bootleg",    "Super Hang-On (sitdown/upright) (bootleg of FD1089B 317-0034 set)", 0 )
3012 
3013 // aftermarket modifications, these fix various issues in the game, including making the attract mode work correctly when set to Free Play.
3014 // see http://reassembler.blogspot.co.uk/2011/08/outrun-enhanced-edition.html
3015 GAMEL(2013, outrundxeh,  outrun,  outrun,        outrundxeh, segaorun_state, init_outrun,  ROT0,   "hack (Chris White)",    "Out Run (deluxe sitdown) (Enhanced Edition v1.0.3)", 0,                                layout_outrun ) // Jan 2013
3016 GAMEL(2014, outruneh,    outrun,  outrun,        outruneh,   segaorun_state, init_outrun,  ROT0,   "hack (Chris White)",    "Out Run (sitdown/upright, Rev B) (Enhanced Edition v1.1.0)", 0,                        layout_outrun ) // Upright/Sitdown determined by dipswitch settings - July 2014
3017