* Prepare for recomp update * Forgor recomp
ultralib
Reverse engineering of libultra
Compatibility
Currently this repo supports building the following versions:
| IDO / GCC | libultra.a / libgultra.a |
libultra_d.a / libgultra_d.a |
libultra_rom.a / libgultra_rom.a |
|---|---|---|---|
| 2.0E | ❌ / N/A | ❌ / N/A | ❌ / N/A |
| 2.0F | ❌ / N/A | ❌ / N/A | ❌ / N/A |
| 2.0G | ❌ / N/A | ❌ / N/A | ❌ / N/A |
| 2.0H | N/A / ❌ | N/A / ❌ | N/A / ❌ |
| 2.0I | ✔️ / ✔️ | ❌ / ✔️ | ✔️ / ✔️ |
| 2.0I_patch | ❌ / ❌ | ❌ / ❌ | ❌ / ❌ |
| 2.0J | ✔️ / ✔️ | ❌ / ✔️ | ✔️ / ✔️ |
| 2.0K | ✔️ / ✔️ | ❌ / ✔️ | ✔️ / ✔️ |
| 2.0L | ✔️ / ✔️ | ❌ / ✔️ | ✔️ / ✔️ |
| ique_v1.5 | ❌ | ❌ | ❌ |
Preparation
After cloning the repo, put a copy of the target archive(s) in their correct version folder in base/.
For example, if your target archive is libgultra_rom.a 2.0L then you'd place it in base/L/.
If you will be building without a target archive by setting NON_MATCHING then you can skip this step.
Build dependencies
The build process requires the following packages:
- build-essential
- python3
- binutils-mips-linux-gnu (libultra* only)
Under Debian / Ubunutu you can install them with the following commands:
sudo apt update
sudo apt install build-essential python3
If building any libultra you can install binutils-mips-linux-gnu with:
sudo apt install binutils-mips-linux-gnu
Building
Run make setup with the proper flags set followed by make with optional jobs. For example, if building the 2.0L PC archive you'd do the following:
make VERSION=L TARGET=libgultra_rom setupmake VERSION=L TARGET=libgultra_rom
Every target flag combination requires separate a setup command.
If building without a target archive using NON_MATCHING then you can skip the setup command.