- 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.
Esta é uma descompilação WIP de The Legend of Zelda: Ocarina of Time . O objetivo do projeto é recriar do zero uma base de código-fonte do jogo, utilizando informações encontradas dentro do jogo junto com análises estáticas e/ou dinâmicas. Não está produzindo uma porta de PC. Para mais informações você pode entrar em contato com a equipe em nosso servidor Discord.
Ele constrói as seguintes versões:
Nome | Carimbo de data/hora da compilação | Descrição | Hash MD5 de ROM(s) de entrada |
---|---|---|---|
ntsc-1.0 | 98-10-21 04:56:31 | NTSC 1.0 (Japão/EUA) | 9f04c8e68534b870f707c247fa4b50fc 5bd1fe107bf8106b2ab6650abecd54d6 |
ntsc-1.1 | 98-10-26 10:58:45 | NTSC 1.1 (Japão/EUA) | 1bf5f42b98c3e97948f01155f12e2d88 721fdcc6f5f34be55c43a807f2a16af4 |
amigo-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 (Japão/EUA) | 2258052847bdd056c8406a9ef6427f13 57a9719ad547c516342e1a15d5c28c3d |
amigo-1.1 | 98-11-18 17:36:49 | PAL 1.1 (Europa) | d714580dd74c2c033f5e1b6dc0aeac77 |
gc-jp | 02-10-29 23:49:53 | GameCube Japão | 33fb7852c180b18ea0b9620b630f413f |
gc-jp-mq | 02-10-30 00:15:15 | GameCube Japão Master Quest | 69895c5c78442260f6eafb2506dc482a |
gc-nós | 12/02/19 13:28:09 | GameCube EUA | cd09029edcfb7c097ac01986a0f83d3f |
gc-us-mq | 12/02/19 14:05:42 | GameCube US Master Quest | da35577fe54579f6a266931cc75f512d |
gc-eu-mq-dbg | 03-02-21 00:16:31 | Depuração do GameCube Europa/PAL Master Quest | 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 Japão (disco de edição de colecionador) | 0c13e0449a28ea5b925cdb8af8d29768 |
A versão padrão é gc-eu-mq-dbg
, ou seja, a ROM de depuração GameCube Europe/PAL Master Quest.
Nota: Este repositório não inclui nenhum dos ativos necessários para construir a ROM. É necessária uma cópia prévia do jogo para extrair os ativos necessários.
Site: https://zelda.deco.mp
Discord: https://discord.zelda.deco.mp
Recomendamos o uso de WSL no Windows ou Linux nativo, descrito no restante deste leia-me. Atualmente temos instruções para
(Isso também dependerá das instruções do Linux.) Alguns deles também podem estar desatualizados ou sem manutenção; normalmente nossos colaboradores usam WSL, Linux e macOS, portanto, estas instruções devem estar atualizadas.
Para Windows 10 ou 11, instale o WSL e uma distribuição seguindo este Guia de instalação do WSL. Recomendamos usar o Ubuntu 20.04 como distribuição Linux.
Para versões mais antigas do Windows, instale uma VM Linux ou consulte as instruções do Docker.
O processo de construção tem os seguintes requisitos de pacote:
No Debian/Ubuntu (que recomendamos usar), você pode instalá-los com os seguintes comandos:
sudo apt-get update
sudo apt-get install git build-essential binutils-mips-linux-gnu python3 python3-pip python3-venv libpng-dev libxml2-dev
Se você estiver usando o GCC como compilador para Ocarina of Time, você também precisará de:
Observação: se estiver usando WSL, recomendamos fortemente que você clone no sistema de arquivos Linux do WSL usando git
do Linux. A clonagem no sistema de arquivos do Windows resultará em velocidades de leitura/gravação muito mais lentas e geralmente causa problemas quando o Windows copia os arquivos com terminações de linha erradas, que o IDO do compilador não consegue manipular corretamente.
Clone https://github.com/zeldaret/oot.git
onde deseja ter o projeto, com um comando como:
git clone https://github.com/zeldaret/oot.git
Isso copiará o conteúdo do repositório GitHub para uma nova pasta no diretório atual chamada oot
. Mude para este diretório antes de fazer qualquer outra coisa:
cd oot
Coloque uma cópia da ROM Master Quest (Debug) dentro da pasta baseroms/gc-eu-mq-dbg/
. Se você estiver no WSL, poderá executar o comando explorer.exe .
para abrir o diretório atual no explorador de arquivos do Windows.
Renomeie o arquivo para baserom.z64
, baserom.n64
ou baserom.v64
, dependendo da extensão original.
Configure e extraia tudo da sua ROM com o seguinte comando:
make setup
Isso baixa algumas dependências (do pip) e compila ferramentas para o processo de construção. Em seguida, ele gera uma nova ROM baseroms/gc-eu-mq-dbg/baserom-decompressed.z64
que terá o overdump removido e o cabeçalho corrigido. Ele também extrairá os ativos individuais da ROM.
Execute make para construir a ROM. Certifique-se de que o caminho para o projeto não seja muito longo, caso contrário, o processo poderá apresentar erros.
make
Se tudo correr bem, uma nova ROM deve ser construída em build/gc-eu-mq-dbg/oot-gc-eu-mq-dbg.z64
e o seguinte texto impresso:
build/gc-eu-mq-dbg/oot-gc-eu-mq-dbg.z64: OK
Se, em vez disso, você vir o seguinte:
build/gc-eu-mq-dbg/oot-gc-eu-mq-dbg.z64: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
Isso significa que a ROM construída não é igual à ROM base, então algo deu errado ou alguma parte do código não corresponde.
NOTA: para acelerar a construção, você pode:
-jN
para make setup
e make
, onde N é o número de threads a serem usados na construção. A sabedoria geralmente aceita é usar o número de núcleos virtuais que seu computador possui.-j
para make setup
e make
, para usar tantos threads quanto possível, mas cuidado, pois isso pode usar muita memória em sistemas de baixo custo. Ambos têm a desvantagem de que a ordem da saída do terminal é embaralhada; portanto, para depuração, é melhor manter um thread (ou seja, não passar -j
ou -jN
).
O projeto Makefile é bastante configurável e pode ser usado para construir outras versões do jogo ou preparar o repositório para modding. Veja as opções descritas no topo do Makefile para mais informações.
Todas as contribuições são bem-vindas. Este é um esforço de grupo e mesmo pequenas contribuições podem fazer a diferença. Algumas tarefas também não requerem muito conhecimento para serem iniciadas.
A maioria das discussões acontece em nosso servidor Discord, onde você pode perguntar se precisa de ajuda para começar ou se tiver alguma dúvida sobre este projeto e outros projetos de descompilação.