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.

Published 2026-05-10 ·Updated 2026-06-20

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.db once 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

  1. On your phone, open Chrome / Firefox
  2. Go to github.com/TwilitRealm/dusklight/releases
  3. Under v1.4.1 Assets, tap Dusklight-v1.4.1-android-arm64.apk (56.9 MB)
  4. 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.

  1. After tapping the downloaded APK, Android shows: “For security, your phone is not allowed to install unknown apps from this source.”
  2. Tap Settings
  3. Toggle on Allow from this source
  4. Return to the download notification, tap the APK again
  5. 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

  1. Open the Dusklight app
  2. The prelaunch screen shows the button Select Disc Image
  3. Tap it. Android’s Files / Storage Access Framework picker opens.
  4. Browse to where you put the disc image, tap to select
  5. Dusklight verifies the hash (a few seconds — XXH128 against the built-in table)
  6. Status changes to “Disc ready.”
  7. 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:

ControllerNotes
Backbone OneiPhone-style clip-on; works as Bluetooth gamepad on Android
GameSir X2 / G7Phone clip-on, well-tested
8BitDo Pro 2Native gyro support
Xbox Wireless (model 1914+)Native Bluetooth pairing
DualShock 4 / DualSenseNative Bluetooth pairing

To pair:

  1. Phone Settings → Bluetooth → Pair new device
  2. Put your controller in pairing mode (varies by controller)
  3. Once paired, launch Dusklight
  4. 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 is dev.twilitrealm.dusk (not com.twilitrealm.dusk). Per issue #763, this folder contains save data and a Texture_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 PCcross-device sync guide
  • Full huball known issues

What to Try Next


Last updated: 2026-06-20. We update this guide as Android-specific patches release.

← All install guides · Pillar guide →