- C++ 44.7%
- C 34.2%
- Python 17.7%
- C# 2.3%
- SourcePawn 0.6%
- Other 0.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Still stuck points at discord.gg/triforce instead of GitHub's issues, and the update check is said to ask the Triforce site. The row that quotes Setup's own message stays until Setup's message changes. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> |
||
| .github | ||
| assets | ||
| builder | ||
| docs | ||
| gpu | ||
| host | ||
| nx2 | ||
| scripts | ||
| setup | ||
| tests | ||
| third_party | ||
| .gitattributes | ||
| .gitignore | ||
| .releaserc.json | ||
| AGENTS.md | ||
| changelog.txt | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| package.json | ||
| readme.md | ||
| recomplauncher.json | ||
| requirements.txt | ||
Your game, native on your PC.
No emulator: Triforce builds a real Windows program on your PC, from your own copy of the game, and draws its graphics on Vulkan.
About ◆ Install ◆ Playing ◆ Settings ◆ Controls ◆ Saves ◆ Mods ◆ How it works ◆ Credits
The three pieces
Triforce is a native PC version of your game. Every piece has one job: to make it look and play on your PC exactly the way it does on the console.
| Piece | What it does | |
|---|---|---|
| Power · the recompiler | Turns the game's own ARM64 code into a Windows program ahead of time. No emulation at runtime, no CPU guessing. | |
| Wisdom · the system | Plays the part of the console's operating system: files, saves, audio, controllers, threads and timing. | |
| Courage · the renderer | Rebuilds the console's graphics on Vulkan, with the game's own lighting, fog, water and foliage. |
What makes the game look right in Triforce:
Living forest: trees with full canopies, ferns, grass, drifting leaves and fireflies, all drawn by the game's own GPU culling.
True light: ambient light probes keep the hero, signs and plants lit in the shade; the pond's water and the game's own fog are as the console shows them, with no tuned workarounds on top.
Steady play: no freeze after loading a save, no exposure flicker, and GPU data that survives memory pools being rebuilt.
Triforce Setup: one small download that installs, builds, updates and launches the game, with your settings, controls and saves handled before the game even starts.
Important
Bring your own game. Triforce contains no game data, no keys and no ready-made executable, and it won't tell you how to get them. Everything is built on your PC, from your own copy, and everything it makes (the program, the generated code, shader caches and saves) stays yours. Don't share those files.
Installing Triforce
Every hero starts in the forest. You download one small program, Triforce Setup, and it does the rest: the game itself is assembled on your PC, from your copy, in one guided build.
Before you start
| You need | Details |
|---|---|
| 10 or 11, 64-bit. Nothing else to install: Setup runs on what Windows already has | |
| Vulkan 1.3 with mesh shaders, on an up-to-date driver (tested on NVIDIA) | |
| 16 GB of RAM or more (the game uses about 10 GB) | |
| About 2 GB for Setup and its tools, and about 60 GB free while building | |
Program 0400486024DEC000, update v131072, build e0f3ccfa, as a .nup or as romfs + exefs folders. Other versions are refused. |
Four steps to play
1 · Download. Get TriforceSetup.exe from the newest release
and run it.
2 · Install. Choose where Triforce goes (your own user folder by default, so no administrator prompt) and whether you want it on the desktop and in the Start menu. Setup then fetches the Triforce tools (about 250 MB, once).
3 · Forge your game. Point Setup at your game, either the .nup or the romfs and exefs folders; it checks the
version first. Pick a language and a folder for the game, then press Build. The first build takes around
40 minutes, and your PC stays usable the whole time.
4 · Play. Press Play. Settings and controls are in the game's own Options screen.
From then on, the Triforce shortcut on your desktop and in the Start menu opens Setup first: that's where updates and saves live.
Uninstalling
Remove Triforce from Windows' Settings → Apps. That takes Setup, its tools, its save-backups folder and the build's
work folder (%LOCALAPPDATA%\Triforce\build) away; your game folder and its saves stay until you delete them yourself.
Every time you play
Opening Triforce shows the Welcome back screen first: your game, your saves and the newest Triforce side by side.
- A new version is out: choose Update & merge to bring it into your game, or Not now to keep playing what you have; you'll be asked again next time. Updating downloads the new release and builds your game folder again from the game files it keeps. Only what changed is compiled again, so it usually takes a few minutes. Your saves and settings stay. Setup keeps itself up to date the same way.
- You're up to date: press Continue.
- No internet, or the Triforce site is down: Setup says so, and you play what you have.
Then come your settings, and Start game.
Settings
Choose your path. Settings live in the game's own Options screen (title screen or pause menu): the tabs Display,
Graphics, Audio, Controls and System sit beside the game's own list, and L / R switch between them. A few
apply at the next start; the game asks. They're saved in triforce_options.ini beside the game.
| Setting | Options |
|---|---|
| Quality preset | Custom, Minimum (4 GB), Low (6 GB), Balanced (8 GB), High (12 GB), Ultra (16 GB+): one choice that sets resolution, upscaling, frame generation and VRAM limits for your card |
| Fullscreen | Off, On |
| Frame generation | Off, 2x up to 8x |
| Frame pacing | Off, On |
| Resolution | Auto (the game's dynamic resolution), 100%, 75%, 67%, 50% |
| Upscaling | Off, Catmull-Rom, Lanczos, AMD FSR 1 |
| Sharpness | 0–100% |
| Texture filtering | Game's, 2x, 4x, 8x, 16x anisotropic |
| Game speed | Real time (keeps normal pace), Per frame (slows down below 60 fps) |
| Handheld profile | Off, On |
| Ultrawide | 16:9, Monitor's shape |
| FPS counter | Off, On |
| Controller in background | Off, On: the pad keeps playing while another window has focus |
| Text speed | Normal, 2x, 4x, Instant |
In game, F10 or Alt+Enter switches between a window and fullscreen. F1 opens the same options from anywhere.
Controls
Play with a controller, or with keyboard and mouse. The Controls tab of the game's Options sets what presses each of the console's buttons: one controller input and up to two keys.
Moving (W A S D) and the camera (arrow keys, or I J K L) are fixed.
Convert saves
Coming from NX2navi or an emulator? Your journey comes with you. Convert saves on the Welcome back screen brings your NX2navi saves into Triforce, and moves saves of this game between Triforce and an emulator in either direction:
- Into Triforce: Setup looks for your saves by itself (an NX2navi game on this PC; Eden, yuzu, suyu, Sudachi, Citron, torzu and Ryujinx, and portable copies started from a desktop or Start menu shortcut), or you choose the folder.
- Out of Triforce: your Triforce saves go back to an emulator the same way.
Every slot comes across as it is. Whatever gets replaced is backed up first, in the save-backups folder beside Setup.
Close the game and the emulator before converting.
If something goes wrong
| What happens | What to try |
|---|---|
| Setup says the build isn't supported | Check you chose the right game, with its update installed |
| Setup says GitHub could not be reached | Check your connection; you can still play what you have |
| The game opens and closes straight away | Update your graphics driver |
| A short hitch the first time something appears | Expected for now: shaders are being prepared, and the same spot is smooth next time |
| The wrong language | Edit the code in language.txt beside the game; the file lists them all |
Still stuck? Tell us in the Triforce Discord: where you were in the game, your graphics
card, a screenshot or clip, and triforce_log.txt from the game folder. Never attach game files.
Mods
Make a mods folder beside Triforce.exe and drop mods in with the usual layout: mods/<name>/romfs/... replaces or
adds game files. Deeper layouts such as mods/contents/<title id>/<name>/romfs work too.
- Start a folder's name with
-or_to switch that mod off. - When two mods carry the same file, the folder name that sorts last wins: number them
01-…,02-…to set the order. - Only RomFS mods load. Code patches (
.pchtxt,.ips) don't apply, because the game's code is compiled ahead of time. triforce_log.txtlists every mod that loaded and the files it supplied.
Under the surface
Zora wisdom: what happens beneath the water.
- Translate:
nx2/lift.pyturns the game's ARM64 machine code into C. - Compile:
nx2/build.pybuilds that C together withhost/, which stands in for the console's operating system. - Replay:
host/nvn_native.ccaptures every NVN2 graphics call the game makes, andgpu/vk/replays it on Vulkan. - Shaders: the console's Ampere shaders are lowered to Maxwell (
lower_to_maxwell.h), then translated to SPIR-V.
The development guide and design notes go deeper.
Building from source
From a clone of this repository, the game is built with:
python -I nx2/make_game.py --nup "C:\path\your-game.nup" --out "C:\Games\Triforce" --language en-US
Use --romfs and --exefs in place of --nup for unpacked folders, --update <game folder> to build a folder again
from the game files it keeps, or --check to only verify the game's version. You'll need Python 3 with lz4, numpy,
capstone, unicorn (2.1) and zstandard, plus the compiler and libraries described in the
development guide.
Triforce Setup lives in setup/: setup\build.ps1 -Version vX.Y.Z makes TriforceSetup.exe, and
setup\pack_tools.ps1 -Tag vX.Y.Z makes Triforce-Tools.zip. A release carries both files under the same tag.
Join the quest
The simplest help of all: run Triforce on a graphics card nobody has tried yet, or play further than anyone has, and report back.
Want to do more? Fork it, fix what you find, and send the change back. Keep game files, keys and anything generated from your game out of your fork. CONTRIBUTING.md explains the setup, the test commands, the code style and what a good pull request looks like.
The Sages
Seven Sages sealed the Triforce. These ones helped forge it.
Triforce is built off Hookshot, NotRexed's native recompilation project.
NX2navi has merged with Triforce. The two projects go on as one, under this name.
- Evil: Triforce's creator and lead. Brought the forest back to life with the GPU culling fixes for trees, ferns, grass, falling leaves, fireflies and the tree canopies; fixed the ambient light probes, the pond's water, the game's own fog, the freeze after loading a save and the exposure flicker; made the rendering diagnostics tools and Triforce Setup.
- NX2navi (chrg6 and its contributors): the native port that merged with Triforce in November 2026, with its own recompiler, renderer and launcher for the same game. Its players and their saves come along (Convert saves finds an NX2navi game by itself), and its work is coming into Triforce release by release.
- NotRexed: Hookshot, the recompiler this build started from, as well as BlueShell (Mario Kart World), Skybound (Tears of the Kingdom) and the a64-kit tools.
- Eden and Eglantine: the shader recompiler and the console shader work.
- suyu: the graphics decoders and the AArch64 translator.
- seedds (nxnative): how task and mesh shaders really behave.
- zortos293 (Lichii): Ampere shader lowering, and the compare-exchange retry fix.
- mstorsjo (llvm-mingw): the Windows compiler that comes with the build, so no Visual Studio is needed.
- kinnay (zbic), Opus and SDL: decompression, sound and controller input.
- sostenesfreitas (ocarina-recomp): an early README layout, and notes that confirmed the mesh stage's control section.
- MythosOfs (Orchid): the original fog and exposure workaround.
- Carlos Lopez (clshortfuse) and RenoDX: the HDR tone mapping, eye adaptation and colour grading of the optional RenoDX HDR build, from RenoDX's mod for this game.
- Mesa (NAK): the map of Ampere's instruction encoding.
- Everyone who sent fixes: SkippySteve (a great many of them), klimovich008, d3zessete, chrispository, vzeol, monsterlag, leonidasmark, Segmentree, Zorkats, ShyVortex, hiKareeem, gab9281, i900gaming and more.
License
Triforce is open source under the GNU General Public License, version 3 or any later version. You're free to use it, study it, change it and share it, as long as anything you share stays under the same license, with its source available. The full terms are in LICENSE.
Parts of Triforce come from other GPL projects (NotRexed's recompiler, Eden, suyu and Orchid) and remain under the GPL. Bundled components with their own GPL-compatible licenses (Sirit, Vulkan Memory Allocator, SDL, Opus, stb, zbic and the a64-kit tools) keep their notices in their own folders. Triforce Setup's tools package also carries Python and llvm-mingw, under their own licenses.
The optional RenoDX HDR support is worked from RenoDX, which is under the MIT license: its notice is in third_party/renodx/LICENSE.md. RenoDX's own shaders are never part of Triforce: a build that asks for them downloads and compiles them on the builder's PC.
Triforce is a fan-made project with no connection to Nintendo, and Nintendo hasn't endorsed it. The Legend of Zelda and Ocarina of Time are Nintendo's trademarks.