diff options
Diffstat (limited to 'src/mame/namco/namcos12.cpp')
-rw-r--r-- | src/mame/namco/namcos12.cpp | 3649 |
1 files changed, 3649 insertions, 0 deletions
diff --git a/src/mame/namco/namcos12.cpp b/src/mame/namco/namcos12.cpp new file mode 100644 index 00000000000..203cee1f160 --- /dev/null +++ b/src/mame/namco/namcos12.cpp @@ -0,0 +1,3649 @@ +// license:BSD-3-Clause +// copyright-holders:smf +/*************************************************************************** + + Namco System 12 - Arcade Playstation-based Hardware + =================================================== + Driver by smf + Board notes by The Guru + H8/3002 and Golgo13 support by R. Belmont based on work by The_Author and DynaChicken + JVS Support by R. Belmont + + Notes: + - technodr, kartduel: Calibrate controls by turning on the service mode switch (F2) while holding service coin (9). + + Issues: + - not all games work due to either banking, dma or protection issues. + - graphics are glitchy in some games. + - sws2001 crashes at random times in-game, and always after the opening video. You can spam insert coin and start to get in-game. + - sws2000 also crashes after opening video + - toukon3 has garbage graphics + +Namco System 12 - Arcade Playstation-based Hardware +=================================================== + +Game & software revision Company/Year CPU board Mother board Daughter board Keycus +------------------------------------------------------------------------------------------------------------------------ +Aqua Rush (AQ1/VER.A1) (C) Namco, 1999 COH-700 SYSTEM12 MOTHER(C) SYSTEM12 M5F2 KC053 +Attack Pla-Rail (AP1/VER.A) (C) Tomy/Namco, 1998 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M5F4 KC032 +Derby Quiz My Dream Horse (MDH1/VER.A2) (C) Namco, 1998 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M10X64 KC035 +Ehrgeiz (EG1/VER.A) (C) Square/Namco, 1998 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M4F6 KC021 +Ehrgeiz (EG2/VER.A) (C) Square/Namco, 1998 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M4F6 KC021 +Ehrgeiz (EG3/VER.A) (C) Square/Namco, 1998 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M4F6 KC021 +Fighting Layer (FTL3/VER.A) (C) Arika/Namco, 1998 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M5F4 KC037 +Fighting Layer (FTL0/VER.A) (C) Arika/Namco, 1998 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M5F4 KC037 +Ghoul Panic (OB2/VER.A) (C) Namco/Raizing,1999 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M4F6 KC045 +Oh! Bakyuuun (OB1/VER.A) (C) Namco/Raizing,1999 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M4F6 KC045 +Golgo 13 (GLG1/VER.A) (C) Raizing/Namco,1999 COH-700 SYSTEM12 MOTHER(C) SYSTEM12 M8F6 KC054 +Golgo 13 Kiseki no Dandou (GLS1/VER.A) (C) Raizing/Namco,2000 COH-700 SYSTEM12 MOTHER(C) SYSTEM12 M8F6 KC059 +Kaiun Quiz (KW1/VER.A1) (C) Namco/MOSS, 1999 COH-700 SYSTEM12 MOTHER(C) SYSTEM12 M10X64 KC050 +Kart Duel (KTD1/VER.A) (C) Namco, 2000 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M4F0 KC057 +Libero Grande (LG2/VER.A) (C) Namco, 1997 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M8F2F KC014 +Techno Drive (TH1/VER.B) (C) Namco, 1998 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M8F2F KC056 +Mr Driller (DRI3/VER.A2) (C) Namco, 1999 COH-700 SYSTEM12 MOTHER(C) SYSTEM12 M8F2F KC048 +Mr Driller (DRI1/VER.A2) (C) Namco, 1999 COH-700 SYSTEM12 MOTHER(C) SYSTEM12 M8F2F KC048 +Paca Paca Passion (PPP1/VER.A2) (C) Produce/Namco,1999 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M8F2F KC038 +Paca Paca Passion Special (PSP1/VER.A) (C) Produce/Namco,1999 COH-700 SYSTEM12 MOTHER(C) SYSTEM12 M5F2 KC052 +Paca Paca Passion 2 (PKS1/VER.A) (C) Produce/Namco,1999 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M5F2 KC046 +Gunbarl (GNB4/VER.A) (C) Namco, 1999 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M4F0 KC042 +Point Blank 2 (GNB5/VER.A) (C) Namco, 1999 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M4F0 KC042 +Soul Calibur (SOC11/VER.A2) (C) Namco, 1998 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M5F2 KC020 +Soul Calibur (SOC11/VER.B) (C) Namco, 1998 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M5F2 KC020 +Soul Calibur (SOC11/VER.C) (C) Namco, 1998 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M5F4 KC020 +Soul Calibur (SOC13/VER.B) (C) Namco, 1998 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M5F4 KC020 +Soul Calibur (SOC13/VER.C) (C) Namco, 1998 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M5F4 KC020 +Soul Calibur (SOC14/VER.B) (C) Namco, 1998 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M5F4 KC020 +Soul Calibur (SOC14/VER.C) (C) Namco, 1998 COH-700 SYSTEM12 MOTHER JO 11-04-98 none +Super World Stadium '98 (SS81/VER.A) (C) Namco, 1998 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M4F6 KC025 +Super World Stadium '99 (SS91/VER.A3) (C) Namco, 1999 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M5F4 KC043 +Super World Stadium 2000 (SS01/VER.A3) (C) Namco, 2000 COH-700 SYSTEM12 MOTHER(C) SYSTEM12 M5F4 KC055 +Super World Stadium 2001 (SS11/VER.A2) (C) Namco, 2001 COH-716 SYSTEM12 MOTHER(C) SYSTEM12 F2M5 KC061 +Tenkomori Shooting (TKM1/VER.A1) (C) Namco, 1998 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M4F6 KC036 +Tenkomori Shooting (TKM2/VER.A1) (C) Namco, 1998 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M4F6 KC036 +Tekken 3 (TET1/VER.A) (C) Namco, 1996 COH-700 SYSTEM12 MOTHER SYSTEM12 M8F2F KC006 +Tekken 3 (TET2/VER.A) (C) Namco, 1996 COH-700 SYSTEM12 MOTHER SYSTEM12 M8F2F KC006 +Tekken 3 (TET3/VER.A) (C) Namco, 1996 COH-700 SYSTEM12 MOTHER SYSTEM12 M8F2F KC006 +Tekken 3 (TET3/VER.B) (C) Namco, 1996 COH-700 SYSTEM12 MOTHER SYSTEM12 M8F2F KC006 +Tekken 3 (TET2/VER.C) (C) Namco, 1996 COH-700 SYSTEM12 MOTHER SYSTEM12 M8F2F KC006 +Tekken 3 (TET2/VER.D) (C) Namco, 1996 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M8F2F KC006 +Tekken 3 (TET3/VER.D) (C) Namco, 1996 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M8F2F KC006 +Tekken 3 (TET1/VER.E1) (C) Namco, 1996 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M8F2F KC006 +Tekken 3 (TET2/VER.E1) (C) Namco, 1996 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M8F2F KC006 +Tekken Tag Tournament (TEG3/VER.C1) (C) Namco, 1999 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M8F4 KC044 +Tekken Tag Tournament (TEG3/VER.B) (C) Namco, 1999 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M8F4 KC044 +Toukon Retsuden 3 (TR1/VER.A) (C) Namco, 1997 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M8F2F KC019 +Truck Kyosokyoku (TKK2/VER.A) (C) Namco, 2000 COH-700 SYSTEM12 MOTHER(C) SYSTEM12 M8F6 KC056 + +Wanted Games +------------ +Aerosmith - Quest for Fame (C) Namco, 1999 (flyer date) +http://www.bandainamcogames.co.jp/am/vg/questforfame/ +https://flyers.arcade-museum.com/videogames/show/2167#gallery-1 +https://flyers.arcade-museum.com/videogames/show/2167#gallery-2 + +Soul Calibur Ver.B (C) Namco, 1998 (flyer date) +https://flyers.arcade-museum.com/?page=flyer&db=videodb&id=1009&image=1 +https://flyers.arcade-museum.com/?page=flyer&db=videodb&id=4766&image=1 +Probably doesn't exist + +Submarines (C) Namco, 1999 (flyer date) +https://flyers.arcade-museum.com/?page=flyer&db=videodb&id=5531&image=1 +https://www.youtube.com/watch?v=k-JbUTWcFjg +Unreleased but was demonstrated at the 1999 Amusement Machine Operator's Union (AMOU) tradeshow in Tokyo. +Was possibly a sequel to Namco's 1978 'Submarine'. + +Tekno Werk (C) Namco, 1999 +A music game with two 17-key Yamaha keyboards side by side for 2 players +Video: https://www.youtube.com/watch?v=uGlt0HM67l8 + +The Namco System 12 system comprises 3 mandatory PCB's.... +MOTHER PCB - This is the main PCB. It holds all sound circuitry, sound ROMs, program ROMs, shared RAM, bank-switching + logic, controller/input logic (including sound CPU) and some video output circuitry. + There are three known revisions of this PCB. The 3rd revision has some extra circuitry for analog controls, + some of the PALs are different and it has the capability to use 1x TSOP56 ROM in the program location, + instead of the regular TSOP40/48 ROMs. The first 2 revisions appear to be identical. +CPU PCB - All games use the exact same PCB. Contains main CPU/RAM and GPU/Video RAM +ROM PCB - There are nine known revisions of this PCB (so far). They're mostly identical except for the type and + number of ROMs used. Most have a PAL and a CPLD known as a 'KEYCUS'. Some also have an additional CPLD for + protection. + +And 4 game-specific/optional PCBs.... +NETWORK PCB - Used to connect 2 PCBs together using standard USB cables. The board plugs in where the CPU board would + normally be, and the CPU board plugs into another connector on the Network PCB. Seems to be only used on + Kart Duel, Libero Grande, Tekken 3 and Ehrgeiz (so far?) +GUN I/F PCB - Used to connect and control the light guns. The board plugs in where the CPU board would + normally be, and the CPU board plugs into another connector on the GUN I/F PCB. The guns plug into this + PCB directly, no extra gun hardware is needed. Used only on Ghoul Panic and Point Blank 2 so far. +CDXA PCB - Used on Truck Kyosokyoku to control the CDROM drive. The board plugs in where the CPU board would + normally be, and the CPU board plugs into another connector on the CDXA PCB. +V233 DECO PCB-This is the I/O board used by Truck Kyosokyoku. It contains a custom Namco C78 (Hitachi H8/3334) and one + EPROM. + +Each game has a 3 or 4 digit letter code assigned to it which is printed on a small sticker and placed on the underside +of the main PCB. +The 4 digit code is then proceeded by a number (generally 1, 2 or 3), then 'Rev.' then A/B/C/D/E which denotes the software +revision, and in some cases a sub-revision such as 1 or 2 (usually only listed in the test mode). +The first 1 denotes a Japanese version. 2 (and maybe 3) denotes a World version. For general use there are no other numbers +used other than 1, 2, or 3. There is one exception so far. Point Blank 2 was first produced on System 11 hardware. To +solve a naming conflict, the System 12 version uses a '4' to denote a Japanese version and a '5' to denote a World version. +For World versions usually only the main program is changed, the rest of the ROMs are the Japanese region code '1' ROMs. +See the Main PCB and ROM Daughterboard PCB texts below for more details on ROM naming specifics. + +Main PCB +-------- +1st Revision +SYSTEM12 MOTHER PCB 8661960105 (8661970105) +SYSTEM12 MOTHER PCB 8661960106 (8661970106) + +2nd Revision +SYSTEM12 MOTHER (B) PCB 8661961000 (8661971000) + +3rd Revision +SYSTEM12 MOTHER (C) PCB (System11 Plus) 8661961101 (8661971101) +Rev. (C) Main Board is only slightly different to the other revs. Mostly some PALs are different and the +PCB is wired for 1x 32M TSOP56 FlashROM (replaces 2E & 2J) and 2x 16M TSOP48 FlashROMs (replaces 2R/2P/2N/2L). +One other difference is that the motherboard has a serial number sticker on it and the program ROMs also contain +that same serial number, so all the games running on the Rev. C mother board have serialised ROMs. I'm not sure why, +they're not exactly _easily_ traceable and no one cares either way ;-) + |--------------------------------------------------------------| +|-| SOUND.11S |--------------| AT28C16 | +| |--------------| | +| |------|J103 | +| |-----| | C352 | %PRG.2R | +| |H8/ | |------| | +|J |3002 | 2061ASC-1 PRG.2P | +|A |-----| 14.7456MHz | +|M %PRG.2N | +|M |-------| | +|A | | PRG.2L | +| | C416 | | +| J110 N341256 | | | +| N341256 |-------| %PRG.2J | +| DSW(2) MOT1 *PRG.2F R4543 | +|-| %PRG.2E | + | | + | MOT6 MOT5 MOT2 MOT4 | +|-| 3V_BATT| +|N *D6345 6734 6358 MB88347 | +|A MOT7 MOT3 | +|M | +|C LC78832M CXA1779P | +|O 3414A J111 PQ30RV21 | +|4 |--------------------------| | +|8 |--------------------------| | +|-| | + |LA4705 J109 ADM485 | + | VOL J108 J107 J106 J105 J104 | + |--------------------------------------------------------------| +(logic chips omitted from the PCB layout) + +Notes: + * : These parts only on MOTHER (C) PCB + % : These parts not on MOTHER (C) PCB + J103 : Custom Namco connector for plug-in ROM PCB + J104 : JAMMA2 Power Connector (only 5V/12V/0V used). Note! This has common connections and is + powered by the JAMMA connector as well. It's presence is purely for convenience when + connecting to a JVS-only cabinet. + J105/J106 : JAMMA2 15 PIN VGA D-Type connector (x2) for video output (output sync can be 15kHz or 31kHz) + To enable this feature, ensure a VGA cable is connected to this port when the PCB is booted. + The PCB will detect it and output the video using this connector. If there is an option in test + mode in the 'DISPLAY TEST' option, enabling 'Non-Interlace' mode will give much sharper graphics. + J107 : JAMMA2 RCA Connectors (x4) for twin stereo audio output + J108 : JAMMA2 USB Connector for Controls. Note! To enable JVS/JAMMA2 controls, a Namco JVS adapter + module must be connected to this port. This port is NOT compatible with common PC USB controls. + J109 : 3-pin connector (populated only on MOTHER (C) PCB, labelled on PCB 'AUDIO OUT') + J110 : 4-pin connector (purpose unknown, 2 outer pins labelled on PCB 'VCC' & 'GND') + J111 : Custom Namco connector for plug-in CPU PCB + MB88347 : Fujitsu MB88347 8-bit 8-Channel D/A Converter with OP AMP Output Buffers (SOIC16) + 6358 : Toshiba TD6358N Frequency Synthesizer for TV/CATV (SOIC8) + 6734 : MAX734 +12V 120mA Flash Memory Programming Supply Switching Regulator (SOIC8) + 3414A : NJM3414A 70mA Dual Op Amp (SOIC8) + LC78832M : Sanyo LM78832M 2-Channel 16-Bit D/A Converter LSI with 2 On-Chip Digital Filters (SOIC20) + 2061ASC-1 : IC Designs 2061ASC-1 Programmable Clock Generator (SOIC16), master input of 14.7456MHz + R4543 : EPSON Real Time Clock Module (SOIC14) + DSW(2) : 2-Position DIP Switch (All OFF) + N341256 : NKK N341256 32k x8 SRAM (x2, SOJ28) + H8/3002 : Sound CPU, Hitachi H8/3002 HD6413002F17 (QFP100), clocked at 16.737MHz + C416 : Namco custom C416 (QFP176) + C352 : Namco custom C352 PCM sound chip (QFP100), clocked at 29.168MHz, from 2061 pin 9 + MOT1 : PALCE 22V10H (PLCC28, labelled 'S12MOT1A') + *Replaced by PALCE 22V10H (PLCC28, labelled 'S12MOT1C') on MOTHER (C) PCB + MOT2 : PALCE 22V10H (PLCC28, labelled 'S12MOT2A') + *Replaced by PALCE 22V10H (PLCC28, labelled 'S12MOT2C') on MOTHER (C) PCB + MOT3 : PALCE 16V8H (PLCC20, labelled 'S12MOT3A') + *Replaced by PALCE 16V8H (PLCC20, labelled 'S12MOT3C') on MOTHER (C) PCB + MOT4 : PALCE 22V10H (PLCC28, labelled 'S12MOT4A') + MOT5 : PALCE 22V10H (PLCC28, labelled 'S12MOT5A') + MOT6 : PALCE 22V10H (PLCC28, labelled 'S12MOT6A') + MOT7 : PALCE 16V8H (PLCC20, labelled 'S12MOT7A') + AT28C16 : Atmel AT28C16 2k x8 EEPROM (SOIC24) + ADM485 : Analog Devices ADM485JR 5V Low Power EIA RS-485 Transceiver (SOIC8) + CXA1179P : Sony CXA1779P TV/Video Circuit RGB Pre-Driver (DIP28) + LA4705 : Sanyo LA4705 15W 2-Channel Power Amplifier (SIP18) + VOL : Master Volume Potentiometer + PQ30RV21 : Sharp PQ30RV21 5V to 3.3V Voltage Regulator + 3V_BATT : Sony CR2032 3 Volt Coin Battery + D6345 : NEC uPD6345 Serial 8-bit Shift Register IC (SOIC16) + + PRG.2L/PRG.2P: Main program ROMs, Intel 28F016S5 2M x8 FLASHROM (both TSOP40) + or Fujitsu 29F016A 2M x8 FLASHROM (both TSOP48) + These ROMs are populated on the following games.... + + Test Mode S/W + Game Sticker Revision MOTHER PCB + -------------------------------------------------------------------- + Aqua Rush AQ1 Ver.A AQ1/VER.A1 MOTHER(C) (ROMs serialised) + Attack Pla-Rail AP1 Ver.A none MOTHER(B) + Derby Quiz My Dream Horse MDH1 Ver.A MDH1/VER.A2 MOTHER(B) + Ehrgeiz EG3 Ver.A EG3/VER.A MOTHER(B) + Golgo 13 GLG1 Ver.A GLG1/VER.A MOTHER(C) (ROMs serialised) + Golgo 13 Kiseki no Dandou GLS1 Ver.A GLS1/VER.A MOTHER(C) (ROMs serialised) + Kaiun Quiz KW1 Ver.A KW1/VER.A1 MOTHER(C) (ROMs serialised) + Libero Grande LG2 Ver.A LG2/VER.A MOTHER(B) + Mr Driller DRI3 Ver.A DRI3/VER.A2 MOTHER(C) (ROMs serialised) + Mr Driller DRI1 Ver.A DRI1/VER.A2 MOTHER(C) (ROMs serialised) + Oh! Bakyuuun OB1 Ver.A OB1/VER.A MOTHER(B) + Paca Paca Passion PPP1 Ver.A PPP1/VER.A2 MOTHER(B) + Paca Paca Passion 2 PKS1 Ver.A PKS1/VER.A MOTHER(B) + Paca Paca Passion SP PSP1 Ver.A PSP1/VER.A MOTHER(C) (ROMs serialised) + Point Blank 2 GNB5 Ver.A none MOTHER(B) + Soul Calibur SOC1 Ver.A SOC11/VER.A2 MOTHER(B) + Soul Calibur SOC3 Ver.B SOC13/VER.B MOTHER(B) + Soul Calibur SOC1 Ver.C SOC11/VER.C MOTHER(B) + Soul Calibur SOC4 Ver.B SOC14/VER.B MOTHER(B) + Super World Stadium 2000 SS01 Ver.A SS01/VER.A3 MOTHER(C) (ROMs serialised) + Super World Stadium 2001 SS11 Ver.A SS11/VER.A2 MOTHER(C) (ROMs serialised) + Tekken Tag Tournament TEG3 Ver.B TEG3/VER.B MOTHER(B) + Tekken Tag Tournament TEG3 Ver.B TEG3/VER.C1 MOTHER(B) + Truck Kyosokyoku TKK2 Ver.A none MOTHER(C) (ROMs serialised) + + Note: Games with 'none' for S/W Revision have a date in the test menu in the 'OTHER' item + + PRG.2N/PRG.2R: Main program ROMs \ Intel 28F016S5 2M x8 FLASHROM (for 2N, TSOP40) + / Intel 28F008SA 1M x8 FLASHROM (for 2R, TSOP40) + These ROMs are not populated on any System12 PCB dumped so far. Probably they are completely + unused on any game since they were phased out with the Rev (C) main board. + + PRG.2F: Main program ROM (only on MOTHER (C) PCB) - Intel E28F0320 4M x8 FLASHROM (TSOP56) + This ROM is not populated on any System12 PCB dumped so far. + + PRG.2J/PRG.2E: Main program ROMs, Fujitsu 29F016 2M x8 FLASHROM (both TSOP48) + These ROMs are populated on the following games.... + + Test Mode S/W + Game Sticker Revision MOTHER PCB + -------------------------------------------------------------------- + Attack Pla-Rail AP1 Ver.A none MOTHER(B) + Ehrgeiz EG2 Ver.A EG2/VER.A MOTHER(B) + Fighting Layer FTL3 Ver.A FTL3/VER.A MOTHER(B) + Fighting Layer FTL1 Ver.A FTL0/VER.A MOTHER(B) + Ghoul Panic OB2 Ver.A OB2/VER.A MOTHER(B) + Soul Calibur SOC1 Ver.B SOC11/VER.B MOTHER(B) + Soul Calibur TET1 Ver.C SOC14/VER.C MOTHER (factory upgraded from Tekken 3 to Soul Calibur) + Super World Stadium '98 SS81 Ver.A SS81/VER.A MOTHER(B) + Super World Stadium '99 SS91 Ver.A SS91/VER.A3 MOTHER(B) + Tekken 3 TET1 Ver.A TET1/VER.E1 MOTHER(B) + Tekken 3 TET2 Ver.A TET2/VER.A MOTHER + Tekken 3 TET3 Ver.A TET3/VER.A MOTHER + Tekken 3 TET3 Ver.B TET3/VER.B MOTHER + Tekken 3 TET3 Ver.D TET3/VER.D MOTHER + Tenkomori Shooting TKM1 Ver.A TKM1/VER.A1 MOTHER(B) + Tenkomori Shooting TKM2 Ver.A TKM2/VER.A1 MOTHER(B) + + SOUND.11S : Fujitsu 29F400TA-90 512k x8 EEPROM (holds H8/3002 program, SOP44) + This ROM is not labelled with any other markings except the manufacturer and chip type. The ROM labels + in the archives are simply made up for convenience. + + +ROM Daughterboard PCB +---------------------- +This PCB holds the remainder of the ROMs, used for graphics and the 3D geometry. +There are 8 known types of ROM daughterboards used on S12 games (so far). +All of the PCBs are the same size (approx 2" x 7") containing one custom connector and some mask ROMs/flash ROMs, a PLCC +PAL and a KEYCUS (which is a PLCC44 CPLD) and in some cases an extra TQFP CPLD. +The PCBs are named with a special coding. First a letter M, denoting mask ROM (always SOP44), then a number denoting how +many ROMs of that type, then another letter F, denoting FLASHROM (always TSOP40/48/56), then a number denoting how many +ROMs of that type. That number is always the maximum amount of that ROM type that can be used on the PCB. The actual number +of ROMs populated on the PCB can be less. + +******** +*Type 1* +******** +SYSTEM 12 M4F6 PCB 8661960901 (8661970901) +|----------------------------------------------------------| +|WAVE0.IC2 IC4 FL3L.IC5 | +| FL3U.IC6 | +| FL2L.IC7 ROM0L.IC12 | +| FL2U.IC8 | +| FL1L.IC9 | +|WAVE1.IC1 FL1U.IC10 ROM0U.IC11 | +| IC3 |-------------------| | +| |-------------------| | +|----------------------------------------------------------| +Notes: + This PCB has zero Ohm resistor jumpers to set the ROM sizes. + Note X means 'not populated', O means 'populated' + |----------|----|----| |----------|----| + | MASK | R6 | R7 | | FLASH | R8 | + |----------|----|----| |----------|----| + | WAVE 32M | X | O | | NORMAL | X | + | 64M | O | X | |32M FLASH | O | + |----------|----|----| |----------|----| + + WAVEx: 64M SOP44 mask ROM (R6 populated) + FLx : Intel E28F016 TSOP40 16M FlashROM or Fujitsu 29F016A TSOP48 16M FlashROM (R8 not populated) + ROM0x: 64M SOP44 mask ROM (size fixed at 64M, no configure options) + IC3 : MACH211 CPLD (PLCC44, labelled 'KEYCUS' and stamped with 'KC' & a 3-digit number which is different per game.) + IC4 : PALCE 16V8H (PLCC20, PCB labelled 'A_DECO', chip stamped 'A DECO') + +This PCB is used on: + + Software +Game Revision PCB KEYCUS ROMs Populated +------------------------------------------------------------------------------------------------------------------ +Ehrgeiz EG2/VER.A SYSTEM 12 M4F6 PCB 8661960901 (8661970901) KC021 EG1 WAVE0 + EG1 ROM0U, EG1 ROM0L + EG1 FL1U, EG1 FL1L, EG1 FL2U + EG1 FL2L, EG1 FL3U, EG1 FL3L + +Ehrgeiz EG3/VER.A SYSTEM 12 M4F6 PCB 8661960901 (8661970901) KC021 EG1 WAVE0 + EG1 ROM0U, EG1 ROM0L + EG1 FL1U, EG1 FL1L, EG1 FL2U + EG1 FL2L, EG1 FL3U, EG1 FL3L + +Tenkomori TKM1/VER.A1 SYSTEM 12 M4F6 PCB 8661960901 (8661970901) KC036 TKM1 WAVE0, TKM1 WAVE1 +Shooting TKM1 ROM0U, TKM1 ROM0L + TKM1 FL1U, TKM1 FL1L, TKM1 FL2U + TKM1 FL2L, TKM1 FL3U, TKM1 FL3L + +Tenkomori TKM2/VER.A1 SYSTEM 12 M4F6 PCB 8661960901 (8661970901) KC036 TKM1 WAVE0, TKM1 WAVE1 +Shooting TKM1 ROM0U, TKM1 ROM0L + TKM1 FL1U, TKM1 FL1L, TKM1 FL2U + TKM1 FL2L, TKM1 FL3U, TKM1 FL3L + +Ghoul Panic OB2/VER.A Same PCB but sticker says.... KC045 OB1 WAVEB.IC2 + 'SYSTEM 12 M4F0 PCB 8661962000' OB1 PRG0U.IC11, OB1 PRG0L.IC12 + (i.e no FlashROMs) + +Oh! Bakyuuun OB1/VER.A Same PCB but sticker says.... KC045 OB1 WAVEB.IC2 + 'SYSTEM 12 M4F0 PCB 8661962000' OB1 PRG0U.IC11, OB1 PRG0L.IC12 + (i.e no FlashROMs) + (i.e no FlashROMs) + +Kart Duel KTD1/VER.A Same PCB but sticker says.... KC057 KTD1 WAVE-0.IC2 + 'SYSTEM 12 M4F0 PCB 8661962000' KTD1 ROM-0U.IC11, KTD1 ROM-0L.IC12 + (i.e no FlashROMs) + +Point Blank 2 GNB5/VER.A Same PCB but sticker says.... KC042 GNB1 WAVEB.IC2 + 'SYSTEM 12 M4F0 PCB 8661962000' GNB1 PRG0U.IC11, GNB1 PRG0L.IC12 + (i.e no FlashROMs) (note these ROMs contains the same data as) + (the ones used on System 11 Point Blank 2) + +Gunbarl GNB4/VER.A Same PCB but sticker says.... KC042 GNB1 WAVEB.IC2 + 'SYSTEM 12 M4F0 PCB 8661962000' GNB1 PRG0U.IC11, GNB1 PRG0L.IC12 + (i.e no FlashROMs) (note these ROMs contains the same data as) + (the ones used on System 11 Point Blank 2) + +Super World SS81/VER.A SYSTEM 12 M4F6 PCB 8661960901 (8661970901) KC025 SS81 WAVE0, SS81 WAVE1 +Stadium '98 SS81 FL1U, SS81 FL1L, SS81 FL2U + SS81 FL2L, SS81 FL3U, SS81 FL3L + +******** +*Type 2* +******** +SYSTEM 12 M5F2 PCB 8661961300 (8661971300) +|----------------------------------------------------------| +|WAVE0.IC2 IC4 FL4.IC5 FL3.IC6 | +| | +| ROM0.IC7 | +| | +| ROM1.IC8 | +|WAVE1.IC1 | +| IC3 |-------------------| ROM2.IC9 | +| |-------------------| | +|----------------------------------------------------------| +Notes: + This PCB has zero Ohm resistor jumpers to set the ROM sizes. + Note X means 'not populated', O means 'populated' + |----------|----|----| + | MASK | R6 | R7 | + |----------|----|----| + | WAVE 32M | X | O | + | 64M | O | X | + |----------|----|----| + + |----------|----| |------|---|---|---|---|---|----| The Flash ROMs can be configured to 3.3V 64M Strata Flash + | FLASH | R8 | |FLASH |R11|R12|C1 |C2 |D1 |REG1| when used with some extra components (voltage regulator/diode + |----------|----| |------|---|---|---|---|---|----| /resistors/caps etc). However, the extra component positions + | NORMAL | X | | 5V | O | O | X | X | X | X | are not populated on any of the games dumped so far. + |64M STRATA| O | | 3.3V | X | X | O | O | O | O | + |----------|----| |------|---|---|---|---|---|----| + + WAVEx: 64M SOP44 mask ROM (R6 populated) + FLx : Intel E28F320J5 TSOP56 32M FlashROM (R11 & R12 populated) + ROMx : 64M SOP44 mask ROM (size fixed at 64M, no configure options) + IC3 : MACH211 CPLD or Cypress CY37064 CPLD (PLCC44, labelled 'KEYCUS' and stamped with 'KC' & a 3-digit number which + is different per game.) + IC4 : PALCE 16V8H (PLCC20, PCB labelled 'A_DECO', chip stamped 'M5F4') + +This PCB is used on: + + Software +Game Revision PCB KEYCUS ROMs Populated +------------------------------------------------------------------------------------------------------------------ +Soul Calibur SOC11/VER.A2 SYSTEM 12 M5F2 PCB 8661961300 (8661971300) KC020 SOC1 WAVE0 + SOC1 ROM0, SOC1 ROM1, SOC1 ROM2 + SOC1 FL3, SOC1 FL4 + +Soul Calibur SOC11/VER.B SYSTEM 12 M5F2 PCB 8661961300 (8661971300) KC020 SOC1 WAVE0 + SOC1 ROM0, SOC1 ROM1, SOC1 ROM2 + SOC1 FL3, SOC1 FL4 + +Aqua Rush AQ1/VER.A1 Same PCB but sticker says.... KC053 AQ1 WAVE0 + 'SYSTEM 12 M5F0 PCB 8661962200' AQ1 ROM0, AQ1 ROM1 + (i.e no FlashROMs) + +Paca Paca PKS1/VER.A Same PCB but sticker says.... KC046 PKS1 WAVE0, PKS1 WAVE 1 +Passion 2 'SYSTEM 12 M5F0 PCB 8661962200' PKS1 ROM0, PKS1 ROM1, PKS1 ROM2 + (i.e no FlashROMs) + +Paca Paca PSP1/VER.A Same PCB but sticker says.... KC052 PSP1 WAVE0, PSP1 WAVE 1 +Passion Special 'SYSTEM 12 M5F0 PCB 8661962200' PSP1 ROM0, PSP1 ROM1, PSP1 ROM2 + (i.e no FlashROMs) + +******** +*Type 3* +******** +SYSTEM 12 M5F4 PCB 8661961200 (8661971200) +|----------------------------------------------------------| +|WAVE0.IC2 IC4 | +| FL4L.IC5 ROM0.IC9 | +| FL4H.IC6 | +| FL3L.IC7 ROM1.IC10 | +| FL3H.IC8 | +|WAVE1.IC1 ROM2.IC11 | +| IC3 |-------------------| | +| |-------------------| | +|----------------------------------------------------------| +Notes: + This PCB has zero Ohm resistor jumpers to set the ROM sizes. + Note X means 'not populated', O means 'populated' + |----------|----|----| |----------|----| + | MASK | R6 | R7 | | FLASH | R8 | + |----------|----|----| |----------|----| + | WAVE 32M | X | O | | NORMAL | X | + | 64M | O | X | |64M STRATA| O | + |----------|----|----| |----------|----| + + WAVEx: 64M SOP44 mask ROM (R6 populated) + FLx : Fujitsu 29F016 TSOP48 16M FlashROM (R8 not populated) + ROMx : 64M SOP44 mask ROM (size fixed at 64M, no configure options) + IC3 : MACH211 CPLD (PLCC44, labelled 'KEYCUS' and stamped with 'KC' & a 3-digit number which is different per game.) + IC4 : PALCE 16V8H (PLCC20, PCB labelled 'A_DECO', chip stamped 'M5F4') + +This PCB is used on: + + Software +Game Revision PCB KEYCUS ROMs Populated +------------------------------------------------------------------------------------------------------------------- +Attack Pla-Rail AP1/VER.A SYSTEM 12 M5F4 PCB 8661961200 (8661971200) KC032 AP1 WAVE0, AP1 WAVE1 + AP1 ROM0, AP1 ROM1, AP1 ROM2 + AP1 FL4L, AP1 FL4H + AP1 FL3L, AP1 FL3H + +Fighting Layer FTL3/VER.A SYSTEM 12 M5F4 PCB 8661961200 (8661971200) KC037 FTL1 WAVE0, FTL1 WAVE1 + FTL1 ROM0, FTL1 ROM1, FTL1 ROM2 + FTL1 FL4L, FTL1 FL4H + FTL1 FL3L, FTL1 FL3H + +Fighting Layer FTL0/VER.A SYSTEM 12 M5F4 PCB 8661961200 (8661971200) KC037 FTL1 WAVE0, FTL1 WAVE1 + FTL1 ROM0, FTL1 ROM1, FTL1 ROM2 + FTL1 FL4L, FTL1 FL4H + FTL1 FL3L, FTL1 FL3H + +Super World SS91/VER.A3 SYSTEM 12 M5F4 PCB 8661961200 (8661971200) KC027 SS91 WAVE0, SS91 WAVE1 +Stadium '99 (sticker KC043) SS91 ROM0, SS91 ROM1 + SS91 FL4L, SS91 FL4H + SS91 FL3L, SS91 FL3H + +Super World SS01/VER.A3 SYSTEM 12 M5F4 PCB 8661961200 (8661971200) KC055 SS01 WAVE0, SS01 WAVE1 +Stadium 2000 SS01 ROM0, SS01 ROM1, SS01 ROM2 + SS01 FL3L, SS01 FL3H + +Soul Calibur SOC13/VER.B SYSTEM 12 M5F4 PCB 8661961200 (8661971200) KC020 SOC1 WAVE0 + SOC1 ROM0, SOC1 ROM1, SOC1 ROM2 + SOC1 FL4L, SOC1 FL4H + SOC1 FL3L, SOC1 FL3H + +Soul Calibur SOC11/VER.C SYSTEM 12 M5F4 PCB 8661961200 (8661971200) KC020 SOC1 WAVE0 + SOC1 ROM0, SOC1 ROM1, SOC1 ROM2 + SOC1 FL4L, SOC1 FL4H + SOC1 FL3L, SOC1 FL3H + +Soul Calibur SOC14/VER.B SYSTEM 12 M5F4 PCB 8661961000 (8661971000) none SOC1 WAVE0 + SOC1 ROM0, SOC1 ROM1, SOC1 ROM2 + SOC1 FL4L, SOC1 FL4H + SOC1 FL3L, SOC1 FL3H + + +******** +*Type 4* +******** +SYSTEM 12 M8F2F PCB 8661960301 (8661970301) +|----------------------------------------------------------| +|WAVE0.IC5 ROM0L.IC6 ROM0U.IC9 | +| | +| ROM1L.IC7 ROM1U.IC10 FL3U.IC13 | +| | +| ROM2L.IC8 ROM2U.IC11 | +|WAVE1.IC4 IC2 IC3 FL3L.IC12 | +| IC1 |-------------------| | +| |-------------------| | +|----------------------------------------------------------| +Notes: + This PCB has zero Ohm resistor jumpers to set the ROM sizes. + + |-------|----| + | W128M | R3 | Wave ROMs are 128M if R3 is populated + | W32M | R4 | Wave ROMs are 32M if R4 is populated + | W64M | R5 | Wave ROMs are 64M if R5 is populated + | M64M | R6 | Mask ROMs are 64M if R6 is populated + | M32M | R7 | Mask ROMs are 32M if R7 is populated + |-------|----| + + WAVEx: 32M/64M SOP44 mask ROM + FLx : Fujitsu 29F016 TSOP48 16M FlashROM (size fixed at 16M, no configure options) + ROMx : 32M/64M SOP44 mask ROM + IC1 : MACH211 CPLD or Cypress CY37064 CPLD (PLCC44, labelled 'KEYCUS' and stamped with 'KC' & a 3-digit number which + is different per game.) + IC2 : 74F139 logic IC + IC3 : 74HC157 logic IC + +This PCB is used on: + + Software +Game Revision PCB KEYCUS ROMs Populated Jumpers +--------------------------------------------------------------------------------------------------------------------- +Tekken 3 TET1/VER.E1 SYSTEM 12 M8F2F PCB 8661960301 (8661970301) KC006 TET1 WAVE0, TET1 WAVE1 R4, R7 + TET1 ROM0U, TET1 ROM1U + TET1 ROM2U, TET1 ROM0L + TET1 ROM1L, TET1 ROM2L + TET1 FL3L, TET1 FL3U + +Tekken 3 TET2/VER.A SYSTEM 12 M8F2F PCB 8661960301 (8661970301) KC006 TET1 WAVE0, TET1 WAVE1 R4, R7 + TET1 ROM0U, TET1 ROM1U + TET1 ROM2U, TET1 ROM0L + TET1 ROM1L, TET1 ROM2L + TET1 FL3L, TET1 FL3U + +Tekken 3 TET3/VER.A SYSTEM 12 M8F2F PCB 8661960301 (8661970301) KC006 TET1 WAVE0, TET1 WAVE1 R4, R7 + TET1 ROM0U, TET1 ROM1U + TET1 ROM2U, TET1 ROM0L + TET1 ROM1L, TET1 ROM2L + TET1 FL3L, TET1 FL3U + +Tekken 3 TET3/VER.B SYSTEM 12 M8F2F PCB 8661960301 (8661970301) KC006 TET1 WAVE0, TET1 WAVE1 R4, R7 + TET1 ROM0U, TET1 ROM1U + TET1 ROM2U, TET1 ROM0L + TET1 ROM1L, TET1 ROM2L + TET1 FL3L, TET1 FL3U + +Paca Paca PPP1/VER.A2 Same PCB but sticker says.... KC038 PPP1 WAVE0, PPP1 WAVE1 R5, R7 +Passion 'SYSTEM 12 M8F0 PCB 8661961700' PPP1 ROM0U, PPP1 ROM1U + (i.e no FlashROMs) PPP1 ROM2U, PPP1 ROM0L + PPP1 ROM1L, PPP1 ROM2L + +Mr Driller DRI3/VER.A2 Same as Paca Paca Passion KC048 DRI1 WAVE0 R5, R7 + DRI1 ROM0U, DRI1 ROM0L + +Mr Driller DRI1/VER.A2 Same as Paca Paca Passion KC048 DRI1 WAVE0 R5, R7 + DRI1 ROM0U, DRI1 ROM0L + +Libero Grande LG2/VER.A SYSTEM 12 M8F2F PCB 8661960301 (8661970301) KC014 LG1 WAVE0 R4, R7 + LG1 ROM0U, LG1 ROM0L + LG1 FL3L, LG1 FL3U + +Toukon TR1/VER.A SYSTEM 12 M8F2F PCB 8661960301 (8661970301) KC019 TR1 WAVE0, TR1 WAVE1 R4, R7 +Retsuden 3 TR1 ROM0U, TR1 ROM0L + +******** +*Type 5* +******** +SYSTEM 12 M8F4 PCB 8661961901 (8661971901) +|----------------------------------------------------------| +| IC3 *ROM0O.IC13 | +| FLEL.IC4 FLOL.IC6 ROM0E.IC9 | +| | +| WAVE0.IC1 FLEU.IC5 FLOU.IC7 *ROM1O.IC14 | +|*WAVE1.IC12 ROM1E.IC10 | +| IC8 | +| IC2 |-------------------| *ROM2O.IC15 | +| |-------------------| ROM2E.IC11 | +|----------------------------------------------------------| +Notes: + This PCB has zero Ohm resistor jumpers to set the ROM sizes. + Note X means 'not populated', O means 'populated' + |----------|----|----| + | MASK | R2 | R3 | + |----------|----|----| + | WAVE 32M | O | X | + | 64M | X | O | + |----------|----|----| + + * : These parts on other side of PCB + WAVEx: 32M/64M SOP44 mask ROM + FLx : Fujitsu 29F016 TSOP48 16M FlashROM (size fixed at 16M, no configure options) + ROMx : 64M SOP44 mask ROM (size fixed at 64M, no configure options) + IC2 : MACH211 CPLD (PLCC44, labelled 'KEYCUS' and stamped with 'KC' & a 3-digit number which is different per game.) + IC3 : PALCE 22V10H (PLCC28, labelled 'S12M840A') + IC8 : ALTERA MAX EPM7128STC100-10 FPGA (TQFP100, labelled 'S12M841') + +This PCB is used on: + + Software +Game Revision PCB KEYCUS ROMs Populated Jumper Notes +----------------------------------------------------------------------------------------------------------------------------------- +Tekken Tag TEG3/VER.C1 SYSTEM 12 M8F4 PCB 8661961901 (8661971901) KC044 TEG1 WAVE0, TEG1 WAVE1 R3 +Tournament TEG1 ROM0E, TEG1 ROM1E + TEG1 ROM2E, TEG1 ROM0O + TEG1 ROM1O, TEG1 ROM2O + TEG1 FLEL, TEG1 FLEU + TEG1 FLOL, TEG1 FLOU + +Tekken Tag TEG3/VER.B SYSTEM 12 M8F4 PCB 8661961901 (8661971901) KC044 TEG1 WAVE0, TEG1 WAVE1 R3 IC8 labelled 'S12M841A' +Tournament TEG1 ROM0E, TEG1 ROM1E ROM board can not be + TEG1 ROM2E, TEG1 ROM0O swapped to a different + TEG1 ROM1O, TEG1 ROM2O TEG3 revision + TEG1 FLEL, TEG1 FLEU + TEG1 FLOL, TEG1 FLOU + +******** +*Type 6* +******** +SYSTEM 12 M8F6 PCB 8661961800 (8661971800) +|----------------------------------------------------------| +| IC3 *ROM0U.IC14 | +| FL3L.IC4 FL4U.IC7 ROM0L.IC10 | +| | +| WAVE0.IC1 FL3U.IC5 FL5L.IC8 *ROM1U.IC15 | +|*WAVE1.IC13 ROM1L.IC11 | +| FL4L.IC6 FL5U.IC9 | +| IC2 |-------------------| *ROM2U.IC16 | +| |-------------------| ROM2L.IC12 | +|----------------------------------------------------------| +Notes: + This PCB has zero Ohm resistor jumpers to set the ROM sizes. + Note X means 'not populated', O means 'populated' + |----------|----|----| + | MASK | R2 | R3 | + |----------|----|----| + | WAVE 32M | O | X | + | 64M | X | O | + |----------|----|----| + + * : These parts on other side of PCB + WAVEx: 32M/64M SOP44 mask ROM + FLx : Fujitsu 29F016 TSOP48 16M FlashROM (size fixed at 16M, no configure options) + ROMx : 64M SOP44 mask ROM (size fixed at 64M, no configure options) + IC2 : Cypress CY37064 CPLD (PLCC44, labelled 'KEYCUS' and stamped with 'KC' & a 3-digit number which is different + per game.) + IC3 : PALCE 22V10H (PLCC28, PCB labelled 'A_DECO', chip stamped 'S12M8F6') + +This PCB is used on: + + Software +Game Revision PCB KEYCUS ROMs Populated Jumper +--------------------------------------------------------------------------------------------------------------------- +Golgo 13 GLG1/VER.A SYSTEM 12 M8F6 PCB 8661961800 (8661971800) KC054 GLG1 WAVE0, GLG1 WAVE1 R3 + GLG1 ROM0L, GLG1 ROM1L + GLG1 ROM2L, GLG1 ROM0U + GLG1 ROM1U, GLG1 ROM2U + GLG1 FL3L, GLG1 FL3U + GLG1 FL4L, GLG1 FL4U + GLG1 FL5L, GLG1 FL5U + +Golgo 13 GLS1/VER.A SYSTEM 12 M8F6 PCB 8661961800 (8661971800) KC059 GLS1 WAVE0, GLS1 WAVE1 R3 +Kiseki no Dandou GLS1 ROM0L, GLS1 ROM1L + GLS1 ROM2L, GLS1 ROM0U + GLS1 ROM1U, GLS1 ROM2U + GLS1 FL3L, GLS1 FL3U + GLS1 FL4L, GLS1 FL4U + GLS1 FL5L, GLS1 FL5U + +Truck none Same PCB but sticker says.... KC056 TKK1 WAVE0 R3 +Kyosokyoku (sticker: 'SYSTEM 12 M8F6-4 PCB 8661962400' TKK1 ROM0L, TKK1 ROM1L + TKK2 VER.A) TKK1 ROM2L, TKK1 ROM0U + TKK1 ROM1U, TKK1 ROM2U + TKK1 FL3L, TKK1 FL3U + + +******** +*Type 7* +******** +SYSTEM 12 M10X64 PCB 8661961500 (8661971500) +|----------------------------------------------------------| +|WAVE0 | +| ROM3L ROM3U ROM2L ROM2U ROM1L ROM0L | +| IC4 | +| ROM1U ROM0U | +| | +|WAVE1 | +| KEYCUS |-------------------| | +| |-------------------| | +|----------------------------------------------------------| +Notes: + This PCB has zero Ohm resistor jumpers to set the ROM sizes. + Note X means 'not populated', O means 'populated' + |----------|----|----| + | MASK | R4 | R5 | + |----------|----|----| + | WAVE 32M | O | X | + | 64M | X | O | + |----------|----|----| + + WAVEx : 32M/64M SOP44 mask ROM + ROMx : 64M SOP44 mask ROM (size fixed at 64M, no configure options) + KEYCUS: CY37064 CPLD (PLCC44, labelled 'KEYCUS' and stamped with 'KC' & a 3-digit number which is different per game.) + IC4 : PALCE 16V8H (PLCC20, PCB labelled 'A_DECO', chip stamped 'S12M10X') + +This PCB is used on: + + Software +Game Revision PCB KEYCUS ROMs Populated +----------------------------------------------------------------------------------------------------------- +Derby Quiz My MDH1/VER.A2 SYSTEM 12 M10X64 PCB 8661961500 (8661971500) KC035 MDH1 WAVE0 +Dream Horse MDH1 ROM0L, MDH1 ROM1L + MDH1 ROM2L, MDH1 ROM0U + MDH1 ROM1U, MDH1 ROM2U + +Kaiun Quiz KW1/VER.A1 SYSTEM 12 M10X64 PCB 8661961500 (8661971500) KC050 KW1 WAVE0 + KW1 ROM0L, KW1 ROM1L + KW1 ROM2L, KW1 ROM0U + KW1 ROM1U, KW1 ROM2U + +******** +*Type 8* +******** +JO 11-04-98 +|----------------------------------------------------------| +|WAVE0.IC2 IC4 | +| FL4.IC5 ROM0-1.IC9A ROM1-1.IC10A ROM2-1.IC11A| +| | +| FL3.IC6 ROM0.IC9 ROM1.IC10 ROM2.IC11 | +| | +|WAVE1.IC1 | +| KEYCUS |-------------------| | +| |-------------------| | +|----------------------------------------------------------| +Notes: + This PCB _almost_ looks like a bootleg. There are no Namco markings, no Namco part numbers, and all ROMs are unmarked + except for the original manufacturer part number. The PCB does not have zero Ohm resistor jumpers, but instead, blobs + of solder to jumper pads which are not labelled anywhere on the PCB. + There is a location for a KEYCUS chip, but it's not populated. There is a PAL but it's not marked except for the + original manufacturer part number. The main PCB used by this game was a Tekken 3 which has been converted. The game + it was converted to (Soul Calibur) was more popular but has an unusual ROM board that might not have been available + and this PCB might have been produced to replace it, perhaps at a lower cost as well? + The actual dump of the ROMs on this PCB match the original Soul Calibur dump exactly (a type 2 ROM PCB), even though + the ROM sizes and types are different. + + WAVEx : MR27C3252CZ 32M SOP44 mask ROM + ROMx : MR27C3252CZ 32M SOP44 mask ROM + FLx : MR27C3252CZ 32M SOP44 mask ROM + KEYCUS: Not populated + IC4 : GAL16V8B (PLCC20, no other markings) + +This PCB is used on: + + Software +Game Revision PCB KEYCUS ROMs Populated +----------------------------------------------------------------------------------------------------------- +Soul Calibur SOC14/VER.C JO 11-04-98 none WAVE0, WAVE1 + ROM0, ROM0-1, ROM1 + ROM1-1, ROM2, ROM2-1 + FL3, FL4 + +******** +*Type 9* +******** +SYSTEM 12 F2M5 PCB 8661962600 (8661972600) +|----------------------------------------------------------| +|WAVE0.IC2 IC4 | +| ROM0.IC7 | +| FL1L.IC5 FL1U.IC6 | +| ROM1.IC8 | +| | +|WAVE1.IC1 ROM2.IC9| +| IC3 |-------------------| | +| |-------------------| | +|----------------------------------------------------------| +Notes: + WAVEx: 64M SOP44 mask ROM + FLx : Intel Flash DA28F640J5 64M FlashROM (SSOP56) + ROMx : 64M SOP44 mask ROM + IC3 : CY37064 CPLD (PLCC44, labelled 'KEYCUS' and stamped with 'KC' & a 3-digit number which is different per game.) + IC4 : GAL22V10 (PLCC28, PCB labelled 'S12F2M', chip stamped 'S12F2M') + +This PCB is used on: + + Software +Game Revision PCB KEYCUS ROMs Populated +------------------------------------------------------------------------------------------------------------------- +Super World SS11/VER.A2 SYSTEM 12 F2M5 PCB 8661962600 (8661972600) KC061 SS01 WAVE0, SS01 WAVE1 +Stadium 2001 SS01 ROM0, SS01 ROM1, SS01 ROM2 + SS11FL1L, SS11FL1U + + +CPU PCB +------- + +There are 2 known types (so far). Type 1 is the most common. + +Type 1 +------ +COH-700 GP-15 (manufactured by Sony) +|-------------------------------------------| +| 74F74 74ALS08 | +| | +| |------| | +| |KM4132| |-----------| |-----------| | +| |G271Q | | SONY | | SONY | | +| |------| | CXD8654Q | | CXD8661R | | +| | | | | | +| |------| | | | | | +| |KM4132| | | | | | +| |G271Q | |-----------| |-----------| | +| |------| 53.693MHz 100MHz | +| | +| | +| | +| | +| KM416V1204 KM416V1204 | +| MC44200FT | +| * * | +| | +|-------------------------------------------| +Notes: + KM4132G271Q: Samsung Electronics 128k x 32-bit x 2 Banks SGRAM (x2, QFP100) + KM416V1204 : Samsung Electronics 1M x16 EDO DRAM (x2, TSOP44(40)) + * : Unpopulated positions for KM416V1204 EDO DRAM + CXD8654Q : Sony CXD8654Q GPU (QFP208) + CXD8661R : Sony CXD8661R R3000A-based CPU (QFP208) + MC44200FT : Motorola MC44200FT Triple 8-bit Video DAC (QFP44) + +Type 2 +------ + SYSTEM12 COH716 PCB 8661962301 (8661972301) + (manufactured by Namco, probably in 2001, under license from Sony) + Component layout is identical to COH-700 PCB with some updated components. Generally + it has 4X the amount of program RAM that the COH-700 PCB has. + KM4132G271Q replaced with OKI 54V25632A 128k x 32-bit x 2 Banks SGRAM (x2, QFP100) + KM416V1204 replaced with Samsung Electronics K4E6416120D 4M x16 EDO DRAM (x2, TSOP44) + Updated Sony CXD8561CQ GPU (QFP208) + Updated Sony CXD8606BQ R3000A-based CPU (QFP208) + Updated Motorola MC141685FT Video DAC (QFP44) + + The Type 2 PCB is used only by Super World Stadium 2001 (so far) + Note, this CPU PCB was tested with some of the older S12 games and + they worked fine, so it seems to be 100% compatible with all S12 games. + The older COH-700 CPU board will also work with SWS2001. + + +NETWORK PCB +----------- +SYSTEM12 HSC PCB 8661960601 (8661970601) +|---------------------------------------------------| +| USB-A USB-B | +| DS8921 | +| | +| J2 74LVT245 | +| |-| N341256 N341256 | +| | |74LVT245 N341256 N341256 | +| | | | +| | |74LVT244 |------| | +| | | |--------| | C422 | | +| | |74F244 | | | | | +| | | | C446 | |------| | +| | |74F244 | | | +| | | | | | +| | |74F244 | | | +| | | |--------| 74F74 |-----| | +| | |74F244 2061ASC-1 |H8/ | | +| |-| |3002 | | +| S12HSC3A S12HSC1A 14.7456MHz |-----| | +| | +| S12HSC2A 74HC32 | +| | +| | +|---------------------------------------------------| +Notes: + DS8921 : National DS8921ATM Differential Line Driver and Receiver Pair (SOIC8) + USB-A : Standard USB type A connector, PCB labelled '(TX)' + USB-B : Standard USB type B connector, PCB labelled '(RX)' + C446 : Namco Custom C446 (QFP160) + C422 : Namco Custom C422 (QFP64) + 2061ASC-1: IC Designs 2061ASC-1 programmable clock generator (SOIC16) + N341256 : NKK N341256 32k x8 SRAM (x4, SOJ28) + H8/3002 : Hitachi H8/3002 HD6413002F17 Microcontroller (QFP100), clocked at 14.7456MHz. + S12HSC1A : PALCE 16V8H (PLCC20, labelled 'S12HSC1A') + S12HSC2A : PALCE 22V10H (PLCC28, labelled 'S12HSC2A') + S12HSC3A : PALCE 22V10H (PLCC28, labelled 'S12HSC3A') + J2 : Custom Namco connector for plug-in CPU PCB + + This PCB was found on the following games (so far).... + + Libero Grande (LG2/VER.A) + Tekken 3 (TET2/VER.A) + Ehrgeiz (EG2/VER.A) + Kart Duel (KTD1/VER.A) + + Note that the games will also work without this PCB, minus the network functionality. + + +Gun Board (This is the same Gun Board used with Point Blank 2 on System 11 hardware) +--------- + +SYSTEM11 GUN I/F A4111 PCB 8645960701 (8645970701) +|-------------------------------------------| +| |-------| |-------| |-------| | +| |S11GUN3| |S11GUN2| |S11GUN1| | +| | | | | | | | +| | | | | | | | +| |-------| |-------| |-------| | +| | +| | +| | +| SLA4060 | +|J3 |---------| | +| | S11GUN0 | | +| | | | +| | | | +| | | AV9170 | +| |---------| | +| | +| J2 | +| | +| J1 | +|-------------------------------------------| +Notes: + SLA4060 - Sanken Electric Co. NPN Darlington Transistor Array (SIP12) + J1 - 96 pin connector joining to the mother board (connector below the PCB) + J2 - 96 pin connector joining to the CPU board (connector above the PCB) + J3 - 10 pin connector joining to the gun via a 24V solenoid driver board (for the gun opto/recoil) + S11GUN0 - PLCC84 FPGA (not populated) + S11GUN1 - Altera Max EPM7128STC100-10 EPLD (QFP100, not populated) + S11GUN2 - Altera Max EPM7128STC100-10 EPLD (QFP100, labelled 'S11GUN2) + S11GUN3 - Altera Max EPM7128STC100-10 EPLD (QFP100, not populated) + AV9170 - Integrated Circuit Systems Inc. AV9170 Clock Synchronizer and Multiplier, Voltage Controlled Oscillator (SOIC8) + + This PCB was found on the following games (so far).... + Ghoul Panic (OB2/VER.A) + Oh! Bakyuuun (OB1/VER.A) + Gunbarl (GNB4/VER.A) + Point Blank 2 (GNB5/VER.A) + +To connect a normal (i.e. HAPP) light gun only 4 wires are needed. +Those are +5V, GND, trigger and gun optical sensor using pins 5 & 9 of J3 and pins 1, 3 & 22 (both solder and parts side) +of the JAMMA connector. A Namco gun can also be connected the same way, with or without the kickback solenoid. + +J3 connector: +Pin 1 - Not Used +Pin 2 - Not Used +Pin 3 - Gun 1 Solenoid +Pin 4 - Player 1 Start Button Lamp +Pin 5 - Gun 1 Sensor +Pin 6 - GND +Pin 7 - Gun 2 Solenoid +Pin 8 - Player 2 Start Button Lamp +Pin 9 - Gun 2 Sensor +Pin 10- Not Used + +JAMMA Harness: +Pin 1 Parts Side - GND +Pin 3 Parts Side - +5V +Pin 22 Parts Side - Gun 1 Trigger +Pin 22 Solder Side - Gun 2 Trigger + + +I/O Board (for use with Truck Kyosokyoku) +--------- + +V233 DECO PCB +2532960102 (2532970102) +|-------------------------------------------| +| DSW(2) JP1 14.7456MHz | +|LED | +| C78 MB3771 | +|J8 TKK1PRG0.IC7 | +| | +| SLA4031 SLA4031 SLA4031 SLA4031 SLA4031| +| | +|J9 J1 J2 J3 | +|-------------------------------------------| +Notes: + TKK1PRG0.IC7 - 27C1001 EPROM (DIP28) + SLA4031 - Sanken SLA4031 Quad High-Voltage, High-Current NPN Darlington transistor + array for sink drive with built-in flywheel diode (SIL12) + C78 - Hitachi H8/3334 Micro-controller (PLCC84) + JP1 - Jumper to configure the H8/3334 for internal or external ROM usage. Set to 2-3 (EXT) + J1/2/3/8 - Multi-pin connectors joining to controls and main PCB + J9 - Power input connector + +I/O board (for Attack Pla-Rail) +------------------------------- +Attack Pla-Rail requires an I/O board to boot. Several I/O boards are accepted including TSS-I/O, FCA, ASCA3, ASCA5 +and also the common JVS I/O boards manufactured by Sega. +The game uses 3 buttons and a 5k potentiometer for the lever. The button signals come from the I/O board. +The lever must be wired to analog port 0 (pin B22 parts side) of the Namco 48-way edge connector. + +*/ + +#include "emu.h" + +#include "namco_settings.h" +#include "namcos12_cdxa.h" + +#include "bus/jvs/cyberlead.h" +#include "bus/jvs/namcoio.h" +#include "cpu/h8/h83002.h" +#include "cpu/psx/psx.h" +#include "machine/at28c16.h" +#include "machine/ram.h" +#include "machine/rtc4543.h" +#include "sound/c352.h" +#include "video/psx.h" + +#include "screen.h" +#include "speaker.h" + +#include "technodr.lh" + +#define LOG_BANK (1U << 1) +#define LOG_DMA (1U << 2) +#define LOG_SHARED (1U << 3) +#define LOG_GUN (1U << 4) + +//#define VERBOSE (LOG_GENERAL | LOG_BANK | LOG_DMA /*| LOG_SHARED */| LOG_GUN) +//#define LOG_OUTPUT_FUNC osd_printf_info + +#include "logmacro.h" + +#define LOGDMA(...) LOGMASKED(LOG_DMA, __VA_ARGS__) +#define LOGGUN(...) LOGMASKED(LOG_GUN, __VA_ARGS__) +#define LOGBANK(...) LOGMASKED(LOG_BANK, __VA_ARGS__) +#define LOGSHARED(...) LOGMASKED(LOG_SHARED, __VA_ARGS__) + +namespace { + +class namcos12_state : + public driver_device +{ +public: + namcos12_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_screen(*this, "screen"), + m_ram(*this, "maincpu:ram"), + m_gpu(*this, "gpu"), + m_sub(*this, "sub"), + m_adc(*this, "sub:adc"), + m_jvs(*this, "jvs"), + m_jvs_system(*this, "JVS_SYSTEM"), + m_jvs_player(*this, "JVS_PLAYER%u", 1U), + m_jvs_coin(*this, "JVS_COIN%u", 1U), + m_rtc(*this, "rtc"), + m_settings(*this, "namco_settings"), + m_sharedram(*this, "sharedram"), + m_mainrom(*this, "maincpu:rom"), + m_bankedroms(*this, "bankedroms"), + m_mainbank(*this, "mainbank"), + m_alt_bank(false), + m_boot_hack(false), + m_has_tektagt_dma(false), + m_jamma(true), + m_jvs_support(true), + m_jvs_sense(jvs_port_device::sense::None) + { + } + + // CPU PCB COH700 + void coh700(machine_config &config) ATTR_COLD + { + /* basic machine hardware */ + CXD8661R(config, m_maincpu, XTAL(100'000'000)); + + subdevice<ram_device>("maincpu:ram")->set_default_size("4M"); // 2x KM416V1204s + + /* video hardware */ + CXD8654Q(config, m_gpu, 53.693175_MHz_XTAL, 0x200000, m_maincpu.target()).set_screen("screen"); // 2x KM4132G271Qs + + namcos12_base(config); + } + + void coh700b(machine_config &config) ATTR_COLD + { + coh700(config); + + // 12 bytes in ram are checked early in the boot sequences, how it gets into memory is not currently known. + // or what happens for the games that don't check + m_boot_hack = true; + } + + // CPU PCB COH716 + void coh716(machine_config &config) ATTR_COLD + { + /* basic machine hardware */ + CXD8606BQ(config, m_maincpu, XTAL(100'000'000)); + + subdevice<ram_device>("maincpu:ram")->set_default_size("16M"); // 2x K4E6416120Ds + + /* video hardware */ + CXD8561CQ(config, m_gpu, 53.693175_MHz_XTAL, 0x200000, m_maincpu.target()).set_screen("screen"); // 2x 54V25632As + + namcos12_base(config); + + m_boot_hack = true; + } + + void namcos12_base(machine_config &config) ATTR_COLD + { + m_maincpu->set_addrmap(AS_PROGRAM, &namcos12_state::maincpu_map); + m_maincpu->subdevice<psxdma_device>("dma")->install_read_handler(5, psxdma_device::read_delegate(&namcos12_state::namcos12_rom_read, this)); + + SCREEN(config, "screen", SCREEN_TYPE_RASTER).screen_vblank().set(FUNC(namcos12_state::namcos12_sub_irq)); + + /* basic machine hardware */ + H83002(config, m_sub, 16934400); // frequency based on research (superctr) + m_sub->set_addrmap(AS_PROGRAM, &namcos12_state::sub_program_map); + m_sub->read_port6().set(FUNC(namcos12_state::sub_port6_r)); + m_sub->read_port7().set_ioport("DSW"); + m_sub->read_port8().set(FUNC(namcos12_state::sub_port8_r)); + m_sub->write_port8().set(FUNC(namcos12_state::sub_port8_w)); + m_sub->read_porta().set(FUNC(namcos12_state::sub_porta_r)); + m_sub->write_porta().set(FUNC(namcos12_state::sub_porta_w)); + m_sub->read_portb().set(FUNC(namcos12_state::sub_portb_r)); + m_sub->write_portb().set(FUNC(namcos12_state::sub_portb_w)); + m_sub->read_adc<0>().set_ioport("ADC_0"); + m_sub->read_adc<1>().set_ioport("ADC_1"); + m_sub->read_adc<2>().set_ioport("ADC_2"); + m_sub->read_adc<3>().set_ioport("ADC_3"); + + JVS_PORT(config, m_jvs, jvs_port_devices, nullptr); + for (const auto &option : m_jvs->option_list()) + m_jvs->set_option_machine_config(option.first.c_str(), [&config, this](device_t *device) + { + configure_jvs(config, dynamic_cast<device_jvs_interface &>(*device)); + }); + + m_sub->sci_set_external_clock_period(0, attotime::from_hz(14.7456_MHz_XTAL / 8)); + m_sub->write_sci_tx<0>().set(m_jvs, FUNC(jvs_port_device::txd)); + m_jvs->rxd().set(m_sub, FUNC(h8_device::sci_rx_w<0>)); + m_jvs->sense().set([this](uint8_t state) { m_jvs_sense = state; }); + + m_sub->write_sci_tx<1>().set(m_settings, FUNC(namco_settings_device::data_w)); + m_sub->write_sci_clk<1>().set(m_rtc, FUNC(rtc4543_device::clk_w)).invert(); + m_sub->write_sci_clk<1>().append(m_settings, FUNC(namco_settings_device::clk_w)); + + NAMCO_SETTINGS(config, m_settings, 0); + + RTC4543(config, m_rtc, XTAL(32'768)); + m_rtc->data_cb().set(m_sub, FUNC(h8_device::sci_rx_w<1>)); + + AT28C16(config, "at28c16", 0); + + /* sound hardware */ + SPEAKER(config, "speaker", 2).front(); + + c352_device &c352(C352(config, "c352", 25401600, 288)); + c352.add_route(0, "speaker", 1.00, 0); + c352.add_route(1, "speaker", 1.00, 1); + //c352.add_route(2, "speaker", 1.00); // Second DAC not present. + //c352.add_route(3, "speaker", 1.00); + } + + void aplarail(machine_config &config) ATTR_COLD + { + coh700(config); + + m_jvs->set_default_option("namco_cyberlead"); + } + +protected: + // driver_device + virtual void driver_start() override ATTR_COLD + { + m_mainbank->configure_entries(0, memregion("bankedroms")->bytes() / 0x200000, memregion("bankedroms")->base(), 0x200000); + m_mainbank->set_entry(0); + + m_dmaoffset = 0; + m_bankoffset = 0; + m_sub_port8 = 0; + m_sub_porta = 0; + m_sub_portb = 0x50; + m_tektagdmaoffset = 0; + + save_item(NAME(m_dmaoffset)); + save_item(NAME(m_bankoffset)); + save_item(NAME(m_jvs_sense)); + save_item(NAME(m_sub_porta)); + save_item(NAME(m_sub_portb)); + save_item(NAME(m_tektagdmaoffset)); + } + + virtual void driver_reset() override ATTR_COLD + { + if (m_boot_hack) + { + uint8_t *rom = m_mainrom->base() + 0x20280; + uint8_t *ram = m_ram->pointer() + 0x10000; + + std::copy_n(rom, 12, ram); + } + } + + virtual void maincpu_map(address_map &map) ATTR_COLD + { + map(0x1f000000, 0x1f000003).nopr(); + map(0x1f000000, 0x1f000001).w(FUNC(namcos12_state::bankoffset_w)); + map(0x1f008000, 0x1f008003).nopw(); + map(0x1f010000, 0x1f010003).nopw(); + map(0x1f018000, 0x1f018003).nopw(); + map(0x1f080000, 0x1f083fff).rw(FUNC(namcos12_state::sharedram_r), FUNC(namcos12_state::sharedram_w)); + map(0x1f140000, 0x1f140fff).rw("at28c16", FUNC(at28c16_device::read), FUNC(at28c16_device::write)).umask32(0x00ff00ff); /* EEPROM */ + map(0x1f1bff08, 0x1f1bff0f).nopw(); // ?? + map(0x1f700000, 0x1f70ffff).w(FUNC(namcos12_state::dmaoffset_w)); + map(0x1fa00000, 0x1fbfffff).bankr("mainbank"); /* banked ROMs */ + } + + void sub_program_map(address_map &map) ATTR_COLD + { + map(0x000000, 0x07ffff).rom(); + map(0x080000, 0x08ffff).ram().share(m_sharedram); + map(0x280000, 0x287fff).rw("c352", FUNC(c352_device::read), FUNC(c352_device::write)); + map(0x300000, 0x300003).r(FUNC(namcos12_state::in_r)); + map(0x300010, 0x300011).noprw(); // golgo13 writes here a lot, possibly also a wait state generator? + map(0x300030, 0x300031).noprw(); // most S12 bioses write here simply to generate a wait state. there is no deeper meaning. + } + + virtual void bankoffset_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0) + { + m_mainbank->set_entry(data); + LOGBANK("%s bankoffset_w( %08x, %08x, %08x ) %08x\n", machine().describe_context(), offset, data, mem_mask); + } + + uint16_t sharedram_r(offs_t offset, uint16_t mem_mask = ~0) + { + LOGSHARED("%s sharedram_r( %08x, %08x ) %08x\n", machine().describe_context(), (offset * 4), mem_mask, m_sharedram[offset]); + return m_sharedram[offset]; + } + + void sharedram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0) + { + LOGSHARED("%s sharedram_w( %08x, %08x, %08x )\n", machine().describe_context(), (offset * 4), data, mem_mask); + COMBINE_DATA(&m_sharedram[offset]); + } + + void dmaoffset_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0) + { + m_dmaoffset = (offset * 2) | (data << 16); + + LOGDMA("%s dmaoffset_w( %08x, %08x, %08x ) %08x\n", machine().describe_context(), offset, data, mem_mask, m_dmaoffset); + } + + void namcos12_rom_read(uint32_t *psxram, uint32_t address, int32_t size) + { + int offset = m_has_tektagt_dma ? m_tektagdmaoffset : m_dmaoffset; + + // Depending on the game, the method of specifying the main ROM region is different. + // Some games set exp_base to 0x1f300000 (toukon3, tenkomor) and others set the msb of the DMA offset to 1 (tekken3, sws2000 for example). + const bool is_mainrom = BIT( offset, 31 ) || m_maincpu->exp_base() == 0x1f300000; + + memory_region *region; + + if ( is_mainrom ) + { + region = m_mainrom; + offset &= 0xffffff; // although the area should really be masked with 0x3fffff, the bootloader used by sws2000, sws2001, kaiunqz intentionally go over by a small amount when copying the program code into memory + LOGDMA("%s namcos12_rom_read( %08x, %08x ) boot %08x\n", machine().describe_context(), address, size, offset); + } + else + { + region = m_bankedroms; + offset &= 0x7fffffff; + + if (!m_has_tektagt_dma && m_alt_bank) // alt bank method stores the upper bits of the bank into m_n_bankoffset + offset += m_bankoffset * 0x200000; + } + + LOGDMA("%s namcos12_rom_read( %08x, %08x ) %s %08x\n", machine().describe_context(), address, size, is_mainrom ? "mainrom" : "game", offset); + + m_has_tektagt_dma = false; + + address /= 4; + offset /= 2; + + uint16_t *source = (uint16_t *)region->base(); + int32_t romleft = (int32_t(region->bytes() / 2) - offset) / 2; + if (size > romleft) + { + LOGDMA("%s namcos12_rom_read dma truncated %d to %d passed end of rom\n", machine().describe_context(), size, romleft); + size = romleft; + } + + int32_t ramleft = int32_t(m_ram->size() / 4) - address; + if (size > ramleft) + { + LOGDMA("%s namcos12_rom_read dma truncated %d to %d passed end of ram\n", machine().describe_context(), size, ramleft); + size = ramleft; + } + + while (size > 0) + { + psxram[address] = source[offset ^ NATIVE_ENDIAN_VALUE_LE_BE(0, 1)] | + (source[(offset + 1) ^ NATIVE_ENDIAN_VALUE_LE_BE(0, 1)] << 16); + address++; + offset += 2; + size--; + } + } + + uint8_t sub_port6_r() + { + return ((m_jvs_sense != jvs_port_device::sense::Initialized) << 1) | 0xfd; + } + + uint8_t sub_port8_r() + { + return ((m_jvs_sense != jvs_port_device::sense::None) << 4) | 0x02 | 0xed; + } + + void sub_port8_w(uint8_t data) + { + m_sub_port8 = data; + } + + // emulation of the Epson R4543 real time clock + // in System 12, bit 0 of H8/3002 port A is connected to its chip enable + // the actual I/O takes place through the H8/3002's serial port B. + + uint8_t sub_porta_r() + { + return 0xff; + } + + void sub_porta_w(uint8_t data) + { + m_sub_porta = data; + m_rtc->ce_w(BIT(m_sub_portb, 5) && BIT(m_sub_porta, 0)); + m_settings->ce_w(BIT(m_sub_portb, 5) && !BIT(m_sub_porta, 0)); + } + + uint8_t sub_portb_r() + { + return m_sub_portb | 0x7f; + } + + void sub_portb_w(uint8_t data) + { + // bit 1-4 ? + m_sub_portb = (m_sub_portb & 0x80) | (data & 0x7f); + m_rtc->ce_w(BIT(m_sub_portb, 5) && BIT(m_sub_porta, 0)); + m_settings->ce_w(BIT(m_sub_portb, 5) && !BIT(m_sub_porta, 0)); + m_jvs->rts(BIT(m_sub_portb, 0)); + } + + void namcos12_sub_irq(int state) + { + m_sub->set_input_line(1, state ? ASSERT_LINE : CLEAR_LINE); + m_adc->adtrg_w(state); + m_sub_portb = (state << 7) | (m_sub_portb & 0x7f); + } + + uint8_t in_r(offs_t offset) + { + if (m_jamma) + { + // convert JVS inputs to JAMMA if no JVS I/O board is being used. + if (offset == 0) + { + const auto p2 = m_jvs_player[1]->read(); + return ~bitswap<8>(p2, 7, 15, 0, 1, 5, 4, 3, 2); // P2 START/P2 BUTTON3/P2 BUTTON2/P2 BUTTON1/P2 UP/P2 DOWN/P2 LEFT/P2 RIGHT + } + else if (offset == 1) + { + const auto p1 = m_jvs_player[0]->read(); + return ~bitswap<8>(p1, 7, 15, 0, 1, 5, 4, 3, 2); // P1 START/P1 BUTTON3/P1 BUTTON2/P1 BUTTON1/P1 UP/P1 DOWN/P1 LEFT/P1 RIGHT + } + else if (offset == 2) + { + const auto system = m_jvs_system->read(); + const auto p1 = m_jvs_player[0]->read(); + const auto p2 = m_jvs_player[1]->read(); + const auto c1 = m_jvs_coin[0]->read(); + const auto c2 = m_jvs_coin[1]->read(); + return ~((BIT(p1, 6) << 7) | (BIT(system, 7) << 6) | // P1 SERVICE/TEST + (BIT(c1, 0) << 5) | (BIT(c2, 0) << 4) | // COIN1/COIN2 + (BIT(p1, 11) << 3) | (BIT(p2, 11) << 2) | // P1 BUTTON7/P2 BUTTON7 + (BIT(p1, 10) << 1) | (BIT(p2, 10) << 0)); // P1 BUTTON8/P2 BUTTON8 + } + else if (offset == 3) + { + const auto p1 = m_jvs_player[0]->read(); + const auto p2 = m_jvs_player[1]->read(); + return ~((bitswap<3>(p2, 12, 13, 14) << 5) | // P2 BUTTON6/P2 BUTTON5/P2 BUTTON4 + (0 << 4) | // UNKNOWN + (bitswap<3>(p1, 12, 13, 14) << 1)) | // P1 BUTTON6/P1 BUTTON5/P1 BUTTON4 + (0 << 0); // UNKNOWN + } + } + + return 0xff; + } + + virtual void configure_jvs(machine_config &config, device_jvs_interface &io) ATTR_COLD + { + if (m_jamma && m_jvs_support) + { + io.system().set_ioport("^^JVS_SYSTEM"); + io.player<0>().set_ioport("^^JVS_PLAYER1"); + io.player<1>().set_ioport("^^JVS_PLAYER2"); + io.coin<0>().set_ioport("^^JVS_COIN1"); + io.coin<1>().set_ioport("^^JVS_COIN2"); + m_jamma = false; + } + } + + required_device<psxcpu_device> m_maincpu; + required_device<screen_device> m_screen; + required_device<ram_device> m_ram; + required_device<psxgpu_device> m_gpu; + required_device<h83002_device> m_sub; + required_device<h8_adc_device> m_adc; + required_device<jvs_port_device> m_jvs; + required_ioport m_jvs_system; + required_ioport_array<2> m_jvs_player; + required_ioport_array<2> m_jvs_coin; + required_device<rtc4543_device> m_rtc; + required_device<namco_settings_device> m_settings; + required_shared_ptr<uint16_t> m_sharedram; + required_memory_region m_mainrom; + required_memory_region m_bankedroms; + memory_bank_creator m_mainbank; + + bool m_alt_bank; + bool m_boot_hack; + bool m_has_tektagt_dma; + bool m_jamma; + bool m_jvs_support; + + uint32_t m_dmaoffset; + uint16_t m_bankoffset; + uint8_t m_jvs_sense; + uint8_t m_sub_port8; + uint8_t m_sub_porta; + uint8_t m_sub_portb; + uint32_t m_tektagdmaoffset; +}; + +class namcos12_altbank_state : + public namcos12_state +{ +public: + using namcos12_state::namcos12_state; + +protected: + virtual void driver_start() override ATTR_COLD + { + namcos12_state::driver_start(); + + m_alt_bank = true; + } + + virtual void bankoffset_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0) override + { + /* + Banking notes for various alt bank games: + mdhorse, kaiunqz: + *0x1f000000 = ((val >> 0x17) & 0xe) | 8; + + golgo13, g13knd: + *0x1f000000 = ((val >> 0x17) & 0x6) + 8; + followed by + *0x1f000000 = (val >> 0x15) & 0x7; + + truckk: + *0x1f000000 = ((val >> 0x17) & 0x1e) + 8; + followed by + *0x1f000000 = (val >> 0x15) & 0x7ff; (lower bits only set for manual transfers, mask is implicit) + + sws2001: + The upper bits are set using fixed range checks: + if (val <= 0x0ffffff) + *0x1f000000 = 0x08; + else if (val >= 0x1000000 && val <= 0x1ffffff) + *0x1f000000 = 0x0a; + else if (val >= 0x2000000 && val <= 0x2ffffff) + *0x1f000000 = 0x0c; + else if (val >= 0x3000000) + *0x1f000000 = 0x0e; + + The function at 8004d01c is the same logic as above + logic for the lower 3 bits: + *0x1f000000 = (val >> 0x15) & 0x7; + */ + if ((data & 8) != 0) + m_bankoffset = (data - 8) << 2; + else + m_bankoffset = (m_bankoffset & ~0x7) | (data & 0x7); + + m_mainbank->set_entry(m_bankoffset); + + LOGBANK("%s bankoffset_w( %08x, %08x, %08x ) %08x\n", machine().describe_context(), offset, data, mem_mask, m_bankoffset); + } +}; + +class namcos12_cdxa_state : + public namcos12_altbank_state +{ +public: + namcos12_cdxa_state(const machine_config &mconfig, device_type type, const char *tag) : + namcos12_altbank_state(mconfig, type, tag), + m_cdxa_pcb(*this, "cdxa_pcb") + { + } + + void cdxa_pcb(machine_config &config) ATTR_COLD + { + m_jvs_support = false; + + coh700b(config); + + NAMCOS12_CDXA(config, m_cdxa_pcb, XTAL(14'745'600)); + m_cdxa_pcb->add_route(0, "speaker", 0.30, 0); // roughly matched the volume of speaking lines between the CDXA audio vs non-CDXA audio + m_cdxa_pcb->add_route(1, "speaker", 0.30, 1); + m_cdxa_pcb->psx_int10_callback().set("maincpu:irq", FUNC(psxirq_device::intin10)); + } + + virtual void maincpu_map(address_map &map) override ATTR_COLD + { + namcos12_altbank_state::maincpu_map(map); + + map(0x1f000000, 0x1f7fffff).m(m_cdxa_pcb, FUNC(namcos12_cdxa_device::amap)); + } + +protected: + required_device<namcos12_cdxa_device> m_cdxa_pcb; +}; + +class golgo13_state : + public namcos12_altbank_state +{ +public: + golgo13_state(const machine_config &mconfig, device_type type, const char *tag) : + namcos12_altbank_state(mconfig, type, tag), + m_gun(*this, "GUN%u", 0U) + { + } + + void golgo13(machine_config &config) ATTR_COLD + { + coh700b(config); + + m_sub->read_adc<1>().set(FUNC(golgo13_state::gunx_r)); + m_sub->read_adc<2>().set(FUNC(golgo13_state::guny_r)); + } + +protected: + uint16_t gunx_r() + { + return ((m_gun[0]->read() * 0x240) / 0x1ff) + 0x7a; + } + + uint16_t guny_r() + { + return ((m_gun[1]->read() * 0x1bf) / 0x1ff) + 0x1f; + } + + required_ioport_array<2> m_gun; +}; + +class ptblank2_state : + public namcos12_state +{ +public: + ptblank2_state(const machine_config &mconfig, device_type type, const char *tag) : + namcos12_state(mconfig, type, tag), + m_gun(*this, "GUN%u", 0U), + m_gun_recoil(*this, "Player%u_Gun_Recoil", 1U), + m_start_lamp(*this, "P%u_Start_lamp", 1U) + { + } + +protected: + virtual void driver_start() override ATTR_COLD + { + namcos12_state::driver_start(); + + m_start_lamp.resolve(); + m_gun_recoil.resolve(); + + /* HACK: patch out wait for dma 5 to complete */ + *((uint32_t *)(m_mainrom->base() + 0x331c4)) = 0; + } + + virtual void maincpu_map(address_map &map) override ATTR_COLD + { + namcos12_state::maincpu_map(map); + + map(0x1f780000, 0x1f78000f).mirror(0x800000).r(FUNC(ptblank2_state::system11gun_r)); + map(0x1f788000, 0x1f788003).mirror(0x800000).w(FUNC(ptblank2_state::system11gun_w)); + } + + uint16_t system11gun_r(offs_t offset, uint16_t mem_mask) + { + uint16_t data = 0; + + if ((data & 3) != 1) + data = m_gun[offset >> 1]->read(); + + if ((data & 3) == 3) + data++; // yend + + LOGGUN("%s system11gun_r( %08x, %08x ) %08x\n", machine().describe_context(), offset, mem_mask, data); + return data; + } + + void system11gun_w(offs_t offset, uint16_t data, uint16_t mem_mask) + { + switch (offset) + { + case 0: + m_gun_recoil[1] = BIT(~data, 0); + m_gun_recoil[0] = BIT(~data, 1); + m_start_lamp[1] = BIT(~data, 2); + m_start_lamp[0] = BIT(~data, 3); + + LOGGUN("%s system11gun_w: outputs (%08x %08x)\n", machine().describe_context(), data, mem_mask); + break; + + case 1: + LOGGUN("%s system11gun_w: start reading (%08x %08x)\n", machine().describe_context(), data, mem_mask); + break; + } + } + + required_ioport_array<4> m_gun; + output_finder<2> m_gun_recoil; + output_finder<2> m_start_lamp; +}; + +class kartduel_state : + public namcos12_state +{ +public: + kartduel_state(const machine_config &mconfig, device_type type, const char *tag) : + namcos12_state(mconfig, type, tag), + m_link_cpu(*this, "link_cpu"), + m_link_sharedram(*this, "link_sharedram") + { + } + + void kartduel(machine_config &config) ATTR_COLD + { + m_jvs_support = false; + + coh700b(config); + + H83002(config, m_link_cpu, 14.7456_MHz_XTAL); + m_link_cpu->set_addrmap(AS_PROGRAM, &kartduel_state::linkcpu_program_map); + } + +protected: + virtual void driver_reset() override ATTR_COLD + { + namcos12_state::driver_reset(); + + m_link_cpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); + } + + virtual void maincpu_map(address_map &map) override ATTR_COLD + { + namcos12_state::maincpu_map(map); + + map(0x1f780000, 0x1f78ffff).rw(FUNC(kartduel_state::link_sharedram_r), FUNC(kartduel_state::link_sharedram_w)); + map(0x1f796000, 0x1f796003).w(FUNC(kartduel_state::link_cpu_disable_w)); + map(0x1f796004, 0x1f79600b).ram(); + map(0x1f796014, 0x1f796017).ram(); + map(0x1f796020, 0x1f796023).ram(); + map(0x1f797000, 0x1f797003).ram(); + } + + void linkcpu_program_map(address_map &map) ATTR_COLD + { + map(0x000000, 0x00ffff).ram().share(m_link_sharedram); + map(0x010000, 0x01ffff).ram(); + map(0x200000, 0x2001ff).ram(); + map(0x400000, 0x400007).ram(); + map(0x410000, 0x41000f).ram(); + map(0x418002, 0x418007).ram(); + map(0xffffec, 0xffffef).ram(); + map(0xffff10, 0xffffff).ram(); + } + + uint16_t link_sharedram_r(offs_t offset) + { + return m_link_sharedram[offset]; + } + + void link_sharedram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0) + { + COMBINE_DATA(&m_link_sharedram[offset]); + } + + void link_cpu_disable_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0) + { + m_link_cpu->set_input_line(INPUT_LINE_RESET, offset ? CLEAR_LINE : ASSERT_LINE); + } + + required_device<h83002_device> m_link_cpu; + required_shared_ptr<uint16_t> m_link_sharedram; +}; + +class technodr_state : + public namcos12_state +{ +public: + technodr_state(const machine_config &mconfig, device_type type, const char *tag) : + namcos12_state(mconfig, type, tag), + m_led(*this, "led%u", 0U) + { + } + + void technodr(machine_config &config) ATTR_COLD + { + coh700(config); + + m_jvs->set_default_option("namco_emio102"); + config.set_default_layout(layout_technodr); + } + +protected: + virtual void driver_start() override ATTR_COLD + { + namcos12_state::driver_start(); + + m_led.resolve(); + } + + virtual void configure_jvs(machine_config &config, device_jvs_interface &io) override ATTR_COLD + { + namcos12_state::configure_jvs(config, io); + + io.analog_input<0>().set_ioport("^^JVS_ANALOG_INPUT1"); + io.analog_input<1>().set_ioport("^^JVS_ANALOG_INPUT2"); + io.analog_input<2>().set_ioport("^^JVS_ANALOG_INPUT3"); + io.output().set(*this, FUNC(technodr_state::technodr_output_w)); + + if (io.jvs()) + io.jvs()->set_default_option("namco_empri101"); + } + + void technodr_output_w(offs_t offset, uint64_t data, uint64_t mem_mask) + { + for (int i = 0; i < 24; i++) + if (BIT(mem_mask, i)) + m_led[(i < 16) ? i ^ 8 : i] = BIT(data, i); + } + + output_finder<24> m_led; +}; + +class tektagt_state : + public namcos12_state +{ +public: + using namcos12_state::namcos12_state; + +protected: + virtual void driver_start() override ATTR_COLD + { + namcos12_state::driver_start(); + + m_ttt_cnt = 0; + std::fill_n(m_ttt_val, 0, std::size(m_ttt_val)); + + save_item(NAME(m_ttt_cnt)); + save_item(NAME(m_ttt_val)); + } + + virtual void driver_reset() override ATTR_COLD + { + namcos12_state::driver_reset(); + + m_has_tektagt_dma = false; + } + + virtual void maincpu_map(address_map &map) override ATTR_COLD + { + namcos12_state::maincpu_map(map); + + map(0x1f700000, 0x1f700003).mirror(0x800000).r(FUNC(tektagt_state::tektagt_protection_3_r)); + map(0x1fb00000, 0x1fb00003).rw(FUNC(tektagt_state::tektagt_protection_1_r), FUNC(tektagt_state::tektagt_protection_1_w)); + map(0x1fb80000, 0x1fb80003).rw(FUNC(tektagt_state::tektagt_protection_2_r), FUNC(tektagt_state::tektagt_protection_2_w)); + } + + void tektagt_protection_1_w(offs_t offset, uint16_t data) + { + // Second dma offset or protection ref values write + + switch (offset) + { + case 0: + m_tektagdmaoffset = data; + + if (m_ttt_cnt != 2) + m_ttt_val[m_ttt_cnt] = data; + break; + case 1: + m_tektagdmaoffset |= data << 16; + + if (m_ttt_cnt != 2) + m_ttt_val[m_ttt_cnt++] |= data << 16; + break; + } + } + + uint16_t tektagt_protection_1_r(offs_t offset) + { + switch (offset) + { + case 0: + // Reads are either ignored or bit 15 is tested for a busy flag + return 0x8000; + case 1: + break; + } + + return 0; + } + + void tektagt_protection_2_w(offs_t offset, uint16_t data) + { + switch (offset) + { + case 0: + // Writes are 0 or machine().rand(), only used as a "start prot value write" trigger + m_ttt_cnt = 0; + break; + case 1: + break; + } + } + + uint16_t tektagt_protection_2_r(offs_t offset) + { + if (m_ttt_cnt == 2) + { + if (m_ttt_val[0] == 0x806d2c24 && m_ttt_val[1] == 0xd5545715) + { + if (offset == 0) + return 0x36e2; + } + else if (m_ttt_val[0] == 0x804c2c84 && m_ttt_val[1] == 0xd5545615) + { + if (offset == 0) + return 0x2651; + } + else if (m_ttt_val[0] == 0x2aaba8e6 && m_ttt_val[1] == 0x00820040) + { + if (offset == 1) + return 0x4186; + } + else if (m_ttt_val[0] == 0x2aaba592 && m_ttt_val[1] == 0x01780544) + { + if (offset == 1) + return 0x3c7d; + } + else + { + if (((m_ttt_val[1] >> 16) & 0xff) == 0xa9) + return 0x552e; + } + } + + return 0; + } + + uint16_t tektagt_protection_3_r() + { + m_has_tektagt_dma = true; + // Always ignored + return 0; + } + + int m_ttt_cnt; + uint32_t m_ttt_val[2]; +}; + +class truckk_state : + public namcos12_cdxa_state +{ +public: + truckk_state(const machine_config &mconfig, device_type type, const char *tag) : + namcos12_cdxa_state(mconfig, type, tag), + m_iocpu(*this, "iocpu") + { + } + + void truckk(machine_config &config) ATTR_COLD + { + cdxa_pcb(config); + + H83334(config, m_iocpu, 14.7456_MHz_XTAL); + m_iocpu->set_addrmap(AS_PROGRAM, &truckk_state::iocpu_program_map); + m_iocpu->write_port4().set_nop(); // ff + m_iocpu->write_port6().set_nop(); // ff + m_iocpu->read_port7().set_constant(0xff); // 00 (command?) + m_iocpu->write_port8().set_nop(); // ff + m_iocpu->read_port9().set_constant(0xff); // f9 + m_iocpu->write_port9().set_nop(); // 06 + } + +protected: + virtual void driver_start() override ATTR_COLD + { + namcos12_cdxa_state::driver_start(); + + /* + HACK: Change order of code so that the status flags are set before DMA 5 is started + Can be checked at 0x8001f6e4 + */ + uint8_t temp[5 * 4]; + memcpy(temp, m_mainrom->base() + 0x376ec, sizeof(temp)); // copy the 5 instructions that initialize statuses before DMA 5 finishes + memcpy(m_mainrom->base() + 0x376e4 + sizeof(temp), m_mainrom->base() + 0x376e4, 2 * 4); // move the 2 DMA start call instructions below where the initialization code will go + memcpy(m_mainrom->base() + 0x376e4, temp, sizeof(temp)); // write initialization code in new spot + } + + void iocpu_program_map(address_map &map) + { + map(0x0000, 0x3fff).rom().region("iocpu", 0); + map(0xc000, 0xfb7f).ram(); + } + + required_device<h83334_device> m_iocpu; +}; + + +static INPUT_PORTS_START(namcos12) + PORT_START("DSW") + PORT_DIPNAME(0x80, 0x80, DEF_STR(Service_Mode)) PORT_DIPLOCATION("DIP SW2:1") + PORT_DIPSETTING(0x80, DEF_STR(Off)) + PORT_DIPSETTING(0x00, DEF_STR(On)) + PORT_DIPNAME(0x40, 0x40, "Freeze") PORT_DIPLOCATION("DIP SW2:2") + PORT_DIPSETTING(0x40, DEF_STR(Off)) + PORT_DIPSETTING(0x00, DEF_STR(On)) + PORT_BIT(0x3f, IP_ACTIVE_LOW, IPT_UNKNOWN) + + PORT_START("JVS_SYSTEM") + PORT_SERVICE_NO_TOGGLE(0x80, IP_ACTIVE_HIGH) + + PORT_START("JVS_PLAYER1") + PORT_BIT(0x00000080, IP_ACTIVE_HIGH, IPT_START1) + PORT_BIT(0x00000040, IP_ACTIVE_HIGH, IPT_SERVICE1) + PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_8WAY + PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_8WAY + PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_8WAY + PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_8WAY + PORT_BIT(0x00000002, IP_ACTIVE_HIGH, IPT_BUTTON1) + PORT_BIT(0x00000001, IP_ACTIVE_HIGH, IPT_BUTTON2) + PORT_BIT(0x00008000, IP_ACTIVE_HIGH, IPT_BUTTON3) + PORT_BIT(0x00004000, IP_ACTIVE_HIGH, IPT_BUTTON4) + PORT_BIT(0x00002000, IP_ACTIVE_HIGH, IPT_BUTTON5) + PORT_BIT(0x00001000, IP_ACTIVE_HIGH, IPT_BUTTON6) + //PORT_BIT(0x00000800, IP_ACTIVE_HIGH, IPT_BUTTON7) + //PORT_BIT(0x00000400, IP_ACTIVE_HIGH, IPT_BUTTON8) + + PORT_START("JVS_PLAYER2") + PORT_BIT(0x00000080, IP_ACTIVE_HIGH, IPT_START2) + PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_8WAY PORT_PLAYER(2) + PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_8WAY PORT_PLAYER(2) + PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_8WAY PORT_PLAYER(2) + PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_8WAY PORT_PLAYER(2) + PORT_BIT(0x00000002, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(2) + PORT_BIT(0x00000001, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_PLAYER(2) + PORT_BIT(0x00008000, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_PLAYER(2) + PORT_BIT(0x00004000, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_PLAYER(2) + PORT_BIT(0x00002000, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_PLAYER(2) + PORT_BIT(0x00001000, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_PLAYER(2) + //PORT_BIT(0x00000800, IP_ACTIVE_HIGH, IPT_BUTTON7) PORT_PLAYER(2) + //PORT_BIT(0x00000400, IP_ACTIVE_HIGH, IPT_BUTTON8) PORT_PLAYER(2) + + PORT_START("JVS_COIN1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_COIN1) + + PORT_START("JVS_COIN2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_COIN2) + + PORT_START("ADC_0") + PORT_BIT(0x03ff, IP_ACTIVE_HIGH, IPT_UNUSED) + + PORT_START("ADC_1") + PORT_BIT(0x03ff, IP_ACTIVE_HIGH, IPT_UNUSED) + + PORT_START("ADC_2") + PORT_BIT(0x03ff, IP_ACTIVE_HIGH, IPT_UNUSED) + + PORT_START("ADC_3") + PORT_BIT(0x03ff, IP_ACTIVE_HIGH, IPT_UNUSED) +INPUT_PORTS_END + +static INPUT_PORTS_START(aplarail) + PORT_INCLUDE(namcos12) + + PORT_MODIFY("DSW") + PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DIP SW2:2") + + PORT_MODIFY("JVS_PLAYER1") + PORT_BIT(0x00000002, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Left") // BUTTON1 + PORT_BIT(0x00000001, IP_ACTIVE_HIGH, IPT_START1) PORT_NAME("Ok/Horn") // BUTTON2 + PORT_BIT(0x00008000, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Right") // BUTTON3 + PORT_BIT(0x000070bc, IP_ACTIVE_HIGH, IPT_UNUSED) + + PORT_MODIFY("JVS_PLAYER2") + PORT_BIT(0x0000f0ff, IP_ACTIVE_HIGH, IPT_UNUSED) + + PORT_MODIFY("JVS_COIN2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) + + PORT_MODIFY("ADC_0") + PORT_BIT(0x03ff, 0x0216, IPT_AD_STICK_Y) PORT_MINMAX(0x08b, 0x397) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_NAME("Speed Lever") PORT_REVERSE +INPUT_PORTS_END + +static INPUT_PORTS_START(ghlpanic) + PORT_INCLUDE(namcos12) + + PORT_MODIFY("JVS_PLAYER1") + PORT_BIT(0x0000f03d, IP_ACTIVE_HIGH, IPT_UNUSED) // P1 UP/P1 DOWN/P1 LEFT/P1 RIGHT/P1 BUTTON2/P1 BUTTON3/P1 BUTTON4/P1 BUTTON5/P1 BUTTON6 + + PORT_MODIFY("JVS_PLAYER2") + PORT_BIT(0x0000f03d, IP_ACTIVE_HIGH, IPT_UNUSED) // P2 UP/P2 DOWN/P2 LEFT/P2 RIGHT/P2 BUTTON2/P2 BUTTON3/P2 BUTTON4/P2 BUTTON5/P2 BUTTON6 + + PORT_START("GUN0") + PORT_BIT(0xffff, 0x020e, IPT_LIGHTGUN_X) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0xbe, 0x35f) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_PLAYER(1) + + PORT_START("GUN1") + PORT_BIT(0xffff, 0x0091, IPT_LIGHTGUN_Y) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0x1a, 0x109) PORT_SENSITIVITY(50) PORT_KEYDELTA(15) PORT_PLAYER(1) + + PORT_START("GUN2") + PORT_BIT(0xffff, 0x020e, IPT_LIGHTGUN_X) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0xbe, 0x35f) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_PLAYER(2) + + PORT_START("GUN3") + PORT_BIT(0xffff, 0x0091, IPT_LIGHTGUN_Y) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0x1a, 0x109) PORT_SENSITIVITY(50) PORT_KEYDELTA(15) PORT_PLAYER(2) +INPUT_PORTS_END + +static INPUT_PORTS_START(golgo13) + PORT_INCLUDE(namcos12) + + PORT_MODIFY("DSW") + PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "DIP SW2:1") + + PORT_MODIFY("JVS_SYSTEM") + PORT_SERVICE(0x80, IP_ACTIVE_HIGH) + + PORT_MODIFY("JVS_PLAYER1") + PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_NAME("Up Select") + PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_NAME("Down Select") + PORT_BIT(0x00000002, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Enter") // P1 BUTTON1 + PORT_BIT(0x00000001, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("Trigger") // P1 BUTTON2 + PORT_BIT(0x00000800, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("Sensor") // P1 BUTTON7 + PORT_BIT(0x0000f00c, IP_ACTIVE_HIGH, IPT_UNUSED) + + PORT_MODIFY("JVS_PLAYER2") + PORT_BIT(0x0000f0ff, IP_ACTIVE_HIGH, IPT_UNUSED) + + PORT_MODIFY("JVS_COIN2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) + + PORT_START("GUN0") + PORT_BIT(0xffff, 0x0100, IPT_LIGHTGUN_X) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0x000, 0x1ff) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_PLAYER(1) + + PORT_START("GUN1") + PORT_BIT(0xffff, 0x0100, IPT_LIGHTGUN_Y) PORT_CROSSHAIR(Y, -1.0, 0.0, 0) PORT_MINMAX(0x000, 0x1ff) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_PLAYER(1) PORT_REVERSE +INPUT_PORTS_END + +static INPUT_PORTS_START(kartduel) + PORT_INCLUDE(namcos12) + + PORT_MODIFY("DSW") + PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "DIP SW2:1") + PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DIP SW2:2") + + PORT_MODIFY("JVS_SYSTEM") + PORT_SERVICE(0x80, IP_ACTIVE_HIGH) + + PORT_MODIFY("JVS_PLAYER1") + PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_NAME("Up Select") + PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_NAME("Down Select") + PORT_BIT(0x00000002, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Enter") // P1 BUTTON1 + PORT_BIT(0x0000f00d, IP_ACTIVE_HIGH, IPT_UNUSED) // P1 LEFT/P1 RIGHT/P1 BUTTON2/P1 BUTTON3/P1 BUTTON4/P1 BUTTON5/P1 BUTTON6 + + PORT_MODIFY("JVS_PLAYER2") + PORT_BIT(0x0000f0ff, IP_ACTIVE_HIGH, IPT_UNUSED) + + PORT_MODIFY("JVS_COIN2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) + + PORT_MODIFY("ADC_0") + PORT_BIT(0x3ff, 0x0ad, IPT_PEDAL2) PORT_MINMAX(0x000, 0x15a) PORT_SENSITIVITY(100) PORT_KEYDELTA(40) PORT_NAME("Brake Pedal") + + PORT_MODIFY("ADC_1") + PORT_BIT(0x3ff, 0x0ad, IPT_PEDAL) PORT_MINMAX(0x000, 0x015a) PORT_SENSITIVITY(100) PORT_KEYDELTA(40) PORT_NAME("Gas Pedal") + + PORT_MODIFY("ADC_2") + PORT_BIT(0x3ff, 0x200, IPT_PADDLE) PORT_MINMAX(0x0e0, 0x320) PORT_SENSITIVITY(100) PORT_KEYDELTA(40) PORT_NAME("Steering Wheel") +INPUT_PORTS_END + +static INPUT_PORTS_START(lbgrande) + PORT_INCLUDE(namcos12) + + PORT_MODIFY("DSW") + PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DIP SW2:2") +INPUT_PORTS_END + +static INPUT_PORTS_START(mdhorse) + PORT_INCLUDE(namcos12) + + PORT_MODIFY("JVS_PLAYER1") + PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_BUTTON1) // P1 UP + PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_BUTTON2) // P1 DOWN + PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_BUTTON3) // P1 LEFT + PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_BUTTON4) // P1 RIGHT + PORT_BIT(0x0000f003, IP_ACTIVE_HIGH, IPT_UNUSED) // P1 BUTTON1/P1 BUTTON2/P1 BUTTON3/P1 BUTTON4/P1 BUTTON5/P1 BUTTON6 + + PORT_MODIFY("JVS_PLAYER2") + PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(2) // P2 UP + PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_PLAYER(2) // P2 DOWN + PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_PLAYER(2) // P2 LEFT + PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_PLAYER(2) // P2 RIGHT + PORT_BIT(0x0000f003, IP_ACTIVE_HIGH, IPT_UNUSED) // P2 BUTTON1/P2 BUTTON2/P2 BUTTON3/P2 BUTTON4/P2 BUTTON5/P2 BUTTON6 + + PORT_MODIFY("JVS_COIN2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) +INPUT_PORTS_END + +static INPUT_PORTS_START(mrdrillr) + PORT_INCLUDE(namcos12) + + PORT_MODIFY("DSW") + PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DIP SW2:2") + + PORT_MODIFY("JVS_PLAYER1") + PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_4WAY + PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_4WAY + PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_4WAY + PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_4WAY + PORT_BIT(0x00000001, IP_ACTIVE_HIGH, IPT_UNUSED) // P1 BUTTON2 (same as P1 BUTTON1) + PORT_BIT(0x0000f000, IP_ACTIVE_HIGH, IPT_UNUSED) // P1 BUTTON3/P1 BUTTON4/P1 BUTTON5/P1 BUTTON6 + + PORT_MODIFY("JVS_PLAYER2") + PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_4WAY PORT_PLAYER(2) + PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_4WAY PORT_PLAYER(2) + PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_4WAY PORT_PLAYER(2) + PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_4WAY PORT_PLAYER(2) + PORT_BIT(0x00000001, IP_ACTIVE_HIGH, IPT_UNUSED) // P2 BUTTON2 (same as P2 BUTTON1) + PORT_BIT(0x0000f000, IP_ACTIVE_HIGH, IPT_UNUSED) // P2 BUTTON3/P2 BUTTON4/P2 BUTTON5/P2 BUTTON6 + + PORT_MODIFY("JVS_COIN2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) +INPUT_PORTS_END + +static INPUT_PORTS_START(pacapp) + PORT_INCLUDE(namcos12) + + PORT_MODIFY("JVS_PLAYER1") + PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("%p Button 1 (Yellow)") // P1 UP + PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("%p Button 2 (Red)") // P1 DOWN + PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("%p Button 3 (Blue)") // P1 LEFT + PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("%p Button 4 (Green)") // P1 RIGHT + PORT_BIT(0x0000c003, IP_ACTIVE_HIGH, IPT_UNUSED) // P1 BUTTON1/P1 BUTTON2/P1 BUTTON3/P1 BUTTON4 (manual says to use UP/DOWN/LEFT/RIGHT, but these work too) + PORT_BIT(0x00002000, IP_ACTIVE_HIGH, IPT_UNUSED) // P1 BUTTON5 (changes test mode to low resolution) + PORT_BIT(0x00001000, IP_ACTIVE_HIGH, IPT_UNUSED) // P1 BUTTON6 + + PORT_MODIFY("JVS_PLAYER2") + PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(2) PORT_NAME("%p Button 1 (Yellow)") // P2 UP + PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_PLAYER(2) PORT_NAME("%p Button 2 (Red)") // P2 DOWN + PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_PLAYER(2) PORT_NAME("%p Button 3 (Blue)") // P2 LEFT + PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_PLAYER(2) PORT_NAME("%p Button 4 (Green)") // P2 RIGHT + PORT_BIT(0x0000c003, IP_ACTIVE_HIGH, IPT_UNUSED) // P2 BUTTON1/P2 BUTTON2/P2 BUTTON3/P2 BUTTON4 (manual says to use UP/DOWN/LEFT/RIGHT, but these work too) + PORT_BIT(0x00003000, IP_ACTIVE_HIGH, IPT_UNUSED) // P2 BUTTON5/P2 BUTTON6 + + PORT_MODIFY("JVS_COIN2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) +INPUT_PORTS_END + +static INPUT_PORTS_START(pacapp2) + PORT_INCLUDE(pacapp) + + PORT_MODIFY("JVS_COIN2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_COIN2) +INPUT_PORTS_END + +static INPUT_PORTS_START(ptblank2) + PORT_INCLUDE(namcos12) + + PORT_MODIFY("JVS_PLAYER1") + PORT_BIT(0x0000f03d, IP_ACTIVE_HIGH, IPT_UNUSED) // P1 UP/P1 DOWN/P1 LEFT/P1 RIGHT/P1 BUTTON2/P1 BUTTON3/P1 BUTTON4/P1 BUTTON5/P1 BUTTON6 + + PORT_MODIFY("JVS_PLAYER2") + PORT_BIT(0x0000f03d, IP_ACTIVE_HIGH, IPT_UNUSED) // P2 UP/P2 DOWN/P2 LEFT/P2 RIGHT/P2 BUTTON2/P2 BUTTON3/P2 BUTTON4/P2 BUTTON5/P2 BUTTON6 + + PORT_START("GUN0") + PORT_BIT(0xffff, 0x0231, IPT_LIGHTGUN_X) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0xdc, 0x387) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_PLAYER(1) + + PORT_START("GUN1") + PORT_BIT(0xffff, 0x00a1, IPT_LIGHTGUN_Y) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0x28, 0x11b) PORT_SENSITIVITY(50) PORT_KEYDELTA(15) PORT_PLAYER(1) + + PORT_START("GUN2") + PORT_BIT(0xffff, 0x0231, IPT_LIGHTGUN_X) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0xdc, 0x387) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_PLAYER(2) + + PORT_START("GUN3") + PORT_BIT(0xffff, 0x00a1, IPT_LIGHTGUN_Y) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0x28, 0x11b) PORT_SENSITIVITY(50) PORT_KEYDELTA(15) PORT_PLAYER(2) +INPUT_PORTS_END + +static INPUT_PORTS_START(tekken3) + PORT_INCLUDE(namcos12) + + PORT_MODIFY("JVS_PLAYER1") + PORT_BIT(0x00008000, IP_ACTIVE_HIGH, IPT_UNUSED) // P1 BUTTON3 + PORT_BIT(0x00004000, IP_ACTIVE_HIGH, IPT_BUTTON3) // P1 BUTTON4 + PORT_BIT(0x00002000, IP_ACTIVE_HIGH, IPT_BUTTON4) // P1 BUTTON5 + PORT_BIT(0x00001000, IP_ACTIVE_HIGH, IPT_UNUSED) // P1 BUTTON6 + + PORT_MODIFY("JVS_PLAYER2") + PORT_BIT(0x00008000, IP_ACTIVE_HIGH, IPT_UNUSED) // P2 BUTTON3 + PORT_BIT(0x00004000, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_PLAYER(2) // P2 BUTTON4 + PORT_BIT(0x00002000, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_PLAYER(2) // P2 BUTTON5 + PORT_BIT(0x00001000, IP_ACTIVE_HIGH, IPT_UNUSED) // P2 BUTTON6 +INPUT_PORTS_END + +static INPUT_PORTS_START(technodr) + PORT_INCLUDE(namcos12) + + PORT_MODIFY("DSW") + PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "DIP SW2:1") + PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DIP SW2:2") + + PORT_MODIFY("JVS_SYSTEM") + PORT_SERVICE(0x80, IP_ACTIVE_HIGH) + + PORT_MODIFY("JVS_PLAYER1") + PORT_BIT(0x00002000, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Select") // BUTTON5 + PORT_BIT(0x0000d0bf, IP_ACTIVE_HIGH, IPT_UNUSED) // P1 SERVICE only + + PORT_MODIFY("JVS_COIN1") + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_TILT) PORT_NAME("Counter disconnected") + + PORT_MODIFY("JVS_COIN2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) + + PORT_START("JVS_ANALOG_INPUT1") + PORT_BIT(0xffff, 0x5e00, IPT_PADDLE) PORT_MINMAX(0x1600, 0xa600) PORT_SENSITIVITY(100) PORT_KEYDELTA(1280) PORT_NAME("Steering Wheel") PORT_REVERSE + + PORT_START("JVS_ANALOG_INPUT2") + PORT_BIT(0xffff, 0x5e00, IPT_PEDAL2) PORT_MINMAX(0x3e00, 0x7e00) PORT_SENSITIVITY(100) PORT_KEYDELTA(1280) PORT_NAME("Brake Pedal") PORT_REVERSE + + PORT_START("JVS_ANALOG_INPUT3") + PORT_BIT(0xffff, 0x9a00, IPT_PEDAL) PORT_MINMAX(0x4680, 0xed80) PORT_SENSITIVITY(100) PORT_KEYDELTA(2560) PORT_NAME("Gas Pedal") PORT_REVERSE +INPUT_PORTS_END + +static INPUT_PORTS_START(truckk) + PORT_INCLUDE(namcos12) + + PORT_MODIFY("DSW") + PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "DIP SW2:1") + PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DIP SW2:2") + + PORT_MODIFY("JVS_SYSTEM") + PORT_SERVICE(0x80, IP_ACTIVE_HIGH) + + PORT_MODIFY("JVS_PLAYER1") + PORT_BIT(0x00000080, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("View Change") // P1 START + PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_NAME("Select Up") + PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_NAME("Select Down") + PORT_BIT(0x00000002, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("Enter") // P1 BUTTON1 + PORT_BIT(0x00000001, IP_ACTIVE_HIGH, IPT_UNUSED) // P1 BUTTON2 (also Music Next) + PORT_BIT(0x00008000, IP_ACTIVE_HIGH, IPT_START1) PORT_NAME("Horn") + PORT_BIT(0x0000700c, IP_ACTIVE_HIGH, IPT_UNUSED) // P1 LEFT/P1 RIGHT/P1 BUTTON4/P1 BUTTON5/P1 BUTTON6 + + PORT_MODIFY("JVS_PLAYER2") + PORT_BIT(0x00000080, IP_ACTIVE_HIGH, IPT_UNUSED) // P2 START (also View Change) + PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("Music Back") // P2 LEFT + PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_NAME("Music Next") // P2 RIGHT + PORT_BIT(0x00000002, IP_ACTIVE_LOW, IPT_UNUSED) // P2 BUTTON1 (Valve presence) + PORT_BIT(0x00000001, IP_ACTIVE_HIGH, IPT_UNUSED) // P2 BUTTON2 (also Music Next) + PORT_BIT(0x00008000, IP_ACTIVE_HIGH, IPT_UNUSED) // P2 BUTTON3 (also Horn) + PORT_BIT(0x00007030, IP_ACTIVE_HIGH, IPT_UNUSED) // P2 UP/P2 DOWN/P2 BUTTON4/P2 BUTTON5/P2 BUTTON6 + + PORT_MODIFY("JVS_COIN2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) + + PORT_MODIFY("ADC_0") + PORT_BIT(0x3ff, 0x0200, IPT_PADDLE) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_NAME("Steering Wheel") + + PORT_MODIFY("ADC_1") + PORT_BIT(0x3ff, 0x0200, IPT_PEDAL2) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_NAME("Brake Pedal") PORT_REVERSE + + PORT_MODIFY("ADC_2") + PORT_BIT(0x3ff, 0x0200, IPT_PEDAL) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_NAME("Gas Pedal") PORT_REVERSE +INPUT_PORTS_END + +static INPUT_PORTS_START(ujlnow) + PORT_INCLUDE(namcos12) + + PORT_MODIFY("DSW") + PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "DIP SW2:1") + PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DIP SW2:2") + + PORT_MODIFY("JVS_SYSTEM") + PORT_SERVICE(0x80, IP_ACTIVE_HIGH) + + PORT_MODIFY("JVS_PLAYER1") + PORT_BIT(0x00000020, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP) PORT_NAME("Up Select") + PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN) PORT_NAME("Down Select") + PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_NAME("%p Joe Switch (J)") // P1 LEFT + PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_NAME("%p Chin Switch (C)") // P1 RIGHT + PORT_BIT(0x00000002, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("%p Circle / Enter") // The cabinet enter switch is linked to the P1 circle input as per the manual (bottom of pg 33) + PORT_BIT(0x00000001, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_NAME("%p Cross") + PORT_BIT(0x00008000, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_NAME("%p Triangle") + PORT_BIT(0x00000800, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_NAME("%p Square") // P1 BUTTON7 + PORT_BIT(0x00007000, IP_ACTIVE_HIGH, IPT_UNUSED) // P1 BUTTON4/P1 BUTTON5/P1 BUTTON6 + + PORT_MODIFY("JVS_PLAYER2") + PORT_BIT(0x00000020, IP_ACTIVE_LOW, IPT_UNUSED) // P2 UP (these must be pressed to get rid of I/O errors) + PORT_BIT(0x00000010, IP_ACTIVE_LOW, IPT_UNUSED) // P2 DOWN + PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_PLAYER(2) PORT_NAME("%p Joe Switch (J)") + PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_PLAYER(2) PORT_NAME("%p Chin Switch (C)") + PORT_BIT(0x00000002, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_PLAYER(2) PORT_NAME("%p Circle") + PORT_BIT(0x00000001, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_PLAYER(2) PORT_NAME("%p Cross") + PORT_BIT(0x00008000, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_PLAYER(2) PORT_NAME("%p Triangle") + PORT_BIT(0x00000800, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_PLAYER(2) PORT_NAME("%p Square") // P2 BUTTON7 + PORT_BIT(0x00007000, IP_ACTIVE_HIGH, IPT_UNUSED) // P2 BUTTON4/P2 BUTTON5/P2 BUTTON6 + + PORT_MODIFY("JVS_COIN2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) +INPUT_PORTS_END + + +ROM_START( aplarail ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "ap1vera.2e", 0x0000000, 0x200000, CRC(386ffe26) SHA1(27b4bb0f0b178b4236e18d7ef9d810d1afc99798) ) + ROM_LOAD16_BYTE( "ap1vera.2j", 0x0000001, 0x200000, CRC(cab954e1) SHA1(3d3b8cfbb8160bb0c421af88137b9de7f8ea22bf) ) + + ROM_REGION32_LE( 0x3400000, "bankedroms", 0 ) + ROM_LOAD( "ap1rom0.ic9", 0x0000000, 0x800000, CRC(c8042aad) SHA1(48d4205535fd20ffc99a0caab6c5f9c66b7f64ed) ) + ROM_LOAD( "ap1rom1.ic10", 0x0800000, 0x800000, CRC(0f3210ec) SHA1(d3e0782f01e952a27d4fbe2470159e92ba57a57a) ) + ROM_LOAD( "ap1rom2.ic11", 0x1000000, 0x800000, CRC(9ef8382d) SHA1(bb1e56a4911bfc9c4f763f35885da74a1c1e96c5) ) + ROM_LOAD16_BYTE( "ap1fl3l.ic7", 0x1800000, 0x200000, CRC(b52c2df6) SHA1(9d07b546395486e7cae86d24c8a352d9e48d00d4) ) + ROM_LOAD16_BYTE( "ap1fl3h.ic8", 0x1800001, 0x200000, CRC(050af45d) SHA1(4cd93222b9a2fbfad5c93b60cdb7ccd4d58678d5) ) + ROM_LOAD16_BYTE( "ap1fl4l.ic5", 0x1c00000, 0x200000, CRC(9a4109e5) SHA1(ba59caac5f5a80fc52c507d8a47f322a380aa9a1) ) + ROM_LOAD16_BYTE( "ap1fl4h.ic6", 0x1c00001, 0x200000, CRC(9a4109e5) SHA1(ba59caac5f5a80fc52c507d8a47f322a380aa9a1) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "ap1vera.11s", 0x000000, 0x080000, CRC(126aaebc) SHA1(3f5a709c38ca38753d7a93d81e59a7ed48515b92) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "ap1wave0.ic2", 0x000000, 0x800000, CRC(003abebb) SHA1(edd70a0cc2f8648d3cbd3457ee36aa3772f97d2e) ) +ROM_END + +ROM_START( aquarush ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "aq1vera.2l", 0x0000000, 0x200000, CRC(91eb9258) SHA1(30e225eb551bfe1bed6b342dd6d597345d64b677) ) + ROM_LOAD16_BYTE( "aq1vera.2p", 0x0000001, 0x200000, CRC(a92f21aa) SHA1(bde33f1f66aaa55031c6b2972b042eef87047cce) ) + + ROM_REGION32_LE( 0x1000000, "bankedroms", 0 ) + ROM_LOAD( "aq1rom0.7", 0x0000000, 0x800000, CRC(3e64dd33) SHA1(dce3bb84c3069bc202d04f24d7702158dd3194d4) ) + ROM_LOAD( "aq1rom1.8", 0x0800000, 0x800000, CRC(e4d415cf) SHA1(bbd244adaf704d7daf7341ff3b0a92162927a59b) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "aq1vera.11s", 0x000000, 0x080000, CRC(78277e02) SHA1(577ebb6d7ab5e304fb1dc1e7fd5649762e0d1786) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "aq1wave0.2", 0x000000, 0x800000, CRC(0cf7278d) SHA1(aee31e4d9b3522f42325071768803c542aa6de09) ) +ROM_END + +ROM_START( ehrgeiz ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "eg2vera.2e", 0x0000000, 0x200000, CRC(9174ec90) SHA1(273bb9c9f0a7eb48470601a0eadf450908ac4d92) ) + ROM_LOAD16_BYTE( "eg2vera.2j", 0x0000001, 0x200000, CRC(a8388248) SHA1(89eeb6095cc8c7ad6cdc8480cff6f688f07f64d7) ) + + ROM_REGION32_LE( 0x1c00000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "eg1rom0l.12", 0x0000000, 0x800000, CRC(fe11a48e) SHA1(bdb2af5949bb4a324dab01489e9488aa5b9bd129) ) + ROM_LOAD16_BYTE( "eg1rom0u.11", 0x0000001, 0x800000, CRC(7cb90c25) SHA1(0ff6f7bf8b7eb2e0706bd235fcb9a95ea639fae6) ) + ROM_LOAD16_BYTE( "eg1fl1l.9", 0x1000000, 0x200000, CRC(dd4cac2b) SHA1(f49d0055303b3d8639e94f93bce6bf160cc99913) ) + ROM_LOAD16_BYTE( "eg1fl1u.10", 0x1000001, 0x200000, CRC(e3348407) SHA1(829bf1be0f74fd385e325d774f1449e28aba1e4d) ) + ROM_LOAD16_BYTE( "eg1fl2l.7", 0x1400000, 0x200000, CRC(34493262) SHA1(9dd5b1b25e7232460bf5ee5b339d9f536ec26979) ) + ROM_LOAD16_BYTE( "eg1fl2u.8", 0x1400001, 0x200000, CRC(4fb84f1d) SHA1(714e0ef56871d7b4568bc6dda08bbb1c01dbba37) ) + ROM_LOAD16_BYTE( "eg1fl3l.5", 0x1800000, 0x200000, CRC(f9441f87) SHA1(70944160620ba2fc80b4fc3a7b61c33622298a8b) ) + ROM_LOAD16_BYTE( "eg1fl3u.6", 0x1800001, 0x200000, CRC(cea397de) SHA1(3791dbadb5699c805c27930e59c61af4d62f77f7) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "eg1vera.11s", 0x0000000, 0x080000, CRC(9e44645e) SHA1(374eb4a4c09d6b5b7af5ff0efec16b4d2aacbe2b) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "eg1wave0.2", 0x0000000, 0x800000, CRC(961fe69f) SHA1(0189a061959a8d94b9d2db627911264faf9f28fd) ) +ROM_END + +ROM_START( ehrgeizja ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "eg1vera.2l", 0x0000000, 0x200000, CRC(302d62cf) SHA1(e2de280ae4475829398a6770aed8eab0ed35b1ce) ) + ROM_LOAD16_BYTE( "eg1vera.2p", 0x0000001, 0x200000, CRC(1d7fb3a1) SHA1(dc038a639f89d7c8daaf987b728fde175fe4dbec) ) + + ROM_REGION32_LE( 0x1c00000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "eg1rom0l.12", 0x0000000, 0x800000, CRC(fe11a48e) SHA1(bdb2af5949bb4a324dab01489e9488aa5b9bd129) ) + ROM_LOAD16_BYTE( "eg1rom0u.11", 0x0000001, 0x800000, CRC(7cb90c25) SHA1(0ff6f7bf8b7eb2e0706bd235fcb9a95ea639fae6) ) + ROM_LOAD16_BYTE( "eg1fl1l.9", 0x1000000, 0x200000, CRC(dd4cac2b) SHA1(f49d0055303b3d8639e94f93bce6bf160cc99913) ) + ROM_LOAD16_BYTE( "eg1fl1u.10", 0x1000001, 0x200000, CRC(e3348407) SHA1(829bf1be0f74fd385e325d774f1449e28aba1e4d) ) + ROM_LOAD16_BYTE( "eg1fl2l.7", 0x1400000, 0x200000, CRC(34493262) SHA1(9dd5b1b25e7232460bf5ee5b339d9f536ec26979) ) + ROM_LOAD16_BYTE( "eg1fl2u.8", 0x1400001, 0x200000, CRC(4fb84f1d) SHA1(714e0ef56871d7b4568bc6dda08bbb1c01dbba37) ) + ROM_LOAD16_BYTE( "eg1fl3l.5", 0x1800000, 0x200000, CRC(f9441f87) SHA1(70944160620ba2fc80b4fc3a7b61c33622298a8b) ) + ROM_LOAD16_BYTE( "eg1fl3u.6", 0x1800001, 0x200000, CRC(cea397de) SHA1(3791dbadb5699c805c27930e59c61af4d62f77f7) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "eg1vera.11s", 0x0000000, 0x080000, CRC(9e44645e) SHA1(374eb4a4c09d6b5b7af5ff0efec16b4d2aacbe2b) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "eg1wave0.2", 0x0000000, 0x800000, CRC(961fe69f) SHA1(0189a061959a8d94b9d2db627911264faf9f28fd) ) +ROM_END + +ROM_START( ehrgeizua ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "eg3vera.2l", 0x0000000, 0x200000, CRC(64c00ff0) SHA1(fc7980bc8d98c810aed2eb6b3265d150784dfc15) ) + ROM_LOAD16_BYTE( "eg3vera.2p", 0x0000001, 0x200000, CRC(e722c030) SHA1(4669a7861c14d97048728989708a0fa3733f83a8) ) + + ROM_REGION32_LE( 0x1c00000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "eg1rom0l.12", 0x0000000, 0x800000, CRC(fe11a48e) SHA1(bdb2af5949bb4a324dab01489e9488aa5b9bd129) ) + ROM_LOAD16_BYTE( "eg1rom0u.11", 0x0000001, 0x800000, CRC(7cb90c25) SHA1(0ff6f7bf8b7eb2e0706bd235fcb9a95ea639fae6) ) + ROM_LOAD16_BYTE( "eg1fl1l.9", 0x1000000, 0x200000, CRC(dd4cac2b) SHA1(f49d0055303b3d8639e94f93bce6bf160cc99913) ) + ROM_LOAD16_BYTE( "eg1fl1u.10", 0x1000001, 0x200000, CRC(e3348407) SHA1(829bf1be0f74fd385e325d774f1449e28aba1e4d) ) + ROM_LOAD16_BYTE( "eg1fl2l.7", 0x1400000, 0x200000, CRC(34493262) SHA1(9dd5b1b25e7232460bf5ee5b339d9f536ec26979) ) + ROM_LOAD16_BYTE( "eg1fl2u.8", 0x1400001, 0x200000, CRC(4fb84f1d) SHA1(714e0ef56871d7b4568bc6dda08bbb1c01dbba37) ) + ROM_LOAD16_BYTE( "eg1fl3l.5", 0x1800000, 0x200000, CRC(f9441f87) SHA1(70944160620ba2fc80b4fc3a7b61c33622298a8b) ) + ROM_LOAD16_BYTE( "eg1fl3u.6", 0x1800001, 0x200000, CRC(cea397de) SHA1(3791dbadb5699c805c27930e59c61af4d62f77f7) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "eg1vera.11s", 0x0000000, 0x080000, CRC(9e44645e) SHA1(374eb4a4c09d6b5b7af5ff0efec16b4d2aacbe2b) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "eg1wave0.2", 0x0000000, 0x800000, CRC(961fe69f) SHA1(0189a061959a8d94b9d2db627911264faf9f28fd) ) +ROM_END + +ROM_START( fgtlayer ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "ftl3vera.2e", 0x0000000, 0x200000, CRC(17c23471) SHA1(22b5a25569c085f059c1c846cf628a1f140035e9) ) + ROM_LOAD16_BYTE( "ftl3vera.2j", 0x0000001, 0x200000, CRC(1626465d) SHA1(941e7f8fbbaa232aab10a52aba1c462b4c91bb71) ) + + ROM_REGION32_LE( 0x2000000, "bankedroms", 0 ) + ROM_LOAD( "ftl1rom0.9", 0x0000000, 0x800000, CRC(e33ce365) SHA1(f7e5b98d2e8e5f233265909477c84331f016ebfb) ) + ROM_LOAD( "ftl1rom1.10", 0x0800000, 0x800000, CRC(a1ec7d08) SHA1(e693a0b16235c44d4165b2f53dc25d5288297c27) ) + ROM_LOAD( "ftl1rom2.11", 0x1000000, 0x800000, CRC(204be858) SHA1(95b22b678b7d11b0ec907698c18cebd84437c656) ) + ROM_LOAD16_BYTE( "ftl1fl3l.7", 0x1800000, 0x200000, CRC(e4fb01e1) SHA1(c7883e86afb58412281a317bfdf62a21488421be) ) + ROM_LOAD16_BYTE( "ftl1fl3h.8", 0x1800001, 0x200000, CRC(67a5c56f) SHA1(6f0a4f93b4975b24efb26c3dd47b791c92c55fbf) ) + ROM_LOAD16_BYTE( "ftl1fl4l.5", 0x1c00000, 0x200000, CRC(8039242c) SHA1(9c3f9637d7cd0c004c0c39aee815eed228ebad20) ) + ROM_LOAD16_BYTE( "ftl1fl4h.6", 0x1c00001, 0x200000, CRC(5ad59726) SHA1(b3a68f7ba2052b99407a5423223202001f2a4f67) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "ftl1vera.11s", 0x0000000, 0x080000, CRC(e3f957cd) SHA1(1c7f2033025fb9c40654cff26d78697baf697c59) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "ftl1wave0.2", 0x0000000, 0x800000, CRC(ee009a2b) SHA1(c332bf59917b2673d7acb864bf92d25d74a350b6) ) + ROM_LOAD( "ftl1wave1.1", 0x0800000, 0x800000, CRC(a54a89cd) SHA1(543b47c6442f7a78e26992b041235a91d719bb89) ) +ROM_END + +ROM_START( fgtlayerja ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "ftl0vera.2e", 0x0000000, 0x200000, CRC(f4156e79) SHA1(cedb917940be8c74fa4ddb48213ce6917444e306) ) // Service mode shows FTL0/VER.A + ROM_LOAD16_BYTE( "ftl0vera.2j", 0x0000001, 0x200000, CRC(c65b57c0) SHA1(0051aa46d09fbe9d896ae5f534e21955373f1d46) ) + + ROM_REGION32_LE( 0x2000000, "bankedroms", 0 ) + ROM_LOAD( "ftl1rom0.9", 0x0000000, 0x800000, CRC(e33ce365) SHA1(f7e5b98d2e8e5f233265909477c84331f016ebfb) ) + ROM_LOAD( "ftl1rom1.10", 0x0800000, 0x800000, CRC(a1ec7d08) SHA1(e693a0b16235c44d4165b2f53dc25d5288297c27) ) + ROM_LOAD( "ftl1rom2.11", 0x1000000, 0x800000, CRC(204be858) SHA1(95b22b678b7d11b0ec907698c18cebd84437c656) ) + ROM_LOAD16_BYTE( "ftl1fl3l.7", 0x1800000, 0x200000, CRC(e4fb01e1) SHA1(c7883e86afb58412281a317bfdf62a21488421be) ) + ROM_LOAD16_BYTE( "ftl1fl3h.8", 0x1800001, 0x200000, CRC(67a5c56f) SHA1(6f0a4f93b4975b24efb26c3dd47b791c92c55fbf) ) + ROM_LOAD16_BYTE( "ftl1fl4l.5", 0x1c00000, 0x200000, CRC(8039242c) SHA1(9c3f9637d7cd0c004c0c39aee815eed228ebad20) ) + ROM_LOAD16_BYTE( "ftl1fl4h.6", 0x1c00001, 0x200000, CRC(5ad59726) SHA1(b3a68f7ba2052b99407a5423223202001f2a4f67) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "ftl1vera.11s", 0x0000000, 0x080000, CRC(e3f957cd) SHA1(1c7f2033025fb9c40654cff26d78697baf697c59) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "ftl1wave0.2", 0x0000000, 0x800000, CRC(ee009a2b) SHA1(c332bf59917b2673d7acb864bf92d25d74a350b6) ) + ROM_LOAD( "ftl1wave1.1", 0x0800000, 0x800000, CRC(a54a89cd) SHA1(543b47c6442f7a78e26992b041235a91d719bb89) ) +ROM_END + +ROM_START( golgo13 ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "glg1vera.2l", 0x0000000, 0x200000, CRC(aa15abfe) SHA1(e82b408746e01c50c5cb0dcef804974d1e97078a) ) + ROM_LOAD16_BYTE( "glg1vera.2p", 0x0000001, 0x200000, CRC(37a4cf90) SHA1(b5470d44036e9de8220b669f71b50bcec42d9a18) ) + + ROM_REGION32_LE( 0x3c00000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "glg1rom0l.10", 0x0000000, 0x800000, CRC(2837524e) SHA1(81d811c2cf8121854ed6046dc421cda7fcd44014) ) + ROM_LOAD16_BYTE( "glg1rom0u.14", 0x0000001, 0x800000, CRC(4482deff) SHA1(03dcd12633b167d9af664ae826fc2c2ff096c0a6) ) + ROM_LOAD16_BYTE( "glg1rom1l.11", 0x1000000, 0x800000, CRC(080f3550) SHA1(40a5257baeb366e32ff51f571efb12a556f93430) ) + ROM_LOAD16_BYTE( "glg1rom1u.15", 0x1000001, 0x800000, CRC(b49e8613) SHA1(d25ede8046ce309d5a5515a2e44b6773fdd56333) ) + ROM_LOAD16_BYTE( "glg1rom2l.12", 0x2000000, 0x800000, CRC(e1a79a87) SHA1(c3f31b1bc6a3b51361df0d89d3ff0717875fd800) ) + ROM_LOAD16_BYTE( "glg1rom2u.16", 0x2000001, 0x800000, CRC(cda22852) SHA1(e609a55e0ec91b532469c3607dcc96456eec6a07) ) + ROM_LOAD16_BYTE( "glg1fl3l.4", 0x3000000, 0x200000, CRC(16ddc2cb) SHA1(71460bd4ad35b3488dc1326fe2f600df40988e06) ) + ROM_LOAD16_BYTE( "glg1fl3u.5", 0x3000001, 0x200000, CRC(d90d72d1) SHA1(0027389344862486c53cd0e1554b36eed65aa5b0) ) + ROM_LOAD16_BYTE( "glg1fl4l.6", 0x3400000, 0x200000, CRC(820d8133) SHA1(2d780612055a0fa5de756cfa46ce7f134139e550) ) + ROM_LOAD16_BYTE( "glg1fl4u.7", 0x3400001, 0x200000, CRC(02d78160) SHA1(2eafcbd3ba550acf7816074e6c7eee65f7d64859) ) + ROM_LOAD16_BYTE( "glg1fl5l.8", 0x3800000, 0x200000, CRC(090b2508) SHA1(c3587aeab71f6a9dcc90bf2af496303e9d20eac8) ) + ROM_LOAD16_BYTE( "glg1fl5u.9", 0x3800001, 0x200000, CRC(2231a07c) SHA1(480e17219101a0dae5cd64507e31cd7e711c95fa) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "glg1vera.11s", 0x0000000, 0x080000, CRC(5c33f240) SHA1(ec8fc8d83466b28dfa35b93e16d8164883513b19) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "glg1wave0.1", 0x0000000, 0x800000, CRC(672d4f7c) SHA1(16a7564a2c68840a438a33ac2381df4e70e1bb45) ) + ROM_LOAD( "glg1wave1.13", 0x0800000, 0x800000, CRC(480b0a1a) SHA1(341d5ec8ad0f3c0a121eeeec9466aaeec2bd1c74) ) +ROM_END + +ROM_START( g13knd ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "gls1vera.2e", 0x0000000, 0x200000, CRC(904c39a7) SHA1(e62a518657b639d31e390b8d1a36eee8a46ab179) ) + ROM_LOAD16_BYTE( "gls1vera.2j", 0x0000001, 0x200000, CRC(f8f9d6d2) SHA1(ec02192f3874fea289d123fd6d828148c77fbf6d) ) + + ROM_REGION32_LE( 0x3c00000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "gls1rom0l.ic10", 0x0000000, 0x800000, CRC(91e04e7e) SHA1(70603ec5c17d9074f7176e7214f7507a3e408578) ) + ROM_LOAD16_BYTE( "gls1rom0u.ic14", 0x0000001, 0x800000, CRC(29f67094) SHA1(d17baa723bca5cadb483cd777d0ef25c29367426) ) + ROM_LOAD16_BYTE( "gls1rom1l.ic11", 0x1000000, 0x800000, CRC(fc69578f) SHA1(20bcd687aeb3741893588b492f93531e58405c3e) ) + ROM_LOAD16_BYTE( "gls1rom1u.ic15", 0x1000001, 0x800000, CRC(db46d626) SHA1(a623097fd17e99ee31c22ed62cb88aa9dc25721c) ) + ROM_LOAD16_BYTE( "gls1rom2l.ic12", 0x2000000, 0x800000, CRC(707cec76) SHA1(59257acc0b5a7f86a895873fc679ea184d2c0a50) ) + ROM_LOAD16_BYTE( "gls1rom2u.ic16", 0x2000001, 0x800000, CRC(970abad0) SHA1(fb41c379d28df2115baee967cc9645da869d2e2d) ) + ROM_LOAD16_BYTE( "gls1fl3l.ic4", 0x3000000, 0x200000, CRC(3a0ffd17) SHA1(03c704012040b9b9c24453baa8dbfbb3aec82854) ) + ROM_LOAD16_BYTE( "gls1fl3u.ic5", 0x3000001, 0x200000, CRC(565567ff) SHA1(36a26ed8fbba95dccbde6300363acb45d9c029b3) ) + ROM_LOAD16_BYTE( "gls1fl4l.ic6", 0x3400000, 0x200000, CRC(b4591cc0) SHA1(8da1defb74957bd02324d5b2d3af406dc1f7061b) ) + ROM_LOAD16_BYTE( "gls1fl4u.ic7", 0x3400001, 0x200000, CRC(679d545c) SHA1(b0e04cb123b4a15d935d773856e9cc954e81ba21) ) + ROM_LOAD16_BYTE( "gls1fl5l.ic8", 0x3800000, 0x200000, CRC(a5581533) SHA1(58721d3acc1a740e616b721b400c6912f21d516f) ) + ROM_LOAD16_BYTE( "gls1fl5u.ic9", 0x3800001, 0x200000, CRC(a8b6832a) SHA1(c0e392b7aa51dfcfce602fb0a46ccbc18074385c) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "gls1vera.11s", 0x0000000, 0x080000, CRC(a1e68d02) SHA1(bcacea12531539776d5ad5d34b64f7f4a10a0b97) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "gls1wave0.ic1", 0x0000000, 0x800000, CRC(9de10ef5) SHA1(c391998ed3d882d49d6dbe7079414a2bfd180b49) ) + ROM_LOAD( "gls1wave1.ic13", 0x0800000, 0x800000, CRC(4c92b6bf) SHA1(a463b5825f635efe402a6ea6c1ed8ecdc3d466e0) ) +ROM_END + +ROM_START( ghlpanic ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "ob2vera.2e", 0x0000000, 0x200000, CRC(77162ae0) SHA1(cdc0833756037562b49bb2ae02931b3b24d27329) ) + ROM_LOAD16_BYTE( "ob2vera.2j", 0x0000001, 0x200000, CRC(628f0830) SHA1(a547880674d95b84acc9c05413cba4fd3a81e0cf) ) + + ROM_REGION32_LE( 0x00800000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "ob1rom0l.ic12", 0x0000000, 0x400000, CRC(f8b6a599) SHA1(2af3186242a8cbf14ab7532496a91041300527e9) ) + ROM_LOAD16_BYTE( "ob1rom0u.ic11", 0x0000001, 0x400000, CRC(0625db92) SHA1(b63be6e41b2c6e2194f02f0c31da1f30c4e08232) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "ob1vera.11s", 0x0000000, 0x080000, CRC(f8c459f2) SHA1(681520c891f5c8a0f321652d8834910310c88d1a) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "ob1wave.ic2", 0x0000000, 0x800000, CRC(e7bc7202) SHA1(f0f598304866ebe62642eaac6b7d8709baa14fe1) ) +ROM_END + +ROM_START( gunbarl ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "gnb4vera.2l", 0x0000000, 0x200000, CRC(88c05cde) SHA1(80d210b06c8eda19e37430fb34492885d9eec671) ) + ROM_LOAD16_BYTE( "gnb4vera.2p", 0x0000001, 0x200000, CRC(7d57437a) SHA1(b4fc960b11e7dc9d3bde567f534635f264276e53) ) + + ROM_REGION32_LE( 0x1000000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "gnb1prg0l.ic12", 0x0000000, 0x800000, CRC(78746037) SHA1(d130ca1153a730e3c967945248f00662f9fab304) ) + ROM_LOAD16_BYTE( "gnb1prg0u.ic11", 0x0000001, 0x800000, CRC(697d3279) SHA1(40302780f7494d9413888b2d1da38bd14a9a444f) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "gnb_vera.11s", 0x0000000, 0x080000, CRC(d45a53eb) SHA1(01eb4f659b29671d417c5d3684f15a5876f76009) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "gnb1waveb.ic2", 0x0000000, 0x400000, CRC(4e19d9d6) SHA1(0a92c987536999a789663a30c787950ab6995128) ) + ROM_RELOAD( 0x800000, 0x400000 ) +ROM_END + +ROM_START( kaiunqz ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "kw1vera.2l", 0x0000000, 0x200000, CRC(fd1d2324) SHA1(eedb4627dfa17e9aac2c99592628f1fa7060edb5) ) + ROM_LOAD16_BYTE( "kw1vera.2p", 0x0000001, 0x200000, CRC(d8bdea6b) SHA1(d32118846a1f43eecff7f56dcda03adf04975784) ) + + ROM_REGION32_LE( 0x3000000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "kw1rom0l.12", 0x0000000, 0x800000, CRC(e0768f0b) SHA1(3ffec7c789a95fcff7f06432723f155b99a20c42) ) + ROM_LOAD16_BYTE( "kw1rom0u.11", 0x0000001, 0x800000, CRC(04101a16) SHA1(c2d79333ee382e2fea229bba23918fb5f88a25d4) ) + ROM_LOAD16_BYTE( "kw1rom1l.10", 0x1000000, 0x800000, CRC(6a4edfa6) SHA1(a59fa28446b28db28b38368c794af71e673f69a2) ) + ROM_LOAD16_BYTE( "kw1rom1u.9", 0x1000001, 0x800000, CRC(e6150b0d) SHA1(7dd1ba524246aea007e7bd6d3e7d457033b23a09) ) + ROM_LOAD16_BYTE( "kw1rom2l.7", 0x2000000, 0x800000, CRC(21c376e4) SHA1(4b82494c1e13ebcea3c4e97803c0667be73bf6ae) ) + ROM_LOAD16_BYTE( "kw1rom2u.8", 0x2000001, 0x800000, CRC(d850c222) SHA1(802c1782b323802eae871e2b9ccc5eae34277861) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "kw1vera.11s", 0x0000000, 0x080000, CRC(d863fafa) SHA1(3c2bb38c24165e3a1a4d1d257fcfc019b63d5199) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "kw1wave0.2", 0x0000000, 0x800000, CRC(060e52ae) SHA1(7ea95cae9d3c648163b225d0c7d365644be90241) ) +ROM_END + +ROM_START( kartduel ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "ktd2vera.2l", 0x0000000, 0x200000, CRC(7e7d8454) SHA1(4e0db56e433015cf1b9fd4cad35df99f1730e567) ) + ROM_LOAD16_BYTE( "ktd2vera.2p", 0x0000001, 0x200000, CRC(6c8af7e7) SHA1(602975500180de98a0a7e22c079344e7a3ece25e) ) + + ROM_REGION32_LE( 0x01000000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "kdt1rom0l.ic12", 0x0000000, 0x800000, CRC(f8a79aef) SHA1(8c2a6aef5cc0ffe4b5e9f2a98ef5a29edd59eb4d) ) + ROM_LOAD16_BYTE( "kdt1rom0u.ic11", 0x0000001, 0x800000, CRC(bab0d328) SHA1(9a15bfb38c63b0012f29755b2be071e9c82d1c20) ) + + ROM_REGION( 0x000800, "at28c16", 0 ) + ROM_LOAD( "at28c16", 0x0000000, 0x000800, CRC(1be18a1b) SHA1(3f7f95736dc7b03dfd06e2124518a1828d567303) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "ktd1vera.11s", 0x0000000, 0x080000, CRC(c2ff1971) SHA1(32ee2afe08e92049d8139c9324a0ea1a3b7ee5a1) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "ktd1wave0.ic2", 0x0000000, 0x800000, CRC(c54d5539) SHA1(17518dc76bb3627ca42bac665938bb11ea926396) ) +ROM_END + +ROM_START( kartduelja ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "ktd1vera.2l", 0x0000000, 0x200000, CRC(0c207249) SHA1(6c57de25d452226a25f658638d89b81257960741) ) + ROM_LOAD16_BYTE( "ktd1vera.2p", 0x0000001, 0x200000, CRC(f6e2581f) SHA1(06eb108c2775290590dba75f964f26443a585d70) ) + + ROM_REGION32_LE( 0x01000000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "kdt1rom0l.ic12", 0x0000000, 0x800000, CRC(f8a79aef) SHA1(8c2a6aef5cc0ffe4b5e9f2a98ef5a29edd59eb4d) ) + ROM_LOAD16_BYTE( "kdt1rom0u.ic11", 0x0000001, 0x800000, CRC(bab0d328) SHA1(9a15bfb38c63b0012f29755b2be071e9c82d1c20) ) + + ROM_REGION( 0x000800, "at28c16", 0 ) + ROM_LOAD( "at28c16", 0x0000000, 0x000800, CRC(dd9aba8f) SHA1(477e2f319d3e1a61982b27b911bd0264a55634da) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "ktd1vera.11s", 0x0000000, 0x080000, CRC(c2ff1971) SHA1(32ee2afe08e92049d8139c9324a0ea1a3b7ee5a1) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "ktd1wave0.ic2", 0x0000000, 0x800000, CRC(c54d5539) SHA1(17518dc76bb3627ca42bac665938bb11ea926396) ) +ROM_END + +ROM_START( lbgrande ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "lg2vera.2l", 0x0000000, 0x200000, CRC(5ed6b152) SHA1(fdab457862bd6e0a3178c9329bd0978b6aa3ae2f) ) + ROM_LOAD16_BYTE( "lg2vera.2p", 0x0000001, 0x200000, CRC(97c57149) SHA1(bb9bc1ba3ea826eb1c987b11218c0afa0fc54bdc) ) + + ROM_REGION32_LE( 0x1c00000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "lg1rom0l.6", 0x0000000, 0x400000, CRC(c5df7f27) SHA1(07c596efb2533b9adc579874b7e8ef7fcc7f73c3) ) + ROM_LOAD16_BYTE( "lg1rom0u.9", 0x0000001, 0x400000, CRC(74607817) SHA1(448a9213fa566fdbab5d789df064da7dc946ba2c) ) + ROM_LOAD16_BYTE( "lg1fl3l.12", 0x1800000, 0x200000, CRC(c9947d3e) SHA1(239b1f81ffac6a54b438082664124b6cf51a9b1c) ) + ROM_LOAD16_BYTE( "lg1fl3u.13", 0x1800001, 0x200000, CRC(f3d69f45) SHA1(546f588f144e1a75eee4a6d0a6cef8a3f79f0238) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "lg1vera.11s", 0x0000000, 0x080000, CRC(de717a09) SHA1(78f26ff630c50632916fa17fa870dcde7f13781d) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "lg1wave0.5", 0x0000000, 0x400000, CRC(4647fada) SHA1(99f5e9ded0c83f1a0d3670f6380bc15c1380671e) ) +ROM_END + +ROM_START( mdhorse ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "mdh1vera.2l", 0x0000000, 0x200000, CRC(fbb567b2) SHA1(899dccdfbc8dcbcdaf9b5df93e249a36f8cbf999) ) + ROM_LOAD16_BYTE( "mdh1vera.2p", 0x0000001, 0x200000, CRC(a0f182ab) SHA1(70c789ea88248c1f810f9fdb3feaf808acbaa8cd) ) + + ROM_REGION32_LE( 0x3000000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "mdh1rom0l", 0x0000000, 0x800000, CRC(ca5bf806) SHA1(8c88b1f29c96a0696ac9428c411cde10faacce35) ) + ROM_LOAD16_BYTE( "mdh1rom0u", 0x0000001, 0x800000, CRC(315e9539) SHA1(340fcd196f53f64b3f56ef73101eddc9e142d907) ) + ROM_LOAD16_BYTE( "mdh1rom1l", 0x1000000, 0x800000, CRC(9f610211) SHA1(8459733c52d1c62033a4aeb9985b4a6e863a62d0) ) + ROM_LOAD16_BYTE( "mdh1rom1u", 0x1000001, 0x800000, CRC(a2e43560) SHA1(b0657a22701c6f2098f210d59e4c9bc88593a750) ) + ROM_LOAD16_BYTE( "mdh1rom2l", 0x2000000, 0x800000, CRC(84840fa9) SHA1(0f051db55b30f7dd473f4df9bb5e7d38c39dc785) ) + ROM_LOAD16_BYTE( "mdh1rom2u", 0x2000001, 0x800000, CRC(9490dafe) SHA1(c1bd9343535876eac5369a86105013b4a7d731b3) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "mdh1vera.11s", 0x0000000, 0x080000, CRC(20d7ba29) SHA1(95a056d1f1ac70dda8ced832b506076485348a33) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "mdh1wave0", 0x0000000, 0x800000, CRC(7b031123) SHA1(7cbc1f71d259405f9f1ef26026d51abcb255b057) ) +ROM_END + +ROM_START( mrdrillr ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "dri3vera2.2l", 0x0000000, 0x200000, CRC(36b9eeab) SHA1(85f5d57d4fc6160bfed49a08ad31a2cc2b4a38c5) ) + ROM_LOAD16_BYTE( "dri3vera2.2p", 0x0000001, 0x200000, CRC(811c00d5) SHA1(627685078fceb023e8af1b7af5269f9b01a06dba) ) + + ROM_REGION32_LE( 0x0800000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "dri1rom0l.6", 0x0000000, 0x400000, CRC(021bb2fa) SHA1(bfe3e46e9728d5b5a692f432515267ff8b8255e7) ) + ROM_LOAD16_BYTE( "dri1rom0u.9", 0x0000001, 0x400000, CRC(5aae85ea) SHA1(a54dcc050c12ed3d77efc328e366e99c392eb139) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "dri1vera.11s", 0x0000000, 0x080000, CRC(33ea9c0e) SHA1(5018d7a1a45ec3133cd928435db8804f66321924) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "dri1wave0.5", 0x0000000, 0x800000, CRC(32928df1) SHA1(79af92a2d24a0e3d5bfe1785776b0f86a93882ce) ) +ROM_END + +ROM_START( mrdrillrja2 ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "dri1vera2.2l", 0x0000000, 0x200000, CRC(751ca21d) SHA1(1c271bba83d387c797ce8daa43885bcb6e1a51a6) ) + ROM_LOAD16_BYTE( "dri1vera2.2p", 0x0000001, 0x200000, CRC(2a2b0704) SHA1(5a8b40c6cf0adc43ca2ee0c576ec82f314aacd2c) ) + + ROM_REGION32_LE( 0x0800000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "dri1rom0l.6", 0x0000000, 0x400000, CRC(021bb2fa) SHA1(bfe3e46e9728d5b5a692f432515267ff8b8255e7) ) + ROM_LOAD16_BYTE( "dri1rom0u.9", 0x0000001, 0x400000, CRC(5aae85ea) SHA1(a54dcc050c12ed3d77efc328e366e99c392eb139) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "dri1vera.11s", 0x0000000, 0x080000, CRC(33ea9c0e) SHA1(5018d7a1a45ec3133cd928435db8804f66321924) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "dri1wave0.5", 0x0000000, 0x800000, CRC(32928df1) SHA1(79af92a2d24a0e3d5bfe1785776b0f86a93882ce) ) +ROM_END + +ROM_START( ohbakyuun ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "ob1vera.2l", 0x0000000, 0x200000, CRC(4cb3c25a) SHA1(18679b9ae54f2b001316d9a55065c859df292c4c) ) + ROM_LOAD16_BYTE( "ob1vera.2p", 0x0000001, 0x200000, CRC(85abbe30) SHA1(0edfa34c45bd95882639a7d3e43bc9df3bc23586) ) + + ROM_REGION32_LE( 0x00800000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "ob1rom0l.ic12", 0x0000000, 0x400000, CRC(f8b6a599) SHA1(2af3186242a8cbf14ab7532496a91041300527e9) ) + ROM_LOAD16_BYTE( "ob1rom0u.ic11", 0x0000001, 0x400000, CRC(0625db92) SHA1(b63be6e41b2c6e2194f02f0c31da1f30c4e08232) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "ob1vera.11s", 0x0000000, 0x080000, CRC(f8c459f2) SHA1(681520c891f5c8a0f321652d8834910310c88d1a) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "ob1wave.ic2", 0x0000000, 0x800000, CRC(e7bc7202) SHA1(f0f598304866ebe62642eaac6b7d8709baa14fe1) ) +ROM_END + +ROM_START( pacapp ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "ppp1vera.2l", 0x0000000, 0x200000, CRC(6e74bd05) SHA1(41a2e06538cea3bced2992f5858a3f0cd1c0b4aa) ) + ROM_LOAD16_BYTE( "ppp1vera.2p", 0x0000001, 0x200000, CRC(b7a2f724) SHA1(820ae04ec416b8394a1d919279748bde3460cb96) ) + + ROM_REGION32_LE( 0x1800000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "ppp1rom0l.6", 0x0000000, 0x400000, CRC(b152fdd8) SHA1(23c5c07680a62e941a7b1a28897f986dd9399801) ) + ROM_LOAD16_BYTE( "ppp1rom0u.9", 0x0000001, 0x400000, CRC(c615c26e) SHA1(db1aae37ebee2a74636415e4b1b0b17790a6a67e) ) + ROM_LOAD16_BYTE( "ppp1rom1l.7", 0x0800000, 0x400000, CRC(46eaedbd) SHA1(afe3c966fcf083d89b45d44d871bed1b8caa3014) ) + ROM_LOAD16_BYTE( "ppp1rom1u.10", 0x0800001, 0x400000, CRC(32f27dce) SHA1(06de870b83c972403d96b8b9a8ee5a192a99451d) ) + ROM_LOAD16_BYTE( "ppp1rom2l.8", 0x1000000, 0x400000, CRC(dca7e5ed) SHA1(b43b6e086912009295ceae11d2d540733353d7b6) ) + ROM_LOAD16_BYTE( "ppp1rom2u.11", 0x1000001, 0x400000, CRC(cada7a0d) SHA1(e8d927a4680911b77de1d906b5e0140697e9c67b) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "ppp1vera.11s", 0x0000000, 0x080000, CRC(22242317) SHA1(e46bf3c594136168faedebbd59f53ff9a6ecf3c1) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "ppp1wave0.5", 0x0000000, 0x800000, CRC(184ccc7d) SHA1(b74638cebef209638c625aac7e8c5b924f56a8bb) ) + ROM_LOAD( "ppp1wave1.4", 0x0800000, 0x800000, CRC(cbcf74c5) SHA1(a089277c9befc87b5bbe0d4e5b8187a4ad5ef143) ) +ROM_END + +ROM_START( pacapp2 ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "pks1vera.2l", 0x0000000, 0x200000, CRC(aec428d3) SHA1(c13aecc6a367d6da501dce66fecbab5458ecac53) ) + ROM_LOAD16_BYTE( "pks1vera.2p", 0x0000001, 0x200000, CRC(289e6e8a) SHA1(b8197355bee5660e8ff78a1c427c6d2b94a12b9d) ) + + ROM_REGION32_LE( 0x1800000, "bankedroms", 0 ) + ROM_LOAD( "pks1rom0.ic7", 0x0000000, 0x800000, CRC(91f151fc) SHA1(84b4c9b2a9ae5687e1cba5f0a0db96495956cbfe) ) + ROM_LOAD( "pks1rom1.ic8", 0x0800000, 0x800000, CRC(8195f981) SHA1(1b9c2289e0975606ff52b9974778f82c9c29e955) ) + ROM_LOAD( "pks1rom2.ic9", 0x1000000, 0x800000, CRC(fea93ddc) SHA1(5f9c3f899a11797746d9c1077960f918aaca95f4) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "pks1vera.11s", 0x0000000, 0x080000, CRC(4942b588) SHA1(b28eb64a7347259619e32fdd396770983e25a707) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "pks1wave0.ic2", 0x0000000, 0x800000, CRC(3ebd27c3) SHA1(af874c3fb4cf1651075f307daefe7e3434769ecb) ) + ROM_LOAD( "pks1wave1.ic1", 0x0800000, 0x800000, CRC(07e426b7) SHA1(6dd038d4f2c95470f1ca09cfead83802e9480d02) ) +ROM_END + +ROM_START( pacappsp ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "psp1vera.2l", 0x0000000, 0x200000, CRC(4b6943af) SHA1(63b21794719bc1fc075e9cc4f1c1783442860036) ) + ROM_LOAD16_BYTE( "psp1vera.2p", 0x0000001, 0x200000, CRC(91397f04) SHA1(db3dd59edcdec10eb2fee74450c024a7ecffe1c9) ) + + ROM_REGION32_LE( 0x1800000, "bankedroms", 0 ) + ROM_LOAD( "psp1rom0.ic7", 0x0000000, 0x800000, CRC(7c26ff47) SHA1(f9d366ae9eb11e14875b611112bc82f7c7d391e0) ) + ROM_LOAD( "psp1rom1.ic8", 0x0800000, 0x800000, CRC(4b764fc3) SHA1(92a7f0f1537f2f4d5a8b0218720978b576f78dad) ) + ROM_LOAD( "psp1rom2.ic9", 0x1000000, 0x800000, CRC(a3fa6730) SHA1(0126a77661c3add0bfec9f6ef15021e602b7a614) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "psp1vera.11s", 0x0000000, 0x080000, CRC(47b9ccab) SHA1(15d4c5ac9ae7202df2d0ef84092679d190f2c45a) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "psp1wave0.ic2", 0x0000000, 0x800000, CRC(44b9a327) SHA1(ab20d5371f7a8c3a7fbc21fcf54a93c1cd007cd2) ) + ROM_LOAD( "psp1wave1.ic1", 0x0800000, 0x800000, CRC(c045b09c) SHA1(1cfd7003771576f6574d91d862af1f76ceaed64f) ) +ROM_END + +ROM_START( ptblank2 ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "gnb5vera.2l", 0x0000000, 0x200000, CRC(4d0ef3b7) SHA1(6c4077316fa90b734c4a4e0aa3eadd26e97bd6ce) ) + ROM_LOAD16_BYTE( "gnb5vera.2p", 0x0000001, 0x200000, CRC(5d1d19ff) SHA1(4aa8ba7233d7f9bac759c98f53e637c1f3659c3f) ) + + ROM_REGION32_LE( 0x1000000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "gnb1prg0l.ic12", 0x0000000, 0x800000, CRC(78746037) SHA1(d130ca1153a730e3c967945248f00662f9fab304) ) + ROM_LOAD16_BYTE( "gnb1prg0u.ic11", 0x0000001, 0x800000, CRC(697d3279) SHA1(40302780f7494d9413888b2d1da38bd14a9a444f) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "gnb_vera.11s", 0x0000000, 0x080000, CRC(d45a53eb) SHA1(01eb4f659b29671d417c5d3684f15a5876f76009) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "gnb1waveb.ic2", 0x0000000, 0x400000, CRC(4e19d9d6) SHA1(0a92c987536999a789663a30c787950ab6995128) ) + ROM_RELOAD( 0x800000, 0x400000 ) +ROM_END + +ROM_START( soulclbr ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "soc12vera.2l", 0x0000000, 0x200000, CRC(ceadcc9a) SHA1(68cd3d15f28178fcea8aada6067b7060edfb2913) ) + ROM_LOAD16_BYTE( "soc12vera.2p", 0x0000001, 0x200000, CRC(65a74cf0) SHA1(1129c078925bd02f4e9cef64cd7761968be53537) ) + + ROM_REGION32_LE( 0x2000000, "bankedroms", 0 ) + ROM_LOAD( "soc1rom0.7", 0x0000000, 0x800000, CRC(cdc47b55) SHA1(315ea6b819de5c4883aa400f1b9f4172637757bf) ) + ROM_LOAD( "soc1rom1.8", 0x0800000, 0x800000, CRC(30d2dd5a) SHA1(1c0c467ba339e0241efb8d5c3b025a046b2ca676) ) + ROM_LOAD( "soc1rom2.9", 0x1000000, 0x800000, CRC(dbb93955) SHA1(624cd8ad94e8ae53206f798bff81784afe95e5f1) ) + ROM_LOAD( "soc1fl3.6", 0x1800000, 0x400000, CRC(24d94c38) SHA1(0f9b9ab11dd4e02086d7b9104ce2f5d4e93cd696) ) + ROM_LOAD( "soc1fl4.5", 0x1c00000, 0x400000, CRC(6212090e) SHA1(ed5e50771180935a0c2e760e7369673098722201) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "soc1vera.11s", 0x0000000, 0x080000, CRC(52aa206a) SHA1(5abe9d6f800fa1b9623aa08b16e9b959b840e50b) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "soc1wave0.2", 0x0000000, 0x800000, CRC(c100618d) SHA1(b87f88ee42ad9c5affa674e5f816d902143fed99) ) +ROM_END + +ROM_START( soulclbrab ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "soc14verb.2l", 0x0000000, 0x200000, CRC(6af5c5f6) SHA1(51d1e7d78d95cfc765cd219ed07b405cd920044b) ) + ROM_LOAD16_BYTE( "soc14verb.2p", 0x0000001, 0x200000, CRC(23e7a4c4) SHA1(a97f36cafdeff9e26fbd24e54ab8ac8080763761) ) + + ROM_REGION32_LE( 0x2000000, "bankedroms", 0 ) + ROM_LOAD( "soc1rom0.7", 0x0000000, 0x800000, CRC(cdc47b55) SHA1(315ea6b819de5c4883aa400f1b9f4172637757bf) ) + ROM_LOAD( "soc1rom1.8", 0x0800000, 0x800000, CRC(30d2dd5a) SHA1(1c0c467ba339e0241efb8d5c3b025a046b2ca676) ) + ROM_LOAD( "soc1rom2.9", 0x1000000, 0x800000, CRC(dbb93955) SHA1(624cd8ad94e8ae53206f798bff81784afe95e5f1) ) + ROM_LOAD( "soc1fl3.6", 0x1800000, 0x400000, CRC(24d94c38) SHA1(0f9b9ab11dd4e02086d7b9104ce2f5d4e93cd696) ) + ROM_LOAD( "soc1fl4.5", 0x1c00000, 0x400000, CRC(6212090e) SHA1(ed5e50771180935a0c2e760e7369673098722201) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "soc1vera.11s", 0x0000000, 0x080000, CRC(52aa206a) SHA1(5abe9d6f800fa1b9623aa08b16e9b959b840e50b) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "soc1wave0.2", 0x0000000, 0x800000, CRC(c100618d) SHA1(b87f88ee42ad9c5affa674e5f816d902143fed99) ) +ROM_END + +ROM_START( soulclbrac ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "soc14verc.2e", 0x0000000, 0x200000, CRC(c40e9614) SHA1(dc20469f0d657423e472fdf5897852ab9fb8bb73) ) + ROM_LOAD16_BYTE( "soc14verc.2j", 0x0000001, 0x200000, CRC(80c41446) SHA1(e5620a4f0ffba913169a779df73384b7ca8780b9) ) + + ROM_REGION32_LE( 0x2000000, "bankedroms", 0 ) + ROM_LOAD( "soc1rom0.7", 0x0000000, 0x800000, CRC(cdc47b55) SHA1(315ea6b819de5c4883aa400f1b9f4172637757bf) ) + ROM_LOAD( "soc1rom1.8", 0x0800000, 0x800000, CRC(30d2dd5a) SHA1(1c0c467ba339e0241efb8d5c3b025a046b2ca676) ) + ROM_LOAD( "soc1rom2.9", 0x1000000, 0x800000, CRC(dbb93955) SHA1(624cd8ad94e8ae53206f798bff81784afe95e5f1) ) + ROM_LOAD( "soc1fl3.6", 0x1800000, 0x400000, CRC(24d94c38) SHA1(0f9b9ab11dd4e02086d7b9104ce2f5d4e93cd696) ) + ROM_LOAD( "soc1fl4.5", 0x1c00000, 0x400000, CRC(6212090e) SHA1(ed5e50771180935a0c2e760e7369673098722201) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "soc1vera.11s", 0x0000000, 0x080000, CRC(52aa206a) SHA1(5abe9d6f800fa1b9623aa08b16e9b959b840e50b) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "soc1wave0.2", 0x0000000, 0x800000, CRC(c100618d) SHA1(b87f88ee42ad9c5affa674e5f816d902143fed99) ) +ROM_END + +ROM_START( soulclbrja2 ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "soc1vera.2l", 0x0000000, 0x200000, CRC(37e0a203) SHA1(3915b5e530c8e70a07aa8ccedeb66633ae5f670e) ) + ROM_LOAD16_BYTE( "soc1vera.2p", 0x0000001, 0x200000, CRC(7cd87a35) SHA1(5a4837b6f6a49c88126a0ddbb8059a4da77127bc) ) + + ROM_REGION32_LE( 0x2000000, "bankedroms", 0 ) + ROM_LOAD( "soc1rom0.7", 0x0000000, 0x800000, CRC(cdc47b55) SHA1(315ea6b819de5c4883aa400f1b9f4172637757bf) ) + ROM_LOAD( "soc1rom1.8", 0x0800000, 0x800000, CRC(30d2dd5a) SHA1(1c0c467ba339e0241efb8d5c3b025a046b2ca676) ) + ROM_LOAD( "soc1rom2.9", 0x1000000, 0x800000, CRC(dbb93955) SHA1(624cd8ad94e8ae53206f798bff81784afe95e5f1) ) + ROM_LOAD( "soc1fl3.6", 0x1800000, 0x400000, CRC(24d94c38) SHA1(0f9b9ab11dd4e02086d7b9104ce2f5d4e93cd696) ) + ROM_LOAD( "soc1fl4.5", 0x1c00000, 0x400000, CRC(6212090e) SHA1(ed5e50771180935a0c2e760e7369673098722201) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "soc1vera.11s", 0x0000000, 0x080000, CRC(52aa206a) SHA1(5abe9d6f800fa1b9623aa08b16e9b959b840e50b) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "soc1wave0.2", 0x0000000, 0x800000, CRC(c100618d) SHA1(b87f88ee42ad9c5affa674e5f816d902143fed99) ) +ROM_END + +ROM_START( soulclbrjb ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "soc11verb.2e", 0x0000000, 0x200000, CRC(9660d996) SHA1(6361abfd8b0d29848aabad6a5c517ba0d336359a) ) + ROM_LOAD16_BYTE( "soc11verb.2j", 0x0000001, 0x200000, CRC(49939880) SHA1(a53fb8ecd71c8d59b0e08d6233ea658ae083bc6d) ) + + ROM_REGION32_LE( 0x2000000, "bankedroms", 0 ) + ROM_LOAD( "soc1rom0.7", 0x0000000, 0x800000, CRC(cdc47b55) SHA1(315ea6b819de5c4883aa400f1b9f4172637757bf) ) + ROM_LOAD( "soc1rom1.8", 0x0800000, 0x800000, CRC(30d2dd5a) SHA1(1c0c467ba339e0241efb8d5c3b025a046b2ca676) ) + ROM_LOAD( "soc1rom2.9", 0x1000000, 0x800000, CRC(dbb93955) SHA1(624cd8ad94e8ae53206f798bff81784afe95e5f1) ) + ROM_LOAD( "soc1fl3.6", 0x1800000, 0x400000, CRC(24d94c38) SHA1(0f9b9ab11dd4e02086d7b9104ce2f5d4e93cd696) ) + ROM_LOAD( "soc1fl4.5", 0x1c00000, 0x400000, CRC(6212090e) SHA1(ed5e50771180935a0c2e760e7369673098722201) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "soc1vera.11s", 0x0000000, 0x080000, CRC(52aa206a) SHA1(5abe9d6f800fa1b9623aa08b16e9b959b840e50b) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "soc1wave0.2", 0x0000000, 0x800000, CRC(c100618d) SHA1(b87f88ee42ad9c5affa674e5f816d902143fed99) ) +ROM_END + +ROM_START( soulclbrjc ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "soc11verc.2l", 0x0000000, 0x200000, CRC(f5e3679c) SHA1(b426cfc7707a6772e6aabbaf4a19b7f008324d55) ) + ROM_LOAD16_BYTE( "soc11verc.2p", 0x0000001, 0x200000, CRC(7537719c) SHA1(d83d4c762fa7fcfd5d84de550568e92999e5bdfb) ) + + ROM_REGION32_LE( 0x2000000, "bankedroms", 0 ) + ROM_LOAD( "soc1rom0.7", 0x0000000, 0x800000, CRC(cdc47b55) SHA1(315ea6b819de5c4883aa400f1b9f4172637757bf) ) + ROM_LOAD( "soc1rom1.8", 0x0800000, 0x800000, CRC(30d2dd5a) SHA1(1c0c467ba339e0241efb8d5c3b025a046b2ca676) ) + ROM_LOAD( "soc1rom2.9", 0x1000000, 0x800000, CRC(dbb93955) SHA1(624cd8ad94e8ae53206f798bff81784afe95e5f1) ) + ROM_LOAD( "soc1fl3.6", 0x1800000, 0x400000, CRC(24d94c38) SHA1(0f9b9ab11dd4e02086d7b9104ce2f5d4e93cd696) ) + ROM_LOAD( "soc1fl4.5", 0x1c00000, 0x400000, CRC(6212090e) SHA1(ed5e50771180935a0c2e760e7369673098722201) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "soc1vera.11s", 0x0000000, 0x080000, CRC(52aa206a) SHA1(5abe9d6f800fa1b9623aa08b16e9b959b840e50b) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "soc1wave0.2", 0x0000000, 0x800000, CRC(c100618d) SHA1(b87f88ee42ad9c5affa674e5f816d902143fed99) ) +ROM_END + +ROM_START( soulclbrub ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "soc13verb.2e", 0x0000000, 0x200000, CRC(ad7cfb1e) SHA1(7d1e7fd0024e31780335690906846e91ba063003) ) + ROM_LOAD16_BYTE( "soc13verb.2j", 0x0000001, 0x200000, CRC(7449c045) SHA1(1c7a8b659d0f12dded2a00bc83baeb392fd7a719) ) + + ROM_REGION32_LE( 0x2000000, "bankedroms", 0 ) + ROM_LOAD( "soc1rom0.7", 0x0000000, 0x800000, CRC(cdc47b55) SHA1(315ea6b819de5c4883aa400f1b9f4172637757bf) ) + ROM_LOAD( "soc1rom1.8", 0x0800000, 0x800000, CRC(30d2dd5a) SHA1(1c0c467ba339e0241efb8d5c3b025a046b2ca676) ) + ROM_LOAD( "soc1rom2.9", 0x1000000, 0x800000, CRC(dbb93955) SHA1(624cd8ad94e8ae53206f798bff81784afe95e5f1) ) + ROM_LOAD( "soc1fl3.6", 0x1800000, 0x400000, CRC(24d94c38) SHA1(0f9b9ab11dd4e02086d7b9104ce2f5d4e93cd696) ) + ROM_LOAD( "soc1fl4.5", 0x1c00000, 0x400000, CRC(6212090e) SHA1(ed5e50771180935a0c2e760e7369673098722201) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "soc1vera.11s", 0x0000000, 0x080000, CRC(52aa206a) SHA1(5abe9d6f800fa1b9623aa08b16e9b959b840e50b) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "soc1wave0.2", 0x0000000, 0x800000, CRC(c100618d) SHA1(b87f88ee42ad9c5affa674e5f816d902143fed99) ) +ROM_END + +ROM_START( soulclbruc ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "soc13verc.2l", 0x0000000, 0x200000, CRC(4ba962fb) SHA1(e2b5e543d92a4157788482f3ab7c6b0e5ff30367) ) + ROM_LOAD16_BYTE( "soc13verc.2p", 0x0000001, 0x200000, CRC(140c40de) SHA1(352faec0fff5a8422ee7c8db2e0c946b139be03f) ) + + ROM_REGION32_LE( 0x2000000, "bankedroms", 0 ) + ROM_LOAD( "soc1rom0.7", 0x0000000, 0x800000, CRC(cdc47b55) SHA1(315ea6b819de5c4883aa400f1b9f4172637757bf) ) + ROM_LOAD( "soc1rom1.8", 0x0800000, 0x800000, CRC(30d2dd5a) SHA1(1c0c467ba339e0241efb8d5c3b025a046b2ca676) ) + ROM_LOAD( "soc1rom2.9", 0x1000000, 0x800000, CRC(dbb93955) SHA1(624cd8ad94e8ae53206f798bff81784afe95e5f1) ) + ROM_LOAD( "soc1fl3.6", 0x1800000, 0x400000, CRC(24d94c38) SHA1(0f9b9ab11dd4e02086d7b9104ce2f5d4e93cd696) ) + ROM_LOAD( "soc1fl4.5", 0x1c00000, 0x400000, CRC(6212090e) SHA1(ed5e50771180935a0c2e760e7369673098722201) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "soc1vera.11s", 0x0000000, 0x080000, CRC(52aa206a) SHA1(5abe9d6f800fa1b9623aa08b16e9b959b840e50b) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "soc1wave0.2", 0x0000000, 0x800000, CRC(c100618d) SHA1(b87f88ee42ad9c5affa674e5f816d902143fed99) ) +ROM_END + +ROM_START( sws98 ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "ss81vera.2l", 0x0000000, 0x200000, CRC(94b1f34c) SHA1(0c8491fda366b5b2874e5f49959dccd11d372e46) ) + ROM_LOAD16_BYTE( "ss81vera.2p", 0x0000001, 0x200000, CRC(7d0ed33d) SHA1(34342ce57b29ee15c6279c099bb145ac7ad262f3) ) + + ROM_REGION32_LE( 0x1c00000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "ss81fl1l.9", 0x1000000, 0x200000, CRC(b0b5dc77) SHA1(abce4e6ae60858b7c7408d10975b7a1e0d183115) ) + ROM_LOAD16_BYTE( "ss81fl1u.10", 0x1000001, 0x200000, CRC(e526dba5) SHA1(889fdfba17282eb05a3e254af81ee15c3e16acc4) ) + ROM_LOAD16_BYTE( "ss81fl2l.7", 0x1400000, 0x200000, CRC(2dc6f6b5) SHA1(e6c7bb804d7d027acca5adb15b0bb95321905ff3) ) + ROM_LOAD16_BYTE( "ss81fl2u.8", 0x1400001, 0x200000, CRC(c8341c9f) SHA1(b7c5a960a238e963c7ec5bdb0751a8730d3b09f7) ) + ROM_LOAD16_BYTE( "ss81fl3l.5", 0x1800000, 0x200000, CRC(ce5d2a96) SHA1(08f3955e1ce949ce436f6f2f19fd42204682ae8c) ) + ROM_LOAD16_BYTE( "ss81fl3u.6", 0x1800001, 0x200000, CRC(02df4df8) SHA1(01fd66c905cde9ca073dc4b6dbd826c5fe96b79b) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "ss81vera.11s", 0x0000000, 0x080000, CRC(c6bc5c31) SHA1(c6ef46c3fa8a7749618126d360e614ea6c8d9c54) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "ss81wave0.2", 0x0000000, 0x800000, CRC(1c5e2ff1) SHA1(4f29dfd49f6b5c3ca3b758823d368051354bd673) ) + ROM_LOAD( "ss81wave1.1", 0x0800000, 0x800000, CRC(5f4c8861) SHA1(baee7182c32bc064d805de5a16948faf78941ac4) ) +ROM_END + +ROM_START( sws99 ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "ss91vera.2e", 0x0000000, 0x200000, CRC(4dd928d7) SHA1(d76c0f52d1a2cd101a6879e6ff57ed1c52b5e228) ) + ROM_LOAD16_BYTE( "ss91vera.2j", 0x0000001, 0x200000, CRC(40777a48) SHA1(6e3052ddbe3943eb2418cd50102cead88b850240) ) + + ROM_REGION32_LE( 0x2000000, "bankedroms", 0 ) + ROM_LOAD( "ss91rom0.9", 0x0000000, 0x800000, CRC(db5bc50d) SHA1(b8b59f6db3a374277871c39b3657cb193525e558) ) + ROM_LOAD( "ss91rom1.10", 0x0800000, 0x800000, CRC(4d71f29f) SHA1(3ccc8410d383bfd9fde44574ebb9c24a235cc734) ) + ROM_FILL( 0x1000000, 0x800000, 0x00 ) + ROM_LOAD16_BYTE( "ss91fl3l.7", 0x1800000, 0x200000, CRC(61efd65b) SHA1(1e97d5cd51bf778995c3e568ac7e1d3514264d48) ) + ROM_LOAD16_BYTE( "ss91fl3h.8", 0x1800001, 0x200000, CRC(7f3c8c54) SHA1(b473a503cc5d532922780139ab3cab974d3df65b) ) + ROM_LOAD16_BYTE( "ss91fl4l.5", 0x1c00000, 0x200000, CRC(a6af9511) SHA1(63f14f4fc2b210348e41cdfa552a7a7c86fb1b99) ) + ROM_LOAD16_BYTE( "ss91fl4h.6", 0x1c00001, 0x200000, CRC(be3730a4) SHA1(48802229d31c1eef7f4173eb05060a328b702336) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "ss91vera.11s", 0x0000000, 0x080000, CRC(c6bc5c31) SHA1(c6ef46c3fa8a7749618126d360e614ea6c8d9c54) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "ss91wave0.2", 0x0000000, 0x800000, CRC(1c5e2ff1) SHA1(4f29dfd49f6b5c3ca3b758823d368051354bd673) ) + ROM_LOAD( "ss91wave1.1", 0x0800000, 0x800000, CRC(5f4c8861) SHA1(baee7182c32bc064d805de5a16948faf78941ac4) ) +ROM_END + +ROM_START( sws2000 ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "ss01vera.2l", 0x0000000, 0x200000, CRC(6ddbdcaa) SHA1(cff31d75e7780851b2c2c025ee34fd8990e2f502) ) + ROM_LOAD16_BYTE( "ss01vera.2p", 0x0000001, 0x200000, CRC(6ade7d28) SHA1(3e8d7bc9a284324c4de0ac265872b613d108cb57) ) + + ROM_REGION32_LE( 0x2000000, "bankedroms", 0 ) + ROM_LOAD( "ss01rom0.9", 0x0000000, 0x800000, CRC(c08cc59c) SHA1(f2d8064491c98acbb40260d7f13d0f9b394c1383) ) + ROM_LOAD( "ss01rom1.10", 0x0800000, 0x800000, CRC(d4aa1dc6) SHA1(68fcb60aadf35668d7d746da1e29d5d985e40aec) ) + ROM_LOAD( "ss01rom2.11", 0x1000000, 0x800000, CRC(3371904a) SHA1(58bbf98a44560bc021bac4bc513fe89deea85b50) ) + ROM_LOAD16_BYTE( "ss01fl3l.7", 0x1800000, 0x200000, CRC(35bad813) SHA1(19ceffb78695c8c22b30659aad56ac237ffb56ac) ) + ROM_LOAD16_BYTE( "ss01fl3h.8", 0x1800001, 0x200000, CRC(a14828fc) SHA1(fd8a052451f74f420f4a4a2b902e0c2e83e3239b) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "ss01vera.11s", 0x0000000, 0x080000, CRC(641e6584) SHA1(dfc0ac21bea5b19dbce5d50fb681854889d756dc) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "ss01wave0.2", 0x0000000, 0x800000, CRC(1c5e2ff1) SHA1(4f29dfd49f6b5c3ca3b758823d368051354bd673) ) + ROM_LOAD( "ss01wave1.1", 0x0800000, 0x800000, CRC(5f4c8861) SHA1(baee7182c32bc064d805de5a16948faf78941ac4) ) +ROM_END + +ROM_START( sws2001 ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "ss11vera.2l", 0x0000000, 0x200000, CRC(a7b4dbe5) SHA1(1bcb8d127388e2ead9ca04b527779896c69daf7f) ) + ROM_LOAD16_BYTE( "ss11vera.2p", 0x0000001, 0x200000, CRC(3ef76b4e) SHA1(34c21b6002d3f88aa3f4b4606c8aace24be92920) ) + + ROM_REGION32_LE( 0x4000000, "bankedroms", 0 ) + ROM_LOAD( "ss01rom0.9", 0x0000000, 0x800000, CRC(c08cc59c) SHA1(f2d8064491c98acbb40260d7f13d0f9b394c1383) ) + ROM_LOAD( "ss01rom1.10", 0x1000000, 0x800000, CRC(d4aa1dc6) SHA1(68fcb60aadf35668d7d746da1e29d5d985e40aec) ) + ROM_LOAD( "ss01rom2.11", 0x2000000, 0x800000, CRC(3371904a) SHA1(58bbf98a44560bc021bac4bc513fe89deea85b50) ) + ROM_LOAD( "ss11fl1l.5", 0x3000000, 0x800000, CRC(0546a2b4) SHA1(b61457c9c5136f94ace48e83de8043ce20ca4d99) ) + ROM_LOAD( "ss11fl1u.6", 0x3800000, 0x800000, CRC(b3de0b2c) SHA1(a89d3a2eb0952a98cc4765af2897b94136ca58ad) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "ss01vera.11s", 0x0000000, 0x080000, CRC(641e6584) SHA1(dfc0ac21bea5b19dbce5d50fb681854889d756dc) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "ss01wave0.2", 0x0000000, 0x800000, CRC(1c5e2ff1) SHA1(4f29dfd49f6b5c3ca3b758823d368051354bd673) ) + ROM_LOAD( "ss01wave1.1", 0x0800000, 0x800000, CRC(5f4c8861) SHA1(baee7182c32bc064d805de5a16948faf78941ac4) ) +ROM_END + +ROM_START( technodr ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "th1verb.2l", 0x0000000, 0x200000, CRC(736fae08) SHA1(099e648784f617cc3b5a57a5838b8fbb54cacca1) ) // service mode reports Ver 1.06 JPN + ROM_LOAD16_BYTE( "th1verb.2p", 0x0000001, 0x200000, CRC(1fafb2d2) SHA1(ea0617714dcd7636e21a10fa2665a6f9c0f0a93b) ) + + ROM_REGION32_LE( 0x3400000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "th1rom0l.6", 0x0000000, 0x400000, CRC(f8274106) SHA1(5c0b60c7440cfa01572b10ed564446d7f1a81a3a) ) + ROM_LOAD16_BYTE( "th1rom0u.9", 0x0000001, 0x400000, CRC(260ae0c5) SHA1(2ecb82e069fa64b9d3f63d6193befae02f3140e4) ) + ROM_LOAD16_BYTE( "th1rom1l.7", 0x0800000, 0x400000, CRC(56d9b477) SHA1(101b5acfbe5d292418f7fd8db642187f2b571d0b) ) + ROM_LOAD16_BYTE( "th1rom1u.10", 0x0800001, 0x400000, CRC(a45d337e) SHA1(10e230b61ab4c6aa386c68463badef0c4ba58f0e) ) + ROM_LOAD16_BYTE( "th1fl3l.12", 0x1800000, 0x200000, CRC(c330116f) SHA1(b12de5a82d6ebb5f893882b578e02af732231512) ) + ROM_LOAD16_BYTE( "th1fl3u.13", 0x1800001, 0x200000, CRC(cd4422c0) SHA1(97a9788cf0c589477f77c5403cc715ce4980a7bd) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "th1verb.11s", 0x0000000, 0x080000, CRC(85806e2e) SHA1(9e0a7e6924b72e7b5b1d0e72eeec10045984dd4b) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "th1wave0.5", 0x0000000, 0x400000, CRC(6cdd06fb) SHA1(31bd0b359e3b93bd40c3416a4805d0523e7f54c3) ) + ROM_LOAD( "th1wave1.4", 0x0400000, 0x400000, CRC(40fd413b) SHA1(b7edf89b5fa196a0787646c73b9aa07fc062fc8b) ) +ROM_END + +ROM_START( tekken3 ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "tet2vere1.2e", 0x0000000, 0x200000, CRC(7ded5461) SHA1(3a5638c6ad40bfde6e12fdfd6d469f6ea5e9f4fb) ) + ROM_LOAD16_BYTE( "tet2vere1.2j", 0x0000001, 0x200000, CRC(25c96e1e) SHA1(554d1e42886d6a6c9c5857e9cbd5d7c37d7a6e67) ) + + ROM_REGION32_LE( 0x1c00000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "tet1rom0l.6", 0x0000000, 0x400000, CRC(2886bb32) SHA1(08ad9da2df25ad8c933a812ac238c81135072929) ) + ROM_LOAD16_BYTE( "tet1rom0u.9", 0x0000001, 0x400000, CRC(c5705b92) SHA1(20df20c8d18eb4712d565a3df9a8d9270dee6aaa) ) + ROM_LOAD16_BYTE( "tet1rom1l.7", 0x0800000, 0x400000, CRC(0397d283) SHA1(ebafcd14cdb2601214129a84fc6830846f5cd274) ) + ROM_LOAD16_BYTE( "tet1rom1u.10", 0x0800001, 0x400000, CRC(502ba5cd) SHA1(19c1282245c6dbfc945c0bd0f3918968c3e5c3ed) ) + ROM_LOAD16_BYTE( "tet1rom2l.8", 0x1000000, 0x400000, CRC(e03b1c24) SHA1(8579b95a8fd06b7d2893ff88b228fd794162dff1) ) + ROM_LOAD16_BYTE( "tet1rom2u.11", 0x1000001, 0x400000, CRC(75eb2ab3) SHA1(dee43884e542391903f6aaae2c166e7921a86fb4) ) + ROM_LOAD16_BYTE( "tet1fl3l.12", 0x1800000, 0x200000, CRC(45513073) SHA1(8a36f58ee2d292b50e00c6bf275f9def358032d8) ) + ROM_LOAD16_BYTE( "tet1fl3u.13", 0x1800001, 0x200000, CRC(1917d993) SHA1(cabc44514a3e62a18a7f8f883603241447d6948b) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "tet1verb.11s", 0x0000000, 0x080000, CRC(c92b98d1) SHA1(8ae6fba8c5b6b9a2ab9541eac8553b282f35750d) ) /* No label but different than tet1vera.11s */ + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "tet1wave0.5", 0x0000000, 0x400000, CRC(77ba7975) SHA1(fe9434dcf0fb232c85efaaae1b4b13d36099620a) ) + ROM_LOAD( "tet1wave1.4", 0x0400000, 0x400000, CRC(ffeba79f) SHA1(941412bbe9d0305d9a23c224c1bb774c4321f6df) ) +ROM_END + +ROM_START( tekken3ja ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "tet1vera.2e", 0x0000000, 0x200000, CRC(98fe53b4) SHA1(0d3380f368908a21cb1e4cea353687d3f6295d79) ) + ROM_LOAD16_BYTE( "tet1vera.2j", 0x0000001, 0x200000, CRC(4dc6bb4a) SHA1(1a0ae22410fb6f7757d21fdaf713893ca4e177fe) ) + + ROM_REGION32_LE( 0x1c00000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "tet1rom0l.6", 0x0000000, 0x400000, CRC(2886bb32) SHA1(08ad9da2df25ad8c933a812ac238c81135072929) ) + ROM_LOAD16_BYTE( "tet1rom0u.9", 0x0000001, 0x400000, CRC(c5705b92) SHA1(20df20c8d18eb4712d565a3df9a8d9270dee6aaa) ) + ROM_LOAD16_BYTE( "tet1rom1l.7", 0x0800000, 0x400000, CRC(0397d283) SHA1(ebafcd14cdb2601214129a84fc6830846f5cd274) ) + ROM_LOAD16_BYTE( "tet1rom1u.10", 0x0800001, 0x400000, CRC(502ba5cd) SHA1(19c1282245c6dbfc945c0bd0f3918968c3e5c3ed) ) + ROM_LOAD16_BYTE( "tet1rom2l.8", 0x1000000, 0x400000, CRC(e03b1c24) SHA1(8579b95a8fd06b7d2893ff88b228fd794162dff1) ) + ROM_LOAD16_BYTE( "tet1rom2u.11", 0x1000001, 0x400000, CRC(75eb2ab3) SHA1(dee43884e542391903f6aaae2c166e7921a86fb4) ) + ROM_LOAD16_BYTE( "tet1verafl3l.12", 0x1800000, 0x200000, CRC(64fa1f83) SHA1(5bc8b4657826ead19827f63d04f67597970d5337) ) /* Specific to Ver A. */ + ROM_LOAD16_BYTE( "tet1verafl3u.13", 0x1800001, 0x200000, CRC(32a2516b) SHA1(6f4e4fc1b11d17a867d3e7bdfdd351438390a5a2) ) /* Specific to Ver A. */ + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "tet1vera.11s", 0x0000000, 0x080000, CRC(a74dfe7f) SHA1(854096a6f12ee9073fb1f38e41c8e6e0725a7521) ) /* Specific to Ver A. */ + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "tet1wave0.5", 0x0000000, 0x400000, CRC(77ba7975) SHA1(fe9434dcf0fb232c85efaaae1b4b13d36099620a) ) + ROM_LOAD( "tet1wave1.4", 0x0400000, 0x400000, CRC(ffeba79f) SHA1(941412bbe9d0305d9a23c224c1bb774c4321f6df) ) +ROM_END + +ROM_START( tekken3je1 ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "tet1vere1.2e", 0x0000000, 0x200000, CRC(8b01113b) SHA1(45fdfd58293641ed16bc59c633a85a9cf64ccbaf) ) + ROM_LOAD16_BYTE( "tet1vere1.2j", 0x0000001, 0x200000, CRC(df4c96fb) SHA1(2e223045bf5b80ccf615106e869760c5b7aa8d44) ) + + ROM_REGION32_LE( 0x1c00000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "tet1rom0l.6", 0x0000000, 0x400000, CRC(2886bb32) SHA1(08ad9da2df25ad8c933a812ac238c81135072929) ) + ROM_LOAD16_BYTE( "tet1rom0u.9", 0x0000001, 0x400000, CRC(c5705b92) SHA1(20df20c8d18eb4712d565a3df9a8d9270dee6aaa) ) + ROM_LOAD16_BYTE( "tet1rom1l.7", 0x0800000, 0x400000, CRC(0397d283) SHA1(ebafcd14cdb2601214129a84fc6830846f5cd274) ) + ROM_LOAD16_BYTE( "tet1rom1u.10", 0x0800001, 0x400000, CRC(502ba5cd) SHA1(19c1282245c6dbfc945c0bd0f3918968c3e5c3ed) ) + ROM_LOAD16_BYTE( "tet1rom2l.8", 0x1000000, 0x400000, CRC(e03b1c24) SHA1(8579b95a8fd06b7d2893ff88b228fd794162dff1) ) + ROM_LOAD16_BYTE( "tet1rom2u.11", 0x1000001, 0x400000, CRC(75eb2ab3) SHA1(dee43884e542391903f6aaae2c166e7921a86fb4) ) + ROM_LOAD16_BYTE( "tet1fl3l.12", 0x1800000, 0x200000, CRC(45513073) SHA1(8a36f58ee2d292b50e00c6bf275f9def358032d8) ) + ROM_LOAD16_BYTE( "tet1fl3u.13", 0x1800001, 0x200000, CRC(1917d993) SHA1(cabc44514a3e62a18a7f8f883603241447d6948b) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "tet1verb.11s", 0x0000000, 0x080000, CRC(c92b98d1) SHA1(8ae6fba8c5b6b9a2ab9541eac8553b282f35750d) ) /* No label but different than tet1vera.11s */ + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "tet1wave0.5", 0x0000000, 0x400000, CRC(77ba7975) SHA1(fe9434dcf0fb232c85efaaae1b4b13d36099620a) ) + ROM_LOAD( "tet1wave1.4", 0x0400000, 0x400000, CRC(ffeba79f) SHA1(941412bbe9d0305d9a23c224c1bb774c4321f6df) ) +ROM_END + +ROM_START( tekken3ua ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "tet3vera.2e", 0x0000000, 0x200000, CRC(2fb6fac2) SHA1(518f74f09fa879cc1507c6afa2dd922b38cecd55) ) + ROM_LOAD16_BYTE( "tet3vera.2j", 0x0000001, 0x200000, CRC(968af792) SHA1(6187128d5ca07fd394f674b8dda0c190e6cd7f9d) ) + + ROM_REGION32_LE( 0x1c00000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "tet1rom0l.6", 0x0000000, 0x400000, CRC(2886bb32) SHA1(08ad9da2df25ad8c933a812ac238c81135072929) ) + ROM_LOAD16_BYTE( "tet1rom0u.9", 0x0000001, 0x400000, CRC(c5705b92) SHA1(20df20c8d18eb4712d565a3df9a8d9270dee6aaa) ) + ROM_LOAD16_BYTE( "tet1rom1l.7", 0x0800000, 0x400000, CRC(0397d283) SHA1(ebafcd14cdb2601214129a84fc6830846f5cd274) ) + ROM_LOAD16_BYTE( "tet1rom1u.10", 0x0800001, 0x400000, CRC(502ba5cd) SHA1(19c1282245c6dbfc945c0bd0f3918968c3e5c3ed) ) + ROM_LOAD16_BYTE( "tet1rom2l.8", 0x1000000, 0x400000, CRC(e03b1c24) SHA1(8579b95a8fd06b7d2893ff88b228fd794162dff1) ) + ROM_LOAD16_BYTE( "tet1rom2u.11", 0x1000001, 0x400000, CRC(75eb2ab3) SHA1(dee43884e542391903f6aaae2c166e7921a86fb4) ) + ROM_LOAD16_BYTE( "tet1verafl3l.12", 0x1800000, 0x200000, CRC(64fa1f83) SHA1(5bc8b4657826ead19827f63d04f67597970d5337) ) /* Specific to Ver A. */ + ROM_LOAD16_BYTE( "tet1verafl3u.13", 0x1800001, 0x200000, CRC(32a2516b) SHA1(6f4e4fc1b11d17a867d3e7bdfdd351438390a5a2) ) /* Specific to Ver A. */ + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "tet1vera.11s", 0x0000000, 0x080000, CRC(a74dfe7f) SHA1(854096a6f12ee9073fb1f38e41c8e6e0725a7521) ) /* Specific to Ver A. */ + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "tet1wave0.5", 0x0000000, 0x400000, CRC(77ba7975) SHA1(fe9434dcf0fb232c85efaaae1b4b13d36099620a) ) + ROM_LOAD( "tet1wave1.4", 0x0400000, 0x400000, CRC(ffeba79f) SHA1(941412bbe9d0305d9a23c224c1bb774c4321f6df) ) +ROM_END + +ROM_START( tekken3ud ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "tet3verd.2e", 0x0000000, 0x200000, CRC(9056a8d1) SHA1(08269de80361672f1a193e5cdcd0d4571b746a85) ) + ROM_LOAD16_BYTE( "tet3verd.2j", 0x0000001, 0x200000, CRC(60ae06f4) SHA1(898355cc6bae4745b6b9913e34d50fe2a00f1c2c) ) + + ROM_REGION32_LE( 0x1c00000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "tet1rom0l.6", 0x0000000, 0x400000, CRC(2886bb32) SHA1(08ad9da2df25ad8c933a812ac238c81135072929) ) + ROM_LOAD16_BYTE( "tet1rom0u.9", 0x0000001, 0x400000, CRC(c5705b92) SHA1(20df20c8d18eb4712d565a3df9a8d9270dee6aaa) ) + ROM_LOAD16_BYTE( "tet1rom1l.7", 0x0800000, 0x400000, CRC(0397d283) SHA1(ebafcd14cdb2601214129a84fc6830846f5cd274) ) + ROM_LOAD16_BYTE( "tet1rom1u.10", 0x0800001, 0x400000, CRC(502ba5cd) SHA1(19c1282245c6dbfc945c0bd0f3918968c3e5c3ed) ) + ROM_LOAD16_BYTE( "tet1rom2l.8", 0x1000000, 0x400000, CRC(e03b1c24) SHA1(8579b95a8fd06b7d2893ff88b228fd794162dff1) ) + ROM_LOAD16_BYTE( "tet1rom2u.11", 0x1000001, 0x400000, CRC(75eb2ab3) SHA1(dee43884e542391903f6aaae2c166e7921a86fb4) ) + ROM_LOAD16_BYTE( "tet1fl3l.12", 0x1800000, 0x200000, CRC(45513073) SHA1(8a36f58ee2d292b50e00c6bf275f9def358032d8) ) + ROM_LOAD16_BYTE( "tet1fl3u.13", 0x1800001, 0x200000, CRC(1917d993) SHA1(cabc44514a3e62a18a7f8f883603241447d6948b) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "tet1verb.11s", 0x0000000, 0x080000, CRC(c92b98d1) SHA1(8ae6fba8c5b6b9a2ab9541eac8553b282f35750d) ) /* No label but different than tet1vera.11s */ + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "tet1wave0.5", 0x0000000, 0x400000, CRC(77ba7975) SHA1(fe9434dcf0fb232c85efaaae1b4b13d36099620a) ) + ROM_LOAD( "tet1wave1.4", 0x0400000, 0x400000, CRC(ffeba79f) SHA1(941412bbe9d0305d9a23c224c1bb774c4321f6df) ) +ROM_END + +ROM_START( tekken3a ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "tet2vera.2e", 0x0000000, 0x200000, CRC(7270f157) SHA1(e73c5970e58f9e8c5696f4e3b15908fbec6c21ce) ) + ROM_LOAD16_BYTE( "tet2vera.2j", 0x0000001, 0x200000, CRC(94ceb446) SHA1(c730eb5c770991ae3ae0b9ba63681ce037e46746) ) + + ROM_REGION32_LE( 0x1c00000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "tet1rom0l.6", 0x0000000, 0x400000, CRC(2886bb32) SHA1(08ad9da2df25ad8c933a812ac238c81135072929) ) + ROM_LOAD16_BYTE( "tet1rom0u.9", 0x0000001, 0x400000, CRC(c5705b92) SHA1(20df20c8d18eb4712d565a3df9a8d9270dee6aaa) ) + ROM_LOAD16_BYTE( "tet1rom1l.7", 0x0800000, 0x400000, CRC(0397d283) SHA1(ebafcd14cdb2601214129a84fc6830846f5cd274) ) + ROM_LOAD16_BYTE( "tet1rom1u.10", 0x0800001, 0x400000, CRC(502ba5cd) SHA1(19c1282245c6dbfc945c0bd0f3918968c3e5c3ed) ) + ROM_LOAD16_BYTE( "tet1rom2l.8", 0x1000000, 0x400000, CRC(e03b1c24) SHA1(8579b95a8fd06b7d2893ff88b228fd794162dff1) ) + ROM_LOAD16_BYTE( "tet1rom2u.11", 0x1000001, 0x400000, CRC(75eb2ab3) SHA1(dee43884e542391903f6aaae2c166e7921a86fb4) ) + ROM_LOAD16_BYTE( "tet1verafl3l.12", 0x1800000, 0x200000, CRC(64fa1f83) SHA1(5bc8b4657826ead19827f63d04f67597970d5337) ) /* Specific to Ver A. */ + ROM_LOAD16_BYTE( "tet1verafl3u.13", 0x1800001, 0x200000, CRC(32a2516b) SHA1(6f4e4fc1b11d17a867d3e7bdfdd351438390a5a2) ) /* Specific to Ver A. */ + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "tet1vera.11s", 0x0000000, 0x080000, CRC(a74dfe7f) SHA1(854096a6f12ee9073fb1f38e41c8e6e0725a7521) ) /* Specific to Ver A. */ + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "tet1wave0.5", 0x0000000, 0x400000, CRC(77ba7975) SHA1(fe9434dcf0fb232c85efaaae1b4b13d36099620a) ) + ROM_LOAD( "tet1wave1.4", 0x0400000, 0x400000, CRC(ffeba79f) SHA1(941412bbe9d0305d9a23c224c1bb774c4321f6df) ) +ROM_END + +ROM_START( tekken3b ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "tet2verb.2e", 0x0000000, 0x200000, CRC(a6cbc434) SHA1(859d84e6e9a52c2cdd54a2a0bb8104169eb19c07) ) + ROM_LOAD16_BYTE( "tet2verb.2j", 0x0000001, 0x200000, CRC(c8f95ec5) SHA1(7f34c42e1fbc35118e8476cdb78fbdb9564001de) ) + + ROM_REGION32_LE( 0x1c00000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "tet1rom0l.6", 0x0000000, 0x400000, CRC(2886bb32) SHA1(08ad9da2df25ad8c933a812ac238c81135072929) ) + ROM_LOAD16_BYTE( "tet1rom0u.9", 0x0000001, 0x400000, CRC(c5705b92) SHA1(20df20c8d18eb4712d565a3df9a8d9270dee6aaa) ) + ROM_LOAD16_BYTE( "tet1rom1l.7", 0x0800000, 0x400000, CRC(0397d283) SHA1(ebafcd14cdb2601214129a84fc6830846f5cd274) ) + ROM_LOAD16_BYTE( "tet1rom1u.10", 0x0800001, 0x400000, CRC(502ba5cd) SHA1(19c1282245c6dbfc945c0bd0f3918968c3e5c3ed) ) + ROM_LOAD16_BYTE( "tet1rom2l.8", 0x1000000, 0x400000, CRC(e03b1c24) SHA1(8579b95a8fd06b7d2893ff88b228fd794162dff1) ) + ROM_LOAD16_BYTE( "tet1rom2u.11", 0x1000001, 0x400000, CRC(75eb2ab3) SHA1(dee43884e542391903f6aaae2c166e7921a86fb4) ) + ROM_LOAD16_BYTE( "tet1fl3l.12", 0x1800000, 0x200000, CRC(45513073) SHA1(8a36f58ee2d292b50e00c6bf275f9def358032d8) ) + ROM_LOAD16_BYTE( "tet1fl3u.13", 0x1800001, 0x200000, CRC(1917d993) SHA1(cabc44514a3e62a18a7f8f883603241447d6948b) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "tet1verb.11s", 0x0000000, 0x080000, CRC(c92b98d1) SHA1(8ae6fba8c5b6b9a2ab9541eac8553b282f35750d) ) /* No label but different than tet1vera.11s */ + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "tet1wave0.5", 0x0000000, 0x400000, CRC(77ba7975) SHA1(fe9434dcf0fb232c85efaaae1b4b13d36099620a) ) + ROM_LOAD( "tet1wave1.4", 0x0400000, 0x400000, CRC(ffeba79f) SHA1(941412bbe9d0305d9a23c224c1bb774c4321f6df) ) +ROM_END + +ROM_START( tekken3c ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "tet2verc.2e", 0x0000000, 0x200000, CRC(4483d76e) SHA1(c43b7e445acb77ddeb8a647bef1fc509ced0412e) ) + ROM_LOAD16_BYTE( "tet2verc.2j", 0x0000001, 0x200000, CRC(3b4fee42) SHA1(b71b2969b0416e6fd348297876fc55d44e14ebef) ) + + ROM_REGION32_LE( 0x1c00000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "tet1rom0l.6", 0x0000000, 0x400000, CRC(2886bb32) SHA1(08ad9da2df25ad8c933a812ac238c81135072929) ) + ROM_LOAD16_BYTE( "tet1rom0u.9", 0x0000001, 0x400000, CRC(c5705b92) SHA1(20df20c8d18eb4712d565a3df9a8d9270dee6aaa) ) + ROM_LOAD16_BYTE( "tet1rom1l.7", 0x0800000, 0x400000, CRC(0397d283) SHA1(ebafcd14cdb2601214129a84fc6830846f5cd274) ) + ROM_LOAD16_BYTE( "tet1rom1u.10", 0x0800001, 0x400000, CRC(502ba5cd) SHA1(19c1282245c6dbfc945c0bd0f3918968c3e5c3ed) ) + ROM_LOAD16_BYTE( "tet1rom2l.8", 0x1000000, 0x400000, CRC(e03b1c24) SHA1(8579b95a8fd06b7d2893ff88b228fd794162dff1) ) + ROM_LOAD16_BYTE( "tet1rom2u.11", 0x1000001, 0x400000, CRC(75eb2ab3) SHA1(dee43884e542391903f6aaae2c166e7921a86fb4) ) + ROM_LOAD16_BYTE( "tet1fl3l.12", 0x1800000, 0x200000, CRC(45513073) SHA1(8a36f58ee2d292b50e00c6bf275f9def358032d8) ) + ROM_LOAD16_BYTE( "tet1fl3u.13", 0x1800001, 0x200000, CRC(1917d993) SHA1(cabc44514a3e62a18a7f8f883603241447d6948b) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "tet1verb.11s", 0x0000000, 0x080000, CRC(c92b98d1) SHA1(8ae6fba8c5b6b9a2ab9541eac8553b282f35750d) ) /* No label but different than tet1vera.11s */ + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "tet1wave0.5", 0x0000000, 0x400000, CRC(77ba7975) SHA1(fe9434dcf0fb232c85efaaae1b4b13d36099620a) ) + ROM_LOAD( "tet1wave1.4", 0x0400000, 0x400000, CRC(ffeba79f) SHA1(941412bbe9d0305d9a23c224c1bb774c4321f6df) ) +ROM_END + +ROM_START( tekken3d ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "tet2verd.2e", 0x0000000, 0x200000, CRC(ff269bcd) SHA1(f118b69ffe3ee1ad785c115c39d5166f3c546554) ) + ROM_LOAD16_BYTE( "tet2verd.2j", 0x0000001, 0x200000, CRC(46f9205c) SHA1(662b8f910e4ccc1a0e9f3fef0992a92abbebebd0) ) + + ROM_REGION32_LE( 0x1c00000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "tet1rom0l.6", 0x0000000, 0x400000, CRC(2886bb32) SHA1(08ad9da2df25ad8c933a812ac238c81135072929) ) + ROM_LOAD16_BYTE( "tet1rom0u.9", 0x0000001, 0x400000, CRC(c5705b92) SHA1(20df20c8d18eb4712d565a3df9a8d9270dee6aaa) ) + ROM_LOAD16_BYTE( "tet1rom1l.7", 0x0800000, 0x400000, CRC(0397d283) SHA1(ebafcd14cdb2601214129a84fc6830846f5cd274) ) + ROM_LOAD16_BYTE( "tet1rom1u.10", 0x0800001, 0x400000, CRC(502ba5cd) SHA1(19c1282245c6dbfc945c0bd0f3918968c3e5c3ed) ) + ROM_LOAD16_BYTE( "tet1rom2l.8", 0x1000000, 0x400000, CRC(e03b1c24) SHA1(8579b95a8fd06b7d2893ff88b228fd794162dff1) ) + ROM_LOAD16_BYTE( "tet1rom2u.11", 0x1000001, 0x400000, CRC(75eb2ab3) SHA1(dee43884e542391903f6aaae2c166e7921a86fb4) ) + ROM_LOAD16_BYTE( "tet1fl3l.12", 0x1800000, 0x200000, CRC(45513073) SHA1(8a36f58ee2d292b50e00c6bf275f9def358032d8) ) + ROM_LOAD16_BYTE( "tet1fl3u.13", 0x1800001, 0x200000, CRC(1917d993) SHA1(cabc44514a3e62a18a7f8f883603241447d6948b) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "tet1verb.11s", 0x0000000, 0x080000, CRC(c92b98d1) SHA1(8ae6fba8c5b6b9a2ab9541eac8553b282f35750d) ) /* No label but different than tet1vera.11s */ + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "tet1wave0.5", 0x0000000, 0x400000, CRC(77ba7975) SHA1(fe9434dcf0fb232c85efaaae1b4b13d36099620a) ) + ROM_LOAD( "tet1wave1.4", 0x0400000, 0x400000, CRC(ffeba79f) SHA1(941412bbe9d0305d9a23c224c1bb774c4321f6df) ) +ROM_END + +ROM_START( tektagt ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "teg2verc1.2e", 0x0000000, 0x200000, CRC(c6da0717) SHA1(9e01ae64710d85eb9899d6fa6fd0a2152aee8c11) ) /* Modified to work with alt ROM board? */ + ROM_LOAD16_BYTE( "teg2verc1.2j", 0x0000001, 0x200000, CRC(25a1d2ff) SHA1(529a11a1bbb8655534d7ec371f1c09e9e387ed11) ) + + ROM_REGION32_LE( 0x3800000, "bankedroms", 0 ) + ROM_LOAD32_WORD( "teg1_rom0e.ic9", 0x0000000, 0x800000, CRC(c962a373) SHA1(d662dbd89ef62c5ac3150a018fc2d35ef2ee94ac) ) + ROM_LOAD32_WORD( "teg1_rom0o.ic13", 0x0000002, 0x800000, CRC(badb7dcf) SHA1(8c0bf7f6351c5a2a0996df371a901cf90c68cd8c) ) + ROM_LOAD32_WORD( "teg1_rom1e.ic10", 0x1000000, 0x800000, CRC(b3d56124) SHA1(4df20c74ba63f7362caf15e9b8949fab655704fb) ) + ROM_LOAD32_WORD( "teg1_rom1o.ic14", 0x1000002, 0x800000, CRC(2434ceb6) SHA1(f19f1599acbd6fd48793a2ee5a500ca817d9df56) ) + ROM_LOAD32_WORD( "teg1_rom2e.ic11", 0x2000000, 0x800000, CRC(6e5c3428) SHA1(e3cdb60a4445406877b2e273385f34bfb0974220) ) + ROM_LOAD32_WORD( "teg1_rom2o.ic15", 0x2000002, 0x800000, CRC(21ce9dfa) SHA1(f27e8210ee236c327aa3e1ce4dd408abc6580a1b) ) + ROM_LOAD32_BYTE( "flel.ic4", 0x3000000, 0x200000, CRC(88b3823c) SHA1(6f31acb642c57daccbfdb87b790037e261c8c73c) ) /* Flash ROMs with no labels */ + ROM_LOAD32_BYTE( "fleu.ic5", 0x3000001, 0x200000, CRC(36df0867) SHA1(6bec8560ad4c122dc909daa83aa9089ba5b281f7) ) + ROM_LOAD32_BYTE( "flol.ic6", 0x3000002, 0x200000, CRC(03a76765) SHA1(ae35ae28375f2a3e52d72b77ec09750c326cc269) ) + ROM_LOAD32_BYTE( "flou.ic7", 0x3000003, 0x200000, CRC(6d6947d1) SHA1(2f307bc4070fadb510c0473bc91d917b2d845ca5) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "teg1.11s", 0x0000000, 0x080000, CRC(67d0c469) SHA1(da164702fc21b9f46a9e32c89e7b1d36070ddf79) ) /* No label for this one */ + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "teg1_wave0.ic1", 0x0000000, 0x800000, CRC(4bd99104) SHA1(f76b0576cc28fe49d3c1c402988b933933e52e15) ) + ROM_LOAD( "teg1_wave1.ic12", 0x0800000, 0x800000, CRC(dbc74fff) SHA1(601b7e7361ea744b34e3fa1fc39d88641de7f4c6) ) +ROM_END + +ROM_START( tektagtja3 ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "teg1vera.2e", 0x0000000, 0x200000, BAD_DUMP CRC(17c4bf36) SHA1(abf2dfb3e35344cf4449ade6e63b36c590d9c131) ) + ROM_LOAD16_BYTE( "teg1vera.2j", 0x0000001, 0x200000, BAD_DUMP CRC(97cd9524) SHA1(8031cb465db378a6d9db9b132cf1169b94cba7dc) ) + + ROM_REGION32_LE( 0x3800000, "bankedroms", 0 ) + ROM_LOAD32_WORD( "teg1_rom0e.ic9", 0x0000000, 0x800000, CRC(c962a373) SHA1(d662dbd89ef62c5ac3150a018fc2d35ef2ee94ac) ) + ROM_LOAD32_WORD( "teg1_rom0o.ic13", 0x0000002, 0x800000, CRC(badb7dcf) SHA1(8c0bf7f6351c5a2a0996df371a901cf90c68cd8c) ) + ROM_LOAD32_WORD( "teg1_rom1e.ic10", 0x1000000, 0x800000, CRC(b3d56124) SHA1(4df20c74ba63f7362caf15e9b8949fab655704fb) ) + ROM_LOAD32_WORD( "teg1_rom1o.ic14", 0x1000002, 0x800000, CRC(2434ceb6) SHA1(f19f1599acbd6fd48793a2ee5a500ca817d9df56) ) + ROM_LOAD32_WORD( "teg1_rom2e.ic11", 0x2000000, 0x800000, CRC(6e5c3428) SHA1(e3cdb60a4445406877b2e273385f34bfb0974220) ) + ROM_LOAD32_WORD( "teg1_rom2o.ic15", 0x2000002, 0x800000, CRC(21ce9dfa) SHA1(f27e8210ee236c327aa3e1ce4dd408abc6580a1b) ) + ROM_LOAD32_BYTE( "teg1flel.4", 0x3000000, 0x200000, NO_DUMP ) /* It's NOT been verified these should be the same, like the Tekken 3 Ver A */ + ROM_LOAD32_BYTE( "teg1fleu.5", 0x3000001, 0x200000, NO_DUMP ) /* sets above, these Ver A set(s) might require a specific set of flash ROMs */ + ROM_LOAD32_BYTE( "teg1flol.6", 0x3000002, 0x200000, NO_DUMP ) + ROM_LOAD32_BYTE( "teg1flou.7", 0x3000003, 0x200000, NO_DUMP ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "teg1.11s", 0x0000000, 0x080000, CRC(67d0c469) SHA1(da164702fc21b9f46a9e32c89e7b1d36070ddf79) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "teg1_wave0.ic1", 0x0000000, 0x800000, CRC(4bd99104) SHA1(f76b0576cc28fe49d3c1c402988b933933e52e15) ) + ROM_LOAD( "teg1_wave1.ic12", 0x0800000, 0x800000, CRC(dbc74fff) SHA1(601b7e7361ea744b34e3fa1fc39d88641de7f4c6) ) +ROM_END + +ROM_START( tektagtjb ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "teg1verb.2e", 0x0000000, 0x200000, BAD_DUMP CRC(ca6c305f) SHA1(264a85566b74f544fe63a01332d92c65d23b6608) ) + ROM_LOAD16_BYTE( "teg1verb.2j", 0x0000001, 0x200000, BAD_DUMP CRC(5413e2ed) SHA1(d453f7932654d8258c67eb7fe3639d71db7e414c) ) + + ROM_REGION32_LE( 0x3800000, "bankedroms", 0 ) + ROM_LOAD32_WORD( "teg1_rom0e.ic9", 0x0000000, 0x800000, CRC(c962a373) SHA1(d662dbd89ef62c5ac3150a018fc2d35ef2ee94ac) ) + ROM_LOAD32_WORD( "teg1_rom0o.ic13", 0x0000002, 0x800000, CRC(badb7dcf) SHA1(8c0bf7f6351c5a2a0996df371a901cf90c68cd8c) ) + ROM_LOAD32_WORD( "teg1_rom1e.ic10", 0x1000000, 0x800000, CRC(b3d56124) SHA1(4df20c74ba63f7362caf15e9b8949fab655704fb) ) + ROM_LOAD32_WORD( "teg1_rom1o.ic14", 0x1000002, 0x800000, CRC(2434ceb6) SHA1(f19f1599acbd6fd48793a2ee5a500ca817d9df56) ) + ROM_LOAD32_WORD( "teg1_rom2e.ic11", 0x2000000, 0x800000, CRC(6e5c3428) SHA1(e3cdb60a4445406877b2e273385f34bfb0974220) ) + ROM_LOAD32_WORD( "teg1_rom2o.ic15", 0x2000002, 0x800000, CRC(21ce9dfa) SHA1(f27e8210ee236c327aa3e1ce4dd408abc6580a1b) ) + ROM_LOAD32_BYTE( "flel.ic4", 0x3000000, 0x200000, CRC(88b3823c) SHA1(6f31acb642c57daccbfdb87b790037e261c8c73c) ) /* Flash ROMs with no labels */ + ROM_LOAD32_BYTE( "fleu.ic5", 0x3000001, 0x200000, CRC(36df0867) SHA1(6bec8560ad4c122dc909daa83aa9089ba5b281f7) ) + ROM_LOAD32_BYTE( "flol.ic6", 0x3000002, 0x200000, CRC(03a76765) SHA1(ae35ae28375f2a3e52d72b77ec09750c326cc269) ) + ROM_LOAD32_BYTE( "flou.ic7", 0x3000003, 0x200000, CRC(6d6947d1) SHA1(2f307bc4070fadb510c0473bc91d917b2d845ca5) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "teg1.11s", 0x0000000, 0x080000, CRC(67d0c469) SHA1(da164702fc21b9f46a9e32c89e7b1d36070ddf79) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "teg1_wave0.ic1", 0x0000000, 0x800000, CRC(4bd99104) SHA1(f76b0576cc28fe49d3c1c402988b933933e52e15) ) + ROM_LOAD( "teg1_wave1.ic12", 0x0800000, 0x800000, CRC(dbc74fff) SHA1(601b7e7361ea744b34e3fa1fc39d88641de7f4c6) ) +ROM_END + +ROM_START( tektagtjc1 ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "teg1verc1.2e", 0x0000000, 0x200000, CRC(adbdfc2e) SHA1(e18458efb0f9b341970132b512d2e5104a942c6e) ) + ROM_LOAD16_BYTE( "teg1verc1.2j", 0x0000001, 0x200000, CRC(2fa33418) SHA1(e15f4c8cc4309ebb90d8d015b1f17f75ce5c8879) ) + + ROM_REGION32_LE( 0x3800000, "bankedroms", 0 ) + ROM_LOAD32_WORD( "teg1_rom0e.ic9", 0x0000000, 0x800000, CRC(c962a373) SHA1(d662dbd89ef62c5ac3150a018fc2d35ef2ee94ac) ) + ROM_LOAD32_WORD( "teg1_rom0o.ic13", 0x0000002, 0x800000, CRC(badb7dcf) SHA1(8c0bf7f6351c5a2a0996df371a901cf90c68cd8c) ) + ROM_LOAD32_WORD( "teg1_rom1e.ic10", 0x1000000, 0x800000, CRC(b3d56124) SHA1(4df20c74ba63f7362caf15e9b8949fab655704fb) ) + ROM_LOAD32_WORD( "teg1_rom1o.ic14", 0x1000002, 0x800000, CRC(2434ceb6) SHA1(f19f1599acbd6fd48793a2ee5a500ca817d9df56) ) + ROM_LOAD32_WORD( "teg1_rom2e.ic11", 0x2000000, 0x800000, CRC(6e5c3428) SHA1(e3cdb60a4445406877b2e273385f34bfb0974220) ) + ROM_LOAD32_WORD( "teg1_rom2o.ic15", 0x2000002, 0x800000, CRC(21ce9dfa) SHA1(f27e8210ee236c327aa3e1ce4dd408abc6580a1b) ) + ROM_LOAD32_BYTE( "flel.ic4", 0x3000000, 0x200000, CRC(88b3823c) SHA1(6f31acb642c57daccbfdb87b790037e261c8c73c) ) /* Flash ROMs with no labels */ + ROM_LOAD32_BYTE( "fleu.ic5", 0x3000001, 0x200000, CRC(36df0867) SHA1(6bec8560ad4c122dc909daa83aa9089ba5b281f7) ) + ROM_LOAD32_BYTE( "flol.ic6", 0x3000002, 0x200000, CRC(03a76765) SHA1(ae35ae28375f2a3e52d72b77ec09750c326cc269) ) + ROM_LOAD32_BYTE( "flou.ic7", 0x3000003, 0x200000, CRC(6d6947d1) SHA1(2f307bc4070fadb510c0473bc91d917b2d845ca5) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "teg1.11s", 0x0000000, 0x080000, CRC(67d0c469) SHA1(da164702fc21b9f46a9e32c89e7b1d36070ddf79) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "teg1_wave0.ic1", 0x0000000, 0x800000, CRC(4bd99104) SHA1(f76b0576cc28fe49d3c1c402988b933933e52e15) ) + ROM_LOAD( "teg1_wave1.ic12", 0x0800000, 0x800000, CRC(dbc74fff) SHA1(601b7e7361ea744b34e3fa1fc39d88641de7f4c6) ) +ROM_END + +ROM_START( tektagtub ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "teg3verb.2l", 0x0000000, 0x200000, CRC(97df2855) SHA1(c1b61df8e79348424f4bd2660ab5179ef21bdb07) ) + ROM_LOAD16_BYTE( "teg3verb.2p", 0x0000001, 0x200000, CRC(1dbe7591) SHA1(af464caa03fdd12024ad482e9c853a36510bfba7) ) + + ROM_REGION32_LE( 0x3800000, "bankedroms", 0 ) + ROM_LOAD32_WORD( "teg1_rom0e.ic9", 0x0000000, 0x800000, CRC(c962a373) SHA1(d662dbd89ef62c5ac3150a018fc2d35ef2ee94ac) ) + ROM_LOAD32_WORD( "teg1_rom0o.ic13", 0x0000002, 0x800000, CRC(badb7dcf) SHA1(8c0bf7f6351c5a2a0996df371a901cf90c68cd8c) ) + ROM_LOAD32_WORD( "teg1_rom1e.ic10", 0x1000000, 0x800000, CRC(b3d56124) SHA1(4df20c74ba63f7362caf15e9b8949fab655704fb) ) + ROM_LOAD32_WORD( "teg1_rom1o.ic14", 0x1000002, 0x800000, CRC(2434ceb6) SHA1(f19f1599acbd6fd48793a2ee5a500ca817d9df56) ) + ROM_LOAD32_WORD( "teg1_rom2e.ic11", 0x2000000, 0x800000, CRC(6e5c3428) SHA1(e3cdb60a4445406877b2e273385f34bfb0974220) ) + ROM_LOAD32_WORD( "teg1_rom2o.ic15", 0x2000002, 0x800000, CRC(21ce9dfa) SHA1(f27e8210ee236c327aa3e1ce4dd408abc6580a1b) ) + ROM_LOAD32_BYTE( "flel.ic4", 0x3000000, 0x200000, CRC(88b3823c) SHA1(6f31acb642c57daccbfdb87b790037e261c8c73c) ) /* Flash ROMs with no labels */ + ROM_LOAD32_BYTE( "fleu.ic5", 0x3000001, 0x200000, CRC(36df0867) SHA1(6bec8560ad4c122dc909daa83aa9089ba5b281f7) ) + ROM_LOAD32_BYTE( "flol.ic6", 0x3000002, 0x200000, CRC(03a76765) SHA1(ae35ae28375f2a3e52d72b77ec09750c326cc269) ) + ROM_LOAD32_BYTE( "flou.ic7", 0x3000003, 0x200000, CRC(6d6947d1) SHA1(2f307bc4070fadb510c0473bc91d917b2d845ca5) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "teg1.11s", 0x0000000, 0x080000, CRC(67d0c469) SHA1(da164702fc21b9f46a9e32c89e7b1d36070ddf79) ) /* No label for this one */ + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "teg1_wave0.ic1", 0x0000000, 0x800000, CRC(4bd99104) SHA1(f76b0576cc28fe49d3c1c402988b933933e52e15) ) + ROM_LOAD( "teg1_wave1.ic12", 0x0800000, 0x800000, CRC(dbc74fff) SHA1(601b7e7361ea744b34e3fa1fc39d88641de7f4c6) ) +ROM_END + +ROM_START( tektagtuc1 ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "teg3verc1.2l", 0x0000000, 0x200000, CRC(1efb7b85) SHA1(0623bb6571caf046ff7b4f83f11ee84a92c4b462) ) + ROM_LOAD16_BYTE( "teg3verc1.2p", 0x0000001, 0x200000, CRC(7caef9b2) SHA1(5c56d69ba2f723d0a4fbe4902196efc6ba9d5094) ) + + ROM_REGION32_LE( 0x3800000, "bankedroms", 0 ) + ROM_LOAD32_WORD( "teg1_rom0e.ic9", 0x0000000, 0x800000, CRC(c962a373) SHA1(d662dbd89ef62c5ac3150a018fc2d35ef2ee94ac) ) + ROM_LOAD32_WORD( "teg1_rom0o.ic13", 0x0000002, 0x800000, CRC(badb7dcf) SHA1(8c0bf7f6351c5a2a0996df371a901cf90c68cd8c) ) + ROM_LOAD32_WORD( "teg1_rom1e.ic10", 0x1000000, 0x800000, CRC(b3d56124) SHA1(4df20c74ba63f7362caf15e9b8949fab655704fb) ) + ROM_LOAD32_WORD( "teg1_rom1o.ic14", 0x1000002, 0x800000, CRC(2434ceb6) SHA1(f19f1599acbd6fd48793a2ee5a500ca817d9df56) ) + ROM_LOAD32_WORD( "teg1_rom2e.ic11", 0x2000000, 0x800000, CRC(6e5c3428) SHA1(e3cdb60a4445406877b2e273385f34bfb0974220) ) + ROM_LOAD32_WORD( "teg1_rom2o.ic15", 0x2000002, 0x800000, CRC(21ce9dfa) SHA1(f27e8210ee236c327aa3e1ce4dd408abc6580a1b) ) + ROM_LOAD32_BYTE( "flel.ic4", 0x3000000, 0x200000, CRC(88b3823c) SHA1(6f31acb642c57daccbfdb87b790037e261c8c73c) ) /* Flash ROMs with no labels */ + ROM_LOAD32_BYTE( "fleu.ic5", 0x3000001, 0x200000, CRC(36df0867) SHA1(6bec8560ad4c122dc909daa83aa9089ba5b281f7) ) + ROM_LOAD32_BYTE( "flol.ic6", 0x3000002, 0x200000, CRC(03a76765) SHA1(ae35ae28375f2a3e52d72b77ec09750c326cc269) ) + ROM_LOAD32_BYTE( "flou.ic7", 0x3000003, 0x200000, CRC(6d6947d1) SHA1(2f307bc4070fadb510c0473bc91d917b2d845ca5) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "teg1.11s", 0x0000000, 0x080000, CRC(67d0c469) SHA1(da164702fc21b9f46a9e32c89e7b1d36070ddf79) ) /* No label for this one */ + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "teg1_wave0.ic1", 0x0000000, 0x800000, CRC(4bd99104) SHA1(f76b0576cc28fe49d3c1c402988b933933e52e15) ) + ROM_LOAD( "teg1_wave1.ic12", 0x0800000, 0x800000, CRC(dbc74fff) SHA1(601b7e7361ea744b34e3fa1fc39d88641de7f4c6) ) +ROM_END + +ROM_START( tektagtc1a ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "teg2ver_c1.2e", 0x0000000, 0x200000, CRC(c0800960) SHA1(80fc8910ebb2399b3be3c9ea87cc1d9283b42676) ) + ROM_LOAD16_BYTE( "teg2ver_c1.2j", 0x0000001, 0x200000, CRC(c0476713) SHA1(e51e4f3cd20ad6838fb05aaede0ab288e145e7a2) ) + + ROM_REGION32_LE( 0x3800000, "bankedroms", 0 ) + ROM_LOAD32_WORD( "teg2roml0", 0x0000000, 0x400000, CRC(cf984e85) SHA1(4d8296998b5f225b3f20bfdcb092a64b6e1fa76e) ) + ROM_LOAD32_WORD( "teg2roml00.ic13", 0x0000002, 0x400000, CRC(927723a5) SHA1(075aaca1700c9134496eb9a73cbe325ddc74eae1) ) /* located on the opposite side of the ROM PCB */ + ROM_LOAD32_WORD( "teg2romh0", 0x0800000, 0x400000, CRC(ea088657) SHA1(fbacca78832f68a310bafd06188d645e3424e0ed) ) + ROM_LOAD32_WORD( "teg2romh00", 0x0800002, 0x400000, CRC(a85aa306) SHA1(07318133c7c48cb61590ed0eceb519a8cc1ca781) ) + ROM_LOAD32_WORD( "teg2roml1", 0x1000000, 0x400000, CRC(8552f0ef) SHA1(45ed0dacdad94e708260a98b9cd47861543d2b7a) ) + ROM_LOAD32_WORD( "teg2roml10.ic14", 0x1000002, 0x400000, CRC(13eb424b) SHA1(59d6c77136050de1e7250e6627636d5b178bb8a8) ) /* located on the opposite side of the ROM PCB */ + ROM_LOAD32_WORD( "teg2romh1", 0x1800000, 0x400000, CRC(86eb5abe) SHA1(66a3807a18d81e8291baf56533694f60e31a6367) ) + ROM_LOAD32_WORD( "teg2romh10", 0x1800002, 0x400000, CRC(25131a87) SHA1(77fa236c4879a59323bc2dac26c195b7c47f812c) ) + ROM_LOAD32_WORD( "teg2roml2", 0x2000000, 0x400000, CRC(abdfc6ca) SHA1(70033becd29ea15611be2fc099a43712181bcbec) ) + ROM_LOAD32_WORD( "teg2roml20.ic15", 0x2000002, 0x400000, CRC(ed5ec7f7) SHA1(c91085a64ced95ee6618303987de61893e069742) ) /* located on the opposite side of the ROM PCB */ + ROM_LOAD32_WORD( "teg2romh2", 0x2800000, 0x400000, CRC(8c03b301) SHA1(f395a4685e2deb8f7e9afc18ce15fa0d392b0cfa) ) + ROM_LOAD32_WORD( "teg2romh20", 0x2800002, 0x400000, CRC(c873c362) SHA1(d95451a7477b716c0d75ba04e1d8df3d8a4e10dd) ) + ROM_LOAD32_WORD( "teg2rf4", 0x3000000, 0x400000, CRC(612f6a37) SHA1(bd9597ef802e3c46f891f0ef523a3e0b0fe22672) ) /* Different data?? Second half blank, all 0x00? */ + ROM_LOAD32_WORD( "teg2rf6", 0x3000002, 0x400000, CRC(0c9292ce) SHA1(664c6ccf18042ed8ebc29b1781ae7454acb05ba1) ) /* Different data?? Second half blank, all 0x00? */ + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "teg1.11s", 0x0000000, 0x080000, CRC(67d0c469) SHA1(da164702fc21b9f46a9e32c89e7b1d36070ddf79) ) /* No label for this one */ + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "teg2wavel0.ic12", 0x0000000, 0x400000, CRC(1865336f) SHA1(deda6d129daf709b0316f6260e67613fbf849e57) ) /* located on the opposite side of the ROM PCB */ + ROM_LOAD( "teg2wavel1", 0x0400000, 0x400000, CRC(f5ab70e6) SHA1(cdb62d8eb92ca961be684caf768d1961d98ece22) ) + ROM_LOAD( "teg2waveh0", 0x0800000, 0x400000, CRC(bc0325bf) SHA1(77059c300a9d53d0e97bb898a06c58076078d7d2) ) + ROM_LOAD( "teg2waveh1", 0x0c00000, 0x400000, CRC(6c654921) SHA1(3849157b30b4b459956b823511551abda2e4b6e5) ) +ROM_END + +ROM_START( tenkomor ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "tkm2vera.2e", 0x0000000, 0x200000, CRC(a9b81653) SHA1(9199505019234140b0d89e199f0db307d5bcca02) ) + ROM_LOAD16_BYTE( "tkm2vera.2j", 0x0000001, 0x200000, CRC(28cff9ee) SHA1(d1996d45cca3a9bbd6a7f39721b2ec9f3d052422) ) + + ROM_REGION32_LE( 0x1c00000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "tkm1rom0l.12", 0x0000000, 0x800000, CRC(dddebb39) SHA1(44169b0c6be4d387e7b6087ce723476ee96b09b4) ) + ROM_LOAD16_BYTE( "tkm1rom0u.11", 0x0000001, 0x800000, CRC(dbcc3838) SHA1(c4e11800c5e8122044914152227b8a29e9446c9d) ) + ROM_LOAD16_BYTE( "tkm1fl1l.9", 0x1000000, 0x200000, CRC(071ef722) SHA1(7c0317b3bca2763dbbac5454901cd48a0b195edd) ) + ROM_LOAD16_BYTE( "tkm1fl1u.10", 0x1000001, 0x200000, CRC(580f8391) SHA1(2205c80721631ea8016efbe6d79f5ea7d1924278) ) + ROM_LOAD16_BYTE( "tkm1fl2l.7", 0x1400000, 0x200000, CRC(bd54efe3) SHA1(ff3573066ad2498a33ceabf378a3c69af11ee7db) ) + ROM_LOAD16_BYTE( "tkm1fl2u.8", 0x1400001, 0x200000, CRC(6e4e6320) SHA1(8d220b0028cfc2f02eb34df41a5dbb23be3e7908) ) + ROM_LOAD16_BYTE( "tkm1fl3l.5", 0x1800000, 0x200000, CRC(a31ffb10) SHA1(4f8e41e263611a7f9a63bd53ebee4e68ad0095e6) ) + ROM_LOAD16_BYTE( "tkm1fl3u.6", 0x1800001, 0x200000, CRC(bc566162) SHA1(db40d28c57dbf1351adfa2dd740edbe0b897307f) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "tkm1vera.11s", 0x0000000, 0x080000, CRC(0b414dae) SHA1(a8f77ae7ee0dc516cd9aaf944431a9a0c9dc7def) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "tkm1wave0.2", 0x0000000, 0x800000, CRC(6085387d) SHA1(a2a55f6ebe9de2d5415a1c4f3ec7975af95b45b4) ) + ROM_LOAD( "tkm1wave1.1", 0x0800000, 0x800000, CRC(7567796b) SHA1(99e4b867477da2ccddfa9bebc4be84adc5cba53c) ) +ROM_END + +ROM_START( tenkomorja1 ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "tkm1vera.2e", 0x0000000, 0x200000, CRC(d4c89229) SHA1(aba6686eef924868b3bd2142fd073303fe9c4042) ) + ROM_LOAD16_BYTE( "tkm1vera.2j", 0x0000001, 0x200000, CRC(a6bfcaf4) SHA1(55dfa65e07a63a413f6eb47084e60b4fc32bcde5) ) + + ROM_REGION32_LE( 0x1c00000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "tkm1rom0l.12", 0x0000000, 0x800000, CRC(dddebb39) SHA1(44169b0c6be4d387e7b6087ce723476ee96b09b4) ) + ROM_LOAD16_BYTE( "tkm1rom0u.11", 0x0000001, 0x800000, CRC(dbcc3838) SHA1(c4e11800c5e8122044914152227b8a29e9446c9d) ) + ROM_LOAD16_BYTE( "tkm1fl1l.9", 0x1000000, 0x200000, CRC(071ef722) SHA1(7c0317b3bca2763dbbac5454901cd48a0b195edd) ) + ROM_LOAD16_BYTE( "tkm1fl1u.10", 0x1000001, 0x200000, CRC(580f8391) SHA1(2205c80721631ea8016efbe6d79f5ea7d1924278) ) + ROM_LOAD16_BYTE( "tkm1fl2l.7", 0x1400000, 0x200000, CRC(bd54efe3) SHA1(ff3573066ad2498a33ceabf378a3c69af11ee7db) ) + ROM_LOAD16_BYTE( "tkm1fl2u.8", 0x1400001, 0x200000, CRC(6e4e6320) SHA1(8d220b0028cfc2f02eb34df41a5dbb23be3e7908) ) + ROM_LOAD16_BYTE( "tkm1fl3l.5", 0x1800000, 0x200000, CRC(a31ffb10) SHA1(4f8e41e263611a7f9a63bd53ebee4e68ad0095e6) ) + ROM_LOAD16_BYTE( "tkm1fl3u.6", 0x1800001, 0x200000, CRC(bc566162) SHA1(db40d28c57dbf1351adfa2dd740edbe0b897307f) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "tkm1vera.11s", 0x0000000, 0x080000, CRC(0b414dae) SHA1(a8f77ae7ee0dc516cd9aaf944431a9a0c9dc7def) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "tkm1wave0.2", 0x0000000, 0x800000, CRC(6085387d) SHA1(a2a55f6ebe9de2d5415a1c4f3ec7975af95b45b4) ) + ROM_LOAD( "tkm1wave1.1", 0x0800000, 0x800000, CRC(7567796b) SHA1(99e4b867477da2ccddfa9bebc4be84adc5cba53c) ) +ROM_END + +ROM_START( toukon3 ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "tr1vera.2e", 0x0000000, 0x200000, CRC(126ebb73) SHA1(de429e335e03f2b5116fc50f556a5507475a0535) ) + ROM_LOAD16_BYTE( "tr1vera.2j", 0x0000001, 0x200000, CRC(2edb3ad2) SHA1(d1d2d78b781c7f6fb5a201785295daa825ad057e) ) + + ROM_REGION32_LE( 0x00800000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "tr1rom0l.6", 0x0000000, 0x400000, CRC(42946d26) SHA1(dc7944cb6daceda41ecee7a4e3f549cba916ab87) ) + ROM_LOAD16_BYTE( "tr1rom0u.9", 0x0000001, 0x400000, CRC(e3cd0be0) SHA1(f27d14cd086b5961be33e635662aca89a5e8c857) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "tr1vera.11s", 0x0000000, 0x080000, CRC(f9ecbd19) SHA1(ad64f95ef85ee5c45dcf15217ea5adff61fddba6) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "tr1wave0.5", 0x0000000, 0x400000, CRC(07d10e55) SHA1(3af8f7019a221981984741181b6be98e2315d441) ) + ROM_LOAD( "tr1wave1.4", 0x0400000, 0x400000, CRC(34539cdd) SHA1(afb7079c0f447fbda285a5b97a37c04baf26db75) ) +ROM_END + +ROM_START( truckk ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "tkk2vera.2l", 0x0000000, 0x200000, CRC(321344e0) SHA1(0273284d05707b76ca38fd160ef6f17572314a8b) ) + ROM_LOAD16_BYTE( "tkk2vera.2p", 0x0000001, 0x200000, CRC(a7b5e4ea) SHA1(f11eefd80559b4d42318a920088b77bd67b70cc3) ) + + ROM_REGION32_LE( 0x3400000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "tkk1rom0l.ic10", 0x0000000, 0x800000, CRC(5e1c8660) SHA1(05fcfa9cc834f85c38e41610a32624464d67ee21) ) + ROM_LOAD16_BYTE( "tkk1rom0u.ic14", 0x0000001, 0x800000, CRC(ee4e6566) SHA1(f3c7e227681003a3491a3996a90887e1091c0eed) ) + ROM_LOAD16_BYTE( "tkk1rom1l.ic11", 0x1000000, 0x800000, CRC(fde2863c) SHA1(a01141df8c84730974c9f37fa2ee911e2f4e45f9) ) + ROM_LOAD16_BYTE( "tkk1rom1u.ic15", 0x1000001, 0x800000, CRC(e51a56d7) SHA1(c5bad8df8edd5a5f352e5bf3bb93133503ca4ba0) ) + ROM_LOAD16_BYTE( "tkk1rom2l.ic12", 0x2000000, 0x800000, CRC(029cf107) SHA1(30cbcf00ffb9c379c64718914874936ff32ed186) ) + ROM_LOAD16_BYTE( "tkk1rom2u.ic16", 0x2000001, 0x800000, CRC(30c426dd) SHA1(2dae3d415715c779251c79006ea18e3bd14a1f51) ) + ROM_LOAD16_BYTE( "tkk1fl3l.ic4", 0x3000000, 0x200000, CRC(b0e98cb2) SHA1(8c53037b8e20410a395db8d9bb9229b550ebf228) ) + ROM_LOAD16_BYTE( "tkk1fl3u.ic5", 0x3000001, 0x200000, CRC(16d9ede7) SHA1(e989e0a6afbfca5e7ef81bf7c24e8e6b38a11eca) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "tkk2vera.11s", 0x0000000, 0x080000, CRC(d3d0a46a) SHA1(20569462df49ad93ff1118b587d6d32edf9d851e) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "tkk1wave0.ic1", 0x0000000, 0x800000, CRC(037d3095) SHA1(cc343bdd45d023c133964321e2df5cb1c91525ef) ) + + ROM_REGION( 0x20000, "iocpu", 0) /* Truck K. I/O board */ + ROM_LOAD( "tkk1prg0.ic7", 0x0000000, 0x020000, CRC(11fd9c31) SHA1(068b8364ec0eb1e88f9f85f40b8b322876f6f3e2) ) + + DISK_REGION( "cdxa_pcb:ata:0:cdrom" ) + DISK_IMAGE_READONLY( "tkk2-a", 0, SHA1(6b7c3686b22a508c44f67295b188504b757dd482) ) // TKK1-A CD is confirmed to have the same content as the TKK2-A CD +ROM_END + +ROM_START( ujlnow ) + ROM_REGION32_LE( 0x0400000, "maincpu:rom", 0 ) + ROM_LOAD16_BYTE( "ul1vera.2l", 0x0000000, 0x200000, CRC(40251bc3) SHA1(377a156d738b29d8f19d9696a261cc6e3470ee3e) ) + ROM_LOAD16_BYTE( "ul1vera.2p", 0x0000001, 0x200000, CRC(98181955) SHA1(febd73361d0de10282a850611b5f966a99eecdec) ) + + ROM_REGION32_LE( 0x2000000, "bankedroms", 0 ) + ROM_LOAD16_BYTE( "ul1rom0l.ic12", 0x0000000, 0x800000, CRC(7a77cffd) SHA1(6bd18837f475615061be73ee6d1bc09726e96fb5) ) + ROM_LOAD16_BYTE( "ul1rom0u.ic11", 0x0000001, 0x800000, CRC(1fdb34b3) SHA1(3773b3fb1574a0b4acebfaf510c75fa117394ae4) ) + ROM_LOAD16_BYTE( "ul1rom1l.ic10", 0x1000000, 0x800000, CRC(2d300d8c) SHA1(eabd0b4525530e5b33a6d85fa4d959e88c6fbd42) ) + ROM_LOAD16_BYTE( "ul1rom1u.ic9", 0x1000001, 0x800000, CRC(a4762002) SHA1(0faadc04bcc32e4f805069af8e635765a0b77ca9) ) + + ROM_REGION( 0x0080000, "sub", 0 ) + ROM_LOAD16_WORD_SWAP( "ul1vera.11s", 0x0000000, 0x080000, CRC(2f466df3) SHA1(6468089c6cf3e056a30fa04274056ff2c9a01d5b) ) + + ROM_REGION( 0x1000000, "c352", 0 ) + ROM_LOAD( "ul1wave0.ic2", 0x0000000, 0x800000, CRC(4efbff5d) SHA1(add4caf9aa9443707bcb6cf9ebad0a5a59900ca9) ) + ROM_LOAD( "ul1wave1.ic1", 0x0800000, 0x800000, CRC(ad512f4c) SHA1(cfbecaad13a2239be0e697f3f9856401f11a1bc5) ) + + ROM_REGION( 0x80000, "m148", 0) /* M148 EMI DRIVE PCB */ + ROM_LOAD( "ul1spro.10c", 0x0000000, 0x080000, CRC(1bd0e763) SHA1(07e9ad77bb983fcb4e4e6f66fbe55808b5a27d2e) ) + + DISK_REGION( "cdxa_pcb:ata:0:cdrom" ) + DISK_IMAGE_READONLY( "ul1-a", 0, SHA1(676f2c530f8d422ab9895ea04a43b2e9272fb8f8) ) +ROM_END + +} // anonymous namespace + + +// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME, FLAGS +GAME( 1996, tekken3, 0, coh700, tekken3, namcos12_state, empty_init, ROT0, "Namco", "Tekken 3 (World, TET2/VER.E1)", 0 ) /* KC006 */ +GAME( 1996, tekken3a, tekken3, coh700, tekken3, namcos12_state, empty_init, ROT0, "Namco", "Tekken 3 (World, TET2/VER.A)", 0 ) /* KC006 */ +GAME( 1996, tekken3b, tekken3, coh700, tekken3, namcos12_state, empty_init, ROT0, "Namco", "Tekken 3 (World, TET2/VER.B)", 0 ) /* KC006 */ +GAME( 1996, tekken3c, tekken3, coh700, tekken3, namcos12_state, empty_init, ROT0, "Namco", "Tekken 3 (World, TET2/VER.C)", 0 ) /* KC006 */ +GAME( 1996, tekken3d, tekken3, coh700, tekken3, namcos12_state, empty_init, ROT0, "Namco", "Tekken 3 (World, TET2/VER.D)", 0 ) /* KC006 */ +GAME( 1996, tekken3ua, tekken3, coh700, tekken3, namcos12_state, empty_init, ROT0, "Namco", "Tekken 3 (US, TET3/VER.A)", 0 ) /* KC006 */ +GAME( 1996, tekken3ud, tekken3, coh700, tekken3, namcos12_state, empty_init, ROT0, "Namco", "Tekken 3 (US, TET3/VER.D)", 0 ) /* KC006 */ +GAME( 1996, tekken3ja, tekken3, coh700, tekken3, namcos12_state, empty_init, ROT0, "Namco", "Tekken 3 (Japan, TET1/VER.A)", 0 ) /* KC006 */ +GAME( 1996, tekken3je1, tekken3, coh700, tekken3, namcos12_state, empty_init, ROT0, "Namco", "Tekken 3 (Japan, TET1/VER.E1)", 0 ) /* KC006 */ +GAME( 1997, lbgrande, 0, coh700, lbgrande, namcos12_state, empty_init, ROT0, "Namco", "Libero Grande (World, LG2/VER.A)", 0 ) /* KC014 */ +GAME( 1997, toukon3, 0, coh700, lbgrande, namcos12_state, empty_init, ROT0, "Namco / Tomy", "Shin Nihon Pro Wrestling Toukon Retsuden 3 Arcade Edition (Japan, TR1/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) /* KC019 */ +GAME( 1998, soulclbr, 0, coh700, namcos12, namcos12_state, empty_init, ROT0, "Namco", "Soul Calibur (World, SOC12/VER.A2)", 0 ) /* KC020 */ +GAME( 1998, soulclbrab, soulclbr, coh700, namcos12, namcos12_state, empty_init, ROT0, "Namco", "Soul Calibur (Asia, SOC14/VER.B)", 0 ) /* KC020 */ +GAME( 1998, soulclbrac, soulclbr, coh700, namcos12, namcos12_state, empty_init, ROT0, "Namco", "Soul Calibur (Asia, SOC14/VER.C)", 0 ) /* KC020 */ +GAME( 1998, soulclbrub, soulclbr, coh700, namcos12, namcos12_state, empty_init, ROT0, "Namco", "Soul Calibur (US, SOC13/VER.B)", 0 ) /* KC020 */ +GAME( 1998, soulclbruc, soulclbr, coh700, namcos12, namcos12_state, empty_init, ROT0, "Namco", "Soul Calibur (US, SOC13/VER.C)", 0 ) /* KC020 */ +GAME( 1998, soulclbrja2,soulclbr, coh700, namcos12, namcos12_state, empty_init, ROT0, "Namco", "Soul Calibur (Japan, SOC11/VER.A2)", 0 ) /* KC020 */ +GAME( 1998, soulclbrjb, soulclbr, coh700, namcos12, namcos12_state, empty_init, ROT0, "Namco", "Soul Calibur (Japan, SOC11/VER.B)", 0 ) /* KC020 */ +GAME( 1998, soulclbrjc, soulclbr, coh700, namcos12, namcos12_state, empty_init, ROT0, "Namco", "Soul Calibur (Japan, SOC11/VER.C)", 0 ) /* KC020 */ +GAME( 1998, ehrgeiz, 0, coh700, lbgrande, namcos12_state, empty_init, ROT0, "Square / Namco", "Ehrgeiz (World, EG2/VER.A)", 0 ) /* KC021 */ +GAME( 1998, ehrgeizua, ehrgeiz, coh700, lbgrande, namcos12_state, empty_init, ROT0, "Square / Namco", "Ehrgeiz (US, EG3/VER.A)", 0 ) /* KC021 */ +GAME( 1998, ehrgeizja, ehrgeiz, coh700, lbgrande, namcos12_state, empty_init, ROT0, "Square / Namco", "Ehrgeiz (Japan, EG1/VER.A)", 0 ) /* KC021 */ +GAME( 1998, sws98, 0, coh700, namcos12, namcos12_state, empty_init, ROT0, "Namco", "Super World Stadium '98 (Japan, SS81/VER.A)", 0 ) /* KC025 */ +GAME( 1998, aplarail, 0, aplarail, aplarail, namcos12_state, empty_init, ROT0, "Namco / Tomy", "Attack Pla Rail (Japan, AP1/VER.A)", 0 ) /* KC032 */ +GAME( 1998, mdhorse, 0, coh700, mdhorse, namcos12_altbank_state, empty_init, ROT0, "MOSS / Namco", "Derby Quiz My Dream Horse (Japan, MDH1/VER.A2)", 0 ) /* KC035 */ +GAME( 1998, technodr, 0, technodr, technodr, technodr_state, empty_init, ROT0, "Namco", "Techno Drive (Japan, TH1/VER.B)", 0 ) /* KC056 */ +GAME( 1998, tenkomor, 0, coh700b, namcos12, namcos12_state, empty_init, ROT90,"Namco", "Tenkomori Shooting (World, TKM2/VER.A1)", 0 ) /* KC036 */ +GAME( 1998, tenkomorja1,tenkomor, coh700b, namcos12, namcos12_state, empty_init, ROT90,"Namco", "Tenkomori Shooting (Japan, TKM1/VER.A1)", 0 ) /* KC036 */ +GAME( 1998, fgtlayer, 0, coh700b, lbgrande, namcos12_state, empty_init, ROT0, "Arika / Namco", "Fighting Layer (Asia, FTL3/VER.A)", 0 ) /* KC037 */ +GAME( 1998, fgtlayerja, fgtlayer, coh700b, lbgrande, namcos12_state, empty_init, ROT0, "Arika / Namco", "Fighting Layer (Japan, FTL0/VER.A)", 0 ) /* KC037 */ +GAME( 1998, pacapp, 0, coh700b, pacapp, namcos12_state, empty_init, ROT0, "Produce / Namco", "Paca Paca Passion (Japan, PPP1/VER.A2)", 0 ) /* KC038 */ +GAME( 1999, ptblank2, 0, coh700b, ptblank2, ptblank2_state, empty_init, ROT0, "Namco", "Point Blank 2 (World, GNB5/VER.A)", 0 ) /* KC042 */ +GAME( 1999, gunbarl, ptblank2, coh700b, ptblank2, ptblank2_state, empty_init, ROT0, "Namco", "Gunbarl (Japan, GNB4/VER.A)", 0 ) /* KC042 */ +GAME( 1999, sws99, 0, coh700, namcos12, namcos12_state, empty_init, ROT0, "Namco", "Super World Stadium '99 (Japan, SS91/VER.A3)", 0 ) /* KC043 */ +GAME( 1999, tektagt, 0, coh700b, namcos12, tektagt_state, empty_init, ROT0, "Namco", "Tekken Tag Tournament (World, TEG2/VER.C1, set 1)", 0 ) /* KC044 */ +GAME( 1999, tektagtc1a, tektagt, coh700b, namcos12, tektagt_state, empty_init, ROT0, "Namco", "Tekken Tag Tournament (World, TEG2/VER.C1, set 2)", 0 ) /* KC044 */ +GAME( 1999, tektagtub, tektagt, coh700b, namcos12, tektagt_state, empty_init, ROT0, "Namco", "Tekken Tag Tournament (US, TEG3/VER.B)", 0 ) /* KC044 */ +GAME( 1999, tektagtuc1, tektagt, coh700b, namcos12, tektagt_state, empty_init, ROT0, "Namco", "Tekken Tag Tournament (US, TEG3/VER.C1)", 0 ) /* KC044 */ +GAME( 1999, tektagtja3, tektagt, coh700b, namcos12, tektagt_state, empty_init, ROT0, "Namco", "Tekken Tag Tournament (Japan, TEG1/VER.A3)", MACHINE_NOT_WORKING ) /* KC044 */ +GAME( 1999, tektagtjb, tektagt, coh700b, namcos12, tektagt_state, empty_init, ROT0, "Namco", "Tekken Tag Tournament (Japan, TEG1/VER.B)", MACHINE_NOT_WORKING ) /* KC044 */ +GAME( 1999, tektagtjc1, tektagt, coh700b, namcos12, tektagt_state, empty_init, ROT0, "Namco", "Tekken Tag Tournament (Japan, TEG1/VER.C1)", 0 ) /* KC044 */ +GAME( 1999, ghlpanic, 0, coh700b, ghlpanic, ptblank2_state, empty_init, ROT0, "Eighting / Raizing / Namco", "Ghoul Panic (World, OB2/VER.A)", 0 ) /* KC045 */ +GAME( 1999, ohbakyuun, ghlpanic, coh700b, ghlpanic, ptblank2_state, empty_init, ROT0, "Eighting / Raizing / Namco", "Oh! Bakyuuun (Japan, OB1/VER.A)", 0 ) /* KC045 */ +GAME( 1999, pacapp2, 0, coh700b, pacapp2, namcos12_state, empty_init, ROT0, "Produce / Namco", "Paca Paca Passion 2 (Japan, PKS1/VER.A)", 0 ) /* KC046 */ +GAME( 1999, mrdrillr, 0, coh700b, mrdrillr, namcos12_state, empty_init, ROT0, "Namco", "Mr. Driller (US, DRI3/VER.A2)", 0 ) /* KC048 */ +GAME( 1999, mrdrillrja2,mrdrillr, coh700b, mrdrillr, namcos12_state, empty_init, ROT0, "Namco", "Mr. Driller (Japan, DRI1/VER.A2)", 0 ) /* KC048 */ +GAME( 1999, ujlnow, 0, cdxa_pcb, ujlnow, namcos12_cdxa_state, empty_init, ROT0, "Namco", "Um Jammer Lammy NOW! (Japan, UL1/VER.A)", 0 ) /* KC049 */ +GAME( 1999, kaiunqz, 0, coh700, mdhorse, namcos12_altbank_state, empty_init, ROT0, "Namco", "Kaiun Quiz (Japan, KW1/VER.A)", 0 ) /* KC050 */ +GAME( 1999, pacappsp, 0, coh700b, pacapp2, namcos12_state, empty_init, ROT0, "Produce / Namco", "Paca Paca Passion Special (Japan, PSP1/VER.A)", 0 ) /* KC052 */ +GAME( 1999, aquarush, 0, coh700, lbgrande, namcos12_state, empty_init, ROT0, "Namco", "Aqua Rush (Japan, AQ1/VER.A1)", 0 ) /* KC053 */ +GAME( 1999, golgo13, 0, golgo13, golgo13, golgo13_state, empty_init, ROT0, "Eighting / Raizing / Namco", "Golgo 13 (Japan, GLG1/VER.A)", 0 ) /* KC054 */ +GAME( 2000, sws2000, 0, coh700b, namcos12, namcos12_state, empty_init, ROT0, "Namco", "Super World Stadium 2000 (Japan, SS01/VER.A)", MACHINE_NOT_WORKING ) /* KC055 */ +// truckk can't be a Japanese set despite the game title still being in Japanese. The option for in-game Japanese text is disabled in this set, and it has a Parental Advisory screen usually associated with US releases +// TKK1 is probably the Japanese release, although a TKK1 CD contains identical data to a TKK2 CD, so any difference is in the ROM data rather than the CD +GAME( 2000, truckk, 0, truckk, truckk, truckk_state, empty_init, ROT0, "Metro / Namco", "Truck Kyosokyoku (US?, TKK2/VER.A)", MACHINE_IMPERFECT_SOUND ) /* KC056 */ +GAME( 2000, kartduel, 0, kartduel, kartduel, kartduel_state, empty_init, ROT0, "Gaps / Namco", "Kart Duel (World, KTD2/VER.A)", 0 ) /* KC057 */ +GAME( 2000, kartduelja, kartduel, kartduel, kartduel, kartduel_state, empty_init, ROT0, "Gaps / Namco", "Kart Duel (Japan, KTD1/VER.A)", 0 ) /* KC057 */ +GAME( 2000, g13knd, 0, golgo13, golgo13, golgo13_state, empty_init, ROT0, "Eighting / Raizing / Namco", "Golgo 13 Kiseki no Dandou (Japan, GLS1/VER.A)", 0 ) /* KC059 */ +GAME( 2001, sws2001, 0, coh716, namcos12, namcos12_altbank_state, empty_init, ROT0, "Namco", "Super World Stadium 2001 (Japan, SS11/VER.A)", MACHINE_NOT_WORKING ) /* KC061 */ |