ModSDK - a modding toolkit to create mods for Crash Team Racing in C. This repository also houses an effort to fully decompile and reverse-engineer CTR in C.
Go to file
Superstarxalien cced150f69
Some checks failed
Build main / check (push) Has been cancelled
brought back my rewrite of MM_Characters_MenuProc to WorkInProgress decomp folder
2024-11-18 18:21:56 -04:00
.github/workflows ci: produce online-server-windows artifacts (#120) 2024-05-19 11:34:55 -04:00
decompile brought back my rewrite of MM_Characters_MenuProc to WorkInProgress decomp folder 2024-11-18 18:21:56 -04:00
externals OnlineCTR v1020 (#194) 2024-11-02 10:08:06 -04:00
ghidra optimization 2024-10-14 23:03:14 -04:00
include OnlineCTR v1020 (#194) 2024-11-02 10:08:06 -04:00
mods OnlineCTR v1020 (#194) 2024-11-02 10:08:06 -04:00
plugins Update plugin.py for compatibility with latest psx-modding-toolchain commit 2023-12-16 09:56:23 -04:00
rebuild_PC pc online submodules 2024-05-19 11:53:44 -04:00
rebuild_PS1 progress 2024-07-06 18:25:24 -04:00
symbols script opcodes 603 2024-10-06 17:12:22 -04:00
tools OnlineCTR v1020 (#194) 2024-11-02 10:08:06 -04:00
.editorconfig rebuild_PC: move to cmake (adding submodule dependencies fallback) (#114) 2024-04-11 04:42:00 -07:00
.gitignore Launcher: automatic duckstation 2024-07-20 19:13:21 -03:00
.gitmodules Update updater 2024-07-18 00:08:26 -03:00
config.json fix: update config.json so newest version of toolchain doesn't crash 2024-01-31 15:58:02 -04:00
decomp_progress.png decomp_progress graph 2024-05-29 13:39:44 +03:00
disc.json refactor environment 2023-04-29 13:07:06 -04:00
flake.lock OnlineCTR: buildable server in linux & etc. (#119) 2024-05-18 17:22:45 -04:00
flake.nix OnlineCTR: buildable server in linux & etc. (#119) 2024-05-18 17:22:45 -04:00
lectures.txt lectures 2022-11-12 15:18:21 -05:00
README.md added progress graph to readme 2023-12-10 16:02:36 +02:00
structure.txt Update structure.txt 2023-05-21 11:37:39 -04:00

CTR-ModSDK

ModSDK. (noun) A toolkit that allows you to create mods for Crash Team Racing (1999) in C.

Contributors Discord Server

This repository also houses an effort to fully decompile and reverse-engineer CTR in C.

🏁 Modding CTR

Requirements

This SDK requires the installation of mateusfavarin's psx-modding-toolchain. You can check the repo's readme for instructions on the installation and additional documentation on its usage. All python and pip steps are mandatory.

Downloading the SDK

After setting up psx-modding-toolchain, clone this repository into the local directory psx-modding-toolchain/games:

$ git clone https://github.com/CTR-Tools/CTR-ModSDK.git
  • You can find example mods in our repo.
  • Each mod folder includes a readme.txt file on what the mod does and how to use it.

CTR-in-C

As mentioned earlier, this repository is also used for an attempt at decompiling the original CTR assembly into human-readable C code. Our decompilation targets non-matching code that still functions identically compared to the original code.

decompile progress

Decompile Overview

🤝 Contributing

Are you interested in contributing? Have any experience in C programming language? You're welcome to join!

How to rewrite functions:

  • Make sure you have cloned this repo and installed the requirements.
  • Choose a .c file from the ghidra folder. Each file represents a code section or category. All non-numbered .c files are parts of the main EXE while the numbered files are overlays.
  • Choose a function in that section to rewrite. Read the documentation comments on what the function does and what's the address.
  • Set up a compile folder for your rewritten function using psx-modding-toolchain. Please refer to the above section for its installation and usage.

* Build codenames:
common: All versions;
926: USA Retail;
1006: Japan Trial;
1020: Europe Retail;
1111: Japan Retail.

** Code region:
exe: main EXE;
221-233: Overlays (use the original .c filename number)

  • Run build.bat and choose "Compile", "Build ISO", then test the game.
  • After you've confirmed that it's functional, add your new function .c file to the decompile directory.
  • Feel free to make a pull request after everything is working!

If you have any questions, reach us out in our Discord server.