Zelda Wind Waker HD Recomp: A World Editor and 20 Releases in 16 Days

By Indie Kings | October 21, 2026

Updated October 21, 2026: The Wind Waker HD native port reached version 0.4.0 on October 21, 2026, adding a world editor for mod makers and a large Android update. The project has shipped 20 releases since October 5, and the Windows build alone has recorded more than 10,000 downloads.

GitHub repository card for the Zelda Wind Waker HD Recomp project

Image: GitHub repository card for ZeldaWWHDRecomp/ZeldaWWHDRecomp.

What the port actually is

Per the repository README, this is a static recompilation of the Wii U version of The Legend of Zelda: The Wind Waker HD, and it runs natively on macOS, Linux, Windows and Android. 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 Vulkan everywhere else.

Two things are explicitly not in that chain. There is no Cemu runtime underneath it, and there is no GPU command emulation. The port does not wrap an emulator and present it as native; the work is done at the instruction and API level.

The repository splits into three projects that share a name. The port itself is the repository being covered here. The decompilation lives separately at ZeldaWWHDDecomp/wwhd, where the game's code is readable C++ with each function tested against the original, and the port can already run that in an experimental decomp build as the path toward a fully native source port. Mods live in ZeldaWWHDRecomp/ZeldaWWHDMods, a catalogue of community mods installed from inside the game.

GitHub reports 896 stars, 69 forks, 20 open issues and 12 contributors for the port repository. The lead contributor accounts for 1,391 commits, with the next contributors at 45, 28, 12, 10 and 9, and the twelve contributors together account for 1,514. The source tree holds 2,513 entries, of which 2,306 are files and 206 are directories. The runtime directory accounts for 1,777 entries, tooling for 348, the Android work for 162, examples for 142 and documentation for 35. The GitHub language breakdown puts C++ first at 13,595,025 bytes, then C at 6,190,539 bytes, Python at 2,668,842 bytes and Java at 688,451 bytes. Objective-C++ adds 587,307 bytes, CMake 316,354, Shell 18,023, Objective-C 13,954 and batch files 376, for 24,078,871 bytes in total. The licence is the Mozilla Public License 2.0.

The release pace and download counts

Twenty releases have gone out in sixteen days, the first on October 5, 2026 and the newest on October 21, 2026. Two of the twenty are not game releases: one is a development build and one is an AppImage runtime, so the project has published eighteen versioned game releases in that window.

ReleaseDateAssetsDownloads recorded
v0.4.0October 21, 202611265
v0.3.0October 15, 20261114,729
v0.2.14October 14, 2026114,051
v0.2.13October 11, 20261110,680
v0.1.0October 5, 20264609
All 20 releasesOctober 5 to 21, 2026varies49,765

Each release ships a set of platform archives. Version 0.4.0 published an arm64 and an x86-64 Android APK, Linux AppImages and zips for both architectures, a macOS arm64 zip and Windows zips for arm64 and x86-64, plus a SHA256SUMS.txt and a vt-report.json. The download numbers reflect how new each build is: v0.4.0 was published hours before this check, while v0.3.0 has collected 14,729 downloads in six days.

Archive sizes vary sharply by platform. The v0.4.0 Windows x86-64 zip is 39.9 MB and the arm64 build is 38.6 MB, while the macOS arm64 zip is 27.1 MB. The Android APKs are the largest at 151.3 MB for arm64 and 154.2 MB for x86-64.

What version 0.4.0 added

The headliner is a world editor, described in the README as a preview for mod makers. Starting the game with the editor command line flag lets you place the game's villagers, enemies, chests, switches and doors alongside your own models while the game runs, and then build quests, letters, scenes, islands and levels. The changelog adds that it also works with AI assistants over MCP, off by default, and that scenes can now be played straight away with easier demo steps.

The changelog for 0.4.0 also records a set of rendering and platform changes, several of them credited to the GreenNaugahyde Android fork.

  • Dynamic resolution, off by default on all platforms, lowers the internal resolution in small steps down to 75 or 50 percent while the graphics chip holds the game back and raises it again when there is room. It costs about 35 MB of extra graphics memory on a phone.
  • Fewer shader variants on Metal, so the same scenes need far fewer shaders and pipelines. The changelog records about 500 shaders instead of 3,500 in the project's Outset test, with the picture unchanged.
  • Shadows now work on GPUs without depth clamp, which covers older Mali and PowerVR phones that previously failed on the game's shadow draws.
  • Less render-thread work on graphics register writes and on the Vulkan renderer, plus shaders that use the slower exact multiply only where a value may be infinite.
  • Vulkan stereo improvements, credited to a contributor under issue 257, with formats that cannot be scaled falling back to a supported path.
  • Crash logs and performance reports now list the renderer's live shaders, pipelines and memory mappings.
  • A fix for the Pirate's Charm shaking without ringing at 60 FPS and above, which the changelog attributes to frame interpolation running the effect at the wrong rate.
  • Export of the game's islands for Blender through a new export_glb command in the editor.

The Android half of the update adds two-screen handheld support, a heat guard for handhelds with a fan, even frame pacing at 60 FPS, code mods and the dynamic resolution described above.

The Android port and its measured frame rate

The Android port is credited in the README to rhemfur and came from issue 23. It uses the Vulkan renderer on an arm64 phone through SDL3's Android activity, and the README records a measured 30 to 32 FPS in the heaviest scenes on a Galaxy S25 Ultra with the Snapdragon 8 Elite.

The legal line on that is unusually firm. The README states that releases never contain libmain.so or anything derived from the game files, and never will. An APK built by a player from their own dump contains their recompiled game, so it is for that player's phone only and should not be shared. Continuous integration builds the APK only with placeholder code, purely to check that it compiles.

What a player gets from the official releases is the setup app, which contains no game code. You install it, choose your game, and setup builds the game on the phone. The requirements are an arm64 device on Android 13 or newer with Vulkan 1.3, and the README recommends a game controller over the on-screen controls.

The mod system and code mods

Mods are managed from inside the game under Settings, then Mods. There are built-in options, all off by default, covering things like a direct right-stick camera, a mouse camera, run and swim and sailing speed, quick doors, climbing any wall, and fast forward for cutscenes and dialogue. Community mods come from a separate catalogue and are installed from the same menu, alongside imported packages and Cemu graphics packs. Experimental mods stay hidden until you turn on a setting, and the README says your saves are backed up before one is switched on.

Code mods are the more unusual part. They are written in C or C++ and compiled for the game's own CPU, which is 32-bit PowerPC, and one package works on macOS, Windows and Linux. When a player installs one, the port translates it and compiles it with the compiler it already carries. The game code itself is not translated again. Mods can hook or replace game functions at runtime, use the game's own data and objects, draw on screen through a HUD API and use host services.

Code mod support stays off until a code mod is switched on, and the first time that happens the game is rebuilt once, which the README puts at a few minutes. Mods contain no game code or game files, and anything they need from the game is read from the player's own copy on their own machine.

What ships in the download and what does not

The README's legal notice is direct. This is an unofficial fan project, not affiliated with, endorsed or sponsored by Nintendo, and 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 or other material from the game, and no console encryption keys. It contains only the tools and the runtime written for the project plus the third-party code listed under Credits.

Using it requires your own legally obtained copy, dumped from your own Wii U disc and console. Everything game-specific is generated locally on your machine, and the .gitignore keeps it out of the repository. The release archives contain only the runtime, the tools and setup. The first start prepares the game once, which the README puts at about two minutes, and every later start launches directly.

That first start asks for your disc image as a .wux or .wud file, a Cemu archive as a .wua file, or an already extracted game folder with code, content and meta. A disc image or archive is extracted into the release folder, about 1.7 GB, and for a disc image you also supply its disc key and the Wii U common key, which is 16 bytes and the same on every console. A key file named to match the image, or a common.key beside it or in the release folder, is picked up automatically.

The project is not shy about what it borrowed. The GPU address library, shader decompiler and some reference structures are vendored from Cemu under MPL-2.0, the extractor links zstd under BSD-3-Clause, and the settings overlay uses Dear ImGui and the world editor's move and turn handles use ImGuizmo. The macOS path uses metal-cpp under Apache-2.0 and {fmt} under MIT. The Linux AppImage starts with the AppImage project's type2-runtime at commit 8f39b89.

Platforms, requirements and the Switch port

PlatformBuild and requirement
macOSApple Silicon, macOS 14 or newer, Metal renderer, with Vulkan through the included MoltenVK
Windowsx86-64 for Windows 10 version 1903 or newer or Windows 11, or arm64 for Windows 11 on ARM, with Vulkan 1.3 drivers or Vulkan 1.1 and 1.2 with VK_KHR_dynamic_rendering
Linuxx86-64 or arm64, glibc 2.35 or newer, with the same Vulkan requirement; AppImage available for both architectures
Androidarm64, Android 13 or newer, Vulkan 1.3, built by the player through the setup app
Nintendo SwitchSwitchWakerHD, a separate community port built on this project, unsupported and untested here

On ARM systems, the README says 60 FPS keeps the game's speed by default, and where two frames per step do not fit, in-between frames are skipped rather than slowing the whole game down. On Steam Deck in Gaming Mode the keyboard shortcuts do not reach the game, so the README documents a workaround through the Steam controller settings, mapping the back buttons to save and load keys.

On the game's own frame rate, the README says it runs at the console's 30 FPS or, with frame interpolation, at 60, 120 or 240 FPS up to the display's refresh rate, and that true 60 FPS is experimental. The known gaps it lists are geometry shaders and rectangle primitives, which are not implemented yet and have not been encountered in the game, plus a macOS app that does not drive controller rumble yet. The status section says the game is playable from start to finish, with players having completed it, on all four platforms.

FAQ

Is the Wind Waker HD Recomp an emulator?
No. Per the README, the PowerPC code is translated to C ahead of time, the Cafe OS libraries are reimplemented natively, and GX2 graphics run directly on Metal or Vulkan. There is no Cemu runtime and no GPU command emulation underneath it.

Do I need Cemu installed to play it?
No. You can supply a Cemu archive, but the port does not need Cemu to run. It reads the disc image, Cemu archive or extracted game folder directly and does the rest itself.

Does the download contain the game?
No. The README states the repository and the release archives contain no game code, no game assets and no keys. The game code is built on your machine from your own dump on first start, which takes about two minutes.

How fast does it run on a phone?
The README records 30 to 32 FPS in the heaviest scenes on a Galaxy S25 Ultra with the Snapdragon 8 Elite. The v0.4.0 update adds even frame pacing at 60 FPS, a heat guard for handhelds with a fan and dynamic resolution.

What is the world editor for?
It is a preview aimed at mod makers. Starting the game with the editor command line flag lets you place villagers, enemies, chests, switches and doors and your own models while the game runs, then build quests, letters, scenes, islands and levels. It also works with AI assistants over MCP, off by default.

Can I write my own mods, and in what language?
Yes. Code mods are written in C or C++ and compiled for the game's own 32-bit PowerPC CPU, and one package runs on macOS, Windows and Linux. The port translates and compiles the mod with the compiler it already carries, and the mod can hook game functions, use the game's own data and draw on screen through a HUD API.

Bottom Line

The Wind Waker HD native port is a real recompilation rather than an emulator wrapper, and it now runs on four platforms including an arm64 phone. Version 0.4.0 adds the piece that turns it from a playable port into a platform: a world editor that places the game's own villagers, enemies and objects while the game runs, plus an Android update with two-screen handheld support, a heat guard and dynamic resolution. The release record backs the claim, with 20 releases in sixteen days and 49,765 recorded downloads. The legal position is unusually clean, since no release has ever contained game-derived code and the player builds their own copy locally from their own dump. The gaps that remain are small and named, geometry shaders and rectangle primitives, a missing macOS rumble path and an experimental true 60 FPS mode.

Sources

  • ZeldaWWHDRecomp/ZeldaWWHDRecomp repository README and CHANGELOG.md, accessed October 21, 2026
  • Release notes and asset lists for v0.4.0, v0.3.0, v0.2.14, v0.2.13, v0.1.0 and the other releases, published October 5 to 21, 2026
  • Repository metadata, language breakdown, contributor list and commit history via the GitHub API, accessed October 21, 2026
  • Commit feed for the default branch, accessed October 21, 2026

Related: Native Zelda: Majora’s Mask PC Port With Steam Deck Support, Gyro Aiming, and More Released | 7 Unofficial PC Ports Worth Knowing in September 2026 [2026] | 21 Year Old Coder Ports Real PT To PC For Preservation

Share