Files
ARMSX2/platforms/android
jpolo1224 785e4f5343 Android: let the resolved config decide fast boot; park the extra button above the D-pad
runVMThread forced boot_params.fast_boot from a raw base-layer read whose fallback
was FALSE, while Settings.kt's enableFastBoot and VMManager::SetDefaultSettings both
default it TRUE. Whenever the key was not yet in settings.ini -- notably right after
an update, before the Kotlin settings have been pushed down -- the app showed
"Skip BIOS: on" and full-booted into the BIOS browser anyway; toggling the switch
off and on wrote the key and appeared to fix it. Reading only the base layer also
discarded any per-game Skip BIOS override.

Leave fast_boot unset instead. VMManager::Initialize already falls back to
EmuConfig.EnableFastBoot, which it reads late and deliberately so a game can
override it, and ApplySettings has run by then. Log the resolved value.

The extra analog button defaulted above the left stick; above the D-pad is where it
is actually wanted, in the gap between the shoulder column and the D-pad. Portrait
cannot mirror that -- the stick sits directly above the D-pad there and the whole
left column is taken -- so it parks just clear of the D-pad's right edge.
2026-08-05 01:20:19 -04:00
..

ARMSX2

PlayStation 2 Emulator for Android based on the work of PCSX2

App version

The Android app version is configured in app/build.gradle.kts under android.defaultConfig:

versionCode = providers.gradleProperty("armsx2.versionCode").orNull?.toInt() ?: 1088
versionName = providers.gradleProperty("armsx2.versionName").orNull ?: "2.5.8"

Change versionName to the user-facing release version and increment the integer versionCode for every published APK or AAB. Release scripts can still override these defaults with -Parmsx2.versionName=... and -Parmsx2.versionCode=....

Android APK builds

Release/test APKs should be built with the universal page-size builder:

./tools/build-universal-page-apk.sh ~/Downloads/ARMSX2-Refresh-UniversalPage.apk

The script compiles both 4K and 16K ARM64 emucore variants, packages them into one APK, signs it, and verifies 16K zip alignment. This keeps one distributable APK working correctly on both older 4K-page devices and newer 16K-page devices.