Skip to main content

Tools to read/write data and scripts for Sonic Riders (GC) & mods on dolphin

Project description

RidersPyTools

Package designed to write scripts for Sonic Riders (GameCube) and Sonic Riders: Zero Gravity (Wii). Compatible with vanilla/all mods.

Still a MAJOR work in progress, but functional at a basic level for now.

Code style

We enforce the same standards as the Sonic Riders: Tournament Edition C++ codebase for Sonic Riders, aiming to be as close as possible in syntax to the existing decompilation.

In some cases, this isn't 100% possible, but it remains the goal, as this allows us to read code similarly between C++ and python, as well as provide a bridge for newer users learning to program to jump into the C++ side of things.

Other games may have different data structures and syntax, feel free to add/modify classes as needed to fit your game.

Some concepts:

Ways to get a player pointer: Instantiate a player object in Python:

player1 = Player(0) # Instantiates a pointer to player 1, based on the current game version detected.

Instantiate a player object starting at X address:

player1Vanilla = Player(0, 0x80609440) # Vanilla address
player1TE = Player(0, TE_PLAYER_PTR) # Some addresses are given identifiers for ease of use

Things you can do:

Read data:

print(player1.rings)

Compare data:

player1 = Player(0, 0x80609440)
if player1.rings > 0:
    print("You have at least one ring!")

Write data:

player1 = Player(0, 0x80609440)
player1.currentAir = 100000
player1.gearStats[int(player1.level)].boostSpeed = pSpeed(300.0)

Math operations:

player1 = Player(0, 0x80609440)
hundredRingDiff = 100 - int(player1.rings)
print(hundredRingDiff)

And you can integrate this into other scripts too!

We use hatchling to compile the builds. Build compilation instructions coming soon.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

riderspytools-0.0.1.tar.gz (26.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

riderspytools-0.0.1-py3-none-any.whl (23.1 kB view details)

Uploaded Python 3

File details

Details for the file riderspytools-0.0.1.tar.gz.

File metadata

  • Download URL: riderspytools-0.0.1.tar.gz
  • Upload date:
  • Size: 26.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for riderspytools-0.0.1.tar.gz
Algorithm Hash digest
SHA256 acd4bba65de20d3f0c5ac48448c1021e437655cef388ebe2d51d9df02139e557
MD5 3546727b14e8f9d870fddceaeb85c233
BLAKE2b-256 b60b5861cc154d73e9ad1de5b1586aa20232eadc480c15322b59874d7ed6bfe9

See more details on using hashes here.

Provenance

The following attestation bundles were made for riderspytools-0.0.1.tar.gz:

Publisher: python-publish.yml on KidWizardOfTheWeb/RidersPyTools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file riderspytools-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: riderspytools-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 23.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for riderspytools-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 847c856dad91c31a032efe64db02eeff428cda084d200e2193a790024810bbdf
MD5 d1eec24f8e2d9a7b7610fb8bbdaba339
BLAKE2b-256 bf662519545fc4559bd7c594b9c400403f228a84d3d3c43b8a2c05bb831703e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for riderspytools-0.0.1-py3-none-any.whl:

Publisher: python-publish.yml on KidWizardOfTheWeb/RidersPyTools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page