summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/namcos23.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/namcos23.cpp')
-rw-r--r--src/mame/drivers/namcos23.cpp5421
1 files changed, 0 insertions, 5421 deletions
diff --git a/src/mame/drivers/namcos23.cpp b/src/mame/drivers/namcos23.cpp
deleted file mode 100644
index 183ccc34269..00000000000
--- a/src/mame/drivers/namcos23.cpp
+++ /dev/null
@@ -1,5421 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:R. Belmont, Phil Stroffolino, Olivier Galibert
-/*
- Namco System 22.5 and (Super) System 23 (Evolution 2)
- Extremely preliminary driver by R. Belmont, thanks to Phil Stroffolino & Olivier Galibert
-
- Hardware: * R4650 (MIPS III with IDT special instructions) main CPU.
- 133 MHz for Gorgon, 166 MHz for System 23 and Super System 23, and
- 200 MHz for Super System 23 Evolution 2.
- * H8/3002 MCU for sound/inputs
- * Custom polygon hardware
- * 1 text tilemap
-
- Gorgon and System 23 use an I/O board based on the Namco C78, which is a Renesas H8/3334 MCU
- (8-bit version of the H8/3002).
-
- Super System 23 uses a PIC16Cxx-based I/O board. In both cases the I/O boards' MCUs apparently are connected
- to the H8/3002's serial port, similar to System 22 where one 37702 reads the I/O and communicates serially
- with the second 37702 which is the traditional "subcpu".
-
- NOTES:
- - First 128k of main program ROM is the BIOS, and after that is a 64-bit MIPS ELF image.
- - Text layer is identical to System 22 & Super System 22.
-
- TODO:
- - There are currently no differences seen between System 23 (Time Crisis 2) and
- Super System 23 (GP500, Final Furlong 2). These will presumably appear when
- the 3D hardware is emulated.
-
- - Serial number data is at offset 0x201 in the BIOS. Until the games are running
- and displaying it I'm not going to meddle with it though.
-
- - Add the sh2 in Gunmen Wars (no ROM, controls the camera)
-
- - Super System 23 tests irqs in the post. timecrs2v4a's code can
- potentially test 7 sources, but only actually test 5. With each
- source there is code to clear the interrupt and code to raise it.
- Levels 0 and 1 are not connected to anything according to the code.
-
- VBlank (level 2):
- clear: ad00000a.h = 0
- raise: just wait for it
-
- C361 (level 3):
- clear: a6820008.h = 1ff
- a100005c.w = 0
- a100005c.w = 1
- a4c3ff04.w = 0
- raise: a6820008.h = c8
- a100005c.w = 1
-
- Subcpu (level 3, same as C361):
- clear: same as C361
- raise: a4405002.h = 3170
-
- C435 (level 4):
- clear: a200000e.h = 1
- a200000e.h = 0
- raise: a2000000.h = 4f02 (c435 pio, state_set)
- a2000000.h = 1 ( interrupt)
- a2000000.h = 1 ( raise)
-
- C422 (level 5):
- clear: a6400002.h = f
- ad000008.h = 0
- raise: a640000e.h = 0
- a6400006.h = 1
- a640000a.h = 1
- a6400006.h = fffb
- a6400006.h = 0
-
- RS232 (level 6, not tested by timecrs2v4a):
- clear: nothing
- raise: nothing
-
- Timer (level 7, not tested by timecrs2v4a):
- clear: c0.Compare = 10d880
- raise: c0.Count = 10c8e0
- c0.Compare = 10d880
-
- Downhill bikers irq ack on level 3:
- check ad000000 & 0400
- if not, a4c3ff04 = 0
- check ad000000 & 0800
- if not, read a682000a, wait until it stops changing (?)
- return
-
-
-c8000000:
- 8011e384:
- if((a2000000.w & 0xfff0 != 0x0080) (c417_r, 808e or 008e)
- +10.w = 2
- +16.w = 42
- +16.w = 23c0
- +10.w = 3
- 801deaf0.w *0x28 -> +12.w (fixed)
-
-
-
-
-':maincpu' (801142FC): unmapped program memory write to 0C800010 = 00020000 & FFFF0000
-':maincpu' (801143A8): unmapped program memory write to 0C800010 = 00020000 & FFFF0000
-':maincpu' (801143B4): unmapped program memory write to 0C800014 = 00000042 & 0000FFFF
-':maincpu' (801143C0): unmapped program memory write to 0C800014 = 000023C0 & 0000FFFF
-':maincpu' (801143CC): unmapped program memory write to 0C800010 = 00030000 & FFFF0000
-':maincpu' (801143E0): unmapped program memory write to 0C800010 = 00000000 & 0000FFFF
-':maincpu' (801143E0): unmapped program memory write to 0C800010 = 00000000 & 0000FFFF
-':maincpu' (801143E0): unmapped program memory write to 0C800010 = 00000000 & 0000FFFF
-':maincpu' (801143E0): unmapped program memory write to 0C800010 = 00000000 & 0000FFFF
-
-****************************************************************************
-
-Namco System 23 and Super System 23 Hardware Overview (last updated 7th April 2013 at 12.49am)
-Namco, 1997 - 2000
-
-Note! This document is a Work-In-Progress and will be updated from time to time when more games are available.
-
-This document covers all the known Namco Gorgon / System 23 / Super System 23 games, including....
-Final Furlong Namco, 1997 System 22.5/Gorgon
-Rapid River Namco, 1997 System 22.5/Gorgon
-Motocross Go! Namco, 1997 System 23
-Time Crisis II Namco, 1997 System 23 and Super System 23
-Downhill Bikers Namco, 1997 System 23
-Panic Park Namco, 1998 System 23
-Angler King Namco, 1998 Super System 23
-Gunmen Wars Namco, 1998 Super System 23
-Race On! Namco, 1998 Super System 23
-500 GP Namco, 1998 Super System 23
-Final Furlong 2 Namco, 1998 Super System 23
-*Guitar Jam Namco, 1999 Super System 23
-Crisis Zone Namco, 1999 System 23 Evolution 2
-
-* - Guitar Jam is not dumped yet and the hardware type is not confirmed.
- According to Bandai Namco's website it is indeed SS23, and includes an extra sound board with Zoom Corp. DSP.
-
-A System 23 unit is comprised of some of the following pieces....
-- V185B EMI PCB Small PCB bolted to the metal box with several connectors including power in, video out, network in/out, sound out
- (to AMP PCB) used with most of the S23/SS23 games that use a single main PCB and no other control PCBs.
-- V198 EMI PCB Small PCB bolted to the metal box with several connectors (power/video/sound etc) plus a couple of extra
- ones for the CCD camera and feedback board. It is connected to the main and GMEN boards on the other side via
- 2 multi-pin connectors (used only with games that use the GMEN board)
-- BASS AMP PCB Power AMP PCB for general sounds and bass
-- SYSTEM23 MAIN PCB Main PCB for System 23 \
- or SystemSuper23 MAIN(1) PCB Main PCB for Super System 23 / Note the 3 main boards are similar, but not exactly the same.
- or System23Evolution2 PCB Main PCB for System 23 Evolution 2 /
-- MSPM(FR*) PCB A small plug-in daughterboard that holds FLASHROMs containing Main CPU and Sound CPU programs
-- FCA PCB Controls & I/O interface board used with a few Super System 23 games only. Contains mostly transistors,
- caps, resistors, several connectors, an MCU and a PIC16F84.
- The PIC is different for EACH game and the FCA PCBs are not interchangeable between different games.
- If the FCA PCB is not connected, the game will not advance past the 3rd screen shown below.
-- ASCA-3A PCB / ASCA-4A PCB This is the standard I/O board used with most of the S23/SS23 games with support for digital and
- analog controls (buttons/joysticks/pots etc).
-- V185 I/O PCB Gun I/O board used with Time Crisis II
-- V221 MIU PCB Gun I/O board used with Crisis Zone (System 23 Evolution 2) and Time Crisis 3 (on System 246)
-- SYSTEM23 MEM(M) PCB Holds mask ROMs for GFX/Sound and associated logic
- Note that in Super System23, the MEM(M) PCB is re-used from System23.
- On Super System23, there is a sticker over the System23 part labelled 'SystemSuper23' and one
- PAL is not populated.
-- GMEN PCB A large board that sits on top of the main board containing a SH2 CPU, some RAM and a few CPLDs/FPGAs.
- This controls the video overlay from the CCD camera in Gunmen Wars, Race On! and Final Furlong 2.
- The ROM board plugs in on top of this board.
-- V194 STR PCB Used with Race On! to control the steering feed-back. An identical re-labelled PCB (V257) with
- different SOP44 ROMs is used with Wangan Midnight (Chihiro) and Ridge Racer V (System 246)
-
-The metal box housing these PCB's is approximately the same size as Super System 22. However, the box is mostly
-empty. All of the CPU/Video/DSP hardware is located on the main PCB which is the same size as the
-Super System 22 CPU board. The ROM PCB is half the size of the Super System22 ROM PCB. The ROM positions on it
-can be configured for either 32MBit or 64MBit SOP44 mask ROMs with a maximum capacity of 1664MBits.
-The system also uses a dual pipeline graphics bus similar to Super System 22 and has two copies of the graphics ROMs
-on the PCB.
-The System 23 hardware is the first NAMCO system to require an external 3.3V power source. Previously the 3.3V
-was derived from a 5V to 3.3V regulator on systems such as System10/11/12 etc.
-The KEYCUS chip is the familiar MACH211 PLCC44 IC as used on System12. The sound system is also taken from System12.
-
-On bootup, the following happens (on GP500)...
-
-1st screen - Grey screen with white text
- "SYSTEM 23 BOOTING "
- "SDRAM CHECKING A0xx000" (xx = slowly counts up to 3F, from 00), then OK ('CHECKING' is in yellow text, 'OK' is in green text)
- As the SDRAM is being checked, the LEDS 1 to 8 turn off in sequence from 8 to 1.
-
-2nd screen - Grey screen with white text
- "S.S.23 POWER ON TEST xxxx" (xxxx = numbers count up rapidly from 0000)
- "(C) NAMCO "
- " VER. 1.16"
- As these checks happen, the LEDs 1 to 8 flash on/off
-
-3rd screen - Grey screen with white text
- "S.S.23 POWER ON TEST xxxx" (xxxx = numbers count up rapidly from 0000)
- "SUBCPU INITIALIZING .... "
- "SUBCPU PROGRAM Ver. 0211 "
-
- and a PACMAN eating dots along the bottom of the screen from left to right.
- As these checks happen, the LEDs 1 to 8 simultaneously flash on/off in various patterns.
- The Sub CPU will initialize before the Pacman reaches half-way across the screen.
-
-When the SUB-CPU connects there are numerous POST screens that test almost all of the main components.
-
-On System23, the bootup sequence is shorter. The screen remains blank while the SDRAM is being checked (i.e. 1st screen mentioned above is not shown).
-LEDS 1-8 turn off in sequence 8-1. The bank of 8 LEDs on the main board cycles from left to right to left repeatedly (almost all S23/SS23 games seem
-to do this in fact). After that, the bootup sequence is mostly the same as SS23.
-When the game is running some games just cycle the 8 LEDs left/right/left etc. Others cycle the LEDs in pairs just one LED position
-left/right/left etc. Those crazy Namco guys *really* like LEDs.
-
-To skip the (long) POST, set DIP switch #2 of the 8-position DIP switch block to ON. As soon as the SUB-CPU connects the game will boot.
-However this only works if the program supports it. Most games just ignore the DIPs.
-
-
-PCB Layouts
------------
-Rev 1
-SYSTEM23 MAIN PCB 8660961103 (8660971103) This rev has J7/J8/J9/J10/J11 populated
-Rev 2
-SYSTEM23 MAIN PCB 8660961105 (8660971105)
-|----------------------------------------------------------------------------|
-| J5 J7 J8 3V_BATT J9 J10 J11 |
-| LED1-8 *R4543 *MAX734 ADM485JR |
-| |-------| LED10-11 LC35256 CXA1779P *3414 *3414 |
-| |H8/3002| *2061ASC-1 |
-| | | SW4 *LM358 |
-| |-------| DS8921 *MB88347 *MB87078 |
-|J18 *LC78832 *LC78832 |
-| SW3 14.7456MHz |----| |----| CXD1178Q |
-| |------| |----| |----||---------| |C435| |C435| |
-| N341256 | C416 | |C422| |IDT || | |----| |----| |
-| | | |----| |7200|| C403 | |
-| N341256 | | |----|| | |---------| |
-| |------| |----|| | PAL(2) N341256 | | |
-| |----| *PST575 |IDT ||---------| | C417 | |
-| |C352| CY7C182 |7200| | | |
-| |----| LED9 |----| N341256 | | |
-| J12 |---------| |
-| KM416S1020 |-------| PAL(3) M5M4V4265 |
-| |XILINX | |
-|J16 |XC95108| J17|
-| KM416S1020 |-------| |---------| |---------| N341256 |
-| | | | | |
-| | C421 | | C404 | N341256 |
-| |---------| N341256 | | | | |
-| | | | | | | N341256 |
-| | C413 | N341256 |---------| |---------| |
-| | | |
-| | | M5M4V4265 |
-| |---------| SW2 LC321664 |
-| *PST575 |
-| *KM681000 |
-| |----------| |---------| |-------------| |
-| |NKK | | | | | |
-| |NR4650-13B| | C361 | CY2291 | C412 | |
-|J14 | | | | | |J15|
-| | | | | 14.31818MHz | | |
-| |----------| |---------| PAL(1) |-------------| |
-| *KM681000 |
-| HM5216165 HM5216165 |
-|----------------------------------------------------------------------------|
-Notes:
- * - These parts are underneath the PCB.
-
- Main Parts List:
-
- CPU
- ---
- NKK NR4650 - R4600-based 64bit RISC CPU (Main CPU, QFP208, clock input source = CY2291)
- H8/3002 - Hitachi H8/3002 HD6413002F17 (Sound CPU, QFP100, running at 14.7456MHz)
-
- RAM
- ---
- N341256 - NKK 32k x8 SRAM (x9, SOJ28)
- LC35256 - Sanyo 32k x8 SRAM (SOP28)
- KM416S1020 - Samsung 16MBit SDRAM (x2, TSSOP50)
- M5M4V4265 - Mitsubishi 256k x16 DRAM (x2, TSOP40/44)
- LC321664 - Sanyo 64k x16 EDO DRAM (SOJ40)
- HM5216165 - Hitachi 16MBit SDRAM (x2, TSSOP50)
- KM681000 - Samsung 128k x8 SRAM (x2, SOP32)
- CY7C182 - Cypress 8k x9 SRAM (SOJ28)
-
- Namco Customs
- -------------
- C352 (QFP100)
- C361 (QFP120)
- C403 (QFP136)
- C404 (QFP208)
- C412 (QFP256)
- C413 (QFP208)
- C416 (QFP176)
- C417 (QFP208)
- C421 (QFP208)
- C422 (QFP64)
- C435 (x2, QFP144)
-
- Other ICs
- ---------
- XC95108 - Xilinx XC95108 In-System Programmable CPLD (QFP100)
- - labelled 'S23MA9' on Rev 1
- - labelled 'S23MA9B' on Rev 2
- DS8921 - National RS422/423 Differential Line Driver and Receiver Pair (SOIC8)
- CXD1178Q - SONY CXD1178Q 8-bit RGB 3-channel D/A converter (QFP48)
- PAL(1) - PALCE16V8H (PLCC20, stamped 'PAD23')
- PAL(2) - PALCE22V10H (PLCC28, stamped 'S23MA5')
- PAL(3) - PALCE22V10H (PLCC28, stamped 'SS23MA6B')
- MAX734 - MAX734 +12V 120mA Flash Memory Programming Supply Switching Regulator (SOIC8)
- PST575 - PST575 System Reset IC (SOIC4)
- 3414 - NJM3414 70mA Dual Op Amp (x2, SOIC8)
- LM358 - National LM358 Low Power Dual Operational Amplifier (SOIC8)
- MB87078 - Fujitsu MB87078 Electronic Volume Control IC (SOIC24)
- MB88347 - Fujitsu MB88347 8bit 8 channel D/A converter with OP AMP output buffers (SOIC16)
- ADM485 - Analog Devices Low Power EIA RS485 transceiver (SOIC8)
- CXA1779P - SONY CXA1779P TV/Video circuit RGB Pre-Driver (DIP28)
- CY2291 - Cypress CY2291 Three-PLL General Purpose EPROM Programmable Clock Generator (SOIC20)
- 2061ASC-1- IC Designs 2061ASC-1 clock Generator IC (SOIC16, also found on Namco System 11 PCBs)
- R4543 - EPSON Real Time Clock Module (SOIC14)
- IDT7200 - Integrated Devices Technology IDT7200 256 x9 CMOS Asynchronous FIFO
-
- Misc
- ----
- J5 - Connector for EMI PCB
- J7/J8 - 15-pin VGA output connectors -\
- J9/J10- Red/White Stereo Audio Output RCA connectors \
- J11 - Standard USB connector (used on Motocross Go!) -/ Not populated on most PCBs
- J12 - 6-pin connector for In-System Programming of the XC95108 IC
- J14 \
- J15 |
- J16 |
- J17 \ - Connectors for MEM(M) PCB
- J18 - Connector for MSPM(FRA) PCB
- SW2 - 2 position DIP Switch
- SW3 - 2 position DIP Switch
- SW4 - 8 position DIP Switch
-
-
-SystemSuper23 MAIN(1) PCB 8672960904 8672960104 (8672970104)
-|----------------------------------------------------------------------------|
-| J5 J7 J8 3V_BATT J9 J10 J11 |
-| LED1-8 *R4543 *MAX734 ADM485JR |
-| |-------| LED10-11 LC35256 CXA1779P 3414 3414 |
-| |H8/3002| *2061ASC-1 |
-| | | SW4 *LM358 |
-| |-------| DS8921 *MB88347 *MB87078 |
-|J18 *LC78832 *LC78832 |
-| SW3 14.7456MHz |----| |----| CXD1178Q |
-| |------| |----| |---------| |C435| |C435| |
-| N341256 | C416 | |C422| | | |----| |----| |
-| | | |----| | C444 | |
-| N341256 | | | | |---------| |
-| |------| | | PAL(2) CY7C1399 | | |
-| |----| *PST575 |---------| | C417 | |
-| |C352| CY7C182 | | |
-| |----| LED9 CY7C1399 | | |
-| |---------| |
-| KM416S1020 EPM7064 PAL(3) KM416V2540 |
-| |
-|J16 J17|
-| KM416S1020 |---------| |---------| N341256 |
-| CY7C1399 | | | | |
-| | C421 | | C404 | N341256 |
-| |---------| CY7C1399 | | | | |
-| | | | | | | N341256 |
-| | C413 | |---------| |---------| |
-| | | |
-| | | KM416V2540 |
-| |---------| SW2 LC321664 |
-| *PST575 |
-| *KM416S1020 |
-| |----------| |---------| |-------------| |
-| |NKK | | | | | |
-| |NR4650-167| | C361 | CY2291 | C447 | |
-|J14 | | | | | |J15|
-| | | | | 14.31818MHz | | |
-| |----------| |---------| PAL(1) |-------------| |
-| *KM416S1020 |
-| 71V124 71V124 |
-|----------------------------------------------------------------------------|
-Notes:
- * - These parts are underneath the PCB.
-
- Main Parts List:
-
- CPU
- ---
- NKK NR4650 - R4600-based 64bit RISC CPU (Main CPU, QFP208, clock input source = CY2291)
- H8/3002 - Hitachi H8/3002 HD6413002F17 (Sound CPU, QFP100, running at 14.7456MHz)
-
- RAM
- ---
- N341256 - NKK 32k x8 SRAM (x5, SOJ28)
- LC35256 - Sanyo 32k x8 SRAM (SOP28)
- KM416S1020 - Samsung 16MBit SDRAM (x4, TSSOP50)
- KM416V2540 - Samsung 256k x16 EDO DRAM (x2, TSOP40/44)
- LC321664 - Sanyo 64k x16 EDO DRAM (SOJ40)
- 71V124 - IDT 128k x8 SRAM (x2, SOJ32)
- CY7C1399 - Cypress 32k x8 SRAM (x4, SOJ28)
- CY7C182 - Cypress 8k x9 SRAM (SOJ28)
- M5M4V4265 - Mitsubishi 256k x16 DRAM (x2, TSOP40/44)
-
- Namco Customs
- -------------
- C352 (QFP100)
- C361 (QFP120)
- C404 (QFP208)
- C413 (QFP208)
- C416 (QFP176)
- C417 (QFP208)
- C421 (QFP208)
- C422 (QFP64)
- C435 (x2, QFP144)
- C444 (QFP136)
- C447 (QFP256)
-
- Other ICs
- ---------
- EPM7064 - Altera MAX EPM7064STC100-10 CPLD (TQFP100, labelled 'SS23MA4A')
- DS8921 - National RS422/423 Differential Line Driver and Receiver Pair (SOIC8)
- CXD1178Q - SONY CXD1178Q 8-bit RGB 3-channel D/A converter (QFP48)
- PAL(1) - PALCE16V8H (PLCC20, stamped 'SS23MA1B')
- PAL(2) - PALCE22V10H (PLCC28, stamped 'SS23MA2A')
- PAL(3) - PALCE22V10H (PLCC28, stamped 'SS23MA3A')
- MAX734 - MAX734 +12V 120mA Flash Memory Programming Supply Switching Regulator (SOIC8)
- PST575 - PST575 System Reset IC (SOIC4)
- 3414 - NJM3414 70mA Dual Op Amp (x2, SOIC8)
- LM358 - National LM358 Low Power Dual Operational Amplifier (SOIC8)
- MB87078 - Fujitsu MB87078 Electronic Volume Control IC (SOIC24)
- MB88347 - Fujitsu MB88347 8bit 8 channel D/A converter with OP AMP output buffers (SOIC16)
- ADM485 - Analog Devices Low Power EIA RS485 transceiver (SOIC8)
- CXA1779P - SONY CXA1779P TV/Video circuit RGB Pre-Driver (DIP28)
- CY2291 - Cypress CY2291 Three-PLL General Purpose EPROM Programmable Clock Generator (SOIC20)
- 2061ASC-1- IC Designs 2061ASC-1 clock generator IC (SOIC16, also found on Namco System 11 PCBs)
- R4543 - EPSON Real Time Clock Module (SOIC14)
-
- Misc
- ----
- J5 - Connector for EMI PCB
- J7/J8 - 15-pin VGA output connectors -\
- J9/J10- Red/White Stereo Audio Output RCA connectors \
- J11 - Standard USB connector -/ Not populated on most PCBs
- J14 \
- J15 |
- J16 |
- J17 \ - Connectors for MEM(M) PCB
- J18 - Connector for MSPM(FRA) PCB
- SW2 - 2 position DIP Switch
- SW3 - 2 position DIP Switch
- SW4 - 8 position DIP Switch
-
-
-System23Evolution2 MAIN PCB 8902960103 (8902970103)
-|----------------------------------------------------------------------------|
-| J5 J7 3V_BATT |
-| LED1-8 ADM485 *R4543 |
-| |-------| LED10-11 LC35256 CXD1178Q |
-| |H8/3002| *2061ASC-1 |
-| | | SW4 UDA1320 UDA1320 |
-| |-------| DS8921 |
-|J18 |
-| SW3 14.7456MHz |----| |----| |
-| |------| |----| |---------| |C435| |C435| |
-| N341256 | C452 | |C422| | | |----| |----| |
-| | | |----| | C444 | |
-| N341256 | | | | XILINX XILINX |---------| |
-| |------| | | XC9572XL XC9536XL| | |
-| |----| *PST575 |---------| | C451 | |
-| |C352| CY7C182 | | |
-| |----| LED9 | | |
-| |---------| |
-| KM432S2030 KM416V2540 |
-| |
-|J16 J17|
-| KM432S2030 |---------| |---------| N341256 |
-| IS61LV256 | | | | |
-| | C421 | | C404 | N341256 |
-| |---------| IS61LV256 | | | | |
-| | | | | | | N341256 |
-| | C450 | |---------| |---------| |
-| | | |
-| | | KM416V2540 |
-| |---------| SW2 LC321664 |
-| *PST575 |
-| *KM416S1120 |
-| |----------| |---------| |-------------| |
-| |IDT | | | | | |
-| |NR4650-200| | C361 | CY2291 | C447 | |
-|J14 | | | | | |J15|
-| | | | | 14.31818MHz | | |
-| |----------| |---------| PAL |-------------| |
-| *KM416S1120 |
-| 71V124 71V124 |
-|----------------------------------------------------------------------------|
-Notes:
- * - These parts are underneath the PCB.
-
- Main Parts List:
-
- CPU
- ---
- NKK NR4650 - R4600-based 64bit RISC CPU (Main CPU, QFP208, clock input source = CY2291)
- H8/3002 - Hitachi H8/3002 HD6413002F17 (Sound CPU, QFP100, running at 14.7456MHz)
-
- RAM
- ---
- N341256 - NKK 32k x8 SRAM (x5, SOJ28)
- LC35256 - Sanyo 32k x8 SRAM (SOP28)
- KM432S2030 - Samsung 32MBit SDRAM (x2, TSSOP86)
- KM416S1120 - Samsung 16MBit SDRAM (x2, TSSOP50)
- KM416V2540 - Samsung 256k x16 EDO DRAM (x2, TSOP40/44)
- LC321664 - Sanyo 64k x16 EDO DRAM (SOJ40)
- 71V124 - IDT 128k x8 SRAM (x2, SOJ32)
- ISS61LV256 - ISSI 32k x8 SRAM (x2, SOJ28)
- CY7C182 - Cypress 8k x9 SRAM (SOJ28)
- M5M4V4265 - Mitsubishi 256k x16 DRAM (x2, TSOP40/44)
-
- Namco Customs
- -------------
- C352 (QFP100)
- C361 (QFP120)
- C404 (QFP208)
- C421 (QFP208)
- C422 (QFP64)
- C435 (x2, QFP144)
- C444 (QFP136)
- C447 (QFP256)
- C450 (BGAxxx)
- C451 (QFP208)
- C452 (QFP176)
-
- Other ICs
- ---------
- XC9536 - XILINX XC9536XL CPLD (TQFP64, labelled 'S23EV2.1')
- XC9572 - XILINX XC9536XL CPLD (TQFP100, labelled 'S23EV2.2')
- DS8921 - National RS422/423 Differential Line Driver and Receiver Pair (SOIC8)
- CXD1178Q - SONY CXD1178Q 8-bit RGB 3-channel D/A converter (QFP48)
- PAL - PALCE16V8H (PLCC20, stamped 'PAD23')
- PST575 - PST575 System Reset IC (SOIC4)
- ADM485 - Analog Devices Low Power EIA RS485 transceiver (SOIC8)
- CY2291 - Cypress CY2291 Three-PLL General Purpose EPROM Programmable Clock Generator (SOIC20)
- 2061ASC-1- IC Designs 2061ASC-1 clock generator IC (SOIC16, also found on Namco System 11 PCBs)
- R4543 - EPSON Real Time Clock Module (SOIC14)
- UDA1320 - Philips UDA1320 Low-cost stereo filter DAC (SOIC16)
-
- Misc
- ----
- J5 - Connector for EMI PCB
- J7 - 15-pin VGA output connector
- J14 \
- J15 |
- J16 |
- J17 \ - Connectors for MEM(M) PCB
- J18 - Connector for MSPM(FRC) PCB
- SW2 - 2 position DIP Switch
- SW3 - 2 position DIP Switch
- SW4 - 8 position DIP Switch
-
-
-SystemSuper23 Gmen PCB 8672960502 (8672970502)
-Sticker: Gmen (GTR) PCB
- |---------------------------------------------------|
- | J8 LED4 J6 J5 |
- | 20.25MHz 82AF LT1635 |
- | VXP3220A 611_803 24.576MHz |
- | |-----| |
- | |FUJI | |
- | |-----| |MD8402A |
- | |FUJI | |-----| |
- | |MD8412A |
- | |-----| |
- | |
- | |
- | |
- | TSOP48 |
-|------------------------| |
-| N341256 N341256 N341024 |
-| HM5118165 HM5118165 |
-| |
-| |---------| |---(1)--| |
-|J10 | | |ALTERA | N341024 J17|
-| | C446 | |--------| |MAX | |
-| | | |ALTERA | |EPM7064 | |
-| | | |FLEX | |--------| |
-| |---------| |EPM8282 | LED3 |----------| |
-| |--------| |ALTERA | |
-| |FLEX | |
-| |EPM8452 | |
-| | | |
-| |-------| |----------| |
-| | SH2 | LED2 |
-| | | |
-| 28.7MHz |-------| |
-|J11 3771 KM416S1020 N341024 J16|
-| HD63B50 |
-| 40MHz |
-| KM416S1020 SW3 |
-| |--(2)--| N341024 |
-| |ALTERA | |
-| |EPM7064| |
-| |-------| LT1180 LED1 LED5-12 |
-|----------------------------------------------------------------------------|
-Notes:
- This board controls the video overlay from the CCD camera in Gunmen Wars, Race ON! and Final Furlong 2.
- The main board does it's usual POST then the board fires up, LED1 lights red and the LEDs 5-12 go crazy pulsing left to right from
- the middle outwards. The main board uploads a loader program, then the Main SH2 program. After completion LED 3 lights green and then
- LED 2 lights orange for a second then extinguishes then the main board resets :-/
- It doesn't boot up for unknown reasons but likely another PCB is missing from somewhere in the cabinet or the GMEN PCB is faulty.
-
- SH2 - Hitachi HD6417604 SH2 CPU (QFP144, clock input 28.7MHz)
- N341024 - NKK 128k x8 SRAM (x4, SOP32)
- N341256 - NKK 32k x8 SRAM (x2, SOP28)
- KM416S1020 - Samsung 16MBit SDRAM (x2, TSSOP50). Also compatible with MB811181622
- HM5118165 - Hitachi 16MBit SDRAM (x2, TSSOP44/50)
- C446 - Namco Custom IC (QFP160)
- TSOP48 - Not-populated position for a 29F400 512k x8 TSOP48 flash ROM
- 3771 - Fujitsu MB3771 System Reset IC (SOIC8)
- MD8402 - Fuji MD8402A IEEE 1394 'Firewire' Physical Channel Interface IC (TQFP100)
- MD8412 - Fuji MD8412A IEEE 1394 'Firewire' Link Layer Controller IC (TQFP100)
- VXP3220A - Micronis Intermetall VXP3220A Video Pixel Decoder IC (PLCC44)
- HD63B50 - Hitachi HD63B50 Asynchronous Communications Interface Adapter IC (SOP24)
- LT1180 - Linear Technology LT1180A Low Power 5V RS232 Dual Driver/Receiver Pair with 0.1mF Capacitors
- EPM7064(1) - Altera MAX EPM7064 CPLD labelled 'SS23GM1A' (TQFP100)
- EPM7064(2) - Altera EPM7064 CPLD labelled 'SS23GM2A' (TQFP44)
- EPM8452 - Altera FLEX EPM8452 CPLD (no label, QFP160)
- EPM8282 - Altera FLEX EPM8282 CPLD (no label, TQFP100)
- 82AF - National 82AF General Purpose EMI Reduction IC (SOIC8)
- LT1635 - Linear Technology LT1635 Micropower Rail-to-Rail Op Amp and Reference Buffer (SOIC8)
- 611_803 - ? (SOIC8)
- J5/J6 - IEEE 1394 'Firewire' connectors
- J8 - Connector for EMI PCB
- J10 - Labelled 'WAVE' \
- J11 - Labelled 'SYS23BUS' | Connectors for MEM(M) PCB
- J16 - Labelled 'TEXTURE' | i.e. The ROM board sits on top of this board
- J17 - Labelled 'POINT' /
- SW3 - 8 position DIP Switch
-
-
-Program ROM PCB
----------------
-Type 1:
-MSPM(FRA) PCB 8699017500 (8699017400)
-|--------------------------|
-| J1 |
-| |
-| IC3 IC1 |
-| |
-| |
-| IC2 |
-|--------------------------|
-Notes:
- J1 - Connector to plug into Main PCB
- IC1 \
- IC2 / Main Program (Fujitsu 29F016 16MBit FlashROM, TSOP48)
- IC3 - Sound Program (Fujitsu 29F400T 4MBit FlashROM, TSOP48)
-
- Games that use this PCB include...
-
- Game Code and revision
- ----------------------------------
- Time Crisis 2 TSS2 Ver.B (for System 23)
- Time Crisis 2 TSS3 Ver.B (for System 23)
- Gunmen Wars GM1 Ver.A (for Super System 23)
- Downhill Bikers DH3 Ver.A (for System 23)
- Motocross Go! MG3 Ver.A (for System 23)
- Panic Park PNP2 Ver.A (for System 23)
- Race On! RO2 Ver.A (for Super System 23)
-
-Type 2:
-MSPM(FRA) PCB 8699017501 (8699017401)
-|--------------------------|
-| J1 |
-| |
-| IC2 IC3 |
-| |
-| |
-| IC1 |
-|--------------------------|
-Notes:
- J1 - Connector to plug into Main PCB
- IC1 \
- IC2 / Main Program (Fujitsu 29F016 16MBit FlashROM, TSOP48)
- IC3 - Sound Program (ST M29F400T 4MBit FlashROM, TSOP48)
-
- Games that use this PCB include...
-
- Game Code and revision
- ----------------------------------
- Angler King AG1 Ver.A (for Super System 23)
- GP500 5GP3 Ver.C (for Super System 23)
- Time Crisis 2 TSS4 Ver.A (for Super System 23)
- Final Furlong 2 FFS1 Ver.? (for Super System 23)
- Final Furlong 2 FFS2 Ver.? (for Super System 23)
-
-Type 3:
-MSPM(FRC) PCB 8699019800 (8699019700)
-|--------------------------|
-| J1 |
-| |
-| IC1 IC2 IC4 |
-| |
-| |
-| IC3 |
-|--------------------------|
-Notes:
- J1 - Connector to plug into Main PCB
- IC1 - Sound Program (Fujitsu 29F400T 4MBit FlashROM, TSOP48)
- IC3 - a *very tiny* transistor marked 'H5'
- IC2 \
- IC4 / Main Program (Intel DA28F640J5 64MBit FlashROM, SSOP56)
-
- Games that use this PCB include...
-
- Game Code and revision Notes
- -----------------------------------------------------------------------
- Crisis Zone CSZO4 Ver.B Serialsed ROMs, IC2 not populated
- Crisis Zone CSZO3 Ver.B Serialsed ROMs, IC2 not populated
- Crisis Zone CSZO2 Ver.A Serialsed ROMs, IC2 not populated
-
-
-ROM PCB
--------
-
-Printed on the PCB - 8660960601 (8660970601) SYSTEM23 MEM(M) PCB
-Sticker (500GP) - 8672961100
-Sticker (Time Crisis 2) - 8660962302
-Sticker (Crisis Zone) - 8672961100 .... same as 500GP
-Sticker (Race On!) - 8672961100 .... same as 500GP
-Sticker (Angler King) - 8672961100 .... same as 500GP
-
-|----------------------------------------------------------------------------|
-| KEYCUS MTBH.2M CGLL.4M CGLL.5M CCRL.7M PAL(3) |
-| |
-| |
-|J1 MTAH.2J CGLM.4K CGLM.5K CCRH.7K J4|
-| |
-| PAL(4) JP5 |
-| CGUM.4J CGUM.5J JP4 |
-| MTAL.2H JP3 |
-| JP2 |
-| CGUU.4F CGUU.5F |
-| CCRL.7F |
-| MTBL.2F |
-| PAL(1) PAL(2) |
-| CCRH.7E |
-| |
-| JP1 |
-| |
-| WAVEL.2C PT3L.3C PT2L.4C PT1L.5C PT0L.7C |
-|J2 J3|
-| |
-| WAVEH.2A PT3H.3A PT2H.4A PT1H.5A PT0H.7A |
-| |
-| |
-|----------------------------------------------------------------------------|
-Notes:
- J1 \
- J2 |
- J3 |
- J4 \ - Connectors to main PCB
- JP1 - ROM size configuration jumper for WAVE ROMs. Set to 64M, alt. setting 32M
- JP2 - ROM size configuration jumper for CG ROMs. Set to 64M, alt. setting 32M
- JP3 - ROM size configuration jumper for CG ROMs. Set to 64M, alt. setting 32M
- JP4 - ROM size configuration jumper for CG ROMs. Set to 64M, alt. setting 32M
- JP5 - ROM size configuration jumper for CG ROMs. Set to 64M, alt. setting 32M
- Other ROMs
- CCRL - size fixed at 32M
- CCRH - size fixed at 16M
- PT* - size fixed at 32M
- MT* - size fixed at 64M
-
- KEYCUS - Mach211 CPLD (PLCC44)
- PAL(1) - PALCE20V8H (PLCC28, stamped 'SS22M2') \ Both identical
- PAL(2) - PALCE20V8H (PLCC28, stamped 'SS22M2') /
- PAL(3) - PALCE16V8H (PLCC20, stamped 'SS22M1')
- PAL(4) - PALCE16V8H (PLCC20, stamped 'SS23MM1')
- Note this PAL is not populated when used on Super System 23
-
- All ROMs are SOP44 MaskROMs
- Note: ROMs at locations 7M, 7K, 5M, 5K, 5J & 5F are copies of identical ROMs on the PCB at locations 7F, 7E, 4M, 4K, 4J, 4F
- Each ROM is stamped with the Namco Game Code, then the ROM-use code (such as CCRL, CCRH, PT* or MT*).
-
- Game
- Game Code Keycus Notes
- -----------------------------------------------------------------------
- 500GP 5GP1 KC029 -
- Angler King AG1 KC028 -
- Crisis Zone CSZ1 KC039 -
- Downhill Bikers DH1 KC016 3A, 3C, 2M and 2F not populated.
- Final Furlong 2 FFS1 KC??? -
- Gunmen Wars GM1 KC018 3A, 3C, 4A, 4C, 2A, 2F and 2M not populated.
- Motocross Go! MG1 KC009 3A, 3C, 4A, 4C, 4F and 7F not populated.
- Panic Park PNP1 KC015 3A, 3C, 4A, 4C, 2M and 2F not populated.
- Race On! RO1 KC017 2M and 2F not populated.
- Time Crisis 2 TSS1 KC010 3A and 3C not populated.
-
-I/O PCBs
---------
-
-FCA PCB 8662969102 (8662979102)
-(Used with 500GP and Angler King. Another identical board is used with Ridge Racer V on System 246)
-|---------------------------------------------------|
-| J101 J106 |
-| 4.9152MHz |
-| DSW(6) |
-| LED2 |-----| |
-| | MCU | |
-| LEDS3-10 | | |
-| PIC16F84 |-----| |
-| JP1 LED1 ADM485 |
-| |
-| J102 J104 |
-|---------------------------------------------------|
-Notes:
- J101 - 6 pin connector for power input
- J102 - 60 pin flat cable connector
- J104 - 5 pin connector
- J106 - 30 pin flat cable connector
- JP1 - 3 pin jumper, set to 'NORM'. Alt setting 'WR'
- 3771 - Fujitsu MB3771 System Reset IC (SOIC8)
- PIC16F84 - Microchip PIC16F84 PIC (SOIC20)
- - For 500GP and Angler King stamped 'CAP10'
- - For Ridge Racer V (on System 246) stamped 'CAP11'
- MCU - Fujitsu MB90F574 F2MC-16LX Family Microcontroller (QFP120)
- - For 500 GP and Angler King stamped 'FCAF10'
- - For Ridge Racer V (on System 246) stamped 'FCAF11'
- ADM485 - Analog Devices ADM485 +5V Low Power EIA RS-485 Transceiver (SOIC8)
-
-
-ASCA-3A PCB 8662968301 (8662978301)
-This is used with Motocross Go!
-It's identical to the one shown below (ASCA-4A) but the ROM is a surface mounted
-PLCC32 instead of a socketed DIP32 chip. Everything else is identical.
-
-ASCA-4A PCB 8662968401 (8662978401)
-(Used with most games and [for testing purposes] is able to boot all S23/SS23/Evolution2 games)
-Sticker for Gunmen Wars: ASCA5 PCB 86629615
-|---------------------------------------------------|
-| PST592 62256 |
-| 14.7460MHz |-------| |
-| | C78 | |
-| LB1235 DSW(4) | | 27C1001 |
-| LB1233 LB1235 |-------| |
-| |
-| |------| ADM485 |
-| |ALTERA| |
-| |EPM7096 |
-| J101 |------| J102 J103 |
-|---------------------------------------------------|
-Notes:
- J101 - 64 pin connector for power + inputs. This joins to another PCB at 90 degrees containing
- a bunch of connectors named 'ASCA 4B PCB 8662968702 (8662978702)'. This is where ALL of the
- inputs/outputs for game control and inter-PCB communication are connected
- PST592 - System Reset IC (SOIC4)
- C78 - Hitachi HD643334 H8/3334 Microcontroller rebadged as 'C78'. Clock input 14.746MHz (PLCC84)
- 27C1001 - 128k x8 EPROM (DIP32)
- - For Downhill Bikers labelled 'ASC3 IO-C'
- - For Panic Park labelled 'ASC3 IO-C'
- - For Race On! labelled 'ASC5 IO-A'
- - For Gunmen Wars labelled 'ASC5 IO-A'
- 62256 - 32k x8 SRAM (SOP28)
- EPM7096 - Altera EPM7096 CPLD with sticker 'ASCA,DR1' (PLCC68)
- ADM485 - Analog Devices ADM485 +5V Low Power EIA RS-485 Transceiver (SOIC8)
- J102/J103- Standard USB A and B connectors. These are not populated on most games, but are populated for
- use with Motocross Go! on the ASCA-3A PCB.
-
-
-I/O Boards for gun games
-------------------------
-
-Type 1:
-
-V185 I/O PCB
-2479961102 (2479971102)
-|-----------------------------------------|
-| J601 LED1 LED2 |-------| |
-| DSW(4)JP1 |-------| |TSSIO | |
-| |-----| | C78 |14.746MHz|PLD | |
-| |TSSIO| | |PST592 |-------| |
-| |PROG | |-------| |
-| |-----| |
-| |
-| 62256 |
-|ADM485 |
-|J1 SLA4060 J5|
-| J3 J4 |
-|-----------------------------------------|
-Notes:
- TSSIOPROG - Atmel AT29C020 EEPROM stamped 'TSSIOP8' (PLCC32)
- C78 - Namco Custom C78, actually a rebadged Hitachi HD643334 MCU, clock input 14.746MHz (PLCC84)
- TSSIOPLD - Altera MAX EPM7128ELC84 CPLD with label 'TSSIOPLD' (PLCC84)
- SLA4060 - Sanken Electric SLA4060 NPN general purpose darlington transistor (used to drive the kick-back solenoid in the gun)
- PST592 - System Reset IC (SOIC4)
- J1 - 12 position connector for power and I/O communication
- J3 - 12 position connector for gun connection (trigger/buttons/optical signal/power)
- J4 - not used?
- J5 - 6 position connector for network
- J601 - not used?
- JP1 - jumper set to 1-2 (lower position), labelled 'WR'
- DSW - 4 position dipswitch block, all off
-
-This board is used only on Time Crisis II.
-Note the gun is a standard light gun.
-
-
-Type 2:
-
-V221 MIU PCB
-2512960101 (2512970101)
-additional sticker for Time Crisis 3 says '2591961001 V291 XMIU PCB'
-|---------------------------------------------|
-|J10 J9 29C020 LC35256 DSW(4) |
-| M0105 PRG.8F LED |
-|2267 6393 LED |
-| T082 T082 |------| |
-| |--------| | C78 | J8 |
-| |ALTERA | | | |
-|J11 |MAX | |------| J7|
-| LM1881 |EPM7128 | 3771 |
-|R305526 |--------| |
-| ZUW1R51212 14.746MHz |
-| ADM485 J6|
-| |
-| J1 J2 J3 J4 J5 |
-|---------------------------------------------|
-Notes:
- 2267 - JRC2267 Current limiting diode array? (SOIC8)
- R305526 - Some kind of mini transformer or regulator?
- LC35256 - Sanyo LC35256 32k x8 SRAM (SOP28)
- LM1881 - National Semiconductor LM1881 Video Sync Separator (SOIC8)
- M0105 - Matsushita Panasonic 0105 = ? (SOIC16)
- T082 - Texas Instruments T082 (=TL082) JFET-Input operational amplifier (SOIC8)
- 6393 - Sanyo 6393 (LA6393) High Performance Dual Comparator (SOIC8)
- ADM485 - Analog Devices ADM485 5V Low Power EIA RS-485 Transceiver (SOIC8)
- 3771 - Fujitsu MB3771 Power Supply Monitor and Master Reset IC (SOIC8)
- EPM7128 - Altera MAX EPM7128SLC84-15 PLD labelled 'TMIU1/PLD0' (Time Crisis 3)
- 29C020 - location for 29C020 PLCC32 Flash/EP ROM (not populated)
- ZUW1R51212 - Cosel ZUW1R51212 DC to DC Power Supply Module (input 9-18VDC, output +-12VDC or +24VDC)
- DSW - 4 position dipswitch block, all off
- J1 - 6-pin power input connector
- J2 - 12-pin connector (cabinet buttons UP/DOWN/ENTER plus TEST/SERVICE/COIN etc)
- J3 - 4 pin connector (not used)
- J4 - 9 pin Namco female plug connector for gun (solenoid +24V/trigger/pedal/sensor)
- J5 - 5 pin connector used for I/O --> S246 communications (connects to USB link connection on main unit)
- J6 - 7-pin connector (not used)
- J9 - 6-pin connector (not used)
- J10 - 2-pin Namco female plug connector (not used)
- J11 - 6-pin Namco female plug connector (video input from CCD camera)
- PRG.8F - 27C1001 EPROM with label...
- 'XMIU1 PRG0' (I/O program for Time Crisis 3)
- 'CSZ1 PRG0A' (I/O program for Crisis Zone)
-
-This board is used on Crisis Zone (System 23 Evolution2) and Time Crisis 3 (System 246)
-Note both games use a CCD camera for the gun sensor.
-
-
-Drive/Feedback PCB
-------------------
-
-V194 STR PCB
-2487960102 (2487970102)
-|----------------------------------------------------------|
-| RO1_STR-0A.IC16 TRANSFORMER J105 |
-| DIP42 |
-| LED N341256 FUSE |
-| LED FUSE BF150G8E|
-| N341256 |
-| |
-|RESET_SW 32MHz 7815 K2682|
-| MB3771 |
-|J101 DSW2(4, all off) |
-| MB90242A |
-| LED MB3773 HP3150 |
-| LED K2682|
-| HP3150 |
-| EPM7064 |
-|J104 MAX232 LM393 |
-| LED JP1 O O-O |
-| LED HP3150 K2682|
-| |
-| HP3150 |
-| |
-|J103 |
-| UPC358 LM393 UPC358 K2682|
-| J102 J106 |
-|----------------------------------------------------------|
-Notes:
- This board is used with Race On! (and Wangan Midnight on Chihiro and Ridge Racer V on System 246) to control the
- steering feed-back motor. It may be used with other System 23/Super System 23 driving/racing games too but no
- other games are confirmed at the moment.
-
- RO1_STR-0A.IC16 - Fujitsu MB29F400TC 512k x8 flash ROM (SOP44)
- - Labelled 'RO1 STR-0A' for Race On!
- - Labelled 'RR3 STR-0A' for Ridge Racer V (on System 246)
- EPM7064 - Altera EPM7064 CPLD labelled 'STR-DR1' (PLCC44)
- N341256 - NKK 32k x8 SRAM (SOP28)
- K2682 - 2SK2682 N-Channel Silicon MOSFET
- BF150G8E - Large power transistor(?) connected to the transformer
- UPC358 - NEC uPC358 Dual operational amplifier (SOIC8)
- LM393 - National LM393 Low Power Low Offset Voltage Dual Comparator (SOIC8)
- MAX232 - Maxim MAX232 dual serial to TTL logic level driver/receiver (SOIC16)
- HP3150 - ? (DIP8)
- MB3773 - Fujitsu MB3773 Power Supply Monitor with Watch Dog Timer and Reset (SOIC8)
- MB3771 - Fujitsu MB3771 System Reset IC (SOIC8)
- DIP42 - Unpopulated DIP42 socket for 27C4096 EPROM
- MB90242A - Fujitsu MB90242A 16-Bit CISC ROM-less F2MC-16F Family Microcontroller optimized for mechatronics control applications (TQFP80)
- J101 - 8 pin connector (purpose unknown)
- J102 - 3 pin connector input from potentiometer connected to the steering wheel mechanism
- J103 - Power input connector (5v/GND/12v)
- J104 - 6 pin connector joined with a cable to J6 on the V198 EMI PCB. This cable is the I/O connection to/from the main board.
- J105 - 110VAC power input
- J106 - DC variable power output to feed-back motor
-
-
-Namco Gorgon-based games
-------------------------
-
-Rapid River, Final Furlong (both Namco, 1997)
-
-These games run on hardware called "GORGON". It appears to have similar
-capabilities to System 23 but like Super System 22 has sprites also.
-(System 23 doesn't have sprites). The PCBs are about two times larger
-than System 23.
-
-The system comprises Main PCB, ROM PCB and I/O PCB all located inside
-a metal box with 3 separate power supplies for 5V, 12V and 3.3V. Main
-input power is 115V.
-Rapid River is controlled by rotating a paddle (for thrust) and turning it
-sideways (moves left/right).
-The rotation action is done with a 5K potentiometer whereby the thrust
-is achieved by moving the pot from full left to full right continuously.
-The left/right turning movement is just another 5K potentiometer connected
-to the column of the paddle center shaft.
-There are also some buttons just for test mode, including SELECT, UP & DOWN
-The player's seat has movement controlled by a compressor and several
-potentiometers. On bootup, the system tests the seat movement and displays
-a warning if it's not working. Pressing START allows the game to continue
-and function normally without the seat movement.
-
-The other game on this system (Final Furlong) and is a horse racing game.
-To control the horse you rock it forwards and backwards continually (it's very tiring
-to play this game).
-This would activate possibly one or two 5K potentiometers inside the horse body.
-Just like a real horse you need to control the speed so your horse lasts the entire race.
-If you rock too much, a message on screen says 'Too Fast'. To steer the horse turn the
-head sideways using the reins. There would be another 5K potentiometer in the head
-to activate the turning direction.
-
-
-Main PCB
---------
-
-8664960102 (8664970102) GORGON MAIN PCB
-|------------------------------------------------------------------------------------------------------|
-| J4 J5 J6 |
-| |---------| |---------| |------| |---------| |
-| |---------| |------| | | | | |C401 | | |HM534251 HM534251 |
-| CXD1178Q| | |C381 | | C374 | |------| | C417 | | | | 304 |HM534251 HM534251 |
-| | C404 | | | | | |C435 | | | |------| | |HM534251 HM534251 |
-| | | |------| | | | | | | |------| | | |
-| | | |---------| |------| |---------| |C400 | |---------| |
-| |---------| |---------| |------| | | |---------| |
-| | | |C435 | 341256 |------| | |HM534251 HM534251 |
-| | C397 | | | |------| | 304 |HM534251 HM534251 |
-| 341256 341256 341256 | | |------| 341256 |C401 | | |HM534251 HM534251 |
-| M5M51008 341256 | | |---------| | | | | |
-| |---------| | | |------| |------| |---------| |
-| M5M51008 341256 |------| | C403 | |C406 | |------| |---------| |
-|ADM485 |---------| |C379 | | | | | |C400 | | |HM534251 HM534251 |
-| | | | | | | |------| | | | 304 |HM534251 HM534251 |
-| M5M51008 | C300 | |------| |---------| |------| | |HM534251 HM534251 |
-| | | LH540204 LH540204 |------| | | |
-| M5M51008 | |341256 |------| |C401 | |---------| |
-|J1 HCPL0611 |---------|341256 |C407 | | | |---------| |
-| DS8921 PST575 PST575 | | |------| | | |
-| DS8921 |------| |------| | 304 |HM534251 HM534251 |
-| M5M51008 |C400 | | |HM534251 HM534251 |
-| CY7C128 CY2291S | | | | |
-| |------|M5M51008 14.31818MHz |------| |---------| |
-| |C422 | J9 M5M5256 |------| |---------| 3V_BATT |
-| | |341256 |C400 | | | |
-| |------|341256 | | | C399 |341256 LEDS(8) |
-| |------| |--------| |------| | |341256 |
-| |C352 | |ALTERA | |------| | | |
-| ADM485 DSW1(2) |------| | | |EPM7128 | |C401 | |---------| DSW3(2) DSW5(8)|
-| 2061ASC |C416 | |------| | | | | |---------| |---------| |
-| 14.7456MHz | | |--------| |------| | | |NKK | |
-|PAL |-----| |------| |------| D4516161 | C413 | |NR4650 | |
-| |H8/ | |C361 | D4516161 | | |LQF-13B | |
-| |3002 | | |LC321664 | | | | |
-| J10 |-----| |------| J8 |---------| |---------| |
-|------------------------------------------------------------------------------------------------------|
-Notes:
- NKK NR4650 - R4600-based 64bit RISC CPU (Main CPU, QFP208, clock input source = CY2291S)
- H8/3002 - Hitachi H8/3002 HD6413002F17 (Sound CPU, QFP100, running at 14.7456MHz)
- EPM7128 - Altera EPM7128 FPGA labelled 'GOR-M1' (PLCC84)
- PAL - PALCE16V8H stamped 'GOR-M3' (PLCC20)
- HM534251 - Hitachi HM534251 256k x4 Dynamic Video RAM (SOJ28)
- N341256 - NKK 32k x8 SRAM (SOJ28)
- M5M5256 - Mitsubishi 32k x8 SRAM (SOP28)
- D4516161 - NEC uPD4516161AG5-A80 1M x16 (16MBit) SDRAM (SSOP50)
- LC321664 - Sanyo 64k x16 EDO DRAM (SOJ40)
- M5M51008 - Mitsubishi 128k x8 SRAM (SOP32)
- CY7C128 - Cypress 2k x8 SRAM (SOJ28)
- LH540204 - Sharp CMOS 4096 x 9 Asynchronous FIFO (PLCC32)
- 2061ASC-1- IC Designs 2061ASC-1 programmable clock generator (SOIC16)
- DS8921 - Dallas Semiconductor DS8921 RS-422/423 Differential Line Driver and Receiver Pair (SOIC8)
- HCPL0611 - Fairchild HCPL0611 High Speed 10MBits/sec Logic Gate Optocoupler (SOIC8)
- ADM485 - Analog Devices ADM485 5V Low Power EIA RS-485 Transceiver (SOIC8)
- PST575 - System Reset IC (SOIC8)
- CXD1178Q - Sony CXD1178Q 8-bit RGB 3-channel D/A converter (QFP48)
- J1 - 64 pin connector for connection of I/O board
- J4/J5/J6 \
- J8/J9 / Custom NAMCO connectors for connection of MEM(M1) PCB
- J10 - Custom NAMCO connector for MSPM(FR) PCB
-
-
- Namco Custom ICs
- ----------------
- C300 (QFP160)
- 304 (x4, QFP120)
- C352 (QFP100)
- C361 (QFP120)
- C374 (QFP160)
- C379 (QFP64)
- C381 (QFP144)
- C397 (QFP160)
- C399 (QFP160)
- C400 (QFP100)
- C401 (x4, QFP64)
- C403 (QFP136)
- C404 (QFP208)
- C406 (QFP120)
- C407 (QFP64)
- C413 (QFP208)
- C416 (QFP176)
- C417 (QFP208)
- C422 (QFP64)
- C435 (x2, TQFP144)
-
-
-Program ROM PCB
----------------
-
-MSPM(FR) PCB 8699015200 (8699015100)
-|--------------------------|
-| J1 |
-| |
-| IC3 IC1 |
-| |
-| |
-| IC2 |
-|--------------------------|
-Notes:
- J1 - Connector to plug into Main PCB
- IC1 \
- IC2 / Main Program (Fujitsu 29F016 16MBit FlashROM, TSOP48)
- IC3 - Sound Program (Fujitsu 29F400T 4MBit FlashROM, TSOP48)
-
- Games that use this PCB include...
-
- Game Code and revision
- --------------------------------
- Rapid River RD2 Ver.C
- Rapid River RD3 Ver.C
- Final Furlong FF2 Ver.A
-
-ROM PCB
--------
-
-MEM(M1) PCB
-8664960202 (8664970202)
-|--------------------------------------------------------|
-| J2(TEXTURE) J3(POINT) J5(SPRITE) |
-| PAL1 |
-| |
-| |
-| |
-| CCRL.11A |
-| CCRL.11E PT3L.12J PT3H.12L SPRLL.12P SPRLL.12T |
-| CCRH.11B |
-| CCRH.11F |
-| PT2L.11J PT2H.11L SPRLM.11P SPRLM.11T |
-| |
-| |
-| PT1L.10J PT1H.10L SPRUM.10P SPRUM.10T |
-| PAL2 PAL3 |
-| |
-| PT0L.9J PT0H.9L SPRUU.9P SPRUU.9T |
-| JP7 JP9 |
-| JP6 JP8 |
-| CGLL.8B CGLL.8F |
-| |
-| |
-| CGLM.7B CGLM.7F |
-| JP2 JP4 |
-| JP1 JP3 |
-| CGUM.6B CGUM.6F |
-| J1(WAVE) |
-| |
-| CGUU.5B CGUU.5F WAVEH.3S |
-| |
-| MTBH.5J WAVEL.2S |
-| MTAH.3J JP5 |
-| MTBL.2J |
-| MTAL.1J KEYCUS |
-| |
-| J4(MOTION) |
-|--------------------------------------------------------|
-Notes:
- PAL1 - PALCE16V8H stamped 'SS22M1' (PLCC20)
- PAL2 - PALCE20V8H stamped 'SS22M2' (PLCC32)
- PAL3 - PALCE20V8H stamped 'SS22M2' (PLCC32)
- KEYCUS - for Rapid River: MACH211 CPLD stamped 'KC012' (PLCC44)
- KEYCUS - for Final Furlong: MACH211 CPLD stamped 'KC011' (PLCC44)
- J1->J5 - Custom NAMCO connectors for joining ROM PCB to Main PCB
- JP1/JP2 \
- JP3/JP4 |
- JP5 | Jumpers to set ROM sizes (32M/64M)
- JP6/JP7 |
- JP8/JP9 /
-
- ROMs
- ----
- PT* - Point ROMs, sizes configurable to either 16M or 32M (SOP44)
- MT* - Motion ROMs, sizes configurable to either 32M or 64M (SOP44)
- CG* - Texture ROMs, sizes configurable to either 32M or 64M (SOP44)
- CCR* - Texture Tilemap ROMs, sizes fixed at 16M (SOP44)
- SPR* - Sprite ROMs, sizes configurable to either 32M or 64M (SOP44)
- WAVE*- Wave ROMs, sizes configurable to either 32M or 64M (SOP44)
-
-I/O PCB
--------
-
-V187 ASCA-2A PCB
-2477960102 (2477970102)
-|--------------------------------------------------------|
-| J105 |
-| |-------| 14.7456MHz |
-| J104 |ALTERA | ADM485 PST592 |
-| |EPM7064| |-------| |
-| | | | | |
-| |-------| | C78 | |
-| LC78815 | | |
-| |-------| |
-| MB87078 |---| |
-| LA4705 |IC1| 62256 |
-| |---| |
-| J101 J102 |
-|--------------------------------------------------------|
-Notes:
- IC1 - Atmel AT29C020 2MBit EEPROM labelled 'ASCA1 I/O-A' (PLCC32)
- C78 - Namco Custom MCU, positively identified as a Hitachi H8/3334 (PLCC84)
- EPM7064 - Altera EPM7064LC68-15 PLD, labelled 'ASCA DR0' (PLCC68)
- PST592 - System Reset IC (SOIC4)
- ADM485 - Analog Devices +ADM485 5V Low Power EIA RS-485 Transceiver (SOIC8)
- MB87078 - Fujitsu MB87078 Electronic Volume Control IC (SOIC24)
- LC78815 - Sanyo LM78815 2-Channel 16-Bit D/A Converter (SOIC20)
- J101 - 34 pin flat cable connector for filter board
- J102 - 50 pin flat cable connector for filter board
- J104 - 8 pin power connector (+5V, +12V, +3.3V)
- J105 - 64 pin connector for connection of Main PCB
-
-*/
-
-#include "emu.h"
-#include "cpu/f2mc16/mb9061x.h"
-#include "cpu/h8/h83002.h"
-#include "cpu/h8/h83337.h"
-#include "cpu/mips/mips3.h"
-#include "cpu/sh/sh2.h"
-#include "machine/namco_settings.h"
-#include "machine/nvram.h"
-#include "machine/rtc4543.h"
-#include "sound/c352.h"
-#include "video/poly.h"
-#include "emupal.h"
-#include "screen.h"
-#include "speaker.h"
-#include "tilemap.h"
-
-#include <cfloat>
-
-
-#define JVSCLOCK (XTAL(14'745'600))
-
-//#define H8CLOCK (16737350) /* from 2061 */
-//#define BUSCLOCK (16737350*2) /* 33MHz CPU bus clock / input */
-//#define C352CLOCK (25401600) /* previously measured at 25.992MHz from 2061 pin 9 */
-//#define C352DIV (296)
-
-#define H8CLOCK (16934400) /* based on research (superctr) */
-#define BUSCLOCK (16934400*2)
-#define C352CLOCK (25401600)
-#define C352DIV (288)
-
-#define VSYNC1 (59.8824)
-#define VSYNC2 (59.915)
-#define HSYNC (16666150)
-#define MODECLOCK (130205)
-
-#define MAIN_VBLANK_IRQ 0x01
-#define MAIN_C361_IRQ 0x02
-#define MAIN_SUBCPU_IRQ 0x04
-#define MAIN_C435_IRQ 0x08
-#define MAIN_C422_IRQ 0x10
-#define MAIN_C450_IRQ 0x20
-#define MAIN_C451_IRQ 0x40
-
-enum { MODEL, FLUSH };
-
-enum { RENDER_MAX_ENTRIES = 1000, POLY_MAX_ENTRIES = 10000 };
-
-struct namcos23_render_entry
-{
- int type;
-
- union
- {
- struct
- {
- uint16_t model;
- int16_t m[9];
- int32_t v[3];
- float scaling;
- } model;
- };
-};
-
-struct namcos23_render_data
-{
- running_machine *machine;
- const pen_t *pens;
- bitmap_rgb32 *bitmap;
- uint32_t (*texture_lookup)(running_machine &machine, const pen_t *pens, float x, float y);
-};
-
-class namcos23_state;
-
-class namcos23_renderer : public poly_manager<float, namcos23_render_data, 4>
-{
-public:
- namcos23_renderer(namcos23_state &state);
- void render_flush(bitmap_rgb32& bitmap);
- void render_scanline(int32_t scanline, const extent_t& extent, const namcos23_render_data& object, int threadid);
- float* zBuffer() { return m_zBuffer; }
-
-private:
- namcos23_state& m_state;
- float* m_zBuffer;
-};
-
-typedef namcos23_renderer::vertex_t poly_vertex;
-
-struct namcos23_poly_entry
-{
- namcos23_render_data rd;
- int front;
- int vertex_count;
- float zkey;
- poly_vertex pv[16];
-};
-
-
-struct c417_t
-{
- uint16_t ram[0x10000];
- uint16_t adr;
- uint32_t pointrom_adr;
-};
-
-struct c412_t
-{
- uint16_t sdram_a[0x100000]; // Framebuffers, probably
- uint16_t sdram_b[0x100000];
- uint16_t sram[0x20000]; // Ram-based tiles for rendering
- uint16_t pczram[0x200]; // Ram-based tilemap for rendering, or something else
- uint32_t adr;
- uint16_t status_c;
-};
-
-struct c421_t
-{
- uint16_t dram_a[0x40000];
- uint16_t dram_b[0x40000];
- uint16_t sram[0x8000];
- uint32_t adr;
-};
-
-struct c422_t
-{
- int16_t regs[0x10];
-};
-
-struct c361_t
-{
- emu_timer *timer;
- int scanline;
-};
-
-struct c404_t
-{
- rgb_t bgcolor;
- uint16_t palbase;
- uint8_t layer;
-};
-
-struct render_t
-{
- std::unique_ptr<namcos23_renderer> polymgr;
- int cur;
- int poly_count;
- int count[2];
- namcos23_render_entry entries[2][RENDER_MAX_ENTRIES];
- namcos23_poly_entry polys[POLY_MAX_ENTRIES];
- namcos23_poly_entry *poly_order[POLY_MAX_ENTRIES];
-};
-
-class namcos23_state : public driver_device
-{
-public:
- namcos23_state(const machine_config &mconfig, device_type type, const char *tag) :
- driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_subcpu(*this, "subcpu"),
- m_adc(*this, "subcpu:adc"),
- m_iocpu(*this, "iocpu"),
- m_rtc(*this, "rtc"),
- m_settings(*this, "namco_settings"),
- m_mainram(*this, "mainram"),
- m_shared_ram(*this, "shared_ram"),
- m_gammaram(*this, "gammaram"),
- m_charram(*this, "charram"),
- m_textram(*this, "textram"),
- m_czattr(*this, "czattr"),
- m_gmen_sh2(*this, "gmen_sh2"),
- m_gmen_sh2_shared(*this, "gmen_sh2_shared"),
- m_gfxdecode(*this, "gfxdecode"),
- m_lightx(*this, "LIGHTX"),
- m_lighty(*this, "LIGHTY"),
- m_p1(*this, "P1"),
- m_p2(*this, "P2"),
- m_screen(*this, "screen"),
- m_palette(*this, "palette"),
- m_generic_paletteram_32(*this, "paletteram"),
- m_adc_ports(*this, "ADC.%u", 0),
- m_lamps(*this, "lamp%u", 0U)
- { }
-
- void timecrs2v4a(machine_config &config);
- void ss23e2(machine_config &config);
- void gorgon(machine_config &config);
- void ss23(machine_config &config);
- void s23(machine_config &config);
- void gmen(machine_config &config);
- void timecrs2(machine_config &config);
- void motoxgo(machine_config &config);
-
- void init_s23();
-
- render_t m_render;
- const uint16_t *m_tmlrom;
- const uint8_t *m_tmhrom;
- const uint8_t *m_texrom;
- uint32_t m_tileid_mask;
- uint32_t m_tile_mask;
-
-private:
- void update_main_interrupts(uint32_t cause);
- void update_mixer();
-
- void textram_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
- void textchar_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
- void paletteram_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
- uint16_t c417_r(offs_t offset, uint16_t mem_mask = ~0);
- void c417_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- uint16_t c412_ram_r(offs_t offset);
- void c412_ram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- uint16_t c412_r(offs_t offset, uint16_t mem_mask = ~0);
- void c412_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- uint16_t c421_ram_r(offs_t offset);
- void c421_ram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- uint16_t c421_r(offs_t offset, uint16_t mem_mask = ~0);
- void c421_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- void ctl_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- uint16_t ctl_r(offs_t offset, uint16_t mem_mask = ~0);
- void c361_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- uint16_t c361_r(offs_t offset, uint16_t mem_mask = ~0);
- uint16_t c422_r(offs_t offset);
- void c422_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- void mcuen_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- uint16_t sub_comm_r(offs_t offset);
- void sub_comm_w(offs_t offset, uint16_t data);
- uint32_t c435_r(offs_t offset, uint32_t mem_mask = ~0);
- void c435_w(address_space &space, offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
- uint32_t gmen_trigger_sh2();
- uint32_t sh2_shared_r(offs_t offset);
- void sh2_shared_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
- void sharedram_sub_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- uint16_t sharedram_sub_r(offs_t offset);
- void sub_interrupt_main_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- uint16_t mcu_p8_r();
- void mcu_p8_w(uint16_t data);
- uint16_t mcu_pa_r();
- void mcu_pa_w(uint16_t data);
- uint16_t mcu_pb_r();
- void mcu_pb_w(uint16_t data);
- uint16_t mcu_p6_r();
- void mcu_p6_w(uint16_t data);
- uint16_t iob_p4_r();
- void iob_p4_w(uint16_t data);
- uint16_t iob_p6_r();
- void iob_p6_w(uint16_t data);
- uint8_t iob_gun_r(offs_t offset);
- uint16_t iob_analog_r(offs_t offset);
- void c435_state_pio_w(uint16_t data);
- void c435_state_reset_w(uint16_t data);
-
- TILE_GET_INFO_MEMBER(TextTilemapGetInfo);
- DECLARE_VIDEO_START(s23);
- DECLARE_MACHINE_RESET(gmen);
- uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
- INTERRUPT_GEN_MEMBER(interrupt);
- TIMER_CALLBACK_MEMBER(c361_timer_cb);
- DECLARE_WRITE_LINE_MEMBER(sub_irq);
- uint8_t nthbyte(const uint32_t *pSource, int offs);
- uint16_t nthword(const uint32_t *pSource, int offs);
- inline int32_t u32_to_s24(uint32_t v);
- inline int32_t u32_to_s10(uint32_t v);
- float f24_to_f32(uint32_t v);
-
- int32_t *c435_getv(uint16_t id);
- int16_t *c435_getm(uint16_t id);
-
- void c435_state_set_interrupt(const uint16_t *param);
- void c435_state_set_projection_matrix_line(const uint16_t *param);
- void c435_state_set(uint16_t type, const uint16_t *param);
- int c435_get_state_entry_size(uint16_t type);
-
- void c435_matrix_matrix_mul();
- void c435_matrix_set();
- void c435_vector_set();
- void c435_matrix_vector_mul();
- void c435_state_set();
- void c435_scaling_set();
- void c435_render();
- void c435_flush();
-
- void c435_pio_w(uint16_t data);
- void c435_dma(address_space &space, uint32_t adr, uint32_t size);
-
- void render_apply_transform(int32_t xi, int32_t yi, int32_t zi, const namcos23_render_entry *re, poly_vertex &pv);
- void render_apply_matrot(int32_t xi, int32_t yi, int32_t zi, const namcos23_render_entry *re, int32_t &x, int32_t &y, int32_t &z);
- void render_project(poly_vertex &pv);
- void render_one_model(const namcos23_render_entry *re);
- void render_run(bitmap_rgb32 &bitmap);
-
- void gmen_mips_map(address_map &map);
- void gmen_sh2_map(address_map &map);
- void gorgon_map(address_map &map);
- void s23_map(address_map &map);
- void s23h8iomap(address_map &map);
- void s23h8rwmap(address_map &map);
- void s23iobrdiomap(address_map &map);
- void s23iobrdmap(address_map &map);
- void motoxgo_exio_map(address_map &map);
- void timecrs2iobrdmap(address_map &map);
-
- virtual void machine_start() override;
- virtual void machine_reset() override;
-
- required_device<mips3_device> m_maincpu;
- required_device<h83002_device> m_subcpu;
- required_device<h8_adc_device> m_adc;
- optional_device<h83334_device> m_iocpu;
- required_device<rtc4543_device> m_rtc;
- required_device<namco_settings_device> m_settings;
- required_shared_ptr<uint32_t> m_mainram;
- required_shared_ptr<uint32_t> m_shared_ram;
- required_shared_ptr<uint32_t> m_gammaram;
- required_shared_ptr<uint32_t> m_charram;
- required_shared_ptr<uint32_t> m_textram;
- optional_shared_ptr<uint32_t> m_czattr;
- optional_device<cpu_device> m_gmen_sh2;
- optional_shared_ptr<uint32_t> m_gmen_sh2_shared;
- required_device<gfxdecode_device> m_gfxdecode;
- optional_ioport m_lightx;
- optional_ioport m_lighty;
- required_ioport m_p1;
- required_ioport m_p2;
- required_device<screen_device> m_screen;
- required_device<palette_device> m_palette;
- required_shared_ptr<uint32_t> m_generic_paletteram_32;
- optional_ioport_array<4> m_adc_ports;
-
- c404_t m_c404;
- c361_t m_c361;
- c417_t m_c417;
- c412_t m_c412;
- c421_t m_c421;
- c422_t m_c422;
-
- tilemap_t *m_bgtilemap;
- uint8_t m_jvssense;
- int32_t m_has_jvsio;
- uint32_t m_main_irqcause;
- bool m_ctl_vbl_active;
- uint8_t m_ctl_led;
- uint16_t m_ctl_inp_buffer[2];
- bool m_subcpu_running;
- uint32_t m_c435_address;
- uint32_t m_c435_size;
- const uint32_t *m_ptrom;
- uint32_t m_ptrom_limit;
- uint8_t m_mcu_unk;
-
- int m_vblank_count;
-
-// It may only be 128
-// At 0x1e bytes per slot, rounded up to 0x20, that's 0x1000 to 0x2000 bytes.
-// That fits pretty much anywhere, including inside a IC
-// No idea at that point if it's CPU-reachable. DMA's probably more efficient anyway.
-
-// Matrices are stored in signed 2.14 fixed point
-// Vectors are stored in signed 10.14 fixed point
-
- int16_t m_matrices[256][9];
- int32_t m_vectors[256][3];
- int32_t m_light_vector[3];
- uint16_t m_scaling;
- int32_t m_spv[3];
- int16_t m_spm[3];
-
- uint16_t m_c435_buffer[256];
- int m_c435_buffer_pos;
-
- uint8_t m_sub_porta;
- uint8_t m_sub_portb;
- uint8_t m_tssio_port_4;
- output_finder<8> m_lamps;
-};
-
-
-uint8_t namcos23_state::nthbyte(const uint32_t *pSource, int offs)
-{
- pSource += offs/4;
- return (pSource[0]<<((offs&3)*8))>>24;
-}
-
-uint16_t namcos23_state::nthword(const uint32_t *pSource, int offs)
-{
- pSource += offs/2;
- return (pSource[0]<<((offs&1)*16))>>16;
-}
-
-
-
-
-
-/***************************************************************************
-
- Video
-
-***************************************************************************/
-
-namcos23_renderer::namcos23_renderer(namcos23_state &state)
- : poly_manager<float, namcos23_render_data, 4>(state.machine()),
- m_state(state)
-{
-}
-
-// 3D hardware, to throw at least in part in video/namcos23.c
-
-inline int32_t namcos23_state::u32_to_s24(uint32_t v)
-{
- return v & 0x800000 ? v | 0xff000000 : v & 0xffffff;
-}
-
-inline int32_t namcos23_state::u32_to_s10(uint32_t v)
-{
- return v & 0x200 ? v | 0xfffffe00 : v & 0x1ff;
-}
-
-float namcos23_state::f24_to_f32(uint32_t v)
-{
- // 8 bits exponent, 16 mantissa
- // mantissa is 16-bits signed, 2-complement
- // value is m * 2**(e-46)
- // 1 is e=32, m=0x4000, -1 is e=31, m=0x8000
-
- // This code turns it into a standard float
- if(!v)
- return 0;
-
- uint32_t r = v & 0x8000 ? 0x80000000 : 0;
- uint16_t m = r ? -v : v;
- uint8_t e = (v >> 16) + 0x60;
- while(!(m & 0x8000)) {
- m <<= 1;
- e--;
- }
-
- r = r | (e << 23) | ((m & 0x7fff) << 8);
- return *(float *)&r;
-}
-
-static inline uint8_t light(uint8_t c, float l)
-{
- if(l < 1)
- l = l*c;
- else
- l = 255 - (255-c)/l;
- return uint8_t(l);
-}
-
-int32_t *namcos23_state::c435_getv(uint16_t id)
-{
- if(id == 0x8000)
- return m_light_vector;
- if(id >= 0x100) {
- memset(m_spv, 0, sizeof(m_spv));
- return m_spv;
- }
- return m_vectors[id];
-}
-
-int16_t *namcos23_state::c435_getm(uint16_t id)
-{
- if(id >= 0x100) {
- memset(m_spm, 0, sizeof(m_spm));
- return m_spm;
- }
- return m_matrices[id];
-}
-
-void namcos23_state::c435_state_set_interrupt(const uint16_t *param)
-{
- if(param[0] & 1)
- update_main_interrupts(m_main_irqcause | MAIN_C435_IRQ);
- else
- update_main_interrupts(m_main_irqcause & ~MAIN_C435_IRQ);
-}
-
-void namcos23_state::c435_state_set_projection_matrix_line(const uint16_t *param)
-{
- // timecrs2:
- // sx = 640/2, sy = 480/2, t = tan(fov/2) (fov=45 degrees)
- // line 1: 1 0 -(sx-a)/(sx/t) 0 -1 0 -(sx+a)/(sx/t) 0
- // line 2: 0 1 -(sy-b)/(sx/t) 0 0 -1 -(sy+b)/(sx/t) 0
- // line 3: 0 0 -1 c 0 0 0 sx/t
-
- char buf[4096];
- char *p = buf;
- p += sprintf(p, "projection matrix line:");
- for(int i=0; i<8; i++)
- p += sprintf(p, " %f", f24_to_f32((param[2*i+1] << 16) | param[2*i+2]));
- p += sprintf(p, "\n");
- logerror(buf);
-}
-
-void namcos23_state::c435_state_set(uint16_t type, const uint16_t *param)
-{
- switch(type) {
- case 0x0001: c435_state_set_interrupt(param); break;
- case 0x00c8: c435_state_set_projection_matrix_line(param); break;
- default: {
- char buf[4096];
- char *p = buf;
- p += sprintf(buf, "WARNING: Unhandled state type %04x :", type);
- for(int i=0; i<c435_get_state_entry_size(type); i++)
- p += sprintf(p, " %04x", param[i]);
- p += sprintf(p, "\n");
- logerror(buf);
- break;
- }
- }
-}
-
-void namcos23_state::c435_state_reset_w(uint16_t data)
-{
- m_c435_buffer_pos = 0;
-}
-
-void namcos23_state::c435_state_pio_w(uint16_t data)
-{
- m_c435_buffer[m_c435_buffer_pos++] = data;
- int psize = c435_get_state_entry_size(m_c435_buffer[0]);
- if(m_c435_buffer_pos < psize+1)
- return;
- c435_state_set(m_c435_buffer[0], m_c435_buffer+1);
- m_c435_buffer_pos = 0;
-}
-
-int namcos23_state::c435_get_state_entry_size(uint16_t type)
-{
- switch(type) {
- case 0x0001: return 1;
- case 0x0009: return 19;
- case 0x0042: return 41;
- case 0x0046: return 13;
- case 0x00c0: return 33;
- case 0x00c6: return 13;
- case 0x00c8: return 17;
- default:
- logerror("WARNING: Unknown size for state type %04x\n", type);
- return -1;
- }
-}
-
-void namcos23_state::c435_matrix_matrix_mul() // 0.0
-{
- if((m_c435_buffer[0] & 0xf) != 4) {
- logerror("WARNING: c435_matrix_matrix_mul with size %d\n", m_c435_buffer[0] & 0xf);
- return;
- }
- if(m_c435_buffer[0] != 0x0004)
- logerror("WARNING: c435_matrix_matrix_mul header %04x\n", m_c435_buffer[0]);
- if(m_c435_buffer[3] != 0xffff)
- logerror("WARNING: c435_matrix_matrix_mul with +2=%04x\n", m_c435_buffer[3]);
-
- int16_t *t = c435_getm(m_c435_buffer[1]);
- const int16_t *m2 = c435_getm(m_c435_buffer[2]);
- const int16_t *m1 = c435_getm(m_c435_buffer[4]);
-
- t[0] = int16_t((m1[0]*m2[0] + m1[1]*m2[1] + m1[2]*m2[2]) >> 14);
- t[1] = int16_t((m1[0]*m2[3] + m1[1]*m2[4] + m1[2]*m2[5]) >> 14);
- t[2] = int16_t((m1[0]*m2[6] + m1[1]*m2[7] + m1[2]*m2[8]) >> 14);
- t[3] = int16_t((m1[3]*m2[0] + m1[4]*m2[1] + m1[5]*m2[2]) >> 14);
- t[4] = int16_t((m1[3]*m2[3] + m1[4]*m2[4] + m1[5]*m2[5]) >> 14);
- t[5] = int16_t((m1[3]*m2[6] + m1[4]*m2[7] + m1[5]*m2[8]) >> 14);
- t[6] = int16_t((m1[6]*m2[0] + m1[7]*m2[1] + m1[8]*m2[2]) >> 14);
- t[7] = int16_t((m1[6]*m2[3] + m1[7]*m2[4] + m1[8]*m2[5]) >> 14);
- t[8] = int16_t((m1[6]*m2[6] + m1[7]*m2[7] + m1[8]*m2[8]) >> 14);
-}
-
-void namcos23_state::c435_matrix_vector_mul() // 0.1
-{
- if((m_c435_buffer[0] & 0xf) != 4) {
- logerror("WARNING: c435_matrix_vector_mul with size %d\n", m_c435_buffer[0] & 0xf);
- return;
- }
-
- if(m_c435_buffer[0] != 0x0814 && m_c435_buffer[0] != 0x1014)
- logerror("WARNING: c435_matrix_vector_mul header %04x\n", m_c435_buffer[0]);
-
-
- if(m_c435_buffer[3] != 0xffff) {
- int32_t *t = c435_getv(m_c435_buffer[1]);
- const int16_t *m = c435_getm(m_c435_buffer[2]);
- const int32_t *vt = c435_getv(m_c435_buffer[3]);
- const int32_t *v = c435_getv(m_c435_buffer[4]);
-
- t[0] = int32_t((m[0]*int64_t(v[0]) + m[1]*int64_t(v[1]) + m[2]*int64_t(v[2])) >> 14) + vt[0];
- t[1] = int32_t((m[3]*int64_t(v[0]) + m[4]*int64_t(v[1]) + m[5]*int64_t(v[2])) >> 14) + vt[1];
- t[2] = int32_t((m[6]*int64_t(v[0]) + m[7]*int64_t(v[1]) + m[8]*int64_t(v[2])) >> 14) + vt[2];
-
- } else {
- int32_t *t = c435_getv(m_c435_buffer[1]);
- const int16_t *m = c435_getm(m_c435_buffer[2]);
- const int32_t *v = c435_getv(m_c435_buffer[4]);
-
- t[0] = int32_t((m[0]*int64_t(v[0]) + m[1]*int64_t(v[1]) + m[2]*int64_t(v[2])) >> 14);
- t[1] = int32_t((m[3]*int64_t(v[0]) + m[4]*int64_t(v[1]) + m[5]*int64_t(v[2])) >> 14);
- t[2] = int32_t((m[6]*int64_t(v[0]) + m[7]*int64_t(v[1]) + m[8]*int64_t(v[2])) >> 14);
- }
-}
-
-void namcos23_state::c435_matrix_set() // 0.4
-{
- if((m_c435_buffer[0] & 0xf) != 10) {
- logerror("WARNING: c435_matrix_set with size %d\n", m_c435_buffer[0] & 0xf);
- return;
- }
-
- if(m_c435_buffer[0] != 0x004a)
- logerror("WARNING: c435_matrix_set header %04x\n", m_c435_buffer[0]);
-
- int16_t *t = c435_getm(m_c435_buffer[1]);
- for(int i=0; i<9; i++)
- t[i] = m_c435_buffer[i+2];
-}
-
-void namcos23_state::c435_vector_set() // 0.5
-{
- if((m_c435_buffer[0] & 0xf) != 7) {
- logerror("WARNING: c435_vector_set with size %d\n", m_c435_buffer[0] & 0xf);
- return;
- }
- if(m_c435_buffer[0] != 0x057)
- logerror("WARNING: c435_vector_set header %04x\n", m_c435_buffer[0]);
-
- int32_t *t = c435_getv(m_c435_buffer[1]);
- for(int i=0; i<3; i++)
- t[i] = u32_to_s24((m_c435_buffer[2*i+2] << 16) | m_c435_buffer[2*i+3]);
-}
-
-void namcos23_state::c435_scaling_set() // 4.4
-{
- if((m_c435_buffer[0] & 0xff) != 1) {
- logerror("WARNING: c435_scaling_set with size %d\n", m_c435_buffer[0] & 0xff);
- return;
- }
- m_scaling = m_c435_buffer[1];
-}
-
-void namcos23_state::c435_state_set() // 4.f
-{
- if((m_c435_buffer[0] & 0xff) == 0) {
- logerror("WARNING: c435_state_set with zero size\n");
- return;
- }
- int size = c435_get_state_entry_size(m_c435_buffer[1]);
- if(size != (m_c435_buffer[0] & 0xff)-1)
- {
- logerror("WARNING: c435_state_set size disagreement (type=%04x, got %d, expected %d)\n", m_c435_buffer[1], (m_c435_buffer[0] & 0xff)-1, size);
- return;
- }
-
- c435_state_set(m_c435_buffer[1], m_c435_buffer+2);
-}
-
-void namcos23_state::c435_render() // 8
-{
- if((m_c435_buffer[0] & 0xf) != 3) {
- logerror("WARNING: c435_render with size %d, header %04x\n", m_c435_buffer[0] & 0xf, m_c435_buffer[0]);
- return;
- }
-
- render_t &render = m_render;
- bool use_scaling = m_c435_buffer[0] & 0x0080;
-
- logerror("render model %x %swith matrix %x and vector %x\n", m_c435_buffer[1], use_scaling ? "scaled " : "", m_c435_buffer[2], m_c435_buffer[3]);
-
- if(render.count[render.cur] >= RENDER_MAX_ENTRIES) {
- logerror("WARNING: render buffer full\n");
- return;
- }
-
- // Vector and matrix may be inverted
- const int16_t *m = c435_getm(m_c435_buffer[2]);
- const int32_t *v = c435_getv(m_c435_buffer[3]);
-
- namcos23_render_entry *re = render.entries[render.cur] + render.count[render.cur];
- re->type = MODEL;
- re->model.model = m_c435_buffer[1];
- re->model.scaling = use_scaling ? m_scaling / 16384.0 : 1.0;
- memcpy(re->model.m, m, sizeof(re->model.m));
- memcpy(re->model.v, v, sizeof(re->model.v));
- // re->model.v[2] *= 768/420.0;
-
- if(0)
- logerror("Render %04x (%f %f %f %f %f %f %f %f %f) (%f %f %f) %f\n",
- re->model.model,
- re->model.m[0]/16384.0, re->model.m[1]/16384.0, re->model.m[2]/16384.0,
- re->model.m[3]/16384.0, re->model.m[4]/16384.0, re->model.m[5]/16384.0,
- re->model.m[6]/16384.0, re->model.m[7]/16384.0, re->model.m[8]/16384.0,
- re->model.v[0]/16384.0, re->model.v[1]/16384.0, re->model.v[2]/16384.0,
- re->model.scaling);
-
- render.count[render.cur]++;
-}
-
-void namcos23_state::c435_flush() // c
-{
- if((m_c435_buffer[0] & 0xf) != 0) {
- logerror("WARNING: c435_flush with size %d\n", m_c435_buffer[0] & 0xf);
- return;
- }
-
- render_t &render = m_render;
- namcos23_render_entry *re = render.entries[render.cur] + render.count[render.cur];
- re->type = FLUSH;
- render.count[render.cur]++;
-}
-
-
-void namcos23_state::c435_pio_w(uint16_t data)
-{
- m_c435_buffer[m_c435_buffer_pos++] = data;
- uint16_t h = m_c435_buffer[0];
- int psize;
- if((h & 0x4000) == 0x4000)
- psize = h & 0xff;
- else
- psize = h & 0xf;
- if(m_c435_buffer_pos < psize+1)
- return;
-
- bool known = true;
- switch(h & 0xc000) {
- case 0x0000:
- switch(h & 0xf0) {
- case 0x00: c435_matrix_matrix_mul(); break;
- case 0x10: c435_matrix_vector_mul(); break;
- case 0x40: c435_matrix_set(); break;
- case 0x50: c435_vector_set(); break;
- default: known = false; break;
- }
- break;
-
- case 0x4000:
- switch(h & 0x3f00) {
- case 0x0400: c435_scaling_set(); break;
- case 0x0f00: c435_state_set(); break;
- default: known = false; break;
- }
- break;
-
- case 0x8000: c435_render(); break;
- case 0xc000: c435_flush(); break;
- }
-
- if(!known) {
- char buf[4096];
- char *p = buf;
- p += sprintf(p, "c435 -");
- for(int i=0; i<m_c435_buffer_pos; i++)
- p += sprintf(p, " %04x", m_c435_buffer[i]);
- p += sprintf(p, "\n");
- logerror(buf);
- }
-
- m_c435_buffer_pos = 0;
-}
-
-void namcos23_state::c435_dma(address_space &space, uint32_t adr, uint32_t size)
-{
- adr &= 0x1fffffff;
-
- for(int pos=0; pos < size; pos += 2)
- c435_pio_w(space.read_word(adr+pos));
-}
-
-uint32_t namcos23_state::c435_r(offs_t offset, uint32_t mem_mask)
-{
- switch(offset) {
- case 0xa:
- return 1; // Busy flag
- }
-
- logerror("c435_r %02x @ %08x (%08x, %08x)\n", offset, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
- return 0;
-}
-
-void namcos23_state::c435_w(address_space &space, offs_t offset, uint32_t data, uint32_t mem_mask)
-{
- switch(offset) {
- case 0x7:
- COMBINE_DATA(&m_c435_address);
- break;
- case 0x8:
- COMBINE_DATA(&m_c435_size);
- break;
- case 0x9:
- if(data & 1)
- c435_dma(space, m_c435_address, m_c435_size);
- break;
- default:
- logerror("c435_w %02x, %08x @ %08x (%08x, %08x)\n", offset, data, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
- break;
- }
-}
-
-
-
-
-void namcos23_renderer::render_scanline(int32_t scanline, const extent_t& extent, const namcos23_render_data& object, int threadid)
-{
- const namcos23_render_data& rd = object;
-
- float w = extent.param[0].start;
- float u = extent.param[1].start;
- float v = extent.param[2].start;
- float l = extent.param[3].start;
- const float dw = extent.param[0].dpdx;
- const float du = extent.param[1].dpdx;
- const float dv = extent.param[2].dpdx;
- const float dl = extent.param[3].dpdx;
-
- uint32_t *img = &object.bitmap->pix(scanline, extent.startx);
-
- for(int x = extent.startx; x < extent.stopx; x++) {
- const float z = w ? 1/w : 0;
- const uint32_t pcol = rd.texture_lookup(*rd.machine, rd.pens, u*z, v*z);
- float ll = l*z;
- *img = (light(pcol >> 16, ll) << 16) | (light(pcol >> 8, ll) << 8) | light(pcol, ll);
-
- w += dw;
- u += du;
- v += dv;
- l += dl;
- img++;
- }
-}
-
-void namcos23_state::render_apply_transform(int32_t xi, int32_t yi, int32_t zi, const namcos23_render_entry *re, poly_vertex &pv)
-{
- pv.x = (int32_t((re->model.m[0]*int64_t(xi) + re->model.m[1]*int64_t(yi) + re->model.m[2]*int64_t(zi)) >> 14)*re->model.scaling + re->model.v[0])/16384.0f;
- pv.y = (int32_t((re->model.m[3]*int64_t(xi) + re->model.m[4]*int64_t(yi) + re->model.m[5]*int64_t(zi)) >> 14)*re->model.scaling + re->model.v[1])/16384.0f;
- pv.p[0] = (int32_t((re->model.m[6]*int64_t(xi) + re->model.m[7]*int64_t(yi) + re->model.m[8]*int64_t(zi)) >> 14)*re->model.scaling + re->model.v[2])/16384.0f;
-}
-
-void namcos23_state::render_apply_matrot(int32_t xi, int32_t yi, int32_t zi, const namcos23_render_entry *re, int32_t &x, int32_t &y, int32_t &z)
-{
- x = (re->model.m[0]*xi + re->model.m[3]*yi + re->model.m[6]*zi) >> 14;
- y = (re->model.m[1]*xi + re->model.m[4]*yi + re->model.m[7]*zi) >> 14;
- z = (re->model.m[2]*xi + re->model.m[5]*yi + re->model.m[8]*zi) >> 14;
-}
-
-void namcos23_state::render_project(poly_vertex &pv)
-{
- // 768 validated by the title screen size on tc2:
- // texture is 640x480, x range is 3.125, y range is 2.34375, z is 3.75
- // 640/(3.125/3.75) = 768
- // 480/(2.34375/3.75) = 768
-
-#if 1
- pv.x = 320 + 768*pv.x;
- pv.y = 240 - 768*pv.y;
-#else
- pv.x = 320 + 410*pv.x;
- pv.y = 240 - 410*pv.y;
-#endif
-
- pv.p[0] = 1.0f / pv.p[0];
-}
-
-static uint32_t render_texture_lookup_nocache_point(running_machine &machine, const pen_t *pens, float x, float y)
-{
- namcos23_state *state = machine.driver_data<namcos23_state>();
- uint32_t xx = uint32_t(x);
- uint32_t yy = uint32_t(y);
- uint32_t tileid = ((xx >> 4) & 0xff) | ((yy << 4) & state->m_tileid_mask);
- uint8_t attr = state->m_tmhrom[tileid >> 1];
- if(tileid & 1)
- attr &= 15;
- else
- attr >>= 4;
- uint32_t tile = (state->m_tmlrom[tileid] | (attr << 16)) & state->m_tile_mask;
-
- // Probably swapx/swapy to add on bits 2-3 of attr
- // Bits used by motoxgo at least
- uint8_t color = state->m_texrom[(tile << 8) | ((yy << 4) & 0xf0) | (xx & 0x0f)];
- return pens[color];
-}
-
-void namcos23_state::render_one_model(const namcos23_render_entry *re)
-{
- render_t &render = m_render;
- if(re->model.model < 0x80) {
- logerror("WARNING: model %02x requested\n", re->model.model);
- return;
- }
-
- if(re->model.model == 3486)
- return;
-
- uint32_t adr = m_ptrom[re->model.model];
- if(adr >= m_ptrom_limit) {
- logerror("WARNING: model %04x base address %08x out-of-bounds - pointram?\n", re->model.model, adr);
- return;
- }
-
- while(adr < m_ptrom_limit) {
- poly_vertex pv[15];
-
- uint32_t type = m_ptrom[adr++];
- uint32_t h = m_ptrom[adr++];
-
- float tbase = (type >> 24) << 12;
- uint8_t color = (h >> 24) & 0x7f;
- int lmode = (type >> 19) & 3;
- int ne = (type >> 8) & 15;
-
- // Something to do with Z-sorting at least?
- if(type & 0x00001000)
- adr++;
-
- uint32_t light = 0;
- uint32_t extptr = 0;
-
- if(lmode == 3) {
- extptr = adr;
- adr += ne;
- }
- else
- light = m_ptrom[adr++];
-
- float minz = FLT_MAX;
- float maxz = FLT_MIN;
-
- for(int i=0; i<ne; i++) {
- uint32_t v1 = m_ptrom[adr++];
- uint32_t v2 = m_ptrom[adr++];
- uint32_t v3 = m_ptrom[adr++];
-
- render_apply_transform(u32_to_s24(v1), u32_to_s24(v2), u32_to_s24(v3), re, pv[i]);
- pv[i].p[1] = (((v1 >> 20) & 0xf00) | ((v2 >> 24 & 0xff))) + 0.5;
- pv[i].p[2] = (((v1 >> 16) & 0xf00) | ((v3 >> 24 & 0xff))) + 0.5f + tbase;
-
- if(pv[i].p[0] > maxz)
- maxz = pv[i].p[0];
- if(pv[i].p[0] < minz)
- minz = pv[i].p[0];
-
- switch(lmode) {
- case 0:
- pv[i].p[3] = ((light >> (8*(3-i))) & 0xff) / 64.0;
- break;
- case 1:
- pv[i].p[3] = ((light >> (8*(3-i))) & 0xff) / 64.0;
- break;
- case 2:
- pv[i].p[3] = 1.0;
- break;
- case 3: {
- uint32_t norm = m_ptrom[extptr++];
- int32_t nx = u32_to_s10(norm >> 20);
- int32_t ny = u32_to_s10(norm >> 10);
- int32_t nz = u32_to_s10(norm);
- int32_t nrx, nry, nrz;
- render_apply_matrot(nx, ny, nz, re, nrx, nry, nrz);
- float lsi = float(nrx*m_light_vector[0] + nry*m_light_vector[1] + nrz*m_light_vector[2])/4194304.0f;
- if(lsi < 0)
- lsi = 0;
-
- // Mapping taken out of a hat
- pv[i].p[3] = 0.25f+1.5f*lsi;
- break;
- }
- }
- }
-
- namcos23_poly_entry *p = render.polys + render.poly_count;
-
- // Should be unnecessary now that frustum clipping happens, but this still culls polys behind the camera
- p->vertex_count = render.polymgr->zclip_if_less<4>(ne, pv, p->pv, 0.00001f);
-
- // Project if you don't clip on the near plane
- if(p->vertex_count >= 3) {
- // Project the eye points
- frustum_clip_vertex<float, 3> clipVerts[10];
- for(int i=0; i<p->vertex_count; i++) {
- // Construct a frustum clipping vert from the NDCoords
- const float Z = p->pv[i].p[0];
- clipVerts[i].x = p->pv[i].x / Z;
- clipVerts[i].y = p->pv[i].y / Z;
- clipVerts[i].z = Z;
- clipVerts[i].w = Z;
- clipVerts[i].p[0] = p->pv[i].p[1];
- clipVerts[i].p[1] = p->pv[i].p[2];
- clipVerts[i].p[2] = p->pv[i].p[3];
- }
-
- // Clip against all edges of the view frustum
- int num_vertices = frustum_clip_all<float, 3>(clipVerts, p->vertex_count, clipVerts);
-
- if (num_vertices != 0)
- {
- // Push the results back into the main vertices
- for (int i=0; i < num_vertices; i++)
- {
- p->pv[i].x = clipVerts[i].x;
- p->pv[i].y = clipVerts[i].y;
- p->pv[i].p[0] = clipVerts[i].w;
- p->pv[i].p[1] = clipVerts[i].p[0];
- p->pv[i].p[2] = clipVerts[i].p[1];
- p->pv[i].p[3] = clipVerts[i].p[2];
- }
- p->vertex_count = num_vertices;
-
- // This is our poor-man's projection matrix
- for(int i=0; i<p->vertex_count; i++)
- {
- render_project(p->pv[i]);
-
- float w = p->pv[i].p[0];
- p->pv[i].p[1] *= w;
- p->pv[i].p[2] *= w;
- p->pv[i].p[3] *= w;
- }
-
- // Compute an odd sorta'-Z thing that can situate the polygon wherever you want in Z-depth
- p->zkey = 0.5f*(minz+maxz);
- p->front = !(h & 0x00000001);
- p->rd.machine = &machine();
- p->rd.texture_lookup = render_texture_lookup_nocache_point;
- p->rd.pens = m_palette->pens() + (color << 8);
- render.poly_count++;
- }
- }
-
- if(type & 0x000010000)
- break;
- }
-}
-
-static int render_poly_compare(const void *i1, const void *i2)
-{
- const namcos23_poly_entry *p1 = *(const namcos23_poly_entry **)i1;
- const namcos23_poly_entry *p2 = *(const namcos23_poly_entry **)i2;
-
- if(p1->front != p2->front)
- return p1->front ? 1 : -1;
-
- return p1->zkey < p2->zkey ? 1 : p1->zkey > p2->zkey ? -1 : 0;
-}
-
-void namcos23_renderer::render_flush(bitmap_rgb32& bitmap)
-{
- render_t &render = m_state.m_render;
-
- if(!render.poly_count)
- return;
-
- for(int i=0; i<render.poly_count; i++)
- render.poly_order[i] = &render.polys[i];
-
- qsort(render.poly_order, render.poly_count, sizeof(namcos23_poly_entry *), render_poly_compare);
-
- const static rectangle scissor(0, 639, 0, 479);
-
- for(int i=0; i<render.poly_count; i++) {
- const namcos23_poly_entry *p = render.poly_order[i];
- namcos23_render_data& extra = render.polymgr->object_data().next();
- extra = p->rd;
- extra.bitmap = &bitmap;
-
- // We should probably split the polygons into triangles ourselves to insure everything is being rendered properly
- if (p->vertex_count == 3)
- render_triangle<4>(scissor, render_delegate(&namcos23_renderer::render_scanline, this), p->pv[0], p->pv[1], p->pv[2]);
- else if (p->vertex_count == 4)
- render_polygon<4, 4>(scissor, render_delegate(&namcos23_renderer::render_scanline, this), p->pv);
- else if (p->vertex_count == 5)
- render_polygon<5, 4>(scissor, render_delegate(&namcos23_renderer::render_scanline, this), p->pv);
- else if (p->vertex_count == 6)
- render_polygon<6, 4>(scissor, render_delegate(&namcos23_renderer::render_scanline, this), p->pv);
- }
- render.poly_count = 0;
-}
-
-void namcos23_state::render_run(bitmap_rgb32 &bitmap)
-{
- render_t &render = m_render;
- const namcos23_render_entry *re = render.entries[!render.cur];
-
- render.poly_count = 0;
- for(int i=0; i<render.count[!render.cur]; i++) {
- switch(re->type) {
- case MODEL:
- render_one_model(re);
- break;
- case FLUSH:
- render.polymgr->render_flush(bitmap);
- break;
- }
- re++;
- }
- render.polymgr->render_flush(bitmap);
- render.polymgr->wait();
-}
-
-
-
-// C404 (gamma/palette)
-
-void namcos23_state::update_mixer()
-{
- // should be similar to Super System 22 C404
- // 08 - background color red
- // 09 - background color green
- // 0a - background color blue
- // 1b - text layer palette base
- // 1f - layer enable (d0: polygons, d1: sprites, d2: text)
- m_c404.bgcolor = rgb_t(nthword(m_gammaram,0x08), nthword(m_gammaram,0x09), nthword(m_gammaram,0x0a));
- m_c404.palbase = nthword(m_gammaram, 0x1b) << 8 & 0x7f00;
- m_c404.layer = nthword(m_gammaram, 0x1f) & 0xff;
-}
-
-void namcos23_state::paletteram_w(offs_t offset, uint32_t data, uint32_t mem_mask)
-{
- COMBINE_DATA(&m_generic_paletteram_32[offset]);
-
- // each LONGWORD is 2 colors, each OFFSET is 2 colors
- for(int i = 0; i < 2; i++) {
- int which = (offset << 2 | i << 1) & 0xfffe;
- int r = nthbyte(m_generic_paletteram_32, which|0x00001);
- int g = nthbyte(m_generic_paletteram_32, which|0x10001);
- int b = nthbyte(m_generic_paletteram_32, which|0x20001);
- m_palette->set_pen_color(which/2, rgb_t(r,g,b));
- }
-}
-
-
-
-// C361 (text)
-
-TILE_GET_INFO_MEMBER(namcos23_state::TextTilemapGetInfo)
-{
- uint16_t data = nthword( m_textram,tile_index );
- /**
- * xxxx.----.----.---- palette select
- * ----.xx--.----.---- flip
- * ----.--xx.xxxx.xxxx code
- */
- tileinfo.set(0, data&0x03ff, data>>12, TILE_FLIPYX((data&0x0c00)>>10));
-}
-
-void namcos23_state::textram_w(offs_t offset, uint32_t data, uint32_t mem_mask)
-{
- COMBINE_DATA( &m_textram[offset] );
- m_bgtilemap->mark_tile_dirty(offset*2);
- m_bgtilemap->mark_tile_dirty((offset*2)+1);
-}
-
-void namcos23_state::textchar_w(offs_t offset, uint32_t data, uint32_t mem_mask)
-{
- COMBINE_DATA(&m_charram[offset]);
- m_gfxdecode->gfx(0)->mark_dirty(offset/32);
-}
-
-
-
-// Video start/update callbacks
-
-VIDEO_START_MEMBER(namcos23_state,s23)
-{
- m_gfxdecode->gfx(0)->set_source(reinterpret_cast<uint8_t *>(m_charram.target()));
- m_bgtilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(namcos23_state::TextTilemapGetInfo)), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_bgtilemap->set_transparent_pen(0xf);
- m_bgtilemap->set_scrolldx(860, 860);
- m_render.polymgr = std::make_unique<namcos23_renderer>(*this);
-}
-
-
-uint32_t namcos23_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
-{
- update_mixer();
- bitmap.fill(m_c404.bgcolor, cliprect);
-
- render_run(bitmap);
-
- m_bgtilemap->set_palette_offset(m_c404.palbase);
- if(m_c404.layer & 4)
- m_bgtilemap->draw(screen, bitmap, cliprect, 0, 0);
-
- m_vblank_count++;
-
- return 0;
-}
-
-
-
-
-
-/***************************************************************************
-
- Main CPU I/O + Memory Map
- (some cpu->video I/O handled above)
-
-***************************************************************************/
-
-// Interrupts
-
-void namcos23_state::update_main_interrupts(uint32_t cause)
-{
- uint32_t changed = cause ^ m_main_irqcause;
- m_main_irqcause = cause;
-
- // level 2: vblank
- if(changed & MAIN_VBLANK_IRQ)
- m_maincpu->set_input_line(MIPS3_IRQ0, (cause & MAIN_VBLANK_IRQ) ? ASSERT_LINE : CLEAR_LINE);
-
- // level 3: C361/subcpu
- if(changed & (MAIN_C361_IRQ | MAIN_SUBCPU_IRQ))
- m_maincpu->set_input_line(MIPS3_IRQ1, (cause & (MAIN_C361_IRQ | MAIN_SUBCPU_IRQ)) ? ASSERT_LINE : CLEAR_LINE);
-
- // level 4: C435
- if(changed & MAIN_C435_IRQ)
- m_maincpu->set_input_line(MIPS3_IRQ2, (cause & MAIN_C435_IRQ) ? ASSERT_LINE : CLEAR_LINE);
-
- // level 5: C422
- if(changed & MAIN_C422_IRQ)
- m_maincpu->set_input_line(MIPS3_IRQ3, (cause & MAIN_C422_IRQ) ? ASSERT_LINE : CLEAR_LINE);
-
- // crszone(sys23ev2) has a different configuration, are they hardwired or configured by software? (where?)..
- // level 3: C422/subcpu
- // level 4: vblank
- // level 5: C451/C361
- // level 6: C450
-}
-
-INTERRUPT_GEN_MEMBER(namcos23_state::interrupt)
-{
- if(!m_ctl_vbl_active) {
- m_ctl_vbl_active = true;
- update_main_interrupts(m_main_irqcause | MAIN_VBLANK_IRQ);
- }
-
- m_render.cur = !m_render.cur;
- m_render.count[m_render.cur] = 0;
-}
-
-WRITE_LINE_MEMBER(namcos23_state::sub_irq)
-{
- m_subcpu->set_input_line(1, state ? ASSERT_LINE : CLEAR_LINE);
- m_adc->adtrg_w(state);
- m_sub_portb = (m_sub_portb & 0x7f) | (state << 7);
-}
-
-
-// C417
-
-uint16_t namcos23_state::c417_r(offs_t offset, uint16_t mem_mask)
-{
- switch(offset) {
- /* According to timecrs2v4a, +0 is the status word with bits being:
- 15: test mode flag (huh?)
- 10: fifo data ready
- 9: cmd ram data ready
- 8: matrix busy
- 7: output unit busy (inverted)
- 6: hokan/tenso unit busy
- 5: point unit busy
- 4: access unit busy
- 3: c403 busy, called c444 in 500gp (inverted)
- 2: 2nd c435 busy (inverted)
- 1: 1st c435 busy (inverted)
- 0: xcpreq
- */
- case 0:
- return 0x8e | (m_screen->vblank() ? 0x0000 : 0x8000);
- case 1:
- return m_c417.adr;
- case 4:
- //logerror("c417_r %04x = %04x (%08x, %08x)\n", c417.adr, c417.ram[c417.adr], m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
- return m_c417.ram[m_c417.adr];
- case 5:
- if(m_c417.pointrom_adr >= m_ptrom_limit)
- return 0xffff;
- return m_ptrom[m_c417.pointrom_adr] >> 16;
- case 6:
- if(m_c417.pointrom_adr >= m_ptrom_limit)
- return 0xffff;
- // TODO: rapid river wants auto-inc in some way here (NGs point ROM self test otherwise)
- return m_ptrom[m_c417.pointrom_adr];
- }
-
- logerror("c417_r %x @ %04x (%08x, %08x)\n", offset, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
- return 0;
-}
-
-void namcos23_state::c417_w(offs_t offset, uint16_t data, uint16_t mem_mask)
-{
- switch(offset) {
- case 0:
- c435_pio_w(data);
- break;
- case 1:
- COMBINE_DATA(&m_c417.adr);
- break;
- case 2:
- m_c417.pointrom_adr = (m_c417.pointrom_adr << 16) | data;
- break;
- case 3:
- m_c417.pointrom_adr = 0;
- break;
- case 4:
- //logerror("c417_w %04x = %04x (%08x, %08x)\n", m_c417.adr, data, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
- COMBINE_DATA(m_c417.ram + m_c417.adr);
- break;
- case 7:
- logerror("c417_w: ack IRQ 2 (%x)\n", data);
- update_main_interrupts(m_main_irqcause & ~MAIN_C435_IRQ);
- break;
- default:
- logerror("c417_w %x, %04x @ %04x (%08x, %08x)\n", offset, data, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
- break;
- }
-}
-
-
-
-// C412
-
-uint16_t namcos23_state::c412_ram_r(offs_t offset)
-{
- // logerror("c412_ram_r %06x (%08x, %08x)\n", offset, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
- if(offset < 0x100000)
- return m_c412.sdram_a[offset & 0xfffff];
- else if(offset < 0x200000)
- return m_c412.sdram_b[offset & 0xfffff];
- else if(offset < 0x220000)
- return m_c412.sram [offset & 0x1ffff];
- else if(offset < 0x220200)
- return m_c412.pczram [offset & 0x001ff];
-
- return 0xffff;
-}
-
-void namcos23_state::c412_ram_w(offs_t offset, uint16_t data, uint16_t mem_mask)
-{
- // logerror("c412_ram_w %06x = %04x (%08x, %08x)\n", offset, data, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
- if(offset < 0x100000)
- COMBINE_DATA(m_c412.sdram_a + (offset & 0xfffff));
- else if(offset < 0x200000)
- COMBINE_DATA(m_c412.sdram_b + (offset & 0xfffff));
- else if(offset < 0x220000)
- COMBINE_DATA(m_c412.sram + (offset & 0x1ffff));
- else if(offset < 0x220200)
- COMBINE_DATA(m_c412.pczram + (offset & 0x001ff));
-}
-
-uint16_t namcos23_state::c412_r(offs_t offset, uint16_t mem_mask)
-{
- switch(offset) {
- case 0x3:
- return 0x0002; // 0001 = busy, 0002 = game uploads things
- case 0x8:
- return m_c412.adr;
- case 0x9:
- return m_c412.adr >> 16;
- case 0xa:
- return c412_ram_r(m_c412.adr);
- case 0xc:
- // unknown status, 500gp reads it and waits for a transition
- // no other games use it?
- m_c412.status_c ^= 1;
- return m_c412.status_c;
- }
-
- logerror("c412_r %x @ %04x (%08x, %08x)\n", offset, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
- return 0;
-}
-
-void namcos23_state::c412_w(offs_t offset, uint16_t data, uint16_t mem_mask)
-{
- switch(offset) {
- case 0x2:
- // d0: cz on
- // other bits: no function?
- break;
- case 0x8:
- m_c412.adr = (data & mem_mask) | (m_c412.adr & (0xffffffff ^ mem_mask));
- break;
- case 0x9:
- m_c412.adr = ((data & mem_mask) << 16) | (m_c412.adr & (0xffffffff ^ (mem_mask << 16)));
- break;
- case 0xa:
- c412_ram_w(m_c412.adr, data, mem_mask);
- m_c412.adr += 2;
- break;
- default:
- logerror("c412_w %x, %04x @ %04x (%08x, %08x)\n", offset, data, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
- break;
- }
-}
-
-
-
-// C421
-
-uint16_t namcos23_state::c421_ram_r(offs_t offset)
-{
- // logerror("c421_ram_r %06x (%08x, %08x)\n", offset, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
- if(offset < 0x40000)
- return m_c421.dram_a[offset & 0x3ffff];
- else if(offset < 0x80000)
- return m_c421.dram_b[offset & 0x3ffff];
- else if(offset < 0x88000)
- return m_c421.sram [offset & 0x07fff];
-
- return 0xffff;
-}
-
-void namcos23_state::c421_ram_w(offs_t offset, uint16_t data, uint16_t mem_mask)
-{
- // logerror("c421_ram_w %06x = %04x (%08x, %08x)\n", offset, data, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
- if(offset < 0x40000)
- COMBINE_DATA(m_c421.dram_a + (offset & 0x3ffff));
- else if(offset < 0x80000)
- COMBINE_DATA(m_c421.dram_b + (offset & 0x3ffff));
- else if(offset < 0x88000)
- COMBINE_DATA(m_c421.sram + (offset & 0x07fff));
-}
-
-uint16_t namcos23_state::c421_r(offs_t offset, uint16_t mem_mask)
-{
- switch(offset) {
- case 0:
- return c421_ram_r(m_c421.adr & 0xfffff);
-
- case 2:
- return m_c421.adr >> 16;
- case 3:
- return m_c421.adr;
- }
-
- logerror("c421_r %x @ %04x (%08x, %08x)\n", offset, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
- return 0;
-}
-
-void namcos23_state::c421_w(offs_t offset, uint16_t data, uint16_t mem_mask)
-{
- switch(offset) {
- case 0:
- c421_ram_w(m_c421.adr & 0xfffff, data, mem_mask);
- m_c421.adr += 2;
- break;
- case 2:
- m_c421.adr = ((data & mem_mask) << 16) | (m_c421.adr & (0xffffffff ^ (mem_mask << 16)));
- break;
- case 3:
- m_c421.adr = (data & mem_mask) | (m_c421.adr & (0xffffffff ^ mem_mask));
- break;
- default:
- logerror("c421_w %x, %04x @ %04x (%08x, %08x)\n", offset, data, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
- break;
- }
-}
-
-
-
-// C422
-
-uint16_t namcos23_state::c422_r(offs_t offset)
-{
- return m_c422.regs[offset];
-}
-
-void namcos23_state::c422_w(offs_t offset, uint16_t data, uint16_t mem_mask)
-{
- switch(offset) {
- case 1:
- if(data == 0xfffb) {
- logerror("c422_w: raise IRQ 3\n");
- update_main_interrupts(m_main_irqcause | MAIN_C422_IRQ);
- }
- else if(data == 0x000f) {
- logerror("c422_w: ack IRQ 3\n");
- update_main_interrupts(m_main_irqcause & ~MAIN_C422_IRQ);
- }
- break;
-
- default:
- logerror("c422_w: %04x @ %x\n", data, offset);
- break;
- }
-
- COMBINE_DATA(&m_c422.regs[offset]);
-}
-
-
-
-// C361 (text)
-
-TIMER_CALLBACK_MEMBER(namcos23_state::c361_timer_cb)
-{
- if(m_c361.scanline != 0x1ff) {
- // need to do a partial update here, but doesn't work properly yet
- //m_screen->update_partial(m_screen->vpos());
- update_main_interrupts(m_main_irqcause | MAIN_C361_IRQ);
-
- // TC2 indicates it's probably one-shot since it resets it each VBL...
- //c361.timer->adjust(m_screen->time_until_pos(c361.scanline));
- }
- else
- update_main_interrupts(m_main_irqcause & ~MAIN_C361_IRQ);
-}
-
-void namcos23_state::c361_w(offs_t offset, uint16_t data, uint16_t mem_mask)
-{
- switch(offset) {
- case 0:
- m_bgtilemap->set_scrollx(0, data&0xfff);
- break;
-
- case 1:
- m_bgtilemap->set_scrolly(0, data&0xfff);
- break;
-
- case 4: // interrupt control
- m_c361.scanline = data & 0x1ff;
- m_c361.timer->adjust(m_screen->time_until_pos(m_c361.scanline));
- break;
-
- default:
- logerror("c361_w %x, %04x @ %04x (%08x, %08x)\n", offset, data, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
- break;
- }
-}
-
-uint16_t namcos23_state::c361_r(offs_t offset, uint16_t mem_mask)
-{
- switch(offset) {
- // current raster position
- // how does it work exactly? it's not understood in namcos22 either (also has a c361)
- case 5:
- update_main_interrupts(m_main_irqcause & ~MAIN_C361_IRQ);
- return (m_screen->vpos()*2) | (m_screen->vblank() ? 1 : 0);
- case 6:
- update_main_interrupts(m_main_irqcause & ~MAIN_C361_IRQ);
- return m_screen->vblank() ? 1 : 0;
- }
-
- logerror("c361_r %x @ %04x (%08x, %08x)\n", offset, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
- return 0xffff;
-}
-
-
-
-// C?? (control)
-
-void namcos23_state::ctl_w(offs_t offset, uint16_t data, uint16_t mem_mask)
-{
- switch(offset) {
- case 0:
- if(m_ctl_led != (data & 0xff)) {
- m_ctl_led = data & 0xff;
- for(int i = 0; i < 8; i++)
- m_lamps[i] = BIT(data, 7 - i);
- }
- break;
-
- case 2: case 3:
- // These may be coming from another CPU, in particular the I/O one
- m_ctl_inp_buffer[offset-2] = (offset == 2 ? m_p1 : m_p2)->read();
- break;
- case 5:
- if(m_ctl_vbl_active) {
- m_ctl_vbl_active = false;
- update_main_interrupts(m_main_irqcause & ~MAIN_VBLANK_IRQ);
- }
- break;
-
- case 6: // gmen wars spams this heavily with 0 prior to starting the GMEN board test
- if(data != 0)
- logerror("ctl_w %x, %04x @ %04x (%08x, %08x)\n", offset, data, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
- break;
-
- default:
- logerror("ctl_w %x, %04x @ %04x (%08x, %08x)\n", offset, data, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
- break;
- }
-}
-
-uint16_t namcos23_state::ctl_r(offs_t offset, uint16_t mem_mask)
-{
- switch(offset) {
- // 0100 set freezes gorgon (polygon fifo flag)
- case 1:
- return 0x0000 | ioport("DSW")->read() | ((m_main_irqcause & MAIN_C361_IRQ) ? 0x400 : 0);
- case 2: case 3: {
- uint16_t res = m_ctl_inp_buffer[offset-2] & 0x800 ? 0xffff : 0x0000;
- m_ctl_inp_buffer[offset-2] = (m_ctl_inp_buffer[offset-2] << 1) | 1;
- return res;
- }
- }
-
- logerror("ctl_r %x @ %04x (%08x, %08x)\n", offset, mem_mask, m_maincpu->pc(), (unsigned int)m_maincpu->state_int(MIPS3_R31));
- return 0xffff;
-}
-
-
-
-// C?? (MCU enable)
-
-void namcos23_state::mcuen_w(offs_t offset, uint16_t data, uint16_t mem_mask)
-{
- switch(offset) {
- case 2:
- // subcpu irq ack
- update_main_interrupts(m_main_irqcause & ~MAIN_SUBCPU_IRQ);
- break;
-
- case 5:
- // boot/start the audio mcu
- if(data) {
- logerror("mcuen_w: booting H8/3002\n");
-
- // Panic Park: writing 1 when it's already running means reboot?
- if(m_subcpu_running) {
- m_subcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- }
-
- m_subcpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
- m_subcpu_running = true;
- } else {
- logerror("mcuen_w: stopping H8/3002\n");
- m_subcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
- m_subcpu_running = false;
- }
- break;
-
- default:
- // For some reason, the main program write the high 16bits of the
- // 32 bits words of itself there...
- // logerror("mcuen_w: mask %04x, data %04x @ %x\n", mem_mask, data, offset);
- break;
- }
-}
-
-
-// C?? (unknown comms)
-
-// while getting the subcpu to be ready, panicprk sits in a tight loop waiting for this AND 0002 to be non-zero (at PC=BFC02F00)
-// timecrs2 locks up in a similar way as panicprk, at the beginning of the 2nd level, by reading/writing to this register a couple of times
-uint16_t namcos23_state::sub_comm_r(offs_t offset)
-{
- // status register
- if (offset == 0)
- {
- // bit 1 tx fifo empty
- // bit 0 rx fifo ready
- // bit 4-6: error (reads data port and discards it) (PC=0xbfc03698)
- // data ready is signalled thru MIPS irq 4
- // 3f0fa8 (phys address) is where data pops up in TC2 & PP
- // PC=0xbfc03838 bit 7 high => fail (data loaded must be parsed somehow)
- return 1 | 2;
- }
-
- m_maincpu->set_input_line(MIPS3_IRQ4, CLEAR_LINE);
- // data rx, TBD
- return m_mcu_unk; //machine().rand();
-}
-
-void namcos23_state::sub_comm_w(offs_t offset, uint16_t data)
-{
- if (offset == 1)
- {
- // data tx
- m_mcu_unk = data & 0xff;
- m_maincpu->set_input_line(MIPS3_IRQ4, ASSERT_LINE);
- }
-}
-
-
-// System Gorgon
-void namcos23_state::gorgon_map(address_map &map)
-{
- map.global_mask(0xfffffff);
- map(0x00000000, 0x003fffff).ram().share("mainram");
- map(0x01000000, 0x010000ff).rw(FUNC(namcos23_state::c435_r), FUNC(namcos23_state::c435_w));
- map(0x02000000, 0x0200000f).rw(FUNC(namcos23_state::c417_r), FUNC(namcos23_state::c417_w));
- map(0x04400000, 0x0440ffff).ram().share("shared_ram"); // Communication RAM (C416)
- map(0x04c3ff00, 0x04c3ff0f).w(FUNC(namcos23_state::mcuen_w));
- map(0x06080000, 0x0608000f).ram().share("czattr");
- map(0x06080200, 0x060803ff).ram(); // PCZ Convert RAM (C406) (should be banked)
- map(0x06108000, 0x061087ff).ram().share("gammaram"); // Gamma RAM (C404)
- map(0x06110000, 0x0613ffff).ram().w(FUNC(namcos23_state::paletteram_w)).share("paletteram"); // Palette RAM (C404)
- map(0x06400000, 0x0641dfff).ram().w(FUNC(namcos23_state::textchar_w)).share("charram"); // Text CGRAM (C361)
- map(0x0641e000, 0x0641ffff).ram().w(FUNC(namcos23_state::textram_w)).share("textram"); // Text VRAM (C361)
- map(0x06420000, 0x0642000f).rw(FUNC(namcos23_state::c361_r), FUNC(namcos23_state::c361_w)); // C361
- map(0x08000000, 0x087fffff).rom().region("data", 0); // data ROMs
- map(0x0c000000, 0x0c00ffff).ram().share("nvram"); // Backup RAM
- map(0x0d000000, 0x0d00000f).rw(FUNC(namcos23_state::ctl_r), FUNC(namcos23_state::ctl_w)); // write for LEDs at d000000, watchdog at d000004
- map(0x0e000000, 0x0e007fff).ram(); // C405 RAM - what is this?
- map(0x0f000000, 0x0f000003).rw(FUNC(namcos23_state::sub_comm_r), FUNC(namcos23_state::sub_comm_w)); // not sure
- map(0x0f200000, 0x0f203fff).ram(); // C422 RAM
- map(0x0f300000, 0x0f30000f).rw(FUNC(namcos23_state::c422_r), FUNC(namcos23_state::c422_w)); // C422 registers
- map(0x0fc00000, 0x0fffffff).nopw().rom().region("user1", 0);
-}
-
-// (Super) System 23
-void namcos23_state::s23_map(address_map &map)
-{
- map.global_mask(0xfffffff);
- map(0x00000000, 0x00ffffff).ram().share("mainram");
- map(0x01000000, 0x010000ff).rw(FUNC(namcos23_state::c435_r), FUNC(namcos23_state::c435_w));
- map(0x02000000, 0x0200000f).rw(FUNC(namcos23_state::c417_r), FUNC(namcos23_state::c417_w));
- map(0x04400000, 0x0440ffff).ram().share("shared_ram"); // Communication RAM (C416)
- map(0x04c3ff00, 0x04c3ff0f).w(FUNC(namcos23_state::mcuen_w));
- map(0x06000000, 0x0600ffff).ram().share("nvram"); // Backup RAM
- map(0x06200000, 0x06203fff).ram(); // C422 RAM
- map(0x06400000, 0x0640000f).rw(FUNC(namcos23_state::c422_r), FUNC(namcos23_state::c422_w)); // C422 registers
- map(0x06800000, 0x0681dfff).ram().w(FUNC(namcos23_state::textchar_w)).share("charram"); // Text CGRAM (C361)
- map(0x0681e000, 0x0681ffff).ram().w(FUNC(namcos23_state::textram_w)).share("textram"); // Text VRAM (C361)
- map(0x06820000, 0x0682000f).rw(FUNC(namcos23_state::c361_r), FUNC(namcos23_state::c361_w)); // C361
- map(0x06a08000, 0x06a087ff).ram().share("gammaram"); // Gamma RAM (C404)
- map(0x06a10000, 0x06a3ffff).ram().w(FUNC(namcos23_state::paletteram_w)).share("paletteram"); // Palette RAM (C404)
- map(0x08000000, 0x08ffffff).rom().region("data", 0x0000000).mirror(0x1000000); // data ROMs
- map(0x0a000000, 0x0affffff).rom().region("data", 0x1000000).mirror(0x1000000);
- map(0x0c000000, 0x0c00001f).rw(FUNC(namcos23_state::c412_r), FUNC(namcos23_state::c412_w));
- map(0x0c400000, 0x0c400007).rw(FUNC(namcos23_state::c421_r), FUNC(namcos23_state::c421_w));
- map(0x0c800010, 0x0c800011).w(FUNC(namcos23_state::c435_state_reset_w));
- map(0x0c800016, 0x0c800017).w(FUNC(namcos23_state::c435_state_pio_w));
- map(0x0d000000, 0x0d00000f).rw(FUNC(namcos23_state::ctl_r), FUNC(namcos23_state::ctl_w));
- map(0x0e800000, 0x0e800003).rw(FUNC(namcos23_state::sub_comm_r), FUNC(namcos23_state::sub_comm_w)); // not sure
- map(0x0fc00000, 0x0fffffff).nopw().rom().region("user1", 0);
-}
-
-
-
-// GMEN interface
-
-uint32_t namcos23_state::gmen_trigger_sh2()
-{
- logerror("gmen_trigger_sh2: booting SH-2\n");
- m_gmen_sh2->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
-
- return 0;
-}
-
-uint32_t namcos23_state::sh2_shared_r(offs_t offset)
-{
- return m_gmen_sh2_shared[offset];
-}
-
-void namcos23_state::sh2_shared_w(offs_t offset, uint32_t data, uint32_t mem_mask)
-{
- COMBINE_DATA(&m_gmen_sh2_shared[offset]);
-}
-
-void namcos23_state::gmen_mips_map(address_map &map)
-{
- s23_map(map);
- map(0x0e400000, 0x0e400003).r(FUNC(namcos23_state::gmen_trigger_sh2));
- map(0x0e700000, 0x0e70ffff).rw(FUNC(namcos23_state::sh2_shared_r), FUNC(namcos23_state::sh2_shared_w));
-}
-
-
-// SH2 memmap
-// TODO: of course, I believe that area 0x008***** is actually a bank of some sort ...
-void namcos23_state::gmen_sh2_map(address_map &map)
-{
- map(0x00000000, 0x0000ffff).ram().share("gmen_sh2_shared");
- map(0x00800000, 0x008fffff).rom().region("data", 0xc00000); //c00000 "data" for final furlong 2. 0x1b6bc0 "user1" for gunmen wars
- map(0x01800000, 0x0183ffff).ram(); // ???
- //map(0x02800000, 0x02800003).ram(); // probably transfer status related, reads/writes after each end of flash transfer, TBD
- map(0x04000000, 0x043fffff).ram(); // SH-2 main work RAM (SDRAM)
- map(0x06000000, 0x06000003).noprw(); // serial port for camera?
-}
-
-
-
-
-
-/***************************************************************************
-
- Sub CPU (H8/3002 MCU) I/O + Memory Map
-
-***************************************************************************/
-
-void namcos23_state::sharedram_sub_w(offs_t offset, uint16_t data, uint16_t mem_mask)
-{
- uint16_t *shared16 = reinterpret_cast<uint16_t *>(m_shared_ram.target());
-
- // fake that an I/O board is connected for games w/o a dump or that aren't properly communicating with it yet
- if(!m_has_jvsio) {
- if((offset == 0x4052/2) && (data == 0x78)) {
- data = 0;
- }
- }
-
- COMBINE_DATA(&shared16[BYTE_XOR_BE(offset)]);
-}
-
-uint16_t namcos23_state::sharedram_sub_r(offs_t offset)
-{
- uint16_t *shared16 = reinterpret_cast<uint16_t *>(m_shared_ram.target());
-
- return shared16[BYTE_XOR_BE(offset)];
-}
-
-
-void namcos23_state::sub_interrupt_main_w(offs_t offset, uint16_t data, uint16_t mem_mask)
-{
- if((mem_mask == 0xffff) && (data == 0x3170)) {
- update_main_interrupts(m_main_irqcause | MAIN_SUBCPU_IRQ);
- } else {
- logerror("Unknown write %x to sub_interrupt_main_w!\n", data);
- }
-}
-
-
-
-// Port 6
-
-uint16_t namcos23_state::mcu_p6_r()
-{
- // bit 1 = JVS cable present sense (1 = I/O board plugged in)
- return (m_jvssense << 1) | 0xfd;
-}
-
-void namcos23_state::mcu_p6_w(uint16_t data)
-{
- //printf("%02x to port 6\n", data);
-}
-
-
-
-// Port 8, looks like serial comms, where to/from?
-
-uint16_t namcos23_state::mcu_p8_r()
-{
- return 0x02;
-}
-
-void namcos23_state::mcu_p8_w(uint16_t data)
-{
- ;
-}
-
-
-
-// Port A
-
-uint16_t namcos23_state::mcu_pa_r()
-{
- return m_sub_porta;
-}
-
-void namcos23_state::mcu_pa_w(uint16_t data)
-{
- m_rtc->ce_w(data & 1);
- m_sub_porta = data;
- m_rtc->ce_w((m_sub_portb & 0x20) && (m_sub_porta & 1));
- m_settings->ce_w((m_sub_portb & 0x20) && !(m_sub_porta & 1));
-}
-
-
-
-// Port B
-
-uint16_t namcos23_state::mcu_pb_r()
-{
- return m_sub_portb;
-}
-
-void namcos23_state::mcu_pb_w(uint16_t data)
-{
- m_sub_portb = (m_sub_portb & 0xc0) | (data & 0x3f);
- m_rtc->ce_w((m_sub_portb & 0x20) && (m_sub_porta & 1));
- m_settings->ce_w((m_sub_portb & 0x20) && !(m_sub_porta & 1));
-}
-
-
-void namcos23_state::s23h8rwmap(address_map &map)
-{
- map(0x000000, 0x07ffff).rom();
- map(0x080000, 0x08ffff).rw(FUNC(namcos23_state::sharedram_sub_r), FUNC(namcos23_state::sharedram_sub_w));
- map(0x280000, 0x287fff).rw("c352", FUNC(c352_device::read), FUNC(c352_device::write));
- map(0x300000, 0x300003).noprw(); // seems to be more inputs, maybe false leftover code from System 12?
- map(0x300010, 0x300011).noprw();
- map(0x300020, 0x300021).w(FUNC(namcos23_state::sub_interrupt_main_w));
- map(0x300030, 0x300031).nopw(); // timecrs2 writes this when writing to the sync shared ram location, motoxgo doesn't
-}
-
-
-void namcos23_state::s23h8iomap(address_map &map)
-{
- map(h8_device::PORT_6, h8_device::PORT_6).rw(FUNC(namcos23_state::mcu_p6_r), FUNC(namcos23_state::mcu_p6_w));
- map(h8_device::PORT_8, h8_device::PORT_8).rw(FUNC(namcos23_state::mcu_p8_r), FUNC(namcos23_state::mcu_p8_w));
- map(h8_device::PORT_A, h8_device::PORT_A).rw(FUNC(namcos23_state::mcu_pa_r), FUNC(namcos23_state::mcu_pa_w));
- map(h8_device::PORT_B, h8_device::PORT_B).rw(FUNC(namcos23_state::mcu_pb_r), FUNC(namcos23_state::mcu_pb_w));
- map(h8_device::ADC_0, h8_device::ADC_0).noprw();
- map(h8_device::ADC_1, h8_device::ADC_1).noprw();
- map(h8_device::ADC_2, h8_device::ADC_2).noprw();
- map(h8_device::ADC_3, h8_device::ADC_3).noprw();
-}
-
-
-
-
-
-/***************************************************************************
-
- I/O Board (H8/3334 MCU "Namco C78") I/O + Memory Map
-
-***************************************************************************/
-
-// Port 4
-
-uint16_t namcos23_state::iob_p4_r()
-{
- return m_tssio_port_4;
-}
-
-void namcos23_state::iob_p4_w(uint16_t data)
-{
- m_tssio_port_4 = data;
-
- // bit 2 = SENSE line back to main (0 = asserted, 1 = dropped)
- m_jvssense = (data & 0x04) ? 0 : 1;
-}
-
-
-
-// Port 6
-
-uint16_t namcos23_state::iob_p6_r()
-{
- // d4 is service button
- uint8_t sb = (ioport("SERVICE")->read() & 1) << 4;
- // other bits: unknown
-
- return sb | 0;
-}
-
-void namcos23_state::iob_p6_w(uint16_t data)
-{
- //printf("iob %02x to port 6\n", data);
-}
-
-
-// Analog Ports
-
-uint16_t namcos23_state::iob_analog_r(offs_t offset)
-{
- return m_adc_ports[offset].read_safe(0);
-}
-
-
-void namcos23_state::s23iobrdmap(address_map &map)
-{
- map(0x0000, 0x1fff).rom().region("iocpu", 0);
- map(0x6000, 0x6001).portr("IN01");
- map(0x6002, 0x6003).portr("IN23");
- map(0x6004, 0x6005).nopw();
- map(0x6006, 0x6007).noprw();
- map(0xc000, 0xfb7f).ram();
-}
-
-void namcos23_state::s23iobrdiomap(address_map &map)
-{
- map(h8_device::PORT_4, h8_device::PORT_4).rw(FUNC(namcos23_state::iob_p4_r), FUNC(namcos23_state::iob_p4_w));
- map(h8_device::PORT_5, h8_device::PORT_5).noprw(); // bit 2 = status LED to indicate transmitting packet to main
- map(h8_device::PORT_6, h8_device::PORT_6).rw(FUNC(namcos23_state::iob_p6_r), FUNC(namcos23_state::iob_p6_w));
- map(h8_device::PORT_8, h8_device::PORT_8).noprw(); // unknown - used on ASCA-5 only
- map(h8_device::PORT_9, h8_device::PORT_9).noprw(); // unknown - used on ASCA-5 only
- map(h8_device::ADC_0, h8_device::ADC_3).r(FUNC(namcos23_state::iob_analog_r));
-}
-
-
-void namcos23_state::motoxgo_exio_map(address_map &map)
-{
- map(0x000003, 0x000003).nopr();
- map(0x000008, 0x000009).noprw();
- map(0x000036, 0x000037).nopw();
- map(0x0000c8, 0x0000c8).nopw();
- map(0xfc0000, 0xfcffff).ram();
- map(0xfe0000, 0xffffff).rom().region("exioboard", 0);
-}
-
-
-// Time Crisis lightgun
-
-uint8_t namcos23_state::iob_gun_r(offs_t offset)
-{
- uint16_t xpos = m_lightx->read();
- uint16_t ypos = m_lighty->read();
- // ypos is not completely understood yet, there should be a difference between case 1/4 and 2/5
-
- switch(offset) {
- case 0: return xpos&0xff;
- case 1: return ypos&0xff;
- case 2: return ypos&0xff;
- case 3: return xpos>>8;
- case 4: return ypos>>8;
- case 5: return ypos>>8;
- }
-
- return 0;
-}
-
-void namcos23_state::timecrs2iobrdmap(address_map &map)
-{
- s23iobrdmap(map);
- map(0x7000, 0x700f).r(FUNC(namcos23_state::iob_gun_r));
-}
-
-
-
-
-
-/***************************************************************************
-
- Inputs
-
-***************************************************************************/
-
-static INPUT_PORTS_START( rapidrvr )
- PORT_START("P1")
- PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("P2")
- PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("IN01")
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Test Button") PORT_CODE(KEYCODE_F1)
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_NAME("Service Up")
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_NAME("Service Down")
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Service Enter")
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0xe0ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("IN23")
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0xf7ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("SERVICE")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
-
- PORT_START("DSW")
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DIP:8")
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DIP:7")
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DIP:6")
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DIP:5")
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DIP:4")
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DIP:3")
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DIP:2")
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC(0x80, IP_ACTIVE_LOW, "DIP:1" )
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( rapidrvrp )
- PORT_INCLUDE( rapidrvr )
-
- // To fully use test mode, both Service Mode dipswitches need to be enabled.
- // Some of the developer menus require you to navigate with the Dev keys,
- // but usually the User keys work fine too.
- PORT_MODIFY("P1")
- PORT_BIT( 0x001, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x002, IP_ACTIVE_LOW, IPT_UNKNOWN ) // I/O Unknown Status
- PORT_BIT( 0x004, IP_ACTIVE_LOW, IPT_UNKNOWN ) // I/O Air Dumper FR
- PORT_BIT( 0x008, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("Dev Service A") // + I/O Air Dumper RR
- PORT_BIT( 0x010, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x020, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x040, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) PORT_NAME("Dev Service Down")
- PORT_BIT( 0x080, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_NAME("Dev Service Up")
- PORT_BIT( 0x100, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Dev Start")
- PORT_BIT( 0x200, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x400, IP_ACTIVE_LOW, IPT_UNKNOWN ) // I/O Air Dumper FL
- PORT_BIT( 0x800, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("Dev Service B") // + I/O Air Dumper RL
-
- PORT_MODIFY("IN01")
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Test Button") PORT_CODE(KEYCODE_F1)
- PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_NAME("User Service Up")
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_NAME("User Service Down")
- PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("User Service Enter")
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("User Start")
- PORT_BIT( 0xe0ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_MODIFY("DSW")
- PORT_DIPNAME( 0x08, 0x08, "Debug Messages" ) PORT_DIPLOCATION("DIP:5")
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, "Dev Service Mode" ) PORT_DIPLOCATION("DIP:2")
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_SERVICE_DIPLOC(0x80, IP_ACTIVE_LOW, "DIP:1" ) PORT_NAME("User Service Mode")
-
-#if 0 // need to hook these up properly
- PORT_START("ADC.0")
- PORT_BIT( 0xffff, 0x8000, IPT_PADDLE ) PORT_SENSITIVITY(100) PORT_KEYDELTA(100) PORT_NAME("ADC0") // rear r
- PORT_START("ADC.1")
- PORT_BIT( 0xffff, 0x8000, IPT_PADDLE ) PORT_SENSITIVITY(100) PORT_KEYDELTA(100) PORT_NAME("ADC1") // rear l
- PORT_START("ADC.2")
- PORT_BIT( 0xffff, 0x8000, IPT_PADDLE ) PORT_SENSITIVITY(100) PORT_KEYDELTA(100) PORT_NAME("ADC2") // front r
- PORT_START("ADC.3")
- PORT_BIT( 0xffff, 0x8000, IPT_PADDLE ) PORT_SENSITIVITY(100) PORT_KEYDELTA(100) PORT_NAME("ADC3") // front l
-#endif
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( finfurl )
- PORT_INCLUDE( rapidrvr )
-
- PORT_MODIFY("IN01")
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
- PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
-
-#if 0 // need to hook these up properly
- PORT_START("ADC.0")
- PORT_BIT( 0xffff, 0x8000, IPT_PADDLE ) PORT_SENSITIVITY(100) PORT_KEYDELTA(100) PORT_NAME("ADC0")
- PORT_START("ADC.1")
- PORT_BIT( 0xffff, 0x8000, IPT_PADDLE ) PORT_SENSITIVITY(100) PORT_KEYDELTA(100) PORT_NAME("ADC1")
- PORT_START("ADC.2")
- PORT_BIT( 0xffff, 0x8000, IPT_PADDLE ) PORT_SENSITIVITY(100) PORT_KEYDELTA(100) PORT_NAME("ADC2")
- PORT_START("ADC.3")
- PORT_BIT( 0xffff, 0x8000, IPT_PADDLE ) PORT_SENSITIVITY(100) PORT_KEYDELTA(100) PORT_NAME("ADC3")
-#endif
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( s23 )
- // No idea if start is actually there, but we need buttons to pass error screens
- // You can go to the pcb test mode by pressing P1-A, and it doesn't crash anymore somehow
- // Use P1-A to select, P1-Sel+P1-A to exit, up/down to navigate
- PORT_START("P1")
- PORT_BIT( 0x008, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("Dev Service P1-A")
- PORT_BIT( 0x040, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) PORT_NAME("Dev Service Down")
- PORT_BIT( 0x080, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_NAME("Dev Service Up")
- PORT_BIT( 0x100, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("Dev Service Start")
- PORT_BIT( 0x200, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("Dev Service P1-Sel")
- PORT_BIT( 0xc37, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("P2")
- PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNKNOWN ) // 0x100 = freeze?
-
- PORT_START("IN01")
- PORT_BIT(0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) // gun trigger
- PORT_BIT(0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) // foot pedal
- PORT_BIT(0x00fc, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT(0x0100, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT(0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // this is the "coin acceptor connected" signal
- PORT_BIT(0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT(0x1000, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT(0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
- PORT_BIT(0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
- PORT_BIT(0x8000, IP_ACTIVE_LOW, IPT_BUTTON3 )
-
- PORT_START("IN23")
- PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("SERVICE")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE )
-
- PORT_START("DSW")
- PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
- PORT_DIPNAME( 0x02, 0x02, "Skip POST" )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, "Freeze?" )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( timecrs2 )
- PORT_INCLUDE( s23 )
-
- PORT_START("LIGHTX") // tuned for CRT
- PORT_BIT( 0xfff, 91+733/2, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(91, 91+733) PORT_SENSITIVITY(48) PORT_KEYDELTA(12)
- PORT_START("LIGHTY") // tuned for CRT - can't shoot below the statusbar?
- PORT_BIT( 0xfff, 38+247/2, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(38, 38+247) PORT_SENSITIVITY(64) PORT_KEYDELTA(4)
-INPUT_PORTS_END
-
-
-static INPUT_PORTS_START( downhill )
- PORT_START("P1")
- PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("P2")
- PORT_BIT( 0xfff, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("IN01")
- PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON3) // brake left
- PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_START1) // start
- PORT_BIT(0x100, IP_ACTIVE_LOW, IPT_SERVICE) PORT_TOGGLE // test switch
- PORT_BIT(0x200, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) // select up
- PORT_BIT(0x400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) // select down
- PORT_BIT(0x800, IP_ACTIVE_LOW, IPT_BUTTON1) // enter
- PORT_BIT(0xf00c, IP_ACTIVE_LOW, IPT_UNKNOWN)
-
- PORT_START("IN23")
- PORT_BIT(0x400, IP_ACTIVE_LOW, IPT_BUTTON4) // brake right
- PORT_BIT(0xfbff, IP_ACTIVE_LOW, IPT_UNKNOWN)
-
- PORT_START("SERVICE")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) // service coin
-
- PORT_START("DSW")
- PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
- PORT_DIPNAME( 0x02, 0x02, "Skip POST" )
- PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x04, 0x04, "Freeze?" )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-INPUT_PORTS_END
-
-
-/***************************************************************************
-
- Machine Drivers
-
-***************************************************************************/
-
-void namcos23_state::machine_start()
-{
- m_lamps.resolve();
-
- m_c361.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(namcos23_state::c361_timer_cb),this));
- m_c361.timer->adjust(attotime::never);
-
- m_maincpu->add_fastram(0, m_mainram.bytes()-1, false, reinterpret_cast<uint32_t *>(memshare("mainram")->ptr()));
-}
-
-
-void namcos23_state::machine_reset()
-{
- m_vblank_count = 0;
- m_c435_buffer_pos = 0;
- m_subcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
-}
-
-MACHINE_RESET_MEMBER(namcos23_state,gmen)
-{
- machine_reset();
-
- // halt the SH-2 until we need it
- m_gmen_sh2->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
-}
-
-
-
-void namcos23_state::init_s23()
-{
- m_ptrom = (const uint32_t *)memregion("pointrom")->base();
- m_tmlrom = (const uint16_t *)memregion("textilemapl")->base();
- m_tmhrom = memregion("textilemaph")->base();
- m_texrom = memregion("textile")->base();
-
- m_tileid_mask = (memregion("textilemapl")->bytes()/2 - 1) & ~0xff; // Used for y masking
- m_tile_mask = memregion("textile")->bytes()/256 - 1;
- m_ptrom_limit = memregion("pointrom")->bytes()/4;
-
- m_jvssense = 1;
- m_main_irqcause = 0;
- m_ctl_vbl_active = false;
- m_sub_portb = 0x50;
- m_tssio_port_4 = 0;
- m_sub_porta = 0;
- m_subcpu_running = false;
- m_render.count[0] = m_render.count[1] = 0;
- m_render.cur = 0;
-
- if((!strcmp(machine().system().name, "motoxgo")) ||
- (!strcmp(machine().system().name, "panicprk")) ||
- (!strcmp(machine().system().name, "panicprkj")) ||
- (!strcmp(machine().system().name, "panicprkj2")) ||
- (!strcmp(machine().system().name, "rapidrvr")) ||
- (!strcmp(machine().system().name, "rapidrvrv2c")) ||
- (!strcmp(machine().system().name, "rapidrvrp")) ||
- (!strcmp(machine().system().name, "finfurl")) ||
- (!strcmp(machine().system().name, "gunwars")) ||
- (!strcmp(machine().system().name, "gunwarsa")) ||
- (!strcmp(machine().system().name, "downhill")) ||
- (!strcmp(machine().system().name, "finfurl2")) ||
- (!strcmp(machine().system().name, "finfurl2j")) ||
- (!strcmp(machine().system().name, "raceon")) ||
- (!strcmp(machine().system().name, "crszone")) ||
- (!strcmp(machine().system().name, "crszonev4a")) ||
- (!strcmp(machine().system().name, "crszonev3b")) ||
- (!strcmp(machine().system().name, "crszonev3b2")) ||
- (!strcmp(machine().system().name, "crszonev3a")) ||
- (!strcmp(machine().system().name, "crszonev2a")) ||
- (!strcmp(machine().system().name, "timecrs2v2b")) ||
- (!strcmp(machine().system().name, "timecrs2v1b")) ||
- (!strcmp(machine().system().name, "timecrs2"))) {
- m_has_jvsio = 1;
- } else {
- m_has_jvsio = 0;
- }
-}
-
-
-
-#define XOR(a) WORD2_XOR_BE(a)
-
-static const gfx_layout namcos23_cg_layout =
-{
- 16,16,
- 0x400, /* 0x3c0 */
- 4,
- { 0,1,2,3 },
- { XOR(0)*4, XOR(1)*4, XOR(2)*4, XOR(3)*4, XOR(4)*4, XOR(5)*4, XOR(6)*4, XOR(7)*4,
- XOR(8)*4, XOR(9)*4, XOR(10)*4, XOR(11)*4, XOR(12)*4, XOR(13)*4, XOR(14)*4, XOR(15)*4 },
- { 64*0,64*1,64*2,64*3,64*4,64*5,64*6,64*7,64*8,64*9,64*10,64*11,64*12,64*13,64*14,64*15 },
- 64*16
-}; /* cg_layout */
-
-static GFXDECODE_START( gfx_namcos23 )
- GFXDECODE_ENTRY( nullptr, 0, namcos23_cg_layout, 0, 0x800 )
-GFXDECODE_END
-
-
-void namcos23_state::gorgon(machine_config &config)
-{
- /* basic machine hardware */
- R4650BE(config, m_maincpu, BUSCLOCK*4);
- m_maincpu->set_icache_size(8192); // VERIFIED
- m_maincpu->set_dcache_size(8192); // VERIFIED
- m_maincpu->set_addrmap(AS_PROGRAM, &namcos23_state::gorgon_map);
- m_maincpu->set_vblank_int("screen", FUNC(namcos23_state::interrupt));
-
- H83002(config, m_subcpu, H8CLOCK);
- m_subcpu->set_addrmap(AS_PROGRAM, &namcos23_state::s23h8rwmap);
- m_subcpu->set_addrmap(AS_IO, &namcos23_state::s23h8iomap);
-
- // Timer at 115200*16 for the jvs serial clock
- m_subcpu->subdevice<h8_sci_device>("sci0")->set_external_clock_period(attotime::from_hz(JVSCLOCK/8));
-
- H83334(config, m_iocpu, JVSCLOCK);
- m_iocpu->set_addrmap(AS_PROGRAM, &namcos23_state::s23iobrdmap);
- m_iocpu->set_addrmap(AS_IO, &namcos23_state::s23iobrdiomap);
-
- m_iocpu->subdevice<h8_sci_device>("sci0")->tx_handler().set("subcpu:sci0", FUNC(h8_sci_device::rx_w));
- m_subcpu->subdevice<h8_sci_device>("sci0")->tx_handler().set("iocpu:sci0", FUNC(h8_sci_device::rx_w));
-
- config.set_maximum_quantum(attotime::from_hz(2*115200));
-
- NAMCO_SETTINGS(config, m_settings, 0);
-
- RTC4543(config, m_rtc, XTAL(32'768));
- m_rtc->data_cb().set("subcpu:sci1", FUNC(h8_sci_device::rx_w));
-
- // FIXME: need better syntax for configuring H8 onboard devices
- h8_sci_device &subcpu_sci1(*m_subcpu->subdevice<h8_sci_device>("sci1"));
- subcpu_sci1.tx_handler().set(m_settings, FUNC(namco_settings_device::data_w));
- subcpu_sci1.clk_handler().set(m_rtc, FUNC(rtc4543_device::clk_w)).invert();
- subcpu_sci1.clk_handler().append(m_settings, FUNC(namco_settings_device::clk_w));
-
- NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(VSYNC1);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // Not in any way accurate
- m_screen->set_size(640, 480);
- m_screen->set_visarea(0, 639, 0, 479);
- m_screen->set_screen_update(FUNC(namcos23_state::screen_update));
- m_screen->screen_vblank().set(FUNC(namcos23_state::sub_irq));
-
- PALETTE(config, m_palette).set_entries(0x8000);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_namcos23);
-
- MCFG_VIDEO_START_OVERRIDE(namcos23_state,s23)
-
- /* sound hardware */
- SPEAKER(config, "lspeaker").front_left();
- SPEAKER(config, "rspeaker").front_right();
-
- c352_device &c352(C352(config, "c352", C352CLOCK, C352DIV));
- c352.add_route(0, "lspeaker", 1.00);
- c352.add_route(1, "rspeaker", 1.00);
- c352.add_route(2, "lspeaker", 1.00);
- c352.add_route(3, "rspeaker", 1.00);
-}
-
-
-void namcos23_state::s23(machine_config &config)
-{
- /* basic machine hardware */
- R4650BE(config, m_maincpu, BUSCLOCK*4);
- m_maincpu->set_icache_size(8192); // VERIFIED
- m_maincpu->set_dcache_size(8192); // VERIFIED
- m_maincpu->set_addrmap(AS_PROGRAM, &namcos23_state::s23_map);
- m_maincpu->set_vblank_int("screen", FUNC(namcos23_state::interrupt));
-
- H83002(config, m_subcpu, H8CLOCK);
- m_subcpu->set_addrmap(AS_PROGRAM, &namcos23_state::s23h8rwmap);
- m_subcpu->set_addrmap(AS_IO, &namcos23_state::s23h8iomap);
-
- // Timer at 115200*16 for the jvs serial clock
- m_subcpu->subdevice<h8_sci_device>("sci0")->set_external_clock_period(attotime::from_hz(JVSCLOCK/8));
-
- H83334(config, m_iocpu, JVSCLOCK);
- m_iocpu->set_addrmap(AS_PROGRAM, &namcos23_state::s23iobrdmap);
- m_iocpu->set_addrmap(AS_IO, &namcos23_state::s23iobrdiomap);
-
- m_iocpu->subdevice<h8_sci_device>("sci0")->tx_handler().set("subcpu:sci0", FUNC(h8_sci_device::rx_w));
- m_subcpu->subdevice<h8_sci_device>("sci0")->tx_handler().set("iocpu:sci0", FUNC(h8_sci_device::rx_w));
-
- config.set_maximum_quantum(attotime::from_hz(2*115200));
-
- NAMCO_SETTINGS(config, m_settings, 0);
-
- RTC4543(config, m_rtc, XTAL(32'768));
- m_rtc->data_cb().set("subcpu:sci1", FUNC(h8_sci_device::rx_w));
-
- // FIXME: need better syntax for configuring H8 onboard devices
- h8_sci_device &subcpu_sci1(*m_subcpu->subdevice<h8_sci_device>("sci1"));
- subcpu_sci1.tx_handler().set(m_settings, FUNC(namco_settings_device::data_w));
- subcpu_sci1.clk_handler().set(m_rtc, FUNC(rtc4543_device::clk_w)).invert();
- subcpu_sci1.clk_handler().append(m_settings, FUNC(namco_settings_device::clk_w));
-
- NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(VSYNC1);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // Not in any way accurate
- m_screen->set_size(640, 480);
- m_screen->set_visarea(0, 639, 0, 479);
- m_screen->set_screen_update(FUNC(namcos23_state::screen_update));
- m_screen->screen_vblank().set(FUNC(namcos23_state::sub_irq));
-
- PALETTE(config, m_palette).set_entries(0x8000);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_namcos23);
-
- MCFG_VIDEO_START_OVERRIDE(namcos23_state,s23)
-
- /* sound hardware */
- SPEAKER(config, "lspeaker").front_left();
- SPEAKER(config, "rspeaker").front_right();
-
- c352_device &c352(C352(config, "c352", C352CLOCK, C352DIV));
- c352.add_route(0, "rspeaker", 1.00);
- c352.add_route(1, "lspeaker", 1.00);
- c352.add_route(2, "rspeaker", 1.00);
- c352.add_route(3, "lspeaker", 1.00);
-}
-
-void namcos23_state::motoxgo(machine_config &config)
-{
- s23(config);
-
- mb90611_device &amccpu(MB90611A(config, "amccpu", 4.9152_MHz_XTAL));
- amccpu.set_addrmap(AS_PROGRAM, &namcos23_state::motoxgo_exio_map);
-}
-
-void namcos23_state::timecrs2(machine_config &config)
-{
- s23(config);
-
- /* basic machine hardware */
- m_iocpu->set_addrmap(AS_PROGRAM, &namcos23_state::timecrs2iobrdmap);
-}
-
-void namcos23_state::gmen(machine_config &config)
-{
- s23(config);
-
- /* basic machine hardware */
- m_maincpu->set_clock(BUSCLOCK*5);
- m_maincpu->set_addrmap(AS_PROGRAM, &namcos23_state::gmen_mips_map);
-
- SH2(config, m_gmen_sh2, XTAL(28'700'000));
- m_gmen_sh2->set_addrmap(AS_PROGRAM, &namcos23_state::gmen_sh2_map);
-
- MCFG_MACHINE_RESET_OVERRIDE(namcos23_state,gmen)
-}
-
-void namcos23_state::ss23(machine_config &config)
-{
- /* basic machine hardware */
- R4650BE(config, m_maincpu, BUSCLOCK*5);
- m_maincpu->set_icache_size(8192); // VERIFIED
- m_maincpu->set_dcache_size(8192); // VERIFIED
- m_maincpu->set_addrmap(AS_PROGRAM, &namcos23_state::s23_map);
- m_maincpu->set_vblank_int("screen", FUNC(namcos23_state::interrupt));
-
- H83002(config, m_subcpu, H8CLOCK);
- m_subcpu->set_addrmap(AS_PROGRAM, &namcos23_state::s23h8rwmap);
- m_subcpu->set_addrmap(AS_IO, &namcos23_state::s23h8iomap);
-
- // Timer at 115200*16 for the jvs serial clock
- m_subcpu->subdevice<h8_sci_device>("sci0")->set_external_clock_period(attotime::from_hz(JVSCLOCK/8));
-
- config.set_maximum_quantum(attotime::from_hz(2*115200));
-
- NAMCO_SETTINGS(config, m_settings, 0);
-
- RTC4543(config, m_rtc, XTAL(32'768));
- m_rtc->data_cb().set("subcpu:sci1", FUNC(h8_sci_device::rx_w));
-
- // FIXME: need better syntax for configuring H8 onboard devices
- h8_sci_device &subcpu_sci1(*m_subcpu->subdevice<h8_sci_device>("sci1"));
- subcpu_sci1.tx_handler().set(m_settings, FUNC(namco_settings_device::data_w));
- subcpu_sci1.clk_handler().set(m_rtc, FUNC(rtc4543_device::clk_w)).invert();
- subcpu_sci1.clk_handler().append(m_settings, FUNC(namco_settings_device::clk_w));
-
- NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
-
- /* video hardware */
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_refresh_hz(VSYNC1);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // Not in any way accurate
- m_screen->set_size(640, 480);
- m_screen->set_visarea(0, 639, 0, 479);
- m_screen->set_screen_update(FUNC(namcos23_state::screen_update));
- m_screen->screen_vblank().set(FUNC(namcos23_state::sub_irq));
-
- PALETTE(config, m_palette).set_entries(0x8000);
-
- GFXDECODE(config, m_gfxdecode, m_palette, gfx_namcos23);
-
- MCFG_VIDEO_START_OVERRIDE(namcos23_state,s23)
-
- /* sound hardware */
- SPEAKER(config, "lspeaker").front_left();
- SPEAKER(config, "rspeaker").front_right();
-
- c352_device &c352(C352(config, "c352", C352CLOCK, C352DIV));
- c352.add_route(0, "rspeaker", 1.00);
- c352.add_route(1, "lspeaker", 1.00);
- c352.add_route(2, "rspeaker", 1.00);
- c352.add_route(3, "lspeaker", 1.00);
-}
-
-void namcos23_state::timecrs2v4a(machine_config &config)
-{
- ss23(config);
- /* basic machine hardware */
- H83334(config, m_iocpu, JVSCLOCK);
- m_iocpu->set_addrmap(AS_PROGRAM, &namcos23_state::timecrs2iobrdmap);
- m_iocpu->set_addrmap(AS_IO, &namcos23_state::s23iobrdiomap);
-
- m_iocpu->subdevice<h8_sci_device>("sci0")->tx_handler().set("subcpu:sci0", FUNC(h8_sci_device::rx_w));
- m_subcpu->subdevice<h8_sci_device>("sci0")->tx_handler().set("iocpu:sci0", FUNC(h8_sci_device::rx_w));
-}
-
-void namcos23_state::ss23e2(machine_config &config)
-{
- ss23(config);
-
- /* basic machine hardware */
- m_maincpu->set_clock(BUSCLOCK*6);
-
- H83334(config, m_iocpu, JVSCLOCK);
- m_iocpu->set_addrmap(AS_PROGRAM, &namcos23_state::s23iobrdmap);
- m_iocpu->set_addrmap(AS_IO, &namcos23_state::s23iobrdiomap);
-
- m_iocpu->subdevice<h8_sci_device>("sci0")->tx_handler().set("subcpu:sci0", FUNC(h8_sci_device::rx_w));
- m_subcpu->subdevice<h8_sci_device>("sci0")->tx_handler().set("iocpu:sci0", FUNC(h8_sci_device::rx_w));
-}
-
-// a note about "user1" ROMs:
-// serial number data is at offset 0x201 (interleaved) and it's the only difference between sets marked as 'set 1' and 'set 2'
-// TODO: verify if it's better to just keep one set and note the alternate serial numbers
-
-ROM_START( rapidrvr )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "rd3verc.ic2", 0x000000, 0x200000, CRC(c15c0f30) SHA1(9f529232818f3e184f81f62408a5cad615b05613) )
- ROM_LOAD16_BYTE( "rd3verc.ic1", 0x000001, 0x200000, CRC(9d7f4411) SHA1(d049efaa539d36ed0f73ca3f50a8f7112e67f865) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "rd3verc.ic3", 0x000000, 0x080000, CRC(6e26fbaf) SHA1(4ab6637d22f0d26f7e1d10e9c80059c56f64303d) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */
- ROM_LOAD( "asca1_io-a.ic2", 0x000000, 0x040000, CRC(77cdf69a) SHA1(497af1059f85c07bea2dd0d303481623f6019dcf) )
-
- ROM_REGION32_BE( 0x800000, "data", 0 ) /* data */
- ROM_LOAD16_BYTE( "rd1mtah.3j", 0x000000, 0x400000, CRC(d8fa0f3d) SHA1(0d5bdb3a2e7be1dffe11b74baa2c10bfe011ae92) )
- ROM_LOAD16_BYTE( "rd1mtal.1j", 0x000001, 0x400000, CRC(8f0efa86) SHA1(9953461c258f2a96be275a7b18d6518ddfac3860) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "rd1cgll.8b", 0x0000000, 0x800000, CRC(b58b92ac) SHA1(70ee6e0e5347e05817aa30d53d766b8ce0fc44e4) )
- ROM_LOAD( "rd1cglm.7b", 0x0800000, 0x800000, CRC(447067fa) SHA1(e2052373773594feb303e1924a4a820cf34ab55b) )
- ROM_LOAD( "rd1cgum.6b", 0x1000000, 0x800000, CRC(c50de2ef) SHA1(24758a72b3569ce6a643a5786fce7c34b8aa692d) )
- ROM_LOAD( "rd1cguu.5b", 0x1800000, 0x800000, CRC(611bab41) SHA1(84cddb2b63bf8336e92aecb06eddf1b34af73540) )
-
- ROM_REGION( 0x1000000, "sprites", 0 ) /* sprites tiles */
- ROM_LOAD( "rd1sprll.12t", 0x0000000, 0x400000, CRC(8d450259) SHA1(27cccd1e7dad8880147bb85185982d8d27076e69) )
- ROM_LOAD( "rd1sprlm.11p", 0x0400000, 0x400000, CRC(6c8db3a5) SHA1(24d81fa11e9c835cddadec4cbd530738e258346c) )
- ROM_LOAD( "rd1sprum.10p", 0x0800000, 0x400000, CRC(8e08b2c6) SHA1(a17331a4e41f677f604d1b74e7694cf920b03b66) )
- ROM_LOAD( "rd1spruu.9p", 0x0c00000, 0x400000, CRC(f20a9673) SHA1(e5f1d552b0c42e102593ab578ff0b9ff814f8650) )
-
- ROM_REGION16_LE( 0x200000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "rd1ccrl.11a", 0x000000, 0x200000, CRC(b0ea2b32) SHA1(0dc45846725b0de619bc6bae69e3eb166ed21bf0) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "rd1ccrh.11b", 0x000000, 0x200000, CRC(fafffb86) SHA1(15b0ba0252b99d0cac29fcb374fb895643f528fe) )
-
- ROM_REGION32_BE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "rd1pt0h.9l", 0x0000000, 0x400000, CRC(6f280eff) SHA1(9dd8c8903581d7a412146e50f4009e1d2b743f06) )
- ROM_LOAD32_WORD_SWAP( "rd1pt0l.9j", 0x0000002, 0x400000, CRC(47b1c5a5) SHA1(021d4ca7b8674d8ed5daa701bf41b4a7164d992a) )
- ROM_LOAD32_WORD_SWAP( "rd1pt1h.10l", 0x0800000, 0x400000, CRC(37bd9bdf) SHA1(b26c284024ea4ad4c67b2eefbfdd5ebb35a0118e) )
- ROM_LOAD32_WORD_SWAP( "rd1pt1l.10j", 0x0800002, 0x400000, CRC(91131cb3) SHA1(e42c5e190c719f1cf2d6e91444062ab901be0e73) )
- ROM_LOAD32_WORD_SWAP( "rd1pt2h.11l", 0x1000000, 0x400000, CRC(fa601e83) SHA1(45c420538910f566e75d668306735f54c901669f) )
- ROM_LOAD32_WORD_SWAP( "rd1pt2l.11j", 0x1000002, 0x400000, CRC(3423ff9f) SHA1(73823c179c866cbb601a23417acbbf5b3dc97213) )
- ROM_LOAD32_WORD_SWAP( "rd1pt3h.12l", 0x1800000, 0x400000, CRC(e82ff66a) SHA1(9e2c951136b26d969d2c9d030b7e0bad8bbbe3fb) )
- ROM_LOAD32_WORD_SWAP( "rd1pt3l.12j", 0x1800002, 0x400000, CRC(7216d63e) SHA1(77088ff05c2630996f4bdc87fe466f9b97611467) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "rd1wavel.2s", 0x000000, 0x800000, CRC(bf52c08c) SHA1(6745062e078e520484390fad1f723124aa4076d0) )
- ROM_LOAD( "rd1waveh.3s", 0x800000, 0x800000, CRC(ef0136b5) SHA1(a6d923ededca168fe555e0b86a72f53bec5424cc) )
-
- ROM_REGION( 0x800000, "dups", 0 ) /* duplicate ROMs */
- ROM_LOAD( "rd1cgll.8f", 0x000000, 0x800000, CRC(b58b92ac) SHA1(70ee6e0e5347e05817aa30d53d766b8ce0fc44e4) )
- ROM_LOAD( "rd1cglm.7f", 0x000000, 0x800000, CRC(447067fa) SHA1(e2052373773594feb303e1924a4a820cf34ab55b) )
- ROM_LOAD( "rd1cgum.6f", 0x000000, 0x800000, CRC(c50de2ef) SHA1(24758a72b3569ce6a643a5786fce7c34b8aa692d) )
- ROM_LOAD( "rd1cguu.5f", 0x000000, 0x800000, CRC(611bab41) SHA1(84cddb2b63bf8336e92aecb06eddf1b34af73540) )
- ROM_LOAD( "rd1sprll.12p", 0x000000, 0x400000, CRC(8d450259) SHA1(27cccd1e7dad8880147bb85185982d8d27076e69) )
- ROM_LOAD( "rd1sprlm.11t", 0x000000, 0x400000, CRC(6c8db3a5) SHA1(24d81fa11e9c835cddadec4cbd530738e258346c) )
- ROM_LOAD( "rd1sprum.10t", 0x000000, 0x400000, CRC(8e08b2c6) SHA1(a17331a4e41f677f604d1b74e7694cf920b03b66) )
- ROM_LOAD( "rd1spruu.9t", 0x000000, 0x400000, CRC(f20a9673) SHA1(e5f1d552b0c42e102593ab578ff0b9ff814f8650) )
- ROM_LOAD( "rd1ccrl.11e", 0x000000, 0x200000, CRC(b0ea2b32) SHA1(0dc45846725b0de619bc6bae69e3eb166ed21bf0) )
- ROM_LOAD( "rd1ccrh.11f", 0x000000, 0x200000, CRC(fafffb86) SHA1(15b0ba0252b99d0cac29fcb374fb895643f528fe) )
-ROM_END
-
-
-ROM_START( rapidrvrv2c )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "rd2verc.ic2", 0x000000, 0x200000, CRC(234fc2f4) SHA1(64374f4de19855f1980d8e088049b0c112107f43) )
- ROM_LOAD16_BYTE( "rd2verc.ic1", 0x000001, 0x200000, CRC(651c5da4) SHA1(0e73e2cfafda626597d2ce08bf07458509fb79de) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "rd2verc.ic3", 0x000000, 0x080000, CRC(6e26fbaf) SHA1(4ab6637d22f0d26f7e1d10e9c80059c56f64303d) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */
- ROM_LOAD( "asca1_io-a.ic2", 0x000000, 0x040000, CRC(77cdf69a) SHA1(497af1059f85c07bea2dd0d303481623f6019dcf) )
-
- ROM_REGION32_BE( 0x800000, "data", 0 ) /* data */
- ROM_LOAD16_BYTE( "rd1mtah.3j", 0x000000, 0x400000, CRC(d8fa0f3d) SHA1(0d5bdb3a2e7be1dffe11b74baa2c10bfe011ae92) )
- ROM_LOAD16_BYTE( "rd1mtal.1j", 0x000001, 0x400000, CRC(8f0efa86) SHA1(9953461c258f2a96be275a7b18d6518ddfac3860) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "rd1cgll.8b", 0x0000000, 0x800000, CRC(b58b92ac) SHA1(70ee6e0e5347e05817aa30d53d766b8ce0fc44e4) )
- ROM_LOAD( "rd1cglm.7b", 0x0800000, 0x800000, CRC(447067fa) SHA1(e2052373773594feb303e1924a4a820cf34ab55b) )
- ROM_LOAD( "rd1cgum.6b", 0x1000000, 0x800000, CRC(c50de2ef) SHA1(24758a72b3569ce6a643a5786fce7c34b8aa692d) )
- ROM_LOAD( "rd1cguu.5b", 0x1800000, 0x800000, CRC(611bab41) SHA1(84cddb2b63bf8336e92aecb06eddf1b34af73540) )
-
- ROM_REGION( 0x1000000, "sprites", 0 ) /* sprites tiles */
- ROM_LOAD( "rd1sprll.12t", 0x0000000, 0x400000, CRC(8d450259) SHA1(27cccd1e7dad8880147bb85185982d8d27076e69) )
- ROM_LOAD( "rd1sprlm.11p", 0x0400000, 0x400000, CRC(6c8db3a5) SHA1(24d81fa11e9c835cddadec4cbd530738e258346c) )
- ROM_LOAD( "rd1sprum.10p", 0x0800000, 0x400000, CRC(8e08b2c6) SHA1(a17331a4e41f677f604d1b74e7694cf920b03b66) )
- ROM_LOAD( "rd1spruu.9p", 0x0c00000, 0x400000, CRC(f20a9673) SHA1(e5f1d552b0c42e102593ab578ff0b9ff814f8650) )
-
- ROM_REGION16_LE( 0x200000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "rd1ccrl.11a", 0x000000, 0x200000, CRC(b0ea2b32) SHA1(0dc45846725b0de619bc6bae69e3eb166ed21bf0) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "rd1ccrh.11b", 0x000000, 0x200000, CRC(fafffb86) SHA1(15b0ba0252b99d0cac29fcb374fb895643f528fe) )
-
- ROM_REGION32_BE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "rd1pt0h.9l", 0x0000000, 0x400000, CRC(6f280eff) SHA1(9dd8c8903581d7a412146e50f4009e1d2b743f06) )
- ROM_LOAD32_WORD_SWAP( "rd1pt0l.9j", 0x0000002, 0x400000, CRC(47b1c5a5) SHA1(021d4ca7b8674d8ed5daa701bf41b4a7164d992a) )
- ROM_LOAD32_WORD_SWAP( "rd1pt1h.10l", 0x0800000, 0x400000, CRC(37bd9bdf) SHA1(b26c284024ea4ad4c67b2eefbfdd5ebb35a0118e) )
- ROM_LOAD32_WORD_SWAP( "rd1pt1l.10j", 0x0800002, 0x400000, CRC(91131cb3) SHA1(e42c5e190c719f1cf2d6e91444062ab901be0e73) )
- ROM_LOAD32_WORD_SWAP( "rd1pt2h.11l", 0x1000000, 0x400000, CRC(fa601e83) SHA1(45c420538910f566e75d668306735f54c901669f) )
- ROM_LOAD32_WORD_SWAP( "rd1pt2l.11j", 0x1000002, 0x400000, CRC(3423ff9f) SHA1(73823c179c866cbb601a23417acbbf5b3dc97213) )
- ROM_LOAD32_WORD_SWAP( "rd1pt3h.12l", 0x1800000, 0x400000, CRC(e82ff66a) SHA1(9e2c951136b26d969d2c9d030b7e0bad8bbbe3fb) )
- ROM_LOAD32_WORD_SWAP( "rd1pt3l.12j", 0x1800002, 0x400000, CRC(7216d63e) SHA1(77088ff05c2630996f4bdc87fe466f9b97611467) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "rd1wavel.2s", 0x000000, 0x800000, CRC(bf52c08c) SHA1(6745062e078e520484390fad1f723124aa4076d0) )
- ROM_LOAD( "rd1waveh.3s", 0x800000, 0x800000, CRC(ef0136b5) SHA1(a6d923ededca168fe555e0b86a72f53bec5424cc) )
-
- ROM_REGION( 0x800000, "dups", 0 ) /* duplicate ROMs */
- ROM_LOAD( "rd1cgll.8f", 0x000000, 0x800000, CRC(b58b92ac) SHA1(70ee6e0e5347e05817aa30d53d766b8ce0fc44e4) )
- ROM_LOAD( "rd1cglm.7f", 0x000000, 0x800000, CRC(447067fa) SHA1(e2052373773594feb303e1924a4a820cf34ab55b) )
- ROM_LOAD( "rd1cgum.6f", 0x000000, 0x800000, CRC(c50de2ef) SHA1(24758a72b3569ce6a643a5786fce7c34b8aa692d) )
- ROM_LOAD( "rd1cguu.5f", 0x000000, 0x800000, CRC(611bab41) SHA1(84cddb2b63bf8336e92aecb06eddf1b34af73540) )
- ROM_LOAD( "rd1sprll.12p", 0x000000, 0x400000, CRC(8d450259) SHA1(27cccd1e7dad8880147bb85185982d8d27076e69) )
- ROM_LOAD( "rd1sprlm.11t", 0x000000, 0x400000, CRC(6c8db3a5) SHA1(24d81fa11e9c835cddadec4cbd530738e258346c) )
- ROM_LOAD( "rd1sprum.10t", 0x000000, 0x400000, CRC(8e08b2c6) SHA1(a17331a4e41f677f604d1b74e7694cf920b03b66) )
- ROM_LOAD( "rd1spruu.9t", 0x000000, 0x400000, CRC(f20a9673) SHA1(e5f1d552b0c42e102593ab578ff0b9ff814f8650) )
- ROM_LOAD( "rd1ccrl.11e", 0x000000, 0x200000, CRC(b0ea2b32) SHA1(0dc45846725b0de619bc6bae69e3eb166ed21bf0) )
- ROM_LOAD( "rd1ccrh.11f", 0x000000, 0x200000, CRC(fafffb86) SHA1(15b0ba0252b99d0cac29fcb374fb895643f528fe) )
-ROM_END
-
-
-ROM_START( rapidrvrp ) // prototype board
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "29f016.ic2", 0x000000, 0x200000, CRC(9f72a7cd) SHA1(06245f1d3cc6ffb5b0123a8eea0dc8338bdfc0d6) )
- ROM_LOAD16_BYTE( "29f016.ic1", 0x000001, 0x200000, CRC(d395a244) SHA1(7f7b7b75b4bf9ac8808a27afed87f503df28e49f) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "29f400.ic3", 0x000000, 0x080000, CRC(f194c942) SHA1(b581c97327dea092e30ba46ad630d10477343a39) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */
- ROM_LOAD( "asca1_io-a.ic2", 0x000000, 0x040000, CRC(77cdf69a) SHA1(497af1059f85c07bea2dd0d303481623f6019dcf) )
-
- ROM_REGION32_BE( 0x800000, "data", 0 ) /* data */
- ROM_LOAD16_BYTE( "rd1mtah.3j", 0x000000, 0x400000, CRC(d8fa0f3d) SHA1(0d5bdb3a2e7be1dffe11b74baa2c10bfe011ae92) )
- ROM_LOAD16_BYTE( "rd1mtal.1j", 0x000001, 0x400000, CRC(8f0efa86) SHA1(9953461c258f2a96be275a7b18d6518ddfac3860) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "rd1cgll.8b", 0x0000000, 0x800000, CRC(b58b92ac) SHA1(70ee6e0e5347e05817aa30d53d766b8ce0fc44e4) )
- ROM_LOAD( "rd1cglm.7b", 0x0800000, 0x800000, CRC(447067fa) SHA1(e2052373773594feb303e1924a4a820cf34ab55b) )
- ROM_LOAD( "rd1cgum.6b", 0x1000000, 0x800000, CRC(c50de2ef) SHA1(24758a72b3569ce6a643a5786fce7c34b8aa692d) )
- ROM_LOAD( "rd1cguu.5b", 0x1800000, 0x800000, CRC(611bab41) SHA1(84cddb2b63bf8336e92aecb06eddf1b34af73540) )
-
- ROM_REGION( 0x1000000, "sprites", 0 ) /* sprites tiles */
- ROM_LOAD( "rd1sprll.12t", 0x0000000, 0x400000, CRC(8d450259) SHA1(27cccd1e7dad8880147bb85185982d8d27076e69) )
- ROM_LOAD( "rd1sprlm.11p", 0x0400000, 0x400000, CRC(6c8db3a5) SHA1(24d81fa11e9c835cddadec4cbd530738e258346c) )
- ROM_LOAD( "rd1sprum.10p", 0x0800000, 0x400000, CRC(8e08b2c6) SHA1(a17331a4e41f677f604d1b74e7694cf920b03b66) )
- ROM_LOAD( "rd1spruu.9p", 0x0c00000, 0x400000, CRC(f20a9673) SHA1(e5f1d552b0c42e102593ab578ff0b9ff814f8650) )
-
- ROM_REGION16_LE( 0x200000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "rd1ccrl.11a", 0x000000, 0x200000, CRC(b0ea2b32) SHA1(0dc45846725b0de619bc6bae69e3eb166ed21bf0) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "rd1ccrh.11b", 0x000000, 0x200000, CRC(fafffb86) SHA1(15b0ba0252b99d0cac29fcb374fb895643f528fe) )
-
- ROM_REGION32_BE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "rd1pt0h.9l", 0x0000000, 0x400000, CRC(6f280eff) SHA1(9dd8c8903581d7a412146e50f4009e1d2b743f06) )
- ROM_LOAD32_WORD_SWAP( "rd1pt0l.9j", 0x0000002, 0x400000, CRC(47b1c5a5) SHA1(021d4ca7b8674d8ed5daa701bf41b4a7164d992a) )
- ROM_LOAD32_WORD_SWAP( "rd1pt1h.10l", 0x0800000, 0x400000, CRC(37bd9bdf) SHA1(b26c284024ea4ad4c67b2eefbfdd5ebb35a0118e) )
- ROM_LOAD32_WORD_SWAP( "rd1pt1l.10j", 0x0800002, 0x400000, CRC(91131cb3) SHA1(e42c5e190c719f1cf2d6e91444062ab901be0e73) )
- ROM_LOAD32_WORD_SWAP( "rd1pt2h.11l", 0x1000000, 0x400000, CRC(fa601e83) SHA1(45c420538910f566e75d668306735f54c901669f) )
- ROM_LOAD32_WORD_SWAP( "rd1pt2l.11j", 0x1000002, 0x400000, CRC(3423ff9f) SHA1(73823c179c866cbb601a23417acbbf5b3dc97213) )
- ROM_LOAD32_WORD_SWAP( "rd1pt3h.12l", 0x1800000, 0x400000, CRC(e82ff66a) SHA1(9e2c951136b26d969d2c9d030b7e0bad8bbbe3fb) )
- ROM_LOAD32_WORD_SWAP( "rd1pt3l.12j", 0x1800002, 0x400000, CRC(7216d63e) SHA1(77088ff05c2630996f4bdc87fe466f9b97611467) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "rd1wavel.2s", 0x000000, 0x800000, CRC(bf52c08c) SHA1(6745062e078e520484390fad1f723124aa4076d0) )
- ROM_LOAD( "rd1waveh.3s", 0x800000, 0x800000, CRC(ef0136b5) SHA1(a6d923ededca168fe555e0b86a72f53bec5424cc) )
-
- ROM_REGION( 0x800000, "dups", 0 ) /* duplicate ROMs */
- ROM_LOAD( "rd1cgll.8f", 0x000000, 0x800000, CRC(b58b92ac) SHA1(70ee6e0e5347e05817aa30d53d766b8ce0fc44e4) )
- ROM_LOAD( "rd1cglm.7f", 0x000000, 0x800000, CRC(447067fa) SHA1(e2052373773594feb303e1924a4a820cf34ab55b) )
- ROM_LOAD( "rd1cgum.6f", 0x000000, 0x800000, CRC(c50de2ef) SHA1(24758a72b3569ce6a643a5786fce7c34b8aa692d) )
- ROM_LOAD( "rd1cguu.5f", 0x000000, 0x800000, CRC(611bab41) SHA1(84cddb2b63bf8336e92aecb06eddf1b34af73540) )
- ROM_LOAD( "rd1sprll.12p", 0x000000, 0x400000, CRC(8d450259) SHA1(27cccd1e7dad8880147bb85185982d8d27076e69) )
- ROM_LOAD( "rd1sprlm.11t", 0x000000, 0x400000, CRC(6c8db3a5) SHA1(24d81fa11e9c835cddadec4cbd530738e258346c) )
- ROM_LOAD( "rd1sprum.10t", 0x000000, 0x400000, CRC(8e08b2c6) SHA1(a17331a4e41f677f604d1b74e7694cf920b03b66) )
- ROM_LOAD( "rd1spruu.9t", 0x000000, 0x400000, CRC(f20a9673) SHA1(e5f1d552b0c42e102593ab578ff0b9ff814f8650) )
- ROM_LOAD( "rd1ccrl.11e", 0x000000, 0x200000, CRC(b0ea2b32) SHA1(0dc45846725b0de619bc6bae69e3eb166ed21bf0) )
- ROM_LOAD( "rd1ccrh.11f", 0x000000, 0x200000, CRC(fafffb86) SHA1(15b0ba0252b99d0cac29fcb374fb895643f528fe) )
-ROM_END
-
-
-ROM_START( finfurl )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "ff2vera.ic2", 0x000000, 0x200000, CRC(e10f9dfa) SHA1(6f6989cd722fec5e3ed3ad1bb4866c5831041ae1) )
- ROM_LOAD16_BYTE( "ff2vera.ic1", 0x000001, 0x200000, CRC(5a90ffbf) SHA1(e22dc0ae2d3c3b3a521369fe3f63412ae2ae0a12) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "ff2vera.ic3", 0x000000, 0x080000, CRC(ab681078) SHA1(ec8367404458a54893ab6bea29c8a2ba3272b816) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */
- ROM_LOAD( "asca1_io-a.ic2", 0x000000, 0x040000, CRC(77cdf69a) SHA1(497af1059f85c07bea2dd0d303481623f6019dcf) )
-
- ROM_REGION32_BE( 0x800000, "data", 0 ) /* data */
- ROM_LOAD16_BYTE( "ff2mtah.3j", 0x000000, 0x400000, CRC(161003cd) SHA1(04409333a4776b17700fc6d1aa06a39560132e03) )
- ROM_LOAD16_BYTE( "ff2mtal.1j", 0x000001, 0x400000, CRC(ed1a5bf2) SHA1(bd05388a125a0201a41af95fb2aa5fe1c8b0f270) )
-
- ROM_REGION( 0x1000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "ff2cgll.8b", 0x0000000, 0x400000, CRC(8e6c34eb) SHA1(795631c8019011246ed1e5546de4433dc22dd9e7) )
- ROM_LOAD( "ff2cglm.7b", 0x0400000, 0x400000, CRC(406f321b) SHA1(41a2b0229d5370f141b9d6a4e1801e2f9973f660) )
- ROM_LOAD( "ff2cgum.6b", 0x0800000, 0x400000, CRC(b808be59) SHA1(906bfbb5d34feef9697da545a93930fe6e56685c) )
- ROM_LOAD( "ff2cguu.5b", 0x0c00000, 0x400000, CRC(595deee4) SHA1(b29ff9c6ba17737f1f87c05b2d899d80b0b72dbb) )
-
- ROM_REGION( 0x1000000, "sprites", 0 ) /* texture tiles bank 2? */
- ROM_LOAD( "ff2sprll.12t", 0x0000000, 0x400000, CRC(1b305a13) SHA1(3d213a77b7a019fe4511097e7a27aa0688a3a586) )
- ROM_LOAD( "ff2sprlm.11p", 0x0400000, 0x400000, CRC(421a8fbf) SHA1(8bd6f3e1ac9c7b0ac9d25dfbce35f5b7a5d5bcc7) )
- ROM_LOAD( "ff2sprum.10p", 0x0800000, 0x400000, CRC(cb53c03e) SHA1(c39a44cad240c5b77c235c07ea700f9847ab9482) )
- ROM_LOAD( "ff2spruu.9p", 0x0c00000, 0x400000, CRC(c134b0de) SHA1(cea9d9f4ce2f45a93c797ed467d8458521db9b3d) )
-
- ROM_REGION16_LE( 0x200000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "ff2ccrl.11a", 0x000000, 0x200000, CRC(f1f9e77c) SHA1(adf659a4671ea066817e6620b7d7d5f60f6e01e5) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "ff2ccrh.11b", 0x000000, 0x200000, CRC(71228c61) SHA1(b39d0b51f36c0d00a6144ae20613bebee3ed22bc) )
-
- ROM_REGION32_BE( 0x800000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "ff2pt0h.9l", 0x000000, 0x400000, CRC(344ce7a5) SHA1(79d2c4495b47592be4dee6e39294dd3194eb1d5f) )
- ROM_LOAD32_WORD_SWAP( "ff2pt0l.9j", 0x000002, 0x400000, CRC(7eeda441) SHA1(78648559abec5e1f04622cd1cfd5d94bddda7dbf) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "ff2wavel.2s", 0x000000, 0x800000, CRC(6235c605) SHA1(521eaee80ac17c0936877d49394e5390fa0ff8a0) )
- ROM_LOAD( "ff2waveh.3s", 0x800000, 0x800000, CRC(2a59492a) SHA1(886ec0a4a71048d65f93c52df96416e74d23b3ec) )
-
- ROM_REGION( 0x400000, "dups", 0 ) /* duplicate ROMs */
- ROM_LOAD( "ff2cguu.5f", 0x000000, 0x400000, CRC(595deee4) SHA1(b29ff9c6ba17737f1f87c05b2d899d80b0b72dbb) )
- ROM_LOAD( "ff2cgum.6f", 0x000000, 0x400000, CRC(b808be59) SHA1(906bfbb5d34feef9697da545a93930fe6e56685c) )
- ROM_LOAD( "ff2cgll.8f", 0x000000, 0x400000, CRC(8e6c34eb) SHA1(795631c8019011246ed1e5546de4433dc22dd9e7) )
- ROM_LOAD( "ff2cglm.7f", 0x000000, 0x400000, CRC(406f321b) SHA1(41a2b0229d5370f141b9d6a4e1801e2f9973f660) )
- ROM_LOAD( "ff2spruu.9t", 0x000000, 0x400000, CRC(c134b0de) SHA1(cea9d9f4ce2f45a93c797ed467d8458521db9b3d) )
- ROM_LOAD( "ff2sprum.10t", 0x000000, 0x400000, CRC(cb53c03e) SHA1(c39a44cad240c5b77c235c07ea700f9847ab9482) )
- ROM_LOAD( "ff2sprll.12p", 0x000000, 0x400000, CRC(1b305a13) SHA1(3d213a77b7a019fe4511097e7a27aa0688a3a586) )
- ROM_LOAD( "ff2sprlm.11t", 0x000000, 0x400000, CRC(421a8fbf) SHA1(8bd6f3e1ac9c7b0ac9d25dfbce35f5b7a5d5bcc7) )
- ROM_LOAD( "ff2ccrl.11e", 0x000000, 0x200000, CRC(f1f9e77c) SHA1(adf659a4671ea066817e6620b7d7d5f60f6e01e5) )
- ROM_LOAD( "ff2ccrh.11f", 0x000000, 0x200000, CRC(71228c61) SHA1(b39d0b51f36c0d00a6144ae20613bebee3ed22bc) )
-ROM_END
-
-
-ROM_START( motoxgo )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "mg3vera.ic2", 0x000000, 0x200000, CRC(1bf06f00) SHA1(e9d04e9f19bff7a58cb280dd1d5db12801b68ba0) )
- ROM_LOAD16_BYTE( "mg3vera.ic1", 0x000001, 0x200000, CRC(f5e6e25b) SHA1(1de30e8e831be66987112645a9db3a3001b89fe6) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "mg3vera.ic3", 0x000000, 0x080000, CRC(9e3d46a8) SHA1(9ffa5b91ea51cc0fb97def25ce47efa3441f3c6f) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */
- ROM_LOAD( "asca-3a.ic14", 0x000000, 0x040000, CRC(8e9266e5) SHA1(ffa8782ca641d71d57df23ed1c5911db05d3df97) )
-
- ROM_REGION( 0x20000, "exioboard", 0 ) /* "extra" I/O board (uses Fujitsu MB90611A MCU) */
- ROM_LOAD( "mg1prog0a.3a", 0x000000, 0x020000, CRC(b2b5be8f) SHA1(803652b7b8fde2196b7fb742ba8b9843e4fcd2de) )
-
- ROM_REGION32_BE( 0x2000000, "data", ROMREGION_ERASEFF ) /* data ROMs */
- ROM_LOAD16_BYTE( "mg1mtah.2j", 0x000000, 0x800000, CRC(845f4768) SHA1(9c03b1f6dcd9d1f43c2958d855221be7f9415c47) )
- ROM_LOAD16_BYTE( "mg1mtal.2h", 0x000001, 0x800000, CRC(fdad0f0a) SHA1(420d50f012af40f80b196d3aae320376e6c32367) )
-
- ROM_REGION( 0x2000000, "textile", ROMREGION_ERASEFF ) /* texture tiles */
- ROM_LOAD( "mg1cgll.4m", 0x0000000, 0x800000, CRC(175dfe34) SHA1(66ae35b0084159aea1afeb1a6486fffa635992b5) )
- ROM_LOAD( "mg1cglm.4k", 0x0800000, 0x800000, CRC(b3e648e7) SHA1(98018ae2276f905a7f74e1dab540a44247524436) )
- ROM_LOAD( "mg1cgum.4j", 0x1000000, 0x800000, CRC(46a77d73) SHA1(132ce2452ee68ba374e98b59032ac0a1a277078d) )
-
- ROM_REGION16_LE( 0x400000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "mg1ccrl.7f", 0x000000, 0x400000, CRC(5372e300) SHA1(63a49782289ed93a321ca7d193241fb83ca97e6b) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "mg1ccrh.7e", 0x000000, 0x200000, CRC(2e77597d) SHA1(58dd83c1b0c08115e728c5e7dea5e62135b821ba) )
-
- ROM_REGION32_BE( 0x1000000, "pointrom", ROMREGION_ERASEFF ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "mg1pt0h.7a", 0x000000, 0x400000, CRC(c9ba1b47) SHA1(42ec0638edb4c502ff0a340c4cf590bdd767cfe2) )
- ROM_LOAD32_WORD_SWAP( "mg1pt0l.7c", 0x000002, 0x400000, CRC(3b9e95d3) SHA1(d7823ed6c590669ccd4098ed439599a3eb814ed1) )
- ROM_LOAD32_WORD_SWAP( "mg1pt1h.5a", 0x800000, 0x400000, CRC(8d4f7097) SHA1(004e9ed0b5d6ce83ffadb9bd429fa7560abdb598) )
- ROM_LOAD32_WORD_SWAP( "mg1pt1l.5c", 0x800002, 0x400000, CRC(0dd2f358) SHA1(3537e6be3fec9fec8d5a8dd02d9cf67b3805f8f0) )
-
- ROM_REGION( 0x1000000, "c352", ROMREGION_ERASEFF ) /* C352 PCM samples */
- ROM_LOAD( "mg1wavel.2c", 0x000000, 0x800000, CRC(f78b1b4d) SHA1(47cd654ec0a69de0dc81b8d83692eebf5611228b) )
- ROM_LOAD( "mg1waveh.2a", 0x800000, 0x800000, CRC(8cb73877) SHA1(2e2b170c7ff889770c13b4ab7ac316b386ada153) )
-
- ROM_REGION( 0x800000, "dups", 0 ) /* duplicate ROMs */
- ROM_LOAD( "mg1cgll.5m", 0x000000, 0x800000, CRC(175dfe34) SHA1(66ae35b0084159aea1afeb1a6486fffa635992b5) )
- ROM_LOAD( "mg1cglm.5k", 0x000000, 0x800000, CRC(b3e648e7) SHA1(98018ae2276f905a7f74e1dab540a44247524436) )
- ROM_LOAD( "mg1cgum.5j", 0x000000, 0x800000, CRC(46a77d73) SHA1(132ce2452ee68ba374e98b59032ac0a1a277078d) )
- ROM_LOAD( "mg1ccrl.7m", 0x000000, 0x400000, CRC(5372e300) SHA1(63a49782289ed93a321ca7d193241fb83ca97e6b) )
- ROM_LOAD( "mg1ccrh.7k", 0x400000, 0x200000, CRC(2e77597d) SHA1(58dd83c1b0c08115e728c5e7dea5e62135b821ba) )
-ROM_END
-
-
-ROM_START( motoxgov2a )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "mg2vera.ic2", 0x000000, 0x200000, CRC(66093336) SHA1(c87874245a70a1642fb9ecfc94cbbc89f0fd633f) )
- ROM_LOAD16_BYTE( "mg2vera.ic1", 0x000001, 0x200000, CRC(3dc7736f) SHA1(c5137aa449918a124415f8ea5581e037f841129c) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "mg3vera.ic3", 0x000000, 0x080000, CRC(9e3d46a8) SHA1(9ffa5b91ea51cc0fb97def25ce47efa3441f3c6f) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */
- ROM_LOAD( "asca-3a.ic14", 0x000000, 0x040000, CRC(8e9266e5) SHA1(ffa8782ca641d71d57df23ed1c5911db05d3df97) )
-
- ROM_REGION( 0x20000, "exioboard", 0 ) /* "extra" I/O board (uses Fujitsu MB90611A MCU) */
- ROM_LOAD( "mg1prog0a.3a", 0x000000, 0x020000, CRC(b2b5be8f) SHA1(803652b7b8fde2196b7fb742ba8b9843e4fcd2de) )
-
- ROM_REGION32_BE( 0x2000000, "data", ROMREGION_ERASEFF ) /* data ROMs */
- ROM_LOAD16_BYTE( "mg1mtah.2j", 0x000000, 0x800000, CRC(845f4768) SHA1(9c03b1f6dcd9d1f43c2958d855221be7f9415c47) )
- ROM_LOAD16_BYTE( "mg1mtal.2h", 0x000001, 0x800000, CRC(fdad0f0a) SHA1(420d50f012af40f80b196d3aae320376e6c32367) )
-
- ROM_REGION( 0x2000000, "textile", ROMREGION_ERASEFF ) /* texture tiles */
- ROM_LOAD( "mg1cgll.4m", 0x0000000, 0x800000, CRC(175dfe34) SHA1(66ae35b0084159aea1afeb1a6486fffa635992b5) )
- ROM_LOAD( "mg1cglm.4k", 0x0800000, 0x800000, CRC(b3e648e7) SHA1(98018ae2276f905a7f74e1dab540a44247524436) )
- ROM_LOAD( "mg1cgum.4j", 0x1000000, 0x800000, CRC(46a77d73) SHA1(132ce2452ee68ba374e98b59032ac0a1a277078d) )
-
- ROM_REGION16_LE( 0x400000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "mg1ccrl.7f", 0x000000, 0x400000, CRC(5372e300) SHA1(63a49782289ed93a321ca7d193241fb83ca97e6b) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "mg1ccrh.7e", 0x000000, 0x200000, CRC(2e77597d) SHA1(58dd83c1b0c08115e728c5e7dea5e62135b821ba) )
-
- ROM_REGION32_BE( 0x1000000, "pointrom", ROMREGION_ERASEFF ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "mg1pt0h.7a", 0x000000, 0x400000, CRC(c9ba1b47) SHA1(42ec0638edb4c502ff0a340c4cf590bdd767cfe2) )
- ROM_LOAD32_WORD_SWAP( "mg1pt0l.7c", 0x000002, 0x400000, CRC(3b9e95d3) SHA1(d7823ed6c590669ccd4098ed439599a3eb814ed1) )
- ROM_LOAD32_WORD_SWAP( "mg1pt1h.5a", 0x800000, 0x400000, CRC(8d4f7097) SHA1(004e9ed0b5d6ce83ffadb9bd429fa7560abdb598) )
- ROM_LOAD32_WORD_SWAP( "mg1pt1l.5c", 0x800002, 0x400000, CRC(0dd2f358) SHA1(3537e6be3fec9fec8d5a8dd02d9cf67b3805f8f0) )
-
- ROM_REGION( 0x1000000, "c352", ROMREGION_ERASEFF ) /* C352 PCM samples */
- ROM_LOAD( "mg1wavel.2c", 0x000000, 0x800000, CRC(f78b1b4d) SHA1(47cd654ec0a69de0dc81b8d83692eebf5611228b) )
- ROM_LOAD( "mg1waveh.2a", 0x800000, 0x800000, CRC(8cb73877) SHA1(2e2b170c7ff889770c13b4ab7ac316b386ada153) )
-
- ROM_REGION( 0x800000, "dups", 0 ) /* duplicate ROMs */
- ROM_LOAD( "mg1cgll.5m", 0x000000, 0x800000, CRC(175dfe34) SHA1(66ae35b0084159aea1afeb1a6486fffa635992b5) )
- ROM_LOAD( "mg1cglm.5k", 0x000000, 0x800000, CRC(b3e648e7) SHA1(98018ae2276f905a7f74e1dab540a44247524436) )
- ROM_LOAD( "mg1cgum.5j", 0x000000, 0x800000, CRC(46a77d73) SHA1(132ce2452ee68ba374e98b59032ac0a1a277078d) )
- ROM_LOAD( "mg1ccrl.7m", 0x000000, 0x400000, CRC(5372e300) SHA1(63a49782289ed93a321ca7d193241fb83ca97e6b) )
- ROM_LOAD( "mg1ccrh.7k", 0x400000, 0x200000, CRC(2e77597d) SHA1(58dd83c1b0c08115e728c5e7dea5e62135b821ba) )
-ROM_END
-
-ROM_START( motoxgov2a2 )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "mg2vera1.ic2", 0x000000, 0x200000, CRC(0deab179) SHA1(9b45c0db3921bdfcd0eb220939a1197d8dd2860b) )
- ROM_LOAD16_BYTE( "mg2vera1.ic1", 0x000001, 0x200000, CRC(4b1bc511) SHA1(884c08a0d09e885582283c0b3a5e56a184ccd1b5) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "mg3vera.ic3", 0x000000, 0x080000, CRC(9e3d46a8) SHA1(9ffa5b91ea51cc0fb97def25ce47efa3441f3c6f) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */
- ROM_LOAD( "asca-3a.ic14", 0x000000, 0x040000, CRC(8e9266e5) SHA1(ffa8782ca641d71d57df23ed1c5911db05d3df97) )
-
- ROM_REGION( 0x20000, "exioboard", 0 ) /* "extra" I/O board (uses Fujitsu MB90611A MCU) */
- ROM_LOAD( "mg1prog0a.3a", 0x000000, 0x020000, CRC(b2b5be8f) SHA1(803652b7b8fde2196b7fb742ba8b9843e4fcd2de) )
-
- ROM_REGION32_BE( 0x2000000, "data", ROMREGION_ERASEFF ) /* data ROMs */
- ROM_LOAD16_BYTE( "mg1mtah.2j", 0x000000, 0x800000, CRC(845f4768) SHA1(9c03b1f6dcd9d1f43c2958d855221be7f9415c47) )
- ROM_LOAD16_BYTE( "mg1mtal.2h", 0x000001, 0x800000, CRC(fdad0f0a) SHA1(420d50f012af40f80b196d3aae320376e6c32367) )
-
- ROM_REGION( 0x2000000, "textile", ROMREGION_ERASEFF ) /* texture tiles */
- ROM_LOAD( "mg1cgll.4m", 0x0000000, 0x800000, CRC(175dfe34) SHA1(66ae35b0084159aea1afeb1a6486fffa635992b5) )
- ROM_LOAD( "mg1cglm.4k", 0x0800000, 0x800000, CRC(b3e648e7) SHA1(98018ae2276f905a7f74e1dab540a44247524436) )
- ROM_LOAD( "mg1cgum.4j", 0x1000000, 0x800000, CRC(46a77d73) SHA1(132ce2452ee68ba374e98b59032ac0a1a277078d) )
-
- ROM_REGION16_LE( 0x400000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "mg1ccrl.7f", 0x000000, 0x400000, CRC(5372e300) SHA1(63a49782289ed93a321ca7d193241fb83ca97e6b) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "mg1ccrh.7e", 0x000000, 0x200000, CRC(2e77597d) SHA1(58dd83c1b0c08115e728c5e7dea5e62135b821ba) )
-
- ROM_REGION32_BE( 0x1000000, "pointrom", ROMREGION_ERASEFF ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "mg1pt0h.7a", 0x000000, 0x400000, CRC(c9ba1b47) SHA1(42ec0638edb4c502ff0a340c4cf590bdd767cfe2) )
- ROM_LOAD32_WORD_SWAP( "mg1pt0l.7c", 0x000002, 0x400000, CRC(3b9e95d3) SHA1(d7823ed6c590669ccd4098ed439599a3eb814ed1) )
- ROM_LOAD32_WORD_SWAP( "mg1pt1h.5a", 0x800000, 0x400000, CRC(8d4f7097) SHA1(004e9ed0b5d6ce83ffadb9bd429fa7560abdb598) )
- ROM_LOAD32_WORD_SWAP( "mg1pt1l.5c", 0x800002, 0x400000, CRC(0dd2f358) SHA1(3537e6be3fec9fec8d5a8dd02d9cf67b3805f8f0) )
-
- ROM_REGION( 0x1000000, "c352", ROMREGION_ERASEFF ) /* C352 PCM samples */
- ROM_LOAD( "mg1wavel.2c", 0x000000, 0x800000, CRC(f78b1b4d) SHA1(47cd654ec0a69de0dc81b8d83692eebf5611228b) )
- ROM_LOAD( "mg1waveh.2a", 0x800000, 0x800000, CRC(8cb73877) SHA1(2e2b170c7ff889770c13b4ab7ac316b386ada153) )
-
- ROM_REGION( 0x800000, "dups", 0 ) /* duplicate ROMs */
- ROM_LOAD( "mg1cgll.5m", 0x000000, 0x800000, CRC(175dfe34) SHA1(66ae35b0084159aea1afeb1a6486fffa635992b5) )
- ROM_LOAD( "mg1cglm.5k", 0x000000, 0x800000, CRC(b3e648e7) SHA1(98018ae2276f905a7f74e1dab540a44247524436) )
- ROM_LOAD( "mg1cgum.5j", 0x000000, 0x800000, CRC(46a77d73) SHA1(132ce2452ee68ba374e98b59032ac0a1a277078d) )
- ROM_LOAD( "mg1ccrl.7m", 0x000000, 0x400000, CRC(5372e300) SHA1(63a49782289ed93a321ca7d193241fb83ca97e6b) )
- ROM_LOAD( "mg1ccrh.7k", 0x400000, 0x200000, CRC(2e77597d) SHA1(58dd83c1b0c08115e728c5e7dea5e62135b821ba) )
-ROM_END
-
-ROM_START( motoxgov1a )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "mg1vera.ic2", 0x000000, 0x200000, CRC(5ba13d9e) SHA1(7f6484df644772f2478155c05844532f8abbd196) )
- ROM_LOAD16_BYTE( "mg1vera.ic1", 0x000001, 0x200000, CRC(6b2bda52) SHA1(922ea739c8a62c7147126bf20ed3ffe8faec8842) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "mg3vera.ic3", 0x000000, 0x080000, CRC(9e3d46a8) SHA1(9ffa5b91ea51cc0fb97def25ce47efa3441f3c6f) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */
- ROM_LOAD( "asca-3a.ic14", 0x000000, 0x040000, CRC(8e9266e5) SHA1(ffa8782ca641d71d57df23ed1c5911db05d3df97) )
-
- ROM_REGION( 0x20000, "exioboard", 0 ) /* "extra" I/O board (uses Fujitsu MB90611A MCU) */
- ROM_LOAD( "mg1prog0a.3a", 0x000000, 0x020000, CRC(b2b5be8f) SHA1(803652b7b8fde2196b7fb742ba8b9843e4fcd2de) )
-
- ROM_REGION32_BE( 0x2000000, "data", ROMREGION_ERASEFF ) /* data ROMs */
- ROM_LOAD16_BYTE( "mg1mtah.2j", 0x000000, 0x800000, CRC(845f4768) SHA1(9c03b1f6dcd9d1f43c2958d855221be7f9415c47) )
- ROM_LOAD16_BYTE( "mg1mtal.2h", 0x000001, 0x800000, CRC(fdad0f0a) SHA1(420d50f012af40f80b196d3aae320376e6c32367) )
-
- ROM_REGION( 0x2000000, "textile", ROMREGION_ERASEFF ) /* texture tiles */
- ROM_LOAD( "mg1cgll.4m", 0x0000000, 0x800000, CRC(175dfe34) SHA1(66ae35b0084159aea1afeb1a6486fffa635992b5) )
- ROM_LOAD( "mg1cglm.4k", 0x0800000, 0x800000, CRC(b3e648e7) SHA1(98018ae2276f905a7f74e1dab540a44247524436) )
- ROM_LOAD( "mg1cgum.4j", 0x1000000, 0x800000, CRC(46a77d73) SHA1(132ce2452ee68ba374e98b59032ac0a1a277078d) )
-
- ROM_REGION16_LE( 0x400000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "mg1ccrl.7f", 0x000000, 0x400000, CRC(5372e300) SHA1(63a49782289ed93a321ca7d193241fb83ca97e6b) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "mg1ccrh.7e", 0x000000, 0x200000, CRC(2e77597d) SHA1(58dd83c1b0c08115e728c5e7dea5e62135b821ba) )
-
- ROM_REGION32_BE( 0x1000000, "pointrom", ROMREGION_ERASEFF ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "mg1pt0h.7a", 0x000000, 0x400000, CRC(c9ba1b47) SHA1(42ec0638edb4c502ff0a340c4cf590bdd767cfe2) )
- ROM_LOAD32_WORD_SWAP( "mg1pt0l.7c", 0x000002, 0x400000, CRC(3b9e95d3) SHA1(d7823ed6c590669ccd4098ed439599a3eb814ed1) )
- ROM_LOAD32_WORD_SWAP( "mg1pt1h.5a", 0x800000, 0x400000, CRC(8d4f7097) SHA1(004e9ed0b5d6ce83ffadb9bd429fa7560abdb598) )
- ROM_LOAD32_WORD_SWAP( "mg1pt1l.5c", 0x800002, 0x400000, CRC(0dd2f358) SHA1(3537e6be3fec9fec8d5a8dd02d9cf67b3805f8f0) )
-
- ROM_REGION( 0x1000000, "c352", ROMREGION_ERASEFF ) /* C352 PCM samples */
- ROM_LOAD( "mg1wavel.2c", 0x000000, 0x800000, CRC(f78b1b4d) SHA1(47cd654ec0a69de0dc81b8d83692eebf5611228b) )
- ROM_LOAD( "mg1waveh.2a", 0x800000, 0x800000, CRC(8cb73877) SHA1(2e2b170c7ff889770c13b4ab7ac316b386ada153) )
-
- ROM_REGION( 0x800000, "dups", 0 ) /* duplicate ROMs */
- ROM_LOAD( "mg1cgll.5m", 0x000000, 0x800000, CRC(175dfe34) SHA1(66ae35b0084159aea1afeb1a6486fffa635992b5) )
- ROM_LOAD( "mg1cglm.5k", 0x000000, 0x800000, CRC(b3e648e7) SHA1(98018ae2276f905a7f74e1dab540a44247524436) )
- ROM_LOAD( "mg1cgum.5j", 0x000000, 0x800000, CRC(46a77d73) SHA1(132ce2452ee68ba374e98b59032ac0a1a277078d) )
- ROM_LOAD( "mg1ccrl.7m", 0x000000, 0x400000, CRC(5372e300) SHA1(63a49782289ed93a321ca7d193241fb83ca97e6b) )
- ROM_LOAD( "mg1ccrh.7k", 0x400000, 0x200000, CRC(2e77597d) SHA1(58dd83c1b0c08115e728c5e7dea5e62135b821ba) )
-ROM_END
-
-
-ROM_START( motoxgov1a2 )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "mg1vera1.ic2", 0x000000, 0x200000, CRC(532ec687) SHA1(1e822b9afa00a897c0ad2341e33ebc93962a8244) )
- ROM_LOAD16_BYTE( "mg1vera1.ic1", 0x000001, 0x200000, CRC(3154b80a) SHA1(ecec56dfd594f5fc651478fa3ae8963182cb94c3) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "mg3vera.ic3", 0x000000, 0x080000, CRC(9e3d46a8) SHA1(9ffa5b91ea51cc0fb97def25ce47efa3441f3c6f) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */
- ROM_LOAD( "asca-3a.ic14", 0x000000, 0x040000, CRC(8e9266e5) SHA1(ffa8782ca641d71d57df23ed1c5911db05d3df97) )
-
- ROM_REGION( 0x20000, "exioboard", 0 ) /* "extra" I/O board (uses Fujitsu MB90611A MCU) */
- ROM_LOAD( "mg1prog0a.3a", 0x000000, 0x020000, CRC(b2b5be8f) SHA1(803652b7b8fde2196b7fb742ba8b9843e4fcd2de) )
-
- ROM_REGION32_BE( 0x2000000, "data", ROMREGION_ERASEFF ) /* data ROMs */
- ROM_LOAD16_BYTE( "mg1mtah.2j", 0x000000, 0x800000, CRC(845f4768) SHA1(9c03b1f6dcd9d1f43c2958d855221be7f9415c47) )
- ROM_LOAD16_BYTE( "mg1mtal.2h", 0x000001, 0x800000, CRC(fdad0f0a) SHA1(420d50f012af40f80b196d3aae320376e6c32367) )
-
- ROM_REGION( 0x2000000, "textile", ROMREGION_ERASEFF ) /* texture tiles */
- ROM_LOAD( "mg1cgll.4m", 0x0000000, 0x800000, CRC(175dfe34) SHA1(66ae35b0084159aea1afeb1a6486fffa635992b5) )
- ROM_LOAD( "mg1cglm.4k", 0x0800000, 0x800000, CRC(b3e648e7) SHA1(98018ae2276f905a7f74e1dab540a44247524436) )
- ROM_LOAD( "mg1cgum.4j", 0x1000000, 0x800000, CRC(46a77d73) SHA1(132ce2452ee68ba374e98b59032ac0a1a277078d) )
-
- ROM_REGION16_LE( 0x400000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "mg1ccrl.7f", 0x000000, 0x400000, CRC(5372e300) SHA1(63a49782289ed93a321ca7d193241fb83ca97e6b) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "mg1ccrh.7e", 0x000000, 0x200000, CRC(2e77597d) SHA1(58dd83c1b0c08115e728c5e7dea5e62135b821ba) )
-
- ROM_REGION32_BE( 0x1000000, "pointrom", ROMREGION_ERASEFF ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "mg1pt0h.7a", 0x000000, 0x400000, CRC(c9ba1b47) SHA1(42ec0638edb4c502ff0a340c4cf590bdd767cfe2) )
- ROM_LOAD32_WORD_SWAP( "mg1pt0l.7c", 0x000002, 0x400000, CRC(3b9e95d3) SHA1(d7823ed6c590669ccd4098ed439599a3eb814ed1) )
- ROM_LOAD32_WORD_SWAP( "mg1pt1h.5a", 0x800000, 0x400000, CRC(8d4f7097) SHA1(004e9ed0b5d6ce83ffadb9bd429fa7560abdb598) )
- ROM_LOAD32_WORD_SWAP( "mg1pt1l.5c", 0x800002, 0x400000, CRC(0dd2f358) SHA1(3537e6be3fec9fec8d5a8dd02d9cf67b3805f8f0) )
-
- ROM_REGION( 0x1000000, "c352", ROMREGION_ERASEFF ) /* C352 PCM samples */
- ROM_LOAD( "mg1wavel.2c", 0x000000, 0x800000, CRC(f78b1b4d) SHA1(47cd654ec0a69de0dc81b8d83692eebf5611228b) )
- ROM_LOAD( "mg1waveh.2a", 0x800000, 0x800000, CRC(8cb73877) SHA1(2e2b170c7ff889770c13b4ab7ac316b386ada153) )
-
- ROM_REGION( 0x800000, "dups", 0 ) /* duplicate ROMs */
- ROM_LOAD( "mg1cgll.5m", 0x000000, 0x800000, CRC(175dfe34) SHA1(66ae35b0084159aea1afeb1a6486fffa635992b5) )
- ROM_LOAD( "mg1cglm.5k", 0x000000, 0x800000, CRC(b3e648e7) SHA1(98018ae2276f905a7f74e1dab540a44247524436) )
- ROM_LOAD( "mg1cgum.5j", 0x000000, 0x800000, CRC(46a77d73) SHA1(132ce2452ee68ba374e98b59032ac0a1a277078d) )
- ROM_LOAD( "mg1ccrl.7m", 0x000000, 0x400000, CRC(5372e300) SHA1(63a49782289ed93a321ca7d193241fb83ca97e6b) )
- ROM_LOAD( "mg1ccrh.7k", 0x400000, 0x200000, CRC(2e77597d) SHA1(58dd83c1b0c08115e728c5e7dea5e62135b821ba) )
-ROM_END
-
-
-ROM_START( timecrs2 )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "tss3verb.2", 0x000000, 0x200000, CRC(c7be691f) SHA1(5e2e7a0db3d8ce6dfeb6c0d99e9fe6a9f9cab467) )
- ROM_LOAD16_BYTE( "tss3verb.1", 0x000001, 0x200000, CRC(6e3f232b) SHA1(8007d8f31a605a5df89938d7c9f9d3d209c934be) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "tss1vera.3", 0x000000, 0x080000, CRC(41e41994) SHA1(eabc1a307c329070bfc6486cb68169c94ff8a162) ) /* Flash ROM type 29F400TC - Common code throughout all versions */
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */
- ROM_LOAD( "tssioprog.ic3", 0x000000, 0x040000, CRC(edad4538) SHA1(1330189184a636328d956c0e435f8d9ad2e96a80) )
-
- ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data ROMs */
- ROM_LOAD16_BYTE( "tss1mtah.2j", 0x0000000, 0x800000, CRC(697c26ed) SHA1(72f6f69e89496ba0c6183b35c3bde71f5a3c721f) )
- ROM_LOAD16_BYTE( "tss1mtal.2h", 0x0000001, 0x800000, CRC(bfc79190) SHA1(04bda00c4cc5660d27af4f3b0ee3550dea8d3805) )
- ROM_LOAD16_BYTE( "tss1mtbh.2m", 0x1000000, 0x800000, CRC(82582776) SHA1(7c790d09bac660ea1c62da3ffb21ab43f2461594) )
- ROM_LOAD16_BYTE( "tss1mtbl.2f", 0x1000001, 0x800000, CRC(e648bea4) SHA1(3803d03e72b25fbcc124d5b25066d25629b76b94) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "tss1cgll.4m", 0x0000000, 0x800000, CRC(18433aaa) SHA1(08539beb2e66ec4e41062621fc098b121c669546) )
- ROM_LOAD( "tss1cglm.4k", 0x0800000, 0x800000, CRC(669974c2) SHA1(cfebe199631e38f547b38fcd35f1645b74e8dd0a) )
- ROM_LOAD( "tss1cgum.4j", 0x1000000, 0x800000, CRC(c22739e1) SHA1(8671ee047bb248033656c50befd1c35e5e478e1a) )
- ROM_LOAD( "tss1cguu.4f", 0x1800000, 0x800000, CRC(76924e04) SHA1(751065d6ce658cbbcd88f854f6937ebd2204ec68) )
-
- ROM_REGION16_LE( 0x400000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "tss1ccrl.7f", 0x000000, 0x400000, CRC(3a325fe7) SHA1(882735dce7aeb36f9e88a983498360f5de901e9d) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "tss1ccrh.7e", 0x000000, 0x200000, CRC(f998de1a) SHA1(371f540f505608297c5ffcfb623b983ca8310afb) )
-
- ROM_REGION32_BE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "tss1pt0h.7a", 0x0000000, 0x400000, CRC(cdbe0ba8) SHA1(f8c6da31654c0a2a8024888ffb7fc1c783b2d629) )
- ROM_LOAD32_WORD_SWAP( "tss1pt0l.7c", 0x0000002, 0x400000, CRC(896f0fb4) SHA1(bdfa99eb21ce4fc8021f9d95a5558a34f9942c57) )
- ROM_LOAD32_WORD_SWAP( "tss1pt1h.5a", 0x0800000, 0x400000, CRC(63647596) SHA1(833412be8f61686bd7e06c2738df740e0e585d0f) )
- ROM_LOAD32_WORD_SWAP( "tss1pt1l.5c", 0x0800002, 0x400000, CRC(5a09921f) SHA1(c23885708c7adf0b81c2c9346e21b869634a5b35) )
- ROM_LOAD32_WORD_SWAP( "tss1pt2h.4a", 0x1000000, 0x400000, CRC(9b06e22d) SHA1(cff5ed098112a4f0a2bc8937e226f50066e605b1) )
- ROM_LOAD32_WORD_SWAP( "tss1pt2l.4c", 0x1000002, 0x400000, CRC(4b230d79) SHA1(794cee0a19993e90913f58507c53224f361e9663) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "tss1wavel.2c", 0x000000, 0x800000, CRC(deaead26) SHA1(72dac0c3f41d4c3c290f9eb1b50236ae3040a472) )
- ROM_LOAD( "tss1waveh.2a", 0x800000, 0x800000, CRC(5c8758b4) SHA1(b85c8f6869900224ef83a2340b17f5bbb2801af9) )
-ROM_END
-
-
-ROM_START( timecrs2v2b )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "tss2verb.2", 0x000000, 0x200000, CRC(fb129049) SHA1(c975ea022b3a2a249a6ab60e2e0358f9dc507775) )
- ROM_LOAD16_BYTE( "tss2verb.1", 0x000001, 0x200000, CRC(2d6a1d3e) SHA1(2b6bc54427c1ae2fcdb57a33b2b2b00bd2065109) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "tss1vera.3", 0x000000, 0x080000, CRC(41e41994) SHA1(eabc1a307c329070bfc6486cb68169c94ff8a162) ) /* Flash ROM type 29F400TC - Common code throughout all versions */
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */
- ROM_LOAD( "tssioprog.ic3", 0x000000, 0x040000, CRC(edad4538) SHA1(1330189184a636328d956c0e435f8d9ad2e96a80) )
-
- ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data ROMs */
- ROM_LOAD16_BYTE( "tss1mtah.2j", 0x0000000, 0x800000, CRC(697c26ed) SHA1(72f6f69e89496ba0c6183b35c3bde71f5a3c721f) )
- ROM_LOAD16_BYTE( "tss1mtal.2h", 0x0000001, 0x800000, CRC(bfc79190) SHA1(04bda00c4cc5660d27af4f3b0ee3550dea8d3805) )
- ROM_LOAD16_BYTE( "tss1mtbh.2m", 0x1000000, 0x800000, CRC(82582776) SHA1(7c790d09bac660ea1c62da3ffb21ab43f2461594) )
- ROM_LOAD16_BYTE( "tss1mtbl.2f", 0x1000001, 0x800000, CRC(e648bea4) SHA1(3803d03e72b25fbcc124d5b25066d25629b76b94) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "tss1cgll.4m", 0x0000000, 0x800000, CRC(18433aaa) SHA1(08539beb2e66ec4e41062621fc098b121c669546) )
- ROM_LOAD( "tss1cglm.4k", 0x0800000, 0x800000, CRC(669974c2) SHA1(cfebe199631e38f547b38fcd35f1645b74e8dd0a) )
- ROM_LOAD( "tss1cgum.4j", 0x1000000, 0x800000, CRC(c22739e1) SHA1(8671ee047bb248033656c50befd1c35e5e478e1a) )
- ROM_LOAD( "tss1cguu.4f", 0x1800000, 0x800000, CRC(76924e04) SHA1(751065d6ce658cbbcd88f854f6937ebd2204ec68) )
-
- ROM_REGION16_LE( 0x400000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "tss1ccrl.7f", 0x000000, 0x400000, CRC(3a325fe7) SHA1(882735dce7aeb36f9e88a983498360f5de901e9d) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "tss1ccrh.7e", 0x000000, 0x200000, CRC(f998de1a) SHA1(371f540f505608297c5ffcfb623b983ca8310afb) )
-
- ROM_REGION32_BE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "tss1pt0h.7a", 0x0000000, 0x400000, CRC(cdbe0ba8) SHA1(f8c6da31654c0a2a8024888ffb7fc1c783b2d629) )
- ROM_LOAD32_WORD_SWAP( "tss1pt0l.7c", 0x0000002, 0x400000, CRC(896f0fb4) SHA1(bdfa99eb21ce4fc8021f9d95a5558a34f9942c57) )
- ROM_LOAD32_WORD_SWAP( "tss1pt1h.5a", 0x0800000, 0x400000, CRC(63647596) SHA1(833412be8f61686bd7e06c2738df740e0e585d0f) )
- ROM_LOAD32_WORD_SWAP( "tss1pt1l.5c", 0x0800002, 0x400000, CRC(5a09921f) SHA1(c23885708c7adf0b81c2c9346e21b869634a5b35) )
- ROM_LOAD32_WORD_SWAP( "tss1pt2h.4a", 0x1000000, 0x400000, CRC(9b06e22d) SHA1(cff5ed098112a4f0a2bc8937e226f50066e605b1) )
- ROM_LOAD32_WORD_SWAP( "tss1pt2l.4c", 0x1000002, 0x400000, CRC(4b230d79) SHA1(794cee0a19993e90913f58507c53224f361e9663) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "tss1wavel.2c", 0x000000, 0x800000, CRC(deaead26) SHA1(72dac0c3f41d4c3c290f9eb1b50236ae3040a472) )
- ROM_LOAD( "tss1waveh.2a", 0x800000, 0x800000, CRC(5c8758b4) SHA1(b85c8f6869900224ef83a2340b17f5bbb2801af9) )
-ROM_END
-
-
-ROM_START( timecrs2v1b )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "tss1verb.2", 0x000000, 0x200000, CRC(10ebcb71) SHA1(9aeb9bf70f8a5949927ed84490b9212b19fe57ab) ) /* Flash ROM type 29F016A */
- ROM_LOAD16_BYTE( "tss1verb.1", 0x000001, 0x200000, CRC(4f9a38ef) SHA1(7e38dae63b68f7ab43355b22247938d6e8f43dee) ) /* Flash ROM type 29F016A */
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "tss1vera.3", 0x000000, 0x080000, CRC(41e41994) SHA1(eabc1a307c329070bfc6486cb68169c94ff8a162) ) /* Flash ROM type 29F400TC - Common code throughout all versions */
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */
- ROM_LOAD( "tssioprog.ic3", 0x000000, 0x040000, CRC(edad4538) SHA1(1330189184a636328d956c0e435f8d9ad2e96a80) )
-
- ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data ROMs */
- ROM_LOAD16_BYTE( "tss1mtah.2j", 0x0000000, 0x800000, CRC(697c26ed) SHA1(72f6f69e89496ba0c6183b35c3bde71f5a3c721f) )
- ROM_LOAD16_BYTE( "tss1mtal.2h", 0x0000001, 0x800000, CRC(bfc79190) SHA1(04bda00c4cc5660d27af4f3b0ee3550dea8d3805) )
- ROM_LOAD16_BYTE( "tss1mtbh.2m", 0x1000000, 0x800000, CRC(82582776) SHA1(7c790d09bac660ea1c62da3ffb21ab43f2461594) )
- ROM_LOAD16_BYTE( "tss1mtbl.2f", 0x1000001, 0x800000, CRC(e648bea4) SHA1(3803d03e72b25fbcc124d5b25066d25629b76b94) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "tss1cgll.4m", 0x0000000, 0x800000, CRC(18433aaa) SHA1(08539beb2e66ec4e41062621fc098b121c669546) )
- ROM_LOAD( "tss1cglm.4k", 0x0800000, 0x800000, CRC(669974c2) SHA1(cfebe199631e38f547b38fcd35f1645b74e8dd0a) )
- ROM_LOAD( "tss1cgum.4j", 0x1000000, 0x800000, CRC(c22739e1) SHA1(8671ee047bb248033656c50befd1c35e5e478e1a) )
- ROM_LOAD( "tss1cguu.4f", 0x1800000, 0x800000, CRC(76924e04) SHA1(751065d6ce658cbbcd88f854f6937ebd2204ec68) )
-
- ROM_REGION16_LE( 0x400000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "tss1ccrl.7f", 0x000000, 0x400000, CRC(3a325fe7) SHA1(882735dce7aeb36f9e88a983498360f5de901e9d) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "tss1ccrh.7e", 0x000000, 0x200000, CRC(f998de1a) SHA1(371f540f505608297c5ffcfb623b983ca8310afb) )
-
- ROM_REGION32_BE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "tss1pt0h.7a", 0x0000000, 0x400000, CRC(cdbe0ba8) SHA1(f8c6da31654c0a2a8024888ffb7fc1c783b2d629) )
- ROM_LOAD32_WORD_SWAP( "tss1pt0l.7c", 0x0000002, 0x400000, CRC(896f0fb4) SHA1(bdfa99eb21ce4fc8021f9d95a5558a34f9942c57) )
- ROM_LOAD32_WORD_SWAP( "tss1pt1h.5a", 0x0800000, 0x400000, CRC(63647596) SHA1(833412be8f61686bd7e06c2738df740e0e585d0f) )
- ROM_LOAD32_WORD_SWAP( "tss1pt1l.5c", 0x0800002, 0x400000, CRC(5a09921f) SHA1(c23885708c7adf0b81c2c9346e21b869634a5b35) )
- ROM_LOAD32_WORD_SWAP( "tss1pt2h.4a", 0x1000000, 0x400000, CRC(9b06e22d) SHA1(cff5ed098112a4f0a2bc8937e226f50066e605b1) )
- ROM_LOAD32_WORD_SWAP( "tss1pt2l.4c", 0x1000002, 0x400000, CRC(4b230d79) SHA1(794cee0a19993e90913f58507c53224f361e9663) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "tss1wavel.2c", 0x000000, 0x800000, CRC(deaead26) SHA1(72dac0c3f41d4c3c290f9eb1b50236ae3040a472) )
- ROM_LOAD( "tss1waveh.2a", 0x800000, 0x800000, CRC(5c8758b4) SHA1(b85c8f6869900224ef83a2340b17f5bbb2801af9) )
-ROM_END
-
-
-ROM_START( timecrs2v4a )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "tss4vera.2", 0x000000, 0x200000, CRC(c84edd3b) SHA1(0b577a8ef6e74afa991dd81c2db19041787724da) )
- ROM_LOAD16_BYTE( "tss4vera.1", 0x000001, 0x200000, CRC(26f57c83) SHA1(c8983c26b7524a35257a242b66a9413eb354ca0d) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "tss1vera.3", 0x000000, 0x080000, CRC(41e41994) SHA1(eabc1a307c329070bfc6486cb68169c94ff8a162) ) /* Flash ROM type 29F400TC - Common code throughout all versions */
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */
- ROM_LOAD( "tssioprog.ic3", 0x000000, 0x040000, CRC(edad4538) SHA1(1330189184a636328d956c0e435f8d9ad2e96a80) )
-
- ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data ROMs */
- ROM_LOAD16_BYTE( "tss1mtah.2j", 0x0000000, 0x800000, CRC(697c26ed) SHA1(72f6f69e89496ba0c6183b35c3bde71f5a3c721f) )
- ROM_LOAD16_BYTE( "tss1mtal.2h", 0x0000001, 0x800000, CRC(bfc79190) SHA1(04bda00c4cc5660d27af4f3b0ee3550dea8d3805) )
- ROM_LOAD16_BYTE( "tss1mtbh.2m", 0x1000000, 0x800000, CRC(82582776) SHA1(7c790d09bac660ea1c62da3ffb21ab43f2461594) )
- ROM_LOAD16_BYTE( "tss1mtbl.2f", 0x1000001, 0x800000, CRC(e648bea4) SHA1(3803d03e72b25fbcc124d5b25066d25629b76b94) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "tss1cgll.4m", 0x0000000, 0x800000, CRC(18433aaa) SHA1(08539beb2e66ec4e41062621fc098b121c669546) )
- ROM_LOAD( "tss1cglm.4k", 0x0800000, 0x800000, CRC(669974c2) SHA1(cfebe199631e38f547b38fcd35f1645b74e8dd0a) )
- ROM_LOAD( "tss1cgum.4j", 0x1000000, 0x800000, CRC(c22739e1) SHA1(8671ee047bb248033656c50befd1c35e5e478e1a) )
- ROM_LOAD( "tss1cguu.4f", 0x1800000, 0x800000, CRC(76924e04) SHA1(751065d6ce658cbbcd88f854f6937ebd2204ec68) )
-
- ROM_REGION16_LE( 0x400000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "tss1ccrl.7f", 0x000000, 0x400000, CRC(3a325fe7) SHA1(882735dce7aeb36f9e88a983498360f5de901e9d) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "tss1ccrh.7e", 0x000000, 0x200000, CRC(f998de1a) SHA1(371f540f505608297c5ffcfb623b983ca8310afb) )
-
- ROM_REGION32_BE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "tss1pt0h.7a", 0x0000000, 0x400000, CRC(cdbe0ba8) SHA1(f8c6da31654c0a2a8024888ffb7fc1c783b2d629) )
- ROM_LOAD32_WORD_SWAP( "tss1pt0l.7c", 0x0000002, 0x400000, CRC(896f0fb4) SHA1(bdfa99eb21ce4fc8021f9d95a5558a34f9942c57) )
- ROM_LOAD32_WORD_SWAP( "tss1pt1h.5a", 0x0800000, 0x400000, CRC(63647596) SHA1(833412be8f61686bd7e06c2738df740e0e585d0f) )
- ROM_LOAD32_WORD_SWAP( "tss1pt1l.5c", 0x0800002, 0x400000, CRC(5a09921f) SHA1(c23885708c7adf0b81c2c9346e21b869634a5b35) )
- ROM_LOAD32_WORD_SWAP( "tss1pt2h.4a", 0x1000000, 0x400000, CRC(9b06e22d) SHA1(cff5ed098112a4f0a2bc8937e226f50066e605b1) )
- ROM_LOAD32_WORD_SWAP( "tss1pt2l.4c", 0x1000002, 0x400000, CRC(4b230d79) SHA1(794cee0a19993e90913f58507c53224f361e9663) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "tss1wavel.2c", 0x000000, 0x800000, CRC(deaead26) SHA1(72dac0c3f41d4c3c290f9eb1b50236ae3040a472) )
- ROM_LOAD( "tss1waveh.2a", 0x800000, 0x800000, CRC(5c8758b4) SHA1(b85c8f6869900224ef83a2340b17f5bbb2801af9) )
-ROM_END
-
-
-ROM_START( timecrs2v5a )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "tss5vera.2", 0x000000, 0x200000, CRC(71ef4821) SHA1(03999c2c3219725f8716b7d32efbf810b6401806) )
- ROM_LOAD16_BYTE( "tss5vera.1", 0x000001, 0x200000, CRC(8dfcdd76) SHA1(ba8b2e7070814a225205010ab44ca73628e2913c) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "tss5vera.3", 0x000000, 0x080000, CRC(41e41994) SHA1(eabc1a307c329070bfc6486cb68169c94ff8a162) ) /* Flash ROM type 29F400TC - Common code throughout all versions */
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */
- ROM_LOAD( "tssioprog.ic3", 0x000000, 0x040000, CRC(edad4538) SHA1(1330189184a636328d956c0e435f8d9ad2e96a80) )
-
- ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data ROMs */
- ROM_LOAD16_BYTE( "tss1mtah.2j", 0x0000000, 0x800000, CRC(697c26ed) SHA1(72f6f69e89496ba0c6183b35c3bde71f5a3c721f) )
- ROM_LOAD16_BYTE( "tss1mtal.2h", 0x0000001, 0x800000, CRC(bfc79190) SHA1(04bda00c4cc5660d27af4f3b0ee3550dea8d3805) )
- ROM_LOAD16_BYTE( "tss1mtbh.2m", 0x1000000, 0x800000, CRC(82582776) SHA1(7c790d09bac660ea1c62da3ffb21ab43f2461594) )
- ROM_LOAD16_BYTE( "tss1mtbl.2f", 0x1000001, 0x800000, CRC(e648bea4) SHA1(3803d03e72b25fbcc124d5b25066d25629b76b94) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "tss1cgll.4m", 0x0000000, 0x800000, CRC(18433aaa) SHA1(08539beb2e66ec4e41062621fc098b121c669546) )
- ROM_LOAD( "tss1cglm.4k", 0x0800000, 0x800000, CRC(669974c2) SHA1(cfebe199631e38f547b38fcd35f1645b74e8dd0a) )
- ROM_LOAD( "tss1cgum.4j", 0x1000000, 0x800000, CRC(c22739e1) SHA1(8671ee047bb248033656c50befd1c35e5e478e1a) )
- ROM_LOAD( "tss1cguu.4f", 0x1800000, 0x800000, CRC(76924e04) SHA1(751065d6ce658cbbcd88f854f6937ebd2204ec68) )
-
- ROM_REGION16_LE( 0x400000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "tss1ccrl.7f", 0x000000, 0x400000, CRC(3a325fe7) SHA1(882735dce7aeb36f9e88a983498360f5de901e9d) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "tss1ccrh.7e", 0x000000, 0x200000, CRC(f998de1a) SHA1(371f540f505608297c5ffcfb623b983ca8310afb) )
-
- ROM_REGION32_BE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "tss1pt0h.7a", 0x0000000, 0x400000, CRC(cdbe0ba8) SHA1(f8c6da31654c0a2a8024888ffb7fc1c783b2d629) )
- ROM_LOAD32_WORD_SWAP( "tss1pt0l.7c", 0x0000002, 0x400000, CRC(896f0fb4) SHA1(bdfa99eb21ce4fc8021f9d95a5558a34f9942c57) )
- ROM_LOAD32_WORD_SWAP( "tss1pt1h.5a", 0x0800000, 0x400000, CRC(63647596) SHA1(833412be8f61686bd7e06c2738df740e0e585d0f) )
- ROM_LOAD32_WORD_SWAP( "tss1pt1l.5c", 0x0800002, 0x400000, CRC(5a09921f) SHA1(c23885708c7adf0b81c2c9346e21b869634a5b35) )
- ROM_LOAD32_WORD_SWAP( "tss1pt2h.4a", 0x1000000, 0x400000, CRC(9b06e22d) SHA1(cff5ed098112a4f0a2bc8937e226f50066e605b1) )
- ROM_LOAD32_WORD_SWAP( "tss1pt2l.4c", 0x1000002, 0x400000, CRC(4b230d79) SHA1(794cee0a19993e90913f58507c53224f361e9663) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "tss1wavel.2c", 0x000000, 0x800000, CRC(deaead26) SHA1(72dac0c3f41d4c3c290f9eb1b50236ae3040a472) )
- ROM_LOAD( "tss1waveh.2a", 0x800000, 0x800000, CRC(5c8758b4) SHA1(b85c8f6869900224ef83a2340b17f5bbb2801af9) )
-ROM_END
-
-
-ROM_START( aking )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "ag1vera.ic2", 0x000000, 0x200000, CRC(dc98fefb) SHA1(d173c5c6d23f1dae61d448bb6fae27daca525221) )
- ROM_LOAD16_BYTE( "ag1vera.ic1", 0x000001, 0x200000, CRC(f1a08d5c) SHA1(f11bee1093b237067b84ddec8e1bca0b70fc6678) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "ag1vera.ic3", 0x000000, 0x080000, CRC(266ac71c) SHA1(648a64adc0e4a2cefd71c31a6a71359b6c196430) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board MB90F574 MCU code */
- ROM_LOAD( "fcaf10.bin", 0x000000, 0x040000, NO_DUMP ) // 256KB internal flash ROM
-
- ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data ROMs */
- ROM_LOAD16_BYTE( "ag1mtah.2j", 0x0000000, 0x800000, CRC(f2d8ca9d) SHA1(8158d13d74f2aae7c0d1238619ce1ad3a17d8047) )
- ROM_LOAD16_BYTE( "ag1mtal.2h", 0x0000001, 0x800000, CRC(7facbfd4) SHA1(c42988e274a1b4f40f4b4379e94653ef07429c58) )
- ROM_LOAD16_BYTE( "ag1mtbh.2m", 0x1000000, 0x800000, CRC(890bdb52) SHA1(a38f039187448ee328547582eab22813ce625615) )
- ROM_LOAD16_BYTE( "ag1mtbl.2f", 0x1000001, 0x800000, CRC(62d771c9) SHA1(69a47af1366d351157131472756fd05e0fdbf87f) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "ag1cgll.4m", 0x0000000, 0x800000, CRC(9db7e939) SHA1(7be8d6f6d1e236f2655784493bdf4f9869ecd6eb) )
- ROM_LOAD( "ag1cglm.4k", 0x0800000, 0x800000, CRC(17792dba) SHA1(367676870820e44b0092d5ff6d4ee4e80bbf91d2) )
- ROM_LOAD( "ag1cgum.4j", 0x1000000, 0x800000, CRC(5dfa863d) SHA1(a1cde62f00dd8b70538a8eba2aa7ec497cdcaa5c) )
- ROM_LOAD( "ag1cguu.4f", 0x1800000, 0x800000, CRC(86396786) SHA1(d20121eb7d595567cd3438c66ae4c07dbaaaaeb8) )
-
- ROM_REGION16_LE( 0x400000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "ag1ccrl.7f", 0x000000, 0x400000, CRC(86bbe1f9) SHA1(3d8484aadc48638ad2b6806118416ac69345e35a) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "ag1ccrh.7e", 0x000000, 0x200000, CRC(abe2aab1) SHA1(b43ddf9b0f4a7ac75dc16fa5b2ed86ac5a273a50) )
-
- ROM_REGION32_BE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "ag1pt0h.7a", 0x0000000, 0x400000, CRC(b5582ca7) SHA1(0e48b7e3595f9be4e9403a2db939ec140726a880) )
- ROM_LOAD32_WORD_SWAP( "ag1pt0l.7c", 0x0000002, 0x400000, CRC(10e7f54f) SHA1(caf1d28991a9d082b5ddc5def62586b09fa8aff2) )
- ROM_LOAD32_WORD_SWAP( "ag1pt1h.5a", 0x0800000, 0x400000, CRC(25e4776a) SHA1(31e7c9dd3aba01e425839a0ffe1eb0001ac16770) )
- ROM_LOAD32_WORD_SWAP( "ag1pt1l.5c", 0x0800002, 0x400000, CRC(5d3d7099) SHA1(d80d6b692c513945857bcd2c8cfc12b8ec0f3be5) )
- ROM_LOAD32_WORD_SWAP( "ag1pt2h.4a", 0x1000000, 0x400000, CRC(f0eb9012) SHA1(a867f09162e0b0a4eead0bd212df76ba1abb2c19) )
- ROM_LOAD32_WORD_SWAP( "ag1pt2l.4c", 0x1000002, 0x400000, CRC(bf92c054) SHA1(9d676c3bb63bf29d7b18fe5d7e6912a922f06350) )
- ROM_LOAD32_WORD_SWAP( "ag1pt3h.3a", 0x1800000, 0x400000, CRC(e11a12ce) SHA1(4ee78a4d7ada9c26734132baac47b0cbede3d4fd) )
- ROM_LOAD32_WORD_SWAP( "ag1pt3l.3c", 0x1800002, 0x400000, CRC(04b475db) SHA1(3ea28e51185dc2c2bfa50a87031580524eaacc4a) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "ag1wavel.2c", 0x000000, 0x800000, CRC(d7fefbd4) SHA1(2cf31661feb6aef40621621897be8e0bc248c1d9) )
- ROM_LOAD( "ag1waveh.2a", 0x800000, 0x800000, CRC(37a61daa) SHA1(34632809f49975d9dc4c76b09ef896df0bc03a52) )
-ROM_END
-
-
-ROM_START( 500gp )
- /* r4650-generic-xrom-generic: NMON 1.0.8-sys23-19990105 P for SYSTEM23 P1 */
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "5gp3verc.2", 0x000000, 0x200000, CRC(e2d43468) SHA1(5e861dd223c7fa177febed9803ac353cba18e19d) )
- ROM_LOAD16_BYTE( "5gp3verc.1", 0x000001, 0x200000, CRC(f6efc94a) SHA1(785eee2bec5080d4e8ef836f28d446328c942b0e) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "5gp3verc.3", 0x000000, 0x080000, CRC(b323abdf) SHA1(8962e39b48a7074a2d492afb5db3f5f3e5ae2389) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board MB90F574 MCU code */
- ROM_LOAD( "fcaf10.bin", 0x000000, 0x040000, NO_DUMP ) // 256KB internal flash ROM
-
- ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data ROMs */
- ROM_LOAD16_BYTE( "5gp1mtah.2j", 0x0000000, 0x800000, CRC(246e4b7a) SHA1(75743294b8f48bffb84f062febfbc02230d49ce9) )
- ROM_LOAD16_BYTE( "5gp1mtal.2h", 0x0000001, 0x800000, CRC(1bb00c7b) SHA1(922be45d57330c31853b2dc1642c589952b09188) )
- ROM_LOAD16_BYTE( "5gp1mtbh.2m", 0x1000000, 0x800000, CRC(352360e8) SHA1(d621dfac3385059c52d215f6623901589a8658a3) )
- ROM_LOAD16_BYTE( "5gp1mtbl.2f", 0x1000001, 0x800000, CRC(66640606) SHA1(c69a0219748241c49315d7464f8156f8068e9cf5) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "5gp1cgll.4m", 0x0000000, 0x800000, CRC(0cc5bf35) SHA1(b75510a94fa6b6d2ed43566e6e84c7ae62f68194) )
- ROM_LOAD( "5gp1cglm.4k", 0x0800000, 0x800000, CRC(31557d48) SHA1(b85c3db20b101ba6bdd77487af67c3324bea29d5) )
- ROM_LOAD( "5gp1cgum.4j", 0x1000000, 0x800000, CRC(0265b701) SHA1(497a4c33311d3bb315100a78400cf2fa726f1483) )
- ROM_LOAD( "5gp1cguu.4f", 0x1800000, 0x800000, CRC(c411163b) SHA1(ae644d62357b8b806b160774043e41908fba5d05) )
-
- ROM_REGION16_LE( 0x400000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "5gp1ccrl.7f", 0x000000, 0x400000, CRC(e7c77e1f) SHA1(0231ddbe2afb880099dfe2657c41236c74c730bb) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "5gp1ccrh.7e", 0x000000, 0x200000, CRC(b2eba764) SHA1(5e09d1171f0afdeb9ed7337df1dbc924f23d3a0b) )
-
- ROM_REGION32_BE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "5gp1pt0h.7a", 0x0000000, 0x400000, CRC(5746a8cd) SHA1(e70fc596ab9360f474f716c73d76cb9851370c76) )
- ROM_LOAD32_WORD_SWAP( "5gp1pt0l.7c", 0x0000002, 0x400000, CRC(a0ece0a1) SHA1(b7aab2d78e1525f865214c7de387ccd585de5d34) )
- ROM_LOAD32_WORD_SWAP( "5gp1pt1h.5a", 0x0800000, 0x400000, CRC(b1feb5df) SHA1(45db259215511ac3e472895956f70204d4575482) )
- ROM_LOAD32_WORD_SWAP( "5gp1pt1l.5c", 0x0800002, 0x400000, CRC(80b25ad2) SHA1(e9a03fe5bb4ce925f7218ab426ed2a1ca1a26a62) )
- ROM_LOAD32_WORD_SWAP( "5gp1pt2h.4a", 0x1000000, 0x400000, CRC(9a693771) SHA1(c988e04cd91c3b7e75b91376fd73be4a7da543e7) )
- ROM_LOAD32_WORD_SWAP( "5gp1pt2l.4c", 0x1000002, 0x400000, CRC(9289dbeb) SHA1(ec546ad3b1c90609591e599c760c70049ba3b581) )
- ROM_LOAD32_WORD_SWAP( "5gp1pt3h.3a", 0x1800000, 0x400000, CRC(26eaa400) SHA1(0157b76fffe81b40eb970e84c98398807ced92c4) )
- ROM_LOAD32_WORD_SWAP( "5gp1pt3l.3c", 0x1800002, 0x400000, CRC(480b120d) SHA1(6c703550faa412095d9633cf508050614e15fbae) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "5gp1wavel.2c", 0x000000, 0x800000, CRC(aa634cc2) SHA1(e96f5c682039bc6ef22bf90e98f4da78486bd2b1) )
- ROM_LOAD( "5gp1waveh.2a", 0x800000, 0x800000, CRC(1e3523e8) SHA1(cb3d0d389fcbfb728fad29cfc36ef654d28d553a) )
-ROM_END
-
-
-ROM_START( raceon )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "ro2vera.ic2", 0x000000, 0x200000, CRC(08b94548) SHA1(6363f1724540c2671555bc5bb11e22611614baf5) )
- ROM_LOAD16_BYTE( "ro2vera.ic1", 0x000001, 0x200000, CRC(4270884b) SHA1(82e4d4376907ee5dbabe047b9d2279f08cff5f71) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "ro2vera.ic3", 0x000000, 0x080000, CRC(a763ecb7) SHA1(6b1ab63bb56342abbf7ddd7d17d413779fbafce1) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */
- ROM_LOAD( "asc5_io-a.ic14", 0x000000, 0x020000, CRC(5964767f) SHA1(320db5e78ae23c5f94e368432d51573b409995db) )
-
- ROM_REGION( 0x80000, "ffb", 0 ) /* STR steering force-feedback board code */
- ROM_LOAD( "ro1_str-0a.ic16", 0x000000, 0x080000, CRC(27d39e1f) SHA1(6161cbb27c964ffab1db3b3c1f073ec514876e61) )
-
- ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data ROMs */
- ROM_LOAD16_BYTE( "ro1mtah.2j", 0x000000, 0x800000, CRC(216abfb1) SHA1(8db7b17dc6441adc7a4ec8b941d5a84d73c735d6) )
- ROM_LOAD16_BYTE( "ro1mtal.2h", 0x000001, 0x800000, CRC(17646306) SHA1(8d1af777f8e884b650efee8e4c26e032e1c088b7) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "ro1cgll.4m", 0x0000000, 0x800000, CRC(12c64936) SHA1(14a0d3d336f2fbe7992eedb3900748763368bc6b) )
- ROM_LOAD( "ro1cglm.4k", 0x0800000, 0x800000, CRC(7e8bb4fc) SHA1(46a7940989576239a720fde8ec4e4b623b0b6fe6) )
- ROM_LOAD( "ro1cgum.4j", 0x1000000, 0x800000, CRC(b9767735) SHA1(87fec452998a782db2cf00d369149b200a00d163) )
- ROM_LOAD( "ro1cguu.4f", 0x1800000, 0x800000, CRC(8fef8bd4) SHA1(6870590f585dc8d87ebe5181da870715c9c4fee3) )
-
- ROM_REGION16_LE( 0x400000, "textilemapl", 0 ) /* texture tilemap 0-15*/
- ROM_LOAD( "ro1ccrl.7f", 0x000000, 0x400000, CRC(fe50e424) SHA1(8317c998db687e1c40398e0005a037dcded19c25) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "ro1ccrh.7e", 0x000000, 0x200000, CRC(1c958de2) SHA1(4893350999d5d377e68b9577187828de7a4c77c2) )
-
- ROM_REGION32_LE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "ro1pt0h.7a", 0x0000000, 0x400000, CRC(6ef742ab) SHA1(500ce413b2463a555237de7bcc9627d1082c9b52) )
- ROM_LOAD32_WORD_SWAP( "ro1pt0l.7c", 0x0000002, 0x400000, CRC(f4b88bd0) SHA1(cc642d959645730b03ef01e6dbb5d0077bce7163) )
- ROM_LOAD32_WORD_SWAP( "ro1pt1h.5a", 0x0800000, 0x400000, CRC(428bf573) SHA1(6be159e1cf7ef38639610c347fd2322ab9911a70) )
- ROM_LOAD32_WORD_SWAP( "ro1pt1l.5c", 0x0800002, 0x400000, CRC(f3df1d13) SHA1(9f96c99bd3537940a532d3dccb69a1c7d8c6be63) )
- ROM_LOAD32_WORD_SWAP( "ro1pt2h.4a", 0x1000000, 0x400000, CRC(e1abdbc9) SHA1(91827af01cb83f4422d7329c8eea52bb57d7d57e) )
- ROM_LOAD32_WORD_SWAP( "ro1pt2l.4c", 0x1000002, 0x400000, CRC(c64f5cdc) SHA1(e7261f3a56718f304127cc85c08d0b32525dc1cd) )
- ROM_LOAD32_WORD_SWAP( "ro1pt3h.3a", 0x1800000, 0x400000, CRC(ef4685f6) SHA1(930037cac4aae9892278aa322844d03c773c70f7) )
- ROM_LOAD32_WORD_SWAP( "ro1pt3l.3c", 0x1800002, 0x400000, CRC(07d27009) SHA1(770001bee9d7ace337db8a42bf377678b2b5d5fb) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "ro1wavel.2c", 0x000000, 0x800000, CRC(c6aca840) SHA1(09a021459b6326fe161ffcee36376648a5bf0e00) )
- ROM_LOAD( "ro2waveh.2a", 0x800000, 0x800000, CRC(ceecbf0d) SHA1(f0a5e57c04b661685833b209bd5e072666068391) )
-
- ROM_REGION( 0x800000, "spares", 0 ) /* duplicate ROMs for the second texel pipeline on the PCB, not used for emulation */
- ROM_LOAD( "ro1ccrl.7m", 0x000000, 0x400000, CRC(fe50e424) SHA1(8317c998db687e1c40398e0005a037dcded19c25) )
- ROM_LOAD( "ro1ccrh.7k", 0x000000, 0x200000, CRC(1c958de2) SHA1(4893350999d5d377e68b9577187828de7a4c77c2) )
- ROM_LOAD( "ro1cgll.5m", 0x000000, 0x800000, CRC(12c64936) SHA1(14a0d3d336f2fbe7992eedb3900748763368bc6b) )
- ROM_LOAD( "ro1cglm.5k", 0x000000, 0x800000, CRC(7e8bb4fc) SHA1(46a7940989576239a720fde8ec4e4b623b0b6fe6) )
- ROM_LOAD( "ro1cgum.5j", 0x000000, 0x800000, CRC(b9767735) SHA1(87fec452998a782db2cf00d369149b200a00d163) )
- ROM_LOAD( "ro1cguu.5f", 0x000000, 0x800000, CRC(8fef8bd4) SHA1(6870590f585dc8d87ebe5181da870715c9c4fee3) )
-ROM_END
-
-
-ROM_START( finfurl2 )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "29f016.ic2", 0x000000, 0x200000, CRC(13cbc545) SHA1(3e67a7bfbb1c1374e8e3996a0c09e4861b0dca14) )
- ROM_LOAD16_BYTE( "29f016.ic1", 0x000001, 0x200000, CRC(5b04e4f2) SHA1(8099fc3deab9ed14a2484a774666fbd928330de8) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "m29f400.ic3", 0x000000, 0x080000, CRC(9fd69bbd) SHA1(53a9bf505de70495dcccc43fdc722b3381aad97c) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */
- ROM_LOAD( "asca-3a.ic14", 0x000000, 0x040000, CRC(8e9266e5) SHA1(ffa8782ca641d71d57df23ed1c5911db05d3df97) )
-
- ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data ROMs */
- ROM_LOAD16_BYTE( "ffs1mtah.2j", 0x0000000, 0x800000, CRC(f336d81d) SHA1(a9177091e1412dea1b6ea6c53530ae31361b32d0) )
- ROM_LOAD16_BYTE( "ffs1mtal.2h", 0x0000001, 0x800000, CRC(98730ad5) SHA1(9ba276ad88ec8730edbacab80cdacc34a99593e4) )
- ROM_LOAD16_BYTE( "ffs1mtbh.2m", 0x1000000, 0x800000, CRC(0f42c93b) SHA1(26b313fc5c33afb0a1ee42243486e38f052c95c2) )
- ROM_LOAD16_BYTE( "ffs1mtbl.2f", 0x1000001, 0x800000, CRC(0abc9e50) SHA1(be5e5e2b637811c59804ef9442c6da5a5a1315e2) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "ffs1cgll.4m", 0x0000000, 0x800000, CRC(171bba76) SHA1(4a63a1f34de8f341a0ef9b499a21e8fec758e1cd) )
- ROM_LOAD( "ffs1cglm.4k", 0x0800000, 0x800000, CRC(48acf207) SHA1(ea902efdd94aba34dadb20762219d2d25441d199) )
- ROM_LOAD( "ffs1cgum.4j", 0x1000000, 0x800000, CRC(77447199) SHA1(1eeae30b3dd1ac467bdbbdfe4be36ca0f0816496) )
- ROM_LOAD( "ffs1cguu.4f", 0x1800000, 0x800000, CRC(52c0a19f) SHA1(e6b4b90ff88da09cb2e653e450e7ae66942a719e) )
-
- ROM_REGION16_LE( 0x200000, "textilemapl", 0 ) /* texture tilemap 0-15*/
- ROM_LOAD( "ffs1ccrl.7f", 0x000000, 0x200000, CRC(ffbcfec1) SHA1(9ab25f1543da4b72784eec93985abaa2e1dafc83) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "ffs1ccrh.7e", 0x000000, 0x200000, CRC(8be4aeb4) SHA1(ec344f6fba42092083e737e436451f5d7be12c15) )
-
- ROM_REGION32_LE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "ffs1pt0h.7a", 0x0000000, 0x400000, CRC(79b9b019) SHA1(ca2bbabd949fec91001a30b63f7343520028cde0) )
- ROM_LOAD32_WORD_SWAP( "ffs1pt0l.7c", 0x0000002, 0x400000, CRC(383cbfba) SHA1(0784ac2d709bee6653c95f80fedf7f98ca79357f) )
- ROM_LOAD32_WORD_SWAP( "ffs1pt1h.5a", 0x0800000, 0x400000, CRC(2dba59d0) SHA1(34d4c415b5635338511ff3578eb3c00e2b6cd7d4) )
- ROM_LOAD32_WORD_SWAP( "ffs1pt1l.5c", 0x0800002, 0x400000, CRC(ba0fff5b) SHA1(d5a6db4de60657d46228e85ed09ed7f0ecbc7975) )
- ROM_LOAD32_WORD_SWAP( "ffs1pt2h.4a", 0x1000000, 0x400000, CRC(26ea01e8) SHA1(9af096c99e6835e21b1b78dfce07040f50f8c922) )
- ROM_LOAD32_WORD_SWAP( "ffs1pt2l.4c", 0x1000002, 0x400000, CRC(c5199c1b) SHA1(8f1a70c8edb2791a099b4911353af6250a5d0e8a) )
- ROM_LOAD32_WORD_SWAP( "ffs1pt3h.3a", 0x1800000, 0x400000, CRC(48226e9f) SHA1(f099b2929d49903a33b4dab80972c3ce0ddb6ca2) )
- ROM_LOAD32_WORD_SWAP( "ffs1pt3l.3c", 0x1800002, 0x400000, CRC(2381611a) SHA1(a3d948bf910dcfd9f47c65c56b9920f58c42fed5) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "ffs1wavel.2c", 0x000000, 0x800000, CRC(67ba16cf) SHA1(00b38617c2185b9a3bf279962ad0c21a7287256f) )
- ROM_LOAD( "ffs1waveh.2a", 0x800000, 0x800000, CRC(178e8bd3) SHA1(8ab1a97003914f70b09e96c5924f3a839fe634c7) )
-ROM_END
-
-
-ROM_START( finfurl2j )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "29f016_jap1.ic2", 0x000000, 0x200000, CRC(0215125d) SHA1(a99f601441c152b0b00f4811e5752c71897b1ed4) )
- ROM_LOAD16_BYTE( "29f016_jap1.ic1", 0x000001, 0x200000, CRC(38c9ae96) SHA1(b50afc7276662267ff6460f82d0e5e8b00b341ea) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "m29f400.ic3", 0x000000, 0x080000, CRC(9fd69bbd) SHA1(53a9bf505de70495dcccc43fdc722b3381aad97c) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */
- ROM_LOAD( "asca-3a.ic14", 0x000000, 0x040000, CRC(8e9266e5) SHA1(ffa8782ca641d71d57df23ed1c5911db05d3df97) )
-
- ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data ROMs */
- ROM_LOAD16_BYTE( "ffs1mtah.2j", 0x0000000, 0x800000, CRC(f336d81d) SHA1(a9177091e1412dea1b6ea6c53530ae31361b32d0) )
- ROM_LOAD16_BYTE( "ffs1mtal.2h", 0x0000001, 0x800000, CRC(98730ad5) SHA1(9ba276ad88ec8730edbacab80cdacc34a99593e4) )
- ROM_LOAD16_BYTE( "ffs1mtbh.2m", 0x1000000, 0x800000, CRC(0f42c93b) SHA1(26b313fc5c33afb0a1ee42243486e38f052c95c2) )
- ROM_LOAD16_BYTE( "ffs1mtbl.2f", 0x1000001, 0x800000, CRC(0abc9e50) SHA1(be5e5e2b637811c59804ef9442c6da5a5a1315e2) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "ffs1cgll.4m", 0x0000000, 0x800000, CRC(171bba76) SHA1(4a63a1f34de8f341a0ef9b499a21e8fec758e1cd) )
- ROM_LOAD( "ffs1cglm.4k", 0x0800000, 0x800000, CRC(48acf207) SHA1(ea902efdd94aba34dadb20762219d2d25441d199) )
- ROM_LOAD( "ffs1cgum.4j", 0x1000000, 0x800000, CRC(77447199) SHA1(1eeae30b3dd1ac467bdbbdfe4be36ca0f0816496) )
- ROM_LOAD( "ffs1cguu.4f", 0x1800000, 0x800000, CRC(52c0a19f) SHA1(e6b4b90ff88da09cb2e653e450e7ae66942a719e) )
-
- ROM_REGION16_LE( 0x200000, "textilemapl", 0 ) /* texture tilemap 0-15*/
- ROM_LOAD( "ffs1ccrl.7f", 0x000000, 0x200000, CRC(ffbcfec1) SHA1(9ab25f1543da4b72784eec93985abaa2e1dafc83) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "ffs1ccrh.7e", 0x000000, 0x200000, CRC(8be4aeb4) SHA1(ec344f6fba42092083e737e436451f5d7be12c15) )
-
- ROM_REGION32_LE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "ffs1pt0h.7a", 0x0000000, 0x400000, CRC(79b9b019) SHA1(ca2bbabd949fec91001a30b63f7343520028cde0) )
- ROM_LOAD32_WORD_SWAP( "ffs1pt0l.7c", 0x0000002, 0x400000, CRC(383cbfba) SHA1(0784ac2d709bee6653c95f80fedf7f98ca79357f) )
- ROM_LOAD32_WORD_SWAP( "ffs1pt1h.5a", 0x0800000, 0x400000, CRC(2dba59d0) SHA1(34d4c415b5635338511ff3578eb3c00e2b6cd7d4) )
- ROM_LOAD32_WORD_SWAP( "ffs1pt1l.5c", 0x0800002, 0x400000, CRC(ba0fff5b) SHA1(d5a6db4de60657d46228e85ed09ed7f0ecbc7975) )
- ROM_LOAD32_WORD_SWAP( "ffs1pt2h.4a", 0x1000000, 0x400000, CRC(26ea01e8) SHA1(9af096c99e6835e21b1b78dfce07040f50f8c922) )
- ROM_LOAD32_WORD_SWAP( "ffs1pt2l.4c", 0x1000002, 0x400000, CRC(c5199c1b) SHA1(8f1a70c8edb2791a099b4911353af6250a5d0e8a) )
- ROM_LOAD32_WORD_SWAP( "ffs1pt3h.3a", 0x1800000, 0x400000, CRC(48226e9f) SHA1(f099b2929d49903a33b4dab80972c3ce0ddb6ca2) )
- ROM_LOAD32_WORD_SWAP( "ffs1pt3l.3c", 0x1800002, 0x400000, CRC(2381611a) SHA1(a3d948bf910dcfd9f47c65c56b9920f58c42fed5) )
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "ffs1wavel.2c", 0x000000, 0x800000, CRC(67ba16cf) SHA1(00b38617c2185b9a3bf279962ad0c21a7287256f) )
- ROM_LOAD( "ffs1waveh.2a", 0x800000, 0x800000, CRC(178e8bd3) SHA1(8ab1a97003914f70b09e96c5924f3a839fe634c7) )
-ROM_END
-
-
-ROM_START( panicprk )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "pnp2vera.ic2", 0x000000, 0x200000, CRC(cd528597) SHA1(cf390e78228eb10d5f50ff7e7e37063a2d87f469) )
- ROM_LOAD16_BYTE( "pnp2vera.ic1", 0x000001, 0x200000, CRC(80fea853) SHA1(b18003bde060ebb3c892a6d7fa4abf868cadc777) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "pnp1vera.ic3", 0x000000, 0x080000, CRC(fe4bc6f4) SHA1(2114dc4bc63d589e6c3b26a73dbc60924f3b1765) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */
- ROM_LOAD( "asca-3a.ic14", 0x000000, 0x040000, CRC(8e9266e5) SHA1(ffa8782ca641d71d57df23ed1c5911db05d3df97) )
-
- ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data ROMs */
- ROM_LOAD16_BYTE( "pnp1mtah.2j", 0x000000, 0x800000, CRC(37addddd) SHA1(3032989653304417df80606bc3fde6e9425d8cbb) )
- ROM_LOAD16_BYTE( "pnp1mtal.2h", 0x000001, 0x800000, CRC(6490faaa) SHA1(03443746009b434e5d4074ea6314910418907360) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "pnp1cgll.4m", 0x0000000, 0x800000, CRC(d03932cf) SHA1(49240e44923cc6e815e9457b6290fd18466658af) )
- ROM_LOAD( "pnp1cglm.5k", 0x0800000, 0x800000, CRC(abf4ccf2) SHA1(3848e26d0ba6c872bbc6d5e0eb23a9d4b34152d5) )
- ROM_LOAD( "pnp1cgum.4j", 0x1000000, 0x800000, CRC(206217ca) SHA1(9c095bba7764f3405c3fab10513b9b78981ec44d) )
- ROM_LOAD( "pnp1cguu.5f", 0x1800000, 0x800000, CRC(cd64f57f) SHA1(8780270298e0823db1acbbf79396788df0c3c19c) )
-
- ROM_REGION16_LE( 0x200000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "pnp1ccrl.7f", 0x000000, 0x200000, CRC(b7bc43c2) SHA1(f4b470540194486ca6822f438fc1d4700cfb2ab1) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "pnp1ccrh.7e", 0x000000, 0x200000, CRC(caaf1b73) SHA1(b436992817ab4e4dad05e7429eb102d4fb57fa6a) )
-
- ROM_REGION32_BE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "pnp1pt0h.7a", 0x000000, 0x400000, CRC(43fc2246) SHA1(301d321cd4a01ebd7ccfa6f295d6c3daf0a19efe) )
- ROM_LOAD32_WORD_SWAP( "pnp1pt0l.7c", 0x000002, 0x400000, CRC(26af5fa1) SHA1(12fcf98c2a59643e0fdfdd7186f9f16baf54a9cf) )
- ROM_LOAD32_WORD_SWAP( "pnp1pt1h.5a", 0x800000, 0x400000, CRC(1ff470c0) SHA1(ca8fad90743589744939d681b0ce94f368337b3f) )
- ROM_LOAD32_WORD_SWAP( "pnp1pt1l.5c", 0x800002, 0x400000, CRC(15c6f236) SHA1(e8c393359a91cdce6e9110a48c0a80708f8fc132) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "pnp1wavel.2c", 0x000000, 0x800000, CRC(35c6a9bd) SHA1(4b56fdc37525c15e57d93091e6609d6a6905fc5c) )
- ROM_LOAD( "pnp1waveh.2a", 0x800000, 0x800000, CRC(6fa1826a) SHA1(20a5af49e65ae2bc57c016b5cd9bafa5a5220d35) )
-
- ROM_REGION( 0x800000, "dups", 0 ) /* duplicate ROMs */
- ROM_LOAD( "pnp1cguu.4f", 0x000000, 0x800000, CRC(cd64f57f) SHA1(8780270298e0823db1acbbf79396788df0c3c19c) )
- ROM_LOAD( "pnp1cgum.5j", 0x000000, 0x800000, CRC(206217ca) SHA1(9c095bba7764f3405c3fab10513b9b78981ec44d) )
- ROM_LOAD( "pnp1cgll.5m", 0x000000, 0x800000, CRC(d03932cf) SHA1(49240e44923cc6e815e9457b6290fd18466658af) )
- ROM_LOAD( "pnp1cglm.4k", 0x000000, 0x800000, CRC(abf4ccf2) SHA1(3848e26d0ba6c872bbc6d5e0eb23a9d4b34152d5) )
- ROM_LOAD( "pnp1ccrl.7m", 0x000000, 0x200000, CRC(b7bc43c2) SHA1(f4b470540194486ca6822f438fc1d4700cfb2ab1) )
- ROM_LOAD( "pnp1ccrh.7k", 0x000000, 0x200000, CRC(caaf1b73) SHA1(b436992817ab4e4dad05e7429eb102d4fb57fa6a) )
-ROM_END
-
-
-ROM_START( panicprkj )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "pnp1verb.ic2", 0x000000, 0x200000, CRC(a46e34f8) SHA1(c84eb701a1e01e706dea515acaaf6d98ad53f453) )
- ROM_LOAD16_BYTE( "pnp1verb.ic1", 0x000001, 0x200000, CRC(4de52a64) SHA1(7edd974d52e17bcbdb029f718c06d603ed558d90) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "pnp1vera.ic3", 0x000000, 0x080000, CRC(fe4bc6f4) SHA1(2114dc4bc63d589e6c3b26a73dbc60924f3b1765) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */
- ROM_LOAD( "asca-3a.ic14", 0x000000, 0x040000, CRC(8e9266e5) SHA1(ffa8782ca641d71d57df23ed1c5911db05d3df97) )
-
- ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data ROMs */
- ROM_LOAD16_BYTE( "pnp1mtah.2j", 0x000000, 0x800000, CRC(37addddd) SHA1(3032989653304417df80606bc3fde6e9425d8cbb) )
- ROM_LOAD16_BYTE( "pnp1mtal.2h", 0x000001, 0x800000, CRC(6490faaa) SHA1(03443746009b434e5d4074ea6314910418907360) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "pnp1cgll.4m", 0x0000000, 0x800000, CRC(d03932cf) SHA1(49240e44923cc6e815e9457b6290fd18466658af) )
- ROM_LOAD( "pnp1cglm.5k", 0x0800000, 0x800000, CRC(abf4ccf2) SHA1(3848e26d0ba6c872bbc6d5e0eb23a9d4b34152d5) )
- ROM_LOAD( "pnp1cgum.4j", 0x1000000, 0x800000, CRC(206217ca) SHA1(9c095bba7764f3405c3fab10513b9b78981ec44d) )
- ROM_LOAD( "pnp1cguu.5f", 0x1800000, 0x800000, CRC(cd64f57f) SHA1(8780270298e0823db1acbbf79396788df0c3c19c) )
-
- ROM_REGION16_LE( 0x200000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "pnp1ccrl.7f", 0x000000, 0x200000, CRC(b7bc43c2) SHA1(f4b470540194486ca6822f438fc1d4700cfb2ab1) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "pnp1ccrh.7e", 0x000000, 0x200000, CRC(caaf1b73) SHA1(b436992817ab4e4dad05e7429eb102d4fb57fa6a) )
-
- ROM_REGION32_BE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "pnp1pt0h.7a", 0x000000, 0x400000, CRC(43fc2246) SHA1(301d321cd4a01ebd7ccfa6f295d6c3daf0a19efe) )
- ROM_LOAD32_WORD_SWAP( "pnp1pt0l.7c", 0x000002, 0x400000, CRC(26af5fa1) SHA1(12fcf98c2a59643e0fdfdd7186f9f16baf54a9cf) )
- ROM_LOAD32_WORD_SWAP( "pnp1pt1h.5a", 0x800000, 0x400000, CRC(1ff470c0) SHA1(ca8fad90743589744939d681b0ce94f368337b3f) )
- ROM_LOAD32_WORD_SWAP( "pnp1pt1l.5c", 0x800002, 0x400000, CRC(15c6f236) SHA1(e8c393359a91cdce6e9110a48c0a80708f8fc132) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "pnp1wavel.2c", 0x000000, 0x800000, CRC(35c6a9bd) SHA1(4b56fdc37525c15e57d93091e6609d6a6905fc5c) )
- ROM_LOAD( "pnp1waveh.2a", 0x800000, 0x800000, CRC(6fa1826a) SHA1(20a5af49e65ae2bc57c016b5cd9bafa5a5220d35) )
-
- ROM_REGION( 0x800000, "dups", 0 ) /* duplicate ROMs */
- ROM_LOAD( "pnp1cguu.4f", 0x000000, 0x800000, CRC(cd64f57f) SHA1(8780270298e0823db1acbbf79396788df0c3c19c) )
- ROM_LOAD( "pnp1cgum.5j", 0x000000, 0x800000, CRC(206217ca) SHA1(9c095bba7764f3405c3fab10513b9b78981ec44d) )
- ROM_LOAD( "pnp1cgll.5m", 0x000000, 0x800000, CRC(d03932cf) SHA1(49240e44923cc6e815e9457b6290fd18466658af) )
- ROM_LOAD( "pnp1cglm.4k", 0x000000, 0x800000, CRC(abf4ccf2) SHA1(3848e26d0ba6c872bbc6d5e0eb23a9d4b34152d5) )
- ROM_LOAD( "pnp1ccrl.7m", 0x000000, 0x200000, CRC(b7bc43c2) SHA1(f4b470540194486ca6822f438fc1d4700cfb2ab1) )
- ROM_LOAD( "pnp1ccrh.7k", 0x000000, 0x200000, CRC(caaf1b73) SHA1(b436992817ab4e4dad05e7429eb102d4fb57fa6a) )
-ROM_END
-
-
-ROM_START( panicprkj2 )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) // 4 megs for main R4650 code
- ROM_LOAD16_BYTE( "pnp1verb.ic2", 0x000000, 0x200000, CRC(59748d7d) SHA1(f7677ec9027439a7352c88494873861e78ae9a41) )
- ROM_LOAD16_BYTE( "pnp1verb.ic1", 0x000001, 0x200000, CRC(718ff346) SHA1(0f631fe32e864623455d9bc39cdfa80b34c6dbb0) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) // Hitachi H8/3002 MCU code
- ROM_LOAD16_WORD_SWAP( "pnp1vera.ic3", 0x000000, 0x080000, CRC(fe4bc6f4) SHA1(2114dc4bc63d589e6c3b26a73dbc60924f3b1765) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) // I/O board HD643334 H8/3334 MCU code
- ROM_LOAD( "asca-3a.ic14", 0x000000, 0x040000, CRC(8e9266e5) SHA1(ffa8782ca641d71d57df23ed1c5911db05d3df97) )
-
- ROM_REGION32_BE( 0x2000000, "data", 0 )
- ROM_LOAD16_BYTE( "pnp1mtah.2j", 0x000000, 0x800000, CRC(37addddd) SHA1(3032989653304417df80606bc3fde6e9425d8cbb) )
- ROM_LOAD16_BYTE( "pnp1mtal.2h", 0x000001, 0x800000, CRC(6490faaa) SHA1(03443746009b434e5d4074ea6314910418907360) )
-
- ROM_REGION( 0x2000000, "textile", 0 )
- ROM_LOAD( "pnp1cgll.4m", 0x0000000, 0x800000, CRC(d03932cf) SHA1(49240e44923cc6e815e9457b6290fd18466658af) )
- ROM_LOAD( "pnp1cglm.5k", 0x0800000, 0x800000, CRC(abf4ccf2) SHA1(3848e26d0ba6c872bbc6d5e0eb23a9d4b34152d5) )
- ROM_LOAD( "pnp1cgum.4j", 0x1000000, 0x800000, CRC(206217ca) SHA1(9c095bba7764f3405c3fab10513b9b78981ec44d) )
- ROM_LOAD( "pnp1cguu.5f", 0x1800000, 0x800000, CRC(cd64f57f) SHA1(8780270298e0823db1acbbf79396788df0c3c19c) )
-
- ROM_REGION16_LE( 0x200000, "textilemapl", 0 )
- ROM_LOAD( "pnp1ccrl.7f", 0x000000, 0x200000, CRC(b7bc43c2) SHA1(f4b470540194486ca6822f438fc1d4700cfb2ab1) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 )
- ROM_LOAD( "pnp1ccrh.7e", 0x000000, 0x200000, CRC(caaf1b73) SHA1(b436992817ab4e4dad05e7429eb102d4fb57fa6a) )
-
- ROM_REGION32_BE( 0x2000000, "pointrom", 0 )
- ROM_LOAD32_WORD_SWAP( "pnp1pt0h.7a", 0x000000, 0x400000, CRC(43fc2246) SHA1(301d321cd4a01ebd7ccfa6f295d6c3daf0a19efe) )
- ROM_LOAD32_WORD_SWAP( "pnp1pt0l.7c", 0x000002, 0x400000, CRC(26af5fa1) SHA1(12fcf98c2a59643e0fdfdd7186f9f16baf54a9cf) )
- ROM_LOAD32_WORD_SWAP( "pnp1pt1h.5a", 0x800000, 0x400000, CRC(1ff470c0) SHA1(ca8fad90743589744939d681b0ce94f368337b3f) )
- ROM_LOAD32_WORD_SWAP( "pnp1pt1l.5c", 0x800002, 0x400000, CRC(15c6f236) SHA1(e8c393359a91cdce6e9110a48c0a80708f8fc132) )
-
- ROM_REGION( 0x1000000, "c352", 0 )
- ROM_LOAD( "pnp1wavel.2c", 0x000000, 0x800000, CRC(35c6a9bd) SHA1(4b56fdc37525c15e57d93091e6609d6a6905fc5c) )
- ROM_LOAD( "pnp1waveh.2a", 0x800000, 0x800000, CRC(6fa1826a) SHA1(20a5af49e65ae2bc57c016b5cd9bafa5a5220d35) )
-
- ROM_REGION( 0x800000, "dups", 0 ) // duplicate ROMs
- ROM_LOAD( "pnp1cguu.4f", 0x000000, 0x800000, CRC(cd64f57f) SHA1(8780270298e0823db1acbbf79396788df0c3c19c) )
- ROM_LOAD( "pnp1cgum.5j", 0x000000, 0x800000, CRC(206217ca) SHA1(9c095bba7764f3405c3fab10513b9b78981ec44d) )
- ROM_LOAD( "pnp1cgll.5m", 0x000000, 0x800000, CRC(d03932cf) SHA1(49240e44923cc6e815e9457b6290fd18466658af) )
- ROM_LOAD( "pnp1cglm.4k", 0x000000, 0x800000, CRC(abf4ccf2) SHA1(3848e26d0ba6c872bbc6d5e0eb23a9d4b34152d5) )
- ROM_LOAD( "pnp1ccrl.7m", 0x000000, 0x200000, CRC(b7bc43c2) SHA1(f4b470540194486ca6822f438fc1d4700cfb2ab1) )
- ROM_LOAD( "pnp1ccrh.7k", 0x000000, 0x200000, CRC(caaf1b73) SHA1(b436992817ab4e4dad05e7429eb102d4fb57fa6a) )
-ROM_END
-
-
-ROM_START( gunwars )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "gm1verb.ic2", 0x000000, 0x200000, CRC(401f8264) SHA1(281f245ae0fbc2b82248c7aacaa5dfcdb114e2ee) )
- ROM_LOAD16_BYTE( "gm1verb.ic1", 0x000001, 0x200000, CRC(f9fd0f2b) SHA1(53dadd49d0d43f0693c84853ba3de1b5faa9e1d8) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "gm1vera.ic3", 0x000000, 0x080000, CRC(5582fdd4) SHA1(8aae8bc6688d531888f2de509c07502ee355b3ab) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code. "ASCA-5;Ver 2.09;JPN,Multipurpose" */
- ROM_LOAD( "asc5_io-a.ic14", 0x000000, 0x020000, CRC(5964767f) SHA1(320db5e78ae23c5f94e368432d51573b409995db) )
-
- ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data ROMs */
- ROM_LOAD16_BYTE( "gm1mtah.2j", 0x000000, 0x800000, CRC(3cea9094) SHA1(497395425e409de47e1114de9aeeaf05e4f6a9a1) )
- ROM_LOAD16_BYTE( "gm1mtal.2h", 0x000001, 0x800000, CRC(d531dfcd) SHA1(9f7cbe9a03c1f7649bf05a7a30d47511573b50ba) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "gm1cgll.4m", 0x0000000, 0x800000, CRC(936c0079) SHA1(3aec8caada35b7ed790bb3a8bcf6e01cad068fcd) )
- ROM_LOAD( "gm1cglm.4k", 0x0800000, 0x800000, CRC(e2ee5493) SHA1(1ffd74646796ad554d7967ba9fc18deab4fedadf) )
- ROM_LOAD( "gm1cgum.4j", 0x1000000, 0x800000, CRC(a7728944) SHA1(c187c6d66128554fcecc96e81d4f5396197e8280) )
- ROM_LOAD( "gm1cguu.5f", 0x1800000, 0x800000, CRC(26a74698) SHA1(3f07d273abb3f2552dc6a29300f5dc2f2744c852) )
-
- ROM_REGION16_LE( 0x400000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "gm1ccrl.7f", 0x000000, 0x400000, CRC(2c54c182) SHA1(538dfb04653f8d86f976e702456bf4da97e3fda9) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "gm1ccrh.7e", 0x000000, 0x200000, CRC(8563ef01) SHA1(59f09a08008a71a4bb12bd43a1b5dbe633d3061d) )
-
- ROM_REGION32_BE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "gm1pt0h.7a", 0x000000, 0x400000, CRC(5ebd658c) SHA1(9e7b89a726b11b6da3327d72ec6adcc30fbb384d) )
- ROM_LOAD32_WORD_SWAP( "gm1pt0l.7c", 0x000002, 0x400000, CRC(62e9bedb) SHA1(7043c5e6f26139c9e6e18d4f35fac6a16d4dabd1) )
- ROM_LOAD32_WORD_SWAP( "gm1pt1h.5a", 0x800000, 0x400000, CRC(5f6cebab) SHA1(95bd30d30ea25509b66a107fb255d0af1e6a357e) )
- ROM_LOAD32_WORD_SWAP( "gm1pt1l.5c", 0x800002, 0x400000, CRC(f44c149f) SHA1(9f995de02ea6ac35ccbabbba5bb473a10e1ec667) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "gm1wave.2c", 0x000000, 0x800000, CRC(7d5c79a4) SHA1(b800a46bcca10cb0d0d9e0acfa68af63ae64dcaf) )
-
- ROM_REGION( 0x800000, "dups", 0 ) /* duplicate ROMs */
- ROM_LOAD( "gm1cguu.4f", 0x000000, 0x800000, CRC(26a74698) SHA1(3f07d273abb3f2552dc6a29300f5dc2f2744c852) )
- ROM_LOAD( "gm1cgum.5j", 0x000000, 0x800000, CRC(a7728944) SHA1(c187c6d66128554fcecc96e81d4f5396197e8280) )
- ROM_LOAD( "gm1cgll.5m", 0x000000, 0x800000, CRC(936c0079) SHA1(3aec8caada35b7ed790bb3a8bcf6e01cad068fcd) )
- ROM_LOAD( "gm1cglm.5k", 0x000000, 0x800000, CRC(e2ee5493) SHA1(1ffd74646796ad554d7967ba9fc18deab4fedadf) )
- ROM_LOAD( "gm1ccrl.7m", 0x000000, 0x400000, CRC(2c54c182) SHA1(538dfb04653f8d86f976e702456bf4da97e3fda9) )
- ROM_LOAD( "gm1ccrh.7k", 0x000000, 0x200000, CRC(8563ef01) SHA1(59f09a08008a71a4bb12bd43a1b5dbe633d3061d) )
-ROM_END
-
-
-ROM_START( gunwarsa )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "gm1vera.ic2", 0x000000, 0x200000, CRC(cf61467f) SHA1(eae79e4e540340cba7d576a36085f802b8032f4f) )
- ROM_LOAD16_BYTE( "gm1vera.ic1", 0x000001, 0x200000, CRC(abc9ffe6) SHA1(d833b9b9d8bb0cc4b53f30507c9603df9e63fa2f) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "gm1vera.ic3", 0x000000, 0x080000, CRC(5582fdd4) SHA1(8aae8bc6688d531888f2de509c07502ee355b3ab) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code. "ASCA-5;Ver 2.09;JPN,Multipurpose" */
- ROM_LOAD( "asc5_io-a.ic14", 0x000000, 0x020000, CRC(5964767f) SHA1(320db5e78ae23c5f94e368432d51573b409995db) )
-
- ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data ROMs */
- ROM_LOAD16_BYTE( "gm1mtah.2j", 0x000000, 0x800000, CRC(3cea9094) SHA1(497395425e409de47e1114de9aeeaf05e4f6a9a1) )
- ROM_LOAD16_BYTE( "gm1mtal.2h", 0x000001, 0x800000, CRC(d531dfcd) SHA1(9f7cbe9a03c1f7649bf05a7a30d47511573b50ba) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "gm1cgll.4m", 0x0000000, 0x800000, CRC(936c0079) SHA1(3aec8caada35b7ed790bb3a8bcf6e01cad068fcd) )
- ROM_LOAD( "gm1cglm.4k", 0x0800000, 0x800000, CRC(e2ee5493) SHA1(1ffd74646796ad554d7967ba9fc18deab4fedadf) )
- ROM_LOAD( "gm1cgum.4j", 0x1000000, 0x800000, CRC(a7728944) SHA1(c187c6d66128554fcecc96e81d4f5396197e8280) )
- ROM_LOAD( "gm1cguu.5f", 0x1800000, 0x800000, CRC(26a74698) SHA1(3f07d273abb3f2552dc6a29300f5dc2f2744c852) )
-
- ROM_REGION16_LE( 0x400000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "gm1ccrl.7f", 0x000000, 0x400000, CRC(2c54c182) SHA1(538dfb04653f8d86f976e702456bf4da97e3fda9) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "gm1ccrh.7e", 0x000000, 0x200000, CRC(8563ef01) SHA1(59f09a08008a71a4bb12bd43a1b5dbe633d3061d) )
-
- ROM_REGION32_BE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "gm1pt0h.7a", 0x000000, 0x400000, CRC(5ebd658c) SHA1(9e7b89a726b11b6da3327d72ec6adcc30fbb384d) )
- ROM_LOAD32_WORD_SWAP( "gm1pt0l.7c", 0x000002, 0x400000, CRC(62e9bedb) SHA1(7043c5e6f26139c9e6e18d4f35fac6a16d4dabd1) )
- ROM_LOAD32_WORD_SWAP( "gm1pt1h.5a", 0x800000, 0x400000, CRC(5f6cebab) SHA1(95bd30d30ea25509b66a107fb255d0af1e6a357e) )
- ROM_LOAD32_WORD_SWAP( "gm1pt1l.5c", 0x800002, 0x400000, CRC(f44c149f) SHA1(9f995de02ea6ac35ccbabbba5bb473a10e1ec667) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "gm1wave.2c", 0x000000, 0x800000, CRC(7d5c79a4) SHA1(b800a46bcca10cb0d0d9e0acfa68af63ae64dcaf) )
-
- ROM_REGION( 0x800000, "dups", 0 ) /* duplicate ROMs */
- ROM_LOAD( "gm1cguu.4f", 0x000000, 0x800000, CRC(26a74698) SHA1(3f07d273abb3f2552dc6a29300f5dc2f2744c852) )
- ROM_LOAD( "gm1cgum.5j", 0x000000, 0x800000, CRC(a7728944) SHA1(c187c6d66128554fcecc96e81d4f5396197e8280) )
- ROM_LOAD( "gm1cgll.5m", 0x000000, 0x800000, CRC(936c0079) SHA1(3aec8caada35b7ed790bb3a8bcf6e01cad068fcd) )
- ROM_LOAD( "gm1cglm.5k", 0x000000, 0x800000, CRC(e2ee5493) SHA1(1ffd74646796ad554d7967ba9fc18deab4fedadf) )
- ROM_LOAD( "gm1ccrl.7m", 0x000000, 0x400000, CRC(2c54c182) SHA1(538dfb04653f8d86f976e702456bf4da97e3fda9) )
- ROM_LOAD( "gm1ccrh.7k", 0x000000, 0x200000, CRC(8563ef01) SHA1(59f09a08008a71a4bb12bd43a1b5dbe633d3061d) )
-ROM_END
-
-
-ROM_START( downhill )
- ROM_REGION32_BE( 0x400000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_BYTE( "dh3vera.ic2", 0x000000, 0x200000, CRC(5d9952e9) SHA1(d38422330bd708c247b9968429fbff36fe706598) )
- ROM_LOAD16_BYTE( "dh3vera.ic1", 0x000001, 0x200000, CRC(64a236f3) SHA1(aac59e0db5cfefc4b442e6c3a5189a8418742201) )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "dh3vera.ic3", 0x000000, 0x080000, CRC(98f9fc8b) SHA1(5152b9e11773033a26da11d1f3774a261e61a2c5) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code. "ASCA-3;Ver 2.04;JPN,Multipurpose + Rotary Encoder" */
- ROM_LOAD( "asc3_io-c.ic14", 0x000000, 0x020000, CRC(2f272a7b) SHA1(9d7ebe274c0d26f5f38747224d42d0375e2ed14c) )
-
- ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data ROMs */
- ROM_LOAD16_BYTE( "dh1mtah.2j", 0x000000, 0x800000, CRC(3b56faa7) SHA1(861db7f549bedbb2b837516fcc966ad5890007ce) )
- ROM_LOAD16_BYTE( "dh1mtal.2h", 0x000001, 0x800000, CRC(9fa07bfe) SHA1(a6b847ff7d5eadbf60b434a0d905051ea4227113) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "dh1cgll.4m", 0x0000000, 0x800000, CRC(c0d5ad87) SHA1(bc1992516c63aebdae0322def77f082d799a327a) )
- ROM_LOAD( "dh1cglm.4k", 0x0800000, 0x800000, CRC(5d9a5e35) SHA1(d746abb45f04aa4eb9d43d9c79051e71bf024e38) )
- ROM_LOAD( "dh1cgum.4j", 0x1000000, 0x800000, CRC(1044d0a0) SHA1(e0bf843616e166495fcdc76f076eb53a28287d30) )
- ROM_LOAD( "dh1cguu.5f", 0x1800000, 0x800000, CRC(66cb0dd7) SHA1(1f67320f150f1b55c97eae4b9fe4890fabc8dc7e) )
-
- ROM_REGION16_LE( 0x400000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "dh1ccrl.7f", 0x000000, 0x400000, CRC(65c857df) SHA1(5d67b17cf272f042b4264d9871d6e4088c20b788) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "dh1ccrh.7e", 0x000000, 0x200000, CRC(f21c482d) SHA1(bfcead2ff3d10f996ac0bf81470d050bd6374156) )
-
- ROM_REGION32_BE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "dh1pt0h.7a", 0x0000000, 0x400000, CRC(0e84a5d8) SHA1(28559f978b86d88bb18c3e58e28a97ecfb5f7fa9) )
- ROM_LOAD32_WORD_SWAP( "dh1pt0l.7c", 0x0000002, 0x400000, CRC(d120eee5) SHA1(fa1269d891f4e0510491aa70c4abd5f36852e691) )
- ROM_LOAD32_WORD_SWAP( "dh1pt1h.5a", 0x0800000, 0x400000, CRC(88cd4c90) SHA1(94016c72a9da983e55c74cbdd3691b596ea50c31) )
- ROM_LOAD32_WORD_SWAP( "dh1pt1l.5c", 0x0800002, 0x400000, CRC(dee2f2bf) SHA1(258f9a6e324502550d27b8feaf36244766fa19da) )
- ROM_LOAD32_WORD_SWAP( "dh1pt2h.4a", 0x1000000, 0x400000, CRC(7e167c65) SHA1(018bf6aea4c1640ef728cf7b8e491f11742ede0d) )
- ROM_LOAD32_WORD_SWAP( "dh1pt2l.4c", 0x1000002, 0x400000, CRC(714e3090) SHA1(39827f645dacbb57c7c40193f3f58e879899a4f3) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "dh1wavel.2c", 0x000000, 0x800000, CRC(10954726) SHA1(50ee0346c46194dada7b5c0d8b1efe9a7f211b90) )
- ROM_LOAD( "dh1waveh.2a", 0x800000, 0x800000, CRC(2adfa312) SHA1(d01a46af2c95d1ea64e9778979ae147298d921e3) )
-
- ROM_REGION( 0x800000, "dups", 0 ) /* duplicate ROMs */
- ROM_LOAD( "dh1cguu.4f", 0x000000, 0x800000, CRC(66cb0dd7) SHA1(1f67320f150f1b55c97eae4b9fe4890fabc8dc7e) )
- ROM_LOAD( "dh1cgum.5j", 0x000000, 0x800000, CRC(1044d0a0) SHA1(e0bf843616e166495fcdc76f076eb53a28287d30) )
- ROM_LOAD( "dh1cgll.5m", 0x000000, 0x800000, CRC(c0d5ad87) SHA1(bc1992516c63aebdae0322def77f082d799a327a) )
- ROM_LOAD( "dh1cglm.5k", 0x000000, 0x800000, CRC(5d9a5e35) SHA1(d746abb45f04aa4eb9d43d9c79051e71bf024e38) )
- ROM_LOAD( "dh1ccrl.7m", 0x000000, 0x400000, CRC(65c857df) SHA1(5d67b17cf272f042b4264d9871d6e4088c20b788) )
- ROM_LOAD( "dh1ccrh.7k", 0x000000, 0x200000, CRC(f21c482d) SHA1(bfcead2ff3d10f996ac0bf81470d050bd6374156) )
-ROM_END
-
-
-ROM_START( crszone )
- ROM_REGION32_BE( 0x800000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_WORD_SWAP( "cszo4verb.ic4", 0x400000, 0x400000, CRC(6192533d) SHA1(d102b91fe193bf255ea4e57a2bd964aa1cdfd21d) )
- ROM_CONTINUE( 0x000000, 0x400000 )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "cszo3verb.ic1", 0x000000, 0x080000, CRC(c790743b) SHA1(5fa7b83a7a1b1105a3aa0870b782cf2741b7d11c) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code. "MIU-I/O;Ver2.05;JPN,GUN-EXTENTION" */
- ROM_LOAD( "csz1prg0a.8f", 0x000000, 0x020000, CRC(8edc36b3) SHA1(b5df211988d856572fcc313480e693c8561784e4) )
-
- ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data ROMs */
- ROM_LOAD16_BYTE( "csz1mtah.2j", 0x0000000, 0x800000, CRC(66b076ad) SHA1(edd32e0b380f01a9626d32f5eec860f841c8be8a) )
- ROM_LOAD16_BYTE( "csz1mtal.2h", 0x0000001, 0x800000, CRC(38dc639a) SHA1(aa9b5b35174c1b007a57a4bd7a53bc3f479b5b71) )
- ROM_LOAD16_BYTE( "csz1mtbh.2m", 0x1000000, 0x800000, CRC(bdec4188) SHA1(a098651fbd8a69a0afc17f4b6c93350926cacd6b) )
- ROM_LOAD16_BYTE( "csz1mtbl.2f", 0x1000001, 0x800000, CRC(9c8f8d7a) SHA1(f61bcc9763df15428c82931a605ee40334d5ad98) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "csz1cgll.4m", 0x0000000, 0x800000, CRC(0bcd41f2) SHA1(80b74f9398e8bd074f79a14490d06cfeb875c874) )
- ROM_LOAD( "csz1cglm.4k", 0x0800000, 0x800000, CRC(d4af93d1) SHA1(0df37b793ce8da02d14f714722382786ae5d3ce2) )
- ROM_LOAD( "csz1cgum.4j", 0x1000000, 0x800000, CRC(913c98b5) SHA1(b952dbc19053796077d4f33e8da836893e933b12) )
- ROM_LOAD( "csz1cguu.5f", 0x1800000, 0x800000, CRC(e1d1bf24) SHA1(daf2c68e2d9a8f313d262d221cc990c93dfdf22f) )
-
- ROM_REGION16_LE( 0x400000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "csz1ccrl.7f", 0x000000, 0x400000, CRC(1c20768d) SHA1(6cf4280e26f3625d6f750837bf344163e7e93c3d) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "csz1ccrh.7e", 0x000000, 0x200000, CRC(bc2fa03c) SHA1(e63d8e75494a383bf9a213edfa9c472a010f8efe) )
-
- ROM_REGION32_BE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "csz1pt0h.7a", 0x0000000, 0x400000, CRC(e82f1abb) SHA1(b1c57152cc27835e06e429fd1659fe0973638142) )
- ROM_LOAD32_WORD_SWAP( "csz1pt0l.7c", 0x0000002, 0x400000, CRC(b0d66afe) SHA1(7cda4eebf1bb1191d17e4b5e616be2fbe4ae9328) )
- ROM_LOAD32_WORD_SWAP( "csz1pt1h.5a", 0x0800000, 0x400000, CRC(e54f80ad) SHA1(3b3fbb3001e630d800b02ec8e653d74878ac5116) )
- ROM_LOAD32_WORD_SWAP( "csz1pt1l.5c", 0x0800002, 0x400000, CRC(527171c8) SHA1(0b2ce3858f40bdedf1543309a6bc28d780415250) )
- ROM_LOAD32_WORD_SWAP( "csz1pt2h.4a", 0x1000000, 0x400000, CRC(e295137a) SHA1(37b18af1b3d9f0e69b45135f89b49a1ceec79127) )
- ROM_LOAD32_WORD_SWAP( "csz1pt2l.4c", 0x1000002, 0x400000, CRC(c87d6dbd) SHA1(686f39073c521d6b21ef8bc1161b41b680697c63) )
- ROM_LOAD32_WORD_SWAP( "csz1pt3h.3a", 0x1800000, 0x400000, CRC(05f65bdf) SHA1(0c349fe5381fe7aeb81f9365a2b44a212f6bd33e) )
- ROM_LOAD32_WORD_SWAP( "csz1pt3l.3c", 0x1800002, 0x400000, CRC(5d077c0f) SHA1(a4fd0167d89bf9417766405726e0334e7c7eaec3) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "csz1wavel.2c", 0x000000, 0x800000, CRC(d0d74132) SHA1(a293d93bca8e12e388a088a592cfa7bcb9a976f7) )
- ROM_LOAD( "csz1waveh.2a", 0x800000, 0x800000, CRC(de9d14a8) SHA1(e5006861928bb1d29bf80c7304f1a6d044b094fd) )
-
- ROM_REGION( 0x800000, "dups", 0 ) /* duplicate ROMs */
- ROM_LOAD( "csz1cguu.4f", 0x000000, 0x800000, CRC(e1d1bf24) SHA1(daf2c68e2d9a8f313d262d221cc990c93dfdf22f) )
- ROM_LOAD( "csz1cgum.5j", 0x000000, 0x800000, CRC(913c98b5) SHA1(b952dbc19053796077d4f33e8da836893e933b12) )
- ROM_LOAD( "csz1cgll.5m", 0x000000, 0x800000, CRC(0bcd41f2) SHA1(80b74f9398e8bd074f79a14490d06cfeb875c874) )
- ROM_LOAD( "csz1cglm.5k", 0x000000, 0x800000, CRC(d4af93d1) SHA1(0df37b793ce8da02d14f714722382786ae5d3ce2) )
- ROM_LOAD( "csz1ccrl.7m", 0x000000, 0x400000, CRC(1c20768d) SHA1(6cf4280e26f3625d6f750837bf344163e7e93c3d) )
- ROM_LOAD( "csz1ccrh.7k", 0x000000, 0x200000, CRC(bc2fa03c) SHA1(e63d8e75494a383bf9a213edfa9c472a010f8efe) )
-ROM_END
-
-
-ROM_START( crszonev4a )
- ROM_REGION32_BE( 0x800000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_WORD_SWAP( "cszo4vera.ic4", 0x400000, 0x400000, CRC(cabee8c3) SHA1(4887b8550038c072f988c5999d57ec40e82e4072) )
- ROM_CONTINUE( 0x000000, 0x400000 )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "cszo3verb.ic1", 0x000000, 0x080000, CRC(c790743b) SHA1(5fa7b83a7a1b1105a3aa0870b782cf2741b7d11c) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code. "MIU-I/O;Ver2.05;JPN,GUN-EXTENTION" */
- ROM_LOAD( "csz1prg0a.8f", 0x000000, 0x020000, CRC(8edc36b3) SHA1(b5df211988d856572fcc313480e693c8561784e4) )
-
- ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data ROMs */
- ROM_LOAD16_BYTE( "csz1mtah.2j", 0x0000000, 0x800000, CRC(66b076ad) SHA1(edd32e0b380f01a9626d32f5eec860f841c8be8a) )
- ROM_LOAD16_BYTE( "csz1mtal.2h", 0x0000001, 0x800000, CRC(38dc639a) SHA1(aa9b5b35174c1b007a57a4bd7a53bc3f479b5b71) )
- ROM_LOAD16_BYTE( "csz1mtbh.2m", 0x1000000, 0x800000, CRC(bdec4188) SHA1(a098651fbd8a69a0afc17f4b6c93350926cacd6b) )
- ROM_LOAD16_BYTE( "csz1mtbl.2f", 0x1000001, 0x800000, CRC(9c8f8d7a) SHA1(f61bcc9763df15428c82931a605ee40334d5ad98) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "csz1cgll.4m", 0x0000000, 0x800000, CRC(0bcd41f2) SHA1(80b74f9398e8bd074f79a14490d06cfeb875c874) )
- ROM_LOAD( "csz1cglm.4k", 0x0800000, 0x800000, CRC(d4af93d1) SHA1(0df37b793ce8da02d14f714722382786ae5d3ce2) )
- ROM_LOAD( "csz1cgum.4j", 0x1000000, 0x800000, CRC(913c98b5) SHA1(b952dbc19053796077d4f33e8da836893e933b12) )
- ROM_LOAD( "csz1cguu.5f", 0x1800000, 0x800000, CRC(e1d1bf24) SHA1(daf2c68e2d9a8f313d262d221cc990c93dfdf22f) )
-
- ROM_REGION16_LE( 0x400000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "csz1ccrl.7f", 0x000000, 0x400000, CRC(1c20768d) SHA1(6cf4280e26f3625d6f750837bf344163e7e93c3d) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "csz1ccrh.7e", 0x000000, 0x200000, CRC(bc2fa03c) SHA1(e63d8e75494a383bf9a213edfa9c472a010f8efe) )
-
- ROM_REGION32_BE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "csz1pt0h.7a", 0x0000000, 0x400000, CRC(e82f1abb) SHA1(b1c57152cc27835e06e429fd1659fe0973638142) )
- ROM_LOAD32_WORD_SWAP( "csz1pt0l.7c", 0x0000002, 0x400000, CRC(b0d66afe) SHA1(7cda4eebf1bb1191d17e4b5e616be2fbe4ae9328) )
- ROM_LOAD32_WORD_SWAP( "csz1pt1h.5a", 0x0800000, 0x400000, CRC(e54f80ad) SHA1(3b3fbb3001e630d800b02ec8e653d74878ac5116) )
- ROM_LOAD32_WORD_SWAP( "csz1pt1l.5c", 0x0800002, 0x400000, CRC(527171c8) SHA1(0b2ce3858f40bdedf1543309a6bc28d780415250) )
- ROM_LOAD32_WORD_SWAP( "csz1pt2h.4a", 0x1000000, 0x400000, CRC(e295137a) SHA1(37b18af1b3d9f0e69b45135f89b49a1ceec79127) )
- ROM_LOAD32_WORD_SWAP( "csz1pt2l.4c", 0x1000002, 0x400000, CRC(c87d6dbd) SHA1(686f39073c521d6b21ef8bc1161b41b680697c63) )
- ROM_LOAD32_WORD_SWAP( "csz1pt3h.3a", 0x1800000, 0x400000, CRC(05f65bdf) SHA1(0c349fe5381fe7aeb81f9365a2b44a212f6bd33e) )
- ROM_LOAD32_WORD_SWAP( "csz1pt3l.3c", 0x1800002, 0x400000, CRC(5d077c0f) SHA1(a4fd0167d89bf9417766405726e0334e7c7eaec3) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "csz1wavel.2c", 0x000000, 0x800000, CRC(d0d74132) SHA1(a293d93bca8e12e388a088a592cfa7bcb9a976f7) )
- ROM_LOAD( "csz1waveh.2a", 0x800000, 0x800000, CRC(de9d14a8) SHA1(e5006861928bb1d29bf80c7304f1a6d044b094fd) )
-
- ROM_REGION( 0x800000, "dups", 0 ) /* duplicate ROMs */
- ROM_LOAD( "csz1cguu.4f", 0x000000, 0x800000, CRC(e1d1bf24) SHA1(daf2c68e2d9a8f313d262d221cc990c93dfdf22f) )
- ROM_LOAD( "csz1cgum.5j", 0x000000, 0x800000, CRC(913c98b5) SHA1(b952dbc19053796077d4f33e8da836893e933b12) )
- ROM_LOAD( "csz1cgll.5m", 0x000000, 0x800000, CRC(0bcd41f2) SHA1(80b74f9398e8bd074f79a14490d06cfeb875c874) )
- ROM_LOAD( "csz1cglm.5k", 0x000000, 0x800000, CRC(d4af93d1) SHA1(0df37b793ce8da02d14f714722382786ae5d3ce2) )
- ROM_LOAD( "csz1ccrl.7m", 0x000000, 0x400000, CRC(1c20768d) SHA1(6cf4280e26f3625d6f750837bf344163e7e93c3d) )
- ROM_LOAD( "csz1ccrh.7k", 0x000000, 0x200000, CRC(bc2fa03c) SHA1(e63d8e75494a383bf9a213edfa9c472a010f8efe) )
-ROM_END
-
-
-ROM_START( crszonev3b )
- ROM_REGION32_BE( 0x800000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_WORD_SWAP( "cszo3verb.ic4", 0x400000, 0x400000, CRC(4cb26465) SHA1(078dfd0d8c920707df14e9a26658fa63421fcb0b) )
- ROM_CONTINUE( 0x000000, 0x400000 )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "cszo3verb.ic1", 0x000000, 0x080000, CRC(c790743b) SHA1(5fa7b83a7a1b1105a3aa0870b782cf2741b7d11c) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code. "MIU-I/O;Ver2.05;JPN,GUN-EXTENTION" */
- ROM_LOAD( "csz1prg0a.8f", 0x000000, 0x020000, CRC(8edc36b3) SHA1(b5df211988d856572fcc313480e693c8561784e4) )
-
- ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data ROMs */
- ROM_LOAD16_BYTE( "csz1mtah.2j", 0x0000000, 0x800000, CRC(66b076ad) SHA1(edd32e0b380f01a9626d32f5eec860f841c8be8a) )
- ROM_LOAD16_BYTE( "csz1mtal.2h", 0x0000001, 0x800000, CRC(38dc639a) SHA1(aa9b5b35174c1b007a57a4bd7a53bc3f479b5b71) )
- ROM_LOAD16_BYTE( "csz1mtbh.2m", 0x1000000, 0x800000, CRC(bdec4188) SHA1(a098651fbd8a69a0afc17f4b6c93350926cacd6b) )
- ROM_LOAD16_BYTE( "csz1mtbl.2f", 0x1000001, 0x800000, CRC(9c8f8d7a) SHA1(f61bcc9763df15428c82931a605ee40334d5ad98) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "csz1cgll.4m", 0x0000000, 0x800000, CRC(0bcd41f2) SHA1(80b74f9398e8bd074f79a14490d06cfeb875c874) )
- ROM_LOAD( "csz1cglm.4k", 0x0800000, 0x800000, CRC(d4af93d1) SHA1(0df37b793ce8da02d14f714722382786ae5d3ce2) )
- ROM_LOAD( "csz1cgum.4j", 0x1000000, 0x800000, CRC(913c98b5) SHA1(b952dbc19053796077d4f33e8da836893e933b12) )
- ROM_LOAD( "csz1cguu.5f", 0x1800000, 0x800000, CRC(e1d1bf24) SHA1(daf2c68e2d9a8f313d262d221cc990c93dfdf22f) )
-
- ROM_REGION16_LE( 0x400000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "csz1ccrl.7f", 0x000000, 0x400000, CRC(1c20768d) SHA1(6cf4280e26f3625d6f750837bf344163e7e93c3d) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "csz1ccrh.7e", 0x000000, 0x200000, CRC(bc2fa03c) SHA1(e63d8e75494a383bf9a213edfa9c472a010f8efe) )
-
- ROM_REGION32_BE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "csz1pt0h.7a", 0x0000000, 0x400000, CRC(e82f1abb) SHA1(b1c57152cc27835e06e429fd1659fe0973638142) )
- ROM_LOAD32_WORD_SWAP( "csz1pt0l.7c", 0x0000002, 0x400000, CRC(b0d66afe) SHA1(7cda4eebf1bb1191d17e4b5e616be2fbe4ae9328) )
- ROM_LOAD32_WORD_SWAP( "csz1pt1h.5a", 0x0800000, 0x400000, CRC(e54f80ad) SHA1(3b3fbb3001e630d800b02ec8e653d74878ac5116) )
- ROM_LOAD32_WORD_SWAP( "csz1pt1l.5c", 0x0800002, 0x400000, CRC(527171c8) SHA1(0b2ce3858f40bdedf1543309a6bc28d780415250) )
- ROM_LOAD32_WORD_SWAP( "csz1pt2h.4a", 0x1000000, 0x400000, CRC(e295137a) SHA1(37b18af1b3d9f0e69b45135f89b49a1ceec79127) )
- ROM_LOAD32_WORD_SWAP( "csz1pt2l.4c", 0x1000002, 0x400000, CRC(c87d6dbd) SHA1(686f39073c521d6b21ef8bc1161b41b680697c63) )
- ROM_LOAD32_WORD_SWAP( "csz1pt3h.3a", 0x1800000, 0x400000, CRC(05f65bdf) SHA1(0c349fe5381fe7aeb81f9365a2b44a212f6bd33e) )
- ROM_LOAD32_WORD_SWAP( "csz1pt3l.3c", 0x1800002, 0x400000, CRC(5d077c0f) SHA1(a4fd0167d89bf9417766405726e0334e7c7eaec3) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "csz1wavel.2c", 0x000000, 0x800000, CRC(d0d74132) SHA1(a293d93bca8e12e388a088a592cfa7bcb9a976f7) )
- ROM_LOAD( "csz1waveh.2a", 0x800000, 0x800000, CRC(de9d14a8) SHA1(e5006861928bb1d29bf80c7304f1a6d044b094fd) )
-
- ROM_REGION( 0x800000, "dups", 0 ) /* duplicate ROMs */
- ROM_LOAD( "csz1cguu.4f", 0x000000, 0x800000, CRC(e1d1bf24) SHA1(daf2c68e2d9a8f313d262d221cc990c93dfdf22f) )
- ROM_LOAD( "csz1cgum.5j", 0x000000, 0x800000, CRC(913c98b5) SHA1(b952dbc19053796077d4f33e8da836893e933b12) )
- ROM_LOAD( "csz1cgll.5m", 0x000000, 0x800000, CRC(0bcd41f2) SHA1(80b74f9398e8bd074f79a14490d06cfeb875c874) )
- ROM_LOAD( "csz1cglm.5k", 0x000000, 0x800000, CRC(d4af93d1) SHA1(0df37b793ce8da02d14f714722382786ae5d3ce2) )
- ROM_LOAD( "csz1ccrl.7m", 0x000000, 0x400000, CRC(1c20768d) SHA1(6cf4280e26f3625d6f750837bf344163e7e93c3d) )
- ROM_LOAD( "csz1ccrh.7k", 0x000000, 0x200000, CRC(bc2fa03c) SHA1(e63d8e75494a383bf9a213edfa9c472a010f8efe) )
-ROM_END
-
-
-ROM_START( crszonev3b2 )
- ROM_REGION32_BE( 0x800000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_WORD_SWAP( "cszo3verb.ic4", 0x400000, 0x400000, CRC(3755b402) SHA1(e169fded9d136af7ce6997868629eed5196b8cdd) ) // sldh
- ROM_CONTINUE( 0x000000, 0x400000 )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "cszo3verb.ic1", 0x000000, 0x080000, CRC(c790743b) SHA1(5fa7b83a7a1b1105a3aa0870b782cf2741b7d11c) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code. "MIU-I/O;Ver2.05;JPN,GUN-EXTENTION" */
- ROM_LOAD( "csz1prg0a.8f", 0x000000, 0x020000, CRC(8edc36b3) SHA1(b5df211988d856572fcc313480e693c8561784e4) )
-
- ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data ROMs */
- ROM_LOAD16_BYTE( "csz1mtah.2j", 0x0000000, 0x800000, CRC(66b076ad) SHA1(edd32e0b380f01a9626d32f5eec860f841c8be8a) )
- ROM_LOAD16_BYTE( "csz1mtal.2h", 0x0000001, 0x800000, CRC(38dc639a) SHA1(aa9b5b35174c1b007a57a4bd7a53bc3f479b5b71) )
- ROM_LOAD16_BYTE( "csz1mtbh.2m", 0x1000000, 0x800000, CRC(bdec4188) SHA1(a098651fbd8a69a0afc17f4b6c93350926cacd6b) )
- ROM_LOAD16_BYTE( "csz1mtbl.2f", 0x1000001, 0x800000, CRC(9c8f8d7a) SHA1(f61bcc9763df15428c82931a605ee40334d5ad98) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "csz1cgll.4m", 0x0000000, 0x800000, CRC(0bcd41f2) SHA1(80b74f9398e8bd074f79a14490d06cfeb875c874) )
- ROM_LOAD( "csz1cglm.4k", 0x0800000, 0x800000, CRC(d4af93d1) SHA1(0df37b793ce8da02d14f714722382786ae5d3ce2) )
- ROM_LOAD( "csz1cgum.4j", 0x1000000, 0x800000, CRC(913c98b5) SHA1(b952dbc19053796077d4f33e8da836893e933b12) )
- ROM_LOAD( "csz1cguu.5f", 0x1800000, 0x800000, CRC(e1d1bf24) SHA1(daf2c68e2d9a8f313d262d221cc990c93dfdf22f) )
-
- ROM_REGION16_LE( 0x400000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "csz1ccrl.7f", 0x000000, 0x400000, CRC(1c20768d) SHA1(6cf4280e26f3625d6f750837bf344163e7e93c3d) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "csz1ccrh.7e", 0x000000, 0x200000, CRC(bc2fa03c) SHA1(e63d8e75494a383bf9a213edfa9c472a010f8efe) )
-
- ROM_REGION32_BE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "csz1pt0h.7a", 0x0000000, 0x400000, CRC(e82f1abb) SHA1(b1c57152cc27835e06e429fd1659fe0973638142) )
- ROM_LOAD32_WORD_SWAP( "csz1pt0l.7c", 0x0000002, 0x400000, CRC(b0d66afe) SHA1(7cda4eebf1bb1191d17e4b5e616be2fbe4ae9328) )
- ROM_LOAD32_WORD_SWAP( "csz1pt1h.5a", 0x0800000, 0x400000, CRC(e54f80ad) SHA1(3b3fbb3001e630d800b02ec8e653d74878ac5116) )
- ROM_LOAD32_WORD_SWAP( "csz1pt1l.5c", 0x0800002, 0x400000, CRC(527171c8) SHA1(0b2ce3858f40bdedf1543309a6bc28d780415250) )
- ROM_LOAD32_WORD_SWAP( "csz1pt2h.4a", 0x1000000, 0x400000, CRC(e295137a) SHA1(37b18af1b3d9f0e69b45135f89b49a1ceec79127) )
- ROM_LOAD32_WORD_SWAP( "csz1pt2l.4c", 0x1000002, 0x400000, CRC(c87d6dbd) SHA1(686f39073c521d6b21ef8bc1161b41b680697c63) )
- ROM_LOAD32_WORD_SWAP( "csz1pt3h.3a", 0x1800000, 0x400000, CRC(05f65bdf) SHA1(0c349fe5381fe7aeb81f9365a2b44a212f6bd33e) )
- ROM_LOAD32_WORD_SWAP( "csz1pt3l.3c", 0x1800002, 0x400000, CRC(5d077c0f) SHA1(a4fd0167d89bf9417766405726e0334e7c7eaec3) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "csz1wavel.2c", 0x000000, 0x800000, CRC(d0d74132) SHA1(a293d93bca8e12e388a088a592cfa7bcb9a976f7) )
- ROM_LOAD( "csz1waveh.2a", 0x800000, 0x800000, CRC(de9d14a8) SHA1(e5006861928bb1d29bf80c7304f1a6d044b094fd) )
-
- ROM_REGION( 0x800000, "dups", 0 ) /* duplicate ROMs */
- ROM_LOAD( "csz1cguu.4f", 0x000000, 0x800000, CRC(e1d1bf24) SHA1(daf2c68e2d9a8f313d262d221cc990c93dfdf22f) )
- ROM_LOAD( "csz1cgum.5j", 0x000000, 0x800000, CRC(913c98b5) SHA1(b952dbc19053796077d4f33e8da836893e933b12) )
- ROM_LOAD( "csz1cgll.5m", 0x000000, 0x800000, CRC(0bcd41f2) SHA1(80b74f9398e8bd074f79a14490d06cfeb875c874) )
- ROM_LOAD( "csz1cglm.5k", 0x000000, 0x800000, CRC(d4af93d1) SHA1(0df37b793ce8da02d14f714722382786ae5d3ce2) )
- ROM_LOAD( "csz1ccrl.7m", 0x000000, 0x400000, CRC(1c20768d) SHA1(6cf4280e26f3625d6f750837bf344163e7e93c3d) )
- ROM_LOAD( "csz1ccrh.7k", 0x000000, 0x200000, CRC(bc2fa03c) SHA1(e63d8e75494a383bf9a213edfa9c472a010f8efe) )
-ROM_END
-
-
-ROM_START( crszonev3a )
- ROM_REGION32_BE( 0x800000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_WORD_SWAP( "cszo3vera.ic4", 0x400000, 0x400000, CRC(09b0c91e) SHA1(226c3788d6a50272e2544d04d9ca20df81014fb6) )
- ROM_CONTINUE( 0x000000, 0x400000 )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "cszo3verb.ic1", 0x000000, 0x080000, CRC(c790743b) SHA1(5fa7b83a7a1b1105a3aa0870b782cf2741b7d11c) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code. "MIU-I/O;Ver2.05;JPN,GUN-EXTENTION" */
- ROM_LOAD( "csz1prg0a.8f", 0x000000, 0x020000, CRC(8edc36b3) SHA1(b5df211988d856572fcc313480e693c8561784e4) )
-
- ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data ROMs */
- ROM_LOAD16_BYTE( "csz1mtah.2j", 0x0000000, 0x800000, CRC(66b076ad) SHA1(edd32e0b380f01a9626d32f5eec860f841c8be8a) )
- ROM_LOAD16_BYTE( "csz1mtal.2h", 0x0000001, 0x800000, CRC(38dc639a) SHA1(aa9b5b35174c1b007a57a4bd7a53bc3f479b5b71) )
- ROM_LOAD16_BYTE( "csz1mtbh.2m", 0x1000000, 0x800000, CRC(bdec4188) SHA1(a098651fbd8a69a0afc17f4b6c93350926cacd6b) )
- ROM_LOAD16_BYTE( "csz1mtbl.2f", 0x1000001, 0x800000, CRC(9c8f8d7a) SHA1(f61bcc9763df15428c82931a605ee40334d5ad98) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "csz1cgll.4m", 0x0000000, 0x800000, CRC(0bcd41f2) SHA1(80b74f9398e8bd074f79a14490d06cfeb875c874) )
- ROM_LOAD( "csz1cglm.4k", 0x0800000, 0x800000, CRC(d4af93d1) SHA1(0df37b793ce8da02d14f714722382786ae5d3ce2) )
- ROM_LOAD( "csz1cgum.4j", 0x1000000, 0x800000, CRC(913c98b5) SHA1(b952dbc19053796077d4f33e8da836893e933b12) )
- ROM_LOAD( "csz1cguu.5f", 0x1800000, 0x800000, CRC(e1d1bf24) SHA1(daf2c68e2d9a8f313d262d221cc990c93dfdf22f) )
-
- ROM_REGION16_LE( 0x400000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "csz1ccrl.7f", 0x000000, 0x400000, CRC(1c20768d) SHA1(6cf4280e26f3625d6f750837bf344163e7e93c3d) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "csz1ccrh.7e", 0x000000, 0x200000, CRC(bc2fa03c) SHA1(e63d8e75494a383bf9a213edfa9c472a010f8efe) )
-
- ROM_REGION32_BE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "csz1pt0h.7a", 0x0000000, 0x400000, CRC(e82f1abb) SHA1(b1c57152cc27835e06e429fd1659fe0973638142) )
- ROM_LOAD32_WORD_SWAP( "csz1pt0l.7c", 0x0000002, 0x400000, CRC(b0d66afe) SHA1(7cda4eebf1bb1191d17e4b5e616be2fbe4ae9328) )
- ROM_LOAD32_WORD_SWAP( "csz1pt1h.5a", 0x0800000, 0x400000, CRC(e54f80ad) SHA1(3b3fbb3001e630d800b02ec8e653d74878ac5116) )
- ROM_LOAD32_WORD_SWAP( "csz1pt1l.5c", 0x0800002, 0x400000, CRC(527171c8) SHA1(0b2ce3858f40bdedf1543309a6bc28d780415250) )
- ROM_LOAD32_WORD_SWAP( "csz1pt2h.4a", 0x1000000, 0x400000, CRC(e295137a) SHA1(37b18af1b3d9f0e69b45135f89b49a1ceec79127) )
- ROM_LOAD32_WORD_SWAP( "csz1pt2l.4c", 0x1000002, 0x400000, CRC(c87d6dbd) SHA1(686f39073c521d6b21ef8bc1161b41b680697c63) )
- ROM_LOAD32_WORD_SWAP( "csz1pt3h.3a", 0x1800000, 0x400000, CRC(05f65bdf) SHA1(0c349fe5381fe7aeb81f9365a2b44a212f6bd33e) )
- ROM_LOAD32_WORD_SWAP( "csz1pt3l.3c", 0x1800002, 0x400000, CRC(5d077c0f) SHA1(a4fd0167d89bf9417766405726e0334e7c7eaec3) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "csz1wavel.2c", 0x000000, 0x800000, CRC(d0d74132) SHA1(a293d93bca8e12e388a088a592cfa7bcb9a976f7) )
- ROM_LOAD( "csz1waveh.2a", 0x800000, 0x800000, CRC(de9d14a8) SHA1(e5006861928bb1d29bf80c7304f1a6d044b094fd) )
-
- ROM_REGION( 0x800000, "dups", 0 ) /* duplicate ROMs */
- ROM_LOAD( "csz1cguu.4f", 0x000000, 0x800000, CRC(e1d1bf24) SHA1(daf2c68e2d9a8f313d262d221cc990c93dfdf22f) )
- ROM_LOAD( "csz1cgum.5j", 0x000000, 0x800000, CRC(913c98b5) SHA1(b952dbc19053796077d4f33e8da836893e933b12) )
- ROM_LOAD( "csz1cgll.5m", 0x000000, 0x800000, CRC(0bcd41f2) SHA1(80b74f9398e8bd074f79a14490d06cfeb875c874) )
- ROM_LOAD( "csz1cglm.5k", 0x000000, 0x800000, CRC(d4af93d1) SHA1(0df37b793ce8da02d14f714722382786ae5d3ce2) )
- ROM_LOAD( "csz1ccrl.7m", 0x000000, 0x400000, CRC(1c20768d) SHA1(6cf4280e26f3625d6f750837bf344163e7e93c3d) )
- ROM_LOAD( "csz1ccrh.7k", 0x000000, 0x200000, CRC(bc2fa03c) SHA1(e63d8e75494a383bf9a213edfa9c472a010f8efe) )
-ROM_END
-
-
-ROM_START( crszonev2a )
- ROM_REGION32_BE( 0x800000, "user1", 0 ) /* 4 megs for main R4650 code */
- ROM_LOAD16_WORD_SWAP( "cszo2vera.ic4", 0x400000, 0x400000, CRC(1426d8d0) SHA1(e8049df1b2db1180f9edf6e5fa9fe8692ae81086) )
- ROM_CONTINUE( 0x000000, 0x400000 )
-
- ROM_REGION( 0x80000, "subcpu", 0 ) /* Hitachi H8/3002 MCU code */
- ROM_LOAD16_WORD_SWAP( "cszo3verb.ic1", 0x000000, 0x080000, CRC(c790743b) SHA1(5fa7b83a7a1b1105a3aa0870b782cf2741b7d11c) )
-
- ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code. "MIU-I/O;Ver2.05;JPN,GUN-EXTENTION" */
- ROM_LOAD( "csz1prg0a.8f", 0x000000, 0x020000, CRC(8edc36b3) SHA1(b5df211988d856572fcc313480e693c8561784e4) )
-
- ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data ROMs */
- ROM_LOAD16_BYTE( "csz1mtah.2j", 0x0000000, 0x800000, CRC(66b076ad) SHA1(edd32e0b380f01a9626d32f5eec860f841c8be8a) )
- ROM_LOAD16_BYTE( "csz1mtal.2h", 0x0000001, 0x800000, CRC(38dc639a) SHA1(aa9b5b35174c1b007a57a4bd7a53bc3f479b5b71) )
- ROM_LOAD16_BYTE( "csz1mtbh.2m", 0x1000000, 0x800000, CRC(bdec4188) SHA1(a098651fbd8a69a0afc17f4b6c93350926cacd6b) )
- ROM_LOAD16_BYTE( "csz1mtbl.2f", 0x1000001, 0x800000, CRC(9c8f8d7a) SHA1(f61bcc9763df15428c82931a605ee40334d5ad98) )
-
- ROM_REGION( 0x2000000, "textile", 0 ) /* texture tiles */
- ROM_LOAD( "csz1cgll.4m", 0x0000000, 0x800000, CRC(0bcd41f2) SHA1(80b74f9398e8bd074f79a14490d06cfeb875c874) )
- ROM_LOAD( "csz1cglm.4k", 0x0800000, 0x800000, CRC(d4af93d1) SHA1(0df37b793ce8da02d14f714722382786ae5d3ce2) )
- ROM_LOAD( "csz1cgum.4j", 0x1000000, 0x800000, CRC(913c98b5) SHA1(b952dbc19053796077d4f33e8da836893e933b12) )
- ROM_LOAD( "csz1cguu.5f", 0x1800000, 0x800000, CRC(e1d1bf24) SHA1(daf2c68e2d9a8f313d262d221cc990c93dfdf22f) )
-
- ROM_REGION16_LE( 0x400000, "textilemapl", 0 ) /* texture tilemap 0-15 */
- ROM_LOAD( "csz1ccrl.7f", 0x000000, 0x400000, CRC(1c20768d) SHA1(6cf4280e26f3625d6f750837bf344163e7e93c3d) )
-
- ROM_REGION( 0x200000, "textilemaph", 0 ) /* texture tilemap 16-17 + attr */
- ROM_LOAD( "csz1ccrh.7e", 0x000000, 0x200000, CRC(bc2fa03c) SHA1(e63d8e75494a383bf9a213edfa9c472a010f8efe) )
-
- ROM_REGION32_BE( 0x2000000, "pointrom", 0 ) /* 3D model data */
- ROM_LOAD32_WORD_SWAP( "csz1pt0h.7a", 0x0000000, 0x400000, CRC(e82f1abb) SHA1(b1c57152cc27835e06e429fd1659fe0973638142) )
- ROM_LOAD32_WORD_SWAP( "csz1pt0l.7c", 0x0000002, 0x400000, CRC(b0d66afe) SHA1(7cda4eebf1bb1191d17e4b5e616be2fbe4ae9328) )
- ROM_LOAD32_WORD_SWAP( "csz1pt1h.5a", 0x0800000, 0x400000, CRC(e54f80ad) SHA1(3b3fbb3001e630d800b02ec8e653d74878ac5116) )
- ROM_LOAD32_WORD_SWAP( "csz1pt1l.5c", 0x0800002, 0x400000, CRC(527171c8) SHA1(0b2ce3858f40bdedf1543309a6bc28d780415250) )
- ROM_LOAD32_WORD_SWAP( "csz1pt2h.4a", 0x1000000, 0x400000, CRC(e295137a) SHA1(37b18af1b3d9f0e69b45135f89b49a1ceec79127) )
- ROM_LOAD32_WORD_SWAP( "csz1pt2l.4c", 0x1000002, 0x400000, CRC(c87d6dbd) SHA1(686f39073c521d6b21ef8bc1161b41b680697c63) )
- ROM_LOAD32_WORD_SWAP( "csz1pt3h.3a", 0x1800000, 0x400000, CRC(05f65bdf) SHA1(0c349fe5381fe7aeb81f9365a2b44a212f6bd33e) )
- ROM_LOAD32_WORD_SWAP( "csz1pt3l.3c", 0x1800002, 0x400000, CRC(5d077c0f) SHA1(a4fd0167d89bf9417766405726e0334e7c7eaec3) )
-
- ROM_REGION( 0x1000000, "c352", 0 ) /* C352 PCM samples */
- ROM_LOAD( "csz1wavel.2c", 0x000000, 0x800000, CRC(d0d74132) SHA1(a293d93bca8e12e388a088a592cfa7bcb9a976f7) )
- ROM_LOAD( "csz1waveh.2a", 0x800000, 0x800000, CRC(de9d14a8) SHA1(e5006861928bb1d29bf80c7304f1a6d044b094fd) )
-
- ROM_REGION( 0x800000, "dups", 0 ) /* duplicate ROMs */
- ROM_LOAD( "csz1cguu.4f", 0x000000, 0x800000, CRC(e1d1bf24) SHA1(daf2c68e2d9a8f313d262d221cc990c93dfdf22f) )
- ROM_LOAD( "csz1cgum.5j", 0x000000, 0x800000, CRC(913c98b5) SHA1(b952dbc19053796077d4f33e8da836893e933b12) )
- ROM_LOAD( "csz1cgll.5m", 0x000000, 0x800000, CRC(0bcd41f2) SHA1(80b74f9398e8bd074f79a14490d06cfeb875c874) )
- ROM_LOAD( "csz1cglm.5k", 0x000000, 0x800000, CRC(d4af93d1) SHA1(0df37b793ce8da02d14f714722382786ae5d3ce2) )
- ROM_LOAD( "csz1ccrl.7m", 0x000000, 0x400000, CRC(1c20768d) SHA1(6cf4280e26f3625d6f750837bf344163e7e93c3d) )
- ROM_LOAD( "csz1ccrh.7k", 0x000000, 0x200000, CRC(bc2fa03c) SHA1(e63d8e75494a383bf9a213edfa9c472a010f8efe) )
-ROM_END
-
-
-/* Games */
-#define GAME_FLAGS (MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS )
-// YEAR, NAME, PARENT, MACHINE, INPUT, CLASS, INIT, MNTR, COMPANY, FULLNAME, FLAGS
-GAME( 1997, rapidrvr, 0, gorgon, rapidrvr, namcos23_state, init_s23, ROT0, "Namco", "Rapid River (US, RD3 Ver. C)", GAME_FLAGS ) // 97/11/27, USA
-GAME( 1997, rapidrvrv2c, rapidrvr, gorgon, rapidrvr, namcos23_state, init_s23, ROT0, "Namco", "Rapid River (World, RD2 Ver. C)", GAME_FLAGS ) // 97/11/27, Europe
-GAME( 1997, rapidrvrp, rapidrvr, gorgon, rapidrvrp, namcos23_state, init_s23, ROT0, "Namco", "Rapid River (prototype)", GAME_FLAGS ) // 97/11/10, USA
-GAME( 1997, finfurl, 0, gorgon, finfurl, namcos23_state, init_s23, ROT0, "Namco", "Final Furlong (World, FF2 Ver. A)", GAME_FLAGS | MACHINE_NODEVICE_LAN )
-GAME( 1997, downhill, 0, s23, downhill, namcos23_state, init_s23, ROT0, "Namco", "Downhill Bikers (US, DH3 Ver. A)", GAME_FLAGS | MACHINE_NODEVICE_LAN )
-GAME( 1997, motoxgo, 0, motoxgo, s23, namcos23_state, init_s23, ROT0, "Namco", "Motocross Go! (US, MG3 Ver. A)", GAME_FLAGS | MACHINE_NODEVICE_LAN )
-GAME( 1997, motoxgov2a, motoxgo, motoxgo, s23, namcos23_state, init_s23, ROT0, "Namco", "Motocross Go! (World, MG2 Ver. A, set 1)", GAME_FLAGS | MACHINE_NODEVICE_LAN )
-GAME( 1997, motoxgov2a2, motoxgo, motoxgo, s23, namcos23_state, init_s23, ROT0, "Namco", "Motocross Go! (World, MG2 Ver. A, set 2)", GAME_FLAGS | MACHINE_NODEVICE_LAN )
-GAME( 1997, motoxgov1a, motoxgo, motoxgo, s23, namcos23_state, init_s23, ROT0, "Namco", "Motocross Go! (Japan, MG1 Ver. A, set 1)", GAME_FLAGS | MACHINE_NODEVICE_LAN )
-GAME( 1997, motoxgov1a2, motoxgo, motoxgo, s23, namcos23_state, init_s23, ROT0, "Namco", "Motocross Go! (Japan, MG1 Ver. A, set 2)", GAME_FLAGS | MACHINE_NODEVICE_LAN )
-GAME( 1997, timecrs2, 0, timecrs2, timecrs2, namcos23_state, init_s23, ROT0, "Namco", "Time Crisis II (US, TSS3 Ver. B)", GAME_FLAGS | MACHINE_NODEVICE_LAN )
-GAME( 1997, timecrs2v2b, timecrs2, timecrs2, timecrs2, namcos23_state, init_s23, ROT0, "Namco", "Time Crisis II (World, TSS2 Ver. B)", GAME_FLAGS | MACHINE_NODEVICE_LAN )
-GAME( 1997, timecrs2v1b, timecrs2, timecrs2, timecrs2, namcos23_state, init_s23, ROT0, "Namco", "Time Crisis II (Japan, TSS1 Ver. B)", GAME_FLAGS | MACHINE_NODEVICE_LAN )
-GAME( 1997, timecrs2v4a, timecrs2, timecrs2v4a, timecrs2, namcos23_state, init_s23, ROT0, "Namco", "Time Crisis II (World, TSS4 Ver. A)", GAME_FLAGS | MACHINE_NODEVICE_LAN )
-GAME( 1997, timecrs2v5a, timecrs2, timecrs2v4a, timecrs2, namcos23_state, init_s23, ROT0, "Namco", "Time Crisis II (US, TSS5 Ver. A)", GAME_FLAGS | MACHINE_NODEVICE_LAN )
-GAME( 1997, panicprk, 0, s23, s23, namcos23_state, init_s23, ROT0, "Namco", "Panic Park (World, PNP2 Ver. A)", GAME_FLAGS )
-GAME( 1997, panicprkj, panicprk, s23, s23, namcos23_state, init_s23, ROT0, "Namco", "Panic Park (Japan, PNP1 Ver. B, set 1)", GAME_FLAGS )
-GAME( 1997, panicprkj2, panicprk, s23, s23, namcos23_state, init_s23, ROT0, "Namco", "Panic Park (Japan, PNP1 Ver. B, set 2)", GAME_FLAGS )
-GAME( 1998, gunwars, 0, gmen, s23, namcos23_state, init_s23, ROT0, "Namco", "Gunmen Wars (Japan, GM1 Ver. B)", GAME_FLAGS | MACHINE_NODEVICE_LAN )
-GAME( 1998, gunwarsa, gunwars, gmen, s23, namcos23_state, init_s23, ROT0, "Namco", "Gunmen Wars (Japan, GM1 Ver. A)", GAME_FLAGS | MACHINE_NODEVICE_LAN )
-GAME( 1998, raceon, 0, gmen, s23, namcos23_state, init_s23, ROT0, "Namco", "Race On! (World, RO2 Ver. A)", GAME_FLAGS | MACHINE_NODEVICE_LAN )
-GAME( 1998, 500gp, 0, ss23, s23, namcos23_state, init_s23, ROT0, "Namco", "500 GP (US, 5GP3 Ver. C)", GAME_FLAGS | MACHINE_NODEVICE_LAN )
-GAME( 1998, aking, 0, ss23, s23, namcos23_state, init_s23, ROT0, "Namco", "Angler King (Japan, AG1 Ver. A)", GAME_FLAGS )
-GAME( 1998, finfurl2, 0, gmen, s23, namcos23_state, init_s23, ROT0, "Namco", "Final Furlong 2 (World)", GAME_FLAGS | MACHINE_NODEVICE_LAN )
-GAME( 1998, finfurl2j, finfurl2, gmen, s23, namcos23_state, init_s23, ROT0, "Namco", "Final Furlong 2 (Japan)", GAME_FLAGS | MACHINE_NODEVICE_LAN )
-GAME( 1999, crszone, 0, ss23e2, s23, namcos23_state, init_s23, ROT0, "Namco", "Crisis Zone (World, CSZO4 Ver. B)", GAME_FLAGS )
-GAME( 1999, crszonev4a, crszone, ss23e2, s23, namcos23_state, init_s23, ROT0, "Namco", "Crisis Zone (World, CSZO4 Ver. A)", GAME_FLAGS )
-GAME( 1999, crszonev3b, crszone, ss23e2, s23, namcos23_state, init_s23, ROT0, "Namco", "Crisis Zone (US, CSZO3 Ver. B, set 1)", GAME_FLAGS )
-GAME( 1999, crszonev3b2, crszone, ss23e2, s23, namcos23_state, init_s23, ROT0, "Namco", "Crisis Zone (US, CSZO3 Ver. B, set 2)", GAME_FLAGS )
-GAME( 1999, crszonev3a, crszone, ss23e2, s23, namcos23_state, init_s23, ROT0, "Namco", "Crisis Zone (US, CSZO3 Ver. A)", GAME_FLAGS )
-GAME( 1999, crszonev2a, crszone, ss23e2, s23, namcos23_state, init_s23, ROT0, "Namco", "Crisis Zone (World, CSZO2 Ver. A)", GAME_FLAGS )