summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/namcos11.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/namcos11.c')
-rw-r--r--src/mame/drivers/namcos11.c1681
1 files changed, 1681 insertions, 0 deletions
diff --git a/src/mame/drivers/namcos11.c b/src/mame/drivers/namcos11.c
new file mode 100644
index 00000000000..8c18e40018a
--- /dev/null
+++ b/src/mame/drivers/namcos11.c
@@ -0,0 +1,1681 @@
+/***************************************************************************
+
+ Namco System 11 - Arcade PSX Hardware
+ =====================================
+ Driver by smf & Ryan Holtz
+ Board notes by The Guru
+ Sound by R Belmont
+ Thanks to the original Zinc Team.
+
+ Issues:
+ The C76 internal rom is not dumped, we use the sound program from Prop Cycle and patch the inputs.
+ Random draw list corruption in soul edge v2 & dunkmania.
+ soul edge, dunk mania & prime goal ex try to access joypads/memory cards. It is unknown what they would do if they found one.
+
+Known Dumps
+-----------
+
+Game Description CPU board Mother board Daughter board Keycus ROM0L
+--------------------------------------------------------------------------------------------------------------------------------------
+tekken Tekken (TE4/VER.C) COH-100 SYSTEM11 MOTHER PCB SYSTEM11 ROM8 PCB none 5
+tekkena Tekken (TE2/VER.C) COH-100 " " " "
+tekkenb Tekken (TE2/VER.B) COH-100 " " " "
+tekkenc Tekken (TE1/VER.B) COH-100 " " " "
+tekken2 Tekken 2 Ver.B (TES3/VER.B) COH-100 SYSTEM11 MOTHER PCB SYSTEM11 ROM8 PCB C406 6
+tekken2a Tekken 2 Ver.B (TES2/VER.B) COH-100 " " " "
+tekken2b Tekken 2 (TES2/VER.A) COH-100 " " " "
+souledge Soul Edge Ver. II (SO4/VER.C) COH-100 / COH-110 SYSTEM11 MOTHER PCB SYSTEM11 ROM8 PCB C409 6
+souledga Soul Edge Ver. II (SO3/VER.C) COH-100 / COH-110 " " " "
+souledgb Soul Edge (SO3/VER.A) COH-100 / COH-110 " " " "
+souledgc Soul Edge (SO1/VER.A) COH-100 / COH-110 " " " "
+dunkmnia Dunk Mania (DM2/VER.C) COH-100 / COH-110 SYSTEM11 MOTHER PCB SYSTEM11 ROM8 PCB C410 5
+dunkmnic Dunk Mania (DM1/VER.C) COH-100 / COH-110 SYSTEM11 MOTHER PCB SYSTEM11 ROM8 PCB C410 5
+xevi3dg Xevious 3D/G (XV31/VER.A) COH-100 / COH-110 SYSTEM11 MOTHER PCB SYSTEM11 ROM8 PCB C430 5
+primglex Prime Goal EX (PG1/VER.A) COH-100 / COH-110 SYSTEM11 MOTHER PCB SYSTEM11 ROM8 PCB C411 6
+danceyes Dancing Eyes (DC1/VER.A) COH-100 / COH-110 SYSTEM11 MOTHER PCB SYSTEM11 ROM8 PCB C431 5
+pocketrc Pocket Racer (PKR1/VER.B) COH-110 SYSTEM11 MOTHER PCB SYSTEM11 ROM8 PCB C432 5
+starswep Star Sweep (STP1/VER.A) COH-100 / COH-110 SYSTEM11 MOTHER(B) PCB C442 -
+myangel3 Kosodate Quiz My Angel 3 (KQT1/VER.A) COH-110 SYSTEM11 MOTHER(B) PCB SYSTEM11 ROM8(64) PCB C443 2
+ptblnk2a Point Blank 2 (GNB3/VER.A) COH-100 / COH-110 SYSTEM11 MOTHER PCB SYSTEM11 ROM8(64) PCB C443 2
+
+
+Not Dumped Yet
+--------------
+Don Bear Near (C) Namco, 1996
+Point Blank 3 (C) Namco, 2001
+Soul Edge Ver. III (C) Namco, 1996
+Tekken Ver.C (C) Namco, 1995
+Tekken II Ver.C (C) Namco, 1995
+
+If you can help with the remaining undumped S11 games, please contact http://www.mameworld.net/gurudumps/comments.html
+
+
+The Namco System 11 system comprises 3 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).
+ There are two known revisions of this PCB. The differences are not known, though they're probably almost identical except
+ for some minor component shuffling. The 2nd revision is used only by Kosodate Quiz My Angel 3 and Star Sweep.
+CPU PCB - There are two known revisions of this PCB. Any game can use either PCB. Contains main CPU/RAM and GPU/Video RAM
+ The differences are only in the RAM type, one uses 4x 16MBit chips compared to the other that uses 2x 32MBit chips.
+ROM PCB - There are two known revisions of this PCB. They're mostly identical except one uses all 32MBit SOP44 MASKROMs and the other
+ uses 64MBit SOP44 MASKROMs. The 64MBit ROM board also has space for a PAL and a KEYCUS.
+
+Each game has a multi-letter code assigned to it which is printed on a small sticker and placed on the bottom side of the MOTHER PCB.
+This code is then proceeded by a number (1, 2, 3 & 4 seen so far), then 'Ver.' 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, other numbers denote a World version.
+For World versions, only the main program changes (and sometimes only some of the program ROMs change), the rest of the (graphics) ROMs
+use the Japanese version ROMs.
+See the Main PCB and ROM Daughterboard PCB texts below for more details.
+
+1st Revision
+SYSTEM11 MOTHER PCB 8645960103 (8645970103)
+ |----------------------------------------|
+ | LA4705 |----| (CONN1) |
+|-| |C384| KEYCUS S11MOT3A |
+| VOL 4558 |----| AT28C16 |
+| LC78815 S11MOT2A |
+| |
+|J PRG.2L |
+|A WAVE.8K |-----| 2061ASC-1 PRG.2K |
+|M |C352 | PRG.2J |
+|M | | PRG.2F |
+|A |-----| |
+| |
+| |-------| |
+|-| |-----| | | |
+ | | C76 | SPROG.6D | C195 | 61C256 |
+|-| | | | | 61C256 |
+|4 |-----| S11MOT1A |-------| |
+|8 |
+|W DSW(2) |
+|A |
+|Y (CONN2) |
+|-| PQ30RV21 |
+ |----------------------------------------|
+Notes:
+ C76 - Sound CPU with 16k internal BIOS, a Namco-badged custom, actually a Mitsubishi M37702 MCU (QFP80)
+ C195 - Namco custom (QFP160)
+ C384 - Namco custom (QFP48)
+ C352 - Namco custom C352 PCM sound chip (QFP100)
+ AT28C16 - 2k x8 EEPROM (DIP28)
+ 61C256 - 32k x8 SRAM (x2, SOJ28)
+ 2061ASC-1- IC Designs 2061ASC-1 programmable clock generator (SOIC16)
+ S11MOT* - Standard System 11 PALs (DIP20)
+ WAVE.8K - Sound samples, 42 pin DIP MASKROM, either 16MBit or 32MBit. If 32MBit, it is programmed in Byte Mode.
+ SPROG.6D - Sound program, Intel PA28F200BX 2MBit Flash ROM (SOP44)
+ PRG.2* - Main program, Intel E28F008SA 8MBit Flash ROM (TSOP40)
+ CONN1 - for connection of the ROM Board
+ CONN2 - for connection of the CPU board
+ KEYCUS - DIP28 protection chip (see table below, DIP32)
+ PQ3RV21 - Sharp PQ30RV21 5V to 3.3V Voltage Regulator
+ LC78815 - Sanyo LM78815 2-Channel 16-Bit D/A Converter (SOIC20)
+ 4558 - Op Amp (SOIC8)
+ LA4705 - Sanyo LA4705 15W 2-Channel Power Amplifier (SIP18)
+ 48WAY - Namco 48 way edge connector used for extra controls and to output the 2nd speaker when set to stereo mode.
+
+ There is a REV B Mother board 'SYSTEM11 MOTHER(B) PCB' with slightly different
+ component placings. It's not known if it has different components also.
+
+ Game Code
+ Game Sticker KEYCUS
+ ---------------------------------------------
+ Dancing Eyes DC C431
+ Don Bear Near
+ Dunk Mania DM C410
+ Kosodate Quiz My Angel 3 KQT C443
+ Prime Goal EX PG C411
+ Pocket Racer PKR C432
+ Point Blank 2 GNB C443
+ Point Blank 3
+ Soul Edge SO C409
+ Soul Edge Ver. II SO C409
+ Soul Edge Ver. III
+ Star Sweep STP C442
+ Tekken TE none
+ Tekken Ver.B TE none
+ Tekken Ver.C
+ Tekken II TES C406
+ Tekken II Ver.B TES C406
+ Tekken II Ver.C
+ Xevious 3D/G XV3 C430
+
+
+
+ROM Boards
+----------
+
+SYSTEM11 ROM8 PCB 8645960202 (8645970202)
+|----------------------------------------|
+| (CONN1) |
+|ROM3L.9 74F139 ROM3U.1 |
+| |
+|ROM1L.8 ROM0L.6 ROM2U.4 |
+| ROM2L.7 ROM0U.5 ROM1U.3|
+| |
+|----------------------------------------|
+Notes:
+ This ROM board is wired to accept a maximum of 8x 8Bit 32MBit SOP44 MASK ROMs.
+
+
+SYSTEM11 ROM8(64) PCB 8645960500 (8645970500)
+|----------------------------------------|
+|KEYCUS.7 (CONN1) PAL16V8H.1 |
+| |
+| *PRG3U.IC10 |
+|PRG2U.8 PRG0U.5 PRG1L.3 |
+| PRG1U.6 PRG2L.4 PRG0L.2|
+| *PRG3L.IC9 |
+|----------------------------------------|
+Notes:
+ This ROM board is wired to accept a maximum of 8x 8Bit 64MBit SOP44 MASK ROMs.
+ There is room for a PLCC44 KEYCUS IC (usually a CPLD, but not populated) and a PLCC20
+ IC type PAL16V8H (populated and labelled 'ROM8 DEC0')
+ * - These ROMs are on the other side of the PCB.
+
+CPU Board
+---------
+
+Revision 1
+GP-11 COH-100 1-655-543-12
+|-------------------------------------|
+| |---------| KM48V514BJ-6 |
+| |SONY | KM48V514BJ-6 |
+| |CXD8530AQ| KM48V514BJ-6 |
+| | | KM48V514BJ-6 |
+| |---------| KM48V514BJ-6 |
+| 67.737MHz KM48V514BJ-6 |
+| |---------| KM48V514BJ-6 |
+|(CONN2) |SONY | KM48V514BJ-6 |
+| |CXD8538Q | |
+| | | |
+| |---------| 53.69MHz |
+| D482445LGW-A70|
+| SONY D482445LGW-A70 |
+| CXD2923AR D482445LGW-A70|
+| D482445LGW-A70 |
+|-------------------------------------|
+Notes:
+ CXD8530AQ - Sony CXD8530AQ Main CPU (QFP208)
+ CXD8530BQ may be used instead of CXD8530AQ
+ CXD8538Q - Sony CXD8538Q GPU (QFP208)
+ CXD2923AR - Sony CXD2923AR SPU (QFP80)
+
+Revision 2
+GP-13 COH-110 S-XMB 1-660-276-11
+|-------------------------------------|
+| |---------| KM48V514BJ-6 |
+| |SONY | KM48V514BJ-6 |
+| |CXD8530CQ| KM48V514BJ-6 |
+| | | KM48V514BJ-6 |
+| |---------| KM48V514BJ-6 |
+| 67.737MHz KM48V514BJ-6 |
+| |---------| KM48V514BJ-6 |
+|(CONN2) |SONY | KM48V514BJ-6 |
+| |CXD8561Q | |
+| | | |
+| |---------| 53.69MHz |
+| |
+| KM4132G271Q-12 |
+| KM4132G271Q-12 XC44200FUB |
+| |
+|-------------------------------------|
+Notes:
+ The 2nd revision CPU board (GP-13 COH-110) uses 2x 32MBit RAMs instead of
+ the 4x D482445LGW-A70 RAMs and the 2 main SONY IC's are updated revisions,
+ though the functionality of them is identical. The 2 types of CPU boards can be
+ used with any System 11 motherboard, and any System 11 game.
+
+Gun Board (Used only with Point Blank 2 so far)
+---------
+
+System11 GUN I/F 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 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)
+
+***************************************************************************/
+
+#include <stdarg.h>
+#include "driver.h"
+#include "cpu/mips/psx.h"
+#include "includes/psx.h"
+#include "machine/at28c16.h"
+#include "audio/namcoc7x.h"
+
+#define VERBOSE_LEVEL ( 0 )
+
+INLINE void verboselog( int n_level, const char *s_fmt, ... )
+{
+ if( VERBOSE_LEVEL >= n_level )
+ {
+ va_list v;
+ char buf[ 32768 ];
+ va_start( v, s_fmt );
+ vsprintf( buf, s_fmt, v );
+ va_end( v );
+ logerror( "%02x:%08x: %s", cpu_getactivecpu(), safe_activecpu_get_pc(), buf );
+ }
+}
+
+static UINT32 *namcos11_sharedram;
+static UINT32 *namcos11_keycus;
+static size_t namcos11_keycus_size;
+
+static WRITE32_HANDLER( keycus_w )
+{
+ verboselog( 1, "keycus_w( %08x, %08x, %08x )\n", offset, data, mem_mask );
+ COMBINE_DATA( &namcos11_keycus[ offset ] );
+}
+
+/* tekken 2 */
+static READ32_HANDLER( keycus_c406_r )
+{
+ /* todo: verify behaviour */
+ UINT32 data;
+
+ data = namcos11_keycus[ offset ];
+ switch( offset )
+ {
+ case 0:
+ data = ( data & 0xffff0000 ) |
+ ( ( namcos11_keycus[ 0 ] >> 8 ) & 0xf000 ) |
+ ( ( namcos11_keycus[ 0 ] >> 16 ) & 0xf00 ) |
+ ( ( namcos11_keycus[ 1 ] >> 8 ) & 0xf0 ) |
+ ( ( namcos11_keycus[ 1 ] >> 8 ) & 0xf );
+ break;
+ }
+ verboselog( 1, "keycus_c406_r( %08x, %08x, %08x )\n", offset, data, mem_mask );
+ return data;
+}
+
+/* soul edge */
+static READ32_HANDLER( keycus_c409_r )
+{
+ /* todo: verify behaviour */
+ UINT32 data;
+
+ data = namcos11_keycus[ offset ];
+ switch( offset )
+ {
+ case 3:
+ data = ( data & 0x0000ffff ) | 0x000f0000;
+ break;
+ }
+ verboselog( 1, "keycus_c409_r( %08x, %08x, %08x )\n", offset, data, mem_mask );
+ return data;
+}
+
+/* dunk mania */
+static READ32_HANDLER( keycus_c410_r )
+{
+ UINT32 data;
+ UINT32 n_value;
+
+ if( ( namcos11_keycus[ 0 ] & 0x0000ffff ) != 0xfffe )
+ {
+ n_value = namcos11_keycus[ 0 ] & 0x0000ffff;
+ }
+ else
+ {
+ n_value = 410;
+ }
+
+ data = namcos11_keycus[ offset ];
+ switch( offset )
+ {
+ case 0:
+ data = ( data & 0x0000ffff ) |
+ ( ( n_value / 1 ) % 10 );
+ break;
+ case 1:
+ data =
+ ( ( ( n_value / 10 ) % 10 ) << 24 ) |
+ ( ( ( n_value / 100 ) % 10 ) << 0 ) |
+ ( ( ( n_value / 1000 ) % 10 ) << 8 ) |
+ ( ( ( n_value / 10000 ) % 10 ) << 16 );
+ break;
+ }
+ verboselog( 1, "keycus_c410_r( %08x, %08x, %08x )\n", offset, data, mem_mask );
+ return data;
+}
+
+/* prime goal ex */
+static READ32_HANDLER( keycus_c411_r )
+{
+ UINT32 data;
+ UINT32 n_value;
+
+ data = namcos11_keycus[ offset ];
+ if( ( namcos11_keycus[ 1 ] & 0x0000ffff ) == 0x00007256 )
+ {
+ n_value = namcos11_keycus[ 5 ] & 0x0000ffff;
+ }
+ else
+ {
+ n_value = 411;
+ }
+
+ switch( offset )
+ {
+ case 0:
+ data = ( data & 0xffff0000 ) | ( ( ( n_value / 10 ) % 10 ) << 8 ) | ( ( n_value / 1 ) % 10 );
+ break;
+ case 1:
+ data = ( data & 0xffff0000 ) | ( ( ( n_value / 1000 ) % 10 ) << 8 ) | ( ( n_value / 100 ) % 10 );
+ break;
+ case 4:
+ data = ( data & 0xffff0000 ) | ( ( n_value / 10000 ) % 10 );
+ break;
+ }
+
+ verboselog( 1, "keycus_c411_r( %08x, %08x, %08x )\n", offset, data, mem_mask );
+ return data;
+}
+
+/* xevious 3d/g */
+static READ32_HANDLER( keycus_c430_r )
+{
+ UINT32 data;
+ UINT16 n_value;
+
+ if( ( namcos11_keycus[ 2 ] & 0x0000ffff ) == 0x0000e296 )
+ {
+ n_value = namcos11_keycus[ 0 ] & 0x0000ffff;
+ }
+ else
+ {
+ n_value = 430;
+ }
+
+ data = namcos11_keycus[ offset ];
+ switch( offset )
+ {
+ case 0:
+ data = ( data & 0x0000ffff ) |
+ ( ( ( n_value / 10000 ) % 10 ) << 16 );
+ break;
+ case 2:
+ data =
+ ( ( ( n_value / 1000 ) % 10 ) << 8 ) |
+ ( ( ( n_value / 100 ) % 10 ) << 0 ) |
+ ( ( ( n_value / 10 ) % 10 ) << 24 ) |
+ ( ( ( n_value / 1 ) % 10 ) << 16 );
+ break;
+ }
+ verboselog( 1, "keycus_c430_r( %08x, %08x, %08x )\n", offset, data, mem_mask );
+ return data;
+}
+
+/* dancing eyes */
+static READ32_HANDLER( keycus_c431_r )
+{
+ UINT32 data;
+ UINT16 n_value;
+
+ if( ( namcos11_keycus[ 0 ] & 0x0000ffff ) == 0x00009e61 )
+ {
+ n_value = namcos11_keycus[ 6 ] & 0x0000ffff;
+ }
+ else
+ {
+ n_value = 431;
+ }
+
+ data = namcos11_keycus[ offset ];
+ switch( offset )
+ {
+ case 0:
+ data = ( data & 0xffff0000 ) | ( ( ( n_value / 10 ) % 10 ) << 8 ) | ( ( n_value / 1 ) % 10 );
+ break;
+ case 2:
+ data = ( data & 0xffff0000 ) | ( ( ( n_value / 1000 ) % 10 ) << 8 ) | ( ( n_value / 100 ) % 10 );
+ break;
+ case 4:
+ data = ( data & 0xffff0000 ) | ( ( n_value / 10000 ) % 10 );
+ break;
+ }
+ verboselog( 1, "keycus_c431_r( %08x, %08x, %08x )\n", offset, data, mem_mask );
+ return data;
+}
+
+/* pocket racer */
+static READ32_HANDLER( keycus_c432_r )
+{
+ UINT32 data;
+ UINT16 n_value;
+
+ if( ( namcos11_keycus[ 3 ] & 0x0000ffff ) == 0x00002f15 )
+ {
+ n_value = namcos11_keycus[ 1 ] & 0x0000ffff;
+ }
+ else
+ {
+ n_value = 432;
+ }
+
+ data = namcos11_keycus[ offset ];
+ switch( offset )
+ {
+ case 1:
+ data = ( data & 0xffff0000 ) | ( ( ( n_value / 10 ) % 10 ) << 8 ) | ( ( n_value / 1 ) % 10 );
+ break;
+ case 2:
+ data = ( data & 0xffff0000 ) | ( ( ( n_value / 1000 ) % 10 ) << 8 ) | ( ( n_value / 100 ) % 10 );
+ break;
+ case 3:
+ data = ( data & 0xffff0000 ) | ( ( ( n_value / 100000 ) % 10 ) << 8 ) | ( ( n_value / 10000 ) % 10 );
+ break;
+ }
+
+ verboselog( 1, "keycus_c432_r( %08x, %08x, %08x )\n", offset, data, mem_mask );
+ return data;
+}
+
+/* star sweep */
+static READ32_HANDLER( keycus_c442_r )
+{
+ /* todo: verify behaviour */
+ UINT32 data;
+
+ data = namcos11_keycus[ offset ];
+
+ switch( offset )
+ {
+ case 0:
+ if( ( data & 0xffff0000 ) == 0x00210000 )
+ {
+ data = ( data & 0x0000ffff ) | 0xc4420000;
+ }
+ break;
+ }
+ verboselog( 1, "keycus_c442_r( %08x, %08x, %08x )\n", offset, data, mem_mask );
+ return data;
+}
+
+/* kosodate quiz my angel 3 / point blank 2 */
+static READ32_HANDLER( keycus_c443_r )
+{
+ /* todo: verify behaviour */
+ UINT32 data;
+
+ data = namcos11_keycus[ offset ];
+
+ switch( offset )
+ {
+ case 0:
+ if( ( data & 0x0000ffff ) == 0x00000020 )
+ {
+ data = ( data & 0xffff0000 ) | 0x00005678;
+ }
+ if( ( data & 0xffff0000 ) == 0xa9870000 )
+ {
+ data = ( data & 0x0000ffff ) | 0x56580000;
+ }
+ if( ( data & 0xffff0000 ) == 0xa9880000 ) /* ptblnk2a */
+ {
+ data = ( data & 0x0000ffff ) | 0xc4430000;
+ }
+ if( ( data & 0xffff0000 ) == 0xffff0000 ) /* myangel3 */
+ {
+ data = ( data & 0x0000ffff ) | 0xc4430000;
+ }
+ break;
+ }
+ verboselog( 1, "keycus_c443_r( %08x, %08x, %08x )\n", offset, data, mem_mask );
+ return data;
+}
+
+static WRITE32_HANDLER( sharedram_w )
+{
+ verboselog( 1, "sharedram_w( %08x, %08x, %08x )\n", ( offset * 4 ) + 0x4000, data, mem_mask );
+ COMBINE_DATA( &namcos11_sharedram[ offset ] );
+}
+
+static READ32_HANDLER( sharedram_r )
+{
+ verboselog( 1, "sharedram_r( %08x, %08x ) %08x\n", ( offset * 4 ) + 0x4000, mem_mask, namcos11_sharedram[ offset ] );
+ return namcos11_sharedram[ offset ];
+}
+
+#define SHRAM( x ) namcos11_sharedram[ ( x - 0x4000 ) / 4 ]
+
+static UINT16 m_n_oldcoin;
+
+static INTERRUPT_GEN( namcos11_vblank )
+{
+ UINT16 n_coin;
+ UINT32 n_input;
+
+ n_input = ( readinputportbytag( "PLAYER1" ) << 16 );
+ SHRAM( 0xbd00 ) = n_input | ( ( n_input & ~SHRAM( 0xbd00 ) ) >> 8 ) | ( SHRAM( 0xbd00 ) & 0x0000ffff );
+
+ n_input = readinputportbytag( "PLAYER2" ) | ( readinputportbytag( "PLAYER3" ) << 16 );
+ SHRAM( 0xbd04 ) = n_input | ( ( n_input & ~SHRAM( 0xbd04 ) ) >> 8 );
+
+ n_input = readinputportbytag( "PLAYER4" );
+ SHRAM( 0xbd08 ) = n_input | ( ( n_input & ~SHRAM( 0xbd08 ) ) >> 8 ) | ( SHRAM( 0xbd08 ) & 0xffff0000 );
+
+ n_coin = readinputportbytag( "COIN" );
+
+ if( ( n_coin & m_n_oldcoin & 0x08 ) != 0 )
+ {
+ SHRAM( 0xbd1c ) = ( SHRAM( 0xbd1c ) & 0x0000ffff ) | ( ( SHRAM( 0xbd1c ) + 0x00010000 ) & 0xffff0000 );
+ }
+ if( ( n_coin & m_n_oldcoin & 0x04 ) != 0 )
+ {
+ SHRAM( 0xbd20 ) = ( SHRAM( 0xbd20 ) & 0xffff0000 ) | ( ( SHRAM( 0xbd20 ) + 0x00000001 ) & 0x0000ffff );
+ }
+ if( ( n_coin & m_n_oldcoin & 0x02 ) != 0 )
+ {
+ SHRAM( 0xbd20 ) = ( SHRAM( 0xbd20 ) & 0x0000ffff ) | ( ( SHRAM( 0xbd20 ) + 0x00010000 ) & 0xffff0000 );
+ }
+ if( ( n_coin & m_n_oldcoin & 0x01 ) != 0 )
+ {
+ SHRAM( 0xbd24 ) = ( SHRAM( 0xbd24 ) & 0xffff0000 ) | ( ( SHRAM( 0xbd24 ) + 0x00000001 ) & 0x0000ffff );
+ }
+ m_n_oldcoin = ~n_coin;
+
+ psx_vblank();
+
+ if( strcmp( Machine->gamedrv->name, "pocketrc" ) == 0 )
+ {
+ if( g_p_n_psxram[ 0x12c74 / 4 ] == 0x1440fff9 )
+ {
+ g_p_n_psxram[ 0x12c74 / 4 ] = 0;
+ }
+ if( g_p_n_psxram[ 0x64694 / 4 ] == 0x1443000c )
+ {
+ g_p_n_psxram[ 0x64694 / 4 ] = 0;
+ }
+
+ if( ( SHRAM( 0xbe88 ) & 0x0000ffff ) == 2 )
+ {
+ cpunum_set_input_line( 0, INPUT_LINE_RESET, PULSE_LINE );
+ memset( namcos11_keycus, 0, namcos11_keycus_size );
+
+ SHRAM( 0xbe88 ) = ( SHRAM( 0xbe88 ) & 0xffff0000 );
+ }
+
+ SHRAM( 0xbd30 ) = ( SHRAM( 0xbd30 ) & 0x0000ffff ) | ( 0x0080 << 16 );
+
+ SHRAM( 0xbd08 ) = ( SHRAM( 0xbd08 ) & 0x0000ffff ) | ( readinputportbytag( "STEERING" ) << 16 );
+ SHRAM( 0xbd0c ) = ( SHRAM( 0xbd0c ) & 0xffff0000 ) | ( readinputportbytag( "GAS" ) << 0 );
+ }
+}
+
+static TIMER_CALLBACK( mcu_timer )
+{
+ SHRAM( 0xbd00 ) = ( SHRAM( 0xbd00 ) & 0xffffff00 ) | readinputportbytag( "SWITCH" );
+}
+
+static UINT32 m_n_bankoffset;
+static UINT32 m_p_n_bankoffset[ 8 ];
+
+INLINE void bankswitch_update( int n_bank )
+{
+ verboselog( 1, "bankswitch_update( %d ) = %08x\n", n_bank, m_p_n_bankoffset[ n_bank ] );
+ memory_set_bankptr( 1 + n_bank, memory_region( REGION_USER2 ) + m_p_n_bankoffset[ n_bank ] );
+}
+
+static void bankswitch_update_all( void )
+{
+ int n_bank;
+
+ for( n_bank = 0; n_bank < 8; n_bank++ )
+ {
+ bankswitch_update( n_bank );
+ }
+}
+
+INLINE void bankswitch_rom8( int n_bank, int n_data )
+{
+ m_p_n_bankoffset[ n_bank ] = ( ( ( n_data & 0xc0 ) >> 4 ) + ( n_data & 0x03 ) ) * 1024 * 1024;
+ bankswitch_update( n_bank );
+}
+
+static WRITE32_HANDLER( bankswitch_rom32_w )
+{
+ verboselog( 2, "bankswitch_rom32_w( %08x, %08x, %08x )\n", offset, data, mem_mask );
+
+ if( ACCESSING_LSW32 )
+ {
+ bankswitch_rom8( ( offset * 2 ), data & 0xffff );
+ }
+ if( ACCESSING_MSW32 )
+ {
+ bankswitch_rom8( ( offset * 2 ) + 1, data >> 16 );
+ }
+}
+
+static WRITE32_HANDLER( bankswitch_rom64_upper_w )
+{
+ verboselog( 2, "bankswitch_rom64_upper_w( %08x, %08x, %08x )\n", offset, data, mem_mask );
+
+ if( ACCESSING_LSW32 )
+ {
+ m_n_bankoffset = 0;
+ }
+ if( ACCESSING_MSW32 )
+ {
+ m_n_bankoffset = 16;
+ }
+}
+
+INLINE void bankswitch_rom64( int n_bank, int n_data )
+{
+ /* todo: verify behaviour */
+ m_p_n_bankoffset[ n_bank ] = ( ( ( ( n_data & 0xc0 ) >> 3 ) + ( n_data & 0x07 ) ) ^ m_n_bankoffset ) * 1024 * 1024;
+ bankswitch_update( n_bank );
+}
+
+static WRITE32_HANDLER( bankswitch_rom64_w )
+{
+ verboselog( 2, "bankswitch_rom64_w( %08x, %08x, %08x )\n", offset, data, mem_mask );
+
+ if( ACCESSING_LSW32 )
+ {
+ bankswitch_rom64( ( offset * 2 ), data & 0xffff );
+ }
+ if( ACCESSING_MSW32 )
+ {
+ bankswitch_rom64( ( offset * 2 ) + 1, data >> 16 );
+ }
+}
+
+static WRITE32_HANDLER( lightgun_w )
+{
+ if( ACCESSING_LSW32 )
+ {
+ output_set_value( "led0", !( data & 0x08 ) );
+ output_set_value( "led1", !( data & 0x04 ) );
+ output_set_value( "recoil0", !( data & 0x02 ) );
+ output_set_value( "recoil1", !( data & 0x01 ) );
+
+ verboselog( 1, "lightgun_w: outputs (%08x %08x)\n", data, mem_mask );
+ }
+ if( ACCESSING_MSW32 )
+ {
+ verboselog( 2, "lightgun_w: start reading (%08x %08x)\n", data, mem_mask );
+ }
+}
+
+static READ32_HANDLER( lightgun_r )
+{
+ UINT32 data = 0;
+ switch( offset )
+ {
+ case 0:
+ data = readinputportbytag( "GUN1X" );
+ break;
+ case 1:
+ data = ( readinputportbytag( "GUN1Y" ) ) | ( ( readinputportbytag( "GUN1Y" ) + 1 ) << 16 );
+ break;
+ case 2:
+ data = readinputportbytag( "GUN2X" );
+ break;
+ case 3:
+ data = ( readinputportbytag( "GUN2Y" ) ) | ( ( readinputportbytag( "GUN2Y" ) + 1 ) << 16 );
+ break;
+ }
+ verboselog( 2, "lightgun_r( %08x, %08x ) %08x\n", offset, mem_mask, data );
+ return data;
+}
+
+static ADDRESS_MAP_START( namcos11_map, ADDRESS_SPACE_PROGRAM, 32 )
+ AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_SHARE(1) AM_BASE(&g_p_n_psxram) AM_SIZE(&g_n_psxramsize) /* ram */
+ AM_RANGE(0x1f000000, 0x1f0fffff) AM_ROMBANK(1) /* banked roms */
+ AM_RANGE(0x1f100000, 0x1f1fffff) AM_ROMBANK(2)
+ AM_RANGE(0x1f200000, 0x1f2fffff) AM_ROMBANK(3)
+ AM_RANGE(0x1f300000, 0x1f3fffff) AM_ROMBANK(4)
+ AM_RANGE(0x1f400000, 0x1f4fffff) AM_ROMBANK(5)
+ AM_RANGE(0x1f500000, 0x1f5fffff) AM_ROMBANK(6)
+ AM_RANGE(0x1f600000, 0x1f6fffff) AM_ROMBANK(7)
+ AM_RANGE(0x1f700000, 0x1f7fffff) AM_ROMBANK(8)
+ AM_RANGE(0x1f800000, 0x1f8003ff) AM_RAM /* scratchpad */
+ AM_RANGE(0x1f801000, 0x1f801007) AM_WRITENOP
+ AM_RANGE(0x1f801008, 0x1f80100b) AM_RAM /* ?? */
+ AM_RANGE(0x1f80100c, 0x1f80102f) AM_WRITENOP
+ AM_RANGE(0x1f801010, 0x1f801013) AM_READNOP
+ AM_RANGE(0x1f801014, 0x1f801017) AM_READNOP
+ AM_RANGE(0x1f801040, 0x1f80105f) AM_READWRITE(psx_sio_r, psx_sio_w)
+ AM_RANGE(0x1f801060, 0x1f80106f) AM_WRITENOP
+ AM_RANGE(0x1f801070, 0x1f801077) AM_READWRITE(psx_irq_r, psx_irq_w)
+ AM_RANGE(0x1f801080, 0x1f8010ff) AM_READWRITE(psx_dma_r, psx_dma_w)
+ AM_RANGE(0x1f801100, 0x1f80112f) AM_READWRITE(psx_counter_r, psx_counter_w)
+ AM_RANGE(0x1f801810, 0x1f801817) AM_READWRITE(psx_gpu_r, psx_gpu_w)
+ AM_RANGE(0x1f801820, 0x1f801827) AM_READWRITE(psx_mdec_r, psx_mdec_w)
+ AM_RANGE(0x1f801c00, 0x1f801dff) AM_NOP
+ AM_RANGE(0x1f802020, 0x1f802033) AM_RAM /* ?? */
+ AM_RANGE(0x1f802040, 0x1f802043) AM_WRITENOP
+ AM_RANGE(0x1fa04000, 0x1fa0ffff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE(&namcos11_sharedram) /* shared ram */
+ AM_RANGE(0x1fa20000, 0x1fa2ffff) AM_WRITE(keycus_w) AM_BASE(&namcos11_keycus) AM_SIZE(&namcos11_keycus_size) /* keycus */
+ AM_RANGE(0x1fa30000, 0x1fa30fff) AM_READWRITE( at28c16_32le_16lsb_0_r, at28c16_32le_16lsb_0_w ) /* eeprom */
+ AM_RANGE(0x1fb00000, 0x1fb00003) AM_WRITENOP /* ?? */
+ AM_RANGE(0x1fbf6000, 0x1fbf6003) AM_WRITENOP /* ?? */
+ AM_RANGE(0x1fc00000, 0x1fffffff) AM_ROM AM_SHARE(2) AM_REGION(REGION_USER1, 0) /* bios */
+ AM_RANGE(0x80000000, 0x803fffff) AM_RAM AM_SHARE(1) /* ram mirror */
+ AM_RANGE(0x9fc00000, 0x9fffffff) AM_ROM AM_SHARE(2) /* bios mirror */
+ AM_RANGE(0xa0000000, 0xa03fffff) AM_RAM AM_SHARE(1) /* ram mirror */
+ AM_RANGE(0xbfc00000, 0xbfffffff) AM_ROM AM_SHARE(2) /* bios mirror */
+ AM_RANGE(0xfffe0130, 0xfffe0133) AM_WRITENOP
+ADDRESS_MAP_END
+
+static struct
+{
+ const char *s_name;
+ read32_handler keycus_r;
+ int n_daughterboard;
+} namcos11_config_table[] =
+{
+ { "tekken", NULL, 32 },
+ { "tekkena", NULL, 32 },
+ { "tekkenb", NULL, 32 },
+ { "tekkenc", NULL, 32 },
+ { "tekken2", keycus_c406_r, 32 },
+ { "tekken2a", keycus_c406_r, 32 },
+ { "tekken2b", keycus_c406_r, 32 },
+ { "souledge", keycus_c409_r, 32 },
+ { "souledga", keycus_c409_r, 32 },
+ { "souledgb", keycus_c409_r, 32 },
+ { "souledgc", keycus_c409_r, 32 },
+ { "dunkmnia", keycus_c410_r, 32 },
+ { "dunkmnic", keycus_c410_r, 32 },
+ { "xevi3dg", keycus_c430_r, 32 },
+ { "primglex", keycus_c411_r, 32 },
+ { "danceyes", keycus_c431_r, 32 },
+ { "pocketrc", keycus_c432_r, 32 },
+ { "starswep", keycus_c442_r, 0 },
+ { "myangel3", keycus_c443_r, 64 },
+ { "ptblnk2a", keycus_c443_r, 64 },
+ { NULL, NULL }
+};
+
+static DRIVER_INIT( namcos11 )
+{
+ int n_game;
+ emu_timer *timer;
+
+ timer = timer_alloc( mcu_timer );
+ timer_adjust( timer, ATTOTIME_IN_HZ( 600 ), 0, ATTOTIME_IN_HZ( 600 ) );
+
+ psx_driver_init();
+ namcoc7x_on_driver_init();
+ namcoc7x_set_host_ram(namcos11_sharedram);
+
+ n_game = 0;
+ while( namcos11_config_table[ n_game ].s_name != NULL )
+ {
+ if( strcmp( machine->gamedrv->name, namcos11_config_table[ n_game ].s_name ) == 0 )
+ {
+ if( namcos11_config_table[ n_game ].keycus_r != NULL )
+ {
+ memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x1fa20000, 0x1fa2ffff, 0, 0, namcos11_config_table[ n_game ].keycus_r );
+ }
+ if( namcos11_config_table[ n_game ].n_daughterboard != 0 )
+ {
+ int n_bank;
+
+ m_n_bankoffset = 0;
+ for( n_bank = 0; n_bank < 8; n_bank++ )
+ {
+ m_p_n_bankoffset[ n_bank ] = 0;
+ }
+ bankswitch_update_all();
+
+ if( namcos11_config_table[ n_game ].n_daughterboard == 32 )
+ {
+ memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0x1fa10020, 0x1fa1002f, 0, 0, bankswitch_rom32_w );
+ }
+ if( namcos11_config_table[ n_game ].n_daughterboard == 64 )
+ {
+ memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0x1f080000, 0x1f080003, 0, 0, bankswitch_rom64_upper_w );
+ memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0x1fa10020, 0x1fa1002f, 0, 0, bankswitch_rom64_w );
+ memory_install_read32_handler(0, ADDRESS_SPACE_PROGRAM, 0x1fa10020, 0x1fa1002f, 0, 0, MRA32_NOP );
+ }
+ state_save_register_global( m_n_bankoffset );
+ state_save_register_global_array( m_p_n_bankoffset );
+ state_save_register_func_postload( bankswitch_update_all );
+ }
+ else
+ {
+ memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0x1fa10020, 0x1fa1002f, 0, 0, MWA32_NOP );
+ }
+ break;
+ }
+ n_game++;
+ }
+
+ if( strcmp( machine->gamedrv->name, "ptblnk2a" ) == 0 )
+ {
+ memory_install_write32_handler(0, ADDRESS_SPACE_PROGRAM, 0x1f788000, 0x1f788003, 0, 0, lightgun_w );
+ memory_install_read32_handler (0, ADDRESS_SPACE_PROGRAM, 0x1f780000, 0x1f78000f, 0, 0, lightgun_r );
+ }
+
+ state_save_register_global( m_n_oldcoin );
+}
+
+static MACHINE_RESET( namcos11 )
+{
+ memset( namcos11_keycus, 0, namcos11_keycus_size );
+ psx_machine_init();
+ bankswitch_update_all();
+}
+
+NAMCO_C7X_HARDWARE
+
+static MACHINE_DRIVER_START( coh100 )
+ /* basic machine hardware */
+ MDRV_CPU_ADD( PSXCPU, 33868800 / 2 ) /* 33MHz ?? */
+ MDRV_CPU_PROGRAM_MAP( namcos11_map, 0 )
+ MDRV_CPU_VBLANK_INT( namcos11_vblank, 1 )
+
+ MDRV_SCREEN_REFRESH_RATE( 60 )
+ MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION)
+
+ MDRV_MACHINE_RESET( namcos11 )
+ MDRV_NVRAM_HANDLER( at28c16_0 )
+
+ /* video hardware */
+ MDRV_VIDEO_ATTRIBUTES( VIDEO_TYPE_RASTER )
+ MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
+ MDRV_SCREEN_SIZE( 1024, 1024 )
+ MDRV_SCREEN_VISIBLE_AREA( 0, 639, 0, 479 )
+ MDRV_PALETTE_LENGTH( 65536 )
+
+ MDRV_PALETTE_INIT( psx )
+ MDRV_VIDEO_START( psx_type1 )
+ MDRV_VIDEO_UPDATE( psx )
+
+ NAMCO_C7X_MCU_SHARED(16384000)
+ NAMCO_C7X_SOUND(16384000)
+MACHINE_DRIVER_END
+
+static MACHINE_DRIVER_START( coh110 )
+ MDRV_IMPORT_FROM( coh100 )
+ MDRV_VIDEO_START( psx_type2 )
+MACHINE_DRIVER_END
+
+static INPUT_PORTS_START( namcos11 )
+ PORT_START_TAG( "SWITCH" )
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* read by pocket racer */
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE1 )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "Test Switch" ) PORT_CODE( KEYCODE_F2 )
+ PORT_DIPNAME( 0x02, 0x00, "DIP1 (Test)" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_DIPNAME( 0x01, 0x00, "DIP2 (Freeze)" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( On ) )
+
+ PORT_START_TAG( "PLAYER1" )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 )
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_START1 )
+
+ PORT_START_TAG( "PLAYER2" )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER( 2 )
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER( 2 )
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER( 2 )
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER( 2 )
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER( 2 )
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER( 2 )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER( 2 )
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_START2 )
+
+ PORT_START_TAG( "PLAYER3" )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER( 3 )
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER( 3 )
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER( 3 )
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER( 3 )
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER( 3 )
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER( 3 )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER( 3 )
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_START3 )
+
+ PORT_START_TAG( "PLAYER4" )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER( 4 )
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER( 4 )
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER( 4 )
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER( 4 )
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER( 4 )
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER( 4 )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER( 4 )
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_START4 )
+
+ PORT_START_TAG( "COIN" )
+ PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN1 )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN2 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN3 )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN4 )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( tekken )
+ PORT_INCLUDE( namcos11 )
+
+ PORT_MODIFY( "PLAYER1" )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_MODIFY( "PLAYER2" )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_MODIFY( "PLAYER3" )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON3 )
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON4 )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_MODIFY( "PLAYER4" )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER( 2 )
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER( 2 )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNUSED )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( souledge )
+ PORT_INCLUDE( namcos11 )
+
+ PORT_MODIFY( "PLAYER3" )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON4 )
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_MODIFY( "PLAYER4" )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER( 2 )
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNUSED )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( myangel3 )
+ PORT_INCLUDE( namcos11 )
+
+ PORT_MODIFY( "PLAYER1" )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON2 )
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_BUTTON3 )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_BUTTON4 )
+
+ PORT_MODIFY( "PLAYER2" )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER( 2 )
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER( 2 )
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER( 2 )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER( 2 )
+
+ PORT_MODIFY( "PLAYER3" )
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_MODIFY( "PLAYER4" )
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( ptblnk2a )
+ PORT_INCLUDE( namcos11 )
+
+ PORT_MODIFY( "PLAYER1" )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_MODIFY( "PLAYER2" )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_MODIFY( "PLAYER3" )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_MODIFY( "PLAYER4" )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START_TAG( "GUN1X" )
+ PORT_BIT( 0xffff, 0x022f, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX( 0xd8, 0x387 ) PORT_SENSITIVITY( 100 ) PORT_KEYDELTA( 15 ) PORT_PLAYER( 1 )
+
+ PORT_START_TAG( "GUN1Y" )
+ PORT_BIT( 0xffff, 0x00a8, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX( 0x2c, 0x11b ) PORT_SENSITIVITY( 50 ) PORT_KEYDELTA( 15 ) PORT_PLAYER( 1 )
+
+ PORT_START_TAG( "GUN2X" )
+ PORT_BIT( 0xffff, 0x022f, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX( 0xd8, 0x387 ) PORT_SENSITIVITY( 100 ) PORT_KEYDELTA( 15 ) PORT_PLAYER( 2 )
+
+ PORT_START_TAG( "GUN2Y" )
+ PORT_BIT( 0xffff, 0x00a8, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX( 0x2c, 0x11b ) PORT_SENSITIVITY( 50 ) PORT_KEYDELTA( 15 ) PORT_PLAYER( 2 )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( pocketrc )
+ PORT_INCLUDE( namcos11 )
+
+ PORT_MODIFY( "PLAYER1" )
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_MODIFY( "PLAYER2" )
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_MODIFY( "PLAYER3" )
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_MODIFY( "PLAYER4" )
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CODE( KEYCODE_A )
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+
+ PORT_MODIFY( "COIN" )
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START_TAG( "STEERING" )
+ PORT_BIT( 0xffff, 0x0000, IPT_PADDLE ) PORT_MINMAX( 0xff00, 0x00ff ) PORT_SENSITIVITY( 100 ) PORT_KEYDELTA( 3 ) PORT_CENTERDELTA( 128 ) PORT_PLAYER( 1 ) PORT_REVERSE
+
+ PORT_START_TAG( "GAS" )
+ PORT_BIT( 0x00ff, 0x0000, IPT_PEDAL ) PORT_MINMAX( 0x0000, 0x00ff ) PORT_SENSITIVITY( 100 ) PORT_KEYDELTA( 15 ) PORT_PLAYER( 1 ) PORT_REVERSE
+INPUT_PORTS_END
+
+ROM_START( danceyes )
+ ROM_REGION32_LE( 0x0400000, REGION_USER1, 0 ) /* main prg */
+ ROM_LOAD16_BYTE( "dc1vera.2l", 0x0000000, 0x100000, CRC(b164ad67) SHA1(62a7f9bc7fb9c218e5031598512dbd1e013283b3) )
+ ROM_LOAD16_BYTE( "dc1vera.2j", 0x0000001, 0x100000, CRC(28e4cb3d) SHA1(17923c66725da1f8e77b7c08d8017160bba53eb9) )
+ ROM_LOAD16_BYTE( "dc1vera.2k", 0x0200000, 0x100000, CRC(bdd9484e) SHA1(2f85e0ac4b12b2cf4c9717fad745d2d68c27d39a) )
+ ROM_LOAD16_BYTE( "dc1vera.2f", 0x0200001, 0x100000, CRC(25a2f06f) SHA1(400806a262681cf908ac16e039686b5a0d5fd58e) )
+
+ ROM_REGION32_LE( 0x1000000, REGION_USER2, 0 ) /* main data */
+ ROM_LOAD16_BYTE( "dc1rom0l.ic5", 0x0000000, 0x200000, CRC(8b5b4b13) SHA1(9681e29ad95a2cc555d0fbb558a0865a87a77268) )
+ ROM_LOAD16_BYTE( "dc1rom0u.ic6", 0x0000001, 0x200000, CRC(93ca9bd0) SHA1(c7d2ecbeb451bd57097fb39f21dc347b86a2b838) )
+ ROM_LOAD16_BYTE( "dc1rom1l.ic3", 0x0400000, 0x200000, CRC(380e0282) SHA1(33389e3b15b93fb939991b8d7dc8b182ba88e78a) )
+ ROM_LOAD16_BYTE( "dc1rom1u.ic8", 0x0400001, 0x200000, CRC(47d966a7) SHA1(3b6f004136bd9d75dbef846f417ca34a56893d61) )
+ ROM_LOAD16_BYTE( "dc1rom2l.ic4", 0x0800000, 0x200000, CRC(8f130220) SHA1(7f086d502178c27511c1142254381a9a2a999e8d) )
+ ROM_LOAD16_BYTE( "dc1rom2u.ic7", 0x0800001, 0x200000, CRC(24514dc6) SHA1(f9f7d6a45cbd51513cc038f6321a30c1a72b7a58) )
+ ROM_LOAD16_BYTE( "dc1rom3l.ic1", 0x0c00000, 0x200000, CRC(a76bcd4c) SHA1(817abdc43158b7aaac329c3ea17782277acb36a4) )
+ ROM_LOAD16_BYTE( "dc1rom3u.ic9", 0x0c00001, 0x200000, CRC(1405d123) SHA1(3d7be5558358740f5a0a3a3022543cf5aca4cf24) )
+
+ ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */
+ ROM_LOAD( "dc1sprog.6d", 0x0000000, 0x040000, CRC(96cd7788) SHA1(68a5a53a5fc50e2b6b684c99d27d81e3a8c56287) )
+ NAMCO_C7X_BIOS
+
+ ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* samples */
+ ROM_LOAD( "dc1wave.8k", 0x000000, 0x400000, CRC(8ba0f6a7) SHA1(e9868debd808e92b196d1baeeeae9c4855356a01) )
+ ROM_RELOAD( 0x800000, 0x400000 )
+ROM_END
+
+ROM_START( dunkmnia )
+ ROM_REGION32_LE( 0x0400000, REGION_USER1, 0 ) /* main prg */
+ ROM_LOAD16_BYTE( "dm2verc.2l", 0x0000000, 0x100000, CRC(f6a6c46e) SHA1(5552c3a8fb0ef18e6f0bca8d81ec68b904824a66) )
+ ROM_LOAD16_BYTE( "dm2verc.2j", 0x0000001, 0x100000, CRC(1df539ce) SHA1(89ac436c685cf26899168c73fdaccee778fd7d2d) )
+ ROM_LOAD16_BYTE( "dm1verc.2k", 0x0200000, 0x100000, CRC(c8d72f78) SHA1(30341301f0d1cdcb14f3e0672ec1165c0583fbc8) )
+ ROM_LOAD16_BYTE( "dm1verc.2f", 0x0200001, 0x100000, CRC(d379dfa9) SHA1(142cb70b5ea060c961c5bc60a624643b5ec390df) )
+
+ ROM_REGION32_LE( 0x1000000, REGION_USER2, 0 ) /* main data */
+ ROM_LOAD16_BYTE( "dm1rom0l.ic5", 0x0000000, 0x200000, CRC(4bb5d71d) SHA1(7d61211c7a6d1f6593604390fe99206a6a8cc7b3) )
+ ROM_CONTINUE( 0x0000000, 0x200000 ) /* first & second half identical */
+ ROM_LOAD16_BYTE( "dm1rom0u.ic6", 0x0000001, 0x200000, CRC(c16b47c5) SHA1(0fb2c5bc4674b3366762127c6333fb3a837b4de2) )
+ ROM_CONTINUE( 0x0000001, 0x200000 ) /* first & second half identical */
+ ROM_LOAD16_BYTE( "dm1rom1l.ic3", 0x0400000, 0x200000, CRC(20dd3294) SHA1(b2fd5075b6281ac7bfc2681fc282f9ebaa089af5) )
+ ROM_CONTINUE( 0x0400000, 0x200000 ) /* first & second half identical */
+ ROM_LOAD16_BYTE( "dm1rom1u.ic8", 0x0400001, 0x200000, CRC(01e905d3) SHA1(430b2ae0c67265b6acc8aa4dd50f6144929993f8) )
+ ROM_CONTINUE( 0x0400001, 0x200000 ) /* first & second half identical */
+
+ ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */
+ ROM_LOAD( "dm1sprog.6d", 0x0000000, 0x040000, CRC(de1cbc78) SHA1(855ebece1841f50ae324d7d6b8b18ab6f657d28e) )
+ NAMCO_C7X_BIOS
+
+ ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* samples */
+ ROM_LOAD( "dm1wave.8k", 0x000000, 0x400000, CRC(4891d53e) SHA1(a1fee060e94d3219174b5974517f4fd3be32aaa5) )
+ ROM_RELOAD( 0x800000, 0x400000 )
+ROM_END
+
+ROM_START( dunkmnic )
+ ROM_REGION32_LE( 0x0400000, REGION_USER1, 0 ) /* main prg */
+ ROM_LOAD16_BYTE( "dm1verc.2l", 0x0000000, 0x100000, CRC(6c81654a) SHA1(00e84cc41b3dd49a8f0d3a364ea4a5d2662c45ff) )
+ ROM_LOAD16_BYTE( "dm1verc.2j", 0x0000001, 0x100000, CRC(10329b7e) SHA1(d214764e90c7d79abea01580e79092e34a58b695) )
+ ROM_LOAD16_BYTE( "dm1verc.2k", 0x0200000, 0x100000, CRC(c8d72f78) SHA1(30341301f0d1cdcb14f3e0672ec1165c0583fbc8) )
+ ROM_LOAD16_BYTE( "dm1verc.2f", 0x0200001, 0x100000, CRC(d379dfa9) SHA1(142cb70b5ea060c961c5bc60a624643b5ec390df) )
+
+ ROM_REGION32_LE( 0x1000000, REGION_USER2, 0 ) /* main data */
+ ROM_LOAD16_BYTE( "dm1rom0l.ic5", 0x0000000, 0x200000, CRC(4bb5d71d) SHA1(7d61211c7a6d1f6593604390fe99206a6a8cc7b3) )
+ ROM_CONTINUE( 0x0000000, 0x200000 ) /* first & second half identical */
+ ROM_LOAD16_BYTE( "dm1rom0u.ic6", 0x0000001, 0x200000, CRC(c16b47c5) SHA1(0fb2c5bc4674b3366762127c6333fb3a837b4de2) )
+ ROM_CONTINUE( 0x0000001, 0x200000 ) /* first & second half identical */
+ ROM_LOAD16_BYTE( "dm1rom1l.ic3", 0x0400000, 0x200000, CRC(20dd3294) SHA1(b2fd5075b6281ac7bfc2681fc282f9ebaa089af5) )
+ ROM_CONTINUE( 0x0400000, 0x200000 ) /* first & second half identical */
+ ROM_LOAD16_BYTE( "dm1rom1u.ic8", 0x0400001, 0x200000, CRC(01e905d3) SHA1(430b2ae0c67265b6acc8aa4dd50f6144929993f8) )
+ ROM_CONTINUE( 0x0400001, 0x200000 ) /* first & second half identical */
+
+ ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */
+ ROM_LOAD( "dm1sprog.6d", 0x0000000, 0x040000, CRC(de1cbc78) SHA1(855ebece1841f50ae324d7d6b8b18ab6f657d28e) )
+ NAMCO_C7X_BIOS
+
+ ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* samples */
+ ROM_LOAD( "dm1wave.8k", 0x800000, 0x400000, CRC(4891d53e) SHA1(a1fee060e94d3219174b5974517f4fd3be32aaa5) )
+ROM_END
+
+ROM_START( myangel3 )
+ ROM_REGION32_LE( 0x0400000, REGION_USER1, 0 ) /* main prg */
+ ROM_LOAD( "kqt1vera.1j", 0x0000000, 0x200000, CRC(df7aef8a) SHA1(d4ff144bcdecc1d4a3b834d0b9c182609ad9b260) )
+ ROM_LOAD( "kqt1vera.1l", 0x0200000, 0x200000, CRC(ffc51c01) SHA1(bba2c2c1ad31039c7dc7413e51e7fc317451e1e3) )
+
+ ROM_REGION32_LE( 0x2000000, REGION_USER2, 0 ) /* main data */
+ ROM_LOAD16_BYTE( "kqt1prg0l.ic2", 0x0000000, 0x800000, CRC(d67eee66) SHA1(1842e987ae406ac2cf4c173aaaa73b5f67f4fd3d) )
+ ROM_LOAD16_BYTE( "kqt1prg0u.ic5", 0x0000001, 0x800000, CRC(4d1c7bf3) SHA1(6bf9712264a82920f7898896643d05a6b425e74a) )
+ ROM_LOAD16_BYTE( "kqt1prg1l.ic3", 0x1000000, 0x800000, CRC(298d8eeb) SHA1(c421b1bdd5fd46c026a41e2cec47cafd1a69d33d) )
+ ROM_LOAD16_BYTE( "kqt1prg1u.ic6", 0x1000001, 0x800000, CRC(911783db) SHA1(1005fc9b38e212844e397150a6f98f43ad88d4b9) )
+
+ ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */
+ ROM_LOAD( "kqt1sprog.7e", 0x0000000, 0x040000, CRC(bb1888a6) SHA1(4db07738079725413cdba7eb75252ee71ae50a66) )
+ NAMCO_C7X_BIOS
+
+ ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* samples */
+ ROM_LOAD( "kqt1wave.8k", 0x000000, 0x400000, CRC(92ca8e4f) SHA1(48d6bdfcc5de1c280afa36c3f0dd6d4177771355) )
+ ROM_RELOAD( 0x800000, 0x400000 )
+ROM_END
+
+ROM_START( pocketrc )
+ ROM_REGION32_LE( 0x0400000, REGION_USER1, 0 ) /* main prg */
+ ROM_LOAD16_BYTE( "pkr1verb.2l", 0x000000, 0x100000, CRC(300d906a) SHA1(f521858f78284d69e6a6ec2c35a468c87dd0628c) )
+ ROM_LOAD16_BYTE( "pkr1verb.2j", 0x000001, 0x100000, CRC(d5f47526) SHA1(b1d5b6f714510d0cfcc9b32708287755f9f27ead) )
+
+ ROM_REGION32_LE( 0x1000000, REGION_USER2, 0 ) /* main data */
+ ROM_LOAD16_BYTE( "pkr1rom0l.ic5", 0x000000, 0x200000, CRC(6c9b074c) SHA1(885f342bd178e4146e1f75259206f6625c0b3c18) )
+ ROM_LOAD16_BYTE( "pkr1rom0u.ic6", 0x000001, 0x200000, CRC(a55c0906) SHA1(3b6abfa877f88a4d96222d98af02498b0c777af6) )
+
+ ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */
+ ROM_LOAD( "pkr1verb.6d", 0x000000, 0x040000, CRC(9bf08992) SHA1(fca7943f7bcf0ee758fa63fbdef8f7456b9e46cb) )
+ NAMCO_C7X_BIOS
+
+ ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* samples */
+ ROM_LOAD( "pkr1wave.8k", 0x000000, 0x400000, CRC(72517c46) SHA1(d0dcc750fe8eca9e965e7c366ac39a42ffd76557) )
+ ROM_RELOAD( 0x800000, 0x400000 )
+ROM_END
+
+ROM_START( primglex )
+ ROM_REGION32_LE( 0x0400000, REGION_USER1, 0 ) /* main prg */
+ ROM_LOAD16_BYTE( "pg1vera.2l", 0x0000000, 0x100000, CRC(fc15fd1a) SHA1(6ca5ebdc096cab3296dc7c1f675d78dfc7c69a05) )
+ ROM_LOAD16_BYTE( "pg1vera.2j", 0x0000001, 0x100000, CRC(79955553) SHA1(ad2dca38b06a835f8241fae0a5fa18d5874cebe4) )
+
+ ROM_REGION32_LE( 0x1000000, REGION_USER2, 0 ) /* main data */
+ ROM_LOAD16_BYTE( "pg1rom0u.ic5", 0x0000000, 0x200000, CRC(2a503f2f) SHA1(206b9c9204be22241d2a3e017b96c3a103f5a976) )
+ ROM_CONTINUE( 0x0000000, 0x200000 ) /* first & second half identical */
+ ROM_LOAD16_BYTE( "pg1rom0l.ic6", 0x0000001, 0x200000, CRC(54cef992) SHA1(5ba81353b1dddc1c6640fc4c15df81535e7a6ae8) )
+ ROM_CONTINUE( 0x0000001, 0x200000 ) /* first & second half identical */
+ ROM_LOAD16_BYTE( "pg1rom1u.ic3", 0x0400000, 0x200000, CRC(1ee41152) SHA1(d240e6ba820aa2aa4f12380c255f624f91aed564) )
+ ROM_CONTINUE( 0x0400000, 0x200000 ) /* first & second half identical */
+ ROM_LOAD16_BYTE( "pg1rom1l.ic8", 0x0400001, 0x200000, CRC(59b5a71c) SHA1(ddc1f0a5488466166c21fd0c84ab2b4cf04316bf) )
+ ROM_CONTINUE( 0x0400001, 0x200000 ) /* first & second half identical */
+
+ ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */
+ ROM_LOAD( "pg1sprog.6d", 0x0000000, 0x040000, CRC(e7c3396d) SHA1(12bbb8ebcaab1b40462a12917dd9b58bd9ab8663) )
+ NAMCO_C7X_BIOS
+
+ ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* samples */
+ ROM_LOAD( "pg1wave.8k", 0x0000000, 0x400000, CRC(fc9ad9eb) SHA1(ce5bb2288ed8cf1348825c39423cbb99d9324b9c) )
+ ROM_RELOAD( 0x800000, 0x400000 )
+ROM_END
+
+ROM_START( ptblnk2a )
+ ROM_REGION32_LE( 0x0400000, REGION_USER1, 0 ) /* main prg */
+ ROM_LOAD16_BYTE( "gnb3vera.2l", 0x0000000, 0x100000, CRC(57ad719a) SHA1(f22a02d33c7c23cccffb8ce2e3aca26b07ecac0a) )
+ ROM_LOAD16_BYTE( "gnb3vera.2j", 0x0000001, 0x100000, CRC(0378af98) SHA1(601444b5a0935a4b69b5ada618aaf1bc6bb12a3b) )
+ ROM_LOAD16_BYTE( "gnb3vera.2k", 0x0200000, 0x100000, CRC(e6335e4e) SHA1(9067f05d848c1c8a88967a3c6552d2d24e80672b) )
+ ROM_LOAD16_BYTE( "gnb3vera.2f", 0x0200001, 0x100000, CRC(2bb7eb6d) SHA1(d1b1e031a28443140ac8652dfd77a65a042b67fc) )
+
+ ROM_REGION32_LE( 0x1000000, REGION_USER2, 0 ) /* main data */
+ ROM_LOAD16_BYTE( "gnb1prg0l.ic2", 0x000000, 0x800000, CRC(78746037) SHA1(d130ca1153a730e3c967945248f00662f9fab304) )
+ ROM_LOAD16_BYTE( "gnb1prg0u.ic5", 0x000001, 0x800000, CRC(697d3279) SHA1(40302780f7494d9413888b2d1da38bd14a9a444f) )
+
+ ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */
+ ROM_LOAD( "gnb1vera.6d", 0x0000000, 0x040000, CRC(6461ae77) SHA1(1377b716a69ef9d4d2e48083d23f22bd5c103c00) )
+ NAMCO_C7X_BIOS
+
+ ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* samples */
+ ROM_LOAD( "gnb1wave.8k", 0x0000000, 0x400000, CRC(4e19d9d6) SHA1(0a92c987536999a789663a30c787950ab6995128) )
+ ROM_RELOAD( 0x800000, 0x400000 )
+ROM_END
+
+ROM_START( souledge )
+ ROM_REGION32_LE( 0x0400000, REGION_USER1, 0 ) /* main prg */
+ ROM_LOAD16_BYTE( "so4verc.2l", 0x0000000, 0x100000, CRC(12b8ae0d) SHA1(31571023d5b77ebcd4103b8cac5ba710a3d570a0) )
+ ROM_LOAD16_BYTE( "so4verc.2j", 0x0000001, 0x100000, CRC(938262b0) SHA1(e806883e32c473a3c2bb07849126631f6d66fa66) )
+ ROM_LOAD16_BYTE( "so1verc.2k", 0x0200000, 0x100000, CRC(1789e399) SHA1(2e11869124cdfa7a66107b0e642bdc72ee0c306a) )
+ ROM_LOAD16_BYTE( "so1verc.2f", 0x0200001, 0x100000, CRC(8cffe1c3) SHA1(d54a0b1d55f33db2890bfa70c411cca3e446fccf) )
+
+ ROM_REGION32_LE( 0x1000000, REGION_USER2, 0 ) /* main data */
+ ROM_LOAD16_BYTE( "so1rom0u.ic5", 0x0000000, 0x200000, CRC(e364d673) SHA1(70fd58fb912939c57e3a5fadd01c1467df08d4ac) )
+ ROM_LOAD16_BYTE( "so1rom0l.ic6", 0x0000001, 0x200000, CRC(9c5b0858) SHA1(f3ac726f1167551beea7edc46e43b826b7baaf62) )
+ ROM_LOAD16_BYTE( "so1rom1u.ic3", 0x0400000, 0x200000, CRC(8f9d8c5b) SHA1(ac1da70854eee344a645749f564366ceac571767) )
+ ROM_LOAD16_BYTE( "so1rom1l.ic8", 0x0400001, 0x200000, CRC(4406ef16) SHA1(c86f199fdb1db23e5944ca51e6518b9cd0dafb71) )
+ ROM_LOAD16_BYTE( "so1rom2u.ic4", 0x0800000, 0x200000, CRC(b4baa886) SHA1(0432692a4d71a3f1b47707efb6858927744940e4) )
+ ROM_LOAD16_BYTE( "so1rom2l.ic7", 0x0800001, 0x200000, CRC(37c1f66e) SHA1(13a8a73fce142ea5ebe3f0c1050e44a027ab42a6) )
+ ROM_LOAD16_BYTE( "so1rom3u.ic1", 0x0c00000, 0x200000, CRC(f11bd521) SHA1(baf936dec58cebfeef1c74f95e455b2fe74eb982) )
+ ROM_LOAD16_BYTE( "so1rom3l.ic9", 0x0c00001, 0x200000, CRC(84465bcc) SHA1(d8be888d41cfe194c3a1853d9146d3a74ef7bab1) )
+
+ ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */
+ ROM_LOAD( "so1sprogc.6d", 0x0000000, 0x040000, CRC(2bbc118c) SHA1(4168a9aa525f1f0ce6cf6e14cfe4c118c4c0d773) )
+ NAMCO_C7X_BIOS
+
+ ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* samples */
+ ROM_LOAD( "so1wave.8k", 0x000000, 0x400000, CRC(0e68836b) SHA1(c392b370a807803c7ab060105861253e1b407f49) )
+ ROM_RELOAD( 0x800000, 0x400000 )
+ROM_END
+
+ROM_START( souledga )
+ ROM_REGION32_LE( 0x0400000, REGION_USER1, 0 ) /* main prg */
+ ROM_LOAD16_BYTE( "so3verc.2l", 0x0000000, 0x100000, CRC(c90e343b) SHA1(83bd2fc67493c34b408b13148f6a2feba9a44ed0) )
+ ROM_LOAD16_BYTE( "so3verc.2j", 0x0000001, 0x100000, CRC(b7466db5) SHA1(c7a4c66e61812fb6de582fe555755293d78771c7) )
+ ROM_LOAD16_BYTE( "so1verc.2k", 0x0200000, 0x100000, CRC(1789e399) SHA1(2e11869124cdfa7a66107b0e642bdc72ee0c306a) )
+ ROM_LOAD16_BYTE( "so1verc.2f", 0x0200001, 0x100000, CRC(8cffe1c3) SHA1(d54a0b1d55f33db2890bfa70c411cca3e446fccf) )
+
+ ROM_REGION32_LE( 0x1000000, REGION_USER2, 0 ) /* main data */
+ ROM_LOAD16_BYTE( "so1rom0u.ic5", 0x0000000, 0x200000, CRC(e364d673) SHA1(70fd58fb912939c57e3a5fadd01c1467df08d4ac) )
+ ROM_LOAD16_BYTE( "so1rom0l.ic6", 0x0000001, 0x200000, CRC(9c5b0858) SHA1(f3ac726f1167551beea7edc46e43b826b7baaf62) )
+ ROM_LOAD16_BYTE( "so1rom1u.ic3", 0x0400000, 0x200000, CRC(8f9d8c5b) SHA1(ac1da70854eee344a645749f564366ceac571767) )
+ ROM_LOAD16_BYTE( "so1rom1l.ic8", 0x0400001, 0x200000, CRC(4406ef16) SHA1(c86f199fdb1db23e5944ca51e6518b9cd0dafb71) )
+ ROM_LOAD16_BYTE( "so1rom2u.ic4", 0x0800000, 0x200000, CRC(b4baa886) SHA1(0432692a4d71a3f1b47707efb6858927744940e4) )
+ ROM_LOAD16_BYTE( "so1rom2l.ic7", 0x0800001, 0x200000, CRC(37c1f66e) SHA1(13a8a73fce142ea5ebe3f0c1050e44a027ab42a6) )
+ ROM_LOAD16_BYTE( "so1rom3u.ic1", 0x0c00000, 0x200000, CRC(f11bd521) SHA1(baf936dec58cebfeef1c74f95e455b2fe74eb982) )
+ ROM_LOAD16_BYTE( "so1rom3l.ic9", 0x0c00001, 0x200000, CRC(84465bcc) SHA1(d8be888d41cfe194c3a1853d9146d3a74ef7bab1) )
+
+ ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */
+ ROM_LOAD( "so1sprogc.6d", 0x0000000, 0x040000, CRC(2bbc118c) SHA1(4168a9aa525f1f0ce6cf6e14cfe4c118c4c0d773) )
+ NAMCO_C7X_BIOS
+
+ ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* samples */
+ ROM_LOAD( "so1wave.8k", 0x000000, 0x400000, CRC(0e68836b) SHA1(c392b370a807803c7ab060105861253e1b407f49) )
+ ROM_RELOAD( 0x800000, 0x400000 )
+ROM_END
+
+ROM_START( souledgb )
+ ROM_REGION32_LE( 0x0400000, REGION_USER1, 0 ) /* main prg */
+ ROM_LOAD16_BYTE( "so3vera.2l", 0x0000000, 0x100000, CRC(19b39096) SHA1(9188cd1fd9b15e5545eb41ea2768a8bd42113379) )
+ ROM_LOAD16_BYTE( "so3vera.2j", 0x0000001, 0x100000, CRC(09eda46f) SHA1(24d04d2ba51af508ddc0656e8bb5e1335b08cc8a) )
+ ROM_LOAD16_BYTE( "so1vera.2k", 0x0200000, 0x100000, CRC(29bdc6bb) SHA1(9047792c1a21a0001024939f1c6a8c3d86948973) )
+ ROM_LOAD16_BYTE( "so1vera.2f", 0x0200001, 0x100000, CRC(c035b71b) SHA1(38719a75193774b124d845460c0c03d36849719d) )
+
+ ROM_REGION32_LE( 0x1000000, REGION_USER2, 0 ) /* main data */
+ ROM_LOAD16_BYTE( "so1rom0u.ic5", 0x0000000, 0x200000, CRC(e364d673) SHA1(70fd58fb912939c57e3a5fadd01c1467df08d4ac) )
+ ROM_LOAD16_BYTE( "so1rom0l.ic6", 0x0000001, 0x200000, CRC(9c5b0858) SHA1(f3ac726f1167551beea7edc46e43b826b7baaf62) )
+ ROM_LOAD16_BYTE( "so1rom1u.ic3", 0x0400000, 0x200000, CRC(8f9d8c5b) SHA1(ac1da70854eee344a645749f564366ceac571767) )
+ ROM_LOAD16_BYTE( "so1rom1l.ic8", 0x0400001, 0x200000, CRC(4406ef16) SHA1(c86f199fdb1db23e5944ca51e6518b9cd0dafb71) )
+ ROM_LOAD16_BYTE( "so1rom2u.ic4", 0x0800000, 0x200000, CRC(b4baa886) SHA1(0432692a4d71a3f1b47707efb6858927744940e4) )
+ ROM_LOAD16_BYTE( "so1rom2l.ic7", 0x0800001, 0x200000, CRC(37c1f66e) SHA1(13a8a73fce142ea5ebe3f0c1050e44a027ab42a6) )
+ ROM_LOAD16_BYTE( "so1rom3u.ic1", 0x0c00000, 0x200000, CRC(f11bd521) SHA1(baf936dec58cebfeef1c74f95e455b2fe74eb982) )
+ ROM_LOAD16_BYTE( "so1rom3l.ic9", 0x0c00001, 0x200000, CRC(84465bcc) SHA1(d8be888d41cfe194c3a1853d9146d3a74ef7bab1) )
+
+ ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */
+ ROM_LOAD( "so1sprog.6d", 0x0000000, 0x040000, CRC(f6f682b7) SHA1(a64e19be3f6e630b8c34f34b46b95aadfabd3f63) )
+ NAMCO_C7X_BIOS
+
+ ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* samples */
+ ROM_LOAD( "so1wave.8k", 0x800000, 0x400000, CRC(0e68836b) SHA1(c392b370a807803c7ab060105861253e1b407f49) )
+ROM_END
+
+ROM_START( souledgc )
+ ROM_REGION32_LE( 0x0400000, REGION_USER1, 0 ) /* main prg */
+ ROM_LOAD16_BYTE( "so1vera.2l", 0x0000000, 0x100000, CRC(bafb94c8) SHA1(92461ce74a537a9801a024280e18fc3d0a5e6e5c) )
+ ROM_LOAD16_BYTE( "so1vera.2j", 0x0000001, 0x100000, CRC(abe2d28e) SHA1(e9d858c8f8651b04bc72eb6de423da4925e94250) )
+ ROM_LOAD16_BYTE( "so1vera.2k", 0x0200000, 0x100000, CRC(29bdc6bb) SHA1(9047792c1a21a0001024939f1c6a8c3d86948973) )
+ ROM_LOAD16_BYTE( "so1vera.2f", 0x0200001, 0x100000, CRC(c035b71b) SHA1(38719a75193774b124d845460c0c03d36849719d) )
+
+ ROM_REGION32_LE( 0x1000000, REGION_USER2, 0 ) /* main data */
+ ROM_LOAD16_BYTE( "so1rom0u.ic5", 0x0000000, 0x200000, CRC(e364d673) SHA1(70fd58fb912939c57e3a5fadd01c1467df08d4ac) )
+ ROM_LOAD16_BYTE( "so1rom0l.ic6", 0x0000001, 0x200000, CRC(9c5b0858) SHA1(f3ac726f1167551beea7edc46e43b826b7baaf62) )
+ ROM_LOAD16_BYTE( "so1rom1u.ic3", 0x0400000, 0x200000, CRC(8f9d8c5b) SHA1(ac1da70854eee344a645749f564366ceac571767) )
+ ROM_LOAD16_BYTE( "so1rom1l.ic8", 0x0400001, 0x200000, CRC(4406ef16) SHA1(c86f199fdb1db23e5944ca51e6518b9cd0dafb71) )
+ ROM_LOAD16_BYTE( "so1rom2u.ic4", 0x0800000, 0x200000, CRC(b4baa886) SHA1(0432692a4d71a3f1b47707efb6858927744940e4) )
+ ROM_LOAD16_BYTE( "so1rom2l.ic7", 0x0800001, 0x200000, CRC(37c1f66e) SHA1(13a8a73fce142ea5ebe3f0c1050e44a027ab42a6) )
+ ROM_LOAD16_BYTE( "so1rom3u.ic1", 0x0c00000, 0x200000, CRC(f11bd521) SHA1(baf936dec58cebfeef1c74f95e455b2fe74eb982) )
+ ROM_LOAD16_BYTE( "so1rom3l.ic9", 0x0c00001, 0x200000, CRC(84465bcc) SHA1(d8be888d41cfe194c3a1853d9146d3a74ef7bab1) )
+
+ ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */
+ ROM_LOAD( "so1sprog.6d", 0x0000000, 0x040000, CRC(f6f682b7) SHA1(a64e19be3f6e630b8c34f34b46b95aadfabd3f63) )
+ NAMCO_C7X_BIOS
+
+ ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* samples */
+ ROM_LOAD( "so1wave.8k", 0x000000, 0x400000, CRC(0e68836b) SHA1(c392b370a807803c7ab060105861253e1b407f49) )
+ ROM_RELOAD( 0x800000, 0x400000 )
+ROM_END
+
+ROM_START( starswep )
+ ROM_REGION32_LE( 0x0400000, REGION_USER1, 0 ) /* main prg */
+ ROM_LOAD( "stp1vera.1j", 0x0000000, 0x200000, CRC(ef83e126) SHA1(f721b43358cedad0f28af5d2b292b44043fd47a0) )
+ ROM_LOAD( "stp1vera.1l", 0x0200000, 0x200000, CRC(0ee7fe1e) SHA1(8c2f5b0e7b49dbe0e8105bf55c493acd46a4f59d) )
+
+ ROM_REGION32_LE( 0x0100000, REGION_USER2, ROMREGION_ERASE00 ) /* main data */
+
+ ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */
+ ROM_LOAD( "stp1sprog.7e", 0x0000000, 0x040000, CRC(08aaaf6a) SHA1(51c913a39ff7c154aef8bb10139cc8b92eb4756a) )
+ NAMCO_C7X_BIOS
+
+ ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* samples */
+ ROM_LOAD( "stp1wave.8k", 0x000000, 0x400000, CRC(18f30e92) SHA1(b3819455856298527a7224495f541145aecf23dd) )
+ ROM_RELOAD( 0x800000, 0x400000 )
+ROM_END
+
+ROM_START( tekken )
+ ROM_REGION32_LE( 0x0400000, REGION_USER1, 0 ) /* main prg */
+ ROM_LOAD16_BYTE( "te4verc.2l", 0x0000000, 0x100000, CRC(7ecb7892) SHA1(7837f2b3dbfc6b4a153ea652e8a3fd89c4daa26e) )
+ ROM_LOAD16_BYTE( "te4verc.2j", 0x0000001, 0x100000, CRC(eea3365d) SHA1(d13df90833aac48f9d9d20cddefb81f90ebab249) )
+ ROM_LOAD16_BYTE( "te1verb.2k", 0x0200000, 0x100000, CRC(b9860b29) SHA1(678889fc5c70bf66f0bd9864a20636ffb620ed0d) )
+ ROM_LOAD16_BYTE( "te1verb.2f", 0x0200001, 0x100000, CRC(3dc01aad) SHA1(266f346fa575c42b635bc469798f5aade9821e20) )
+
+ ROM_REGION32_LE( 0x1000000, REGION_USER2, 0 ) /* main data */
+ ROM_LOAD16_BYTE( "te1rom0l.ic5", 0x0000000, 0x200000, CRC(03786e09) SHA1(de2b9e19ace43c424d100dc5d3207217f66d6479) )
+ ROM_LOAD16_BYTE( "te1rom0u.ic6", 0x0000001, 0x200000, CRC(75d91051) SHA1(1c7958162315576c3881dcc684b85710f7f19cd6) )
+ ROM_LOAD16_BYTE( "te1rom1l.ic3", 0x0400000, 0x200000, CRC(81416f8e) SHA1(b42ff08ee84491c57a7c87bb767db7e2ec7a26c2) )
+ ROM_LOAD16_BYTE( "te1rom1u.ic8", 0x0400001, 0x200000, CRC(fa7ba433) SHA1(e222c4b1631c09e58546446a1e82c16fca936f1d) )
+ ROM_LOAD16_BYTE( "te1rom2l.ic4", 0x0800000, 0x200000, CRC(41d77846) SHA1(eeab049135c02a255899fe37e225c1111b2fbb7d) )
+ ROM_LOAD16_BYTE( "te1rom2u.ic7", 0x0800001, 0x200000, CRC(a678987e) SHA1(c62c00ce5cf4d001723c999b2bc3dbb90283def1) )
+
+ ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */
+ ROM_LOAD( "te1sprog.6d", 0x0000000, 0x040000, CRC(849587e9) SHA1(94c6a757b24758a866a41bd8acd46aa46844f74b) )
+ NAMCO_C7X_BIOS
+
+ ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* samples */
+ ROM_LOAD( "te1wave.8k", 0x0000000, 0x200000, CRC(fce6c57a) SHA1(7fb8c69452c92c59a940a2b69d0d73ef7aefcb82) )
+ROM_END
+
+ROM_START( tekkena )
+ ROM_REGION32_LE( 0x0400000, REGION_USER1, 0 ) /* main prg */
+ ROM_LOAD16_BYTE( "te2verc.2l", 0x0000000, 0x100000, CRC(a24c8c57) SHA1(bf69f17310201e38aa17fb4484cdb480f26d876e) )
+ ROM_LOAD16_BYTE( "te2verc.2j", 0x0000001, 0x100000, CRC(3224c298) SHA1(8afe80af0eef52f96bf2ddb2482b06692a8f047d) )
+ ROM_LOAD16_BYTE( "te1verb.2k", 0x0200000, 0x100000, CRC(b9860b29) SHA1(678889fc5c70bf66f0bd9864a20636ffb620ed0d) )
+ ROM_LOAD16_BYTE( "te1verb.2f", 0x0200001, 0x100000, CRC(3dc01aad) SHA1(266f346fa575c42b635bc469798f5aade9821e20) )
+
+ ROM_REGION32_LE( 0x1000000, REGION_USER2, 0 ) /* main data */
+ ROM_LOAD16_BYTE( "te1rom0l.ic5", 0x0000000, 0x200000, CRC(03786e09) SHA1(de2b9e19ace43c424d100dc5d3207217f66d6479) )
+ ROM_LOAD16_BYTE( "te1rom0u.ic6", 0x0000001, 0x200000, CRC(75d91051) SHA1(1c7958162315576c3881dcc684b85710f7f19cd6) )
+ ROM_LOAD16_BYTE( "te1rom1l.ic3", 0x0400000, 0x200000, CRC(81416f8e) SHA1(b42ff08ee84491c57a7c87bb767db7e2ec7a26c2) )
+ ROM_LOAD16_BYTE( "te1rom1u.ic8", 0x0400001, 0x200000, CRC(fa7ba433) SHA1(e222c4b1631c09e58546446a1e82c16fca936f1d) )
+ ROM_LOAD16_BYTE( "te1rom2l.ic4", 0x0800000, 0x200000, CRC(41d77846) SHA1(eeab049135c02a255899fe37e225c1111b2fbb7d) )
+ ROM_LOAD16_BYTE( "te1rom2u.ic7", 0x0800001, 0x200000, CRC(a678987e) SHA1(c62c00ce5cf4d001723c999b2bc3dbb90283def1) )
+
+ ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */
+ ROM_LOAD( "te1sprog.6d", 0x0000000, 0x040000, CRC(849587e9) SHA1(94c6a757b24758a866a41bd8acd46aa46844f74b) )
+ NAMCO_C7X_BIOS
+
+ ROM_REGION( 0x0200000, REGION_SOUND1, 0 ) /* samples */
+ ROM_LOAD( "te1wave.8k", 0x0000000, 0x200000, CRC(fce6c57a) SHA1(7fb8c69452c92c59a940a2b69d0d73ef7aefcb82) )
+ROM_END
+
+ROM_START( tekkenb )
+ ROM_REGION32_LE( 0x0400000, REGION_USER1, 0 ) /* main prg */
+ ROM_LOAD16_BYTE( "te2verb.2l", 0x0000000, 0x100000, CRC(246cfbdd) SHA1(c1bffe3c463e9eff6dcaf9937da72bff8ff33e4e) )
+ ROM_LOAD16_BYTE( "te2verb.2j", 0x0000001, 0x100000, CRC(dfa83e47) SHA1(a29d852c1b6a52c043248d7e5af04067dfa3eb40) )
+ ROM_LOAD16_BYTE( "te1verb.2k", 0x0200000, 0x100000, CRC(b9860b29) SHA1(678889fc5c70bf66f0bd9864a20636ffb620ed0d) )
+ ROM_LOAD16_BYTE( "te1verb.2f", 0x0200001, 0x100000, CRC(3dc01aad) SHA1(266f346fa575c42b635bc469798f5aade9821e20) )
+
+ ROM_REGION32_LE( 0x1000000, REGION_USER2, 0 ) /* main data */
+ ROM_LOAD16_BYTE( "te1rom0l.ic5", 0x0000000, 0x200000, CRC(03786e09) SHA1(de2b9e19ace43c424d100dc5d3207217f66d6479) )
+ ROM_LOAD16_BYTE( "te1rom0u.ic6", 0x0000001, 0x200000, CRC(75d91051) SHA1(1c7958162315576c3881dcc684b85710f7f19cd6) )
+ ROM_LOAD16_BYTE( "te1rom1l.ic3", 0x0400000, 0x200000, CRC(81416f8e) SHA1(b42ff08ee84491c57a7c87bb767db7e2ec7a26c2) )
+ ROM_LOAD16_BYTE( "te1rom1u.ic8", 0x0400001, 0x200000, CRC(fa7ba433) SHA1(e222c4b1631c09e58546446a1e82c16fca936f1d) )
+ ROM_LOAD16_BYTE( "te1rom2l.ic4", 0x0800000, 0x200000, CRC(41d77846) SHA1(eeab049135c02a255899fe37e225c1111b2fbb7d) )
+ ROM_LOAD16_BYTE( "te1rom2u.ic7", 0x0800001, 0x200000, CRC(a678987e) SHA1(c62c00ce5cf4d001723c999b2bc3dbb90283def1) )
+
+ ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */
+ ROM_LOAD( "te1sprog.6d", 0x0000000, 0x040000, CRC(849587e9) SHA1(94c6a757b24758a866a41bd8acd46aa46844f74b) )
+ NAMCO_C7X_BIOS
+
+ ROM_REGION( 0x0200000, REGION_SOUND1, 0 ) /* samples */
+ ROM_LOAD( "te1wave.8k", 0x0000000, 0x200000, CRC(fce6c57a) SHA1(7fb8c69452c92c59a940a2b69d0d73ef7aefcb82) )
+ROM_END
+
+ROM_START( tekkenc )
+ ROM_REGION32_LE( 0x0400000, REGION_USER1, 0 ) /* main prg */
+ ROM_LOAD16_BYTE( "te1verb.2l", 0x0000000, 0x100000, CRC(4291afee) SHA1(2e04a6c786544176e2b7e22b5f469e3548896b19) )
+ ROM_LOAD16_BYTE( "te1verb.2j", 0x0000001, 0x100000, CRC(5c534705) SHA1(2430b5c36de419822de0283c006c5af2e7cd95ef) )
+ ROM_LOAD16_BYTE( "te1verb.2k", 0x0200000, 0x100000, CRC(b9860b29) SHA1(678889fc5c70bf66f0bd9864a20636ffb620ed0d) )
+ ROM_LOAD16_BYTE( "te1verb.2f", 0x0200001, 0x100000, CRC(3dc01aad) SHA1(266f346fa575c42b635bc469798f5aade9821e20) )
+
+ ROM_REGION32_LE( 0x1000000, REGION_USER2, 0 ) /* main data */
+ ROM_LOAD16_BYTE( "te1rom0l.ic5", 0x0000000, 0x200000, CRC(03786e09) SHA1(de2b9e19ace43c424d100dc5d3207217f66d6479) )
+ ROM_LOAD16_BYTE( "te1rom0u.ic6", 0x0000001, 0x200000, CRC(75d91051) SHA1(1c7958162315576c3881dcc684b85710f7f19cd6) )
+ ROM_LOAD16_BYTE( "te1rom1l.ic3", 0x0400000, 0x200000, CRC(81416f8e) SHA1(b42ff08ee84491c57a7c87bb767db7e2ec7a26c2) )
+ ROM_LOAD16_BYTE( "te1rom1u.ic8", 0x0400001, 0x200000, CRC(fa7ba433) SHA1(e222c4b1631c09e58546446a1e82c16fca936f1d) )
+ ROM_LOAD16_BYTE( "te1rom2l.ic4", 0x0800000, 0x200000, CRC(41d77846) SHA1(eeab049135c02a255899fe37e225c1111b2fbb7d) )
+ ROM_LOAD16_BYTE( "te1rom2u.ic7", 0x0800001, 0x200000, CRC(a678987e) SHA1(c62c00ce5cf4d001723c999b2bc3dbb90283def1) )
+
+ ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */
+ ROM_LOAD( "te1sprog.6d", 0x0000000, 0x040000, CRC(849587e9) SHA1(94c6a757b24758a866a41bd8acd46aa46844f74b) )
+ NAMCO_C7X_BIOS
+
+ ROM_REGION( 0x0200000, REGION_SOUND1, 0 ) /* samples */
+ ROM_LOAD( "te1wave.8k", 0x0000000, 0x200000, CRC(fce6c57a) SHA1(7fb8c69452c92c59a940a2b69d0d73ef7aefcb82) )
+ROM_END
+
+ROM_START( tekken2 )
+ ROM_REGION32_LE( 0x0400000, REGION_USER1, 0 ) /* main prg */
+ ROM_LOAD16_BYTE( "tes3verb.2l", 0x0000000, 0x100000, CRC(4692075f) SHA1(d048a92040ceb57ef7462bebc2c1112b964570ec) )
+ ROM_LOAD16_BYTE( "tes3verb.2j", 0x0000001, 0x100000, CRC(db3ec640) SHA1(fc9f475232ea77abd2eb7e2e09314281264e9d38) )
+ ROM_LOAD16_BYTE( "tes1verb.2k", 0x0200000, 0x100000, CRC(668ca712) SHA1(67100db4c6a3ca62d3f62f6fcef974ce017e2c9e) )
+ ROM_LOAD16_BYTE( "tes1verb.2f", 0x0200001, 0x100000, CRC(c4f66a0a) SHA1(1b3dd33d7e6d9122826bf8be0dbbc088e4cc41e8) )
+
+ ROM_REGION32_LE( 0x1000000, REGION_USER2, 0 ) /* main data */
+ ROM_LOAD16_BYTE( "tes1rom0l.ic6", 0x0000000, 0x200000, CRC(fc904ede) SHA1(cea378ba86f94beadb3d67685f1b8c141f478abe) )
+ ROM_LOAD16_BYTE( "tes1rom0u.ic5", 0x0000001, 0x200000, CRC(57b38f5d) SHA1(edb4beab47b1339a5b1bc8071086abfcba57722e) )
+ ROM_LOAD16_BYTE( "tes1rom1l.ic8", 0x0400000, 0x200000, CRC(aa48f04b) SHA1(f7383d2b3a84c4e649a27c0ad1e6af4702ec0a17) )
+ ROM_LOAD16_BYTE( "tes1rom1u.ic3", 0x0400001, 0x200000, CRC(b147c543) SHA1(c4b18c218999ec73d04c92e06fb3e6165ceebf2b) )
+ ROM_LOAD16_BYTE( "tes1rom2l.ic7", 0x0800000, 0x200000, CRC(b08da52c) SHA1(31fe2021d0fe37c16555650dd10d26ed80d9b493) )
+ ROM_LOAD16_BYTE( "tes1rom2u.ic4", 0x0800001, 0x200000, CRC(8a1561b8) SHA1(ebc02c9e7033d54aefb5034c97a3c8cd749b5600) )
+ ROM_LOAD16_BYTE( "tes1rom3l.ic9", 0x0c00000, 0x200000, CRC(d5ac0f18) SHA1(342d063f7974bd1f90b5ca4832dfa4fbc9605453) )
+ ROM_LOAD16_BYTE( "tes1rom3u.ic1", 0x0c00001, 0x200000, CRC(44ed509d) SHA1(27e26aaf5ce72ab686f3f05743b1d91b5334b4e0) )
+
+ ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */
+ ROM_LOAD( "tes1sprog.6d", 0x0000000, 0x040000, CRC(af18759f) SHA1(aabd7d1384925781d37f860605a5d4622e0fc2e4) )
+ NAMCO_C7X_BIOS
+
+ ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* samples */
+ ROM_LOAD( "tes1wave.8k", 0x800000, 0x400000, CRC(af5eadb1) SHA1(1cba35b524b5ec1aa0302d0a707e0c7f4b1a1401) )
+ROM_END
+
+ROM_START( tekken2a )
+ ROM_REGION32_LE( 0x0400000, REGION_USER1, 0 ) /* main prg */
+ ROM_LOAD16_BYTE( "tes2verb.2l", 0x0000000, 0x100000, CRC(aa9a4503) SHA1(e6fdd34216591510593bbda0232ddc0fcd80e80b) )
+ ROM_LOAD16_BYTE( "tes2verb.2j", 0x0000001, 0x100000, CRC(63706d8c) SHA1(740cfa8b422fb663bcb412b3389da33c7f9f13be) )
+ ROM_LOAD16_BYTE( "tes1verb.2k", 0x0200000, 0x100000, CRC(668ca712) SHA1(67100db4c6a3ca62d3f62f6fcef974ce017e2c9e) )
+ ROM_LOAD16_BYTE( "tes1verb.2f", 0x0200001, 0x100000, CRC(c4f66a0a) SHA1(1b3dd33d7e6d9122826bf8be0dbbc088e4cc41e8) )
+
+ ROM_REGION32_LE( 0x1000000, REGION_USER2, 0 ) /* main data */
+ ROM_LOAD16_BYTE( "tes1rom0l.ic6", 0x0000000, 0x200000, CRC(fc904ede) SHA1(cea378ba86f94beadb3d67685f1b8c141f478abe) )
+ ROM_LOAD16_BYTE( "tes1rom0u.ic5", 0x0000001, 0x200000, CRC(57b38f5d) SHA1(edb4beab47b1339a5b1bc8071086abfcba57722e) )
+ ROM_LOAD16_BYTE( "tes1rom1l.ic8", 0x0400000, 0x200000, CRC(aa48f04b) SHA1(f7383d2b3a84c4e649a27c0ad1e6af4702ec0a17) )
+ ROM_LOAD16_BYTE( "tes1rom1u.ic3", 0x0400001, 0x200000, CRC(b147c543) SHA1(c4b18c218999ec73d04c92e06fb3e6165ceebf2b) )
+ ROM_LOAD16_BYTE( "tes1rom2l.ic7", 0x0800000, 0x200000, CRC(b08da52c) SHA1(31fe2021d0fe37c16555650dd10d26ed80d9b493) )
+ ROM_LOAD16_BYTE( "tes1rom2u.ic4", 0x0800001, 0x200000, CRC(8a1561b8) SHA1(ebc02c9e7033d54aefb5034c97a3c8cd749b5600) )
+ ROM_LOAD16_BYTE( "tes1rom3l.ic9", 0x0c00000, 0x200000, CRC(d5ac0f18) SHA1(342d063f7974bd1f90b5ca4832dfa4fbc9605453) )
+ ROM_LOAD16_BYTE( "tes1rom3u.ic1", 0x0c00001, 0x200000, CRC(44ed509d) SHA1(27e26aaf5ce72ab686f3f05743b1d91b5334b4e0) )
+
+ ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */
+ ROM_LOAD( "tes1sprog.6d", 0x0000000, 0x040000, CRC(af18759f) SHA1(aabd7d1384925781d37f860605a5d4622e0fc2e4) )
+ NAMCO_C7X_BIOS
+
+ ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* samples */
+ ROM_LOAD( "tes1wave.8k", 0x800000, 0x400000, CRC(af5eadb1) SHA1(1cba35b524b5ec1aa0302d0a707e0c7f4b1a1401) )
+ROM_END
+
+ROM_START( tekken2b )
+ ROM_REGION32_LE( 0x0400000, REGION_USER1, 0 ) /* main prg */
+ ROM_LOAD16_BYTE( "tes2vera.2l", 0x0000000, 0x100000, CRC(8bb82bf0) SHA1(ac4e0077dff4c46ea2435903c410590f91cafe7d) )
+ ROM_LOAD16_BYTE( "tes2vera.2j", 0x0000001, 0x100000, CRC(4e02f921) SHA1(15339c2626033912947d33e5f59a109e607be0bf) )
+ ROM_LOAD16_BYTE( "tes1vera.2k", 0x0200000, 0x100000, CRC(78e2ce1a) SHA1(fb242725dc72fa234bd7df81cec57fe010cf58f3) )
+ ROM_LOAD16_BYTE( "tes1vera.2f", 0x0200001, 0x100000, CRC(fbb0b146) SHA1(08b11ac0fbfeed62910c5cb5ff7b5939ecbca142) )
+
+ ROM_REGION32_LE( 0x1000000, REGION_USER2, 0 ) /* main data */
+ ROM_LOAD16_BYTE( "tes1rom0l.ic6", 0x0000000, 0x200000, CRC(fc904ede) SHA1(cea378ba86f94beadb3d67685f1b8c141f478abe) )
+ ROM_LOAD16_BYTE( "tes1rom0u.ic5", 0x0000001, 0x200000, CRC(57b38f5d) SHA1(edb4beab47b1339a5b1bc8071086abfcba57722e) )
+ ROM_LOAD16_BYTE( "tes1rom1l.ic8", 0x0400000, 0x200000, CRC(aa48f04b) SHA1(f7383d2b3a84c4e649a27c0ad1e6af4702ec0a17) )
+ ROM_LOAD16_BYTE( "tes1rom1u.ic3", 0x0400001, 0x200000, CRC(b147c543) SHA1(c4b18c218999ec73d04c92e06fb3e6165ceebf2b) )
+ ROM_LOAD16_BYTE( "tes1rom2l.ic7", 0x0800000, 0x200000, CRC(b08da52c) SHA1(31fe2021d0fe37c16555650dd10d26ed80d9b493) )
+ ROM_LOAD16_BYTE( "tes1rom2u.ic4", 0x0800001, 0x200000, CRC(8a1561b8) SHA1(ebc02c9e7033d54aefb5034c97a3c8cd749b5600) )
+ ROM_LOAD16_BYTE( "tes1rom3l.ic9", 0x0c00000, 0x200000, CRC(d5ac0f18) SHA1(342d063f7974bd1f90b5ca4832dfa4fbc9605453) )
+ ROM_LOAD16_BYTE( "tes1rom3u.ic1", 0x0c00001, 0x200000, CRC(44ed509d) SHA1(27e26aaf5ce72ab686f3f05743b1d91b5334b4e0) )
+
+ ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */
+ ROM_LOAD( "tes1sprog.6d", 0x0000000, 0x040000, CRC(af18759f) SHA1(aabd7d1384925781d37f860605a5d4622e0fc2e4) )
+ NAMCO_C7X_BIOS
+
+ ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* samples */
+ ROM_LOAD( "tes1wave.8k", 0x800000, 0x400000, CRC(af5eadb1) SHA1(1cba35b524b5ec1aa0302d0a707e0c7f4b1a1401) )
+ROM_END
+
+ROM_START( xevi3dg )
+ ROM_REGION32_LE( 0x0400000, REGION_USER1, 0 ) /* main prg */
+ ROM_LOAD16_BYTE( "xv31vera.2l", 0x0000000, 0x100000, CRC(419e0f13) SHA1(876ae81c9fde18cdec792f3dfee682761ac99730) )
+ ROM_LOAD16_BYTE( "xv31vera.2j", 0x0000001, 0x100000, CRC(df95373a) SHA1(65cf85ad4dcbc8f0376ac46ee0c1037d79099843) )
+ ROM_LOAD16_BYTE( "xv31vera.2k", 0x0200000, 0x100000, CRC(3d58138e) SHA1(9203d6bdc2d968de818d5f465523cc030217dcf8) )
+ ROM_LOAD16_BYTE( "xv31vera.2f", 0x0200001, 0x100000, CRC(9e8780a2) SHA1(83148d55456b2b92969f7ac2bdb2d492bf969895) )
+
+ ROM_REGION32_LE( 0x1000000, REGION_USER2, 0 ) /* main data */
+ ROM_LOAD16_BYTE( "xv31rom0l.ic5", 0x0000000, 0x200000, CRC(24e1e262) SHA1(84df49b22a8a36284da771944a8390672a0c32bf) )
+ ROM_LOAD16_BYTE( "xv31rom0u.ic6", 0x0000001, 0x200000, CRC(cae38ef3) SHA1(2dfe0b31969091975e8d8c8188ce7dd007e4a0f3) )
+ ROM_LOAD16_BYTE( "xv31rom1l.ic3", 0x0400000, 0x200000, CRC(46b4cb72) SHA1(c3360c4fdb71ffcbccec3f4ad8d7963b08822e26) )
+ ROM_LOAD16_BYTE( "xv31rom1u.ic8", 0x0400001, 0x200000, CRC(be0eb5d1) SHA1(f1a0adcb7c65bbba723fe09b07280b0b924d6b19) )
+ ROM_LOAD16_BYTE( "xv31rom2l.ic4", 0x0800000, 0x200000, CRC(8403a277) SHA1(35193211351494a086d8422e3b0b71a8d3a262a6) )
+ ROM_LOAD16_BYTE( "xv31rom2u.ic7", 0x0800001, 0x200000, CRC(ecf70432) SHA1(bec128a215e0aef66e9a8707bb0d1eb7b098a356) )
+
+ ROM_REGION16_LE( 0x100000, REGION_USER4, 0 ) /* sound data and MCU BIOS */
+ ROM_LOAD( "xv31sprog.6d", 0x0000000, 0x040000, CRC(e50b856a) SHA1(631da4f60c9ce08387fca26a70481a2fdacf9765) )
+ NAMCO_C7X_BIOS
+
+ ROM_REGION( 0x1000000, REGION_SOUND1, 0 ) /* samples */
+ ROM_LOAD( "xv31wave.8k", 0x000000, 0x400000, CRC(14f25ddd) SHA1(4981cf1017432ff85b768ec88c36f535df30b783) )
+ ROM_RELOAD( 0x800000, 0x400000 )
+ROM_END
+
+GAME( 1994, tekken, 0, coh100, tekken, namcos11, ROT0, "Namco", "Tekken (TE4/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1994, tekkena, tekken, coh100, tekken, namcos11, ROT0, "Namco", "Tekken (TE2/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1994, tekkenb, tekken, coh100, tekken, namcos11, ROT0, "Namco", "Tekken (TE2/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1994, tekkenc, tekken, coh100, tekken, namcos11, ROT0, "Namco", "Tekken (TE1/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1995, tekken2, 0, coh100, tekken, namcos11, ROT0, "Namco", "Tekken 2 Ver.B (TES3/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1995, tekken2a, tekken2, coh100, tekken, namcos11, ROT0, "Namco", "Tekken 2 Ver.B (TES2/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1995, tekken2b, tekken2, coh100, tekken, namcos11, ROT0, "Namco", "Tekken 2 (TES2/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1996, souledge, 0, coh110, souledge, namcos11, ROT0, "Namco", "Soul Edge Ver. II (SO4/VER.C)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
+GAME( 1995, souledga, souledge, coh110, souledge, namcos11, ROT0, "Namco", "Soul Edge Ver. II (SO3/VER.C)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
+GAME( 1995, souledgb, souledge, coh110, souledge, namcos11, ROT0, "Namco", "Soul Edge (SO3/VER.A)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
+GAME( 1995, souledgc, souledge, coh110, souledge, namcos11, ROT0, "Namco", "Soul Edge (SO1/VER.A)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
+GAME( 1995, dunkmnia, 0, coh110, namcos11, namcos11, ROT0, "Namco", "Dunk Mania (DM2/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1995, dunkmnic, dunkmnia, coh110, namcos11, namcos11, ROT0, "Namco", "Dunk Mania (DM1/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1995, xevi3dg, 0, coh110, namcos11, namcos11, ROT0, "Namco", "Xevious 3D/G (XV31/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1996, primglex, 0, coh110, tekken, namcos11, ROT0, "Namco", "Prime Goal EX (PG1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1996, danceyes, 0, coh110, namcos11, namcos11, ROT0, "Namco", "Dancing Eyes (DC1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1996, pocketrc, 0, coh110, pocketrc, namcos11, ROT0, "Namco", "Pocket Racer (PKR1/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1997, starswep, 0, coh110, namcos11, namcos11, ROT0, "Axela/Namco", "Star Sweep (STP1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1998, myangel3, 0, coh110, myangel3, namcos11, ROT0, "Namco", "Kosodate Quiz My Angel 3 (KQT1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1999, ptblnk2a, ptblank2, coh110, ptblnk2a, namcos11, ROT0, "Namco", "Point Blank 2 (GNB3/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )