sm64gs2pc 0.1.0

Convert Super Mario 64 GameShark codes to SM64 PC port patches
docs.rs failed to build sm64gs2pc-0.1.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: sm64gs2pc-1.0.5

Checks cargo-audit Dependabot Status

sm64gs2pc

logo

Convert Super Mario 64 GameShark codes to SM64 PC port patches

About

This tool converts GameShark cheat codes for Super Mario 64 into patches for PC ports of Super Mario 64, such as sm64-port and sm64ex.

Installing

  1. Install Rust
  2. Run cargo install --git https://github.com/sm64gs2pc/sm64gs2pc
    • On Unix, this installs to ~/.cargo/bin by default

Usage

sm64gs2pc --code <code> --name <name> > output.patch
  • --code <code> - Path to file with GameShark code to convert
  • --name <name> - Name of GameShark cheat

The output patch file can be applied to a PC port fork, but a base patch must be applied first.

Limitations

Certain types of codes are unsupported

Function patching

Codes that patch functions are unsupported, because compiler and CPU differences make function patching infeasible. This is unlikely to ever be supported.

GameShark button

Codes that use the GameShark (GS) button are unsupported, because it's not clear which key it should be, and how it should be handled with the different PC port forks. It's possible to add support after figuring this out, though.

Read-only data patching

Certain data is read-only in the PC ports, and can't be modified at runtime. One example is the player model, so color-changing hat codes unfortunately won't work. Any declarations with const or static have this problem. This might be possible to fix, but it's unclear how to get the memory addresses of these declarations from the decompilation repo.