Install Dusk on Android — Twilight Princess PC Port
Sideload Dusk on Android — APK install, ROM file picker, Bluetooth controller setup, and the v1.0.0 'Ilia missing hair' bug to know about.
Dusklight launched with a native ARM64 APK for Android. There is no Play Store listing — you sideload the APK directly from the official GitHub release. This guide walks you through it.
Time required: ~5 minutes Difficulty: Easy
⚠️ Status at v1.4.1 (2026-06-16)
The launch-day Android pain points were fixed long ago — on the current v1.4.1 build you’re past all of them:
- ✅ Ilia missing hair (#827) — fixed; the Adreno alpha-discard workaround has long shipped
- ✅ Save data visible in Files app + Settings → Interface → Open Data Folder menu (closes #804)
- ✅ Initial pipeline cache now copies correctly (delete
pipeline_cache.dbonce to refresh, then expect fewer pop-in glitches) - ⏳ Snapdragon 8 Elite Gen 5 / Adreno 840 — still some open issues (stretched textures, vertex bugs, LOD glitches): #801 (Galaxy S26 Ultra “string cheese”), #750, #846, #1184. The official README acknowledges: “we are also aware of a number of issues on devices with Adreno GPUs and are working to resolve them.”
Install the current v1.4.1 build below — you’re on a current build with these fixes already in.
Before You Start
1. A modern Android phone (controller optional)
As of v1.4.0, Dusklight ships first-class mobile touch controls — a customizable on-screen control scheme built for Android, so you no longer strictly need a gamepad. Earlier launch-day feedback still favored a physical controller, and many players prefer one for comfort:
“you need a controller to play it, i was able to get it running at max settings, not sure if its because of the frame rate or the phone version not being as polished but Ilia was missing her hair lol” — splashtext, r/SteamDeck (43 upvotes)
That advice predates v1.4.0’s touch controls. Try the on-screen layout first; reach for a controller if you want it.
Devices reported working at launch:
- Most modern Snapdragon / Tensor flagships (Galaxy S, Pixel 8+)
- Retroid Pocket 5, Retroid Pocket Flip 2 (handheld)
- AYN Thor (handheld)
2. ARM64 only
Dusklight only ships an arm64 APK. If you’re on a very old 32-bit-only Android device, you cannot run it. Most Android phones from the past 5+ years are ARM64.
3. Your own GameCube Twilight Princess disc dump
Required. See How to legally dump your TP disc — this is easiest done on a desktop PC, then transfer to the phone.
Supported in v1.0.0:
- GameCube USA (GZ2E01)
- GameCube PAL (GZ2P01)
Step 1 — Download the APK
- On your phone, open Chrome / Firefox
- Go to github.com/TwilitRealm/dusklight/releases
- Under v1.4.1 Assets, tap
Dusklight-v1.4.1-android-arm64.apk(56.9 MB) - Wait for the download
Verified SHA-256 of the official APK: (check on GitHub releases page — published with each release)
⚠️ Do not download Dusklight from “apkaward” / “APKmirror” / “free APK” sites. They may bundle malware. The only safe source is the official GitHub releases page.
Step 2 — Enable APK Sideload
Android blocks APK installs by default. You need to allow it specifically for the browser you used to download.
- After tapping the downloaded APK, Android shows: “For security, your phone is not allowed to install unknown apps from this source.”
- Tap Settings
- Toggle on Allow from this source
- Return to the download notification, tap the APK again
- Tap Install
When done, you can disable “Allow from this source” again — once Dusklight is installed, the toggle is no longer needed.
Step 3 — Transfer Your ROM
The most reliable methods:
USB cable
Connect your phone to your computer with a USB-C cable. Set the phone to File transfer mode. Drag the disc image (e.g., TwilightPrincess.iso) into a folder on the phone like Internal storage/Download/ or Internal storage/Documents/.
Cloud
Upload the disc image to Google Drive or Dropbox on your computer. On the phone, install the matching app, sign in, and download the file to local storage. (Disc images are ~1 GB — make sure you have storage and bandwidth.)
Wired transfer apps
LocalSend, Snapdrop, or AirDroid all work for direct LAN transfer.
⚠️ Don’t put the ROM on an SD card mounted as portable storage — Android’s Storage Access Framework (which Dusklight uses) handles internal storage best. SD card paths sometimes don’t appear in Dusklight’s file picker.
Step 4 — First Launch
- Open the Dusklight app
- The prelaunch screen shows the button
Select Disc Image - Tap it. Android’s Files / Storage Access Framework picker opens.
- Browse to where you put the disc image, tap to select
- Dusklight verifies the hash (a few seconds — XXH128 against the built-in table)
- Status changes to “Disc ready.”
- Tap
Play
If Dusklight rejects your dump, you’ll see one of:
- “The selected disc image could not be validated.”
- “The selected file is not a valid disc image.”
- “The selected game is not supported by Dusklight.” (e.g., NTSC-J or Wii)
- “The selected disc image did not pass hash verification…”
See SHA-1 mismatch troubleshooting.
Step 5 — Pair a Controller
Dusklight supports standard Bluetooth gamepads. Recommended:
| Controller | Notes |
|---|---|
| Backbone One | iPhone-style clip-on; works as Bluetooth gamepad on Android |
| GameSir X2 / G7 | Phone clip-on, well-tested |
| 8BitDo Pro 2 | Native gyro support |
| Xbox Wireless (model 1914+) | Native Bluetooth pairing |
| DualShock 4 / DualSense | Native Bluetooth pairing |
To pair:
- Phone Settings → Bluetooth → Pair new device
- Put your controller in pairing mode (varies by controller)
- Once paired, launch Dusklight
- The controller works automatically — no in-Dusklight pairing step
To configure within Dusklight:
Settings → Input → Controller → Configure Controller
To enable gyro aim (DualShock 4/5, Switch Pro, 8BitDo Pro 2):
Settings → Input → Gyro → Gyro Aim (toggle on)
As of v1.4.0, Dusklight also has native gyro and rumble support on Android — your phone’s own motion sensors work as the gyro source, so a gyro-equipped controller is no longer required.
Mobile Menu Shortcut
Dusklight’s UI overhaul (v0.6.0) added a mobile-specific gesture:
3-finger tap anywhere on the screen toggles the menu bar.
This is documented in the v0.6.1 release notes. Use it if you want to access settings without a controller’s Back/Select button.
Save File Location on Android (v1.4.1+)
Dusklight data is accessible from the Files app:
- Easiest path — inside Dusklight: Settings → Interface → Open Data Folder. This jumps directly to the right location regardless of device.
- Manual path:
/sdcard/Android/data/dev.twilitrealm.dusk/files/— the package identifier isdev.twilitrealm.dusk(notcom.twilitrealm.dusk). Per issue #763, this folder contains save data and aTexture_Replacement/subfolder for mods. - adb backup (desktop with USB debugging):
adb pull /sdcard/Android/data/dev.twilitrealm.dusk/files/
If your phone has trouble surfacing the Dusklight folder, TwilitRealm’s release notes recommend the Files app by Marc — open the left nav and scroll to the bottom.
Common Issues on Android
”Ilia has no hair” / Other model glitches
This was a launch-day v1.0.0 bug (#827) — fixed long ago via an Adreno alpha-discard workaround, so the current v1.4.1 build doesn’t have it. If you still see it, you’re on an ancient build; grab the latest. For other model rendering issues on Snapdragon 8 Elite / Adreno 840 chips, watch the GitHub issue tracker.
APK won’t install
Re-toggle “Allow from this source” for the browser/app that downloaded the APK. Some devices require enabling Settings → Apps → Special access → Install unknown apps for that specific browser.
Disc image not visible in picker
Avoid SD card storage; use internal storage. Make sure the file extension is one of iso, gcm, ciso, gcz, nfs, rvz, wbfs, wia, tgc.
Controller pairs but does nothing in Dusklight
Some controllers register as keyboard or mouse on Android. Check Phone Settings → Connected devices → Controller name → Mode — set to “Game controller” if available. Otherwise try a different controller.
Performance is choppy
Dusklight doesn’t expose many Android-specific performance settings. Try:
- Lower Settings → Video → Resolution → Internal Resolution to native phone resolution or below
- Cap framerate at 30 FPS via Settings → Video → Rendering → Unlock Framerate (toggle off)
- Close background apps / restart phone
Common Problems on Android
- Ilia rendering without hair (#827) — fixed long ago; only affects ancient builds
- Galaxy S26 Ultra / Adreno “string cheese” visual bug (#801) — open; tracked on the Dusklight repo
- Save not visible in Files app — fixed; use Settings → Interface → Open Data Folder
- Save sync to PC → cross-device sync guide
- Full hub → all known issues
What to Try Next
- 🎨 Texture pack install (Android
/sdcard/Android/data/dev.twilitrealm.dusk/files/Texture_Replacement/) - 🚀 Framerate & 60 FPS, explained
- 💾 Save file paths & cross-device sync
- 🎮 Best iPhone / Android controllers for Dusklight (affiliate)
- 📱 Install on iOS
Last updated: 2026-06-20. We update this guide as Android-specific patches release.