Libultra Boot Parameters
Parameters set by the SA before booting a game. BB's modified libultra uses these values at runtime.
Used by both N64 and BB
Address | Size | Description | Note |
---|---|---|---|
0x800001a0 | 4 | leoBootID | |
0x80000300 | 4 | osTvType | 0: NTSC, 1: PAL, 2: MPAL |
0x80000304 | 4 | osRomType | Determines if cartridge boot, or 64DD boot |
0x80000308 | 4 | osRomBase | Base uncached address of cartridge (PI) region |
0x8000030c | 4 | osResetType | Whether the system was cold-booted (0) or warm-resetted NMI (1). On iQue, this may be fixed one way or the another because all games are soft-booted. |
0x80000310 | 4 | osCicId | Contains result of PIF<>CIC interaction. Value on iQue is not yet known. Rareware games like to check this value. Depending on the CIC it may have the decimal number of CIC used, such as 0x17D9 (6105) |
0x80000314 | 4 | osVersion | Some version info created in N64 boot process. Unknown on iQue. |
0x80000318 | 4 | osMemSize | Contains number of bytes of physical memory installed. Games that check for expansion pak look at this value. |
0x8000031c | 64 | osAppNMIBuffer | Buffer where application can put persistent information that is guaranteed not to be disturbed by a warm reset. Unknown behavior on iQue. |
Used only by BB
Address | Size | Description | Note |
---|---|---|---|
0x8000035c | 4 | __osBbEepromAddress | |
0x80000360 | 4 | __osBbEepromSize | |
0x80000364 | 4 | __osBbFlashAddress | |
0x80000368 | 4 | __osBbFlashSize | |
0x8000036c | 4 | __osBbSramAddress | |
0x80000370 | 4 | __osBbSramSize | |
0x80000374 | 16 | __osBbPakAddress | Array of 4 u32 pointers |
0x80000384 | 4 | __osBbPakSize | |
0x80000388 | 4 | __osBbIsBb | Can be used to determine if running on vanilla N64, or BB. 0: if (*0xa430003c & 0x140)!=0 |
0x8000038c | 4 | __osBbHackFlags | |
0x80000390 | 4 | __osBbStashMagic | |
0x80000394 | 16 | __osBbPakBindings | Array of 4 u32 pointers |
0x800003a4 | 4 | __osBbStateName | |
0x800003b4 | 4 | __osBbStateDirty | |
0x800003b8 | 4 | __osBbAuxDataLimit |