Repository navigation
Releases: SSunnKing/ZeldaWWHDRecompAndroid---ENHANCED
Release list
v1.3.1 Enhanced — Performance at high resolutions restored
v1.3.1 Enhanced — Performance at high resolutions restored
A fix for the frame rate drop some of you saw in v1.3 at internal resolutions above 1x (for example
60 → 54 fps on an Adreno 830 and 30 → 21 fps on an Adreno 725 at 3x).
The APK contains no game files, no game code and no keys. It installs over any earlier version
and keeps your saves and settings.
Fixes
- Frame rate drop at 2x and 3x resolution. v1.3 made the game's blur of shadows, ambient
occlusion and bloom match the console at higher resolutions, which removes a fine grid around
everything standing on the ground. It read up to 9 times more texels at 3x, and that cost a lot of
GPU time. It is now off by default, so performance is back to v1.2's.
New setting
- Console-accurate blur (Options → Graphics, off by default): turns that blur back on, if your
device has GPU time to spare at your resolution. It now takes 4 reads per tap at 2x to 4x instead of
up to 16, so it costs much less than in v1.3. It applies at once; at 1x it changes nothing.
Everything else is as in v1.3: see the v1.3 notes.
Installing
Install the APK over v1.0, v1.1, v1.2 or v1.3. Requirements: Android 11 or newer, 64-bit ARM,
Vulkan 1.1, about 2 GB of free storage and memory.
If the app crashes, share the log it offers at the next start (or from About) with your report.
v1.3 Enhanced — Picto Box fixed, fast forward, .wua archives, crash reports from the app, smoother 60 fps
v1.3 Enhanced — Picto Box fixed, fast forward, .wua archives, crash reports from the app, smoother 60 fps
An update to the Enhanced fork of the Android port of The Legend of Zelda: The Wind Waker HD. It
brings in upstream Android port v0.6 and v0.7 and a set of fixes from the original ZeldaWWHDRecomp
project.
The APK contains no game files, no game code and no keys. It installs over v1.0, v1.1 or v1.2
and keeps your saves and settings. After updating, the first start compiles the game code on your
device again (a few minutes, once).
Highlights
- Picto Box pictures are no longer black. The pictures the game saves and shows in the Picto
Box now hold the actual picture. - Fast forward cutscenes and dialogues (new). Options → Mods → Fast forward cutscenes /
dialogues: hold ZR (R2) during a cutscene or a conversation and it plays up to 4× as fast, as
fast as your device can draw it. Every frame is still played, so nothing is skipped; text boxes
still wait for your button. Each one is switched on separately. - Cemu
.wuaarchives as a game source (new). Put your.wuafile in the folder you choose
and the app extracts the game from it, with no keys needed. - Crash reports from the app. After a crash, the next start offers the log in Android's share
menu; About shares the latest logs. They now include the GPU, driver, settings and the game
function that crashed, and game halts write a log too. No personal data. - Bloom strength (new). Options → Graphics → Bloom strength: from Off to 200%; 100% is the
original game.
Smoother 60 fps (from the original project)
- Flags and sails no longer turn into stretched polygons in the in-between frames (the Rito
flags on Dragon Roost Island). - No more one-frame jumps of carried and attached things: items in Link's hand, a carried bomb,
the boat's sail and yard. - Night-sky stars stay put while the camera turns, instead of jittering against the sky.
- Menus and screen fades run at their normal speed, and the pause menu always closes.
Fixes
- Medli missing from Dragon Roost Island or the Earth Temple after using the sword cheat: the
cheat now equips the Master Sword and Mirror Shield without changing your story progress. A save
already affected can be repaired on a PC withtools/savegame/wwsave.py repair-medli. - Crash in Tingle's jail on Windfall with quick doors (Mods → Quick doors).
- Random black shadows for a whole session on some launches: the lighting buffer could end
up with a level that was never drawn. - A fine grid around everything on the ground at internal resolutions above 1x: the game's blur
of shadows, ambient occlusion and bloom now covers the same area as on the console. - Shader inputs the vertex shader doesn't write now get the value the console's GPU gives them,
instead of undefined values. - Copies of depth surfaces at different resolution no longer use a GPU operation Adreno doesn't
support for those formats.
Installing
Install the APK over v1.0, v1.1 or v1.2. New installs: see the v1.0 notes (disc image, disc key
and common.key in one folder, then Extract from your disc image…), or choose a folder with your
.wua archive.
Requirements: Android 11 or newer, 64-bit ARM, Vulkan 1.1, about 2 GB of free storage and memory.
40 fps needs a screen with a 120 Hz mode (the option only shows there).
If the app crashes, share the log it offers at the next start (or from About) with your report.
v1.2 Enhanced — Hybrid touch layout, sun flare & haze, Japanese version, pause & 40 fps menu fixes
v1.2 Enhanced — Hybrid touch layout, sun flare & haze, Japanese version, pause & 40 fps menu fixes
An update to the Enhanced fork of the Android port of The Legend of Zelda: The Wind Waker HD,
focused on playing on a single touch screen: the GamePad's touch menus now come up full screen
when you need them, and the pause and menu bugs some of you hit are fixed.
The APK contains no game files, no game code and no keys. It installs over v1.0 or v1.1 and keeps your
saves and settings. After updating, the first start compiles the game code on your device again
(a few minutes, once).
Highlights
- Hybrid layout (new). Options → Layout → Hybrid: the TV picture full screen while you play,
and the GamePad's screen full screen whenever a menu is open or you're outside the game (title,
file select). Items, map, sea chart and save menus work by touch on a single screen; you're back
on the TV picture as soon as the menu closes. While the GamePad's screen is up, only A, B and
pause stay on screen, so the rest of the screen is free for the menu. - The game's controller select now sets up the app. Pick Wii U GamePad or Wii U Pro
Controller on the game's "Controller select" screen and the app's controls switch to match:
no more "connect a Pro Controller" wait, and no more touch controls driving the wrong controller. - Pro Controller means TV only. With the Pro Controller the app shows the TV picture only (the
GamePad's screen is set aside in that mode anyway). Back on the GamePad, your own layout returns.
Fixes
- Pause sometimes didn't open, or the pause menu wouldn't close. Quick taps on the touch
buttons (shorter than one game frame) could get lost; every tap now reaches the game. - Error sound and a stuck pause menu in Pro Controller mode. Touches on the GamePad's picture
reached the game, which refuses touch in that mode (error sound) and could get stuck in its menu.
In Pro Controller mode the game no longer receives GamePad touches. - 40 fps: menus stuck half closed. At 40 fps the GamePad's menu could freeze in the middle of
its closing animation (GamePad screen half dimmed, every menu refused with the error sound), also
on the way from the file select into the game. Menus, the title and the file select now run at an
exact 30 fps in 40 fps mode, for a moment after they close too; gameplay stays at 40. - No sound after moving the game to the GamePad. The game's audio for the GamePad's speaker
wasn't played, so off-TV play ("Currently playing on TV" → move to GamePad) went silent. It now
plays through your device.
Graphics and game versions (from upstream v0.5)
- Sun corona and lens flare are back. The game checks whether the sun is hidden by reading the
depth buffer; it now reads the GPU's, so the glare and flare show up as on the console. - Distance haze and bloom. Render targets get a proper mip chain, so the haze over the sea and
the bloom look right; this also removes the black lines some of you saw in shadows. - Japanese version supported, besides the USA and European ones.
- The second Vulkan recording thread is now used only with the Qualcomm driver (it was slower and
flickered on Turnip).WWHD_RECORD_THREADstill overrides it.
Stability (from the original ZeldaWWHDRecomp project)
- Fixed an intermittent crash at boot. A surface copy could land in memory the game had already
freed and reused when the renderer was running late; the copy now finishes before the game
continues. - Plain
charis now signed on ARM64, as on the PC and Mac builds the game code is tested on. - A safety check no longer reads back uncached GPU upload memory (very slow on some drivers).
Smoother setup
- First start on a touch-only device: with no controller attached, the app starts with GamePad
controls and the hybrid layout. - Controller disconnected: the touch controls come back on their own, and gyro and rumble move
back to your device.
Installing
Install the APK over v1.0 or v1.1. New installs: see the v1.0 notes (disc image, disc key and
common.key in one folder, then Extract from your disc image…).
Requirements: Android 11 or newer, 64-bit ARM, Vulkan 1.1, about 2 GB of free storage and memory.
40 fps needs a screen with a 120 Hz mode (the option only shows there).
If the app crashes, please attach captures/crash-YYYYMMDD-HHMMSS.log from the app's folder
(Android/data/org.wwhdrecomp.app/files/) to your report.
v1.0 Enhanced — Native widescreen, fixed shadows, 40 fps, pinch-to-zoom, phone touch controls & faster renderer
v1.0 Enhanced — Native widescreen, fixed shadows, 40 fps, pinch-to-zoom, phone touch controls & faster renderer
The first release of the Enhanced fork of the Android port: The Legend of Zelda: The Wind Waker HD
(Wii U, USA/EUR) recompiled to native ARM with its graphics on Vulkan, now with native widescreen,
fixed shadows, a 40 fps mode, pinch-to-zoom and touch controls made for a phone.
The APK contains no game files, no game code and no keys. You need your own Wii U disc image
(.wud/.wux) with its keys; the app extracts it and compiles the game code on your device on the
first start (about 5 minutes, once).
Highlights
- Native widescreen. The game renders at your screen's shape (20:9, 21:9...) instead of
stretching 16:9: more to see at the sides with the same vertical view, culling that follows,
and a HUD that keeps its proportions with hearts, rupees and buttons at the screen edges.
Options → Widescreen, switchable while playing. - Shadows fixed. No more flicker between the near (detailed) and far (basic) shading when the
camera moves, and no more grid / moiré on sand and other ground. - 40 fps on 120 Hz screens. A frame every 3 refreshes, evenly paced, with the camera and every
model interpolated at the exact point of each frame: much smoother than 30 on phones that can't
hold 60, and lighter on the battery. Game logic stays at 30 steps a second. - Pinch to zoom the camera. Spread two fingers on the camera side to bring it closer, pinch to
move it away (half to twice the game's distance). Zoomed out, it uses the game's own collision
check and stays in front of walls. - Faster renderer. Vulkan commands are recorded on their own thread and work is submitted in
chunks again: on a Snapdragon 8 Gen 2 the render thread went from 17–18 ms to 10–14 ms per frame
and 94–99% of frames are shown on time at 40 fps.
Touch controls
- Floating left stick: it appears where your thumb lands and stays there until you lift it.
- Swipe camera with adjustable speed; double tap to centre it behind Link; pinch to zoom.
- Context buttons that follow your save: B shows your sword, ZR your shield, X / Y / R the items you
assigned (with the game's own item art, built on your device); combat buttons (jump attack, spin
attack, vertical slash, dodge) once you have a sword; D-pad items once you own them. - One-touch combat moves, a layout editor (move, resize, remove and restore every control), gyro
aiming, rumble as phone vibration.
Graphics and performance
- Renderer fixes ported from the official project's Vulkan backend: invariant vertex positions for
multipass depth tests, depth-compare samplers bound to depth surfaces,GX2CopySurfaceof depth
and array slices, uniform blocks compared instead of trusted to write tracking. - Large vertex buffers are reused within a submission only while the game hasn't written them.
- Precise vsync wait for the game thread: frames start on their vsync instead of whenever the
system timer wakes up. - Ambient occlusion modes (Wii U, centre fix, centre + noise fix, Off).
- A fast path for repeated draws, reuse of identical vertex/uniform copies, ADPF performance hints,
CPU core choice (automatic, performance cores, prime core), the guest vsync locked to the
display, a pre-rotated swapchain, the game code compiled at-O3. - 60 fps by frame interpolation (holds full speed anywhere between 30 and 60), an adaptive mode, and
the original project's True 60 (experimental).
More
- Game language selector (English, Spanish, French).
- Cheats: items, sword and shield, hearts, songs, Triforce, dungeon items, infinite health / magic /
ammo. - Crash logs: if the app crashes,
captures/crash-YYYYMMDD-HHMMSS.login the app's folder names the
faulting module (GPU driver, Vulkan layer or the game) with the guest and host call chains. Please
attach it to bug reports. - Pacing diagnostics in the log (which frames missed their vsync, and whether the game, the renderer
or the GPU was late).
Installing
- Put your disc image (
.wuxor.wud), its disc key (.key, same name as the image) and the
Wii U common key (common.key) in one folder on your device. - Install the APK and start it. Choose Extract from your disc image… and select that folder.
Requirements: Android 11 or newer, 64-bit ARM, Vulkan 1.1, about 2 GB of free storage and memory.
40 fps needs a screen with a 120 Hz mode (the option only shows there).
Coming from another build of the Android port? This APK is signed with a different key, so
Android won't install it over a build from somewhere else. Back up your saves first (Import /
export saves… in the menu), uninstall the old app, install this one and import them back.
Recommended on a recent phone: Frame rate 60 fps (or 40 fps / adaptive), rendering resolution
1×, Widescreen Screen shape, CPU cores Automatic.
Known limits
- At 40 fps, particles, sea, grass and weather are drawn at the game's own steps (camera and models
are interpolated). - The camera zoom goes back to the game's distance when the app restarts.
- Very busy views (big islands seen from afar) can still drop frames; a hot phone lowers its clocks.
Checksum
WindWakerHD-Android-Enhanced-v1.0.apk
SHA-256 bce78f29c699599ea7de876eef2266787b42ae55cc012000141ea3bf94169a1f
Credits
ZeldaWWHDRecomp (the recompilation, Wii U
libraries, 60 fps modes, cheats, rumble, aspect-ratio support and renderer fixes ported here),
GreenNaugahyde/ZeldaWWHDRecompAndroid
(the Android port), Cemu (GPU address library and shader
decompiler) and the zeldaret/tww decompilation.
Unofficial fan project, not affiliated with Nintendo. MPL-2.0.
v1.1 Enhanced — Hybrid touch layout, controller select that just works, pause & 40 fps menu fixes
v1.1 Enhanced — Hybrid touch layout, controller select that just works, pause & 40 fps menu fixes
An update to the Enhanced fork of the Android port of The Legend of Zelda: The Wind Waker HD,
focused on playing on a single touch screen: the GamePad's touch menus now come up full screen
when you need them, and the pause and menu bugs some of you hit are fixed.
The APK contains no game files, no game code and no keys. It installs over v1.0 and keeps your
saves and settings. After updating, the first start compiles the game code on your device again
(a few minutes, once).
Highlights
- Hybrid layout (new). Options → Layout → Hybrid: the TV picture full screen while you play,
and the GamePad's screen full screen whenever a menu is open or you're outside the game (title,
file select). Items, map, sea chart and save menus work by touch on a single screen; you're back
on the TV picture as soon as the menu closes. While the GamePad's screen is up, only A, B and
pause stay on screen, so the rest of the screen is free for the menu. - The game's controller select now sets up the app. Pick Wii U GamePad or Wii U Pro
Controller on the game's "Controller select" screen and the app's controls switch to match:
no more "connect a Pro Controller" wait, and no more touch controls driving the wrong controller. - Pro Controller means TV only. With the Pro Controller the app shows the TV picture only (the
GamePad's screen is set aside in that mode anyway). Back on the GamePad, your own layout returns.
Fixes
- Pause sometimes didn't open, or the pause menu wouldn't close. Quick taps on the touch
buttons (shorter than one game frame) could get lost; every tap now reaches the game. - Error sound and a stuck pause menu in Pro Controller mode. Touches on the GamePad's picture
reached the game, which refuses touch in that mode (error sound) and could get stuck in its menu.
In Pro Controller mode the game no longer receives GamePad touches. - 40 fps: menus stuck half closed. At 40 fps the GamePad's menu could freeze in the middle of
its closing animation (GamePad screen half dimmed, every menu refused with the error sound), also
on the way from the file select into the game. Menus, the title and the file select now run at an
exact 30 fps in 40 fps mode, for a moment after they close too; gameplay stays at 40. - No sound after moving the game to the GamePad. The game's audio for the GamePad's speaker
wasn't played, so off-TV play ("Currently playing on TV" → move to GamePad) went silent. It now
plays through your device.
Smoother setup
- First start on a touch-only device: with no controller attached, the app starts with GamePad
controls and the hybrid layout. - Controller disconnected: the touch controls come back on their own, and gyro and rumble move
back to your device.
Installing
Install the APK over v1.0. New installs: see the v1.0 notes (disc image, disc key and
common.key in one folder, then Extract from your disc image…).
Requirements: Android 11 or newer, 64-bit ARM, Vulkan 1.1, about 2 GB of free storage and memory.
40 fps needs a screen with a 120 Hz mode (the option only shows there).
If the app crashes, please attach captures/crash-YYYYMMDD-HHMMSS.log from the app's folder
(Android/data/org.wwhdrecomp.app/files/) to your report.