Repository navigation
Releases: ZinexDa/sonic-r-android
Releases · ZinexDa/sonic-r-android
Release list
Sonic R Android v1.2.7 — Hotfix & Stability Update
Changes in v1.2.7:
- Character Selection Retention: Fixed an issue where returning to the character select screen reset Player 1 back to Sonic (Index 0). Unlocked and previously chosen characters (e.g. Knuckles) now remain selected across races.
- Single-Player Authentic Behavior: Completely restricted lap validation checks to active online multiplayer (
g_netSessionActive). Single-player modes (Grand Prix, Time Attack, Boss Duels such as the Tails Doll unlock race on Radical City, and Split-Screen) now run with 100% authentic 1997 game logic. - Netplay Lap Validation Tuning: Widened checkpoint detection ranges in multiplayer to ensure legitimate cuts and river shortcuts (e.g. Radical City start shortcut) register cleanly while still protecting public rooms from fraudulent lap skips.
- Multiplayer State Sync: Applied stability improvements to character slot states to prevent hybrid animation and character mismatch glitches.
Sonic R Android v1.2.6
What's Changed in v1.2.6
- Anti-Cheat Lap & Checkpoint Validation: Added strict sequential multi-checkpoint tracking and an 8.0-second minimum lap time threshold, eliminating start-line lap skipping exploits. Bogus lap claims are automatically rejected without desyncing.
- Split-Screen Rendering Fixed: Resolved the viewport and letterbox aspect ratio glitch in 2-player local split-screen mode.
- Launcher UI: Updated footer label to v1.2.6.
Sonic R Android v1.2.5
What's Changed in v1.2.5
- Full Balloon Mode Support in Netplay: Enabled multiplayer Balloon Mode with synchronized item spawning, proper lobby submode mapping, and 5-balloon collection victory conditions.
- Podium Results Inversion Fix: Corrected signed integer overflow in track progress calculations and disabled legacy camera packet writes, ensuring 1st place racers always stand atop the podium.
- Complete Ability & Character Synchronization: Unified model IDs, animation tables, and physics abilities across all peers, preventing hybrid move-set glitches (e.g. Sonic flying with Tails' aura).
- 3+ Player Room Stability: Allocated dynamic ephemeral loopback ports on the host sidecar, resolving UDP address collisions and enabling seamless 3- and 4-player multiplayer sessions.
- UI Polish: Updated launcher footer version label to reflect v1.2.5.
Sonic R Android v1.2.4
What's Changed in v1.2.4
- Full Character Selection Sync: Fixed packet ordering and included character IDs in JOIN_REQ and SLOT_ASSIGN, completely resolving hybrid move-set glitches and wrong sprite states.
- Mid-Race Stability: Prevented false returns to lobby during active races and hardened connection watchdogs to 60 seconds.
- Expanded Packet Buffer: Increased network ring buffer to 256 packets to eliminate micro-stutter packet drops over mobile VPNs.
- Host Race Continuity: Host sessions no longer auto-terminate if a remote player disconnects.
- Audio Fixes: Resolved the infinite looping SFX bug on Client/Player 2.
- Keep Screen Awake: Added FLAG_KEEP_SCREEN_ON to prevent device sleep and Wi-Fi throttling during races.
- Expanded Gamepad Support: Added community SDL2 mappings for GameSir controllers (X2, G4 Pro, T4, etc.).
Sonic R Android v1.2.3
Changes in v1.2.3
- Prevent Mid-Game Disconnects: Increased network silence timeout from 5s to 15s in host and client watchdogs to handle cellular / VPN packet latency without dropping connections.
- Fix Client Camera Divergence: Guarded smoothing divisors against non-positive values (divisor <= 0 -> divisor = 1) in BuildCameraView to prevent coordinate explosion and black screen center-dot bugs.
- Multiplayer Camera Initialization: Initialized all 4 player camera slots in InitRaceStart and ensured fovDetail = 0x20 in BuildChaseCamera.
Sonic R Android v1.2.2
Changes in v1.2.2
- Fixed multiplayer connection failures across mobile NAT / VPN networks.
- Added robust WebSocket datagram tunneling for single-port hub mode.
- Fixed client join startup race conditions and packet drops.
- Prevented socket port collisions (EADDRINUSE).
- Fixed analog stick and multi-touch test assertions.
Sonic R Android v1.2.1
What's New in v1.2.1
- Full 32-bit ARM Support (
armeabi-v7a): Sonic R now runs on older and budget 32-bit Android devices alongside 64-bit hardware. - Touch Controls Overhaul:
- Fixed a critical bug where holding the phone tilted the internal accelerometer, causing continuous reverse/brake input (
PAD_DOWN). - Fixed virtual joystick release latency: immediate zero-centering upon finger lift.
- Clean multi-touch handling with orphan touch recovery.
- Fixed a critical bug where holding the phone tilted the internal accelerometer, causing continuous reverse/brake input (
- Multiplayer Enhancements: Improved compatibility with single-port WebSocket datagram tunneling.
Which APK should I download?
SonicR-v1.2.1-universal.apk: Works on all Android devices (64-bit and 32-bit). Recommended!SonicR-v1.2.1-armeabi-v7a-32bit.apk: Smaller download tailored specifically for older 32-bit-only hardware.
Sonic R Android v1.2
What's New in v1.2
- Cross-Platform Netplay: Added full WebSocket datagram tunneling support to connect through single-port servers and strict NATs.
- Universal Gamepad Support: Plug-and-play support for all modern Bluetooth and USB controllers via
gamecontrollerdb.txt(Xbox, PlayStation, Switch Pro, and standard mobile gamepads). - Save & Settings Persistence: Fixed save path resolution and directory creation; settings (
SONICR.INF) and progress slots (SAVE/R01.SAV) now reliably persist across app restarts and force-stops. - Hardened Release: Production build with debugging disabled.
Credits & Acknowledgments
This project is built on top of the incredible Sonic R Decompilation by the upstream author. Huge respect and gratitude for their countless hours of reverse engineering that made this possible. Please support the original repository!
Sonic R Android v1.1.1 (Patch)
Sonic R Android v1.1.1 (Patch Release)
Music File Resolution & Playback Fixes
This patch release addresses issues where soundtrack playback failed due to filename format and directory casing discrepancies:
- Zero-Padded Track Number Support: Added
%02dtrack numbering alongside%dacross all audio format loaders (e.g.track02.ogg,Track02.mp3,TRACK02.SON). - Directory Casing: Resolved file lookup across both
music/andMUSIC/subdirectories on case-sensitive Android filesystems (fixing an issue where native SDL_mixer audio formats previously looked only in uppercaseMUSIC/). - Prefix Casing Variations: Added full support for lowercase, TitleCase, and uppercase prefixes (
track,Track,TRACK). - Preserved Format Hierarchy: Retains high-fidelity native audio priority:
.son(PCM) →.adx(CRI ADX) →.adp(AICA) →.ogg/.mp3/.flac/.wav.
Note
No Reinstallation Required: Users do NOT need to reinstall their game data! This update strictly fixes how the application locates and opens already-installed music files on your device storage.
Testing & Quality Assurance
- Automated Kotlin unit tests verifying candidate generation and priority ordering.
- Embedded startup test suite (
Music_TestTrackResolution) validating real-time file probe and load resolution on device.
Sonic R Android v1.1
Sonic R Android v1.1 — Virtual Joystick & Touch Input Fixes
This release replaces the static D-pad with a draggable virtual joystick and resolves two critical touch-input issues reported in v1.0.0.
What's New:
- Draggable Virtual Joystick:
- Unbounded Direction Tracking: Steering input continues unbroken no matter how far your thumb moves outside the visual base boundary.
- Draggable Thumb Knob: Responsive visual knob follows your thumb, smoothly clamped to the base perimeter with active glow and dynamic stem rendering.
- 8-Way Digital Quantization: Accurately maps touch angles into the 8-directional inputs expected by the Sonic R physics engine.
- Fixed D-pad Input Dropping:
- Resolved the bug where sliding outside the D-pad bounds stopped Sonic from steering or moving.
- Fixed Touch Bleeding Between Controls:
- Introduced per-touch control binding (
TouchBinding): dragging a finger from one button across another will never activate the second button.
- Introduced per-touch control binding (
- Synchronized UI Preview:
- Updated the Customize Controls editor in Settings to display the new virtual joystick base, deadzone ring, and centered thumb knob.
- Independent 7-control positioning and scale customization remains 100% functional.
Installation:
- Download and install
SonicR-release.apkon Android 5.0+ (ARM64 / x86_64). - Requires original retail PC game data files.