Bussun provides a framework for writing custom code injections in Super Mario Galaxy 1. With this, you will be able to write code, compile code, link to existing functions and structures in the game and load the actual changes. Due to a lack of C++ headers, they are currently being borrowed from Petari.
Note: Bussun is currently work in progress. Use at your own risk.
Bussun provides C++ headers, symbols and sample C++ code files.
- PauseMenuNewButton.cpp: This is a sample file that adds a new button to the Pause Menu which restarts the stage.
- Util.cpp: Here, functions will be defined that can be used by any code added to the source/ folder.
- Petari: This is where the headers are being pulled from. They can be found in the include/ folder.
- ModifiedAssets: This is where files for the PauseMenuNewButton sample are kept.
- include: This is where headers unique to Bussun shall be kept.
Currently, the framework is very limited and cannot make new LiveActors, for example. Including this and making this just as capable as Syati is the goal.
In order to use this toolkit, you need to prepare some software and skills:
- The CodeWarrior PPC EABI C/C++ Compiler, preferrably application version 4.3.0.172. There is also a free version of that compiler, but you may have to modify the compiler options in the two build scripts.
- A build of the Kamek linker.
- Knowledge of C / C++ / PowerPC.
- Python 3.11 or newer.
Setup is easy. Put the CodeWarrior files (mwcceppc.exe, etc.) in CodeWarrior
and the Kamek files in Kamek
. Now, try to run the build scripts to check if they recognize the tools.
Provided you have all the requirements set up, building is very easy. To build a binary of your new custom code, run:
python build.py REGION
, where REGION is the game's target region to build for.
The following region targets exist:
- PAL: European/Australian releases
- USA: American releases
- JPN: Japanese releases
- KOR: Korean releases
The generated XML patches for Riivolution can be found in the main folder of the repo when built.