Repository navigation
0.15.2
This release adds an FPS counter and speeds up the 32-bit Android build (Issue #54).
- SHOW FPS: OPTIONS > VIDEO > SHOW FPS (off by default) puts a small counter in the top-right corner. It moves out of the way of the HUD, the touch buttons and the other overlays.
FPS: the frames shown each second.EMU: the game's frames run each second.MSandMAX: how long the game takes per frame, the average and the worst of the last second. The game needs 16.7 ms or less per frame for full speed.- An orange
INTERPRETERline if the game is not running its recompiled code. - The counter is drawn over the window only, never into the game's picture.
- If the game lags for you, these numbers in a GitHub issue make it much easier to find out why.
- 32-bit Android (armeabi-v7a): older 32-bit ARM processors have no divide instruction, so each division is done in software. The game was doing about 9,000 of them every frame: its timing math, and the lookup of the next block of recompiled code. Both now avoid division on 32-bit devices. On a slow phone that should save roughly 0.3–0.7 ms per frame; this is an estimate, as no 32-bit phone was available for testing.
- The 64-bit builds are unchanged.
- If your phone's processor is 64-bit, as most from the last several years are even on older Android versions, the usual
-android.apkis faster than the armeabi-v7a one. - What else to try on a slow phone: docs/PERFORMANCE_ANDROID.md.
- The game plays exactly as before.
Validation:
- Windows: all 115 CTest cases pass. New tests:
- the counter stays in its box at four window sizes and two menu sizes, and the game's picture is identical with it on and off;
- the division replacement gives the same result as plain division on about 230,000 values for each divisor.
- Lockstep: all 33 sweep runs with random input are bit-identical.
- armeabi-v7a: the build was checked to have no library divide calls left in the timing and dispatch code.
- macOS (M1): all 112 CTest cases pass and lockstep is bit-identical on arm64.
- Linux: all 112 Linux CTest cases pass.
- Packages: the packaged Windows and Linux builds pass the startup tests.
- Android: the APKs have not been tested on a device for this release.
Downloads: the Windows x64 zip, the Linux x64 tar.gz, the macOS arm64 zip, the iOS .ipa, and two Android APKs: arm64-v8a/x86_64 (the usual one) and armeabi-v7a (32-bit ARM). Both APKs use version code 41 and the same signing certificate as 0.15.1, so they update in place.
You must supply your own Knuckles' Chaotix (Japan, USA) ROM. No ROM image or game assets are included.