# Zelda Wind Waker HD recompiles the Wii U game into native code for four platforms

> ZeldaWWHDRecomp is a static recompilation of the Wii U version of The Legend of Zelda: The Wind Waker HD that runs natively on Apple Silicon macOS, Linux, Windows and arm64 Android, with the PowerPC code translated to C ahead of time and GX2 graphics implemented on Metal or Vulkan. It ships no game code, no assets and no keys, and builds the game on your machine from your own dump.

**ZeldaWWHDRecomp/ZeldaWWHDRecomp** — Zelda Wind Waker HD Recomp

- Repository: https://github.com/ZeldaWWHDRecomp/ZeldaWWHDRecomp
- Stars: 815 · Forks: 65
- Language: C
- License: MPL-2.0
- Published: 2026-10-20 · Updated: 2026-10-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/zeldawwhdrecomp-zeldawwhdrecomp

## Recompilation rather than emulation

ZeldaWWHDRecomp is a static recompilation of the Wii U version of The Legend of Zelda: The Wind Waker HD, the USA or European release, that runs natively on macOS on Apple Silicon, Linux, Windows and Android on arm64.

The mechanism is what separates it from running the game in an emulator. The game's PowerPC code is translated to C ahead of time, the Cafe OS libraries the game uses are reimplemented natively, and the GX2 graphics are implemented directly on Metal on macOS or on Vulkan everywhere else. There is no Cemu runtime and no GPU command emulation.

The difference in cost is the point. An emulator interprets each PowerPC instruction and translates graphics commands on the fly. A static recompilation turns the code into native instructions once, and draws with the platform's own graphics API, so the work happens at build time rather than every frame. The project's documentation explains the mechanism in detail in docs/how-it-works.md.

The project is a fan effort and says so plainly. The legal notice states that it is an unofficial fan project, not affiliated with, endorsed or sponsored by Nintendo, and that The Legend of Zelda, The Wind Waker, Wii U and related names are trademarks of their respective owners used only to describe compatibility.

The repository is MPL-2.0 licensed and the primary language is C, with the C++ decompilation living in a separate repository.

## Three repositories: the port, the decompilation and the mods

The README splits the effort into three parts, and understanding them tells you what you are actually getting.

The first is the port, this repository, which is the recompiled game for macOS, Linux, Windows and Android. The runtime/, tools/, cmake/, docs/ and android/ directories are the working parts.

The second is the decompilation, in ZeldaWWHDDecomp/wwhd, which is readable C++ source for the game's code, with each function tested against the original. The port can already run that decompiled code in what the README calls an experimental decomp build, described as the path towards a fully native source port. So the long term direction of the project is visible in the repository structure: the recompiled binary is the current deliverable, and the decompiled source is the eventual one.

The third is the mods, in ZeldaWWHDRecomp/ZeldaWWHDMods, which holds built-in options and a catalogue of community mods installed from inside the game.

The repository also carries an examples/guest-mods/ directory, and a .gitmodules file, which is consistent with a project that pulls in generated or third party pieces as submodules.

The release history shows the cadence: a devel-build tagged on 2026-10-20 from the development branch, v0.3.0 on 2026-10-15 and v0.2.14 on 2026-10-14, with the changes for each update in CHANGELOG.md and in the release notes.

## The first launch compiles the game from your own dump

The install process is deliberately local, and the README is explicit about what that means.

You download the zip for your system from the releases page and unzip it anywhere, and then start the game, which is Wind Waker HD.app on macOS, Wind Waker HD.exe on Windows, or the wind-waker-hd binary with a Wind Waker HD.desktop entry on Linux. The first start asks for your dump.

There are three accepted forms. A disc image as a .wux or .wud file, a Cemu archive as a .wua, or an already extracted game folder containing code, content and meta, for example one produced by dumpling or by Cemu. An extracted folder is used where it is and nothing is copied, while a disc image or a Cemu archive is extracted into the release folder, which takes about 1.7 GB.

A Cemu archive often holds the game, its update and its DLC together, and the setup uses the game itself, title 00050000-10143500 for the USA release or 00050000-10143600 for Europe, at version 0, and says so in its log. An update in the archive is not used, because the port is built for the version 0 code and the update's files belong to the newer code. The archive's checksum is verified before anything is extracted.

After the dump is accepted, the setup prepares the game: it extracts, translates the code to C, and compiles it with a pinned compiler. That step takes about two minutes and happens once, on your machine. Every later start launches the game directly.

The setup also offers to bring in a save, from a Wind Waker HD ckingsav folder used by Cemu on Wii U, from a GameCube .gci file which is converted to HD, or from the saves and settings of an earlier installation or another Wind Waker HD folder, in which case they are copied and never moved.

## Keys come from you, are checked, and are never stored

For a disc image, the setup also asks for two keys, and the README is careful about how they are handled.

The first is the disc key, which is specific to the disc. A .key file with the image's name next to it is used automatically. The second is the Wii U common key, 16 bytes and the same on every console, and it can be given as a key file or by pasting the 32 hex digits into a hidden field, with a common.key next to the image or in the release folder used automatically.

The handling rules are stated explicitly: keys are checked before anything is extracted, they are never stored, and they are not part of any log. A Cemu archive or an already extracted folder needs no keys at all, which removes the step entirely for people who already have the files.

The legal notice explains the boundary this enforces. The repository contains no game code, no game assets and no keys: no executable, no recompiled or disassembled game code, no textures, models, audio, shaders, screenshots and no console encryption keys, only the tools and the runtime written for this project plus the third party code listed under Credits.

Everything game specific, the extracted files, the recompiled code in build/gen/ and the shader caches, is generated locally from your dump and must not be redistributed, and the .gitignore keeps all of it out of the repository. To use the project you need your own, legally obtained copy of the game, dumped from your own Wii U disc and console.

## Platform requirements, and what arm64 changes

The per platform requirements are the part to check before you download anything, because each one has a specific floor.

On macOS the target is Apple Silicon with macOS 14 or newer, using the Metal renderer, with Vulkan available through MoltenVK which is included and can be selected in Graphics and then Renderer.

On Windows there are two builds, x86-64 and arm64. The x86-64 build wants Windows 10 version 1903 or newer or Windows 11, and the arm64 build wants Windows 11 on ARM such as Snapdragon X. Both need a GPU with Vulkan 1.3 drivers, or Vulkan 1.1 and 1.2 drivers with VK_KHR_dynamic_rendering. The README notes that the arm64 zip runs natively and only on ARM64, and that its setup says so on an x86-64 PC. On ARM, 60 frames per second keeps the game speed by default, through the Graphics option called Keep game speed, so that where two frames per step do not fit, in-between frames are skipped rather than the whole game slowing down.

On Linux there are x86-64 and arm64 builds, with arm64 covering Raspberry Pi 5, Asahi Linux on Apple Silicon and other ARM boards and laptops. The requirements are glibc 2.35 or newer, so Ubuntu 22.04 and later, Debian 12 and later, Fedora 36 and later, Arch, SteamOS 3 and Raspberry Pi OS 12, plus the same Vulkan driver situation. You take the zip matching uname -m, and the setup says so if it does not match. There is also a single file AppImage for the same two architectures, which the README points at through issue 55: you make it executable and start it from anywhere, a Steam Deck included, and nothing is unzipped and the file itself is never written to.

That last point is the reason the AppImage matters on a handheld, where a game directory is a nuisance.

## Mod SDK v2 and the story quest system

The v0.3.0 release is described as story quests and Mod SDK v2, and it is the first release to move beyond making the game run.

The port now has a story system for quest mods, written in the game's own style. There is a Story Notebook, which is a quest journal placed in the Delivery Bag. Quest mods send Link letters to the Rito postboxes. New treasure charts work like the game's own. And two first quests are included, Call of the Sky and The Old map, installed from Settings and then Mods.

For mod makers, Mod SDK v2 adds quests, items and treasure charts, mostly declared in a manifest, and the details live in the SDK guide in the mods repository. The README notes that story quests run on macOS, Windows and Linux, which is a narrower platform list than the port itself supports, so the Android build does not get them in this release.

The design choice of putting the quest system in the game's own idiom is the interesting part. A generic mod framework would let a mod add arbitrary content, and the result would feel bolted on. Writing a quest as a notebook entry, a letter to a postbox and a treasure chart means the mod uses the same channels the original game does, so it does not change what the game is.

The mods repository holds both the built-in options and the catalogue of community mods, installed from inside the game, and the examples/guest-mods/ directory in the port repository is where those are developed.

## Where this project cannot help you

Three cases are out of scope, and one of them is not a limitation of the project but of what it is allowed to be.

The first is anyone without the game. The repository contains no game code, no assets and no keys by design, and the build needs a dump from your own Wii U disc and console, plus the keys for a disc image. There is no path to a working build without owning the game, and that is the point of the legal notice rather than an oversight.

The second is a platform outside the four listed. The project targets macOS on Apple Silicon, Linux on x86-64 and arm64, Windows on x86-64 and arm64, and Android on arm64. There is no Intel Mac build mentioned, and the macOS requirement of macOS 14 or newer excludes a lot of machines, and the Vulkan 1.3 driver requirement excludes older GPUs unless the dynamic rendering extension is present.

The third is a device that is not the game. The port exists to run this one title, and while the mod SDK opens the door to more content inside it, it is not a general game engine and not a way to run other Wii U software.

Within its own boundary the project is in an unusual position. It removes the emulator from the equation, it has a decompilation effort that could eventually replace the recompiled binary with readable source, and the manifest, the checks and the key handling in the setup are careful enough that a first launch on a new machine is a guided process rather than a puzzle. What a user gives up is the version zero game code path, since an update in a Cemu archive is deliberately not used.

## Conclusion

ZeldaWWHDRecomp fits a player who owns a Wii U copy of Wind Waker HD, has a modern GPU and wants the game running natively on a PC, an Apple Silicon Mac, a Raspberry Pi 5 or an arm64 Android phone, since a static recompilation removes the emulator's command translation overhead and runs on Vulkan or Metal directly. It is not for anyone who does not own the game, because the repository deliberately contains no game code, no assets and no keys, and the build needs your own dump and disc keys. Before you start, read the platform requirements for your architecture, since the Windows arm64 build runs only on ARM64 hardware and the Linux builds need glibc 2.35 or newer with Vulkan 1.3 drivers, and note that the first launch spends about two minutes building the game locally.

## FAQ

### What is ZeldaWWHDRecomp and how does it differ from running the game in Cemu?

It is a static recompilation of the Wii U version of Wind Waker HD that runs natively on macOS, Linux, Windows and arm64 Android. The PowerPC code is translated to C ahead of time, the Cafe OS libraries are reimplemented natively, and GX2 graphics are implemented directly on Metal or Vulkan, so there is no Cemu runtime and no GPU command emulation.

### What do I need to run the port for the first time?

Your own legally obtained copy of the game dumped from your own Wii U disc and console, as a .wux or .wud disc image, a .wua Cemu archive, or an already extracted game folder with code, content and meta. A disc image also needs its disc key and the Wii U common key, which are checked, never stored and never logged, while an archive or extracted folder needs no keys.

### Which platforms does ZeldaWWHDRecomp support and what are the requirements?

macOS on Apple Silicon with macOS 14 or newer, Linux on x86-64 and arm64 with glibc 2.35 or newer, Windows on x86-64 and arm64, and Android on arm64. The desktop builds need a GPU with Vulkan 1.3 drivers, or Vulkan 1.1 and 1.2 with VK_KHR_dynamic_rendering, and a single file AppImage is offered for Linux in both architectures.

### Does the ZeldaWWHDRecomp repository contain game code or assets?

No. The legal notice states the repository contains no game code, no game assets and no keys, only the tools and the runtime written for the project plus third party code, and everything game specific is generated locally on your machine from your dump and kept out of the repository by the .gitignore.

### What does the Mod SDK v2 in v0.3.0 add?

It adds quests, items and treasure charts, mostly declared in a manifest, and the port gained a story system for quest mods in the game's own style, with a Story Notebook in the Delivery Bag, letters sent to Rito postboxes, and two first quests, Call of the Sky and The Old map, installed from Settings and Mods.

## Sources

- [Issues](https://github.com/ZeldaWWHDRecomp/ZeldaWWHDRecomp/issues)
- [License: MPL-2.0](https://github.com/ZeldaWWHDRecomp/ZeldaWWHDRecomp/blob/main/LICENSE)
- [README](https://github.com/ZeldaWWHDRecomp/ZeldaWWHDRecomp/blob/main/README.md)
- [Releases](https://github.com/ZeldaWWHDRecomp/ZeldaWWHDRecomp/releases)
- [ZeldaWWHDRecomp/ZeldaWWHDRecomp on GitHub](https://github.com/ZeldaWWHDRecomp/ZeldaWWHDRecomp)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/zeldawwhdrecomp-zeldawwhdrecomp
