- 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.
Il s'agit d'une décompilation WIP de The Legend of Zelda : Ocarina of Time . Le but du projet est de recréer une base de code source pour le jeu à partir de zéro, en utilisant les informations trouvées dans le jeu ainsi qu'une analyse statique et/ou dynamique. Il ne produit pas de port PC. Pour plus d'informations, vous pouvez contacter l'équipe sur notre serveur Discord.
Il construit les versions suivantes :
Nom | Horodatage de construction | Description | Hachage MD5 de la ou des ROM d'entrée |
---|---|---|---|
ntsc-1.0 | 98-10-21 04:56:31 | NTSC 1.0 (Japon/États-Unis) | 9f04c8e68534b870f707c247fa4b50fc 5bd1fe107bf8106b2ab6650abecd54d6 |
ntsc-1.1 | 98-10-26 10:58:45 | NTSC 1.1 (Japon/États-Unis) | 1bf5f42b98c3e97948f01155f12e2d88 721fdcc6f5f34be55c43a807f2a16af4 |
pal-1.0 | 98-11-10 14:34:22 | PAL 1.0 (Europe) | e040de91a74b61e3201db0e2323f768a |
ntsc-1.2 | 98-11-12 18:17:03 | NTSC 1.2 (Japon/États-Unis) | 2258052847bdd056c8406a9ef6427f13 57a9719ad547c516342e1a15d5c28c3d |
pal-1.1 | 98-11-18 17:36:49 | PAL 1.1 (Europe) | d714580dd74c2c033f5e1b6dc0aeac77 |
gc-jp | 02-10-29 23:49:53 | GameCube Japon | 33fb7852c180b18ea0b9620b630f413f |
gc-jp-mq | 02-10-30 00:15:15 | Quête principale du GameCube Japon | 69895c5c78442260f6eafb2506dc482a |
gc-nous | 02-12-19 13:28:09 | GameCube États-Unis | cd09029edcfb7c097ac01986a0f83d3f |
gc-us-mq | 02-12-19 14:05:42 | Quête principale du GameCube US | da35577fe54579f6a266931cc75f512d |
gc-eu-mq-dbg | 03-02-21 00:16:31 | Débogage de GameCube Europe/PAL Master Quest | 75e344f41c26ec2ec5ad92caa9e25629 8ca71e87de4ce5e9f6ec916202a623e9 f751d1a097764e2337b1ac9ba1e27699 dde376d47187b931820d5b2957cded14 |
gc-eu | 03-02-21 20:12:23 | GameCube Europe/PAL | 2c27b4e000e85fd78dbca551f1b1c965 |
gc-eu-mq | 03-02-21 20:37:19 | Quête principale GameCube Europe/PAL | 1618403427e4344a57833043db5ce3c3 |
gc-jp-ce | 03-10-08 21:53:00 | GameCube Japan (disque édition collector) | 0c13e0449a28ea5b925cdb8af8d29768 |
La version par défaut est gc-eu-mq-dbg
, c'est-à-dire la ROM de débogage GameCube Europe/PAL Master Quest.
Remarque : ce référentiel n'inclut aucun des éléments nécessaires à la création de la ROM. Une copie préalable du jeu est requise pour extraire les éléments nécessaires.
Site Internet : https://zelda.deco.mp
Discorde : https://discord.zelda.deco.mp
Nous vous recommandons d'utiliser WSL sous Windows ou Linux natif, décrit dans le reste de ce fichier Lisez-moi. Nous avons actuellement des instructions pour
(Ceux-ci dépendront également des instructions Linux.) Certains d'entre eux peuvent également être obsolètes ou non maintenus ; nos contributeurs utilisent généralement WSL, Linux et macOS, ces instructions doivent donc être à jour.
Pour Windows 10 ou 11, installez WSL et une distribution en suivant ce guide d'installation WSL. Nous vous recommandons d'utiliser Ubuntu 20.04 comme distribution Linux.
Pour les anciennes versions de Windows, installez une machine virtuelle Linux ou reportez-vous aux instructions de Docker.
Le processus de génération a les exigences de package suivantes :
Sous Debian / Ubuntu (que nous recommandons d'utiliser), vous pouvez les installer avec les commandes suivantes :
sudo apt-get update
sudo apt-get install git build-essential binutils-mips-linux-gnu python3 python3-pip python3-venv libpng-dev libxml2-dev
Si vous utilisez GCC comme compilateur pour Ocarina of Time, vous aurez également besoin de :
NB Si vous utilisez WSL, nous vous encourageons fortement à cloner dans le système de fichiers Linux de WSL à l'aide du git
de Linux. Le clonage dans le système de fichiers Windows entraînera des vitesses de lecture/écriture beaucoup plus lentes et entraînera souvent des problèmes lorsque Windows copie les fichiers avec des fins de ligne incorrectes, ce que l'IDO du compilateur ne peut pas gérer correctement.
Clonez https://github.com/zeldaret/oot.git
là où vous souhaitez avoir le projet, avec une commande telle que :
git clone https://github.com/zeldaret/oot.git
Cela copiera le contenu du référentiel GitHub dans un nouveau dossier du répertoire actuel appelé oot
. Accédez à ce répertoire avant de faire quoi que ce soit d'autre :
cd oot
Placez une copie de la ROM Master Quest (Debug) dans le dossier baseroms/gc-eu-mq-dbg/
. Si vous êtes sous WSL, vous pouvez exécuter la commande explorer.exe .
pour ouvrir le répertoire actuel dans l'explorateur de fichiers Windows.
Renommez le fichier en baserom.z64
, baserom.n64
ou baserom.v64
, selon l'extension d'origine.
Configurez et extrayez tout de votre ROM avec la commande suivante :
make setup
Cela télécharge certaines dépendances (depuis pip) et compile les outils pour le processus de construction. Ensuite, il génère une nouvelle ROM baseroms/gc-eu-mq-dbg/baserom-decompressed.z64
dans laquelle le overdump sera supprimé et l'en-tête sera corrigé. Il extraira également les actifs individuels de la ROM.
Exécutez make pour créer la ROM. Assurez-vous que votre chemin vers le projet n'est pas trop long, sinon ce processus pourrait entraîner une erreur.
make
Si tout se passe bien, une nouvelle ROM doit être construite dans build/gc-eu-mq-dbg/oot-gc-eu-mq-dbg.z64
et le texte suivant imprimé :
build/gc-eu-mq-dbg/oot-gc-eu-mq-dbg.z64: OK
Si à la place vous voyez ce qui suit :
build/gc-eu-mq-dbg/oot-gc-eu-mq-dbg.z64: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
Cela signifie que la ROM construite n'est pas la même que celle de base, donc quelque chose s'est mal passé ou une partie du code ne correspond pas.
REMARQUE : pour accélérer la construction, vous pouvez soit :
-jN
pour make setup
et make
, où N est le nombre de threads à utiliser dans la construction. La sagesse généralement acceptée consiste à utiliser le nombre de cœurs virtuels dont dispose votre ordinateur.-j
pour make setup
et make
, pour utiliser autant de threads que possible, mais attention, cela peut utiliser trop de mémoire sur les systèmes bas de gamme. Ces deux éléments présentent l'inconvénient que l'ordre de sortie du terminal est brouillé, donc pour le débogage, il est préférable de s'en tenir à un seul thread (c'est-à-dire de ne pas transmettre -j
ou -jN
).
Le projet Makefile est assez configurable et peut être utilisé pour créer d'autres versions du jeu ou préparer le dépôt pour le modding. Consultez les options décrites en haut du Makefile pour plus d'informations.
Toutes les contributions sont les bienvenues. Il s’agit d’un effort de groupe et même de petites contributions peuvent faire la différence. Certaines tâches ne nécessitent pas non plus beaucoup de connaissances pour démarrer.
La plupart des discussions ont lieu sur notre serveur Discord, où vous pouvez demander si vous avez besoin d'aide pour démarrer ou si vous avez des questions concernant ce projet et d'autres projets de décompilation.