Ghidra plugin with tools for Super Monkey Ball 2 reverse engineering.
- Ensure that OpenJDK 21 is installed correctly
- Download the plugin .zip from the releases page
- Move the .zip to
<Ghidra install dir>/Extensions/Ghidra/ - Start Ghidra, go to (
File > Install Extensions...), and enable the extension - Restart Ghidra, then open the decompilation in Code Browser and enable the extension when prompted
If you had a previous version of the plugin installed and the windows/hotkeys appear absent, for unknown reasons, you may need to remove .ghidra/ in your home directory and try again. File an issue if you run into this so it can be debugged further.
- Convert a Ghidra address to an address in GameCube memory
- Convert a Ghidra address to a location in a .dol/.rel file
- Convert an address in GameCube memory to a Ghidra address
SMB Address Conversion window: Window > SMB: Convert Address in CodeBrowser
Shift-G: Go to GameCube RAM address
You can also import a DOL/REL RAM address map. See locations-sample.json.
- Export symbol addresses
- SMB2PracticeMod / SMB2WorkshopMod format
- cube_code format
- Export complete C/C++ headers - much better than Ghidra's built-in support
- Ensure you have
JAVA_HOMEset to the path of your JDK 21 installation - Set
GHIDRA_INSTALL_DIRto your Ghidra install directory. This can be done in one of the following ways:- Windows: Running
set GHIDRA_INSTALL_DIR=<Absolute path to Ghidra without quotations> - macOS/Linux: Running
export GHIDRA_INSTALL_DIR=<Absolute path to Ghidra> - Using
-PGHIDRA_INSTALL_DIR=<Absolute path to Ghidra>when running Gradle - Adding
GHIDRA_INSTALL_DIRto your environment variables
- Windows: Running
- Run
.\gradlew.bat(Windows) or./gradlew(macOS/Linux) - You'll find the output .zip file inside
/dist
Thanks to CraftedCart for writing the initial version of this plugin.
