Changes
- Old Mali phones no longer freeze on the first frame (#169). On v0.10.3 a Mali-G72/G76 phone (such as the Huawei P30 Pro) prepared all pipelines, then the GPU hung on the first thing it drew and the whole phone froze.
- Every draw declared 20 vertex attributes, but these GPUs support only 16.
- Each vertex shader's inputs are now renumbered to the ones it actually reads (at most 14) on such GPUs.
- Other GPUs are unchanged.
- Phones with little CPU cores (#176). On a phone like the Pixel 10a, races ran in slow motion even at 360p.
- The game's helper threads probably ended up on the phone's slow little cores.
- Android now measures each core when the game starts and keeps the helper threads and the main thread off the little cores.
- game.log records the choice on a
CORE_PLANline.
- Kinect v2 (Xbox One Kinect) (#165, #97, #132):
- The launcher's motion page has a new Motion trace switch. It writes a detailed, numbers-only Kinect log into game.log (about 0.5 MB a race) for bug reports.
- A crouch-and-spring followed by a hop no longer counts as two jumps.
- Over a run of hops, the learnt standing height no longer creeps upward.
- GPUs without descriptor indexing (#134): the fallback renderer keeps its texture sets from frame to frame instead of rebuilding them. Writes per race frame dropped from about 12,600 to about 100.
Everything else is the same as v0.10.3.
Validation
- Old Mali, on Firebase Test Lab's Galaxy S9 (Mali-G72, Android 10): a new graphics test draws once with each of the game's 455 pipelines.
- With the fix, all 455 drew and read back correctly, also at 225% render scale.
- With the fix turned off, the first draw hung the GPU, as on the P30 Pro.
- A whole race on an old Mali phone is still untested, so reports are welcome.
- Little-core placement, on an AYN Thor: putting the helper threads on its little cores reproduced the Pixel log's cost of about 17 ms per undrawn frame. The new placement keeps the normal Thor at 60 fps. Untested on a real Tensor phone.
- Kinect v2: unit tests built from the reporter's numbers fail before the fixes and pass after. No Kinect v2 hardware was used.
- Fallback renderer, on an RTX 4090 with the path forced: whole races in both its full and its compact layout, with no validation errors and the same picture.
- Windows x64 package, Vulkan, with the validation layer: a whole race, no validation errors, all 455 pipelines, no untranslatable code.
- AYN Thor, this release's APK: Dolphin Resort at full speed (0.999, 60 fps), all 455 pipelines prepared; its
CORE_PLANline shows the helper and main threads on the big cores. - Unit tests: 152 passed on Linux. GitHub Actions builds and tests passed on Windows, Linux, macOS and Android.
Downloads
- Windows x64: download and extract the Windows ZIP; run
FreeRidersRecompiled.exe. - Linux x64: download and extract the Linux archive; run
FreeRidersRecompiled. - Android 10 or later: prefer
android10-arm64.apk. - Android 9: use
android-arm64.apk. - Android version code: 52. The companion licence archive applies to both APKs.
- macOS (Apple Silicon): download and extract the macOS ZIP; open
FreeRidersRecompiled.app(right-click › Open the first time). Races are still slow on a Mac. - iOS:
ios-arm64.ipa, to install with your own sideloading tool (untested on a device). - Checksums:
SHA256SUMS.txt.
Use your own game disc image. No game data, private saves or test overrides are included.
Known limitations
The same as v0.10.0.