mirror of
https://github.com/zeldaret/mm.git
synced 2026-05-25 07:22:49 -04:00
+23
-23
@@ -269,9 +269,9 @@ void Fault_DrawCornerRec(u16 color) {
|
||||
|
||||
void Fault_PrintFReg(s32 idx, f32* value) {
|
||||
u32 raw = *(u32*)value;
|
||||
s32 v0 = ((raw & 0x7f800000) >> 0x17) - 0x7f;
|
||||
s32 v0 = ((raw & 0x7F800000) >> 0x17) - 0x7F;
|
||||
|
||||
if ((v0 >= -0x7e && v0 < 0x80) || raw == 0) {
|
||||
if ((v0 >= -0x7E && v0 < 0x80) || raw == 0) {
|
||||
FaultDrawer_Printf("F%02d:%14.7e ", idx, *value);
|
||||
} else {
|
||||
FaultDrawer_Printf("F%02d: %08x(16) ", idx, raw);
|
||||
@@ -320,7 +320,7 @@ void osSyncPrintfFPCR(u32 value) {
|
||||
|
||||
void Fault_PrintThreadContext(OSThread* t) {
|
||||
__OSThreadContext* ctx;
|
||||
s32 causeStrIdx = (s32)((((u32)t->context.cause >> 2) & 0x1f) << 0x10) >> 0x10;
|
||||
s32 causeStrIdx = (s32)((((u32)t->context.cause >> 2) & 0x1F) << 0x10) >> 0x10;
|
||||
if (causeStrIdx == 0x17) {
|
||||
causeStrIdx = 0x10;
|
||||
}
|
||||
@@ -383,11 +383,11 @@ void Fault_PrintThreadContext(OSThread* t) {
|
||||
|
||||
void osSyncPrintfThreadContext(OSThread* t) {
|
||||
__OSThreadContext* ctx;
|
||||
s32 causeStrIdx = (s32)((((u32)t->context.cause >> 2) & 0x1f) << 0x10) >> 0x10;
|
||||
s32 causeStrIdx = (s32)((((u32)t->context.cause >> 2) & 0x1F) << 0x10) >> 0x10;
|
||||
if (causeStrIdx == 0x17) {
|
||||
causeStrIdx = 0x10;
|
||||
}
|
||||
if (causeStrIdx == 0x1f) {
|
||||
if (causeStrIdx == 0x1F) {
|
||||
causeStrIdx = 0x11;
|
||||
}
|
||||
|
||||
@@ -416,29 +416,29 @@ void osSyncPrintfThreadContext(OSThread* t) {
|
||||
osSyncPrintfFReg(6, &ctx->fp6.f.f_even);
|
||||
osSyncPrintf("\n");
|
||||
osSyncPrintfFReg(8, &ctx->fp8.f.f_even);
|
||||
osSyncPrintfFReg(0xa, &ctx->fp10.f.f_even);
|
||||
osSyncPrintfFReg(10, &ctx->fp10.f.f_even);
|
||||
osSyncPrintf("\n");
|
||||
osSyncPrintfFReg(0xc, &ctx->fp12.f.f_even);
|
||||
osSyncPrintfFReg(0xe, &ctx->fp14.f.f_even);
|
||||
osSyncPrintfFReg(12, &ctx->fp12.f.f_even);
|
||||
osSyncPrintfFReg(14, &ctx->fp14.f.f_even);
|
||||
osSyncPrintf("\n");
|
||||
osSyncPrintfFReg(0x10, &ctx->fp16.f.f_even);
|
||||
osSyncPrintfFReg(0x12, &ctx->fp18.f.f_even);
|
||||
osSyncPrintfFReg(16, &ctx->fp16.f.f_even);
|
||||
osSyncPrintfFReg(18, &ctx->fp18.f.f_even);
|
||||
osSyncPrintf("\n");
|
||||
osSyncPrintfFReg(0x14, &ctx->fp20.f.f_even);
|
||||
osSyncPrintfFReg(0x16, &ctx->fp22.f.f_even);
|
||||
osSyncPrintfFReg(20, &ctx->fp20.f.f_even);
|
||||
osSyncPrintfFReg(22, &ctx->fp22.f.f_even);
|
||||
osSyncPrintf("\n");
|
||||
osSyncPrintfFReg(0x18, &ctx->fp24.f.f_even);
|
||||
osSyncPrintfFReg(0x1a, &ctx->fp26.f.f_even);
|
||||
osSyncPrintfFReg(24, &ctx->fp24.f.f_even);
|
||||
osSyncPrintfFReg(26, &ctx->fp26.f.f_even);
|
||||
osSyncPrintf("\n");
|
||||
osSyncPrintfFReg(0x1c, &ctx->fp28.f.f_even);
|
||||
osSyncPrintfFReg(0x1e, &ctx->fp30.f.f_even);
|
||||
osSyncPrintfFReg(28, &ctx->fp28.f.f_even);
|
||||
osSyncPrintfFReg(30, &ctx->fp30.f.f_even);
|
||||
osSyncPrintf("\n");
|
||||
}
|
||||
|
||||
OSThread* Fault_FindFaultedThread() {
|
||||
OSThread* iter = __osGetActiveQueue();
|
||||
while (iter->priority != -1) {
|
||||
if (iter->priority > 0 && iter->priority < 0x7f && (iter->flags & 3)) {
|
||||
if (iter->priority > 0 && iter->priority < 0x7F && (iter->flags & 3)) {
|
||||
return iter;
|
||||
}
|
||||
iter = iter->tlnext;
|
||||
@@ -459,7 +459,7 @@ void Fault_Wait5Seconds(void) {
|
||||
void Fault_WaitForButtonCombo(void) {
|
||||
Input* input = &sFaultContext->padInput[0];
|
||||
|
||||
FaultDrawer_SetForeColor(0xffff);
|
||||
FaultDrawer_SetForeColor(0xFFFF);
|
||||
FaultDrawer_SetBackColor(1);
|
||||
do {
|
||||
do {
|
||||
@@ -480,8 +480,8 @@ void Fault_DrawMemDumpPage(const char* title, u32* addr, u32 param_3) {
|
||||
if (alignedAddr < (u32*)0x80000000) {
|
||||
alignedAddr = (u32*)0x80000000;
|
||||
}
|
||||
if (alignedAddr > (u32*)0x807fff00) {
|
||||
alignedAddr = (u32*)0x807fff00;
|
||||
if (alignedAddr > (u32*)0x807FFF00) {
|
||||
alignedAddr = (u32*)0x807FFF00;
|
||||
}
|
||||
|
||||
alignedAddr = (u32*)((u32)alignedAddr & ~3);
|
||||
@@ -513,8 +513,8 @@ void Fault_DrawMemDump(u32 pc, u32 sp, u32 unk0, u32 unk1) {
|
||||
if (addr < 0x80000000) {
|
||||
addr = 0x80000000;
|
||||
}
|
||||
if (addr > 0x807fff00) {
|
||||
addr = 0x807fff00;
|
||||
if (addr > 0x807FFF00) {
|
||||
addr = 0x807FFF00;
|
||||
}
|
||||
|
||||
addr &= ~0xF;
|
||||
@@ -696,7 +696,7 @@ void Fault_ResumeThread(OSThread* t) {
|
||||
t->context.cause = 0;
|
||||
t->context.fpcsr = 0;
|
||||
t->context.pc += 4;
|
||||
*(u32*)t->context.pc = 0xd;
|
||||
*(u32*)t->context.pc = 0x0000000D; // write in a break instruction
|
||||
osWritebackDCache((void*)t->context.pc, 4);
|
||||
osInvalICache((void*)t->context.pc, 4);
|
||||
osStartThread(t);
|
||||
|
||||
Reference in New Issue
Block a user