diff options
Diffstat (limited to 'src/mame/namco/namcos12.cpp')
-rw-r--r-- | src/mame/namco/namcos12.cpp | 826 |
1 files changed, 520 insertions, 306 deletions
diff --git a/src/mame/namco/namcos12.cpp b/src/mame/namco/namcos12.cpp index ab9aa1146e1..f8c3698e570 100644 --- a/src/mame/namco/namcos12.cpp +++ b/src/mame/namco/namcos12.cpp @@ -15,13 +15,14 @@ Issues: - not all games work due to either banking, dma or protection issues. - graphics are glitchy in some games. - - kartduel does a "BSOD" crash when you start the game in race mode, or after finishing a race in time trial mode - kartduel frame rate is choppy, it freezes every half second - - truckk doesn't boot: the H8/3002 never enters InitJVSBoards @ 1DE2. 1DE2 is referenced in a table of commands at 4032, - which is called by the routine at 3FEA. It is not clear how execution is intended to get to 3FEA - there are no direct - branches to that location, and the bytes 3F EA don't appear at all in the program. + memo: this is due to the link PCB not being implemented, it keeps trying to communicate over the network causing hitching. + Forcing 0x1f781701 (which is within the shared RAM between the PCBs) to 0xff will stop the hitching. - technodr: printer not emulated. To play the game, press F2 to enter the test menu, navigate to GAME OPTIONS and disable the printer by setting "PRINTER" to OFF. + - sws2001 crashes at random times in-game, and always after the opening video. You can spam insert coin and start to get in-game. + - sws2000 also crashes after opening video + - toukon3 has garbage graphics Namco System 12 - Arcade Playstation-based Hardware =================================================== @@ -68,6 +69,7 @@ Tekken 3 (TET1/VER.A) (C) Namco, 1996 COH-700 SYS Tekken 3 (TET2/VER.A) (C) Namco, 1996 COH-700 SYSTEM12 MOTHER SYSTEM12 M8F2F KC006 Tekken 3 (TET3/VER.A) (C) Namco, 1996 COH-700 SYSTEM12 MOTHER SYSTEM12 M8F2F KC006 Tekken 3 (TET3/VER.B) (C) Namco, 1996 COH-700 SYSTEM12 MOTHER SYSTEM12 M8F2F KC006 +Tekken 3 (TET2/VER.C) (C) Namco, 1996 COH-700 SYSTEM12 MOTHER SYSTEM12 M8F2F KC006 Tekken 3 (TET2/VER.D) (C) Namco, 1996 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M8F2F KC006 Tekken 3 (TET3/VER.D) (C) Namco, 1996 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M8F2F KC006 Tekken 3 (TET1/VER.E1) (C) Namco, 1996 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M8F2F KC006 @@ -82,19 +84,19 @@ Wanted Games Aerosmith - Quest for Fame (C) Namco, 2001 http://www.bandainamcogames.co.jp/am/vg/questforfame/ -Soul Calibur Ver.B (C) Namco, 199? +Soul Calibur Ver.B (C) Namco, 1998 (flyer date) +https://flyers.arcade-museum.com/?page=flyer&db=videodb&id=1009&image=1 +https://flyers.arcade-museum.com/?page=flyer&db=videodb&id=4766&image=1 Probably doesn't exist -Submarines (C) Namco, 199? -http://www.arcadeflyers.com/?page=thumbs&db=videodb&id=5531 +Submarines (C) Namco, 1999 (flyer date) +https://flyers.arcade-museum.com/?page=flyer&db=videodb&id=5531&image=1 This was cancelled, only the flyer exists. It was shown only at an amusement show. Possibly a prototype still exists. Possibly not. Tekno Werk (C) Namco, 1999 -Some kind of music game similar to Konami's Keyboard Mania series - -Um Jammer Lammy (C) Namco, 1999 -http://www.wailee.com/sys/lpic/UM_Jammer_Lammy.jpg +A music game with two 17-key Yamaha keyboards side by side for 2 players +Video: https://www.youtube.com/watch?v=uGlt0HM67l8 The Namco System 12 system comprises 3 mandatory PCB's.... MOTHER PCB - This is the main PCB. It holds all sound circuitry, sound ROMs, program ROMs, shared RAM, bank-switching @@ -1047,9 +1049,11 @@ Notes: MB87078 : Fujitsu MB87078 6-bit, 4-channel Electronic Volume Controller (SOIC24) J2 : Custom Namco connector for plug-in CPU PCB J3 : 40 pin connector for IDE CDROM data cable - J4 : 6 pin connector (possibly to re-program the CPLD) - J8 : 4 pin connector (left/right audio output) - J9 : 3 pin connector (possibly mono audio output or another audio output) + J4 : 6 pin connector (serial) + For Um Jammer Lammy Now this goes to J205 on the M148 EMI DRIVE PCB. + According to the manual schematics, only GND and TX are connected going to RxD0 on EMI DRIVE PCB side. + J8 : 4 pin connector (left/right audio output, RGND/R/LGND/L pinout) + J9 : 3 pin connector (left/right audio output, L/GND/R pinout) This PCB was found on the following games (so far).... @@ -1093,18 +1097,28 @@ The lever must be wired to analog port 0 (pin B22 parts side) of the Namco 48-wa */ #include "emu.h" -#include "cpu/psx/psx.h" + +#include "bus/ata/ataintf.h" #include "cpu/h8/h83002.h" #include "cpu/h8/h83337.h" -#include "video/psx.h" +#include "cpu/sh/sh7014.h" +#include "cpu/psx/psx.h" #include "machine/at28c16.h" #include "machine/ram.h" -#include "sound/c352.h" #include "machine/rtc4543.h" +#include "sound/c352.h" +#include "video/psx.h" + #include "namco_settings.h" +#include "namcos12_cdxa.h" + #include "screen.h" #include "speaker.h" +#include <cstdarg> + + +namespace { #define VERBOSE_LEVEL ( 0 ) @@ -1125,6 +1139,8 @@ public: , m_mainbank(*this, "mainbank") , m_lightgun_io(*this, {"LIGHT0_X", "LIGHT0_Y", "LIGHT1_X", "LIGHT1_Y"}) , m_service_io(*this, "SERVICE") + , m_start_lamp(*this, "P%u_Start_lamp", 1U) + , m_gun_recoil(*this, "Player%u_Gun_Recoil", 1U) { } @@ -1135,28 +1151,34 @@ public: void init_namcos12(); void init_ptblank2(); void init_technodr(); - void init_golgo13(); + void init_alt_bank1(); protected: + virtual void machine_start() override; virtual void machine_reset() override; - void golgo13_h8iomap(address_map &map); - void kartduel_h8iomap(address_map &map); - void jvsiomap(address_map &map); void jvsmap(address_map &map); void namcos12_map(address_map &map); - void plarailjvsiomap(address_map &map); void plarailjvsmap(address_map &map); void ptblank2_map(address_map &map); - void s12h8iomap(address_map &map); - void s12h8jvsiomap(address_map &map); - void s12h8railiomap(address_map &map); void s12h8rwjvsmap(address_map &map); void s12h8rwmap(address_map &map); - void tdjvsiomap(address_map &map); void tdjvsmap(address_map &map); void tektagt_map(address_map &map); + uint16_t s12_mcu_gun_h_r(); + uint16_t s12_mcu_gun_v_r(); + uint8_t s12_mcu_p8_r(); + uint8_t s12_mcu_jvs_p8_r(); + uint8_t s12_mcu_pa_r(); + void s12_mcu_pa_w(uint8_t data); + uint8_t s12_mcu_portB_r(); + void s12_mcu_portB_w(uint8_t data); + uint8_t s12_mcu_p6_r(); + uint8_t iob_p4_r(); + uint8_t iob_p6_r(); + void iob_p4_w(uint8_t data); + required_device<psxcpu_device> m_maincpu; required_device<ram_device> m_ram; required_device<h83002_device> m_sub; @@ -1174,6 +1196,9 @@ private: optional_ioport_array<4> m_lightgun_io; optional_ioport m_service_io; + output_finder<2> m_start_lamp; + output_finder<2> m_gun_recoil; + uint16_t m_n_bankoffset; uint32_t m_n_dmaoffset; uint32_t m_n_tektagdmaoffset; @@ -1184,14 +1209,7 @@ private: uint32_t m_ttt_val[2]; uint8_t m_sub_porta; uint8_t m_sub_portb; - uint8_t m_jvssense; - uint8_t m_tssio_port_4; - - uint16_t s12_mcu_p6_r(); - uint16_t iob_p4_r(); - uint16_t iob_p6_r(); - void iob_p4_w(uint16_t data); void sharedram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); uint16_t sharedram_r(offs_t offset, uint16_t mem_mask = ~0); @@ -1204,18 +1222,10 @@ private: void tektagt_protection_2_w(offs_t offset, uint16_t data); uint16_t tektagt_protection_2_r(offs_t offset); uint16_t tektagt_protection_3_r(); - uint16_t s12_mcu_p8_r(); - uint16_t s12_mcu_jvs_p8_r(); - uint16_t s12_mcu_pa_r(); - void s12_mcu_pa_w(uint16_t data); - uint16_t s12_mcu_portB_r(); - void s12_mcu_portB_w(uint16_t data); - uint16_t s12_mcu_gun_h_r(); - uint16_t s12_mcu_gun_v_r(); inline void ATTR_PRINTF(3,4) verboselog( int n_level, const char *s_fmt, ... ); void namcos12_rom_read( uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size ); - DECLARE_WRITE_LINE_MEMBER(namcos12_sub_irq); + void namcos12_sub_irq(int state); }; @@ -1227,7 +1237,6 @@ public: void technodr(machine_config &config); void golgo13(machine_config &config); void aplarail(machine_config &config); - void truckk(machine_config &config); void tektagt(machine_config &config); void ptblank2(machine_config &config); void kartduel(machine_config &config); @@ -1237,6 +1246,28 @@ private: }; +class namcos12_cdxa_state : public namcos12_boothack_state +{ +public: + namcos12_cdxa_state(const machine_config &mconfig, device_type type, const char *tag) + : namcos12_boothack_state(mconfig, type, tag) + , m_cdxa_pcb(*this, "cdxa_pcb") + { + } + + void cdxa_pcb(machine_config &config); + + void truckk(machine_config &config); + + void init_truckk(); + +private: + void cdxa_psx_map(address_map &map); + + required_device<namcos12_cdxa_device> m_cdxa_pcb; +}; + + inline void ATTR_PRINTF(3,4) namcos12_state::verboselog( int n_level, const char *s_fmt, ... ) { if( VERBOSE_LEVEL >= n_level ) @@ -1264,12 +1295,40 @@ uint16_t namcos12_state::sharedram_r(offs_t offset, uint16_t mem_mask) void namcos12_state::bankoffset_w(offs_t offset, uint16_t data, uint16_t mem_mask) { - // Golgo 13 has different banking (maybe the keycus controls it?) - if(m_alt_bank) + /* + Banking notes for various alt bank games: + mdhorse, kaiunqz: + *0x1f000000 = ((val >> 0x17) & 0xe) | 8; + + golgo13, g13knd: + *0x1f000000 = ((val >> 0x17) & 0x6) + 8; + followed by + *0x1f000000 = (val >> 0x15) & 0x7; + + truckk: + *0x1f000000 = ((val >> 0x17) & 0x1e) + 8; + followed by + *0x1f000000 = (val >> 0x15) & 0x7ff; (lower bits only set for manual transfers, mask is implicit) + + sws2001: + The upper bits are set using fixed range checks: + if (val <= 0x0ffffff) + *0x1f000000 = 0x08; + else if (val >= 0x1000000 && val <= 0x1ffffff) + *0x1f000000 = 0x0a; + else if (val >= 0x2000000 && val <= 0x2ffffff) + *0x1f000000 = 0x0c; + else if (val >= 0x3000000) + *0x1f000000 = 0x0e; + + The function at 8004d01c is the same logic as above + logic for the lower 3 bits: + *0x1f000000 = (val >> 0x15) & 0x7; + */ + if( m_alt_bank == 1 ) { if( ( data & 8 ) != 0 ) { - m_n_bankoffset = ( data & 0x6 ) << 2; + m_n_bankoffset = ( data - 8 ) << 2; } else { @@ -1307,28 +1366,33 @@ void namcos12_state::namcos12_rom_read( uint32_t *p_n_psxram, uint32_t n_address // TODO: the check for going past the end of ram should be in dma.c uint32_t m_n_psxramsize = m_ram->size(); - if(m_has_tektagt_dma && !m_n_dmaoffset) - { - n_region = m_bankedroms; - n_offset = m_n_tektagdmaoffset & 0x7fffffff; - verboselog(1, "namcos12_rom_read( %08x, %08x ) tektagt %08x\n", n_address, n_size, n_offset ); - } - else if( m_n_dmaoffset >= 0x80000000 || m_maincpu->exp_base() == 0x1f300000 ) + n_offset = m_has_tektagt_dma ? m_n_tektagdmaoffset : m_n_dmaoffset; + + // Depending on the game, the method of specifying the main ROM region is different. + // Some games set exp_base to 0x1f300000 (toukon3, tenkomor) and others set the msb of the DMA offset to 1 (tekken3, sws2000 for example). + const bool is_mainrom = BIT( n_offset, 31 ) || m_maincpu->exp_base() == 0x1f300000; + + if ( is_mainrom ) { - /// HACK: it's unclear how exp_cfg & exp_base really play a part in this, tenkomor needs the test here and not in dmaoffset_w(). n_region = m_mainrom; - n_offset = m_n_dmaoffset & 0x003fffff; - verboselog(1, "namcos12_rom_read( %08x, %08x ) boot %08x\n", n_address, n_size, n_offset ); + n_offset &= 0xffffff; // although the area should really be masked with 0x3fffff, the bootloader used by sws2000, sws2001, kaiunqz intentionally go over by a small amount when copying the program code into memory } else { n_region = m_bankedroms; - n_offset = m_n_dmaoffset & 0x7fffffff; - verboselog(1, "namcos12_rom_read( %08x, %08x ) game %08x\n", n_address, n_size, n_offset ); + n_offset &= 0x7fffffff; + + if( !m_has_tektagt_dma && m_alt_bank ) // alt bank method stores the upper bits of the bank into m_n_bankoffset + n_offset += m_n_bankoffset * 0x200000; } + m_has_tektagt_dma = 0; + + verboselog(1, "namcos12_rom_read( %08x, %08x ) %s %08x %08x\n", n_address, n_size, is_mainrom ? "mainrom" : "game", m_n_dmaoffset, n_offset ); + source = (uint16_t *) n_region->base(); - n_romleft = ( n_region->bytes() - n_offset ) / 4; + n_romleft = int32_t( n_region->bytes() - n_offset ) / 4; // without the cast this math never becomes negative so the truncation logic never happens (needed by sws2000, sws2001, kaiunqz) + if( n_size > n_romleft ) { verboselog(1, "namcos12_rom_read dma truncated %d to %d passed end of rom\n", n_size, n_romleft ); @@ -1337,7 +1401,7 @@ void namcos12_state::namcos12_rom_read( uint32_t *p_n_psxram, uint32_t n_address destination = (uint16_t *)p_n_psxram; - n_ramleft = ( m_n_psxramsize - n_address ) / 4; + n_ramleft = int32_t( m_n_psxramsize - n_address ) / 4; if( n_size > n_ramleft ) { verboselog(1, "namcos12_rom_read dma truncated %d to %d passed end of ram\n", n_size, n_ramleft ); @@ -1357,7 +1421,7 @@ void namcos12_state::namcos12_rom_read( uint32_t *p_n_psxram, uint32_t n_address } } -WRITE_LINE_MEMBER(namcos12_state::namcos12_sub_irq) +void namcos12_state::namcos12_sub_irq(int state) { m_sub->set_input_line(1, state ? ASSERT_LINE : CLEAR_LINE); m_adc->adtrg_w(state); @@ -1368,8 +1432,10 @@ void namcos12_state::namcos12_map(address_map &map) { map(0x1f000000, 0x1f000003).nopr(); map(0x1f000000, 0x1f000001).w(FUNC(namcos12_state::bankoffset_w)); /* banking */ + map(0x1f010000, 0x1f010003).nopw(); // very spammy map(0x1f080000, 0x1f083fff).rw(FUNC(namcos12_state::sharedram_r), FUNC(namcos12_state::sharedram_w)); /* shared ram?? */ map(0x1f140000, 0x1f140fff).rw("at28c16", FUNC(at28c16_device::read), FUNC(at28c16_device::write)).umask32(0x00ff00ff); /* EEPROM */ + map(0x1f018000, 0x1f018003).nopw(); // very spammy map(0x1f1bff08, 0x1f1bff0f).nopw(); /* ?? */ map(0x1f700000, 0x1f70ffff).w(FUNC(namcos12_state::dmaoffset_w)); /* dma */ /* Network area */ @@ -1405,13 +1471,13 @@ void namcos12_state::system11gun_w(offs_t offset, uint16_t data, uint16_t mem_ma /* blowback 1 */ /* blowback 2 */ /* Note: output label has been changed for the Engrish Impaired ;-) */ - output().set_value("Player1_Gun_Recoil", (~data & 0x02)>>1); - output().set_value("Player2_Gun_Recoil", (~data & 0x01)); + m_gun_recoil[0] = BIT(~data, 1); + m_gun_recoil[1] = BIT(~data, 0); /* start 1 */ - output().set_value("P2_Start_lamp", (~data & 0x08)>>3); + m_start_lamp[0] = BIT(~data, 3); /* start 2 */ - output().set_value("P2_Start_lamp", (~data & 0x04)>>2); + m_start_lamp[1] = BIT(~data, 2); verboselog(1, "system11gun_w: outputs (%08x %08x)\n", data, mem_mask ); break; @@ -1545,13 +1611,17 @@ uint16_t namcos12_state::tektagt_protection_3_r() return 0; } +void namcos12_state::machine_start() +{ + m_start_lamp.resolve(); + m_gun_recoil.resolve(); +} + void namcos12_state::machine_reset() { bankoffset_w(0,0,0xffff); m_jvssense = 1; - m_tssio_port_4 = 0; - m_has_tektagt_dma = 0; } @@ -1590,7 +1660,7 @@ void namcos12_state::s12h8rwjvsmap(address_map &map) map(0x300030, 0x300031).noprw(); // most S12 bioses write here simply to generate a wait state. there is no deeper meaning. } -uint16_t namcos12_state::s12_mcu_p8_r() +uint8_t namcos12_state::s12_mcu_p8_r() { return 0x02; } @@ -1599,88 +1669,41 @@ uint16_t namcos12_state::s12_mcu_p8_r() // in System 12, bit 0 of H8/3002 port A is connected to its chip enable // the actual I/O takes place through the H8/3002's serial port B. -uint16_t namcos12_state::s12_mcu_pa_r() +uint8_t namcos12_state::s12_mcu_pa_r() { return m_sub_porta; } -void namcos12_state::s12_mcu_pa_w(uint16_t data) +void namcos12_state::s12_mcu_pa_w(uint8_t data) { m_sub_porta = data; m_rtc->ce_w((m_sub_portb & 0x20) && (m_sub_porta & 1)); m_settings->ce_w((m_sub_portb & 0x20) && !(m_sub_porta & 1)); } -uint16_t namcos12_state::s12_mcu_portB_r() +uint8_t namcos12_state::s12_mcu_portB_r() { return m_sub_portb; } -void namcos12_state::s12_mcu_portB_w(uint16_t data) +void namcos12_state::s12_mcu_portB_w(uint8_t data) { m_sub_portb = (m_sub_portb & 0x80) | (data & 0x7f); m_rtc->ce_w((m_sub_portb & 0x20) && (m_sub_porta & 1)); m_settings->ce_w((m_sub_portb & 0x20) && !(m_sub_porta & 1)); } -uint16_t namcos12_state::s12_mcu_p6_r() +uint8_t namcos12_state::s12_mcu_p6_r() { // bit 1 = JVS cable present sense (1 = I/O board plugged in) return (m_jvssense << 1) | 0xfd; } -uint16_t namcos12_state::s12_mcu_jvs_p8_r() +uint8_t namcos12_state::s12_mcu_jvs_p8_r() { return 0x12; // bit 4 = JVS enable. aplarail requires it to be on, soulclbr & others will require JVS I/O if it's on } -void namcos12_state::s12h8iomap(address_map &map) -{ - map(h8_device::PORT_6, h8_device::PORT_6).r(FUNC(namcos12_state::s12_mcu_p6_r)); - map(h8_device::PORT_7, h8_device::PORT_7).portr("DSW"); - map(h8_device::PORT_8, h8_device::PORT_8).r(FUNC(namcos12_state::s12_mcu_p8_r)).nopw(); - map(h8_device::PORT_A, h8_device::PORT_A).rw(FUNC(namcos12_state::s12_mcu_pa_r), FUNC(namcos12_state::s12_mcu_pa_w)); - map(h8_device::PORT_B, h8_device::PORT_B).rw(FUNC(namcos12_state::s12_mcu_portB_r), FUNC(namcos12_state::s12_mcu_portB_w)); - map(h8_device::ADC_0, h8_device::ADC_0).noprw(); - map(h8_device::ADC_1, h8_device::ADC_1).noprw(); - map(h8_device::ADC_2, h8_device::ADC_2).noprw(); - map(h8_device::ADC_3, h8_device::ADC_3).noprw(); -} - -void namcos12_state::s12h8jvsiomap(address_map &map) -{ - map(h8_device::PORT_6, h8_device::PORT_6).r(FUNC(namcos12_state::s12_mcu_p6_r)); - map(h8_device::PORT_7, h8_device::PORT_7).portr("DSW"); - map(h8_device::PORT_8, h8_device::PORT_8).r(FUNC(namcos12_state::s12_mcu_jvs_p8_r)).nopw(); - map(h8_device::PORT_A, h8_device::PORT_A).rw(FUNC(namcos12_state::s12_mcu_pa_r), FUNC(namcos12_state::s12_mcu_pa_w)); - map(h8_device::PORT_B, h8_device::PORT_B).rw(FUNC(namcos12_state::s12_mcu_portB_r), FUNC(namcos12_state::s12_mcu_portB_w)); - map(h8_device::ADC_0, h8_device::ADC_0).noprw(); - map(h8_device::ADC_1, h8_device::ADC_1).noprw(); - map(h8_device::ADC_2, h8_device::ADC_2).noprw(); - map(h8_device::ADC_3, h8_device::ADC_3).noprw(); -} - -void namcos12_state::s12h8railiomap(address_map &map) -{ - map(h8_device::PORT_6, h8_device::PORT_6).r(FUNC(namcos12_state::s12_mcu_p6_r)); - map(h8_device::PORT_7, h8_device::PORT_7).portr("DSW"); - map(h8_device::PORT_8, h8_device::PORT_8).r(FUNC(namcos12_state::s12_mcu_jvs_p8_r)).nopw(); - map(h8_device::PORT_A, h8_device::PORT_A).rw(FUNC(namcos12_state::s12_mcu_pa_r), FUNC(namcos12_state::s12_mcu_pa_w)); - map(h8_device::PORT_B, h8_device::PORT_B).rw(FUNC(namcos12_state::s12_mcu_portB_r), FUNC(namcos12_state::s12_mcu_portB_w)); - map(h8_device::ADC_0, h8_device::ADC_0).portr("LEVER"); - map(h8_device::ADC_1, h8_device::ADC_1).noprw(); - map(h8_device::ADC_2, h8_device::ADC_2).noprw(); - map(h8_device::ADC_3, h8_device::ADC_3).noprw(); -} - -void namcos12_state::kartduel_h8iomap(address_map &map) -{ - s12h8iomap(map); - map(h8_device::ADC_0, h8_device::ADC_0).portr("BRAKE"); - map(h8_device::ADC_1, h8_device::ADC_1).portr("GAS"); - map(h8_device::ADC_2, h8_device::ADC_2).portr("STEER"); -} - // Golgo 13 lightgun inputs uint16_t namcos12_state::s12_mcu_gun_h_r() @@ -1693,14 +1716,6 @@ uint16_t namcos12_state::s12_mcu_gun_v_r() return m_lightgun_io[1]->read(); } -void namcos12_state::golgo13_h8iomap(address_map &map) -{ - s12h8iomap(map); - - map(h8_device::ADC_1, h8_device::ADC_1).r(FUNC(namcos12_state::s12_mcu_gun_h_r)); - map(h8_device::ADC_2, h8_device::ADC_2).r(FUNC(namcos12_state::s12_mcu_gun_v_r)); -} - void namcos12_state::init_namcos12() { m_mainbank->configure_entries(0, memregion( "bankedroms" )->bytes() / 0x200000, memregion( "bankedroms" )->base(), 0x200000 ); @@ -1734,7 +1749,7 @@ void namcos12_state::init_technodr() *( (uint32_t *)( memregion( "sub" )->base() + 0x14b6 ) ) = 0; } -void namcos12_state::init_golgo13() +void namcos12_state::init_alt_bank1() { init_namcos12(); m_alt_bank = 1; @@ -1746,18 +1761,27 @@ void namcos12_state::namcos12_mobo(machine_config &config) /* basic machine hardware */ H83002(config, m_sub, 16934400); // frequency based on research (superctr) m_sub->set_addrmap(AS_PROGRAM, &namcos12_state::s12h8rwmap); - m_sub->set_addrmap(AS_IO, &namcos12_state::s12h8iomap); + m_sub->read_adc<0>().set_constant(0); + m_sub->read_adc<1>().set_constant(0); + m_sub->read_adc<2>().set_constant(0); + m_sub->read_adc<3>().set_constant(0); + m_sub->read_port6().set(FUNC(namcos12_state::s12_mcu_p6_r)); + m_sub->read_port7().set_ioport("DSW"); + m_sub->read_port8().set(FUNC(namcos12_state::s12_mcu_p8_r)); + m_sub->write_port8().set_nop(); + m_sub->read_porta().set(FUNC(namcos12_state::s12_mcu_pa_r)); + m_sub->write_porta().set(FUNC(namcos12_state::s12_mcu_pa_w)); + m_sub->read_portb().set(FUNC(namcos12_state::s12_mcu_portB_r)); + m_sub->write_portb().set(FUNC(namcos12_state::s12_mcu_portB_w)); NAMCO_SETTINGS(config, m_settings, 0); RTC4543(config, m_rtc, XTAL(32'768)); - m_rtc->data_cb().set("sub:sci1", FUNC(h8_sci_device::rx_w)); + m_rtc->data_cb().set(m_sub, FUNC(h8_device::sci_rx_w<1>)); - // FIXME: need better syntax for configuring H8 onboard devices - h8_sci_device &sub_sci1(*m_sub->subdevice<h8_sci_device>("sci1")); - sub_sci1.tx_handler().set(m_settings, FUNC(namco_settings_device::data_w)); - sub_sci1.clk_handler().set(m_rtc, FUNC(rtc4543_device::clk_w)).invert(); - sub_sci1.clk_handler().append(m_settings, FUNC(namco_settings_device::clk_w)); + m_sub->write_sci_tx<1>().set(m_settings, FUNC(namco_settings_device::data_w)); + m_sub->write_sci_clk<1>().set(m_rtc, FUNC(rtc4543_device::clk_w)).invert(); + m_sub->write_sci_clk<1>().append(m_settings, FUNC(namco_settings_device::clk_w)); AT28C16(config, "at28c16", 0); @@ -1825,7 +1849,8 @@ void namcos12_boothack_state::golgo13(machine_config &config) coh700(config); /* basic machine hardware */ - m_sub->set_addrmap(AS_IO, &namcos12_boothack_state::golgo13_h8iomap); + m_sub->read_adc<1>().set(FUNC(namcos12_boothack_state::s12_mcu_gun_h_r)); + m_sub->read_adc<2>().set(FUNC(namcos12_boothack_state::s12_mcu_gun_v_r)); } void namcos12_boothack_state::kartduel(machine_config &config) @@ -1833,7 +1858,9 @@ void namcos12_boothack_state::kartduel(machine_config &config) coh700(config); /* basic machine hardware */ - m_sub->set_addrmap(AS_IO, &namcos12_boothack_state::kartduel_h8iomap); + m_sub->read_adc<0>().set_ioport("BRAKE"); + m_sub->read_adc<1>().set_ioport("GAS"); + m_sub->read_adc<2>().set_ioport("STEER"); } #define JVSCLOCK (XTAL(14'745'600)) @@ -1843,41 +1870,18 @@ void namcos12_state::jvsmap(address_map &map) map(0xc000, 0xfb7f).ram(); } -void namcos12_state::jvsiomap(address_map &map) -{ -} - - -void namcos12_boothack_state::truckk(machine_config &config) -{ - coh700(config); - // Timer at 115200*16 for the jvs serial clock - subdevice<h8_sci_device>("sub:sci0")->set_external_clock_period(attotime::from_hz(JVSCLOCK/8)); - - h83334_device &iocpu(H83334(config, "iocpu", JVSCLOCK)); - iocpu.set_addrmap(AS_PROGRAM, &namcos12_boothack_state::jvsmap); - iocpu.set_addrmap(AS_IO, &namcos12_boothack_state::jvsiomap); - - subdevice<h8_sci_device>("iocpu:sci0")->tx_handler().set("sub:sci0", FUNC(h8_sci_device::rx_w)); - subdevice<h8_sci_device>("sub:sci0")->tx_handler().set("iocpu:sci0", FUNC(h8_sci_device::rx_w)); - - config.set_maximum_quantum(attotime::from_hz(2*115200)); -} - -uint16_t namcos12_state::iob_p4_r() +uint8_t namcos12_state::iob_p4_r() { - return m_tssio_port_4; + return 0; } -void namcos12_state::iob_p4_w(uint16_t data) +void namcos12_state::iob_p4_w(uint8_t data) { - m_tssio_port_4 = data; - // bit 2 = SENSE line back to main (0 = asserted, 1 = dropped) m_jvssense = (data & 0x04) ? 0 : 1; } -uint16_t namcos12_state::iob_p6_r() +uint8_t namcos12_state::iob_p6_r() { // d4 is service button uint8_t sb = (m_service_io->read() & 1) << 4; @@ -1894,15 +1898,6 @@ void namcos12_state::tdjvsmap(address_map &map) map(0xc000, 0xfb7f).ram(); } -void namcos12_state::tdjvsiomap(address_map &map) -{ - map(h8_device::PORT_4, h8_device::PORT_4).rw(FUNC(namcos12_state::iob_p4_r), FUNC(namcos12_state::iob_p4_w)); - map(h8_device::PORT_6, h8_device::PORT_6).r(FUNC(namcos12_state::iob_p6_r)); - map(h8_device::ADC_0, h8_device::ADC_0).portr("STEER"); - map(h8_device::ADC_1, h8_device::ADC_1).portr("BRAKE"); - map(h8_device::ADC_2, h8_device::ADC_2).portr("GAS"); -} - void namcos12_state::plarailjvsmap(address_map &map) { map(0x0000, 0x3fff).rom().region("iocpu", 0); @@ -1911,31 +1906,27 @@ void namcos12_state::plarailjvsmap(address_map &map) map(0xc000, 0xfb7f).ram(); } -void namcos12_state::plarailjvsiomap(address_map &map) -{ - map(h8_device::PORT_4, h8_device::PORT_4).rw(FUNC(namcos12_state::iob_p4_r), FUNC(namcos12_state::iob_p4_w)); - map(h8_device::PORT_6, h8_device::PORT_6).portr("SERVICE"); - map(h8_device::ADC_0, h8_device::ADC_0).noprw(); - map(h8_device::ADC_1, h8_device::ADC_1).noprw(); - map(h8_device::ADC_2, h8_device::ADC_2).noprw(); -} - void namcos12_boothack_state::technodr(machine_config &config) { coh700(config); // Timer at 115200*16 for the jvs serial clock - subdevice<h8_sci_device>("sub:sci0")->set_external_clock_period(attotime::from_hz(JVSCLOCK/8)); + m_sub->sci_set_external_clock_period(0, attotime::from_hz(JVSCLOCK/8)); // modify H8/3002 map to omit direct-connected controls m_sub->set_addrmap(AS_PROGRAM, &namcos12_boothack_state::s12h8rwjvsmap); - m_sub->set_addrmap(AS_IO, &namcos12_boothack_state::s12h8jvsiomap); + m_sub->read_port8().set(FUNC(namcos12_boothack_state::s12_mcu_jvs_p8_r)); h83334_device &iocpu(H83334(config, "iocpu", JVSCLOCK)); iocpu.set_addrmap(AS_PROGRAM, &namcos12_boothack_state::tdjvsmap); - iocpu.set_addrmap(AS_IO, &namcos12_boothack_state::tdjvsiomap); + iocpu.read_adc<0>().set_ioport("STEER"); + iocpu.read_adc<1>().set_ioport("BRAKE"); + iocpu.read_adc<2>().set_ioport("GAS"); + iocpu.read_port4().set(FUNC(namcos12_boothack_state::iob_p4_r)); + iocpu.write_port4().set(FUNC(namcos12_boothack_state::iob_p4_w)); + iocpu.read_port6().set(FUNC(namcos12_boothack_state::iob_p6_r)); - subdevice<h8_sci_device>("iocpu:sci0")->tx_handler().set("sub:sci0", FUNC(h8_sci_device::rx_w)); - subdevice<h8_sci_device>("sub:sci0")->tx_handler().set("iocpu:sci0", FUNC(h8_sci_device::rx_w)); + iocpu.write_sci_tx<0>().set(m_sub, FUNC(h8_device::sci_rx_w<0>)); + m_sub->write_sci_tx<0>().set(iocpu, FUNC(h8_device::sci_rx_w<0>)); config.set_maximum_quantum(attotime::from_hz(2*115200)); } @@ -1944,22 +1935,115 @@ void namcos12_boothack_state::aplarail(machine_config &config) { coh700(config); // Timer at 115200*16 for the jvs serial clock - subdevice<h8_sci_device>("sub:sci0")->set_external_clock_period(attotime::from_hz(JVSCLOCK/8)); + m_sub->sci_set_external_clock_period(0, attotime::from_hz(JVSCLOCK/8)); // modify H8/3002 map to omit direct-connected controls m_sub->set_addrmap(AS_PROGRAM, &namcos12_boothack_state::s12h8rwjvsmap); - m_sub->set_addrmap(AS_IO, &namcos12_boothack_state::s12h8railiomap); + m_sub->read_adc<0>().set_ioport("LEVER"); + m_sub->read_adc<1>().set_constant(0); + m_sub->read_adc<2>().set_constant(0); + m_sub->read_adc<3>().set_constant(0); + m_sub->read_port6().set(FUNC(namcos12_boothack_state::s12_mcu_p6_r)); + m_sub->read_port7().set_ioport("DSW"); + m_sub->read_port8().set(FUNC(namcos12_boothack_state::s12_mcu_jvs_p8_r)); + m_sub->write_port8().set_nop(); + m_sub->read_porta().set(FUNC(namcos12_boothack_state::s12_mcu_pa_r)); + m_sub->write_porta().set(FUNC(namcos12_boothack_state::s12_mcu_pa_w)); + m_sub->read_portb().set(FUNC(namcos12_boothack_state::s12_mcu_portB_r)); + m_sub->write_portb().set(FUNC(namcos12_boothack_state::s12_mcu_portB_w)); h83334_device &iocpu(H83334(config, "iocpu", JVSCLOCK)); iocpu.set_addrmap(AS_PROGRAM, &namcos12_boothack_state::plarailjvsmap); - iocpu.set_addrmap(AS_IO, &namcos12_boothack_state::plarailjvsiomap); + iocpu.read_adc<0>().set_constant(0); + iocpu.read_adc<1>().set_constant(0); + iocpu.read_adc<2>().set_constant(0); + iocpu.read_adc<3>().set_constant(0); + iocpu.read_port4().set(FUNC(namcos12_boothack_state::iob_p4_r)); + iocpu.write_port4().set(FUNC(namcos12_boothack_state::iob_p4_w)); + iocpu.read_port6().set_ioport("SERVICE"); - subdevice<h8_sci_device>("iocpu:sci0")->tx_handler().set("sub:sci0", FUNC(h8_sci_device::rx_w)); - subdevice<h8_sci_device>("sub:sci0")->tx_handler().set("iocpu:sci0", FUNC(h8_sci_device::rx_w)); + iocpu.write_sci_tx<0>().set(m_sub, FUNC(h8_device::sci_rx_w<0>)); + m_sub->write_sci_tx<0>().set(iocpu, FUNC(h8_device::sci_rx_w<0>)); config.set_maximum_quantum(attotime::from_hz(2*115200)); } +/// + +void namcos12_cdxa_state::cdxa_pcb(machine_config &config) +{ + coh700(config); + + NAMCOS12_CDXA(config, m_cdxa_pcb, XTAL(14'745'600)); + m_cdxa_pcb->add_route(0, "lspeaker", 0.30); // roughly matched the volume of speaking lines between the CDXA audio vs non-CDXA audio + m_cdxa_pcb->add_route(1, "rspeaker", 0.30); + m_cdxa_pcb->psx_int10_callback().set("maincpu:irq", FUNC(psxirq_device::intin10)); + + m_maincpu->set_addrmap(AS_PROGRAM, &namcos12_cdxa_state::cdxa_psx_map); +} + +void namcos12_cdxa_state::cdxa_psx_map(address_map &map) +{ + namcos12_map(map); + + map(0x1f7c0000, 0x1f7cffff).rw(m_cdxa_pcb, FUNC(namcos12_cdxa_device::sh2_ram_r), FUNC(namcos12_cdxa_device::sh2_ram_w)); + + map(0x1f7d6002, 0x1f7d6003).w(m_cdxa_pcb, FUNC(namcos12_cdxa_device::reset_sh2_w)); + map(0x1f7d6004, 0x1f7d600b).w(m_cdxa_pcb, FUNC(namcos12_cdxa_device::clockgen_w)); + map(0x1f7d6010, 0x1f7d6011).w(m_cdxa_pcb, FUNC(namcos12_cdxa_device::ide_sh2_enabled_w)); + map(0x1f7d6012, 0x1f7d6013).w(m_cdxa_pcb, FUNC(namcos12_cdxa_device::ide_ps1_enabled_w)); + // 1f7d6018 unknown, only set once to 1 between the "SH2 Reset" and "SH2 Pll Clock Set" steps during boot + map(0x1f7d601a, 0x1f7d601b).w(m_cdxa_pcb, FUNC(namcos12_cdxa_device::sram_enabled_w)); + map(0x1f7d601e, 0x1f7d601f).w(m_cdxa_pcb, FUNC(namcos12_cdxa_device::ps1_int10_finished_w)); + + map(0x1f7d800a, 0x1f7d800b).lr16(NAME([] () { + // Might be for the M148 PCB instead of CDXA PCB + // Code loops until this returns 0x20 before it starts writing to 0x1f7d8000 + // Writes "55 x y z" to 0x1f7d8000 where x, y, z are related to the current I/O state + // Maybe used for lights? + return 0x20; + })); + + map(0x1f7e0000, 0x1f7e000f).rw(m_cdxa_pcb, FUNC(namcos12_cdxa_device::cdrom_cs0_r), FUNC(namcos12_cdxa_device::cdrom_cs0_w)); + // map(0x1f7e8000, 0x1f7e800f).rw(m_cdxa_pcb, FUNC(namcos12_cdxa_device::cdrom_cs1_r), FUNC(namcos12_cdxa_device::cdrom_cs1_w)); + // 1f7d7000 volume enabled/set? gets set to 6 between the "SH2 Volume Set" and "SH2 Trf Program" steps, after setting 4 volumes registers to 0x7e + map(0x1f7f8000, 0x1f7f80ff).w(m_cdxa_pcb, FUNC(namcos12_cdxa_device::volume_w)); +} + +void namcos12_cdxa_state::truckk(machine_config &config) +{ + cdxa_pcb(config); + + m_sub->read_adc<0>().set_ioport("STEER"); + m_sub->read_adc<1>().set_ioport("BRAKE"); + m_sub->read_adc<2>().set_ioport("GAS"); + + // Timer at 115200*16 for the jvs serial clock + m_sub->sci_set_external_clock_period(0, attotime::from_hz(JVSCLOCK/8)); + + h83334_device &iocpu(H83334(config, "iocpu", JVSCLOCK)); + iocpu.set_addrmap(AS_PROGRAM, &namcos12_cdxa_state::jvsmap); + + iocpu.write_sci_tx<0>().set(m_sub, FUNC(h8_device::sci_rx_w<0>)); + m_sub->write_sci_tx<0>().set(iocpu, FUNC(h8_device::sci_rx_w<0>)); + + config.set_maximum_quantum(attotime::from_hz(2*115200)); +} + +void namcos12_cdxa_state::init_truckk() +{ + init_alt_bank1(); + + /* + HACK: Change order of code so that the status flags are set before DMA 5 is started + Can be checked at 0x8001f6e4 + */ + uint8_t temp[5 * 4]; + memcpy(temp, memregion( "maincpu:rom" )->base() + 0x376ec, sizeof(temp)); // copy the 5 instructions that initialize statuses before DMA 5 finishes + memcpy(memregion( "maincpu:rom" )->base() + 0x376e4 + sizeof(temp), memregion( "maincpu:rom" )->base() + 0x376e4, 2 * 4); // move the 2 DMA start call instructions below where the initialization code will go + memcpy(memregion( "maincpu:rom" )->base() + 0x376e4, temp, sizeof(temp)); // write initialization code in new spot +} + static INPUT_PORTS_START( namcos12 ) PORT_START("DSW") PORT_DIPNAME( 0x0080, 0x0080, DEF_STR(Service_Mode) ) PORT_DIPLOCATION( "DIP SW2:1" ) @@ -2180,6 +2264,66 @@ static INPUT_PORTS_START( aplarail ) PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNKNOWN) INPUT_PORTS_END +static INPUT_PORTS_START( truckk ) + PORT_START("DSW") + PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN0") + PORT_BIT( 0xfc23, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_NAME("Select Up") + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_NAME("Select Down") + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Horn") + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("View Change") + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Music Next") + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Music Back") + + PORT_START("IN1") + PORT_BIT( 0x1fff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_SERVICE( 0x4000, IP_ACTIVE_LOW ) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SERVICE1 ) + + PORT_START("GAS") + PORT_BIT( 0x3ff, 0x0200, IPT_PEDAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_NAME("Gas Pedal") PORT_REVERSE + + PORT_START("BRAKE") + PORT_BIT( 0x3ff, 0x0200, IPT_PEDAL2 ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_NAME("Brake Pedal") PORT_REVERSE + + PORT_START("STEER") + PORT_BIT( 0x3ff, 0x0200, IPT_PADDLE ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_NAME("Steering Wheel") +INPUT_PORTS_END + +static INPUT_PORTS_START( ujlnow ) + PORT_START("DSW") + PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN0") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1) PORT_NAME("P1 Chin Switch (C)") + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1) PORT_NAME("P1 Joe Switch (J)") + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_NAME("Select Down") + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_NAME("Select Up") + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Circle / Enter") // The cabinet enter switch is linked to the P1 circle input as per the manual (bottom of pg 33) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Cross") + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("P1 Triangle") + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2) PORT_NAME("P2 Chin Switch (C)") + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2) PORT_NAME("P2 Joe Switch (J)") + PORT_BIT( 0x0c00, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // Must be high to get rid of I/O errors + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Circle") + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Cross") + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME("P2 Triangle") + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 ) + + PORT_START("IN1") + PORT_BIT( 0x13ff, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_NAME("P2 Square") + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_NAME("P1 Square") + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_SERVICE( 0x4000, IP_ACTIVE_LOW ) + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SERVICE1 ) +INPUT_PORTS_END + ROM_START( aquarush ) ROM_REGION32_LE( 0x00400000, "maincpu:rom", 0 ) /* main prg */ ROM_LOAD16_BYTE( "aq1vera.2l", 0x0000000, 0x200000, CRC(91eb9258) SHA1(30e225eb551bfe1bed6b342dd6d597345d64b677) ) @@ -2264,7 +2408,7 @@ ROM_END ROM_START( fgtlayer ) ROM_REGION32_LE( 0x00400000, "maincpu:rom", 0 ) /* main prg */ - ROM_LOAD16_BYTE( "ftl3vera.2e", 0x0000000, 0x200000, CRC(90e33126) SHA1(81caedd72d7634810d6f7093d4ad437aca83fbf2) ) + ROM_LOAD16_BYTE( "ftl3vera.2e", 0x0000000, 0x200000, CRC(17c23471) SHA1(22b5a25569c085f059c1c846cf628a1f140035e9) ) ROM_LOAD16_BYTE( "ftl3vera.2j", 0x0000001, 0x200000, CRC(1626465d) SHA1(941e7f8fbbaa232aab10a52aba1c462b4c91bb71) ) ROM_REGION32_LE( 0x2000000, "bankedroms", 0 ) /* main data */ @@ -2414,11 +2558,27 @@ ROM_END ROM_START( kartduel ) ROM_REGION32_LE( 0x00400000, "maincpu:rom", 0 ) /* main prg */ + ROM_LOAD16_BYTE( "ktd2vera.2l", 0x0000000, 0x200000, CRC(7e7d8454) SHA1(4e0db56e433015cf1b9fd4cad35df99f1730e567) ) + ROM_LOAD16_BYTE( "ktd2vera.2p", 0x0000001, 0x200000, CRC(6c8af7e7) SHA1(602975500180de98a0a7e22c079344e7a3ece25e) ) + + ROM_REGION32_LE( 0x01000000, "bankedroms", 0 ) /* main data */ + ROM_LOAD16_BYTE( "kdt1rom0l.ic12", 0x000000, 0x800000, CRC(f8a79aef) SHA1(8c2a6aef5cc0ffe4b5e9f2a98ef5a29edd59eb4d) ) + ROM_LOAD16_BYTE( "kdt1rom0u.ic11", 0x000001, 0x800000, CRC(bab0d328) SHA1(9a15bfb38c63b0012f29755b2be071e9c82d1c20) ) + + ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ + ROM_LOAD16_WORD_SWAP( "ktd1vera.11s", 0x000000, 0x080000, CRC(c2ff1971) SHA1(32ee2afe08e92049d8139c9324a0ea1a3b7ee5a1) ) + + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ + ROM_LOAD( "ktd1wave0.ic2", 0x0000000, 0x800000, CRC(c54d5539) SHA1(17518dc76bb3627ca42bac665938bb11ea926396) ) +ROM_END + +ROM_START( kartduelj ) + ROM_REGION32_LE( 0x00400000, "maincpu:rom", 0 ) /* main prg */ ROM_LOAD16_BYTE( "ktd1vera.2l", 0x0000000, 0x200000, CRC(0c207249) SHA1(6c57de25d452226a25f658638d89b81257960741) ) ROM_LOAD16_BYTE( "ktd1vera.2p", 0x0000001, 0x200000, CRC(f6e2581f) SHA1(06eb108c2775290590dba75f964f26443a585d70) ) ROM_REGION32_LE( 0x01000000, "bankedroms", 0 ) /* main data */ - ROM_LOAD16_BYTE( "kdt1rom0l.ic12", 0x000000, 0x800000, CRC(4a3bac12) SHA1(7758d97049d30a00b7bede3688d451fbf4eddbfb) ) + ROM_LOAD16_BYTE( "kdt1rom0l.ic12", 0x000000, 0x800000, CRC(f8a79aef) SHA1(8c2a6aef5cc0ffe4b5e9f2a98ef5a29edd59eb4d) ) ROM_LOAD16_BYTE( "kdt1rom0u.ic11", 0x000001, 0x800000, CRC(bab0d328) SHA1(9a15bfb38c63b0012f29755b2be071e9c82d1c20) ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ @@ -2608,7 +2768,7 @@ ROM_START( soulclbr ) ROM_LOAD( "soc1wave0.2", 0x0000000, 0x800000, CRC(c100618d) SHA1(b87f88ee42ad9c5affa674e5f816d902143fed99) ) ROM_END -ROM_START( soulclbrwb ) +ROM_START( soulclbrab ) ROM_REGION32_LE( 0x00400000, "maincpu:rom", 0 ) /* main prg */ ROM_LOAD16_BYTE( "soc14verb.2l", 0x000000, 0x200000, CRC(6af5c5f6) SHA1(51d1e7d78d95cfc765cd219ed07b405cd920044b) ) ROM_LOAD16_BYTE( "soc14verb.2p", 0x000001, 0x200000, CRC(23e7a4c4) SHA1(a97f36cafdeff9e26fbd24e54ab8ac8080763761) ) @@ -2703,7 +2863,7 @@ ROM_START( soulclbrjb ) ROM_LOAD( "soc1wave0.2", 0x0000000, 0x800000, CRC(c100618d) SHA1(b87f88ee42ad9c5affa674e5f816d902143fed99) ) ROM_END -ROM_START( soulclbraa ) +ROM_START( soulclbra ) ROM_REGION32_LE( 0x00400000, "maincpu:rom", 0 ) /* main prg */ ROM_LOAD16_BYTE( "soc12vera.2l", 0x0000000, 0x200000, CRC(ceadcc9a) SHA1(68cd3d15f28178fcea8aada6067b7060edfb2913) ) ROM_LOAD16_BYTE( "soc12vera.2p", 0x0000001, 0x200000, CRC(65a74cf0) SHA1(1129c078925bd02f4e9cef64cd7761968be53537) ) @@ -2746,7 +2906,7 @@ ROM_START( sws98 ) ROM_LOAD16_BYTE( "ss81vera.2l", 0x0000000, 0x200000, CRC(94b1f34c) SHA1(0c8491fda366b5b2874e5f49959dccd11d372e46) ) ROM_LOAD16_BYTE( "ss81vera.2p", 0x0000001, 0x200000, CRC(7d0ed33d) SHA1(34342ce57b29ee15c6279c099bb145ac7ad262f3) ) - ROM_REGION32_LE( 0x2000000, "bankedroms", 0 ) /* main data */ + ROM_REGION32_LE( 0x1c00000, "bankedroms", 0 ) /* main data */ ROM_LOAD16_BYTE( "ss81fl1l.9", 0x1000000, 0x200000, CRC(b0b5dc77) SHA1(abce4e6ae60858b7c7408d10975b7a1e0d183115) ) ROM_LOAD16_BYTE( "ss81fl1u.10", 0x1000001, 0x200000, CRC(e526dba5) SHA1(889fdfba17282eb05a3e254af81ee15c3e16acc4) ) ROM_LOAD16_BYTE( "ss81fl2l.7", 0x1400000, 0x200000, CRC(2dc6f6b5) SHA1(e6c7bb804d7d027acca5adb15b0bb95321905ff3) ) @@ -2809,12 +2969,12 @@ ROM_START( sws2001 ) ROM_LOAD16_BYTE( "ss11vera.2l", 0x000000, 0x200000, CRC(a7b4dbe5) SHA1(1bcb8d127388e2ead9ca04b527779896c69daf7f) ) ROM_LOAD16_BYTE( "ss11vera.2p", 0x000001, 0x200000, CRC(3ef76b4e) SHA1(34c21b6002d3f88aa3f4b4606c8aace24be92920) ) - ROM_REGION32_LE( 0x2800000, "bankedroms", 0 ) /* main data */ + ROM_REGION32_LE( 0x4000000, "bankedroms", 0 ) /* main data */ ROM_LOAD( "ss01rom0.9", 0x0000000, 0x800000, CRC(c08cc59c) SHA1(f2d8064491c98acbb40260d7f13d0f9b394c1383) ) - ROM_LOAD( "ss01rom1.10", 0x0800000, 0x800000, CRC(d4aa1dc6) SHA1(68fcb60aadf35668d7d746da1e29d5d985e40aec) ) - ROM_LOAD( "ss01rom2.11", 0x1000000, 0x800000, CRC(3371904a) SHA1(58bbf98a44560bc021bac4bc513fe89deea85b50) ) - ROM_LOAD16_BYTE( "ss11fl1l.5", 0x1800000, 0x800000, CRC(0546a2b4) SHA1(b61457c9c5136f94ace48e83de8043ce20ca4d99) ) - ROM_LOAD16_BYTE( "ss11fl1u.6", 0x1800001, 0x800000, CRC(b3de0b2c) SHA1(a89d3a2eb0952a98cc4765af2897b94136ca58ad) ) + ROM_LOAD( "ss01rom1.10", 0x1000000, 0x800000, CRC(d4aa1dc6) SHA1(68fcb60aadf35668d7d746da1e29d5d985e40aec) ) + ROM_LOAD( "ss01rom2.11", 0x2000000, 0x800000, CRC(3371904a) SHA1(58bbf98a44560bc021bac4bc513fe89deea85b50) ) + ROM_LOAD( "ss11fl1l.5", 0x3000000, 0x800000, CRC(0546a2b4) SHA1(b61457c9c5136f94ace48e83de8043ce20ca4d99) ) + ROM_LOAD( "ss11fl1u.6", 0x3800000, 0x800000, CRC(b3de0b2c) SHA1(a89d3a2eb0952a98cc4765af2897b94136ca58ad) ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "ss01vera.11s", 0x000000, 0x080000, CRC(641e6584) SHA1(dfc0ac21bea5b19dbce5d50fb681854889d756dc) ) @@ -2927,6 +3087,29 @@ ROM_START( tekken3ud ) ROM_LOAD( "tet1wave1.4", 0x0400000, 0x400000, CRC(ffeba79f) SHA1(941412bbe9d0305d9a23c224c1bb774c4321f6df) ) ROM_END +ROM_START( tekken3c ) + ROM_REGION32_LE( 0x00400000, "maincpu:rom", 0 ) /* main prg */ + ROM_LOAD16_BYTE( "tet2verc.2e", 0x0000000, 0x200000, CRC(4483d76e) SHA1(c43b7e445acb77ddeb8a647bef1fc509ced0412e) ) + ROM_LOAD16_BYTE( "tet2verc.2j", 0x0000001, 0x200000, CRC(3b4fee42) SHA1(b71b2969b0416e6fd348297876fc55d44e14ebef) ) + + ROM_REGION32_LE( 0x1c00000, "bankedroms", 0 ) /* main data */ + ROM_LOAD16_BYTE( "tet1rom0l.6", 0x0000000, 0x400000, CRC(2886bb32) SHA1(08ad9da2df25ad8c933a812ac238c81135072929) ) + ROM_LOAD16_BYTE( "tet1rom0u.9", 0x0000001, 0x400000, CRC(c5705b92) SHA1(20df20c8d18eb4712d565a3df9a8d9270dee6aaa) ) + ROM_LOAD16_BYTE( "tet1rom1l.7", 0x0800000, 0x400000, CRC(0397d283) SHA1(ebafcd14cdb2601214129a84fc6830846f5cd274) ) + ROM_LOAD16_BYTE( "tet1rom1u.10", 0x0800001, 0x400000, CRC(502ba5cd) SHA1(19c1282245c6dbfc945c0bd0f3918968c3e5c3ed) ) + ROM_LOAD16_BYTE( "tet1rom2l.8", 0x1000000, 0x400000, CRC(e03b1c24) SHA1(8579b95a8fd06b7d2893ff88b228fd794162dff1) ) + ROM_LOAD16_BYTE( "tet1rom2u.11", 0x1000001, 0x400000, CRC(75eb2ab3) SHA1(dee43884e542391903f6aaae2c166e7921a86fb4) ) + ROM_LOAD16_BYTE( "tet1fl3l.12", 0x1800000, 0x200000, CRC(45513073) SHA1(8a36f58ee2d292b50e00c6bf275f9def358032d8) ) + ROM_LOAD16_BYTE( "tet1fl3u.13", 0x1800001, 0x200000, CRC(1917d993) SHA1(cabc44514a3e62a18a7f8f883603241447d6948b) ) + + ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ + ROM_LOAD16_WORD_SWAP( "tet1verb.11s", 0x0000000, 0x080000, CRC(c92b98d1) SHA1(8ae6fba8c5b6b9a2ab9541eac8553b282f35750d) ) /* No label but different than tet1vera.11s */ + + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ + ROM_LOAD( "tet1wave0.5", 0x0000000, 0x400000, CRC(77ba7975) SHA1(fe9434dcf0fb232c85efaaae1b4b13d36099620a) ) + ROM_LOAD( "tet1wave1.4", 0x0400000, 0x400000, CRC(ffeba79f) SHA1(941412bbe9d0305d9a23c224c1bb774c4321f6df) ) +ROM_END + ROM_START( tekken3b ) ROM_REGION32_LE( 0x00400000, "maincpu:rom", 0 ) /* main prg */ ROM_LOAD16_BYTE( "tet2verb.2e", 0x0000000, 0x200000, CRC(a6cbc434) SHA1(859d84e6e9a52c2cdd54a2a0bb8104169eb19c07) ) @@ -3025,24 +3208,24 @@ ROM_START( tektagt ) ROM_LOAD16_BYTE( "teg2verc1.2j", 0x0000001, 0x200000, CRC(25a1d2ff) SHA1(529a11a1bbb8655534d7ec371f1c09e9e387ed11) ) ROM_REGION32_LE( 0x3800000, "bankedroms", 0 ) /* main data */ - ROM_LOAD32_WORD( "teg1rom0e.9", 0x0000000, 0x800000, CRC(c962a373) SHA1(d662dbd89ef62c5ac3150a018fc2d35ef2ee94ac) ) - ROM_LOAD32_WORD( "teg1rom0o.13", 0x0000002, 0x800000, CRC(badb7dcf) SHA1(8c0bf7f6351c5a2a0996df371a901cf90c68cd8c) ) - ROM_LOAD32_WORD( "teg1rom1e.10", 0x1000000, 0x800000, CRC(b3d56124) SHA1(4df20c74ba63f7362caf15e9b8949fab655704fb) ) - ROM_LOAD32_WORD( "teg1rom1o.14", 0x1000002, 0x800000, CRC(2434ceb6) SHA1(f19f1599acbd6fd48793a2ee5a500ca817d9df56) ) - ROM_LOAD32_WORD( "teg1rom2e.11", 0x2000000, 0x800000, CRC(6e5c3428) SHA1(e3cdb60a4445406877b2e273385f34bfb0974220) ) - ROM_LOAD32_WORD( "teg1rom2o.15", 0x2000002, 0x800000, CRC(21ce9dfa) SHA1(f27e8210ee236c327aa3e1ce4dd408abc6580a1b) ) - - ROM_LOAD32_BYTE( "teg_flel.4", 0x3000000, 0x200000, CRC(88b3823c) SHA1(6f31acb642c57daccbfdb87b790037e261c8c73c) ) /* Flash ROMs with no labels */ - ROM_LOAD32_BYTE( "teg_fleu.5", 0x3000001, 0x200000, CRC(36df0867) SHA1(6bec8560ad4c122dc909daa83aa9089ba5b281f7) ) - ROM_LOAD32_BYTE( "teg_flol.6", 0x3000002, 0x200000, CRC(03a76765) SHA1(ae35ae28375f2a3e52d72b77ec09750c326cc269) ) - ROM_LOAD32_BYTE( "teg_flou.7", 0x3000003, 0x200000, CRC(6d6947d1) SHA1(2f307bc4070fadb510c0473bc91d917b2d845ca5) ) + ROM_LOAD32_WORD( "teg1_rom0e.ic9", 0x0000000, 0x800000, CRC(c962a373) SHA1(d662dbd89ef62c5ac3150a018fc2d35ef2ee94ac) ) + ROM_LOAD32_WORD( "teg1_rom0o.ic13", 0x0000002, 0x800000, CRC(badb7dcf) SHA1(8c0bf7f6351c5a2a0996df371a901cf90c68cd8c) ) + ROM_LOAD32_WORD( "teg1_rom1e.ic10", 0x1000000, 0x800000, CRC(b3d56124) SHA1(4df20c74ba63f7362caf15e9b8949fab655704fb) ) + ROM_LOAD32_WORD( "teg1_rom1o.ic14", 0x1000002, 0x800000, CRC(2434ceb6) SHA1(f19f1599acbd6fd48793a2ee5a500ca817d9df56) ) + ROM_LOAD32_WORD( "teg1_rom2e.ic11", 0x2000000, 0x800000, CRC(6e5c3428) SHA1(e3cdb60a4445406877b2e273385f34bfb0974220) ) + ROM_LOAD32_WORD( "teg1_rom2o.ic15", 0x2000002, 0x800000, CRC(21ce9dfa) SHA1(f27e8210ee236c327aa3e1ce4dd408abc6580a1b) ) + + ROM_LOAD32_BYTE( "flel.ic4", 0x3000000, 0x200000, CRC(88b3823c) SHA1(6f31acb642c57daccbfdb87b790037e261c8c73c) ) /* Flash ROMs with no labels */ + ROM_LOAD32_BYTE( "fleu.ic5", 0x3000001, 0x200000, CRC(36df0867) SHA1(6bec8560ad4c122dc909daa83aa9089ba5b281f7) ) + ROM_LOAD32_BYTE( "flol.ic6", 0x3000002, 0x200000, CRC(03a76765) SHA1(ae35ae28375f2a3e52d72b77ec09750c326cc269) ) + ROM_LOAD32_BYTE( "flou.ic7", 0x3000003, 0x200000, CRC(6d6947d1) SHA1(2f307bc4070fadb510c0473bc91d917b2d845ca5) ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "teg1.11s", 0x0000000, 0x080000, CRC(67d0c469) SHA1(da164702fc21b9f46a9e32c89e7b1d36070ddf79) ) /* No label for this one */ ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ - ROM_LOAD( "teg1wave0.1", 0x0000000, 0x800000, CRC(4bd99104) SHA1(f76b0576cc28fe49d3c1c402988b933933e52e15) ) - ROM_LOAD( "teg1wave1.12", 0x0800000, 0x800000, CRC(dbc74fff) SHA1(601b7e7361ea744b34e3fa1fc39d88641de7f4c6) ) + ROM_LOAD( "teg1_wave0.ic1", 0x0000000, 0x800000, CRC(4bd99104) SHA1(f76b0576cc28fe49d3c1c402988b933933e52e15) ) + ROM_LOAD( "teg1_wave1.ic12", 0x0800000, 0x800000, CRC(dbc74fff) SHA1(601b7e7361ea744b34e3fa1fc39d88641de7f4c6) ) ROM_END ROM_START( tektagtc1 ) @@ -3082,24 +3265,24 @@ ROM_START( tektagtuc1 ) ROM_LOAD16_BYTE( "teg3verc1.2p", 0x0000001, 0x200000, CRC(7caef9b2) SHA1(5c56d69ba2f723d0a4fbe4902196efc6ba9d5094) ) ROM_REGION32_LE( 0x3800000, "bankedroms", 0 ) /* main data */ - ROM_LOAD32_WORD( "teg1rom0e.9", 0x0000000, 0x800000, CRC(c962a373) SHA1(d662dbd89ef62c5ac3150a018fc2d35ef2ee94ac) ) - ROM_LOAD32_WORD( "teg1rom0o.13", 0x0000002, 0x800000, CRC(badb7dcf) SHA1(8c0bf7f6351c5a2a0996df371a901cf90c68cd8c) ) - ROM_LOAD32_WORD( "teg1rom1e.10", 0x1000000, 0x800000, CRC(b3d56124) SHA1(4df20c74ba63f7362caf15e9b8949fab655704fb) ) - ROM_LOAD32_WORD( "teg1rom1o.14", 0x1000002, 0x800000, CRC(2434ceb6) SHA1(f19f1599acbd6fd48793a2ee5a500ca817d9df56) ) - ROM_LOAD32_WORD( "teg1rom2e.11", 0x2000000, 0x800000, CRC(6e5c3428) SHA1(e3cdb60a4445406877b2e273385f34bfb0974220) ) - ROM_LOAD32_WORD( "teg1rom2o.15", 0x2000002, 0x800000, CRC(21ce9dfa) SHA1(f27e8210ee236c327aa3e1ce4dd408abc6580a1b) ) - - ROM_LOAD32_BYTE( "teg_flel.4", 0x3000000, 0x200000, CRC(88b3823c) SHA1(6f31acb642c57daccbfdb87b790037e261c8c73c) ) /* Flash ROMs with no labels */ - ROM_LOAD32_BYTE( "teg_fleu.5", 0x3000001, 0x200000, CRC(36df0867) SHA1(6bec8560ad4c122dc909daa83aa9089ba5b281f7) ) - ROM_LOAD32_BYTE( "teg_flol.6", 0x3000002, 0x200000, CRC(03a76765) SHA1(ae35ae28375f2a3e52d72b77ec09750c326cc269) ) - ROM_LOAD32_BYTE( "teg_flou.7", 0x3000003, 0x200000, CRC(6d6947d1) SHA1(2f307bc4070fadb510c0473bc91d917b2d845ca5) ) + ROM_LOAD32_WORD( "teg1_rom0e.ic9", 0x0000000, 0x800000, CRC(c962a373) SHA1(d662dbd89ef62c5ac3150a018fc2d35ef2ee94ac) ) + ROM_LOAD32_WORD( "teg1_rom0o.ic13", 0x0000002, 0x800000, CRC(badb7dcf) SHA1(8c0bf7f6351c5a2a0996df371a901cf90c68cd8c) ) + ROM_LOAD32_WORD( "teg1_rom1e.ic10", 0x1000000, 0x800000, CRC(b3d56124) SHA1(4df20c74ba63f7362caf15e9b8949fab655704fb) ) + ROM_LOAD32_WORD( "teg1_rom1o.ic14", 0x1000002, 0x800000, CRC(2434ceb6) SHA1(f19f1599acbd6fd48793a2ee5a500ca817d9df56) ) + ROM_LOAD32_WORD( "teg1_rom2e.ic11", 0x2000000, 0x800000, CRC(6e5c3428) SHA1(e3cdb60a4445406877b2e273385f34bfb0974220) ) + ROM_LOAD32_WORD( "teg1_rom2o.ic15", 0x2000002, 0x800000, CRC(21ce9dfa) SHA1(f27e8210ee236c327aa3e1ce4dd408abc6580a1b) ) + + ROM_LOAD32_BYTE( "flel.ic4", 0x3000000, 0x200000, CRC(88b3823c) SHA1(6f31acb642c57daccbfdb87b790037e261c8c73c) ) /* Flash ROMs with no labels */ + ROM_LOAD32_BYTE( "fleu.ic5", 0x3000001, 0x200000, CRC(36df0867) SHA1(6bec8560ad4c122dc909daa83aa9089ba5b281f7) ) + ROM_LOAD32_BYTE( "flol.ic6", 0x3000002, 0x200000, CRC(03a76765) SHA1(ae35ae28375f2a3e52d72b77ec09750c326cc269) ) + ROM_LOAD32_BYTE( "flou.ic7", 0x3000003, 0x200000, CRC(6d6947d1) SHA1(2f307bc4070fadb510c0473bc91d917b2d845ca5) ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "teg1.11s", 0x0000000, 0x080000, CRC(67d0c469) SHA1(da164702fc21b9f46a9e32c89e7b1d36070ddf79) ) /* No label for this one */ ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ - ROM_LOAD( "teg1wave0.1", 0x0000000, 0x800000, CRC(4bd99104) SHA1(f76b0576cc28fe49d3c1c402988b933933e52e15) ) - ROM_LOAD( "teg1wave1.12", 0x0800000, 0x800000, CRC(dbc74fff) SHA1(601b7e7361ea744b34e3fa1fc39d88641de7f4c6) ) + ROM_LOAD( "teg1_wave0.ic1", 0x0000000, 0x800000, CRC(4bd99104) SHA1(f76b0576cc28fe49d3c1c402988b933933e52e15) ) + ROM_LOAD( "teg1_wave1.ic12", 0x0800000, 0x800000, CRC(dbc74fff) SHA1(601b7e7361ea744b34e3fa1fc39d88641de7f4c6) ) ROM_END ROM_START( tektagtub ) @@ -3108,102 +3291,102 @@ ROM_START( tektagtub ) ROM_LOAD16_BYTE( "teg3verb.2p", 0x0000001, 0x200000, CRC(1dbe7591) SHA1(af464caa03fdd12024ad482e9c853a36510bfba7) ) ROM_REGION32_LE( 0x3800000, "bankedroms", 0 ) /* main data */ - ROM_LOAD32_WORD( "teg1rom0e.9", 0x0000000, 0x800000, CRC(c962a373) SHA1(d662dbd89ef62c5ac3150a018fc2d35ef2ee94ac) ) - ROM_LOAD32_WORD( "teg1rom0o.13", 0x0000002, 0x800000, CRC(badb7dcf) SHA1(8c0bf7f6351c5a2a0996df371a901cf90c68cd8c) ) - ROM_LOAD32_WORD( "teg1rom1e.10", 0x1000000, 0x800000, CRC(b3d56124) SHA1(4df20c74ba63f7362caf15e9b8949fab655704fb) ) - ROM_LOAD32_WORD( "teg1rom1o.14", 0x1000002, 0x800000, CRC(2434ceb6) SHA1(f19f1599acbd6fd48793a2ee5a500ca817d9df56) ) - ROM_LOAD32_WORD( "teg1rom2e.11", 0x2000000, 0x800000, CRC(6e5c3428) SHA1(e3cdb60a4445406877b2e273385f34bfb0974220) ) - ROM_LOAD32_WORD( "teg1rom2o.15", 0x2000002, 0x800000, CRC(21ce9dfa) SHA1(f27e8210ee236c327aa3e1ce4dd408abc6580a1b) ) - - ROM_LOAD32_BYTE( "teg_flel.4", 0x3000000, 0x200000, CRC(88b3823c) SHA1(6f31acb642c57daccbfdb87b790037e261c8c73c) ) /* Flash ROMs with no labels */ - ROM_LOAD32_BYTE( "teg_fleu.5", 0x3000001, 0x200000, CRC(36df0867) SHA1(6bec8560ad4c122dc909daa83aa9089ba5b281f7) ) - ROM_LOAD32_BYTE( "teg_flol.6", 0x3000002, 0x200000, CRC(03a76765) SHA1(ae35ae28375f2a3e52d72b77ec09750c326cc269) ) - ROM_LOAD32_BYTE( "teg_flou.7", 0x3000003, 0x200000, CRC(6d6947d1) SHA1(2f307bc4070fadb510c0473bc91d917b2d845ca5) ) + ROM_LOAD32_WORD( "teg1_rom0e.ic9", 0x0000000, 0x800000, CRC(c962a373) SHA1(d662dbd89ef62c5ac3150a018fc2d35ef2ee94ac) ) + ROM_LOAD32_WORD( "teg1_rom0o.ic13", 0x0000002, 0x800000, CRC(badb7dcf) SHA1(8c0bf7f6351c5a2a0996df371a901cf90c68cd8c) ) + ROM_LOAD32_WORD( "teg1_rom1e.ic10", 0x1000000, 0x800000, CRC(b3d56124) SHA1(4df20c74ba63f7362caf15e9b8949fab655704fb) ) + ROM_LOAD32_WORD( "teg1_rom1o.ic14", 0x1000002, 0x800000, CRC(2434ceb6) SHA1(f19f1599acbd6fd48793a2ee5a500ca817d9df56) ) + ROM_LOAD32_WORD( "teg1_rom2e.ic11", 0x2000000, 0x800000, CRC(6e5c3428) SHA1(e3cdb60a4445406877b2e273385f34bfb0974220) ) + ROM_LOAD32_WORD( "teg1_rom2o.ic15", 0x2000002, 0x800000, CRC(21ce9dfa) SHA1(f27e8210ee236c327aa3e1ce4dd408abc6580a1b) ) + + ROM_LOAD32_BYTE( "flel.ic4", 0x3000000, 0x200000, CRC(88b3823c) SHA1(6f31acb642c57daccbfdb87b790037e261c8c73c) ) /* Flash ROMs with no labels */ + ROM_LOAD32_BYTE( "fleu.ic5", 0x3000001, 0x200000, CRC(36df0867) SHA1(6bec8560ad4c122dc909daa83aa9089ba5b281f7) ) + ROM_LOAD32_BYTE( "flol.ic6", 0x3000002, 0x200000, CRC(03a76765) SHA1(ae35ae28375f2a3e52d72b77ec09750c326cc269) ) + ROM_LOAD32_BYTE( "flou.ic7", 0x3000003, 0x200000, CRC(6d6947d1) SHA1(2f307bc4070fadb510c0473bc91d917b2d845ca5) ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "teg1.11s", 0x0000000, 0x080000, CRC(67d0c469) SHA1(da164702fc21b9f46a9e32c89e7b1d36070ddf79) ) /* No label for this one */ ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ - ROM_LOAD( "teg1wave0.1", 0x0000000, 0x800000, CRC(4bd99104) SHA1(f76b0576cc28fe49d3c1c402988b933933e52e15) ) - ROM_LOAD( "teg1wave1.12", 0x0800000, 0x800000, CRC(dbc74fff) SHA1(601b7e7361ea744b34e3fa1fc39d88641de7f4c6) ) + ROM_LOAD( "teg1_wave0.ic1", 0x0000000, 0x800000, CRC(4bd99104) SHA1(f76b0576cc28fe49d3c1c402988b933933e52e15) ) + ROM_LOAD( "teg1_wave1.ic12", 0x0800000, 0x800000, CRC(dbc74fff) SHA1(601b7e7361ea744b34e3fa1fc39d88641de7f4c6) ) ROM_END ROM_START( tektagtjc1 ) ROM_REGION32_LE( 0x00400000, "maincpu:rom", 0 ) /* main prg */ - ROM_LOAD16_BYTE( "teg1verc1.2e", 0x0000000, 0x200000, CRC(1d631391) SHA1(325d211237461af6e105374ddb74441e68b470af) ) - ROM_LOAD16_BYTE( "teg1verc1.2j", 0x0000001, 0x200000, CRC(4ece9b9a) SHA1(7091dadfe3a2954e684fcc9e5a3337ecd26609f6) ) + ROM_LOAD16_BYTE( "teg1verc1.2e", 0x0000000, 0x200000, CRC(adbdfc2e) SHA1(e18458efb0f9b341970132b512d2e5104a942c6e) ) + ROM_LOAD16_BYTE( "teg1verc1.2j", 0x0000001, 0x200000, CRC(2fa33418) SHA1(e15f4c8cc4309ebb90d8d015b1f17f75ce5c8879) ) ROM_REGION32_LE( 0x3800000, "bankedroms", 0 ) /* main data */ - ROM_LOAD32_WORD( "teg1_rom0e.ic9", 0x0000000, 0x800000, BAD_DUMP CRC(c962a373) SHA1(d662dbd89ef62c5ac3150a018fc2d35ef2ee94ac) ) // These ROMs were dumped half size, - ROM_LOAD32_WORD( "teg1_rom0o.ic13", 0x0000002, 0x800000, BAD_DUMP CRC(badb7dcf) SHA1(8c0bf7f6351c5a2a0996df371a901cf90c68cd8c) ) // it's possible the second half of - ROM_LOAD32_WORD( "teg1_rom1e.ic10", 0x1000000, 0x800000, BAD_DUMP CRC(b3d56124) SHA1(4df20c74ba63f7362caf15e9b8949fab655704fb) ) // the japanese ROMs contain - ROM_LOAD32_WORD( "teg1_rom1o.ic14", 0x1000002, 0x800000, BAD_DUMP CRC(2434ceb6) SHA1(f19f1599acbd6fd48793a2ee5a500ca817d9df56) ) // different graphics. - ROM_LOAD32_WORD( "teg1_rom2e.ic11", 0x2000000, 0x800000, BAD_DUMP CRC(6e5c3428) SHA1(e3cdb60a4445406877b2e273385f34bfb0974220) ) // - ROM_LOAD32_WORD( "teg1_rom2o.ic15", 0x2000002, 0x800000, BAD_DUMP CRC(21ce9dfa) SHA1(f27e8210ee236c327aa3e1ce4dd408abc6580a1b) ) // - - ROM_LOAD32_BYTE( "flel.ic4", 0x3000000, 0x200000, CRC(daa240f8) SHA1(ead16b4686c6a4abfc30022f5c1aa3969907d4cc) ) // tektagt will boot with these - ROM_LOAD32_BYTE( "fleu.ic5", 0x3000001, 0x200000, CRC(a8786812) SHA1(40c80db0066f9a1f4e0eb06708344b0485c5e734) ) // but crashes after the - ROM_LOAD32_BYTE( "flou.ic6", 0x3000002, 0x200000, CRC(e5b52780) SHA1(ff81278bed4e571f9ed4ee4f7d8aa810f56f9676) ) // character selection - ROM_LOAD32_BYTE( "flou.ic7", 0x3000003, 0x200000, CRC(75894a07) SHA1(ee36dded4c78b0bddd4904eceabc0f0f2ca5cf07) ) // + ROM_LOAD32_WORD( "teg1_rom0e.ic9", 0x0000000, 0x800000, CRC(c962a373) SHA1(d662dbd89ef62c5ac3150a018fc2d35ef2ee94ac) ) + ROM_LOAD32_WORD( "teg1_rom0o.ic13", 0x0000002, 0x800000, CRC(badb7dcf) SHA1(8c0bf7f6351c5a2a0996df371a901cf90c68cd8c) ) + ROM_LOAD32_WORD( "teg1_rom1e.ic10", 0x1000000, 0x800000, CRC(b3d56124) SHA1(4df20c74ba63f7362caf15e9b8949fab655704fb) ) + ROM_LOAD32_WORD( "teg1_rom1o.ic14", 0x1000002, 0x800000, CRC(2434ceb6) SHA1(f19f1599acbd6fd48793a2ee5a500ca817d9df56) ) + ROM_LOAD32_WORD( "teg1_rom2e.ic11", 0x2000000, 0x800000, CRC(6e5c3428) SHA1(e3cdb60a4445406877b2e273385f34bfb0974220) ) + ROM_LOAD32_WORD( "teg1_rom2o.ic15", 0x2000002, 0x800000, CRC(21ce9dfa) SHA1(f27e8210ee236c327aa3e1ce4dd408abc6580a1b) ) + + ROM_LOAD32_BYTE( "flel.ic4", 0x3000000, 0x200000, CRC(88b3823c) SHA1(6f31acb642c57daccbfdb87b790037e261c8c73c) ) /* Flash ROMs with no labels */ + ROM_LOAD32_BYTE( "fleu.ic5", 0x3000001, 0x200000, CRC(36df0867) SHA1(6bec8560ad4c122dc909daa83aa9089ba5b281f7) ) + ROM_LOAD32_BYTE( "flol.ic6", 0x3000002, 0x200000, CRC(03a76765) SHA1(ae35ae28375f2a3e52d72b77ec09750c326cc269) ) + ROM_LOAD32_BYTE( "flou.ic7", 0x3000003, 0x200000, CRC(6d6947d1) SHA1(2f307bc4070fadb510c0473bc91d917b2d845ca5) ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ - ROM_LOAD16_WORD_SWAP( "teg1verb.11s", 0x0000000, 0x080000, CRC(67d0c469) SHA1(da164702fc21b9f46a9e32c89e7b1d36070ddf79) ) + ROM_LOAD16_WORD_SWAP( "teg1.11s", 0x0000000, 0x080000, CRC(67d0c469) SHA1(da164702fc21b9f46a9e32c89e7b1d36070ddf79) ) ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ - ROM_LOAD( "teg1_wave0.ic1", 0x0000000, 0x800000, CRC(4bd99104) SHA1(f76b0576cc28fe49d3c1c402988b933933e52e15) ) - ROM_LOAD( "teg1_wave1.ic12", 0x0800000, 0x800000, CRC(dbc74fff) SHA1(601b7e7361ea744b34e3fa1fc39d88641de7f4c6) ) + ROM_LOAD( "teg1_wave0.ic1", 0x0000000, 0x800000, CRC(4bd99104) SHA1(f76b0576cc28fe49d3c1c402988b933933e52e15) ) + ROM_LOAD( "teg1_wave1.ic12", 0x0800000, 0x800000, CRC(dbc74fff) SHA1(601b7e7361ea744b34e3fa1fc39d88641de7f4c6) ) ROM_END ROM_START( tektagtjb ) ROM_REGION32_LE( 0x00400000, "maincpu:rom", 0 ) /* main prg */ - ROM_LOAD16_BYTE( "teg1verb.2e", 0x0000000, 0x200000, CRC(ca6c305f) SHA1(264a85566b74f544fe63a01332d92c65d23b6608) ) - ROM_LOAD16_BYTE( "teg1verb.2j", 0x0000001, 0x200000, CRC(5413e2ed) SHA1(d453f7932654d8258c67eb7fe3639d71db7e414c) ) + ROM_LOAD16_BYTE( "teg1verb.2e", 0x0000000, 0x200000, BAD_DUMP CRC(ca6c305f) SHA1(264a85566b74f544fe63a01332d92c65d23b6608) ) + ROM_LOAD16_BYTE( "teg1verb.2j", 0x0000001, 0x200000, BAD_DUMP CRC(5413e2ed) SHA1(d453f7932654d8258c67eb7fe3639d71db7e414c) ) ROM_REGION32_LE( 0x3800000, "bankedroms", 0 ) /* main data */ - ROM_LOAD32_WORD( "teg1rom0e.9", 0x0000000, 0x800000, CRC(c962a373) SHA1(d662dbd89ef62c5ac3150a018fc2d35ef2ee94ac) ) - ROM_LOAD32_WORD( "teg1rom0o.13", 0x0000002, 0x800000, CRC(badb7dcf) SHA1(8c0bf7f6351c5a2a0996df371a901cf90c68cd8c) ) - ROM_LOAD32_WORD( "teg1rom1e.10", 0x1000000, 0x800000, CRC(b3d56124) SHA1(4df20c74ba63f7362caf15e9b8949fab655704fb) ) - ROM_LOAD32_WORD( "teg1rom1o.14", 0x1000002, 0x800000, CRC(2434ceb6) SHA1(f19f1599acbd6fd48793a2ee5a500ca817d9df56) ) - ROM_LOAD32_WORD( "teg1rom2e.11", 0x2000000, 0x800000, CRC(6e5c3428) SHA1(e3cdb60a4445406877b2e273385f34bfb0974220) ) - ROM_LOAD32_WORD( "teg1rom2o.15", 0x2000002, 0x800000, CRC(21ce9dfa) SHA1(f27e8210ee236c327aa3e1ce4dd408abc6580a1b) ) - - ROM_LOAD32_BYTE( "teg1flel.4", 0x3000000, 0x200000, NO_DUMP ) /* Requires different data or other issue ? */ - ROM_LOAD32_BYTE( "teg1fleu.5", 0x3000001, 0x200000, NO_DUMP ) - ROM_LOAD32_BYTE( "teg1flol.6", 0x3000002, 0x200000, NO_DUMP ) - ROM_LOAD32_BYTE( "teg1flou.7", 0x3000003, 0x200000, NO_DUMP ) + ROM_LOAD32_WORD( "teg1_rom0e.ic9", 0x0000000, 0x800000, CRC(c962a373) SHA1(d662dbd89ef62c5ac3150a018fc2d35ef2ee94ac) ) + ROM_LOAD32_WORD( "teg1_rom0o.ic13", 0x0000002, 0x800000, CRC(badb7dcf) SHA1(8c0bf7f6351c5a2a0996df371a901cf90c68cd8c) ) + ROM_LOAD32_WORD( "teg1_rom1e.ic10", 0x1000000, 0x800000, CRC(b3d56124) SHA1(4df20c74ba63f7362caf15e9b8949fab655704fb) ) + ROM_LOAD32_WORD( "teg1_rom1o.ic14", 0x1000002, 0x800000, CRC(2434ceb6) SHA1(f19f1599acbd6fd48793a2ee5a500ca817d9df56) ) + ROM_LOAD32_WORD( "teg1_rom2e.ic11", 0x2000000, 0x800000, CRC(6e5c3428) SHA1(e3cdb60a4445406877b2e273385f34bfb0974220) ) + ROM_LOAD32_WORD( "teg1_rom2o.ic15", 0x2000002, 0x800000, CRC(21ce9dfa) SHA1(f27e8210ee236c327aa3e1ce4dd408abc6580a1b) ) + + ROM_LOAD32_BYTE( "flel.ic4", 0x3000000, 0x200000, CRC(88b3823c) SHA1(6f31acb642c57daccbfdb87b790037e261c8c73c) ) /* Flash ROMs with no labels */ + ROM_LOAD32_BYTE( "fleu.ic5", 0x3000001, 0x200000, CRC(36df0867) SHA1(6bec8560ad4c122dc909daa83aa9089ba5b281f7) ) + ROM_LOAD32_BYTE( "flol.ic6", 0x3000002, 0x200000, CRC(03a76765) SHA1(ae35ae28375f2a3e52d72b77ec09750c326cc269) ) + ROM_LOAD32_BYTE( "flou.ic7", 0x3000003, 0x200000, CRC(6d6947d1) SHA1(2f307bc4070fadb510c0473bc91d917b2d845ca5) ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ - ROM_LOAD16_WORD_SWAP( "teg1.11s", 0x0000000, 0x080000, CRC(67d0c469) SHA1(da164702fc21b9f46a9e32c89e7b1d36070ddf79) ) /* No label for this one */ + ROM_LOAD16_WORD_SWAP( "teg1.11s", 0x0000000, 0x080000, CRC(67d0c469) SHA1(da164702fc21b9f46a9e32c89e7b1d36070ddf79) ) ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ - ROM_LOAD( "teg1wave0.1", 0x0000000, 0x800000, CRC(4bd99104) SHA1(f76b0576cc28fe49d3c1c402988b933933e52e15) ) - ROM_LOAD( "teg1wave1.12", 0x0800000, 0x800000, CRC(dbc74fff) SHA1(601b7e7361ea744b34e3fa1fc39d88641de7f4c6) ) + ROM_LOAD( "teg1_wave0.ic1", 0x0000000, 0x800000, CRC(4bd99104) SHA1(f76b0576cc28fe49d3c1c402988b933933e52e15) ) + ROM_LOAD( "teg1_wave1.ic12", 0x0800000, 0x800000, CRC(dbc74fff) SHA1(601b7e7361ea744b34e3fa1fc39d88641de7f4c6) ) ROM_END ROM_START( tektagtja ) ROM_REGION32_LE( 0x00400000, "maincpu:rom", 0 ) /* main prg */ - ROM_LOAD16_BYTE( "teg1vera.2e", 0x0000000, 0x200000, CRC(17c4bf36) SHA1(abf2dfb3e35344cf4449ade6e63b36c590d9c131) ) - ROM_LOAD16_BYTE( "teg1vera.2j", 0x0000001, 0x200000, CRC(97cd9524) SHA1(8031cb465db378a6d9db9b132cf1169b94cba7dc) ) + ROM_LOAD16_BYTE( "teg1vera.2e", 0x0000000, 0x200000, BAD_DUMP CRC(17c4bf36) SHA1(abf2dfb3e35344cf4449ade6e63b36c590d9c131) ) + ROM_LOAD16_BYTE( "teg1vera.2j", 0x0000001, 0x200000, BAD_DUMP CRC(97cd9524) SHA1(8031cb465db378a6d9db9b132cf1169b94cba7dc) ) ROM_REGION32_LE( 0x3800000, "bankedroms", 0 ) /* main data */ - ROM_LOAD32_WORD( "teg1rom0e.9", 0x0000000, 0x800000, CRC(c962a373) SHA1(d662dbd89ef62c5ac3150a018fc2d35ef2ee94ac) ) - ROM_LOAD32_WORD( "teg1rom0o.13", 0x0000002, 0x800000, CRC(badb7dcf) SHA1(8c0bf7f6351c5a2a0996df371a901cf90c68cd8c) ) - ROM_LOAD32_WORD( "teg1rom1e.10", 0x1000000, 0x800000, CRC(b3d56124) SHA1(4df20c74ba63f7362caf15e9b8949fab655704fb) ) - ROM_LOAD32_WORD( "teg1rom1o.14", 0x1000002, 0x800000, CRC(2434ceb6) SHA1(f19f1599acbd6fd48793a2ee5a500ca817d9df56) ) - ROM_LOAD32_WORD( "teg1rom2e.11", 0x2000000, 0x800000, CRC(6e5c3428) SHA1(e3cdb60a4445406877b2e273385f34bfb0974220) ) - ROM_LOAD32_WORD( "teg1rom2o.15", 0x2000002, 0x800000, CRC(21ce9dfa) SHA1(f27e8210ee236c327aa3e1ce4dd408abc6580a1b) ) - - ROM_LOAD32_BYTE( "teg1flel.4", 0x3000000, 0x200000, NO_DUMP ) /* Requires different data or other issue ? */ - ROM_LOAD32_BYTE( "teg1fleu.5", 0x3000001, 0x200000, NO_DUMP ) + ROM_LOAD32_WORD( "teg1_rom0e.ic9", 0x0000000, 0x800000, CRC(c962a373) SHA1(d662dbd89ef62c5ac3150a018fc2d35ef2ee94ac) ) + ROM_LOAD32_WORD( "teg1_rom0o.ic13", 0x0000002, 0x800000, CRC(badb7dcf) SHA1(8c0bf7f6351c5a2a0996df371a901cf90c68cd8c) ) + ROM_LOAD32_WORD( "teg1_rom1e.ic10", 0x1000000, 0x800000, CRC(b3d56124) SHA1(4df20c74ba63f7362caf15e9b8949fab655704fb) ) + ROM_LOAD32_WORD( "teg1_rom1o.ic14", 0x1000002, 0x800000, CRC(2434ceb6) SHA1(f19f1599acbd6fd48793a2ee5a500ca817d9df56) ) + ROM_LOAD32_WORD( "teg1_rom2e.ic11", 0x2000000, 0x800000, CRC(6e5c3428) SHA1(e3cdb60a4445406877b2e273385f34bfb0974220) ) + ROM_LOAD32_WORD( "teg1_rom2o.ic15", 0x2000002, 0x800000, CRC(21ce9dfa) SHA1(f27e8210ee236c327aa3e1ce4dd408abc6580a1b) ) + + ROM_LOAD32_BYTE( "teg1flel.4", 0x3000000, 0x200000, NO_DUMP ) /* It's NOT been verified these should be the same, like the Tekken 3 Ver A */ + ROM_LOAD32_BYTE( "teg1fleu.5", 0x3000001, 0x200000, NO_DUMP ) /* sets above, these Ver A set(s) might require a specific set of flash ROMs */ ROM_LOAD32_BYTE( "teg1flol.6", 0x3000002, 0x200000, NO_DUMP ) ROM_LOAD32_BYTE( "teg1flou.7", 0x3000003, 0x200000, NO_DUMP ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ - ROM_LOAD16_WORD_SWAP( "teg1.11s", 0x0000000, 0x080000, CRC(67d0c469) SHA1(da164702fc21b9f46a9e32c89e7b1d36070ddf79) ) /* No label for this one */ + ROM_LOAD16_WORD_SWAP( "teg1.11s", 0x0000000, 0x080000, CRC(67d0c469) SHA1(da164702fc21b9f46a9e32c89e7b1d36070ddf79) ) ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ - ROM_LOAD( "teg1wave0.1", 0x0000000, 0x800000, CRC(4bd99104) SHA1(f76b0576cc28fe49d3c1c402988b933933e52e15) ) - ROM_LOAD( "teg1wave1.12", 0x0800000, 0x800000, CRC(dbc74fff) SHA1(601b7e7361ea744b34e3fa1fc39d88641de7f4c6) ) + ROM_LOAD( "teg1_wave0.ic1", 0x0000000, 0x800000, CRC(4bd99104) SHA1(f76b0576cc28fe49d3c1c402988b933933e52e15) ) + ROM_LOAD( "teg1_wave1.ic12", 0x0800000, 0x800000, CRC(dbc74fff) SHA1(601b7e7361ea744b34e3fa1fc39d88641de7f4c6) ) ROM_END ROM_START( tenkomor ) @@ -3257,7 +3440,7 @@ ROM_START( toukon3 ) ROM_LOAD16_BYTE( "tr1vera.2e", 0x000000, 0x200000, CRC(126ebb73) SHA1(de429e335e03f2b5116fc50f556a5507475a0535) ) ROM_LOAD16_BYTE( "tr1vera.2j", 0x000001, 0x200000, CRC(2edb3ad2) SHA1(d1d2d78b781c7f6fb5a201785295daa825ad057e) ) - ROM_REGION32_LE( 0x1c00000, "bankedroms", 0 ) /* main data */ + ROM_REGION32_LE( 0x00800000, "bankedroms", 0 ) /* main data */ ROM_LOAD16_BYTE( "tr1rom0l.6", 0x0000000, 0x400000, CRC(42946d26) SHA1(dc7944cb6daceda41ecee7a4e3f549cba916ab87) ) ROM_LOAD16_BYTE( "tr1rom0u.9", 0x0000001, 0x400000, CRC(e3cd0be0) SHA1(f27d14cd086b5961be33e635662aca89a5e8c857) ) @@ -3293,8 +3476,8 @@ ROM_START( truckk ) ROM_REGION( 0x20000, "iocpu", 0) /* Truck K. I/O board */ ROM_LOAD( "tkk1prg0.ic7", 0x000000, 0x020000, CRC(11fd9c31) SHA1(068b8364ec0eb1e88f9f85f40b8b322876f6f3e2) ) - DISK_REGION( "cdrom" ) - DISK_IMAGE( "tkk2-a", 0, SHA1(6b7c3686b22a508c44f67295b188504b757dd482) ) + DISK_REGION( "cdxa_pcb:ata:0:cdrom" ) + DISK_IMAGE_READONLY( "tkk2-a", 0, SHA1(6b7c3686b22a508c44f67295b188504b757dd482) ) ROM_END ROM_START( technodr ) @@ -3351,45 +3534,74 @@ ROM_START( aplarail ) ROM_LOAD( "at28c16", 0x000000, 0x000800, CRC(db1b63c5) SHA1(01fc3386a2d1cb1bed1b7fd9bd2fd59e503832d3) ) ROM_END +ROM_START( ujlnow ) + ROM_REGION32_LE( 0x00400000, "maincpu:rom", 0 ) /* main prg */ + ROM_LOAD16_BYTE( "ul1vera.2l", 0x000000, 0x200000, CRC(40251bc3) SHA1(377a156d738b29d8f19d9696a261cc6e3470ee3e) ) + ROM_LOAD16_BYTE( "ul1vera.2p", 0x000001, 0x200000, CRC(98181955) SHA1(febd73361d0de10282a850611b5f966a99eecdec) ) + + ROM_REGION32_LE( 0x2000000, "bankedroms", 0 ) /* main data */ + ROM_LOAD16_BYTE( "ul1rom0l.ic12", 0x0000000, 0x800000, CRC(7a77cffd) SHA1(6bd18837f475615061be73ee6d1bc09726e96fb5) ) + ROM_LOAD16_BYTE( "ul1rom0u.ic11", 0x0000001, 0x800000, CRC(1fdb34b3) SHA1(3773b3fb1574a0b4acebfaf510c75fa117394ae4) ) + ROM_LOAD16_BYTE( "ul1rom1l.ic10", 0x1000000, 0x800000, CRC(2d300d8c) SHA1(eabd0b4525530e5b33a6d85fa4d959e88c6fbd42) ) + ROM_LOAD16_BYTE( "ul1rom1u.ic9", 0x1000001, 0x800000, CRC(a4762002) SHA1(0faadc04bcc32e4f805069af8e635765a0b77ca9) ) + + ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ + ROM_LOAD16_WORD_SWAP( "ul1vera.11s", 0x000000, 0x080000, CRC(2f466df3) SHA1(6468089c6cf3e056a30fa04274056ff2c9a01d5b) ) + + ROM_REGION( 0x1000000, "c352", 0 ) /* samples */ + ROM_LOAD( "ul1wave0.ic2", 0x0000000, 0x800000, CRC(4efbff5d) SHA1(add4caf9aa9443707bcb6cf9ebad0a5a59900ca9) ) + ROM_LOAD( "ul1wave1.ic1", 0x0800000, 0x800000, CRC(ad512f4c) SHA1(cfbecaad13a2239be0e697f3f9856401f11a1bc5) ) + + ROM_REGION( 0x80000, "m148", 0) /* M148 EMI DRIVE PCB */ + ROM_LOAD( "ul1spro.10c", 0x000000, 0x080000, CRC(1bd0e763) SHA1(07e9ad77bb983fcb4e4e6f66fbe55808b5a27d2e) ) + + DISK_REGION( "cdxa_pcb:ata:0:cdrom" ) + DISK_IMAGE_READONLY( "ul1-a", 0, SHA1(676f2c530f8d422ab9895ea04a43b2e9272fb8f8) ) +ROM_END + +} // anonymous namespace + + // YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME, FLAGS GAME( 1996, tekken3, 0, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Tekken 3 (World, TET2/VER.E1)", 0 ) /* KC006 */ GAME( 1996, tekken3d, tekken3, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Tekken 3 (World, TET2/VER.D)", 0 ) /* KC006 */ GAME( 1996, tekken3b, tekken3, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Tekken 3 (World, TET2/VER.B)", 0 ) /* KC006 */ +GAME( 1996, tekken3c, tekken3, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Tekken 3 (World, TET2/VER.C)", 0 ) /* KC006 */ GAME( 1996, tekken3a, tekken3, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Tekken 3 (World, TET2/VER.A)", 0 ) /* KC006 */ GAME( 1996, tekken3ud, tekken3, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Tekken 3 (US, TET3/VER.D)", 0 ) /* KC006 */ GAME( 1996, tekken3ua, tekken3, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Tekken 3 (US, TET3/VER.A)", 0 ) /* KC006 */ GAME( 1996, tekken3je1,tekken3, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Tekken 3 (Japan, TET1/VER.E1)", 0 ) /* KC006 */ GAME( 1996, tekken3ja, tekken3, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Tekken 3 (Japan, TET1/VER.A)", 0 ) /* KC006 */ GAME( 1997, lbgrande, 0, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Libero Grande (World, LG2/VER.A)", 0 ) /* KC014 */ -GAME( 1997, toukon3, 0, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco / Tomy", "Shin Nihon Pro Wrestling Toukon Retsuden 3 Arcade Edition (Japan, TR1/VER.A)", 0 ) /* KC019 */ -GAME( 1998, soulclbr, 0, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Soul Calibur (World, SOC14/VER.C)", 0 ) -GAME( 1998, soulclbrwb,soulclbr, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Soul Calibur (World, SOC14/VER.B)", 0 ) +GAME( 1997, toukon3, 0, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco / Tomy", "Shin Nihon Pro Wrestling Toukon Retsuden 3 Arcade Edition (Japan, TR1/VER.A)", MACHINE_IMPERFECT_GRAPHICS ) /* KC019 */ +GAME( 1998, soulclbr, 0, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Soul Calibur (Asia, SOC14/VER.C)", 0 ) +GAME( 1998, soulclbrab,soulclbr, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Soul Calibur (Asia, SOC14/VER.B)", 0 ) +GAME( 1998, soulclbra, soulclbr, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Soul Calibur (World, SOC12/VER.A2)", 0 ) /* KC020 */ GAME( 1998, soulclbruc,soulclbr, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Soul Calibur (US, SOC13/VER.C)", 0 ) GAME( 1998, soulclbrub,soulclbr, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Soul Calibur (US, SOC13/VER.B)", 0 ) /* KC020 */ -GAME( 1998, soulclbraa,soulclbr, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Soul Calibur (Asia, SOC12/VER.A2)", 0 ) /* KC020 */ GAME( 1998, soulclbrjc,soulclbr, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Soul Calibur (Japan, SOC11/VER.C)", 0 ) /* KC020 */ GAME( 1998, soulclbrjb,soulclbr, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Soul Calibur (Japan, SOC11/VER.B)", 0 ) /* KC020 */ GAME( 1998, soulclbrja,soulclbr, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Soul Calibur (Japan, SOC11/VER.A2)", 0 ) /* KC020 */ GAME( 1998, ehrgeiz, 0, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Square / Namco", "Ehrgeiz (World, EG2/VER.A)", 0 ) /* KC021 */ GAME( 1998, ehrgeizua, ehrgeiz, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Square / Namco", "Ehrgeiz (US, EG3/VER.A)", 0 ) /* KC021 */ GAME( 1998, ehrgeizja, ehrgeiz, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Square / Namco", "Ehrgeiz (Japan, EG1/VER.A)", 0 ) /* KC021 */ -GAME( 1998, mdhorse, 0, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "MOSS / Namco", "Derby Quiz My Dream Horse (Japan, MDH1/VER.A2)", MACHINE_NOT_WORKING ) /* KC035 */ +GAME( 1998, mdhorse, 0, coh700, namcos12, namcos12_state, init_alt_bank1,ROT0, "MOSS / Namco", "Derby Quiz My Dream Horse (Japan, MDH1/VER.A2)", 0 ) /* KC035 */ GAME( 1998, aplarail, 0, aplarail, aplarail, namcos12_boothack_state, init_namcos12, ROT0, "Namco / Tomy", "Attack Pla Rail (Japan, AP1/VER.A)", 0 ) /* KC032 */ GAME( 1998, sws98, 0, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Super World Stadium '98 (Japan, SS81/VER.A)", 0 ) /* KC0?? */ GAME( 1998, technodr, 0, technodr, technodr, namcos12_boothack_state, init_technodr, ROT0, "Namco", "Techno Drive (Japan, TH1/VER.B)", MACHINE_NODEVICE_PRINTER ) /* KC056 */ GAME( 1998, tenkomor, 0, coh700, namcos12, namcos12_boothack_state, init_namcos12, ROT90,"Namco", "Tenkomori Shooting (World, TKM2/VER.A1)", 0 ) /* KC036 */ GAME( 1998, tenkomorja,tenkomor, coh700, namcos12, namcos12_boothack_state, init_namcos12, ROT90,"Namco", "Tenkomori Shooting (Japan, TKM1/VER.A1)", 0 ) /* KC036 */ -GAME( 1998, fgtlayer, 0, coh700, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Arika / Namco", "Fighting Layer (FTL3/VER.A)", 0 ) /* KC037 */ // supposedly US region but doesn't show the usual warning / WDUD screens +GAME( 1998, fgtlayer, 0, coh700, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Arika / Namco", "Fighting Layer (Asia, FTL3/VER.A)", 0 ) /* KC037 */ GAME( 1998, fgtlayerj, fgtlayer, coh700, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Arika / Namco", "Fighting Layer (Japan, FTL0/VER.A)", 0 ) /* KC037 */ GAME( 1998, pacapp, 0, coh700, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Produce / Namco", "Paca Paca Passion (Japan, PPP1/VER.A2)", 0 ) /* KC038 */ -GAME( 1999, ptblank2, 0, ptblank2, ptblank2, namcos12_boothack_state, init_ptblank2, ROT0, "Namco", "Point Blank 2 (GNB5/VER.A)", 0 ) /* KC042 */ +GAME( 1999, ptblank2, 0, ptblank2, ptblank2, namcos12_boothack_state, init_ptblank2, ROT0, "Namco", "Point Blank 2 (World, GNB5/VER.A)", 0 ) /* KC042 */ GAME( 1999, gunbarl, ptblank2, ptblank2, ptblank2, namcos12_boothack_state, init_ptblank2, ROT0, "Namco", "Gunbarl (Japan, GNB4/VER.A)", 0 ) /* KC042 */ GAME( 1999, sws99, 0, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Super World Stadium '99 (Japan, SS91/VER.A3)", 0 ) /* KC043 */ GAME( 1999, tektagt, 0, tektagt, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Namco", "Tekken Tag Tournament (World, TEG2/VER.C1, set 1)", 0 ) /* KC044 */ GAME( 1999, tektagtc1, tektagt, tektagt, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Namco", "Tekken Tag Tournament (World, TEG2/VER.C1, set 2)", 0 ) /* KC044 */ GAME( 1999, tektagtuc1,tektagt, tektagt, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Namco", "Tekken Tag Tournament (US, TEG3/VER.C1)", 0 ) /* KC044 */ GAME( 1999, tektagtub, tektagt, tektagt, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Namco", "Tekken Tag Tournament (US, TEG3/VER.B)", 0 ) /* KC044 */ -GAME( 1999, tektagtjc1,tektagt, tektagt, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Namco", "Tekken Tag Tournament (Japan, TEG1/VER.C1)", MACHINE_NOT_WORKING ) /* KC044 */ +GAME( 1999, tektagtjc1,tektagt, tektagt, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Namco", "Tekken Tag Tournament (Japan, TEG1/VER.C1)", 0 ) /* KC044 */ GAME( 1999, tektagtjb, tektagt, tektagt, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Namco", "Tekken Tag Tournament (Japan, TEG1/VER.B)", MACHINE_NOT_WORKING ) /* KC044 */ GAME( 1999, tektagtja, tektagt, tektagt, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Namco", "Tekken Tag Tournament (Japan, TEG1/VER.A3)", MACHINE_NOT_WORKING ) /* KC044 */ GAME( 1999, ghlpanic, 0, ptblank2, ghlpanic, namcos12_boothack_state, init_namcos12, ROT0, "Eighting / Raizing / Namco", "Ghoul Panic (World, OB2/VER.A)", 0 ) /* KC045 */ @@ -3397,12 +3609,14 @@ GAME( 1999, ohbakyuun, ghlpanic, ptblank2, ghlpanic, namcos12_boothack_state, i GAME( 1999, pacapp2, 0, coh700, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Produce / Namco", "Paca Paca Passion 2 (Japan, PKS1/VER.A)", 0 ) /* KC046 */ GAME( 1999, mrdrillr, 0, coh700, namcos124w,namcos12_boothack_state, init_namcos12, ROT0, "Namco", "Mr. Driller (US, DRI3/VER.A2)", 0 ) /* KC048 */ GAME( 1999, mrdrillrj, mrdrillr, coh700, namcos124w,namcos12_boothack_state, init_namcos12, ROT0, "Namco", "Mr. Driller (Japan, DRI1/VER.A2)", 0 ) /* KC048 */ -GAME( 1999, kaiunqz, 0, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Kaiun Quiz (Japan, KW1/VER.A)", MACHINE_NOT_WORKING ) /* KC050 */ +GAME( 1999, ujlnow, 0, cdxa_pcb, ujlnow, namcos12_cdxa_state, init_alt_bank1,ROT0, "Namco", "Um Jammer Lammy NOW! (Japan, UL1/VER.A)", 0 ) /* KC049 */ +GAME( 1999, kaiunqz, 0, coh700, namcos12, namcos12_state, init_alt_bank1,ROT0, "Namco", "Kaiun Quiz (Japan, KW1/VER.A)", 0 ) /* KC050 */ GAME( 1999, pacappsp, 0, coh700, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Produce / Namco", "Paca Paca Passion Special (Japan, PSP1/VER.A)", 0 ) /* KC052 */ GAME( 1999, aquarush, 0, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Aqua Rush (Japan, AQ1/VER.A1)", 0 ) /* KC053 */ -GAME( 1999, golgo13, 0, golgo13, golgo13, namcos12_boothack_state, init_golgo13, ROT0, "Eighting / Raizing / Namco", "Golgo 13 (Japan, GLG1/VER.A)", 0 ) /* KC054 */ -GAME( 2000, g13knd, 0, golgo13, golgo13, namcos12_boothack_state, init_golgo13, ROT0, "Eighting / Raizing / Namco", "Golgo 13 Kiseki no Dandou (Japan, GLS1/VER.A)", 0 ) /* KC059 */ +GAME( 1999, golgo13, 0, golgo13, golgo13, namcos12_boothack_state, init_alt_bank1,ROT0, "Eighting / Raizing / Namco", "Golgo 13 (Japan, GLG1/VER.A)", 0 ) /* KC054 */ +GAME( 2000, g13knd, 0, golgo13, golgo13, namcos12_boothack_state, init_alt_bank1,ROT0, "Eighting / Raizing / Namco", "Golgo 13 Kiseki no Dandou (Japan, GLS1/VER.A)", 0 ) /* KC059 */ GAME( 2000, sws2000, 0, coh700, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Namco", "Super World Stadium 2000 (Japan, SS01/VER.A)", MACHINE_NOT_WORKING ) /* KC055 */ -GAME( 2000, truckk, 0, truckk, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Metro / Namco", "Truck Kyosokyoku (Japan, TKK2/VER.A)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* KC056 */ -GAME( 2000, kartduel, 0, kartduel, kartduel, namcos12_boothack_state, init_namcos12, ROT0, "Gaps / Namco", "Kart Duel (Japan, KTD1/VER.A)", MACHINE_NOT_WORKING ) /* KC057 */ -GAME( 2001, sws2001, sws2000, coh716, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Namco", "Super World Stadium 2001 (Japan, SS11/VER.A)", MACHINE_NOT_WORKING ) /* KC061 */ +GAME( 2000, truckk, 0, truckk, truckk, namcos12_cdxa_state, init_truckk, ROT0, "Metro / Namco", "Truck Kyosokyoku (Japan, TKK2/VER.A)", MACHINE_IMPERFECT_SOUND ) /* KC056 */ +GAME( 2000, kartduel, 0, kartduel, kartduel, namcos12_boothack_state, init_namcos12, ROT0, "Gaps / Namco", "Kart Duel (World, KTD2/VER.A)", MACHINE_NOT_WORKING ) /* KC057 */ +GAME( 2000, kartduelj, kartduel, kartduel, kartduel, namcos12_boothack_state, init_namcos12, ROT0, "Gaps / Namco", "Kart Duel (Japan, KTD1/VER.A)", MACHINE_NOT_WORKING ) /* KC057 */ +GAME( 2001, sws2001, sws2000, coh716, namcos12, namcos12_boothack_state, init_alt_bank1,ROT0, "Namco", "Super World Stadium 2001 (Japan, SS11/VER.A)", MACHINE_NOT_WORKING ) /* KC061 */ |