Dusk: The Complete Guide to the Twilight Princess PC Port
Dusk is the official Twilight Princess PC port — released May 9, 2026 by TwilitRealm. Install on Windows, Mac, Linux, Steam Deck, Android, iOS.
TL;DR — Dusk is a free, native PC port of The Legend of Zelda: Twilight Princess. It was released on May 9, 2026 by the TwilitRealm team. v1.0.0 runs on Windows, macOS (ARM + Intel), Linux (x86 + ARM), Android, and iOS. The project’s stated framerate target is “up to 120 FPS.” It supports mods and 4K texture packs, is built on the years-long zeldaret/tp decompilation, and is licensed CC0-1.0. You must supply your own GameCube disc dump — Dusk ships zero Nintendo assets. Read the install guide →
This is a comprehensive guide to Dusk, the Twilight Princess PC port, based on verified data from the official repo, source code, and FAQ. We cover every platform, the verified feature set, project history, how it compares to the parallel Courage Reborn port, and known issues at launch. If you only have 30 seconds, the link above takes you to platform-specific install guides.
What Is Dusk?
Dusk is a native port — meaning the game runs as a real Windows, Mac, Linux, Android, or iOS application, not inside an emulator. There is no Dolphin, no Cemu, no virtualization layer. The game is the original 2006 GameCube release of Twilight Princess, rebuilt from a complete reverse-engineered source-code reconstruction (the zeldaret/tp decompilation) into platform-native binaries.
The official tagline from TwilitRealm captures it well: “Restoring light to a classic adventure.”
Native port, not an emulator
Three things people often confuse:
| What It Does | What Dusk Is | |
|---|---|---|
| Emulator (Dolphin) | Simulates GameCube hardware to run the original ROM | ❌ Not this |
| ROM hack | Modifies the original ROM | ❌ Not this |
| Native port (Dusk) | Runs decompiled source as a normal app | ✅ This |
The practical difference: native ports get higher framerates, lower input lag, better controller integration, and run on hardware that emulators struggle on (phones, low-power chips). They also avoid the legal grey area of bundling original code.
Built on the zeldaret/tp decompilation
The technical foundation is a community project that started in August 2020 and reached 100% byte-matching for all GameCube versions in December 2025 — a roughly 5-year-9-month effort by hundreds of contributors. TwilitRealm took that source code, layered it onto the Aurora cross-platform framework, and produced Dusk.
If you want the full origin story, see our TP decompilation timeline.
Release Information
Version 1.0.0 — May 9, 2026
| Current version | v1.0.0 |
| Release date / time | 2026-05-09 21:59 UTC |
| License | CC0-1.0 (public domain dedication) |
| GitHub | TwilitRealm/dusk |
| Official site | twilitrealm.dev |
| Official Discord | discord.gg/dusktp (run by the Dusk team) |
| Source language | ~55% C++, ~44% C |
| Project repo size | ~4,000 commits · 778 ⭐ at time of writing |
| Day-1 download leader | Windows (~34,500 downloads in first ~24h) |
License & open-source status
Dusk is released under CC0-1.0 — effectively public domain. You can do anything with the source: fork, modify, redistribute, or build proprietary derivatives. The project explicitly does not accept primarily AI-generated code contributions, per the contributing guide.
Why CC0 matters: it removes any future ambiguity about who “owns” Dusk. The team has stated their goal is for the port to outlive them — public-domain code is the cleanest way to make that true.
Supported Platforms
Dusk launched on 5 platform families simultaneously, which is unusually broad for a fan port. Click any platform for the full step-by-step install guide.
Windows
- Architectures: x86_64 (no 32-bit build)
- Filename:
Dusk-v1.0.0-win32-x86_64.zip(~33 MB) - Format: Standalone
.exein a ZIP archive (no installer) - Graphics backends: D3D12, D3D11, Vulkan, OpenGL, OpenGL ES, WebGPU (selectable)
- → Install Dusk on Windows
macOS
- Architectures: Apple Silicon (ARM64) and Intel (x86_64) — separate native builds
- Format:
.appbundle (drag to Applications) - Note: First launch needs right-click → Open due to Gatekeeper
- → Install Dusk on macOS
Linux
- Architectures: x86_64 and ARM64
- Requires: Vulkan-capable GPU and drivers (
mesa-vulkan-driversor proprietary equivalent) - Format: Extract & run binary
- → Install Dusk on Linux
Steam Deck
- Setup: Via desktop mode → add as non-Steam game
- Highlight: Native gyro aim works out of the box (no Steam Input gyro-to-mouse needed)
- Verdict: Multiple outlets called this “the easiest setup of any fan port we’ve tested”
- → Install Dusk on Steam Deck
Android
- Format: Sideload-only APK from GitHub Releases (do not use third-party mirrors)
- Permissions: Storage access (Storage Access Framework picker)
- Controllers: Bluetooth gamepads + included touchscreen overlay
- → Install Dusk on Android
iOS
- Format: AltStore sideload (free Apple ID = 7-day cert; paid dev account = 1 year)
- Requirement: iOS 16+ with Developer Mode enabled
- → Install Dusk on iOS
What’s New vs the Original Game
Dusk isn’t just a port — it’s a quality-of-life remaster. Here’s what you get over the 2006 GameCube original:
Unlocked framerate (with frame interpolation)
The original engine ties game logic (physics, animation timing) to a 30 Hz tick rate. Naively rendering the game at 60+ FPS would break things — items moving at double speed, animations playing twice as fast (this was a bug the parallel Courage Reborn project had to solve).
Dusk decouples logic from rendering: logic still runs at native 30 Hz; the renderer interpolates positions between ticks based on object velocity. From DSOgaming’s coverage paraphrasing the project’s design:
“Dusk uses information about how objects are moving through the world to create a close approximation of what the world would look like at that moment in time and renders that.”
The project’s published framerate target is “up to 120 FPS” (per Time Extension’s pre-release coverage). The setting lives at Settings → Video → Rendering → Unlock Framerate. There is one known v1.0.0 issue at unlocked framerate: a pulsating bloom artifact (#825). Speedrunners using the built-in timer (Settings → Tools area) get logic at original speed regardless of render rate.
High resolution and ultrawide
Run the game at any resolution your hardware supports. Reviewers report it scaling well past 4K. Ultrawide (21:9 / 32:9) is supported natively without HUD stretching.
Gyro and mouse aiming
- Gyro aim — supported on every platform with a gyro-equipped controller (Steam Deck, DualShock 4/5, Switch Pro Controller, 8BitDo Pro 2). Toggle in settings.
- Mouse aim — added in v1.0.0-rc.1. Yes, you can play Twilight Princess with mouse-aim like a PC FPS. It’s surreal and great.
Texture packs and mods
Dusk supports community textures and content mods out of the box. The flagship texture replacement is the Henriko Magnifico 4K pack — a full re-do of the game’s textures at 4× resolution, available on his site. We have a step-by-step install guide.
Verified features (with version-of-introduction)
Pulled directly from the GitHub release notes for v0.4.1 → v1.0.0:
| Feature | Path / how to use | Since |
|---|---|---|
| Achievements | Tools menu → Achievements | v0.5.0 |
| Free Camera | Settings → Input → Camera → Free Camera | v0.5.0 |
| PAL disc + multi-language | (auto when PAL disc loaded) | v0.5.0 |
| Speedrun timer | (built-in; see Tools area) | v0.5.1 |
| UI overhaul + full controller support | Press Back/Select or R+Start in-game | v0.6.0 |
| Autosave (experimental) | Toggle in Settings | v0.6.0 |
| Spatial audio (HRTF) | Settings → Audio → Effects → Enable Spatial Sound | v0.6.0 |
| Widescreen field/dungeon maps | (auto in widescreen) | v0.6.0 |
| Mirror mode (matches Wii layout) | (mode switch in prelaunch) | v0.6.1 |
| 3-finger tap menu (mobile) | (mobile only) | v0.6.1 |
| Sun’s Song / quick transform in ToT past | (Tower of Time) | v0.6.2 |
| Disc image verification on selection | (automatic) | v0.6.2 |
| FPS counter | Settings → Video → Display → Show FPS Counter | v0.6.3 |
| Reset / Quit confirmation modals | (automatic) | v0.6.3 |
| Mouse aiming | Settings → Input → Gyro → Gyro Input Method = Mouse | v1.0.0-rc.1 |
| Update checker | (automatic) | v1.0.0-rc.1 |
| Background Input + Pause on Focus Lost | Settings → Input / Video → Display | v1.0.0-rc.1 |
Quality-of-life options (verified)
- Turbo Key: Hold Tab to increase game speed by up to 4x (Settings → Input → Tools)
- Instant Text (in-game cheats menu)
- Dialogue skip
- Compressed / skippable Wolf Link transformations
- Sun’s Song / quick transform in the ToT past (v0.6.2)
- Configurable rumble + Test Rumble (Settings → Input → Controller → Configure Controller → Rumble)
- Free Camera (twin-stick) and Debug Fly Cam (with keyboard / roll support since v0.6.3)
- Recording Mode (Settings → Interface — added v0.6.3, with one known bug: music doesn’t re-enable until restart, #821)
- No Low HP Sound / Non-Stop Midna’s Lament audio toggles
- Lock 4:3 Aspect Ratio for purists
ROM Requirements (You Must Bring Your Own)
This is the most important section to get right.
Supported versions (GameCube only at launch)
Dusk v1.0.0 accepts two specific GameCube disc images and recognises (but rejects) several others:
| Region | Game ID | Status (v1.0.0) | Hash for external verification (SHA-1) |
|---|---|---|---|
| North America | GZ2E01 | ✅ Supported | 75edd3ddff41f125d1b4ce1a40378f1b565519e7 |
| Europe / Australia (PAL) | GZ2P01 | ✅ Supported | 2601822a488eeb86fb89db16ca8f29c2c953e1ca |
| Japan (NTSC-J) | GZ2J01 | ⏳ Recognized, planned | — |
| Wii NA | RZDE01 | ⏳ Recognized, planned | — |
| Wii EU/AU | RZDP01 | ⏳ Recognized, planned | — |
| Wii Japan | RZDJ01 | ⏳ Recognized, planned | — |
| Wii Korea | RZDK01 | ⏳ Recognized, planned | — |
| Wii U / Twilight Princess HD | various | ❌ Different game / not on roadmap | — |
The README states: “Support for other versions of the game is planned in the future.”
Hash verification (SHA-1 vs XXH128)
There are two hashes in play, and it’s worth being precise:
- SHA-1 — what’s published in the Dusk README. Use this to verify your own disc dump on your machine before launching:
Get-FileHash -Algorithm SHA1 yourdump.iso(Windows) orshasum -a 1 yourdump.iso(macOS/Linux). - XXH128 — what Dusk internally computes when it loads the disc image, comparing to a hardcoded table in
src/dusk/iso_validate.cpp. This is faster than SHA-1 but functionally identical for “is this dump intact?” purposes.
If your SHA-1 matches, your XXH128 will also match.
If verification fails, Dusk shows one of these exact messages:
- “The selected disc image could not be validated.”
- “The selected file is not a valid disc image.”
- “The selected game is not supported by Dusk.”
- “The selected disc image did not pass hash verification. It may be corrupt or…”
Supported disc image formats
From the source code (src/dusk/file_select.cpp), Dusk’s file picker accepts:
iso · gcm · ciso · gcz · nfs · rvz · wbfs · wia · tgc
So compressed formats like RVZ or CISO save disk space versus raw ISO.
How to legally dump your disc
If you own a GameCube copy of Twilight Princess, you can legally produce a personal backup. The recommended method uses a soft-modded Wii and CleanRip:
- Soft-mod a Wii (Letterbomb / str2hax — see wii.hacks.guide/dump-games)
- Install CleanRip on the SD card
- Insert your TP GameCube disc
- Dump with checksum verification enabled
- Verify the SHA-1 matches the values above
We have a full step-by-step at How to legally dump your Twilight Princess disc. Dusk does not and will not provide ROMs.
How to Install Dusk
Pick your platform — each guide is purpose-written and tested:
- 🪟 Windows — 7 minutes, easiest
- 🍎 macOS — Apple Silicon native
- 🐧 Linux — Vulkan required
- 🎮 Steam Deck — gyro aim works perfectly
- 🤖 Android — APK sideload
- 📱 iOS — AltStore method
If you’ve never dumped a GameCube disc before, do that first: How to dump your TP disc legally.
Dusk vs Courage Reborn
You may have seen headlines that Twilight Princess is getting two native PC ports. That’s true — and it’s not a fight, it’s two independent teams who both started building on the same upstream decompilation.
Same upstream, different teams
- zeldaret/tp — the open-source decompilation (2020–2025)
- Dusk — by TwilitRealm (decomp + speedrun + Aurora communities)
- Courage Reborn — by Linifadomra and a smaller team
Both ports build on zeldaret/tp. Both teams publicly endorse each other. There’s no fork drama — just parallel efforts with different priorities.
Quick comparison
| Dusk | Courage Reborn | |
|---|---|---|
| Status | ✅ Released May 9, 2026 | ⏳ Pre-beta, no public binary |
| Framerate | Up to 120 FPS (interpolated) | 60 FPS stable |
| License | CC0-1.0 | Undeclared |
| Public repo | ✅ GitHub | ❌ Closed Discord |
| Windows / Mac / Linux | ✅ Day 1 | 🔄 In dev |
| Steam Deck | ✅ Confirmed | 🔄 Linux-targeted |
| iOS / Android | ✅ Day 1 | 🔄 Planned |
| Modded Switch | ❌ Not targeted | 🔄 On roadmap |
| Texture packs / mods | ✅ | ✅ |
| Mouse aim | ✅ | ✅ |
| Gyro aim | ✅ | — |
Which should you wait for?
- Today, May 2026? Dusk. It’s shipping. Courage Reborn isn’t.
- For modded Switch users? Watch Courage Reborn — it’s the only port targeting that platform.
- For 60 FPS purists? Either will be fine; both lock physics at native rate.
We have a full Dusk vs Courage Reborn breakdown with feature-by-feature analysis.
Dusk vs Dolphin (Emulator)
If you’ve been emulating Twilight Princess in Dolphin, here’s what changes with Dusk.
What’s different (verified)
| Dolphin (emulator) | Dusk (native port) | |
|---|---|---|
| What it runs | Original binary on a simulated GameCube | Decompiled source as a real native app |
| Native iOS / Android | ❌ Not officially supported | ✅ Day-1 ARM64 builds |
| Mod support | Possible but fiddly | First-class (textures, content, gameplay mods) |
| Built-in achievements | ❌ | ✅ |
| Built-in speedrun timer | ❌ (LiveSplit external) | ✅ |
| Frame-rate philosophy | 30 FPS by default; patching breaks logic | Render decoupled from logic; up to 120 FPS target |
| Disc formats | Many | ISO, GCM, CISO, GCZ, NFS, RVZ, WBFS, WIA, TGC |
| Hash verification | Optional | Mandatory (XXH128 internal) |
| Save format | .gci / .raw | .gci default; can switch to .raw |
| License | GPLv2 (Dolphin) | CC0-1.0 (Dusk) |
What we cannot verify: head-to-head benchmarks of the same scene in Dolphin and Dusk. As of 2026-05-10 nobody has published one. Performance comparisons in this section are structural arguments, not measurements.
The structural argument: emulators must simulate every quirk of the original PowerPC CPU and Flipper GPU at runtime; native ports skip that layer entirely. On low-power devices (phones, Steam Deck), this difference matters most. On desktop hardware that already ran Dolphin perfectly, the difference is smaller.
Roadmap & Known Issues
What’s planned (per README + roadmap signals)
- Wii / NTSC-J ROM support — README says “Support for other versions of the game is planned in the future.” The decompilation already targets these versions; what’s pending is integration into Dusk.
- More cross-platform refinement — release cadence has been daily-to-weekly through April–May 2026
What’s not on the roadmap (or unlikely)
- Wii U Twilight Princess HD support — that’s a different game with different code; not the same project’s domain
- Switch port — TwilitRealm has not signalled Switch support (the parallel Courage Reborn project does target modded Switch)
- AI-generated contributions — README explicitly rejects: “we do not accept contributions that are primarily AI-generated and will close your PR if we suspect as much”
Known issues at v1.0.0 (verified from open GitHub issues, 2026-05-10)
The repo has 130 open issues at the time of writing. The actual top user-reported problems:
| Issue | Symptom | Source |
|---|---|---|
| #826, #805 | macOS launch crashes (incl. Apple Silicon) | open |
| #807 | Windows non-English username breaks launch | open |
| #818 | Linux AppImage permission error: “Couldn’t create directory ‘/TwilitRealm’: ‘Permission denied‘“ | open |
| #810 | Selecting non-GCN controller with WUP-028 adapter generates a 4 GiB junk file | open |
| #825 | Pulsating bloom artifact at unlocked framerate | open |
| #830 | macOS keyboard binding broken | open |
| #809 | Mini-map moves when mirror mode enabled | open |
| #813 | 21:9 cutscenes cropped vertically | open |
Most of these have known workarounds. The Dusk team’s Discord (discord.gg/dusktp, run by them — not us) is the live place to track fixes.
The Team Behind Dusk
TwilitRealm + zeldaret + Aurora
The Dusk team is a fusion of three communities:
- TwilitRealm — the umbrella organization shipping Dusk
- zeldaret/tp contributors — the people who actually decompiled the game (Pheenoh, TakaRikka, hatal175, LagoLunatic, and dozens more)
- Aurora team — maintainers of the cross-platform framework Dusk is built on
- TP speedrunning community — many of whom contributed both decomp work and the in-engine speedrun timer
The connective figure is Pheenoh (Howard Luck), who founded the TP decomp repo in August 2020 and has been a fixture in the speedrunning scene since.
5 years 9 months of decompilation
Some perspective on the effort:
| Project | Code size | Time to 100% match |
|---|---|---|
| Super Mario 64 | ~250 KB | ~2 years |
| Ocarina of Time | ~1 MB | ~3 years |
| Majora’s Mask | ~1 MB | ~3 years |
| Twilight Princess | ~11.5 MB (C++) | ~5y 9m |
TP’s reverse engineering was substantially harder because the original is C++ with virtual tables, RTTI, and templated containers — all of which require matching name-mangling under the original Metrowerks CodeWarrior PowerPC compiler. Most prior console decomps were pure C.
The official announcement called it “the largest decompilation project ever completed.” That’s a strong claim and not formally certified, but it’s plausibly correct as of May 2026 — Wind Waker and Skyward Sword are similar scale and still in progress.
Read the full story: How TP Got Decompiled (2020–2026).
Frequently Asked Questions
Is Dusk legal?
Yes. The project ships zero Nintendo assets or original code. You bring your own legally-dumped disc image. Decompilation projects have established legal precedent (Mario 64 PC port, Ship of Harkinian for OoT). Dusk follows the same pattern.
Do I need a Wii or GameCube to play?
You need an original GameCube copy of Twilight Princess to dump for personal use. You also need a way to dump it — most easily, a soft-modded Wii running CleanRip. After that, you can play Dusk on any of its 6 supported platforms without further hardware.
Why does Dusk reject my ROM?
Three common reasons:
- Wrong region — Dusk v1.0 only accepts NTSC-U and PAL GameCube. Japanese (NTSC-J) and any Wii/Wii U dumps are rejected.
- Corrupted dump — re-dump with CleanRip’s checksum verification on.
- Modified dump — “scene” releases sometimes have small modifications. Use a clean retail dump.
Can I play Twilight Princess on Switch 2 instead?
As of May 2026, Twilight Princess is not available on Nintendo Switch 2 outside of NSO’s GameCube emulation (which has its own caveats). If you want to play TP on a portable device today, Dusk on Steam Deck or Android is the smoothest option.
For the full Switch 2 situation, see Twilight Princess on Switch 2.
Does Dusk support Wii motion controls?
Not at v1.0.0. The Wii version is a separate ROM that isn’t yet supported, and motion-control parity is “under consideration” for when Wii support lands. Mirror mode (replicating the Wii’s mirrored map) is supported.
Is Dusk on Steam?
No, and it’s unlikely to be. Steam wouldn’t allow it because Dusk is technically a derivative of Nintendo IP (even with no Nintendo assets shipping). Plus, Dusk is CC0 — there’s no commercial reason to be on Steam. Just download it from GitHub.
Will Dusk have multiplayer?
No. Twilight Princess is a single-player game; Dusk is a faithful port of the same game. No multiplayer mode is planned.
How is Dusk different from the other Dusk (the FPS)?
The 2018 indie FPS DUSK by New Blood is a completely unrelated retro shooter that happens to share the name. They are not the same project, the same team, or the same genre. When searching, add “twilight princess” or “TwilitRealm” to disambiguate.
Where to Go From Here
- Dump your disc → Legal dump guide
- Pick your platform → Install hub
- Stay updated → Verified known issues · News
- Connect with the Dusk team directly (not us — them): twilitrealm.dev · Official Discord · GitHub issues
← Back to home · Install on your platform →
Last updated: 2026-05-10. We update this page as Dusk evolves.