Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
5320 lines (4329 sloc) 329 KB
// license:BSD-3-Clause
// copyright-holders:Aaron Giles
/***************************************************************************
Driver for Atari polygon racer games
This collection of games uses many CPUs and many boards in many
different combinations. There are 3 different main boards:
- the "driver" board (A045988) is the original Hard Drivin' PCB
- Hard Drivin'
- Race Drivin' Upgrade
- the "multisync" board (A046901)
- STUN Runner
- Steel Talons
- Hard Drivin' Compact
- Race Drivin' Compact
- Street Drivin'
- the "multisync II" board (A049852)
- Hard Drivin's Airborne
To first order, all of the above boards had the same basic features:
a 68010 @ 8MHz to drive the whole game
a TMS34010 @ 48MHz (GSP) to render the polygons and graphics
a TMS34012 @ 50MHz (PSP, labelled SCX6218UTP) to expand pixels
a TMS34010 @ 50MHz (MSP, optional) to handle in-game calculations
The original "driver" board had 1MB of VRAM. The "multisync" board
reduced that to 512k. The "multisync II" board went back to a full
MB again.
Stacked on top of the main board were two or more additional boards
that were accessible through an expansion bus. Each game had at least
an ADSP board and a sound board. Later games had additional boards for
extra horsepower or for communications between multiple players.
-----------------------------------------------------------------------
The ADSP board is usually the board stacked closest to the main board.
It also comes in four varieties, though these do not match
one-for-one with the main boards listed above. They are:
- the "ADSP" board (A044420)
- early Hard Drivin' revisions
- the "ADSP II" board (A047046)
- later Hard Drivin'
- STUN Runner
- Hard Drivin' Compact
- Race Drivin' Upgrade
- Race Drivin' Compact
- the "DS III" board (A049096)
- Steel Talons
- Street Drivin'
- the "DS IV" board (A051973)
- Hard Drivin's Airborne
These boards are the workhorses of the game. They contain a single
8MHz ADSP-2100 (ADSP and ADSP II) or 12MHz ADSP-2101 (DS III and DS IV)
chip that is responsible for all the polygon transformations, lighting,
and slope computations. Along with the DSP, there are several high-speed
serial-access ROMs and RAMs.
The "ADSP II" board is nearly identical to the original "ADSP" board
except that is has space for extra serial ROM data. The "DS III" is
an advanced design that contains space for a bunch of complex sound
circuitry that was not used on Steel Talons, but was used for the
prototype Street Drivin'. The "DS IV" looks to have the same board
layout as the "DS III", but the sound circuitry is actually populated.
-----------------------------------------------------------------------
Three sound boards were used:
- the "driver sound" board (A046491)
- Hard Drivin'
- Hard Drivin' Compact
- Race Drivin' Upgrade
- Race Drivin' Compact
- the "JSA II" board
- STUN Runner
- the "JSA IIIS" board
- Steel Talons
The "driver sound" board runs with a 68000 master and a TMS32010 slave
driving a DAC. The "JSA" boards are both standard Atari sound boards
with a 6502 driving a YM2151 and an OKI6295 ADPCM chip. Hard Drivin's
Airborne uses the "DS IV" board for its sound.
-----------------------------------------------------------------------
In addition, there were a number of supplemental boards that were
included with certain games:
- the "DSK" board (A047724)
- Race Drivin' Upgrade
- Race Drivin' Compact
- Street Drivin'
- the "DSPCOM" board (A049349)
- Steel Talons
- the "DSK II" board (A051028)
- Hard Drivin' Airborne
-----------------------------------------------------------------------
There are a total of 8 known games (plus variants) on this hardware:
Hard Drivin' Cockpit
- "driver" board (8MHz 68010, 2x50MHz TMS34010, 50MHz TMS34012)
- "ADSP" or "ADSP II" board (8MHz ADSP-2100)
- "driver sound" board (8MHz 68000, 20MHz TMS32010)
Hard Drivin' Compact
- "multisync" board (8MHz 68010, 2x50MHz TMS34010, 50MHz TMS34012)
- "ADSP II" board (8MHz ADSP-2100)
- "driver sound" board (8MHz 68000, 20MHz TMS32010)
S.T.U.N. Runner
- "multisync" board (8MHz 68010, 2x50MHz TMS34010, 50MHz TMS34012)
- "ADSP II" board (8MHz ADSP-2100)
- "JSA II" sound board (1.7MHz 6502, YM2151, OKI6295)
Race Drivin' Cockpit
- "driver" board (8MHz 68010, 50MHz TMS34010, 50MHz TMS34012)
- "ADSP" or "ADSP II" board (8MHz ADSP-2100)
- "DSK" board (40MHz DSP32C, 20MHz TMS32015)
- "driver sound" board (8MHz 68000, 20MHz TMS32010)
Race Drivin' Compact
- "multisync" board (8MHz 68010, 50MHz TMS34010, 50MHz TMS34012)
- "ADSP II" board (8MHz ADSP-2100)
- "DSK" board (40MHz DSP32C, 20MHz TMS32015)
- "driver sound" board (8MHz 68000, 20MHz TMS32010)
Steel Talons
- "multisync" board (8MHz 68010, 2x50MHz TMS34010, 50MHz TMS34012)
- "DS III" board (12MHz ADSP-2101)
- "JSA IIIS" sound board (1.7MHz 6502, YM2151, OKI6295)
- "DSPCOM" I/O board (10MHz ADSP-2105)
Street Drivin'
- "multisync" board (8MHz 68010, 50MHz TMS34010, 50MHz TMS34012)
- "DS III" board (12MHz ADSP-2101, plus 10MHz ADSP-2105 for sound)
- "DSK" board (40MHz DSP32C, 20MHz TMS32015)
Hard Drivin's Airborne (prototype)
- "multisync ii" main board (8MHz 68010, 50MHz TMS34010, 50MHz TMS34012)
- "DS IV" board (12MHz ADSP-2101, plus 2x10MHz ADSP-2105s for sound)
- "DSK II" board (40MHz DSP32C, 20MHz TMS32015)
BMX Heat (prototype)
- unknown boards ???
Police Trainer (prototype)
- unknown boards ???
Metal Maniax (prototype)
- reworked hardware that is similar but not of the same layout
TODO:
- Fix serial communications between the two DS III/IV sound ADSPs
(The auxillary DSP is used to process the output of the sound DSP)
****************************************************************************
Race Drivin' Compact
Atari, 1990
PCB Layouts
-----------
Driver Sound
A046491
|------------------------------------------------------------------------------------------------------|
| |---------------------| J3 |
| |---------------------| SOCKET SOCKET |
| |
| SOCKET SOCKET |
| 6116 |
| |-----| SOCKET 136052-1126.30A
| | | 6116 |
| | | 136077-1033.45N CY7C168 136077-1017.45C 136052-3125.45A
| | 6 | |
| | 8 | 6264 CY7C168 SOCKET 136052-1124.55A
| 16MHz | 0 | |---| |
| | 0 | 136077-1032-70N CY7C168 |TMS| SOCKET 136052-1123.65A
| LED | 0 | | | |
| | | 6264 CY7C168 |320|
| | | |C10| |
| | | LED 20MHz| | |
| |-----| | | 95C 95A |
| |---| GAL16V8 GAL16V8 |
| (136052-1140) (136052-1139)|
| |
| |
| LED |
| J2 J5 TL084 TL084 TL084 |
|------------------------------------------------------------------------------------------------------|
Notes:
68000 clock input - 8.000MHz [16/2]
DSK
A047724-01
|-----------------------------------------------|
| (SLAPSTICK?) |---------------------| |
| DIP20_SOCKET |---------------------| |
| LED|
| 40B 60B |
| GAL20V8A GAL20V8A |
| 136077-1025 136077-1026 |
|MK48Z02B.10C MK48Z02B.30C |
| |
| |
|62256 62256 62256 |
| |
| |
|136078-1031.10E |-----------| 62256 |
| 136078-1030.30E| | |
| |137661-100 | |
|SOCKET SOCKET | | 62256 |
| | | |
| |-------| | | |
| |137665-| |-----------| 62256 |
| |1020 | |
| |LC9040 | 40MHz |
| |-------| |
| LED 20MHz |
|-----------------------------------------------|
ADSP II
A047046-01
|------------------------------------------------------------------------------------------------------|
| |---------------------| |
|CY7C168 CY7C168 |---------------------| CY7C168 6264 6264 |
| |
|CY7C168 CY7C168 LED CY7C168 |
| |
|CY7C168 CY7C168 CY7C168 |
| |
| CY7C168 |
| 32MHz |
|CY7C168 CY7C168 |-------| CY7C168 |
| | ADSP | |
|CY7C168 CY7C168 | 2100 | CY7C168 |
| | | |
|CY7C168 CY7C168 |-------| CY7C168 |
| |
| CY7C168 |
|136077-2022.10H 6264 6264 |
| 136077-2021.9/10H |
| SOCKET |
|136077-2024.10K |
| 136077-2023.9/10K |
| SOCKET |
| LED LED |
|------------------------------------------------------------------------------------------------------|
MULTISYNC
A046901
|------------------------------------------------------------------------------------------------------|
| |---------------------| 136078-4001.210R 136078-4009.210V |
| |---------------------| 136078-4003.210S 136078-1011.210W |
| 136078-4005.210T 136078-1013.210X |
| 68681 6264 6264 MK48Z02B.210E 136078-4007.210U 136078-4015.210Y |
| 3.6864MHz (SLAPSTICK) |
| (DIP20) 136078-4002.200R 136078-4010.200V |
|J2 137412-117 136078-4004.200S 136078-1012.200W |
| 6264 6264 MK48T02B.200E 136078-4006.200T 136078-1014.200X |
| 136078-4008.200U 136078-4016.200Y |
|J3 |
| 136068-1168.195U |
| (82S123 PROM) |
| |----------------------------| J13 |
| | | |
|J6 | 68010 | |
| | | |
| |----------------------------| |
| |-------| 32MHZ |
|J5 32MHz |TMS | |
| 48MHz |34010 | |
| | | LED |
| |-------| |
| |
| |
|J4 DSW(8) |-------| |
| |SCX | |
| LED LED |6218UTP| |
| | | |
| |-------| |-------| |
|J15 | | |
| | | |
| J12 LED | | 42C4064 42C4064 42C4064 42C4064 |
| |-------| |
|J14 (EMPTY PLCC68 SOCKET) 42C4064 42C4064 42C4064 42C4064 |
| |
| 42C4064 42C4064 42C4064 42C4064 |
| ADC0809 |--EMPTY_SOCKETS--| |
|J9 DIP20 DIP20 42C4064 42C4064 42C4064 42C4064 |
| J1 |
| DIP20 DIP20 CY2149 CY2149 CY2149 |
| LED |
| DIP20 DIP20 CY2149 CY2149 CY2149 |
|J8 LED LED |
| LED LED DIP20 DIP20 J10 |
|------------------------------------------------------------------------------------------------------|
Notes:
68010 clock input - 8.000MHz [32/4]
34010 clock input - 48.000MHz
****************************************************************************/
#include "emu.h"
#include "includes/harddriv.h"
#include "includes/slapstic.h"
#include "machine/timer.h"
#include "machine/watchdog.h"
#include "sound/volt_reg.h"
#include "speaker.h"
#include "racedrivpan.lh"
/*************************************
*
* Driver board memory maps
*
*************************************/
harddriv_state::harddriv_state(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, type, tag, owner, clock),
/* device_video_interface(mconfig, *this, false), */
m_maincpu(*this, "maincpu"),
m_gsp(*this, "gsp"),
m_msp(*this, "msp"),
m_adsp(*this, "adsp"),
m_jsacpu(*this, "jsacpu"),
m_dsp32(*this, "dsp32"),
m_ds3sdsp(*this, "ds3sdsp"),
m_ds3xdsp(*this, "ds3xdsp"),
m_ds3sdsp_region(*this, "ds3sdsp"),
m_ds3xdsp_region(*this, "ds3xdsp"),
m_ldac(*this, "ldac"),
m_rdac(*this, "rdac"),
m_harddriv_sound(*this, "harddriv_sound"),
m_jsa(*this, "jsa"),
m_screen(*this, "screen"),
m_duartn68681(*this, "duartn68681"),
m_adc8(*this, "adc8"),
m_lamps(*this, "lamp%u", 1U),
m_hd34010_host_access(0),
m_msp_ram(*this, "msp_ram"),
m_dsk_ram(nullptr),
m_dsk_rom(nullptr),
m_dsk_10c(*this, "dsk_10c"),
m_dsk_30c(*this, "dsk_30c"),
m_dsk_pio_access(0),
m_m68k_slapstic_base(nullptr),
m_m68k_sloop_alt_base(nullptr),
m_200e(*this, "200e"),
m_210e(*this, "210e"),
m_adsp_data_memory(*this, "adsp_data"),
m_adsp_pgm_memory(*this, "adsp_pgm_memory"),
m_ds3sdsp_data_memory(*this, "ds3sdsp_data"),
m_ds3sdsp_pgm_memory(*this, "ds3sdsp_pgm"),
m_ds3xdsp_pgm_memory(*this, "ds3xdsp_pgm"),
m_dsp32_ram(*this, "dsp32_ram"),
m_gsp_protection(nullptr),
m_gsp_speedup_pc(0),
m_msp_speedup_addr(nullptr),
m_msp_speedup_pc(0),
m_ds3_speedup_addr(nullptr),
m_ds3_speedup_pc(0),
m_ds3_transfer_pc(0),
m_gsp_multisync(0),
m_gsp_vram(*this, "gsp_vram", 16),
m_gsp_control_lo(*this, "gsp_control_lo"),
m_gsp_control_hi(*this, "gsp_control_hi"),
m_gsp_paletteram_lo(*this, "gsp_palram_lo"),
m_gsp_paletteram_hi(*this, "gsp_palram_hi"),
m_in0(*this, "IN0"),
m_sw1(*this, "SW1"),
m_a80000(*this, "a80000"),
m_12badc(*this, "12BADC.%u", 0),
m_irq_state(0),
m_gsp_irq_state(0),
m_msp_irq_state(0),
m_adsp_irq_state(0),
m_ds3sdsp_irq_state(0),
m_duart_irq_state(0),
m_last_gsp_shiftreg(0),
m_m68k_zp1(0),
m_m68k_zp2(0),
m_m68k_adsp_buffer_bank(0),
m_adsp_halt(0),
m_adsp_br(0),
m_adsp_xflag(0),
m_adsp_sim_address(0),
m_adsp_som_address(0),
m_adsp_eprom_base(0),
m_sim_memory(*this, "user1"),
m_adsp_pgm_memory_word(nullptr),
m_ds3_sdata_memory(nullptr),
m_ds3_sdata_memory_size(0),
m_ds3_gcmd(0),
m_ds3_gflag(0),
m_ds3_g68irqs(0),
m_ds3_gfirqs(0),
m_ds3_g68flag(0),
m_ds3_send(0),
m_ds3_reset(0),
m_ds3_gdata(0),
m_ds3_g68data(0),
m_ds3_sim_address(0),
m_ds3_scmd(0),
m_ds3_sflag(0),
m_ds3_s68irqs(0),
m_ds3_sfirqs(0),
m_ds3_s68flag(0),
m_ds3_sreset(0),
m_ds3_sdata(0),
m_ds3_s68data(0),
m_ds3_sdata_address(0),
m_ds3sdsp_timer_en(0),
m_ds3sdsp_sdata(0),
m_ds3sdsp_internal_timer(*this, "ds3sdsp_timer"),
m_ds3xdsp_timer_en(0),
m_ds3xdsp_sdata(0),
m_ds3xdsp_internal_timer(*this, "ds3xdsp_timer"),
m_adc_control(0),
m_adc12_select(0),
m_adc12_byte(0),
m_adc12_data(0),
m_hdc68k_last_wheel(0),
m_hdc68k_last_port1(0),
m_hdc68k_wheel_edge(0),
m_hdc68k_shifter_state(0),
m_st68k_sloop_bank(0),
m_st68k_last_alt_sloop_offset(0),
m_next_msp_sync(0),
m_vram_mask(0),
m_shiftreg_enable(0),
m_gsp_shiftreg_source(nullptr),
m_gfx_finescroll(0),
m_gfx_palettebank(0),
m_duart(*this, "duartn68681"),
m_asic65(*this, "asic65"),
m_sound_int_state(0),
m_video_int_state(0),
m_palette(*this, "palette"),
m_slapstic_device(*this, "slapstic"),
m_rs232(*this, "rs232")
{
int i;
for (i = 0; i < 2; i++)
{
m_gsp_speedup_addr[i] = nullptr;
m_rddsp32_sync[i] = nullptr;
}
for (i = 0; i < 4; i++)
{
m_gsp_speedup_count[i] = 0;
m_msp_speedup_count[i] = 0;
m_adsp_speedup_count[i] = 0;
}
for (i = 0; i < 32; i++)
{
m_ds3sdsp_regs[i] = 0;
m_ds3xdsp_regs[i] = 0;
}
for (i = 0; i < 0x8000 / 2; i++)
{
m_som_memory[i] = 0;
}
for (i = 0; i < MAX_MSP_SYNC; i++)
{
m_dataptr[i] = nullptr;
m_dataval[i] = 0;
}
for (i = 0; i < 65536 * 4; i++)
{
m_mask_table[i] = 0;
}
}
class harddriv_new_state : public driver_device
{
public:
harddriv_new_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_mainpcb(*this, "mainpcb")
, m_leftpcb(*this, "leftpcb")
, m_rightpcb(*this, "rightpcb")
{ }
void steeltal1_machine(machine_config &config);
void harddriv_machine(machine_config &config);
void hdrivairp_machine(machine_config &config);
void harddrivc_machine(machine_config &config);
void racedrivb1_machine(machine_config &config);
void racedrivc1_machine(machine_config &config);
void steeltal_machine(machine_config &config);
void racedriv_panorama_machine(machine_config &config);
void hdrivair_machine(machine_config &config);
void racedriv_machine(machine_config &config);
void strtdriv_machine(machine_config &config);
void steeltalp_machine(machine_config &config);
void racedrivc_machine(machine_config &config);
void stunrun_machine(machine_config &config);
private:
TIMER_DEVICE_CALLBACK_MEMBER(hack_timer);
DECLARE_WRITE_LINE_MEMBER(tx_a);
required_device<harddriv_state> m_mainpcb;
optional_device<harddriv_state> m_leftpcb;
optional_device<harddriv_state> m_rightpcb;
};
void harddriv_state::driver_68k_map(address_map &map)
{
map.unmap_value_high();
map(0x000000, 0x0fffff).rom();
map(0x600000, 0x603fff).r(FUNC(harddriv_state::hd68k_port0_r));
map(0x604000, 0x607fff).w(FUNC(harddriv_state::hd68k_nwr_w));
map(0x608000, 0x60bfff).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
map(0x60c000, 0x60ffff).w(FUNC(harddriv_state::hd68k_irq_ack_w));
map(0xa00000, 0xa7ffff).w(FUNC(harddriv_state::hd68k_wr0_write));
map(0xa80000, 0xafffff).r(FUNC(harddriv_state::hd68k_a80000_r)).w(FUNC(harddriv_state::hd68k_wr1_write));
map(0xb00001, 0xb00001).mirror(0x7fffe).r("adc8", FUNC(adc0808_device::data_r));
map(0xb00000, 0xb7ffff).w(FUNC(harddriv_state::hd68k_wr2_write));
map(0xb80000, 0xbfffff).rw(FUNC(harddriv_state::hd68k_adc12_r), FUNC(harddriv_state::hd68k_adc_control_w));
map(0xc00000, 0xc03fff).rw(FUNC(harddriv_state::hd68k_gsp_io_r), FUNC(harddriv_state::hd68k_gsp_io_w));
map(0xc04000, 0xc07fff).rw(FUNC(harddriv_state::hd68k_msp_io_r), FUNC(harddriv_state::hd68k_msp_io_w));
map(0xff0000, 0xff001f).rw("duartn68681", FUNC(mc68681_device::read), FUNC(mc68681_device::write)).umask16(0xff00);
map(0xff4000, 0xff4fff).rw(FUNC(harddriv_state::hd68k_zram_r), FUNC(harddriv_state::hd68k_zram_w));
map(0xff8000, 0xffffff).ram();
}
void harddriv_state::driver_gsp_map(address_map &map)
{
map.unmap_value_high();
map(0x00000000, 0x0000200f).noprw(); /* hit during self-test */
map(0x02000000, 0x0207ffff).rw(FUNC(harddriv_state::hdgsp_vram_2bpp_r), FUNC(harddriv_state::hdgsp_vram_1bpp_w));
map(0xf4000000, 0xf40000ff).rw(FUNC(harddriv_state::hdgsp_control_lo_r), FUNC(harddriv_state::hdgsp_control_lo_w)).share("gsp_control_lo");
map(0xf4800000, 0xf48000ff).rw(FUNC(harddriv_state::hdgsp_control_hi_r), FUNC(harddriv_state::hdgsp_control_hi_w)).share("gsp_control_hi");
map(0xf5000000, 0xf5000fff).rw(FUNC(harddriv_state::hdgsp_paletteram_lo_r), FUNC(harddriv_state::hdgsp_paletteram_lo_w)).share("gsp_palram_lo");
map(0xf5800000, 0xf5800fff).rw(FUNC(harddriv_state::hdgsp_paletteram_hi_r), FUNC(harddriv_state::hdgsp_paletteram_hi_w)).share("gsp_palram_hi");
map(0xff800000, 0xffffffff).ram().share("gsp_vram");
}
void harddriv_state::driver_msp_map(address_map &map)
{
map.unmap_value_high();
map(0x00000000, 0x000fffff).ram().share("msp_ram");
map(0x00700000, 0x007fffff).ram().share("msp_ram");
map(0xfff00000, 0xffffffff).ram().share("msp_ram");
}
/*************************************
*
* Multisync board memory maps
*
*************************************/
void harddriv_state::multisync_68k_map(address_map &map)
{
map.unmap_value_high();
map(0x000000, 0x0fffff).rom();
map(0x604000, 0x607fff).rw(FUNC(harddriv_state::hd68k_sound_reset_r), FUNC(harddriv_state::hd68k_nwr_w));
map(0x608000, 0x60bfff).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
map(0x60c000, 0x60ffff).rw(FUNC(harddriv_state::hd68k_port0_r), FUNC(harddriv_state::hd68k_irq_ack_w));
map(0xa00000, 0xa7ffff).w(FUNC(harddriv_state::hd68k_wr0_write));
map(0xa80000, 0xafffff).r(FUNC(harddriv_state::hd68k_a80000_r)).w(FUNC(harddriv_state::hd68k_wr1_write));
map(0xb00001, 0xb00001).mirror(0x7fffe).r("adc8", FUNC(adc0808_device::data_r));
map(0xb00000, 0xb7ffff).w(FUNC(harddriv_state::hd68k_wr2_write));
map(0xb80000, 0xbfffff).rw(FUNC(harddriv_state::hd68k_adc12_r), FUNC(harddriv_state::hd68k_adc_control_w));
map(0xc00000, 0xc03fff).rw(FUNC(harddriv_state::hd68k_gsp_io_r), FUNC(harddriv_state::hd68k_gsp_io_w));
map(0xc04000, 0xc07fff).rw(FUNC(harddriv_state::hd68k_msp_io_r), FUNC(harddriv_state::hd68k_msp_io_w));
map(0xff0000, 0xff001f).rw("duartn68681", FUNC(mc68681_device::read), FUNC(mc68681_device::write)).umask16(0xff00);
map(0xff4000, 0xff4fff).rw(FUNC(harddriv_state::hd68k_zram_r), FUNC(harddriv_state::hd68k_zram_w));
map(0xff8000, 0xffffff).ram();
}
void harddriv_state::multisync_gsp_map(address_map &map)
{
map.unmap_value_high();
map(0x00000000, 0x0000200f).noprw(); /* hit during self-test */
map(0x02000000, 0x020fffff).rw(FUNC(harddriv_state::hdgsp_vram_2bpp_r), FUNC(harddriv_state::hdgsp_vram_2bpp_w));
map(0xf4000000, 0xf40000ff).rw(FUNC(harddriv_state::hdgsp_control_lo_r), FUNC(harddriv_state::hdgsp_control_lo_w)).share("gsp_control_lo");
map(0xf4800000, 0xf48000ff).rw(FUNC(harddriv_state::hdgsp_control_hi_r), FUNC(harddriv_state::hdgsp_control_hi_w)).share("gsp_control_hi");
map(0xf5000000, 0xf5000fff).rw(FUNC(harddriv_state::hdgsp_paletteram_lo_r), FUNC(harddriv_state::hdgsp_paletteram_lo_w)).share("gsp_palram_lo");
map(0xf5800000, 0xf5800fff).rw(FUNC(harddriv_state::hdgsp_paletteram_hi_r), FUNC(harddriv_state::hdgsp_paletteram_hi_w)).share("gsp_palram_hi");
map(0xff800000, 0xffbfffff).mirror(0x0400000).ram().share("gsp_vram");
}
/*************************************
*
* Multisync II board memory maps
*
*************************************/
void harddriv_state::multisync2_68k_map(address_map &map)
{
map.unmap_value_high();
map(0x000000, 0x1fffff).rom();
map(0x604000, 0x607fff).w(FUNC(harddriv_state::hd68k_nwr_w));
map(0x608000, 0x60bfff).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
map(0x60c000, 0x60ffff).rw(FUNC(harddriv_state::hd68k_port0_r), FUNC(harddriv_state::hd68k_irq_ack_w));
map(0xa00000, 0xa7ffff).w(FUNC(harddriv_state::hd68k_wr0_write));
map(0xa80000, 0xafffff).r(FUNC(harddriv_state::hd68k_a80000_r)).w(FUNC(harddriv_state::hd68k_wr1_write));
map(0xb00001, 0xb00001).mirror(0x7fffe).r("adc8", FUNC(adc0808_device::data_r));
map(0xb00000, 0xb7ffff).w(FUNC(harddriv_state::hd68k_wr2_write));
map(0xb80000, 0xbfffff).rw(FUNC(harddriv_state::hd68k_adc12_r), FUNC(harddriv_state::hd68k_adc_control_w));
map(0xc00000, 0xc03fff).rw(FUNC(harddriv_state::hd68k_gsp_io_r), FUNC(harddriv_state::hd68k_gsp_io_w));
map(0xc04000, 0xc07fff).rw(FUNC(harddriv_state::hd68k_msp_io_r), FUNC(harddriv_state::hd68k_msp_io_w));
map(0xfc0000, 0xfc001f).rw("duartn68681", FUNC(mc68681_device::read), FUNC(mc68681_device::write)).umask16(0xff00);
map(0xfd0000, 0xfd0fff).mirror(0x004000).rw(FUNC(harddriv_state::hd68k_zram_r), FUNC(harddriv_state::hd68k_zram_w));
map(0xff0000, 0xffffff).ram();
}
/* GSP is identical to original multisync */
void harddriv_state::multisync2_gsp_map(address_map &map)
{
map.unmap_value_high();
map(0x00000000, 0x0000200f).noprw(); /* hit during self-test */
map(0x02000000, 0x020fffff).rw(FUNC(harddriv_state::hdgsp_vram_2bpp_r), FUNC(harddriv_state::hdgsp_vram_2bpp_w));
map(0xf4000000, 0xf40000ff).rw(FUNC(harddriv_state::hdgsp_control_lo_r), FUNC(harddriv_state::hdgsp_control_lo_w)).share("gsp_control_lo");
map(0xf4800000, 0xf48000ff).rw(FUNC(harddriv_state::hdgsp_control_hi_r), FUNC(harddriv_state::hdgsp_control_hi_w)).share("gsp_control_hi");
map(0xf5000000, 0xf5000fff).rw(FUNC(harddriv_state::hdgsp_paletteram_lo_r), FUNC(harddriv_state::hdgsp_paletteram_lo_w)).share("gsp_palram_lo");
map(0xf5800000, 0xf5800fff).rw(FUNC(harddriv_state::hdgsp_paletteram_hi_r), FUNC(harddriv_state::hdgsp_paletteram_hi_w)).share("gsp_palram_hi");
map(0xff800000, 0xffffffff).ram().share("gsp_vram");
}
/*************************************
*
* ADSP/ADSP II board memory maps
*
*************************************/
void harddriv_state::adsp_program_map(address_map &map)
{
map.unmap_value_high();
map(0x0000, 0x1fff).ram().share("adsp_pgm_memory");
map(0x2000, 0x3fff).nopr(); // ROM?
}
void harddriv_state::adsp_data_map(address_map &map)
{
map.unmap_value_high();
map(0x0000, 0x1fff).ram().share("adsp_data");
map(0x2000, 0x2fff).rw(FUNC(harddriv_state::hdadsp_special_r), FUNC(harddriv_state::hdadsp_special_w));
}
/*************************************
*
* DS III/IV board memory maps
*
*************************************/
void harddriv_state::ds3_program_map(address_map &map)
{
map.unmap_value_high();
map(0x0000, 0x3fff).ram().share("adsp_pgm_memory");
}
void harddriv_state::ds3_data_map(address_map &map)
{
map.unmap_value_high();
map(0x0000, 0x1fff).ram().share("adsp_data");
map(0x2000, 0x3fff).rw(FUNC(harddriv_state::hdds3_special_r), FUNC(harddriv_state::hdds3_special_w));
map(0x3800, 0x3bff).ram(); /* internal RAM */
map(0x3fe0, 0x3fff).rw(FUNC(harddriv_state::hdds3_control_r), FUNC(harddriv_state::hdds3_control_w)); /* adsp control regs */
}
void harddriv_state::ds3sdsp_program_map(address_map &map)
{
map.unmap_value_high();
map(0x0000, 0x3fff).ram().share("ds3sdsp_pgm");
}
void harddriv_state::ds3sdsp_data_map(address_map &map)
{
map.unmap_value_high();
map(0x2000, 0x3fff).rw(FUNC(harddriv_state::hdds3_sdsp_special_r), FUNC(harddriv_state::hdds3_sdsp_special_w));
map(0x3800, 0x39ff).ram(); /* internal RAM */
map(0x3fe0, 0x3fff).rw(FUNC(harddriv_state::hdds3_sdsp_control_r), FUNC(harddriv_state::hdds3_sdsp_control_w));
}
void harddriv_state::ds3xdsp_program_map(address_map &map)
{
map.unmap_value_high();
map(0x0000, 0x3fff).ram().share("ds3xdsp_pgm");
}
void harddriv_state::ds3xdsp_data_map(address_map &map)
{
map.unmap_value_high();
map(0x0000, 0x1fff).ram(); // TODO
map(0x3800, 0x39ff).ram(); /* internal RAM */
map(0x3fe0, 0x3fff).rw(FUNC(harddriv_state::hdds3_xdsp_control_r), FUNC(harddriv_state::hdds3_xdsp_control_w));
}
/*************************************
*
* DSK board memory maps
*
*************************************/
void harddriv_state::dsk_dsp32_map(address_map &map)
{
map.unmap_value_high();
map(0x000000, 0x001fff).ram();
map(0x600000, 0x63ffff).ram().share("dsp32_ram");
map(0xfff800, 0xffffff).ram();
}
/*************************************
*
* DSK II board memory maps
*
*************************************/
void harddriv_state::dsk2_dsp32_map(address_map &map)
{
map.unmap_value_high();
map(0x000000, 0x001fff).ram();
map(0x200000, 0x23ffff).ram();
map(0x400000, 0x5fffff).rom().region("user4", 0);
map(0xfff800, 0xffffff).ram();
}
/*************************************
*
* Port definitions
*
*************************************/
static INPUT_PORTS_START( harddriv )
PORT_START("mainpcb:IN0") /* 600000 */
PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_CUSTOM ) /* HBLANK */
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("mainpcb:screen")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) /* 12-bit EOC */
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("mainpcb:adc8", adc0808_device, eoc_r)
PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_START("mainpcb:SW1") /* 600002 */
PORT_DIPNAME( 0x01, 0x01, "SW1:8" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, "SW1:7" )
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, "SW1:6" )
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, "SW1:5" )
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, "SW1:4" )
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x20, "SW1:3" )
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, "SW1:2" )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, "SW1:1" )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("mainpcb:a80000")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Abort") /* abort */
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Key") /* key */
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) /* aux coin */
PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.0") /* b00000 - 8 bit ADC 0 - gas pedal */
PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal")
PORT_START("mainpcb:8BADC.1") /* b00000 - 8 bit ADC 1 - clutch pedal */
PORT_BIT( 0xff, 0x00, IPT_PEDAL3 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(100) PORT_NAME("Clutch Pedal")
PORT_START("mainpcb:8BADC.2") /* b00000 - 8 bit ADC 2 - seat */
PORT_BIT( 0xff, 0x80, IPT_CUSTOM )
PORT_START("mainpcb:8BADC.3") /* b00000 - 8 bit ADC 3 - shifter lever Y */
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(128) PORT_CODE_DEC(KEYCODE_R) PORT_CODE_INC(KEYCODE_F) PORT_NAME("Shifter Lever Y")
PORT_START("mainpcb:8BADC.4") /* b00000 - 8 bit ADC 4 - shifter lever X*/
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(128) PORT_CODE_DEC(KEYCODE_D) PORT_CODE_INC(KEYCODE_G) PORT_NAME("Shifter Lever X")
PORT_START("mainpcb:8BADC.5") /* b00000 - 8 bit ADC 5 - wheel */
PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Wheel")
PORT_START("mainpcb:8BADC.6") /* b00000 - 8 bit ADC 6 - line volts */
PORT_BIT( 0xff, 0x80, IPT_CUSTOM )
PORT_START("mainpcb:8BADC.7") /* b00000 - 8 bit ADC 7 - shift force */
PORT_BIT( 0xff, 0x80, IPT_CUSTOM )
PORT_START("mainpcb:12BADC.0") /* b80000 - 12 bit ADC 0 - steering wheel */
PORT_BIT( 0xfff, 0x800, IPT_PADDLE ) PORT_MINMAX(0x010,0xff0) PORT_SENSITIVITY(400) PORT_KEYDELTA(5) PORT_NAME("Steering Wheel")
PORT_START("mainpcb:12BADC.1") /* b80000 - 12 bit ADC 1 - force brake */
PORT_BIT( 0xfff, 0x000, IPT_PEDAL2 ) PORT_SENSITIVITY(400) PORT_KEYDELTA(100) PORT_REVERSE PORT_NAME("Brake Pedal")
PORT_START("mainpcb:12BADC.2") /* b80000 - 12 bit ADC 2 */
PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:12BADC.3") /* b80000 - 12 bit ADC 3 */
PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
static INPUT_PORTS_START( racedriv )
PORT_START("mainpcb:IN0") /* 600000 */
PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_CUSTOM ) /* HBLANK */
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("mainpcb:screen")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) /* 12-bit EOC */
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("mainpcb:adc8", adc0808_device, eoc_r)
PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_START("mainpcb:SW1") /* 600002 */
PORT_DIPNAME( 0x01, 0x01, "SW1:8" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, "SW1:7" )
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, "SW1:6" )
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, "SW1:5" )
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, "SW1:4" )
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x20, "SW1:3" )
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, "SW1:2" )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, "SW1:1" )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("mainpcb:a80000")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Abort") /* abort */
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Key") /* key */
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) /* aux coin */
PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.0") /* b00000 - 8 bit ADC 0 - gas pedal */
PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal")
PORT_START("mainpcb:8BADC.1") /* b00000 - 8 bit ADC 1 - clutch pedal */
PORT_BIT( 0xff, 0x00, IPT_PEDAL3 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(100) PORT_NAME("Clutch Pedal")
PORT_START("mainpcb:8BADC.2") /* b00000 - 8 bit ADC 2 - seat */
PORT_BIT( 0xff, 0x80, IPT_CUSTOM )
PORT_START("mainpcb:8BADC.3") /* b00000 - 8 bit ADC 3 - shifter lever Y */
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(128) PORT_CODE_DEC(KEYCODE_R) PORT_CODE_INC(KEYCODE_F) PORT_NAME("Shifter Lever Y")
PORT_START("mainpcb:8BADC.4") /* b00000 - 8 bit ADC 4 - shifter lever X*/
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(128) PORT_CODE_DEC(KEYCODE_D) PORT_CODE_INC(KEYCODE_G) PORT_NAME("Shifter Lever X")
PORT_START("mainpcb:8BADC.5") /* b00000 - 8 bit ADC 5 - wheel */
PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Wheel")
PORT_START("mainpcb:8BADC.6") /* b00000 - 8 bit ADC 6 - line volts */
PORT_BIT( 0xff, 0x80, IPT_CUSTOM )
PORT_START("mainpcb:8BADC.7") /* b00000 - 8 bit ADC 7 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:12BADC.0") /* b80000 - 12 bit ADC 0 - steering wheel */
PORT_BIT( 0xfff, 0x800, IPT_PADDLE ) PORT_MINMAX(0x010,0xff0) PORT_SENSITIVITY(400) PORT_KEYDELTA(5) PORT_NAME("Steering Wheel")
PORT_START("mainpcb:12BADC.1") /* b80000 - 12 bit ADC 1 - force brake */
PORT_BIT( 0xfff, 0x000, IPT_PEDAL2 ) PORT_SENSITIVITY(400) PORT_KEYDELTA(100) PORT_REVERSE PORT_NAME("Brake Pedal")
PORT_START("mainpcb:12BADC.2") /* b80000 - 12 bit ADC 2 */
PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:12BADC.3") /* b80000 - 12 bit ADC 3 */
PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
static INPUT_PORTS_START( racedriv_pan )
PORT_INCLUDE( racedriv )
PORT_START("leftpcb:IN0") /* 600000 */
PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper (Left)" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_CUSTOM ) /* HBLANK */
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("leftpcb:screen")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) /* 12-bit EOC */
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("leftpcb:adc8", adc0808_device, eoc_r)
PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_START("rightpcb:IN0") /* 600000 */
PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper (Right)" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_CUSTOM ) /* HBLANK */
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("rightpcb:screen")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) /* 12-bit EOC */
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("rightpcb:adc8", adc0808_device, eoc_r)
PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
#if 1 // needed to navigate sub-screen test menus
PORT_START("leftpcb:a80000")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Abort") /* abort */
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Key") /* key */
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) /* aux coin */
PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("rightpcb:a80000")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Abort") /* abort */
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Key") /* key */
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) /* aux coin */
PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED )
#endif
INPUT_PORTS_END
static INPUT_PORTS_START( racedrivc )
PORT_START("mainpcb:IN0") /* 60c000 */
PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_CUSTOM ) /* HBLANK */
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("mainpcb:screen")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) /* 12-bit EOC */
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("mainpcb:adc8", adc0808_device, eoc_r)
PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_START("mainpcb:SW1") /* 60c002 */
PORT_DIPNAME( 0x01, 0x01, "SW1:8" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, "SW1:7" )
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, "SW1:6" )
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, "SW1:5" )
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, "SW1:4" )
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x20, "SW1:3" )
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, "SW1:2" )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, "SW1:1" )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("mainpcb:a80000")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Abort")
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Key")
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) /* aux coin */
PORT_BIT( 0x00f8, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("1st Gear")
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("2nd Gear")
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("3rd Gear")
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("4th Gear")
PORT_BIT( 0x3000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_CUSTOM ) /* center edge on steering wheel */
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.0") /* b00000 - 8 bit ADC 0 - gas pedal */
PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal")
PORT_START("mainpcb:8BADC.1") /* b00000 - 8 bit ADC 1 - clutch pedal */
PORT_BIT( 0xff, 0x00, IPT_PEDAL3 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(100) PORT_NAME("Clutch Pedal")
PORT_START("mainpcb:8BADC.2") /* b00000 - 8 bit ADC 2 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.3") /* b00000 - 8 bit ADC 3 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.4") /* b00000 - 8 bit ADC 4 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.5") /* b00000 - 8 bit ADC 5 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.6") /* b00000 - 8 bit ADC 6 - force brake */
PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE PORT_NAME("Force Brake")
PORT_START("mainpcb:8BADC.7") /* b00000 - 8 bit ADC 7 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:12BADC.0") /* 400000 - steering wheel */
PORT_BIT(0xfff, 0x800, IPT_PADDLE) PORT_MINMAX(0x010, 0xff0) PORT_SENSITIVITY(400) PORT_KEYDELTA(5) PORT_NAME("Steering Wheel")
/* dummy ADC ports to end up with the same number as the full version */
PORT_START("mainpcb:12BADC.1")
PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:12BADC.2")
PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:12BADC.3")
PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
static INPUT_PORTS_START( stunrun )
PORT_START("mainpcb:IN0") /* 60c000 */
PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_CUSTOM ) /* HBLANK */
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("mainpcb:screen")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) /* 12-bit EOC */
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("mainpcb:adc8", adc0808_device, eoc_r)
PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_START("mainpcb:SW1") /* 60c002 */
PORT_DIPNAME( 0x01, 0x00, "SW1:8" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, "SW1:7" )
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x00, "SW1:6" )
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x00, "SW1:5" )
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x00, "SW1:4" )
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x00, "SW1:3" )
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x00, "SW1:2" )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x00, "SW1:1" )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("mainpcb:a80000")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 )
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 )
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.0") /* b00000 - 8 bit ADC 0 */
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)
PORT_START("mainpcb:8BADC.1") /* b00000 - 8 bit ADC 1 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.2") /* b00000 - 8 bit ADC 2 */
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)
PORT_START("mainpcb:8BADC.3") /* b00000 - 8 bit ADC 3 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.4") /* b00000 - 8 bit ADC 4 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.5") /* b00000 - 8 bit ADC 5 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.6") /* b00000 - 8 bit ADC 6 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.7") /* b00000 - 8 bit ADC 7 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:12BADC.0") /* b80000 - 12 bit ADC 0 */
PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:12BADC.1") /* b80000 - 12 bit ADC 1 */
PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:12BADC.2") /* b80000 - 12 bit ADC 2 */
PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:12BADC.3") /* b80000 - 12 bit ADC 3 */
PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNUSED )
/* stunrun has its own coins */
// todo
// PORT_MODIFY("jsa:JSAII")/
// PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
// PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
INPUT_PORTS_END
static INPUT_PORTS_START( steeltal )
PORT_START("mainpcb:IN0") /* 60c000 */
PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_CUSTOM ) /* HBLANK */
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("mainpcb:screen")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) /* 12-bit EOC */
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("mainpcb:adc8", adc0808_device, eoc_r)
PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_START("mainpcb:SW1") /* 60c002 */
PORT_DIPNAME( 0x01, 0x00, "SW1:8" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, "SW1:7" )
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x00, "SW1:6" )
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x00, "SW1:5" )
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x00, "SW1:4" )
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x00, "SW1:3" )
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x00, "SW1:2" )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x00, "SW1:1" )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("mainpcb:a80000")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Trigger")
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Thumb")
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Zoom")
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Real Helicopter Flight")
PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.0") /* b00000 - 8 bit ADC 0 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.1") /* b00000 - 8 bit ADC 1 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) /* volume control */
PORT_START("mainpcb:8BADC.2") /* b00000 - 8 bit ADC 2 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.3") /* b00000 - 8 bit ADC 3 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.4") /* b00000 - 8 bit ADC 4 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.5") /* b00000 - 8 bit ADC 5 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.6") /* b00000 - 8 bit ADC 6 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.7") /* b00000 - 8 bit ADC 7 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:12BADC.0") /* b80000 - 12 bit ADC 0 */
PORT_BIT( 0xfff, 0x800, IPT_AD_STICK_X ) PORT_MINMAX(0x010, 0xff0) PORT_SENSITIVITY(400) PORT_KEYDELTA(10) /* left/right */
PORT_START("mainpcb:12BADC.1") /* b80000 - 12 bit ADC 1 */
PORT_BIT( 0xfff, 0x800, IPT_AD_STICK_Y ) PORT_MINMAX(0x010, 0xff0) PORT_SENSITIVITY(400) PORT_KEYDELTA(10) /* up/down */
PORT_START("mainpcb:12BADC.2") /* b80000 - 12 bit ADC 2 */
PORT_BIT( 0xfff, 0x800, IPT_AD_STICK_Z ) PORT_MINMAX(0x010, 0xff0) PORT_SENSITIVITY(400) PORT_KEYDELTA(10) PORT_NAME("Collective") PORT_REVERSE /* collective */
PORT_START("mainpcb:12BADC.3") /* b80000 - 12 bit ADC 3 */
PORT_BIT( 0xfff, 0x800, IPT_AD_STICK_X ) PORT_MINMAX(0x010, 0xff0) PORT_SENSITIVITY(400) PORT_KEYDELTA(10) PORT_NAME("Rudder") PORT_PLAYER(2) /* rudder */
/* steeltal has its own coins */
// todo
// PORT_MODIFY("jsa:JSAIII")
// PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
// PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
INPUT_PORTS_END
static INPUT_PORTS_START( strtdriv )
PORT_START("mainpcb:IN0") /* 60c000 */
PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_CUSTOM ) /* HBLANK */
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("mainpcb:screen")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) /* 12-bit EOC */
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("mainpcb:adc8", adc0808_device, eoc_r)
PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_START("mainpcb:SW1") /* 60c002 */
PORT_DIPNAME( 0x01, 0x01, "SW1:8" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, "SW1:7" )
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, "SW1:6" )
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, "SW1:5" )
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, "SW1:4" )
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x20, "SW1:3" )
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, "SW1:2" )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, "SW1:1" )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("mainpcb:a80000")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) /* abort */
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) /* start */
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) /* aux coin */
PORT_BIT( 0x00f8, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON5 ) /* ??? */
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_TOGGLE /* reverse */
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON6 ) /* ??? */
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* wings */
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* wings */
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_CUSTOM ) /* center edge on steering wheel */
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.0") /* b00000 - 8 bit ADC 0 - gas pedal */
PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal")
PORT_START("mainpcb:8BADC.1") /* b00000 - 8 bit ADC 1 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.2") /* b00000 - 8 bit ADC 2 - voice mic */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.3") /* b00000 - 8 bit ADC 3 - volume */
PORT_BIT( 0xff, 0x80, IPT_UNUSED )
PORT_START("mainpcb:8BADC.4") /* b00000 - 8 bit ADC 4 - elevator */
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_NAME("Elevator") PORT_REVERSE /* up/down */
PORT_START("mainpcb:8BADC.5") /* b00000 - 8 bit ADC 5 - canopy */
PORT_BIT( 0xff, 0x80, IPT_UNUSED )
PORT_START("mainpcb:8BADC.6") /* b00000 - 8 bit ADC 6 - brake */
PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_NAME("Brake") PORT_REVERSE
PORT_START("mainpcb:8BADC.7") /* b00000 - 8 bit ADC 7 - seat adjust */
PORT_BIT( 0xff, 0x80, IPT_UNUSED )
PORT_START("mainpcb:12BADC.0") /* 400000 - steering wheel */
PORT_BIT(0xfff, 0x800, IPT_PADDLE) PORT_MINMAX(0x010, 0xff0) PORT_SENSITIVITY(400) PORT_KEYDELTA(5) PORT_NAME("Steering Wheel")
/* dummy ADC ports to end up with the same number as the full version */
PORT_START("mainpcb:12BADC.1") /* FAKE */
PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:12BADC.2") /* FAKE */
PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:12BADC.3") /* FAKE */
PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
static INPUT_PORTS_START( hdrivair )
PORT_START("mainpcb:IN0") /* 60c000 */
PORT_DIPNAME( 0x01, 0x01, "Diagnostic jumper" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_CUSTOM ) /* HBLANK */
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("mainpcb:screen")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) /* 12-bit EOC */
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("mainpcb:adc8", adc0808_device, eoc_r)
PORT_SERVICE( 0x20, IP_ACTIVE_LOW )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_START("mainpcb:SW1") /* 60c002 */
PORT_DIPNAME( 0x01, 0x01, "SW1:8" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, "SW1:7" )
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, "SW1:6" )
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, "SW1:5" )
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, "SW1:4" )
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x20, "SW1:3" )
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, "SW1:2" )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, "SW1:1" )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("mainpcb:a80000")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START2 ) /* abort */
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 ) /* start */
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) /* aux coin */
PORT_BIT( 0x00f8, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON5 ) /* ??? */
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_TOGGLE /* reverse */
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON6 ) /* ??? */
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON2 ) /* wings */
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON3 ) /* wings */
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_CUSTOM ) /* center edge on steering wheel */
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.0") /* b00000 - 8 bit ADC 0 - gas pedal */
PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal")
PORT_START("mainpcb:8BADC.1") /* b00000 - 8 bit ADC 1 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.2") /* b00000 - 8 bit ADC 2 - voice mic */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:8BADC.3") /* b00000 - 8 bit ADC 3 - volume */
PORT_BIT( 0xff, 0x80, IPT_UNUSED )
PORT_START("mainpcb:8BADC.4") /* b00000 - 8 bit ADC 4 - elevator */
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_REVERSE PORT_NAME("Elevator") /* up/down */
PORT_START("mainpcb:8BADC.5") /* b00000 - 8 bit ADC 5 - canopy */
PORT_BIT( 0xff, 0x80, IPT_UNUSED )
PORT_START("mainpcb:8BADC.6") /* b00000 - 8 bit ADC 6 - brake */
PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE PORT_NAME("Brake")
PORT_START("mainpcb:8BADC.7") /* b00000 - 8 bit ADC 7 - seat adjust */
PORT_BIT( 0xff, 0x80, IPT_UNUSED )
PORT_START("mainpcb:12BADC.0") /* 400000 - steering wheel */
PORT_BIT(0xfff, 0x800, IPT_PADDLE) PORT_MINMAX(0x010, 0xff0) PORT_SENSITIVITY(400) PORT_KEYDELTA(5) PORT_REVERSE PORT_NAME("Steering Wheel")
/* dummy ADC ports to end up with the same number as the full version */
PORT_START("mainpcb:12BADC.1")
PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:12BADC.2")
PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("mainpcb:12BADC.3")
PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
/*************************************
*
* Main board pieces
*
*************************************/
WRITE_LINE_MEMBER(harddriv_state::video_int_write_line)
{
if (state)
{
m_video_int_state = 1;
update_interrupts();
}
}
/* Driver board without MSP (used by Race Drivin' cockpit) */
void harddriv_state::driver_nomsp(machine_config &config)
{
/* basic machine hardware */
M68010(config, m_maincpu, HARDDRIV_MASTER_CLOCK/4);
m_maincpu->set_addrmap(AS_PROGRAM, &harddriv_state::driver_68k_map);
m_maincpu->set_periodic_int(FUNC(harddriv_state::hd68k_irq_gen), attotime::from_hz(HARDDRIV_MASTER_CLOCK/16/16/16/16/2));
SLAPSTIC(config, m_slapstic_device, 117, true);
WATCHDOG_TIMER(config, "watchdog");
ADC0809(config, m_adc8, 1000000); // unknown clock
m_adc8->in_callback<0>().set_ioport("8BADC.0");
m_adc8->in_callback<1>().set_ioport("8BADC.1");
m_adc8->in_callback<2>().set_ioport("8BADC.2");
m_adc8->in_callback<3>().set_ioport("8BADC.3");
m_adc8->in_callback<4>().set_ioport("8BADC.4");
m_adc8->in_callback<5>().set_ioport("8BADC.5");
m_adc8->in_callback<6>().set_ioport("8BADC.6");
m_adc8->in_callback<7>().set_ioport("8BADC.7");
TMS34010(config, m_gsp, HARDDRIV_GSP_CLOCK);
m_gsp->set_addrmap(AS_PROGRAM, &harddriv_state::driver_gsp_map);
m_gsp->set_halt_on_reset(true);
m_gsp->set_pixel_clock(4000000);
m_gsp->set_pixels_per_clock(4);
m_gsp->set_scanline_ind16_callback(FUNC(harddriv_state::scanline_driver));
m_gsp->output_int().set(FUNC(harddriv_state::hdgsp_irq_gen));
m_gsp->set_shiftreg_in_callback(FUNC(harddriv_state::hdgsp_write_to_shiftreg));
m_gsp->set_shiftreg_out_callback(FUNC(harddriv_state::hdgsp_read_from_shiftreg));
m_gsp->set_screen("screen");
config.m_minimum_quantum = attotime::from_hz(30000);
M48T02(config, m_200e, 0);
EEPROM_2816(config, m_210e); // MK48Z02
MC68681(config, m_duartn68681, XTAL(3'686'400));
m_duartn68681->irq_cb().set(FUNC(harddriv_state::harddriv_duart_irq_handler));
m_duartn68681->a_tx_cb().set("rs232", FUNC(rs232_port_device::write_txd));
rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr));
rs232.rxd_handler().set("duartn68681", FUNC(mc68681_device::rx_a_w));
/* video hardware */
PALETTE(config, m_palette).set_entries(1024);
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_raw(HARDDRIV_GSP_CLOCK/12*4, 160*4, 0, 127*4, 417, 0, 384);
m_screen->set_screen_update("gsp", FUNC(tms34010_device::tms340x0_ind16));
m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
m_screen->set_palette(m_palette);
m_screen->screen_vblank().set(FUNC(harddriv_state::video_int_write_line));
}
/* Driver board with MSP (used by Hard Drivin' cockpit) */
void harddriv_state::driver_msp(machine_config &config)
{
driver_nomsp(config);
/* basic machine hardware */
TMS34010(config, m_msp, XTAL(50'000'000));
m_msp->set_addrmap(AS_PROGRAM, &harddriv_state::driver_msp_map);
m_msp->set_halt_on_reset(true);
m_msp->set_pixel_clock(5000000);
m_msp->set_pixels_per_clock(2);
m_msp->output_int().set(FUNC(harddriv_state::hdmsp_irq_gen));
m_msp->set_screen("screen");
config.device_remove("slapstic");
}
/* Multisync board without MSP (used by STUN Runner, Steel Talons, Race Drivin' compact) */
void harddriv_state::multisync_nomsp(machine_config &config)
{
driver_nomsp(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_PROGRAM, &harddriv_state::multisync_68k_map);
m_gsp->set_addrmap(AS_PROGRAM, &harddriv_state::multisync_gsp_map);
m_gsp->set_pixel_clock(6000000);
m_gsp->set_pixels_per_clock(2);
m_gsp->ioreg_pre_write().set(FUNC(harddriv_state::hdgsp_io_w));
m_gsp->set_scanline_ind16_callback(FUNC(harddriv_state::scanline_multisync));
/* video hardware */
m_screen->set_raw(HARDDRIV_GSP_CLOCK/8*2, 323*2, 0, 256*2, 308, 0, 288);
}
/* Multisync board with MSP (used by Hard Drivin' compact) */
void harddriv_state::multisync_msp(machine_config &config)
{
multisync_nomsp(config);
/* basic machine hardware */
TMS34010(config, m_msp, XTAL(50'000'000));
m_msp->set_addrmap(AS_PROGRAM, &harddriv_state::driver_msp_map);
m_msp->set_halt_on_reset(true);
m_msp->set_pixel_clock(5000000);
m_msp->set_pixels_per_clock(2);
m_msp->output_int().set(FUNC(harddriv_state::hdmsp_irq_gen));
m_msp->set_screen("screen");
config.device_remove("slapstic");
}
/* Multisync II board (used by Hard Drivin's Airborne) */
void harddriv_state::multisync2(machine_config &config)
{
multisync_nomsp(config);
/* basic machine hardware */
m_maincpu->set_addrmap(AS_PROGRAM, &harddriv_state::multisync2_68k_map);
m_gsp->set_addrmap(AS_PROGRAM, &harddriv_state::multisync2_gsp_map);
config.device_remove("slapstic");
}
/*************************************
*
* ADSP board pieces
*
*************************************/
/* ADSP/ADSP II boards (used by Hard/Race Drivin', STUN Runner) */
void harddriv_state::adsp(machine_config &config)
{
/* basic machine hardware */
ADSP2100(config, m_adsp, XTAL(32'000'000)/4);
m_adsp->set_addrmap(AS_PROGRAM, &harddriv_state::adsp_program_map);
m_adsp->set_addrmap(AS_DATA, &harddriv_state::adsp_data_map);
}
/* DS III/IV board (used by Steel Talons, Street Drivin' and Hard Drivin's Airborne) */
void harddriv_state::ds3(machine_config &config)
{
/* basic machine hardware */
ADSP2101(config, m_adsp, XTAL(12'000'000));
m_adsp->set_addrmap(AS_PROGRAM, &harddriv_state::ds3_program_map);
m_adsp->set_addrmap(AS_DATA, &harddriv_state::ds3_data_map);
config.m_minimum_quantum = attotime::from_hz(60000);
ADSP2105(config, m_ds3sdsp, XTAL(10'000'000));
m_ds3sdsp->sport_rx().set(FUNC(harddriv_state::hdds3sdsp_serial_rx_callback));
m_ds3sdsp->sport_tx().set(FUNC(harddriv_state::hdds3sdsp_serial_tx_callback));
m_ds3sdsp->timer_fired().set(FUNC(harddriv_state::hdds3sdsp_timer_enable_callback));
m_ds3sdsp->set_addrmap(AS_PROGRAM, &harddriv_state::ds3sdsp_program_map);
m_ds3sdsp->set_addrmap(AS_DATA, &harddriv_state::ds3sdsp_data_map);
TIMER(config, "ds3sdsp_timer").configure_generic(FUNC(harddriv_state::ds3sdsp_internal_timer_callback));
ADSP2105(config, m_ds3xdsp, XTAL(10'000'000));
m_ds3xdsp->sport_rx().set(FUNC(harddriv_state::hdds3xdsp_serial_rx_callback));
m_ds3xdsp->sport_tx().set(FUNC(harddriv_state::hdds3xdsp_serial_tx_callback));
m_ds3xdsp->timer_fired().set(FUNC(harddriv_state::hdds3xdsp_timer_enable_callback));
m_ds3xdsp->set_addrmap(AS_PROGRAM, &harddriv_state::ds3xdsp_program_map);
m_ds3xdsp->set_addrmap(AS_DATA, &harddriv_state::ds3xdsp_data_map);
TIMER(config, "ds3xdsp_timer").configure_generic(FUNC(harddriv_state::ds3xdsp_internal_timer_callback));
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
DAC_16BIT_R2R(config, m_ldac, 0).add_route(ALL_OUTPUTS, "lspeaker", 1.0); // unknown DAC
DAC_16BIT_R2R(config, m_rdac, 0).add_route(ALL_OUTPUTS, "rspeaker", 1.0); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
vref.add_route(0, "ldac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "ldac", -1.0, DAC_VREF_NEG_INPUT);
vref.add_route(0, "rdac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "rdac", -1.0, DAC_VREF_NEG_INPUT);
}
/*************************************
*
* DSK board pieces
*
*************************************/
/* DSK board (used by Race Drivin') */
void harddriv_state::dsk(machine_config &config)
{
/* basic machine hardware */
DSP32C(config, m_dsp32, XTAL(40'000'000));
m_dsp32->out_cb().set(FUNC(harddriv_state::hddsk_update_pif));
m_dsp32->set_addrmap(AS_PROGRAM, &harddriv_state::dsk_dsp32_map);
EEPROM_2816(config, m_dsk_10c); // MK48Z02
EEPROM_2816(config, m_dsk_30c); // MK48Z02
/* ASIC65 */
ASIC65(config, m_asic65, 0, ASIC65_STANDARD);
}
/* DSK II board (used by Hard Drivin's Airborne) */
void harddriv_state::dsk2(machine_config &config)
{
/* basic machine hardware */
DSP32C(config, m_dsp32, XTAL(40'000'000));
m_dsp32->out_cb().set(FUNC(harddriv_state::hddsk_update_pif));
m_dsp32->set_addrmap(AS_PROGRAM, &harddriv_state::dsk2_dsp32_map);
/* ASIC65 */
ASIC65(config, m_asic65, 0, ASIC65_STANDARD);
}
WRITE_LINE_MEMBER(harddriv_state::sound_int_write_line)
{
m_sound_int_state = state;
update_interrupts();
}
DEFINE_DEVICE_TYPE(HARDDRIV_BOARD, harddriv_board_device_state, "harddriv_board", "Hard Drivin' Board Device")
harddriv_board_device_state::harddriv_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: harddriv_state(mconfig, HARDDRIV_BOARD, tag, owner, clock)
{
}
void harddriv_board_device_state::device_add_mconfig(machine_config &config)
{
driver_msp(config);
/* basic machine hardware */ /* original driver board with MSP */
adsp(config); /* ADSP board */
HARDDRIV_SOUND_BOARD(config, m_harddriv_sound, 0); /* driver sound board */
}
void harddriv_board_device_state::device_start()
{
init_harddriv();
harddriv_state::device_start();
}
/* Compact */
void harddrivc_board_device_state::device_start()
{
init_harddrivc();
harddriv_state::device_start();
}
DEFINE_DEVICE_TYPE(HARDDRIVC_BOARD, harddrivc_board_device_state, "harddrivc_board", "Hard Drivin' C Board Device")
harddrivc_board_device_state::harddrivc_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: harddriv_state(mconfig, HARDDRIVC_BOARD, tag, owner, clock)
{
}
void harddrivc_board_device_state::device_add_mconfig(machine_config &config)
{
multisync_msp(config);
/* basic machine hardware */ /* multisync board with MSP */
adsp(config); /* ADSP board */
HARDDRIV_SOUND_BOARD(config, m_harddriv_sound, 0); /* driver sound board */
}
/* Race Drivin */
void racedriv_board_device_state::device_start()
{
init_racedriv();
harddriv_state::device_start();
}
void racedrivb1_board_device_state::device_start()
{
init_racedrivb1();
harddriv_state::device_start();
}
DEFINE_DEVICE_TYPE(RACEDRIV_BOARD, racedriv_board_device_state, "racedriv_board", "Race Drivin' Board Device")
DEFINE_DEVICE_TYPE(RACEDRIVB1_BOARD, racedrivb1_board_device_state, "racedrivb1_board", "Race Drivin' B1 Board Device")
racedriv_board_device_state::racedriv_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: racedriv_board_device_state(mconfig, RACEDRIV_BOARD, tag, owner, clock)
{
}
racedriv_board_device_state::racedriv_board_device_state(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
: harddriv_state(mconfig, type, tag, owner, clock)
{
}
racedrivb1_board_device_state::racedrivb1_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: racedriv_board_device_state(mconfig, RACEDRIVB1_BOARD, tag, owner, clock)
{
}
void racedriv_board_device_state::device_add_mconfig(machine_config &config)
{
driver_nomsp(config);
/* basic machine hardware */ /* original driver board without MSP */
adsp(config); /* ADSP board */
dsk(config); /* DSK board */
HARDDRIV_SOUND_BOARD(config, m_harddriv_sound, 0); /* driver sound board */
}
/* Race Drivin Compact */
void racedrivc_board_device_state::device_start()
{
init_racedrivc();
harddriv_state::device_start();
}
void racedrivc1_board_device_state::device_start()
{
init_racedrivc1();
harddriv_state::device_start();
}
void racedrivc_panorama_side_board_device_state::device_start()
{
init_racedrivc_panorama_side();
harddriv_state::device_start();
}
DEFINE_DEVICE_TYPE(RACEDRIVC_BOARD, racedrivc_board_device_state, "racedrivc_board", "Race Drivin' C Board Device")
DEFINE_DEVICE_TYPE(RACEDRIVC1_BOARD, racedrivc1_board_device_state, "racedrivc1_board", "Race Drivin' C1 Board Device")
DEFINE_DEVICE_TYPE(RACEDRIVC_PANORAMA_SIDE_BOARD, racedrivc_panorama_side_board_device_state, "racedrivc_panorama_side_board", "Race Drivin' C Panorama Board Device")
racedrivc_board_device_state::racedrivc_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: racedrivc_board_device_state(mconfig, RACEDRIVC_BOARD, tag, owner, clock)
{
}
racedrivc_board_device_state::racedrivc_board_device_state(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
: harddriv_state(mconfig, type, tag, owner, clock)
{
}
racedrivc1_board_device_state::racedrivc1_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: racedrivc_board_device_state(mconfig, RACEDRIVC1_BOARD, tag, owner, clock)
{
}
racedrivc_panorama_side_board_device_state::racedrivc_panorama_side_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: racedrivc_board_device_state(mconfig, RACEDRIVC_PANORAMA_SIDE_BOARD, tag, owner, clock)
{
}
void racedrivc_board_device_state::device_add_mconfig(machine_config &config)
{
multisync_nomsp(config);
/* basic machine hardware */ /* multisync board without MSP */
adsp(config); /* ADSP board */
dsk(config); /* DSK board */
HARDDRIV_SOUND_BOARD(config, m_harddriv_sound, 0); /* driver sound board */
}
void racedrivc_panorama_side_board_device_state::device_add_mconfig(machine_config &config)
{
multisync_nomsp(config);
// 8-bit analog inputs read but not used?
m_adc8->in_callback<0>().set_constant(0xff);
m_adc8->in_callback<1>().set_constant(0xff);
m_adc8->in_callback<2>().set_constant(0xff);
m_adc8->in_callback<3>().set_constant(0xff);
m_adc8->in_callback<4>().set_constant(0xff);
m_adc8->in_callback<5>().set_constant(0xff);
m_adc8->in_callback<6>().set_constant(0xff);
m_adc8->in_callback<7>().set_constant(0xff);
/* basic machine hardware */ /* multisync board without MSP */
adsp(config); /* ADSP board */
// dsk(config); /* DSK board */
// HARDDRIV_SOUND_BOARD(config, "sound_board", 0); /* driver sound board */
}
/* Stun Runner */
void stunrun_board_device_state::device_start()
{
init_stunrun();
harddriv_state::device_start();
}
DEFINE_DEVICE_TYPE(STUNRUN_BOARD, stunrun_board_device_state, "stunrun_board", "Stun Runner Board Device")
stunrun_board_device_state::stunrun_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: harddriv_state(mconfig, STUNRUN_BOARD, tag, owner, clock)
{
}
void stunrun_board_device_state::device_add_mconfig(machine_config &config)
{
multisync_nomsp(config);
/* basic machine hardware */ /* multisync board without MSP */
m_gsp->set_pixel_clock(5000000);
adsp(config); /* ADSP board */
config.device_remove("slapstic");
/* video hardware */
m_screen->set_raw(5000000*2, 317*2, 0, 256*2, 262, 0, 228);
/* sund hardware */
SPEAKER(config, "mono").front_center();
ATARI_JSA_II(config, m_jsa, 0);
m_jsa->main_int_cb().set(FUNC(harddriv_state::sound_int_write_line));
m_jsa->test_read_cb().set_ioport("IN0").bit(5);
m_jsa->add_route(ALL_OUTPUTS, "mono", 1.0);
}
/* Steel Talons */
void steeltal_board_device_state::device_start()
{
init_steeltal();
harddriv_state::device_start();
}
void steeltal1_board_device_state::device_start()
{
init_steeltal1();
harddriv_state::device_start();
}
void steeltalp_board_device_state::device_start()
{
init_steeltalp();
harddriv_state::device_start();
}
DEFINE_DEVICE_TYPE(STEELTAL_BOARD, steeltal_board_device_state, "steeltal_board", "Steel Talons Board Device")
DEFINE_DEVICE_TYPE(STEELTAL1_BOARD, steeltal1_board_device_state, "steeltal1_board", "Steel Talons 1 Board Device")
DEFINE_DEVICE_TYPE(STEELTALP_BOARD, steeltalp_board_device_state, "steeltalp_board", "Steel Talons P Board Device")
steeltal_board_device_state::steeltal_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: steeltal_board_device_state(mconfig, STEELTAL_BOARD, tag, owner, clock)
{
}
steeltal_board_device_state::steeltal_board_device_state(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
: harddriv_state(mconfig, type, tag, owner, clock)
{
}
steeltal1_board_device_state::steeltal1_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: steeltal_board_device_state(mconfig, STEELTAL1_BOARD, tag, owner, clock)
{
}
steeltalp_board_device_state::steeltalp_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: steeltal_board_device_state(mconfig, STEELTALP_BOARD, tag, owner, clock)
{
}
void steeltal_board_device_state::device_add_mconfig(machine_config &config) //todo: add ADSP-2105 on DSPCOM board for communications
{
multisync_msp(config);
/* basic machine hardware */ /* multisync board with MSP */
ds3(config); /* DS III board */
config.device_remove("ds3sdsp"); /* DS III sound components are not present */
config.device_remove("ds3xdsp");
config.device_remove("ldac");
config.device_remove("rdac");
config.device_remove("vref");
config.device_remove("lspeaker");
config.device_remove("rspeaker");
ASIC65(config, m_asic65, 0, ASIC65_STEELTAL); /* ASIC65 on DSPCOM board */
/* sund hardware */
SPEAKER(config, "mono").front_center();
ATARI_JSA_III(config, m_jsa, 0);
m_jsa->main_int_cb().set(FUNC(harddriv_state::sound_int_write_line));
m_jsa->test_read_cb().set_ioport("IN0").bit(5);
m_jsa->add_route(ALL_OUTPUTS, "mono", 1.0);
}
/* Street Drivin' */
void strtdriv_board_device_state::device_start()
{
init_strtdriv();
harddriv_state::device_start();
}
DEFINE_DEVICE_TYPE(STRTDRIV_BOARD, strtdriv_board_device_state, "strtdriv_board", "Street Drivin' Board Device")
strtdriv_board_device_state::strtdriv_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: harddriv_state(mconfig, STRTDRIV_BOARD, tag, owner, clock)
{
}
void strtdriv_board_device_state::device_add_mconfig(machine_config &config)
{
multisync_nomsp(config);
/* basic machine hardware */ /* multisync board */
ds3(config); /* DS III board */
m_ds3xdsp->set_disable(); /* DS III auxiliary sound DSP has no code */
dsk(config); /* DSK board */
}
/* Hard Drivin' Airbourne */
void hdrivair_board_device_state::device_start()
{
init_hdrivair();
harddriv_state::device_start();
}
void hdrivairp_board_device_state::device_start()
{
init_hdrivairp();
harddriv_state::device_start();
}
DEFINE_DEVICE_TYPE(HDRIVAIR_BOARD, hdrivair_board_device_state, "hdrivair_board", "Hard Drivin' Airborne Board Device")
DEFINE_DEVICE_TYPE(HDRIVAIRP_BOARD, hdrivairp_board_device_state, "hdrivairp_board", "Hard Drivin' Airborne P Board Device")
hdrivair_board_device_state::hdrivair_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: hdrivair_board_device_state(mconfig, HDRIVAIR_BOARD, tag, owner, clock)
{
}
hdrivair_board_device_state::hdrivair_board_device_state(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
: harddriv_state(mconfig, type, tag, owner, clock)
{
}
hdrivairp_board_device_state::hdrivairp_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: hdrivair_board_device_state(mconfig, HDRIVAIRP_BOARD, tag, owner, clock)
{
}
void hdrivair_board_device_state::device_add_mconfig(machine_config &config)
{
multisync2(config);
/* basic machine hardware */ /* multisync II board */
ds3(config); /* DS IV board */
dsk2(config); /* DSK II board */
}
void harddriv_new_state::harddriv_machine(machine_config &config)
{
HARDDRIV_BOARD(config, "mainpcb", 0);
}
void harddriv_new_state::harddrivc_machine(machine_config &config)
{
HARDDRIVC_BOARD(config, "mainpcb", 0);
}
void harddriv_new_state::racedriv_machine(machine_config &config)
{
RACEDRIV_BOARD(config, "mainpcb", 0);
}
void harddriv_new_state::racedrivb1_machine(machine_config &config)
{
RACEDRIVB1_BOARD(config, "mainpcb", 0);
}
void harddriv_new_state::racedrivc_machine(machine_config &config)
{
RACEDRIVC_BOARD(config, "mainpcb", 0);
}
void harddriv_new_state::racedrivc1_machine(machine_config &config)
{
RACEDRIVC1_BOARD(config, "mainpcb", 0);
}
void harddriv_new_state::stunrun_machine(machine_config &config)
{
STUNRUN_BOARD(config, "mainpcb", 0);
}
void harddriv_new_state::strtdriv_machine(machine_config &config)
{
STRTDRIV_BOARD(config, "mainpcb", 0);
}
void harddriv_new_state::hdrivair_machine(machine_config &config)
{
HDRIVAIR_BOARD(config, "mainpcb", 0);
}
void harddriv_new_state::hdrivairp_machine(machine_config &config)
{
HDRIVAIRP_BOARD(config, "mainpcb", 0);
}
void harddriv_new_state::steeltal_machine(machine_config &config)
{
STEELTAL_BOARD(config, "mainpcb", 0);
}
void harddriv_new_state::steeltal1_machine(machine_config &config)
{
STEELTAL1_BOARD(config, "mainpcb", 0);
}
void harddriv_new_state::steeltalp_machine(machine_config &config)
{
STEELTALP_BOARD(config, "mainpcb", 0);
}
WRITE_LINE_MEMBER(harddriv_new_state::tx_a)
{
// passive connection, one way, to both screens
m_leftpcb->get_duart()->rx_a_w(state);
m_rightpcb->get_duart()->rx_a_w(state);
}
void harddriv_new_state::racedriv_panorama_machine(machine_config &config)
{
RACEDRIV_BOARD(config, "mainpcb", 0);
RACEDRIVC_PANORAMA_SIDE_BOARD(config, "leftpcb", 0);
RACEDRIVC_PANORAMA_SIDE_BOARD(config, "rightpcb", 0);
// config.m_minimum_quantum = attotime::from_hz(100000);
subdevice<mc68681_device>("mainpcb:duartn68681")->a_tx_cb().set(FUNC(harddriv_new_state::tx_a));
// boots with 'PROGRAM OK' when using standard Hard Drivin' board type (needs 137412-115 slapstic)
subdevice<atari_slapstic_device>("mainpcb:slapstic")->set_chipnum(115);
TIMER(config, "hack_timer").configure_periodic(FUNC(harddriv_new_state::hack_timer), attotime::from_hz(60));
// config.m_minimum_quantum = attotime::from_hz(60000);
}
// this is an ugly hack, otherwise MAME's core can't seem to handle partial updates if you have multiple screens with different update frequencies.
// by forcing them to stay in sync using this ugly method everything works much better.
TIMER_DEVICE_CALLBACK_MEMBER(harddriv_new_state::hack_timer)
{
m_leftpcb->get_screen()->reset_origin(0, 0);
m_mainpcb->get_screen()->reset_origin(0, 0);
m_rightpcb->get_screen()->reset_origin(0, 0);
}
/*************************************
*
* ROM definition(s)
*
*************************************/
/*
these sound ROMs were original being used in MAME:
ROM_LOAD16_BYTE( "hd_s.70n", 0x00000, 0x08000, CRC(0c77fab6) SHA1(4efcb64c261c7c4bfdd1f94d082404d6b4d25e54) )
ROM_LOAD16_BYTE( "hd_s.45n", 0x00001, 0x08000, CRC(54d6dd5f) SHA1(b93e918a395f6cdea787650d4b7beffba1a77b8f) )
they look legit, but I can't find any official record of them
*/
ROM_START( harddriv )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136052-7105.200r", 0x000000, 0x010000, CRC(af5d5c3e) SHA1(09ccf4aa933413b71b6a42796d42299e1334902f) )
ROM_LOAD16_BYTE( "136052-7113.210r", 0x000001, 0x010000, CRC(3330a942) SHA1(b9210f6befd875be8bc1dbd31f44d0cb63166748) )
ROM_LOAD16_BYTE( "136052-2106.200s", 0x020000, 0x010000, CRC(a668db0e) SHA1(8ac405a0ba12bac9acabdb64970608d1b2b1a99b) )
ROM_LOAD16_BYTE( "136052-2114.210s", 0x020001, 0x010000, CRC(ab689a94) SHA1(c6c09e088bcc32030217e3521c862acce113bf93) )
ROM_LOAD16_BYTE( "136052-1110.200w", 0x0a0000, 0x010000, CRC(908ccbbe) SHA1(b6947ade664172a4553ea083fadfcb77c8c3938d) )
ROM_LOAD16_BYTE( "136052-1118.210w", 0x0a0001, 0x010000, CRC(5b25023c) SHA1(e6c5bf0de5ee071b8733fc890ae4f906732adde4) )
ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) )
ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) )
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
ROM_REGION( 0x40000, "mainpcb:harddriv_sound:serialroms", 0 ) /* 4*128k for audio serial ROMs */
ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "harddriv.200e", 0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "harddriv.210e", 0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
ROM_END
ROM_START( harddrivg )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136052-7205.200r", 0x000000, 0x010000, CRC(b50b1968) SHA1(b6fd9f0600cba995bf31fd0f30f15f091bbbfb09) )
ROM_LOAD16_BYTE( "136052-7213.210r", 0x000001, 0x010000, CRC(e6d57108) SHA1(a4eda6db4ec67b1cb8f9bfee17d8adc93675ef8a) )
ROM_LOAD16_BYTE( "136052-4206.200s", 0x020000, 0x010000, CRC(70f78c50) SHA1(6baed202937c455c7c6e4baa74ee7858673a37fc) )
ROM_LOAD16_BYTE( "136052-4214.210s", 0x020001, 0x010000, CRC(b7988de4) SHA1(0bc94c3eb12f8d0506eca819d79dffb7758a8421) )
ROM_LOAD16_BYTE( "136052-4210.200w", 0x0a0000, 0x010000, CRC(5b8b2947) SHA1(7390e978361dfb6bf5675014a906f3f9879a8a59) )
ROM_LOAD16_BYTE( "136052-4218.210w", 0x0a0001, 0x010000, CRC(9be232c5) SHA1(4fd30f53814049f8462937bfe55410edae438411) )
ROM_LOAD16_BYTE( "136052-4211.200x", 0x0c0000, 0x010000, CRC(20d1b3d5) SHA1(b7c4a2cf6ba729530c24980704989b3a3efb343b) )
ROM_LOAD16_BYTE( "136052-4219.210x", 0x0c0001, 0x010000, CRC(105e7052) SHA1(a8d13c35418e58410cfd74c243b74963f1553068) )
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
ROM_REGION( 0x40000, "mainpcb:harddriv_sound:serialroms", 0 ) /* 4*128k for audio serial ROMs */
ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "harddriv.200e", 0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "harddriv.210e", 0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
ROM_END
ROM_START( harddrivj )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136052-7805.200r", 0x000000, 0x010000, CRC(f170c842) SHA1(842cef66646a664300a7e2b827c0bbd53e5f27ad) )
ROM_LOAD16_BYTE( "136052-7813.210r", 0x000001, 0x010000, CRC(e5a3367d) SHA1(96b3a6fb5561fa59d7ac4b840fa1891d02f1bd8c) )
ROM_LOAD16_BYTE( "136052-6806.200s", 0x020000, 0x010000, CRC(bd68696e) SHA1(33b173f210183fef84c4c04b3bff515d79b4924d) )
ROM_LOAD16_BYTE( "136052-6814.210s", 0x020001, 0x010000, CRC(d0f1c6ed) SHA1(1960e70af17795a9fabd0171eaefebaaaff47305) )
ROM_LOAD16_BYTE( "136052-6807.200s", 0x040000, 0x010000, CRC(b7d348a7) SHA1(b7543241a0a9159f3b49e3b6e65505f6b02ec3d7) )
ROM_LOAD16_BYTE( "136052-6815.210s", 0x040001, 0x010000, CRC(c0790e8c) SHA1(5ef9cdb191583ae5ce2d8285a32f1b060f7ddb11) )
ROM_LOAD16_BYTE( "136052-6810.200w", 0x0a0000, 0x010000, CRC(c3030c51) SHA1(fac9c7d715d66d523908fd7f76a5a599bf05e090) )
ROM_LOAD16_BYTE( "136052-6818.210w", 0x0a0001, 0x010000, CRC(d778128a) SHA1(e9556c39dcba59abb9eba0d2ab113f98c9044558) )
ROM_LOAD16_BYTE( "136052-6811.200x", 0x0c0000, 0x010000, CRC(7bc5c8da) SHA1(ac228d6391bc9ac4238f953f9ad6eb93b3ff9958) )
ROM_LOAD16_BYTE( "136052-6819.210x", 0x0c0001, 0x010000, CRC(368b7e17) SHA1(e8742edec6961173df4450073a427cf3b9f3ff57) )
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
ROM_REGION( 0x40000, "mainpcb:harddriv_sound:serialroms", 0 ) /* 4*128k for audio serial ROMs */
ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "harddriv.200e", 0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "harddriv.210e", 0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
ROM_END
ROM_START( harddrivb )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136052-7905.200r", 0x000000, 0x010000, CRC(c4379a2e) SHA1(41dc66c1576c591520543343a798e0d80def2188) )
ROM_LOAD16_BYTE( "136052-7913.210r", 0x000001, 0x010000, CRC(1e76fa17) SHA1(80ec1de4c8a4622fb5c65ec3e8c194a8eabacc38) )
ROM_LOAD16_BYTE( "136052-6906.200s", 0x020000, 0x010000, CRC(47c4498b) SHA1(aad3463f29ffc733ab42a7abf739ca698cdd8ec1) )
ROM_LOAD16_BYTE( "136052-6914.210s", 0x020001, 0x010000, CRC(c375add9) SHA1(2f2b419d2d092dbc5d2d9a2a44b206c1746e6cca) )
ROM_LOAD16_BYTE( "136052-5910.200w", 0x0a0000, 0x010000, CRC(0d375673) SHA1(fa42f2df39e2a8d20565e981e692bde7256b277e) )
ROM_LOAD16_BYTE( "136052-5918.210w", 0x0a0001, 0x010000, CRC(e2b6a8b8) SHA1(ec847ffb4bf228cf1197d6c8642000491b9e19be) )
ROM_LOAD16_BYTE( "136052-5911.200x", 0x0c0000, 0x010000, CRC(564ac427) SHA1(f71d5a8d06681fc96e753e7cd18e16b32ba6907f) )
ROM_LOAD16_BYTE( "136052-5919.210x", 0x0c0001, 0x010000, CRC(752d9a6d) SHA1(28edb54c7217f5ccdcb2b5614d4e8c2290d96b2a) )
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
ROM_REGION( 0x40000, "mainpcb:harddriv_sound:serialroms", 0 ) /* 4*128k for audio serial ROMs */
ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "harddriv.200e", 0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "harddriv.210e", 0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
ROM_END
ROM_START( harddrivb6 )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136052-6905.200r", 0x000000, 0x010000, CRC(b1f38593) SHA1(958622128c7c687071211343ef657c38f928e25a) )
ROM_LOAD16_BYTE( "136052-6913.210r", 0x000001, 0x010000, CRC(15eb0da5) SHA1(0200328582c77d4d64e9f7df1f8755f7f4975ac3) )
ROM_LOAD16_BYTE( "136052-6906.200s", 0x020000, 0x010000, CRC(47c4498b) SHA1(aad3463f29ffc733ab42a7abf739ca698cdd8ec1) )
ROM_LOAD16_BYTE( "136052-6914.210s", 0x020001, 0x010000, CRC(c375add9) SHA1(2f2b419d2d092dbc5d2d9a2a44b206c1746e6cca) )
ROM_LOAD16_BYTE( "136052-5910.200w", 0x0a0000, 0x010000, CRC(0d375673) SHA1(fa42f2df39e2a8d20565e981e692bde7256b277e) )
ROM_LOAD16_BYTE( "136052-5918.210w", 0x0a0001, 0x010000, CRC(e2b6a8b8) SHA1(ec847ffb4bf228cf1197d6c8642000491b9e19be) )
ROM_LOAD16_BYTE( "136052-5911.200x", 0x0c0000, 0x010000, CRC(564ac427) SHA1(f71d5a8d06681fc96e753e7cd18e16b32ba6907f) )
ROM_LOAD16_BYTE( "136052-5919.210x", 0x0c0001, 0x010000, CRC(752d9a6d) SHA1(28edb54c7217f5ccdcb2b5614d4e8c2290d96b2a) )
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
ROM_REGION( 0x40000, "mainpcb:harddriv_sound:serialroms", 0 ) /* 4*128k for audio serial ROMs */
ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "harddriv.200e", 0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "harddriv.210e", 0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
ROM_END
ROM_START( harddrivj6 )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136052-6805.200r", 0x000000, 0x010000, CRC(e61ce7af) SHA1(38115a5a44f330abf1f7d684e630a1a232769f7c) )
ROM_LOAD16_BYTE( "136052-6813.210r", 0x000001, 0x010000, CRC(adfef1e7) SHA1(dc1bdb5ce9143a94d734ce9ecdf9195589608b65) )
ROM_LOAD16_BYTE( "136052-6806.200s", 0x020000, 0x010000, CRC(bd68696e) SHA1(33b173f210183fef84c4c04b3bff515d79b4924d) )
ROM_LOAD16_BYTE( "136052-6814.210s", 0x020001, 0x010000, CRC(d0f1c6ed) SHA1(1960e70af17795a9fabd0171eaefebaaaff47305) )
ROM_LOAD16_BYTE( "136052-6807.200s", 0x040000, 0x010000, CRC(b7d348a7) SHA1(b7543241a0a9159f3b49e3b6e65505f6b02ec3d7) )
ROM_LOAD16_BYTE( "136052-6815.210s", 0x040001, 0x010000, CRC(c0790e8c) SHA1(5ef9cdb191583ae5ce2d8285a32f1b060f7ddb11) )
ROM_LOAD16_BYTE( "136052-6810.200w", 0x0a0000, 0x010000, CRC(c3030c51) SHA1(fac9c7d715d66d523908fd7f76a5a599bf05e090) )
ROM_LOAD16_BYTE( "136052-6818.210w", 0x0a0001, 0x010000, CRC(d778128a) SHA1(e9556c39dcba59abb9eba0d2ab113f98c9044558) )
ROM_LOAD16_BYTE( "136052-6811.200x", 0x0c0000, 0x010000, CRC(7bc5c8da) SHA1(ac228d6391bc9ac4238f953f9ad6eb93b3ff9958) )
ROM_LOAD16_BYTE( "136052-6819.210x", 0x0c0001, 0x010000, CRC(368b7e17) SHA1(e8742edec6961173df4450073a427cf3b9f3ff57) )
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
ROM_REGION( 0x40000, "mainpcb:harddriv_sound:serialroms", 0 ) /* 4*128k for audio serial ROMs */
ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "harddriv.200e", 0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "harddriv.210e", 0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
ROM_END
ROM_START( harddrivb5 )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136052-5905.200r", 0x000000, 0x010000, CRC(6dd28313) SHA1(c1f860470070dad7d8865aca508ecf5eb92fa8c5) )
ROM_LOAD16_BYTE( "136052-5913.210r", 0x000001, 0x010000, CRC(2e5a006f) SHA1(8a2da1868bbad54b33e993f5bf9ba61186caef5b) )
ROM_LOAD16_BYTE( "136052-5906.200s", 0x020000, 0x010000, CRC(206b59db) SHA1(2bbae0ac4af9cdda44d6d8b5fcf6b3b1c3103796) )
ROM_LOAD16_BYTE( "136052-5914.210s", 0x020001, 0x010000, CRC(50408162) SHA1(b99f9de8e2cfdf13818d46de3e2d34c8d28d9b50) )
ROM_LOAD16_BYTE( "136052-5910.200w", 0x0a0000, 0x010000, CRC(0d375673) SHA1(fa42f2df39e2a8d20565e981e692bde7256b277e) )
ROM_LOAD16_BYTE( "136052-5918.210w", 0x0a0001, 0x010000, CRC(e2b6a8b8) SHA1(ec847ffb4bf228cf1197d6c8642000491b9e19be) )
ROM_LOAD16_BYTE( "136052-5911.200x", 0x0c0000, 0x010000, CRC(564ac427) SHA1(f71d5a8d06681fc96e753e7cd18e16b32ba6907f) )
ROM_LOAD16_BYTE( "136052-5919.210x", 0x0c0001, 0x010000, CRC(752d9a6d) SHA1(28edb54c7217f5ccdcb2b5614d4e8c2290d96b2a) )
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
ROM_REGION( 0x40000, "mainpcb:harddriv_sound:serialroms", 0 ) /* 4*128k for audio serial ROMs */
ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "harddriv.200e", 0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "harddriv.210e", 0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
ROM_END
ROM_START( harddrivg4 )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136052-4205.200r", 0x000000, 0x010000, CRC(94db6d9e) SHA1(98a509daacb9f18c7171246d1782d09a6456e241) )
ROM_LOAD16_BYTE( "136052-4213.210r", 0x000001, 0x010000, CRC(cacaf671) SHA1(7bd0f531402b2f10cb00bb8f7ca0b62eed23bffa) )
ROM_LOAD16_BYTE( "136052-4206.200s", 0x020000, 0x010000, CRC(70f78c50) SHA1(6baed202937c455c7c6e4baa74ee7858673a37fc) )
ROM_LOAD16_BYTE( "136052-4214.210s", 0x020001, 0x010000, CRC(b7988de4) SHA1(0bc94c3eb12f8d0506eca819d79dffb7758a8421) )
ROM_LOAD16_BYTE( "136052-4210.200w", 0x0a0000, 0x010000, CRC(5b8b2947) SHA1(7390e978361dfb6bf5675014a906f3f9879a8a59) )
ROM_LOAD16_BYTE( "136052-4218.210w", 0x0a0001, 0x010000, CRC(9be232c5) SHA1(4fd30f53814049f8462937bfe55410edae438411) )
ROM_LOAD16_BYTE( "136052-4211.200x", 0x0c0000, 0x010000, CRC(20d1b3d5) SHA1(b7c4a2cf6ba729530c24980704989b3a3efb343b) )
ROM_LOAD16_BYTE( "136052-4219.210x", 0x0c0001, 0x010000, CRC(105e7052) SHA1(a8d13c35418e58410cfd74c243b74963f1553068) )
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
ROM_REGION( 0x40000, "mainpcb:harddriv_sound:serialroms", 0 ) /* 4*128k for audio serial ROMs */
ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "harddriv.200e", 0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "harddriv.210e", 0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
ROM_END
ROM_START( harddriv3 )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136052-3105.200r", 0x000000, 0x010000, CRC(a42a2c69) SHA1(66233f25533106aab69df21db69f96368f1399a9) )
ROM_LOAD16_BYTE( "136052-3113.210r", 0x000001, 0x010000, CRC(358995b5) SHA1(f18c0da58ec7befefc61d5f0d35787516b775c92) )
ROM_LOAD16_BYTE( "136052-2106.200s", 0x020000, 0x010000, CRC(a668db0e) SHA1(8ac405a0ba12bac9acabdb64970608d1b2b1a99b) )
ROM_LOAD16_BYTE( "136052-2114.210s", 0x020001, 0x010000, CRC(ab689a94) SHA1(c6c09e088bcc32030217e3521c862acce113bf93) )
ROM_LOAD16_BYTE( "136052-1110.200w", 0x0a0000, 0x010000, CRC(908ccbbe) SHA1(b6947ade664172a4553ea083fadfcb77c8c3938d) )
ROM_LOAD16_BYTE( "136052-1118.210w", 0x0a0001, 0x010000, CRC(5b25023c) SHA1(e6c5bf0de5ee071b8733fc890ae4f906732adde4) )
ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) )
ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) )
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
ROM_REGION( 0x40000, "mainpcb:harddriv_sound:serialroms", 0 ) /* 4*128k for audio serial ROMs */
ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "harddriv.200e", 0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "harddriv.210e", 0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
ROM_END
ROM_START( harddriv2 )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136052-2105.200r", 0x000000, 0x010000, CRC(967903b9) SHA1(4363f3b3f08d00819f47a3682462fd0e5dc4e0ac) )
ROM_LOAD16_BYTE( "136052-2113.210r", 0x000001, 0x010000, CRC(c87f7067) SHA1(3d85d2ba818739ed05086502cd8e57438251b20b) )
ROM_LOAD16_BYTE( "136052-2106.200s", 0x020000, 0x010000, CRC(a668db0e) SHA1(8ac405a0ba12bac9acabdb64970608d1b2b1a99b) )
ROM_LOAD16_BYTE( "136052-2114.210s", 0x020001, 0x010000, CRC(ab689a94) SHA1(c6c09e088bcc32030217e3521c862acce113bf93) )
ROM_LOAD16_BYTE( "136052-1110.200w", 0x0a0000, 0x010000, CRC(908ccbbe) SHA1(b6947ade664172a4553ea083fadfcb77c8c3938d) )
ROM_LOAD16_BYTE( "136052-1118.210w", 0x0a0001, 0x010000, CRC(5b25023c) SHA1(e6c5bf0de5ee071b8733fc890ae4f906732adde4) )
ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) )
ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) )
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
ROM_REGION( 0x40000, "mainpcb:harddriv_sound:serialroms", 0 ) /* 4*128k for audio serial ROMs */
ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "harddriv.200e", 0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "harddriv.210e", 0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
ROM_END
ROM_START( harddriv1 )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136052-1105.200r", 0x000000, 0x010000, CRC(1dfda789) SHA1(83be0d66fe21e974f8d4582b0ab60245f1db7e55) )
ROM_LOAD16_BYTE( "136052-1113.210r", 0x000001, 0x010000, CRC(db2f6593) SHA1(864ea5604cea2507b180a91b35e349d3924bf9bc) )
ROM_LOAD16_BYTE( "136052-1106.200s", 0x020000, 0x010000, CRC(e82210fd) SHA1(916e674017f5187531c2de7961791c060f8412c7) )
ROM_LOAD16_BYTE( "136052-1114.210s", 0x020001, 0x010000, CRC(3d152e8c) SHA1(c55ac13922b7d2126dd9643ef5026ac272abcf16) )
ROM_LOAD16_BYTE( "136052-1110.200w", 0x0a0000, 0x010000, CRC(908ccbbe) SHA1(b6947ade664172a4553ea083fadfcb77c8c3938d) )
ROM_LOAD16_BYTE( "136052-1118.210w", 0x0a0001, 0x010000, CRC(5b25023c) SHA1(e6c5bf0de5ee071b8733fc890ae4f906732adde4) )
ROM_LOAD16_BYTE( "136052-1111.200x", 0x0c0000, 0x010000, CRC(e1f455a3) SHA1(68462a33bbfcc526d8f27ec082e55937a26ead8b) )
ROM_LOAD16_BYTE( "136052-1119.210x", 0x0c0001, 0x010000, CRC(a7fc3aaa) SHA1(ce8d4a8f83e25008cafa2a2242ed26b90b8517da) )
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
ROM_LOAD16_BYTE( "136052-1121.45n", 0x000001, 0x008000, CRC(04316e6f) SHA1(9836b8d16cebd6013834432c9e5a5aca0050c889) )
ROM_LOAD16_BYTE( "136052-1122.70n", 0x000000, 0x008000, CRC(0c446eec) SHA1(53576c2800484d098cf250ab9a865314167c9d96) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
ROM_REGION( 0x40000, "mainpcb:harddriv_sound:serialroms", 0 ) /* 4*128k for audio serial ROMs */
ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
ROM_LOAD( "136052-1125.45a", 0x020000, 0x010000, CRC(ebf391af) SHA1(3c4097db8d625b994b39d46fe652585a74378ca0) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "harddriv.200e", 0x000000, 0x000800, CRC(aed020f7) SHA1(494fc2eb74b4924c07f18bef5e69efd5476deec2) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "harddriv.210e", 0x000000, 0x000800, CRC(4a91835b) SHA1(96f0087ba7e577748758a2fbe61225048862bb65) )
ROM_END
ROM_START( harddrivc )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136068-2102.200r", 0x000000, 0x010000, CRC(6252048b) SHA1(64caf3adfad6965768fc6d39a8bcde62fe6dfa9e) )
ROM_LOAD16_BYTE( "136068-2101.210r", 0x000001, 0x010000, CRC(4805ba06) SHA1(e0c2d935ced05b8162f2925520422184a81d5294) )
ROM_LOAD16_BYTE( "136068-2104.200s", 0x020000, 0x010000, CRC(8246f945) SHA1(633b6c9a5d3e33d3035ccdb7b6ad883c334a4db9) )
ROM_LOAD16_BYTE( "136068-2103.210s", 0x020001, 0x010000, CRC(729941e8) SHA1(30d1e76803154195492acacf8c911d1f70cb92f5) )
ROM_LOAD16_BYTE( "136068-1112.200w", 0x0a0000, 0x010000, CRC(e5ea74e4) SHA1(58a8c0f16573fcc2c8739e6f72e485271e45af88) )
ROM_LOAD16_BYTE( "136068-1111.210w", 0x0a0001, 0x010000, CRC(4d759891) SHA1(b82087d9549ccc2a7eef22591dd8b869f2768075) )
ROM_LOAD16_BYTE( "136068-1114.200x", 0x0c0000, 0x010000, CRC(293c153b) SHA1(6300a50766b19ad203b5c7da28d51bf22054b39e) )
ROM_LOAD16_BYTE( "136068-1113.210x", 0x0c0001, 0x010000, CRC(5630390d) SHA1(cd1932cee70cddd1fb2110d1aeebb573a13f1339) )
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) )
ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
ROM_REGION( 0x40000, "mainpcb:harddriv_sound:serialroms", 0 ) /* 4*128k for audio serial ROMs */
ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "harddrivc.200e", 0x000000, 0x000800, CRC(560a0106) SHA1(7295a4f1255869c43c3cf146ddebaea62c30b850) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "harddrivc.210e", 0x000000, 0x000800, CRC(208bba53) SHA1(c9a36015a66917df528b84d20d255b6b96a90e76) )
ROM_END
ROM_START( harddrivcg )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136068-2202.200r", 0x000000, 0x010000, CRC(ea09bdc2) SHA1(9e38ed0a47a2bfb6b80cbf1e0b3e891b94f30c10) )
ROM_LOAD16_BYTE( "136068-2201.210r", 0x000001, 0x010000, CRC(a5e9947f) SHA1(75973346c9399752d8ae82fbada3a24c6d5fec94) )
ROM_LOAD16_BYTE( "136068-2204.200s", 0x020000, 0x010000, CRC(65792c94) SHA1(89e93cf0d2afc4bd8a01155ba908c9aa7149dc78) )
ROM_LOAD16_BYTE( "136068-2203.210s", 0x020001, 0x010000, CRC(c93e36af) SHA1(51f96122b20cfacc6a7bc6e18c75bd57bb51bf11) )
ROM_LOAD16_BYTE( "136068-1112.200w", 0x0a0000, 0x010000, CRC(e5ea74e4) SHA1(58a8c0f16573fcc2c8739e6f72e485271e45af88) )
ROM_LOAD16_BYTE( "136068-1111.210w", 0x0a0001, 0x010000, CRC(4d759891) SHA1(b82087d9549ccc2a7eef22591dd8b869f2768075) )
ROM_LOAD16_BYTE( "136068-1114.200x", 0x0c0000, 0x010000, CRC(293c153b) SHA1(6300a50766b19ad203b5c7da28d51bf22054b39e) )
ROM_LOAD16_BYTE( "136068-1113.210x", 0x0c0001, 0x010000, CRC(5630390d) SHA1(cd1932cee70cddd1fb2110d1aeebb573a13f1339) )
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) )
ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
ROM_REGION( 0x40000, "mainpcb:harddriv_sound:serialroms", 0 ) /* 4*128k for audio serial ROMs */
ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "harddrivc.200e", 0x000000, 0x000800, CRC(560a0106) SHA1(7295a4f1255869c43c3cf146ddebaea62c30b850) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "harddrivc.210e", 0x000000, 0x000800, CRC(208bba53) SHA1(c9a36015a66917df528b84d20d255b6b96a90e76) )
ROM_END
ROM_START( harddrivcb )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136068-2102.200r", 0x000000, 0x010000, CRC(6252048b) SHA1(64caf3adfad6965768fc6d39a8bcde62fe6dfa9e) )
ROM_LOAD16_BYTE( "136068-2101.210r", 0x000001, 0x010000, CRC(4805ba06) SHA1(e0c2d935ced05b8162f2925520422184a81d5294) )
ROM_LOAD16_BYTE( "136068-2104.200s", 0x020000, 0x010000, CRC(8246f945) SHA1(633b6c9a5d3e33d3035ccdb7b6ad883c334a4db9) )
ROM_LOAD16_BYTE( "136068-2103.210s", 0x020001, 0x010000, CRC(729941e8) SHA1(30d1e76803154195492acacf8c911d1f70cb92f5) )
ROM_LOAD16_BYTE( "136068-2912.200w", 0x0a0000, 0x010000, CRC(ab060b8b) SHA1(84cbb5bd0114536869503afc4b9fbf6b55883afc) )
ROM_LOAD16_BYTE( "136068-2911.210w", 0x0a0001, 0x010000, CRC(4fea9caf) SHA1(f5c7d9b53334c7875f0662ec165458b03ab9c0d0) )
ROM_LOAD16_BYTE( "136068-2914.200x", 0x0c0000, 0x010000, CRC(dd2998a5) SHA1(36c71549d114309b9072ced83ed149cad1d23646) )
ROM_LOAD16_BYTE( "136068-2913.210x", 0x0c0001, 0x010000, CRC(a211754d) SHA1(b93d4867f664caa76f2170ef0934194de29a5516) )
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) )
ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
ROM_REGION( 0x40000, "mainpcb:harddriv_sound:serialroms", 0 ) /* 4*128k for audio serial ROMs */
ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "harddrivc.200e", 0x000000, 0x000800, CRC(560a0106) SHA1(7295a4f1255869c43c3cf146ddebaea62c30b850) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "harddrivc.210e", 0x000000, 0x000800, CRC(208bba53) SHA1(c9a36015a66917df528b84d20d255b6b96a90e76) )
ROM_END
ROM_START( harddrivc1 )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136068-1102.200r", 0x000000, 0x010000, CRC(f1d3779f) SHA1(1ab84fc920f6810aa7c1af80b0472ea17d07e58b) )
ROM_LOAD16_BYTE( "136068-1101.210r", 0x000001, 0x010000, CRC(3ea4d3d9) SHA1(3901e8c07bed35bf6a55ab92f5c7eb9335675792) )
ROM_LOAD16_BYTE( "136068-1104.200s", 0x020000, 0x010000, CRC(34133511) SHA1(71c56607cecd379761f700d181f6e91e7bb6fdfc) )
ROM_LOAD16_BYTE( "136068-1103.210s", 0x020001, 0x010000, CRC(05bb8376) SHA1(19bde6996b84368d28374a981dca88a946653dd2) )
ROM_LOAD16_BYTE( "136068-1112.200w", 0x0a0000, 0x010000, CRC(e5ea74e4) SHA1(58a8c0f16573fcc2c8739e6f72e485271e45af88) )
ROM_LOAD16_BYTE( "136068-1111.210w", 0x0a0001, 0x010000, CRC(4d759891) SHA1(b82087d9549ccc2a7eef22591dd8b869f2768075) )
ROM_LOAD16_BYTE( "136068-1114.200x", 0x0c0000, 0x010000, CRC(293c153b) SHA1(6300a50766b19ad203b5c7da28d51bf22054b39e) )
ROM_LOAD16_BYTE( "136068-1113.210x", 0x0c0001, 0x010000, CRC(5630390d) SHA1(cd1932cee70cddd1fb2110d1aeebb573a13f1339) )
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
ROM_LOAD16_BYTE( "136052-3122.70n", 0x000000, 0x008000, CRC(3f20a396) SHA1(f34819796087c543083f6baac6c778e0cdb7340a) )
ROM_LOAD16_BYTE( "136052-3121.45n", 0x000001, 0x008000, CRC(6346bca3) SHA1(707dc86305142722a4757ba431cf6c7e9cf116b3) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136052-1101.10h", 0x000000, 0x010000, CRC(1b77f171) SHA1(10434e492e4e9de5cd8543271914d5ba37c52b50) )
ROM_LOAD16_BYTE( "136052-1103.10k", 0x000001, 0x010000, CRC(e50bec32) SHA1(30c504c730e8e568e78e06c756a23b8923e85b4b) )
ROM_LOAD16_BYTE( "136052-1102.10j", 0x020000, 0x010000, CRC(998d3da2) SHA1(6ed560c2132e33858c91b1f4ab0247399665b5fd) )
ROM_LOAD16_BYTE( "136052-1104.10l", 0x020001, 0x010000, CRC(bc59a2b7) SHA1(7dfde5bbaa0cf349b1ef5d6b076baded7330376a) )
ROM_REGION( 0x40000, "mainpcb:harddriv_sound:serialroms", 0 ) /* 4*128k for audio serial ROMs */
ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "harddrivc.200e", 0x000000, 0x000800, CRC(560a0106) SHA1(7295a4f1255869c43c3cf146ddebaea62c30b850) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "harddrivc.210e", 0x000000, 0x000800, CRC(208bba53) SHA1(c9a36015a66917df528b84d20d255b6b96a90e76) )
ROM_END
ROM_START( stunrun )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
ROM_LOAD16_BYTE( "136070-6104.200s", 0x020000, 0x010000, CRC(f469f91c) SHA1(488ea6251ff4028edaf00bb1ded74cefdc71a373) )
ROM_LOAD16_BYTE( "136070-6103.210s", 0x020001, 0x010000, CRC(096aad68) SHA1(f83c9f61854dc9c1fa7dc668dbf99f4a4bbe79ca) )
ROM_LOAD16_BYTE( "136070-6106.200t", 0x040000, 0x010000, CRC(b445bae5) SHA1(d530b535a47c4920c43852e7904080e6abf30098) )
ROM_LOAD16_BYTE( "136070-6105.210t", 0x040001, 0x010000, CRC(42736c52) SHA1(42e0b451b172223cce9c43835363136146eeddba) )
ROM_LOAD16_BYTE( "136070-2108.200u", 0x060000, 0x010000, CRC(0ce849aa) SHA1(19252caf180586cadced5c456a755dd954267688) )
ROM_LOAD16_BYTE( "136070-2107.210u", 0x060001, 0x010000, CRC(19bc7495) SHA1(8a93bb8e0998b34c92dad263ea78972155c5b785) )
ROM_LOAD16_BYTE( "136070-2110.200v", 0x080000, 0x010000, CRC(4f6d22c5) SHA1(fd28782593444f1607f322a2f1971ba8f3d14131) )
ROM_LOAD16_BYTE( "136070-2109.210v", 0x080001, 0x010000, CRC(ac6d4d4a) SHA1(fef902700561bb789ff7462f30a438ee9138b472) )
ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
ROM_REGION( 0x10000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136070-2123.10c", 0x00000, 0x10000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
ROM_LOAD16_BYTE( "136070-2119.10k", 0x020001, 0x010000, CRC(bde8bd31) SHA1(efb8878382adfe16ba590a28a949029749fc6a63) )
ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_END
ROM_START( stunrunj )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136070-3402.200r", 0x000000, 0x010000, CRC(d8d56923) SHA1(248b22dab791c2d9ee6e6097dac9f3bf85d572be) )
ROM_LOAD16_BYTE( "136070-3401.210r", 0x000001, 0x010000, CRC(ce11126c) SHA1(cf27b56103048cc23dc6763763b7419583a27c76) )
ROM_LOAD16_BYTE( "136070-7404.200s", 0x020000, 0x010000, CRC(81da3e74) SHA1(38864aac479a8927d168ee977fd0981a7926d0fd) )
ROM_LOAD16_BYTE( "136070-7403.210s", 0x020001, 0x010000, CRC(54878b3b) SHA1(42301d10c41ded3741821b52ae191dc46fa417d6) )
ROM_LOAD16_BYTE( "136070-7406.200t", 0x040000, 0x010000, CRC(8e3352b9) SHA1(07d2d9b1b96ff21d4ce7f16469451c58229a672c) )
ROM_LOAD16_BYTE( "136070-7405.210t", 0x040001, 0x010000, CRC(f40499b1) SHA1(e6d6975da3a1f04460cd6ffb4616a7f27d1af688) )
ROM_LOAD16_BYTE( "136070-2108.200u", 0x060000, 0x010000, CRC(0ce849aa) SHA1(19252caf180586cadced5c456a755dd954267688) )
ROM_LOAD16_BYTE( "136070-2107.210u", 0x060001, 0x010000, CRC(19bc7495) SHA1(8a93bb8e0998b34c92dad263ea78972155c5b785) )
ROM_LOAD16_BYTE( "136070-2110.200v", 0x080000, 0x010000, CRC(4f6d22c5) SHA1(fd28782593444f1607f322a2f1971ba8f3d14131) )
ROM_LOAD16_BYTE( "136070-2109.210v", 0x080001, 0x010000, CRC(ac6d4d4a) SHA1(fef902700561bb789ff7462f30a438ee9138b472) )
ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
ROM_REGION( 0x10000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136070-2123.10c", 0x00000, 0x10000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
ROM_LOAD16_BYTE( "136070-2119.10k", 0x020001, 0x010000, CRC(bde8bd31) SHA1(efb8878382adfe16ba590a28a949029749fc6a63) )
ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_END
ROM_START( stunrun5 )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
ROM_LOAD16_BYTE( "136070-5104.200s", 0x020000, 0x010000, CRC(d5c601fe) SHA1(ab61e11723ab9b92fb98b6f8e520a7b323caae64) )
ROM_LOAD16_BYTE( "136070-5103.210s", 0x020001, 0x010000, CRC(19d040d6) SHA1(029d6b341a2d7b0d766538395af75ddeec9cca31) )
ROM_LOAD16_BYTE( "136070-5106.200t", 0x040000, 0x010000, CRC(9167a032) SHA1(6d5a273ea37e67fe47b5d0428e34302a53332adf) )
ROM_LOAD16_BYTE( "136070-5105.210t", 0x040001, 0x010000, CRC(f935d15a) SHA1(6bb102db450da9c5d34d5a293c379343aac6a853) )
ROM_LOAD16_BYTE( "136070-2108.200u", 0x060000, 0x010000, CRC(0ce849aa) SHA1(19252caf180586cadced5c456a755dd954267688) )
ROM_LOAD16_BYTE( "136070-2107.210u", 0x060001, 0x010000, CRC(19bc7495) SHA1(8a93bb8e0998b34c92dad263ea78972155c5b785) )
ROM_LOAD16_BYTE( "136070-2110.200v", 0x080000, 0x010000, CRC(4f6d22c5) SHA1(fd28782593444f1607f322a2f1971ba8f3d14131) )
ROM_LOAD16_BYTE( "136070-2109.210v", 0x080001, 0x010000, CRC(ac6d4d4a) SHA1(fef902700561bb789ff7462f30a438ee9138b472) )
ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
ROM_REGION( 0x10000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136070-2123.10c", 0x00000, 0x10000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
ROM_LOAD16_BYTE( "136070-2119.10k", 0x020001, 0x010000, CRC(bde8bd31) SHA1(efb8878382adfe16ba590a28a949029749fc6a63) )
ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_END
ROM_START( stunrune )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
ROM_LOAD16_BYTE( "136070-5004.200s", 0x020000, 0x010000, CRC(c2e4bde8) SHA1(766242455b0be6dc7b698cc6fe86d90991ca2e0a) )
ROM_LOAD16_BYTE( "136070-5003.210s", 0x020001, 0x010000, CRC(0c902d21) SHA1(e56efc34a746718a844558c2df65fd560834c26e) )
ROM_LOAD16_BYTE( "136070-5006.200t", 0x040000, 0x010000, CRC(b0fc2fcc) SHA1(780d5358afcbfdc02226614c9a6b29c79f4cce69) )
ROM_LOAD16_BYTE( "136070-5005.210t", 0x040001, 0x010000, CRC(44f290e3) SHA1(cd96c9058ccb8084ab6761528d20528ab2b987a2) )
ROM_LOAD16_BYTE( "136070-2108.200u", 0x060000, 0x010000, CRC(0ce849aa) SHA1(19252caf180586cadced5c456a755dd954267688) )
ROM_LOAD16_BYTE( "136070-2107.210u", 0x060001, 0x010000, CRC(19bc7495) SHA1(8a93bb8e0998b34c92dad263ea78972155c5b785) )
ROM_LOAD16_BYTE( "136070-2110.200v", 0x080000, 0x010000, CRC(4f6d22c5) SHA1(fd28782593444f1607f322a2f1971ba8f3d14131) )
ROM_LOAD16_BYTE( "136070-2109.210v", 0x080001, 0x010000, CRC(ac6d4d4a) SHA1(fef902700561bb789ff7462f30a438ee9138b472) )
ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
ROM_REGION( 0x10000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136070-2123.10c", 0x00000, 0x10000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
ROM_LOAD16_BYTE( "136070-2119.10k", 0x020001, 0x010000, CRC(bde8bd31) SHA1(efb8878382adfe16ba590a28a949029749fc6a63) )
ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_END
ROM_START( stunrun4 )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
ROM_LOAD16_BYTE( "136070-4104.200s", 0x020000, 0x010000, CRC(62c7700b) SHA1(31d7a39df7353e60b806c204bfdd75c06b17c984) )
ROM_LOAD16_BYTE( "136070-4103.210s", 0x020001, 0x010000, CRC(f379fcb9) SHA1(20a1b6775cc517ca159f5d233db3e3e864198125) )
ROM_LOAD16_BYTE( "136070-4106.200t", 0x040000, 0x010000, CRC(4346669c) SHA1(13c19bbb9235879829d96fd4e227b725d13bb869) )
ROM_LOAD16_BYTE( "136070-4105.210t", 0x040001, 0x010000, CRC(54d823dd) SHA1(5f9702b7a593009703a94987d56bc8ab3b72997d) )
ROM_LOAD16_BYTE( "136070-2108.200u", 0x060000, 0x010000, CRC(0ce849aa) SHA1(19252caf180586cadced5c456a755dd954267688) )
ROM_LOAD16_BYTE( "136070-2107.210u", 0x060001, 0x010000, CRC(19bc7495) SHA1(8a93bb8e0998b34c92dad263ea78972155c5b785) )
ROM_LOAD16_BYTE( "136070-2110.200v", 0x080000, 0x010000, CRC(4f6d22c5) SHA1(fd28782593444f1607f322a2f1971ba8f3d14131) )
ROM_LOAD16_BYTE( "136070-2109.210v", 0x080001, 0x010000, CRC(ac6d4d4a) SHA1(fef902700561bb789ff7462f30a438ee9138b472) )
ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
ROM_REGION( 0x10000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136070-2123.10c", 0x00000, 0x10000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
ROM_LOAD16_BYTE( "136070-2119.10k", 0x020001, 0x010000, CRC(bde8bd31) SHA1(efb8878382adfe16ba590a28a949029749fc6a63) )
ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_END
ROM_START( stunrun3 )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
ROM_LOAD16_BYTE( "136070-2104.200s", 0x020000, 0x010000, CRC(6acdeeaa) SHA1(a4cbe648ad2fee3bb945fbc8055b76be1f5c03d1) )
ROM_LOAD16_BYTE( "136070-3103.210s", 0x020001, 0x010000, CRC(e8b1262a) SHA1(a304602023ffa8598dee8ec44f972dc8f1dad1b6) )
ROM_LOAD16_BYTE( "136070-3106.200t", 0x040000, 0x010000, CRC(41c4778c) SHA1(f453adca7d864e0e030db36500ca072bfa935703) )
ROM_LOAD16_BYTE( "136070-3105.210t", 0x040001, 0x010000, CRC(0d6c9b8f) SHA1(6e7e664ff5c19fdeaa4d82a02be9d74cea025fff) )
ROM_LOAD16_BYTE( "136070-2108.200u", 0x060000, 0x010000, CRC(0ce849aa) SHA1(19252caf180586cadced5c456a755dd954267688) )
ROM_LOAD16_BYTE( "136070-2107.210u", 0x060001, 0x010000, CRC(19bc7495) SHA1(8a93bb8e0998b34c92dad263ea78972155c5b785) )
ROM_LOAD16_BYTE( "136070-2110.200v", 0x080000, 0x010000, CRC(4f6d22c5) SHA1(fd28782593444f1607f322a2f1971ba8f3d14131) )
ROM_LOAD16_BYTE( "136070-2109.210v", 0x080001, 0x010000, CRC(ac6d4d4a) SHA1(fef902700561bb789ff7462f30a438ee9138b472) )
ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
ROM_REGION( 0x10000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136070-2123.10c", 0x00000, 0x10000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
ROM_LOAD16_BYTE( "136070-2119.10k", 0x020001, 0x010000, CRC(bde8bd31) SHA1(efb8878382adfe16ba590a28a949029749fc6a63) )
ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_END
ROM_START( stunrun3e )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
ROM_LOAD16_BYTE( "136070-3004.200s", 0x020000, 0x010000, CRC(d9474678) SHA1(090b78f9e9d2ecf4218821fc102861df1e27d95a) )
ROM_LOAD16_BYTE( "136070-3003.210s", 0x020001, 0x010000, CRC(3155287d) SHA1(6a612ab0bcbf425ee5d6a2e5da81ca33f53b3889) )
ROM_LOAD16_BYTE( "136070-3006.200t", 0x040000, 0x010000, CRC(617db84c) SHA1(ca4bbb1ecb528980cf98aaaad06636ce3c16eba3) )
ROM_LOAD16_BYTE( "136070-3005.210t", 0x040001, 0x010000, CRC(a9cd8fcb) SHA1(50a3ef321a3cb381df96aef9c8e180e23e442c3a) )
ROM_LOAD16_BYTE( "136070-2108.200u", 0x060000, 0x010000, CRC(0ce849aa) SHA1(19252caf180586cadced5c456a755dd954267688) )
ROM_LOAD16_BYTE( "136070-2107.210u", 0x060001, 0x010000, CRC(19bc7495) SHA1(8a93bb8e0998b34c92dad263ea78972155c5b785) )
ROM_LOAD16_BYTE( "136070-2110.200v", 0x080000, 0x010000, CRC(4f6d22c5) SHA1(fd28782593444f1607f322a2f1971ba8f3d14131) )
ROM_LOAD16_BYTE( "136070-2109.210v", 0x080001, 0x010000, CRC(ac6d4d4a) SHA1(fef902700561bb789ff7462f30a438ee9138b472) )
ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
ROM_REGION( 0x10000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136070-2123.10c", 0x00000, 0x10000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
ROM_LOAD16_BYTE( "136070-2119.10k", 0x020001, 0x010000, CRC(bde8bd31) SHA1(efb8878382adfe16ba590a28a949029749fc6a63) )
ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_END
ROM_START( stunrun2 )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
ROM_LOAD16_BYTE( "136070-2104.200s", 0x020000, 0x010000, CRC(6acdeeaa) SHA1(a4cbe648ad2fee3bb945fbc8055b76be1f5c03d1) )
ROM_LOAD16_BYTE( "136070-2103.210s", 0x020001, 0x010000, CRC(75e08b1d) SHA1(42d78d65697117829a6ea3c6db589ad35a2d306d) )
ROM_LOAD16_BYTE( "136070-2106.200t", 0x040000, 0x010000, CRC(ae8fa7ca) SHA1(a86de221d79d295bff3ba2026e45124fde340eac) )
ROM_LOAD16_BYTE( "136070-2105.210t", 0x040001, 0x010000, CRC(22d6b977) SHA1(916eff6557cd20c708408bff77a2536122ada9c2) )
ROM_LOAD16_BYTE( "136070-2108.200u", 0x060000, 0x010000, CRC(0ce849aa) SHA1(19252caf180586cadced5c456a755dd954267688) )
ROM_LOAD16_BYTE( "136070-2107.210u", 0x060001, 0x010000, CRC(19bc7495) SHA1(8a93bb8e0998b34c92dad263ea78972155c5b785) )
ROM_LOAD16_BYTE( "136070-2110.200v", 0x080000, 0x010000, CRC(4f6d22c5) SHA1(fd28782593444f1607f322a2f1971ba8f3d14131) )
ROM_LOAD16_BYTE( "136070-2109.210v", 0x080001, 0x010000, CRC(ac6d4d4a) SHA1(fef902700561bb789ff7462f30a438ee9138b472) )
ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
ROM_REGION( 0x10000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136070-2123.10c", 0x00000, 0x10000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
ROM_LOAD16_BYTE( "136070-2119.10k", 0x020001, 0x010000, CRC(bde8bd31) SHA1(efb8878382adfe16ba590a28a949029749fc6a63) )
ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_END
ROM_START( stunrun2e )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
ROM_LOAD16_BYTE( "136070-2004.200s", 0x020000, 0x010000, CRC(30303326) SHA1(49a279b5b02af97395dfb8c66410319a807aa4b9) )
ROM_LOAD16_BYTE( "136070-2003.210s", 0x020001, 0x010000, CRC(f29b54c1) SHA1(6339283ecc22cdad0ef6b9142f8d083e3a57b232) )
ROM_LOAD16_BYTE( "136070-2006.200t", 0x040000, 0x010000, CRC(812bd4f7) SHA1(af87c137883dfecc97a96858b8e685993b8526e3) )
ROM_LOAD16_BYTE( "136070-2005.210t", 0x040001, 0x010000, CRC(4aab737f) SHA1(6df23b6a43527b9d27d95393b3f5e0fb90002e1e) )
ROM_LOAD16_BYTE( "136070-2108.200u", 0x060000, 0x010000, CRC(0ce849aa) SHA1(19252caf180586cadced5c456a755dd954267688) )
ROM_LOAD16_BYTE( "136070-2107.210u", 0x060001, 0x010000, CRC(19bc7495) SHA1(8a93bb8e0998b34c92dad263ea78972155c5b785) )
ROM_LOAD16_BYTE( "136070-2110.200v", 0x080000, 0x010000, CRC(4f6d22c5) SHA1(fd28782593444f1607f322a2f1971ba8f3d14131) )
ROM_LOAD16_BYTE( "136070-2109.210v", 0x080001, 0x010000, CRC(ac6d4d4a) SHA1(fef902700561bb789ff7462f30a438ee9138b472) )
ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
ROM_REGION( 0x10000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136070-2123.10c", 0x00000, 0x10000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
ROM_LOAD16_BYTE( "136070-2119.10k", 0x020001, 0x010000, CRC(bde8bd31) SHA1(efb8878382adfe16ba590a28a949029749fc6a63) )
ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_END
ROM_START( stunrun0 )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
ROM_LOAD16_BYTE( "136070-0304.200s", 0x020000, 0x010000, CRC(e7968b1b) SHA1(f2e5b4f64e553041abbe2610968f59cca425a4d4) )
ROM_LOAD16_BYTE( "136070-0303.210s", 0x020001, 0x010000, CRC(315209b6) SHA1(fab76c8f8a72895ded7ec4662cafc68379fea58c) )
ROM_LOAD16_BYTE( "136070-0306.200t", 0x040000, 0x010000, CRC(d46669df) SHA1(b03e4f230d7acdbc9ef794b027a0a9a4c5090c46) )
ROM_LOAD16_BYTE( "136070-0305.210t", 0x040001, 0x010000, CRC(bf35eb46) SHA1(03dae6c794ee057faa4aafba0c9dc92b00e66a13) )
ROM_LOAD16_BYTE( "136070-2108.200u", 0x060000, 0x010000, CRC(0ce849aa) SHA1(19252caf180586cadced5c456a755dd954267688) )
ROM_LOAD16_BYTE( "136070-2107.210u", 0x060001, 0x010000, CRC(19bc7495) SHA1(8a93bb8e0998b34c92dad263ea78972155c5b785) )
ROM_LOAD16_BYTE( "136070-2110.200v", 0x080000, 0x010000, CRC(4f6d22c5) SHA1(fd28782593444f1607f322a2f1971ba8f3d14131) )
ROM_LOAD16_BYTE( "136070-2109.210v", 0x080001, 0x010000, CRC(ac6d4d4a) SHA1(fef902700561bb789ff7462f30a438ee9138b472) )
ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
ROM_REGION( 0x10000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136070-2123.10c", 0x00000, 0x10000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
ROM_LOAD16_BYTE( "136070-2119.10k", 0x020001, 0x010000, CRC(bde8bd31) SHA1(efb8878382adfe16ba590a28a949029749fc6a63) )
ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_END
ROM_START( stunrunp )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136070-2102.200r", 0x000000, 0x010000, CRC(e0ed54d8) SHA1(15850568d8308b6499cbe55b5d8308041d906a29) )
ROM_LOAD16_BYTE( "136070-2101.210r", 0x000001, 0x010000, CRC(3008bcf8) SHA1(9d3a20b639969bab68441f76467ed60e395c10e3) )
ROM_LOAD16_BYTE( "prog-hi0.s20", 0x020000, 0x010000, CRC(0be15a99) SHA1(52b152b23af305e95765c72052bb7aba846510d6) )
ROM_LOAD16_BYTE( "prog-lo0.s21", 0x020001, 0x010000, CRC(757c0840) SHA1(aaad808cef825d9690667b47eba8920443906fbe) )
ROM_LOAD16_BYTE( "prog-hi.t20", 0x040000, 0x010000, CRC(49bcde9d) SHA1(d3276b1be4a7dd5e46aaecf793fd239ca4a646b7) )
ROM_LOAD16_BYTE( "prog-lo1.t21", 0x040001, 0x010000, CRC(3bdafd89) SHA1(3934cf38445c2d9bc9a152e5da42ebf7a709b74c) )
ROM_LOAD16_BYTE( "136070-2108.200u", 0x060000, 0x010000, CRC(0ce849aa) SHA1(19252caf180586cadced5c456a755dd954267688) )
ROM_LOAD16_BYTE( "136070-2107.210u", 0x060001, 0x010000, CRC(19bc7495) SHA1(8a93bb8e0998b34c92dad263ea78972155c5b785) )
ROM_LOAD16_BYTE( "136070-2110.200v", 0x080000, 0x010000, CRC(4f6d22c5) SHA1(fd28782593444f1607f322a2f1971ba8f3d14131) )
ROM_LOAD16_BYTE( "136070-2109.210v", 0x080001, 0x010000, CRC(ac6d4d4a) SHA1(fef902700561bb789ff7462f30a438ee9138b472) )
ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
ROM_REGION( 0x10000, "mainpcb:jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136070-2123.10c", 0x00000, 0x10000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136070-2121.90h", 0x000000, 0x010000, CRC(0ebf8e58) SHA1(b6bf3e020b29a34ef3eaca6b5e1f17bb89fdc476) )
ROM_LOAD16_BYTE( "136070-2118.90k", 0x000001, 0x010000, CRC(fb98abaf) SHA1(6a141effee644f34634b57d1fe4c03f56981f966) )
ROM_LOAD16_BYTE( "136070-2122.10h", 0x020000, 0x010000, CRC(bd5380bd) SHA1(e1e2b3c9f9bfc988f0dcc9a9f520f51957e13a97) )
ROM_LOAD16_BYTE( "136070-2119.10k", 0x020001, 0x010000, CRC(bde8bd31) SHA1(efb8878382adfe16ba590a28a949029749fc6a63) )
ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
ROM_REGION( 0x40000, "mainpcb:jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
ROM_LOAD( "136070-2127.1cd", 0x030000, 0x010000, CRC(3e419f4e) SHA1(e382e047f02591a934a53e5fbf07cccf285abb29) )
ROM_REGION( 0x800, "mainpcb:200e", 0 )
ROM_LOAD( "stunrun.200e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_REGION( 0x800, "mainpcb:210e", 0 )
ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_END
ROM_START( racedriv )
ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) /* 1MB for 68000 code */
ROM_LOAD16_BYTE( "136077-5002.200r", 0x000000, 0x010000, CRC(0a78adca) SHA1(a44722340ff7c99253107be092bec2e87cae340b) )
ROM_LOAD16_BYTE( "136077-5001.210r", 0x000001, 0x010000, CRC(74b4cd49) SHA1(48fc4344c092c9eb14249874ac305b87bba53e7e) )
ROM_LOAD16_BYTE( "136077-5004.200s", 0x020000, 0x010000, CRC(c0cbdf4e) SHA1(8c7f4f79e90dc7206d9d83d588822000a7a53c52) )
ROM_LOAD16_BYTE( "136077-5003.210s", 0x020001, 0x010000, CRC(28eeff77) SHA1(ccbc021c1230f5fbc2f51bdd4b82014f4a043d4a) )
ROM_LOAD16_BYTE( "136077-5006.200t", 0x040000, 0x010000, CRC(11cd9323) SHA1(43bdefb159c2a1c3cb07a629b8b924cdc29606f5) )
ROM_LOAD16_BYTE( "136077-5005.210t", 0x040001, 0x010000, CRC(49c33786) SHA1(9597b5b3d4b3bd113c60ba9bd7689c331bf26bbb) )
ROM_LOAD16_BYTE( "136077-4008.200u", 0x060000, 0x010000, CRC(aef71435) SHA1(7aa17ce2807bc9d8cd2721c8b709b5056f561055) )
ROM_LOAD16_BYTE( "136077-4007.210u", 0x060001, 0x010000, CRC(446e62fb) SHA1(af2464035f35467da6ce1073ce00d60ceb7666ea) )
ROM_LOAD16_BYTE( "136077-4010.200v", 0x080000, 0x010000, CRC(e7e03770) SHA1(98cbe3169efcb143f0b59b3154e5ea61f3c12f62) )
ROM_LOAD16_BYTE( "136077-4009.210v", 0x080001, 0x010000, CRC(5dd8ebe4) SHA1(98faf28169d16e88280fcd131c5988f040f48ad9) )
ROM_LOAD16_BYTE( "136077-1012.200w", 0x0a0000, 0x010000, CRC(9a78b952) SHA1(53270d4d8c28579ebda477a63c034f6d1b9e5a58) )
ROM_LOAD16_BYTE( "136077-1011.210w", 0x0a0001, 0x010000, CRC(c5cd5491) SHA1(ede5a3bb888342032d6758b0fb149451b6543d8b) )
ROM_LOAD16_BYTE( "136077-1014.200x", 0x0c0000, 0x010000, CRC(a872792a) SHA1(9269e397567940013e5f46cadfe2bad2ca1a2bc4) )
ROM_LOAD16_BYTE( "136077-1013.210x", 0x0c0001, 0x010000, CRC(ca7b3e53) SHA1(cdb3a6360893fd3dd2947c050dca8a4dfaa9ced9) )
ROM_LOAD16_BYTE( "136077-1016.200y", 0x0e0000, 0x010000, CRC(e83a9c99) SHA1(1d4093902133bb6da981f294e6947544c3564393) )
ROM_LOAD16_BYTE( "136077-4015.210y", 0x0e0001, 0x010000, CRC(725806f3) SHA1(0fa4601465dc94f27c71db789ad625bbcd254169) )
ROM_REGION( 0x2000, "mainpcb:asic65:asic65cpu", 0 ) /* ASIC65 TMS32015 code */
ROM_LOAD( "136077-1027.30j", 0x00000, 0x02000, NO_DUMP )
ROM_REGION( 0x20000, "mainpcb:harddriv_sound:soundcpu", 0 ) /* 2*64k for audio 68000 code */
ROM_LOAD16_BYTE( "136077-1032.70n", 0x000000, 0x008000, CRC(fbc903a6) SHA1(047240a5192918ced52d90b0555ba2e19a26329e) )
ROM_LOAD16_BYTE( "136077-1033.45n", 0x000001, 0x008000, CRC(e032ca7c) SHA1(a80c980c8e58cf8cada72140e42a3cd1ea987b3d) )
ROM_REGION16_BE( 0x60000, "mainpcb:user1", 0 ) /* 384k for ADSP object ROM */
ROM_LOAD16_BYTE( "136077-2021.10h", 0x000000, 0x010000, CRC(8b2a98da) SHA1(264b7ec218e423ea85c54e586f8ff091f033d472) )
ROM_LOAD16_BYTE( "136077-2023.10k", 0x000001, 0x010000, CRC(c6d83d38) SHA1(e42c186a7fc0d88982b26eafdb834406b4ed3c8a) )
ROM_LOAD16_BYTE( "136077-1022.10j", 0x020000, 0x010000, CRC(c0393c31) SHA1(31726c01eb0d4650936908c90d45161197b7efba) )
ROM_LOAD16_BYTE( "136077-1024.10l", 0x020001, 0x010000, CRC(1e2fb25f) SHA1(4940091bbad6144bce091d2737191d266d4b0310) )
ROM_REGION16_BE( 0x50000, "mainpcb:user3", 0 ) /* 256k for DSK ROMs + 64k for RAM */
ROM_LOAD16_BYTE( "136077-4030.30e", 0x000000, 0x010000, CRC(4207c784) SHA1(5ec410bd75c281ac57d9856d08ce65431f3af994) )
ROM_LOAD16_BYTE( "136077-4031.10e", 0x000001, 0x010000, CRC(796486b3) SHA1(937e27c012c5fb457bee1b43fc8e075b3e9405b4) )
ROM_REGION( 0x50000, "mainpcb:harddriv_sound:serialroms", 0 ) /* 10*128k for audio serial ROMs */
ROM_LOAD( "136052-1123.65a", 0x000000, 0x010000, CRC(a88411dc) SHA1(1fd53c7eadffa163d5423df2f8338757e58d5f2e) )
ROM_LOAD( "136052-1124.55a", 0x010000, 0x010000, CRC(071a4309) SHA1(c623bd51d6a4a56503fbf138138854d6a30b11d6) )
ROM_LOAD( "136052-3125.45a", 0x020000, 0x010000, CRC(856548ff) SHA1(e8a17b274185c5e4ecf5f9f1c211e18b3ef2456d) )
ROM_LOAD( "136052-1126.30a", 0x030000, 0x010000, CRC(f46ef09c) SHA1(ba62f73ee3b33d8f26b430ffa468f8792dca23de) )
ROM_LOAD( "136077-1017.45c", 0x040000, 0x010000,