Difference between revisions of "Libultra Boot Parameters"

From iQueBrew
Jump to navigation Jump to search
m (fix inverted condition)
 
Line 53: Line 53:
 
|-
 
|-
 
| 0x80000388 || 4 || __osBbIsBb || Can be used to determine if running on vanilla N64, or BB.<br>
 
| 0x80000388 || 4 || __osBbIsBb || Can be used to determine if running on vanilla N64, or BB.<br>
0: if (*0xa430003c & 0x140)!=0<br>
+
0: if (*0xa430003c & 0x140)==0<br>
1: if (*0xa430003c & 0x140)==0<br>
+
1: if (*0xa430003c & 0x140)!=0<br>
2: if ((*0xa430003c & 0x140)==0) && ((*0xa4600060) & 0xc0000000)!=0
+
2: if ((*0xa430003c & 0x140)!=0) && ((*0xa4600060) & 0xc0000000)!=0
 
|-
 
|-
 
| 0x8000038c || 4 || __osBbHackFlags  ||
 
| 0x8000038c || 4 || __osBbHackFlags  ||

Latest revision as of 11:12, 29 January 2020

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 not used on iQue, related to 64DD (which has codename Leo)
0x80000300 4 osTvType 0: PAL, 1: NTSC, 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).
Note that 6106 games will use the value 6104 (on N64).
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
1: if (*0xa430003c & 0x140)!=0
2: if ((*0xa430003c & 0x140)!=0) && ((*0xa4600060) & 0xc0000000)!=0

0x8000038c 4 __osBbHackFlags
0x80000390 4 __osBbStashMagic
0x80000394 16 __osBbPakBindings Array of 4 u32 pointers
0x800003a4 16 __osBbStateName
0x800003b4 4 __osBbStateDirty
0x800003b8 4 __osBbAuxDataLimit