HeadlinesBriefing favicon HeadlinesBriefing.com

Resident Evil 4 GameCube Debug-Build vollständig dekompiliert

Hacker News •
×

Eine vollständige, byte-identische Dekompilierung von Resident Evil 4 für die Nintendo GameCube wurde für den G4BE08 Debug-Build (der „25. November 2004“ Prototyp, beide Discs) erreicht. Das Projekt reproduziert main.dol und alle 114 REL-Overlays genau, verifiziert durch SHA1-Hashes bei jedem Build. Es umfasst 1,083 Objekte (675 im DOL, 408 in den RELs) und 15,641 Funktionen, alle byte-identisch. Der Quellcode umfasst insgesamt etwa 555k Zeilen C/C++ (~33k Zeilen an Headern) ohne Assemblerdateien.

Das Spiel wurde mit SN Systems Pro DG 3.9.3 — GCC 2.95.3, Metrowerks CodeWarrior 2.4.7 und CodeWarrior GC/1.2.5n kompiliert. Es enthält CRI-Middleware (ADX, SFD, MPV) und Nintendo SDK-Bibliotheken. Das Repository enthält keine Spiel-Assets; Benutzer müssen ihre eigenen Debug-Disc-Images bereitstellen (Disc 1 für main.dol und 110 RELs, Disc 2 für die vier Insel-Stage-RELs). Der Build erfordert Linux, Python 3 und ninja; Compiler und Tools werden automatisch heruntergeladen, außer dem nativen SN-GCC.

Matching bedeutet, dass jede Einheit mit den ursprünglichen Compilern in die ursprünglichen Bytes kompiliert wird. Wo spezielle Source-Formen benötigt wurden, um Registerauswahlen oder Scheduling nachzubilden, werden Konstrukte mit `// COMPILER-DIFF:` Kommentaren gekennzeichnet (insgesamt 644). Eine automatisierte Prüfung bestätigt, dass nur 231 Hardware-Kernel-Anweisungen aus Assembler-Vorlagen stammen. Die Dokumentation behandelt die Engine-Architektur, die Matching-Methodik, Einheitsnotizen und Compiler-Forschungslogs.

Wichtige Entitäten: Unternehmen: Nintendo, SN Systems, Metrowerks, CRI Middleware | Personen: adonis-singh

Häufig gestellte Fragen: Was bedeutet „byte-identische Dekompilierung“ für dieses Resident Evil 4-Projekt?

Es bedeutet, dass der recompilierte Code (main.dol und alle 114 REL-Overlays) byte-genau mit dem ursprünglichen GameCube-Debug-Build übereinstimmt, verifiziert durch SHA1-Hashes, unter Verwendung der ursprünglichen Compiler (SN Systems GCC 2.95.3 und Metrowerks CodeWarrior) und der ursprünglichen Source-Formen.