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:
987123879113 2022-12-01 02:17:55 +09:00 committed by GitHub
parent 3941049b04
commit da98221377
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 1083 additions and 284 deletions

View File

@ -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)
@ -1394,7 +1401,7 @@ ROM_START(sscope)
ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ua", 0x000000, 0x002000, BAD_DUMP CRC(458900fb) SHA1(ae2f5477e3999ecce5199fc4a53c5ddf78c4406d) ) // hand built
ROM_END
@ -1416,7 +1423,7 @@ ROM_START(sscopee)
ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ea", 0x000000, 0x002000, BAD_DUMP CRC(7d94272c) SHA1(ef0b3e5d4fcf3cec71caa8e48776f71f850f3b09) ) // hand built
ROM_END
@ -1438,7 +1445,7 @@ ROM_START(sscopea)
ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_aa", 0x000000, 0x002000, BAD_DUMP CRC(e8f7ac69) SHA1(93df4d8cc6ae376460873e4f3a95dc3921e5690e) ) // hand built
ROM_END
@ -1460,7 +1467,7 @@ ROM_START(sscopeuc)
ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ua", 0x000000, 0x002000, BAD_DUMP CRC(458900fb) SHA1(ae2f5477e3999ecce5199fc4a53c5ddf78c4406d) ) // hand built
ROM_END
@ -1482,7 +1489,7 @@ ROM_START(sscopeec)
ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ea", 0x000000, 0x002000, BAD_DUMP CRC(7d94272c) SHA1(ef0b3e5d4fcf3cec71caa8e48776f71f850f3b09) ) // hand built
ROM_END
@ -1504,7 +1511,7 @@ ROM_START(sscopeac)
ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_aa", 0x000000, 0x002000, BAD_DUMP CRC(e8f7ac69) SHA1(93df4d8cc6ae376460873e4f3a95dc3921e5690e) ) // hand built
ROM_END
@ -1526,7 +1533,7 @@ ROM_START(sscopeub)
ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ua", 0x000000, 0x002000, BAD_DUMP CRC(458900fb) SHA1(ae2f5477e3999ecce5199fc4a53c5ddf78c4406d) ) // hand built
ROM_END
@ -1548,7 +1555,7 @@ ROM_START(sscopeeb)
ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ea", 0x000000, 0x002000, BAD_DUMP CRC(7d94272c) SHA1(ef0b3e5d4fcf3cec71caa8e48776f71f850f3b09) ) // hand built
ROM_END
@ -1570,7 +1577,7 @@ ROM_START(sscopejb)
ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ja", 0x000000, 0x002000, BAD_DUMP CRC(325465c5) SHA1(24524a8eed8f0aa45881bddf65a8fa8ba5270eb1) ) // hand built
ROM_END
@ -1592,7 +1599,7 @@ ROM_START(sscopeab)
ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_aa", 0x000000, 0x002000, BAD_DUMP CRC(e8f7ac69) SHA1(93df4d8cc6ae376460873e4f3a95dc3921e5690e) ) // hand built
ROM_END
@ -1614,7 +1621,7 @@ ROM_START(sscopeua)
ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ua", 0x000000, 0x002000, BAD_DUMP CRC(458900fb) SHA1(ae2f5477e3999ecce5199fc4a53c5ddf78c4406d) ) // hand built
ROM_END
@ -1636,7 +1643,7 @@ ROM_START(sscopeea)
ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ea", 0x000000, 0x002000, BAD_DUMP CRC(7d94272c) SHA1(ef0b3e5d4fcf3cec71caa8e48776f71f850f3b09) ) // hand built
ROM_END
@ -1658,7 +1665,7 @@ ROM_START(sscopeja)
ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ja", 0x000000, 0x002000, BAD_DUMP CRC(325465c5) SHA1(24524a8eed8f0aa45881bddf65a8fa8ba5270eb1) ) // hand built
ROM_END
@ -1680,7 +1687,7 @@ ROM_START(sscopeaa)
ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_aa", 0x000000, 0x002000, BAD_DUMP CRC(e8f7ac69) SHA1(93df4d8cc6ae376460873e4f3a95dc3921e5690e) ) // hand built
ROM_END
@ -1702,7 +1709,7 @@ ROM_START(sscopevd2)
ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ua", 0x000000, 0x002000, BAD_DUMP CRC(458900fb) SHA1(ae2f5477e3999ecce5199fc4a53c5ddf78c4406d) ) // hand built
ROM_END
@ -1724,7 +1731,7 @@ ROM_START(sscopeevd2)
ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ea", 0x000000, 0x002000, BAD_DUMP CRC(7d94272c) SHA1(ef0b3e5d4fcf3cec71caa8e48776f71f850f3b09) ) // hand built
ROM_END
@ -1746,7 +1753,7 @@ ROM_START(sscopeavd2)
ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_aa", 0x000000, 0x002000, BAD_DUMP CRC(e8f7ac69) SHA1(93df4d8cc6ae376460873e4f3a95dc3921e5690e) ) // hand built
ROM_END
@ -1768,7 +1775,7 @@ ROM_START(sscopeucvd2)
ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ua", 0x000000, 0x002000, BAD_DUMP CRC(458900fb) SHA1(ae2f5477e3999ecce5199fc4a53c5ddf78c4406d) ) // hand built
ROM_END
@ -1790,7 +1797,7 @@ ROM_START(sscopeecvd2)
ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ea", 0x000000, 0x002000, BAD_DUMP CRC(7d94272c) SHA1(ef0b3e5d4fcf3cec71caa8e48776f71f850f3b09) ) // hand built
ROM_END
@ -1812,7 +1819,7 @@ ROM_START(sscopeacvd2)
ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_aa", 0x000000, 0x002000, BAD_DUMP CRC(e8f7ac69) SHA1(93df4d8cc6ae376460873e4f3a95dc3921e5690e) ) // hand built
ROM_END
@ -1834,7 +1841,7 @@ ROM_START(sscopeubvd2)
ROM_LOAD( "830a09.16p", 0x000000, 0x400000, CRC(e4b9f305) SHA1(ce2c6f63bdc9374dde48d8359102b57e48b4fdeb) )
ROM_LOAD( "830a10.14p", 0x400000, 0x400000, CRC(8b8aaf7e) SHA1(49b694dc171c149056b87c15410a6bf37ff2987f) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ua", 0x000000, 0x002000, BAD_DUMP CRC(458900fb) SHA1(ae2f5477e3999ecce5199fc4a53c5ddf78c4406d) ) // hand built
ROM_END
@ -1860,7 +1867,7 @@ ROM_START(sscope2)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, CRC(f7c40218) SHA1(5021089803024a6f552e5c9d42b905e804b9d904) )
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -1892,7 +1899,7 @@ ROM_START(sscope2e)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ea", 0x000000, 0x002000, BAD_DUMP CRC(832f9148) SHA1(42a8cc9436eaa79b5bab242692e18c3807f6af74) ) // hand built
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -1924,7 +1931,7 @@ ROM_START(sscope2j)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ja", 0x000000, 0x002000, BAD_DUMP CRC(d16ac629) SHA1(92c65a67ef201912e4f81d896126b045c5cc2072) ) // hand built
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -1956,7 +1963,7 @@ ROM_START(sscope2a)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_aa", 0x000000, 0x002000, BAD_DUMP CRC(164c1a0d) SHA1(9f7e6cc1acae114aa97d9ed435661bf9c8b845c5) ) // hand built
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -1988,7 +1995,7 @@ ROM_START(sscope2uc)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, CRC(f7c40218) SHA1(5021089803024a6f552e5c9d42b905e804b9d904) )
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -2020,7 +2027,7 @@ ROM_START(sscope2ec)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ea", 0x000000, 0x002000, BAD_DUMP CRC(832f9148) SHA1(42a8cc9436eaa79b5bab242692e18c3807f6af74) ) // hand built
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -2052,7 +2059,7 @@ ROM_START(sscope2jc)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ja", 0x000000, 0x002000, BAD_DUMP CRC(d16ac629) SHA1(92c65a67ef201912e4f81d896126b045c5cc2072) ) // hand built
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -2084,7 +2091,7 @@ ROM_START(sscope2ac)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_aa", 0x000000, 0x002000, BAD_DUMP CRC(164c1a0d) SHA1(9f7e6cc1acae114aa97d9ed435661bf9c8b845c5) ) // hand built
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -2116,7 +2123,7 @@ ROM_START(sscope2ub)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, CRC(f7c40218) SHA1(5021089803024a6f552e5c9d42b905e804b9d904) )
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -2148,7 +2155,7 @@ ROM_START(sscope2eb)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ea", 0x000000, 0x002000, BAD_DUMP CRC(832f9148) SHA1(42a8cc9436eaa79b5bab242692e18c3807f6af74) ) // hand built
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -2180,7 +2187,7 @@ ROM_START(sscope2jb)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ja", 0x000000, 0x002000, BAD_DUMP CRC(d16ac629) SHA1(92c65a67ef201912e4f81d896126b045c5cc2072) ) // hand built
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -2212,7 +2219,7 @@ ROM_START(sscope2ab)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_aa", 0x000000, 0x002000, BAD_DUMP CRC(164c1a0d) SHA1(9f7e6cc1acae114aa97d9ed435661bf9c8b845c5) ) // hand built
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -2244,7 +2251,7 @@ ROM_START(sscope2vd1)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, CRC(f7c40218) SHA1(5021089803024a6f552e5c9d42b905e804b9d904) )
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -2276,7 +2283,7 @@ ROM_START(sscope2evd1)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ea", 0x000000, 0x002000, BAD_DUMP CRC(832f9148) SHA1(42a8cc9436eaa79b5bab242692e18c3807f6af74) ) // hand built
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -2308,7 +2315,7 @@ ROM_START(sscope2jvd1)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ja", 0x000000, 0x002000, BAD_DUMP CRC(d16ac629) SHA1(92c65a67ef201912e4f81d896126b045c5cc2072) ) // hand built
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -2340,7 +2347,7 @@ ROM_START(sscope2avd1)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_aa", 0x000000, 0x002000, BAD_DUMP CRC(164c1a0d) SHA1(9f7e6cc1acae114aa97d9ed435661bf9c8b845c5) ) // hand built
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -2372,7 +2379,7 @@ ROM_START(sscope2ucvd1)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, CRC(f7c40218) SHA1(5021089803024a6f552e5c9d42b905e804b9d904) )
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -2404,7 +2411,7 @@ ROM_START(sscope2ecvd1)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ea", 0x000000, 0x002000, BAD_DUMP CRC(832f9148) SHA1(42a8cc9436eaa79b5bab242692e18c3807f6af74) ) // hand built
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -2436,7 +2443,7 @@ ROM_START(sscope2jcvd1)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ja", 0x000000, 0x002000, BAD_DUMP CRC(d16ac629) SHA1(92c65a67ef201912e4f81d896126b045c5cc2072) ) // hand built
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -2468,7 +2475,7 @@ ROM_START(sscope2acvd1)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_aa", 0x000000, 0x002000, BAD_DUMP CRC(164c1a0d) SHA1(9f7e6cc1acae114aa97d9ed435661bf9c8b845c5) ) // hand built
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -2500,7 +2507,7 @@ ROM_START(sscope2ubvd1)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, CRC(f7c40218) SHA1(5021089803024a6f552e5c9d42b905e804b9d904) )
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -2532,7 +2539,7 @@ ROM_START(sscope2ebvd1)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ea", 0x000000, 0x002000, BAD_DUMP CRC(832f9148) SHA1(42a8cc9436eaa79b5bab242692e18c3807f6af74) ) // hand built
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -2564,7 +2571,7 @@ ROM_START(sscope2jbvd1)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_ja", 0x000000, 0x002000, BAD_DUMP CRC(d16ac629) SHA1(92c65a67ef201912e4f81d896126b045c5cc2072) ) // hand built
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -2596,7 +2603,7 @@ ROM_START(sscope2abvd1)
ROM_LOAD( "931a10.14p", 0x400000, 0x400000, CRC(78ceb519) SHA1(e61c0d21b6dc37a9293e72814474f5aee59115ad) )
ROM_LOAD( "931a11.12p", 0x800000, 0x400000, CRC(9c8362b2) SHA1(a8158c4db386e2bbd61dc9a600720f07a1eba294) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_aa", 0x000000, 0x002000, BAD_DUMP CRC(164c1a0d) SHA1(9f7e6cc1acae114aa97d9ed435661bf9c8b845c5) ) // hand built
ROM_REGION(0x8, "lan_serial_id", 0) // LAN Board DS2401
@ -2628,7 +2635,7 @@ ROM_START(gradius4)
ROM_LOAD( "837a09.16p", 0x000000, 0x400000, CRC(fb8f3dc2) SHA1(69e314ac06308c5a24309abc3d7b05af6c0302a8) )
ROM_LOAD( "837a10.14p", 0x400000, 0x400000, CRC(1419cad2) SHA1(a6369a5c29813fa51e8246d0c091736f32994f3d) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_jac", 0x000000, 0x002000, BAD_DUMP CRC(935f9d05) SHA1(c3a787dff1b2ac4942858ffa1574405db01292b6) ) // hand built
ROM_REGION( 0x0000224, "security_eeprom", 0 )
@ -2657,7 +2664,7 @@ ROM_START(gradius4u)
ROM_LOAD( "837a09.16p", 0x000000, 0x400000, CRC(fb8f3dc2) SHA1(69e314ac06308c5a24309abc3d7b05af6c0302a8) )
ROM_LOAD( "837a10.14p", 0x400000, 0x400000, CRC(1419cad2) SHA1(a6369a5c29813fa51e8246d0c091736f32994f3d) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_uac", 0x000000, 0x002000, BAD_DUMP CRC(cc8986c1) SHA1(a32bc175acae48bede7a97629e215ab4fb6954c6) ) // hand built
ROM_REGION( 0x0000224, "security_eeprom", 0 )
@ -2686,7 +2693,7 @@ ROM_START(gradius4a)
ROM_LOAD( "837a09.16p", 0x000000, 0x400000, CRC(fb8f3dc2) SHA1(69e314ac06308c5a24309abc3d7b05af6c0302a8) )
ROM_LOAD( "837a10.14p", 0x400000, 0x400000, CRC(1419cad2) SHA1(a6369a5c29813fa51e8246d0c091736f32994f3d) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_aac", 0x000000, 0x002000, BAD_DUMP CRC(7977736d) SHA1(149ae7bc4987362f928a6c0c1e9671c2396ac811) ) // hand built
ROM_REGION( 0x0000224, "security_eeprom", 0 )
@ -2715,7 +2722,7 @@ ROM_START(gradius4ja)
ROM_LOAD( "837a09.16p", 0x000000, 0x400000, CRC(fb8f3dc2) SHA1(69e314ac06308c5a24309abc3d7b05af6c0302a8) )
ROM_LOAD( "837a10.14p", 0x400000, 0x400000, CRC(1419cad2) SHA1(a6369a5c29813fa51e8246d0c091736f32994f3d) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_jaa", 0x000000, 0x002000, BAD_DUMP CRC(264dc314) SHA1(1800b93063a6b3d424c329e124acc30814eb7ef0) ) // hand built
ROM_REGION( 0x0000224, "security_eeprom", 0 )
@ -2744,7 +2751,7 @@ ROM_START(gradius4ua)
ROM_LOAD( "837a09.16p", 0x000000, 0x400000, CRC(fb8f3dc2) SHA1(69e314ac06308c5a24309abc3d7b05af6c0302a8) )
ROM_LOAD( "837a10.14p", 0x400000, 0x400000, CRC(1419cad2) SHA1(a6369a5c29813fa51e8246d0c091736f32994f3d) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_uaa", 0x000000, 0x002000, BAD_DUMP CRC(799bd8d0) SHA1(c69b5bb99657c2fdb71049ba1db0075a024fe8ff) ) // hand built
ROM_REGION( 0x0000224, "security_eeprom", 0 )
@ -2773,7 +2780,7 @@ ROM_START(gradius4aa)
ROM_LOAD( "837a09.16p", 0x000000, 0x400000, CRC(fb8f3dc2) SHA1(69e314ac06308c5a24309abc3d7b05af6c0302a8) )
ROM_LOAD( "837a10.14p", 0x400000, 0x400000, CRC(1419cad2) SHA1(a6369a5c29813fa51e8246d0c091736f32994f3d) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_aaa", 0x000000, 0x002000, BAD_DUMP CRC(cc652d7c) SHA1(238086ba9eac26e6ae4217e085859e40f98a5050) ) // hand built
ROM_REGION( 0x0000224, "security_eeprom", 0 )
@ -2804,7 +2811,7 @@ ROM_START(nbapbp) // only the PowerPC program rom present in the archive
ROM_LOAD( "778a11.12p", 0x800000, 0x400000, CRC(40199382) SHA1(bee268adf9b6634a4f6bb39278ecd02f2bdcb1f4) )
ROM_LOAD( "778a12.9p", 0xc00000, 0x400000, CRC(27d0c724) SHA1(48e48cbaea6db0de8c3471a2eda6faaa16eed46e) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, BAD_DUMP CRC(3cff1b1d) SHA1(bed0fc657a785be0c69bb21ad52365635c83d751) ) // hand built
ROM_REGION( 0x0000224, "security_eeprom", 0 )
@ -2835,7 +2842,7 @@ ROM_START(nbapbpa) // only the PowerPC program rom present in the archive
ROM_LOAD( "778a11.12p", 0x800000, 0x400000, CRC(40199382) SHA1(bee268adf9b6634a4f6bb39278ecd02f2bdcb1f4) )
ROM_LOAD( "778a12.9p", 0xc00000, 0x400000, CRC(27d0c724) SHA1(48e48cbaea6db0de8c3471a2eda6faaa16eed46e) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, BAD_DUMP CRC(3cff1b1d) SHA1(bed0fc657a785be0c69bb21ad52365635c83d751) ) // hand built
ROM_REGION( 0x0000224, "security_eeprom", 0 )
@ -2866,7 +2873,7 @@ ROM_START(nbapbpj) // only the PowerPC program rom present in the archive
ROM_LOAD( "778a11.12p", 0x800000, 0x400000, CRC(40199382) SHA1(bee268adf9b6634a4f6bb39278ecd02f2bdcb1f4) )
ROM_LOAD( "778a12.9p", 0xc00000, 0x400000, CRC(27d0c724) SHA1(48e48cbaea6db0de8c3471a2eda6faaa16eed46e) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, BAD_DUMP CRC(3cff1b1d) SHA1(bed0fc657a785be0c69bb21ad52365635c83d751) ) // hand built
ROM_REGION( 0x0000224, "security_eeprom", 0 )
@ -2897,7 +2904,7 @@ ROM_START(nbapbpua)
ROM_LOAD( "778a11.12p", 0x800000, 0x400000, CRC(40199382) SHA1(bee268adf9b6634a4f6bb39278ecd02f2bdcb1f4) )
ROM_LOAD( "778a12.9p", 0xc00000, 0x400000, CRC(27d0c724) SHA1(48e48cbaea6db0de8c3471a2eda6faaa16eed46e) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, BAD_DUMP CRC(3cff1b1d) SHA1(bed0fc657a785be0c69bb21ad52365635c83d751) ) // hand built
ROM_REGION( 0x0000224, "security_eeprom", 0 )
@ -2928,7 +2935,7 @@ ROM_START(nbapbpaa)
ROM_LOAD( "778a11.12p", 0x800000, 0x400000, CRC(40199382) SHA1(bee268adf9b6634a4f6bb39278ecd02f2bdcb1f4) )
ROM_LOAD( "778a12.9p", 0xc00000, 0x400000, CRC(27d0c724) SHA1(48e48cbaea6db0de8c3471a2eda6faaa16eed46e) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, BAD_DUMP CRC(3cff1b1d) SHA1(bed0fc657a785be0c69bb21ad52365635c83d751) ) // hand built
ROM_REGION( 0x0000224, "security_eeprom", 0 )
@ -2959,7 +2966,7 @@ ROM_START(nbapbpja)
ROM_LOAD( "778a11.12p", 0x800000, 0x400000, CRC(40199382) SHA1(bee268adf9b6634a4f6bb39278ecd02f2bdcb1f4) )
ROM_LOAD( "778a12.9p", 0xc00000, 0x400000, CRC(27d0c724) SHA1(48e48cbaea6db0de8c3471a2eda6faaa16eed46e) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, BAD_DUMP CRC(3cff1b1d) SHA1(bed0fc657a785be0c69bb21ad52365635c83d751) ) // hand built
ROM_REGION( 0x0000224, "security_eeprom", 0 )
@ -2990,7 +2997,7 @@ ROM_START(nbaatw) // only the PowerPC program rom present in the archive
ROM_LOAD( "778a11.12p", 0x800000, 0x400000, CRC(40199382) SHA1(bee268adf9b6634a4f6bb39278ecd02f2bdcb1f4) )
ROM_LOAD( "778a12.9p", 0xc00000, 0x400000, CRC(27d0c724) SHA1(48e48cbaea6db0de8c3471a2eda6faaa16eed46e) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, BAD_DUMP CRC(3cff1b1d) SHA1(bed0fc657a785be0c69bb21ad52365635c83d751) ) // hand built
ROM_REGION( 0x0000224, "security_eeprom", 0 )
@ -3021,7 +3028,7 @@ ROM_START(nbaatwa)
ROM_LOAD( "778a11.12p", 0x800000, 0x400000, CRC(40199382) SHA1(bee268adf9b6634a4f6bb39278ecd02f2bdcb1f4) )
ROM_LOAD( "778a12.9p", 0xc00000, 0x400000, CRC(27d0c724) SHA1(48e48cbaea6db0de8c3471a2eda6faaa16eed46e) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1", 0x000000, 0x002000, BAD_DUMP CRC(3cff1b1d) SHA1(bed0fc657a785be0c69bb21ad52365635c83d751) ) // hand built
ROM_REGION( 0x0000224, "security_eeprom", 0 )
@ -3051,7 +3058,7 @@ ROM_START(terabrst)
ROM_REGION(0x20000, "gn680", 0) // 68K Program
ROM_LOAD16_WORD_SWAP( "715a17.20k", 0x000000, 0x020000, CRC(f0b7ba0c) SHA1(863b260824b0ae2f890ba84d1c9a8f436891b1ff) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "715uel_m48t58y.35d", 0x000000, 0x002000, CRC(57322db4) SHA1(59cb8cd6ab446bf8781e3dddf902a4ff2484068e) )
ROM_REGION( 0x0000224, "security_eeprom", 0 )
@ -3081,7 +3088,7 @@ ROM_START(terabrstj)
ROM_REGION(0x20000, "gn680", 0) // 68K Program
ROM_LOAD16_WORD_SWAP( "715a17.20k", 0x000000, 0x020000, CRC(f0b7ba0c) SHA1(863b260824b0ae2f890ba84d1c9a8f436891b1ff) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_jel", 0x000000, 0x002000, BAD_DUMP CRC(bcf8610f) SHA1(b52e4ca707cf36f16fb3ba29a8a8f5dc4a42be7b) ) // hand built
ROM_REGION( 0x0000224, "security_eeprom", 0 )
@ -3111,7 +3118,7 @@ ROM_START(terabrsta)
ROM_REGION(0x20000, "gn680", 0) // 68K Program
ROM_LOAD16_WORD_SWAP( "715a17.20k", 0x000000, 0x020000, CRC(f0b7ba0c) SHA1(863b260824b0ae2f890ba84d1c9a8f436891b1ff) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_hel", 0x000000, 0x002000, BAD_DUMP CRC(1bf1278d) SHA1(40d437eb7428a42c0d8eb47cbcebc95ff8dc1767) ) // hand built
ROM_REGION( 0x0000224, "security_eeprom", 0 )
@ -3141,7 +3148,7 @@ ROM_START(terabrstua)
ROM_REGION(0x20000, "gn680", 0) // 68K Program
ROM_LOAD16_WORD_SWAP( "715a17.20k", 0x000000, 0x020000, CRC(f0b7ba0c) SHA1(863b260824b0ae2f890ba84d1c9a8f436891b1ff) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_uaa", 0x000000, 0x002000, BAD_DUMP CRC(60509b6a) SHA1(5938587770bdf5569c8b4c7413967869bddfcf84) ) // hand built
ROM_REGION( 0x0000224, "security_eeprom", 0 )
@ -3171,7 +3178,7 @@ ROM_START(terabrstja)
ROM_REGION(0x20000, "gn680", 0) // 68K Program
ROM_LOAD16_WORD_SWAP( "715a17.20k", 0x000000, 0x020000, CRC(f0b7ba0c) SHA1(863b260824b0ae2f890ba84d1c9a8f436891b1ff) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_jaa", 0x000000, 0x002000, BAD_DUMP CRC(ac54bdf9) SHA1(0139d29db112f9581a94091c2fac008e5c9f855d) ) // hand built
ROM_REGION( 0x0000224, "security_eeprom", 0 )
@ -3201,14 +3208,14 @@ ROM_START(terabrstaa)
ROM_REGION(0x20000, "gn680", 0) // 68K Program
ROM_LOAD16_WORD_SWAP( "715a17.20k", 0x000000, 0x020000, CRC(f0b7ba0c) SHA1(863b260824b0ae2f890ba84d1c9a8f436891b1ff) )
ROM_REGION(0x2000, "m48t58",0)
ROM_REGION(0x2000, "m48t58", 0)
ROM_LOAD( "m48t58y-70pc1_haa", 0x000000, 0x002000, BAD_DUMP CRC(960b864e) SHA1(9f6d7b81689777b98c0e1b6ac41135604da48429) ) // hand built
ROM_REGION( 0x0000224, "security_eeprom", 0 )
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)
@ -3228,10 +3235,179 @@ ROM_START(thrilldbu) // GE713UF sticker, does not have the chip at 2G since it u
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( "713uab_m48t58y.35d", 0x000000, 0x002000, CRC(33a5250f) SHA1(3ffe2c812b341a9ed805c791c9dcfcb7587fbf3a) )
ROM_REGION(0x2000, "m48t58", 0)
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 )

View File

@ -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;
}
default:
{
LOG("lanc1_r: %08X at %08X\n", offset, machine().describe_context());
return 0xffffffff;
}
}
m_fpga_reset_state = true;
reset_fpga_state(false);
}
void konami_gn676_lan_device::lanc1_w(offs_t offset, uint32_t data, uint32_t mem_mask)
uint8_t konami_gn676_lan_device::lanc1_r(offs_t offset)
{
LOG("lanc1_w: %08X, %08X, %08X at %08X\n", data, offset, mem_mask, machine().describe_context());
}
uint8_t r = 0xff;
uint32_t konami_gn676_lan_device::lanc2_r(offs_t offset, uint32_t mem_mask)
{
uint32_t r = 0;
if (offset == 0x40)
{
r = (m_fpga_receiving << 6) | (m_fpga_waiting_firmware << 5);
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;
}
// 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;
}
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)
{
if (offset == 0)
LOG("%s: lanc1_w: wrote %02X to %08X\n", machine().describe_context(), data, offset);
if (offset == 0x20)
{
if (ACCESSING_BITS_24_31)
if (BIT(data, 7))
{
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);
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("lanc2_fpga_w: %02X at %08X\n", value, machine().describe_context());
}
if (ACCESSING_BITS_8_15)
{
m_lanc2_ram_r = 0;
m_lanc2_ram_w = 0;
m_lanc2_reg[1] = (uint8_t)(data >> 8);
LOG("%s: lanc1_fpga: Found firmware with hash of %08x\n", tag(), m_fpga_firmware_crc, machine().describe_context());
if (data & 0x1000)
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)
{
// send out frame for this machine
}
else
{
// read from other machines
//int machine_id = (m_lanc2_reg[2] >> 4) & 7;
//int self = m_lanc2_reg[2] & 1;
for (auto j = 0; j < 0x110; j++)
// DEBUG: Dump firmware for quick comparison
FILE *f = fopen(util::string_format("firmware_%08x.bin", m_fpga_firmware_crc).c_str(), "wb");
if (f)
{
m_lanc2_ram[j] = 0xff;
fwrite(m_lanc2_ram.get(), 1, m_fpga_firmware_size, f);
fclose(f);
}
}
}
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++;
std::fill_n(m_lanc2_ram.get(), 0x8000, 0);
}
}
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.
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
}
else if (strcmp(machine().system().name, "racingj2") == 0)
{
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
}
}
LOG("lanc2_w: %08X, %08X, %08X at %08X\n", data, offset, mem_mask, machine().describe_context());
}
uint8_t konami_gn676_lan_device::lanc2_r(offs_t offset)
{
if (m_fpga_waiting_firmware)
{
if (offset == 0)
return 0x80; // Required to be set for firmware to be written
return 0;
}
uint8_t r = m_lanc2_reg[offset];
switch (offset)
{
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
r = 0x55; // HACK: force clients to show as disconnected
break;
case 9:
{
// 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 (m_fpga_is_stubbed)
m_lanc2_reg[offset]++;
break;
}
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)
{
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;
}
}
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);
}

View File

@ -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
class konami_gn676_lan_device : public device_t
#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

View File

@ -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);
}
/*****************************************************************************/
@ -817,8 +823,89 @@ ROM_START(racingj)
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( "676jac_m48t58y.35d", 0x000000, 0x002000, CRC(47e1628c) SHA1(7c42d06ae2f2cd24d083890f333552cbf4f1d3c9) )
ROM_REGION(0x2000, "m48t58", 0)
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_REGION(0x2000, "m48t58", 0)
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_REGION(0x2000, "m48t58", 0)
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_REGION(0x2000, "m48t58", 0)
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)
@ -918,8 +1197,8 @@ ROM_START(thrilldb)
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_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) )
@ -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_REGION(0x2000, "m48t58", 0)
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)
@ -944,8 +1275,8 @@ ROM_START(thrilldbe)
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_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) )
@ -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_REGION(0x2000, "m48t58", 0)
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 )

View File

@ -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