summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcamthesaxman <cameronghall@cox.net>2018-02-06 22:41:43 -0600
committercamthesaxman <cameronghall@cox.net>2018-02-06 22:41:43 -0600
commit843c7016bbfe4c3a0d93a74b17ec43da98f49b2d (patch)
tree9b8683ac8e6748ae048823a662c4683784431e54
parent4ddd59b4cae97d152b08c49516641fb176095882 (diff)
decompile debug code in reset_rtc_screen.c
-rw-r--r--include/rtc.h1
-rw-r--r--src/engine/reset_rtc_screen.c398
2 files changed, 90 insertions, 309 deletions
diff --git a/include/rtc.h b/include/rtc.h
index fdc5ad709..e117cf753 100644
--- a/include/rtc.h
+++ b/include/rtc.h
@@ -44,5 +44,6 @@ void RtcInitLocalTimeOffset(s32 hour, s32 minute);
void RtcCalcLocalTimeOffset(s32 days, s32 hours, s32 minutes, s32 seconds);
void CalcTimeDifference(struct Time *result, struct Time *t1, struct Time *t2);
u32 RtcGetMinuteCount(void);
+void debug_sub_8009894(u8 *);
#endif // GUARD_RTC_UTIL_H
diff --git a/src/engine/reset_rtc_screen.c b/src/engine/reset_rtc_screen.c
index 8b67f39a5..8c2c23569 100644
--- a/src/engine/reset_rtc_screen.c
+++ b/src/engine/reset_rtc_screen.c
@@ -5,6 +5,7 @@
#include "palette.h"
#include "rtc.h"
#include "save.h"
+#include "script.h"
#include "sprite.h"
#include "constants/songs.h"
#include "sound.h"
@@ -147,13 +148,6 @@ const struct SpriteTemplate gSpriteTemplate_83764E8 =
const u8 gUnknown_08376500[] = _(" : ");
-#if DEBUG
-const u8 gUnknown_Debug_0839AE94[] = _("にっすう");
-const u8 gUnknown_Debug_0839AE99[] = _("じかん");
-const u8 gUnknown_Debug_0839AE9D[] = _("ゲームない じかん");
-const u8 gUnknown_Debug_0839AEA7[] = _("RTC じかん");
-#endif
-
void SpriteCB_ResetRtcCusor0(struct Sprite *sprite)
{
int state = gTasks[sprite->data[0]].data[2];
@@ -576,6 +570,7 @@ void Task_ResetRtcScreen(u8 taskId)
PlaySE(SE_BOO);
}
data[0] = 5;
+ // fall through
case 5:
if (gMain.newKeys & A_BUTTON)
{
@@ -586,6 +581,7 @@ void Task_ResetRtcScreen(u8 taskId)
{
break;
}
+ // fall through
case 6:
if (!gPaletteFade.active)
{
@@ -596,317 +592,101 @@ void Task_ResetRtcScreen(u8 taskId)
}
#if DEBUG
-
-__attribute__((naked))
void debug_sub_806F8F8(void)
{
- asm("\
- push {lr}\n\
- ldr r0, ._131 @ CB2_InitResetRtcScreen\n\
- bl SetMainCallback2\n\
- pop {r0}\n\
- bx r0\n\
-._132:\n\
- .align 2, 0\n\
-._131:\n\
- .word CB2_InitResetRtcScreen+1");
+ SetMainCallback2(CB2_InitResetRtcScreen);
}
-__attribute__((naked))
-void debug_sub_806F908(u8 a)
-{
- asm("\
- push {r4, r5, lr}\n\
- lsl r0, r0, #0x18\n\
- lsr r5, r0, #0x18\n\
- lsl r0, r5, #0x2\n\
- add r0, r0, r5\n\
- lsl r0, r0, #0x3\n\
- ldr r2, ._136 @ gTasks\n\
- add r4, r0, r2\n\
- mov r1, #0x0\n\
- ldsh r0, [r4, r1]\n\
- cmp r0, #0\n\
- beq ._133 @cond_branch\n\
- cmp r0, #0x1\n\
- beq ._134 @cond_branch\n\
- b ._141\n\
-._137:\n\
- .align 2, 0\n\
-._136:\n\
- .word gTasks+0x8\n\
-._133:\n\
- ldr r0, ._139 @ Task_ResetRtc_0\n\
- mov r1, #0x50\n\
- bl CreateTask\n\
- lsl r0, r0, #0x18\n\
- lsr r0, r0, #0x18\n\
- strh r0, [r4, #0x2]\n\
- ldrh r0, [r4]\n\
- add r0, r0, #0x1\n\
- strh r0, [r4]\n\
- b ._141\n\
-._140:\n\
- .align 2, 0\n\
-._139:\n\
- .word Task_ResetRtc_0+1\n\
-._134:\n\
- sub r2, r2, #0x8\n\
- mov r0, #0x2\n\
- ldsh r1, [r4, r0]\n\
- lsl r0, r1, #0x2\n\
- add r0, r0, r1\n\
- lsl r0, r0, #0x3\n\
- add r2, r0, r2\n\
- mov r1, #0x8\n\
- ldsh r0, [r2, r1]\n\
- cmp r0, #0\n\
- beq ._141 @cond_branch\n\
- mov r1, #0xa\n\
- ldsh r0, [r2, r1]\n\
- cmp r0, #0x1\n\
- bne ._142 @cond_branch\n\
- ldr r3, ._143 @ gLocalTime\n\
- mov r1, #0x0\n\
- ldsh r0, [r3, r1]\n\
- mov r1, #0x2\n\
- ldsb r1, [r3, r1]\n\
- mov r2, #0x3\n\
- ldsb r2, [r3, r2]\n\
- ldrb r3, [r3, #0x4]\n\
- lsl r3, r3, #0x18\n\
- asr r3, r3, #0x18\n\
- bl RtcCalcLocalTimeOffset\n\
-._142:\n\
- ldrb r0, [r4, #0x2]\n\
- bl DestroyTask\n\
- bl Menu_EraseScreen\n\
- bl ScriptContext2_Disable\n\
- add r0, r5, #0\n\
- bl DestroyTask\n\
-._141:\n\
- pop {r4, r5}\n\
- pop {r0}\n\
- bx r0\n\
-._144:\n\
- .align 2, 0\n\
-._143:\n\
- .word gLocalTime");
-}
+void debug_sub_806F908(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
-__attribute__((naked))
-void debug_sub_806F99C()
-{
- asm("\
- push {lr}\n\
- bl RtcCalcLocalTime\n\
- ldr r0, ._145 @ debug_sub_806F908\n\
- mov r1, #0x50\n\
- bl CreateTask\n\
- bl ScriptContext2_Enable\n\
- pop {r0}\n\
- bx r0\n\
-._146:\n\
- .align 2, 0\n\
-._145:\n\
- .word debug_sub_806F908+1");
+ switch (data[0])
+ {
+ case 0:
+ data[1] = CreateTask(Task_ResetRtc_0, 80);
+ data[0]++;
+ break;
+ case 1:
+ if (gTasks[data[1]].data[0] != 0)
+ {
+ if (gTasks[data[1]].data[1] == 1)
+ RtcCalcLocalTimeOffset(gLocalTime.days, gLocalTime.hours, gLocalTime.minutes, gLocalTime.seconds);
+ DestroyTask(data[1]);
+ Menu_EraseScreen();
+ ScriptContext2_Disable();
+ DestroyTask(taskId);
+ }
+ break;
+ }
}
-__attribute__((naked))
-void debug_sub_806F9B8()
-{
- asm("\
- push {lr}\n\
- ldr r2, ._147 @ gLocalTime\n\
- ldr r0, ._147 + 4 @ gSaveBlock2\n\
- add r0, r0, #0xa0\n\
- ldr r1, [r0, #0x4]\n\
- ldr r0, [r0]\n\
- str r0, [r2]\n\
- str r1, [r2, #0x4]\n\
- ldr r0, ._147 + 8 @ debug_sub_806F908\n\
- mov r1, #0x50\n\
- bl CreateTask\n\
- bl ScriptContext2_Enable\n\
- pop {r0}\n\
- bx r0\n\
-._148:\n\
- .align 2, 0\n\
-._147:\n\
- .word gLocalTime\n\
- .word gSaveBlock2\n\
- .word debug_sub_806F908+1");
+void debug_sub_806F99C(void)
+{
+ RtcCalcLocalTime();
+ CreateTask(debug_sub_806F908, 80);
+ ScriptContext2_Enable();
}
-__attribute__((naked))
-void debug_sub_806F9E4()
-{
- asm("\
- push {r4, r5, r6, r7, lr}\n\
- mov r7, sl\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5, r6, r7}\n\
- lsl r0, r0, #0x18\n\
- lsr r7, r0, #0x18\n\
- lsl r0, r7, #0x2\n\
- add r0, r0, r7\n\
- lsl r0, r0, #0x3\n\
- ldr r1, ._153 @ gTasks\n\
- add r5, r0, r1\n\
- ldr r6, ._153 + 4 @ gStringVar4\n\
- mov r1, #0x0\n\
- ldsh r0, [r5, r1]\n\
- cmp r0, #0x1\n\
- beq ._149 @cond_branch\n\
- cmp r0, #0x1\n\
- bgt ._150 @cond_branch\n\
- cmp r0, #0\n\
- beq ._151 @cond_branch\n\
- b ._165\n\
-._154:\n\
- .align 2, 0\n\
-._153:\n\
- .word gTasks+0x8\n\
- .word gStringVar4\n\
-._150:\n\
- cmp r0, #0x2\n\
- beq ._155 @cond_branch\n\
- b ._165\n\
-._149:\n\
- mov r0, #0x0\n\
- mov r1, #0x9\n\
- mov r2, #0x1d\n\
- mov r3, #0x13\n\
- bl Menu_DrawStdWindowFrame\n\
- add r4, r6, #0\n\
- add r4, r4, #0x50\n\
- bl RtcGetErrorStatus\n\
- add r1, r0, #0\n\
- lsl r1, r1, #0x10\n\
- lsr r1, r1, #0x10\n\
- add r0, r4, #0\n\
- mov r2, #0x2\n\
- mov r3, #0x4\n\
- bl ConvertIntToHexStringN\n\
- add r0, r4, #0\n\
- mov r1, #0x2\n\
- mov r2, #0xa\n\
- bl Menu_PrintText\n\
- ldr r0, ._158 @ gUnknown_Debug_0839AE94\n\
- mov r1, #0xc\n\
- mov r2, #0xc\n\
- bl Menu_PrintText\n\
- ldr r0, ._158 + 4 @ gUnknown_Debug_0839AE99\n\
- mov r1, #0x14\n\
- mov r2, #0xc\n\
- bl Menu_PrintText\n\
- ldr r0, ._158 + 8 @ gUnknown_Debug_0839AEA7\n\
- mov r1, #0x1\n\
- mov r2, #0xe\n\
- bl Menu_PrintText\n\
- ldr r0, ._158 + 12 @ gUnknown_Debug_0839AE9D\n\
- mov r1, #0x1\n\
- mov r2, #0x10\n\
- bl Menu_PrintText\n\
-._151:\n\
- ldrh r0, [r5]\n\
- add r0, r0, #0x1\n\
- strh r0, [r5]\n\
- b ._165\n\
-._159:\n\
- .align 2, 0\n\
-._158:\n\
- .word gUnknown_Debug_0839AE94\n\
- .word gUnknown_Debug_0839AE99\n\
- .word gUnknown_Debug_0839AEA7\n\
- .word gUnknown_Debug_0839AE9D\n\
-._155:\n\
- bl RtcCalcLocalTime\n\
- add r0, r6, #0\n\
- bl FormatHexRtcTime\n\
- mov r2, #0x14\n\
- add r2, r2, r6\n\
- mov r9, r2\n\
- mov r0, r9\n\
- bl debug_sub_8009894\n\
- mov r0, #0x28\n\
- add r0, r0, r6\n\
- mov sl, r0\n\
- ldr r4, ._163 @ gLocalTime\n\
- mov r1, #0x2\n\
- ldsb r1, [r4, r1]\n\
- mov r2, #0x3\n\
- ldsb r2, [r4, r2]\n\
- mov r3, #0x4\n\
- ldsb r3, [r4, r3]\n\
- bl FormatDecimalTime\n\
- mov r1, #0x3c\n\
- add r1, r1, r6\n\
- mov r8, r1\n\
- mov r2, #0x0\n\
- ldsh r1, [r4, r2]\n\
- mov r0, r8\n\
- mov r2, #0x1\n\
- mov r3, #0x4\n\
- bl ConvertIntToDecimalStringN\n\
- ldr r0, ._163 + 4 @ gSaveBlock2\n\
- ldrb r0, [r0, #0x12]\n\
- cmp r0, #0\n\
- bne ._160 @cond_branch\n\
- add r0, r6, #0\n\
- mov r1, #0x14\n\
- mov r2, #0xe\n\
- bl Menu_PrintText\n\
- mov r0, r9\n\
- mov r1, #0xc\n\
- mov r2, #0xe\n\
- bl Menu_PrintText\n\
- mov r0, sl\n\
- mov r1, #0x14\n\
- mov r2, #0x10\n\
- bl Menu_PrintText\n\
- mov r0, r8\n\
- mov r1, #0xc\n\
- mov r2, #0x10\n\
- bl Menu_PrintText\n\
-._160:\n\
- ldrh r1, [r5, #0x2]\n\
- mov r2, #0x2\n\
- ldsh r0, [r5, r2]\n\
- cmp r0, #0x13\n\
- ble ._161 @cond_branch\n\
- add r0, r1, #1\n\
- strh r0, [r5, #0x2]\n\
- b ._165\n\
-._164:\n\
- .align 2, 0\n\
-._163:\n\
- .word gLocalTime\n\
- .word gSaveBlock2\n\
-._161:\n\
- ldr r0, ._166 @ gMain\n\
- ldrh r1, [r0, #0x2e]\n\
- mov r0, #0x1\n\
- and r0, r0, r1\n\
- cmp r0, #0\n\
- beq ._165 @cond_branch\n\
- bl Menu_EraseScreen\n\
- add r0, r7, #0\n\
- bl DestroyTask\n\
- bl ScriptContext2_Disable\n\
-._165:\n\
- pop {r3, r4, r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov sl, r5\n\
- pop {r4, r5, r6, r7}\n\
- pop {r0}\n\
- bx r0\n\
-._167:\n\
- .align 2, 0\n\
-._166:\n\
- .word gMain");
+void debug_sub_806F9B8(void)
+{
+ gLocalTime = gSaveBlock2.lastBerryTreeUpdate;
+ CreateTask(debug_sub_806F908, 80);
+ ScriptContext2_Enable();
}
+static const u8 sDebugText_Days[] = _("にっすう"); // "days"
+static const u8 sDebugText_Time[] = _("じかん"); // "time"
+static const u8 sDebugText_GameTime[] = _("ゲームない じかん"); // "game time"
+static const u8 sDebugText_RTCTime[] = _("RTC じかん"); // "RTC time"
+
+void debug_sub_806F9E4(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ u8 *str = gStringVar4;
+
+ switch (data[0])
+ {
+ case 0:
+ data[0]++;
+ break;
+ case 1:
+ Menu_DrawStdWindowFrame(0, 9, 29, 19);
+ ConvertIntToHexStringN(str + 80, RtcGetErrorStatus(), 2, 4);
+ Menu_PrintText(str + 80, 2, 10);
+ Menu_PrintText(sDebugText_Days, 12, 12);
+ Menu_PrintText(sDebugText_Time, 20, 12);
+ Menu_PrintText(sDebugText_RTCTime, 1, 14);
+ Menu_PrintText(sDebugText_GameTime, 1, 16);
+ data[0]++;
+ break;
+ case 2:
+ RtcCalcLocalTime();
+ FormatHexRtcTime(str);
+ debug_sub_8009894(str + 20);
+ FormatDecimalTime(str + 40, gLocalTime.hours, gLocalTime.minutes, gLocalTime.seconds);
+ ConvertIntToDecimalStringN(str + 60, gLocalTime.days, 1, 4);
+ if (gSaveBlock2.playTimeVBlanks == 0)
+ {
+ Menu_PrintText(str, 20, 14);
+ Menu_PrintText(str + 20, 12, 14);
+ Menu_PrintText(str + 40, 20, 16);
+ Menu_PrintText(str + 60, 12, 16);
+ }
+ if (data[1] > 19) // Did you mean < 19?
+ {
+ data[1]++;
+ }
+ else
+ {
+ if (gMain.newKeys & A_BUTTON)
+ {
+ Menu_EraseScreen();
+ DestroyTask(taskId);
+ ScriptContext2_Disable();
+ }
+ }
+ break;
+ }
+}
#endif \ No newline at end of file