How to Install Dusk on Android (Twilight Princess PC Port Guide)
Sideload Dusk on Android — APK install, ROM file picker, Bluetooth controller setup, and the v1.0.0 'Ilia missing hair' bug to know about.
Dusk 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
⚠️ Read This First
There are open Android-specific issues at v1.0.0:
- #827 — Ilia has no hair on Retroid Pocket 5, android — multiple users confirm the Ilia missing hair model bug across various Android devices
- #801 — S26 Ultra - Android Bug - String Cheese — visual bug on Samsung Galaxy S26 Ultra
- #804 — Access save location on iOS — actually iOS, not Android, but confirms save-location handling is fiddly on mobile
The Ilia hair bug is cosmetic, not gameplay-breaking, but if you encounter other model glitches, check the GitHub issues page for newer reports.
Before You Start
1. A modern Android phone with controller (recommended)
You can play with the on-screen touch overlay, but Reddit feedback uniformly recommends a physical controller:
“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)
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
Dusk 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/dusk/releases
- Under v1.0.0 Assets, tap
Dusk-v1.0.0-android-arm64.apk(50 MB) - Wait for the download
Verified SHA-256 of the official APK: (check on GitHub releases page — published with each release)
⚠️ Do not download Dusk 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 Dusk 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 Dusk uses) handles internal storage best. SD card paths sometimes don’t appear in Dusk’s file picker.
Step 4 — First Launch
- Open the Dusk 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
- Dusk verifies the hash (a few seconds — XXH128 against the built-in table)
- Status changes to “Disc ready.”
- Tap
Play
If Dusk 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 Dusk.” (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
Dusk 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 Dusk
- The controller works automatically — no in-Dusk pairing step
To configure within Dusk:
Settings → Input → Controller → Configure Controller
To enable gyro aim (DualShock 4/5, Switch Pro, 8BitDo Pro 2):
Settings → Input → Gyro → Gyro Aim (toggle on)
Mobile Menu Shortcut
Dusk’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
Dusk uses internal app storage on Android. The exact sandbox path is not officially documented (and it’s typical Android scoped-storage that varies by device).
To back up saves: from a desktop with USB debugging enabled, you can pull saves via adb:
adb pull /sdcard/Android/data/com.twilitrealm.dusk/files/
(Path is [UNVERIFIED] for the exact subfolder — verify in your Files app first.)
If issue #804 tracks the official user-accessible save location for mobile platforms — watch for updates.
Common Issues on Android
”Ilia has no hair” / Other model glitches
Known v1.0.0 issue (#827). Cosmetic only. Multiple Android devices affected; appears to be a model rendering bug specific to the Android build. No workaround at v1.0.0; track the GitHub issue for fixes.
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 Dusk
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
Dusk doesn’t expose Android-specific performance settings as of v1.0.0. 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
What to Try Next
- 🎨 Install texture packs (Android path is in app-specific scoped storage)
- 🎮 Best iPhone / Android controllers for Dusk (affiliate)
- 📋 All verified known issues
- 📱 Install on iOS
Last updated: 2026-05-10. We update this guide as Android-specific patches release.