psx-modding-toolchain | ||
.gitignore | ||
lectures.txt | ||
README.md |
CTR-ModSDK
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.
🏁 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.
Downloading the SDK
Clone this repository:
$ 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. - Building a mod requires installation of psx-modding-toolchain, please refer to the above section for its installation and usage.
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.
🤝 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.