From bcbc9d040ba671df27183bff0b7356da3d9511f6 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Thu, 18 Jan 2018 15:19:31 -0600 Subject: finish adding all debug code --- src/engine/save_failed_screen.c | 192 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 188 insertions(+), 4 deletions(-) (limited to 'src/engine/save_failed_screen.c') diff --git a/src/engine/save_failed_screen.c b/src/engine/save_failed_screen.c index 74a1e9612..421cd0779 100644 --- a/src/engine/save_failed_screen.c +++ b/src/engine/save_failed_screen.c @@ -61,16 +61,18 @@ static const u8 sClockFrames[8][3] = static const u8 gSaveFailedClockPal[] = INCBIN_U8("graphics/misc/clock_small.gbapal"); static const u8 gSaveFailedClockGfx[] = INCBIN_U8("graphics/misc/clock_small.4bpp.lz"); +#define static + static void VBlankCB(void); static void CB2_SaveFailedScreen(void); static void CB2_WipeSave(void); -static void CB2_GameplayCannotBeContinued(void); +/*static*/ void CB2_GameplayCannotBeContinued(void); static void CB2_FadeAndReturnToTitleScreen(void); static void CB2_ReturnToTitleScreen(void); static void VBlankCB_UpdateClockGraphics(void); static bool8 VerifySectorWipe(u16 sector); static bool8 WipeSector(u16 sector); -static bool8 WipeSectors(u32 sectorBits); +/*static*/ bool8 WipeSectors(u32 sectorBits); void DoSaveFailedScreen(u8 saveType) { @@ -148,6 +150,151 @@ static void CB2_SaveFailedScreen(void) } } +#if DEBUG +__attribute__((naked)) +void CB2_WipeSave() +{ + asm( + " push {r4, r5, lr}\n" + " mov r4, #0x0\n" + " ldr r0, ._20\n" + " mov r2, #0x1\n" + " strh r2, [r0]\n" + " ldr r0, ._20 + 4\n" + " ldr r0, [r0]\n" + " ldr r1, ._20 + 8\n" + " cmp r0, #0\n" + " beq ._12 @cond_branch\n" + " str r2, [r1]\n" + "._12:\n" + " ldr r0, [r1]\n" + " cmp r0, #0\n" + " beq ._16 @cond_branch\n" + " add r5, r1, #0\n" + "._17:\n" + " ldr r0, [r5]\n" + " bl WipeSectors\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " bne ._14 @cond_branch\n" + " mov r0, #0x1\n" + " mov r1, #0xa\n" + " mov r2, #0x1c\n" + " mov r3, #0x13\n" + " bl Menu_DrawStdWindowFrame\n" + " ldr r0, ._20 + 12\n" + " mov r1, #0x2\n" + " mov r2, #0xb\n" + " bl Menu_PrintText\n" + " ldr r0, ._20 + 16\n" + " ldrb r0, [r0]\n" + " bl Save_WriteDataInternal\n" + " ldr r0, [r5]\n" + " cmp r0, #0\n" + " beq ._15 @cond_branch\n" + " mov r0, #0x1\n" + " mov r1, #0xa\n" + " mov r2, #0x1c\n" + " mov r3, #0x13\n" + " bl Menu_DrawStdWindowFrame\n" + " ldr r0, ._20 + 20\n" + " mov r1, #0x2\n" + " mov r2, #0xb\n" + " bl Menu_PrintText\n" + "._15:\n" + " add r0, r4, #1\n" + " lsl r0, r0, #0x18\n" + " lsr r4, r0, #0x18\n" + " ldr r0, [r5]\n" + " cmp r0, #0\n" + " beq ._16 @cond_branch\n" + " cmp r4, #0x2\n" + " bls ._17 @cond_branch\n" + "._16:\n" + " cmp r4, #0x3\n" + " bne ._18 @cond_branch\n" + " mov r0, #0x1\n" + " mov r1, #0xa\n" + " mov r2, #0x1c\n" + " mov r3, #0x13\n" + " bl Menu_DrawStdWindowFrame\n" + " ldr r0, ._20 + 24\n" + " mov r1, #0x2\n" + " mov r2, #0xb\n" + " bl Menu_PrintText\n" + " ldr r0, ._20 + 28\n" + " bl SetMainCallback2\n" + " b ._23\n" + "._21:\n" + " .align 2, 0\n" + "._20:\n" + " .word gSaveFailedClockInfo\n" + " .word gUnknown_Debug_03004BD0\n" + " .word gDamagedSaveSectors\n" + " .word gSystemText_CheckCompleteSaveAttempt\n" + " .word gSaveFailedType\n" + " .word gSystemText_SaveFailedBackupCheck\n" + " .word gSystemText_BackupDamagedGameContinue\n" + " .word CB2_FadeAndReturnToTitleScreen+1\n" + "._18:\n" + " mov r0, #0x1\n" + " mov r1, #0xa\n" + " mov r2, #0x1c\n" + " mov r3, #0x13\n" + " bl Menu_DrawStdWindowFrame\n" + " ldr r0, ._24\n" + " ldr r0, [r0]\n" + " cmp r0, #0\n" + " bne ._22 @cond_branch\n" + " ldr r0, ._24 + 4\n" + " mov r1, #0x2\n" + " mov r2, #0xb\n" + " bl Menu_PrintText\n" + " b ._23\n" + "._25:\n" + " .align 2, 0\n" + "._24:\n" + " .word gGameContinueCallback\n" + " .word gSystemText_SaveCompletedGameEnd\n" + "._14:\n" + " mov r0, #0x1\n" + " mov r1, #0xa\n" + " mov r2, #0x1c\n" + " mov r3, #0x13\n" + " bl Menu_DrawStdWindowFrame\n" + " ldr r0, ._27\n" + " mov r1, #0x2\n" + " mov r2, #0xb\n" + " bl Menu_PrintText\n" + " ldr r0, ._27 + 4\n" + " bl SetMainCallback2\n" + " b ._26\n" + "._28:\n" + " .align 2, 0\n" + "._27:\n" + " .word gSystemText_BackupDamagedGameContinue\n" + " .word CB2_GameplayCannotBeContinued+1\n" + "._22:\n" + " ldr r0, ._29\n" + " mov r1, #0x2\n" + " mov r2, #0xb\n" + " bl Menu_PrintText\n" + "._23:\n" + " ldr r0, ._29 + 4\n" + " bl SetMainCallback2\n" + "._26:\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "._30:\n" + " .align 2, 0\n" + "._29:\n" + " .word gSystemText_SaveCompletedPressA\n" + " .word CB2_FadeAndReturnToTitleScreen+1\n" + "\n" + ); +} +#else static void CB2_WipeSave(void) { u8 wipeTries = 0; @@ -198,8 +345,9 @@ static void CB2_WipeSave(void) SetMainCallback2(CB2_FadeAndReturnToTitleScreen); } +#endif -static void CB2_GameplayCannotBeContinued(void) +/*static*/ void CB2_GameplayCannotBeContinued(void) { gSaveFailedClockInfo[0] = FALSE; @@ -264,6 +412,41 @@ static void VBlankCB_UpdateClockGraphics(void) gSaveFailedClockInfo[1]--; } +#if DEBUG +__attribute__((naked)) +bool8 VerifySectorWipe(u16 sector) +{ + asm( + " push {lr}\n" + " lsl r0, r0, #0x10\n" + " lsr r0, r0, #0x10\n" + " ldr r2, ._50\n" + " mov r3, #0x80\n" + " lsl r3, r3, #0x5\n" + " mov r1, #0x0\n" + " bl gMysteryEventScriptCmdTableEnd+0x2d64\n" + " mov r0, #0x0\n" + " ldr r1, ._50 + 4\n" + "._49:\n" + " add r0, r0, #0x1\n" + " lsl r0, r0, #0x10\n" + " lsr r0, r0, #0x10\n" + " cmp r0, r1\n" + " bls ._49 @cond_branch\n" + " ldr r0, ._50 + 8\n" + " ldrb r0, [r0]\n" + " pop {r1}\n" + " bx r1\n" + "._51:\n" + " .align 2, 0\n" + "._50:\n" + " .word +0x2000000\n" + " .word 0x3ff\n" + " .word gUnknown_Debug_03004BD0\n" + "\n" + ); +} +#else static bool8 VerifySectorWipe(u16 sector) { u32 *ptr = (u32 *)&gSharedMem; @@ -277,6 +460,7 @@ static bool8 VerifySectorWipe(u16 sector) return FALSE; } +#endif static bool8 WipeSector(u16 sector) { @@ -294,7 +478,7 @@ static bool8 WipeSector(u16 sector) return failed; } -static bool8 WipeSectors(u32 sectorBits) +/*static*/ bool8 WipeSectors(u32 sectorBits) { u16 i; -- cgit v1.2.3 From 0f09d2e7046a54c95e2ed4a7ff759d4cd1db87f7 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Mon, 22 Jan 2018 22:35:27 -0600 Subject: fix false gMysteryEventScriptCmdTableEnd offsets --- src/engine/save_failed_screen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/engine/save_failed_screen.c') diff --git a/src/engine/save_failed_screen.c b/src/engine/save_failed_screen.c index 421cd0779..7902427e0 100644 --- a/src/engine/save_failed_screen.c +++ b/src/engine/save_failed_screen.c @@ -424,7 +424,7 @@ bool8 VerifySectorWipe(u16 sector) " mov r3, #0x80\n" " lsl r3, r3, #0x5\n" " mov r1, #0x0\n" - " bl gMysteryEventScriptCmdTableEnd+0x2d64\n" + " bl ReadFlash\n" " mov r0, #0x0\n" " ldr r1, ._50 + 4\n" "._49:\n" -- cgit v1.2.3 From fe400f60b6609d37d2b8a0c2aec75321adc3e95f Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sat, 27 Jan 2018 17:03:40 -0600 Subject: add comments for pool loads in C files --- src/engine/save_failed_screen.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'src/engine/save_failed_screen.c') diff --git a/src/engine/save_failed_screen.c b/src/engine/save_failed_screen.c index 7902427e0..49cf166d4 100644 --- a/src/engine/save_failed_screen.c +++ b/src/engine/save_failed_screen.c @@ -157,12 +157,12 @@ void CB2_WipeSave() asm( " push {r4, r5, lr}\n" " mov r4, #0x0\n" - " ldr r0, ._20\n" + " ldr r0, ._20 @ gSaveFailedClockInfo\n" " mov r2, #0x1\n" " strh r2, [r0]\n" - " ldr r0, ._20 + 4\n" + " ldr r0, ._20 + 4 @ gUnknown_Debug_03004BD0\n" " ldr r0, [r0]\n" - " ldr r1, ._20 + 8\n" + " ldr r1, ._20 + 8 @ gDamagedSaveSectors\n" " cmp r0, #0\n" " beq ._12 @cond_branch\n" " str r2, [r1]\n" @@ -182,11 +182,11 @@ void CB2_WipeSave() " mov r2, #0x1c\n" " mov r3, #0x13\n" " bl Menu_DrawStdWindowFrame\n" - " ldr r0, ._20 + 12\n" + " ldr r0, ._20 + 12 @ gSystemText_CheckCompleteSaveAttempt\n" " mov r1, #0x2\n" " mov r2, #0xb\n" " bl Menu_PrintText\n" - " ldr r0, ._20 + 16\n" + " ldr r0, ._20 + 16 @ gSaveFailedType\n" " ldrb r0, [r0]\n" " bl Save_WriteDataInternal\n" " ldr r0, [r5]\n" @@ -197,7 +197,7 @@ void CB2_WipeSave() " mov r2, #0x1c\n" " mov r3, #0x13\n" " bl Menu_DrawStdWindowFrame\n" - " ldr r0, ._20 + 20\n" + " ldr r0, ._20 + 20 @ gSystemText_SaveFailedBackupCheck\n" " mov r1, #0x2\n" " mov r2, #0xb\n" " bl Menu_PrintText\n" @@ -218,11 +218,11 @@ void CB2_WipeSave() " mov r2, #0x1c\n" " mov r3, #0x13\n" " bl Menu_DrawStdWindowFrame\n" - " ldr r0, ._20 + 24\n" + " ldr r0, ._20 + 24 @ gSystemText_BackupDamagedGameContinue\n" " mov r1, #0x2\n" " mov r2, #0xb\n" " bl Menu_PrintText\n" - " ldr r0, ._20 + 28\n" + " ldr r0, ._20 + 28 @ CB2_FadeAndReturnToTitleScreen\n" " bl SetMainCallback2\n" " b ._23\n" "._21:\n" @@ -242,11 +242,11 @@ void CB2_WipeSave() " mov r2, #0x1c\n" " mov r3, #0x13\n" " bl Menu_DrawStdWindowFrame\n" - " ldr r0, ._24\n" + " ldr r0, ._24 @ gGameContinueCallback\n" " ldr r0, [r0]\n" " cmp r0, #0\n" " bne ._22 @cond_branch\n" - " ldr r0, ._24 + 4\n" + " ldr r0, ._24 + 4 @ gSystemText_SaveCompletedGameEnd\n" " mov r1, #0x2\n" " mov r2, #0xb\n" " bl Menu_PrintText\n" @@ -262,11 +262,11 @@ void CB2_WipeSave() " mov r2, #0x1c\n" " mov r3, #0x13\n" " bl Menu_DrawStdWindowFrame\n" - " ldr r0, ._27\n" + " ldr r0, ._27 @ gSystemText_BackupDamagedGameContinue\n" " mov r1, #0x2\n" " mov r2, #0xb\n" " bl Menu_PrintText\n" - " ldr r0, ._27 + 4\n" + " ldr r0, ._27 + 4 @ CB2_GameplayCannotBeContinued\n" " bl SetMainCallback2\n" " b ._26\n" "._28:\n" @@ -275,12 +275,12 @@ void CB2_WipeSave() " .word gSystemText_BackupDamagedGameContinue\n" " .word CB2_GameplayCannotBeContinued+1\n" "._22:\n" - " ldr r0, ._29\n" + " ldr r0, ._29 @ gSystemText_SaveCompletedPressA\n" " mov r1, #0x2\n" " mov r2, #0xb\n" " bl Menu_PrintText\n" "._23:\n" - " ldr r0, ._29 + 4\n" + " ldr r0, ._29 + 4 @ CB2_FadeAndReturnToTitleScreen\n" " bl SetMainCallback2\n" "._26:\n" " pop {r4, r5}\n" @@ -420,20 +420,20 @@ bool8 VerifySectorWipe(u16 sector) " push {lr}\n" " lsl r0, r0, #0x10\n" " lsr r0, r0, #0x10\n" - " ldr r2, ._50\n" + " ldr r2, ._50 @ \n" " mov r3, #0x80\n" " lsl r3, r3, #0x5\n" " mov r1, #0x0\n" " bl ReadFlash\n" " mov r0, #0x0\n" - " ldr r1, ._50 + 4\n" + " ldr r1, ._50 + 4 @ \n" "._49:\n" " add r0, r0, #0x1\n" " lsl r0, r0, #0x10\n" " lsr r0, r0, #0x10\n" " cmp r0, r1\n" " bls ._49 @cond_branch\n" - " ldr r0, ._50 + 8\n" + " ldr r0, ._50 + 8 @ \n" " ldrb r0, [r0]\n" " pop {r1}\n" " bx r1\n" -- cgit v1.2.3