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.2.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.2-py3-none-any.whl (23.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: riderspytools-0.0.2.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.2.tar.gz
Algorithm Hash digest
SHA256 625afd099fc6c40735df8556a5677c472489897e03164e3e7b021bbd7d6c2e9a
MD5 043587cb17ea75283a9c141c6aa98373
BLAKE2b-256 c468841c7032a3f080db6930e8054003e6589607b78f25d3d0e6b2438b7f0149

See more details on using hashes here.

Provenance

The following attestation bundles were made for riderspytools-0.0.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: riderspytools-0.0.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 76b7809daab9d47e55a063182c02c3b4a99ab4cf19a2ab5e2c22e536efd2e46f
MD5 459a44dac95e039db4ddef15a6d723d7
BLAKE2b-256 768153e132d2fda3163fc19239a36f873045a94ab4e804b9fb428cb8815ef805

See more details on using hashes here.

Provenance

The following attestation bundles were made for riderspytools-0.0.2-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