Commit Graph
57 Commits
Author SHA1 Message Date
izzy2lostandClaude Opus 5 68d8c74c33 TESTING ONLY: check the APK actually carries the game data
An APK missing any asset GameAssets.kt opens by name installs and launches
fine, then fails on the device during staging — which is how two of them
reached test builds already. Fail the job instead.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 18:44:28 -04:00
izzy2lostandClaude Opus 5 7122a674bf TESTING ONLY: add an Android-only CI workflow
GenerateBuilds runs on every push and builds six platforms, which is a long
wait when all you want is an APK to sideload. This builds ghostship.o2r and a
debug APK on its own, on demand or when something the APK contains changes.

Not for the upstream PR either — GenerateBuilds already has a build-android
job. This exists to shorten the device-test loop.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 18:44:28 -04:00
izzy2lostandClaude Opus 5 4d972fd9f7 Check the release APK carries the assets the launcher needs
An APK missing any asset GameAssets.kt opens by name installs and launches
fine, then fails on the device during staging — losing the game data to an
asset merge that had nothing to merge, or a source file to gitignore, both
left the build green. Fail the job instead of shipping it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 18:43:27 -04:00
izzy2lostandClaude Opus 5 a4fb8ee186 Android: extract the ROM on device
The player no longer needs a PC. LauncherActivity unpacks the bundled data,
takes a ROM through the document picker, checks it against the supported
SHA-1s, and runs Torch through JNI to produce sm64.o2r — about 27s on a
Pixel 10a. The archive is byte-identical to a host extraction.

GameExtractor gains a GenerateOTRTo() overload taking the two directories
explicitly: the launcher runs before SDL exists, so Ship::Context cannot
resolve a path yet.

The launcher runs in its own process and ends it once the archive is written.
Torch's Companion is deliberately never freed — every platform leaks it, and
its destructor does not survive being run — so ending the process is what
returns that memory before the game starts.

Unpacking the packaged data moves from the engine to the launcher, because
Torch needs config.yml and assets/ymls on disk before the game process starts,
not after. It is the same gamedata.zip from the same Gradle tasks, so the
packaging and the CI artifact are unchanged; AndroidUtils.cpp goes away.

Also adds mods and saves managers behind a button that appears while the
engine menu is open, and fixes edge-to-edge: with targetSdk 36 the system
ignores the old fullscreen flags, so the navigation bar was sitting on top of
the game.

Toolchain moves to NDK 30.0.15729638, SDK 36, Gradle 8.13, AGP 8.13.2 and the
Kotlin DSL, and builds arm64-v8a and armeabi-v7a. CMAKE_BUILD_TYPE=Release is
forced for every variant: the Android plugin builds the release variant as
RelWithDebInfo (-O2), but the root CMakeLists pins Release to -O1
-fno-strict-aliasing because the game's C code is miscompiled above that.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 18:43:16 -04:00
KiritoDv 49c5312a0f Fixed ios support 2026-07-16 09:27:42 -06:00
KiritoDv 03b8845bcf Android support added based on Waterdish work 2026-07-16 09:25:45 -06:00
KiritoDv 731726a243 Updated workflow name 2026-07-15 23:36:13 -06:00
KiritoDv 86d8edeb4b Added new target, iOS <3! 2026-07-15 23:26:09 -06:00
KiritoDv 2ecc952a92 Testing emscripten deploy 2026-07-13 00:54:48 -06:00
KiritoDv 98d4de0414 Fixed vulkan missing dlls 2026-07-12 21:48:41 -06:00
KiritoDv 37b77e3070 Bump LUS and fixed CI 2026-06-23 20:28:57 -06:00
KiritoDv be94177011 Moved websockets to use mbedtls 2026-06-01 09:49:59 -06:00
Tim Schneeberger cd087aeb34 Fix Switch support (#175) 2026-05-28 09:34:34 -06:00
Lywx bba649db00 Added vcpkg cache 2026-05-27 21:23:36 -06:00
KiritoDv 102e3018aa Implemented a future notification system 2026-05-27 17:41:01 -06:00
KiritoDv 3681d0447e Fixed windows dll 2026-05-26 17:52:42 -06:00
KiritoDv 04f80b58b1 Fixed missing scripting defines on switch and fixed main.yml 2026-05-26 17:14:02 -06:00
KiritoDv bd61251a35 Hopefully this fixes switch, streamed audio and tons of interpolation fixes 2026-05-26 11:44:22 -06:00
KiritoDv 6ff2c918c9 Tons of fixes among implementing custom audio support, oh yeah! powaaaaaaahhh 2026-05-25 17:55:32 -06:00
Lywx 1d178f0b6c Updated .tcc 2026-04-15 22:22:13 -06:00
Lywx 01516c783c Bump LUS and another attempt at fixing this 2026-04-15 20:40:03 -06:00
KiritoDv 15a7feba7a Added .tcc bundling 2026-04-15 19:04:43 -06:00
KiritoDv 6a2ff1f8eb Packaged .tcc folder 2026-04-15 18:32:59 -06:00
Lywx 8d12a267ef Attempt one at packing .tcc 2026-04-15 18:27:04 -06:00
Lywx 686e590894 Trying to fix CI 2026-04-15 17:49:14 -06:00