github chasem-dev/sms-launcher android-pr-107-v12
Android ARM64 tester v12: remove extra background refresh wait

pre-release3 hours ago

ARM64 Android tester v12 replaces an avoidable extra refresh wait with a short cooperative background-work handoff. The v11 all-options-off device log showed roughly 11–13 ms average work but frequent 33–35 ms frames and background yields. CPU samples reached 3.15 GHz; higher clocks alone do not explain all drops. Faster-core placement and hints/headroom had not helped in the tester's comparisons.

An already-due frame used to wait for another retrace to let loading run. It now gives lower-priority SDK work a turn, returning when workers block/exit or at a scheduling checkpoint after a 1 ms budget. This preserves loader progress after movies. Uninterrupted native work can exceed that budget. Normal frame targets and priorities are unchanged. No new toggle; this fix is always active on Android.

Device comparison:

  1. Confirm 0.1.57-android-preview.12 / version code 15712 in the launcher footer.
  2. Set 60 FPS, resolution 1; keep Android performance hints, Request performance headroom, Match display refresh to game FPS, and Use performance CPU cores OFF. Enable Log performance timings; the overlay can remain off.
  3. Skip movies for steady gameplay testing. Use the same stationary plaza view, without recording, screenshots, touches or notifications during the sample. Check loading from title/save selection still completes.
  4. Return with Back and export the log before another Play overwrites it. SDK pacing now includes background avg/max wall time. Compare game/shown FPS and frame work against the previous build.

Validation: Android debug and optimized release builds passed; launcher host tests 228/228; 32/64-bit frame-rate checks passed. Host tests execute the actual Android-configured scheduler and frame-wait code without ROM, GPU or VI timer, covering progress, early return, deadline checkpoints, urgent work, IRQ state/guards and worker exit. The old full-retrace path stalls in that same regression fixture. APK preview/source strings, signature, ARM64-only packaging, 16 KiB ELF/APK alignment and absence of ROM/save/self-test payload verified.

No Android runtime/container/emulator test or benchmark was run, as requested. Physical-device loading and FPS improvement still need confirmation; no measured performance gain is claimed.

Install over v11 with the same development signing key to retain disc/save data. Uninstalling removes both; export saves first. Android 10+, ARM64, GLES 3.1+, controller; no game data bundled. Separate prerelease; no merge or desktop Stable/Beta changes.

Sources: launcher ebfae76a07bc460361c0f9bdd7a5537085b5d77c, game 33edfa6346a697761b49b7a000f8571072073f14. Both Android branches pushed; companion PRs #107 and chasem-dev/sms-pc-port#98.

SHA256: 6ad651f51d92c1e9e49e712f58ab0c4d39294e28e21734551e3c18c106469d03

Don't miss a new sms-launcher release

NewReleases is sending notifications on new releases.