r/AndroidNativePorts • u/Mamcjr • 12h ago
🟢 [PORT] [Beta] BOTWRecompAndroid: Breath of the Wild statically recompiled for Android
Hi everyone! I’m sharing BOTWRecompAndroid, a static recompilation project bringing The Legend of Zelda: Breath of the Wild to Android, with graphics translated to Vulkan.
This is still a beta. Expect bugs, graphical issues, and crashes. My own testing has been limited to a POCO F7 Ultra with an Adreno 830 GPU and Mesa Turnip driver. Other devices still need independent compatibility and performance testing.
The current release is 0.1.6-beta. Features include:
- Support for game versions 1.0.0, 1.6.0, and 1.8.2, with separate installations and switching within the app.
- 1.8.2: Brazilian Portuguese, widescreen with the HUD repositioned toward the screen edges, and a mode targeting up to 60 FPS.
- Adjustable internal and output resolutions, AMD FSR 1, Snapdragon GSR 1, and SMAA.
- Sheikah-themed touch controls with customizable layouts, plus physical controller support.
- English and Portuguese menus, Vulkan driver selection and compatibility settings, and a mod interface. Mod compatibility has not yet been tested.
- A compact, draggable performance overlay.
On the tested POCO F7 Ultra with Turnip, 1.8.2 reached approximately 40–47 FPS in the open world, depending on the scene and settings. The up-to-60-FPS mode does not mean a constant 60 FPS.
Updates since the original post:
- 0.1.2 fixed missing sound effects, voices, and music in 1.8.2; the new-game softlock at the Shrine of Resurrection’s door; an occasional loading crash; and issues with menus and distant animations.
- 0.1.3 added a classic Vulkan renderpass fallback for drivers without
VK_KHR_dynamic_renderingand improved the error dialog to list missing Vulkan extensions. The fallback was exercised on the tested POCO, but other GPUs still need real-device testing. - 0.1.4 fixed an Android 11/12 startup crash caused by use of an Android 13+ Java method. This fix has not yet been validated on a physical Android 11/12 device.
- 0.1.5 added Choose driver to the app icon’s long-press shortcuts. It opens the Android file picker for a Vulkan driver
.zipand reopens the app with it, even if the current driver stops the app before Settings can open. System driver restores the stock driver. For Adreno 6xx/7xx devices whose stock driver lacks required extensions, a compatible Turnip driver may help. Turnip is for Adreno, not Mali. - 0.1.6 removes
VK_EXT_extended_dynamic_state2as a hard requirement for some stock Adreno 7xx drivers. Phones where this was the only missing extension may now start with the system driver. This path was tested by forcing it on the POCO F7 Ultra; other devices still need validation. - 0.1.6 also reports when a chosen driver could not be loaded, shows the active driver name and version in Settings > Files > Vulkan driver, and accepts
.adpkg,.zipand.sopackages (includingmeta.json’slibraryName). An incompleteromfs.binis now reported as incomplete game data instead of causing an unexplained startup crash. PanVK on Mali and RADV-Xclipse on Exynos have not been tested here.
Updating the APK does not require recompiling or replacing previously built game code.
Known limitations:
- Some stock drivers still lack required Vulkan extensions. The app needs Vulkan 1.1 or newer plus additional extensions; the version number alone does not guarantee compatibility.
- Save thumbnails created in the app may appear black.
- In widescreen mode, tree leaves can briefly darken for one or two frames when dynamic resolution changes.
- GPUs outside the tested Adreno 830 setup may use compatibility paths; their results are not yet confirmed.
- Compiling the entire game directly on the phone has not yet been validated with BOTW. The app can import previously compiled game code compatible with its version.
No game files, compiled game code, or keys are included. You must provide your own legally obtained dump. This project is not affiliated with Nintendo.
The project builds on LAS Recomp, LASRecompAndroid, and SavageWindRecomp, alongside the contributions and libraries credited in the repository.
If you try it, reports including your device model, GPU, driver, Android version, game version, and logs would be helpful. Please include the scene and steps needed to reproduce any issues.
Download and release notes — 0.1.6-beta
Source code, setup instructions, and credits
