diff options
Diffstat (limited to 'src/mame/drivers/namcos11.c')
-rw-r--r-- | src/mame/drivers/namcos11.c | 1681 |
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 ) |