diff options
author | 2022-12-01 02:17:55 +0900 | |
---|---|---|
committer | 2022-12-01 04:17:55 +1100 | |
commit | da98221377344818ae38f9fc857c1a60bebb6a9c (patch) | |
tree | 3868a84458293054f22f1ed3320a742d38967655 | |
parent | 3941049b04b6f0105a7bd6e3e3df71ee10549ff8 (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]
-rw-r--r-- | src/mame/konami/hornet.cpp | 339 | ||||
-rw-r--r-- | src/mame/konami/konami_gn676_lan.cpp | 398 | ||||
-rw-r--r-- | src/mame/konami/konami_gn676_lan.h | 76 | ||||
-rw-r--r-- | src/mame/konami/nwk-tr.cpp | 495 | ||||
-rw-r--r-- | src/mame/mame.lst | 35 |
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 |