Changes
-
Less work per race frame (#176). The game's main thread decides how fast a race can run, and it now does less of the port's own work each frame:
- memory accesses that went through slower checked paths now go straight to memory;
- thread bookkeeping and housekeeping checks are cheaper;
- per-draw timing reads the clock less often.
On an AYN Thor (Snapdragon 8 Gen 2), measured in the same race:
0.10.11 0.10.12 Frame without drawing ~10.9 ms ~9.5 ms (−13%) Frame with drawing ~16.6 ms ~16.1 ms Frames the race had to skip 720–840 per race 65–213 per race - On Windows: frames without drawing went from about 7.0 to 6.0 ms.
- For phones: the margin before a phone falls behind is larger. That helps most on phones that slow down when they get hot. It isn't a cure for heavy thermal throttling.
-
Diagnostics: the
HOST_THREADSline ingame.log(where a race's frame time goes) now appears on Windows too.
Everything else is the same as v0.10.11.
Validation
- Windows x64 package:
- Vulkan, with the validation layer: a whole race, no validation errors, all 455 pipelines, no untranslatable code.
- D3D12: a whole race, no untranslatable code.
- macOS (M1), this release's package: a whole Dolphin Resort race at full speed (1.00), all 455 pipelines, no errors.
- AYN Thor, this release's APK: Dolphin Resort at full speed (0.999, 60 fps), all 455 pipelines prepared; 162 skipped frames, against 372 for 0.10.11 in the same check. Before release, nine more races of the change also all finished at full speed.
- Unit tests: 158 passed on Linux, 165 on Windows, including new checks that the faster memory paths give the same results as the old ones. GitHub Actions builds and tests passed on Windows, Linux, macOS and Android.
- Not tested: a Pixel or another phone that throttles. A
game.logwith Test options › Frame timing on would show the difference there.
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: 60. 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). - iOS:
ios-arm64.ipa, to install with your own sideloading tool. - Online server:
docker pull ghcr.io/yuutatsubasa/free-riders-server:0.10.12 - 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.6.