mirror of
https://github.com/holub/mame
synced 2025-07-03 00:56:03 +03:00
konami/konami_gn676_lan.cpp: Rewrote GN676 LAN board emulation. (#10617)
* Now passed boot checks, and supports x76 security chip. * Added variants for Thrill Drive, Racing Jam, and Racing Jam 2. * konami/nwk-tr.cpp: Added Thrill Drive security chips and variants. * konami/hornet.cpp: Added Thrill Drive variants. * konami/nwk-tr.cpp: Added Racing Jam 1 and 2 variants. New clones marked as NOT_WORKING -------------------------------- Racing Jam (GQ676UAC) [windyfairy] Racing Jam (GQ676EAC) [windyfairy] Racing Jam (GQ676AAC) [windyfairy] Racing Jam: Chapter 2 (GQ888UAA) [windyfairy] Racing Jam: Chapter 2 (GQ888AAA) [windyfairy] Thrill Drive (UDE) [windyfairy] Thrill Drive (JCE) [windyfairy] Thrill Drive (EDE) [windyfairy] Thrill Drive (ACE) [windyfairy] Thrill Drive (ABE) [windyfairy] Thrill Drive (UDB) [windyfairy] Thrill Drive (JCB) [windyfairy] Thrill Drive (EDB) [windyfairy] Thrill Drive (ACB) [windyfairy] Thrill Drive (ABB) [windyfairy] Thrill Drive (ver GN713JAB) [windyfairy] Thrill Drive (ver GM713JAB) [windyfairy] Thrill Drive (ver GP713JAB) [windyfairy] Thrill Drive (ver GE713JAB) [windyfairy] Thrill Drive (ver GK713EAB) [windyfairy] Thrill Drive (ver GK713EEB) [windyfairy] Thrill Drive (ver GK713K*B) [windyfairy]
This commit is contained in:
parent
3941049b04
commit
da98221377
@ -407,7 +407,8 @@ public:
|
||||
m_watchdog(*this, "watchdog"),
|
||||
m_jvs_host(*this, "jvs_host"),
|
||||
m_cg_view(*this, "cg_view"),
|
||||
m_k033906(*this, "k033906_%u", 1U)
|
||||
m_k033906(*this, "k033906_%u", 1U),
|
||||
m_gn676_lan(*this, "gn676_lan")
|
||||
{ }
|
||||
|
||||
void hornet(machine_config &config);
|
||||
@ -458,6 +459,7 @@ private:
|
||||
required_device<konppc_jvs_host_device> m_jvs_host;
|
||||
memory_view m_cg_view;
|
||||
optional_device_array<k033906_device, 2> m_k033906;
|
||||
optional_device<konami_gn676_lan_device> m_gn676_lan;
|
||||
|
||||
emu_timer *m_sound_irq_timer;
|
||||
|
||||
@ -598,6 +600,11 @@ void hornet_state::sysreg_w(offs_t offset, uint8_t data)
|
||||
0x02 = ADDI (ADC DI)
|
||||
0x01 = ADDSCLK (ADC SCLK)
|
||||
*/
|
||||
|
||||
// Set FPGA into a state to accept new firmware
|
||||
if (m_gn676_lan)
|
||||
m_gn676_lan->reset_fpga_state(BIT(data, 6));
|
||||
|
||||
if (m_x76f041)
|
||||
{
|
||||
// HACK: Figure out a way a better way to differentiate between what device it wants to talk to here.
|
||||
@ -775,8 +782,8 @@ void hornet_state::hornet_lan_map(address_map &map)
|
||||
{
|
||||
hornet_map(map);
|
||||
|
||||
map(0x7d040000, 0x7d04ffff).rw("gn676_lan", FUNC(konami_gn676_lan_device::lanc1_r), FUNC(konami_gn676_lan_device::lanc1_w));
|
||||
map(0x7d050000, 0x7d05ffff).rw("gn676_lan", FUNC(konami_gn676_lan_device::lanc2_r), FUNC(konami_gn676_lan_device::lanc2_w));
|
||||
map(0x7d040000, 0x7d04ffff).rw(m_gn676_lan, FUNC(konami_gn676_lan_device::lanc1_r), FUNC(konami_gn676_lan_device::lanc1_w));
|
||||
map(0x7d050000, 0x7d05ffff).rw(m_gn676_lan, FUNC(konami_gn676_lan_device::lanc2_r), FUNC(konami_gn676_lan_device::lanc2_w));
|
||||
}
|
||||
|
||||
void hornet_state::terabrst_map(address_map &map)
|
||||
@ -1211,7 +1218,7 @@ void hornet_state::hornet_lan(machine_config &config)
|
||||
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &hornet_state::hornet_lan_map);
|
||||
|
||||
KONAMI_GN676_LAN(config, "gn676_lan", 0, m_workram);
|
||||
KONAMI_GN676A_LAN(config, m_gn676_lan, 0);
|
||||
}
|
||||
|
||||
void hornet_state::nbapbp(machine_config &config)
|
||||
@ -3208,7 +3215,7 @@ ROM_START(terabrstaa)
|
||||
ROM_LOAD( "security_eeprom", 0x000000, 0x000224, NO_DUMP ) // Unused?
|
||||
ROM_END
|
||||
|
||||
ROM_START(thrilldbu) // GE713UF sticker, does not have the chip at 2G since it uses the rev A network board
|
||||
ROM_START(thrilldgeu) // GE713UF sticker, does not have the chip at 2G since it uses the rev A network board
|
||||
ROM_REGION32_BE(0x400000, "prgrom", ROMREGION_ERASEFF) // PowerPC program roms
|
||||
ROM_LOAD16_WORD_SWAP("713ab01.27p", 0x200000, 0x200000, CRC(a005d728) SHA1(8e265b1bb3adb7db2d342d3c0e3361a7174cb54d) )
|
||||
ROM_RELOAD(0x000000, 0x200000)
|
||||
@ -3229,9 +3236,178 @@ ROM_START(thrilldbu) // GE713UF sticker, does not have the chip at 2G since it u
|
||||
ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) )
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "713uab_m48t58y.35d", 0x000000, 0x002000, CRC(33a5250f) SHA1(3ffe2c812b341a9ed805c791c9dcfcb7587fbf3a) )
|
||||
ROM_LOAD( "ge713uf_m48t58y.35d", 0x000000, 0x002000, CRC(39f521d4) SHA1(2a1a574eb5830d40f5db87464785a159a5ab252d) ) // hand built
|
||||
ROM_END
|
||||
|
||||
ROM_START(thrilldgnj)
|
||||
ROM_REGION32_BE(0x400000, "prgrom", ROMREGION_ERASEFF) // PowerPC program roms
|
||||
ROM_LOAD16_WORD_SWAP("713ab01.27p", 0x200000, 0x200000, CRC(a005d728) SHA1(8e265b1bb3adb7db2d342d3c0e3361a7174cb54d) )
|
||||
ROM_RELOAD(0x000000, 0x200000)
|
||||
|
||||
ROM_REGION32_BE(0x800000, "datarom", 0) // Data roms
|
||||
ROM_LOAD32_WORD_SWAP("713a04.16t", 0x000000, 0x200000, CRC(c994aaa8) SHA1(d82b9930a11e5384ad583684a27c95beec03cd5a) )
|
||||
ROM_LOAD32_WORD_SWAP("713a05.14t", 0x000002, 0x200000, CRC(6f1e6802) SHA1(91f8a170327e9b4ee6a64aee0c106b981a317e69) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "master_cgboard", 0) // CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "713a13.24u", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) )
|
||||
ROM_LOAD32_WORD_SWAP( "713a14.32u", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) )
|
||||
|
||||
ROM_REGION(0x80000, "audiocpu", 0) // 68k program roms
|
||||
ROM_LOAD16_WORD_SWAP( "713a08.7s", 0x000000, 0x080000, CRC(6a72a825) SHA1(abeac99c5343efacabcb0cdff6d34f9f967024db) )
|
||||
|
||||
ROM_REGION16_LE(0x1000000, "rfsnd", 0) // PCM sample roms
|
||||
ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) )
|
||||
ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) )
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "gn713ja_m48t58y.35d", 0x000000, 0x002000, CRC(4496250d) SHA1(d433dc63afb3fd1c0ce772a62bec0e026d0e278c) ) // hand built
|
||||
ROM_END
|
||||
|
||||
ROM_START(thrilldgmj)
|
||||
ROM_REGION32_BE(0x400000, "prgrom", ROMREGION_ERASEFF) // PowerPC program roms
|
||||
ROM_LOAD16_WORD_SWAP("713ab01.27p", 0x200000, 0x200000, CRC(a005d728) SHA1(8e265b1bb3adb7db2d342d3c0e3361a7174cb54d) )
|
||||
ROM_RELOAD(0x000000, 0x200000)
|
||||
|
||||
ROM_REGION32_BE(0x800000, "datarom", 0) // Data roms
|
||||
ROM_LOAD32_WORD_SWAP("713a04.16t", 0x000000, 0x200000, CRC(c994aaa8) SHA1(d82b9930a11e5384ad583684a27c95beec03cd5a) )
|
||||
ROM_LOAD32_WORD_SWAP("713a05.14t", 0x000002, 0x200000, CRC(6f1e6802) SHA1(91f8a170327e9b4ee6a64aee0c106b981a317e69) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "master_cgboard", 0) // CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "713a13.24u", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) )
|
||||
ROM_LOAD32_WORD_SWAP( "713a14.32u", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) )
|
||||
|
||||
ROM_REGION(0x80000, "audiocpu", 0) // 68k program roms
|
||||
ROM_LOAD16_WORD_SWAP( "713a08.7s", 0x000000, 0x080000, CRC(6a72a825) SHA1(abeac99c5343efacabcb0cdff6d34f9f967024db) )
|
||||
|
||||
ROM_REGION16_LE(0x1000000, "rfsnd", 0) // PCM sample roms
|
||||
ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) )
|
||||
ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) )
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "gm713ja_m48t58y.35d", 0x000000, 0x002000, CRC(96792a3f) SHA1(f05e9f83fc655da2b300e2a17b71a52b7933cfb2) ) // hand built
|
||||
ROM_END
|
||||
|
||||
ROM_START(thrilldgpj)
|
||||
ROM_REGION32_BE(0x400000, "prgrom", ROMREGION_ERASEFF) // PowerPC program roms
|
||||
ROM_LOAD16_WORD_SWAP("713ab01.27p", 0x200000, 0x200000, CRC(a005d728) SHA1(8e265b1bb3adb7db2d342d3c0e3361a7174cb54d) )
|
||||
ROM_RELOAD(0x000000, 0x200000)
|
||||
|
||||
ROM_REGION32_BE(0x800000, "datarom", 0) // Data roms
|
||||
ROM_LOAD32_WORD_SWAP("713a04.16t", 0x000000, 0x200000, CRC(c994aaa8) SHA1(d82b9930a11e5384ad583684a27c95beec03cd5a) )
|
||||
ROM_LOAD32_WORD_SWAP("713a05.14t", 0x000002, 0x200000, CRC(6f1e6802) SHA1(91f8a170327e9b4ee6a64aee0c106b981a317e69) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "master_cgboard", 0) // CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "713a13.24u", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) )
|
||||
ROM_LOAD32_WORD_SWAP( "713a14.32u", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) )
|
||||
|
||||
ROM_REGION(0x80000, "audiocpu", 0) // 68k program roms
|
||||
ROM_LOAD16_WORD_SWAP( "713a08.7s", 0x000000, 0x080000, CRC(6a72a825) SHA1(abeac99c5343efacabcb0cdff6d34f9f967024db) )
|
||||
|
||||
ROM_REGION16_LE(0x1000000, "rfsnd", 0) // PCM sample roms
|
||||
ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) )
|
||||
ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) )
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "gp713ja_m48t58y.35d", 0x000000, 0x002000, CRC(2a5011ef) SHA1(9bac6d95d2f035ad1fd1b91810be198fa6e4c7ce) ) // hand built
|
||||
ROM_END
|
||||
|
||||
ROM_START(thrilldgej)
|
||||
ROM_REGION32_BE(0x400000, "prgrom", ROMREGION_ERASEFF) // PowerPC program roms
|
||||
ROM_LOAD16_WORD_SWAP("713ab01.27p", 0x200000, 0x200000, CRC(a005d728) SHA1(8e265b1bb3adb7db2d342d3c0e3361a7174cb54d) )
|
||||
ROM_RELOAD(0x000000, 0x200000)
|
||||
|
||||
ROM_REGION32_BE(0x800000, "datarom", 0) // Data roms
|
||||
ROM_LOAD32_WORD_SWAP("713a04.16t", 0x000000, 0x200000, CRC(c994aaa8) SHA1(d82b9930a11e5384ad583684a27c95beec03cd5a) )
|
||||
ROM_LOAD32_WORD_SWAP("713a05.14t", 0x000002, 0x200000, CRC(6f1e6802) SHA1(91f8a170327e9b4ee6a64aee0c106b981a317e69) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "master_cgboard", 0) // CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "713a13.24u", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) )
|
||||
ROM_LOAD32_WORD_SWAP( "713a14.32u", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) )
|
||||
|
||||
ROM_REGION(0x80000, "audiocpu", 0) // 68k program roms
|
||||
ROM_LOAD16_WORD_SWAP( "713a08.7s", 0x000000, 0x080000, CRC(6a72a825) SHA1(abeac99c5343efacabcb0cdff6d34f9f967024db) )
|
||||
|
||||
ROM_REGION16_LE(0x1000000, "rfsnd", 0) // PCM sample roms
|
||||
ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) )
|
||||
ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) )
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "ge713ja_m48t58y.35d", 0x000000, 0x002000, CRC(f484975b) SHA1(027097109a850d38376b79e5a5f844d357967f2c) ) // hand built
|
||||
ROM_END
|
||||
|
||||
ROM_START(thrilldgke)
|
||||
ROM_REGION32_BE(0x400000, "prgrom", ROMREGION_ERASEFF) // PowerPC program roms
|
||||
ROM_LOAD16_WORD_SWAP("713ab01.27p", 0x200000, 0x200000, CRC(a005d728) SHA1(8e265b1bb3adb7db2d342d3c0e3361a7174cb54d) )
|
||||
ROM_RELOAD(0x000000, 0x200000)
|
||||
|
||||
ROM_REGION32_BE(0x800000, "datarom", 0) // Data roms
|
||||
ROM_LOAD32_WORD_SWAP("713a04.16t", 0x000000, 0x200000, CRC(c994aaa8) SHA1(d82b9930a11e5384ad583684a27c95beec03cd5a) )
|
||||
ROM_LOAD32_WORD_SWAP("713a05.14t", 0x000002, 0x200000, CRC(6f1e6802) SHA1(91f8a170327e9b4ee6a64aee0c106b981a317e69) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "master_cgboard", 0) // CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "713a13.24u", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) )
|
||||
ROM_LOAD32_WORD_SWAP( "713a14.32u", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) )
|
||||
|
||||
ROM_REGION(0x80000, "audiocpu", 0) // 68k program roms
|
||||
ROM_LOAD16_WORD_SWAP( "713a08.7s", 0x000000, 0x080000, CRC(6a72a825) SHA1(abeac99c5343efacabcb0cdff6d34f9f967024db) )
|
||||
|
||||
ROM_REGION16_LE(0x1000000, "rfsnd", 0) // PCM sample roms
|
||||
ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) )
|
||||
ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) )
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "gk713ea_m48t58y.35d", 0x000000, 0x002000, CRC(3e77a0b9) SHA1(fdbd0b72447cb8077ae614864452152223fd2b57) ) // hand built
|
||||
ROM_END
|
||||
|
||||
ROM_START(thrilldgkee)
|
||||
ROM_REGION32_BE(0x400000, "prgrom", ROMREGION_ERASEFF) // PowerPC program roms
|
||||
ROM_LOAD16_WORD_SWAP("713ab01.27p", 0x200000, 0x200000, CRC(a005d728) SHA1(8e265b1bb3adb7db2d342d3c0e3361a7174cb54d) )
|
||||
ROM_RELOAD(0x000000, 0x200000)
|
||||
|
||||
ROM_REGION32_BE(0x800000, "datarom", 0) // Data roms
|
||||
ROM_LOAD32_WORD_SWAP("713a04.16t", 0x000000, 0x200000, CRC(c994aaa8) SHA1(d82b9930a11e5384ad583684a27c95beec03cd5a) )
|
||||
ROM_LOAD32_WORD_SWAP("713a05.14t", 0x000002, 0x200000, CRC(6f1e6802) SHA1(91f8a170327e9b4ee6a64aee0c106b981a317e69) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "master_cgboard", 0) // CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "713a13.24u", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) )
|
||||
ROM_LOAD32_WORD_SWAP( "713a14.32u", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) )
|
||||
|
||||
ROM_REGION(0x80000, "audiocpu", 0) // 68k program roms
|
||||
ROM_LOAD16_WORD_SWAP( "713a08.7s", 0x000000, 0x080000, CRC(6a72a825) SHA1(abeac99c5343efacabcb0cdff6d34f9f967024db) )
|
||||
|
||||
ROM_REGION16_LE(0x1000000, "rfsnd", 0) // PCM sample roms
|
||||
ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) )
|
||||
ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) )
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "gk713ee_m48t58y.35d", 0x000000, 0x002000, CRC(ac6a7648) SHA1(73d06b219c2d6859a565d1b0d3dea79268cc3795) ) // hand built
|
||||
ROM_END
|
||||
|
||||
ROM_START(thrilldgkk)
|
||||
ROM_REGION32_BE(0x400000, "prgrom", ROMREGION_ERASEFF) // PowerPC program roms
|
||||
ROM_LOAD16_WORD_SWAP("713ab01.27p", 0x200000, 0x200000, CRC(a005d728) SHA1(8e265b1bb3adb7db2d342d3c0e3361a7174cb54d) )
|
||||
ROM_RELOAD(0x000000, 0x200000)
|
||||
|
||||
ROM_REGION32_BE(0x800000, "datarom", 0) // Data roms
|
||||
ROM_LOAD32_WORD_SWAP("713a04.16t", 0x000000, 0x200000, CRC(c994aaa8) SHA1(d82b9930a11e5384ad583684a27c95beec03cd5a) )
|
||||
ROM_LOAD32_WORD_SWAP("713a05.14t", 0x000002, 0x200000, CRC(6f1e6802) SHA1(91f8a170327e9b4ee6a64aee0c106b981a317e69) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "master_cgboard", 0) // CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "713a13.24u", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) )
|
||||
ROM_LOAD32_WORD_SWAP( "713a14.32u", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) )
|
||||
|
||||
ROM_REGION(0x80000, "audiocpu", 0) // 68k program roms
|
||||
ROM_LOAD16_WORD_SWAP( "713a08.7s", 0x000000, 0x080000, CRC(6a72a825) SHA1(abeac99c5343efacabcb0cdff6d34f9f967024db) )
|
||||
|
||||
ROM_REGION16_LE(0x1000000, "rfsnd", 0) // PCM sample roms
|
||||
ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) )
|
||||
ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) )
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "gk713ka_m48t58y.35d", 0x000000, 0x002000, CRC(688f5164) SHA1(0617e2e2a0078854e2344412f8c4fbee22452ba1) ) // hand built
|
||||
ROM_END
|
||||
|
||||
|
||||
} // Anonymous namespace
|
||||
|
||||
|
||||
@ -3268,7 +3444,24 @@ GAME( 1998, terabrstja, terabrst, terabrst, terabrst, hornet_state, init_horn
|
||||
GAME( 1998, terabrstaa, terabrst, terabrst, terabrst, hornet_state, init_hornet, ROT0, "Konami", "Teraburst (1998/02/25 ver HAA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
// identifies as NWK-LC system
|
||||
GAME( 1998, thrilldbu, thrilld, hornet_lan, thrilld, hornet_state, init_hornet, ROT0, "Konami", "Thrill Drive (ver UFB)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE | MACHINE_NODEVICE_LAN ) // heavy GFX glitches, fails wheel motor test, for now it's possible to get in game by switching "SW:2" to on
|
||||
// heavy GFX glitches, fails wheel motor test, for now it's possible to get in game by switching "SW:2" to on
|
||||
// notable version differences:
|
||||
// GN713JA handbrake, 5+R shifter, no clutch
|
||||
// GM713JA handbrake, up/down shifter, no clutch
|
||||
// GP713JA no handbrake, up/down shifter, no clutch
|
||||
// GE713JA handbrake, 5+R shifter, clutch
|
||||
// GE713UF no handbrake, no clutch. settings configurable on boot: brake pedal, shifter (up/down, 4 pos, 5+R), steering motor type (A, W, H types)
|
||||
// GK713EA no clutch. settings configurable on boot: handbrake lever, shifter (up/down, 4 pos, 5+R), shifter display position (right/left)
|
||||
// GK713EE no clutch. settings configurable on boot: handbrake lever, shifter (up/down, 4 pos, 5+R), shifter display position (right/left)
|
||||
// GK713K* no handbrake, up/down shifter, no clutch, English only version of GP713JA?
|
||||
GAME( 1998, thrilldgeu, thrilld, hornet_lan, thrilld, hornet_state, init_hornet, ROT0, "Konami", "Thrill Drive (ver GE713UFB)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1998, thrilldgnj, thrilld, hornet_lan, thrilld, hornet_state, init_hornet, ROT0, "Konami", "Thrill Drive (ver GN713JAB)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1998, thrilldgmj, thrilld, hornet_lan, thrilld, hornet_state, init_hornet, ROT0, "Konami", "Thrill Drive (ver GM713JAB)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1998, thrilldgpj, thrilld, hornet_lan, thrilld, hornet_state, init_hornet, ROT0, "Konami", "Thrill Drive (ver GP713JAB)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1998, thrilldgej, thrilld, hornet_lan, thrilld, hornet_state, init_hornet, ROT0, "Konami", "Thrill Drive (ver GE713JAB)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1998, thrilldgke, thrilld, hornet_lan, thrilld, hornet_state, init_hornet, ROT0, "Konami", "Thrill Drive (ver GK713EAB)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1998, thrilldgkee, thrilld, hornet_lan, thrilld, hornet_state, init_hornet, ROT0, "Konami", "Thrill Drive (ver GK713EEB)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1998, thrilldgkk, thrilld, hornet_lan, thrilld, hornet_state, init_hornet, ROT0, "Konami", "Thrill Drive (ver GK713K*B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
// Revisions C and D removed Japanese region support but introduced Voodoo 2 support.
|
||||
GAMEL( 1999, sscope, 0, sscope, sscope, hornet_state, init_sscope, ROT0, "Konami", "Silent Scope (ver UAD, Ver 1.33)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE, layout_dualhsxs )
|
||||
|
@ -1,5 +1,5 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ville Linde
|
||||
// copyright-holders:Ville Linde, windyfairy
|
||||
|
||||
/*
|
||||
Hardware info by Guru
|
||||
@ -22,9 +22,9 @@ Notes:
|
||||
CN1 - Connector joining to CPU board CN4
|
||||
CN2/3 - RCA jacks for network cable
|
||||
HYC2485S - Hybrid ceramic module for RS485
|
||||
CY7C199 - 32k x8 SRAM
|
||||
XC5204 - Xilinx XC5204 FPGA
|
||||
XC5210 - Xilink XC5210 FPGA
|
||||
CY7C199 - 32k x8 SRAM (labeled 3C)
|
||||
XC5204 - Xilinx XC5204 FPGA (labeled 7C)
|
||||
XC5210 - Xilink XC5210 FPGA (labeled 6F)
|
||||
N676H1 - PALCE16V8Q-15 stamped 'N676H1'
|
||||
|
||||
Network PCB (Racing Jam 2 and Thrill Drive (NWK-TR))
|
||||
@ -52,8 +52,32 @@ This pcb is the same as the A version but with one added chip:
|
||||
timekeeper back to factory settings for the new kitted game installed. If the region ID in
|
||||
serialflash and timekeeper do not match, the game boots with a "hardware error" message.
|
||||
|
||||
TODO:
|
||||
- Add X76F041 device when dumps will be available and get rid of the work_ram hack
|
||||
|
||||
FPGA Bitstreams
|
||||
---------------
|
||||
- Racing Jam (racingj)
|
||||
- Uses type A board
|
||||
- Firmware (CRC32 92fde8df, 29491 bytes)
|
||||
|
||||
- Racing Jam 2 (racingj2, racingj2j)
|
||||
- Uses type B board with x76 chip? (x76 isn't used?)
|
||||
- Firmware (CRC32 dfc74cc9, 29491 bytes)
|
||||
|
||||
- Thrill Drive (thrilld, thrilldb, thrilldbu)
|
||||
- Uses type B board with x76 chip (except thrilldbu which uses type A without the x76 chip)
|
||||
- Firmware #1 (CRC32 3760e3ce, 29490 bytes)
|
||||
- Used during initial device test (does not get uploaded with skip post)
|
||||
- Tests every register and expects to be able to read back the values it wrote for every register *except* 0x05, 0x06, and 0x09 on lanc2
|
||||
- Seems to be a stubbed version of the normal firmware with the logic for all registers stubbed except memory-related registers
|
||||
- Firmware #2 (CRC32 a8c97a75, 29490 bytes)
|
||||
- Uploaded after boot sequence (even with skip post)
|
||||
- Allows usage of x76 chip
|
||||
- Firmware #3 (CRC32 93b86e35, 29490 bytes)
|
||||
- Uploaded after security check (boot finishes, just as it starts the actual game)
|
||||
- x76 chip capability unknown (TODO: this should be tested on real hardware)
|
||||
|
||||
Racing Jam 1 and 2 are both programmed to send one extra 0xff at the end of the upload sequence. The Thrill Drive a8c97a75 firmware
|
||||
and the Racing Jam 2 dfc74cc9 firmware are actually the same except for the final 0xff.
|
||||
*/
|
||||
|
||||
#include "emu.h"
|
||||
@ -64,177 +88,299 @@ TODO:
|
||||
|
||||
#include "logmacro.h"
|
||||
|
||||
#define DUMP_FIRMWARE 0
|
||||
|
||||
DEFINE_DEVICE_TYPE(KONAMI_GN676_LAN, konami_gn676_lan_device, "konami_gn676_lan", "Konami GN676 Network PCB")
|
||||
|
||||
konami_gn676_lan_device::konami_gn676_lan_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: device_t(mconfig, KONAMI_GN676_LAN, tag, owner, clock),
|
||||
m_fpga_uploaded(false),
|
||||
m_lanc2_ram_r(0),
|
||||
m_lanc2_ram_w(0),
|
||||
m_lanc2_ram(nullptr),
|
||||
m_work_ram(*this, finder_base::DUMMY_TAG)
|
||||
DEFINE_DEVICE_TYPE(KONAMI_GN676A_LAN, konami_gn676a_lan_device, "konami_gn676a_lan", "Konami GN676-PWB(H)A Network PCB")
|
||||
DEFINE_DEVICE_TYPE(KONAMI_GN676B_LAN, konami_gn676b_lan_device, "konami_gn676b_lan", "Konami GN676-PWB(H)B Network PCB")
|
||||
|
||||
konami_gn676_lan_device::konami_gn676_lan_device(const machine_config &mconfig, const device_type type, const char *tag, device_t *owner, uint32_t clock)
|
||||
: device_t(mconfig, type, tag, owner, clock),
|
||||
m_x76f041(*this, "eeprom"),
|
||||
m_lanc2_ram(nullptr)
|
||||
{
|
||||
std::fill(std::begin(m_lanc2_reg), std::end(m_lanc2_reg), 0);
|
||||
}
|
||||
|
||||
konami_gn676a_lan_device::konami_gn676a_lan_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: konami_gn676_lan_device(mconfig, KONAMI_GN676A_LAN, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
konami_gn676b_lan_device::konami_gn676b_lan_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: konami_gn676_lan_device(mconfig, KONAMI_GN676B_LAN, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
void konami_gn676b_lan_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
X76F041(config, m_x76f041);
|
||||
}
|
||||
|
||||
void konami_gn676_lan_device::device_start()
|
||||
{
|
||||
m_lanc2_ram = std::make_unique<uint8_t[]>(0x8000);
|
||||
|
||||
save_item(NAME(m_fpga_uploaded));
|
||||
save_item(NAME(m_lanc2_ram_r));
|
||||
save_item(NAME(m_lanc2_ram_w));
|
||||
save_item(NAME(m_lanc2_reg));
|
||||
save_item(NAME(m_network_buffer_max_size));
|
||||
save_item(NAME(m_network_id));
|
||||
save_item(NAME(m_fpga_reset_state));
|
||||
save_item(NAME(m_fpga_uploaded));
|
||||
save_item(NAME(m_fpga_waiting_firmware));
|
||||
save_item(NAME(m_fpga_receiving));
|
||||
save_item(NAME(m_fpga_is_stubbed));
|
||||
save_item(NAME(m_fpga_firmware_size));
|
||||
save_item(NAME(m_fpga_firmware_crc));
|
||||
save_item(NAME(m_x76f041_enabled));
|
||||
save_item(NAME(m_x76f041_read_enabled));
|
||||
save_item(NAME(m_x76f041_rst_triggered));
|
||||
|
||||
save_pointer(NAME(m_lanc2_ram), 0x8000);
|
||||
}
|
||||
|
||||
|
||||
uint32_t konami_gn676_lan_device::lanc1_r(offs_t offset)
|
||||
void konami_gn676_lan_device::device_reset()
|
||||
{
|
||||
switch (offset)
|
||||
{
|
||||
case 0x40/4:
|
||||
{
|
||||
uint32_t r = 0;
|
||||
std::fill_n(m_lanc2_ram.get(), 0x8000, 0);
|
||||
|
||||
r |= (m_fpga_uploaded) ? (1 << 6) : 0;
|
||||
r |= 1 << 5;
|
||||
|
||||
return (r) << 24;
|
||||
m_fpga_reset_state = true;
|
||||
reset_fpga_state(false);
|
||||
}
|
||||
|
||||
default:
|
||||
uint8_t konami_gn676_lan_device::lanc1_r(offs_t offset)
|
||||
{
|
||||
LOG("lanc1_r: %08X at %08X\n", offset, machine().describe_context());
|
||||
return 0xffffffff;
|
||||
}
|
||||
}
|
||||
uint8_t r = 0xff;
|
||||
|
||||
if (offset == 0x40)
|
||||
{
|
||||
r = (m_fpga_receiving << 6) | (m_fpga_waiting_firmware << 5);
|
||||
|
||||
// racingj/racingj2 polls expecting to see bit 5 set and bit 6 unset before
|
||||
// it'll start uploading the firmware, so only set it after being polled.
|
||||
m_fpga_receiving = true;
|
||||
}
|
||||
|
||||
void konami_gn676_lan_device::lanc1_w(offs_t offset, uint32_t data, uint32_t mem_mask)
|
||||
{
|
||||
LOG("lanc1_w: %08X, %08X, %08X at %08X\n", data, offset, mem_mask, machine().describe_context());
|
||||
}
|
||||
|
||||
uint32_t konami_gn676_lan_device::lanc2_r(offs_t offset, uint32_t mem_mask)
|
||||
{
|
||||
uint32_t r = 0;
|
||||
|
||||
if (offset == 0)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
r |= m_lanc2_ram[m_lanc2_ram_r & 0x7fff];
|
||||
m_lanc2_ram_r++;
|
||||
}
|
||||
else
|
||||
{
|
||||
r |= 0xffffff00;
|
||||
}
|
||||
}
|
||||
else if (offset == 1)
|
||||
{
|
||||
r |= 0x00005555; // set all other machines as disconnected
|
||||
}
|
||||
else if (offset == 3)
|
||||
{
|
||||
r |= 0xffffffff;
|
||||
}
|
||||
else if (offset == 4)
|
||||
{
|
||||
if (ACCESSING_BITS_24_31)
|
||||
{
|
||||
r |= 0x00000000;
|
||||
}
|
||||
}
|
||||
|
||||
LOG("lanc2_r: %08X, %08X at %08X\n", offset, mem_mask, machine().describe_context());
|
||||
LOG("%s: lanc1_r: read %02X from %08X\n", tag(), r, offset, machine().describe_context());
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
void konami_gn676_lan_device::lanc2_w(offs_t offset, uint32_t data, uint32_t mem_mask)
|
||||
void konami_gn676_lan_device::lanc1_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
LOG("%s: lanc1_w: wrote %02X to %08X\n", machine().describe_context(), data, offset);
|
||||
|
||||
if (offset == 0x20)
|
||||
{
|
||||
if (BIT(data, 7))
|
||||
{
|
||||
m_fpga_uploaded = true;
|
||||
m_fpga_waiting_firmware = false;
|
||||
m_fpga_receiving = false;
|
||||
m_fpga_firmware_crc = util::crc32_creator::simple(m_lanc2_ram.get(), m_fpga_firmware_size);
|
||||
|
||||
LOG("%s: lanc1_fpga: Found firmware with hash of %08x\n", tag(), m_fpga_firmware_crc, machine().describe_context());
|
||||
|
||||
m_x76f041_enabled = m_fpga_firmware_crc == 0xa8c97a75 || m_fpga_firmware_crc == 0xdfc74cc9 || m_fpga_firmware_crc == 0x93b86e35;
|
||||
m_fpga_is_stubbed = m_fpga_firmware_crc == 0x3760e3ce;
|
||||
|
||||
if (DUMP_FIRMWARE)
|
||||
{
|
||||
// DEBUG: Dump firmware for quick comparison
|
||||
FILE *f = fopen(util::string_format("firmware_%08x.bin", m_fpga_firmware_crc).c_str(), "wb");
|
||||
if (f)
|
||||
{
|
||||
fwrite(m_lanc2_ram.get(), 1, m_fpga_firmware_size, f);
|
||||
fclose(f);
|
||||
}
|
||||
}
|
||||
|
||||
std::fill_n(m_lanc2_ram.get(), 0x8000, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t konami_gn676_lan_device::lanc2_r(offs_t offset)
|
||||
{
|
||||
if (m_fpga_waiting_firmware)
|
||||
{
|
||||
if (offset == 0)
|
||||
{
|
||||
if (ACCESSING_BITS_24_31)
|
||||
{
|
||||
uint8_t value = data >> 24;
|
||||
|
||||
value = ((value >> 7) & 0x01) |
|
||||
((value >> 5) & 0x02) |
|
||||
((value >> 3) & 0x04) |
|
||||
((value >> 1) & 0x08) |
|
||||
((value << 1) & 0x10) |
|
||||
((value << 3) & 0x20) |
|
||||
((value << 5) & 0x40) |
|
||||
((value << 7) & 0x80);
|
||||
|
||||
m_fpga_uploaded = true;
|
||||
m_lanc2_reg[0] = (uint8_t)(data >> 24);
|
||||
|
||||
LOG("lanc2_fpga_w: %02X at %08X\n", value, machine().describe_context());
|
||||
return 0x80; // Required to be set for firmware to be written
|
||||
return 0;
|
||||
}
|
||||
if (ACCESSING_BITS_8_15)
|
||||
{
|
||||
m_lanc2_ram_r = 0;
|
||||
m_lanc2_ram_w = 0;
|
||||
m_lanc2_reg[1] = (uint8_t)(data >> 8);
|
||||
|
||||
if (data & 0x1000)
|
||||
uint8_t r = m_lanc2_reg[offset];
|
||||
switch (offset)
|
||||
{
|
||||
// send out frame for this machine
|
||||
case 1:
|
||||
r = BIT(m_lanc2_ram_r, 8, 8);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
r = BIT(m_lanc2_ram_r, 0, 8);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
r = m_lanc2_ram[m_lanc2_ram_r];
|
||||
m_lanc2_ram_r = (m_lanc2_ram_r + 1) & 0x7fff;
|
||||
|
||||
if (!m_fpga_is_stubbed)
|
||||
r = 0xff; // HACK: network traffic isn't implemented so give dummy data
|
||||
break;
|
||||
|
||||
case 6:
|
||||
case 7:
|
||||
if (m_fpga_is_stubbed)
|
||||
{
|
||||
// Thrill Drive's boot test checks for this specific logic
|
||||
r = (m_lanc2_reg[offset] + 3) & 0x7f;
|
||||
m_lanc2_reg[offset]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
// read from other machines
|
||||
//int machine_id = (m_lanc2_reg[2] >> 4) & 7;
|
||||
//int self = m_lanc2_reg[2] & 1;
|
||||
r = 0x55; // HACK: force clients to show as disconnected
|
||||
break;
|
||||
|
||||
for (auto j = 0; j < 0x110; j++)
|
||||
case 9:
|
||||
{
|
||||
m_lanc2_ram[j] = 0xff;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ACCESSING_BITS_16_23)
|
||||
{
|
||||
m_lanc2_reg[2] = (uint8_t)(data >> 16);
|
||||
}
|
||||
if (ACCESSING_BITS_0_7)
|
||||
{
|
||||
m_lanc2_ram[m_lanc2_ram_w & 0x7fff] = data & 0xff;
|
||||
m_lanc2_ram_w++;
|
||||
}
|
||||
}
|
||||
if (offset == 4) // only type B has the chip at 2G
|
||||
{
|
||||
// TODO: HACK! The data below would normally be present on the serialflash at 2G.
|
||||
// Thrill Drive's boot test checks for this specific logic
|
||||
uint8_t a = m_lanc2_reg[offset] + 6;
|
||||
uint8_t b = BIT(a, 4, 2) & BIT(a, 5, 2) & BIT(a, 6, 2);
|
||||
r = (b << 4) | (a & 0x0f);
|
||||
|
||||
if (strcmp(machine().system().name, "thrilld") == 0 ||
|
||||
strcmp(machine().system().name, "thrilldb") == 0 ||
|
||||
strcmp(machine().system().name, "thrilldbe") == 0)
|
||||
{
|
||||
m_work_ram[(0x3ffed0/4) + 0] = 0x472a3731; // G*71
|
||||
m_work_ram[(0x3ffed0/4) + 1] = 0x33202020; // 3
|
||||
m_work_ram[(0x3ffed0/4) + 2] = 0x2d2d2a2a; // --**
|
||||
m_work_ram[(0x3ffed0/4) + 3] = 0x2a207878; // *
|
||||
|
||||
m_work_ram[(0x3fff40/4) + 0] = 0x47433731; // GC71
|
||||
m_work_ram[(0x3fff40/4) + 1] = 0x33000000; // 3
|
||||
m_work_ram[(0x3fff40/4) + 2] = 0x19994a41; // JA
|
||||
m_work_ram[(0x3fff40/4) + 3] = 0x4100a9b1; // A
|
||||
if (m_fpga_is_stubbed)
|
||||
m_lanc2_reg[offset]++;
|
||||
break;
|
||||
}
|
||||
else if (strcmp(machine().system().name, "racingj2") == 0)
|
||||
|
||||
case 0x0c:
|
||||
case 0x0d:
|
||||
// Used with reg 6/7 to determine info about clients
|
||||
break;
|
||||
|
||||
case 0x10:
|
||||
if (m_x76f041 && m_x76f041_enabled && m_x76f041_read_enabled)
|
||||
r = m_x76f041->read_sda();
|
||||
break;
|
||||
}
|
||||
|
||||
LOG("%s: lanc2_r: read %02X from %08X\n", tag(), r, offset, machine().describe_context());
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
void konami_gn676_lan_device::lanc2_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_work_ram[(0x3ffc80/4) + 0] = 0x47453838; // GE88
|
||||
m_work_ram[(0x3ffc80/4) + 1] = 0x38003030; // 8 00
|
||||
m_work_ram[(0x3ffc80/4) + 2] = 0x39374541; // 97EA
|
||||
m_work_ram[(0x3ffc80/4) + 3] = 0x410058da; // A
|
||||
if (m_fpga_waiting_firmware)
|
||||
{
|
||||
if (offset == 0)
|
||||
m_lanc2_ram[m_fpga_firmware_size++] = data;
|
||||
return;
|
||||
}
|
||||
|
||||
LOG("%s: lanc2_w: wrote %02X to %08X\n", tag(), data, offset, machine().describe_context());
|
||||
|
||||
m_lanc2_reg[offset] = data;
|
||||
|
||||
switch (offset)
|
||||
{
|
||||
case 0:
|
||||
// This shouldn't actually be used in practice but Thrill Drive's boot test explicitly writes
|
||||
// (addr >> 16) & 1 to this register which would put it out of the available RAM space.
|
||||
break;
|
||||
|
||||
case 1:
|
||||
m_lanc2_ram_r = (m_lanc2_ram_r & 0x100ff) | (data << 8);
|
||||
m_lanc2_ram_w = (m_lanc2_ram_w & 0x100ff) | (data << 8);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
m_lanc2_ram_r = (m_lanc2_ram_r & 0x1ff00) | data;
|
||||
m_lanc2_ram_w = (m_lanc2_ram_w & 0x1ff00) | data;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
m_lanc2_ram[m_lanc2_ram_w] = data;
|
||||
m_lanc2_ram_w = (m_lanc2_ram_w + 1) & 0x7fff;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
// Network enabled flag?
|
||||
// Set to 0 after firmware is uploaded, set to 1 when setting self network ID and similar info
|
||||
break;
|
||||
|
||||
case 5:
|
||||
m_network_id = data;
|
||||
break;
|
||||
|
||||
case 0x10:
|
||||
if (m_x76f041 && m_x76f041_enabled)
|
||||
{
|
||||
/*
|
||||
0x01 = x76 SDA
|
||||
0x02 = x76 RST
|
||||
0x04 = x76 CS???
|
||||
0x08 = x76 SCL
|
||||
0x10 = Controls direction of x76 SDA
|
||||
*/
|
||||
|
||||
if (BIT(data, 1))
|
||||
m_x76f041_rst_triggered = true;
|
||||
|
||||
m_x76f041_read_enabled = BIT(data, 4);
|
||||
m_x76f041->write_rst(BIT(data, 1));
|
||||
m_x76f041->write_scl(BIT(data, 3));
|
||||
|
||||
if (!m_x76f041_read_enabled)
|
||||
{
|
||||
if (m_x76f041_rst_triggered && BIT(data, 1) == 0)
|
||||
{
|
||||
// HACK: RST was triggered previously and now we're exiting read mode, so reset
|
||||
// the x76 state so we're not stuck in a loop reading the reset response.
|
||||
// My guess is bit 2 is used in some way for this but the usage doesn't make
|
||||
// sense (if used as CS then it'll reset the chip state entirely during ACK
|
||||
// polling in normal usage). FPGA magic?
|
||||
m_x76f041->write_cs(1);
|
||||
m_x76f041->write_cs(0);
|
||||
m_x76f041_rst_triggered = false;
|
||||
}
|
||||
|
||||
m_x76f041->write_sda(BIT(data, 0));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x1c:
|
||||
m_network_buffer_max_size = (data << 8) | (m_network_buffer_max_size & 0xff);
|
||||
break;
|
||||
|
||||
case 0x1d:
|
||||
m_network_buffer_max_size = (m_network_buffer_max_size & 0xff00) | data;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
LOG("lanc2_w: %08X, %08X, %08X at %08X\n", data, offset, mem_mask, machine().describe_context());
|
||||
void konami_gn676_lan_device::reset_fpga_state(bool state)
|
||||
{
|
||||
if (state == m_fpga_reset_state)
|
||||
return;
|
||||
|
||||
// Reset state of FPGA so that it's waiting for new firmware until
|
||||
// bit 7 of lanc1_w addr 0x20 is set.
|
||||
m_fpga_reset_state = state;
|
||||
|
||||
m_fpga_waiting_firmware = true;
|
||||
m_fpga_uploaded = false;
|
||||
m_fpga_receiving = false;
|
||||
m_fpga_is_stubbed = false;
|
||||
m_fpga_firmware_size = 0;
|
||||
m_fpga_firmware_crc = 0;
|
||||
|
||||
m_x76f041_enabled = false;
|
||||
m_x76f041_read_enabled = false;
|
||||
m_x76f041_rst_triggered = false;
|
||||
|
||||
m_lanc2_ram_r = m_lanc2_ram_w = 0;
|
||||
|
||||
m_network_buffer_max_size = 0;
|
||||
m_network_id = 0;
|
||||
|
||||
std::fill(std::begin(m_lanc2_reg), std::end(m_lanc2_reg), 0);
|
||||
}
|
||||
|
@ -1,42 +1,74 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ville Linde
|
||||
// copyright-holders:Ville Linde, windyfairy
|
||||
|
||||
#ifndef MAME_MACHINE_KONAMI_GN676_LAN_H
|
||||
#define MAME_MACHINE_KONAMI_GN676_LAN_H
|
||||
#ifndef MAME_KONAMI_GN676_LAN_H
|
||||
#define MAME_KONAMI_GN676_LAN_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "machine/x76f041.h"
|
||||
|
||||
class konami_gn676_lan_device : public device_t
|
||||
{
|
||||
public:
|
||||
template <typename T>
|
||||
konami_gn676_lan_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&work_ram_tag)
|
||||
: konami_gn676_lan_device(mconfig, tag, owner, clock)
|
||||
{
|
||||
m_work_ram.set_tag(std::forward<T>(work_ram_tag));
|
||||
}
|
||||
static constexpr feature_type unemulated_features() { return feature::LAN; }
|
||||
|
||||
konami_gn676_lan_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
uint8_t lanc1_r(offs_t offset);
|
||||
void lanc1_w(offs_t offset, uint8_t data);
|
||||
uint8_t lanc2_r(offs_t offset);
|
||||
void lanc2_w(offs_t offset, uint8_t data);
|
||||
|
||||
uint32_t lanc1_r(offs_t offset);
|
||||
void lanc1_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
|
||||
uint32_t lanc2_r(offs_t offset, uint32_t mem_mask = ~0);
|
||||
void lanc2_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
|
||||
void reset_fpga_state(bool state);
|
||||
|
||||
protected:
|
||||
konami_gn676_lan_device(const machine_config &mconfig, const device_type type, const char *tag, device_t *owner, uint32_t clock = 0);
|
||||
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
|
||||
optional_device<x76f041_device> m_x76f041;
|
||||
|
||||
private:
|
||||
bool m_fpga_uploaded;
|
||||
int m_lanc2_ram_r;
|
||||
int m_lanc2_ram_w;
|
||||
uint8_t m_lanc2_reg[3];
|
||||
std::unique_ptr<uint8_t[]> m_lanc2_ram;
|
||||
|
||||
required_shared_ptr<uint32_t> m_work_ram;
|
||||
uint8_t m_lanc2_reg[0x20];
|
||||
|
||||
bool m_fpga_uploaded;
|
||||
bool m_fpga_waiting_firmware;
|
||||
bool m_fpga_receiving;
|
||||
bool m_fpga_is_stubbed;
|
||||
bool m_fpga_reset_state;
|
||||
|
||||
uint32_t m_fpga_firmware_size;
|
||||
uint32_t m_fpga_firmware_crc;
|
||||
|
||||
uint32_t m_lanc2_ram_r;
|
||||
uint32_t m_lanc2_ram_w;
|
||||
|
||||
uint16_t m_network_buffer_max_size;
|
||||
uint8_t m_network_id;
|
||||
|
||||
bool m_x76f041_enabled;
|
||||
bool m_x76f041_read_enabled;
|
||||
bool m_x76f041_rst_triggered;
|
||||
};
|
||||
|
||||
DECLARE_DEVICE_TYPE(KONAMI_GN676_LAN, konami_gn676_lan_device)
|
||||
class konami_gn676a_lan_device : public konami_gn676_lan_device
|
||||
{
|
||||
public:
|
||||
konami_gn676a_lan_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
|
||||
};
|
||||
|
||||
class konami_gn676b_lan_device : public konami_gn676_lan_device
|
||||
{
|
||||
public:
|
||||
konami_gn676b_lan_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
|
||||
|
||||
#endif // MAME_MACHINE_KONAMI_GN676_LAN_H
|
||||
protected:
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
};
|
||||
|
||||
DECLARE_DEVICE_TYPE(KONAMI_GN676A_LAN, konami_gn676a_lan_device)
|
||||
DECLARE_DEVICE_TYPE(KONAMI_GN676B_LAN, konami_gn676b_lan_device)
|
||||
|
||||
#endif // MAME_KONAMI_GN676_LAN_H
|
||||
|
@ -314,11 +314,12 @@ public:
|
||||
m_generic_paletteram_32(*this, "paletteram"),
|
||||
m_sharc_dataram(*this, "sharc%u_dataram", 0U),
|
||||
m_cg_view(*this, "cg_view"),
|
||||
m_jvs_host(*this, "jvs_host")
|
||||
m_jvs_host(*this, "jvs_host"),
|
||||
m_gn676_lan(*this, "gn676_lan")
|
||||
{ }
|
||||
|
||||
void thrilld(machine_config &config);
|
||||
void nwktr(machine_config &config);
|
||||
void nwktr_lan_b(machine_config &config);
|
||||
|
||||
void init_nwktr();
|
||||
void init_racingj();
|
||||
@ -351,6 +352,7 @@ private:
|
||||
optional_shared_ptr_array<uint32_t, 2> m_sharc_dataram;
|
||||
memory_view m_cg_view;
|
||||
required_device<konppc_jvs_host_device> m_jvs_host;
|
||||
required_device<konami_gn676_lan_device> m_gn676_lan;
|
||||
|
||||
emu_timer *m_sound_irq_timer;
|
||||
bool m_exrgb;
|
||||
@ -442,10 +444,12 @@ void nwktr_state::sysreg_w(offs_t offset, uint8_t data)
|
||||
|
||||
case 4:
|
||||
{
|
||||
int cs = (data >> 3) & 0x1;
|
||||
int conv = (data >> 2) & 0x1;
|
||||
int di = (data >> 1) & 0x1;
|
||||
int sclk = data & 0x1;
|
||||
m_gn676_lan->reset_fpga_state(BIT(data, 6));
|
||||
|
||||
int cs = BIT(data, 3);
|
||||
int conv = BIT(data, 2);
|
||||
int di = BIT(data, 1);
|
||||
int sclk = BIT(data, 0);
|
||||
|
||||
m_adc12138->cs_w(cs);
|
||||
m_adc12138->conv_w(conv);
|
||||
@ -548,8 +552,8 @@ void nwktr_state::ppc_map(address_map &map)
|
||||
map(0x7d010000, 0x7d01ffff).w(FUNC(nwktr_state::sysreg_w));
|
||||
map(0x7d020000, 0x7d021fff).rw("m48t58", FUNC(timekeeper_device::read), FUNC(timekeeper_device::write)); // M48T58Y RTC/NVRAM
|
||||
map(0x7d030000, 0x7d03000f).rw(m_k056800, FUNC(k056800_device::host_r), FUNC(k056800_device::host_w));
|
||||
map(0x7d040000, 0x7d04ffff).rw("gn676_lan", FUNC(konami_gn676_lan_device::lanc1_r), FUNC(konami_gn676_lan_device::lanc1_w));
|
||||
map(0x7d050000, 0x7d05ffff).rw("gn676_lan", FUNC(konami_gn676_lan_device::lanc2_r), FUNC(konami_gn676_lan_device::lanc2_w));
|
||||
map(0x7d040000, 0x7d04ffff).rw(m_gn676_lan, FUNC(konami_gn676_lan_device::lanc1_r), FUNC(konami_gn676_lan_device::lanc1_w));
|
||||
map(0x7d050000, 0x7d05ffff).rw(m_gn676_lan, FUNC(konami_gn676_lan_device::lanc2_r), FUNC(konami_gn676_lan_device::lanc2_w));
|
||||
map(0x7e000000, 0x7e7fffff).rom().region("datarom", 0);
|
||||
map(0x7f000000, 0x7f1fffff).rom().region("prgrom", 0);
|
||||
map(0x7fe00000, 0x7fffffff).rom().region("prgrom", 0);
|
||||
@ -751,15 +755,17 @@ void nwktr_state::nwktr(machine_config &config)
|
||||
m_konppc->set_num_boards(2);
|
||||
m_konppc->set_cbboard_type(konppc_device::CGBOARD_TYPE_NWKTR);
|
||||
|
||||
KONAMI_GN676_LAN(config, "gn676_lan", 0, m_work_ram);
|
||||
KONAMI_GN676A_LAN(config, m_gn676_lan, 0);
|
||||
|
||||
KONPPC_JVS_HOST(config, m_jvs_host, 0);
|
||||
m_jvs_host->output_callback().set([this](uint8_t c) { m_maincpu->ppc4xx_spu_receive_byte(c); });
|
||||
}
|
||||
|
||||
void nwktr_state::thrilld(machine_config &config)
|
||||
void nwktr_state::nwktr_lan_b(machine_config &config)
|
||||
{
|
||||
nwktr(config);
|
||||
|
||||
KONAMI_GN676B_LAN(config.replace(), m_gn676_lan, 0);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
@ -818,7 +824,88 @@ ROM_START(racingj)
|
||||
ROM_LOAD( "676a10.14p", 0x400000, 0x400000, CRC(7b5b7828) SHA1(aec224d62e4b1e8fdb929d7947ce70d84ba676cf) )
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "676jac_m48t58y.35d", 0x000000, 0x002000, CRC(47e1628c) SHA1(7c42d06ae2f2cd24d083890f333552cbf4f1d3c9) )
|
||||
ROM_LOAD( "gq676ua_m48t58y.35d", 0x000000, 0x002000, CRC(cd182438) SHA1(101a4c4b7a9b4a4bb79ec793275c90b050780f6c) )
|
||||
ROM_END
|
||||
|
||||
ROM_START(racingjj)
|
||||
ROM_REGION32_BE(0x200000, "prgrom", 0) // PowerPC program roms
|
||||
ROM_LOAD16_WORD_SWAP("676gnc01.27p", 0x000000, 0x200000, CRC(690346b5) SHA1(157ab6788382ef4f5a8772f08819f54d0856fcc8) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "datarom", 0) // Data roms
|
||||
ROM_LOAD32_WORD_SWAP("676a04.16t", 0x000000, 0x200000, CRC(d7808cb6) SHA1(0668fae5bb94cc120fe196d4b18200f7b512317f) )
|
||||
ROM_LOAD32_WORD_SWAP("676a05.14t", 0x000002, 0x200000, CRC(fb4de1ad) SHA1(f6aa4eb1b5d22901a2aaf899ed3237a9dfdc55b5) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "master_cgboard", 0) // Master CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "676a13.8x", 0x000000, 0x400000, CRC(29077763) SHA1(ee087ca0d41966ca0fd10727055bb1dcd05a0873) )
|
||||
ROM_LOAD32_WORD_SWAP( "676a14.16x", 0x000002, 0x400000, CRC(50a7e3c0) SHA1(7468a66111a3ddf7c043cd400fa175cae5f65632) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "676a13.8x", 0x000000, 0x400000, CRC(29077763) SHA1(ee087ca0d41966ca0fd10727055bb1dcd05a0873) )
|
||||
ROM_LOAD32_WORD_SWAP( "676a14.16x", 0x000002, 0x400000, CRC(50a7e3c0) SHA1(7468a66111a3ddf7c043cd400fa175cae5f65632) )
|
||||
|
||||
ROM_REGION(0x80000, "audiocpu", 0) // 68k program roms
|
||||
ROM_LOAD16_WORD_SWAP( "676gna08.7s", 0x000000, 0x080000, CRC(8973f6f2) SHA1(f5648a7e0205f7e979ccacbb52936809ce14a184) )
|
||||
|
||||
ROM_REGION16_LE(0x1000000, "rfsnd", 0) // PCM sample roms
|
||||
ROM_LOAD( "676a09.16p", 0x000000, 0x400000, CRC(f85c8dc6) SHA1(8b302c80be309b5cc68b75945fcd7b87a56a4c9b) )
|
||||
ROM_LOAD( "676a10.14p", 0x400000, 0x400000, CRC(7b5b7828) SHA1(aec224d62e4b1e8fdb929d7947ce70d84ba676cf) )
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "gq676ja_m48t58y.35d", 0x000000, 0x002000, CRC(0b83d595) SHA1(852600a82f34b3cde378c166368c1fb07004203d) )
|
||||
ROM_END
|
||||
|
||||
ROM_START(racingja)
|
||||
ROM_REGION32_BE(0x200000, "prgrom", 0) // PowerPC program roms
|
||||
ROM_LOAD16_WORD_SWAP("676gnc01.27p", 0x000000, 0x200000, CRC(690346b5) SHA1(157ab6788382ef4f5a8772f08819f54d0856fcc8) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "datarom", 0) // Data roms
|
||||
ROM_LOAD32_WORD_SWAP("676a04.16t", 0x000000, 0x200000, CRC(d7808cb6) SHA1(0668fae5bb94cc120fe196d4b18200f7b512317f) )
|
||||
ROM_LOAD32_WORD_SWAP("676a05.14t", 0x000002, 0x200000, CRC(fb4de1ad) SHA1(f6aa4eb1b5d22901a2aaf899ed3237a9dfdc55b5) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "master_cgboard", 0) // Master CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "676a13.8x", 0x000000, 0x400000, CRC(29077763) SHA1(ee087ca0d41966ca0fd10727055bb1dcd05a0873) )
|
||||
ROM_LOAD32_WORD_SWAP( "676a14.16x", 0x000002, 0x400000, CRC(50a7e3c0) SHA1(7468a66111a3ddf7c043cd400fa175cae5f65632) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "676a13.8x", 0x000000, 0x400000, CRC(29077763) SHA1(ee087ca0d41966ca0fd10727055bb1dcd05a0873) )
|
||||
ROM_LOAD32_WORD_SWAP( "676a14.16x", 0x000002, 0x400000, CRC(50a7e3c0) SHA1(7468a66111a3ddf7c043cd400fa175cae5f65632) )
|
||||
|
||||
ROM_REGION(0x80000, "audiocpu", 0) // 68k program roms
|
||||
ROM_LOAD16_WORD_SWAP( "676gna08.7s", 0x000000, 0x080000, CRC(8973f6f2) SHA1(f5648a7e0205f7e979ccacbb52936809ce14a184) )
|
||||
|
||||
ROM_REGION16_LE(0x1000000, "rfsnd", 0) // PCM sample roms
|
||||
ROM_LOAD( "676a09.16p", 0x000000, 0x400000, CRC(f85c8dc6) SHA1(8b302c80be309b5cc68b75945fcd7b87a56a4c9b) )
|
||||
ROM_LOAD( "676a10.14p", 0x400000, 0x400000, CRC(7b5b7828) SHA1(aec224d62e4b1e8fdb929d7947ce70d84ba676cf) )
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "gq676aa_m48t58y.35d", 0x000000, 0x002000, CRC(0eb8209d) SHA1(eb5bc411378423f05f2708d673d5b06687c59dbf) )
|
||||
ROM_END
|
||||
|
||||
ROM_START(racingje)
|
||||
ROM_REGION32_BE(0x200000, "prgrom", 0) // PowerPC program roms
|
||||
ROM_LOAD16_WORD_SWAP("676gnc01.27p", 0x000000, 0x200000, CRC(690346b5) SHA1(157ab6788382ef4f5a8772f08819f54d0856fcc8) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "datarom", 0) // Data roms
|
||||
ROM_LOAD32_WORD_SWAP("676a04.16t", 0x000000, 0x200000, CRC(d7808cb6) SHA1(0668fae5bb94cc120fe196d4b18200f7b512317f) )
|
||||
ROM_LOAD32_WORD_SWAP("676a05.14t", 0x000002, 0x200000, CRC(fb4de1ad) SHA1(f6aa4eb1b5d22901a2aaf899ed3237a9dfdc55b5) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "master_cgboard", 0) // Master CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "676a13.8x", 0x000000, 0x400000, CRC(29077763) SHA1(ee087ca0d41966ca0fd10727055bb1dcd05a0873) )
|
||||
ROM_LOAD32_WORD_SWAP( "676a14.16x", 0x000002, 0x400000, CRC(50a7e3c0) SHA1(7468a66111a3ddf7c043cd400fa175cae5f65632) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "676a13.8x", 0x000000, 0x400000, CRC(29077763) SHA1(ee087ca0d41966ca0fd10727055bb1dcd05a0873) )
|
||||
ROM_LOAD32_WORD_SWAP( "676a14.16x", 0x000002, 0x400000, CRC(50a7e3c0) SHA1(7468a66111a3ddf7c043cd400fa175cae5f65632) )
|
||||
|
||||
ROM_REGION(0x80000, "audiocpu", 0) // 68k program roms
|
||||
ROM_LOAD16_WORD_SWAP( "676gna08.7s", 0x000000, 0x080000, CRC(8973f6f2) SHA1(f5648a7e0205f7e979ccacbb52936809ce14a184) )
|
||||
|
||||
ROM_REGION16_LE(0x1000000, "rfsnd", 0) // PCM sample roms
|
||||
ROM_LOAD( "676a09.16p", 0x000000, 0x400000, CRC(f85c8dc6) SHA1(8b302c80be309b5cc68b75945fcd7b87a56a4c9b) )
|
||||
ROM_LOAD( "676a10.14p", 0x400000, 0x400000, CRC(7b5b7828) SHA1(aec224d62e4b1e8fdb929d7947ce70d84ba676cf) )
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "gq676ea_m48t58y.35d", 0x000000, 0x002000, CRC(c490ffc1) SHA1(170d736b7a07300f4e560cd384c8fd41f2aaaeff) )
|
||||
ROM_END
|
||||
|
||||
ROM_START(racingj2)
|
||||
@ -845,11 +932,42 @@ ROM_START(racingj2)
|
||||
ROM_LOAD( "888a09.16p", 0x000000, 0x400000, CRC(11e2fed2) SHA1(24b8a367b59fedb62c56f066342f2fa87b135fc5) )
|
||||
ROM_LOAD( "888a10.14p", 0x400000, 0x400000, CRC(328ce610) SHA1(dbbc779a1890c53298c0db129d496df048929496) )
|
||||
|
||||
ROM_REGION( 0x0000084, "laneeprom", 0 )
|
||||
ROM_LOAD( "ge888ea.2g", 0x000000, 0x000084, NO_DUMP )
|
||||
ROM_REGION( 0x0000224, "gn676_lan:eeprom", 0 )
|
||||
ROM_LOAD( "ge888ua.2g", 0x000000, 0x000224, NO_DUMP ) // Unused?
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "676eae_m48t58y.35d", 0x000000, 0x002000, CRC(f691f5ab) SHA1(e81f652c5caa2caa8bd1c6d6db488d849bda058e) )
|
||||
ROM_LOAD( "gq888ua_m48t58y.35d", 0x000000, 0x002000, CRC(1903f6c1) SHA1(f8b6dedf585c014044c530b73014915874d6fb71) )
|
||||
ROM_END
|
||||
|
||||
ROM_START(racingj2a)
|
||||
ROM_REGION32_BE(0x200000, "prgrom", 0) // PowerPC program roms
|
||||
ROM_LOAD16_WORD_SWAP("888a01.27p", 0x000000, 0x200000, CRC(d077890a) SHA1(08b252324cf46fbcdb95e8f9312287920cd87c5d) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "datarom", 0) // Data roms
|
||||
ROM_LOAD32_WORD_SWAP( "676a04.16t", 0x000000, 0x200000, CRC(d7808cb6) SHA1(0668fae5bb94cc120fe196d4b18200f7b512317f) )
|
||||
ROM_LOAD32_WORD_SWAP( "676a05.14t", 0x000002, 0x200000, CRC(fb4de1ad) SHA1(f6aa4eb1b5d22901a2aaf899ed3237a9dfdc55b5) )
|
||||
ROM_LOAD32_WORD_SWAP( "888a06.12t", 0x400000, 0x200000, CRC(00cbec4d) SHA1(1ce7807d86e90edbf4eecba462a27c725f5ad862) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "master_cgboard", 0) // Master CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "888a13.8x", 0x000000, 0x400000, CRC(2292f530) SHA1(0f4d1332708fd5366a065e0a928cc9610558b42d) )
|
||||
ROM_LOAD32_WORD_SWAP( "888a14.16x", 0x000002, 0x400000, CRC(6a834a26) SHA1(d1fbd7ae6afd05f0edac4efde12a5a45aa2bc7df) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "888a13.8x", 0x000000, 0x400000, CRC(2292f530) SHA1(0f4d1332708fd5366a065e0a928cc9610558b42d) )
|
||||
ROM_LOAD32_WORD_SWAP( "888a14.16x", 0x000002, 0x400000, CRC(6a834a26) SHA1(d1fbd7ae6afd05f0edac4efde12a5a45aa2bc7df) )
|
||||
|
||||
ROM_REGION(0x80000, "audiocpu", 0) // 68k program roms
|
||||
ROM_LOAD16_WORD_SWAP( "888a08.7s", 0x000000, 0x080000, CRC(55fbea65) SHA1(ad953f758181731efccadcabc4326e6634c359e8) )
|
||||
|
||||
ROM_REGION16_LE(0x1000000, "rfsnd", 0) // PCM sample roms
|
||||
ROM_LOAD( "888a09.16p", 0x000000, 0x400000, CRC(11e2fed2) SHA1(24b8a367b59fedb62c56f066342f2fa87b135fc5) )
|
||||
ROM_LOAD( "888a10.14p", 0x400000, 0x400000, CRC(328ce610) SHA1(dbbc779a1890c53298c0db129d496df048929496) )
|
||||
|
||||
ROM_REGION( 0x0000224, "gn676_lan:eeprom", 0 )
|
||||
ROM_LOAD( "ge888aa.2g", 0x000000, 0x000224, NO_DUMP ) // Unused?
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "gq888aa_m48t58y.35d", 0x000000, 0x002000, CRC(85e8a67d) SHA1(fd799918437ed5d80247c58dfec7006781af657f) )
|
||||
ROM_END
|
||||
|
||||
ROM_START(racingj2j)
|
||||
@ -876,11 +994,42 @@ ROM_START(racingj2j)
|
||||
ROM_LOAD( "888a09.16p", 0x000000, 0x400000, CRC(11e2fed2) SHA1(24b8a367b59fedb62c56f066342f2fa87b135fc5) )
|
||||
ROM_LOAD( "888a10.14p", 0x400000, 0x400000, CRC(328ce610) SHA1(dbbc779a1890c53298c0db129d496df048929496) )
|
||||
|
||||
ROM_REGION( 0x0000084, "laneeprom", 0 )
|
||||
ROM_LOAD( "ge888ja.2g", 0x000000, 0x000084, NO_DUMP )
|
||||
ROM_REGION( 0x0000224, "gn676_lan:eeprom", 0 )
|
||||
ROM_LOAD( "ge888ja.2g", 0x000000, 0x000224, NO_DUMP )
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "676jae_m48t58y.35d", 0x000000, 0x002000, CRC(1aa43a1f) SHA1(814b691b8a358bf1545a13d595d17070e612e9a4) )
|
||||
ROM_LOAD( "gq888ja_m48t58y.35d", 0x000000, 0x002000, CRC(0fd00769) SHA1(7d7ea94066bca2e589c0fe0f69c620a8f97916cc) )
|
||||
ROM_END
|
||||
|
||||
ROM_START(racingj2e)
|
||||
ROM_REGION32_BE(0x200000, "prgrom", 0) // PowerPC program roms
|
||||
ROM_LOAD16_WORD_SWAP("888a01.27p", 0x000000, 0x200000, CRC(d077890a) SHA1(08b252324cf46fbcdb95e8f9312287920cd87c5d) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "datarom", 0) // Data roms
|
||||
ROM_LOAD32_WORD_SWAP( "676a04.16t", 0x000000, 0x200000, CRC(d7808cb6) SHA1(0668fae5bb94cc120fe196d4b18200f7b512317f) )
|
||||
ROM_LOAD32_WORD_SWAP( "676a05.14t", 0x000002, 0x200000, CRC(fb4de1ad) SHA1(f6aa4eb1b5d22901a2aaf899ed3237a9dfdc55b5) )
|
||||
ROM_LOAD32_WORD_SWAP( "888a06.12t", 0x400000, 0x200000, CRC(00cbec4d) SHA1(1ce7807d86e90edbf4eecba462a27c725f5ad862) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "master_cgboard", 0) // Master CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "888a13.8x", 0x000000, 0x400000, CRC(2292f530) SHA1(0f4d1332708fd5366a065e0a928cc9610558b42d) )
|
||||
ROM_LOAD32_WORD_SWAP( "888a14.16x", 0x000002, 0x400000, CRC(6a834a26) SHA1(d1fbd7ae6afd05f0edac4efde12a5a45aa2bc7df) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "slave_cgboard", 0) // Slave CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "888a13.8x", 0x000000, 0x400000, CRC(2292f530) SHA1(0f4d1332708fd5366a065e0a928cc9610558b42d) )
|
||||
ROM_LOAD32_WORD_SWAP( "888a14.16x", 0x000002, 0x400000, CRC(6a834a26) SHA1(d1fbd7ae6afd05f0edac4efde12a5a45aa2bc7df) )
|
||||
|
||||
ROM_REGION(0x80000, "audiocpu", 0) // 68k program roms
|
||||
ROM_LOAD16_WORD_SWAP( "888a08.7s", 0x000000, 0x080000, CRC(55fbea65) SHA1(ad953f758181731efccadcabc4326e6634c359e8) )
|
||||
|
||||
ROM_REGION16_LE(0x1000000, "rfsnd", 0) // PCM sample roms
|
||||
ROM_LOAD( "888a09.16p", 0x000000, 0x400000, CRC(11e2fed2) SHA1(24b8a367b59fedb62c56f066342f2fa87b135fc5) )
|
||||
ROM_LOAD( "888a10.14p", 0x400000, 0x400000, CRC(328ce610) SHA1(dbbc779a1890c53298c0db129d496df048929496) )
|
||||
|
||||
ROM_REGION( 0x0000224, "gn676_lan:eeprom", 0 )
|
||||
ROM_LOAD( "ge888ea.2g", 0x000000, 0x000224, NO_DUMP )
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "gq888ea_m48t58y.35d", 0x000000, 0x002000, CRC(108b2d38) SHA1(7c55f592a0fc2b6809ec5d128e78283b77694345) )
|
||||
ROM_END
|
||||
|
||||
ROM_START(thrilld)
|
||||
@ -902,11 +1051,141 @@ ROM_START(thrilld)
|
||||
ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) )
|
||||
ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) )
|
||||
|
||||
ROM_REGION( 0x0000084, "laneeprom", 0 )
|
||||
ROM_LOAD( "gc713jc.2g", 0x000000, 0x000084, NO_DUMP )
|
||||
ROM_REGION( 0x000224, "gn676_lan:eeprom", 0)
|
||||
ROM_LOAD( "gc713ud.2g", 0x000000, 0x000224, BAD_DUMP CRC(fc9563f5) SHA1(1ed08482024f6d4353d4e4ea6c8092f6625d699b) ) // hand built
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "713jae_m48t58y.35d", 0x000000, 0x002000, CRC(5d8fbcb2) SHA1(74ad91544d2a200cf599a565005476623075e7d6) )
|
||||
ROM_LOAD( "gm676ua_m48t58y.35d", 0x000000, 0x002000, BAD_DUMP CRC(2aeeda76) SHA1(ed63b5ebbd9ebb90afd7fdebc9ad4b4d9966012b) ) // hand built
|
||||
ROM_END
|
||||
|
||||
ROM_START(thrilldj)
|
||||
ROM_REGION32_BE(0x200000, "prgrom", 0) // PowerPC program roms
|
||||
ROM_LOAD16_WORD_SWAP("713be01.27p", 0x000000, 0x200000, CRC(d84a7723) SHA1(f4e9e08591b7e5e8419266dbe744d56a185384ed) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "datarom", 0) // Data roms
|
||||
ROM_LOAD32_WORD_SWAP("713a04.16t", 0x000000, 0x200000, CRC(c994aaa8) SHA1(d82b9930a11e5384ad583684a27c95beec03cd5a) )
|
||||
ROM_LOAD32_WORD_SWAP("713a05.14t", 0x000002, 0x200000, CRC(6f1e6802) SHA1(91f8a170327e9b4ee6a64aee0c106b981a317e69) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "master_cgboard", 0) // CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "713a13.8x", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) )
|
||||
ROM_LOAD32_WORD_SWAP( "713a14.16x", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) )
|
||||
|
||||
ROM_REGION(0x80000, "audiocpu", 0) // 68k program roms
|
||||
ROM_LOAD16_WORD_SWAP( "713a08.7s", 0x000000, 0x080000, CRC(6a72a825) SHA1(abeac99c5343efacabcb0cdff6d34f9f967024db) )
|
||||
|
||||
ROM_REGION16_LE(0x1000000, "rfsnd", 0) // PCM sample roms
|
||||
ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) )
|
||||
ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) )
|
||||
|
||||
ROM_REGION( 0x000224, "gn676_lan:eeprom", 0)
|
||||
ROM_LOAD( "gc713jc.2g", 0x000000, 0x000224, BAD_DUMP CRC(98e326b7) SHA1(af532cf84eca02a3ed0bd0d49c2b142c7f21760c) ) // hand built
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "gm676ja_m48t58y.35d", 0x000000, 0x002000, BAD_DUMP CRC(e6eafce5) SHA1(167d957f7cf1e94a12070739a4103977512f6737) ) // hand built
|
||||
ROM_END
|
||||
|
||||
ROM_START(thrilldja)
|
||||
ROM_REGION32_BE(0x200000, "prgrom", 0) // PowerPC program roms
|
||||
ROM_LOAD16_WORD_SWAP("713be01.27p", 0x000000, 0x200000, CRC(d84a7723) SHA1(f4e9e08591b7e5e8419266dbe744d56a185384ed) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "datarom", 0) // Data roms
|
||||
ROM_LOAD32_WORD_SWAP("713a04.16t", 0x000000, 0x200000, CRC(c994aaa8) SHA1(d82b9930a11e5384ad583684a27c95beec03cd5a) )
|
||||
ROM_LOAD32_WORD_SWAP("713a05.14t", 0x000002, 0x200000, CRC(6f1e6802) SHA1(91f8a170327e9b4ee6a64aee0c106b981a317e69) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "master_cgboard", 0) // CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "713a13.8x", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) )
|
||||
ROM_LOAD32_WORD_SWAP( "713a14.16x", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) )
|
||||
|
||||
ROM_REGION(0x80000, "audiocpu", 0) // 68k program roms
|
||||
ROM_LOAD16_WORD_SWAP( "713a08.7s", 0x000000, 0x080000, CRC(6a72a825) SHA1(abeac99c5343efacabcb0cdff6d34f9f967024db) )
|
||||
|
||||
ROM_REGION16_LE(0x1000000, "rfsnd", 0) // PCM sample roms
|
||||
ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) )
|
||||
ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) )
|
||||
|
||||
ROM_REGION( 0x000224, "gn676_lan:eeprom", 0)
|
||||
ROM_LOAD( "gc713ja.2g", 0x000000, 0x000224, BAD_DUMP CRC(600e21e1) SHA1(ca7b30ed4b564aee17a326d1d9729656b5101249) ) // hand built
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "gm676ja_m48t58y.35d", 0x000000, 0x002000, BAD_DUMP CRC(e6eafce5) SHA1(167d957f7cf1e94a12070739a4103977512f6737) ) // hand built
|
||||
ROM_END
|
||||
|
||||
ROM_START(thrillde)
|
||||
ROM_REGION32_BE(0x200000, "prgrom", 0) // PowerPC program roms
|
||||
ROM_LOAD16_WORD_SWAP("713be01.27p", 0x000000, 0x200000, CRC(d84a7723) SHA1(f4e9e08591b7e5e8419266dbe744d56a185384ed) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "datarom", 0) // Data roms
|
||||
ROM_LOAD32_WORD_SWAP("713a04.16t", 0x000000, 0x200000, CRC(c994aaa8) SHA1(d82b9930a11e5384ad583684a27c95beec03cd5a) )
|
||||
ROM_LOAD32_WORD_SWAP("713a05.14t", 0x000002, 0x200000, CRC(6f1e6802) SHA1(91f8a170327e9b4ee6a64aee0c106b981a317e69) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "master_cgboard", 0) // CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "713a13.8x", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) )
|
||||
ROM_LOAD32_WORD_SWAP( "713a14.16x", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) )
|
||||
|
||||
ROM_REGION(0x80000, "audiocpu", 0) // 68k program roms
|
||||
ROM_LOAD16_WORD_SWAP( "713a08.7s", 0x000000, 0x080000, CRC(6a72a825) SHA1(abeac99c5343efacabcb0cdff6d34f9f967024db) )
|
||||
|
||||
ROM_REGION16_LE(0x1000000, "rfsnd", 0) // PCM sample roms
|
||||
ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) )
|
||||
ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) )
|
||||
|
||||
ROM_REGION( 0x000224, "gn676_lan:eeprom", 0)
|
||||
ROM_LOAD( "gc713ed.2g", 0x000000, 0x000224, BAD_DUMP CRC(8a5bdf3c) SHA1(7cb9b0e30177caf8a623af5ee6ff95ead5eae4f2) ) // hand built
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "gm676ea_m48t58y.35d", 0x000000, 0x002000, BAD_DUMP CRC(b4afab84) SHA1(e8c653df7ce0a5cb77bf7aedeca4c4ff91669047) ) // hand built
|
||||
ROM_END
|
||||
|
||||
ROM_START(thrillda)
|
||||
ROM_REGION32_BE(0x200000, "prgrom", 0) // PowerPC program roms
|
||||
ROM_LOAD16_WORD_SWAP("713be01.27p", 0x000000, 0x200000, CRC(d84a7723) SHA1(f4e9e08591b7e5e8419266dbe744d56a185384ed) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "datarom", 0) // Data roms
|
||||
ROM_LOAD32_WORD_SWAP("713a04.16t", 0x000000, 0x200000, CRC(c994aaa8) SHA1(d82b9930a11e5384ad583684a27c95beec03cd5a) )
|
||||
ROM_LOAD32_WORD_SWAP("713a05.14t", 0x000002, 0x200000, CRC(6f1e6802) SHA1(91f8a170327e9b4ee6a64aee0c106b981a317e69) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "master_cgboard", 0) // CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "713a13.8x", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) )
|
||||
ROM_LOAD32_WORD_SWAP( "713a14.16x", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) )
|
||||
|
||||
ROM_REGION(0x80000, "audiocpu", 0) // 68k program roms
|
||||
ROM_LOAD16_WORD_SWAP( "713a08.7s", 0x000000, 0x080000, CRC(6a72a825) SHA1(abeac99c5343efacabcb0cdff6d34f9f967024db) )
|
||||
|
||||
ROM_REGION16_LE(0x1000000, "rfsnd", 0) // PCM sample roms
|
||||
ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) )
|
||||
ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) )
|
||||
|
||||
ROM_REGION( 0x000224, "gn676_lan:eeprom", 0)
|
||||
ROM_LOAD( "gc713ac.2g", 0x000000, 0x000224, BAD_DUMP CRC(8db4eed6) SHA1(f99120c18435866354c5deadfacd47453fb53c15) ) // hand built
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "gm676aa_m48t58y.35d", 0x000000, 0x002000, BAD_DUMP CRC(c011dcea) SHA1(39cbbe518bfc256cdb72bdaece03c539f705c807) ) // hand built
|
||||
ROM_END
|
||||
|
||||
ROM_START(thrilldab)
|
||||
ROM_REGION32_BE(0x200000, "prgrom", 0) // PowerPC program roms
|
||||
ROM_LOAD16_WORD_SWAP("713be01.27p", 0x000000, 0x200000, CRC(d84a7723) SHA1(f4e9e08591b7e5e8419266dbe744d56a185384ed) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "datarom", 0) // Data roms
|
||||
ROM_LOAD32_WORD_SWAP("713a04.16t", 0x000000, 0x200000, CRC(c994aaa8) SHA1(d82b9930a11e5384ad583684a27c95beec03cd5a) )
|
||||
ROM_LOAD32_WORD_SWAP("713a05.14t", 0x000002, 0x200000, CRC(6f1e6802) SHA1(91f8a170327e9b4ee6a64aee0c106b981a317e69) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "master_cgboard", 0) // CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "713a13.8x", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) )
|
||||
ROM_LOAD32_WORD_SWAP( "713a14.16x", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) )
|
||||
|
||||
ROM_REGION(0x80000, "audiocpu", 0) // 68k program roms
|
||||
ROM_LOAD16_WORD_SWAP( "713a08.7s", 0x000000, 0x080000, CRC(6a72a825) SHA1(abeac99c5343efacabcb0cdff6d34f9f967024db) )
|
||||
|
||||
ROM_REGION16_LE(0x1000000, "rfsnd", 0) // PCM sample roms
|
||||
ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) )
|
||||
ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) )
|
||||
|
||||
ROM_REGION( 0x000224, "gn676_lan:eeprom", 0)
|
||||
ROM_LOAD( "gc713ab.2g", 0x000000, 0x000224, BAD_DUMP CRC(f1c26d7d) SHA1(2a3f45d18bc8e9278d077118d478a501531011f4) ) // hand built
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "gm676aa_m48t58y.35d", 0x000000, 0x002000, BAD_DUMP CRC(c011dcea) SHA1(39cbbe518bfc256cdb72bdaece03c539f705c807) ) // hand built
|
||||
ROM_END
|
||||
|
||||
ROM_START(thrilldb)
|
||||
@ -928,11 +1207,63 @@ ROM_START(thrilldb)
|
||||
ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) )
|
||||
ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) )
|
||||
|
||||
ROM_REGION( 0x0000084, "laneeprom", 0 )
|
||||
ROM_LOAD( "gc713jc.2g", 0x000000, 0x000084, NO_DUMP )
|
||||
ROM_REGION( 0x000224, "gn676_lan:eeprom", 0)
|
||||
ROM_LOAD( "gc713ud.2g", 0x000000, 0x000224, BAD_DUMP CRC(fc9563f5) SHA1(1ed08482024f6d4353d4e4ea6c8092f6625d699b) ) // hand built
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "713jab_m48t58y.35d", 0x000000, 0x002000, CRC(5d8fbcb2) SHA1(74ad91544d2a200cf599a565005476623075e7d6) )
|
||||
ROM_LOAD( "gm676ua_m48t58y.35d", 0x000000, 0x002000, BAD_DUMP CRC(2aeeda76) SHA1(ed63b5ebbd9ebb90afd7fdebc9ad4b4d9966012b) ) // hand built
|
||||
ROM_END
|
||||
|
||||
ROM_START(thrilldbj)
|
||||
ROM_REGION32_BE(0x200000, "prgrom", 0) // PowerPC program roms
|
||||
ROM_LOAD16_WORD_SWAP("713bb01.27p", 0x000000, 0x200000, CRC(535fe4e8) SHA1(acd8194a4dafce289dbdfd874f0b799f25aeb73f) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "datarom", 0) // Data roms
|
||||
ROM_LOAD32_WORD_SWAP("713a04.16t", 0x000000, 0x200000, CRC(c994aaa8) SHA1(d82b9930a11e5384ad583684a27c95beec03cd5a) )
|
||||
ROM_LOAD32_WORD_SWAP("713a05.14t", 0x000002, 0x200000, CRC(6f1e6802) SHA1(91f8a170327e9b4ee6a64aee0c106b981a317e69) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "master_cgboard", 0) // CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "713a13.8x", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) )
|
||||
ROM_LOAD32_WORD_SWAP( "713a14.16x", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) )
|
||||
|
||||
ROM_REGION(0x80000, "audiocpu", 0) // 68k program roms
|
||||
ROM_LOAD16_WORD_SWAP( "713a08.7s", 0x000000, 0x080000, CRC(6a72a825) SHA1(abeac99c5343efacabcb0cdff6d34f9f967024db) )
|
||||
|
||||
ROM_REGION16_LE(0x1000000, "rfsnd", 0) // PCM sample roms
|
||||
ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) )
|
||||
ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) )
|
||||
|
||||
ROM_REGION( 0x000224, "gn676_lan:eeprom", 0)
|
||||
ROM_LOAD( "gc713jc.2g", 0x000000, 0x000224, BAD_DUMP CRC(98e326b7) SHA1(af532cf84eca02a3ed0bd0d49c2b142c7f21760c) ) // hand built
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "gm676ja_m48t58y.35d", 0x000000, 0x002000, BAD_DUMP CRC(e6eafce5) SHA1(167d957f7cf1e94a12070739a4103977512f6737) ) // hand built
|
||||
ROM_END
|
||||
|
||||
ROM_START(thrilldbja)
|
||||
ROM_REGION32_BE(0x200000, "prgrom", 0) // PowerPC program roms
|
||||
ROM_LOAD16_WORD_SWAP("713bb01.27p", 0x000000, 0x200000, CRC(535fe4e8) SHA1(acd8194a4dafce289dbdfd874f0b799f25aeb73f) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "datarom", 0) // Data roms
|
||||
ROM_LOAD32_WORD_SWAP("713a04.16t", 0x000000, 0x200000, CRC(c994aaa8) SHA1(d82b9930a11e5384ad583684a27c95beec03cd5a) )
|
||||
ROM_LOAD32_WORD_SWAP("713a05.14t", 0x000002, 0x200000, CRC(6f1e6802) SHA1(91f8a170327e9b4ee6a64aee0c106b981a317e69) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "master_cgboard", 0) // CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "713a13.8x", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) )
|
||||
ROM_LOAD32_WORD_SWAP( "713a14.16x", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) )
|
||||
|
||||
ROM_REGION(0x80000, "audiocpu", 0) // 68k program roms
|
||||
ROM_LOAD16_WORD_SWAP( "713a08.7s", 0x000000, 0x080000, CRC(6a72a825) SHA1(abeac99c5343efacabcb0cdff6d34f9f967024db) )
|
||||
|
||||
ROM_REGION16_LE(0x1000000, "rfsnd", 0) // PCM sample roms
|
||||
ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) )
|
||||
ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) )
|
||||
|
||||
ROM_REGION( 0x000224, "gn676_lan:eeprom", 0)
|
||||
ROM_LOAD( "gc713ja.2g", 0x000000, 0x000224, BAD_DUMP CRC(600e21e1) SHA1(ca7b30ed4b564aee17a326d1d9729656b5101249) ) // hand built
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "gm676ja_m48t58y.35d", 0x000000, 0x002000, BAD_DUMP CRC(e6eafce5) SHA1(167d957f7cf1e94a12070739a4103977512f6737) ) // hand built
|
||||
ROM_END
|
||||
|
||||
ROM_START(thrilldbe)
|
||||
@ -954,11 +1285,63 @@ ROM_START(thrilldbe)
|
||||
ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) )
|
||||
ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) )
|
||||
|
||||
ROM_REGION( 0x0000084, "laneeprom", 0 )
|
||||
ROM_LOAD( "gc713ec.2g", 0x000000, 0x000084, NO_DUMP )
|
||||
ROM_REGION( 0x000224, "gn676_lan:eeprom", 0)
|
||||
ROM_LOAD( "gc713ed.2g", 0x000000, 0x000224, BAD_DUMP CRC(8a5bdf3c) SHA1(7cb9b0e30177caf8a623af5ee6ff95ead5eae4f2) ) // hand built
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "713eaa_m48t58y.35d", 0x000000, 0x002000, CRC(056ea8fa) SHA1(23574e0c1d011dab8644f3d98763d4a2d11a05b3) )
|
||||
ROM_LOAD( "gm676ea_m48t58y.35d", 0x000000, 0x002000, BAD_DUMP CRC(b4afab84) SHA1(e8c653df7ce0a5cb77bf7aedeca4c4ff91669047) ) // hand built
|
||||
ROM_END
|
||||
|
||||
ROM_START(thrilldba)
|
||||
ROM_REGION32_BE(0x200000, "prgrom", 0) // PowerPC program roms
|
||||
ROM_LOAD16_WORD_SWAP("713bb01.27p", 0x000000, 0x200000, CRC(535fe4e8) SHA1(acd8194a4dafce289dbdfd874f0b799f25aeb73f) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "datarom", 0) // Data roms
|
||||
ROM_LOAD32_WORD_SWAP("713a04.16t", 0x000000, 0x200000, CRC(c994aaa8) SHA1(d82b9930a11e5384ad583684a27c95beec03cd5a) )
|
||||
ROM_LOAD32_WORD_SWAP("713a05.14t", 0x000002, 0x200000, CRC(6f1e6802) SHA1(91f8a170327e9b4ee6a64aee0c106b981a317e69) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "master_cgboard", 0) // CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "713a13.8x", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) )
|
||||
ROM_LOAD32_WORD_SWAP( "713a14.16x", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) )
|
||||
|
||||
ROM_REGION(0x80000, "audiocpu", 0) // 68k program roms
|
||||
ROM_LOAD16_WORD_SWAP( "713a08.7s", 0x000000, 0x080000, CRC(6a72a825) SHA1(abeac99c5343efacabcb0cdff6d34f9f967024db) )
|
||||
|
||||
ROM_REGION16_LE(0x1000000, "rfsnd", 0) // PCM sample roms
|
||||
ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) )
|
||||
ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) )
|
||||
|
||||
ROM_REGION( 0x000224, "gn676_lan:eeprom", 0)
|
||||
ROM_LOAD( "gc713ac.2g", 0x000000, 0x000224, BAD_DUMP CRC(8db4eed6) SHA1(f99120c18435866354c5deadfacd47453fb53c15) ) // hand built
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "gm676aa_m48t58y.35d", 0x000000, 0x002000, BAD_DUMP CRC(c011dcea) SHA1(39cbbe518bfc256cdb72bdaece03c539f705c807) ) // hand built
|
||||
ROM_END
|
||||
|
||||
ROM_START(thrilldbab)
|
||||
ROM_REGION32_BE(0x200000, "prgrom", 0) // PowerPC program roms
|
||||
ROM_LOAD16_WORD_SWAP("713bb01.27p", 0x000000, 0x200000, CRC(535fe4e8) SHA1(acd8194a4dafce289dbdfd874f0b799f25aeb73f) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "datarom", 0) // Data roms
|
||||
ROM_LOAD32_WORD_SWAP("713a04.16t", 0x000000, 0x200000, CRC(c994aaa8) SHA1(d82b9930a11e5384ad583684a27c95beec03cd5a) )
|
||||
ROM_LOAD32_WORD_SWAP("713a05.14t", 0x000002, 0x200000, CRC(6f1e6802) SHA1(91f8a170327e9b4ee6a64aee0c106b981a317e69) )
|
||||
|
||||
ROM_REGION32_BE(0x800000, "master_cgboard", 0) // CG Board texture roms
|
||||
ROM_LOAD32_WORD_SWAP( "713a13.8x", 0x000000, 0x400000, CRC(b795c66b) SHA1(6e50de0d5cc444ffaa0fec7ada8c07f643374bb2) )
|
||||
ROM_LOAD32_WORD_SWAP( "713a14.16x", 0x000002, 0x400000, CRC(5275a629) SHA1(16fadef06975f0f3625cac8f84e2e77ed7d75e15) )
|
||||
|
||||
ROM_REGION(0x80000, "audiocpu", 0) // 68k program roms
|
||||
ROM_LOAD16_WORD_SWAP( "713a08.7s", 0x000000, 0x080000, CRC(6a72a825) SHA1(abeac99c5343efacabcb0cdff6d34f9f967024db) )
|
||||
|
||||
ROM_REGION16_LE(0x1000000, "rfsnd", 0) // PCM sample roms
|
||||
ROM_LOAD( "713a09.16p", 0x000000, 0x400000, CRC(058f250a) SHA1(63b8e60004ec49009633e86b4992c00083def9a8) )
|
||||
ROM_LOAD( "713a10.14p", 0x400000, 0x400000, CRC(27f9833e) SHA1(1540f00d2571ecb81b914c553682b67fca94bbbd) )
|
||||
|
||||
ROM_REGION( 0x000224, "gn676_lan:eeprom", 0)
|
||||
ROM_LOAD( "gc713ab.2g", 0x000000, 0x000224, BAD_DUMP CRC(f1c26d7d) SHA1(2a3f45d18bc8e9278d077118d478a501531011f4) ) // hand built
|
||||
|
||||
ROM_REGION(0x2000, "m48t58", 0)
|
||||
ROM_LOAD( "gm676aa_m48t58y.35d", 0x000000, 0x002000, BAD_DUMP CRC(c011dcea) SHA1(39cbbe518bfc256cdb72bdaece03c539f705c807) ) // hand built
|
||||
ROM_END
|
||||
|
||||
} // Anonymous namespace
|
||||
@ -966,11 +1349,35 @@ ROM_END
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
#define GAME_FLAGS (MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NODEVICE_LAN )
|
||||
#define GAME_FLAGS (MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
|
||||
|
||||
GAME( 1998, racingj, 0, nwktr, nwktr, nwktr_state, init_racingj, ROT0, "Konami", "Racing Jam (JAC)", GAME_FLAGS )
|
||||
GAME( 1998, racingj2, racingj, nwktr, nwktr, nwktr_state, init_racingj, ROT0, "Konami", "Racing Jam: Chapter 2 (EAE)", GAME_FLAGS )
|
||||
GAME( 1998, racingj2j, racingj, nwktr, nwktr, nwktr_state, init_racingj, ROT0, "Konami", "Racing Jam: Chapter 2 (JAE)", GAME_FLAGS )
|
||||
GAME( 1998, thrilld, 0, thrilld, nwktr, nwktr_state, init_thrilld, ROT0, "Konami", "Thrill Drive (JAE)", GAME_FLAGS )
|
||||
GAME( 1998, thrilldb, thrilld, thrilld, nwktr, nwktr_state, init_thrilld, ROT0, "Konami", "Thrill Drive (JAB)", GAME_FLAGS )
|
||||
GAME( 1998, thrilldbe, thrilld, thrilld, nwktr, nwktr_state, init_thrilld, ROT0, "Konami", "Thrill Drive (EAB)", GAME_FLAGS )
|
||||
// GYxxx, GNxxx -> 5+R gear shift, clutch pedal, left/right panel buttons, hand brake lever
|
||||
// GPxxx, GExxx, GMxxx -> up/down gear shift, no left or right panel buttons, no clutch, hand brake lever
|
||||
// GQxxx -> up/down gear shift, no left or right panel buttons, no clutch, no hand brake lever
|
||||
// GQ picked because it uses the least number of devices that need to be emulated for controls and boots without device errors.
|
||||
// Change the first two bytes in the NVRAM and fix the checksum at 0x0e-0x0f (calculated as the negated sum of 0x00-0x0e as 16-bit big endian values)
|
||||
// to generate new NVRAMs in the future when more of the hardware is emulated.
|
||||
GAME( 1998, racingj, 0, nwktr, nwktr, nwktr_state, init_racingj, ROT0, "Konami", "Racing Jam (GQ676UAC)", GAME_FLAGS )
|
||||
GAME( 1998, racingje, racingj, nwktr, nwktr, nwktr_state, init_racingj, ROT0, "Konami", "Racing Jam (GQ676EAC)", GAME_FLAGS )
|
||||
GAME( 1998, racingjj, racingj, nwktr, nwktr, nwktr_state, init_racingj, ROT0, "Konami", "Racing Jam (GQ676JAC)", GAME_FLAGS )
|
||||
GAME( 1998, racingja, racingj, nwktr, nwktr, nwktr_state, init_racingj, ROT0, "Konami", "Racing Jam (GQ676AAC)", GAME_FLAGS )
|
||||
GAME( 1998, racingj2, racingj, nwktr_lan_b, nwktr, nwktr_state, init_racingj, ROT0, "Konami", "Racing Jam: Chapter 2 (GQ888UAA)", GAME_FLAGS )
|
||||
GAME( 1998, racingj2e, racingj, nwktr_lan_b, nwktr, nwktr_state, init_racingj, ROT0, "Konami", "Racing Jam: Chapter 2 (GQ888EAA)", GAME_FLAGS )
|
||||
GAME( 1998, racingj2j, racingj, nwktr_lan_b, nwktr, nwktr_state, init_racingj, ROT0, "Konami", "Racing Jam: Chapter 2 (GQ888JAA)", GAME_FLAGS )
|
||||
GAME( 1998, racingj2a, racingj, nwktr_lan_b, nwktr, nwktr_state, init_racingj, ROT0, "Konami", "Racing Jam: Chapter 2 (GQ888AAA)", GAME_FLAGS )
|
||||
|
||||
// JAx and ABx revisions are for the DX cabinet type with a full 5+R type gear shifter and a clutch pedal.
|
||||
// The EDx version asks you to select if you have a hand brake lever installed, a clutch pedal installed,
|
||||
// gear shifter type (up/down, 4 pos, or 5+R), and gear shifter's display position.
|
||||
GAME( 1998, thrilld, 0, nwktr_lan_b, nwktr, nwktr_state, init_thrilld, ROT0, "Konami", "Thrill Drive (UDE)", GAME_FLAGS )
|
||||
GAME( 1998, thrilldj, thrilld, nwktr_lan_b, nwktr, nwktr_state, init_thrilld, ROT0, "Konami", "Thrill Drive (JCE)", GAME_FLAGS )
|
||||
GAME( 1998, thrilldja, thrilld, nwktr_lan_b, nwktr, nwktr_state, init_thrilld, ROT0, "Konami", "Thrill Drive (JAE)", GAME_FLAGS )
|
||||
GAME( 1998, thrillde, thrilld, nwktr_lan_b, nwktr, nwktr_state, init_thrilld, ROT0, "Konami", "Thrill Drive (EDE)", GAME_FLAGS )
|
||||
GAME( 1998, thrillda, thrilld, nwktr_lan_b, nwktr, nwktr_state, init_thrilld, ROT0, "Konami", "Thrill Drive (ACE)", GAME_FLAGS )
|
||||
GAME( 1998, thrilldab, thrilld, nwktr_lan_b, nwktr, nwktr_state, init_thrilld, ROT0, "Konami", "Thrill Drive (ABE)", GAME_FLAGS )
|
||||
GAME( 1998, thrilldb, thrilld, nwktr_lan_b, nwktr, nwktr_state, init_thrilld, ROT0, "Konami", "Thrill Drive (UDB)", GAME_FLAGS )
|
||||
GAME( 1998, thrilldbj, thrilld, nwktr_lan_b, nwktr, nwktr_state, init_thrilld, ROT0, "Konami", "Thrill Drive (JCB)", GAME_FLAGS )
|
||||
GAME( 1998, thrilldbja, thrilld, nwktr_lan_b, nwktr, nwktr_state, init_thrilld, ROT0, "Konami", "Thrill Drive (JAB)", GAME_FLAGS )
|
||||
GAME( 1998, thrilldbe, thrilld, nwktr_lan_b, nwktr, nwktr_state, init_thrilld, ROT0, "Konami", "Thrill Drive (EDB)", GAME_FLAGS )
|
||||
GAME( 1998, thrilldba, thrilld, nwktr_lan_b, nwktr, nwktr_state, init_thrilld, ROT0, "Konami", "Thrill Drive (ACB)", GAME_FLAGS )
|
||||
GAME( 1998, thrilldbab, thrilld, nwktr_lan_b, nwktr, nwktr_state, init_thrilld, ROT0, "Konami", "Thrill Drive (ABB)", GAME_FLAGS )
|
||||
|
@ -17192,7 +17192,14 @@ terabrstaa // GX715 (c)1998 Asia HAA 1998/02/25
|
||||
terabrstj // GX715 (c)1998 Japan JEL 1998/07/17
|
||||
terabrstja // GX715 (c)1998 Japan JAA 1998/02/25
|
||||
terabrstua // GX715 (c)1998 USA UAA 1998/02/25
|
||||
thrilldbu // GE713UF (c)1998 ?AB
|
||||
thrilldgej // GE713JA (c)1998 GE713JAB
|
||||
thrilldgeu // GE713UF (c)1998 GE713UFB
|
||||
thrilldgke // GK713EA (c)1998 GK713EAB
|
||||
thrilldgkee // GK713EE (c)1998 GK713EEB
|
||||
thrilldgkk // GK713K* (c)1998 GK713K*B
|
||||
thrilldgmj // GM713JA (c)1998 GM713JAB
|
||||
thrilldgnj // GN713JA (c)1998 GN713JAB
|
||||
thrilldgpj // GP713JA (c)1998 GP713JAB
|
||||
|
||||
@source:misc/hotblock.cpp
|
||||
hotblock // (c) 1993 Nics? / NIX?
|
||||
@ -34154,12 +34161,26 @@ nss_ssoc // 1992 Human Inc.
|
||||
nss_sten // 199? Nintendo
|
||||
|
||||
@source:konami/nwk-tr.cpp
|
||||
racingj // GX676 (c)1998
|
||||
racingj2 // GX888 (c)1999 (EAE)
|
||||
racingj2j // GX888 (c)1999 (JAE)
|
||||
thrilld // GX713 (c)1998 Japan JAE
|
||||
thrilldb // GX713 (c)1998 Japan JAB
|
||||
thrilldbe // GX713 (c)1998 Europe EAB
|
||||
racingj // GQ676 (c)1998 (UAC)
|
||||
racingj2 // GQ888 (c)1999 (UAA)
|
||||
racingj2a // GQ888 (c)1999 (AAA)
|
||||
racingj2e // GQ888 (c)1999 (EAA)
|
||||
racingj2j // GQ888 (c)1999 (JAA)
|
||||
racingja // GQ676 (c)1998 (AAC)
|
||||
racingje // GQ676 (c)1998 (EAC)
|
||||
racingjj // GQ676 (c)1998 (JAC)
|
||||
thrilld // GC713 (c)1998 Japan UDE
|
||||
thrillda // GC713 (c)1998 Japan ACE
|
||||
thrilldab // GC713 (c)1998 Japan ABE
|
||||
thrilldb // GC713 (c)1998 Japan UDB
|
||||
thrilldba // GC713 (c)1998 Japan ACB
|
||||
thrilldbab // GC713 (c)1998 Japan ABB
|
||||
thrilldbe // GC713 (c)1998 Japan EDB
|
||||
thrilldbj // GC713 (c)1998 Japan JCB
|
||||
thrilldbja // GC713 (c)1998 Japan JAB
|
||||
thrillde // GC713 (c)1998 Japan EDE
|
||||
thrilldj // GC713 (c)1998 Japan JCE
|
||||
thrilldja // GC713 (c)1998 Japan JAE
|
||||
|
||||
@source:taito/nycaptor.cpp
|
||||
bronx // bootleg
|
||||
|
Loading…
Reference in New Issue
Block a user