- Vorstellung eines Open-Source-Projekts, das das Nintendo-64-ROM von Duke Nukem: Zero Hour vollständig dekompiliert
- Dieses Repository hat zu 100 % die Arbeit erreicht, den kompletten Original-Quellcode der Spielsoftware wiederherzustellen
- Nutzer müssen die ROM des Spiels selbst besitzen, und mit der Original-US- oder französischen ROM ist ein vollständiger Build sowie Tests möglich
- Gegenüber bestehenden Decompilation-Projekten zeichnet es sich durch vollständige funktionale Kompatibilität und Unterstützung von Debugging-Tools aus
- Das Projekt ist eine äußerst wertvolle Ressource für Spiel-Engine-Forschung, Modifikation, Portierung und Engine-Analyse
Bedeutung und Wettbewerbsfähigkeit des Projekts
- Duke Nukem: Zero Hour ist ein bekanntes Action-Spiel, das exklusiv auf der Nintendo-64-Plattform veröffentlicht wurde
- Dieses Open-Source-Projekt dekompiliert die komplette ROM des Spiels vollständig mit C, Python usw. und rekonstruiert sie auf Quellcode-Ebene
- Anders als andere N64-Decompilierungsprojekte bietet es vollständige Kompatibilität, einen funktionierenden ROM-Build und die Ausführung, Quellcode-basiertes Debugging sowie Mehrfachversionsunterstützung
- Es hat einen erheblichen Quellenwert für die Erforschung der Game-Engine-Struktur und der Wissensgrundlagen der Konsolenspiel-Entwicklung der 1990er Jahre
- Mehrere automatische Analyse-/Decompilierungs-Tools (asm-differ, mips2c, splat, decomp-permuter usw.) sind im Projekt integriert und maximieren die Effizienz der Entwickler
Hauptfunktionen und Architektur
Gesamtstruktur
- Das Projekt ist mehrsprachig aufgebaut und in Teile in C (über 95 %), Python, Roff, C++, Makefile und Shell aufgeteilt
- Wichtige Verzeichnisse:
- .github/workflows: CI- und Automatisierungseinstellungen
- include, libs, src: Spielquellcode, Bibliotheken und Header-Verwaltung
- tools: Analyse-, Extraktions- und Konvertierungstools
- versions: Struktur zur gleichzeitigen Unterstützung verschiedener Spielversionen, darunter US/FR
- Das Projekt wird aktiv gepflegt, mit rund 370 Commits
Build- und Nutzungsmethodik
- Ubuntu-20.04-Umgebung als Basis und Docker-Unterstützung
- ROM-Extraktion, Bit-für-Bit-Vergleich, Unterstützung für den NON_MATCHING-Modus bei inkonsistenten Treffern
- Unterstützung für die französische und US-ROM-Version, mit optionaler Konfiguration je nach Bedarf
- Nutzung der Docker-Umgebung und der Mutagen Extension bietet OS-Kompatibilität für verschiedene Plattformen (WIN/Mac/Linux)
Debugging- und Entwicklungstools
- Quellcode-basiertes Debugging auf Basis von gdb und mupen64plus (derzeit Windows-vorrangig)
- Unterstützung für die Integration mit Visual Studio Code und der Native Debug Extension
- Zentrale Automatisierungs- und Analysetools:
- asm-differ: Vergleich von Assembler-Quelle/Ziel auf Assembly-Ebene
- decomp-permuter: Neuausrichtung von Code und automatische Punktvergabe
- mips2c: Konvertierung von MIPS-Assembler nach C
- splat: ROM-Strukturanalyse-Tool
Einsatzmöglichkeiten
- Nutzungsmöglichkeiten für Spiel-Reverse-Engineering, Portierung, Engine-Analyse und klassische Spiele-Verbesserungsprojekte
- Sehr geeignet auch für historische Erhaltung und Bildungsforschung
- Laufende Wartung und Updates erfolgen aktiv für verschiedene Plattformen und Versionen
Fazit
- Dieses Open-Source-Projekt ist ein seltener Fall, der eine vollständige Offenlegung des vollständigen Quellcodes von klassischer Konsolenspielsoftware der 1990er Jahre realisiert
- Für Forscher im Bereich Spiel- und Konsolen-Reverse-Engineering, junge Entwickler sowie für Portierungs- und Fangame-Entwickler ist es eine wertvolle Ressource
1 Kommentare
Hacker-News-Kommentare