summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author 987123879113 <63495610+987123879113@users.noreply.github.com>2022-12-01 02:17:55 +0900
committer GitHub <noreply@github.com>2022-12-01 04:17:55 +1100
commitda98221377344818ae38f9fc857c1a60bebb6a9c (patch)
tree3868a84458293054f22f1ed3320a742d38967655 /src
parent3941049b04b6f0105a7bd6e3e3df71ee10549ff8 (diff)
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]
Diffstat (limited to 'src')
-rw-r--r--src/mame/konami/hornet.cpp339
-rw-r--r--src/mame/konami/konami_gn676_lan.cpp398
-rw-r--r--src/mame/konami/konami_gn676_lan.h76
-rw-r--r--src/mame/konami/nwk-tr.cpp495
-rw-r--r--src/mame/mame.lst35
5 files changed, 1071 insertions, 272 deletions
diff --git a/src/mame/konami/hornet.cpp b/src/mame/konami/hornet.cpp
index 74e28975838..69bc0f235ab 100644
--- a/src/mame/konami/hornet.cpp
+++ b/src/mame/konami/hornet.cpp
@@ -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,134 @@ 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)
+
+ 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( "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)
@@ -3228,10 +3355,59 @@ 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( "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 )
diff --git a/src/mame/konami/konami_gn676_lan.cpp b/src/mame/konami/konami_gn676_lan.cpp
index bea557772fa..aa588c911d3 100644
--- a/src/mame/konami/konami_gn676_lan.cpp
+++ b/src/mame/konami/konami_gn676_lan.cpp
@@ -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")
+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 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)
+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)
+{
+}
+
+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)
{
- std::fill(std::begin(m_lanc2_reg), std::end(m_lanc2_reg), 0);
}
+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);
}
+void konami_gn676_lan_device::device_reset()
+{
+ std::fill_n(m_lanc2_ram.get(), 0x8000, 0);
+ m_fpga_reset_state = true;
+ reset_fpga_state(false);
+}
-uint32_t konami_gn676_lan_device::lanc1_r(offs_t offset)
+uint8_t konami_gn676_lan_device::lanc1_r(offs_t offset)
{
- switch (offset)
- {
- case 0x40/4:
- {
- uint32_t r = 0;
-
- r |= (m_fpga_uploaded) ? (1 << 6) : 0;
- r |= 1 << 5;
+ uint8_t r = 0xff;
- return (r) << 24;
- }
+ if (offset == 0x40)
+ {
+ r = (m_fpga_receiving << 6) | (m_fpga_waiting_firmware << 5);
- default:
- {
- LOG("lanc1_r: %08X at %08X\n", offset, machine().describe_context());
- return 0xffffffff;
- }
+ // racingj/racingj2 polls expecting to see bit 5 set and bit 6 unset before
+ // it'll start uploading the firmware, so only set it after being polled.
+ m_fpga_receiving = true;
}
-}
-void konami_gn676_lan_device::lanc1_w(offs_t offset, uint32_t data, uint32_t mem_mask)
-{
- LOG("lanc1_w: %08X, %08X, %08X at %08X\n", data, offset, mem_mask, machine().describe_context());
+ LOG("%s: lanc1_r: read %02X from %08X\n", tag(), r, offset, machine().describe_context());
+
+ return r;
}
-uint32_t konami_gn676_lan_device::lanc2_r(offs_t offset, uint32_t mem_mask)
+void konami_gn676_lan_device::lanc1_w(offs_t offset, uint8_t data)
{
- uint32_t r = 0;
+ LOG("%s: lanc1_w: wrote %02X to %08X\n", machine().describe_context(), data, offset);
- if (offset == 0)
+ if (offset == 0x20)
{
- if (ACCESSING_BITS_0_7)
+ if (BIT(data, 7))
{
- r |= m_lanc2_ram[m_lanc2_ram_r & 0x7fff];
- m_lanc2_ram_r++;
- }
- else
- {
- r |= 0xffffff00;
+ m_fpga_uploaded = true;
+ m_fpga_waiting_firmware = false;
+ m_fpga_receiving = false;
+ m_fpga_firmware_crc = util::crc32_creator::simple(m_lanc2_ram.get(), m_fpga_firmware_size);
+
+ LOG("%s: lanc1_fpga: Found firmware with hash of %08x\n", tag(), m_fpga_firmware_crc, machine().describe_context());
+
+ m_x76f041_enabled = m_fpga_firmware_crc == 0xa8c97a75 || m_fpga_firmware_crc == 0xdfc74cc9 || m_fpga_firmware_crc == 0x93b86e35;
+ m_fpga_is_stubbed = m_fpga_firmware_crc == 0x3760e3ce;
+
+ if (DUMP_FIRMWARE)
+ {
+ // DEBUG: Dump firmware for quick comparison
+ FILE *f = fopen(util::string_format("firmware_%08x.bin", m_fpga_firmware_crc).c_str(), "wb");
+ if (f)
+ {
+ fwrite(m_lanc2_ram.get(), 1, m_fpga_firmware_size, f);
+ fclose(f);
+ }
+ }
+
+ std::fill_n(m_lanc2_ram.get(), 0x8000, 0);
}
}
- else if (offset == 1)
- {
- r |= 0x00005555; // set all other machines as disconnected
- }
- else if (offset == 3)
+}
+
+uint8_t konami_gn676_lan_device::lanc2_r(offs_t offset)
+{
+ if (m_fpga_waiting_firmware)
{
- r |= 0xffffffff;
+ if (offset == 0)
+ return 0x80; // Required to be set for firmware to be written
+ return 0;
}
- else if (offset == 4)
+
+ uint8_t r = m_lanc2_reg[offset];
+ switch (offset)
{
- if (ACCESSING_BITS_24_31)
+ 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:
{
- r |= 0x00000000;
+ // 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("lanc2_r: %08X, %08X at %08X\n", offset, mem_mask, machine().describe_context());
+ 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, uint32_t data, uint32_t mem_mask)
+void konami_gn676_lan_device::lanc2_w(offs_t offset, uint8_t data)
{
- if (offset == 0)
+ if (m_fpga_waiting_firmware)
{
- if (ACCESSING_BITS_24_31)
- {
- uint8_t value = data >> 24;
-
- value = ((value >> 7) & 0x01) |
- ((value >> 5) & 0x02) |
- ((value >> 3) & 0x04) |
- ((value >> 1) & 0x08) |
- ((value << 1) & 0x10) |
- ((value << 3) & 0x20) |
- ((value << 5) & 0x40) |
- ((value << 7) & 0x80);
+ if (offset == 0)
+ m_lanc2_ram[m_fpga_firmware_size++] = data;
+ return;
+ }
- m_fpga_uploaded = true;
- m_lanc2_reg[0] = (uint8_t)(data >> 24);
+ LOG("%s: lanc2_w: wrote %02X to %08X\n", tag(), data, offset, machine().describe_context());
- 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);
+ m_lanc2_reg[offset] = data;
- if (data & 0x1000)
- {
- // send out frame for this machine
- }
- else
+ 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)
{
- // 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++)
+ /*
+ 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)
{
- m_lanc2_ram[j] = 0xff;
+ 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));
}
}
- }
- if (ACCESSING_BITS_16_23)
- {
- m_lanc2_reg[2] = (uint8_t)(data >> 16);
- }
- if (ACCESSING_BITS_0_7)
- {
- m_lanc2_ram[m_lanc2_ram_w & 0x7fff] = data & 0xff;
- m_lanc2_ram_w++;
- }
- }
- if (offset == 4) // only type B has the chip at 2G
- {
- // TODO: HACK! The data below would normally be present on the serialflash at 2G.
+ break;
- 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
- }
+ 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;
- LOG("lanc2_w: %08X, %08X, %08X at %08X\n", data, offset, mem_mask, machine().describe_context());
+ 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);
}
diff --git a/src/mame/konami/konami_gn676_lan.h b/src/mame/konami/konami_gn676_lan.h
index 604aec9ed24..043716305b9 100644
--- a/src/mame/konami/konami_gn676_lan.h
+++ b/src/mame/konami/konami_gn676_lan.h
@@ -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);
+
+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_MACHINE_KONAMI_GN676_LAN_H
+#endif // MAME_KONAMI_GN676_LAN_H
diff --git a/src/mame/konami/nwk-tr.cpp b/src/mame/konami/nwk-tr.cpp
index ae40c718306..36d23cd68bf 100644
--- a/src/mame/konami/nwk-tr.cpp
+++ b/src/mame/konami/nwk-tr.cpp
@@ -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( "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( "676eae_m48t58y.35d", 0x000000, 0x002000, CRC(f691f5ab) SHA1(e81f652c5caa2caa8bd1c6d6db488d849bda058e) )
+ 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( "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( "676jae_m48t58y.35d", 0x000000, 0x002000, CRC(1aa43a1f) SHA1(814b691b8a358bf1545a13d595d17070e612e9a4) )
+ 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( "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( "713jae_m48t58y.35d", 0x000000, 0x002000, CRC(5d8fbcb2) SHA1(74ad91544d2a200cf599a565005476623075e7d6) )
+ 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,60 @@ 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) )
+
+ 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( "gc713ud.2g", 0x000000, 0x000224, BAD_DUMP CRC(fc9563f5) SHA1(1ed08482024f6d4353d4e4ea6c8092f6625d699b) ) // hand built
+
+ 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) )
@@ -928,11 +1259,11 @@ 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( "gc713ja.2g", 0x000000, 0x000224, BAD_DUMP CRC(600e21e1) SHA1(ca7b30ed4b564aee17a326d1d9729656b5101249) ) // 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( "gm676ja_m48t58y.35d", 0x000000, 0x002000, BAD_DUMP CRC(e6eafce5) SHA1(167d957f7cf1e94a12070739a4103977512f6737) ) // hand built
ROM_END
ROM_START(thrilldbe)
@@ -944,8 +1275,60 @@ 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) )
+
+ 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(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) )
@@ -954,11 +1337,11 @@ 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( "gc713ab.2g", 0x000000, 0x000224, BAD_DUMP CRC(f1c26d7d) SHA1(2a3f45d18bc8e9278d077118d478a501531011f4) ) // 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( "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 )
-
-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 )
+#define GAME_FLAGS (MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+
+// 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 )
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 453e18eadc4..0cccbcfff79 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -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