Local NUP and RomFS build requirements

Triforce compiles your legally obtained Switch 2 Ocarina of Time dump into a standalone native PC folder. Confirm your dump's Title ID, Update version, and NSO Build ID before kicking off the 40-minute ahead-of-time build.

0400486024DEC000Required Switch 2 Title ID
e0f3ccfaExpected main NSO Build ID
~60 GBTemporary scratch space
MSI Z590 desktop motherboard with liquid CPU cooler and dual HyperX RAM sticks
Plan for 16 GB system RAM, ~60 GB temporary scratch in %LOCALAPPDATA%\Triforce\build, and ~40 minutes on your initial build.

Supported game dump & workstation specs

Triforce validates the exact executable signature of your Switch 2 dump before lifting instructions so mismatched updates fail cleanly at step one.

Requirement Expected Value Technical Notes
Title ID 0400486024DEC000 Switch 2 edition of The Legend of Zelda: Ocarina of Time
Update Level v131072 (base v65536) Older unpatched base dumps without update v131072 will reject Build ID verification
NSO Build ID e0f3ccfaf50065ae4ea01eb5aeb13b1a45da3348 Short prefix e0f3ccfa verified on ZBIC-compressed exefs/main
Accepted Formats .nup (~25.6 GB) or romfs + exefs Unpacked RomFS holds 186,583 files (24.4 GiB) including 10,154 NVN2 shaders
System Memory 16 GB RAM minimum Uses ~10 GB active RAM in play; machines under 20 GB automatically enable lazy pipeline loading
Disk Space ~2 GB tools + ~60 GB build scratch Scratch lives in %LOCALAPPDATA%\Triforce\build during compilation plus your output game directory

GUI Setup vs source CLI (nx2/make_game.py)

Most Windows players run TriforceSetup.exe, point it at their .nup file or unpacked folder, optionally tick NVIDIA DLSS and RenoDX HDR (~60 MB each), and let Setup compile. When a newer Triforce release arrives, click Update & merge to re-link only changed functions in a few minutes.

Developers building from git.triforceproject.com/triforce/source can invoke nx2/make_game.py directly with Python 3 (lz4==4.4.5, numpy==2.5.4, capstone==5.0.9, unicorn==2.1.4, zstandard==0.25.0):

# Verify dump Build ID (e0f3ccfa) without compiling
python -I nx2/make_game.py --nup "C:\Dumps\oot_sw2.nup" --check

# Full initial build from a single .nup package
python -I nx2/make_game.py --nup "C:\Dumps\oot_sw2.nup" \
  --out "C:\Games\Triforce" --language en-US

# Build from already unpacked romfs + exefs directories
python -I nx2/make_game.py --romfs "D:\oot\romfs" \
  --exefs "D:\oot\exefs" --out "C:\Games\Triforce"

# Fast incremental rebuild on an existing Triforce output folder
python -I nx2/make_game.py --update "C:\Games\Triforce"
Samsung 980 PRO NVMe M.2 solid-state drive
Keep both %LOCALAPPDATA%\Triforce\build and your output folder on an NVMe SSD so clang/lld links 57 C chunks without disk bottlenecks.

Controllers tested with SDL presets

Triforce maps Xbox, PlayStation, and Switch-layout controllers natively in Controls and supports background input.

8BitDo Ultimate 2C Wireless Controller

Hall-effect sticks and triggers with low-latency 2.4G dongle for Windows and Linux SDL input.

Check on Amazon

GameSir Super Nova Hall-Effect Gamepad

Drift-resistant Hall sensors, swappable ABXY layout, and quiet membrane face buttons for Ocarina melodies.

Check on Amazon

8BitDo Pro 2 Bluetooth Gamepad

Symmetrical dual-stick layout with Switch and X-Input modes plus rear paddles for quick camera centering.

Check on Amazon

GuliKit KK3 Max Wireless Controller

TMR electromagnetic sticks, 1000 Hz wired/wireless polling, and Switch-layout face button caps included.

Check on Amazon

Affiliate disclosure: As an Amazon Associate, triforcerecomp.wiki earns from qualifying purchases at no added cost to you.