Difference between revisions of "Libultra Boot Parameters"
Jump to navigation
Jump to search
m |
|||
Line 52: | Line 52: | ||
| 0x80000384 || 4 || __osBbPakSize || | | 0x80000384 || 4 || __osBbPakSize || | ||
|- | |- | ||
− | | 0x80000388 || 4 || __osBbIsBb || Can be used to determine if running on vanilla N64, or BB. | + | | 0x80000388 || 4 || __osBbIsBb || Can be used to determine if running on vanilla N64, or BB.<br> |
− | 1 if (*0xa430003c & 0x140)==0 | + | 0: if (*0xa430003c & 0x140)!=0<br> |
− | 2 if ((*0xa430003c & 0x140)==0) && ((*0xa4600060) & 0xc0000000)!=0 | + | 1: if (*0xa430003c & 0x140)==0<br> |
+ | 2: if ((*0xa430003c & 0x140)==0) && ((*0xa4600060) & 0xc0000000)!=0 | ||
|- | |- | ||
| 0x8000038c || 4 || __osBbHackFlags || | | 0x8000038c || 4 || __osBbHackFlags || |
Revision as of 15:32, 6 May 2018
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. |
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 |