Homebrew Zelda The Wind Waker - Switch Port

forgotten-865

Well-Known Member
Newcomer
Joined
Jan 15, 2026
Messages
92
Reaction score
274
Trophies
0
XP
540
Country
Australia

SwitchWakerHD​



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.

    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:
Code:
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.

Start the game​

  • Open the Homebrew Menu in title mode: hold R while starting any installed game, then pick SwitchWakerHD. Opened from the album (applet mode) the game has far too little memory.
  • Or install the HOME-screen icon (forwarder), which always starts it in title mode: tools/switch/forwarder/INSTALL.md.
  • Controllers act as a Wii U Pro Controller, so the game draws everything on one screen: pick the Pro Controller when the game asks.

Saves, settings and updates​

  • Saves: sdmc:/switch/wwhd/save/. Back up this folder.
  • Save states: sdmc:/switch/wwhd/states/.
  • Settings from the options menu: settings.ini. An env.txt from an earlier build is converted into it at the first start and renamed env.txt.old.
  • To update, replace wwhd.nro (and shadercache_dksh.bin if you rebuilt it). Saves, settings and caches stay.
  • Logs, if something goes wrong: logs/, one wwhd_<date>_<time>.log per session (the newest is this run); the 10 most recent are kept.

https://github.com/centollOS/SwitchWakerHD/releases
 
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."
 

Site & Scene News

New Hot Discussed User Submitted