Crash screen visual polish

This commit is contained in:
Fazana
2021-09-21 19:13:48 +01:00
parent efed7a1801
commit fba2fb8b27

View File

@@ -236,7 +236,8 @@ void draw_crash_context(OSThread *thread, s32 cause)
crash_screen_print_float_reg(30, 220, 30, &tc->fp30.f.f_even);
}
void draw_crash_log(UNUSED OSThread *thread, UNUSED s32 cause)
void draw_crash_log(void)
{
#if PUPPYPRINT_DEBUG
s32 i;
@@ -249,6 +250,8 @@ void draw_crash_log(UNUSED OSThread *thread, UNUSED s32 cause)
crash_screen_print(30, (LINE_HEIGHT)-(i*10), consoleLogTable[i]);
}
#undef LINE_HEIGHT
#else
crashPage++;
#endif
}
@@ -319,23 +322,19 @@ void draw_crash_screen(OSThread *thread)
updateBuffer = TRUE;
}
#if !PUPPYPRINT_DEBUG
if (crashPage == PAGE_LOG)
crashPage++;
#endif
if (crashPage >= PAGE_COUNT)
if (crashPage >= PAGE_COUNT && crashPage != 255)
crashPage = 0;
if (crashPage == 255)
crashPage = PAGE_COUNT-1;
if (updateBuffer)
{
crash_screen_print(15, 10, "Page:%d L/Z: Left R: Right", crashPage);
crash_screen_draw_rect(25, 8, 270, 12);
crash_screen_print(30, 10, "Page:%02d L/Z: Left R: Right", crashPage);
switch (crashPage)
{
case PAGE_CONTEXT: draw_crash_context(thread, cause); break;
case PAGE_LOG: draw_crash_log(thread, cause); break;
case PAGE_LOG: draw_crash_log(); break;
case PAGE_STACKTRACE: draw_stacktrace(thread, cause); break;
}
@@ -421,10 +420,7 @@ void crash_screen_init(void) {
gCrashScreen.width = SCREEN_WIDTH;
gCrashScreen.height = SCREEN_HEIGHT;
osCreateMesgQueue(&gCrashScreen.mesgQueue, &gCrashScreen.mesg, 1);
osCreateThread(&gCrashScreen.thread, 2, thread2_crash_screen, NULL,
(u8 *) gCrashScreen.stack + sizeof(gCrashScreen.stack),
OS_PRIORITY_APPMAX
);
osCreateThread(&gCrashScreen.thread, 2, thread2_crash_screen, NULL, (u8 *) gCrashScreen.stack + sizeof(gCrashScreen.stack), OS_PRIORITY_APPMAX);
osStartThread(&gCrashScreen.thread);
}