Triforce source code. https://triforceproject.com
  • C++ 44.7%
  • C 34.2%
  • Python 17.7%
  • C# 2.3%
  • SourcePawn 0.6%
  • Other 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
ruckus7382sfgsgdf 183b05d8c4 Readme: problem reports go to the Discord
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>
2026-11-14 22:54:51 -06:00
.github Linux: the options' tabs inside the game's own Options screen 2026-11-14 01:36:27 -06:00
assets Triforce v0.2.0 2026-11-10 19:32:48 -06:00
builder Triforce v0.3.6 2026-11-14 00:33:23 -06:00
docs Triforce v0.3.6 2026-11-14 00:33:23 -06:00
gpu Triforce v0.3.6 2026-11-14 00:33:23 -06:00
host Linux: the options' tabs inside the game's own Options screen 2026-11-14 01:36:27 -06:00
nx2 Triforce v0.3.6 2026-11-14 00:33:23 -06:00
scripts Triforce v0.3.6 2026-11-14 00:33:23 -06:00
setup Triforce v0.3.7 2026-11-14 22:39:28 -06:00
tests Linux: the options' tabs inside the game's own Options screen 2026-11-14 01:36:27 -06:00
third_party Triforce v0.3.6 2026-11-14 00:33:23 -06:00
.gitattributes Triforce v0.2.0 2026-11-10 19:32:48 -06:00
.gitignore Triforce v0.3.6 2026-11-14 00:33:23 -06:00
.releaserc.json Triforce v0.2.0 2026-11-10 19:32:48 -06:00
AGENTS.md Triforce v0.2.0 2026-11-10 19:32:48 -06:00
changelog.txt Triforce v0.2.0 2026-11-10 19:32:48 -06:00
CONTRIBUTING.md Triforce v0.3.6 2026-11-14 00:33:23 -06:00
LICENSE Triforce v0.2.0 2026-11-10 19:32:48 -06:00
package.json Triforce v0.2.0 2026-11-10 19:32:48 -06:00
readme.md Readme: problem reports go to the Discord 2026-11-14 22:54:51 -06:00
recomplauncher.json Triforce v0.2.0 2026-11-10 19:32:48 -06:00
requirements.txt Triforce v0.2.0 2026-11-10 19:32:48 -06:00

Triforce

TRIFORCE

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.

Download Triforce Setup Windows 10 | 11 Vulkan 1.3 No emulator GPL-3.0+

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
Windows 10 or 11, 64-bit. Nothing else to install: Setup runs on what Windows already has
Graphics card Vulkan 1.3 with mesh shaders, on an up-to-date driver (tested on NVIDIA)
Memory 16 GB of RAM or more (the game uses about 10 GB)
Disk space About 2 GB for Setup and its tools, and about 60 GB free while building
Your game 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.txt lists every mod that loaded and the files it supplied.

Under the surface

Zora wisdom: what happens beneath the water.

  1. Translate: nx2/lift.py turns the game's ARM64 machine code into C.
  2. Compile: nx2/build.py builds that C together with host/, which stands in for the console's operating system.
  3. Replay: host/nvn_native.c captures every NVN2 graphics call the game makes, and gpu/vk/ replays it on Vulkan.
  4. 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.