tools/make_game.py checks the title and main's build id (1.1.1), stores the ExeFS modules plainly (ZBIC through the player's own zbic package), packs every RomFS file straight from the container into romfs.bin and index.json after checking its sha256, lifts with recomp/patches-v111.txt plus the two SDK bring-up fixes, and compiles and links with MSYS2's clang into <out>/ocarina.exe with the DLLs it loads and the shader translator beside it. Finished steps are skipped on a rerun. tools/nup.py reads the container; tools/make_kit.py assembles the kit (sources, tools, the translator, README-BuildKit.md) and refuses it when check_content finds game content. Measured from an empty folder: 5.4 minutes in all on a 16-thread Ryzen 7 (RomFS 25 s, lift 48 s, compile 237 s), and the result plays into Kokiri Forest. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3.6 KiB
Ocarina Recomp build kit
This kit builds The Legend of Zelda: Ocarina of Time (Nintendo Switch 2, game version 1.1.1) as a native Windows
program on your PC, from your own copy of the game. The kit contains no game code or data. Everything the build
writes (ocarina.exe, the RomFS image, the shader cache, your saves) comes from your game: keep it to yourself.
What you need
- 64-bit Windows 10 or 11, 16 GB of RAM, a Vulkan 1.3 graphics card with mesh shaders and a current driver (tested on NVIDIA).
- Your own dump of the game as a
.nupfile (or itsexefsandromfsfolders), with the 1.1.1 update: program0400486024DEC000, main builde0f3ccfa. Other versions are refused. - About 30 GB free on the disk you build to, besides the dump.
One-time setup (about 15 minutes)
-
Python 3.12 or later from python.org. Tick "Add python.exe to PATH" in the installer. Then, in a Command Prompt:
py -m pip install numpy lz4 zstandard zbiczbicunpacks the game's compressed program files. It is a separate GPL-2.0 package you install yourself; the kit only calls it. -
MSYS2 from msys2.org, installed to the default
C:\msys64. Open MSYS2 UCRT64 from the Start menu and paste:pacman -S --needed mingw-w64-ucrt-x86_64-clang mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-sdl3 mingw-w64-ucrt-x86_64-opus mingw-w64-ucrt-x86_64-libvpx mingw-w64-ucrt-x86_64-dav1d mingw-w64-ucrt-x86_64-zstd mingw-w64-ucrt-x86_64-vulkan-headers mingw-w64-ucrt-x86_64-vulkan-loader mingw-w64-ucrt-x86_64-vulkan-memory-allocatorAnswer
Ywhen it asks. If MSYS2 is somewhere other thanC:\msys64, add--msys <folder>\ucrt64to the build command.
Build (about 10 to 25 minutes, once)
Unpack this kit anywhere, open a Command Prompt in its folder and run:
py -I tools\make_game.py --nup "C:\path\to\your game.nup" --out "C:\Games\Ocarina"
With extracted folders instead, use --exefs "C:\path\exefs" --romfs "C:\path\romfs" in place of --nup. To only
check that your dump is the right version, add --check (it builds nothing).
The build checks the version, unpacks the program files, packs the 26 GB RomFS image (every file is checked against the dump's own checksums), turns the game's code into C and compiles it (about 6 minutes on a 16-thread Ryzen 7; longer on fewer cores). You can use your PC meanwhile. If it stops, run the same command again: finished steps are skipped.
When it says finished, start C:\Games\Ocarina\ocarina.exe. You can delete C:\Games\Ocarina\build-cache (about
5 GB) afterwards.
Playing
- F1 opens the settings menu. Settings are saved in
nx2navi.inibeside the game; saves go toprofile\. - The first time a shader appears it is translated, which can stutter briefly; it is cached from then on. After an update of the kit or your graphics driver, the next start shows "Preparing shaders" once.
- Logs are in
logs\. When reporting a problem, say where you were in the game and which graphics card you have, and attachlogs\nx2navi.log. Never send game files.
If something goes wrong
| Message | What to do |
|---|---|
not game version 1.1.1 |
Install the 1.1.1 update and dump the game again |
the Python package ... is missing |
Run the pip install line above |
...\clang.exe is missing |
Run the pacman line above in MSYS2 UCRT64 |
needs ... GB free |
Free space on the --out disk, or build to another one |
| The game opens and closes | Update your graphics driver, then send logs\nx2navi.log |