ModSDK. (noun) A toolkit that allows you to create mods for Crash Team Racing (1999) in C.
This repository also houses an effort to fully decompile and reverse-engineer CTR in C.
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.
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.txtfile on what the mod does and how to use it.
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.
Are you interested in contributing? Have any experience in C programming language? You're welcome to join!
- 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.batand 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.

