diff options
| author | cadmic <cadmic24@gmail.com> | 2024-09-06 11:02:08 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-07 03:02:08 +0900 |
| commit | a8151899cf69722fd5c3e30a665ef07b1fe38b1d (patch) | |
| tree | 9d6ea4035f84594fa017896684cc8c2fac5c1aee /src/code | |
| parent | d374e71cb83cef8f4b73679ffc55e13e665ec911 (diff) | |
[ntsc-1.2] Match z_actor_dlftbls.c (#2144)
* Match z_actor_dlftbls.c
* Update src/code/z_actor_dlftbls.c
Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
---------
Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
Diffstat (limited to 'src/code')
| -rw-r--r-- | src/code/fault_n64.c | 4 | ||||
| -rw-r--r-- | src/code/z_actor_dlftbls.c | 34 |
2 files changed, 33 insertions, 5 deletions
diff --git a/src/code/fault_n64.c b/src/code/fault_n64.c index 92fd0cc8d..2a4a423a6 100644 --- a/src/code/fault_n64.c +++ b/src/code/fault_n64.c @@ -93,7 +93,7 @@ FaultCursorCoords sFaultCursorPos; vs32 sFaultExit; vs32 gFaultMsgId; vs32 sFaultDisplayEnable; -OSThread* sFaultFaultedThread; +volatile OSThread* gFaultFaultedThread; s32 B_80122570[16]; s32 B_801225B0[8]; // Unused (file padding?) @@ -768,7 +768,7 @@ void Fault_ThreadEntry(void* arg0) { osSyncPrintf("FindFaultedThread()=%08x\n", faultedThread); } } while (faultedThread == NULL); - sFaultFaultedThread = faultedThread; + gFaultFaultedThread = faultedThread; Fault_LogThreadContext(faultedThread); osSyncPrintf("%d %s %d:%s = %d\n", osGetThreadId(NULL), "fault.c", 1454, "fault_display_enable", sFaultDisplayEnable); diff --git a/src/code/z_actor_dlftbls.c b/src/code/z_actor_dlftbls.c index 05e7e8d3f..6e1fdb97c 100644 --- a/src/code/z_actor_dlftbls.c +++ b/src/code/z_actor_dlftbls.c @@ -98,19 +98,47 @@ void ActorOverlayTable_LogPrint(void) { void ActorOverlayTable_FaultPrint(void* arg0, void* arg1) { ActorOverlay* overlayEntry; u32 overlaySize; + uintptr_t ramStart; + uintptr_t ramEnd; + u32 offset; +#if PLATFORM_N64 + uintptr_t pc = gFaultFaultedThread != NULL ? gFaultFaultedThread->context.pc : 0; + uintptr_t ra = gFaultFaultedThread != NULL ? gFaultFaultedThread->context.ra : 0; + u32 i; +#else s32 i; +#endif +#if PLATFORM_N64 + func_800AE1F8(); + + Fault_Printf("actor_dlftbls %u\n", gMaxActorId); + Fault_Printf("No. RamStart-RamEnd Offset\n"); +#else Fault_SetCharPad(-2, 0); Fault_Printf("actor_dlftbls %u\n", gMaxActorId); Fault_Printf("No. RamStart- RamEnd cn Name\n"); +#endif for (i = 0, overlayEntry = &gActorOverlayTable[0]; i < gMaxActorId; i++, overlayEntry++) { overlaySize = (uintptr_t)overlayEntry->vramEnd - (uintptr_t)overlayEntry->vramStart; - if (overlayEntry->loadedRamAddr != NULL) { - Fault_Printf("%3d %08x-%08x %3d %s\n", i, overlayEntry->loadedRamAddr, - (uintptr_t)overlayEntry->loadedRamAddr + overlaySize, overlayEntry->numLoaded, + ramStart = (uintptr_t)overlayEntry->loadedRamAddr; + ramEnd = ramStart + overlaySize; + offset = (uintptr_t)overlayEntry->vramStart - ramStart; + if (ramStart != 0) { +#if PLATFORM_N64 + Fault_Printf("%3d %08x-%08x %08x", i, ramStart, ramEnd, offset); + if (ramStart <= pc && pc < ramEnd) { + Fault_Printf(" PC:%08x", pc + offset); + } else if (ramStart <= ra && ra < ramEnd) { + Fault_Printf(" RA:%08x", ra + offset); + } + Fault_Printf("\n"); +#else + Fault_Printf("%3d %08x-%08x %3d %s\n", i, ramStart, ramEnd, overlayEntry->numLoaded, (OOT_DEBUG && overlayEntry->name != NULL) ? overlayEntry->name : ""); +#endif } } } |
