What is Libdragon IPL3?
trunkLibdragon IPL3 is an open-source bootcode required in each ROM to perform final hardware initializations (specifically RDRAM initialization and configuration) and load/run the main binary.
Key features include:
- ELF Loading: Searches for and loads an ELF file appended to the IPL3. Supports both 32-bit and 64-bit ELFs.
- Compression Support: Supports compressed ELFs where the ELF provides its own decompression function.
- High Performance: Boots large ELFs significantly faster than Nintendo's original IPL3.
- Flexibility: Supports ROMs of any size (even < 1 MiB) and does not require a header checksum.
- Reliability: Clears RDRAM before booting to ensure consistent behavior between emulators and real hardware.
- Entropy: Collects entropy during boot, providing a 32-bit random integer to the application.
- Development Mode: A version (
ipl3_dev.z64) exists with a pre-signed trampoline (no need to sign every change) and a debugging library for USB/emulator logging. - Compatibility: Works on iQue consoles and offers a
compatbuild for legacy build systems.