Rename PartitionHeader -> BootHeader & various fixes

This commit is contained in:
2025-03-04 22:54:09 -07:00
parent 73eebfe90b
commit fb3542f445
22 changed files with 694 additions and 402 deletions

View File

@@ -16,6 +16,11 @@ categories = ["command-line-utilities", "parser-implementations"]
build = "build.rs"
[features]
default = ["compress-bzip2", "compress-lzma", "compress-zlib", "compress-zstd"]
compress-bzip2 = ["nod/compress-bzip2"]
compress-lzma = ["nod/compress-lzma"]
compress-zlib = ["nod/compress-zlib"]
compress-zstd = ["nod/compress-zstd"]
openssl = ["nod/openssl"]
openssl-vendored = ["nod/openssl-vendored"]
tracy = ["dep:tracing-tracy"]
@@ -28,7 +33,7 @@ enable-ansi-support = "0.2"
hex = { version = "0.4", features = ["serde"] }
indicatif = "0.17"
md-5 = { workspace = true }
nod = { version = "2.0.0-alpha", path = "../nod" }
nod = { version = "2.0.0-alpha", path = "../nod", default-features = false }
num_cpus = "1.16"
quick-xml = { version = "0.37", features = ["serialize"] }
serde = { version = "1.0", features = ["derive"] }

View File

@@ -5,7 +5,7 @@
<name>Non-Redump - Nintendo - Nintendo GameCube</name>
<description>Non-Redump - Nintendo - Nintendo GameCube</description>
<subset>Non-Redump</subset>
<version>20240602-041318</version>
<version>20240904-155318</version>
<author>bikerspade, Gefflon, Hiccup, NovaAurora, rarenight, relax, Seventy7, togemet2</author>
<homepage>No-Intro</homepage>
<url>https://www.no-intro.org</url>
@@ -94,12 +94,6 @@
<description>Major League Baseball 2K6 (USA) (Beta) (2006-05-18)</description>
<rom name="Major League Baseball 2K6 (USA) (Beta) (2006-05-18).iso" size="1459978240" crc="2e97a802" md5="707168f95134d4847278472b84c7657b" sha1="d18ee85aeb558bb7d357bd0fc2a6c6a4bda2467c" serial="G62ET2"/>
</game>
<game name="Mega Man X - Command Mission (USA) (Beta)" id="0038">
<category>Games</category>
<category>Preproduction</category>
<description>Mega Man X - Command Mission (USA) (Beta)</description>
<rom name="Mega Man X - Command Mission (USA) (Beta).iso" size="1459978240" crc="7b88690e" md5="801aeb70186915ac0a53494006ff74f8" sha1="24d72340954cd62e142a6d11a6582fc5f40ba994" sha256="de74aab25978ee3523e7de522d9da9e7f65690eb161094163d342c423d55d25c" serial="GXRE08"/>
</game>
<game name="Metal Gear Solid - The Twin Snakes (USA) (Disc 2) (Beta)" id="0014">
<description>Metal Gear Solid - The Twin Snakes (USA) (Disc 2) (Beta)</description>
<rom name="Metal Gear Solid - The Twin Snakes (USA) (Disc 2) (Beta).iso" size="1459978240" crc="85409e81" md5="ac1181d6223c1b82596b41ddac9e40e7" sha1="523b0e82b84c91946da05a48841914df6729e747" serial="GGSEA4"/>

View File

@@ -3,9 +3,9 @@
<datafile>
<header>
<name>Nintendo - GameCube</name>
<description>Nintendo - GameCube - Discs (1992) (2024-06-02 00-38-06)</description>
<version>2024-06-02 00-38-06</version>
<date>2024-06-02 00-38-06</date>
<description>Nintendo - GameCube - Discs (2001) (2024-12-01 23-54-46)</description>
<version>2024-12-01 23-54-46</version>
<date>2024-12-01 23-54-46</date>
<author>redump.org</author>
<homepage>redump.org</homepage>
<url>http://redump.org/</url>
@@ -2085,10 +2085,10 @@
<description>Nickelodeon Tak 2 - The Staff of Dreams (USA)</description>
<rom name="Nickelodeon Tak 2 - The Staff of Dreams (USA).iso" size="1459978240" crc="ca5ada0f" md5="0d9a7c74d1ff98dd5ad867bd67377bb1" sha1="bc36de899604771551b93638ce204da92e0b7582"/>
</game>
<game name="Nintendo GameCube Preview Disc - May 2003 (USA)">
<game name="Nintendo GameCube Preview Disc - May 2003 (USA, Canada)">
<category>Demos</category>
<description>Nintendo GameCube Preview Disc - May 2003 (USA)</description>
<rom name="Nintendo GameCube Preview Disc - May 2003 (USA).iso" size="1459978240" crc="d45c8c07" md5="73e092844193533bfd6d5c27034446a3" sha1="43047f599583e1b0357881d21cba2e3958c57822"/>
<description>Nintendo GameCube Preview Disc - May 2003 (USA, Canada)</description>
<rom name="Nintendo GameCube Preview Disc - May 2003 (USA, Canada).iso" size="1459978240" crc="d45c8c07" md5="73e092844193533bfd6d5c27034446a3" sha1="43047f599583e1b0357881d21cba2e3958c57822"/>
</game>
<game name="Interactive Multi-Game Demo Disc - July 2002 (USA)">
<category>Demos</category>
@@ -2395,10 +2395,10 @@
<description>Need for Speed - Underground (USA)</description>
<rom name="Need for Speed - Underground (USA).iso" size="1459978240" crc="01c154ba" md5="c20f02454166bc8fa08f84307871ac7d" sha1="d6882a712509e8bba75ee8837bcac65f8352b1d1"/>
</game>
<game name="Nickelodeon SpongeBob SquarePants - The Movie (USA) (Rev 1)">
<game name="Nickelodeon The SpongeBob SquarePants Movie (USA) (Rev 1)">
<category>Games</category>
<description>Nickelodeon SpongeBob SquarePants - The Movie (USA) (Rev 1)</description>
<rom name="Nickelodeon SpongeBob SquarePants - The Movie (USA) (Rev 1).iso" size="1459978240" crc="77be3cc6" md5="9fbad7186b2168190082a54fa20d63b7" sha1="2aea159b1e98a220a6e4534f0f017b8722ce4caa"/>
<description>Nickelodeon The SpongeBob SquarePants Movie (USA) (Rev 1)</description>
<rom name="Nickelodeon The SpongeBob SquarePants Movie (USA) (Rev 1).iso" size="1459978240" crc="77be3cc6" md5="9fbad7186b2168190082a54fa20d63b7" sha1="2aea159b1e98a220a6e4534f0f017b8722ce4caa"/>
</game>
<game name="Star Wars - Rogue Squadron III - Rebel Strike (USA) (En,Fr,De,Es,It)">
<category>Games</category>
@@ -2760,15 +2760,15 @@
<description>Sonic Adventure DX - Director's Cut (Europe) (En,Ja,Fr,De,Es) (Rev 1)</description>
<rom name="Sonic Adventure DX - Director's Cut (Europe) (En,Ja,Fr,De,Es) (Rev 1).iso" size="1459978240" crc="9ba7f3af" md5="2136ed4b6a27dc64066c8a689918dce0" sha1="99ce5f51388919a95d571a730c50362ba14277c3"/>
</game>
<game name="GoldenEye - Rogue Agent (France) (Disc 1)">
<game name="GoldenEye - Au Service du Mal (France) (Disc 1)">
<category>Games</category>
<description>GoldenEye - Rogue Agent (France) (Disc 1)</description>
<rom name="GoldenEye - Rogue Agent (France) (Disc 1).iso" size="1459978240" crc="4564bb01" md5="08110ba8ac059a8f735bf951bee12edd" sha1="107e792ae93495179f5bd657da166947751e37cc"/>
<description>GoldenEye - Au Service du Mal (France) (Disc 1)</description>
<rom name="GoldenEye - Au Service du Mal (France) (Disc 1).iso" size="1459978240" crc="4564bb01" md5="08110ba8ac059a8f735bf951bee12edd" sha1="107e792ae93495179f5bd657da166947751e37cc"/>
</game>
<game name="GoldenEye - Rogue Agent (France) (Disc 2)">
<game name="GoldenEye - Au Service du Mal (France) (Disc 2)">
<category>Games</category>
<description>GoldenEye - Rogue Agent (France) (Disc 2)</description>
<rom name="GoldenEye - Rogue Agent (France) (Disc 2).iso" size="1459978240" crc="dba8aa7f" md5="57f801c71548bd7a6e281b0b028a4ac6" sha1="7bb6875321b6ea90146bfb71bb730f6317c2a172"/>
<description>GoldenEye - Au Service du Mal (France) (Disc 2)</description>
<rom name="GoldenEye - Au Service du Mal (France) (Disc 2).iso" size="1459978240" crc="dba8aa7f" md5="57f801c71548bd7a6e281b0b028a4ac6" sha1="7bb6875321b6ea90146bfb71bb730f6317c2a172"/>
</game>
<game name="Lost Kingdoms (Europe) (En,Fr)">
<category>Games</category>
@@ -3265,10 +3265,10 @@
<description>Mega Man X - Command Mission (USA)</description>
<rom name="Mega Man X - Command Mission (USA).iso" size="1459978240" crc="82115bd2" md5="ddaf03e8bb5b7ca43ae2f2d77087f917" sha1="98fafeb1fbe04dfec9a4ff1d0c159627bb288aad"/>
</game>
<game name="Skies of Arcadia Legends (USA)">
<game name="Skies of Arcadia - Legends (USA)">
<category>Games</category>
<description>Skies of Arcadia Legends (USA)</description>
<rom name="Skies of Arcadia Legends (USA).iso" size="1459978240" crc="23e347b6" md5="3e7fa5033c4a2704434fb6ba98195ecd" sha1="46105320553c858f25fafc5fd357566b505a4940"/>
<description>Skies of Arcadia - Legends (USA)</description>
<rom name="Skies of Arcadia - Legends (USA).iso" size="1459978240" crc="23e347b6" md5="3e7fa5033c4a2704434fb6ba98195ecd" sha1="46105320553c858f25fafc5fd357566b505a4940"/>
</game>
<game name="Harvest Moon - Another Wonderful Life (USA)">
<category>Games</category>
@@ -4380,10 +4380,10 @@
<description>World Soccer Winning Eleven 6 - Final Evolution (Japan)</description>
<rom name="World Soccer Winning Eleven 6 - Final Evolution (Japan).iso" size="1459978240" crc="07f76bcc" md5="db339f4d36b698e0c18de99a91c0c165" sha1="4d0a7142474ad5a4d6e7245f252eab308f783fbe"/>
</game>
<game name="Skies of Arcadia Legends (Europe) (En,Fr,De,Es)">
<game name="Skies of Arcadia - Legends (Europe) (En,Fr,De,Es)">
<category>Games</category>
<description>Skies of Arcadia Legends (Europe) (En,Fr,De,Es)</description>
<rom name="Skies of Arcadia Legends (Europe) (En,Fr,De,Es).iso" size="1459978240" crc="a8e18c76" md5="bd814992f1e39d4147c775ff8b32d022" sha1="30ee1d7777fe51bcd7c4deeb867651d5b6e96e41"/>
<description>Skies of Arcadia - Legends (Europe) (En,Fr,De,Es)</description>
<rom name="Skies of Arcadia - Legends (Europe) (En,Fr,De,Es).iso" size="1459978240" crc="a8e18c76" md5="bd814992f1e39d4147c775ff8b32d022" sha1="30ee1d7777fe51bcd7c4deeb867651d5b6e96e41"/>
</game>
<game name="Serious Sam - Next Encounter (Europe) (En,Fr,De)">
<category>Games</category>
@@ -6555,10 +6555,10 @@
<description>2002 FIFA World Cup (Europe) (Fr,Nl)</description>
<rom name="2002 FIFA World Cup (Europe) (Fr,Nl).iso" size="1459978240" crc="5980022f" md5="54411489d800faf171f5ff203b1a0c46" sha1="b7e6aa5d84e35fe1de1879c9dcd12c0c1987e275"/>
</game>
<game name="Nickelodeon SpongeBob SquarePants - The Movie (Europe) (Fr,Nl)">
<game name="Nickelodeon The SpongeBob SquarePants Movie (Europe) (Fr,Nl)">
<category>Games</category>
<description>Nickelodeon SpongeBob SquarePants - The Movie (Europe) (Fr,Nl)</description>
<rom name="Nickelodeon SpongeBob SquarePants - The Movie (Europe) (Fr,Nl).iso" size="1459978240" crc="084ea086" md5="5c8a6eeeb849e20c59bc245a56d4f174" sha1="09606bce7bc063d257f006973f1b5c70e8e9cd42"/>
<description>Nickelodeon The SpongeBob SquarePants Movie (Europe) (Fr,Nl)</description>
<rom name="Nickelodeon The SpongeBob SquarePants Movie (Europe) (Fr,Nl).iso" size="1459978240" crc="084ea086" md5="5c8a6eeeb849e20c59bc245a56d4f174" sha1="09606bce7bc063d257f006973f1b5c70e8e9cd42"/>
</game>
<game name="FIFA 06 (Netherlands)">
<category>Games</category>
@@ -7070,10 +7070,10 @@
<description>Nickelodeon SpongeBob SquarePants - Creature from the Krusty Krab (Europe)</description>
<rom name="Nickelodeon SpongeBob SquarePants - Creature from the Krusty Krab (Europe).iso" size="1459978240" crc="5dcf1734" md5="10b725bed9a3be326a776db800682b47" sha1="53238fd27c00b2f51b19e2fcf4f3bc8ae34aa612"/>
</game>
<game name="Nickelodeon SpongeBob SquarePants - The Movie (Europe)">
<game name="Nickelodeon The SpongeBob SquarePants Movie (Europe)">
<category>Games</category>
<description>Nickelodeon SpongeBob SquarePants - The Movie (Europe)</description>
<rom name="Nickelodeon SpongeBob SquarePants - The Movie (Europe).iso" size="1459978240" crc="334aac70" md5="62bc84bfcad66e8d24f83873b247b628" sha1="f13f66669639b95d2c63f51cc3deea1b334998e5"/>
<description>Nickelodeon The SpongeBob SquarePants Movie (Europe)</description>
<rom name="Nickelodeon The SpongeBob SquarePants Movie (Europe).iso" size="1459978240" crc="334aac70" md5="62bc84bfcad66e8d24f83873b247b628" sha1="f13f66669639b95d2c63f51cc3deea1b334998e5"/>
</game>
<game name="MC Groovz Dance Craze (Europe) (En,Fr,De,Es,It)">
<category>Games</category>
@@ -7205,10 +7205,10 @@
<description>Gekkan Nintendo Tentou Demo 2002.7.1 (Japan)</description>
<rom name="Gekkan Nintendo Tentou Demo 2002.7.1 (Japan).iso" size="1459978240" crc="86dacab6" md5="84936411bf7768bcdac3be8f401ad8eb" sha1="4d7d77f67288902ba17bf6f42d19679e45cbcb54"/>
</game>
<game name="Gekkan Nintendo Tentou Demo 2002.7.10 (Japan)">
<game name="Gekkan Nintendo Tentou Demo 2002.7.10 Zoukan-gou (Japan)">
<category>Demos</category>
<description>Gekkan Nintendo Tentou Demo 2002.7.10 (Japan)</description>
<rom name="Gekkan Nintendo Tentou Demo 2002.7.10 (Japan).iso" size="1459978240" crc="878c6dea" md5="f185e3c31a81519ee0c0b2539ebcd442" sha1="8b863d521ce96c85c9de60a9d95ccf10e6d8edb6"/>
<description>Gekkan Nintendo Tentou Demo 2002.7.10 Zoukan-gou (Japan)</description>
<rom name="Gekkan Nintendo Tentou Demo 2002.7.10 Zoukan-gou (Japan).iso" size="1459978240" crc="878c6dea" md5="f185e3c31a81519ee0c0b2539ebcd442" sha1="8b863d521ce96c85c9de60a9d95ccf10e6d8edb6"/>
</game>
<game name="Rune II - Koruten no Kagi no Himitsu (Japan) (Taikenban)">
<category>Demos</category>
@@ -7725,10 +7725,10 @@
<description>Family Stadium 2003 (Japan)</description>
<rom name="Family Stadium 2003 (Japan).iso" size="1459978240" crc="69b9e609" md5="d6fe5f8e1b6c915c6812b073ac23aada" sha1="d49244a31f95a77c296fba70b8b6550b7e017efc"/>
</game>
<game name="Gakuen Toshi Vara Noir Roses (Japan)">
<game name="Gakuen Toshi Varanoir - Roses (Japan)">
<category>Games</category>
<description>Gakuen Toshi Vara Noir Roses (Japan)</description>
<rom name="Gakuen Toshi Vara Noir Roses (Japan).iso" size="1459978240" crc="cf6d0aa5" md5="364f6513ce08ebbfc312e7a05a6b4225" sha1="d403770cba0c71520df8fd853275508130ac04f4"/>
<description>Gakuen Toshi Varanoir - Roses (Japan)</description>
<rom name="Gakuen Toshi Varanoir - Roses (Japan).iso" size="1459978240" crc="cf6d0aa5" md5="364f6513ce08ebbfc312e7a05a6b4225" sha1="d403770cba0c71520df8fd853275508130ac04f4"/>
</game>
<game name="Gekitou Pro Yakyuu - Mizushima Shinji All Stars vs. Pro Yakyuu (Japan)">
<category>Games</category>
@@ -8660,10 +8660,10 @@
<description>SSX on Tour (Europe) (En,Fr,De)</description>
<rom name="SSX on Tour (Europe) (En,Fr,De).iso" size="1459978240" crc="886defd6" md5="e86b6fc0db336d2e55c08b23d76ab554" sha1="2a6055689d79602d92a5bbbcf9d5a9613301d802"/>
</game>
<game name="2 Games in 1 - Bob L'eponge - Le Film + Tak 2 - Le Sceptre des Reves (France) (Disc 1) (Bob L'eponge - Le Film)">
<game name="2 Games in 1 - Bob L'eponge - Le Film + Tak 2 - Le Sceptre des Reves (France) (Fr,Nl) (Disc 1) (Bob L'eponge - Le Film)">
<category>Games</category>
<description>2 Games in 1 - Bob L'eponge - Le Film + Tak 2 - Le Sceptre des Reves (France) (Disc 1) (Bob L'eponge - Le Film)</description>
<rom name="2 Games in 1 - Bob L'eponge - Le Film + Tak 2 - Le Sceptre des Reves (France) (Disc 1) (Bob L'eponge - Le Film).iso" size="1459978240" crc="3cb489d7" md5="592585ee660990d4953e8d6b9f961d3c" sha1="e52e6b4d76461a9041dfbcc95ecef8b1d1ecc051"/>
<description>2 Games in 1 - Bob L'eponge - Le Film + Tak 2 - Le Sceptre des Reves (France) (Fr,Nl) (Disc 1) (Bob L'eponge - Le Film)</description>
<rom name="2 Games in 1 - Bob L'eponge - Le Film + Tak 2 - Le Sceptre des Reves (France) (Fr,Nl) (Disc 1) (Bob L'eponge - Le Film).iso" size="1459978240" crc="3cb489d7" md5="592585ee660990d4953e8d6b9f961d3c" sha1="e52e6b4d76461a9041dfbcc95ecef8b1d1ecc051"/>
</game>
<game name="2 Games in 1 - Bob L'eponge - Le Film + Tak 2 - Le Sceptre des Reves (France) (Disc 2) (Tak 2 - Le Sceptre des Reves)">
<category>Games</category>
@@ -9325,10 +9325,10 @@
<description>Disney-Pixar Nemo-reul Chajaseo (Korea)</description>
<rom name="Disney-Pixar Nemo-reul Chajaseo (Korea).iso" size="1459978240" crc="312420a2" md5="7ee187f776e1cbed1f8836e645560d46" sha1="340ef094dfe69c0253e1539911f7f508d91108fa"/>
</game>
<game name="Action Replay for GameCube (USA) (En,Fr,De,Es,It,Pt) (Unl) (v1.08)">
<game name="Action Replay for GameCube (USA, Europe) (En,Fr,De,Es,It,Pt) (Unl) (v1.08)">
<category>Applications</category>
<description>Action Replay for GameCube (USA) (En,Fr,De,Es,It,Pt) (Unl) (v1.08)</description>
<rom name="Action Replay for GameCube (USA) (En,Fr,De,Es,It,Pt) (Unl) (v1.08).iso" size="1459978240" crc="9cb75b81" md5="ba5aadafb4b364679e6950d339aaedfd" sha1="8d480dc45b47e11c1bb5f7f500e2c78b08a1153a"/>
<description>Action Replay for GameCube (USA, Europe) (En,Fr,De,Es,It,Pt) (Unl) (v1.08)</description>
<rom name="Action Replay for GameCube (USA, Europe) (En,Fr,De,Es,It,Pt) (Unl) (v1.08).iso" size="1459978240" crc="9cb75b81" md5="ba5aadafb4b364679e6950d339aaedfd" sha1="8d480dc45b47e11c1bb5f7f500e2c78b08a1153a"/>
</game>
<game name="Mario Kart - Double Dash!! (Korea)">
<category>Games</category>
@@ -9480,10 +9480,10 @@
<description>Cube CD 14 (33) (UK) (Unl)</description>
<rom name="Cube CD 14 (33) (UK) (Unl).iso" size="1459978240" crc="b21fe659" md5="82109cff554d0ecadb0fffb7030dc5a8" sha1="884052c0eb3f0d515ca0c7b173e0a5dfd8071a35"/>
</game>
<game name="Action Replay Max (Europe) (En,Fr,De,Es,It,Pt) (Unl)">
<game name="Action Replay Max (USA, Europe) (En,Fr,De,Es,It,Pt) (Unl)">
<category>Applications</category>
<description>Action Replay Max (Europe) (En,Fr,De,Es,It,Pt) (Unl)</description>
<rom name="Action Replay Max (Europe) (En,Fr,De,Es,It,Pt) (Unl).iso" size="1459978240" crc="989e3a76" md5="335e62cdeb07ef3e15d1a3bfceaa28d2" sha1="b339b3f828abe509bfbb4a745322eebea54e105d"/>
<description>Action Replay Max (USA, Europe) (En,Fr,De,Es,It,Pt) (Unl)</description>
<rom name="Action Replay Max (USA, Europe) (En,Fr,De,Es,It,Pt) (Unl).iso" size="1459978240" crc="989e3a76" md5="335e62cdeb07ef3e15d1a3bfceaa28d2" sha1="b339b3f828abe509bfbb4a745322eebea54e105d"/>
</game>
<game name="Capcom vs. SNK 2 EO (Japan) (Tentou Taikenban)">
<category>Demos</category>
@@ -9880,10 +9880,10 @@
<description>FIFA Soccer 07 (Latin America)</description>
<rom name="FIFA Soccer 07 (Latin America).iso" size="1459978240" crc="eb1be753" md5="f0f6029d90191ac10a92938597735f37" sha1="64ba3862474dc9708d7263e0136299f684f38ee6"/>
</game>
<game name="Pickles (USA) (Proto)">
<game name="Pickles (USA) (Proto 1)">
<category>Preproduction</category>
<description>Pickles (USA) (Proto)</description>
<rom name="Pickles (USA) (Proto).iso" size="1459978240" crc="5542f6e9" md5="3cdde8d4002b4268c573cf2c2a9009c1" sha1="7011e5c016f3e87b9786d542cb555b111c8293ee"/>
<description>Pickles (USA) (Proto 1)</description>
<rom name="Pickles (USA) (Proto 1).iso" size="1459978240" crc="5542f6e9" md5="3cdde8d4002b4268c573cf2c2a9009c1" sha1="7011e5c016f3e87b9786d542cb555b111c8293ee"/>
</game>
<game name="18 Wheeler - American Pro Trucker (USA) (Beta) (2001-11-12)">
<category>Preproduction</category>
@@ -9970,4 +9970,49 @@
<description>Evolution Worlds (USA) (Beta)</description>
<rom name="Evolution Worlds (USA) (Beta).iso" size="1459978240" crc="74e3fbee" md5="f5a5d5d02b8ce369b53e5efcaf2c5d71" sha1="061ba70fe611a7c36a3a99dc52839fc275724f19"/>
</game>
<game name="Pickles (USA) (Proto 2)">
<category>Preproduction</category>
<description>Pickles (USA) (Proto 2)</description>
<rom name="Pickles (USA) (Proto 2).iso" size="1459978240" crc="7fa9a839" md5="313057403f079b96926335202a6ca40c" sha1="9038eb0c7c013421a9be5a94fcd3d27c7f2f8767"/>
</game>
<game name="Advance Connector GC-you (Japan) (Unl)">
<category>Applications</category>
<description>Advance Connector GC-you (Japan) (Unl)</description>
<rom name="Advance Connector GC-you (Japan) (Unl).iso" size="1459978240" crc="93418d2a" md5="9ad3900dbde0c1b588212dce88730b7a" sha1="cf3f68552c099aa2830c2dd74fc3e90d3518f82f"/>
</game>
<game name="Xeno Crisis (Japan) (En,Ja,Fr,De,Es,It,Nl,Pt) (Unl)">
<category>Games</category>
<description>Xeno Crisis (Japan) (En,Ja,Fr,De,Es,It,Nl,Pt) (Unl)</description>
<rom name="Xeno Crisis (Japan) (En,Ja,Fr,De,Es,It,Nl,Pt) (Unl).iso" size="115898368" crc="0c6d4075" md5="4244e7887f60c1336d711fc4a1fd13e0" sha1="46acc5a470af00a3adf916ba879e382d1540b1c5"/>
</game>
<game name="Gekkan Nintendo Tentou Demo 2002.8.1 (Japan)">
<category>Demos</category>
<description>Gekkan Nintendo Tentou Demo 2002.8.1 (Japan)</description>
<rom name="Gekkan Nintendo Tentou Demo 2002.8.1 (Japan).iso" size="1459978240" crc="06588854" md5="405c464ef39eb55f63fd6cd0a947de86" sha1="cd7d1418c2aba5ee614fdd22a46b1f48cbbc54cf"/>
</game>
<game name="NBA Live 2003 (France)">
<category>Games</category>
<description>NBA Live 2003 (France)</description>
<rom name="NBA Live 2003 (France).iso" size="1459978240" crc="ca606a11" md5="b300251ad4be896443143f7dac64e9dc" sha1="f8117becd57e358afed78b35e79800df094bbd3e"/>
</game>
<game name="Advance Game Port (USA) (Unl) (Rev 2)">
<category>Applications</category>
<description>Advance Game Port (USA) (Unl) (Rev 2)</description>
<rom name="Advance Game Port (USA) (Unl) (Rev 2).iso" size="1459978240" crc="0e8bb8d0" md5="097275ac8c60735001d3c0623529fcfc" sha1="d4ac3fed9cc08a19cdad5e46cc5870e909723691"/>
</game>
<game name="SD Media Launcher for GameCube &amp; Wii (Japan) (Unl)">
<category>Applications</category>
<description>SD Media Launcher for GameCube &amp; Wii (Japan) (Unl)</description>
<rom name="SD Media Launcher for GameCube &amp; Wii (Japan) (Unl).iso" size="1459978240" crc="7b642b57" md5="4e260af6d573045186b8794587a466a5" sha1="cf5c5e8b9e073a3bbf993cce3910aa0814d9eb96"/>
</game>
<game name="Mega Man X - Command Mission (USA) (Beta) (2004-07-23)">
<category>Preproduction</category>
<description>Mega Man X - Command Mission (USA) (Beta) (2004-07-23)</description>
<rom name="Mega Man X - Command Mission (USA) (Beta) (2004-07-23).iso" size="1459978240" crc="7b88690e" md5="801aeb70186915ac0a53494006ff74f8" sha1="24d72340954cd62e142a6d11a6582fc5f40ba994"/>
</game>
<game name="Mario Party 4 Event-you Disc (Japan)">
<category>Demos</category>
<description>Mario Party 4 Event-you Disc (Japan)</description>
<rom name="Mario Party 4 Event-you Disc (Japan).iso" size="1459978240" crc="4d3a81a8" md5="fe10c951d2345f94b0633d4861c65598" sha1="de8c7b6f1ca3e7b4bf29a3fa3d12c4bfc42dfad4"/>
</game>
</datafile>

View File

@@ -3,9 +3,9 @@
<datafile>
<header>
<name>Nintendo - Wii</name>
<description>Nintendo - Wii - Discs (3770) (2024-02-13 21-52-18)</description>
<version>2024-02-13 21-52-18</version>
<date>2024-02-13 21-52-18</date>
<description>Nintendo - Wii - Discs (3775) (2024-11-29 20-05-00)</description>
<version>2024-11-29 20-05-00</version>
<date>2024-11-29 20-05-00</date>
<author>redump.org</author>
<homepage>redump.org</homepage>
<url>http://redump.org/</url>
@@ -400,10 +400,10 @@
<description>Wii Music (USA) (En,Fr,Es)</description>
<rom name="Wii Music (USA) (En,Fr,Es).iso" size="4699979776" crc="59d46fe4" md5="ce0d062df2a18fcbb145e52634679ca6" sha1="50c784119b4e5cfed244a744183c9d5214227840"/>
</game>
<game name="Trauma Center - New Blood (USA)">
<game name="Trauma Center - New Blood (USA) (En,Ja)">
<category>Games</category>
<description>Trauma Center - New Blood (USA)</description>
<rom name="Trauma Center - New Blood (USA).iso" size="4699979776" crc="1b9fc0a4" md5="4ece4485e318a2fa2aab5cbf5aab1b18" sha1="3778e0c4d0b74be925c894813c9f6e2c6078dda5"/>
<description>Trauma Center - New Blood (USA) (En,Ja)</description>
<rom name="Trauma Center - New Blood (USA) (En,Ja).iso" size="4699979776" crc="1b9fc0a4" md5="4ece4485e318a2fa2aab5cbf5aab1b18" sha1="3778e0c4d0b74be925c894813c9f6e2c6078dda5"/>
</game>
<game name="Kororinpa - Marble Mania (USA)">
<category>Games</category>
@@ -13390,10 +13390,10 @@
<description>Nickelodeon Dora the Explorer - Dora Saves the Snow Princess (Europe) (En,Fr,Nl)</description>
<rom name="Nickelodeon Dora the Explorer - Dora Saves the Snow Princess (Europe) (En,Fr,Nl).iso" size="4699979776" crc="bc05608d" md5="b08b2d0a6a7262cd43069ca94fc2cb57" sha1="cfb57ba6736728b181e84826f11d20428bddcb13"/>
</game>
<game name="Food Network - Cook or Be Cooked (USA)">
<game name="Food Network - Cook or Be Cooked! (USA)">
<category>Games</category>
<description>Food Network - Cook or Be Cooked (USA)</description>
<rom name="Food Network - Cook or Be Cooked (USA).iso" size="4699979776" crc="30a9d897" md5="ce5ec10957e7f90bdf1419237ed612f7" sha1="8dfc46d40fde135de2fb24d1e056bcf53001c714"/>
<description>Food Network - Cook or Be Cooked! (USA)</description>
<rom name="Food Network - Cook or Be Cooked! (USA).iso" size="4699979776" crc="30a9d897" md5="ce5ec10957e7f90bdf1419237ed612f7" sha1="8dfc46d40fde135de2fb24d1e056bcf53001c714"/>
</game>
<game name="Get Fit with Mel B (USA) (En,Fr,Es)">
<category>Games</category>
@@ -17300,10 +17300,10 @@
<description>Horrid Henry - Missions of Mischief (Europe) (En,Fr,De,Es,It)</description>
<rom name="Horrid Henry - Missions of Mischief (Europe) (En,Fr,De,Es,It).iso" size="4699979776" crc="58596d71" md5="c5225b3248eebb54f0256cbf3c518e34" sha1="cd1bbc1540bf9773c56572617dc4e7bc0874d8b7"/>
</game>
<game name="I'm a Celebrity...Get Me Out of Here! (Europe)">
<game name="I'm a Celebrity...Get Me Out of Here! (UK)">
<category>Games</category>
<description>I'm a Celebrity...Get Me Out of Here! (Europe)</description>
<rom name="I'm a Celebrity...Get Me Out of Here! (Europe).iso" size="4699979776" crc="96f013c7" md5="c272b7ad6ea6f7e170f9603092f9cc5b" sha1="34c56074bce0e4ba2bc36696954d21f8e38b0602"/>
<description>I'm a Celebrity...Get Me Out of Here! (UK)</description>
<rom name="I'm a Celebrity...Get Me Out of Here! (UK).iso" size="4699979776" crc="96f013c7" md5="c272b7ad6ea6f7e170f9603092f9cc5b" sha1="34c56074bce0e4ba2bc36696954d21f8e38b0602"/>
</game>
<game name="Musiic Party - Rock the House (UK) (En,Fr,De,Es,It)">
<category>Games</category>
@@ -17945,10 +17945,10 @@
<description>Transformers - The Game (Korea)</description>
<rom name="Transformers - The Game (Korea).iso" size="4699979776" crc="65b28e90" md5="caa4ba68d9590cb14f268d6b859de799" sha1="f0f1c9e40010a5ea40c6119fc2d1d06ebd0e35e9"/>
</game>
<game name="FreeLoader for Nintendo Wii (USA) (Unl)">
<game name="FreeLoader for Nintendo Wii (USA) (Unl) (Rev 1)">
<category>Applications</category>
<description>FreeLoader for Nintendo Wii (USA) (Unl)</description>
<rom name="FreeLoader for Nintendo Wii (USA) (Unl).iso" size="1459978240" crc="1cc40417" md5="7ef5176eee10d71f6094bae0821d0b44" sha1="3cbab4236fe31abc15e253adadf963ba8fa7261d"/>
<description>FreeLoader for Nintendo Wii (USA) (Unl) (Rev 1)</description>
<rom name="FreeLoader for Nintendo Wii (USA) (Unl) (Rev 1).iso" size="1459978240" crc="1cc40417" md5="7ef5176eee10d71f6094bae0821d0b44" sha1="3cbab4236fe31abc15e253adadf963ba8fa7261d"/>
</game>
<game name="FreeLoader for Nintendo Wii (Japan) (Unl)">
<category>Applications</category>
@@ -18450,10 +18450,10 @@
<description>Fishing Master World Tour (USA) (Beta) (2008-11-14)</description>
<rom name="Fishing Master World Tour (USA) (Beta) (2008-11-14).iso" size="4707319808" crc="e030529b" md5="f4530ea0a779d4f47f1e9682d6cb8d45" sha1="87d23879d8320f6d8d4d84df796587bbd3ef6ed1"/>
</game>
<game name="Food Network - Cook or Be Cooked (USA) (Beta) (2009-07-20)">
<game name="Food Network - Cook or Be Cooked! (USA) (Beta) (2009-07-20)">
<category>Preproduction</category>
<description>Food Network - Cook or Be Cooked (USA) (Beta) (2009-07-20)</description>
<rom name="Food Network - Cook or Be Cooked (USA) (Beta) (2009-07-20).iso" size="4707319808" crc="d5aae4a9" md5="3d4e8632d621dfdc142c364e2f645822" sha1="6d10aa3438a655a4e348b82a4e78ff6120690bc5"/>
<description>Food Network - Cook or Be Cooked! (USA) (Beta) (2009-07-20)</description>
<rom name="Food Network - Cook or Be Cooked! (USA) (Beta) (2009-07-20).iso" size="4707319808" crc="d5aae4a9" md5="3d4e8632d621dfdc142c364e2f645822" sha1="6d10aa3438a655a4e348b82a4e78ff6120690bc5"/>
</game>
<game name="Fragile Dreams - Farewell Ruins of the Moon (USA) (Beta) (2009-12-10)">
<category>Preproduction</category>
@@ -18810,10 +18810,10 @@
<description>Lara Croft Tomb Raider - Anniversary (USA) (Beta) (2007-09-20)</description>
<rom name="Lara Croft Tomb Raider - Anniversary (USA) (Beta) (2007-09-20).iso" size="4707319808" crc="61ef67d0" md5="0bf1f1a9941519c76c5f1e957c6118cd" sha1="3c897f945fa9ee1a681f07654a9484c23bdf63fc"/>
</game>
<game name="Trauma Center - New Blood (USA) (Beta) (2007-10-02)">
<game name="Trauma Center - New Blood (USA) (En,Ja) (Beta) (2007-10-02)">
<category>Preproduction</category>
<description>Trauma Center - New Blood (USA) (Beta) (2007-10-02)</description>
<rom name="Trauma Center - New Blood (USA) (Beta) (2007-10-02).iso" size="4707319808" crc="6f01fefc" md5="7c38e763310b81ac68df7eacd4f58a11" sha1="5fed4b32ba9d06d1fbc21d9771b111f2279d1a16"/>
<description>Trauma Center - New Blood (USA) (En,Ja) (Beta) (2007-10-02)</description>
<rom name="Trauma Center - New Blood (USA) (En,Ja) (Beta) (2007-10-02).iso" size="4707319808" crc="6f01fefc" md5="7c38e763310b81ac68df7eacd4f58a11" sha1="5fed4b32ba9d06d1fbc21d9771b111f2279d1a16"/>
</game>
<game name="Wacky World of Sports (USA) (Beta) (2009-03-25)">
<category>Preproduction</category>
@@ -18860,4 +18860,29 @@
<description>Yu-Gi-Oh! 5D's - Duel Transer (USA) (Beta) (2010-07-15)</description>
<rom name="Yu-Gi-Oh! 5D's - Duel Transer (USA) (Beta) (2010-07-15).iso" size="4707319808" crc="fc013893" md5="572d467f9186b5f7203bfb2723ab2423" sha1="df639ddde0fdae538931443e18db80dface559fd"/>
</game>
<game name="Deca Sporta - Wiiro Jeulgineun Sports 10 Jongmok! (Korea)">
<category>Games</category>
<description>Deca Sporta - Wiiro Jeulgineun Sports 10 Jongmok! (Korea)</description>
<rom name="Deca Sporta - Wiiro Jeulgineun Sports 10 Jongmok! (Korea).iso" size="4699979776" crc="a5643872" md5="89b7a6b6952c0d1c2a4d3a45e91b2c0f" sha1="58454d77b159066845d3774853eeb87145c5e742"/>
</game>
<game name="Wii Fit (Japan) (Taikenban)">
<category>Demos</category>
<description>Wii Fit (Japan) (Taikenban)</description>
<rom name="Wii Fit (Japan) (Taikenban).iso" size="4699979776" crc="840639c5" md5="6428ece705a4f8e8528d72d3228ce02f" sha1="7edfe8a76c90fd8abc5d60c2643ef7791d080223"/>
</game>
<game name="FreeLoader for Nintendo Wii (USA) (Unl)">
<category>Applications</category>
<description>FreeLoader for Nintendo Wii (USA) (Unl)</description>
<rom name="FreeLoader for Nintendo Wii (USA) (Unl).iso" size="1459978240" crc="20261177" md5="5d7f821663974428804dae7df56f789d" sha1="70c05e6713e6f7acbc65929628b4ab35bb94eb7d"/>
</game>
<game name="Food Network - Cook or Be Cooked! (USA) (Demo)">
<category>Demos</category>
<description>Food Network - Cook or Be Cooked! (USA) (Demo)</description>
<rom name="Food Network - Cook or Be Cooked! (USA) (Demo).iso" size="4699979776" crc="16705e31" md5="6b8659f8ec82a16e9442df2c589cf601" sha1="3c623f447cb6cbf2c7abd9ce18f232cc2f00ff95"/>
</game>
<game name="Disney Sing It (Russia) (En,Ru)">
<category>Games</category>
<description>Disney Sing It (Russia) (En,Ru)</description>
<rom name="Disney Sing It (Russia) (En,Ru).iso" size="4699979776" crc="23644f21" md5="1d86f24d8f618c34e466a82f1f4a27e7" sha1="201c9ad4442830879b538e54c1fcc8e137fa7a92"/>
</game>
</datafile>

View File

@@ -13,7 +13,8 @@ use nod::{
build::gc::{FileCallback, FileInfo, GCPartitionBuilder, PartitionOverrides},
common::PartitionKind,
disc::{
fst::Fst, DiscHeader, PartitionHeader, BI2_SIZE, BOOT_SIZE, MINI_DVD_SIZE, SECTOR_SIZE,
fst::Fst, BootHeader, DiscHeader, BB2_OFFSET, BI2_SIZE, BOOT_SIZE, MINI_DVD_SIZE,
SECTOR_SIZE,
},
read::{
DiscOptions, DiscReader, PartitionEncryption, PartitionMeta, PartitionOptions,
@@ -114,11 +115,12 @@ pub fn run(args: Args) -> nod::Result<()> {
// Build metadata
let mut file_infos = Vec::new();
let boot_data: Box<[u8; BOOT_SIZE]> = read_fixed(&boot_path)?;
let header = DiscHeader::ref_from_bytes(&boot_data[..size_of::<DiscHeader>()])
let header = DiscHeader::ref_from_bytes(array_ref![boot_data, 0, size_of::<DiscHeader>()])
.expect("Failed to read disc header");
let junk_id = get_junk_id(header);
let partition_header = PartitionHeader::ref_from_bytes(&boot_data[size_of::<DiscHeader>()..])
.expect("Failed to read partition header");
let boot_header =
BootHeader::ref_from_bytes(array_ref![boot_data, BB2_OFFSET, size_of::<BootHeader>()])
.expect("Failed to read boot header");
let fst_path = args.dir.join("sys/fst.bin");
let fst_data = read_all(&fst_path)?;
let fst = Fst::new(&fst_data).expect("Failed to parse FST");
@@ -138,8 +140,8 @@ pub fn run(args: Args) -> nod::Result<()> {
offset: BOOT_SIZE as u64 + BI2_SIZE as u64,
length: apploader_size,
});
let fst_offset = partition_header.fst_offset(false);
let dol_offset = partition_header.dol_offset(false);
let fst_offset = boot_header.fst_offset(false);
let dol_offset = boot_header.dol_offset(false);
if dol_offset < fst_offset {
file_infos.push(FileWriteInfo {
name: "sys/main.dol".to_string(),
@@ -162,7 +164,7 @@ pub fn run(args: Args) -> nod::Result<()> {
return Err(nod::Error::DiscFormat("DOL not found in FST".to_string()));
}
}
let fst_size = partition_header.fst_size(false);
let fst_size = boot_header.fst_size(false);
file_infos.push(FileWriteInfo {
name: "sys/fst.bin".to_string(),
offset: fst_offset,
@@ -213,21 +215,15 @@ pub fn run(args: Args) -> nod::Result<()> {
let mut out = File::create(&args.out)
.with_context(|| format!("Failed to create {}", args.out.display()))?;
info!("Writing disc image to {} ({} files)", args.out.display(), file_infos.len());
let crc = write_files(
&mut out,
&file_infos,
header,
partition_header,
junk_id,
|out, name| match name {
let crc =
write_files(&mut out, &file_infos, header, boot_header, junk_id, |out, name| match name {
"sys/boot.bin" => out.write_all(boot_data.as_ref()),
"sys/fst.bin" => out.write_all(fst_data.as_ref()),
path => {
let mut in_file = File::open(args.dir.join(path))?;
io::copy(&mut in_file, out).map(|_| ())
}
},
)?;
})?;
out.flush().context("Failed to flush output file")?;
info!("Generated disc image in {:?} (CRC32: {:08X})", start.elapsed(), crc);
let redump_entry = redump::find_by_crc32(crc);
@@ -265,14 +261,14 @@ fn write_files<W>(
w: &mut W,
file_infos: &[FileWriteInfo],
header: &DiscHeader,
partition_header: &PartitionHeader,
boot_header: &BootHeader,
junk_id: Option<[u8; 4]>,
mut callback: impl FnMut(&mut HashStream<&mut W>, &str) -> io::Result<()>,
) -> nod::Result<u32>
where
W: Write + ?Sized,
{
let fst_end = partition_header.fst_offset(false) + partition_header.fst_size(false);
let fst_end = boot_header.fst_offset(false) + boot_header.fst_size(false);
let file_gap = find_file_gap(file_infos, fst_end);
let mut lfg = LaggedFibonacci::default();
let mut out = HashStream::new(w);
@@ -461,9 +457,9 @@ fn in_memory_test(
// Build metadata
let mut file_infos = Vec::new();
let header = meta.header();
let header = meta.disc_header();
let junk_id = get_junk_id(header);
let partition_header = meta.partition_header();
let boot_header = meta.boot_header();
let fst = meta.fst()?;
file_infos.push(FileWriteInfo {
@@ -481,8 +477,8 @@ fn in_memory_test(
offset: BOOT_SIZE as u64 + BI2_SIZE as u64,
length: meta.raw_apploader.len() as u64,
});
let fst_offset = partition_header.fst_offset(false);
let dol_offset = partition_header.dol_offset(false);
let fst_offset = boot_header.fst_offset(false);
let dol_offset = boot_header.dol_offset(false);
if dol_offset < fst_offset {
file_infos.push(FileWriteInfo {
name: "sys/main.dol".to_string(),
@@ -505,7 +501,7 @@ fn in_memory_test(
return Err(nod::Error::Other("DOL not found in FST".to_string()));
}
}
let fst_size = partition_header.fst_size(false);
let fst_size = boot_header.fst_size(false);
file_infos.push(FileWriteInfo {
name: "sys/fst.bin".to_string(),
offset: fst_offset,

View File

@@ -145,8 +145,10 @@ fn main() {
result = result.and_then(|_| run(args.command));
if let Err(e) = result {
eprintln!("Failed: {}", e);
if let Some(source) = e.source() {
eprintln!("Caused by: {}", source);
let mut source = e.source();
while let Some(e) = source {
eprintln!("Caused by: {}", e);
source = e.source();
}
std::process::exit(1);
}