Mario Kart Wii - Service Pack is an experimental, open-source, cross-platform mod for MKW aiming to provide a variety of features and improvements over the base game. More details on the website.
You need:
- devkitPPC (with the DEVKITPPC environment variable set)
- ninja (samurai also works)
- protoc
- Python 3
- pyjson5 (if installing from pip, the package is
json5
NOTpyjson5
) - pyelftools
- itanium_demangler
- protobuf (the Python package)
Compile the project by running build.py
:
./build.py
The out
directory will contain the generated binaries and assets.
If you are working on something please comment on the relevant issue (or open a new one if necessary).
The codebase uses both C and asm, C should be preferred for full function replacements and for any kind of complex logic. No assumption about the use of registers by C code should be made other than the ABI. If necessary asm wrappers can be employed to restore and backup volatile registers.
The codebase is automatically formatted using clang-format
(15), this will be checked by CI and must be run before merge.
If you need a unoptimised build with debugging information, use python3 build.py -- debug
.
-
Ghidra project (by far the most complete resource)
-
MKW decompilation (the most readable if it has what you need)
-
mkw-structures (if you still haven't found)
-
Tockdom Wiki (file format documentation)