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
2024-01-21 17:31:22 -05:00
build progress 2023-04-29 13:36:47 -04:00
decompile Garage MenuBoxFuncPtr runs without crashing, still WIP 2024-01-21 17:31:22 -05:00
ghidra progress 2024-01-21 01:41:46 -05:00
include Garage MenuBoxFuncPtr runs without crashing, still WIP 2024-01-21 17:31:22 -05:00
mods VR progress 2024-01-16 23:48:39 -05:00
plugins Update plugin.py for compatibility with latest psx-modding-toolchain commit 2023-12-16 09:56:23 -04:00
rebuild_PC 1280x720 if 16x9 requested 2024-01-14 02:04:08 -05:00
rebuild_PS1 progress 2024-01-20 04:32:04 -05:00
symbols DATA symbol shifted 2024-01-11 22:28:43 -05:00
tools added budget_calc.py 2023-10-01 16:18:35 +03:00
.gitignore update gitignore 2023-04-30 22:25:20 -04:00
8bitnop.bin added these back 2023-05-14 16:42:24 -04:00
config.json refactor environment 2023-04-29 13:07:06 -04:00
decomp_progress.png added progress graph to readme 2023-12-10 16:02:36 +02:00
disc.json refactor environment 2023-04-29 13:07:06 -04:00
lectures.txt lectures 2022-11-12 15:18:21 -05:00
nop.s added these back 2023-05-14 16:42:24 -04: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.