Homebrew Zelda The Wind Waker - Switch Port

forgotten-865

Well-Known Member
Newcomer
Joined
Jan 15, 2026
Messages
93
Reaction score
275
Trophies
0
XP
541
Country
Australia
SwitchWakerHD

What it is


SwitchWakerHD is an unofficial native port of a 2013 Wii U adventure game (title ID 00050000-10143500, USA, version 0) to the Switch (homebrew). The game's PowerPC code is translated to C ahead of time by a static recompiler, the Cafe OS libraries the game uses are reimplemented natively, and its GX2 graphics are drawn with deko3d, the Switch's own GPU API. There is no CPU emulation and no GPU command emulation.

It is a fork of ZeldaWWHDRecomp, which runs the same recompilation on macOS, Linux, Windows and Android. Those platforms still build from this repository; their instructions are in the upstream README, kept as docs/upstream-README.md. How the recompilation works: docs/how-it-works.md.
What you need

Your own legally obtained copy of the game: the USA version, title 00050000-10143500, version 0 (the disc or eShop release without the update), dumped from your own Wii U. The runtime checks code/cking.rpx against that version at startup.
This repository contains no game code, assets, keys or data. The NRO you build contains the game's code recompiled from your dump, and the shader caches are made from the game's shaders: they are for your own use only; do not share them.
No release binaries are provided for the Switch, precisely because they carry the recompiled game.

Build for the Switch

The short way (step-by-step guide for players: INSTALL.md): python3 tools/switch/make_sd.py --image game.wux (or --game-dir <extracted game>) checks the game version, recompiles, builds the NRO in Docker and lays out build/sd/switch/wwhd/ for the SD card. The steps it runs, by hand:

Requirements: Python 3 with pycryptodome (for the extractor), and Docker or Podman (the Switch toolchain runs in the devkitpro/devkita64 image). On the Mac also the Xcode command line tools.

git clone https://github.com/centollOS/SwitchWakerHD switchwakerhd && cd switchwakerhd
# 1. extract your dump into game/ (game.wux with game.key next to it, plus your common key;
# a Cemu .wua or an already extracted folder works too: docs/upstream-README.md)
python3 tools/wudextract.py game.wux extract game # -> game/code, game/content, game/meta
# 2. recompile the game code to C (build/gen/, stays on your machine)
python3 tools/recomp/recomp.py game/code/cking.rpx build/gen
# 3. build the NRO
tools/switch/build.sh # -> build/switch-dk/wwhd.nro

Install on the Switch
What you need


A Switch running custom firmware (Atmosphère) with the Homebrew Menu.
The NRO you built and, optionally, the shader cache.
Your extracted game (code/, content/, meta/).

Copy the files

The SD card must end up like this:

sdmc:/switch/wwhd/
├── wwhd.nro the game
├── shadercache_dksh.bin compiled shaders (optional, see above)
├── game/ your extracted game: code/, content/, meta/
└── (created by the game: save/, settings.ini, logs/, shader caches, captures/)

Put the SD card in the computer (or mount it over USB with hekate's Tools → USB Tools → SD Card) and copy the files.

https://github.com/centollOS/SwitchWakerHD/releases

=================================================================================================

SwitchWaker

What it is


SwitchWaker is an unofficial native port of a 2002 GameCube adventure game (disc ID GZLE01, USA, revision 0) to the Mac, Linux and the Switch (homebrew). The game is compiled from its decompilation (the game/ folder) and drawn with Aurora; there is no CPU emulation.

What you need

Your own legally obtained copy of the disc: GZLE01 revision 0, as an uncompressed .iso. The build generates what it needs from it.
This repository contains no game assets, executables or data. The binaries you build contain code generated from your disc: they are for your own use only; do not share them.
No release binaries are provided for now, precisely because they carry headers generated from the disc compiled in.


Build for the Switch

For players, the short way (step-by-step guide: INSTALL.md): scripts/switch/make_sd.sh --disc /path/to/GZLE01.iso checks the disc, builds the NRO in containers and lays out build/sd/switch/switchwaker/ (NRO, pipeline cache, a copy of the disc) for the SD card.

On top of the above: Docker Desktop or Podman. scripts/switch/build_native.sh produces build/switch-native/switchwaker.nro (Mesa, Dawn and Aurora are built in a devkitPro container). Full guide: docs/SWITCH_BUILD.md.

Install on the Switch
What you need


A Switch running custom firmware (Atmosphère) with the Homebrew Menu.
The NRO you built (build/switch-native/switchwaker.nro) and the bundled pipeline cache next to it (build/switch-native/initial_pipeline_cache.db, copied there by the build).
Your disc as an uncompressed .iso (not RVZ, GCZ, CISO or NKit), renamed to GZLE01.iso.
About 1.6 GB free on the SD card (the disc is 1.4 GB; the shader caches grow to a few dozen MB).

Copy the files

The SD card must end up like this (folder and file names exactly as shown):

sdmc:/switch/switchwaker/
├── switchwaker.nro the game
├── GZLE01.iso your disc
├── initial_pipeline_cache.db the list of shaders to prepare on the first start
└── native/ created by the game: logs, saves, settings, caches

https://github.com/centollOS/SwitchWaker/releases
 
Last edited by forgotten-865,
Download SwitchWakerHD-v0.2.0.zip below and unzip it.
Follow INSTALL.md: with Docker and Python installed, one command builds everything from your dump:
python3 tools/switch/make_sd.py --image game.wux # or --game-dir <extracted game>
Copy build/sd/ to the root of the SD card and start the Homebrew Menu in title mode (hold R while starting any game).
Pretty sure, that means you have to compile it first.....
 
Great, but where is the wwhd.nro?
Pretty sure, that means you have to compile it first.....
Yep, For some unknown reason, this part wasn't posted


Build for the Switch​

The short way (step-by-step guide for players: INSTALL.md): python3 tools/switch/make_sd.py --image game.wux (or --game-dir <extracted game>) checks the game version, recompiles, builds the NRO in Docker and lays out build/sd/switch/wwhd/ for the SD card. The steps it runs, by hand:
Requirements: Python 3 with pycryptodome (for the extractor), and Docker or Podman (the Switch toolchain runs in the devkitpro/devkita64 image). On the Mac also the Xcode command line tools.
git clone https://github.com/centollOS/SwitchWakerHD switchwakerhd && cd switchwakerhd
# 1. extract your dump into game/ (game.wux with game.key next to it, plus your common key;
# a Cemu .wua or an already extracted folder works too: docs/upstream-README.md)
python3 tools/wudextract.py game.wux extract game # -> game/code, game/content, game/meta
# 2. recompile the game code to C (build/gen/, stays on your machine)
python3 tools/recomp/recomp.py game/code/cking.rpx build/gen
# 3. build the NRO
tools/switch/build.sh # -> build/switch-dk/wwhd.nro
WWHD_JOBS=<n> limits parallel compiles (the generated code needs a lot of memory per file); WWHD_DEKO3D_DEBUG_LIB=ON links deko3d's debug library (wwhd_dk_debug.nro: every GPU call checked, readable errors). Details, architecture and the history of the port: docs/switch-port.md; the renderer: docs/deko3d-plan.md.
 
Great, but where is the wwhd.nro?

It appears you need to build it on your end, I'll give it a try tomorrow. Excited to finally have a decent Wind Waker option on Switch, got my hopes up with the Cemu port which doesn't run well on stock (needs 8GB ram mod and overclock).
 
  • Like
Reactions: jeferey
Two people are working on the ports. (depende3000, Pulpparty) And their contributing to each other's project.

Delete "HD" in Op's link to get the Gamecube version.

[SwitchWaker] the GameCube Wind Waker

Known Issues

"- Only the USA version is accepted so there's only the English language available."

Note: "SwitchWaker will be 60fps in the next big release, for now it’s 30fps"

----------------

[SwitchWakerHD] - Wind Waker HD on the Switch

"Known issues we're currently working on

- Pictobox photos currently come out a bit glitchy, we're working on that.

- Sometimes on new areas the shaders do not load on time, and objects appear black during a very brief moment in time until they load correctly.

- In-game tool's Save states are broken, so please save normally through the game. We will try to make them work as soon as posible."
 
Two people are working on the ports. (depende3000, Pulpparty) And their contributing to each other's project.

Delete "HD" in Op's link to get the Gamecube version.

[SwitchWaker] the GameCube Wind Waker

Known Issues

"- Only the USA version is accepted so there's only the English language available."

Note: "SwitchWaker will be 60fps in the next big release, for now it’s 30fps"

----------------

[SwitchWakerHD] - Wind Waker HD on the Switch

"Known issues we're currently working on

- Pictobox photos currently come out a bit glitchy, we're working on that.

- Sometimes on new areas the shaders do not load on time, and objects appear black during a very brief moment in time until they load correctly.

- In-game tool's Save states are broken, so please save normally through the game. We will try to make them work as soon as posible."

Thanks, I already added it to first page

Pleane any admin add "Wind Waker GC" on title

@Lostbhoy @SonyUSA @Flame
 
Last edited by forgotten-865,

Site & Scene News

New Hot Discussed User Submitted