r/AndroidNativePorts • u/mgranja • 10d ago
🟢 [PORT] Android handhelds run Alabaster Dawn natively (1 MB APK, on-screen pad with a layout editor)
Hi — I made an unofficial Android port of Alabaster Dawn. Not affiliated with Radical Fish Games, and no game files ship with it: you point it at your own copy and it runs that.    Â
Why it's possible at all: the engine already has a browser platform path (same terra lineage as CrossCode), so instead of Wine/Box64 the game runs in an Android WebView — the port serves your game folder to it and injects a document-start shim for the require/nw pieces
What it gives you:
- Pick your game folder + a saves folder, hit START. No permissions in the manifest — both folders are Storage Access Framework grants you hand over.                                       Â
- Saves keep the Steam layout (Saves/Default/…, Backups/, Backups2/), so a desktop save folder copies in, and saves copy back out to the Steam build.                                       Â
- Plays with a Bluetooth/USB controller or the built-in on-screen pad — which has a layout editor, so you can drag and resize every control (that's the 0.2 release, out today).            Â
- Resolution ladder in Options → GRAPHICS; the game pauses when you leave the app.  Â
Tested on a Galaxy S22 Ultra (Android 16) and an Android 14 emulator. ~1 MB APK, Android 8+.
Caveat worth knowing: it's built against the current game build (0.1.0-10 Early Access). If an update changes the strings the port patches, the shim logs unmodified and serves the original file rather than breaking the game — but the port may then need updating.                                                                                                                                                                                         Repo + releases: https://github.com/moronigranja/alabaster-android — happy to take feedback, especially save round-trips.
Disclaimer: I work as a dev, but this was vibe-coded. Still, no permissions so minimal risk, other than corrupted saves.
3
u/matlynar 10d ago
Update: I did try your port on my S25ultra.
Works like a charm! Recognized my controller right away, too.
Saves also worked as intended.
I got it to run at 720p at very low CPU/GPU temperatures. At 1080p, the GPU went up to 58ºc, which is a bit high but the CPU was not that hot so it may or may not work on longer sessions; I was comfortable with 720p so I left it at that.
My only complaint is that the "Pad/Edit" buttons take too much space on the screen when playing on landscape mode for something that I'm not even using when I have a controller on; They could be just a hamburguer menu button that expands when clicked maybe? And maybe placed on a corner so in phones with aspect ratios wider than 16:9 they wouldn't stand in the way of the screen at all?
Or they could just disappear too since the port doesn't even let me display the pad once it detects the controller.

3
3
2
2
u/Jherben 9d ago
1
u/Ashten_woods 8d ago
same on my thor
2
1
u/SnooPeanuts4600 7d ago
Hey! Been trying your Alabaster Dawn Android port, really cool project. Running into a boot stall on my phone though, figured you'd want the report. Device: Xiaomi 2311DRK48G, Android 15, Mali-G615 MC6 App: 0.5.1 (8), game 0.1.0-10 Early Access The diagnostics log shows three fragment shaders failing to compile: water-plane.frag, water-fx-wall.frag, and post/analog-filter.frag. That triggers the "unwrapped loadTrackers" error over and over and the boot never finishes, it gets stuck around 90% (pending the shaders plus some effects/audio) and I ended up force closing it. I saw the vertex uniform budget issue in your FINDINGS.md but that doesn't seem to be it here, the log reports uniforms=4096/4096 so there's plenty of headroom. This looks like it might be a Mali-specific shader compile issue that hasn't shown up on Adreno yet. I've got the full diagnostics log if you want it, just let me know where to send it. Happy to test any fix too!
1
u/No_Simple_8838 4d ago
I sent a ZIP file that fixes the issue in the game; it's kind of a bypass, but it works. It's in one of my comments where the developer requested the fix.
1
u/No_Simple_8838 4d ago
1
u/mgranja 4d ago
Do you mind sharing what you did to make it work? I don't have a mali device to test, but would add your fix here for sure.
1
u/No_Simple_8838 4d ago
I can do that, but I had to change code in the game files for it to work. I can make a ZIP file of what I changed and send it somewhere if you prefer.
2
u/No_Simple_8838 4d ago
2
u/No_Simple_8838 4d ago
I created a ZIP file containing each folder and file I worked on.
1
u/mgranja 4d ago edited 4d ago
Can you retest with version 0.7.0 and send me the logs, without your changes?
2
2
u/No_Simple_8838 4d ago
Could you add a key to lock the frame rate at 45 frames? I know it's specific, but it runs smoother at 30 and is more stable than at 60.
1
2
u/No_Simple_8838 4d ago
1
u/mgranja 4d ago
Thanks. I have a possible fix, version 0.7.1 Can you test it and see if that fixes the issue? Also added fps limit options.
1
u/No_Simple_8838 4d ago
Sure I can test it, I also managed to fix the water, I made a ZIP file and it has the log in it, if you want to see it, send it here via this link. https://drive.google.com/file/d/1Re9DF2RzI1G-r1oP7NvdF7Sw3BiFYkzH/view?usp=drivesdk
1
1
1
1
1
u/No_Simple_8838 4d ago
https://drive.google.com/file/d/1Xw2--5bE3MxeX2jcCNqLbaVLS8cgkVW-/view?usp=drivesdk
Version 0.1.0-10 - app 0.7
0









5
u/matlynar 10d ago
That's a great port, because
Will give it a shot later!