- WARNING! -
This repository is a work in progress, and while it can be used to make certain changes, it's still
constantly evolving. If you use it for modding purposes in its current state, please be aware that
the codebase can drastically change at any time. Also note that some parts of the ROM may not be
'shiftable' yet, so modifying them could be difficult at this point.
Dies ist eine WIP- Dekompilierung von The Legend of Zelda: Ocarina of Time . Der Zweck des Projekts besteht darin, eine Quellcodebasis für das Spiel von Grund auf neu zu erstellen und dabei die im Spiel gefundenen Informationen sowie statische und/oder dynamische Analysen zu nutzen. Es wird kein PC-Anschluss hergestellt. Für weitere Informationen können Sie das Team auf unserem Discord-Server kontaktieren.
Es werden folgende Versionen erstellt:
Name | Zeitstempel erstellen | Beschreibung | MD5-Hash der Eingabe-ROM(s) |
---|---|---|---|
ntsc-1.0 | 98-10-21 04:56:31 | NTSC 1.0 (Japan/USA) | 9f04c8e68534b870f707c247fa4b50fc 5bd1fe107bf8106b2ab6650abecd54d6 |
ntsc-1.1 | 98-10-26 10:58:45 | NTSC 1.1 (Japan/USA) | 1bf5f42b98c3e97948f01155f12e2d88 721fdcc6f5f34be55c43a807f2a16af4 |
pal-1.0 | 98-11-10 14:34:22 | PAL 1.0 (Europa) | e040de91a74b61e3201db0e2323f768a |
ntsc-1.2 | 98-11-12 18:17:03 | NTSC 1.2 (Japan/USA) | 2258052847bdd056c8406a9ef6427f13 57a9719ad547c516342e1a15d5c28c3d |
Kumpel-1.1 | 98-11-18 17:36:49 | PAL 1.1 (Europa) | d714580dd74c2c033f5e1b6dc0aeac77 |
gc-jp | 29.10.02 23:49:53 | GameCube Japan | 33fb7852c180b18ea0b9620b630f413f |
gc-jp-mq | 02-10-30 00:15:15 | GameCube Japan Master Quest | 69895c5c78442260f6eafb2506dc482a |
gc-us | 19.12.02 13:28:09 | GameCube USA | cd09029edcfb7c097ac01986a0f83d3f |
gc-us-mq | 19.12.02 14:05:42 | GameCube US Master Quest | da35577fe54579f6a266931cc75f512d |
gc-eu-mq-dbg | 03-02-21 00:16:31 | GameCube Europe/PAL Master Quest Debug | 75e344f41c26ec2ec5ad92caa9e25629 8ca71e87de4ce5e9f6ec916202a623e9 f751d1a097764e2337b1ac9ba1e27699 dde376d47187b931820d5b2957cded14 |
gc-eu | 03-02-21 20:12:23 | GameCube Europa/PAL | 2c27b4e000e85fd78dbca551f1b1c965 |
gc-eu-mq | 03-02-21 20:37:19 | GameCube Europa/PAL Master Quest | 1618403427e4344a57833043db5ce3c3 |
gc-jp-ce | 03-10-08 21:53:00 | GameCube Japan (Collector's Edition Disc) | 0c13e0449a28ea5b925cdb8af8d29768 |
Die Standardversion ist gc-eu-mq-dbg
, also das GameCube Europe/PAL Master Quest Debug ROM.
Hinweis: Dieses Repository enthält keine der zum Erstellen des ROM erforderlichen Assets. Um die benötigten Assets zu extrahieren, ist eine vorherige Kopie des Spiels erforderlich.
Website: https://zelda.deco.mp
Discord: https://discord.zelda.deco.mp
Wir empfehlen die Verwendung von WSL unter Windows oder nativem Linux, was im Rest dieser Readme-Datei beschrieben wird. Wir haben derzeit Anleitungen für
(Diese hängen auch von den Linux-Anweisungen ab.) Einige davon sind möglicherweise auch veraltet oder werden nicht gewartet; Normalerweise verwenden unsere Mitwirkenden WSL, Linux und macOS, daher sollten diese Anweisungen aktuell sein.
Installieren Sie unter Windows 10 oder 11 WSL und eine Distribution, indem Sie diesem WSL-Installationshandbuch folgen. Wir empfehlen die Verwendung von Ubuntu 20.04 als Linux-Distribution.
Installieren Sie für ältere Windows-Versionen eine Linux-VM oder lesen Sie die Docker-Anweisungen.
Für den Build-Prozess gelten die folgenden Paketanforderungen:
Unter Debian/Ubuntu (wir empfehlen die Verwendung) können Sie diese mit den folgenden Befehlen installieren:
sudo apt-get update
sudo apt-get install git build-essential binutils-mips-linux-gnu python3 python3-pip python3-venv libpng-dev libxml2-dev
Wenn Sie GCC als Compiler für Ocarina of Time verwenden, benötigen Sie außerdem:
Hinweis: Wenn Sie WSL verwenden, empfehlen wir Ihnen dringend, mit git
von Linux in das Linux-Dateisystem der WSL zu klonen. Das Klonen in das Windows-Dateisystem führt zu viel langsameren Lese-/Schreibgeschwindigkeiten und verursacht oft Probleme, wenn Windows die Dateien mit den falschen Zeilenenden kopiert, die das Compiler-IDO nicht richtig verarbeiten kann.
Klonen Sie https://github.com/zeldaret/oot.git
dort, wo Sie das Projekt haben möchten, mit einem Befehl wie:
git clone https://github.com/zeldaret/oot.git
Dadurch wird der Inhalt des GitHub-Repositorys in einen neuen Ordner im aktuellen Verzeichnis mit dem Namen oot
kopiert. Wechseln Sie in dieses Verzeichnis, bevor Sie etwas anderes tun:
cd oot
Platzieren Sie eine Kopie des Master Quest (Debug) ROM im Ordner baseroms/gc-eu-mq-dbg/
. Wenn Sie unter WSL arbeiten, können Sie den Befehl explorer.exe .
um das aktuelle Verzeichnis im Windows-Datei-Explorer zu öffnen.
Benennen Sie die Datei je nach ursprünglicher Erweiterung in baserom.z64
, baserom.n64
oder baserom.v64
um.
Richten Sie alles mit dem folgenden Befehl ein und extrahieren Sie es aus Ihrem ROM:
make setup
Dadurch werden einige Abhängigkeiten (von pip) heruntergeladen und Tools für den Build-Prozess kompiliert. Anschließend wird ein neues ROM baseroms/gc-eu-mq-dbg/baserom-decompressed.z64
generiert, bei dem der Overdump entfernt und der Header gepatcht wird. Außerdem werden die einzelnen Assets aus dem ROM extrahiert.
Führen Sie make aus, um das ROM zu erstellen. Stellen Sie sicher, dass Ihr Pfad zum Projekt nicht zu lang ist, da es sonst zu Fehlern bei diesem Vorgang kommen kann.
make
Wenn alles gut geht, sollte ein neues ROM unter build/gc-eu-mq-dbg/oot-gc-eu-mq-dbg.z64
erstellt und der folgende Text gedruckt werden:
build/gc-eu-mq-dbg/oot-gc-eu-mq-dbg.z64: OK
Wenn Sie stattdessen Folgendes sehen:
build/gc-eu-mq-dbg/oot-gc-eu-mq-dbg.z64: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
Das bedeutet, dass das eingebaute ROM nicht mit dem Basis-ROM übereinstimmt, sodass ein Fehler aufgetreten ist oder ein Teil des Codes nicht übereinstimmt.
HINWEIS: Um den Build zu beschleunigen, können Sie entweder:
-jN
an make setup
und make
, wobei N die Anzahl der Threads ist, die im Build verwendet werden sollen. Die allgemein anerkannte Weisheit besteht darin, die Anzahl der virtuellen Kerne Ihres Computers zu verwenden.-j
für make setup
und make
, um so viele Threads wie möglich zu verwenden. Beachten Sie jedoch, dass dies auf Systemen der unteren Preisklasse zu viel Speicher verbrauchen kann. Beides hat den Nachteil, dass die Reihenfolge der Terminalausgabe durcheinander ist. Daher ist es zum Debuggen am besten, bei einem Thread zu bleiben (dh nicht -j
oder -jN
zu übergeben).
Das Projekt-Makefile ist ziemlich konfigurierbar und kann verwendet werden, um andere Versionen des Spiels zu erstellen oder das Repo für das Modding vorzubereiten. Weitere Informationen finden Sie in den Optionen oben im Makefile.
Alle Beiträge sind willkommen. Dies ist eine Gruppenarbeit und selbst kleine Beiträge können einen Unterschied machen. Einige Aufgaben erfordern auch keine großen Kenntnisse, um loszulegen.
Die meisten Diskussionen finden auf unserem Discord-Server statt, wo Sie gerne fragen können, ob Sie Hilfe beim Einstieg benötigen oder Fragen zu diesem Projekt und anderen Dekompilierungsprojekten haben.