Outrun is a custom server for Sonic Runners, reverse engineered from the Sonic Runners Revival project.
- Implement all non debug endpoints as fulfilled by the original server
- Maintain speed throughout runtime
- Consume little resources for conservative deployment
Notable:
- Timed Mode
- Story Mode (Functional, in progress)
- Ring/Red Star Ring keeping
- Functional shop
- Character/Chao equipping
- Character leveling and progression
- Item/Chao roulette functionality (Functional, in progress)
Functional:
- Android and iOS support
- High score keeping
- Notifications (pending revamp)
- Ticker notices
- Small database size and memory footprint
- Low CPU usage
- Descriptive error reporting and handling
- Download and install Go 1.12 (project tested on Go 1.12.4)
- Download and install Git (for
go get
) - Set your GOPATH environment variable
- Open a terminal/command prompt
- Use
cd
(Windows, Linux/macOS) to navigate to a directory of choice - Run
go get github.com/fluofoxxo/outrun
and wait until the command line returns - Run
go build github.com/fluofoxxo/outrun
and wait until the build is complete - Run the produced executable (
outrun.exe
on Windows,outrun
on Linux/macOS)
Binary releases may be provided in more mature stages of the repository.
- Install dnSpy (dnSpy-netcore-win64.zip)
- Install 7-Zip
- Install ZipSigner on an Android device or emulator
- Open a Sonic Runners v2.0.3 APK file with 7-Zip
- Navigate to assets/bin/Data/Managed and extract all the DLL files to their own folder
- Open Assembly-CSharp.dll in dnSpy
- Open the class
NetBaseUtil
, and find the variablemActionServerUrlTable
- Edit every string in the
mActionServerUrlTable
array tohttp://<IP>:<PORT>/
where is replaced by the IP for your instance and is replaced by the port for your instance (Default: 9001) - Repeat step 7 for
mSecureActionServerUrlTable
- If you have an assets server, use its IP and port to replace the values in
mAssetURLTable
andmInformationURLTable
tohttp://<IP>:<PORT>/assets/
andhttp://<IP>:<PORT>/information/
respectively - Click File -> Save Module... and save the DLL file
- Drag the newly saved Assembly-CSharp.dll back into assets/bin/Data/Managed in 7-Zip, confirming to overwrite if asked
- Transfer the APK to an Android device and use ZipSigner to sign it
- Install the APK
Any pull requests deemed code improvements are strongly encouraged. Refactors may be merged into a different branch.
As of 1 September, 2019, an instance of this server named Palmbound is currently publicly accessible. App file downloads can be acquired by joining the Palmbound Download Discord server: https://discord.gg/eeQAe8R
Much thanks to:
- YPwn, whose closest point of online social contact I do not know, for creating and running the Sonic Runners Revival server upon which this project bases much of its code upon.
- @Sazpaimon for finding the encryption key I so desparately looked for but could not on my own.
- nacabaro (nacabaro#2138 on Discord) for traffic logging and the discovery of DaGuAr's asset archive.