Repository navigation
SwitchWakerHD runs The Wind Waker HD (Wii U, version 0: USA 00050000-10143500 or Europe 00050000-10143600) natively on a Switch with custom firmware: the game's code is statically recompiled to C and drawn with deko3d. No emulation.
No game inside, no binaries. Every build carries the game's code recompiled from your own dump, so you build it on your computer and copy the result to your SD card. Do not share what you build.
Install
- Windows 10/11: download
SwitchWakerHD-Installer.exebelow and run it. It installs what the build needs, builds from your dump and copies the result to the Switch (USB cable with DBI, the microSD card in the PC, or by hand). - macOS, Linux or by hand: download
SwitchWakerHD-v0.4.7.zip, unzip it and follow INSTALL.md:python3 tools/switch/make_sd.py --image game.wux # or --wua game.wua, or --game-dir <extracted game>
Start the Homebrew Menu in title mode (hold R while starting any game).
⚠️ Read this if you raised the CPU clock in the Switch tab
The game no longer changes the CPU or GPU clocks itself (#33). With the CPU raised from inside the game (for example to the 1224 MHz "Recommended" step), the console did not wake up from sleep and needed a forced power off. The CPU steps and the GPU 614 MHz option are gone; Nintendo's own GPU profiles stay in the Switch tab.
- If you had chosen a higher CPU clock, it is now ignored and the game runs at the stock 1020 MHz. In the busiest scenes that is about 1.5–2 fps less than at 1224 MHz (around 28 instead of 30). This is not a slowdown of the new version: it is the clock you set no longer being applied.
- To get it back, set the clock with sys-clk, which handles sleep and docking properly. A mild 1224 MHz keeps the busiest scenes at a steady 30.
What's new since v0.4.6
Fixed: running out of memory in long sessions (#37)
- Every few hours of play the game could close with an error: it kept a copy of each graphics shader variant it met, and the same shader was counted again and again (tens of thousands of copies per session). A 17-minute tour of the game now makes about a quarter of the variants, and the shader cache file on the SD card no longer grows every session.
- The first time you start this version, the game rebuilds one of its shader cache files (
shadercache_dk_translations.bin); nothing to do on your side, and the old, much larger file stops taking memory.
Fixed: the console not waking up from sleep while the game runs (#33): see the note on clocks above.
Fixed: a green glow on the right edge of the screen with bloom on (#32), when dynamic resolution lowered the internal resolution (the Helmaroc King tower cutscene, the grass on Outset Island).
Smoother frame pacing at 30 fps (#23): each frame stays on screen for two refreshes.
- It works when your Windows user name has a space in it (it failed at 26%).
- It installs the build tools it needs (cmake, make) and no longer half-updates them: when MSYS2's tools don't start after a partial update (#28's
cmake: command not found), it updates MSYS2 itself and carries on. - It stops with a clear message when devkitPro's server refuses a download, the package servers ask to wait, or the disc key /
common.keyis missing or misnamed, instead of failing at step 4/5 with no explanation. - It checks the game file, its keys and the free disk space before downloading anything, and finds devkitPro on another drive too.
Builds report their real version (#20): builds from the release zip showed "dev (unknown)" in the log, the About tab and crash reports.
Reporting a bug is easier: docs/reporting-bugs.md shows how to get the log, a save state and your save file off the console. The Saves tab's bug-report paths no longer show the state's path twice.
Under the hood: the game's code keeps the same memory alignment whatever the size of the rest of the program (performance no longer shifts by ~1% between builds), and the Switch-specific code moved into its own modules, which makes keeping up with the upstream project easier.