Case study
Ocarina of Time: decompilation with MD5-checked ROM builds for 16 versions
Recreates a C source base for Ocarina of Time that rebuilds 16 Nintendo 64, GameCube and iQue Player ROM versions, using information from the game and static and dynamic analysis. Assets come from the user’s own ROM and each default build is checked against that version’s MD5; README states the project is not producing a PC port and still calls the repository a work in progress.
- Targets
- Game
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Sources reviewed
Requirements & limits
- Prerequisites: Each build needs the user’s own base ROM for the chosen version, matching an MD5 listed in README; the repository includes no game assets and extracts them from that ROM during setup. Native ports such as Ship of Harkinian, and recompilation projects, are separate from this repository’s output.
- Prerequisites: README documents Linux or WSL builds, with separate macOS and Docker guides, needing Git, build-essential, curl, Python 3.10+ with pip and venv, libxml2 and a MIPS binutils toolchain. N64 and GameCube code builds with IDO 7.1 and 5.3 through ido-static-recomp; iQue builds also use EGCS for some files, and an optional GCC build is non-matching.
- Scope: README describes recreating a source base from scratch using information inside the game and static and/or dynamic analysis, and states that it is not producing a PC port. It builds 16 N64, GameCube and iQue Player ROM versions (default gc-eu-mq-dbg); some ROM parts may not yet be shiftable, so modding can be difficult.
- Testing evidence: With the default COMPARE=1, make checks the built ROM’s MD5 against the version’s checksum file and prints OK or FAILED; NON_MATCHING=1 or COMPILER=gcc turns the check off. GitHub Actions, using a private container holding the base ROMs, reported all 16 version builds successful for the pinned commit, and the mutable progress badge read 100% on review.
- License: The pinned tree has no license file and GitHub detects none, so no reuse license is stated; Nintendo content and compiler components keep their own terms.
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · zeldaret/oot · Revision 8a3634c
- Makefile GitHub · zeldaret/oot · Revision 8a3634c
- docs/compilers.md GitHub · zeldaret/oot · Revision 8a3634c
- docs/BUILDING_MACOS.md GitHub · zeldaret/oot · Revision 8a3634c
- baseroms/ntsc-1.0/checksum-US.md5 GitHub · zeldaret/oot · Revision 8a3634c
- .github/workflows/ci.yml GitHub · zeldaret/oot · Revision 8a3634c
- https://github.com/zeldaret/oot/actions/runs/38614247271
- https://zelda.deco.mp/games/oot
More in Games
- Paper Mario: matching Nintendo 64 decompilation for four releases · Case study
- Paper Mario: The Thousand-Year Door: an early matching GameCube decompilation · Case study
- Perfect Dark: matching Nintendo 64 decompilation · Case study
- Petari: a matching Super Mario Galaxy decompilation · Case study
- Phantom Hourglass: an early-stage matching Nintendo DS decompilation · Case study
- Pikmin 2: a fully matched GameCube decompilation across five releases · Case study