Repository navigation
Releases: ZeldaWWHDRecomp/ZeldaWWHDRecomp
Release list
AppImage runtime 8f39b89 (build input, not a game release)
Pinned build input for our Linux AppImages: the AppImage type2-runtime from AppImage/type2-runtime@8f39b89 (continuous build of 2026-09-28), the exact runtime v0.2.13 shipped. MIT licensed (see type2-runtime-LICENSE.txt); it statically links libfuse (LGPL-2.1), squashfuse (BSD-2), zstd, zlib and mimalloc; source: https://github.com/AppImage/type2-runtime/tree/8f39b89. Not a game release — downloads for players are on the other releases.
SHA-256:
- runtime-x86_64: 156f4bdbde9c52d01814600013e0a273f0118dc2de98975f3c8c63427ec79074
- runtime-aarch64: b4ff0030242d0c3bb12ce40541828303cf167493f4793456f0436edd6255c39d
Development build (devel @ 06891fa, 2026-10-12)
Development build of devel @ 06891fa: not a release. It has the changes below that are not
released yet, and has had less testing than a release. Use it to try a fix, and include the commit
(06891fa) when you report a problem. The latest release is on the Releases page.
The Wind Waker HD, native PC port, development build
This release contains no game files, no game code and no keys. You need your own disc dump
(.wux/.wud with its disc key, plus the Wii U common key from your console), a Cemu .wua archive
(no keys needed), or an already extracted game folder. The installer builds the game from it on your machine.
Install: download the zip for your system, unzip it anywhere and start Wind Waker HD. The
first start prepares the game once from your dump (about two minutes); later starts launch it directly.
Everything stays in that folder.
- macOS (Apple Silicon, macOS 14+):
Wind Waker HD.app. The release is not signed by Apple:
macOS 15+: System Settings > Privacy & Security > Open Anyway; macOS 14: right-click > Open.
Keep the app inside the unzipped folder (move the whole folder, not just the app) - Windows:
Wind Waker HD.exe(SmartScreen: "More info" > "Run anyway");windows-x86_64for x86-64,
windows-arm64for Windows on ARM (Snapdragon X) - Linux (glibc 2.35+, Vulkan):
wind-waker-hd;linux-x86_64for x86-64,linux-aarch64for arm64
(Raspberry Pi 5, Asahi Linux, ARM laptops). Or one file:chmod +xthe.AppImageand start it
from anywhere (Steam Deck included); its game, code, saves and settings go to~/.local/share/wwhd
and~/.config/wwhdinstead of beside it (Ubuntu 24.04+:libfuse2t64, or
--appimage-extract-and-run) - Android (arm64, Android 13+, Vulkan 1.3): install the
android-arm64.apk(android-x86_64is for
emulators and Chromebooks), choose your game in the app, and it builds the game on the phone (once,
a few minutes). Signing certificate SHA-256:
7F:F6:D3:5E:4E:45:11:5E:E4:93:65:EF:5B:40:C0:EB:83:EA:F7:6C:C1:1C:E9:67:F2:64:5C:50:4F:58:B2:13
See "Install (releases)" in the README for details.
What's new
-
Mods tab: Built-in and Community. The Mods list is split into Built-in (the options that come
with the game, such as the camera and speed options) and Community (mods from the mod catalogue,
installed or ready to download, plus imported packages and graphics packs); More is unchanged.
Mods now use the game IDwwhdfor both regions; older manifests withwwhd-usakeep working. -
Fixed: Call of the Sky could not be switched on from the catalogue. After confirming the
experimental warning, the install stopped with "confirm the warning first", because the save backup
was skipped. The backup now always runs once before the mod is switched on, and a failed backup shows
its reason. -
Fixed: a red "conflicting ID" box in Mods › More (Code-mod support). Release builds also no longer
show this debug highlight. -
Fixed: controllers stopped responding in the game after the settings overlay or the name screen
(issue #153). If a trigger or stick did not fully return to rest, the game ignored all input after
closing the overlay or entering a name until the controller was reconnected. Now only the button that
closed it waits for its release; everything else reaches the game at once. -
Linux AppImage: portable use now uses the AppImage's standard portable mode (issue #55). Start
the AppImage once with--appimage-portable-home, or create a folder named like it plus.homenext
to it (e.g.WindWakerHD-…-linux-x86_64.AppImage.home); the game, its code, saves, settings and caches
then stay in that folder. If you used the….AppImage.datafolder from v0.2.13, it is no longer
used; to keep your saves and settings, move its contents before starting the new version:
….AppImage.data/share→….AppImage.home/.local/share,….AppImage.data/config→
….AppImage.home/.configand….AppImage.data/cache→….AppImage.home/.cache, then start the
AppImage once with--setup. -
Share your shader coverage: Settings › Graphics › Export shader template (desktop) or
tools/shaderprep.py exportsaves a code-freemy-template.bin(shader hashes and GPU settings only, no
game code) from your own shader caches, so it can be contributed to the template that setup uses to
prepare shaders.shaderprep.py templateno longer fails with "invalid recipe bounds" on long-played or
Vulkan caches and skips damaged records instead of stopping. -
European GameCube saves can be converted to HD (
tools/savegame/gc2hd.py): PAL saves (GZLP01)
are accepted, names with accents (and Œ/œ) come through, and the save's language is kept. The
convertedcking.savworks with both the USA and the European HD game. -
Android handhelds and controllers (issue #152, thanks @OTPR26):
- Settings with a controller: holding Select/− now opens the settings after half a second as
intended (it could take about 3 seconds on some devices), and a one-time hint says so. - Touch buttons hide with a controller: the view and 🎮 buttons hide while a controller is
connected (built-in or external) and come back for a few seconds with a tap in their corner.
Settings › Display › Touch buttons: Automatic / Always show / Hide. - AYN Thor / Odin built-in controls: A, B, X and Y now sit in their Nintendo positions, all four
can be bound in Controls, and empty bindings incontrols.jsonare repaired. - Larger settings on phones and handhelds: the settings fill most of the screen with bigger
buttons, sized for the screen; Settings › Display › UI size (Automatic / Small / Medium / Large).
The desktop look is unchanged. - Texts say "Android device" instead of "phone", and the log names how Android reports a controller.
- Settings with a controller: holding Select/− now opens the settings after half a second as
-
Fixed: Windows setup failed in deep folders (issue #144), for example in Downloads after Windows'
"Extract All" puts the folder inside a folder of the same name. The compiler now unpacks with long
paths, and the game and setup use much shorter names for shader caches, temporary files, code-mod
builds and save backups (existing caches are reused or rebuilt automatically). Only a folder deeper
than 175 characters makes setup stop right away, before downloading anything, and ask you to move it
to a shorter place such asC:\Games\WindWakerHD. -
Development builds (macOS): setup can also build the decomp version (experimental, off by
default). A checkbox in setup (or--decomp) builds, next to the normal game, a version in which the
game functions of the public decompilation run as compiled source; it is built from your own game
on your Mac, and the normal game is always built first and stays the default. Choose which one starts
in setup, or start Wind Waker HD with--decomp. Setup downloads the decompilation's source (about
8 MB, only when the option is on) from its GitHub repository and checks it before use; the release
itself does not contain it. The decomp build now uses the readable decompilation; its model data is
generated from your game at build time. Regular releases are unchanged. -
Fixed: unreadable shoulder labels on the HUD (issue #143). With L1 R1 L2 R2 or LB RB LT RT as
shoulder names, the labels on the HUD's shoulder buttons were white on the white plates; they are now dark
like the game's own letters again (and dim the same way). Dialog labels are unchanged. -
Mods tab redesign. Every mod has an on/off switch in one list, including mods you haven't
downloaded yet: switching one on downloads it, sets it up and turns it on. When something is needed,
one review asks it all at once (your GameCube game, choices, code-mod support, the experimental
warning), then one progress view follows and keeps running while you play. Mod pages explain in one
line why something can't change right now instead of showing greyed buttons; updating keeps a mod on
or off as it was; Remove also deletes a mod's prepared files and says how much space that frees. The
mod list loads by itself (cached, checked in the background; only the public list is fetched). Rarely
used things (profiles, install from a file, GameCube game, code-mod support, save backups, mod list
source, cheats) are under Mods › More. -
Experimental: build the game from the decompilation (macOS, for developers). The CMake option
WWHD_DECOMP=ONcompiles the game code from the public, verified decompilation
(ZeldaWWHDDecomp/wwhd, a submodule indecomp/) instead of
recompiling it; the libraries stay recompiled from your game. It plays identically to the normal build
but still uses more CPU, so releases stay recompiled. Off by default: normal builds are unchanged. See
docs/decomp-build.md. -
Fixed: aspect ratios other than 16:9 (PR #146, thanks @fluxehub). At 16:10 (and 4:3) the
extra height now shows more of the view above and below instead of cropping a 16:9 picture, and
the HUD sits at the real screen edges. At 21:9 and 32:9 the button cluster and the Wind Waker's
"Back" prompt keep the same distance from the edge as at 16:9, and the Wind's Requiem screen
fills the whole screen instead of showing dark side bars. Layouts drawn to both the TV and the
GamePad no longer flicker between the two aspect ratios, and Vulkan no longer leaves the last
pixel row black at 16:10 with 1.5x. 16:9 is unchanged. -
Android: a menu on the game widget and an "Add the game icon" button (PR #150, thanks
@rhemfur). Long-press the home-screen widget, then Settings (Samsung) to export or import the save
or open the game setup. The setup screen has Add the game icon to the home screen under Play
for players who declined or removed it, and the automatic offer now waits until the setup screen
is in front, so Android no longer refuses it on some p...
v0.2.13
The Wind Waker HD, native PC port, v0.2.13
This release contains no game files, no game code and no keys. You need your own disc dump
(.wux/.wud with its disc key, plus the Wii U common key from your console), a Cemu .wua archive
(no keys needed), or an already extracted game folder. The installer builds the game from it on your machine.
Install: download the zip for your system, unzip it anywhere and start Wind Waker HD. The
first start prepares the game once from your dump (about two minutes); later starts launch it directly.
Everything stays in that folder.
- macOS (Apple Silicon, macOS 14+):
Wind Waker HD.app. The release is not signed by Apple:
macOS 15+: System Settings > Privacy & Security > Open Anyway; macOS 14: right-click > Open.
Keep the app inside the unzipped folder (move the whole folder, not just the app) - Windows:
Wind Waker HD.exe(SmartScreen: "More info" > "Run anyway");windows-x86_64for x86-64,
windows-arm64for Windows on ARM (Snapdragon X) - Linux (glibc 2.35+, Vulkan):
wind-waker-hd;linux-x86_64for x86-64,linux-aarch64for arm64
(Raspberry Pi 5, Asahi Linux, ARM laptops). Or one file:chmod +xthe.AppImageand start it
from anywhere (Steam Deck included); its game, code, saves and settings go to~/.local/share/wwhd
and~/.config/wwhdinstead of beside it (Ubuntu 24.04+:libfuse2t64, or
--appimage-extract-and-run) - Android (arm64, Android 13+, Vulkan 1.3): install the
android-arm64.apk(android-x86_64is for
emulators and Chromebooks), choose your game in the app, and it builds the game on the phone (once,
a few minutes). Signing certificate SHA-256:
7F:F6:D3:5E:4E:45:11:5E:E4:93:65:EF:5B:40:C0:EB:83:EA:F7:6C:C1:1C:E9:67:F2:64:5C:50:4F:58:B2:13
See "Install (releases)" in the README for details.
What's new
-
Linux AppImage: a portable mode (issue #55, idea by @missionfloyd). Create a folder named like the
AppImage plus.datanext to it (e.g.WindWakerHD-…-linux-x86_64.AppImage.data), and the AppImage keeps
the game, its code, saves, settings and caches there instead of in~/.local/share,~/.configand
~/.cache. Without that folder nothing changes. -
Profiling on Windows on ARM64: a sampling profiler for the frame threads (PR #147, thanks
@rhemfur). Off unlessWWHD_SAMPLE_THREADS=<file prefix>is set;tools/bench/thread_profile.py
turns the samples into a report by module and function, including time inside the Vulkan driver,
without administrator rights. See docs/performance.md. -
Android: a friendlier setup screen, and the app icon starts the game (PRs #128 and #129, thanks
@rhemfur). Setup now guides you step by step in English, Portuguese or Spanish ("Choose your
game", "Preparing the game for your phone… 20 of 80 · about 3 min left", "Your game is ready").
Once a game is set up, the app icon starts it directly ("Game setup" stays available by
long-pressing the icon), and the phone offers a home-screen game icon with the game's own picture,
made from your game files. -
Fixed: crash with Quick doors when leaving a room with spores (issue #145), for example at
the first door in the Forbidden Woods. Quick doors ran the spores' fade-out faster than the game
draws, so their effect was removed while still queued for drawing. Doors now wait for the
weather effect to finish fading (rain, stars, spores, fog and waves) and stay fast otherwise. -
Windows, Intel UHD graphics: a workaround for a crash in Intel's Vulkan driver a few seconds
after start (issue #144). On Intel GPUs every render-target view now states its purpose explicitly;
WWHD_VK_ATTACHMENT_VIEW_USAGE=0turns it off, andWWHD_VK_TRACE_PASSES=1logs each render
pass once for crash reports. -
Fixed: shadows switching between sharp and blurry at high internal resolutions (issue #135).
Above 1x, the sun-shadow pass rebuilt surface normals from rays one console pixel apart but depths
one screen pixel apart, so depending on the camera angle shadows smeared and Link could get a dark
outline. The pass now uses matching spacing, so shadows at 2x, 3x or 4K look like at 1x, only sharper. -
Fixed: Android GPU crashes ("device lost") on some Adreno phones (issue #104). The precise
GPU barriers that v0.2.12 turned on for Android caused occasional crashes with Mesa Turnip on an
Adreno 650 and gave no measurable speed-up, so they are off by default again on every platform
(WWHD_VK_NARROW_BARRIERS=1still turns them on). Thanks to @rhemfur for the measurements. -
Fixed: setup stopped with "the recompiler wrote no code" (issue #136) when the install folder's
path contains square brackets, for example...\LoZ - The Wind Waker [WiiU]\data. Setup and the
recompiler treated the brackets as a search pattern and then found none of their own files. -
Android setup: "Continue anyway" when it waits for the phone to cool down (issue #142). The
pause now shows the battery temperature and Android's thermal status, waits only at 45 °C battery
temperature (42 °C if Android also reports the phone as warm) or when Android reports it as hot,
and a Continue anyway button (also on the low-battery pause) lets you go on for this run. Only
Android's critical heat level still stops setup. -
Mods: experimental mods and save backups. Mods marked Experimental (untested, may break the
game or a save made while they are active; Call of the Sky is one) are hidden unless you turn on
Show experimental mods in the Mods tab. Turning one on asks first and backs up your saves before
it is enabled. Mods → Save backups lists the backups (the newest 10 automatic ones are kept;
Back up now backups are never removed), can restore one at the next start, before the game loads
any save (your current saves are backed up first, so a restore can be undone), or delete one. -
Setup: "Preparing shaders" is much faster and shows real progress. The release now includes the
native decoder for the game's compressed archives (before, setup unpacked them in slow Python) and
scans them on several cores: about 10 seconds instead of about 4 minutes on an Apple Silicon Mac,
with an identical result. The bar now fills as it works ("400 of 818 game archives", then the
shaders and pipelines compiled), and Vulkan compiles pipelines on several threads. On Android the
app now ships the same native decoder, so preparation on the phone is much faster as well.shaders and pipelines compiled), and Vulkan compiles pipelines on several threads.
On a Mac, setup now prepares both Metal and Vulkan, so either renderer starts without first-time
shader stutter. -
Controls: in-game button prompts follow your controller (PR #110, thanks @mhbxyz). With Face
buttons set to by label (or Automatic on an Xbox-style pad), dialog icons and HUD buttons use
green A, red B, blue X and yellow Y, the HUD button cluster uses the Xbox positions, and shoulder
prompts read R1/R2 and L1/L2 in the game's own lettering. By position keeps the original look. -
Controls: a "Stick range" setting per stick (issue #40). For a worn stick that can't reach full
deflection: raise its range (100–150 %, default 100 %) in Settings → Controls or the macOS Controls
window until the input reaches full tilt, for example the Wind Waker baton's directions. It's
applied after the dead zone and keeps the stick's direction. -
Mods: a "Restart required" popup. Changes that only take effect after a restart (turning
packages, graphics packs or code mods on or off, their settings, profiles, a finished one-click
setup, a code-mod rebuild) now show a popup with Restart now and Later, and the Mods tab keeps
a "Restart to apply" line until you restart. -
Fixed: one-click mod setup stopped with "Package changed; refresh it and confirm its code again"
after a preparation step, e.g. for the GameCube sea minimap. The mod's Python tool left cache files
in the package, which made the package look changed. Setup tools now run without writing them. If you
already hit this, refresh the mod in the catalogue (or delete itstools/__pycache__folder) and
press Try again. -
Vulkan: choose your graphics card in Settings → Graphics (issue #135), e.g. on laptops with an
Intel and an NVIDIA GPU. The choice is remembered and applies after a restart; if the chosen card is
no longer available, the game picks a usable one and says so.WWHD_VK_DEVICE(an index or part of
the name) overrides it for one start. -
Fixed: the 60, 120 and 240 fps settings dropped to about 30–50 fps on PCs that can't quite draw
60 frames a second (issue #125). A frame that misses its display refresh is now shown as soon as
it's ready instead of waiting a whole extra refresh, so you get close to what Uncapped shows (e.g.
56 instead of 30 fps). Frames that are on time are paced exactly as before. -
Fixed: the Picto Box picture stayed blurry (issue #134). The left stick zooms the Picto Box, and
the game blurs the picture while zooming, so even a slightly drifting stick kept it blurry. Controller
sticks now have a 15 % dead zone by default (Settings → Controls; a saved 0 from older versions
becomes 15 %, an explicitly chosen 0 stays). On Metal, the photo's subject outline could also miss
pixels the first time; that's fixed too. -
Less stutter on first play: setup now prepares the shaders. After building the game, setup runs
Preparing shaders: from your own game files and a small, code-free list of the game's GPU states
that comes with the release, it compiles the shaders and pipelines before you play (about 15–20 s on
a recent Mac). In our tests the cold first-play hitches over 50 ms went from 5–10 to 0. You can skip
it in setup, and Settings → Graphics → Rebuild shader cache prepares a fresh one. Areas that
aren't covered can still stutter once. On V...
v0.2.12
The Wind Waker HD, native PC port, v0.2.12
This release contains no game files, no game code and no keys. You need your own disc dump
(.wux/.wud with its disc key, plus the Wii U common key from your console), a Cemu .wua archive
(no keys needed), or an already extracted game folder. The installer builds the game from it on your machine.
Install: download the zip for your system, unzip it anywhere and start Wind Waker HD. The
first start prepares the game once from your dump (about two minutes); later starts launch it directly.
Everything stays in that folder.
- macOS (Apple Silicon, macOS 14+):
Wind Waker HD.app. The release is not signed by Apple:
macOS 15+: System Settings > Privacy & Security > Open Anyway; macOS 14: right-click > Open.
Keep the app inside the unzipped folder (move the whole folder, not just the app) - Windows (x86-64):
Wind Waker HD.exe(SmartScreen: "More info" > "Run anyway") - Linux (glibc 2.35+, Vulkan):
wind-waker-hd;linux-x86_64for x86-64,linux-aarch64for arm64
(Raspberry Pi 5, Asahi Linux, ARM laptops). Or one file:chmod +xthe.AppImageand start it
from anywhere (Steam Deck included); its game, code, saves and settings go to~/.local/share/wwhd
and~/.config/wwhdinstead of beside it (Ubuntu 24.04+:libfuse2t64, or
--appimage-extract-and-run) - Android (arm64, Android 13+, Vulkan 1.3): install the
android-arm64.apk(android-x86_64is for
emulators and Chromebooks), choose your game in the app, and it builds the game on the phone (once,
a few minutes). Signing certificate SHA-256:
7F:F6:D3:5E:4E:45:11:5E:E4:93:65:EF:5B:40:C0:EB:83:EA:F7:6C:C1:1C:E9:67:F2:64:5C:50:4F:58:B2:13
See "Install (releases)" in the README for details.
What's new
-
Android: the app is now part of every release and development build. Download
WindWakerHD-<version>-android-arm64.apk(x86_64 for emulators and Chromebooks), install it, choose
your game, and setup builds the game on the phone. The APK contains no game code. It is signed with the
project's key (certificate SHA-2567F:F6:D3:5E:…:B2:13, full value in the release notes), so later
versions install as updates. -
Mods: one-click setup. Tick a mod (or press Set up), confirm once, and its setup runs by
itself: for example the GameCube sea minimap prepares its island maps and builds itself, then turns
on. If the game code first needs code-mod support, the game rebuilds and restarts and the setup
continues afterwards. If a step fails: Show details and Try again. Changed packages ask for
confirmation again. -
Menu and on-screen keyboard: confirm and cancel like in the game (PR #118, thanks @rhemfur). With
the default face-button preset (by position) the right button confirms and the bottom one goes back,
as in the game; the on-screen keyboard types with the game's A and deletes with B. "By label" and
"Automatic" are followed too. -
Android player guide in English, Portuguese and Spanish (PR #122, thanks @rhemfur):
docs/android.md. -
Diagnostics for menu input problems (issue #111):
WWHD_OVERLAY_TRACE=1logs what the settings
menu receives from the controller and every scroll change;WWHD_OVERLAY_MOUSE_HANDOFF=0turns the
mouse takeover off for such a test. Steps in docs/overlay-controls.md. -
Mods tab: installed catalogue mods show where their setup stands. Each step reads "Done" or
"To do" (for example the GameCube game step is done once you set it), with a Go to setup button
that jumps to the mod's setup; "Up to date" replaces the greyed-out Update button. -
Fixed: the game didn't start with a content mod (for example a translation) in the development
builds (issue #109). The mod manager switched the replacement files on twice at startup and stopped
with "Content overrides already activated". Content mods and code mods now start together as they should. -
Bug reports: the log now lists every connected controller (name, vendor and product ID, type),
on connect and disconnect. The game combines all controllers Windows/Linux report, so this shows
when a second device (e.g. Steam Input's virtual controller) is also sending input. -
Android: set up the game directly on the phone, no PC needed (PR #98, tested by @rhemfur).
Choose your game (an extracted folder, a WUA or a WUD/WUX), and the phone translates and compiles the
game code itself (several minutes; up to 4 compiler workers depending on the phone), with a progress
display. Setup pauses when the phone gets too warm or the battery is low, and resumes where it
stopped. Also new: the GamePad picture on a second screen (foldables, external displays). -
Mods: one setting for the GameCube version of the game. Settings → Mods → GameCube game for
mods: choose your GameCube Wind Waker disc image or folder once (it shows the recognised region),
and every mod that needs it uses it. A mod whose copy is missing can't be enabled and offers a
button to that setting. Changing the copy marks the affected mods for setup again (prepared files
are kept). -
Android: on-screen controls (PR #88, thanks @rhemfur). Phones without a controller can now
play: the 🎮 button under the view button (top left) shows or hides two sticks, the D-pad,
A B X Y, L R, ZL ZR and + − (remembered). They act like a controller, so the button mapping and a
physical controller keep working; with a controller connected they hide until you touch the screen. -
Controls: an Automatic face-button preset (PR #102, thanks @mhbxyz). It reads the labels
printed on the pad that was plugged in first and follows them, so an Xbox or PlayStation pad plays
by label and a Nintendo pad by position, without touching the setting. -
Mods tab: a "Reset to default" button for the catalogue address. It puts back the official
mod catalogue if the address was changed. Download errors now also show the server's status code
(for example "HTTP 404"), so a wrong address is easier to tell apart from a connection problem. -
Setup can now build with code-mod support right away. A new "Build with code-mod support"
option (off by default) saves the second rebuild when you want code mods. Updates and repairs keep
your choice, and Settings → Mods shows it immediately. Details:
docs/setup-code-mods.md. -
Fixed: the settings menu scrolled back up after the left stick had been used (issue #111).
A left stick that rests slightly off-centre kept scrolling the menu, even while you scrolled with
the mouse. Now the mouse takes over as soon as you move, click, scroll or drag the scroll bar; the
controller takes over again with its next new input. Controls:
docs/overlay-controls.md. -
Fixed: in development builds every catalogue mod showed "Unavailable for this port version".
Development builds now carry the last release's version plus the commit (for example
v0.2.11-devel.1a2b3c4d), so the catalogue can check compatibility. -
macOS: the game has its icon again. Setup now gives the installed app the game's own icon,
made from your game files (the release can't ship it), and the game shows it in the Dock while it
runs. Existing installations get it with the next update or repair. -
macOS: Vulkan is now included in the release. Pick it in Graphics > Renderer; nothing to
install. The Vulkan loader and MoltenVK come with the game and are always the ones it uses (never a
Homebrew copy). Metal stays the default, and if Vulkan can't start, the game falls back to Metal
and says why. This also makes Cemu graphics packs with GLSL shaders usable on the Mac. -
5.1 surround sound (issue #115). Settings → Audio → Speakers: Surround 5.1 (restart after
changing it) sends the game's six separate surround channels, as the Wii U does with its Surround
TV setting. Test speakers plays a tone on each speaker in turn and names it, so the wiring is
easy to check. Stereo stays the default; if the output can't do 5.1, the game stays in stereo and
says so. Details: docs/surround-audio.md. -
Fixed: text fields in the settings overlay didn't accept typing or pasting (for example the
catalogue address and the mod search; only deleting worked). Typed text, Ctrl+V / Cmd+V and copy
now work on all platforms; on Android the on-screen keyboard opens for these fields. -
Cemu graphics packs that conflict can no longer both be switched on (issue #68). The Mods tab
shows "Conflicts with …" before you enable a pack; enabling it asks whether to switch (the other
pack is turned off). Each pack shows what is active now and what changes after a restart, with a
Restart now button. Profiles that had two conflicting packs on are repaired once, with a note. -
Fixed: with Fast scene changes on, Grandma kept her back to Link when handing over the shield
(issue #116, found and fixed by GreenNaugahyde). The mod no longer creates the new scene's
characters ahead of time; fades and scene changes stay almost as fast. -
Fixed: crash when entering the Puppet Ganon room (issue #90, Vulkan). The room uses a colour
texture for a depth comparison, which the Vulkan renderer didn't support, so it stopped with an error.
It now handles it. Such internal errors are also no longer lost: they are written to the log and
the crash log with their message before the game stops, also on Windows. After updating, setup
compiles the game code once more. -
The mouse pointer now hides when you don't use the mouse (issue #109). After 2 seconds without
mouse movement it disappears from the game window, in full screen and in a window, on Windows,
Linux and macOS; moving the mouse shows it again. It stays visible while the settings overlay is open. -
**Fixed: the aspect ratio wasn't remembere...
v0.2.11
The Wind Waker HD, native PC port, v0.2.11
This release contains no game files, no game code and no keys. You need your own disc dump
(.wux/.wud with its disc key, plus the Wii U common key from your console), a Cemu .wua archive
(no keys needed), or an already extracted game folder. The installer builds the game from it on your machine.
Install: download the zip for your system, unzip it anywhere and start Wind Waker HD. The
first start prepares the game once from your dump (about two minutes); later starts launch it directly.
Everything stays in that folder.
- macOS (Apple Silicon, macOS 14+):
Wind Waker HD.app. The release is not signed by Apple:
macOS 15+: System Settings > Privacy & Security > Open Anyway; macOS 14: right-click > Open.
Keep the app inside the unzipped folder (move the whole folder, not just the app) - Windows (x86-64):
Wind Waker HD.exe(SmartScreen: "More info" > "Run anyway") - Linux (glibc 2.35+, Vulkan):
wind-waker-hd;linux-x86_64for x86-64,linux-aarch64for arm64
(Raspberry Pi 5, Asahi Linux, ARM laptops). Or one file:chmod +xthe.AppImageand start it
from anywhere (Steam Deck included); its game, code, saves and settings go to~/.local/share/wwhd
and~/.config/wwhdinstead of beside it (Ubuntu 24.04+:libfuse2t64, or
--appimage-extract-and-run)
See "Install (releases)" in the README for details.
What's new
-
Linux: one-file AppImage (issue #55, PR #101, thanks @mhbxyz), next to the zip. Download it,
make it executable, run it. It keeps the game, its compiled code, saves and settings in your user
folders ($XDG_DATA_HOME/wwhd, usually~/.local/share/wwhd);--data-dirpicks another folder.
On distributions without libfuse2 (e.g. Ubuntu 24.04+) start it with--appimage-extract-and-run.
The zip stays as it is. -
Face buttons by label (Xbox layout) (issue #78, PR #97, thanks @mhbxyz): settings overlay →
Controls → Face buttons (also the macOS Controls window and Input menu). By position
(Nintendo) stays the default; by label (Xbox) makes the button named A act as A, so on an Xbox pad
A accepts and B goes back. -
Ultrawide and tall screens: menus fixed (issue #76, building on PR #16 by @arcadematicas): at
21:9, 32:9, 16:10 and 4:3 the pause menu, inventory grid, cursor, map and the tabs stay centred at 16:9
and line up again; backgrounds and the sepia filter still fill the picture. -
Fixed: black letter card in the Rito mail-sorting game (issues #28, #69, PR #39, thanks
@Sean13128): the GPU's "0 × anything = 0" multiply is emulated now (as in Cemu). The shader caches
rebuild once after updating, so expect a brief stutter on the first start. -
Fixed: Cemu graphics packs
- packs that replace pixel shaders (e.g. Contrasty, NoSSAO, RemoveHUD) partly didn't apply on Vulkan
since v0.2.10 (PR #87, thanks @rhemfur); - packs for the European version were refused with "Cemu pack does not target WWHD USA"
(issue #103). A pack is now accepted when itstitleIdsname the version you installed;
SDCafiine-style folders named after the title ID follow the same rule.
- packs that replace pixel shaders (e.g. Contrasty, NoSSAO, RemoveHUD) partly didn't apply on Vulkan
-
Smoother in busy views on Windows and Android: the Vulkan buffer cache is now on by default
everywhere. It keeps unchanged vertex, index and uniform data on the GPU instead of copying them
every frame: on an RX 6700 XT 13–19% less render-thread time and half the uploads (issue #91, thanks
@darklinkpower), on a Galaxy S25 Ultra about 34 → 47 fps in heavy Outset views (issue #56, thanks
@rhemfur). If you see broken or flickering geometry, start withWWHD_VK_BUFFER_CACHE=0and please
report it. -
Less CPU work:
- native versions of the game's two hottest audio loops (PR #81, thanks @depende3000): the audio
thread uses about two thirds less CPU, with bit-identical sound (also on the European version); - the scheduler sleeps while nothing is waiting, and GPU context switches copy only the registers
that changed; - the recompiler no longer emits signed overflow for
mulli/mullw/neg(PR #82, thanks
@depende3000), a latent bug a newer compiler could have turned into wrong behaviour.
- native versions of the game's two hottest audio loops (PR #81, thanks @depende3000): the audio
-
Android:
- when the system driver is too old for the renderer, Adreno phones offer Install GPU driver…
right in the error message (PR #92, thanks @rhemfur); - on one-screen views the GamePad screen appears automatically while the game is paused (map,
menus, save prompt) and the TV picture comes back when you resume (PR #59, thanks @rhemfur); - precise Vulkan synchronization (barriers) is on by default, where tile-based GPUs are expected to
gain the most (issue #104). On desktop it's opt-in for testing:WWHD_VK_NARROW_BARRIERS=1.
- when the system driver is too old for the renderer, Adreno phones offer Install GPU driver…
-
Save states remember the controller mode (Pro Controller or GamePad) and restore it on load.
-
"Keep game speed" explained: with it off, the whole game runs in slow motion whenever the frame
target isn't reached (e.g. 120/240 fps at 2x). The setting says so now, is marked as recommended, and
the performance overlay warns when it happens (issue #91). -
A log file for every run:
captures/wwhd.login the game's data folder (the previous run's is
kept aswwhd-previous.log), with your user paths removed as in crash logs. Please attach it to bug
reports.WWHD_LOG_FILE=<path>writes it elsewhere,WWHD_LOG_FILE=0turns it off. -
Code mods (Mod SDK v2, off by default): mods written in C for the console's CPU, translated and
built on your machine when you install them, for the USA and the European game. Turn them on in
Settings → Mods → Enable code mods (this rebuilds the game code once; with it off nothing changes).
For modders: docs/mod-sdk-v2.md. -
Smaller fixes:
WWHD_SHADOW_FIXis gone, useWWHD_SHADOW_SCALE=1for console-sized shadow maps
(issue #67: since v0.2.9 both sizes look practically the same); the buffer cache's verify mode no
longer reads GPU memory (it ran at ~1 fps on some Windows drivers); a crash at exit with SDL 3.4 on
Linux is fixed.
Checksums (SHA-256)
6e1bb12e2fbdf0a686bc8c26babf256e5f255008ae726d144aabc259eee97f4f WindWakerHD-v0.2.11-linux-aarch64.zip
02dd618ee9177e23cf158ac7b0394a226edf2af2b59c98f3bccdfc29940f2854 WindWakerHD-v0.2.11-linux-x86_64.zip
f909ad996d6e83b88b1358298d5bf25d3777844c0d13a8db8d40f8a46e049042 WindWakerHD-v0.2.11-macos-arm64.zip
6b2a938192197b69cd4d1e72ad09ca970c394ff3849e508f55d16038d05db92d WindWakerHD-v0.2.11-windows-x86_64.zip
58f4c39187586a8d6dd1328ea194563f0f0a39d2cd561d4a18bcc1654291ec98 WindWakerHD-v0.2.11-linux-aarch64.AppImage
c12388c21ffd6bc46fda38a018ac6f2d8cce95d0610580c68c7292672015b0f7 WindWakerHD-v0.2.11-linux-x86_64.AppImage
VirusTotal
Scan results of this release's files at publishing time (results can change as engines update):
WindWakerHD-v0.2.11-linux-aarch64.zip: 0 of 65 engines flag it, reportWindWakerHD-v0.2.11-linux-x86_64.zip: 0 of 63 engines flag it, reportWindWakerHD-v0.2.11-macos-arm64.zip: 0 of 66 engines flag it, reportWindWakerHD-v0.2.11-windows-x86_64.zip: 8 of 66 engines flag it, reportWindWakerHD-v0.2.11-linux-aarch64.AppImage: 0 of 62 engines flag it, reportWindWakerHD-v0.2.11-linux-x86_64.AppImage: 0 of 64 engines flag it, reportWind Waker HD.exe: 9 of 71 engines flag it, report
Detections on the Windows files are generic heuristics on an unsigned program (ALYac, Arcabit, BitDefender, CTX, Emsisoft, GData, MicroWorld-eScan, Microsoft, VIPRE), reported to the vendors as false positives; see issue #58.
v0.2.10
The Wind Waker HD, native PC port, v0.2.10
This release contains no game files, no game code and no keys. You need your own disc dump
(.wux/.wud with its disc key, plus the Wii U common key from your console), a Cemu .wua archive
(no keys needed), or an already extracted game folder. The installer builds the game from it on your machine.
Install: download the zip for your system, unzip it anywhere and start Wind Waker HD. The
first start prepares the game once from your dump (about two minutes); later starts launch it directly.
Everything stays in that folder.
- macOS (Apple Silicon, macOS 14+):
Wind Waker HD.app. The release is not signed by Apple:
macOS 15+: System Settings > Privacy & Security > Open Anyway; macOS 14: right-click > Open.
Keep the app inside the unzipped folder (move the whole folder, not just the app) - Windows (x86-64):
Wind Waker HD.exe(SmartScreen: "More info" > "Run anyway") - Linux (glibc 2.35+, Vulkan):
wind-waker-hd;linux-x86_64for x86-64,linux-aarch64for arm64
(Raspberry Pi 5, Asahi Linux, ARM laptops)
See "Install (releases)" in the README for details.
What's new
- Fixed: the cheats in v0.2.9 wrote to the wrong place in the save data (Give all items, Master
Sword + Mirror Shield, 20 hearts / double magic / 5000 rupees) and could damage the save. They write
to the right place again. - Fixed: Medli missing on Dragon Roost after using the Master Sword cheat (issue #85). The cheat
gave the full-power Master Sword as owned, which the game treats as story progress, so Medli (and
later Makar) stayed away and the story couldn't continue. The cheat now only equips the Master
Sword and Mirror Shield until the next reload. Saves already affected can be repaired with
tools/savegame/wwsave.py repair-medli(it keeps a backup; see the save tools README). - Vulkan: pixel shaders are now linked to their vertex shader when they are translated, so
drivers that refused some pipelines get correct shaders from the start (PR #54 by @rhemfur, the
proper fix for #30).
Checksums (SHA-256)
e9cc89f3a2a2a2439c5f7751def594fd4d2a081e5e71755a073ab5ce9f4088e9 WindWakerHD-v0.2.10-linux-aarch64.zip
64e912cb7ac46bdd6329386f725eea217a5b09f13551bbbeb346d954eac58791 WindWakerHD-v0.2.10-linux-x86_64.zip
8ee8d70aa9c409f1b90ea3bd419ca0844f673ce072933955960cecffce220571 WindWakerHD-v0.2.10-macos-arm64.zip
6e456d8179ef946c08e5991b9e508a94da254c577a348eca6f0539bc3b256c34 WindWakerHD-v0.2.10-windows-x86_64.zip
VirusTotal
Scan results of this release's files at publishing time (results can change as engines update):
WindWakerHD-v0.2.10-linux-aarch64.zip: 0 of 65 engines flag it, reportWindWakerHD-v0.2.10-linux-x86_64.zip: 0 of 64 engines flag it, reportWindWakerHD-v0.2.10-macos-arm64.zip: 0 of 59 engines flag it, reportWindWakerHD-v0.2.10-windows-x86_64.zip: 11 of 58 engines flag it, reportWind Waker HD.exe: 13 of 70 engines flag it, report
Detections on the Windows files are generic heuristics on an unsigned program (ALYac, AVG, Arcabit, Avast, Avira, BitDefender, CTX, Cynet, Emsisoft, F-Secure, GData, MicroWorld-eScan, Microsoft, VIPRE), reported to the vendors as false positives; see issue #58.
v0.2.9
⚠ Known issue in v0.2.9: the cheats (Settings → Mods → Cheats) write to the wrong place in the save data and can damage your save. Fixed in v0.2.10, please update (it also fixes the Master Sword cheat hiding Medli on Dragon Roost, #85). The other mods and all other features are not affected.
The Wind Waker HD, native PC port, v0.2.9
This release contains no game files, no game code and no keys. You need your own disc dump
(.wux/.wud with its disc key, plus the Wii U common key from your console), a Cemu .wua archive
(no keys needed), or an already extracted game folder. The installer builds the game from it on your machine.
Install: download the zip for your system, unzip it anywhere and start Wind Waker HD. The
first start prepares the game once from your dump (about two minutes); later starts launch it directly.
Everything stays in that folder.
- macOS (Apple Silicon, macOS 14+):
Wind Waker HD.app. The release is not signed by Apple:
macOS 15+: System Settings > Privacy & Security > Open Anyway; macOS 14: right-click > Open.
Keep the app inside the unzipped folder (move the whole folder, not just the app) - Windows (x86-64):
Wind Waker HD.exe(SmartScreen: "More info" > "Run anyway") - Linux (glibc 2.35+, Vulkan):
wind-waker-hd;linux-x86_64for x86-64,linux-aarch64for arm64
(Raspberry Pi 5, Asahi Linux, ARM laptops)
See "Install (releases)" in the README for details.
What's new
-
Play the European version directly (title 00050000-10143600): setup now also accepts the
European game on its own, without the USA version, and builds the port from it through an address
map derived from the two executables (every function and call matched; contributed by @ElFDA,
PR #77, with ideas from GreenNaugahyde's Android fork). German, Italian, British English, French and
Spanish are its own languages then. Hooks, mods and save states work as on the USA version. -
Bloom, distance haze and the sun's glare are back: the game builds its glow from smaller
copies of the picture, which the port never made; now it does, on Metal and Vulkan, so the picture
looks like on the Wii U again. The sun's corona and lens flare react to whether the sun is hidden
(adapted from GreenNaugahyde's Android fork). New Settings → Graphics → Effects → Bloom
strength (0–200%, default 100%). On Macs, colours now go through the display's colour profile, as
with Vulkan. -
Android: phones whose GPU can't read the game's compressed textures (many Mali and PowerVR
GPUs) now decode them on the GPU instead of showing black or broken textures; on Snapdragon phones
you can install and select custom Vulkan drivers such as Turnip (Settings → Graphics; a driver
that crashes or hangs in its first seconds falls back to the system driver on the next start). Both
follow the approach of GreenNaugahyde's Android fork,
rebuilt on our renderer. Not yet tested on real Mali/PowerVR/Snapdragon devices: reports welcome. -
Run and swim faster (optional, Mods tab, off by default): hold L3 (or toggle) to boost Link's
running and swimming speed, 1.25x to 4x; works with true 60. The idea comes from GreenNaugahyde's
Android fork. -
Average frame rate in the performance overlay (and GPU load and temperatures on Android where
readable); crash logs now include the settings in use, with your user paths removed, and Android
offers to share the log after a crash. -
Vulkan: the compressed-texture feature is now enabled as the Vulkan specification requires.
-
Screenshot key: F10 saves the TV picture as a PNG in a
screenshotsfolder next to the save
states (~/Library/Application Support/wwhd/screenshots,%APPDATA%\WWHD\screenshots,
~/.config/wwhd/screenshots;data/user/screenshotsin a release folder), named
WindWakerHD_YYYY-MM-DD_HH-MM-SS.png. It is the frame shown when you press the key (also at 60/120/240
fps), at the internal resolution and aspect ratio (2x at 21:9: 3414x1440), with the game's own effects
and FXAA when on, but without the settings overlay or notices; "Screenshot saved" shows briefly. The
key can be changed (or a controller button added) in Controls ("Photo"); the Saves tab has Open
screenshots folder and an option to also save the GamePad screen (..._GamePad.png) while it is
shown. Saving happens in the background: the game does not stutter. Both renderers, all platforms. -
Frame interpolation fixes (60/120/240 fps and true 60): the waving flags on Dragon Roost no
longer turn into huge stretched polygons on the in-between frames (issues #36, #70); the boat's sail
and yard and items Link carries (a bomb) no longer jump for single frames (issue #68); the stars in
the night sky no longer wobble when the camera turns (issue #68). 30 fps is unchanged. -
Fixed: the pause menu would not close at 120/240 fps (issues #64, #74; probably also #73, no
control after an item-get message). The HD screens (the TV pause screen and others) advanced on every
drawn frame instead of once per game step, so the TV pause screen reopened itself right after
closing. They now update once per step, which also gives their fades their 30 fps speed back at
60/120/240 fps.
Checksums (SHA-256)
2f1e7c8b6b1286e97d2f31cebb7cb5384848f0b2d56ea55756795985ddb12f00 WindWakerHD-v0.2.9-linux-aarch64.zip
7990acd2f8388525007b1237e0b1cbbb1d0904de99ee4d60cc94b1243245ddb6 WindWakerHD-v0.2.9-linux-x86_64.zip
0dce7748fe24159567a9ac39ac5262c8c41b6e8f8fb038fed2e80673e0389461 WindWakerHD-v0.2.9-macos-arm64.zip
476c104511e50257285d8b4a8f929cd51270a97dbf4151386ea58b8c72e2b440 WindWakerHD-v0.2.9-windows-x86_64.zip
VirusTotal
Scan results of this release's files at publishing time (results can change as engines update):
WindWakerHD-v0.2.9-linux-aarch64.zip: 0 of 61 engines flag it, reportWindWakerHD-v0.2.9-linux-x86_64.zip: 0 of 64 engines flag it, reportWindWakerHD-v0.2.9-macos-arm64.zip: 0 of 65 engines flag it, reportWindWakerHD-v0.2.9-windows-x86_64.zip: 9 of 65 engines flag it, reportWind Waker HD.exe: 12 of 70 engines flag it, report
Detections on the Windows files are generic heuristics on an unsigned program (ALYac, AVG, Arcabit, Avast, Avira, BitDefender, CTX, Emsisoft, GData, MicroWorld-eScan, Microsoft, VIPRE), reported to the vendors as false positives; see issue #58.
v0.2.8
The Wind Waker HD, native PC port, v0.2.8
This release contains no game files, no game code and no keys. You need your own disc dump
(.wux/.wud with its disc key, plus the Wii U common key from your console), a Cemu .wua archive
(no keys needed), or an already extracted game folder. The installer builds the game from it on your machine.
Install: download the zip for your system, unzip it anywhere and start Wind Waker HD. The
first start prepares the game once from your dump (about two minutes); later starts launch it directly.
Everything stays in that folder.
- macOS (Apple Silicon, macOS 14+):
Wind Waker HD.app. The release is not signed by Apple:
macOS 15+: System Settings > Privacy & Security > Open Anyway; macOS 14: right-click > Open.
Keep the app inside the unzipped folder (move the whole folder, not just the app) - Windows (x86-64):
Wind Waker HD.exe(SmartScreen: "More info" > "Run anyway") - Linux (glibc 2.35+, Vulkan):
wind-waker-hd;linux-x86_64for x86-64,linux-aarch64for arm64
(Raspberry Pi 5, Asahi Linux, ARM laptops)
See "Install (releases)" in the README for details.
What's new
- Fixed: the game could freeze at startup with 0 fps on some Macs (issue #62, MacBook Air M1).
Newer Apple compilers turned the game's spin-wait loops into endless loops that never saw the other
core release the lock. Every loop in the game code now re-reads memory on each pass; no measurable
speed cost. - Fixed: Android crashed when changing the aspect ratio or internal resolution on some phones
(issue #72, Adreno 830). Phones whose driver cannot blit depth buffers now copy them with a small
draw instead; nothing aborts any more if a device can do neither. Thanks to @Blivii for the analysis
and the patch. - Fixed: grid pattern in contact shadows at higher internal resolutions (issue #66). The game's
shadow and ambient-occlusion blur now covers the same area as on the console at every resolution;
1x is unchanged and there is no measurable speed cost. Shadow maps still scale with the internal
resolution for sharp shadows;WWHD_SHADOW_FIX=1keeps them at the console's 1024x1024 instead,
for soft edges that never shimmer (issue #67). - More languages (experimental): with your own dump of the European or Japanese game, the port can
use its text, fonts and menus: German, Italian, British English, European French and Spanish, or
Japanese. See docs/language-packs.md. - Fan translations as content mods, including Arabic and Hebrew drawn right to left (issue #60),
see docs/mod-manager.md and docs/rtl-text.md. - macOS: closing the TV window quits the game (issue #65), as on Windows and Linux. During a game
it asks first: Quit, Cancel or Save State and Quit.WWHD_QUIT_PROMPT=0turns the
question off. - Faster on Linux and Steam Deck (Vulkan): the guest buffer cache is now on by default on desktop
Linux, as on macOS. It keeps unchanged vertex, index and uniform data on the GPU instead of copying it
every frame, which removed a 20 fps lock in busy views on an RK3588 board (issue #50). If you see broken
or flickering geometry, start withWWHD_VK_BUFFER_CACHE=0and please report it. Windows and Android
stay opt-in (WWHD_VK_BUFFER_CACHE=1). - Save states are now small and can go into bug reports. The Save state button (and
Shift+F1–F5, the Save States menu) now writes a portable state,slotN.wwstate: a few KB with
your progress (the same save data the game writes intocking.sav) and where Link stands (stage,
room, position, facing, time of day). It contains no game code and no game data, so you can attach
it to an issue; Copy save for bug report in the Saves tab copies the paths of the state and of
yourcking.sav. Loading one puts that progress into the running game and takes Link there; it is
not an exact snapshot (enemies, a running cutscene and other actors start fresh). The old full
states (the whole running game, ~300 MB, contain game data: never share them) are still there for
debugging: Saves › Full save states, orWWHD_FULL_SAVE_STATES=1. Loading a slot loads either
kind; an older full state in a slot is kept and the Saves tab says so. A portable state can only be
saved while you control Link (not during a cutscene or dialogue); one saved on the boat puts Link
back on the boat. See docs/portable-save-states.md. - Fixed: "Quick doors" could crash the game going through a door (issue #61, "PROGRAM HALT
J3DPacket.cpp:157"; reported in Tingle's jail on Windfall). The extra game steps that make doors
quicker also deleted actors (a pot, a rat, Tingle) faster than the game allows: an actor that
removed itself while a door opened was freed before its last drawn frame was done with. Deleting
now keeps its normal pace; doors are as quick as before. - Gyro aiming fixes (issues #45 and #71): a new Turn left/right by setting (settings overlay →
Controls → Gyro…) with the usual gyro conventions: Player space (default: turn the controller
left or right about the real vertical, however you hold it), Yaw (its own vertical axis) or Roll
(tilt it like a steering wheel). Before, rolling the controller turned the view and turning it depended
on how you held it. The default sensitivity is lower (0.5x, about one to one with your controller; the
range now goes down to 0.05x), and settings that still have the old default start at the new one.
Gyro aiming now also works in Pro Controller mode. For reports that the gyro stops after a while:
the port no longer stops when a controller's sensor timestamps stall, switches to the controller you
move when several are connected, turns a controller's sensors on again when they fall silent, and logs
[gyro]lines that say why motion stopped (including a drifting right stick, which makes the game
ignore the gyro). "Recenter" is now Recalibrate (learns the gyro's offset anew).
Checksums (SHA-256)
a5ab53458e18a3c8c9dfb1ad3d96dc0ee6790e2020014b276ee4f5187cabfcd8 WindWakerHD-v0.2.8-linux-aarch64.zip
0385371860ed8b7a43a2d2d0a000cb210683c95b73a700c25935a7759cd3a86d WindWakerHD-v0.2.8-linux-x86_64.zip
de132e5d3ba466b3fa707e370ab1b8c0b5db0c5dd0cf8b493a5e2f4b22cb9b96 WindWakerHD-v0.2.8-macos-arm64.zip
579750a4621f04329dd06760c5443ab5fe1b109e6db3f4ada72f6dc41cc78640 WindWakerHD-v0.2.8-windows-x86_64.zip
VirusTotal
Scan results of this release's files at publishing time (results can change as engines update):
WindWakerHD-v0.2.8-linux-aarch64.zip: 0 of 65 engines flag it, reportWindWakerHD-v0.2.8-linux-x86_64.zip: 0 of 62 engines flag it, reportWindWakerHD-v0.2.8-macos-arm64.zip: 0 of 56 engines flag it, reportWindWakerHD-v0.2.8-windows-x86_64.zip: 8 of 66 engines flag it, reportWind Waker HD.exe: 8 of 71 engines flag it, report
Detections on the Windows files are generic heuristics on an unsigned program (ALYac, Arcabit, BitDefender, CTX, Emsisoft, GData, MicroWorld-eScan, VIPRE), reported to the vendors as false positives; see issue #58.
v0.2.7
The Wind Waker HD, native PC port, v0.2.7
This release contains no game files, no game code and no keys. You need your own disc dump
(.wux/.wud with its disc key, plus the Wii U common key from your console), a Cemu .wua archive
(no keys needed), or an already extracted game folder. The installer builds the game from it on your machine.
Install: download the zip for your system, unzip it anywhere and start Wind Waker HD. The
first start prepares the game once from your dump (about two minutes); later starts launch it directly.
Everything stays in that folder.
- macOS (Apple Silicon, macOS 14+):
Wind Waker HD.app. The release is not signed by Apple:
macOS 15+: System Settings > Privacy & Security > Open Anyway; macOS 14: right-click > Open.
Keep the app inside the unzipped folder (move the whole folder, not just the app) - Windows (x86-64):
Wind Waker HD.exe(SmartScreen: "More info" > "Run anyway") - Linux (glibc 2.35+, Vulkan):
wind-waker-hd;linux-x86_64for x86-64,linux-aarch64for arm64
(Raspberry Pi 5, Asahi Linux, ARM laptops)
See "Install (releases)" in the README for details.
What's new
- Fixed: taking a picture with the Picto Box crashed the game (Vulkan) (issue #53). Right after
the shot the game renders small 3D colour-grading textures slice by slice, which the Vulkan renderer
did not support; on Metal the preview was black. Both renderers now render into 3D textures, and the
saved pictures show up in colour in the Picto Box album (they were black on both renderers before). - Fixed: black shadows on macOS (Metal) (issue #47). When macOS had to compile the game's shaders
from scratch (first start, or after a macOS update cleared its shader cache), the ambient-occlusion
pass could be skipped at the title screen while its shader was still compiling; the light buffer was
then created with the wrong layout and stayed wrong for the whole session, turning shadowed areas
black until a restart. Render targets no longer depend on that timing, and draws whose result the
game reuses are never skipped. A cold start now spends about 0.7 s more on the title screen once. - Windows setup without PowerShell (issue #58): the setup no longer runs a PowerShell script or
removes the "downloaded from the internet" mark, andWind Waker HD.exedownloads nothing: the
official, signed embeddable Python now ships in the release (the Windows zip grows to about 19 MB).
The programs carry version information and a manifest. Some antivirus engines (BitDefender and
engines using it) may still flag the unsigned exe; that is a false positive and has been reported. - 120 and 240 fps (settings overlay → Graphics → Frame rate, or the macOS Graphics
menu): frame interpolation now also draws 3 or 7 blended frames between the game's 30 logic steps
a second, for 120 Hz and 240 Hz displays. Camera, models, particles, sea and every other blended
effect move at even steps between two game steps; input, sound and menus behave as at 30 fps.
The game detects the display's refresh rate (ProMotion Macs: 120 Hz; Windows, Linux and Android:
the monitor's or phone's current rate, and Android phones are asked for their fast mode) and the
overlay shows it ("Your display: 120 Hz"). A rate the display cannot show is capped to it:
240 fps on a 120 Hz display draws 120, and 120 fps on a 60 Hz display draws 60. Keep game
speed is on by default at 120/240 fps: when the computer cannot draw every frame, the game
still runs at full speed with fewer in-between frames. Measured on
an M3 Max with its 120 Hz display (Outset Island): 120 fps draws 115 frames a second on screen
with Vulkan and 108 with Metal, at 29.1–29.7 game steps a second; without presenting, 119.3
frames and 29.9 steps. 240 fps is limited by the renderer on that machine (about 146 frames a
second when not capped to the display), so on a 120 Hz screen it draws the same as 120 fps. - "Uncapped" debug switch (settings overlay → Graphics; not saved): no frame limit and no
vsync, to see how many frames a second your computer can draw (window title and performance
overlay). The game counts frames, so it runs faster than normal while it is on: not for playing.
Metal and Vulkan;WWHD_UNCAPPED=1turns it on at start. - Keep game speed recovers faster after a hitch (all frame rates): one slow frame (a shader
compile, a scene load) no longer turns the in-between frames off for several seconds. - Android: full-size occlusion depth is off by default (it halved the worst GPU waits on an
Adreno 830, issue #56); the settings overlay can still turn it on. - Smaller fixes: cheaper reuse checks of upload memory on Macs and integrated GPUs (follow-up to
the v0.2.5 fix for issue #44), time limits for the Android CI build, and "mouse as
gyro" no longer loses part of a movement when a frame stalls.
Checksums (SHA-256)
a0840b305daa55fd27d539eb4b557e6a3da14129e65c69d75a5208cdd5435558 WindWakerHD-v0.2.7-linux-aarch64.zip
a94fd9bbab979d079f3450454699f6b5289c80ef61eca19504766044d5db9230 WindWakerHD-v0.2.7-linux-x86_64.zip
50be28e8ac878f2e3d7fb6c132a84f9affbbb8b6febfe67b06015a518fc8f355 WindWakerHD-v0.2.7-macos-arm64.zip
0aa05ed2d51ebb413a7490010358ef2d41bac768f8123b0293ada52e882479f0 WindWakerHD-v0.2.7-windows-x86_64.zip
VirusTotal
Scan results of this release's files at publishing time (results can change as engines update):
WindWakerHD-v0.2.7-linux-aarch64.zip: 0 of 66 engines flag it, reportWindWakerHD-v0.2.7-linux-x86_64.zip: 0 of 61 engines flag it, reportWindWakerHD-v0.2.7-macos-arm64.zip: 0 of 66 engines flag it, reportWindWakerHD-v0.2.7-windows-x86_64.zip: 8 of 67 engines flag it, reportWind Waker HD.exe: 8 of 71 engines flag it, report
Detections on the Windows files are generic heuristics on an unsigned program (ALYac, Arcabit, BitDefender, CTX, Emsisoft, GData, MicroWorld-eScan, VIPRE), reported to the vendors as false positives; see issue #58.
v0.2.6
The Wind Waker HD, native PC port, v0.2.6
This release contains no game files, no game code and no keys. You need your own disc dump
(.wux/.wud with its disc key, plus the Wii U common key from your console), a Cemu .wua archive
(no keys needed), or an already extracted game folder. The installer builds the game from it on your machine.
Install: download the zip for your system, unzip it anywhere and start Wind Waker HD. The
first start prepares the game once from your dump (about two minutes); later starts launch it directly.
Everything stays in that folder.
- macOS (Apple Silicon, macOS 14+):
Wind Waker HD.app. The release is not signed by Apple:
macOS 15+: System Settings > Privacy & Security > Open Anyway; macOS 14: right-click > Open.
Keep the app inside the unzipped folder (move the whole folder, not just the app) - Windows (x86-64):
Wind Waker HD.exe(SmartScreen: "More info" > "Run anyway") - Linux (glibc 2.35+, Vulkan):
wind-waker-hd;linux-x86_64for x86-64,linux-aarch64for arm64
(Raspberry Pi 5, Asahi Linux, ARM laptops)
See "Install (releases)" in the README for details.
What's new
- Far fewer shader translations and pipelines, fewer stutters in new areas, less memory
(Vulkan): the renderer now keys a translated shader only on the state that actually changes its
translation (for example, only the textures a shader samples and the vertex inputs and outputs it
uses), so the same shader is no longer translated again and again for different render states.
Starting from an empty shader cache, Outset Island needed 569 translations and 204 pipelines
instead of about 6,100–6,700 and 3,200–3,500, and Windfall 829 and 236 instead of about 4,300–5,000
and 2,300–2,700. That takes about 100–115 MB less memory, cuts the frames that take over 50 ms
by about a third, and lowers render-thread CPU time by 4–12%. It supersedes PR #46 by rhemfur,
whose idea (keys that translate to the same shader share it and its pipelines) is part of it. - Performance reports say which build and system they come from (issue #44): Copy performance
report now starts with the version and commit, the operating system and version, the graphics card
with its driver and Vulkan version (or the Metal device), and the rendering switches that are not at
their defaults (buffer cache, CPU paths turned off, lazy DrawDone / async present turned off, the
gyro source). The log's first lines name the version and system too, so crash logs carry them.
Checksums (SHA-256)
55242cdac9546154d60becf9356dcd705c3e8223651ddc550daff4df240f01e1 WindWakerHD-v0.2.6-linux-aarch64.zip
bf842387537d737cd9c84bf13e59f3892f1d0c6f306683075d89a0b2c9f4242c WindWakerHD-v0.2.6-linux-x86_64.zip
95e79566bbab23e2bf316a4b2da33454fdae000f54efe02df20b10385ec11c93 WindWakerHD-v0.2.6-macos-arm64.zip
3c6563e09f140365aba9179ef5fb8b0e9806a30abdeda7c1e163ccb013f54182 WindWakerHD-v0.2.6-windows-x86_64.zip