Handheld performance and startup pipeline preparation
- Integrate the Windows timing fixes from #26, with additional synchronization and CPU-overhead improvements in #27. Game speed, audio clocks and the normal frame cap are unchanged.
- Prepare known graphics pipelines before the first game frame, with a progress screen and cancellation support. The bundled Vulkan list includes pipelines captured during Ally X gameplay, including the countdown/landing-effect cases investigated with this release.
- Learn additional pipelines during play and reuse their recipes on later launches. Keep
pipeline-cachewhen updating. Coverage is not exhaustive: a new course, character, item or effect can still introduce a compilation hitch. - Reduce repeated diagnostic, vertex-conversion and memory-check work. Android/Linux event signals now wake only waits for the affected object.
Ally X testing showed substantially fewer large compilation stalls; occasional small hitches remain. These results do not promise the same performance on every device.
Android: choose the appropriate APK
| Download | Support |
|---|---|
FreeRidersRecompiled-0.4.3-android10-arm64.apk
| Recommended for Android 10+; native TLS reduces CPU overhead |
FreeRidersRecompiled-0.4.3-android-arm64.apk
| Android 9+ compatibility build |
FreeRidersRecompiled-0.4.3-android-arm64-licenses.zip
| License notices for either Android APK |
Both APKs use version 0.4.3, version code 13, and the existing signing certificate. Install over your existing app; uninstalling is not necessary.
Android performance is still limited. On Pocket S2 Pro, a controlled Intro segment improved from about 25 to 28 movie updates/s. Actual 3D races remained around 14–16 FPS and still felt slow. This release does not resolve Android race performance, and the Intro result should not be extrapolated to gameplay or other hardware.
Desktop downloads and updating
- Windows x64 ZIP: Vulkan or D3D12; includes the D3D12 Agility runtime, shader tools, webcam models and ONNX Runtime. Real Kinect still requires its appropriate SDK.
- Linux x64 tar.gz: Vulkan. Camera motion inference is not enabled in this prebuilt package.
- Android camera motion inference is also not enabled in these APKs. Existing platform limitations for Kinect, 2P and VRM remain.
Extract the complete desktop archive into a fresh folder and use its included ABI 9 shaders.pack. Keep the pipeline manifest files and the Windows D3D12/, shader-tools/, pose/ folders and DLLs. Copy your existing settings.ini, save/ and pipeline-cache/ if needed. No game data, personal models, settings or saves are included.
Pipeline preparation uses this device's graphics driver. The first launch, a driver update, or a cleared cache may take longer. This feature retains every draw; it does not hide objects while a pipeline compiles.
Validation
- Final PR CI passed Windows, Linux, macOS build checks and Android launcher/camera probes.
- Local regression suites: 126 Windows C++ tests, 119 Linux C++ tests, and 267 Python tests (11 skipped).
- The extracted Windows archive passed startup on Vulkan and D3D12, including complete preparation of its bundled pipelines. The Linux archive passed startup under WSL Vulkan; this does not establish native Linux hardware performance.
- The exact extracted Windows runtime also reached 1P gameplay on Vulkan and D3D12: 11,500 presents per backend with fresh shader caches, audio enabled and the normal 60 FPS cap. Both runs ended at the intentional frame limit.
- Both Android native variants build successfully. Their APK metadata, signing certificate, 16 KB alignment, native-library bytes, shader pack and Vulkan manifest are verified. The Android 10+ release's native libraries and assets are byte-identical to the device-tested candidate; no Android 9 device was used.
- Portable synchronization tests passed repeated Windows and actual Android-device runs. Code review found no blocking issue.
This is a preview. You need your own USA/Europe Sonic Free Riders disc image.
PR #27 incorporates the work from PR #26. Changes since v0.4.2