/*************************************************************************** Konami System 573 =========================================================== Driver by R. Belmont & smf NOTE: The first time you run each game, it will go through a special initialization procedure. This can be quite lengthy (in the case of Dark Horse Legend). Let it complete all the way before exiting MAME and you will not have to do it again! NOTE 2: The first time you run Konami 80's Gallery, it will dump you on a clock setting screen. Press DOWN to select "SAVE AND EXIT" then press player 1 START to continue. Note 3: If you are asked to insert a different cartridge then use the fake dip switch to change it. Note 4: Some games require you to press f2 to skip the rtc cleared note. TODO: * integrate ATAPI code with Aaron's ATA/IDE code * emulate memory card board GE885-PWB(A)A ( contains Toshiba tmpr3904af, ram, rom, tranceiver and glue ). ----------------------------------------------------------------------------------------- System 573 Hardware Overview Konami, 1998-2001 This system uses Konami PSX-based hardware with an ATAPI CDROM drive. Gun Mania (and probably Gun Mania Zone Plus) has no CDROM drive. There is a slot for a security cart (cart is installed in CN14) and also a PCMCIA card slot. The main board and CDROM drive are housed in a black metal box. Gun Mania doesn't have that box. The games can be swapped by exchanging the CDROM disc and the security cart, whereby the main-board FlashROMs are re-programmed after a small wait. On subsequent power-ups, there is a check to test if the contents of the FlashROMs matches the CDROM, then the game boots up immediately. PCMCIA card slot is used by Dance Dance Revolution (2ndMIX link ver. and later), GUITARFREAKS (2ndMIX link ver. and later), drummania (7thMIX and later), and Gun Mania. DDR and GF: 32M flash card is used to store edit data (players can edit data by PlayStation console, and send data to arcade machine via PS memory card). DM and GF: network PCB unit (for e-AMUSEMENT) is connected via PCMCIA slot. GM: unknown (program data is stored in flash card?) The games that run on this system include... Game Year Hardware Code CD Code --------------------------------------------------------------------------------- P *Anime Champ 2000.12 P Bass Angler 1998.03 GE765 JA 765 JA A02 P Bass Angler 2 1998.07 GC865 JA 865 JA A02 P *DAM-DDR Dance Dance Revolution for DAM 1999.11 P *DAM-DDR Dance Dance Revolution for DAM 2nd 2000.07 A Dance Dance Revolution 1998.09 GC845 JA 845 JA(missing)/UA A01 / 845 JA A02 A Dance Dance Revolution Internet Ranking ver. 1998.11 GC845 JB 845 JB A01 / 845 JA/UA A02 A Dance Dance Revolution 2ndMIX 1999.01 GC895 JA 895 JA A02 A Dance Dance Revolution 2ndMIX LINK version 1999.04 GE885 JA 885 JA A02 A DDR 2ndMIX with bmIIDX CLUB ver. 1999.05 GN896 JA 896 JA A01 A DDR 2ndMIX AND bmIIDX substream CLUB ver. 2 1999.05 GE984 JA 984 JA A01 D Dance Dance Revolution Solo BASS MIX 1999.08 GQ894 JA 894 JA A02 D Dance Dance Revolution 3rdMIX 1999.10 GN887 AA/JA/KA 887 AA/JA/KA A02 D Dance Dance Revolution Solo 2000 1999.12 GC905 AA/JA 905 AA/JA A02 D Dance Dance Revolution 3rdMIX PLUS 2000.06 GCA22 JA A22 JA A02 D Dance Dance Revolution 4thMIX 2000.08 GCA33 JA A33 JA A02 D Dance Dance Revolution 4thMIX PLUS 2000.12 GCA34 JA A34 JA A02 ? *Dance Dance Revolution Kids 2000.12 D Dance Dance Revolution 5thMIX 2001.03 GCA27 JA A27 JA A02 D DDRMAX Dance Dance Revolution 6thMIX 2001.10 GCB19 JA B19 JA A02 D DDRMAX2 Dance Dance Revolution 7thMIX 2002.03 GCB20 JA B20 JA A02 D Dance Dance Revolution EXTREME 2002.12 GCC36 JA C36 JA A02 D Dance Maniax 2000.06 GE874 JA 874 JA A(needs redump) D Dance Maniax 2ndMIX 2000.12 GCA39 JA A39 JA A02 D *Dance Maniax 2ndMIX APPEND J PARADISE 2001.04 A Dancing Stage 1999.08 GN845 EA 845 EA(needs redump) D Dancing Stage Euro Mix 2000 GE936 EA 936 EA A(needs redump) D Dancing Stage Euro Mix 2 2000 G*C23 EA C23 EA A02 D Dancing Stage featuring Disney's Rave 2000.11 GCA37 JA A37 JA A02 D Dancing Stage featuring DREAMS COME TRUE 1999.12 GC910 JA 910 JA/JC A02 A Dancing Stage featuring TRUE KiSS DESTiNATiON 1999.07 G*884 JA 884 JA A02 P Dark Horse Legend 1998.03 GX706 JA 706 JA A02 A drummania 1999.07 GQ881 JA 881 JA D01 / 881 JA A02(missing, audio CD) D drummania 2ndMIX 2000.03 GE912 JA 912 JA B02 D drummania 3rdMIX 2000.09 GCA23 JA A23 JA A02 D drummania 4thMIX 2001.03 GEA25 JA A25 JA A02 D drummania 5thMIX 2001.09 GCB05 JA B05 JA A02 D drummania 6thMIX 2002.02 GCB16 JA B16 JA A02 N drummania 7thMIX 2002.08 GCC07 JA C07 JA A02 N drummania 7thMIX power-up ver. 2002.08 GEC07 JB C07 JC A02 N drummania 8thMIX 2003.04 GCC38 JA C38 JA A02 N drummania 9thMIX 2003.10 GCD09 JA D09 JA A02 N *drummania 10thMIX 2004.04 ? *Fighting Mania 2000 P Fisherman's Bait 1998.06 GE765 UA 765 UA B02 P Fisherman's Bait 2 1998 GC865 UA 865 UA B02 P Fisherman's Bait Marlin Challenge 1999 GX889 889 AA/EA/JA/UA(needs redump) A GUITARFREAKS 1999.02 GQ886 EA/JA/UA 886 ** C02 A GUITARFREAKS 2ndMIX 1999.07 GQ883 JA 929 JB B02(needs redump) A *GUITARFREAKS 2ndMIX Link ver. 1999.09 D GUITARFREAKS 3rdMIX 2000.04 GE949 JA 949 JA C01 / 949 JA C02 D GUITARFREAKS 4thMIX 2000.08 GEA24 JA A24 JA A02 D GUITARFREAKS 5thMIX 2001.03 GCA26 JA A26 JA A02 D GUITARFREAKS 6thMIX 2001.09 GCB06 JA B06 JA A02 D GUITARFREAKS 7thMIX 2002.02 GCB17 JA B17 JA A02 N GUITARFREAKS 8thMIX 2002.08 GCC08 JA C08 JA A02 N GUITARFREAKS 8thMIX power-up ver. 2002.11 GEC08 JB C08 JB A02 N GUITARFREAKS 9thMIX 2003.04 GCC39 JA C39 JA A02 N GUITARFREAKS 10thMIX 2003.10 GCD10 JA D10 JA A02 N *GUITARFREAKS 11thMIX 2004.04 G *Gun Mania 2000.07 G?906 JA (no CD) ? *Gun Mania Zone Plus 2000.10 P *Gachaga Champ 1999.01 P Hyper Bishi Bashi Champ 1998.07 GC908 JA 908 A02 P Jikkyou Powerful Pro Yakyuu EX 1998.04 GX802 JA 802 JA B02 P *Jikkyou Powerful Pro Yakyuu EX 98 1998.08 ? *Kick & Kick 2001 P Konami 80's Arcade Gallery 1998.11 GC826 JA 826 JA A01 P Konami 80's AC Special 1998 GC826 UA 826 UA A01 D *Mambo a GoGo 2001.06 D Punchmania Hokuto no Ken 2000.03 918 JA B02 D Punchmania Hokuto no Ken 2 2000.12 A09 JA A02 P Salary Man Champ 2001.02 GCA18 JA A18 JA(needs redump) P *Step Champ 1999.12 P: plain System573 A: uses ext. analog I/O board D: uses ext. digital sound and I/O board N: uses network PCB unit + ext. digital sound and I/O board G: gun mania only, drives air soft gun (this game uses real BB bullet) Note: Not all games listed above are confirmed to run on System 573. * - denotes not dumped yet. If you can help with the remaining undumped System 573 games, please contact http://guru.mameworld.info/ Main PCB Layout --------------- External controls port GX700-PWB(A)B || (C)1997 KONAMI CO. LTD. \/ |-----------------------------------------------------==============-------| | CN15 CNA CN10 | | CN16 | | |------------------------| | PQ30RV21 | | | |-------| | | | KM416V256 |SONY | | PCMCIA SLOT | | |CXD2925| | | | |-------| | | | | | | |------------------------| | |-----| CN21 | | |32M | |---------| |---------| | | |-----| |SONY | |SONY | | | |CXD8561Q | |CXD8530CQ| 29F016 29F016 |--| | | |-----| | | | | | | | | |32M | | | | | | | | | |-----| |---------| |---------| 29F016 29F016 | | | | 53.693175MHz 67.7376MHz | | | | |-----| | |CN14| | KM48V514 KM48V514 |9536 | 29F016 29F016 | | | | KM48V514 KM48V514 | | | | | | KM48V514 KM48V514 |-----| | | | | KM48V514 KM48V514 29F016 29F016 |--| | | MC44200FT M48T58Y-70PC1 | | CN12| | 700A01.22 | | 14.7456MHz | | |-------| | | |KONAMI | |----| LA4705| | 058232 |056879 | |3644| SM5877 | | | | |----| ADC0834 LM358| | |-------| ADM485 CN4 | | CN3 CN17 | | TEST_SW DIP4 USB CN8 RCA-L/R CN9 | |--| JAMMA |-------------------------------------------| |---------------------------| Notes: CNA - 40-pin IDE cable connector CN3 - 10-pin connector labelled 'ANALOG', connected to a 9-pin DSUB connector mounted in the front face of the housing, labelled 'OPTION1' CN4 - 12-pin connector labelled 'EXT-OUT' CN5 - 10-pin connector labelled 'EXT-IN', connected to a 9-pin DSUB connector mounted in the front face of the housing, labelled 'OPTION2' CN8 - 15-pin DSUB plug labelled 'VGA-DSUB15' extending from the front face of the housing labelled 'RGB'. Use of this connector is optional because the video is output via the standard JAMMA connector CN9 - 4-pin connector for amplified stereo sound output to 2 speakers CN10 - Custom 80-pin connector (for mounting an additional plug-in board for extra controls, possibly with CN21 also) CN12 - 4-pin CD-DA input connector (for Red-Book audio from CDROM drive to main board) CN14 - 44-pin security cartridge connector. The cartridge only contains a small PCB labelled 'GX700-PWB(D) (C)1997 KONAMI' and has locations for 2 ICs only IC1 - Small SOIC8 chip, identified as a XICOR X76F041 security supervisor containing 4X 128 x8 secureFLASH arrays, stamped '0038323 E9750' IC2 - Solder pads for mounting of a PLCC68 or QFP68 packaged IC (not populated) CN15 - 4-pin CDROM power connector CN16 - 2-pin fan connector CN17 - 6-pin power connector, connected to an 8-pin power plug mounted in the front face of the housing. This can be left unused because the JAMMA connector supplies all power requirements to the PCB CN21 - Custom 30-pin connector (purpose unknown, but probably for mounting an additional plug-in board with CN10 also) TEST_SW - Push-button test switch DIP4 - 4-position DIP switch USB - USB connector extended from the front face of the housing labelled 'I/O' RCA-L/R - RCA connectors for left/right audio output PQ30RV21 - Sharp PQ30RV21 low-power voltage regulator (5 Volt to 3 Volt) LA4705 - Sanyo LA4705 15W 2-channel power amplifier (SIP18) LM358 - National Semiconductor LM358 low power dual operational amplifier (SOIC8, @ 33C) CXD2925Q - Sony CXD2925Q SPU (QFP100, @ 15Q) CXD8561Q - Sony CXD8561Q GPU (QFP208, @ 10M) CXD8530CQ - Sony CXD8530CQ R3000-based CPU (QFP208, @ 17M) 9536 - Xilinx XC9536 in-system-programmable CPLD (PLCC44, @ 22J) 3644 - Hitachi H8/3644 HD6473644H microcontroller with 32k ROM & 1k RAM (QFP64, @ 18E, labelled '700 02 38920') 056879 - Konami 056879 custom IC (QFP120, @ 13E) MC44200FT - Motorola MC44200FT Triple 8-bit Video DAC (QFP44) 058232 - Konami 058232 custom ceramic IC (SIP14, @ 6C) SM5877 - Nippon Precision Circuits SM5877 2-channel D/A convertor (SSOP24, @32D) ADM485 - Analog Devices ADM485 low power EIA RS-485 transceiver (SOIC8, @ 20C) ADC0834 - National Semiconductor ADC0834 8-Bit Serial I/O A/D Converter with Multiplexer Option (SOIC14, @ 24D) M48T58Y-70- STMicroelectronics M48T58Y-70PC1 8k x8 Timekeeper RAM (DIP32, @ 22H) Note that this is not used for protection. If you put in a new blank Timekeeper RAM it will be programmed with some data on power-up. If you swap games, the Timekeeper is updated with the new game data 29F016 Fujitsu 29F016A-90PFTN 2M x8 FlashROM (TSOP48, @ 27H/J/L/M & 31H/J/L/M) Also found Sharp LH28F016S (2M x8 TSOP40) in some units KM416V256 - Samsung Electronics KM416V256BT-7 256k x 16 DRAM (TSOP44/40, @ 11Q) KM48V514 - Samsung Electronics KM48V514BJ-6 512k x 8 EDO DRAM (SOJ28, @ 16G/H, 14G/H, 12G/H, 9G/H) 32M - NEC D481850GF-A12 128k x 32Bit x 2 Banks SGRAM (QFP100, @ 4P & 4L) Software - - 700A01.22G 4M MaskROM (DIP32, @ 22G) - SONY ATAPI CDROM drive, with CDROM disc containing program + graphics + sound Some System 573 units contain a CR-583 drive dated October 1997, some contain a CR-587 drive dated March 1998. Note that the CR-587 will not read CDR discs ;-) Auxillary Controls PCB ---------------------- GE765-PWB(B)A (C)1998 KONAMI CO. LTD. |-----------------------------| | CN33 C2242 | | C2242 | | NRPS11-G1A | | CN35| | D4701 | | 74LS14 PC817 |-----------------| | | | PAL PAL | | (E765B1) (E765B2) LCX245 | | | | 74LS174 PAL | | (E765B1) | | | | 74LS174 CN31 | |-----------------------------------------------| Notes: (all IC's shown) This PCB is known to be used for the fishing reel controls on all of the fishing games (at least). CN31 - Connector joining this PCB to the MAIN PCB CN33 - Connector used to join the external controls connector mounted on the outside of the metal case to this PCB. CN35 - Power connector NRPS11-G1A - Relay? D4701 - NEC uPD4701 Encoder (SOP24) C2242 - 2SC2242 Transistor PC817 - Sharp PC817 Photo-coupler IC (DIP4) PAL - AMD PALCE16V8Q, stamped 'E765Bx' (DIP20) Digital I/O PCB --------------- GX894-PWB(B)A (C)1999 KONAMI CO. LTD. |-------------| | CN12 | | | | PC847 PC847 | | | | CN11 | | | | PC847 PC847 | | | | DS2401 CN10 | | | | PC847 PC847 | | | | CN14 CN13 | |----------| |----------| | PC847 | | ADM232 CN17 XC9536 | | | | 19.6608MHz |-----------| | ADM232 CN15 CY7C109 | | HY51V65164A HY51V65164A | | HY51V65164A | | CN16 XCS40XL | | | | AK4309B CN18 29.450MHz MAS3507D | | | | CN3 | | HYC24855 RCA-L/R | |-----------------------------------------------| Notes: PC847 - High Density Mounting Type Photocoupler CN12 - 13 pin connector with 8 wires to external connectors CN11 - 12 pin connector with 8 wires to external connectors DS2401 - DS2401 911C2 Silicon serial number CN10 - 10 pin connector with 8 wires to external connectors CN14 - 7 pin connector CN13 - 5 pin connector with 2 wires to external connectors ADM232 - ADM232AARN 9933 H48475 High Speed, 5 V, 0.1 uF CMOS RS-232 Drivers/Receivers CN17 - 3 pin connector XC9536 - XILINX XC9536 PC44AEM9933 F1096429A 15C CN15 - 8 pin connector CY7C109 - CY7C109-25VC 931 H 04 404825 128k x 8 Static RAM HY51V65164A - 64M bit dynamic EDO RAM CN16 - 4 pin connector joining this PCB to the CD-DA IN on the MAIN PCB. XCS40XL - XILINX XCS40XL PQ208AKP9929 A2033251A 4C AK4309B - AKM AK4309B 3N932N 16bit SCF DAC CN18 - 6 pin connector MAS3507D - IM MAS3507D D8 9173 51 HM U 072953.000 ES MPEG 1/2 Layer 2/3 Audio Decoder CN3 - Connector joining this PCB to the MAIN PCB HYC24855 - ? RCA-L/R - RCA connectors for left/right audio output */ #include "emu.h" #include "cdrom.h" #include "cpu/psx/psx.h" #include "video/psx.h" #include "includes/psx.h" #include "machine/intelfsh.h" #include "machine/cr589.h" #include "machine/timekpr.h" #include "machine/adc083x.h" #include "machine/ds2401.h" #include "machine/upd4701.h" #include "machine/x76f041.h" #include "machine/x76f100.h" #include "machine/zs01.h" #include "sound/spu.h" #include "sound/cdda.h" #include "sound/mas3507d.h" #define VERBOSE_LEVEL ( 0 ) #define ATAPI_CYCLES_PER_SECTOR (5000) // plenty of time to allow DMA setup etc. BIOS requires this be at least 2000, individual games may vary. #define ATAPI_STAT_BSY 0x80 #define ATAPI_STAT_DRDY 0x40 #define ATAPI_STAT_DMARDDF 0x20 #define ATAPI_STAT_SERVDSC 0x10 #define ATAPI_STAT_DRQ 0x08 #define ATAPI_STAT_CORR 0x04 #define ATAPI_STAT_CHECK 0x01 #define ATAPI_INTREASON_COMMAND 0x01 #define ATAPI_INTREASON_IO 0x02 #define ATAPI_INTREASON_RELEASE 0x04 #define ATAPI_REG_DATA 0 #define ATAPI_REG_ERRFEAT 1 #define ATAPI_REG_INTREASON 2 #define ATAPI_REG_SAMTAG 3 #define ATAPI_REG_COUNTLOW 4 #define ATAPI_REG_COUNTHIGH 5 #define ATAPI_REG_DRIVESEL 6 #define ATAPI_REG_CMDSTATUS 7 #define ATAPI_REG_MAX 16 #define ATAPI_DATA_SIZE ( 64 * 1024 ) #define MAX_TRANSFER_SIZE ( 63488 ) class ksys573_state : public psx_state { public: ksys573_state(const machine_config &mconfig, device_type type, const char *tag) : psx_state(mconfig, type, tag) { } int m_flash_bank; fujitsu_29f016a_device *m_flash_device[5][16]; int m_security_cart_number; UINT32 m_control; emu_timer *m_atapi_timer; SCSIInstance *m_inserted_cdrom; SCSIInstance *m_available_cdroms[ 2 ]; int m_atapi_data_ptr; int m_atapi_data_len; int m_atapi_xferlen; int m_atapi_xferbase; int m_atapi_cdata_wait; int m_atapi_xfermod; UINT32 m_n_security_control; void (*m_security_callback)( running_machine &machine, int data ); UINT8 m_gx700pwbf_output_data[ 4 ]; void (*m_gx700pwfbf_output_callback)( running_machine &machine, int offset, int data ); UINT16 m_gx894pwbba_output_data[ 8 ]; void (*m_gx894pwbba_output_callback)( running_machine &machine, int offset, int data ); UINT32 m_stage_mask; struct { int DO; int clk; int shift; int state; int bit; } m_stage[ 2 ]; UINT32 m_gx894_ram_write_offset; UINT32 m_gx894_ram_read_offset; UINT16 *m_gx894_ram; int m_f; int m_o; int m_s; UINT32 m_a; UINT32 m_b; UINT32 m_c; UINT32 m_d; int m_salarymc_lamp_bits; int m_salarymc_lamp_shift; int m_salarymc_lamp_clk; int m_hyperbbc_lamp_strobe1; int m_hyperbbc_lamp_strobe2; /* memory */ UINT8 m_atapi_regs[ATAPI_REG_MAX]; UINT8 m_atapi_data[ATAPI_DATA_SIZE]; int m_tank_shutter_position; int m_cable_holder_release; double m_pad_position[ 6 ]; }; INLINE void ATTR_PRINTF(3,4) verboselog( running_machine &machine, 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( "%s: %s", machine.describe_context(), buf ); } } static const char *const diskregions[] = { "cdrom0", "cdrom1" }; static WRITE32_HANDLER( mb89371_w ) { verboselog( space->machine(), 2, "mb89371_w %08x %08x %08x\n", offset, mem_mask, data ); } static READ32_HANDLER( mb89371_r ) { UINT32 data = 0xffffffff; verboselog( space->machine(), 2, "mb89371_r %08x %08x %08x\n", offset, mem_mask, data ); return data; } static READ32_HANDLER( jamma_r ) { ksys573_state *state = space->machine().driver_data(); running_machine &machine = space->machine(); int security_cart_number = state->m_security_cart_number; UINT32 data = input_port_read(machine, "IN1"); data |= 0x000000c0; ds2401_device *ds2401 = space->machine().device(security_cart_number ? "game_id" : "install_id"); device_secure_serial_flash *secflash = space->machine().device(security_cart_number ? "game_eeprom" : "install_eeprom"); if( ds2401 ) { data |= ds2401->read() << 14; } if( secflash ) data |= secflash->sda_r() << 18; if( state->m_flash_device[1][0] == NULL ) { data |= ( 1 << 26 ); } if( state->m_flash_device[2][0] == NULL ) { data |= ( 1 << 27 ); } verboselog( machine, 2, "jamma_r( %08x, %08x ) %08x\n", offset, mem_mask, data ); return data; } static READ32_HANDLER( control_r ) { ksys573_state *state = space->machine().driver_data(); verboselog( space->machine(), 2, "control_r( %08x, %08x ) %08x\n", offset, mem_mask, state->m_control ); return state->m_control; } static WRITE32_HANDLER( control_w ) { ksys573_state *state = space->machine().driver_data(); UINT32 control; int old_bank = state->m_flash_bank; COMBINE_DATA(&state->m_control); control = state->m_control; verboselog( space->machine(), 2, "control_w( %08x, %08x, %08x )\n", offset, mem_mask, data ); state->m_flash_bank = -1; // zs01 only, others are reached through security_w device_secure_serial_flash *secflash = space->machine().device(state->m_security_cart_number ? "game_eeprom" : "install_eeprom"); if( dynamic_cast(secflash) ) secflash->sda_w( !( ( control >> 6 ) & 1 ) ); /* 0x40 */ if( state->m_flash_device[0][0] != NULL && ( control & ~0x43 ) == 0x00 ) { state->m_flash_bank = (0 << 8) + ( ( control & 3 ) * 2 ); if( state->m_flash_bank != old_bank ) verboselog( space->machine(), 1, "onboard %d\n", control & 3 ); } else if( state->m_flash_device[1][0] != NULL && ( control & ~0x47 ) == 0x10 ) { state->m_flash_bank = (1 << 8) + ( ( control & 7 ) * 2 ); if( state->m_flash_bank != old_bank ) verboselog( space->machine(), 1, "pccard1 %d\n", control & 7 ); } else if( state->m_flash_device[2][0] != NULL && ( control & ~0x47 ) == 0x20 ) { state->m_flash_bank = (2 << 8) + ( ( control & 7 ) * 2 ); if( state->m_flash_bank != old_bank ) verboselog( space->machine(), 1, "pccard2 %d\n", control & 7 ); } else if( state->m_flash_device[3][0] != NULL && ( control & ~0x47 ) == 0x20 ) { state->m_flash_bank = (3 << 8) + ( ( control & 7 ) * 2 ); if( state->m_flash_bank != old_bank ) verboselog( space->machine(), 1, "pccard3 %d\n", control & 7 ); } else if( state->m_flash_device[4][0] != NULL && ( control & ~0x47 ) == 0x28 ) { state->m_flash_bank = (4 << 8) + ( ( control & 7 ) * 2 ); if( state->m_flash_bank != old_bank ) verboselog( space->machine(), 1, "pccard4 %d\n", control & 7 ); } } static TIMER_CALLBACK( atapi_xfer_end ) { ksys573_state *state = machine.driver_data(); UINT32 *p_n_psxram = state->m_p_n_psxram; UINT8 *atapi_regs = state->m_atapi_regs; int i, n_this; UINT8 sector_buffer[ 4096 ]; state->m_atapi_timer->adjust(attotime::never); // verboselog( machine, 2, "atapi_xfer_end( %d ) atapi_xferlen = %d, atapi_xfermod=%d\n", x, atapi_xfermod, atapi_xferlen ); // mame_printf_debug("ATAPI: xfer_end. xferlen = %d, atapi_xfermod = %d\n", atapi_xferlen, atapi_xfermod); while( state->m_atapi_xferlen > 0 ) { // get a sector from the SCSI device SCSIReadData( state->m_inserted_cdrom, sector_buffer, 2048 ); state->m_atapi_xferlen -= 2048; i = 0; n_this = 2048 / 4; while( n_this > 0 ) { p_n_psxram[ state->m_atapi_xferbase / 4 ] = ( sector_buffer[ i + 0 ] << 0 ) | ( sector_buffer[ i + 1 ] << 8 ) | ( sector_buffer[ i + 2 ] << 16 ) | ( sector_buffer[ i + 3 ] << 24 ); state->m_atapi_xferbase += 4; i += 4; n_this--; } } if (state->m_atapi_xfermod > MAX_TRANSFER_SIZE) { state->m_atapi_xferlen = MAX_TRANSFER_SIZE; state->m_atapi_xfermod = state->m_atapi_xfermod - MAX_TRANSFER_SIZE; } else { state->m_atapi_xferlen = state->m_atapi_xfermod; state->m_atapi_xfermod = 0; } if (state->m_atapi_xferlen > 0) { //mame_printf_debug("ATAPI: starting next piece of multi-part transfer\n"); atapi_regs[ATAPI_REG_COUNTLOW] = state->m_atapi_xferlen & 0xff; atapi_regs[ATAPI_REG_COUNTHIGH] = (state->m_atapi_xferlen>>8)&0xff; state->m_atapi_timer->adjust(machine.device("maincpu")->cycles_to_attotime((ATAPI_CYCLES_PER_SECTOR * (state->m_atapi_xferlen/2048)))); } else { //mame_printf_debug("ATAPI: Transfer completed, dropping DRQ\n"); atapi_regs[ATAPI_REG_CMDSTATUS] = ATAPI_STAT_DRDY; atapi_regs[ATAPI_REG_INTREASON] = ATAPI_INTREASON_IO | ATAPI_INTREASON_COMMAND; } psx_irq_set(machine, 0x400); verboselog( machine, 2, "atapi_xfer_end: %d %d\n", state->m_atapi_xferlen, state->m_atapi_xfermod ); } static READ32_HANDLER( atapi_r ) { ksys573_state *state = space->machine().driver_data(); UINT8 *atapi_regs = state->m_atapi_regs; running_machine &machine = space->machine(); int reg, data; if (mem_mask == 0x0000ffff) // word-wide command read { // mame_printf_debug("ATAPI: packet read = %04x\n", atapi_data[atapi_data_ptr]); // assert IRQ and drop DRQ if (state->m_atapi_data_ptr == 0 && state->m_atapi_data_len == 0) { // get the data from the device if( state->m_atapi_xferlen > 0 ) { SCSIReadData( state->m_inserted_cdrom, state->m_atapi_data, state->m_atapi_xferlen ); state->m_atapi_data_len = state->m_atapi_xferlen; } if (state->m_atapi_xfermod > MAX_TRANSFER_SIZE) { state->m_atapi_xferlen = MAX_TRANSFER_SIZE; state->m_atapi_xfermod = state->m_atapi_xfermod - MAX_TRANSFER_SIZE; } else { state->m_atapi_xferlen = state->m_atapi_xfermod; state->m_atapi_xfermod = 0; } verboselog( machine, 2, "atapi_r: atapi_xferlen=%d\n", state->m_atapi_xferlen ); if( state->m_atapi_xferlen != 0 ) { atapi_regs[ATAPI_REG_CMDSTATUS] = ATAPI_STAT_DRQ | ATAPI_STAT_SERVDSC; atapi_regs[ATAPI_REG_INTREASON] = ATAPI_INTREASON_IO; } else { //mame_printf_debug("ATAPI: dropping DRQ\n"); atapi_regs[ATAPI_REG_CMDSTATUS] = 0; atapi_regs[ATAPI_REG_INTREASON] = ATAPI_INTREASON_IO; } atapi_regs[ATAPI_REG_COUNTLOW] = state->m_atapi_xferlen & 0xff; atapi_regs[ATAPI_REG_COUNTHIGH] = (state->m_atapi_xferlen>>8)&0xff; psx_irq_set(space->machine(), 0x400); } if( state->m_atapi_data_ptr < state->m_atapi_data_len ) { data = state->m_atapi_data[state->m_atapi_data_ptr++]; data |= ( state->m_atapi_data[state->m_atapi_data_ptr++] << 8 ); if( state->m_atapi_data_ptr >= state->m_atapi_data_len ) { // verboselog( machine, 2, "atapi_r: read all bytes\n" ); state->m_atapi_data_ptr = 0; state->m_atapi_data_len = 0; if( state->m_atapi_xferlen == 0 ) { atapi_regs[ATAPI_REG_CMDSTATUS] = 0; atapi_regs[ATAPI_REG_INTREASON] = ATAPI_INTREASON_IO; psx_irq_set(space->machine(), 0x400); } } } else { data = 0; } } else { int shift; reg = offset<<1; shift = 0; if (mem_mask == 0x00ff0000) { reg += 1; shift = 16; } data = atapi_regs[reg]; switch( reg ) { case ATAPI_REG_DATA: verboselog( machine, 1, "atapi_r: data=%02x\n", data ); break; case ATAPI_REG_ERRFEAT: verboselog( machine, 1, "atapi_r: errfeat=%02x\n", data ); break; case ATAPI_REG_INTREASON: verboselog( machine, 1, "atapi_r: intreason=%02x\n", data ); break; case ATAPI_REG_SAMTAG: verboselog( machine, 1, "atapi_r: samtag=%02x\n", data ); break; case ATAPI_REG_COUNTLOW: verboselog( machine, 1, "atapi_r: countlow=%02x\n", data ); break; case ATAPI_REG_COUNTHIGH: verboselog( machine, 1, "atapi_r: counthigh=%02x\n", data ); break; case ATAPI_REG_DRIVESEL: verboselog( machine, 1, "atapi_r: drivesel=%02x\n", data ); break; case ATAPI_REG_CMDSTATUS: verboselog( machine, 1, "atapi_r: cmdstatus=%02x\n", data ); break; } // mame_printf_debug("ATAPI: read reg %d = %x (PC=%x)\n", reg, data, cpu_get_pc(&space->device())); data <<= shift; } verboselog( machine, 2, "atapi_r( %08x, %08x ) %08x\n", offset, mem_mask, data ); return data; } static WRITE32_HANDLER( atapi_w ) { ksys573_state *state = space->machine().driver_data(); UINT8 *atapi_regs = state->m_atapi_regs; UINT8 *atapi_data = state->m_atapi_data; running_machine &machine = space->machine(); int reg; verboselog( machine, 2, "atapi_w( %08x, %08x, %08x )\n", offset, mem_mask, data ); if (mem_mask == 0x0000ffff) // word-wide command write { verboselog( machine, 2, "atapi_w: data=%04x\n", data ); // mame_printf_debug("ATAPI: packet write %04x\n", data); atapi_data[state->m_atapi_data_ptr++] = data & 0xff; atapi_data[state->m_atapi_data_ptr++] = data >> 8; if (state->m_atapi_cdata_wait) { // mame_printf_debug("ATAPI: waiting, ptr %d wait %d\n", state->m_atapi_data_ptr, state->m_atapi_cdata_wait); if (state->m_atapi_data_ptr == state->m_atapi_cdata_wait) { // send it to the device SCSIWriteData( state->m_inserted_cdrom, atapi_data, state->m_atapi_cdata_wait ); // assert IRQ psx_irq_set(space->machine(), 0x400); // not sure here, but clear DRQ at least? atapi_regs[ATAPI_REG_CMDSTATUS] = 0; } } else if ( state->m_atapi_data_ptr == 12 ) { int phase; verboselog( machine, 2, "atapi_w: command %02x\n", atapi_data[0]&0xff ); // reset data pointer for reading SCSI results state->m_atapi_data_ptr = 0; state->m_atapi_data_len = 0; // send it to the SCSI device SCSISetCommand( state->m_inserted_cdrom, state->m_atapi_data, 12 ); SCSIExecCommand( state->m_inserted_cdrom, &state->m_atapi_xferlen ); SCSIGetPhase( state->m_inserted_cdrom, &phase ); if (state->m_atapi_xferlen != -1) { // mame_printf_debug("ATAPI: SCSI command %02x returned %d bytes from the device\n", atapi_data[0]&0xff, state->m_atapi_xferlen); // store the returned command length in the ATAPI regs, splitting into // multiple transfers if necessary state->m_atapi_xfermod = 0; if (state->m_atapi_xferlen > MAX_TRANSFER_SIZE) { state->m_atapi_xfermod = state->m_atapi_xferlen - MAX_TRANSFER_SIZE; state->m_atapi_xferlen = MAX_TRANSFER_SIZE; } atapi_regs[ATAPI_REG_COUNTLOW] = state->m_atapi_xferlen & 0xff; atapi_regs[ATAPI_REG_COUNTHIGH] = (state->m_atapi_xferlen>>8)&0xff; if (state->m_atapi_xferlen == 0) { // if no data to return, set the registers properly atapi_regs[ATAPI_REG_CMDSTATUS] = ATAPI_STAT_DRDY; atapi_regs[ATAPI_REG_INTREASON] = ATAPI_INTREASON_IO|ATAPI_INTREASON_COMMAND; } else { // indicate data ready: set DRQ and DMA ready, and IO in INTREASON atapi_regs[ATAPI_REG_CMDSTATUS] = ATAPI_STAT_DRQ | ATAPI_STAT_SERVDSC; atapi_regs[ATAPI_REG_INTREASON] = ATAPI_INTREASON_IO; } switch( phase ) { case SCSI_PHASE_DATAOUT: state->m_atapi_cdata_wait = state->m_atapi_xferlen; break; } // perform special ATAPI processing of certain commands switch (atapi_data[0]&0xff) { case 0x00: // BUS RESET / TEST UNIT READY case 0xbb: // SET CDROM SPEED atapi_regs[ATAPI_REG_CMDSTATUS] = 0; break; case 0x45: // PLAY atapi_regs[ATAPI_REG_CMDSTATUS] = ATAPI_STAT_BSY; state->m_atapi_timer->adjust( downcast(&space->device())->cycles_to_attotime( ATAPI_CYCLES_PER_SECTOR ) ); break; } // assert IRQ psx_irq_set(space->machine(), 0x400); } else { // mame_printf_debug("ATAPI: SCSI device returned error!\n"); atapi_regs[ATAPI_REG_CMDSTATUS] = ATAPI_STAT_DRQ | ATAPI_STAT_CHECK; atapi_regs[ATAPI_REG_ERRFEAT] = 0x50; // sense key = ILLEGAL REQUEST atapi_regs[ATAPI_REG_COUNTLOW] = 0; atapi_regs[ATAPI_REG_COUNTHIGH] = 0; } } } else { reg = offset<<1; if (mem_mask == 0x00ff0000) { reg += 1; data >>= 16; } switch( reg ) { case ATAPI_REG_DATA: verboselog( machine, 1, "atapi_w: data=%02x\n", data ); break; case ATAPI_REG_ERRFEAT: verboselog( machine, 1, "atapi_w: errfeat=%02x\n", data ); break; case ATAPI_REG_INTREASON: verboselog( machine, 1, "atapi_w: intreason=%02x\n", data ); break; case ATAPI_REG_SAMTAG: verboselog( machine, 1, "atapi_w: samtag=%02x\n", data ); break; case ATAPI_REG_COUNTLOW: verboselog( machine, 1, "atapi_w: countlow=%02x\n", data ); break; case ATAPI_REG_COUNTHIGH: verboselog( machine, 1, "atapi_w: counthigh=%02x\n", data ); break; case ATAPI_REG_DRIVESEL: verboselog( machine, 1, "atapi_w: drivesel=%02x\n", data ); break; case ATAPI_REG_CMDSTATUS: verboselog( machine, 1, "atapi_w: cmdstatus=%02x\n", data ); break; } atapi_regs[reg] = data; // mame_printf_debug("ATAPI: reg %d = %x (offset %x mask %x PC=%x)\n", reg, data, offset, mem_mask, cpu_get_pc(&space->device())); if (reg == ATAPI_REG_CMDSTATUS) { // mame_printf_debug("ATAPI command %x issued! (PC=%x)\n", data, cpu_get_pc(&space->device())); switch (data) { case 0xa0: // PACKET atapi_regs[ATAPI_REG_CMDSTATUS] = ATAPI_STAT_DRQ; atapi_regs[ATAPI_REG_INTREASON] = ATAPI_INTREASON_COMMAND; state->m_atapi_data_ptr = 0; state->m_atapi_data_len = 0; /* we have no data */ state->m_atapi_xferlen = 0; state->m_atapi_xfermod = 0; state->m_atapi_cdata_wait = 0; break; case 0xa1: // IDENTIFY PACKET DEVICE atapi_regs[ATAPI_REG_CMDSTATUS] = ATAPI_STAT_DRQ; state->m_atapi_data_ptr = 0; state->m_atapi_data_len = 512; /* we have no data */ state->m_atapi_xferlen = 0; state->m_atapi_xfermod = 0; memset( atapi_data, 0, state->m_atapi_data_len ); atapi_data[ 0 ^ 1 ] = 0x85; // ATAPI device, cmd set 5 compliant, DRQ within 3 ms of PACKET command atapi_data[ 1 ^ 1 ] = 0x00; memset( &atapi_data[ 46 ], ' ', 8 ); atapi_data[ 46 ^ 1 ] = '1'; atapi_data[ 47 ^ 1 ] = '.'; atapi_data[ 48 ^ 1 ] = '0'; memset( &atapi_data[ 54 ], ' ', 40 ); atapi_data[ 54 ^ 1 ] = 'M'; atapi_data[ 55 ^ 1 ] = 'A'; atapi_data[ 56 ^ 1 ] = 'T'; atapi_data[ 57 ^ 1 ] = 'S'; atapi_data[ 58 ^ 1 ] = 'H'; atapi_data[ 59 ^ 1 ] = 'I'; atapi_data[ 60 ^ 1 ] = 'T'; atapi_data[ 61 ^ 1 ] = 'A'; atapi_data[ 62 ^ 1 ] = ' '; atapi_data[ 63 ^ 1 ] = 'C'; atapi_data[ 64 ^ 1 ] = 'R'; atapi_data[ 65 ^ 1 ] = '-'; atapi_data[ 66 ^ 1 ] = '5'; atapi_data[ 67 ^ 1 ] = '8'; atapi_data[ 68 ^ 1 ] = '9'; atapi_data[ 69 ^ 1 ] = ' '; atapi_data[ 98 ^ 1 ] = 0x04; // IORDY may be disabled atapi_data[ 99 ^ 1 ] = 0x00; atapi_regs[ATAPI_REG_COUNTLOW] = 0; atapi_regs[ATAPI_REG_COUNTHIGH] = 2; psx_irq_set(space->machine(), 0x400); break; case 0xef: // SET FEATURES atapi_regs[ATAPI_REG_CMDSTATUS] = 0; state->m_atapi_data_ptr = 0; state->m_atapi_data_len = 0; psx_irq_set(space->machine(), 0x400); break; default: mame_printf_debug("ATAPI: Unknown IDE command %x\n", data); break; } } } } static void atapi_exit(running_machine& machine) { ksys573_state *state = machine.driver_data(); int i; for( i = 0; i < 2; i++ ) { if( get_disk_handle( machine, diskregions[i] ) != NULL ) { SCSIDeleteInstance( state->m_available_cdroms[ i ] ); } } } static void atapi_init(running_machine &machine) { ksys573_state *state = machine.driver_data(); int i; state->m_atapi_regs[ATAPI_REG_CMDSTATUS] = 0; state->m_atapi_regs[ATAPI_REG_ERRFEAT] = 1; state->m_atapi_regs[ATAPI_REG_COUNTLOW] = 0x14; state->m_atapi_regs[ATAPI_REG_COUNTHIGH] = 0xeb; state->m_atapi_data_ptr = 0; state->m_atapi_data_len = 0; state->m_atapi_cdata_wait = 0; state->m_atapi_timer = machine.scheduler().timer_alloc(FUNC(atapi_xfer_end)); state->m_atapi_timer->adjust(attotime::never); for( i = 0; i < 2; i++ ) { if( get_disk_handle( machine, diskregions[i] ) != NULL ) { SCSIAllocInstance( machine, &SCSIClassCr589, &state->m_available_cdroms[ i ], diskregions[i] ); } else { state->m_available_cdroms[ i ] = NULL; } } machine.add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(atapi_exit), &machine)); state->save_item( NAME(state->m_atapi_regs) ); state->save_item( NAME(state->m_atapi_data) ); state->save_item( NAME(state->m_atapi_data_ptr) ); state->save_item( NAME(state->m_atapi_data_len) ); state->save_item( NAME(state->m_atapi_xferlen) ); state->save_item( NAME(state->m_atapi_xferbase) ); state->save_item( NAME(state->m_atapi_cdata_wait) ); state->save_item( NAME(state->m_atapi_xfermod) ); } static WRITE32_HANDLER( atapi_reset_w ) { ksys573_state *state = space->machine().driver_data(); UINT8 *atapi_regs = state->m_atapi_regs; verboselog( space->machine(), 2, "atapi_reset_w( %08x, %08x, %08x )\n", offset, mem_mask, data ); if (data) { verboselog( space->machine(), 2, "atapi_reset_w: reset\n" ); // mame_printf_debug("ATAPI reset\n"); atapi_regs[ATAPI_REG_CMDSTATUS] = 0; atapi_regs[ATAPI_REG_ERRFEAT] = 1; atapi_regs[ATAPI_REG_COUNTLOW] = 0x14; atapi_regs[ATAPI_REG_COUNTHIGH] = 0xeb; state->m_atapi_data_ptr = 0; state->m_atapi_data_len = 0; state->m_atapi_cdata_wait = 0; state->m_atapi_xferlen = 0; state->m_atapi_xfermod = 0; } } static void cdrom_dma_read( ksys573_state *state, UINT32 n_address, INT32 n_size ) { verboselog( state->machine(), 2, "cdrom_dma_read( %08x, %08x )\n", n_address, n_size ); // mame_printf_debug("DMA read: address %08x size %08x\n", n_address, n_size); } static void cdrom_dma_write( ksys573_state *state, UINT32 n_address, INT32 n_size ) { verboselog( state->machine(), 2, "cdrom_dma_write( %08x, %08x )\n", n_address, n_size ); // mame_printf_debug("DMA write: address %08x size %08x\n", n_address, n_size); state->m_atapi_xferbase = n_address; verboselog( state->machine(), 2, "atapi_xfer_end: %d %d\n", state->m_atapi_xferlen, state->m_atapi_xfermod ); // set a transfer complete timer (Note: CYCLES_PER_SECTOR can't be lower than 2000 or the BIOS ends up "out of order") state->m_atapi_timer->adjust(state->machine().device("maincpu")->cycles_to_attotime((ATAPI_CYCLES_PER_SECTOR * (state->m_atapi_xferlen/2048)))); } static WRITE32_HANDLER( security_w ) { ksys573_state *state = space->machine().driver_data(); int security_cart_number = state->m_security_cart_number; running_machine &machine = space->machine(); COMBINE_DATA( &state->m_n_security_control ); verboselog( space->machine(), 2, "security_w( %08x, %08x, %08x )\n", offset, mem_mask, data ); if( ACCESSING_BITS_0_15 ) { ds2401_device *ds2401 = space->machine().device(security_cart_number ? "game_id" : "install_id"); device_secure_serial_flash *secflash = space->machine().device(security_cart_number ? "game_eeprom" : "install_eeprom"); if( secflash ) { if( !dynamic_cast(secflash) ) secflash->sda_w(( data >> 0 ) & 1); secflash->scl_w(( data >> 1 ) & 1); secflash->cs_w(( data >> 2 ) & 1); secflash->rst_w(( data >> 3 ) & 1); } if(ds2401) { ds2401->write(!( ( data >> 4 ) & 1 )); } if( state->m_security_callback != NULL ) { (*state->m_security_callback)( machine, data & 0xff ); } } input_port_write_safe( machine, "OUT1", data, mem_mask ); } static READ32_HANDLER( security_r ) { ksys573_state *state = space->machine().driver_data(); UINT32 data = state->m_n_security_control; verboselog( space->machine(), 2, "security_r( %08x, %08x ) %08x\n", offset, mem_mask, data ); return data; } static READ32_HANDLER( flash_r ) { ksys573_state *state = space->machine().driver_data(); UINT32 data = 0; if( state->m_flash_bank < 0 ) { mame_printf_debug( "%08x: flash_r( %08x, %08x ) no bank selected %08x\n", cpu_get_pc(&space->device()), offset, mem_mask, state->m_control ); data = 0xffffffff; } else { fujitsu_29f016a_device **flash_base = &state->m_flash_device[state->m_flash_bank >> 8][state->m_flash_bank & 0xff]; int adr = offset * 2; if( ACCESSING_BITS_0_7 ) { data |= ( flash_base[0]->read( adr + 0 ) & 0xff ) << 0; // 31m/31l/31j/31h } if( ACCESSING_BITS_8_15 ) { data |= ( flash_base[1]->read( adr + 0 ) & 0xff ) << 8; // 27m/27l/27j/27h } if( ACCESSING_BITS_16_23 ) { data |= ( flash_base[0]->read( adr + 1 ) & 0xff ) << 16; // 31m/31l/31j/31h } if( ACCESSING_BITS_24_31 ) { data |= ( flash_base[1]->read( adr + 1 ) & 0xff ) << 24; // 27m/27l/27j/27h } } verboselog( space->machine(), 2, "flash_r( %08x, %08x, %08x) bank = %08x\n", offset, mem_mask, data, state->m_flash_bank ); return data; } static WRITE32_HANDLER( flash_w ) { ksys573_state *state = space->machine().driver_data(); verboselog( space->machine(), 2, "flash_w( %08x, %08x, %08x\n", offset, mem_mask, data ); if( state->m_flash_bank < 0 ) { mame_printf_debug( "%08x: flash_w( %08x, %08x, %08x ) no bank selected %08x\n", cpu_get_pc(&space->device()), offset, mem_mask, data, state->m_control ); } else { fujitsu_29f016a_device **flash_base = &state->m_flash_device[state->m_flash_bank >> 8][state->m_flash_bank & 0xff]; int adr = offset * 2; if( ACCESSING_BITS_0_7 ) { flash_base[0]->write( adr + 0, ( data >> 0 ) & 0xff ); } if( ACCESSING_BITS_8_15 ) { flash_base[1]->write( adr + 0, ( data >> 8 ) & 0xff ); } if( ACCESSING_BITS_16_23 ) { flash_base[0]->write( adr + 1, ( data >> 16 ) & 0xff ); } if( ACCESSING_BITS_24_31 ) { flash_base[1]->write( adr + 1, ( data >> 24 ) & 0xff ); } } } static ADDRESS_MAP_START( konami573_map, AS_PROGRAM, 32 ) AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_SHARE("share1") /* ram */ AM_RANGE(0x1f000000, 0x1f3fffff) AM_READWRITE( flash_r, flash_w ) AM_RANGE(0x1f400000, 0x1f400003) AM_READ_PORT( "IN0" ) AM_WRITE_PORT( "OUT0" ) AM_RANGE(0x1f400004, 0x1f400007) AM_READ( jamma_r ) AM_RANGE(0x1f400008, 0x1f40000b) AM_READ_PORT( "IN2" ) AM_RANGE(0x1f40000c, 0x1f40000f) AM_READ_PORT( "IN3" ) AM_RANGE(0x1f480000, 0x1f48000f) AM_READWRITE( atapi_r, atapi_w ) // IDE controller, used mostly in ATAPI mode (only 3 pure IDE commands seen so far) AM_RANGE(0x1f500000, 0x1f500003) AM_READWRITE( control_r, control_w ) // Konami can't make a game without a "control" register. AM_RANGE(0x1f560000, 0x1f560003) AM_WRITE( atapi_reset_w ) AM_RANGE(0x1f5c0000, 0x1f5c0003) AM_WRITENOP // watchdog? AM_RANGE(0x1f620000, 0x1f623fff) AM_DEVREADWRITE8("m48t58", timekeeper_r, timekeeper_w, 0x00ff00ff) AM_RANGE(0x1f680000, 0x1f68001f) AM_READWRITE(mb89371_r, mb89371_w) AM_RANGE(0x1f6a0000, 0x1f6a0003) AM_READWRITE( security_r, security_w ) AM_RANGE(0x1fc00000, 0x1fc7ffff) AM_ROM AM_SHARE("share2") AM_REGION("bios", 0) AM_RANGE(0x80000000, 0x803fffff) AM_RAM AM_SHARE("share1") /* ram mirror */ AM_RANGE(0x9fc00000, 0x9fc7ffff) AM_ROM AM_SHARE("share2") /* bios mirror */ AM_RANGE(0xa0000000, 0xa03fffff) AM_RAM AM_SHARE("share1") /* ram mirror */ AM_RANGE(0xbfc00000, 0xbfc7ffff) AM_ROM AM_SHARE("share2") /* bios mirror */ AM_RANGE(0xfffe0130, 0xfffe0133) AM_WRITENOP ADDRESS_MAP_END static void flash_init( running_machine &machine ) { // find onboard flash devices ksys573_state *state = machine.driver_data(); astring tempstr; for (int index = 0; index < 8; index++) state->m_flash_device[0][index] = machine.device(tempstr.format("onboard.%d", index)); // find pccard flash devices for (int card = 1; card <= 4; card++) for (int index = 0; index < 16; index++) state->m_flash_device[card][index] = machine.device(tempstr.format("pccard%d.%d", card, index)); state->save_item( NAME(state->m_flash_bank) ); state->save_item( NAME(state->m_control) ); } static void *atapi_get_device(running_machine &machine) { ksys573_state *state = machine.driver_data(); void *ret; SCSIGetDevice( state->m_inserted_cdrom, &ret ); return ret; } static void update_mode( running_machine &machine ) { ksys573_state *state = machine.driver_data(); int cart = input_port_read(machine, "CART"); int cd = input_port_read( machine, "CD" ); SCSIInstance *new_cdrom; if( state->machine().device("game_eeprom") ) { state->m_security_cart_number = cart; } else { state->m_security_cart_number = 0; } if( state->m_available_cdroms[ 1 ] != NULL ) { new_cdrom = state->m_available_cdroms[ cd ]; } else { new_cdrom = state->m_available_cdroms[ 0 ]; } if( state->m_inserted_cdrom != new_cdrom ) { state->m_inserted_cdrom = new_cdrom; cdda_set_cdrom(machine.device("cdda"), atapi_get_device(machine)); } } static DRIVER_INIT( konami573 ) { ksys573_state *state = machine.driver_data(); psx_driver_init(machine); atapi_init(machine); state->save_item( NAME(state->m_n_security_control) ); flash_init(machine); } static MACHINE_RESET( konami573 ) { ksys573_state *state = machine.driver_data(); if( state->machine().device("install_eeprom") ) { /* security cart */ psx_sio_input( machine, 1, PSX_SIO_IN_DSR, PSX_SIO_IN_DSR ); } state->m_flash_bank = -1; update_mode(machine); } static void spu_irq(device_t *device, UINT32 data) { if (data) { psx_irq_set(device->machine(), 1<<9); } } void sys573_vblank(ksys573_state *state, screen_device &screen, bool vblank_state) { UINT32 *p_n_psxram = state->m_p_n_psxram; update_mode(state->machine()); if( strcmp( state->machine().system().name, "ddr2ml" ) == 0 ) { /* patch out security-plate error */ /* install cd */ /* 801e1540: jal $801e1f7c */ if( p_n_psxram[ 0x1e1540 / 4 ] == 0x0c0787df ) { /* 801e1540: j $801e1560 */ p_n_psxram[ 0x1e1540 / 4 ] = 0x08078558; } /* flash */ /* 8001f850: jal $80031fd8 */ if( p_n_psxram[ 0x1f850 / 4 ] == 0x0c00c7f6 ) { /* 8001f850: j $8001f888 */ p_n_psxram[ 0x1f850 / 4 ] = 0x08007e22; } } else if( strcmp( state->machine().system().name, "ddr2mla" ) == 0 ) { /* patch out security-plate error */ /* 8001f850: jal $8003221c */ if( p_n_psxram[ 0x1f850 / 4 ] == 0x0c00c887 ) { /* 8001f850: j $8001f888 */ p_n_psxram[ 0x1f850 / 4 ] = 0x08007e22; } } } /* GE765-PWB(B)A todo: find out what offset 4 is fix reel type detection find adc0834 SARS */ static READ32_HANDLER( ge765pwbba_r ) { device_t *upd4701 = space->machine().device("upd4701"); UINT32 data = 0; switch (offset) { case 0x26: upd4701_y_add(upd4701, 0, input_port_read_safe(space->machine(), "uPD4701_y", 0), 0xffff); upd4701_switches_set(upd4701, 0, input_port_read_safe(space->machine(), "uPD4701_switches", 0)); upd4701_cs_w(upd4701, 0, 0); upd4701_xy_w(upd4701, 0, 1); if (ACCESSING_BITS_0_7) { upd4701_ul_w(upd4701, 0, 0); data |= upd4701_d_r(upd4701, 0, 0xffff) << 0; } if (ACCESSING_BITS_16_23) { upd4701_ul_w(upd4701, 0, 1); data |= upd4701_d_r(upd4701, 0, 0xffff) << 16; } upd4701_cs_w(upd4701, 0, 1); break; default: verboselog(space->machine(), 0, "ge765pwbba_r: unhandled offset %08x %08x\n", offset, mem_mask); break; } verboselog(space->machine(), 2, "ge765pwbba_r( %08x, %08x ) %08x\n", offset, mem_mask, data); return data; } static WRITE32_HANDLER( ge765pwbba_w ) { device_t *upd4701 = space->machine().device("upd4701"); switch (offset) { case 0x04: break; case 0x20: if (ACCESSING_BITS_0_7) { output_set_value("motor", data & 0xff); } break; case 0x22: if (ACCESSING_BITS_0_7) { output_set_value("brake", data & 0xff); } break; case 0x28: if (ACCESSING_BITS_0_7) { upd4701_resety_w(upd4701, 0, 1); upd4701_resety_w(upd4701, 0, 0); } break; default: verboselog(space->machine(), 0, "ge765pwbba_w: unhandled offset %08x %08x %08x\n", offset, mem_mask, data); break; } verboselog(space->machine(), 2, "ge765pwbba_w( %08x, %08x, %08x )\n", offset, mem_mask, data); } static DRIVER_INIT( ge765pwbba ) { DRIVER_INIT_CALL(konami573); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler( 0x1f640000, 0x1f6400ff, FUNC(ge765pwbba_r), FUNC(ge765pwbba_w) ); } /* GX700-PWB(F) Analogue I/O board */ static READ32_HANDLER( gx700pwbf_io_r ) { UINT32 data = 0; switch( offset ) { case 0x20: /* result not used? */ break; case 0x22: /* result not used? */ break; case 0x24: /* result not used? */ break; case 0x26: /* result not used? */ break; default: // printf( "gx700pwbf_io_r( %08x, %08x ) %08x\n", offset, mem_mask, data ); break; } verboselog( space->machine(), 2, "gx700pwbf_io_r( %08x, %08x ) %08x\n", offset, mem_mask, data ); return data; } static void gx700pwbf_output( running_machine &machine, int offset, UINT8 data ) { ksys573_state *state = machine.driver_data(); if( state->m_gx700pwfbf_output_callback != NULL ) { int i; static const int shift[] = { 7, 6, 1, 0, 5, 4, 3, 2 }; for( i = 0; i < 8; i++ ) { int oldbit = ( state->m_gx700pwbf_output_data[ offset ] >> shift[ i ] ) & 1; int newbit = ( data >> shift[ i ] ) & 1; if( oldbit != newbit ) { (*state->m_gx700pwfbf_output_callback)( machine, ( offset * 8 ) + i, newbit ); } } } state->m_gx700pwbf_output_data[ offset ] = data; } static WRITE32_HANDLER( gx700pwbf_io_w ) { verboselog( space->machine(), 2, "gx700pwbf_io_w( %08x, %08x, %08x )\n", offset, mem_mask, data ); switch( offset ) { case 0x20: if( ACCESSING_BITS_0_15 ) { gx700pwbf_output( space->machine(), 0, data & 0xff ); } break; case 0x22: if( ACCESSING_BITS_0_15 ) { gx700pwbf_output( space->machine(), 1, data & 0xff ); } break; case 0x24: if( ACCESSING_BITS_0_15 ) { gx700pwbf_output( space->machine(), 2, data & 0xff ); } break; case 0x26: if( ACCESSING_BITS_0_15 ) { gx700pwbf_output( space->machine(), 3, data & 0xff ); } break; default: // printf( "gx700pwbf_io_w( %08x, %08x, %08x )\n", offset, mem_mask, data ); break; } } static void gx700pwfbf_init( running_machine &machine, void (*output_callback_func)( running_machine &machine, int offset, int data ) ) { ksys573_state *state = machine.driver_data(); memset( state->m_gx700pwbf_output_data, 0, sizeof( state->m_gx700pwbf_output_data ) ); state->m_gx700pwfbf_output_callback = output_callback_func; machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler( 0x1f640000, 0x1f6400ff, FUNC(gx700pwbf_io_r), FUNC(gx700pwbf_io_w) ); state->save_item( NAME(state->m_gx700pwbf_output_data) ); } /* GN845-PWB(B) DDR Stage Multiplexor */ #define DDR_STAGE_IDLE ( 0 ) #define DDR_STAGE_INIT ( 1 ) static const int mask[] = { 0, 6, 2, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 6 }; static void gn845pwbb_do_w( running_machine &machine, int offset, int data ) { ksys573_state *state = machine.driver_data(); state->m_stage[ offset ].DO = !data; } static void gn845pwbb_clk_w( running_machine &machine, int offset, int data ) { ksys573_state *state = machine.driver_data(); int clk = !data; if( clk != state->m_stage[ offset ].clk ) { state->m_stage[ offset ].clk = clk; if( clk ) { state->m_stage[ offset ].shift = ( state->m_stage[ offset ].shift >> 1 ) | ( state->m_stage[ offset ].DO << 12 ); switch( state->m_stage[ offset ].state ) { case DDR_STAGE_IDLE: if( state->m_stage[ offset ].shift == 0xc90 ) { state->m_stage[ offset ].state = DDR_STAGE_INIT; state->m_stage[ offset ].bit = 0; state->m_stage_mask = 0xfffff9f9; } break; case DDR_STAGE_INIT: state->m_stage[ offset ].bit++; if( state->m_stage[ offset ].bit < 22 ) { int a = ( ( ( ( ~0x06 ) | mask[ state->m_stage[ 0 ].bit ] ) & 0xff ) << 8 ); int b = ( ( ( ( ~0x06 ) | mask[ state->m_stage[ 1 ].bit ] ) & 0xff ) << 0 ); state->m_stage_mask = 0xffff0000 | a | b; } else { state->m_stage[ offset ].bit = 0; state->m_stage[ offset ].state = DDR_STAGE_IDLE; state->m_stage_mask = 0xffffffff; } break; } } } verboselog( machine, 2, "stage: %dp data clk=%d state=%d d0=%d shift=%08x bit=%d stage_mask=%08x\n", offset + 1, clk, state->m_stage[ offset ].state, state->m_stage[ offset ].DO, state->m_stage[ offset ].shift, state->m_stage[ offset ].bit, state->m_stage_mask ); } static CUSTOM_INPUT( gn845pwbb_read ) { ksys573_state *state = field.machine().driver_data(); return input_port_read(field.machine(), "STAGE") & state->m_stage_mask; } static void gn845pwbb_output_callback( running_machine &machine, int offset, int data ) { switch( offset ) { case 0: output_set_value( "foot 1p up", !data ); break; case 1: output_set_value( "foot 1p left", !data ); break; case 2: output_set_value( "foot 1p right", !data ); break; case 3: output_set_value( "foot 1p down", !data ); break; case 4: gn845pwbb_do_w( machine, 0, !data ); break; case 7: gn845pwbb_clk_w( machine, 0, !data ); break; case 8: output_set_value( "foot 2p up", !data ); break; case 9: output_set_value( "foot 2p left", !data ); break; case 10: output_set_value( "foot 2p right", !data ); break; case 11: output_set_value( "foot 2p down", !data ); break; case 12: gn845pwbb_do_w( machine, 1, !data ); break; case 15: gn845pwbb_clk_w( machine, 1, !data ); break; case 17: output_set_led_value( 0, !data ); // start 1 break; case 18: output_set_led_value( 1, !data ); // start 2 break; case 20: output_set_value( "body right low", !data ); break; case 21: output_set_value( "body left low", !data ); break; case 22: output_set_value( "body left high", !data ); break; case 23: output_set_value( "body right high", !data ); break; case 28: // digital case 30: // analogue output_set_value( "speaker", !data ); break; default: // printf( "%d=%d\n", offset, data ); break; } } static DRIVER_INIT( ddr ) { ksys573_state *state = machine.driver_data(); DRIVER_INIT_CALL(konami573); state->m_stage_mask = 0xffffffff; gx700pwfbf_init( machine, gn845pwbb_output_callback ); state->save_item( NAME(state->m_stage_mask) ); } /* Guitar Freaks todo: find out what offset 4 is find out the pcb id */ static READ32_HANDLER( gtrfrks_io_r ) { UINT32 data = 0; switch( offset ) { case 0: break; default: verboselog( space->machine(), 0, "gtrfrks_io_r: unhandled offset %08x, %08x\n", offset, mem_mask ); break; } verboselog( space->machine(), 2, "gtrfrks_io_r( %08x, %08x ) %08x\n", offset, mem_mask, data ); return data; } static WRITE32_HANDLER( gtrfrks_io_w ) { verboselog( space->machine(), 2, "gtrfrks_io_w( %08x, %08x ) %08x\n", offset, mem_mask, data ); switch( offset ) { case 0: output_set_value( "spot left", !( ( data >> 7 ) & 1 ) ); output_set_value( "spot right", !( ( data >> 6 ) & 1 ) ); output_set_led_value( 0, !( ( data >> 5 ) & 1 ) ); // start left output_set_led_value( 1, !( ( data >> 4 ) & 1 ) ); // start right break; case 4: break; default: verboselog( space->machine(), 0, "gtrfrks_io_w: unhandled offset %08x, %08x\n", offset, mem_mask ); break; } } static DRIVER_INIT( gtrfrks ) { DRIVER_INIT_CALL(konami573); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler( 0x1f600000, 0x1f6000ff, FUNC(gtrfrks_io_r), FUNC(gtrfrks_io_w) ); } /* GX894 digital i/o */ static READ32_HANDLER( gx894pwbba_r ) { ksys573_state *state = space->machine().driver_data(); UINT32 data = 0; switch( offset ) { case 0x00: data |= 0x10000; break; case 0x20: if( ACCESSING_BITS_0_15 ) { data |= 0x00001234; } break; case 0x2b: if( ACCESSING_BITS_0_15 ) { mas3507d_device *mas3507d = space->machine().device("mpeg"); data |= mas3507d->i2c_scl_r() << 13; data |= mas3507d->i2c_sda_r() << 12; } if( ACCESSING_BITS_16_31 ) { // data |= 0x10000000; /* rdy??? */ } break; case 0x2d: if( ACCESSING_BITS_0_15 ) { data |= state->m_gx894_ram[ state->m_gx894_ram_read_offset / 2 ]; state->m_gx894_ram_read_offset += 2; } if( ACCESSING_BITS_16_31 ) { // printf( "read offset 2d msw32\n" ); } break; case 0x30: /* mp3? */ if( ACCESSING_BITS_0_15 ) { /* unknown data word */ } if( ACCESSING_BITS_16_31 ) { /* 0x000-0x1ff */ data |= 0x1ff0000; } break; case 0x31: /* mp3? */ if( ACCESSING_BITS_0_15 ) { /* unknown data word count */ data |= 0x0000; } if( ACCESSING_BITS_16_31 ) { // printf( "read offset 31 msw32\n" ); } break; case 0x32: if( ACCESSING_BITS_16_31 ) { data |= 0 & 0xffff0000; } /* todo */ break; case 0x33: if( ACCESSING_BITS_0_15 ) { data |= 0 & 0x0000ffff; } /* todo */ break; case 0x3b: if( ACCESSING_BITS_16_31 ) { data |= space->machine().device("digital_id")->read() << 28; } break; case 0x3d: if( ACCESSING_BITS_16_31 ) { // fpga/digital board status checks // wants & c000 = 8000 (just after program upload?) // write 0000 to +f4.w // write 8000 to +f6.w /* fails if !8000 */ /* fails if 4000 */ /* fails if !2000 */ /* fails if !1000 */ data |= ( 0x8000 | 0x2000 | 0x1000 ) << 16; } break; default: // printf( "read offset %08x\n", offset ); break; } verboselog( space->machine(), 2, "gx894pwbba_r( %08x, %08x ) %08x\n", offset, mem_mask, data ); // printf( "%08x: gx894pwbba_r( %08x, %08x ) %08x\n", cpu_get_pc(&space->device()), offset, mem_mask, data ); return data; } static char *binary( char *s, UINT32 data ) { int i; for( i = 0; i < 32; i++ ) { s[ i ] = '0' + ( ( data >> ( 31 - i ) ) & 1 ); } s[ i ] = 0; return s; } static void gx894pwbba_output( running_machine &machine, int offset, UINT8 data ) { ksys573_state *state = machine.driver_data(); if( state->m_gx894pwbba_output_callback != NULL ) { int i; static const int shift[] = { 0, 2, 3, 1 }; for( i = 0; i < 4; i++ ) { int oldbit = ( state->m_gx894pwbba_output_data[ offset ] >> shift[ i ] ) & 1; int newbit = ( data >> shift[ i ] ) & 1; if( oldbit != newbit ) { (*state->m_gx894pwbba_output_callback)( machine, ( offset * 4 ) + i, newbit ); } } } state->m_gx894pwbba_output_data[ offset ] = data; } static WRITE32_HANDLER( gx894pwbba_w ) { ksys573_state *state = space->machine().driver_data(); char buff[33]; UINT32 olda=state->m_a,oldb=state->m_b,oldc=state->m_c,oldd=state->m_d; // printf( "gx894pwbba_w( %08x, %08x, %08x )\n", offset, mem_mask, data ); if( offset == 4 ) { return; } verboselog( space->machine(), 2, "gx894pwbba_w( %08x, %08x, %08x) %s\n", offset, mem_mask, data, binary( buff, data ) ); switch( offset ) { case 0x28: if(ACCESSING_BITS_0_15) logerror("FPGA MPEG start address high %04x\n", data); if(ACCESSING_BITS_16_31) logerror("FPGA MPEG start address low %04x\n", data >> 16); break; case 0x29: if(ACCESSING_BITS_0_15) logerror("FPGA MPEG end address high %04x\n", data); if(ACCESSING_BITS_16_31) logerror("FPGA MPEG end address low %04x\n", data >> 16); break; case 0x2a: if(ACCESSING_BITS_0_15) logerror("FPGA MPEG key 1/3 %04x\n", data); break; case 0x2b: if(ACCESSING_BITS_0_15) { mas3507d_device *mas3507d = space->machine().device("mpeg"); mas3507d->i2c_scl_w(data & 0x2000); mas3507d->i2c_sda_w(data & 0x1000); } if( ACCESSING_BITS_16_31 ) { logerror("FPGA MPEG control %c%c%c\n", data & 0x80000000 ? '#' : '.', data & 0x40000000 ? '#' : '.', data & 0x20000000 ? '#' : '.'); } break; case 0x2c: if( ACCESSING_BITS_0_15 ) { state->m_gx894_ram_write_offset &= 0x0000ffff; state->m_gx894_ram_write_offset |= ( data & 0x0000ffff ) << 16; } if( ACCESSING_BITS_16_31 ) { state->m_gx894_ram_write_offset &= 0xffff0000; state->m_gx894_ram_write_offset |= ( data & 0xffff0000 ) >> 16; } break; case 0x2d: if( ACCESSING_BITS_0_15 ) { state->m_gx894_ram[ state->m_gx894_ram_write_offset / 2 ] = data & 0xffff; state->m_gx894_ram_write_offset += 2; } if( ACCESSING_BITS_16_31 ) { state->m_gx894_ram_read_offset &= 0x0000ffff; state->m_gx894_ram_read_offset |= ( data & 0xffff0000 ) << 0; } break; case 0x2e: if( ACCESSING_BITS_0_15 ) { state->m_gx894_ram_read_offset &= 0xffff0000; state->m_gx894_ram_read_offset |= ( data & 0x0000ffff ) >> 0; } if( ACCESSING_BITS_16_31 ) { // printf( "write offset 2e msw32\n" ); } break; case 0x38: if( ACCESSING_BITS_16_31 ) { gx894pwbba_output( space->machine(), 0, ( data >> 28 ) & 0xf ); } if( ACCESSING_BITS_0_15 ) { gx894pwbba_output( space->machine(), 1, ( data >> 12 ) & 0xf ); } COMBINE_DATA( &state->m_a ); break; case 0x39: if( ACCESSING_BITS_16_31 ) { gx894pwbba_output( space->machine(), 7, ( data >> 28 ) & 0xf ); } if( ACCESSING_BITS_0_15 ) { gx894pwbba_output( space->machine(), 3, ( data >> 12 ) & 0xf ); } COMBINE_DATA( &state->m_b ); break; case 0x3a: if( ACCESSING_BITS_16_31 ) logerror("FPGA MPEG key 2/3 %04x\n", data >> 16); break; case 0x3b: if( ACCESSING_BITS_0_15 ) logerror("FPGA MPEG key 3/3 %02x\n", data & 0xff); if( ACCESSING_BITS_16_31 ) { space->machine().device("digital_id")->write( !( ( data >> 28 ) & 1 ) ); } break; case 0x3e: if( ACCESSING_BITS_0_15 ) { /* 12 */ /* 13 */ /* 14 */ /* 15 */ /* fpga */ state->m_s = ( state->m_s >> 1 ) | ( ( data & 0x8000 ) >> 8 ); state->m_f++; if( state->m_f == 8 ) { // printf( "%04x %02x\n", o, s ); state->m_c = 0; state->m_f = 0; state->m_o++; } } if( ACCESSING_BITS_16_31 ) { gx894pwbba_output( space->machine(), 4, ( data >> 28 ) & 0xf ); } COMBINE_DATA( &state->m_c ); break; case 0x3f: if( ACCESSING_BITS_16_31 ) { gx894pwbba_output( space->machine(), 2, ( data >> 28 ) & 0xf ); } if( ACCESSING_BITS_0_15 ) { gx894pwbba_output( space->machine(), 5, ( data >> 12 ) & 0xf ); } COMBINE_DATA( &state->m_d ); break; default: // printf( "write offset %08x\n", offset ); break; } if( state->m_a != olda || state->m_b != oldb || state->m_c != oldc || state->m_d != oldd ) { // printf( "%08x %08x %08x %08x\n", a, b, c, d ); } } static void gx894pwbba_init( running_machine &machine, void (*output_callback_func)( running_machine &machine, int offset, int data ) ) { ksys573_state *state = machine.driver_data(); int gx894_ram_size = 24 * 1024 * 1024; state->m_gx894pwbba_output_callback = output_callback_func; machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler( 0x1f640000, 0x1f6400ff, FUNC(gx894pwbba_r), FUNC(gx894pwbba_w) ); state->m_gx894_ram_write_offset = 0; state->m_gx894_ram_read_offset = 0; state->m_gx894_ram = auto_alloc_array( machine, UINT16, gx894_ram_size/2 ); state->save_item( NAME(state->m_gx894pwbba_output_data) ); state->save_pointer( NAME(state->m_gx894_ram), gx894_ram_size / 4 ); } /* ddr digital */ static DRIVER_INIT( ddrdigital ) { DRIVER_INIT_CALL(konami573); gx894pwbba_init( machine, gn845pwbb_output_callback ); } /* guitar freaks digital */ static DRIVER_INIT( gtrfrkdigital ) { DRIVER_INIT_CALL(konami573); gx894pwbba_init( machine, NULL ); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler( 0x1f600000, 0x1f6000ff, FUNC(gtrfrks_io_r), FUNC(gtrfrks_io_w) ); } /* ddr solo */ static void ddrsolo_output_callback( running_machine &machine, int offset, int data ) { switch( offset ) { case 4: case 7: case 12: case 15: /* DDR stage i/o */ break; case 8: output_set_value( "extra 4", !data ); break; case 9: output_set_value( "extra 2", !data ); break; case 10: output_set_value( "extra 1", !data ); break; case 11: output_set_value( "extra 3", !data ); break; case 16: output_set_value( "speaker", !data ); break; case 20: output_set_led_value( 0, !data ); // start break; case 21: output_set_value( "body center", !data ); break; case 22: output_set_value( "body right", !data ); break; case 23: output_set_value( "body left", !data ); break; default: // printf( "%d=%d\n", offset, data ); break; } } static DRIVER_INIT( ddrsolo ) { DRIVER_INIT_CALL(konami573); gx894pwbba_init( machine, ddrsolo_output_callback ); } /* drummania */ static void drmn_output_callback( running_machine &machine, int offset, int data ) { switch( offset ) { case 0: // drmn2+ case 16: // drmn output_set_value( "hi-hat", !data ); break; case 1: // drmn2+ case 17: // drmn output_set_value( "high tom", !data ); break; case 2: // drmn2+ case 18: // drmn output_set_value( "low tom", !data ); break; case 3: // drmn2+ case 19: // drmn output_set_value( "snare", !data ); break; case 8: // drmn2+ case 30: // drmn output_set_value( "spot left & right", !data ); break; case 9: // drmn2+ case 31: // drmn output_set_value( "neon top", data ); break; case 11: // drmn2+ case 27: // drmn output_set_value( "neon woofer", data ); break; case 12: // drmn2+ case 20: // drmn output_set_value( "cymbal", !data ); break; case 13: // drmn2+ case 21: // drmn output_set_led_value( 0, data ); // start break; case 14: // drmn2+ case 22: // drmn output_set_value( "select button", data ); break; case 23: // drmn case 26: // drmn break; default: // printf( "%d=%d\n", offset, data ); break; } } static DRIVER_INIT( drmn ) { DRIVER_INIT_CALL(konami573); gx700pwfbf_init( machine, drmn_output_callback ); } static DRIVER_INIT( drmndigital ) { DRIVER_INIT_CALL(konami573); gx894pwbba_init( machine, drmn_output_callback ); } /* dance maniax */ static void dmx_output_callback( running_machine &machine, int offset, int data ) { switch( offset ) { case 0: output_set_value( "blue io 8", !data ); break; case 1: output_set_value( "blue io 9", !data ); break; case 2: output_set_value( "red io 9", !data ); break; case 3: output_set_value( "red io 8", !data ); break; case 4: output_set_value( "blue io 6", !data ); break; case 5: output_set_value( "blue io 7", !data ); break; case 6: output_set_value( "red io 7", !data ); break; case 7: output_set_value( "red io 6", !data ); break; case 8: output_set_value( "blue io 4", !data ); break; case 9: output_set_value( "blue io 5", !data ); break; case 10: output_set_value( "red io 5", !data ); break; case 11: output_set_value( "red io 4", !data ); break; case 12: output_set_value( "blue io 10", !data ); break; case 13: output_set_value( "blue io 11", !data ); break; case 14: output_set_value( "red io 11", !data ); break; case 15: output_set_value( "red io 10", !data ); break; case 16: output_set_value( "blue io 0", !data ); break; case 17: output_set_value( "blue io 1", !data ); break; case 18: output_set_value( "red io 1", !data ); break; case 19: output_set_value( "red io 0", !data ); break; case 20: output_set_value( "blue io 2", !data ); break; case 21: output_set_value( "blue io 3", !data ); break; case 22: output_set_value( "red io 3", !data ); break; case 23: output_set_value( "red io 2", !data ); break; case 28: output_set_value( "yellow spot light", !data ); break; case 29: output_set_value( "blue spot light", !data ); break; case 31: output_set_value( "pink spot light", !data ); break; default: // printf( "%d=%d\n", offset, data ); break; } } static WRITE32_HANDLER( dmx_io_w ) { verboselog( space->machine(), 2, "dmx_io_w( %08x, %08x ) %08x\n", offset, mem_mask, data ); switch( offset ) { case 0: output_set_value( "left 2p", !( ( data >> 0 ) & 1 ) ); output_set_led_value( 1, !( ( data >> 1 ) & 1 ) ); // start 1p output_set_value( "right 2p", !( ( data >> 2 ) & 1 ) ); output_set_value( "left 1p", !( ( data >> 3 ) & 1 ) ); output_set_led_value( 0, !( ( data >> 4 ) & 1 ) ); // start 2p output_set_value( "right 1p", !( ( data >> 5 ) & 1 ) ); break; default: verboselog( space->machine(), 0, "dmx_io_w: unhandled offset %08x, %08x\n", offset, mem_mask ); break; } } static DRIVER_INIT( dmx ) { DRIVER_INIT_CALL(konami573); gx894pwbba_init( machine, dmx_output_callback ); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x1f600000, 0x1f6000ff, FUNC(dmx_io_w) ); } /* salary man champ */ static void salarymc_lamp_callback( running_machine &machine, int data ) { ksys573_state *state = machine.driver_data(); int d = ( data >> 7 ) & 1; int rst = ( data >> 6 ) & 1; int clk = ( data >> 5 ) & 1; if( rst ) { state->m_salarymc_lamp_bits = 0; state->m_salarymc_lamp_shift = 0; } if( state->m_salarymc_lamp_clk != clk ) { state->m_salarymc_lamp_clk = clk; if( state->m_salarymc_lamp_clk ) { state->m_salarymc_lamp_shift <<= 1; state->m_salarymc_lamp_shift |= d; state->m_salarymc_lamp_bits++; if( state->m_salarymc_lamp_bits == 16 ) { if( ( state->m_salarymc_lamp_shift & ~0xe38 ) != 0 ) { verboselog( machine, 0, "unknown bits in salarymc_lamp_shift %08x\n", state->m_salarymc_lamp_shift & ~0xe38 ); } output_set_value( "player 1 red", ( state->m_salarymc_lamp_shift >> 11 ) & 1 ); output_set_value( "player 1 green", ( state->m_salarymc_lamp_shift >> 10 ) & 1 ); output_set_value( "player 1 blue", ( state->m_salarymc_lamp_shift >> 9 ) & 1 ); output_set_value( "player 2 red", ( state->m_salarymc_lamp_shift >> 5 ) & 1 ); output_set_value( "player 2 green", ( state->m_salarymc_lamp_shift >> 4 ) & 1 ); output_set_value( "player 2 blue", ( state->m_salarymc_lamp_shift >> 3 ) & 1 ); state->m_salarymc_lamp_bits = 0; state->m_salarymc_lamp_shift = 0; } } } } static DRIVER_INIT( salarymc ) { ksys573_state *state = machine.driver_data(); DRIVER_INIT_CALL(konami573); state->m_security_callback = salarymc_lamp_callback; state->save_item( NAME(state->m_salarymc_lamp_bits) ); state->save_item( NAME(state->m_salarymc_lamp_shift) ); state->save_item( NAME(state->m_salarymc_lamp_clk) ); } /* Hyper Bishi Bashi Champ */ static void hyperbbc_lamp_callback( running_machine &machine, int data ) { ksys573_state *state = machine.driver_data(); int red = ( data >> 6 ) & 1; int blue = ( data >> 5 ) & 1; int green = ( data >> 4 ) & 1; int strobe1 = ( data >> 3 ) & 1; int strobe2 = ( data >> 0 ) & 1; if( strobe1 && !state->m_hyperbbc_lamp_strobe1 ) { output_set_value( "player 1 red", red ); output_set_value( "player 1 green", green ); output_set_value( "player 1 blue", blue ); } state->m_hyperbbc_lamp_strobe1 = strobe1; if( strobe2 && !state->m_hyperbbc_lamp_strobe2 ) { output_set_value( "player 2 red", red ); output_set_value( "player 2 green", green ); output_set_value( "player 2 blue", blue ); } state->m_hyperbbc_lamp_strobe2 = strobe2; } static DRIVER_INIT( hyperbbc ) { ksys573_state *state = machine.driver_data(); DRIVER_INIT_CALL(konami573); state->m_security_callback = hyperbbc_lamp_callback; state->save_item( NAME(state->m_hyperbbc_lamp_strobe1) ); state->save_item( NAME(state->m_hyperbbc_lamp_strobe2) ); } /* Mambo A Go Go */ static void mamboagg_output_callback( running_machine &machine, int offset, int data ) { switch( offset ) { case 4: output_set_value( "fire lamp left", !data ); break; case 5: output_set_value( "fire fan left", !data ); break; case 6: output_set_value( "fire fan right", !data ); break; case 7: output_set_value( "fire lamp right", !data ); break; case 28: output_set_value( "conga left", !data ); break; case 29: output_set_value( "conga right", !data ); break; case 31: output_set_value( "conga centre", !data ); break; } } static WRITE32_HANDLER( mamboagg_io_w ) { verboselog( space->machine(), 2, "mamboagg_io_w( %08x, %08x ) %08x\n", offset, mem_mask, data ); switch( offset ) { case 0: output_set_led_value( 0, !( ( data >> 3 ) & 1 ) ); // start 1p output_set_value( "select right", !( ( data >> 4 ) & 1 ) ); output_set_value( "select left", !( ( data >> 5 ) & 1 ) ); break; default: verboselog( space->machine(), 0, "mamboagg_io_w: unhandled offset %08x, %08x\n", offset, mem_mask ); break; } } static DRIVER_INIT( mamboagg ) { DRIVER_INIT_CALL(konami573); gx894pwbba_init( machine, mamboagg_output_callback ); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x1f600000, 0x1f6000ff, FUNC(mamboagg_io_w) ); } /* punch mania */ static double punchmania_inputs_callback( device_t *device, UINT8 input ) { ksys573_state *state = device->machine().driver_data(); double *pad_position = state->m_pad_position; int pads = input_port_read(device->machine(), "PADS"); for( int i = 0; i < 6; i++ ) { if( ( pads & ( 1 << i ) ) != 0 ) { pad_position[ i ] = 5; } } switch( input ) { case ADC083X_CH0: return pad_position[ 0 ]; /* Left Top */ case ADC083X_CH1: return pad_position[ 1 ]; /* Left Middle */ case ADC083X_CH2: return pad_position[ 2 ]; /* Left Bottom */ case ADC083X_CH3: return pad_position[ 3 ]; /* Right Top */ case ADC083X_CH4: return pad_position[ 4 ]; /* Right Middle */ case ADC083X_CH5: return pad_position[ 5 ]; /* Right Bottom */ case ADC083X_COM: return 0; case ADC083X_VREF: return 5; } return 5; } int pad_light[ 6 ]; static void punchmania_output_callback( running_machine &machine, int offset, int data ) { ksys573_state *state = machine.driver_data(); double *pad_position = state->m_pad_position; char pad[ 7 ]; switch( offset ) { case 8: output_set_value( "select_left_right", !data ); break; case 9: pad_light[ 2 ] = !data; output_set_value( "left_bottom_lamp", !data ); break; case 10: pad_light[ 1 ] = !data; output_set_value( "left_middle_lamp", !data ); break; case 11: output_set_value( "start_lamp", !data ); break; case 12: pad_light[ 0 ] = !data; output_set_value( "left_top_lamp", !data ); break; case 13: pad_light[ 4 ] = !data; output_set_value( "right_middle_lamp", !data ); break; case 14: pad_light[ 3 ] = !data; output_set_value( "right_top_lamp", !data ); break; case 15: pad_light[ 5 ] = !data; output_set_value( "right_bottom_lamp", !data ); break; case 16: if( data ) { pad_position[ 0 ] = 0; // left top motor + } break; case 17: if( data ) { pad_position[ 1 ] = 0; // left middle motor + } break; case 18: if( data ) { pad_position[ 1 ] = 5; // left middle motor - } break; case 19: if( data ) { pad_position[ 0 ] = 5; // left top motor - } break; case 20: if( data ) { pad_position[ 2 ] = 0; // left bottom motor + } break; case 21: if( data ) { pad_position[ 3 ] = 5; // right top motor - } break; case 22: if( data ) { pad_position[ 3 ] = 0; // right top motor + } break; case 23: if( data ) { pad_position[ 2 ] = 5; // left bottom motor - } break; case 26: if( data ) { pad_position[ 5 ] = 0; // right bottom motor + } break; case 27: if( data ) { pad_position[ 4 ] = 0; // right middle motor + } break; case 30: if( data ) { pad_position[ 4 ] = 5; // right middle motor - } break; case 31: if( data ) { pad_position[ 5 ] = 5; // right bottom motor - } break; } sprintf( pad, "%d%d%d%d%d%d", (int)pad_position[ 0 ], (int)pad_position[ 1 ], (int)pad_position[ 2 ], (int)pad_position[ 3 ], (int)pad_position[ 4 ], (int)pad_position[ 5 ] ); if( pad_light[ 0 ] ) pad[ 0 ] = '*'; if( pad_light[ 1 ] ) pad[ 1 ] = '*'; if( pad_light[ 2 ] ) pad[ 2 ] = '*'; if( pad_light[ 3 ] ) pad[ 3 ] = '*'; if( pad_light[ 4 ] ) pad[ 4 ] = '*'; if( pad_light[ 5 ] ) pad[ 5 ] = '*'; popmessage( "%s", pad ); } static const adc083x_interface punchmania_adc_interface = { punchmania_inputs_callback }; static DRIVER_INIT( punchmania ) { DRIVER_INIT_CALL(konami573); gx700pwfbf_init( machine, punchmania_output_callback ); } /* GunMania */ static WRITE32_HANDLER( gunmania_w ) { char s[ 1024 ] = ""; ksys573_state *state = space->machine().driver_data(); ds2401_device *ds2401 = space->machine().device("gunmania_id"); switch( offset ) { case 0x26: ds2401->write( ( data >> 5 ) & 1 ); break; case 0x2a: switch( data & 0xa0 ) { case 0x20: strcat( s, "cable holder motor release " ); state->m_cable_holder_release = 1; break; case 0x80: strcat( s, "cable holder motor catch " ); state->m_cable_holder_release = 0; break; case 0xa0: strcat( s, "cable holder motor stop " ); break; } switch( data & 0x50 ) { case 0x10: strcat( s, "bullet supply motor rotate " ); break; case 0x40: strcat( s, "bullet supply motor reverse " ); break; case 0x50: strcat( s, "bullet shutter motor unknown "); break; } switch( data & 0x0a ) { case 0x02: strcat( s, "tank shutter motor close " ); if( state->m_tank_shutter_position > 0 ) { state->m_tank_shutter_position--; } break; case 0x08: strcat( s, "tank shutter motor open " ); if( state->m_tank_shutter_position < 100 ) { state->m_tank_shutter_position++; } break; case 0x0a: strcat( s, "tank shutter motor unknown "); break; } if( ( data & ~0xfa ) != 0 ) { char unknown[ 128 ]; sprintf( unknown, "unknown bits %08x", data & ~0xfa ); strcat( s, unknown ); } if( s[ 0 ] != 0 ) { // popmessage( "%s", s ); } break; } verboselog( space->machine(), 2, "gunmania_w %08x %08x %08x\n", offset, mem_mask, data ); } static CUSTOM_INPUT( gunmania_tank_shutter_sensor ) { ksys573_state *state = field.machine().driver_data(); if( state->m_tank_shutter_position == 0 ) { return 1; } return 0; } static CUSTOM_INPUT( gunmania_cable_holder_sensor ) { ksys573_state *state = field.machine().driver_data(); return state->m_cable_holder_release; } static READ32_HANDLER( gunmania_r ) { UINT32 data = 0; ds2401_device *ds2401 = space->machine().device("gunmania_id"); switch( offset ) { case 0x20: data = input_port_read( space->machine(), "GUNX" ) | ds2401->read() << 7; break; case 0x22: data = input_port_read( space->machine(), "GUNY" ) | input_port_read( space->machine(), "SENSOR" ); break; case 0x34: data = input_port_read( space->machine(), "ENCODER" ); popmessage( "encoder %04x", data ); break; } verboselog( space->machine(), 2, "gunmania_r %08x %08x %08x\n", offset, mem_mask, data ); return data; } static DRIVER_INIT( gunmania ) { DRIVER_INIT_CALL(konami573); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler( 0x1f640000, 0x1f6400ff, FUNC(gunmania_r), FUNC(gunmania_w) ); } /* ADC0834 Interface */ static double analogue_inputs_callback( device_t *device, UINT8 input ) { switch (input) { case ADC083X_CH0: return (double)( 5 * input_port_read_safe( device->machine(), "analog0", 0 ) ) / 255.0; case ADC083X_CH1: return (double)( 5 * input_port_read_safe( device->machine(), "analog1", 0 ) ) / 255.0; case ADC083X_CH2: return (double)( 5 * input_port_read_safe( device->machine(), "analog2", 0 ) ) / 255.0; case ADC083X_CH3: return (double)( 5 * input_port_read_safe( device->machine(), "analog3", 0 ) ) / 255.0; case ADC083X_AGND: return 0; case ADC083X_VREF: return 5; } return 0; } static const adc083x_interface konami573_adc_interface = { analogue_inputs_callback }; static MACHINE_CONFIG_START( konami573, ksys573_state ) /* basic machine hardware */ MCFG_CPU_ADD( "maincpu", CXD8530CQ, XTAL_67_7376MHz ) MCFG_CPU_PROGRAM_MAP( konami573_map ) MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psx_dma_read_delegate( FUNC( cdrom_dma_read ), (ksys573_state *) owner ) ) MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psx_dma_write_delegate( FUNC( cdrom_dma_write ), (ksys573_state *) owner ) ) MCFG_MACHINE_RESET( konami573 ) // onboard flash MCFG_FUJITSU_29F016A_ADD("onboard.0") MCFG_FUJITSU_29F016A_ADD("onboard.1") MCFG_FUJITSU_29F016A_ADD("onboard.2") MCFG_FUJITSU_29F016A_ADD("onboard.3") MCFG_FUJITSU_29F016A_ADD("onboard.4") MCFG_FUJITSU_29F016A_ADD("onboard.5") MCFG_FUJITSU_29F016A_ADD("onboard.6") MCFG_FUJITSU_29F016A_ADD("onboard.7") /* video hardware */ MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561Q, 0x200000, XTAL_53_693175MHz ) MCFG_PSXGPU_VBLANK_CALLBACK( vblank_state_delegate( FUNC( sys573_vblank ), (ksys573_state *) owner ) ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SPU_ADD( "spu", XTAL_67_7376MHz/2, &spu_irq ) MCFG_SOUND_ROUTE( 0, "lspeaker", 1.0 ) MCFG_SOUND_ROUTE( 1, "rspeaker", 1.0 ) MCFG_SOUND_ADD( "cdda", CDDA, 0 ) MCFG_SOUND_ROUTE( 0, "lspeaker", 1.0 ) MCFG_SOUND_ROUTE( 1, "rspeaker", 1.0 ) MCFG_M48T58_ADD( "m48t58" ) MCFG_ADC0834_ADD( "adc0834", konami573_adc_interface ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( pccard1, konami573 ) // flash for pccard 1 MCFG_FUJITSU_29F016A_ADD("pccard1.0") MCFG_FUJITSU_29F016A_ADD("pccard1.1") MCFG_FUJITSU_29F016A_ADD("pccard1.2") MCFG_FUJITSU_29F016A_ADD("pccard1.3") MCFG_FUJITSU_29F016A_ADD("pccard1.4") MCFG_FUJITSU_29F016A_ADD("pccard1.5") MCFG_FUJITSU_29F016A_ADD("pccard1.6") MCFG_FUJITSU_29F016A_ADD("pccard1.7") MCFG_FUJITSU_29F016A_ADD("pccard1.8") MCFG_FUJITSU_29F016A_ADD("pccard1.9") MCFG_FUJITSU_29F016A_ADD("pccard1.10") MCFG_FUJITSU_29F016A_ADD("pccard1.11") MCFG_FUJITSU_29F016A_ADD("pccard1.12") MCFG_FUJITSU_29F016A_ADD("pccard1.13") MCFG_FUJITSU_29F016A_ADD("pccard1.14") MCFG_FUJITSU_29F016A_ADD("pccard1.15") MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( pccard2, konami573 ) // flash for pccard 2 MCFG_FUJITSU_29F016A_ADD("pccard2.0") MCFG_FUJITSU_29F016A_ADD("pccard2.1") MCFG_FUJITSU_29F016A_ADD("pccard2.2") MCFG_FUJITSU_29F016A_ADD("pccard2.3") MCFG_FUJITSU_29F016A_ADD("pccard2.4") MCFG_FUJITSU_29F016A_ADD("pccard2.5") MCFG_FUJITSU_29F016A_ADD("pccard2.6") MCFG_FUJITSU_29F016A_ADD("pccard2.7") MCFG_FUJITSU_29F016A_ADD("pccard2.8") MCFG_FUJITSU_29F016A_ADD("pccard2.9") MCFG_FUJITSU_29F016A_ADD("pccard2.10") MCFG_FUJITSU_29F016A_ADD("pccard2.11") MCFG_FUJITSU_29F016A_ADD("pccard2.12") MCFG_FUJITSU_29F016A_ADD("pccard2.13") MCFG_FUJITSU_29F016A_ADD("pccard2.14") MCFG_FUJITSU_29F016A_ADD("pccard2.15") MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( k573bait, konami573 ) /* Additional NEC Encoder */ MCFG_UPD4701_ADD( "upd4701" ) MACHINE_CONFIG_END // Variants with additional digital sound board static MACHINE_CONFIG_DERIVED( k573d, konami573 ) MCFG_MAS3507D_ADD( "mpeg" ) MCFG_DS2401_ADD( "digital_id" ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( pccard1d, pccard1 ) MCFG_MAS3507D_ADD( "mpeg" ) MCFG_DS2401_ADD( "digital_id" ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( pccard2d, pccard2 ) MCFG_MAS3507D_ADD( "mpeg" ) MCFG_DS2401_ADD( "digital_id" ) MACHINE_CONFIG_END // Security eeprom variants // // Suffixes are used to select them // x = x76f041 // y = x76f100 // z = zs01 // // i = also use one or two ds2401 // // Up to two carts can be used static MACHINE_CONFIG_DERIVED( konami573x, konami573 ) MCFG_X76F041_ADD( "install_eeprom" ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( konami573y, konami573 ) MCFG_X76F100_ADD( "install_eeprom" ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( konami573yi, konami573 ) MCFG_X76F100_ADD( "install_eeprom" ) MCFG_DS2401_ADD( "install_id" ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( konami573zi, konami573 ) MCFG_ZS01_ADD( "install_eeprom", "install_id" ) MCFG_DS2401_ADD( "install_id" ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( k573baitx, k573bait ) MCFG_X76F041_ADD( "install_eeprom" ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( k573dx, k573d ) MCFG_X76F041_ADD( "install_eeprom" ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( k573dxi, k573d ) MCFG_X76F041_ADD( "install_eeprom" ) MCFG_DS2401_ADD( "install_id" ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( k573dxzi, k573d ) MCFG_X76F041_ADD( "install_eeprom" ) MCFG_DS2401_ADD( "install_id" ) MCFG_ZS01_ADD( "game_eeprom", "game_id" ) MCFG_DS2401_ADD( "game_id" ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( k573dyi, k573d ) MCFG_X76F100_ADD( "install_eeprom" ) MCFG_DS2401_ADD( "install_id" ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( k573dyyi, k573d ) MCFG_X76F100_ADD( "install_eeprom" ) MCFG_DS2401_ADD( "install_id" ) MCFG_X76F100_ADD( "game_eeprom" ) MCFG_DS2401_ADD( "game_id" ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( k573dzi, k573d ) MCFG_ZS01_ADD( "install_eeprom", "install_id" ) MCFG_DS2401_ADD( "install_id" ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( pccard1x, pccard1 ) MCFG_X76F041_ADD( "install_eeprom" ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( pccard1xi, pccard1 ) MCFG_X76F041_ADD( "install_eeprom" ) MCFG_DS2401_ADD( "install_id" ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( pccard1yi, pccard1 ) MCFG_X76F100_ADD( "install_eeprom" ) MCFG_DS2401_ADD( "install_id" ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( pccard1dxzi, pccard1d ) MCFG_X76F041_ADD( "install_eeprom" ) MCFG_DS2401_ADD( "install_id" ) MCFG_ZS01_ADD( "game_eeprom", "game_id" ) MCFG_DS2401_ADD( "game_id" ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( pccard1dzi, pccard1d ) MCFG_ZS01_ADD( "install_eeprom", "install_id" ) MCFG_DS2401_ADD( "install_id" ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( pccard2yyi, pccard2 ) MCFG_X76F100_ADD( "install_eeprom" ) MCFG_DS2401_ADD( "install_id" ) MCFG_X76F100_ADD( "game_eeprom" ) MCFG_DS2401_ADD( "game_id" ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( pccard2dxzi, pccard2d ) MCFG_X76F041_ADD( "install_eeprom" ) MCFG_DS2401_ADD( "install_id" ) MCFG_ZS01_ADD( "game_eeprom", "game_id" ) MCFG_DS2401_ADD( "game_id" ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( pccard2dyyi, pccard2d ) MCFG_X76F100_ADD( "install_eeprom" ) MCFG_DS2401_ADD( "install_id" ) MCFG_X76F100_ADD( "game_eeprom" ) MCFG_DS2401_ADD( "game_id" ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( pccard2dzi, pccard2d ) MCFG_ZS01_ADD( "install_eeprom", "install_id" ) MCFG_DS2401_ADD( "install_id" ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( punchmania, pccard1xi ) MCFG_ADC0838_ADD( "adc0838", punchmania_adc_interface ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( punchmania2, punchmania ) // flash for pccard 3 MCFG_FUJITSU_29F016A_ADD("pccard3.0") MCFG_FUJITSU_29F016A_ADD("pccard3.1") MCFG_FUJITSU_29F016A_ADD("pccard3.2") MCFG_FUJITSU_29F016A_ADD("pccard3.3") MCFG_FUJITSU_29F016A_ADD("pccard3.4") MCFG_FUJITSU_29F016A_ADD("pccard3.5") MCFG_FUJITSU_29F016A_ADD("pccard3.6") MCFG_FUJITSU_29F016A_ADD("pccard3.7") MCFG_FUJITSU_29F016A_ADD("pccard3.8") MCFG_FUJITSU_29F016A_ADD("pccard3.9") MCFG_FUJITSU_29F016A_ADD("pccard3.10") MCFG_FUJITSU_29F016A_ADD("pccard3.11") MCFG_FUJITSU_29F016A_ADD("pccard3.12") MCFG_FUJITSU_29F016A_ADD("pccard3.13") MCFG_FUJITSU_29F016A_ADD("pccard3.14") MCFG_FUJITSU_29F016A_ADD("pccard3.15") // flash for pccard 4 MCFG_FUJITSU_29F016A_ADD("pccard4.0") MCFG_FUJITSU_29F016A_ADD("pccard4.1") MCFG_FUJITSU_29F016A_ADD("pccard4.2") MCFG_FUJITSU_29F016A_ADD("pccard4.3") MCFG_FUJITSU_29F016A_ADD("pccard4.4") MCFG_FUJITSU_29F016A_ADD("pccard4.5") MCFG_FUJITSU_29F016A_ADD("pccard4.6") MCFG_FUJITSU_29F016A_ADD("pccard4.7") MCFG_FUJITSU_29F016A_ADD("pccard4.8") MCFG_FUJITSU_29F016A_ADD("pccard4.9") MCFG_FUJITSU_29F016A_ADD("pccard4.10") MCFG_FUJITSU_29F016A_ADD("pccard4.11") MCFG_FUJITSU_29F016A_ADD("pccard4.12") MCFG_FUJITSU_29F016A_ADD("pccard4.13") MCFG_FUJITSU_29F016A_ADD("pccard4.14") MCFG_FUJITSU_29F016A_ADD("pccard4.15") MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( gunmania, pccard2 ) MCFG_DS2401_ADD( "gunmania_id" ) MACHINE_CONFIG_END static INPUT_PORTS_START( konami573 ) PORT_START("IN0") PORT_BIT( 0xffffffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("OUT0") PORT_BIT( 0x00000002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("adc0834", adc083x_cs_write) PORT_BIT( 0x00000004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("adc0834", adc083x_clk_write) PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("adc0834", adc083x_di_write) PORT_START("IN1") PORT_DIPNAME( 0x00000001, 0x00000001, "Unused 1" ) PORT_DIPLOCATION( "DIP SW:1" ) PORT_DIPSETTING( 0x00000001, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) PORT_DIPNAME( 0x00000002, 0x00000002, "Screen Flip" ) PORT_DIPLOCATION( "DIP SW:2" ) PORT_DIPSETTING( 0x00000002, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x00000000, "V-Flip" ) PORT_DIPNAME( 0x00000004, 0x00000004, "Unused 2") PORT_DIPLOCATION( "DIP SW:3" ) PORT_DIPSETTING( 0x00000004, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) PORT_DIPNAME( 0x00000008, 0x00000000, "Start Up Device" ) PORT_DIPLOCATION( "DIP SW:4" ) PORT_DIPSETTING( 0x00000008, "CD-ROM Drive" ) PORT_DIPSETTING( 0x00000000, "Flash ROM" ) PORT_BIT( 0x000000f0, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 0xc0 */ PORT_BIT( 0x00000100, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_BIT( 0x00000200, IP_ACTIVE_HIGH, IPT_SPECIAL ) // PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONFNAME( 0x00001000, 0x00001000, "Network?" ) PORT_CONFSETTING( 0x00001000, DEF_STR( Off ) ) PORT_CONFSETTING( 0x00000000, DEF_STR( On ) ) // PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00010000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("adc0834", adc083x_do_read) // PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00040000, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* x76f041/zs01 sda */ PORT_BIT( 0x00080000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00100000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* skip hang at startup */ PORT_BIT( 0x00200000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* skip hang at startup */ // PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PORT_BIT( 0x00800000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x04000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* PCCARD 1 */ PORT_BIT( 0x08000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* PCCARD 2 */ PORT_BIT( 0x10000000, IP_ACTIVE_LOW, IPT_SERVICE1 ) // PORT_BIT( 0x20000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // PORT_BIT( 0x80000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("IN2") PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* skip init? */ PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_START1 ) /* skip init? */ PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) /* skip init? */ PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_START2 ) /* skip init? */ PORT_START("IN3") PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_SERVICE_NO_TOGGLE( 0x00000400, IP_ACTIVE_LOW ) PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) // PORT_BIT( 0xf0fff0ff, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("CART") PORT_CONFNAME( 1, 0, "Security Cart" ) PORT_CONFSETTING( 0, "Install" ) PORT_CONFSETTING( 1, "Game" ) PORT_START("CD") PORT_CONFNAME( 1, 0, "CD" ) PORT_CONFSETTING( 0, "1" ) PORT_CONFSETTING( 1, "2" ) INPUT_PORTS_END static INPUT_PORTS_START( fbaitbc ) PORT_INCLUDE( konami573 ) PORT_START( "uPD4701_y" ) PORT_BIT( 0x0fff, 0, IPT_MOUSE_Y ) PORT_MINMAX( 0, 0xfff ) PORT_SENSITIVITY( 15 ) PORT_KEYDELTA( 8 ) PORT_RESET PORT_START( "uPD4701_switches" ) PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(1) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_PLAYER(1) INPUT_PORTS_END static INPUT_PORTS_START( fbaitmc ) PORT_INCLUDE( fbaitbc ) PORT_START( "analog0" ) PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x20,0xdf) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_PLAYER(1) PORT_REVERSE PORT_START( "analog1" ) PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x20,0xdf) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_PLAYER(1) INPUT_PORTS_END static INPUT_PORTS_START( ddr ) PORT_INCLUDE( konami573 ) PORT_MODIFY("IN2") PORT_BIT( 0x00000f0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(gn845pwbb_read, NULL) PORT_START( "STAGE" ) PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY PORT_PLAYER(1) PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_PLAYER(1) /* multiplexor */ PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_16WAY PORT_PLAYER(1) /* multiplexor */ PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_16WAY PORT_PLAYER(1) PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY PORT_PLAYER(2) PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_PLAYER(2) /* multiplexor */ PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_16WAY PORT_PLAYER(2) /* multiplexor */ PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_16WAY PORT_PLAYER(2) INPUT_PORTS_END static INPUT_PORTS_START( ddrsolo ) PORT_INCLUDE( konami573 ) PORT_MODIFY("IN2") PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY PORT_PLAYER(1) PORT_NAME( "P1 Left 1" ) PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_PLAYER(1) PORT_NAME( "P1 Right 1" ) PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_16WAY PORT_PLAYER(1) PORT_NAME( "P1 Up 1" ) PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_16WAY PORT_PLAYER(1) PORT_NAME( "P1 Down 1" ) PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME( "P1 Up-Left 2" ) /* P1 BUTTON 1 */ PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY PORT_PLAYER(1) PORT_NAME( "P1 Left 2" ) /* P1 BUTTON 2 */ PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_16WAY PORT_PLAYER(1) PORT_NAME( "P1 Down 2" ) /* P1 BUTTON 3 */ PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_16WAY PORT_PLAYER(1) PORT_NAME( "P1 Up-Left 1" ) /* P2 LEFT */ PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_16WAY PORT_PLAYER(1) PORT_NAME( "P1 Up-Right 1" ) /* P2 RIGHT */ PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 UP */ PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 DOWN */ PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_NAME( "P1 Up 2" ) /* P2 BUTTON1 */ PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_PLAYER(1) PORT_NAME( "P1 Right 2" ) /* P2 BUTTON2 */ PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_NAME( "P1 Up-Right 2" ) /* P2 BUTTON3 */ PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* P2 START */ PORT_MODIFY("IN3") PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON4 */ PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME( "P1 Select L" ) /* P1 BUTTON5 */ PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON6 */ PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON4 */ PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME( "P1 Select R" ) /* P2 BUTTON5 */ PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON6 */ INPUT_PORTS_END static INPUT_PORTS_START( gtrfrks ) PORT_INCLUDE( konami573 ) PORT_MODIFY("IN1") PORT_BIT( 0x10000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* SERVICE1 */ PORT_MODIFY("IN2") PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_NAME("P1 Effect 1") PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_NAME("P1 Effect 2") PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) PORT_NAME("P1 Pick") PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(1) PORT_NAME("P1 Wailing") PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Button R") PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Button G") PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("P1 Button B") PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_NAME("P2 Effect 1") PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) PORT_NAME("P2 Effect 2") PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) PORT_NAME("P2 Pick") PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(2) PORT_NAME("P2 Wailing") PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Button R") PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Button G") PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME("P2 Button B") PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_START2 ) PORT_MODIFY("IN3") PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_SERVICE1 ) /* P1 BUTTON4 */ PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON5 */ PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON6 */ PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_SERVICE2 ) /* P1 BUTTON4 */ PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON5 */ PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON6 */ INPUT_PORTS_END static INPUT_PORTS_START( dmx ) PORT_INCLUDE( konami573 ) PORT_MODIFY("IN2") PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME( "D-Sensor D1 L" ) /* P1 LEFT */ PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME( "D-Sensor D1 R" ) /* P1 RIGHT */ PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY PORT_PLAYER(1) PORT_NAME( "P1 Select L" ) /* P1 UP */ PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_PLAYER(1) PORT_NAME( "P1 Select R" ) /* P1 DOWN */ PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME( "D-Sensor U L" ) /* P1 BUTTON1 */ PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_NAME( "D-Sensor U R" ) /* P1 BUTTON2 */ PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON3 */ PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME( "D-Sensor D1 L" ) /* P2 LEFT */ PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME( "D-Sensor D1 R" ) /* P2 RIGHT */ PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY PORT_PLAYER(2) PORT_NAME( "P2 Select L" ) /* P2 UP */ PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_PLAYER(2) PORT_NAME( "P2 Select R" ) /* P2 DOWN */ PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME( "D-Sensor U L" ) /* P2 BUTTON1 */ PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_NAME( "D-Sensor U R" ) /* P2 BUTTON2 */ PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON3 */ PORT_MODIFY("IN3") PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_NAME( "D-Sensor D0 L" ) /* P1 BUTTON4 */ PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) PORT_NAME( "D-Sensor D0 R" ) /* P1 BUTTON5 */ PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON6 */ PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) PORT_NAME( "D-Sensor D0 L" ) /* P2 BUTTON4 */ PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) PORT_NAME( "D-Sensor D0 R" ) /* P2 BUTTON5 */ PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON6 */ INPUT_PORTS_END static INPUT_PORTS_START( drmn ) PORT_INCLUDE( konami573 ) PORT_MODIFY("IN1") PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* COIN2 */ PORT_MODIFY("IN2") PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME( "High Tom" ) /* P1 LEFT */ PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME( "Low Tom" ) /* P1 RIGHT */ PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME( "Hi-Hat" ) /* P1 UP */ PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_NAME( "Snare" ) /* P1 DOWN */ PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_NAME( "Cymbal" ) /* P1 BUTTON 1 */ PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON 2 */ PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) PORT_NAME( "Bass Drum" ) /* P1 BUTTON 3 */ PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY PORT_PLAYER(1) PORT_NAME( "Select L" ) /* P2 LEFT */ PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_PLAYER(1) PORT_NAME( "Select R" ) /* P2 RIGHT */ PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 UP */ PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 DOWN */ PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON1 */ PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON2 */ PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON3 */ PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 START */ PORT_MODIFY("IN3") PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON4 */ PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON5 */ PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON6 */ PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON4 */ PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON5 */ PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON6 */ INPUT_PORTS_END static INPUT_PORTS_START( gunmania ) PORT_INCLUDE( konami573 ) PORT_MODIFY("IN1") PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_MODIFY("IN2") PORT_BIT( 0x000000ff, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(1) PORT_NAME( "Bullet Tube-1 Sensor" ) PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) PORT_NAME( "Bullet Tube-2 Sensor" ) PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_NAME( "Safety Sensor Under" ) PORT_BIT( 0x00000100, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM( gunmania_tank_shutter_sensor, NULL ) PORT_MODIFY("IN3") PORT_BIT( 0x0d000b00, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x02000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM( gunmania_cable_holder_sensor, NULL ) PORT_START("GUNX") PORT_BIT( 0x7f, 0x2f, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0x00,0x5f) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_PLAYER(1) PORT_START("GUNY") PORT_BIT( 0x7f, 0x1f, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0x00,0x3f) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_PLAYER(1) PORT_START( "SENSOR" ) PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_PLAYER(1) PORT_NAME( "Safety Sensor Front" ) PORT_START( "ENCODER" ) PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(4) PORT_CODE(KEYCODE_Q) PORT_BIT( 0x00000002, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(4) PORT_CODE(KEYCODE_W) PORT_BIT( 0x00000004, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(4) PORT_CODE(KEYCODE_E) PORT_BIT( 0x00000008, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(4) PORT_CODE(KEYCODE_R) PORT_BIT( 0x00000010, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER(4) PORT_CODE(KEYCODE_T) PORT_BIT( 0x00000020, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER(4) PORT_CODE(KEYCODE_Y) PORT_BIT( 0x00000040, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_PLAYER(4) PORT_CODE(KEYCODE_U) PORT_BIT( 0x00000080, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_PLAYER(4) PORT_CODE(KEYCODE_I) INPUT_PORTS_END static INPUT_PORTS_START( hyperbbc ) PORT_INCLUDE( konami573 ) PORT_MODIFY("IN2") PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_START2 ) /* P1 UP */ PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 START */ INPUT_PORTS_END static INPUT_PORTS_START( mamboagg ) PORT_INCLUDE( konami573 ) PORT_MODIFY("IN1") PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME( "Right Pad 1 (Top Right)" ) /* COIN2 */ PORT_MODIFY("IN2") PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_PLAYER(1) PORT_NAME( "Centre Pad 3 (Middle Right)" ) /* P1 UP */ PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME( "Centre Pad 1 (Top Right)" ) /* P1 DOWN */ PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_NAME( "Left Pad 2 (Bottom Left)" ) /* P1 BUTTON 1 */ PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME( "Left Pad 1 (Top Left)" ) /* P1 BUTTON 2 */ PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(1) PORT_NAME( "Left Pad 3 (Bottom Right)" ) /* P1 BUTTON 3 */ PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_NAME( "Centre Pad 2 (Bottom Left)" ) /* P2 LEFT */ PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_PLAYER(1) PORT_NAME( "Centre Pad 3 (Bottom Right)" ) /* P2 RIGHT */ PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME( "Centre Pad 1 (Top Left)" ) /* P2 UP */ PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_NAME( "Centre Pad 2 (Middle Left)" ) /* P2 DOWN */ PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) PORT_NAME( "Right Pad 2 (Bottom Left)" ) /* P2 BUTTON1 */ PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME( "Right Pad 1 (Top Left)" ) /* P2 BUTTON2 */ PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_PLAYER(1) PORT_NAME( "Right Pad 3 (Bottom Right)" ) /* P2 BUTTON3 */ PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME( "Left Pad 1 (Top Right)" ) /* P2 START */ PORT_MODIFY("IN3") PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(1) PORT_NAME( "Left Pad 3 (Middle Right)" ) /* P1 BUTTON4 */ PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_NAME( "Left Pad 2 (Middle Left)" ) /* P1 BUTTON5 */ PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON6 */ PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_PLAYER(1) PORT_NAME( "Right Pad 3 (Middle Right)" ) /* P2 BUTTON4 */ PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) PORT_NAME( "Right Pad 2 (Middle Left)" ) /* P2 BUTTON5 */ PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON6 */ INPUT_PORTS_END static INPUT_PORTS_START( punchmania ) PORT_INCLUDE( konami573 ) PORT_MODIFY("IN1") PORT_BIT( 0x00000100, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("adc0838", adc083x_do_read) PORT_BIT( 0x00000200, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE("adc0838", adc083x_sars_read) PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START( "OUT1" ) PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("adc0838", adc083x_cs_write) PORT_BIT( 0x00000002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("adc0838", adc083x_clk_write) PORT_BIT( 0x00000020, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("adc0838", adc083x_di_write) PORT_MODIFY("IN2") PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY PORT_PLAYER(1) PORT_NAME( "Select L" ) /* P2 LEFT */ PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_PLAYER(1) PORT_NAME( "Select R" ) /* P2 RIGHT */ PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(1) PORT_NAME( "Skip Check" ) PORT_BIT( 0x00005ffc, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_MODIFY("IN3") PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON4 */ PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON5 */ PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNUSED ) /* P1 BUTTON6 */ PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON4 */ PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON5 */ PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_UNUSED ) /* P2 BUTTON6 */ PORT_START( "PADS" ) PORT_BIT( 0x00000001, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME( "Top Left" ) PORT_BIT( 0x00000002, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME( "Middle Left" ) PORT_BIT( 0x00000004, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME( "Bottom Left" ) PORT_BIT( 0x00000008, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_NAME( "Top Right" ) PORT_BIT( 0x00000010, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_NAME( "Middle Right" ) PORT_BIT( 0x00000020, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER(1) PORT_NAME( "Bottom Right" ) INPUT_PORTS_END #define SYS573_BIOS_A \ ROM_REGION32_LE( 0x080000, "bios", 0 ) \ ROM_LOAD( "700a01.22g", 0x0000000, 0x080000, CRC(11812ef8) SHA1(e1284add4aaddd5337bd7f4e27614460d52b5b48)) #define SYS573_DIGITAL_ID \ ROM_REGION( 0x000008, "digital_id", 0 ) /* digital board id */ \ ROM_LOAD( "digital-id.bin", 0x000000, 0x000008, CRC(2b977f4d) SHA1(2b108a56653f91cb3351718c45dfcf979bc35ef1) ) // BIOS ROM_START( sys573 ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_END // Games ROM_START( bassangl ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "ge765ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(ee1b32a7) SHA1(c0f6b14b054f5a95ce474e794a3e0ca78faac681) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "765jaa02", 0, SHA1(4291711b1025733cb97f6da5dc3b03c189fcc37c) ) ROM_END ROM_START( bassang2 ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gc865ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(095cbfb5) SHA1(529ce0a7b0986cf7e64c37f466d6c2dac95cea7f) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "865jaa02", 0, SHA1(b98d9aa54f13aa73bea580d6494cb6a7f3217be3) ) ROM_END ROM_START( cr589fw ) SYS573_BIOS_A DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "700b04", 0, SHA1(2f65f62eb7ae202153a8544989675989ed33316f) ) ROM_END ROM_START( cr589fwa ) SYS573_BIOS_A DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "700a04", 0, SHA1(554481f48eeb5daf8b4e7be2d66840d6c8454a52) ) ROM_END ROM_START( darkhleg ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gx706ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(72b42574) SHA1(79dc959f0ce95ccb9ac0dbf0a72aec973e91bc56) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "706jaa02", 0, SHA1(58bd06855988250028086cba6b3670372b9d96a0) ) ROM_END ROM_START( ddrextrm ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gcc36ja.u1", 0x000000, 0x001014, BAD_DUMP CRC(c1601287) SHA1(929691a78f7bb6dd830f832f301116df0da1619b) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gcc36ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "c36jaa02", 0, SHA1(edeb45fff0e66151b1ba2fd67542064ccddb031e) ) ROM_END ROM_START( ddru ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gn845ua.u1", 0x000000, 0x000224, BAD_DUMP CRC(c9e7fced) SHA1(aac4dde100091bc64d397f53484a0ffbf68b8101) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "845uaa02", 0, SHA1(d3f9290d4dadb5e9b82ebe77abf7b99d1a89f716) ) ROM_END ROM_START( ddrj ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gc845jb.u1", 0x000000, 0x000224, BAD_DUMP CRC(a16f42b8) SHA1(da4f1eb3eb2b28cb3a0bc74bb9b9945970f56ac2) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "845jba02", 0, SHA1(2d10378c89fe85682f262f0987f8366b9ea72f11) ) ROM_END ROM_START( ddrja ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gc845ja.u1", 0x000000, 0x000224, NO_DUMP ) ROM_REGION( 0x200000, "onboard.0", 0 ) /* onboard flash */ ROM_LOAD( "gc845jaa.31m", 0x000000, 0x200000, NO_DUMP ) ROM_REGION( 0x200000, "onboard.1", 0 ) /* onboard flash */ ROM_LOAD( "gc845jaa.27m", 0x000000, 0x200000, NO_DUMP ) ROM_REGION( 0x200000, "onboard.2", 0 ) /* onboard flash */ ROM_LOAD( "gc845jaa.31l", 0x000000, 0x200000, NO_DUMP ) ROM_REGION( 0x200000, "onboard.3", 0 ) /* onboard flash */ ROM_LOAD( "gc845jaa.27l", 0x000000, 0x200000, NO_DUMP ) ROM_REGION( 0x200000, "onboard.4", 0 ) /* onboard flash */ ROM_LOAD( "gc845jaa.31j", 0x000000, 0x200000, NO_DUMP ) ROM_REGION( 0x200000, "onboard.5", 0 ) /* onboard flash */ ROM_LOAD( "gc845jaa.27j", 0x000000, 0x200000, NO_DUMP ) ROM_REGION( 0x200000, "onboard.6", 0 ) /* onboard flash */ ROM_LOAD( "gc845jaa.31h", 0x000000, 0x200000, NO_DUMP ) ROM_REGION( 0x200000, "onboard.7", 0 ) /* onboard flash */ ROM_LOAD( "gc845jaa.27h", 0x000000, 0x200000, NO_DUMP ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "845jaa02", 0, SHA1(37ca16be25bee39a5692dee2fa5f0fa0addfaaca) ) DISK_REGION( "cdrom1" ) DISK_IMAGE_READONLY( "845jaa01", 1, NO_DUMP ) // if this even exists ROM_END ROM_START( ddrjb ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gc845ja.u1", 0x000000, 0x000224, NO_DUMP ) ROM_REGION( 0x200000, "onboard.0", 0 ) /* onboard flash */ ROM_LOAD( "gc845jab.31m", 0x000000, 0x200000, NO_DUMP ) ROM_REGION( 0x200000, "onboard.1", 0 ) /* onboard flash */ ROM_LOAD( "gc845jab.27m", 0x000000, 0x200000, NO_DUMP ) ROM_REGION( 0x200000, "onboard.2", 0 ) /* onboard flash */ ROM_LOAD( "gc845jab.31l", 0x000000, 0x200000, NO_DUMP ) ROM_REGION( 0x200000, "onboard.3", 0 ) /* onboard flash */ ROM_LOAD( "gc845jab.27l", 0x000000, 0x200000, NO_DUMP ) ROM_REGION( 0x200000, "onboard.4", 0 ) /* onboard flash */ ROM_LOAD( "gc845jab.31j", 0x000000, 0x200000, NO_DUMP ) ROM_REGION( 0x200000, "onboard.5", 0 ) /* onboard flash */ ROM_LOAD( "gc845jab.27j", 0x000000, 0x200000, NO_DUMP ) ROM_REGION( 0x200000, "onboard.6", 0 ) /* onboard flash */ ROM_LOAD( "gc845jab.31h", 0x000000, 0x200000, NO_DUMP ) ROM_REGION( 0x200000, "onboard.7", 0 ) /* onboard flash */ ROM_LOAD( "gc845jab.27h", 0x000000, 0x200000, NO_DUMP ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "845jab02", 0, SHA1(7bdcef37bf376c23153dfd1580de5666cc681335) ) DISK_REGION( "cdrom1" ) DISK_IMAGE_READONLY( "845jab01", 1, NO_DUMP ) // if this even exists ROM_END ROM_START( ddra ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gn845aa.u1", 0x000000, 0x000224, BAD_DUMP CRC(327c4851) SHA1(f0939224af706fd103a67aae9c96518c1db90ac9) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "845aaa02", 0, SHA1(839e2f8698a1561ac364998b8b3158ef0dee6998) ) ROM_END ROM_START( ddr2m ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gn895jaa.u1", 0x000000, 0x000224, BAD_DUMP CRC(363f427e) SHA1(adec886a07b9bd91f142f286b04fc6582205f037) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "895jaa02", 0, SHA1(cfe3a6f3ed62ba388b07045e29e22472d17dcfe4) ) ROM_END ROM_START( ddr2mc ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gn896ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(cbc984c5) SHA1(6c0cd78a41000999b4ffbd9fb3707738b50a9b50) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "896jaa01", 0, SHA1(f802a0e2ba0147eb71c54d92af409c3010a5715f) ) DISK_REGION( "cdrom1" ) DISK_IMAGE_READONLY( "895jaa02", 1, SHA1(cfe3a6f3ed62ba388b07045e29e22472d17dcfe4) ) ROM_END ROM_START( ddr2mc2 ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "ge984ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(cbc984c5) SHA1(6c0cd78a41000999b4ffbd9fb3707738b50a9b50) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "984jaa01", 0, SHA1(5505c28be27bfa9648060fd799bcf0c2c5f608ed) ) DISK_REGION( "cdrom1" ) DISK_IMAGE_READONLY( "895jaa02", 1, SHA1(cfe3a6f3ed62ba388b07045e29e22472d17dcfe4) ) ROM_END ROM_START( ddr2ml ) SYS573_BIOS_A ROM_REGION( 0x080000, "cpu2", 0 ) /* memory card reader */ ROM_LOAD( "885a01.bin", 0x000000, 0x080000, CRC(e22d093f) SHA1(927f62f63b5caa7899392decacd12fea0e6fdbea) ) ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "ge885jaa.u1", 0x000000, 0x000224, BAD_DUMP CRC(cbc984c5) SHA1(6c0cd78a41000999b4ffbd9fb3707738b50a9b50) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "885jab01", 0, SHA1(c2bbb9e2e6f34e07f57e7076726af81df39f55c9) ) DISK_REGION( "cdrom1" ) DISK_IMAGE_READONLY( "885jaa02", 0, SHA1(5d187aea247eefc5c065566ab277acd8c942ba27) ) ROM_END ROM_START( ddr2mla ) SYS573_BIOS_A ROM_REGION( 0x080000, "cpu2", 0 ) /* memory card reader */ ROM_LOAD( "885a01.bin", 0x000000, 0x080000, CRC(e22d093f) SHA1(927f62f63b5caa7899392decacd12fea0e6fdbea) ) ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "ge885jaa.u1", 0x000000, 0x000224, BAD_DUMP CRC(cbc984c5) SHA1(6c0cd78a41000999b4ffbd9fb3707738b50a9b50) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "885jaa02", 0, SHA1(5d187aea247eefc5c065566ab277acd8c942ba27) ) ROM_END ROM_START( ddr3ma ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000084, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "ge887aa.u1", 0x000000, 0x000084, BAD_DUMP CRC(4ce86d32) SHA1(94cdb9873a7f7503acc3b763e9b49ec6af53533f) ) ROM_REGION( 0x0000084, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "gn887aa.u1", 0x000000, 0x000084, BAD_DUMP CRC(bb14f9bd) SHA1(9d0adf5a32d8bbcaaea2f701f5c7a5d51ee0b8bf) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "ge887aa.u6", 0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "gn887aa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "887aaa02", 0, SHA1(c4136305b97123f5dfe3ecd34a10ddda0180da3d) ) ROM_END ROM_START( ddr3mj ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000084, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "ge887ja.u1", 0x000000, 0x000084, BAD_DUMP CRC(3a377cec) SHA1(5bf3107a89547bd7697d9f0ab8f67240e101a559) ) ROM_REGION( 0x0000084, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "gn887ja.u1", 0x000000, 0x000084, BAD_DUMP CRC(2f633432) SHA1(bce44f20a5a7318af6aea4fdfa8af64ddb76047c) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "ge887ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "gn887ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "887jaa02", 0, SHA1(2d1bf2a1566292dc869afaa6486f5ecd3973ff62) ) ROM_END ROM_START( ddr3mk ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000084, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "ge887kb.u1", 0x000000, 0x000084, BAD_DUMP CRC(4ce86d32) SHA1(94cdb9873a7f7503acc3b763e9b49ec6af53533f) ) ROM_REGION( 0x0000084, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "gn887kb.u1", 0x000000, 0x000084, BAD_DUMP CRC(bb14f9bd) SHA1(9d0adf5a32d8bbcaaea2f701f5c7a5d51ee0b8bf) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "ge887kb.u6", 0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "gn887kb.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "887kba02", 0, SHA1(92a3844fab24f46c16dd96f9474d95fd001df603) ) ROM_END ROM_START( ddr3mka ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000084, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "ge887ka.u1", 0x000000, 0x000084, BAD_DUMP CRC(4ce86d32) SHA1(94cdb9873a7f7503acc3b763e9b49ec6af53533f) ) ROM_REGION( 0x0000084, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "gn887ka.u1", 0x000000, 0x000084, BAD_DUMP CRC(bb14f9bd) SHA1(9d0adf5a32d8bbcaaea2f701f5c7a5d51ee0b8bf) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "ge887ka.u6", 0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "gn887ka.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "887kaa02", 0, SHA1(a80930dd66c2e2326e8792f2e7cf9116d9cd752c) ) ROM_END ROM_START( ddr3mp ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "gea22ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(ef370ff7) SHA1(cb7a043f8bfa535e54ae9af728031d1018ed0734) ) ROM_REGION( 0x0001014, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "gca22ja.u1", 0x000000, 0x001014, BAD_DUMP CRC(6883c82c) SHA1(6fef1dc7150066eee427db685b6c5fb350b7768d) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "gea22ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "gca22ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "a22jaa02", 0, SHA1(2bf07d08f6acee562024b418b453d654fc40f8dd) ) ROM_END ROM_START( ddr4m ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "gea33aa.u1", 0x000000, 0x000224, BAD_DUMP CRC(7bd2a24f) SHA1(62c73a54c4ed7697cf81ddbf3d13d4b0ca827be5) ) ROM_REGION( 0x0001014, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "gca33aa.u1", 0x000000, 0x001014, BAD_DUMP CRC(f6feb2bd) SHA1(dfd5bd532338849289e2e4c155c0ca86e79b9ae5) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "gea33aa.u6", 0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "gca33aa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "a33aaa02", 0, BAD_DUMP SHA1(cc7349cbee37bfb101480497e99f1f52acb4ffa1) ) ROM_END ROM_START( ddr4mj ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "a33jaa.u1", 0x000000, 0x000224, BAD_DUMP CRC(10f1e9b8) SHA1(985bd26638964beebba5de4c7cda772b402d2e59) ) ROM_REGION( 0x0001014, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "gca33ja.u1", 0x000000, 0x001014, BAD_DUMP CRC(e5230867) SHA1(44aea9ccc90d81e7f41e5e9a62b28fcbdd75363b) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "a33jaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "gca33ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "a33jaa02", 0, SHA1(9d9fb5e65f1532f358e9c273c56d11389d11fd79) ) ROM_END ROM_START( ddr4ms ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "gea33ab.u1", 0x000000, 0x000224, BAD_DUMP CRC(32fb3d13) SHA1(3ca6c77438f96b13d2c05f13a10fcff89a1403a2) ) ROM_REGION( 0x0001014, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "gca33ab.u1", 0x000000, 0x001014, BAD_DUMP CRC(312ac13f) SHA1(05d733edc03cfc5ea03db6c683f59ed6ff860b5a) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "gea33ab.u6", 0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "gca33ab.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "a33aba02", 0, SHA1(cc7349cbee37bfb101480497e99f1f52acb4ffa1) ) ROM_END ROM_START( ddr4msj ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "a33jba.u1", 0x000000, 0x000224, BAD_DUMP CRC(babf6fdb) SHA1(a2ef6b855d42072f0d3c72c8de9aff1f867de3f7) ) ROM_REGION( 0x0001014, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "gca33jb.u1", 0x000000, 0x001014, BAD_DUMP CRC(00e4b531) SHA1(f421fc33642c5a3cd89fb14dc8cd601bdddd1f55) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "a33jba.u6", 0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "gca33jb.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "a33jba02", 0, BAD_DUMP SHA1(9d9fb5e65f1532f358e9c273c56d11389d11fd79) ) ROM_END ROM_START( ddr4mp ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "gea34ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(10f1e9b8) SHA1(985bd26638964beebba5de4c7cda772b402d2e59) ) ROM_REGION( 0x0001014, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "gca34ja.u1", 0x000000, 0x001014, BAD_DUMP CRC(e9b6ce56) SHA1(f040fba2b2b446baa840026dcd10f9785f8cc0a3) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "gea34ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "gca34ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) ROM_REGION( 0x002000, "m48t58", 0 ) /* timekeeper */ ROM_LOAD( "gca34ja.22h", 0x000000, 0x002000, CRC(80575c1f) SHA1(a0594ca0f75bc7d49b645e835e9fa48a73c3c9c7) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "a34jaa02", 0, SHA1(1d5f9eb633f054ddbf9fba55d53e4ee263ba91dd) ) ROM_END ROM_START( ddr4mps ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "gea34jb.u1", 0x000000, 0x000224, BAD_DUMP CRC(babf6fdb) SHA1(a2ef6b855d42072f0d3c72c8de9aff1f867de3f7) ) ROM_REGION( 0x0001014, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "gca34jb.u1", 0x000000, 0x001014, BAD_DUMP CRC(0c717300) SHA1(00d21f39fe90494ffec2f8799767cc46a9cd2b00) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "gea34jb.u6", 0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "gca34jb.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) ROM_REGION( 0x002000, "m48t58", 0 ) /* timekeeper */ ROM_LOAD( "gca34jb.22h", 0x000000, 0x002000, CRC(bc6c8bd7) SHA1(10ceec5c7bc5ca9fca88f3c083a7d97012982079) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "a34jba02", 0, BAD_DUMP SHA1(1d5f9eb633f054ddbf9fba55d53e4ee263ba91dd) ) ROM_END ROM_START( ddr5m ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gca27ja.u1", 0x000000, 0x001014, BAD_DUMP CRC(ec526036) SHA1(f47d94d19268fdfa3ae9d42db9f2e2f9be318f2b) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gca27ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "a27jaa02", 0, SHA1(0324973c98b82b72b22d2f0cd43e1924b83be667) ) ROM_END ROM_START( ddrbocd ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gn895jaa.u1", 0x000000, 0x000224, BAD_DUMP CRC(363f427e) SHA1(adec886a07b9bd91f142f286b04fc6582205f037) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "892jaa01", 0, SHA1(46ace0feef48a2a6643c3cb4ac9164ba0beeea94) ) DISK_REGION( "cdrom1" ) DISK_IMAGE_READONLY( "895jaa02", 1, SHA1(cfe3a6f3ed62ba388b07045e29e22472d17dcfe4) ) ROM_END ROM_START( ddrs2k ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000084, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "ge905aa.u1", 0x000000, 0x000084, BAD_DUMP CRC(36d18e2f) SHA1(e976047dfbee62de9ad9e5de8e7629a24c29d581) ) ROM_REGION( 0x0000084, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "gc905aa.u1", 0x000000, 0x000084, BAD_DUMP CRC(21073a3e) SHA1(afa12404ceb462b9016a41c40775da87aa09cfeb) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "ge905aa.u6", 0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "gc905aa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "905aaa02", 0, SHA1(1fc0f3fcc7d5d23711967023ff02c1fc76479024) ) ROM_END ROM_START( ddrs2kj ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000084, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "ge905ja.u1", 0x000000, 0x000084, BAD_DUMP CRC(a077b0a1) SHA1(8f247b38c933a104a325ebf1f1691ef260480e1a) ) ROM_REGION( 0x0000084, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "gc905ja.u1", 0x000000, 0x000084, BAD_DUMP CRC(b7a104b0) SHA1(0f6901e41640f729f8a084a33148a9b900475594) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "ge905ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "gc905aa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "905jaa02", 0, SHA1(84931345611574afd53976a0807f4163348e3c15) ) ROM_END ROM_START( ddrmax ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gcb19ja.u1", 0x000000, 0x001014, BAD_DUMP CRC(2255626a) SHA1(cb70c4b551265ffc6cc41f7bd2678696e8067060) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gcb19ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "b19jaa02", 0, SHA1(a156ebdef395747c64e1829237e4e7932ae251a8) ) ROM_END ROM_START( ddrmax2 ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gcb20ja.u1", 0x000000, 0x001014, BAD_DUMP CRC(fb7e0f58) SHA1(e6da23257a2a2ba7c69e817a91a0a8864f009386) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gcb20ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "b20jaa02", 0, SHA1(3f378e922e3182f980d07d6b2b524e33c5a00549) ) ROM_END ROM_START( ddrsbm ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000084, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gq894ja.u1", 0x000000, 0x000084, BAD_DUMP CRC(cc3a47de) SHA1(f6e2e101870370b1e295a4a9ed546aa2d8bc2010) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gq894ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "894jaa02", 0, SHA1(3b2e061996d12f0e7367a579208eb746d849e070) ) ROM_END ROM_START( ddrusa ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gka44ua.u1", 0x000000, 0x001014, BAD_DUMP CRC(2ef7c4f1) SHA1(9004d27179ece86883d01b3e6bbfeebc1b478d57) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gka44ua.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "a44uaa02", 0, SHA1(2cdbe1c62d16a2be65adb7e11331fce5c8e45504) ) ROM_END ROM_START( drmn ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gq881ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(7dca0b3f) SHA1(db6d5c527e2a99133b516e01433024d3173848c6) ) ROM_REGION( 0x200000, "onboard.6", 0 ) /* onboard flash */ ROM_LOAD( "gq881ja.31h", 0x000000, 0x200000, CRC(a5b86ece) SHA1(9696f0c512501574bae6e436306675894bb2352e) ) ROM_REGION( 0x200000, "onboard.7", 0 ) /* onboard flash */ ROM_LOAD( "gq881ja.27h", 0x000000, 0x200000, CRC(fc0b94c1) SHA1(967d374288db757d161d0e9e8e396a1176071c5f) ) ROM_REGION( 0x002000, "m48t58", 0 ) /* timekeeper */ ROM_LOAD( "gq881ja.22h", 0x000000, 0x002000, CRC(e834d5ec) SHA1(1c845811e43d7dfec657da288b5a38b8bc9c8366) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "881jad01", 0, SHA1(7d9d47bef636dbaa8d578f34ea9489e349d3d6df) ) // upgrade or bootleg? DISK_REGION( "cdrom1" ) DISK_IMAGE_READONLY( "881jaa02", 1, NO_DUMP ) ROM_END ROM_START( drmn2m ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "ge912ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(1246fe5b) SHA1(b58d4f4c95e13abf639d645223565544bd79a58a) ) ROM_REGION( 0x0001014, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "gn912ja.u1", 0x000000, 0x001014, BAD_DUMP CRC(34deea99) SHA1(f179e22eaf30453bb94177ed9c25d7996f020c99) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "ge912ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "gn912ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "912jab02", 0, SHA1(19dfae94b63468d3e16d3cc4a3eeae60d5dff1d7) ) ROM_END ROM_START( drmn2mpu ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "ge912ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(1246fe5b) SHA1(b58d4f4c95e13abf639d645223565544bd79a58a) ) ROM_REGION( 0x0001014, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "gn912ja.u1", 0x000000, 0x001014, BAD_DUMP CRC(34deea99) SHA1(f179e22eaf30453bb94177ed9c25d7996f020c99) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "ge912ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "gn912ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "912jab02", 0, SHA1(19dfae94b63468d3e16d3cc4a3eeae60d5dff1d7) ) DISK_REGION( "cdrom1" ) DISK_IMAGE_READONLY( "912za01", 1, SHA1(033a310006efe164cc6a8276de42a5d555f9fea9) ) ROM_END ROM_START( drmn3m ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "a23jaa.u1", 0x000000, 0x000224, BAD_DUMP CRC(90e544fa) SHA1(1feb617c36bad41aa720a6e5d3ec9e5cb2030567) ) ROM_REGION( 0x0001014, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "gca23ja.u1", 0x000000, 0x001014, BAD_DUMP CRC(5af1b5da) SHA1(cf862ef9ab60e8da89af96266943137827e4a261) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "a23jaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "gca23ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "a23jaa02", 0, SHA1(89e365f61a4db889621d7d9d9917bcfa2c09704e) ) ROM_END ROM_START( drmn4m ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gea25jaa.u1", 0x000000, 0x001014, BAD_DUMP CRC(356bbbf4) SHA1(a20a8fcaed2dce50451346b1683739c96067feb1) ) ROM_REGION( 0x200000, "onboard.0", 0 ) /* onboard flash */ ROM_LOAD( "gea25jaa.31m", 0x000000, 0x200000, CRC(a0dd0ef4) SHA1(be4c1d3f2eb3c484b515be12b692c30cc780c36c) ) ROM_REGION( 0x200000, "onboard.1", 0 ) /* onboard flash */ ROM_LOAD( "gea25jaa.27m", 0x000000, 0x200000, CRC(118fa45a) SHA1(6bc6129e328f6f97a27b9f524066297b29efff5a) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gea25jaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "a25jaa02", 0, SHA1(8a0b761d1c282d927e2daf92519654a1c91ee1ab) ) DISK_REGION( "multisession" ) DISK_IMAGE_READONLY( "a25jba02", 0, SHA1(5f4aae359da610352c1004cfa1a32064d8f55d0e) ) ROM_END ROM_START( drmn5m ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gcb05jaa.u1", 0x000000, 0x001014, BAD_DUMP CRC(6b629d68) SHA1(d01ef0677cd72c05f5f354fc6c4d9022b3506c1e) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gcb05jaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "b05jaa02", 0, SHA1(7a6e7940d1441cff1d9be1bc3affc029fe6dc9e4) ) DISK_REGION( "multisession" ) DISK_IMAGE_READONLY( "b05jba02", 0, SHA1(822149db553ca78ad8174719a657dbbd2776b922) ) ROM_END ROM_START( drmn6m ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gcb16jaa.u1", 0x000000, 0x001014, BAD_DUMP CRC(f6933041) SHA1(1839bb99d2db9413c58a2ed95e9039d2c7dd62ba) ) ROM_REGION( 0x200000, "onboard.0", 0 ) /* onboard flash */ ROM_LOAD( "gcb16jaa.31m", 0x000000, 0x200000, CRC(19de3e53) SHA1(bbb7a247bdd617a124330a946c2e8dd565b2a09c) ) ROM_REGION( 0x200000, "onboard.1", 0 ) /* onboard flash */ ROM_LOAD( "gcb16jaa.27m", 0x000000, 0x200000, CRC(5696e133) SHA1(aad39cc25ce5279adac8a10fb10158f4f4418c0a) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gcb16jaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "b16jaa02", 0, SHA1(fa0862a9bd3a48d4f6e7b44b11ad387acc05037e) ) DISK_REGION( "multisession" ) DISK_IMAGE_READONLY( "b16jba02", 0, SHA1(07de74a3ca384407d99c433110085208a458653e) ) ROM_END ROM_START( drmn7m ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gcc07jba.u1", 0x000000, 0x001014, BAD_DUMP CRC(8d9bcf10) SHA1(3d486df924ba41669675d62982396aebf8d12052) ) ROM_REGION( 0x200000, "onboard.0", 0 ) /* onboard flash */ ROM_LOAD( "gcc07jba.31m", 0x000000, 0x200000, CRC(7120d1ce) SHA1(4df9828150120762b99c5b212bc7a91b0d525bce) ) ROM_REGION( 0x200000, "onboard.1", 0 ) /* onboard flash */ ROM_LOAD( "gcc07jba.27m", 0x000000, 0x200000, CRC(9393fe8e) SHA1(f60752e3e397121f3d4856a634e1c8ce5fc465b5) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gcc07jba.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "c07jca02", 0, SHA1(1f27e0a22c7f4f37ec3a09984ce197e390340d27) ) DISK_REGION( "multisession" ) DISK_IMAGE_READONLY( "c07jda02", 0, SHA1(7c22ebbda11bdaf85c3441d7a6f3497994cd957f) ) ROM_END ROM_START( drmn7ma ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gcc07jaa.u1", 0x000000, 0x001014, BAD_DUMP CRC(b675b39b) SHA1(9639db913821641cee619d7cc520de5d0c3ae7fa) ) ROM_REGION( 0x200000, "onboard.0", 0 ) /* onboard flash */ ROM_LOAD( "gcc07jaa.31m", 0x000000, 0x200000, CRC(1e1cbfe3) SHA1(6c942820f915ea0e01f0e736d70780ad8408aa69) ) ROM_REGION( 0x200000, "onboard.1", 0 ) /* onboard flash */ ROM_LOAD( "gcc07jaa.27m", 0x000000, 0x200000, CRC(49d27b57) SHA1(e62737fe8665d837c2cebd1dcf4577a021d8cdb1) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gcc07jaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "c07jaa02", 0, SHA1(96c410745d1fd14059bf11987655ed998a9b79dd) ) DISK_REGION( "multisession" ) DISK_IMAGE_READONLY( "c07jba02", 0, SHA1(25e1a3ff7886c409d16e40ca1798b01b11546755) ) ROM_END ROM_START( drmn8m ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gcc38jaa.u1", 0x000000, 0x001014, BAD_DUMP CRC(aaa03630) SHA1(4976b0c2e1b4458840a165bd889861d62289ad89) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gcc38jaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "c38jaa02", 0, SHA1(d19ae541557405a4484145f4237f3c868375c72e) ) DISK_REGION( "multisession" ) DISK_IMAGE_READONLY( "c38jba02", 0, SHA1(d963064678978d489474d1ca22c1f249c6f60232) ) ROM_END ROM_START( drmn9m ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gcd09jaa.u1", 0x000000, 0x001014, BAD_DUMP CRC(a1201529) SHA1(4a82f2ee9b049a16c00b7dcd905c43c1a06d60ee) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gcd09jaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "d09jaa02", 0, SHA1(33f3e48ed5a8becd8c4714413e454328d8d5baae) ) DISK_REGION( "multisession" ) DISK_IMAGE_READONLY( "d09jba02", 0, NO_DUMP ) ROM_END ROM_START( drmn10m ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gcd40jaa.u1", 0x000000, 0x001014, BAD_DUMP CRC(ef0983a7) SHA1(06127b9fd786eca64eea50c40f7f73717b631e59) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gcd40jaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "d40jaa02", 0, SHA1(68b2038f0cd2d461f608945d1e243f2b6979efaa) ) DISK_REGION( "multisession" ) DISK_IMAGE_READONLY( "d40jba02", 0, BAD_DUMP SHA1(0ded9e0a6c77b181e7b6beb1dbdfa17dee4acd90) ) ROM_END ROM_START( dmx ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "ge874ja.u1", 0x000000, 0x001014, BAD_DUMP CRC(c5536373) SHA1(1492221f7dd9485f7745ecb0a982a88c8e768e53) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "ge874ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "874jaa", 0, BAD_DUMP SHA1(3338a784efdca4f8bdcc83d2c9a6bbe7f7046d5c) ) ROM_END ROM_START( dmx2m ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gca39ja.u1", 0x000000, 0x001014, BAD_DUMP CRC(ecc75eb7) SHA1(af66ced28ba5e79ae32ae0ef12d2ebe4207f3822) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gca39ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "a39jaa02", 0, SHA1(3d021448df857c12f6d46a20e14ae0fc6d342dcc) ) ROM_END ROM_START( dmx2majp ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gca38ja.u1", 0x000000, 0x001014, BAD_DUMP CRC(99a746b8) SHA1(333236e59a707ecaf840a66f9b947ceade2cf2c9) ) ROM_REGION( 0x200000, "onboard.0", 0 ) /* onboard flash */ ROM_LOAD( "gca38ja.31m", 0x000000, 0x200000, CRC(a0f54ab5) SHA1(a5ae67d7619393779c79a2e227cac0675eeef538) ) ROM_REGION( 0x200000, "onboard.1", 0 ) /* onboard flash */ ROM_LOAD( "gca38ja.27m", 0x000000, 0x200000, CRC(6c3934b8) SHA1(f0e4a692b6caaf60fefaec87fd23da577439f69d) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gca38ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "a38jaa02", 0, SHA1(d26c481ef8a70bba75bcdf41f9ceb3a49c245986) ) ROM_END ROM_START( dncfrks ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gk874ka.u1", 0x000000, 0x001014, BAD_DUMP CRC(7a6f4672) SHA1(2e009e57760e92f48070a69cff5597c37a4783a2) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gk874ka.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "874kaa", 0, BAD_DUMP SHA1(4d1e843417ea96635eeba0cef944e83fdb72565c) ) ROM_END ROM_START( dsem ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "ge936ea.u1", 0x000000, 0x000224, BAD_DUMP CRC(0f5b7ae3) SHA1(646dd49da1216cc2d3d6920bc9b3447d55ebfbf0) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "ge936ea.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "936eaa", 0, BAD_DUMP SHA1(7cacc15ae065d47af31f1008374ec8241dba0d55) ) ROM_END ROM_START( dsem2 ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gkc23ea.u1", 0x000000, 0x001014, BAD_DUMP CRC(aec2421a) SHA1(5ea9e9ce6161ebc99a50db0b7304385511bd4553) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gkc23ea.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "c23eaa02", 0, SHA1(46868c97530db5be1b43ffa32744e3e12495c243) ) ROM_END ROM_START( dsfdct ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000084, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "ge887ja_gn887ja.u1", 0x000000, 0x000084, BAD_DUMP CRC(08a60147) SHA1(0d39dca5e9e17fff0e64f296c8416e4ca23fdc1b) ) ROM_REGION( 0x0000084, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "gc910jc.u1", 0x000000, 0x000084, BAD_DUMP CRC(3c1ca973) SHA1(32211a72e3ac88b2723f82dac0b26f93031b3a9c) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "ge887ja_gn887ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "gc910jc.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "910jca02", 0, SHA1(0c868f3c9f696d291e8f27687e3ad83e453a4894) ) ROM_END ROM_START( dsfdcta ) SYS573_BIOS_A ROM_REGION( 0x0000084, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "gn884ja.u1", 0x000000, 0x000084, BAD_DUMP CRC(ce6b98ce) SHA1(75549d9470345ce06d2706d373b19416d97e5b9a) ) ROM_REGION( 0x0000084, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "gc910ja.u1", 0x000000, 0x000084, BAD_DUMP CRC(59a23808) SHA1(fcff1c68ff6cfbd391ac997a40fb5253fc62de82) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "gn884ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "gc910ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "910jaa02", 0, SHA1(70851c383e3876c4a697a99706fbaae2dafcb0e0) ) ROM_END ROM_START( dsfdr ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "gea37ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(5321055e) SHA1(d06b0dca9caba8249d71340469ad9083b02fd087) ) ROM_REGION( 0x0001014, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "gca37ja.u1", 0x000000, 0x001014, BAD_DUMP CRC(b6d9e7f9) SHA1(bc5f491de53a96d46745df09bc94e7853052296c) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "gea37ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "gca37ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "a37jaa02", 0, SHA1(c6a23b910e884aa0d4afc388dbc8379e0d09611a) ) ROM_END ROM_START( dsftkd ) SYS573_BIOS_A ROM_REGION( 0x0000084, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gn884ja.u1", 0x000000, 0x000084, BAD_DUMP CRC(ce6b98ce) SHA1(75549d9470345ce06d2706d373b19416d97e5b9a) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gn884ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "884jaa02", 0, SHA1(80f02fcb7ea5b6394a2a58f12b73d87a1826d7f4) ) ROM_END ROM_START( dstage ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gn845ea.u1", 0x000000, 0x000224, BAD_DUMP CRC(db643af7) SHA1(881221da640b883302e657b906ea0a4e74555679) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "845ea", 0, BAD_DUMP SHA1(d3f9290d4dadb5e9b82ebe77abf7b99d1a89f716) ) ROM_END ROM_START( fbait2bc ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gc865ua.u1", 0x000000, 0x000224, BAD_DUMP CRC(ea8f0b4b) SHA1(363b1ea1a520b239ba8bca867366bbe8a9977a43) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "865uab02", 0, SHA1(d14dc066d4c16fba1e9b31d5f042ad249c4b5137) ) ROM_END ROM_START( fbaitbc ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "ge765ua.u1", 0x000000, 0x000224, BAD_DUMP CRC(588748c6) SHA1(ea1ead61e0dcb324ef7b6106cae00bcf6702d6c4) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "765uab02", 0, SHA1(07b09e763e4b90108aa924b518221b16667a7133) ) ROM_END ROM_START( fbaitmc ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gx889ea.u1", 0x000000, 0x000224, BAD_DUMP CRC(753ad84e) SHA1(e024cefaaee7c9945ccc1f9a3d896b8560adce2e) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "889ea", 0, BAD_DUMP SHA1(0b567bf2f03ee8089e0b021ea502a53b3f6fe7ac) ) ROM_END ROM_START( fbaitmca ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gx889aa.u1", 0x000000, 0x000224, BAD_DUMP CRC(9c22aae8) SHA1(c107b0bf7fa76708f2d4f6aaf2cf27b3858378a3) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "889aa", 0, BAD_DUMP SHA1(0b567bf2f03ee8089e0b021ea502a53b3f6fe7ac) ) ROM_END ROM_START( fbaitmcj ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gx889ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(6278603c) SHA1(d6b59e270cfe4016e12565aedec8a4f0702e1a6f) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "889ja", 0, BAD_DUMP SHA1(0b567bf2f03ee8089e0b021ea502a53b3f6fe7ac) ) ROM_END ROM_START( fbaitmcu ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gx889ua.u1", 0x000000, 0x000224, BAD_DUMP CRC(67b91e54) SHA1(4d94bfab08e2bf6e34ee606dd3c4e345d8e5d158) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "889ua", 0, BAD_DUMP SHA1(0b567bf2f03ee8089e0b021ea502a53b3f6fe7ac) ) ROM_END ROM_START( fghtmn ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gq918eaa.u1", 0x000000, 0x000224, CRC(f3342ff5) SHA1(d3d6ecc22396f74b99ad7aab7908cd542c518977) ) ROM_REGION( 0x200000, "onboard.0", 0 ) /* onboard flash */ ROM_LOAD( "gq918xxb.31m", 0x000000, 0x200000, CRC(3653b5d7) SHA1(1deb44335b7a38506fb30da40e0ca61b96aea7bb) ) ROM_REGION( 0x200000, "onboard.1", 0 ) /* onboard flash */ ROM_LOAD( "gq918xxb.27m", 0x000000, 0x200000, CRC(27d48c97) SHA1(c140d4bdfa869fbcae1133bbfe73a346e6f46cb8) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gq918eaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "918xxb02", 0, SHA1(8ced8952fff3e70ce0621a491f0973af5a6ccd82) ) ROM_END ROM_START( fghtmna ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gq918aaa.u1", 0x000000, 0x000224, CRC(1a2c5d53) SHA1(ab7e44a83e8cd271e2bf8580881a3050d35641df) ) ROM_REGION( 0x200000, "onboard.0", 0 ) /* onboard flash */ ROM_LOAD( "gq918xxb.31m", 0x000000, 0x200000, CRC(3653b5d7) SHA1(1deb44335b7a38506fb30da40e0ca61b96aea7bb) ) ROM_REGION( 0x200000, "onboard.1", 0 ) /* onboard flash */ ROM_LOAD( "gq918xxb.27m", 0x000000, 0x200000, CRC(27d48c97) SHA1(c140d4bdfa869fbcae1133bbfe73a346e6f46cb8) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gq918aaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "918xxb02", 0, SHA1(8ced8952fff3e70ce0621a491f0973af5a6ccd82) ) ROM_END ROM_START( fghtmnk ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gq918kaa.u1", 0x000000, 0x000224, CRC(cf32990b) SHA1(bf49b8560f008696b45a3f7f03fa7b3395635b0f) ) ROM_REGION( 0x200000, "onboard.0", 0 ) /* onboard flash */ ROM_LOAD( "gq918xxb.31m", 0x000000, 0x200000, CRC(3653b5d7) SHA1(1deb44335b7a38506fb30da40e0ca61b96aea7bb) ) ROM_REGION( 0x200000, "onboard.1", 0 ) /* onboard flash */ ROM_LOAD( "gq918xxb.27m", 0x000000, 0x200000, CRC(27d48c97) SHA1(c140d4bdfa869fbcae1133bbfe73a346e6f46cb8) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gq918kaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "918xxb02", 0, SHA1(8ced8952fff3e70ce0621a491f0973af5a6ccd82) ) ROM_END ROM_START( fghtmnu ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gq918uaa.u1", 0x000000, 0x000224, CRC(e1b7e9ef) SHA1(5767f47cb9a689601fb92c6a494563c5ffdde04c) ) ROM_REGION( 0x200000, "onboard.0", 0 ) /* onboard flash */ ROM_LOAD( "gq918xxb.31m", 0x000000, 0x200000, CRC(3653b5d7) SHA1(1deb44335b7a38506fb30da40e0ca61b96aea7bb) ) ROM_REGION( 0x200000, "onboard.1", 0 ) /* onboard flash */ ROM_LOAD( "gq918xxb.27m", 0x000000, 0x200000, CRC(27d48c97) SHA1(c140d4bdfa869fbcae1133bbfe73a346e6f46cb8) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gq918uaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "918xxb02", 0, SHA1(8ced8952fff3e70ce0621a491f0973af5a6ccd82) ) ROM_END ROM_START( gtrfrks ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gq886eac.u1", 0x000000, 0x000224, BAD_DUMP CRC(06bd6c4f) SHA1(61930e467ad135e2f31393ff5af981ed52f3bef9) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "886__c02", 0, SHA1(80293512c4b914ef98acb1bbc7e3a2ed944a0dad) ) ROM_END ROM_START( gtrfrksu ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gq886uac.u1", 0x000000, 0x000224, BAD_DUMP CRC(143eaa55) SHA1(51a4fa3693f1cb1646a8986003f9b6cc1ae8b630) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "886__c02", 0, SHA1(80293512c4b914ef98acb1bbc7e3a2ed944a0dad) ) ROM_END ROM_START( gtrfrksj ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gq886jac.u1", 0x000000, 0x000224, BAD_DUMP CRC(11ffd43d) SHA1(27f4f4d782604379254fb98c3c57e547aa4b321f) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "886__c02", 0, SHA1(80293512c4b914ef98acb1bbc7e3a2ed944a0dad) ) ROM_END ROM_START( gtrfrksa ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gq886aac.u1", 0x000000, 0x000224, BAD_DUMP CRC(efa51ee9) SHA1(3374d936de69c287e0161bc526546441c2943555) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "886__c02", 0, SHA1(80293512c4b914ef98acb1bbc7e3a2ed944a0dad) ) ROM_END ROM_START( gtrfrk2m ) SYS573_BIOS_A ROM_REGION( 0x0000084, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gq883jad.u1", 0x000000, 0x000084, BAD_DUMP CRC(687868c4) SHA1(1230e74e4cf17953febe501df56d8bbec1de9356) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gq883jad.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "929jbb02", 0, BAD_DUMP SHA1(4f6bb0150ad6ed574dd7583ccd60604028663b2a) ) ROM_END ROM_START( gtrfrk3m ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "949jaa.u1", 0x000000, 0x000224, BAD_DUMP CRC(96c21d71) SHA1(871f1f0429154a486e547e182534db1557008dd6) ) ROM_REGION( 0x0001014, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "ge949jab.u1", 0x000000, 0x001014, BAD_DUMP CRC(8645e17f) SHA1(e8a833384cb6bdb05870fcd44e7c8ed48a03c852) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "949jaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "ge949jab.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "949jac01", 0, SHA1(ff017dd5c0ecbdb8935d0d4656a45e9fab10ef82) ) DISK_REGION( "cdrom1" ) DISK_IMAGE_READONLY( "949jab02", 1, SHA1(ad629c9bafbdc4bf6c679918a5fae2bcfdb39332) ) ROM_END ROM_START( gtfrk3ma ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "949jaa.u1", 0x000000, 0x000224, BAD_DUMP CRC(96c21d71) SHA1(871f1f0429154a486e547e182534db1557008dd6) ) ROM_REGION( 0x0001014, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "ge949jab.u1", 0x000000, 0x001014, BAD_DUMP CRC(8645e17f) SHA1(e8a833384cb6bdb05870fcd44e7c8ed48a03c852) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "949jaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "ge949jab.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "949jab02", 0, SHA1(ad629c9bafbdc4bf6c679918a5fae2bcfdb39332) ) ROM_END ROM_START( gtfrk3mb ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "ge949jaa.u1", 0x000000, 0x001014, BAD_DUMP CRC(61f35ee1) SHA1(0a2b66742364d76ec18647b2761590bd49229625) ) ROM_REGION( 0x000008, "install_id", 0 ) /* game security cart id */ ROM_LOAD( "ge949jaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "949jaz02", 0, SHA1(b0c786ba420a34fcbd16bc36a137f6ae87b7dfa8) ) ROM_END ROM_START( gtrfrk4m ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "a24jaa.u1", 0x000000, 0x000224, BAD_DUMP CRC(29e326fe) SHA1(41a600105b08accc9d7ebd2b8ae08c0863758aa0) ) ROM_REGION( 0x0001014, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "gea24ja.u1", 0x000000, 0x001014, BAD_DUMP CRC(d1fccf11) SHA1(6dcd79f3171d6e4bd7e1149901638f8ea58ff623) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "a24jaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "gea24ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "a24jaa02", 0, SHA1(bc0303f5a6a19484cd35890cc9934ee0bcabb2ad) ) ROM_END ROM_START( gtrfrk5m ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gea26jaa.u1", 0x000000, 0x001014, BAD_DUMP CRC(c2725fca) SHA1(b70a3266c61af5cbe0478a6f3dd850ebcab980dc) ) ROM_REGION( 0x200000, "onboard.0", 0 ) /* onboard flash */ ROM_LOAD( "gea26jaa.31m", 0x000000, 0x200000, CRC(1a25e660) SHA1(dbd8fad0bac307723c70d00763cadf4261a7ed73) ) ROM_REGION( 0x200000, "onboard.1", 0 ) /* onboard flash */ ROM_LOAD( "gea26jaa.27m", 0x000000, 0x200000, CRC(345dc5f2) SHA1(61af3fcfe6119c1e8e18b92693855ab4fe708b30) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gea26jaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "a26jaa02", 0, SHA1(9909e08abff780db6fd7a5fbcc57ffbe14ae08ce) ) ROM_END ROM_START( gtrfrk6m ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gcb06ja.u1", 0x000000, 0x001014, BAD_DUMP CRC(673c98ab) SHA1(b1d889bf4fc5e425056acb6b72b2c563966fb7d7) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gcb06ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "b06jaa02", 0, SHA1(2ea53ef492da63183a28c54afde07fce323fe42e) ) ROM_END ROM_START( gtrfrk7m ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gcb17jaa.u1", 0x000000, 0x001014, BAD_DUMP CRC(5a338c31) SHA1(0fd9ee306335858dd6bef680a62557a8bf055cc3) ) ROM_REGION( 0x200000, "onboard.0", 0 ) /* onboard flash */ ROM_LOAD( "gcb17jaa.31m", 0x000000, 0x200000, CRC(1e1cbfe3) SHA1(6c942820f915ea0e01f0e736d70780ad8408aa69) ) ROM_REGION( 0x200000, "onboard.1", 0 ) /* onboard flash */ ROM_LOAD( "gcb17jaa.27m", 0x000000, 0x200000, CRC(7e7da9a9) SHA1(1882418779a48b5aefd113895756116379a6a4f7) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gcb17jaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "b17jaa02", 0, SHA1(d38dc22011b71b0e4167f1728a8794ea4b9c5396) ) ROM_END ROM_START( gtrfrk8m ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gcc08jba.u1", 0x000000, 0x001014, BAD_DUMP CRC(db4b3027) SHA1(65ca32fcacda18954a4e8352dbb9bf583dfdd121) ) ROM_REGION( 0x200000, "onboard.0", 0 ) /* onboard flash */ ROM_LOAD( "gcc08jba.31m", 0x000000, 0x200000, CRC(ddef5efe) SHA1(7c3a219eacf63f55894e81cb0e41753176191708) ) ROM_REGION( 0x200000, "onboard.1", 0 ) /* onboard flash */ ROM_LOAD( "gcc08jba.27m", 0x000000, 0x200000, CRC(9393fe8e) SHA1(f60752e3e397121f3d4856a634e1c8ce5fc465b5) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gcc08jba.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "c08jba02", 0, SHA1(8e352ed8ade581b7c9bb579fc56003ea1831202c) ) ROM_END ROM_START( gtrfrk8ma ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gcc08jaa.u1", 0x000000, 0x001014, BAD_DUMP CRC(9c58f22b) SHA1(41ade23bac86e437b1f12c5730b8cce292ffe4f8) ) ROM_REGION( 0x200000, "onboard.0", 0 ) /* onboard flash */ ROM_LOAD( "gcc08jaa.31m", 0x000000, 0x200000, CRC(aa723d4c) SHA1(5f55ddaf7f21b624deac99cc40b89989cd6f3a3d) ) ROM_REGION( 0x200000, "onboard.1", 0 ) /* onboard flash */ ROM_LOAD( "gcc08jaa.27m", 0x000000, 0x200000, CRC(49d27b57) SHA1(e62737fe8665d837c2cebd1dcf4577a021d8cdb1) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gcc08jaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "c08jaa02", 0, SHA1(7a1d97f74ec4d643ff7d3981d66b551cbf9e57f0) ) ROM_END ROM_START( gtrfrk9m ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gcc39jaa.u1", 0x000000, 0x001014, BAD_DUMP CRC(afb75814) SHA1(027dc2ae3444d10c14169f1f354ffcc928f62fb3) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gcc39jaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "c39jaa02", 0, SHA1(d0696b29976a6bc01c3a1fefe09dbee721ff3ffb) ) ROM_END ROM_START( gtfrk10m ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gcd10jab.u1", 0x000000, 0x001014, BAD_DUMP CRC(43520577) SHA1(a0749e766688032fe6558707b564288b95da9b8d) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gcd10jab.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "d10jab01", 0, SHA1(c84858b412f0798a65cf3059c743501f32ad7280) ) DISK_REGION( "cdrom1" ) DISK_IMAGE_READONLY( "d10jaa02", 1, SHA1(d4e4460ca3edc1b365af593757557c6cf5b7b3ec) ) ROM_END ROM_START( gtfrk10ma ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gcd10jaa.u1", 0x000000, 0x001014, BAD_DUMP CRC(43520577) SHA1(a0749e766688032fe6558707b564288b95da9b8d) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gcd10jaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "d10jaa02", 0, SHA1(d4e4460ca3edc1b365af593757557c6cf5b7b3ec) ) ROM_END ROM_START( gtfrk10mb ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gcd10jab.u1", 0x000000, 0x001014, BAD_DUMP CRC(43520577) SHA1(a0749e766688032fe6558707b564288b95da9b8d) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gcd10jab.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "d10jba02", 0, SHA1(80893da422268cc1f89688289cdec981c4f9feb2) ) ROM_END ROM_START( gtfrk11m ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gcd39ja.u1", 0x000000, 0x001014, BAD_DUMP CRC(9bd81d0a) SHA1(c95f6d7317bf88177f7217de4ba4376485d5cdbf) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gcd39ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "d39jaa02", 0, SHA1(7a87ee331ba0301bb8724c398e6c77cfb9c172a7) ) ROM_END ROM_START( gunmania ) SYS573_BIOS_A ROM_REGION( 0x000008, "gunmania_id", 0 ) /* digital board id */ \ ROM_LOAD( "ds2401", 0x000000, 0x000008, CRC(2b977f4d) SHA1(2b108a56653f91cb3351718c45dfcf979bc35ef1) ) ROM_REGION( 0x200000, "onboard.0", 0 ) /* onboard flash */ ROM_LOAD( "gl906jaa.31m", 0x000000, 0x200000, CRC(6c02d360) SHA1(961bd9df4928a3dead9da6a88641547cae4c4dbd) ) ROM_REGION( 0x200000, "onboard.1", 0 ) /* onboard flash */ ROM_LOAD( "gl906jaa.27m", 0x000000, 0x200000, CRC(057b5bce) SHA1(979e3fb5496920c3f9eb7111425c08d80c9076a5) ) ROM_REGION( 0x200000, "onboard.2", 0 ) /* onboard flash */ ROM_LOAD( "gl906jaa.31l", 0x000000, 0x200000, CRC(3f3abf8f) SHA1(9c93e58fad16ccbe4bc4499a1a15af134243c154) ) ROM_REGION( 0x200000, "onboard.3", 0 ) /* onboard flash */ ROM_LOAD( "gl906jaa.27l", 0x000000, 0x200000, CRC(f2be642d) SHA1(6c46197a0d114ac90824de1fc4df12db561844e5) ) ROM_REGION( 0x200000, "onboard.4", 0 ) /* onboard flash */ ROM_LOAD( "gl906jaa.31j", 0x000000, 0x200000, CRC(889a4733) SHA1(1f6578d95c0331fdf3235ef7d899d5bd083ff6a0) ) ROM_REGION( 0x200000, "onboard.5", 0 ) /* onboard flash */ ROM_LOAD( "gl906jaa.27j", 0x000000, 0x200000, CRC(984193a8) SHA1(1a310e22a80cb4854b138f737f679384c98b2e46) ) ROM_REGION( 0x200000, "onboard.6", 0 ) /* onboard flash */ ROM_LOAD( "gl906jaa.31h", 0x000000, 0x200000, CRC(202236c1) SHA1(ecd58f2b325fdefe2ac6cdd6f4edd212432e149a) ) ROM_REGION( 0x200000, "onboard.7", 0 ) /* onboard flash */ ROM_LOAD( "gl906jaa.27h", 0x000000, 0x200000, CRC(8861b858) SHA1(2a67d465786759a74162ebebc0a44ba9309ffa60) ) ROM_REGION( 0x200000, "pccard2.0", 0 ) /* PCCARD2 */ ROM_LOAD( "gl906jaa.h", 0x0000000, 0x200000, BAD_DUMP CRC(b2f3dc23) SHA1(65f7b986d2b12b26dfc364e6f990f7c504b5519f) ) ROM_REGION( 0x200000, "pccard2.1", 0 ) /* PCCARD2 */ ROM_LOAD( "gl906jaa.8", 0x0000000, 0x200000, BAD_DUMP CRC(5e40ed31) SHA1(5594b0c42b2ae8dd06259b93cc29bc3b44a85d44) ) ROM_REGION( 0x200000, "pccard2.2", 0 ) /* PCCARD2 */ ROM_LOAD( "gl906jaa.g", 0x0000000, 0x200000, BAD_DUMP CRC(8d89877e) SHA1(7d76d48d64d7ac5411d714a4bb83f37e3e5b8df6) ) ROM_REGION( 0x200000, "pccard2.3", 0 ) /* PCCARD2 */ ROM_LOAD( "gl906jaa.7", 0x0000000, 0x200000, BAD_DUMP CRC(8d89877e) SHA1(7d76d48d64d7ac5411d714a4bb83f37e3e5b8df6) ) ROM_REGION( 0x200000, "pccard2.4", 0 ) /* PCCARD2 */ ROM_LOAD( "gl906jaa.f", 0x0000000, 0x200000, BAD_DUMP CRC(8d89877e) SHA1(7d76d48d64d7ac5411d714a4bb83f37e3e5b8df6) ) ROM_REGION( 0x200000, "pccard2.5", 0 ) /* PCCARD2 */ ROM_LOAD( "gl906jaa.6", 0x0000000, 0x200000, BAD_DUMP CRC(8d89877e) SHA1(7d76d48d64d7ac5411d714a4bb83f37e3e5b8df6) ) ROM_REGION( 0x200000, "pccard2.6", 0 ) /* PCCARD2 */ ROM_LOAD( "gl906jaa.e", 0x0000000, 0x200000, BAD_DUMP CRC(074370b9) SHA1(2dabc3bebc52b3fe09a73ced4ccbe9a5065feb70) ) ROM_REGION( 0x200000, "pccard2.7", 0 ) /* PCCARD2 */ ROM_LOAD( "gl906jaa.5", 0x0000000, 0x200000, BAD_DUMP CRC(9645dd9e) SHA1(34a85d349496eaed124db3cd8f40724f92fa3600) ) ROM_REGION( 0x200000, "pccard2.8", 0 ) /* PCCARD2 */ ROM_LOAD( "gl906jaa.4", 0x0000000, 0x200000, BAD_DUMP CRC(0daf5c60) SHA1(fc507cb9bb746d217d4cccf393dc311d3e64a16f) ) ROM_REGION( 0x200000, "pccard2.9", 0 ) /* PCCARD2 */ ROM_LOAD( "gl906jaa.d", 0x0000000, 0x200000, BAD_DUMP CRC(e51dc4c2) SHA1(8214cbd329d68df1aa625801c5e8d6b1f30358aa) ) ROM_REGION( 0x200000, "pccard2.10", 0 ) /* PCCARD2 */ ROM_LOAD( "gl906jaa.3", 0x0000000, 0x200000, BAD_DUMP CRC(8d89877e) SHA1(7d76d48d64d7ac5411d714a4bb83f37e3e5b8df6) ) ROM_REGION( 0x200000, "pccard2.11", 0 ) /* PCCARD2 */ ROM_LOAD( "gl906jaa.c", 0x0000000, 0x200000, BAD_DUMP CRC(8d89877e) SHA1(7d76d48d64d7ac5411d714a4bb83f37e3e5b8df6) ) ROM_REGION( 0x200000, "pccard2.12", 0 ) /* PCCARD2 */ ROM_LOAD( "gl906jaa.2", 0x0000000, 0x200000, BAD_DUMP CRC(8d89877e) SHA1(7d76d48d64d7ac5411d714a4bb83f37e3e5b8df6) ) ROM_REGION( 0x200000, "pccard2.13", 0 ) /* PCCARD2 */ ROM_LOAD( "gl906jaa.b", 0x0000000, 0x200000, BAD_DUMP CRC(8d89877e) SHA1(7d76d48d64d7ac5411d714a4bb83f37e3e5b8df6) ) ROM_REGION( 0x200000, "pccard2.14", 0 ) /* PCCARD2 */ ROM_LOAD( "gl906jaa.1", 0x0000000, 0x200000, BAD_DUMP CRC(11d5630b) SHA1(26a94780eac653fb4912c533040356d79ba0fe94) ) ROM_REGION( 0x200000, "pccard2.15", 0 ) /* PCCARD2 */ ROM_LOAD( "gl906jaa.a", 0x0000000, 0x200000, BAD_DUMP CRC(e62d18e6) SHA1(b32b884fbd9b5a65efcdd1b50dd3b7a99fdceeb9) ) ROM_END ROM_START( hyperbbc ) SYS573_BIOS_A ROM_REGION( 0x0000084, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gx908ja.u1", 0x000000, 0x000084, BAD_DUMP CRC(fb6c0635) SHA1(0d974462a0a244ffb1a651adb316242cde427756) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "908a02", 0, SHA1(573194ca9938c30415fc88dcc0c0152dd3024d71) ) ROM_END ROM_START( hyperbbck ) SYS573_BIOS_A ROM_REGION( 0x0000084, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gx908ka.u1", 0x000000, 0x000084, BAD_DUMP CRC(f4f37fe1) SHA1(30f90cdb2d092e4f8d6c14cfd4ca4945e6d352cb) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "908a02", 0, SHA1(573194ca9938c30415fc88dcc0c0152dd3024d71) ) ROM_END ROM_START( konam80a ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gc826aa.u1", 0x000000, 0x000224, BAD_DUMP CRC(9b38b959) SHA1(6b4fca340a9b1c2ae21ad3903c1ac1e39ab08b1a) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "826aaa01", 0, BAD_DUMP SHA1(be5f8b31fd18ba631fe98c2132c56abf20193419) ) ROM_END ROM_START( konam80j ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gc826ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(e9e861e8) SHA1(45841db0b42d096213d9539a8d076d39391dca6d) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "826jaa01", 0, SHA1(be5f8b31fd18ba631fe98c2132c56abf20193419) ) ROM_END ROM_START( konam80k ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gc826ka.u1", 0x000000, 0x000224, BAD_DUMP CRC(d41f7e38) SHA1(73e2bb132e23be72e72ea5b0686ccad28e47574a) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "826kaa01", 0, BAD_DUMP SHA1(be5f8b31fd18ba631fe98c2132c56abf20193419) ) ROM_END ROM_START( konam80s ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gc826ea.u1", 0x000000, 0x000224, BAD_DUMP CRC(6ce4c619) SHA1(d2be08c213c0a74e30b7ebdd93946374cc64457f) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "826eaa01", 0, BAD_DUMP SHA1(be5f8b31fd18ba631fe98c2132c56abf20193419) ) ROM_END ROM_START( konam80u ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gc826ua.u1", 0x000000, 0x000224, BAD_DUMP CRC(0577379b) SHA1(3988a2a5ef1f1d5981c4767cbed05b73351be903) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "826uaa01", 0, SHA1(be5f8b31fd18ba631fe98c2132c56abf20193419) ) ROM_END ROM_START( mamboagg ) SYS573_BIOS_A ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gqa40jab.u1", 0x000000, 0x001014, BAD_DUMP CRC(fd9e7c1f) SHA1(6dd4790589d48803f58328d099c908f0565b2c01) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gqa40jab.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "a40jab02", 0, SHA1(a914842442b2f63465e16f979f06da0b78a5f13e) ) ROM_END ROM_START( mrtlbeat ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0001014, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "geb47jb.u1", 0x000000, 0x001014, BAD_DUMP CRC(90079ff5) SHA1(8273ee3349dd13207836b0ebf72ad5fa67fef68a) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "geb47jb.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "b47jxb02", 0, SHA1(6bbe8d6169ef692bd8995da564bd5a97b6bf0b31) ) ROM_END ROM_START( pbballex ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gx802ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(ea8bdda3) SHA1(780034ab08871631ef0e3e9b779ca89e016c26a8) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "802jab02", 0, SHA1(bcc2b6c3515e2420eef9fdf8b28115368a428a92) ) ROM_END ROM_START( pcnfrk3m ) SYS573_BIOS_A SYS573_DIGITAL_ID ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* install security cart eeprom */ ROM_LOAD( "a23kaa.u1", 0x000000, 0x000224, BAD_DUMP CRC(d71c4b5c) SHA1(3911c5dd933c30e6e44c8cf417bb4c284ecb4b80) ) ROM_REGION( 0x0001014, "game_eeprom", 0 ) /* game security cart eeprom */ ROM_LOAD( "gca23ka.u1", 0x000000, 0x001014, BAD_DUMP CRC(f392349c) SHA1(e7eb7979db276de560d5820163a70d97e6c023d8) ) ROM_REGION( 0x000008, "install_id", 0 ) /* install security cart id */ ROM_LOAD( "a23kaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(af09e43c) SHA1(d8372f2d6e0ae07061b496a2242a63e5bc2e54dc) ) ROM_REGION( 0x000008, "game_id", 0 ) /* game security cart id */ ROM_LOAD( "gca23ka.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "a23kaa02", 0, SHA1(5b853cc25eb583ed36d8cd402235b4f5c9ce065a) ) ROM_END ROM_START( pnchmn ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gq918jaa.u1", 0x000000, 0x000224, BAD_DUMP CRC(e4769787) SHA1(d60c6598c7c58b5cd8f86350ebf7f3f32c1ebe9b) ) ROM_REGION( 0x200000, "onboard.0", 0 ) /* onboard flash */ ROM_LOAD( "gq918xxb.31m", 0x000000, 0x200000, CRC(3653b5d7) SHA1(1deb44335b7a38506fb30da40e0ca61b96aea7bb) ) ROM_REGION( 0x200000, "onboard.1", 0 ) /* onboard flash */ ROM_LOAD( "gq918xxb.27m", 0x000000, 0x200000, CRC(27d48c97) SHA1(c140d4bdfa869fbcae1133bbfe73a346e6f46cb8) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gq918jaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "918xxb02", 0, SHA1(8ced8952fff3e70ce0621a491f0973af5a6ccd82) ) ROM_END ROM_START( pnchmna ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gq918jab.u1", 0x000000, 0x000224, BAD_DUMP CRC(e4769787) SHA1(d60c6598c7c58b5cd8f86350ebf7f3f32c1ebe9b) ) ROM_REGION( 0x200000, "onboard.0", 0 ) /* onboard flash */ ROM_LOAD( "gq918xxb.31m", 0x000000, 0x200000, CRC(3653b5d7) SHA1(1deb44335b7a38506fb30da40e0ca61b96aea7bb) ) ROM_REGION( 0x200000, "onboard.1", 0 ) /* onboard flash */ ROM_LOAD( "gq918xxb.27m", 0x000000, 0x200000, CRC(27d48c97) SHA1(c140d4bdfa869fbcae1133bbfe73a346e6f46cb8) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gq918jab.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "918jab02", 0, SHA1(8e59b07f6f4b67afb1109200da01d177a537d1be) ) ROM_END ROM_START( pnchmn2 ) SYS573_BIOS_A ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gqa09ja.u1", 0x000000, 0x000224, BAD_DUMP CRC(e1e4108f) SHA1(0605e2c7a7dcb2f4928350e96d2ffcc2ede4a762) ) ROM_REGION( 0x200000, "onboard.0", 0 ) /* onboard flash */ ROM_LOAD( "gqa09ja.31m", 0x000000, 0x200000, CRC(b1043a91) SHA1(b474439c1a7da7855d9b6d2162d4a522f499d6ab) ) ROM_REGION( 0x200000, "onboard.1", 0 ) /* onboard flash */ ROM_LOAD( "gqa09ja.27m", 0x000000, 0x200000, CRC(09b1a70b) SHA1(0f3bcad879e05faaf8130133d774a2071031ee74) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gqa09ja.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "a09jaa02", 0, SHA1(b085fbe76d5ef87578744b45b874b5f79147e586) ) ROM_END ROM_START( salarymc ) SYS573_BIOS_A ROM_REGION( 0x0000084, "install_eeprom", 0 ) /* security cart eeprom */ ROM_LOAD( "gca18jaa.u1", 0x000000, 0x000084, CRC(c9197f67) SHA1(8e95a89008f756a79295f2cb557c39efca1351e7) ) ROM_REGION( 0x000008, "install_id", 0 ) /* security cart id */ ROM_LOAD( "gca18jaa.u6", 0x000000, 0x000008, CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) ) DISK_REGION( "cdrom0" ) DISK_IMAGE_READONLY( "gca18jaa", 0, SHA1(8adcc8ef76cbfb9f47fec5702b0b200565b5c561) ) ROM_END // System 573 BIOS (we're missing the later version that boots up with a pseudo-GUI) GAME( 1998, sys573, 0, konami573, konami573, konami573, ROT0, "Konami", "System 573 BIOS", GAME_IS_BIOS_ROOT ) GAME( 1998, darkhleg, sys573, konami573x, konami573, konami573, ROT0, "Konami", "Dark Horse Legend (GX706 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1998, fbaitbc, sys573, k573baitx, fbaitbc, ge765pwbba, ROT0, "Konami", "Fisherman's Bait - A Bass Challenge (GE765 VER. UAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1998, bassangl, fbaitbc, k573baitx, fbaitbc, ge765pwbba, ROT0, "Konami", "Bass Angler (GE765 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1998, pbballex, sys573, konami573x, konami573, konami573, ROT0, "Konami", "Powerful Pro Baseball EX (GX802 VER. JAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1998, konam80s, sys573, konami573x, konami573, konami573, ROT90, "Konami", "Konami 80's AC Special (GC826 VER. EAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1998, konam80u, konam80s, konami573x, konami573, konami573, ROT90, "Konami", "Konami 80's AC Special (GC826 VER. UAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1998, konam80j, konam80s, konami573x, konami573, konami573, ROT90, "Konami", "Konami 80's Gallery (GC826 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1998, konam80a, konam80s, konami573x, konami573, konami573, ROT90, "Konami", "Konami 80's AC Special (GC826 VER. AAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1998, konam80k, konam80s, konami573x, konami573, konami573, ROT90, "Konami", "Konami 80's AC Special (GC826 VER. KAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, dstage, sys573, konami573x, ddr, ddr, ROT0, "Konami", "Dancing Stage (GN845 VER. EAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, ddru, dstage, konami573x, ddr, ddr, ROT0, "Konami", "Dance Dance Revolution (GN845 VER. UAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1998, ddrj, dstage, konami573x, ddr, ddr, ROT0, "Konami", "Dance Dance Revolution - Internet Ranking Ver (GC845 VER. JBA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1998, ddrja, dstage, konami573x, ddr, ddr, ROT0, "Konami", "Dance Dance Revolution (GC845 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) GAME( 1998, ddrjb, dstage, konami573x, ddr, ddr, ROT0, "Konami", "Dance Dance Revolution (GC845 VER. JAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) GAME( 1999, ddra, dstage, konami573x, ddr, ddr, ROT0, "Konami", "Dance Dance Revolution (GN845 VER. AAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1998, fbait2bc, sys573, k573baitx, fbaitbc, ge765pwbba, ROT0, "Konami", "Fisherman's Bait 2 - A Bass Challenge (GE865 VER. UAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1998, bassang2, fbait2bc, k573baitx, fbaitbc, ge765pwbba, ROT0, "Konami", "Bass Angler 2 (GE865 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, drmn, sys573, konami573x, drmn, drmn, ROT0, "Konami", "DrumMania (GQ881 VER. JAD)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) GAME( 1999, gtrfrks, sys573, konami573x, gtrfrks, gtrfrks, ROT0, "Konami", "Guitar Freaks (GQ886 VER. EAC)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, gtrfrksu, gtrfrks, konami573x, gtrfrks, gtrfrks, ROT0, "Konami", "Guitar Freaks (GQ886 VER. UAC)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, gtrfrksj, gtrfrks, konami573x, gtrfrks, gtrfrks, ROT0, "Konami", "Guitar Freaks (GQ886 VER. JAC)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, gtrfrksa, gtrfrks, konami573x, gtrfrks, gtrfrks, ROT0, "Konami", "Guitar Freaks (GQ886 VER. AAC)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, fbaitmc, sys573, k573baitx, fbaitmc, ge765pwbba, ROT0, "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. EA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, fbaitmcu, fbaitmc, k573baitx, fbaitmc, ge765pwbba, ROT0, "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. UA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, fbaitmcj, fbaitmc, k573baitx, fbaitmc, ge765pwbba, ROT0, "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. JA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, fbaitmca, fbaitmc, k573baitx, fbaitmc, ge765pwbba, ROT0, "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. AA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, ddr2m, sys573, konami573x, ddr, ddr, ROT0, "Konami", "Dance Dance Revolution 2nd Mix (GN895 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, ddr2ml, ddr2m, pccard1x, ddr, ddr, ROT0, "Konami", "Dance Dance Revolution 2nd Mix - Link Ver (GE885 VER. JAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, ddr2mla, ddr2m, pccard1x, ddr, ddr, ROT0, "Konami", "Dance Dance Revolution 2nd Mix - Link Ver (GE885 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, ddrbocd, ddr2m, pccard1x, ddr, ddr, ROT0, "Konami", "Dance Dance Revolution Best of Cool Dancers (GE892 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, ddr2mc, ddr2m, konami573x, ddr, ddr, ROT0, "Konami", "Dance Dance Revolution 2nd Mix with beatmaniaIIDX CLUB VERSiON (GE896 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, ddr2mc2, ddr2m, konami573x, ddr, ddr, ROT0, "Konami", "Dance Dance Revolution 2nd Mix with beatmaniaIIDX substream CLUB VERSiON 2 (GE984 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, gtrfrk2m, sys573, pccard1yi, gtrfrks, gtrfrks, ROT0, "Konami", "Guitar Freaks 2nd Mix Ver 1.01 (GQ883 VER. JAD)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, dsftkd, sys573, konami573yi, ddr, ddr, ROT0, "Konami", "Dancing Stage featuring TRUE KiSS DESTiNATiON (G*884 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, cr589fw, sys573, konami573, konami573, konami573, ROT0, "Konami", "CD-ROM Drive Updater 2.0 (700B04)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, cr589fwa, sys573, konami573, konami573, konami573, ROT0, "Konami", "CD-ROM Drive Updater (700A04)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 2000, ddr3mk, sys573, pccard2dyyi, ddr, ddrdigital, ROT0, "Konami", "Dance Dance Revolution 3rd Mix - Ver.Korea2 (GN887 VER. KBA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.3 */ GAME( 2000, ddr3mka, ddr3mk, pccard2dyyi, ddr, ddrdigital, ROT0, "Konami", "Dance Dance Revolution 3rd Mix - Ver.Korea (GN887 VER. KAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.3 */ GAME( 1999, ddr3ma, ddr3mk, pccard2dyyi, ddr, ddrdigital, ROT0, "Konami", "Dance Dance Revolution 3rd Mix (GN887 VER. AAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.1 */ GAME( 1999, ddr3mj, ddr3mk, pccard2dyyi, ddr, ddrdigital, ROT0, "Konami", "Dance Dance Revolution 3rd Mix (GN887 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.0 */ GAME( 1999, ddrsbm, sys573, k573dyi, ddrsolo, ddrsolo, ROT0, "Konami", "Dance Dance Revolution Solo Bass Mix (GQ894 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) GAME( 1999, ddrs2k, sys573, k573dyyi, ddrsolo, ddrsolo, ROT0, "Konami", "Dance Dance Revolution Solo 2000 (GC905 VER. AAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.3 */ GAME( 1999, ddrs2kj, ddrs2k, k573dyyi, ddrsolo, ddrsolo, ROT0, "Konami", "Dance Dance Revolution Solo 2000 (GC905 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.2 */ GAME( 1999, hyperbbc, sys573, konami573y, hyperbbc, hyperbbc, ROT0, "Konami", "Hyper Bishi Bashi Champ (GX908 1999/08/24 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, hyperbbck,hyperbbc, konami573y, hyperbbc, hyperbbc, ROT0, "Konami", "Hyper Bishi Bashi Champ (GX908 1999/08/24 VER. KAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, dsfdct, sys573, pccard2dyyi, ddr, ddrdigital, ROT0, "Konami", "Dancing Stage featuring Dreams Come True (GC910 VER. JCA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) GAME( 1999, dsfdcta, dsfdct, pccard2yyi, ddr, ddr, ROT0, "Konami", "Dancing Stage featuring Dreams Come True (GC910 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 1999, drmn2m, sys573, k573dxzi, drmn, drmndigital,ROT0, "Konami", "DrumMania 2nd Mix (GE912 VER. JAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.5 */ GAME( 1999, drmn2mpu, drmn2m, k573dxzi, drmn, drmndigital,ROT0, "Konami", "DrumMania 2nd Mix Session Power Up Kit (GE912 VER. JAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.5 */ GAME( 2000, dncfrks, sys573, k573dzi, dmx, dmx, ROT0, "Konami", "Dance Freaks (G*874 VER. KAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.6 */ GAME( 2000, dmx, dncfrks, k573dzi, dmx, dmx, ROT0, "Konami", "Dance Maniax (G*874 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.6 */ GAME( 2000, gunmania, sys573, gunmania, gunmania, gunmania, ROT0, "Konami", "GunMania (GL906 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) GAME( 2000, fghtmn, sys573, punchmania, punchmania,punchmania, ROT0, "Konami", "Fighting Mania (QG918 VER. EAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* motor/artwork/network */ GAME( 2000, fghtmna, fghtmn, punchmania, punchmania,punchmania, ROT0, "Konami", "Fighting Mania (QG918 VER. AAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* motor/artwork/network */ GAME( 2000, pnchmn, fghtmn, punchmania, punchmania,punchmania, ROT0, "Konami", "Punch Mania: Hokuto No Ken (GQ918 VER. JAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* motor/artwork/network */ GAME( 2000, pnchmna, fghtmn, punchmania, punchmania,punchmania, ROT0, "Konami", "Punch Mania: Hokuto No Ken (GQ918 VER. JAB ALT CD)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* motor/artwork/network */ GAME( 2000, fghtmnk, fghtmn, punchmania, punchmania,punchmania, ROT0, "Konami", "Fighting Mania (QG918 VER. KAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* motor/artwork/network */ GAME( 2000, fghtmnu, fghtmn, punchmania, punchmania,punchmania, ROT0, "Konami", "Fighting Mania (QG918 VER. UAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* motor/artwork/network */ GAME( 2000, dsem, sys573, k573dxi, ddr, ddrdigital, ROT0, "Konami", "Dancing Stage Euro Mix (G*936 VER. EAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.7 */ GAME( 2000, gtrfrk3m, sys573, pccard1dxzi, gtrfrks, gtrfrkdigital,ROT0, "Konami", "Guitar Freaks 3rd Mix (GE949 VER. JAC)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.4 */ GAME( 2000, gtfrk3ma, gtrfrk3m, pccard1dxzi, gtrfrks, gtrfrkdigital,ROT0, "Konami", "Guitar Freaks 3rd Mix (GE949 VER. JAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.4 */ GAME( 2000, gtfrk3mb, gtrfrk3m, pccard1dzi, gtrfrks, gtrfrkdigital,ROT0, "Konami", "Guitar Freaks 3rd Mix - security cassette versionup (949JAZ02)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.4 */ GAME( 2000, pnchmn2, sys573, punchmania2, punchmania,punchmania, ROT0, "Konami", "Punch Mania 2: Hokuto No Ken (GQA09 JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* motor/artwork/network */ GAME( 2000, salarymc, sys573, konami573yi, hyperbbc, salarymc, ROT0, "Konami", "Salary Man Champ (GCA18 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) GAME( 2000, ddr3mp, sys573, pccard2dxzi, ddr, ddrdigital, ROT0, "Konami", "Dance Dance Revolution 3rd Mix Plus (G*A22 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.6 */ GAME( 2000, pcnfrk3m, sys573, k573dxzi, drmn, drmndigital,ROT0, "Konami", "Percussion Freaks 3rd Mix (G*A23 VER. KAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.8 */ GAME( 2000, drmn3m, pcnfrk3m, k573dxzi, drmn, drmndigital,ROT0, "Konami", "DrumMania 3rd Mix (G*A23 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.8 */ GAME( 2000, gtrfrk4m, sys573, pccard1dxzi, gtrfrks, gtrfrkdigital,ROT0, "Konami", "Guitar Freaks 4th Mix (G*A24 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.8 */ GAME( 2000, ddr4m, sys573, pccard2dxzi, ddr, ddrdigital, ROT0, "Konami", "Dance Dance Revolution 4th Mix (G*A33 VER. AAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.8 */ GAME( 2000, ddr4mj, ddr4m, pccard2dxzi, ddr, ddrdigital, ROT0, "Konami", "Dance Dance Revolution 4th Mix (G*A33 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.8 */ GAME( 2000, ddr4ms, sys573, pccard2dxzi, ddrsolo, ddrsolo, ROT0, "Konami", "Dance Dance Revolution 4th Mix Solo (G*A33 VER. ABA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.8 */ GAME( 2000, ddr4msj, ddr4ms, pccard2dxzi, ddrsolo, ddrsolo, ROT0, "Konami", "Dance Dance Revolution 4th Mix Solo (G*A33 VER. JBA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.8 */ GAME( 2000, dsfdr, sys573, k573dxzi, ddr, ddrdigital, ROT0, "Konami", "Dancing Stage Featuring Disney's Rave (GCA37JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.8 */ GAME( 2000, ddrusa, sys573, k573dx, ddr, ddrdigital, ROT0, "Konami", "Dance Dance Revolution USA (G*A44 VER. UAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.8 */ GAME( 2000, ddr4mp, sys573, pccard2dxzi, ddr, ddrdigital, ROT0, "Konami", "Dance Dance Revolution 4th Mix Plus (G*A34 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.9 */ GAME( 2000, ddr4mps, sys573, pccard2dxzi, ddrsolo, ddrsolo, ROT0, "Konami", "Dance Dance Revolution 4th Mix Plus Solo (G*A34 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.9 */ GAME( 2000, dmx2m, sys573, k573dzi, dmx, dmx, ROT0, "Konami", "Dance Maniax 2nd Mix (G*A39 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.9 */ GAME( 2000, drmn4m, sys573, k573dzi, drmn, drmndigital,ROT0, "Konami", "DrumMania 4th Mix (G*A25 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.8 */ GAME( 2001, gtrfrk5m, sys573, pccard1dzi, gtrfrks, gtrfrkdigital,ROT0, "Konami", "Guitar Freaks 5th Mix (G*A26 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.9 */ GAME( 2001, ddr5m, sys573, pccard2dzi, ddr, ddrdigital, ROT0, "Konami", "Dance Dance Revolution 5th Mix (G*A27 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.9 */ GAME( 2001, dmx2majp, sys573, konami573zi, dmx, dmx, ROT0, "Konami", "Dance Maniax 2nd Mix Append J-Paradise (G*A38 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.9 */ GAME( 2001, mamboagg, sys573, k573dzi, mamboagg, mamboagg, ROT0, "Konami", "Mambo A Go-Go (GQA40 VER. JAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */ GAME( 2001, drmn5m, sys573, k573dzi, drmn, drmndigital,ROT0, "Konami", "DrumMania 5th Mix (G*B05 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.9 */ GAME( 2001, gtrfrk6m, sys573, pccard1dzi, gtrfrks, gtrfrkdigital,ROT0, "Konami", "Guitar Freaks 6th Mix (G*B06 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.9 */ GAME( 2001, drmn6m, sys573, k573dzi, drmn, drmndigital,ROT0, "Konami", "DrumMania 6th Mix (G*B16 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */ GAME( 2001, gtrfrk7m, sys573, pccard1dzi, gtrfrks, gtrfrkdigital,ROT0, "Konami", "Guitar Freaks 7th Mix (G*B17 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */ GAME( 2001, ddrmax, sys573, pccard2dzi, ddr, ddrdigital, ROT0, "Konami", "DDR Max - Dance Dance Revolution 6th Mix (G*B19 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.9 */ GAME( 2002, ddrmax2, sys573, pccard2dzi, ddr, ddrdigital, ROT0, "Konami", "DDR Max 2 - Dance Dance Revolution 7th Mix (G*B20 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */ GAME( 2002, mrtlbeat, sys573, pccard2dzi, ddr, ddrdigital, ROT0, "Konami", "Martial Beat (G*B47 VER. JBA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.9 */ GAME( 2002, drmn7m, sys573, k573dzi, drmn, drmndigital,ROT0, "Konami", "DrumMania 7th Mix power-up ver. (G*C07 VER. JBA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */ GAME( 2002, drmn7ma, drmn7m, k573dzi, drmn, drmndigital,ROT0, "Konami", "DrumMania 7th Mix (G*C07 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */ GAME( 2002, gtrfrk8m, sys573, pccard1dzi, gtrfrks, gtrfrkdigital,ROT0, "Konami", "Guitar Freaks 8th Mix power-up ver. (G*C08 VER. JBA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */ GAME( 2002, gtrfrk8ma,gtrfrk8m, pccard1dzi, gtrfrks, gtrfrkdigital,ROT0, "Konami", "Guitar Freaks 8th Mix (G*C08 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */ GAME( 2002, dsem2, sys573, pccard2dzi, ddr, ddrdigital, ROT0, "Konami", "Dancing Stage Euro Mix 2 (G*C23 VER. EAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */ GAME( 2002, ddrextrm, sys573, pccard2dzi, ddr, ddrdigital, ROT0, "Konami", "Dance Dance Revolution Extreme (G*C36 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */ GAME( 2003, drmn8m, sys573, k573dzi, drmn, drmndigital,ROT0, "Konami", "DrumMania 8th Mix (G*C07 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */ GAME( 2003, gtrfrk9m, sys573, pccard1dzi, gtrfrks, gtrfrkdigital,ROT0, "Konami", "Guitar Freaks 9th Mix (G*C39 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */ GAME( 2003, drmn9m, sys573, k573dzi, drmn, drmndigital,ROT0, "Konami", "DrumMania 9th Mix (G*D09 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */ GAME( 2003, gtfrk10m, sys573, pccard1dzi, gtrfrks, gtrfrkdigital,ROT0, "Konami", "Guitar Freaks 10th Mix (G*D10 VER. JAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */ GAME( 2003, gtfrk10ma,gtfrk10m, pccard1dzi, gtrfrks, gtrfrkdigital,ROT0, "Konami", "Guitar Freaks 10th Mix (G*D10 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */ GAME( 2003, gtfrk10mb,gtfrk10m, pccard1dzi, gtrfrks, gtrfrkdigital,ROT0, "Konami", "Guitar Freaks 10th Mix eAmusement (G*D10 VER. JBA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */ GAME( 2004, gtfrk11m, sys573, pccard1dzi, gtrfrks, gtrfrkdigital,ROT0, "Konami", "Guitar Freaks 11th Mix (G*D39 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */ GAME( 2004, drmn10m, sys573, k573dzi, drmn, drmndigital,ROT0, "Konami", "DrumMania 10th Mix (G*D40 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */