Files
NX2navi/README.md
Claude c403547c8b Add the NX2navi launcher: a one-click setup that builds the game from the player's dump, starts it and keeps it up to date.
NX2navi-Setup.exe installs the launcher into %LOCALAPPDATA%\Programs\NX2navi without administrator rights, with
shortcuts and an Apps entry. The launcher finds the player's .nup, downloads the build tools itself (the MSYS2 UCRT64
packages toolchain.lock.json pins, checked by sha256 and unpacked without pacman, and zbic from PyPI) and runs
tools/make_game.py, whose steps it shows with their progress. Its window follows the game's options menu: colours
sampled from it, the menu's filigree, the white glowing cursor, the Triforce in the title band and as the programs'
icon, and all text in the game's Cetra Display, decoded from the player's own dump. Mouse, keyboard and an XInput
pad drive it.

Updates come from GitHub releases (NX2navi-update.json): the new version is downloaded, checked and staged beside
the running one, the stub restarts into it and falls back to the previous version when it fails to start, and the
game is rebuilt without the dump. make_game.py now keys its exefs and romfs steps on the game files alone, has
--rebuild and --events, compiles only the files whose source, headers, flags or compiler changed, and replaces
ocarina.exe only once the new one links. tools/make_launcher.py builds the release on Windows or Linux.

Tested: tests/launcher_test.py (19 tests), the real toolchain download and install, and under Wine 11 the setup,
the stub, the window on the bundled Windows Python, an update from a local feed by clicking Updates, the rollback
of a version that fails to start, and the downloaded clang compiling and linking a program against the game's
libraries.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Merged onto the current port: make_game.py keeps the launcher's step keys, cached link and in-place swap, and its
own runtime manifest (windres), AMD's FidelityFX library and the shader preparation, which becomes a step of its own
("shaders") that the launcher shows in its install, rebuild and update jobs. make_launcher.py ships the shader tools
and, with --ffx, AMD's library.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 14:50:52 -05:00

4.3 KiB

NX2navi

NX2navi is a static recompilation of The Legend of Zelda: Ocarina of Time for Nintendo Switch 2 (game version 1.1.1) into a native x86-64 application for Windows, with a Vulkan renderer (docs/architecture.md).

Important

No game files are included. You need your own legally obtained copy of the game, dumped from your own console. Instructions for obtaining those files will not be provided.

The game is built from your files on your machine, so the result contains the game. It is for your own use. Do not share it.

Status

Early development. Kokiri Forest and the areas around it play at 60 fps and above; visual bugs and crashes are still expected.

Screenshots

Report problems as issues, following CONTRIBUTING.md.

Features

  • Native code, not emulation
  • 60 fps by default, or a limit of 30 to 240 fps, the display's refresh rate or unlimited
  • Native widescreen and ultrawide (the window's shape, 21:9 or 32:9) with the HUD, menus and movies kept 16:9
  • Resolutions above the game's 1440p: 1800p, 4K, 5K or the window's own size, sharp on high-DPI displays
  • Upscaling and anti-aliasing: NVIDIA DLSS (DLAA, Quality, Balanced, Performance, Ultra Performance; RTX GPUs) or AMD FSR 3.1 (Native AA and the same modes; any GPU), which render the 3D scene at the mode's share and keep the HUD sharp; or AMD FSR 1 or bilinear scaling to the window, with a sharpness setting; black bars or stretch
  • Frame generation with AMD FSR 3.1 (any GPU): a generated frame between every two the game draws, with the HUD kept out of it, for about twice the frame rate on a fast display
  • HDR on HDR displays: the game's own native HDR, or an enhanced HDR made from its SDR picture
  • Every shader prepared when the game is built, so play does not stop to compile them
  • In-game settings menu (F1, or Minus and Plus together on a gamepad) and performance overlay (F10)
  • Keyboard, mouse and gamepads with remapping, Nintendo or Xbox button layout, rumble and gyro; the game follows whichever connected gamepad you press
  • Stereo or 5.1 surround sound output
  • Docked or handheld console mode
  • Graphics cards with less than 20 GiB of video memory keep the game's textures compressed (BC3), about half the video memory at the same speed

Installing

Download NX2navi-Setup-<version>.exe from the releases and start it next to your .nup dump. The launcher it installs finds the dump, downloads the build tools, builds the game on your PC (10 to 25 minutes, once) and starts it; afterwards it keeps the port up to date and rebuilds only what changed (docs/launcher.md). docs/README-BuildKit.md describes the same build by hand, docs/building.md building from source. Settings are in the in-game menu and in nx2navi.ini (nx2navi.ini.example lists every key). Controls: docs/controls.md.

Requirements: Windows 10 or later, an x86-64 CPU with SSE4.2 (AVX2/FMA machines get a faster build), a GPU with Vulkan 1.3, VK_EXT_external_memory_host and VK_EXT_mesh_shader.

License

This repository is private. Its additions and changes are all rights reserved (LICENSE-ADDITIONS): no part of them may be copied, published, or used to train, fine-tune or prompt AI models or AI coding tools without written permission. The base import stays under its MIT License, and third-party code keeps its own license (THIRD_PARTY_NOTICES.md). No license grants anything for Nintendo's game.

Ocarina Recomp is an independent, non-commercial fan project, not affiliated with or endorsed by Nintendo. The Legend of Zelda, Ocarina of Time and Nintendo Switch are trademarks of Nintendo.

Building from source

docs/building.md lists the toolchain and the steps. Everything the build writes stays under build\ and generated\, which git ignores; run tools/check_content.py before a commit.

Most of the code and documentation is written by AI coding agents (Claude Code) under the maintainer's direction; the maintainer plays every build and decides what is merged. AGENTS.md holds the rules they work under.