Skip to content

Moddable open source Sonic engine written in rust.

License

Notifications You must be signed in to change notification settings

monomadic/sonic-rs

Repository files navigation

Sonic-Rust

A sonic engine written in pure rust.

Reverse engineered Sonic, but building a new, entirely open, moddable engine instead of RSDK.

Goals

  • Pure rust Sonic implementation with fewest dependencies possible
  • Simpler modding / level editing through postprocessing assets
  • 8 bit alpha compositing (vs 1-bit on rsdk)
  • Run anywhere cargo builds (baseline software pixel framebuffer engine)
  • Emphasis on open formats, clear code, extensibility, and modding
  • Fastest, lowest resource open Sonic implementation ever

You'll need a retail sonic to extract the assets.

Why?

  • Learn how sonic was built and perhaps improve upon and extend its design.
  • A starting point for sonic modders or someone wanting to create a retro style game.
  • Research adapting older game architecture to rust.

Progress

  • RSDKv3
  • RSDKv4 archives
    • Unpacking
    • Decryption
    • Processing of assets (.bin -> .json)
      • GlobalConfig.bin
      • StageConfig.bin
      • Act.bin
  • RSDKv5
  • Basic game engine
    • Software Renderer (minifb)
    • Hardware Renderer (pixel)
    • Audio
  • Sonic 1
  • Sonic 2
  • Sonic CD

RSDK Extractor

Tested with following Data.rsdk files (md5 sum):

MD5                               Size      Origin
2881d2492be3ba5d3b6106cdbf82c3e5  38198396  Sonic the Hedgehog Classic apk v3.7.0

Here's some arweave txids:

Release     Arweave TXID
Sonic 1     nwwbTljMYHScY6fgbQkuNdH5127wAidBYrCH9w8dpAk
cargo run --package rsdk-extract -- <file>

Why?

Because for some reason Sonic reversers publish weird windows code and I don't really want to touch it with a 10 foot clownpole.

Installing / Playing

cargo run

Resources

About

Moddable open source Sonic engine written in rust.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages