Twilight Princess Randomizer + Dusk — Setup & Compatibility

TPR (Twilight Princess Randomizer) v1.3.0 runs on Dusk via the standard memory-card REL loader without ISO patching. Setup workflow, current support, and what's not yet possible.

Published 2026-05-14 ·Updated 2026-05-14

Twilight Princess Randomizer (TPR) is the canonical TP randomizer — maintained by the speedrunning community, GameCube-version-only, and built around runtime injection rather than ISO patching. That last property is what makes it compatible with Dusklight.


The project

ProjectTwilight Princess Randomizer (TPR)
Orgzsrtp — Zelda Speedruns Twilight Princess
Codegithub.com/zsrtp/Randomizer
Web generatortprandomizer.com
Wikiwiki.tprandomizer.com
Current versionv1.3.0 (released 2026-04-25)
LanguagesC++ 81.9%, Python, PowerPC asm
MaintainersAECX (founder), Zephiles (reverse engineering), lunarsoap5 (project lead), vbn598, Isaac
CommunityDiscord, 7,911 members; active racing at racetime.gg/tpr

How it works — and why it works with Dusklight

The randomizer does not patch your ISO. From the official Randomizer Guide wiki:

“A script to patch the iso with the randomizer is in the works at the moment.”

Translation: as of v1.3.0, the ISO stays vanilla. The randomization lives in two memory-card files that you place in Dolphin/Dusklight’s GCI folder:

FileWhat it does
Rel_Loader.gciLoads the randomizer REL (relocatable module) into memory at boot
seedData.gciEncodes the specific random seed and rules generated for your run

At runtime, the loader hooks into TP’s startup sequence and overlays randomized item logic without touching the disc data. The ISO’s SHA-1 stays bit-identical.

Why this matters for Dusk: Dusk’s iso_validate.cpp computes a hash of the disc image and rejects anything that doesn’t match the known-good GZ2E01 or GZ2P01 hash. ISO-patching randomizers would fail this check. TPR doesn’t patch the ISO, so the hash check passes, and the runtime REL injection is what triggers all the randomization.

There are no TPR-related issues on the Dusklight tracker (as of 2026-05-13), which is consistent with “it just works.”

Caveat: this is editorial inference based on the documented architectures. We haven’t done a full TPR playthrough on Dusklight ourselves to certify every randomizer scenario. If you hit a TPR-specific issue on Dusklight, file it on the Dusklight tracker and we’ll update this page.


Setup workflow

What you need

  • A legally-dumped GameCube TP ISO (USA, PAL, or JP — TPR supports all three)
  • Dusklight v1.0.0+ installed
  • An empty TP memory card or willingness to use an alternate slot

Steps

  1. Generate a seed at tprandomizer.com. Pick settings (item pool, logic difficulty, glitches on/off, cosmetics). The generator returns a download containing Rel_Loader.gci and seedData.gci.

  2. Place the GCIs in Dusklight’s memory card folder:

    • Windows: %APPDATA%\TwilitRealm\Dusk\USA\Card A\
    • macOS: ~/Library/Application Support/TwilitRealm/Dusk/USA/Card A/
    • Linux / Steam Deck: ~/.local/share/TwilitRealm/Dusk/USA/Card A/
    • Android: /sdcard/Android/data/dev.twilitrealm.dusk/files/USA/Card A/
    • Use EUR/ instead of USA/ for PAL, JAP/ for Japan once supported.
  3. Boot Dusklight and load your vanilla TP ISO normally. Hash verification passes (the ISO is untouched).

  4. In-game, the loader takes over at startup. From there it’s a TPR run — consult the TPR wiki for game-specific guidance.

If anything goes wrong, the Dolphin Guide on the TPR wiki applies to Dusklight too because they use the same memory-card and Gecko code conventions.


What’s not supported

HD / Wii U / Switch / mobile randomizers

TargetStatus
GameCube TP✅ Official TPR, v1.3.0
Wii TP (real HW or vWii via Nintendont)✅ Runs GC TPR through Nintendont
TP HD (Wii U Cemu)❌ No official HD randomizer. A defunct community entrance-rando beta exists at sites.google.com but is unmaintained
Switch (homebrew)❌ Not applicable; Dusklight team has ruled out Switch ports
Android / iOS via Dusklight⚠️ Unverified — the GCI loader path should work, but we haven’t tested

ISO patching

Coming eventually per the TPR wiki (“A script to patch the iso with the randomizer is in the works”). When/if it ships, that would be an alternative install path — for now, the memory-card REL loader is the only path.


Archipelago (multi-world randomizer)

If you want to drop TP into a multi-game randomizer race (e.g., TP + OoT + Pokémon all randomized together, items shared across worlds), there’s a third-party Archipelago apworld:

github.com/WritingHusky/Twilight_Princess_apworld

Same target (GameCube TP), same REL-loader injection method. Compatible with Dusklight on the same logic as TPR.



Last updated 2026-05-14. TPR architecture, version, and team sourced from the zsrtp GitHub org and the TPR wiki. We haven’t done a full TPR playthrough on Dusklight — if your run hits Dusklight-specific issues, file them on the Dusklight tracker.