Repository navigation
Plus v1.7 — button icons, the original project's updates, Turnip without restarts, always landscape
⚠️ Updating from v1.6: read this first
v1.6's signing key was lost, so v1.7 is signed with a new, permanent key. Android won't install it over v1.6, and uninstalling deletes the app's data. Do this once:
- In v1.6, open ≡ → Saves → Export saves and pick a folder (for example
Download). v1.6 also keeps an automatic copy inDownload/WindWakerHD Saves. - Uninstall v1.6 and install v1.7.
- Set up the game again. When it starts with no save, the app offers to restore one: pick the folder. You can also use ≡ → Saves → Import saves at any time.
From v1.7 on, updates install over the app and keep your saves and settings.
What's new
🔄 Up to date with both projects
- Enhanced fork 1.3–1.4 and Android port v0.9.1–v0.9.3, merged with everything Plus already had.
- Frame rates:
- 120 fps on 120 Hz screens.
- 60 fps is now paced: frames that don't fit are left out and the game keeps its speed. It replaces the adaptive mode.
- 60 fps (generated) stays the default.
- Fewer GPU hangs with Qualcomm's older drivers (v502 on Adreno 640/650, such as the Galaxy S20 FE's own): pipelines are created one at a time there.
- Less memory:
- Save states are compressed while they are made: about +0.3 GB while saving, against more than 1.2 GB before.
- Shaders free their source once compiled: the native heap went from about 2 GB to 0.65 GB after a long session.
- Moon jump cheat: hold L to fly and steer with the stick. It has rise and flight speeds, an optional no-fall-damage switch and random lift-off poses.
- Loading screen while the shader cache loads at start.
- Console-accurate blur as an option (Graphics).
- Command recording thread setting (Graphics).
- Fuller crash logs, and a restart of the app is no longer taken for a crash.
- After a GPU hang, the next start offers another GPU driver or the system's.
🎮 Button icons: Wii U, Xbox or PlayStation
- Mods → Button icons: choose the symbols of the controller you play with.
- The touch controls change at once.
- The game itself changes from the next start:
- the HUD's button guide (top right);
- the button icons in its text ("Press A").
- The game's own font draws the letters.
- Controller assignment: the symbols follow the buttons you assigned. Positions follow the controller: the Wii U's A (right) is Xbox's B and PlayStation's ○; B (bottom) is A / ✕; X (top) is Y / △; Y (left) is X / □; the shoulders become LB/RB/LT/RT or L1/R1/L2/R2.
🔄 From the original project (ZeldaWWHDRecomp)
- Frame pacing: a frame that misses its vsync is shown as soon as it is ready instead of a whole vsync later. The 60 fps step follows the display's own refresh.
- Faster recompiled game code: cheaper float compares (the hottest code of the game),
mfcr, and paired-single loads and stores. On a Galaxy S20 FE the game thread takes 7% less time per frame. The device prepares the game code again once after the update (about 10 minutes). - Fixes at 60 fps:
- Minigame timers (letter sorting, auctions, boat race, timed challenges) no longer run twice as fast.
- Link no longer flickers in conversations.
- Sails, flags and capes move smoothly.
✨ 60 fps (generated) steadier
- Link and the title screen's boat no longer shake back and forth between frames.
- Cause: the generated frame moved everything the camera follows as if it were background.
- Now what lies around the point the camera looks at keeps its place on the screen.
- The in-between frame is also cheaper to make: about 1.4 ms less GPU time per frame at 1080p.
- At 1080p on an Adreno 650 with Turnip the GPU is at its limit: the game alone takes ~20 ms of GPU time per frame, ~27 ms with post-processing, and ~33 ms with the generated frame, so frames come unevenly. On that phone use 720p with Turnip, or the Qualcomm driver at 1080p (~29.5 ms, 60 fps).
🛠️ Turnip drivers fixed on Adreno 6xx
- No more phone restarts: above 1x resolution, Turnip (Mesa 26.0 to 26.3) restarted the whole Galaxy S20 FE at the first frame. The cause was a fatal bus error in the chip (
TZBSP_ERR_FATAL_NOC_ERROR).- The app now turns off UBWC compression for Turnip on Adreno 6xx by itself.
- 1.5x and 2x then run, and 1x is just as fast (18.2 against 19.5 ms of GPU time per frame).
- A driver that failed can be chosen again: after a crash, choosing the same driver sent the next start straight back to the system driver without trying it. A driver that crashes is now named when the game starts.
- On Adreno 6xx Turnip keeps its own rendering mode choice; forcing GMEM was slower there.
📱 Always landscape
Some ROMs ignore the game's orientation, and Samsung's game tools turn auto-rotate on when a game starts. With the phone upright, the game then showed in a portrait strip.
- The app asks once for "Modify system settings".
- It then keeps the screen in landscape while you play, following the side you hold the phone.
- When you leave the game, it gives your rotation settings back.
Recommended GPU driver for the Galaxy S20 FE (Snapdragon 865 / Adreno 650)
Tested with 60 fps (generated) in nine places: Outset, Windfall, Dragon Roost Cavern, Gohma's room, Forest Haven, Forbidden Woods, Tower of the Gods, Hyrule and Forsaken Fortress.
| Driver | Result |
|---|---|
Turnip v26.3.0-20261013-r2 (Banners-Turnip, the plain Turnip-v26.3.0-20261013-r2.zip) |
60 fps in all nine places |
| Qualcomm v502 (the phone's own) | 60 fps in all nine places; the lowest GPU time, so the best for the 60 fps mode that draws every frame |
| Turnip 26.0 R8 (K11MCH1), Stable Turnip v2 / Mainline v32 (whitebelyash) | about 40 fps in Gohma's room and Forest Haven |
With Turnip on this GPU, keep the resolution at Original (720p): higher resolutions now run without restarts but are slow (about 20 fps at 1.5x in a heavy place).
The only remaining stutters are short ones when a new area loads, and the first visit to a place while its shaders are compiled.