Skip to content

Releases

DroidPlay Core 0.8.6

Choose a tag to compare

@enjoyerofslop enjoyerofslop released this 13 Nov 15:39
76fde35

DroidPlay Core 0.8.6 brings The Elder Scrolls V: Skyrim to In-game, lets a game's data go on the phone's SD card, and makes two long Windows build steps easier to follow: a phone decode that would fill your computer's drive now says so before it starts, and shader translation no longer sits at 100 %.

Everything since 0.8.5 is below.

Important

Bring your own game. No game, keys, firmware or packed APK is part of this release or this repository. Dump the game and the keys from your own Switch; the app you build is for you only.

Games

  • The Elder Scrolls V: Skyrim (1.1.404) is In-game on a Galaxy S25 Edge and on the Mac, at 30 fps: from a new game through the cart ride into Helgen, character creation and the dragon attack to the first steps (#414).

    • Its shaders are read from its BSA archive: before, the split found none, and the game played music over a black screen.
    • It no longer stops after its first frame: the game now gets the GPU timestamp counter it waits for.
    • Starting a new game no longer crashes: the fix is for a texture whose rows are packed tighter than its width, which other games may use too.
    • The archive reader comes from seedds/nxnative #444 by joopyz. Thanks!
  • Bayonetta 2 is In-game on a OnePlus Pad 3 at the game's 60 fps (30 in its cutscenes): from a new game through the opening, the tutorial and Verse 1's first fights, with sound and the auto-save working.

  • Divinity: Original Sin 2 - Definitive Edition is Playable – minor issues further in, through Fort Joy's beach and the ship's escape by lifeboat.

  • The Game Status table has newer frame rates for Mario Kart World and Ocarina of Time, and screen captures for Skyrim, Pokémon Legends: Z-A, both Metroids and Bayonetta 2.

Added

  • Game data on the phone's SD card (#429). In DroidPlay for Windows, a game's Options has Game data: Phone storage / SD card, offered when the phone has a card. Pick SD card, then Build and install. From the command line:
    • --romfs-dir sd puts a library install's game data on the card.
    • --romfs-beside keeps a game app's data beside its APK, so the APK stays small.
  • Custom Vulkan drivers on Samsung's Xclipse phones: DM_VK_DRIVER now also works there, so RADV for Xclipse can be tried as a test driver, as Turnip can on Snapdragon. It's for testing a bug against another driver, not a speed-up: Brilliant Diamond ran at the same frame rate on both.

Fixed

  • Games whose files are packed with their own Oodle, built on Windows (Pokémon Legends: Z-A, Arceus and others): a computer without room for the decoded files is now told before the phone decode starts. Before, the build failed about an hour in with adb's "cannot write … Input/output error". If the build stops partway, the jobs already done are kept, so the next build continues where it stopped (#415, #436).

  • Shader translation no longer sits at 100 %. After the translator's count reaches 100 %, three more steps run, and now each shows its name and its own count on the Builds page:

    • checking vertex shaders;
    • translating vertex shaders again;
    • final pass.

    Don't stop a build during them: shaders count as translated only once the final pass has written them (#437).

  • 3D touch layout: camera swipes that start beside the face buttons now turn the camera. The A/B/X/Y buttons took touches well past their drawn edge, over most of the lower right, so a swipe that started there pressed a button instead. They now take touches only a little past their edge (#433).

Checked before release

A light save-sweep ran with this release's code: one route per game, one pass each, on two phones, compared against 0.8.5's runs. No route crashed, no new kind of error showed up, and the pictures matched.

Phone (GPU) Result
OnePlus Pad 3 (Adreno 830) Same frame rates: Super Mario Odyssey's Metro 45.2 fps, Skyward Sword HD 60, Link's Awakening's Turtle Rock 41.1, Breath of the Wild and Shield 30, Ocarina of Time's Kokiri 30.0
Galaxy Z Flip 7 (Xclipse 950) Same frame rates: Breath of the Wild and Shield 30, Persona 3 Portable 60, Frostpunk 29.5

Not swept this time: the Pixel 9 Pro XL (Mali), the Retroid Pocket 5 (Adreno 650) and DroidPlay for Windows on a real PC; its build changes were tested by CI on Windows. The touch-layout change landed after the sweep; its self-check passed on the Galaxy Z Flip 7 (58 checks, none failed).

Updating

  • DroidPlay for Windows, from 0.5.1 or later: press Update when DroidPlay offers this release, or Update to 0.8.6 in Settings › Updates.
  • From 0.5.0: close DroidPlay, open it again from the Start menu, then Update. Or download DroidPlay-Setup-0.8.6.exe below and run it.
  • Games you've already built keep working as they are. Skyrim needs its first build.

The droidplay-core-0.8.6 archives and Install DroidPlay.cmd below are for older installers and building from source; you don't need them.

Known problems

  • Fire Emblem: Three Houses, Dragon Quest Builders 2, Hyrule Warriors: Definitive Edition, Portal, Portal 2 and Catherine: Full Body build only on a Mac. Each compiles a few shaders at start-up with its own shader compiler, and only a Mac build can capture those today (#441).
  • First launch after updating: a game may show a black screen for up to a minute or more while the phone's driver rebuilds its pipelines, Brilliant Diamond on Samsung's Xclipse phones especially. Later launches are normal.
  • Ocarina of Time (Switch 2): about 19–20 fps in Kokiri Forest on Samsung's Snapdragon 8 Elite phones and 29–30 on the OnePlus Pad 3, under its 60 fps target. Characters and water are dark on 8 Gen 2 and older Snapdragons on the phone's own driver. Close other apps first on a 12 GB phone.
  • Metroid Prime Remastered: force fields are drawn as a jumble of blue shapes and the arm cannon is dark on Adreno 730. Nearly black, then a driver crash, on Mali (Pixel 9 Pro XL).
  • Mario Kart World (Switch 2): about 25–28 fps in races on Snapdragon 8 Elite.
  • Pokémon Legends: Z-A: nearly black on Mali GPUs.
  • Pokémon Legends: Arceus: stripes on rocks close to the camera on the Galaxy Z Flip 7. They show on RADV too, so they're DroidPlay's bug, not Samsung's driver.
  • Dark Souls: Remastered: movie audio drops out on the Galaxy Z Flip 7.
  • Breath of the Wild: a warning line ("a chunk was closed while a draw was being made") in the log, with nothing visible tied to it, and an orange speckle in some scenes on the Pixel 9 Pro XL.
  • Save import: zips that use Deflate64 compression can't be read. Unpack them first and import the folder.
  • Super Smash Bros. Ultimate: thin seam lines cross "SUPER" in the title logo.

Help and reports

Ask for help and report how a game runs in the DroidPlay Discord:

  • #help for a problem. On Windows, Copy report on the Builds page gives you the text to paste.
  • #compatibility for how a game runs.

Never share game files or keys.

DroidPlay Core is seedds/nxnative with an Android port, which began as RogelioLB/nxnative-android.

DroidPlay Core 0.8.5

Choose a tag to compare

@enjoyerofslop enjoyerofslop released this 13 Nov 01:04
f35f463

DroidPlay Core 0.8.5 makes The Legend of Zelda: Ocarina of Time (Switch 2) cheaper to draw. The foliage costs a quarter to a third less, and two new game settings trade picture or heat for speed. Metroid Dread and Metroid Prime Remastered are In-game, Donkey Kong Country Returns HD's opening movie plays through, and DroidPlay for Windows can now build Switch 2 games whose code needs zbic.

Everything since 0.8.4 is below.

Important

Bring your own game. No game, keys, firmware or packed APK is part of this release or this repository. Dump the game and the keys from your own Switch; the app you build is for you only.

Important

Build and install Ocarina of Time again after updating: Build and install in DroidPlay for Windows, or Install on Android on a Mac.

  • Why: its foliage shaders changed form, and its new settings reach the phone only when the game is installed.
  • What happens: only those shaders are translated again, about a minute, and about 0.5 GB goes to the phone.
  • First launch: the new kernels are made in the background, which takes a few seconds on most Snapdragon phones and about 35 seconds on Samsung's. Some plants may be missing until it finishes.

Games

  • Ocarina of Time (Switch 2):
    • The foliage costs less: its grass and trees are drawn by compute kernels on phones without mesh shaders, and those kernels now write and read their data directly instead of through shared memory. They take 25 % less time on Adreno 840 and 38 % less on Adreno 830.
    • Fewer GPU waits: indirect dispatches read their arguments where they lie, and a dispatch reads a draw's in-place write without waiting for the rest of the chunk.
    • Raw memory lookups cost less: shaders that read the game's memory through DroidPlay's address table remember their last lookup, which takes 12–16 % off those shaders and about 5 % off the Pad 3's GPU frame. Nothing has to be translated again for this one.
    • Where it stands, in Kokiri Forest with all foliage drawn:
      • about 29.5 fps on a OnePlus Pad 3, up from 27;
      • about 19 fps on a Galaxy S25 Edge at the clock its governor gives, up from 17.3;
      • about 20 fps on a Galaxy Z Fold 8, whose clock varies with heat.
    • The 1440×810 render passes are most of what's left on Samsung phones.
    • Two new settings under Game in the launcher, both off by default:
      • Fewer plants (faster) leaves out the forest's ferns and flowers and the big trees' canopies: 30.0 fps on the Pad 3. With thanks to Banana Native (#167).
      • Keep the GPU clock up holds the GPU at its highest clock, for any game on a Snapdragon phone. It can help on a cool phone, but on a warm one the phone's thermal limit then cuts the clock harder, so it can be slower: 19.9 → 17.7 fps on a warm Fold. The phone runs warmer and uses more battery.
  • Metroid Dread is In-game on a Pixel 9 Pro XL (60 fps), a Moto Razr Plus 2023 (52–60) and a Retroid Pocket 5 (53–58): from a new game into the first caverns, with the picture as on the Mac.
  • Metroid Prime Remastered is In-game on a Moto Razr Plus 2023: from a new game into control on the Frigate at 60 fps. It no longer crashes at its start on Android: the game's memory block is now aligned as the Switch aligns it.
  • Donkey Kong Country Returns HD's opening movie plays to its end and the game goes on to the treehouse, instead of freezing on its last frames (Ayn Odin 2 and Galaxy Z Flip 7).
  • OCTOPATH TRAVELER boots on the Retroid Pocket 5 and other Adreno 6xx devices, where the driver crashed on its small layered render passes.
  • Xenoblade Chronicles 3 is Playable – major issues: a new game played by hand on the Galaxy Z Flip 7 and the Moto Razr Plus 2023, and 30 fps on an Ayn Odin 2.
  • Mario Kart World: races are 10–24 % faster on Adreno and Xclipse (OnePlus Pad 3 25.1 → 28.2 fps, Galaxy Z Flip 7 19.5 → 24.1). Its indirect dispatches run on the GPU's copy of their counts.
  • Assassin's Creed: The Rebel Collection has a profile and a status row.

Fixed

  • Pokémon: Let's Go's Pokémon and item sprites have the right colours on Android (they had red and blue swapped on every GPU: a cyan Pikachu, blue Poké Balls). Textures in NVN's 16-bit RGB565, RGB5A1 and RGBA4 formats now have their red and blue exchanged where they cross between the game's memory and the GPU, as on the Mac. Other games using these formats (on the Mac: Tears of the Kingdom's Depths, Super Mario RPG, Echoes of Wisdom) should get the right colours too (#417).
  • Text entry (naming a character, a Pokémon, livestock) keeps the game's minimum length, so OK stays greyed out until the name is long enough, and accented and other non-English characters reach the game correctly. Thanks, DeathKhan!
  • The menu button (≡) stays out of the way with a controller: while a controller hides the touch controls, ≡ hides too, and any tap on the screen shows it for 3 seconds. The controller's menu key still opens the pause menu, and nothing changes without a controller.
  • Touch control height: a new setting under Controls, beside size and inset, raises the stick, the D-pad and the buttons from the bottom edge, up to just below the shoulder buttons. 0 % is the layout as before.
  • DroidPlay for Windows can build Switch 2 games whose code is compressed with ZBIC, Ocarina of Time among them. It installs the zbic package these games need, where the build used to stop in stage 1.
  • Games whose files are packed with their own Oodle, built on Windows (Pokémon Legends: Z-A, Arceus and others): the build no longer stops at "the Oodle job on the phone did not finish" when the phone's screen is off. The decode job waited for a window, which Android doesn't give a phone with its screen off, as it usually is after a long build. It now starts without one (#403, #415).
  • DroidPlay for Windows' game picker says what it takes: a folder with a game's NSP or XCI files, or a Switch 2 game's .nup or dump folder. Windows' folder picker shows no files, so pick the folder that holds them.
  • A build that packs a game without shaders says what to try: a game that compiles its shaders while it runs draws nothing at first. Play it for a while, then run the build again with --update-shaders (Manage › Update shaders from the phone in DroidPlay for Windows) to bring them in.
  • Shader translation shows a count on the Builds page (shaders done of those left), so a game with a very large shader set, which can translate for hours, shows how far it got.
  • Reports: a crash dump prints the text a register points at, such as a game's own error message, and Android logs say which DroidPlay version and commit built the game.

Checked before release

A lighter save-sweep than 0.8.4's ran with this release's code: one route per game, one pass each, on two phones, compared against 0.8.4's runs. No route crashed, and no new kind of error showed up. Memory stayed within 25 MB and the pictures matched.

Phone (GPU) Result
OnePlus Pad 3 (Adreno 830) Same frame rates: Super Mario Odyssey's Metro 44.3 → 46.0 fps, Skyward Sword HD 60, Link's Awakening's Turtle Rock 41.6, Breath of the Wild and Shield 30, Ocarina of Time's Kokiri 30. Let's Go's party, bag and Catching Pocket now show the right colours. Mario Kart World's race load hit the tablet's memory limit, as before this release
Galaxy Z Flip 7 (Xclipse 950) Same frame rates: Breath of the Wild and Shield 30, Persona 3 Portable 60, Frostpunk 29.5. Brilliant Diamond drew nothing on its first launch while it rebuilt its pipelines, then 59.9 fps on the next

Not swept this time: the Pixel 9 Pro XL (Mali) and the Retroid Pocket 5 (Adreno 650). The OCTOPATH TRAVELER fix for Adreno 6xx was swept on the Retroid Pocket 5 before it was merged.

Updating

  • DroidPlay for Windows, from 0.5.1 or later: press Update when DroidPlay offers this release, or Update to 0.8.5 in Settings › Updates.
  • From 0.5.0: close DroidPlay, open it again from the Start menu, then Update. Or download DroidPlay-Setup-0.8.5.exe below and run it.
  • Games you've already built: build and install them again to get the fixes, Ocarina of Time especially (see the top).

The droidplay-core-0.8.5 archives and Install DroidPlay.cmd below are for older installers and building from source; you don't need them.

Known problems

  • First launch after updating: a game may show a black screen for up to a minute or more while the phone's driver rebuilds its pipelines, Brilliant Diamond on Samsung's Xclipse phones especially. Later launches are normal.
  • Ocarina of Time (Switch 2): about 19–20 fps in Kokiri Forest on Samsung's Snapdragon 8 Elite phones and 29–30 on the OnePlus Pad 3, under its 60 fps target. Characters and water are dark on 8 Gen 2 and older Snapdragons on the phone's own driver. Close other apps first on a 12 GB phone.
  • Metroid Prime Remastered: force fields are drawn as a jumble of blue shapes and the arm cannon is dark on Adreno 730. Nearly black, then a driver crash, on Mali (Pixel 9 Pro XL).
  • Mario Kart World (Switch 2): about 25–28 fps in races on Snapdragon 8 Elite.
  • Pokémon Legends: Z-A: nearly black on Mali GPUs.
  • Pokémon Legends: Arceus on the Galaxy Z Flip 7: stripes on rocks close to the camera.
  • Dark Souls: Remastered: movie audio drops out on the Galaxy Z Flip 7.
  • Breath of the Wild: a warning line ("a chunk was closed while a draw was being made") in the log, with nothing visible tied to it, and an orange speckle in some scenes on the Pixel 9 Pro XL.
  • Save import: zips that use Deflate64 compression can't be read. Unpack them first and import the folder.
  • Super Smash Bros. Ultimate: thin seam lines cross "SUPER" in the title logo.

Help and reports

Ask for help ...

Read more

DroidPlay Core 0.8.4

Choose a tag to compare

@enjoyerofslop enjoyerofslop released this 12 Nov 18:11
3d9f479

DroidPlay Core 0.8.4 takes Xenoblade Chronicles 3's battles from about 6 fps to 30 on a Galaxy S25 Edge, stops the replay leaving the GPU idle in The Legend of Zelda: Ocarina of Time (Switch 2), and moves Link's Awakening to Playable. Pokémon Legends: Z-A and Batman: Arkham Asylum are In-game.

Everything since 0.8.3 is below.

Important

Bring your own game. No game, keys, firmware or packed APK is part of this release or this repository. Dump the game and the keys from your own Switch; the app you build is for you only.

Important

Build and install Ocarina of Time again after updating. Some of its changes are settings that reach the phone only when the game is installed: Build and install in DroidPlay for Windows, or Install on Android on a Mac. Updating the app alone doesn't apply them. Nothing is translated again, so it's quick.

Games

  • Ocarina of Time (Switch 2): the replay no longer leaves the GPU idle for part of every frame waiting on itself, which kept the phone's GPU clock low.
    • Three changes keep the GPU fed:
      • the replay's completion thread no longer scans every memory range for each small write;
      • indirect dispatches run on the GPU's copy of their arguments, instead of the replay waiting for them (Ocarina of Time only for now);
      • the frame pacing tries the next shorter hold when the GPU has room, instead of jumping straight to 60.
    • Its GPU work is also lighter: occlusion queries are off for this game, since they cost more than the culling they bought, and compute dispatches wait for each other only where the game asks.
    • Where it stands: Kokiri Forest runs at about 18 fps on a Galaxy S25 Edge and a Galaxy Z Fold 8, with all of its grass and trees drawn. Drawing that foliage now takes 14–18 ms of the GPU's frame on these phones, and making it cheaper is the next step toward 30.
  • Xenoblade Chronicles 3: battles and the field run at 30 fps on a Galaxy S25 Edge, up from about 6. The replay no longer waits for the GPU several times a frame while the characters' skinning is drawn, so the GPU's clock rises.
  • The Legend of Zelda: Link's Awakening is now Playable – major issues: a new game played by hand on a Retroid Pocket 5 through Mabe Village and Toronbo Shores to the sword, with save and Continue. The village and beach run at the game's 30 fps; Turtle Rock is faster on Adreno phones (34.9 → 42.1 fps on a OnePlus Pad 3).
  • New in the status table:
    • Pokémon Legends: Z-A (1.0.0 and 2.0.2) is In-game: from a new game to Lumiose's station at 30 fps on an Ayn Odin 2, with save and Continue. It's nearly black on Mali GPUs (Pixel 9 Pro XL).
    • Batman: Arkham Asylum is In-game: through the opening at about 30 fps on an Ayn Odin 2, with autosave and Continue. Arkham City and Arkham Knight on the Trilogy cartridge are download stubs, so they need their updates dumped.

Fixed

  • A cartridge with several games (like the Arkham Trilogy) can be packed one game at a time with --title-id, as the iOS script already could.

Checked before release

A save-sweep of late-game saves ran on four phones with this release's code, the same 28 routes as 0.8.3's, compared against 0.8.3. No route failed, crashed or was killed, and no new kind of error showed up.

Phone (GPU) Result
Galaxy Z Flip 7 (Xclipse) Same frame rates and pictures
Pixel 9 Pro XL (Mali) Same frame rates and pictures
Retroid Pocket 5 (Adreno 650) Same, with Link's Awakening's Turtle Rock faster (31.6 → 36.0 fps) and Odyssey's Sand route slightly slower (59.3 → 57.7)
OnePlus Pad 3 (Adreno 830) Same, with Turtle Rock faster (34.9 → 42.1 fps) and Odyssey's Metro faster (41.8 → 44.3)

The new frame pacing left every other game's pacing as it was: Breath of the Wild, the one route it could affect, held the same steady 30 on every phone.

Updating

  • DroidPlay for Windows, from 0.5.1 or later: press Update when DroidPlay offers this release, or Update to 0.8.4 in Settings › Updates.
  • From 0.5.0: close DroidPlay, open it again from the Start menu, then Update. Or download DroidPlay-Setup-0.8.4.exe below and run it.
  • Games you've already built: build and install them again to get the fixes, Ocarina of Time especially (see the top). It's quick: nothing is translated again.

The droidplay-core-0.8.4 archives and Install DroidPlay.cmd below are for older installers and building from source; you don't need them.

Known problems

  • Ocarina of Time (Switch 2): about 18 fps in Kokiri Forest on Snapdragon 8 Elite, under half its 60 fps target; characters and water are dark on 8 Gen 2 and older Snapdragons on the phone's own driver; close other apps first on a 12 GB phone.
  • Mario Kart World (Switch 2): about 20 fps in races on Snapdragon.
  • Pokémon Legends: Z-A: nearly black on Mali GPUs.
  • Pokémon Legends: Arceus on the Galaxy Z Flip 7: stripes on rocks close to the camera.
  • Donkey Kong Country Returns HD: a movie freezes at the same frame on every phone tried.
  • Dark Souls: Remastered: movie audio drops out on the Galaxy Z Flip 7.
  • Breath of the Wild: a warning line ("a chunk was closed while a draw was being made") in the log, with nothing visible tied to it; an orange speckle in some scenes on the Pixel 9 Pro XL.
  • Save import: zips that use Deflate64 compression can't be read. Unpack them first (Extract all in Windows Explorer) and import the folder.
  • Super Smash Bros. Ultimate: thin seam lines cross "SUPER" in the title logo.

Help and reports

Ask for help and report how a game runs in the DroidPlay Discord:

  • #help for a problem. On Windows, Copy report on the Builds page gives you the text to paste.
  • #compatibility for how a game runs.

Never share game files or keys.

DroidPlay Core is seedds/nxnative with an Android port, which began as RogelioLB/nxnative-android.

DroidPlay Core 0.8.3

Choose a tag to compare

@enjoyerofslop enjoyerofslop released this 12 Nov 15:11
021fc6b

DroidPlay Core 0.8.3 fixes three games' pictures, adds a pause menu, and makes building big games safer: a failed or out-of-space shader translation now stops the build with a clear message instead of filling the disk or packing a broken game. Unreal Engine games with encrypted paks now build on Windows and Linux too.

Everything since 0.8.2 is below.

Important

Bring your own game. No game, keys, firmware or packed APK is part of this release or this repository. Dump the game and the keys from your own Switch; the app you build is for you only.

Note

No shader translation this time. Shaders are made the same way as in 0.8.2, so games you've built before rebuild quickly.

Games

  • Xenoblade Chronicles 2 is now Playable – major issues: a new game played by hand on a Galaxy S25 Edge through the opening, King Crustip's battle and Argentum, with a save and Continue. The opening and battle hold 30 fps; Argentum runs at about 20.
    • The dark stipple over characters and the world is gone (fixed below). Checked on the S25 Edge, the Galaxy Z Flip 7 and the Pixel 9 Pro XL.
  • Pokémon Legends: Arceus is now Playable – major issues: new games played by hand on a OnePlus Pad 3 and a Galaxy Z Flip 7, through the first catches and into Jubilife Village, at about 30 fps on the beach (Jubilife about 24 on the Flip). The picture matches the Mac's.
  • Xenoblade Chronicles 3: its zebra stripes are gone and its characters draw, but battles and the field still run at about 6 fps, so it stays In-game, blocked.
  • Octopath Traveler II: the horizontal streaks on the battlefield ground are gone.

Added

  • A pause menu. The ≡ button, or a controller's Mode or Menu key, now opens a menu that holds the game (sound stops, the CPU rests) instead of going straight to the launcher. From it:

    • resume (≡ again, B or Back also resume);
    • switch the touch controls (2D, 3D or Tap) and the frame-rate counter;
    • export or import the save;
    • go back to the launcher, as ≡ did before.

    A controller can move through it. Thanks to DeathKhan for this one.

Fixed

  • Textures read in stencil mode now read the stencil, not the depth. This was behind Xenoblade Chronicles 2's stipple, Xenoblade Chronicles 3's stripes and Octopath Traveler II's streaks. A sweep of other games' saves on two phones showed no other change, and it costs no frame rate.
  • Building big games (#307):
    • Shader translation keeps its temporary files in the game's build folder, and removes them however it ends. Before, a failed translation could leave tens of GB in your temp folder each time.
    • The build checks for enough free space before translating, sized to the game's shaders, and says how much it needs. Pokémon Pokopia, for example, needs about 90 GB.
    • A full disk is reported in plain words, naming the drive, instead of a Python traceback.
    • A translation that fails, or that produces nothing at all, now stops the build: "the game is not packed". Before, the build could go on and copy a broken game to the phone.
    • A shader file cut short by a full disk becomes a warning line, not a crash, and is translated again next time.
    • The copy to the phone checks the computer's free space and cleans up after itself.
    • docs/android.md has a new Free space section.
  • Unreal Engine games with encrypted paks build on Windows and Linux (#359). Before, only a Mac could open them. This affects DreadOut 2 and registered games such as Octopath Traveler 0, DRAGON QUEST III HD-2D Remake, DRAGON BALL: Sparking! ZERO and Princess Peach: Showtime!. Linux needs OpenSSL's libcrypto.so.3 (installed on most distributions).

Checked before release

A save-sweep of late-game saves ran on four phones with this release's code (021fc6b), the same 28 routes as 0.8.2's, each compared against 0.8.2's run. No route failed, crashed or was killed, and no new kind of error showed up.

Phone (GPU) Result
Galaxy Z Flip 7 (Xclipse) Same frame rates and pictures
Pixel 9 Pro XL (Mali) Same frame rates and pictures
Retroid Pocket 5 (Adreno 650) Same, Smash included (59.7 fps on the same stage as 0.8.2's 59.6)
OnePlus Pad 3 (Adreno 830) Same; two routes that looked slower matched 0.8.2 in back-to-back runs

The pause menu was checked on the Galaxy Z Flip 7: ≡ holds the game (CPU about 65% → 10%) and Resume continues it. The stencil fix was checked on its own before merging, with a save sweep on two phones and a 10-run frame-rate comparison.

Updating

  • DroidPlay for Windows, from 0.5.1 or later: press Update when DroidPlay offers this release, or Update to 0.8.3 in Settings › Updates.
  • From 0.5.0: close DroidPlay, open it again from the Start menu, then Update. Or download DroidPlay-Setup-0.8.3.exe below and run it.
  • Games you've already built: build and install them again to get the fixes and the pause menu. It's quick: nothing is translated again.

The droidplay-core-0.8.3 archives and Install DroidPlay.cmd below are for older installers and building from source; you don't need them.

Known problems

  • Ocarina of Time (Switch 2): about 15–20 fps on Snapdragon, under half its 60 fps target; characters and water are dark on 8 Gen 2 and older Snapdragons on the phone's own driver; close other apps first on a 12 GB phone.
  • Mario Kart World (Switch 2): about 20 fps in races on Snapdragon.
  • Xenoblade Chronicles 3: about 6 fps in battles and on the field.
  • Pokémon Legends: Arceus on the Galaxy Z Flip 7: stripes on rocks close to the camera.
  • Donkey Kong Country Returns HD: a movie freezes at the same frame on every phone tried.
  • Dark Souls: Remastered: movie audio drops out on the Galaxy Z Flip 7.
  • Breath of the Wild: a warning line ("a chunk was closed while a draw was being made") in the log, with nothing visible tied to it; an orange speckle in some scenes on the Pixel 9 Pro XL.
  • Save import: zips that use Deflate64 compression can't be read. Unpack them first (Extract all in Windows Explorer) and import the folder.
  • Super Smash Bros. Ultimate: thin seam lines cross "SUPER" in the title logo.

Help and reports

Ask for help and report how a game runs in the DroidPlay Discord:

  • #help for a problem. On Windows, Copy report on the Builds page gives you the text to paste.
  • #compatibility for how a game runs.

Never share game files or keys.

DroidPlay Core is seedds/nxnative with an Android port, which began as RogelioLB/nxnative-android.

DroidPlay Core 0.8.2

Choose a tag to compare

@enjoyerofslop enjoyerofslop released this 12 Nov 06:22
2a78ecc

DroidPlay Core 0.8.2 brings Ocarina of Time (Switch 2)'s grass, ferns and trees to Android, makes it faster on Snapdragon, and fixes washed-out pictures and missing characters in several games. It also adds nine games to the status table: four of them Playable.

Everything since 0.8.1 is below.

Important

Bring your own game. No game, keys, firmware or packed APK is part of this release or this repository. Dump the game and the keys from your own Switch; the app you build is for you only.

Note

No full shader translation this time. Shaders are made the same way as in 0.8.1, so games build quickly. Switch 2 games that draw with mesh shaders (Ocarina of Time, Mario Kart World) translate those shaders once on their next build, which takes a few minutes for Ocarina of Time on a Mac.

Games

  • The Legend of Zelda: Ocarina of Time (Switch 2):
    • Grass, ferns and trees now draw. The game draws them with mesh shaders, which the Android build skipped until now.
      • On GPUs without mesh shaders, they run as compute.
      • On Snapdragon phones they also run as compute, because Qualcomm's own mesh path tore the distant treetops. Checked on a Galaxy Z Fold 8, at no cost in frame rate.
    • Faster on Snapdragon: the replay's CPU work per frame is cut by about half. On a OnePlus Pad 3 that lets the GPU run at its full clock, taking 21 ms per frame instead of 35. The frame rate is still held at about 20 fps there; the change that lets it reach 26 is in testing for 0.9.0.
  • Pokémon Legends: Arceus is In-game:
    • Its washed-out picture is fixed. Pale colours and missing shadows came from a general Android bug (below). It now matches the Mac's picture.
    • On a Pixel 9 Pro XL (Mali), characters and Pokémon now draw. They were invisible before.
    • Checked on a Galaxy Z Fold 8 and a Pixel 9 Pro XL, through the opening at 30 fps.
  • Xenoblade Chronicles 2: characters now draw. They were missing because draws that write memory without drawing pixels were dropped. Checked on a Galaxy S25 Edge through the first tutorial battle at 30 fps.
  • Mario Kart World (Switch 2): faster with raw global memory on by default. On a OnePlus Pad 3, races run at 22.8 fps instead of 18.4, five launches out of five with no crash.
  • Frostpunk on a Moto Razr Plus 2023 (Adreno 730): the Generator and buildings now draw on Qualcomm's own driver, with no Turnip driver needed.
  • The Legend of Zelda: Link's Awakening: sun shadows are back (the same general bug as Arceus's colours).
  • New in the status table:
    • Playable – minor issues: Paper Mario: The Thousand-Year Door (Galaxy S25 Edge), Advance Wars 1+2: Re-Boot Camp (Moto Razr Plus 2023, Galaxy Z Flip 7).
    • Playable – major issues: Octopath Traveler (Pixel 9 Pro XL), Octopath Traveler II (Galaxy S25 Edge, Galaxy Z Flip 7).
    • In-game: Pokémon Legends: Arceus, Blasphemous 2, Dark Souls: Remastered, Donkey Kong Country Returns HD.
    • In-game, blocked: Xenoblade Chronicles 3 (see Known problems).
  • The status table's screenshots now cover 26 games, and each caption shows the game's tier as a coloured chip.

Fixed

  • Vertex shader outputs start as (0, 0, 0, 1), as on the console's hardware. Before, outputs a shader didn't write could hold anything, and on Adreno they read as zero. That broke shadows and lighting in some games (Arceus, Link's Awakening, Skyward Sword HD's tunic colour). Nothing changes where a shader writes its outputs.
  • Draws that write memory without drawing pixels now run. This fixes Xenoblade Chronicles 2's missing characters.
  • Transform feedback works on Mali, which lacks the vertex-stage storage writes the old path needed (Arceus's characters on the Pixel 9 Pro XL).
  • A package that only looks like an Oodle shader table no longer drops its shaders from the split (Octopath Traveler II).

Faster builds

  • The shader post-pass runs in one process per CPU core: Ocarina of Time's shaders translate in about 7 minutes instead of 51, and Final Fantasy Resonance's post-pass takes under 5 minutes instead of 55.
  • The check of vertex shader inputs runs in parallel too.
  • For a game with a registered profile, the shader split reads only the files that hold its shaders: Ocarina of Time's split takes 17 s instead of about 2 minutes.

DroidPlay for Windows

  • Wi-Fi:
    • Discover lists every phone on the network.
    • A phone that drops off Wi-Fi is found again by its ID and reconnected.
    • Use over Wi-Fi moves a phone on its USB cable onto Wi-Fi, on Android 10 too. That connection isn't encrypted, and the app says so.
    • These were tested with a stand-in adb, not yet on a Windows PC, so tell us in #help how they go.
  • Every game start records the phone's driver, GPU and any shaders the driver refused, in vk_start.txt. It helps with reports.

Checked before release

A save-sweep of late-game saves ran on four phones with this release's code (3541dde), each route warmed up and then measured against an earlier baseline. No route failed, crashed or was killed, and no new kind of error showed up.

Phone (GPU) Routes Result
Galaxy Z Flip 7 (Xclipse) Breath of the Wild, Shield ×2, Persona 3 Portable Same frame rates (30, 30, 30, 60)
Pixel 9 Pro XL (Mali) Super Mario Odyssey ×3, Breath of the Wild, Shield ×2 Same frame rates, same pictures
OnePlus Pad 3 (Adreno 830) 9 routes across Odyssey, Skyward Sword HD, Link's Awakening, Breath of the Wild, Shield and more Same, and Odyssey's Metro faster (44.5 → 50 fps)
Retroid Pocket 5 (Adreno 650) Odyssey ×3, Skyward Sword HD, Smash, Link's Awakening ×2, Shield ×2 Same, with Link's Awakening now in daylight with shadows. Smash's random stage once came up as Town and City, at 35 fps; in 14 more battles, 0.8.1 and 0.8.2 matched at 59–60 fps on every stage both drew

Link's Awakening's daylight and Shield's brighter picture on some phones come from fixes since the baselines were taken (this release's vertex fix and 0.8.0's sRGB fix).

Each change was also tried on phones when it was made. The vertex-output fix was compared route by route on four GPU families (Adreno 650 and 830, Xclipse, Mali), with no regressions; the only picture changes were the intended ones.

Updating

  • DroidPlay for Windows, from 0.5.1 or later: press Update when DroidPlay offers this release, or Update to 0.8.2 in Settings › Updates.
  • From 0.5.0: close DroidPlay, open it again from the Start menu, then Update. Or download DroidPlay-Setup-0.8.2.exe below and run it.
  • Games you've already built: build and install them again to get the fixes. It's quick, apart from Switch 2 games translating their mesh shaders once.

The droidplay-core-0.8.2 archives and Install DroidPlay.cmd below are for older installers and building from source; you don't need them.

Known problems

  • Ocarina of Time (Switch 2):
    • Frame rate: about 15–20 fps on Snapdragon, under half its 60 fps target.
    • Older Snapdragons on the phone's own driver (8 Gen 2 and older): characters and water are dark.
    • Memory: close other apps first on a 12 GB phone.
  • Mario Kart World (Switch 2): about 20 fps in races on Snapdragon.
  • Xenoblade Chronicles 3: with this release's draw fix, characters now appear in its first battle, but it runs at about 5 fps there and the ground shows stripes. Its status row still describes the older build.
  • Donkey Kong Country Returns HD: a movie freezes at the same frame on every phone tried.
  • Dark Souls: Remastered: movie audio drops out on the Galaxy Z Flip 7.
  • Octopath Traveler II: horizontal streaks on the battlefield ground.
  • Breath of the Wild: a new warning line ("a chunk was closed while a draw was being made") in the log, with nothing visible tied to it.
  • Save import: zips that use Deflate64 compression can't be read. Unpack them first (Extract all in Windows Explorer) and import the folder.
  • Super Smash Bros. Ultimate: thin seam lines cross "SUPER" in the title logo.
  • Breath of the Wild on the Pixel 9 Pro XL: an orange speckle in some scenes.

Help and reports

Ask for help and report how a game runs in the DroidPlay Discord:

  • #help for a problem. On Windows, Copy report on the Builds page gives you the text to paste.
  • #compatibility for how a game runs.

Never share game files or keys.

DroidPlay Core is seedds/nxnative with an Android port, which began as RogelioLB/nxnative-android.

DroidPlay Core 0.8.1

Choose a tag to compare

@enjoyerofslop enjoyerofslop released this 12 Nov 01:14
c55dcca

DroidPlay Core 0.8.1 is a point release. Saves can now move between phones and your computer, games like Pokémon Legends: Arceus build, and installs over Wi-Fi hold up when the connection drops. It also fixes Ocarina of Time's terrain and Mario Kart World's random crashes.

Everything since 0.8.0 is below.

Important

Bring your own game. No game, keys, firmware or packed APK is part of this release or this repository. Dump the game and the keys from your own Switch; the app you build is for you only.

Note

No shader translation this time. Shaders are made the same way as in 0.8.0, so building a game again is quick. Build and install again to get the fixes below.

New

  • Save import and export (#245):
    • Each game's screen in the launcher has Export save, Import save and Earlier saves.
    • Import save takes a zip or a folder:
      • a DroidPlay export or backup;
      • a yuzu-family nand/user/save folder;
      • Ryujinx, JKSV, EdiZon and Checkpoint saves;
      • a plain save folder, such as one from a save site.
    • It shows what it found and asks before replacing anything. It keeps your current save, which Earlier saves puts back.
    • DroidPlay for Windows: Manage › Import a save to the phone… and Restore its save from a backup…, and Phones › Restore a backup…. The phone still asks before swapping the save. The command line has --import-save and --restore-backup.
  • Games whose shaders are in Oodle-compressed archives now build, such as Pokémon Legends: Arceus (#310).
    • The phone decodes those archives during the build, so it has to be connected.
    • The first build decodes them, about 4 minutes for Arceus. Later builds reuse what was decoded.
    • Without a phone, the build stops at the start with a message, instead of failing after the shader split.
    • Only Arceus has been tried. Legends: Z-A, Bayonetta 3, Batman: Arkham Knight and Dragon Quest XI S use the same kind of archives.
  • Installing over Wi-Fi (wireless debugging):
    • On Windows, a phone on Wi-Fi no longer stops the install at its first copy. That failure came from a folder name Windows refuses; the fix hasn't been tried on a Windows PC yet.
    • A phone is the same phone on USB and on Wi-Fi.
    • An install waits for a phone that drops off and carries on. The shader archive goes over in pieces the phone keeps, so a drop doesn't start it again.
    • Install again finds the phone at its new address.
    • Pair over Wi-Fi… in DroidPlay for Windows finds the phone on your network and asks only for its pairing code. This screen is new and hasn't been tried on a Windows PC yet, so tell us in #help how it goes.

Games

  • The Legend of Zelda: Ocarina of Time (Switch 2):
    • The pale, flat "water" patches on the ground are gone. They were terrain tiles that never drew. Checked on a Galaxy Z Fold 8 and a Pixel 9 Pro XL.
    • On phones with under 14 GB, the game's texture pools are backed by a file, so Android no longer closes it at Saria's scene on 12 GB phones.
  • Mario Kart World (Switch 2): the random crashes are fixed. They came from holes left in the game's memory pools and were seen most on the Pixel 9 Pro XL.
  • Animal Crossing: New Horizons is Playable (major issues): played by hand on an Ayn Odin 2 from a new game through the first night, with its first save, Continue and sound.
  • Frostpunk adds the Galaxy Z Flip 7 to its Playable row: the first night by hand on Exynos (Xclipse), saved and resumed.
  • Pokémon Legends: Arceus builds now, and reaches its opening at 30 fps on a Pixel 9 Pro XL. See Known problems.

Fixed

  • A game without a profile gets the memory it asks for at start (#291).
  • Pokémon Pokopia's build on Windows: the shader split's big results now come back through a file, which fixes its WinError 87 (#307). The fix was tested on a Mac, not yet on Windows.
  • A failed shader split stops the build with a message, instead of finishing a game with no shaders that can't draw.

Checked before release

Each change was tried on phones when it was made:

  • Save import: on a Pixel 9 Pro XL with Brilliant Diamond and Shield, and on an Ayn Odin 2.
  • Arceus's build: on a Pixel 9 Pro XL.
  • Ocarina of Time's terrain: on a Galaxy Z Fold 8 and a Pixel 9 Pro XL.
  • Mario Kart World's crash fix: four runs on a Pixel 9 Pro XL.
  • Wi-Fi installs: from a Mac to a OnePlus Pad 3.

There was no separate smoke run across every phone for this point release. DroidPlay for Windows passed its automated packaging checks, but wasn't tried by hand on a Windows PC.

Updating

  • DroidPlay for Windows, from 0.5.1 or later: press Update when DroidPlay offers this release, or Update to 0.8.1 in Settings › Updates.
  • From 0.5.0: close DroidPlay, open it again from the Start menu, then Update. Or download DroidPlay-Setup-0.8.1.exe below and run it.
  • Games you've already built: build and install them again to get the fixes. It's quick, since shaders aren't translated again.
  • The Save rows appear in the launcher once you've installed with 0.8.1.

The droidplay-core-0.8.1 archives and Install DroidPlay.cmd below are for older installers and building from source; you don't need them.

Known problems

  • Ocarina of Time (Switch 2):
    • Frame rate: 9–18 fps, under half its 60 fps target. Fixes that reach about 27 fps on a OnePlus Pad 3 are being tested for 0.9.0.
    • Foliage: grass and ferns drawn by mesh shaders are missing.
    • Older Snapdragons on the phone's own driver (8 Gen 2 and older): characters and water are dark. A Turnip driver works around it.
    • Memory: on a 12 GB phone the game is close to Android's limits. Close other apps first.
  • Mario Kart World (Switch 2): 2–5 fps in 3D on Snapdragon, an untextured track and missing roadside bushes.
  • Frostpunk on a Moto Razr Plus 2023 (Adreno 730): the Generator and buildings are invisible on Qualcomm's own driver. They draw with a Turnip driver, and a fix is in progress.
  • Pokémon Legends: Arceus on a Pixel 9 Pro XL (Mali): characters and Pokémon are invisible, so the game stops at its opening. A fix is in progress.
  • Save import: zips that use Deflate64 compression can't be read. Unpack them first (Extract all in Windows Explorer) and import the folder.
  • Super Smash Bros. Ultimate: thin seam lines cross "SUPER" in the title logo.
  • Breath of the Wild on the Pixel 9 Pro XL: an orange speckle in some scenes.

Help and reports

Ask for help and report how a game runs in the DroidPlay Discord:

  • #help for a problem. On Windows, Copy report on the Builds page gives you the text to paste.
  • #compatibility for how a game runs.

Never share game files or keys.

DroidPlay Core is seedds/nxnative with an Android port, which began as RogelioLB/nxnative-android.

DroidPlay Core 0.8.0

Choose a tag to compare

@enjoyerofslop enjoyerofslop released this 11 Nov 21:23
91baeea

DroidPlay Core 0.8.0 brings The Legend of Zelda: Ocarina of Time (Switch 2) to Android with its picture right. Characters, the forest and the Sacred Grove are lit, and memory fixes stop Android from closing it. It also has a shader update for every game:

  • Ocarina of Time draws lit on Snapdragon 8 Elite phones, on Samsung's Exynos (Xclipse) and on Google's Pixel (Mali). On older Snapdragons it draws lit with a Turnip driver.
  • Mario Kart World no longer loses the GPU on Snapdragon phones.
  • Frostpunk is Playable (major issues).
  • Fixes: Skyward Sword HD's new game, Link's Awakening's too-dark picture, and Final Fantasy Resonance's missing flames on Snapdragon 8 Gen 2 phones.

Everything since 0.7.6 is below.

Important

Bring your own game. No game, keys, firmware or packed APK is part of this release or this repository. Dump the game and the keys from your own Switch; the app you build is for you only.

Note

Shaders are translated again for every game. This release changes how shaders are made for Android, so the first build of each game after updating translates its shaders again and copies them to the phone again. On a Mac: Brilliant Diamond about 3 minutes, Super Mario Odyssey about 8, Link's Awakening about 10, Smash about 18, Ocarina of Time about 36 and Final Fantasy Resonance about 55. It needs a few GB of free disk space while it runs. After that it's as quick as before.

Games

  • The Legend of Zelda: Ocarina of Time (Switch 2): still In-game, blocked, but now only by its frame rate. The picture and memory are right; no phone yet reaches half of its 60 fps target.
    • On a Galaxy S25 Edge and a Galaxy Z Fold 8 (Snapdragon 8 Elite): Kokiri Forest, Saria's scene and the Sacred Grove fight, with Link and the Mad Scrubs lit, at 13–18 fps. Android never closed it: in three runs on the S25 and five launches on the Fold.
    • On a Galaxy Z Flip 7 (Exynos, Xclipse): Kokiri and Saria's scene lit at about 12 fps. Its picture was solid red before.
    • On a Pixel 9 Pro XL (Mali): Kokiri lit at about 9 fps, with about 0.4 GB of driver memory where it took 6.7 GB.
    • On older Snapdragons (8 Gen 2 and 8+ Gen 1, such as an Ayn Odin 2): the title now runs at 60 fps instead of under 1. Characters and water stay dark on the phone's own driver (see Known problems); with a Turnip driver, Kokiri is lit at about 9 fps.
    • What made the difference:
      • the game's raw memory reads now run on the GPU;
      • images the game rewrites are let go;
      • Samsung's and Google's drivers no longer reserve gigabytes for the game's shader layouts;
      • the title's movie upscaler, which only drew black, is left out.
  • Mario Kart World (Switch 2): on Snapdragon phones, Qualcomm's driver no longer loses the GPU a few seconds into the first 3D scene. A OnePlus Pad 3 drove about 11 minutes, through the menus into a race. Races are also about four times faster than before: frames of 47–65 ms instead of 216–312. The replay no longer compares a large buffer against a copy at every draw. It's still under its target: the next fixes are in progress.
  • Frostpunk: Playable – major issues through day 1 into the first night. Played by hand on a Galaxy S25 Edge from a new game of A New Home: tents, a cookhouse, the Generator started, then free time into the night. It held 29–30 fps, and the save loaded with Resume story after a cold start.
  • The Legend of Zelda: Skyward Sword HD: a new game no longer draws Skyloft's objects as flat grey, green or magenta shapes in its first session.
  • The Legend of Zelda: Link's Awakening: no longer drawn too dark on Android. Mabe Village is in daylight, and Link took the sword on Toronbo Shores on a OnePlus Pad 3.
  • Final Fantasy Resonance: Playable – major issues through the Battlefield and the canyon's third battle. Played by hand on an Ayn Odin 2 from a new game: through the opening and tutorials, three battles won, and the autosave loaded by Continue after a cold start, with sound. It runs at 52 fps (its target is 60), and 60 in story scenes. The first field's flames are now drawn on Snapdragon 8 Gen 2 and 8+ Gen 1 phones.

Fixed

  • Games with an sRGB window are no longer shown a gamma too dark (Link's Awakening and others).
  • A memory pool made over memory an earlier pool held no longer serves stale geometry or textures (Skyward Sword HD's new game). This fix is also offered to nxnative.
  • Compute shaders that ask for more shared memory than the GPU has now use a buffer instead, on GPUs where that's needed (Mario Kart World on Snapdragon).
  • Shader layouts with far-apart binding numbers are made dense, so Samsung's and Mali's drivers no longer reserve memory for every number (Ocarina of Time took gigabytes).
  • E5B9G9R9 images a shader writes are stored right on every GPU (Ocarina of Time's solid red picture on Xclipse and with Turnip).
  • Images unused for a while are let go when the game's memory still holds their content, so a long session uses less memory.
  • Freed images keep their memory for a while to be used again, so a game that remakes its render targets every frame spends less time allocating. In Ocarina of Time that's about 1.8 ms a frame.
  • Read-only storage buffers are bound again from their copy while the game hasn't written to them, instead of being compared byte by byte at every draw (Mario Kart World).
  • The benchmark script no longer stops a game it wrongly thinks has died. It also records the phone's low-memory kills under both of Android's log tags.

Checked before release

The 0.8.0 build was checked against 0.7.6 on the same phones and routes, warm runs. Each cell is fps · 95th-percentile frame ms · memory in GB.

Phone Game 0.7.6 0.8.0
Pixel 9 Pro XL (Mali) Brilliant Diamond 60 · 19.8–20.1 · 1.99 60 · 19.6–19.8 · 2.03
Pixel 9 Pro XL Super Mario Odyssey 59.7 · 19.3–19.7 · 2.19 59.7 · 19.3–19.5 · 2.19
Moto Razr Plus 2023 (Adreno 730) Brilliant Diamond 60 · 20.2 · 1.72 60 · 19.6–19.7 · 1.75
OnePlus Pad 3 (Adreno 830) Brilliant Diamond 60 · 18.5–18.8 · 1.37 60 · 18.9–19.3 · 1.39
OnePlus Pad 3 Super Mario Odyssey 59.8 · 19.6–19.9 · 1.55 59.8–59.9 · 19.8–20.0 · 1.56
OnePlus Pad 3 Link's Awakening 60 · 16.8 · 0.96 60 · 16.8–16.9 · 0.93–0.97
OnePlus Pad 3 Super Smash Bros. Ultimate 59.9 · 34.7–35.0 · 1.9–2.1 60 · 34.8–34.9 · 1.9–2.2
Galaxy Z Fold 8 (Adreno 840) Mario Kart 8 Deluxe, 50cc race 54.8 · 26.8 52.5–55.8 · 25.2–28.4
Moto Razr Plus 2023 Mario Kart 8 Deluxe, 50cc race about 45 45.3 · 30.4 · 2.37
  • Crashes and errors: no crash, and no new error line.
  • Galaxy Z Flip 7 (Xclipse): Ocarina of Time played 15 minutes across Kokiri and the Sacred Meadow without being closed. Brilliant Diamond and Frostpunk are unchanged.
  • Brighter games: Link's Awakening and Smash look brighter than on 0.7.6, as intended. They draw sRGB frames, which are now shown as the Switch shows them.

Updating

  • DroidPlay for Windows, from 0.5.1 or later: press Update when DroidPlay offers this release, or Update to 0.8.0 in Settings › Updates.
  • From 0.5.0: close DroidPlay, open it again from the Start menu, then Update. Or download DroidPlay-Setup-0.8.0.exe below and run it.
  • Games you've already built: build them again (Build and install). Their shaders are translated again this time (see the note above), then it's quick again.
  • The first start of a game after updating is slower while the phone builds its pipelines: the first picture can take 30–40 seconds instead of under 15. Ocarina of Time's first view of Kokiri also stalls for about 10 seconds.

The droidplay-core-0.8.0 archives and Install DroidPlay.cmd below are for older installers and building from source; you don't need them. (The droidnative-0.8.0 archives are the same files under the old name.)

Known problems

  • Ocarina of Time (Switch 2):
    • Frame rate: 9–18 fps, under half its 60 fps target. That's 13–18 on Snapdragon 8 Elite, about 12 on Xclipse and about 9 on Mali; the CPU's work per draw is the limit.
    • Foliage: grass and ferns drawn by mesh shaders are missing.
    • Water: shows pale, flat patches on Snapdragon.
    • Older Snapdragons on the phone's own driver (8 Gen 2 and older): the driver can't build the shaders that read the game's memory, so characters and water are dark. A Turnip driver works around it; a fix is in progress.
    • Memory: on a 12 GB phone the game is close to Android's limits, about 10.4 GB at Saria's scene on a Galaxy Z Fold 8. Close other apps first.
  • Mario Kart World (Switch 2): 2–5 fps in 3D on Snapdragon (the replay's CPU time); the track is untextured and roadside bushes are missing.
  • Frostpunk on a Moto Razr Plus 2023 (Adreno 730): the Generator and buildings are invisible on Qualcomm's own driver (the same driver limit); they draw with a Turnip driver.
  • Super Smash Bros. Ultimate: thin seam lines cross "SUPER" in the title logo.
  • Breath of the Wild on the Pixel 9 Pro XL: an orange speckle in some scenes.

Help and reports

Ask for help and report how a game runs in the DroidPlay Discord:

  • #help for a problem. On Windows, Copy report on the Builds page gives you the text to paste.
  • #compatibility for how a game runs.

Never share game files or keys.

DroidPlay Core is seedds/nxnative with an Android port, which began as RogelioLB/nxnative-android.

DroidPlay Core 0.7.6

Choose a tag to compare

@enjoyerofslop enjoyerofslop released this 11 Nov 16:37
67f0802

DroidPlay Core 0.7.6 is a point release with a new Playable game, fixes for problems players reported, and safer custom drivers:

  • Mario Kart 8 Deluxe is new and Playable (minor issues), at 60 fps, and now runs on Snapdragon phones too.
  • Fixes from your reports: builds that played sound over a black screen, Let's Go's Pokémon GO menu, Retroid controllers with swapped buttons, a touch stick too close to the edge, and FF Resonance's phone decode step.
  • Frostpunk draws its Generator and buildings on Samsung's Xclipse GPU.
  • Custom Vulkan drivers (such as Turnip) fall back to the phone's own driver instead of breaking the game.

Everything since 0.7.5 is below.

Important

Bring your own game. No game, keys, firmware or packed APK is part of this release or this repository. Dump the game and the keys from your own Switch; the app you build is for you only.

Games

  • Mario Kart 8 Deluxe: Playable – minor issues through the first 50cc race (the Mushroom Cup at Mario Kart Stadium). Two Grand Prix races at 60 fps on a Pixel 9 Pro XL, with sound and the save loading after a cold start, and races steered by hand on a Galaxy Z Fold 8. On Snapdragon phones every course load used to crash in Qualcomm's driver; now a OnePlus Pad 3 races at 60 fps, and a Moto Razr Plus 2023 at about 45 (its CPU is the limit).
  • Frostpunk: the Generator, buildings and props now draw on Samsung's Xclipse GPU (a Galaxy Z Flip 7, 29.5 fps), as on the Adreno 830, with no extra setting. If Frostpunk is already on your phone, build and install it again: the setting it needs is written when the game is installed. On a Moto Razr Plus 2023 (Adreno 730) Qualcomm's own driver still can't build them; with a Turnip driver they draw.
  • The Legend of Zelda: Skyward Sword HD: now plays from a new game, through the opening into Skyloft and Instructor Horwell's first lessons, at 60 fps on a Retroid Pocket 5, with saves and Continue: Playable – major issues (see Known problems).
  • The Legend of Zelda: Link's Awakening: played by hand from a new game on a OnePlus Pad 3, through Mabe Village to Toronbo Shores, with sound and saves; no crash.
  • Ocarina of Time (Switch 2): the game's upscaler network is replaced by a faster bilinear scale, which takes about a third off each frame's GPU time. Characters are still dark and it's still slow; the lighting and memory fixes come in 0.8.0.

Fixed

  • Builds that played sound over a black screen (#218, #248): when the shader split found shaders the game's profile didn't list, the Windows build packed the game with no shaders and said it had succeeded. Shaders a newer reader decodes and shaders from installed DLC are now accepted, as the Mac and iPhone build does, and any other mismatch stops the build with a message saying what to check.
  • Pokémon: Let's Go: Options › Open Pokémon GO Settings no longer closes the game (#220). The menu now searches for a phone until you back out, as on a Switch with no Pokémon GO paired.
  • Controllers with Nintendo-style labels (#247): Controls › Controller face buttons › By label maps A, B, X and Y by their letters, for controllers such as a Retroid Pocket in its Retro layout. By position (the default) is unchanged.
  • Touch controls: Controls › Touch control size and Touch control inset make the on-screen controls bigger or smaller and move the stick and buttons in from the screen's edges (#222).
  • FF Resonance's phone decode step no longer fails with an empty log (#228): the job on the phone had finished, but its last log line was lost as the app closed, so the build threw the good output away.
  • A shader that crashes the phone's driver at start-up no longer stops every start: the entry is skipped from the next start on, and two crashing starts in a row set the whole list aside.
  • After Android closes a game for memory and DroidPlay reopens it, the closed run's log is kept as log.prev.txt instead of being overwritten.
  • Depth and stencil textures the CPU reads back now come out in the Switch's layout (from DeathKhan).
  • The Android host builds with no compiler warnings.

Custom Vulkan drivers

For players who set DM_VK_DRIVER in env.txt to load a driver such as Turnip:

  • A driver that can't create the Vulkan device, or can't open the game's first window, is replaced by the phone's own driver in the same start, with a red line saying why.
  • If the driver crashes, the next start uses the phone's driver once, then tries the custom driver again. A crash elsewhere in the game doesn't count against the driver.
  • Phones without an Adreno GPU ignore the setting.

Updating

  • DroidPlay for Windows, from 0.5.1 or later: press Update when DroidPlay offers this release, or Update to 0.7.6 in Settings › Updates.
  • From 0.5.0: close DroidPlay, open it again from the Start menu, then Update. Or download DroidPlay-Setup-0.7.6.exe below and run it.
  • Games you've already built: build them again (Build and install) to get these fixes. Shaders aren't translated again, so it's quick.
  • The first start of a game on a Snapdragon phone may be slower: the phone compiles some of its shaders again.

The droidplay-core-0.7.6 archives and Install DroidPlay.cmd below are for older installers and building from source; you don't need them. (The droidnative-0.7.6 archives are the same files under the old name.)

Known problems

  • Ocarina of Time (Switch 2): characters render dark and it runs slowly. Both are being fixed for 0.8.0.
  • Mario Kart World (Switch 2): on Adreno 830 phones the GPU is lost a few seconds into the first 3D scene. Samsung's Xclipse reaches the drive, slowly.
  • Final Fantasy Resonance on Adreno 7xx (Ayn Odin 2, Moto Razr Plus 2023): the first field's flames are missing; the fix comes with 0.8.0's shader update.
  • Frostpunk on a Moto Razr Plus 2023 (Adreno 730): the Generator and buildings are invisible on Qualcomm's own driver.
  • Skyward Sword HD: in the first session after starting a new game, some objects in Skyloft can show as flat grey, green or magenta shapes; after restarting the game and choosing Continue they draw right. The fix is ready for the next release.
  • Link's Awakening: drawn too dark on Android (Mabe Village looks like night). The fix is ready for the next release.
  • Super Smash Bros. Ultimate: thin seam lines cross "SUPER" in the title logo.
  • Breath of the Wild on the Pixel 9 Pro XL: an orange speckle in some scenes.

Help and reports

Ask for help and report how a game runs in the DroidPlay Discord:

  • #help for a problem. On Windows, Copy report on the Builds page gives you the text to paste.
  • #compatibility for how a game runs.

Never share game files or keys.

DroidPlay Core is seedds/nxnative with an Android port, which began as RogelioLB/nxnative-android.

DroidPlay Core 0.7.5

Choose a tag to compare

@enjoyerofslop enjoyerofslop released this 11 Nov 05:38
90379f4

DroidPlay Core 0.7.5 is a point release with three more games moving up, Ocarina of Time's forest drawn for the first time, and a clearer Game Status:

  • Divinity: Original Sin 2 is now Playable (minor issues) through its first two fights, Breath of the Wild is Playable (major issues) onto the Great Plateau, and Brilliant Diamond is Playable on Adreno and Xclipse phones too.
  • Frostpunk's Generator, buildings and props now draw.
  • Ocarina of Time (Switch 2): Kokiri Forest draws, correctly lit, instead of a black screen.
  • Game Status splits Playable into minor issues and major issues.

Everything since 0.7.4 is below.

Important

Bring your own game. No game, keys, firmware or packed APK is part of this release or this repository. Dump the game and the keys from your own Switch; the app you build is for you only.

Game Status

The README's Game Status now splits Playable in two, each with conditions you can check:

  • Playable – minor issues: plays through a named stretch at or near its target frame rate, with only cosmetic problems.
  • Playable – major issues: plays through a named stretch, but slow, or with missing elements or other named problems.

Brilliant Diamond, Pokémon Shield, Let's Go, Persona 3 Portable and Divinity are Playable – minor issues; Breath of the Wild is Playable – major issues. The DroidPlay Discord's #compatibility tags follow the same tiers.

Games

  • Breath of the Wild: Playable – major issues from a new game, out of the Shrine of Resurrection onto the Great Plateau, at 30 fps on an Ayn Odin 2. Not yet played into combat.
  • Pokémon Brilliant Diamond: Playable on a Moto Razr Plus 2023 (Adreno 730) to Lake Verity's first battle, at 60 fps; Rowan's 3D introduction runs at 46–54 fps there for about half a minute.
  • Pokémon Shield: plays further: on a Retroid Pocket 5 through the Slumbering Weald's event, Wedgehurst and Route 2 into Professor Magnolia's house, and on a Galaxy Z Flip 7 through Hop's battle into the Weald.
  • Divinity: Original Sin 2: Playable – minor issues, through the first fight on the top deck and a second one below deck, at 30 fps on an Ayn Odin 2, and through the first fight on a Pixel 9 Pro XL (Mali). Saves now carry real dates, and Continue loads the newest one. Every save used to be dated 31 December 1969, so Continue could load an older save, and a quick save could replace another. The game asked the Switch's network clock for the time, which the host never answered.
  • Pokémon: Let's Go, Pikachu!: now plays past Route 1, through Viridian City and the rival's first battle, on a Pixel 9 Pro XL.
  • Frostpunk: the Generator, the buildings and the props now draw (In-game) on the Galaxy S25 Edge (Adreno 830). Not on every Snapdragon phone: the Adreno 730's driver in a Moto Razr Plus 2023 can't compile the shaders that draw them, so there they stay invisible. If Frostpunk is already on your phone, build and install it again: the setting that makes them draw is written when the game is installed.
  • Ocarina of Time (Switch 2): Kokiri Forest now draws, correctly exposed: the forest, fog, lanterns and Navi. Several fixes: compute shaders get their group counts (0.7.4), the upscaler's HDR input is stored on GPUs that can't write that format, Qualcomm's compiler no longer works under the game's flush-to-zero setting (which made the scene far too bright), and the game's own upscaler runs right on 64-lane GPUs. Characters are still dark and it runs at 2–3 fps; the lighting and speed come in 0.8.0.
  • Brilliant Diamond on the Galaxy Z Flip 7: now Playable – minor issues there too, through Lake Verity's first battle at 60 fps. Twinleaf's pond no longer shows a grid of white dashes: Samsung's Xclipse GPU can't filter some 16-bit textures, which are now made in a format it can.

Fixed

  • Super Mario Odyssey on Mali (Pixel 9 Pro XL): Cap Kingdom's ground no longer shows square blocks of the last frame, seen from above. Two of its vertex shaders compute the same position with the sums in another order, and Mali's compiler fused a different multiply into each, so a depth test failed by the last bits. Vertex shaders now keep the Switch GPU's separate multiply and add.
  • Point sprites get their size on Android, as on the Mac.
  • A Switch 2 game that asks the GPU how much memory its acceleration structures need gets an answer (from DeathKhan).
  • The audio recording debug switch writes each sound output to its own file.
  • Open Discord in DroidPlay for Windows, and the README, now use the server's permanent invite. The old invite stops working in December.

Updating

  • DroidPlay for Windows, from 0.5.1 or later: press Update when DroidPlay offers this release, or Update to 0.7.5 in Settings › Updates.
  • From 0.5.0: close DroidPlay, open it again from the Start menu, then Update. Or download DroidPlay-Setup-0.7.5.exe below and run it.
  • Games you've already built: build them again (Build and install) to get these fixes. For Frostpunk this is needed for the Generator to show. Shaders aren't translated again, so it's quick.
  • The first start of each game after updating is slower: the phone compiles its shaders once more (a new pipeline cache).

The droidplay-core-0.7.5 archives and Install DroidPlay.cmd below are for older installers and building from source; you don't need them. (The droidnative-0.7.5 archives are the same files under the old name.)

Known problems

  • Ocarina of Time (Switch 2): characters render dark, and it runs at 2–3 fps. Both are being fixed for 0.8.0.
  • Final Fantasy Resonance on the Odin 2: the first field's flames are still missing; the fix comes with 0.8.0's shader update.
  • Mario Kart World (Switch 2): the GPU is lost a few seconds into the first 3D scene.
  • Super Smash Bros. Ultimate: thin seam lines cross "SUPER" in the title logo.
  • Breath of the Wild on the Pixel 9 Pro XL: an orange speckle in some scenes.

Help and reports

Ask for help and report how a game runs in the DroidPlay Discord:

  • #help for a problem. On Windows, Copy report on the Builds page gives you the text to paste.
  • #compatibility for how a game runs.

Never share game files or keys.

DroidPlay Core is seedds/nxnative with an Android port, which began as RogelioLB/nxnative-android.

DroidPlay Core 0.7.4

Choose a tag to compare

@enjoyerofslop enjoyerofslop released this 11 Nov 02:26
5736949

DroidPlay Core 0.7.4 is a point release with a new game, two more games Playable, and fixes for game apps and older Qualcomm phones:

  • Persona 3 Portable is new, and Playable through the first battle at 60 fps, on Adreno and on Samsung's Xclipse.
  • Divinity: Original Sin 2, Pokémon Shield and Pokémon Brilliant Diamond are now Playable through their first fights.
  • Games hide the system bars, so Android's navigation no longer sits over the picture.
  • Mario Kart 8 Deluxe builds as a game app, with its DLC.

Everything since 0.7.3 is below.

Important

Bring your own game. No game, keys, firmware or packed APK is part of this release or this repository. Dump the game and the keys from your own Switch; the app you build is for you only.

New game

Persona 3 Portable is new, and Playable through the first battle (April 9's rooftop):

  • 60 fps (the Switch's own rate) on a Galaxy S25 Edge and a Galaxy Z Flip 7.
  • Played by hand from a new game, with saves, Continue and sound working.
  • It plays in Android's default handheld mode; no Console mode is needed.

Games

  • Divinity: Original Sin 2: Playable through the first combat, by hand from the cabin deck through the burning hold to the top deck's fight, won in turns at 30 fps on an Ayn Odin 2, with sound, saved and loaded again.
  • Pokémon Shield: Playable through the first battle on a Retroid Pocket 5, at 30 fps from a new game to Hop's battle, with saves and sound. It also plays on a Pixel 9 Pro XL (Mali) and a Galaxy Z Flip 7 (Xclipse).
  • Pokémon Brilliant Diamond: Playable through Lake Verity's first battle on a Pixel 9 Pro XL, at 60 fps from a new game, with saves and sound.
  • Pokémon: Let's Go, Pikachu! also plays on a Pixel 9 Pro XL and a Galaxy Z Flip 7.
  • Switch 2 compute shaders get their own group counts, as on the Mac. Ocarina of Time's fog no longer fills with invalid values, a step toward drawing its forest.
  • Final Fantasy Resonance on the Moto Razr Plus 2023 (Adreno 730): the GPU hangs in the first field are gone, and the field runs at 20 fps, up from 16. The phone's driver returned wrong values from one kind of GPU shuffle; DroidPlay now uses an equivalent one there.
  • Brilliant Diamond on GPUs without layered rendering (the Adreno 730): its picture draws again.
  • A runaway draw no longer hangs the GPU: a draw asking for more than 16 million copies is skipped and logged.
  • Clears of layered targets clear every layer (from DeathKhan's and shirai91's nx2android forks).

The app

  • The system bars stay hidden in a game. Android's navigation handle no longer sits over the picture, and an edge swipe shows the bars first instead of going back at once. Contributed by rynnyr-maomao.
  • Game apps (Build as an app):
    • Mario Kart 8 Deluxe builds, with the Booster Course Pass: its DLC goes beside the APK when it doesn't fit, and the translated shaders travel as one file, so a game with very many shaders no longer passes the APK's file limit. Reported by cplr (#169).
    • When a game app can't hold a game, the message now says which limit it hit.

Fixed

  • With DM_VK_STORAGE_UP=0, Ocarina of Time's title ran at 8 fps (a 0.7.3 regression).

Updating

  • DroidPlay for Windows, from 0.5.1 or later: press Update when DroidPlay offers this release, or Update to 0.7.4 in Settings › Updates.
  • From 0.5.0: close DroidPlay, open it again from the Start menu, then Update. Or download DroidPlay-Setup-0.7.4.exe below and run it.
  • Games you've already built: build them again (Build and install) to get these fixes. Shaders aren't translated again, so it's quick.

The droidplay-core-0.7.4 archives and Install DroidPlay.cmd below are for older installers and building from source; you don't need them. (The droidnative-0.7.4 archives are the same files under the old name.)

Known problems

  • Ocarina of Time (Switch 2): the Kokiri Forest is still black, and it runs at about 2 fps there. One cause, invalid values in the fog, is fixed in this release; the rest, and a large speed-up, are under way for 0.8.0.
  • Final Fantasy Resonance on the Odin 2: the first field's flames are still missing; the fix comes with 0.8.0's shader update.
  • Frostpunk on Android: the Generator, the buildings and the props are still invisible.
  • Breath of the Wild on the Pixel 9 Pro XL: an orange speckle in some scenes.
  • Super Smash Bros. Ultimate: thin seam lines cross "SUPER" in the title logo (since 0.7.3; cosmetic).
  • The first start of a game takes a minute or more while the phone prepares its shaders. A game app's first start on a phone with slow storage, like the Retroid Pocket 5, can take much longer for a game with very many shaders.

Help and reports

Ask for help and report how a game runs in the DroidPlay Discord:

  • #help for a problem. On Windows, Copy report on the Builds page gives you the text to paste.
  • #compatibility for how a game runs.

Never share game files or keys.

DroidPlay Core is seedds/nxnative with an Android port, which began as RogelioLB/nxnative-android.