| zoinkity Level: 13 Posts: 7/27 EXP: 8319 For next: 1948 Since: 09-07-12 Since last post: 4.6 years Last activity: 4.5 years |
|
||
| Forsaken 64 and Debug Info Debug messages were output via 80002E50: A0=string, all other arguments are variables to fill the string's C-style arguments. 80002E50 has been nerfed, and many of the routines that call it are no longer linked. A good example is 80001E34, which output game info using strings from 80000460 (0x1060 in ROM). These values are taken from the ROM header or returned by the PIF, so it would have been called right after boot (likely externally via tools). (Notes: release = ROM+0xC MI Version flags: 000000FF io version 0000FF00 rac version 00FF0000 rdp version FF000000 rsp version osTvType = @80000300 returned by console; 0 for PAL, 1 for NTSC, 2 for MPAL osRomType = @80000304 0 for cart, 1 for disk osRomBase = @80000308 B0000000 for cart, A6000000 for IPL, etc. osResetType= @8000030C 0 on cold reset, 1 via NMI, 2 via false 'disk' reboot osVersion = @80000314 PIF version returned by the PIF osMemSize = @80000318 returned size of rdram ) "--N64info--\n" "Release Version %d.%d%c\n", release[0:3]/10, release[0:3]%10, release[3] if MI_Version == 0x01010101: "RCP Version 1.0\n" elif MI Version == 0x02020102: "RCP Version 2.0\n" else: "IO Version %d.0\n", MI_Version & 0xFF "RAC Version %d.0\n", (MI_Version>>8) & 0xFF "RDP Version %d.0\n", (MI_Version>>16) & 0xFF "RSP Version %d.0\n", (MI_Version>>24) & 0xFF "PIF Version %d\n", osVersion "DRAM size %dk\n", osMemSize / 0x400 if osTvType == 0: "Video Mode is PAL \n" elif osTvType == 1: "Video Mode is NTSC \n" else: "ERROR: Unknown Video Mode %d \n", osTvType "ROM base address of the game image is 0x%08x\n", osRomBase if osRomType == 0: "ROM type is cartridge \n" elif osRomType == 1: "Rom type is bulk media \n" else: "ERROR: Unknown ROM Type %d \n", osRomType if osResetType == 0: "Reset type is cold reset \n" elif osResetType == 1: "Reset type is NMI \n" else: "ERROR: Unknown Reset Type %d \n", osResetType |





