summaryrefslogtreecommitdiff
path: root/src/debug/start_menu_debug.c
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-04-08 21:41:23 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-04-08 21:41:23 -0400
commite651e6a7847bb8f1a55506c8f7729176f84fabf9 (patch)
treed33edc5ea9bd932726c558e14cac964882ac09f6 /src/debug/start_menu_debug.c
parentcc8b69676d79bd0791373dce093a33b5e831de49 (diff)
Remaining functions and data in start_menu_debug
Diffstat (limited to 'src/debug/start_menu_debug.c')
-rw-r--r--src/debug/start_menu_debug.c897
1 files changed, 239 insertions, 658 deletions
diff --git a/src/debug/start_menu_debug.c b/src/debug/start_menu_debug.c
index 75e1b028d..c1f508ebc 100644
--- a/src/debug/start_menu_debug.c
+++ b/src/debug/start_menu_debug.c
@@ -45,6 +45,8 @@
#include "reset_rtc_screen.h"
#include "pokeblock.h"
#include "ewram.h"
+#include "gba/flash_internal.h"
+#include "gba/m4a_internal.h"
// berry_blender.c
extern void unref_sub_80524BC(void);
@@ -73,8 +75,12 @@ bool8 DebugMenu_8078CA8(void);
bool8 DebugMenu_8078CE4(void);
bool8 DebugMenu_8078D30(void);
bool8 DebugMenu_8078D7C(void);
+bool8 DebugMenu_8078DA4(void);
+bool8 DebugMenu_8078DF0(void);
bool32 DebugMenu_8078E40(u8 a0, u8 * a1, u32 a2);
void DebugMenu_8078E68(u8 a0, u8 * a1, u32 a2);
+void DebugMenu_8078F68(u8 taskId);
+void DebugMenu_8079020(u8 taskId);
u8 DebugMenu_Exit(void);
u8 DebugMenu_OpenWatanabe(void);
@@ -2498,672 +2504,247 @@ bool8 DebugMenu_8078D30(void)
return FALSE;
}
-NAKED
-bool8 DebugMenu_8078D7C()
-{
- asm(
- " push {lr}\n"
- " bl Menu_DisplayDialogueFrame\n"
- " ldr r0, ._565 @ gStringVar4\n"
- " mov r1, #0x2\n"
- " mov r2, #0xf\n"
- " bl Menu_PrintText\n"
- " ldr r1, ._565 + 4 @ gMenuCallback\n"
- " ldr r0, ._565 + 8 @ DebugMenu_8078DA4\n"
- " str r0, [r1]\n"
- " mov r0, #0x0\n"
- " pop {r1}\n"
- " bx r1\n"
- "._566:\n"
- " .align 2, 0\n"
- "._565:\n"
- " .word gStringVar4\n"
- " .word gMenuCallback\n"
- " .word DebugMenu_8078DA4+1\n"
- "\n"
- );
-}
-
-NAKED
-bool8 DebugMenu_8078DA4()
-{
- asm(
- " push {lr}\n"
- " ldr r0, ._569 @ gMain\n"
- " ldrh r1, [r0, #0x2e]\n"
- " mov r0, #0x1\n"
- " and r0, r0, r1\n"
- " cmp r0, #0\n"
- " bne ._567 @cond_branch\n"
- " mov r0, #0x0\n"
- " b ._568\n"
- "._570:\n"
- " .align 2, 0\n"
- "._569:\n"
- " .word gMain\n"
- "._567:\n"
- " bl CloseMenu\n"
- " mov r0, #0x1\n"
- "._568:\n"
- " pop {r1}\n"
- " bx r1\n"
- "\n"
- );
-}
-
-NAKED
-u8 DebugMenu_MeTooBackupMan()
-{
- asm(
- " push {lr}\n"
- " bl Menu_EraseScreen\n"
- " ldr r0, ._571 @ gUnknown_Debug_839C594\n"
- " mov r1, #0xc\n"
- " mov r2, #0x2\n"
- " bl DebugMenu_8077D24\n"
- " ldr r1, ._571 + 4 @ gMenuCallback\n"
- " ldr r0, ._571 + 8 @ DebugMenu_8078DF0\n"
- " str r0, [r1]\n"
- " mov r0, #0x0\n"
- " pop {r1}\n"
- " bx r1\n"
- "._572:\n"
- " .align 2, 0\n"
- "._571:\n"
- " .word gUnknown_Debug_839C594\n"
- " .word gMenuCallback\n"
- " .word DebugMenu_8078DF0+1\n"
- "\n"
- );
-}
-
-NAKED
+bool8 DebugMenu_8078D7C(void)
+{
+ Menu_DisplayDialogueFrame();
+ Menu_PrintText(gStringVar4, 2, 15);
+ gMenuCallback = DebugMenu_8078DA4;
+ return FALSE;
+}
+
+bool8 DebugMenu_8078DA4(void)
+{
+ if (gMain.newKeys & A_BUTTON)
+ {
+ CloseMenu();
+ return TRUE;
+ }
+ return FALSE;
+}
+
+u8 DebugMenu_MeTooBackupMan(void)
+{
+ Menu_EraseScreen();
+ DebugMenu_8077D24(gUnknown_Debug_839C594, 12, ARRAY_COUNT(gUnknown_Debug_839C594));
+ gMenuCallback = DebugMenu_8078DF0;
+ return FALSE;
+}
+
bool8 DebugMenu_8078DF0()
{
- asm(
- " push {lr}\n"
- " ldr r0, ._573 @ gUnknown_Debug_839C594\n"
- " bl DebugMenu_8077D78\n"
- " lsl r0, r0, #0x18\n"
- " lsr r0, r0, #0x18\n"
- " pop {r1}\n"
- " bx r1\n"
- "._574:\n"
- " .align 2, 0\n"
- "._573:\n"
- " .word gUnknown_Debug_839C594\n"
- "\n"
- );
-}
-
-NAKED
+ return DebugMenu_8077D78(gUnknown_Debug_839C594);
+}
+
bool32 DebugMenu_8078E04(u16 a0, u8 * a1, u32 a2)
{
- asm(
- " push {r4, r5, r6, lr}\n"
- " add r6, r1, #0\n"
- " add r5, r2, #0\n"
- " b ._575\n"
- "._577:\n"
- " ldr r0, ._579 @ 0xfffff000\n"
- " add r5, r5, r0\n"
- " mov r0, #0x80\n"
- " lsl r0, r0, #0x5\n"
- " add r6, r6, r0\n"
- " add r0, r4, #1\n"
- "._575:\n"
- " lsl r0, r0, #0x10\n"
- " lsr r4, r0, #0x10\n"
- " add r0, r4, #0\n"
- " add r1, r6, #0\n"
- " bl ProgramFlashSectorAndVerify\n"
- " cmp r0, #0\n"
- " bne ._576 @cond_branch\n"
- " mov r0, #0x80\n"
- " lsl r0, r0, #0x5\n"
- " cmp r5, r0\n"
- " bhi ._577 @cond_branch\n"
- " mov r0, #0x1\n"
- " b ._578\n"
- "._580:\n"
- " .align 2, 0\n"
- "._579:\n"
- " .word 0xfffff000\n"
- "._576:\n"
- " mov r0, #0x0\n"
- "._578:\n"
- " pop {r4, r5, r6}\n"
- " pop {r1}\n"
- " bx r1\n"
- "\n"
- );
-}
-
-NAKED
+ while (1)
+ {
+ if (ProgramFlashSectorAndVerify(a0, a1))
+ return FALSE;
+ if (a2 <= 0x1000)
+ break;
+ a2 -= 0x1000;
+ a1 += 0x1000;
+ a0++;
+ }
+ return TRUE;
+}
+
bool32 DebugMenu_8078E40(u8 a0, u8 * a1, u32 a2)
{
- asm(
- " push {r4, r5, r6, lr}\n"
- " add r4, r0, #0\n"
- " add r5, r1, #0\n"
- " add r6, r2, #0\n"
- " lsl r4, r4, #0x18\n"
- " lsr r4, r4, #0x18\n"
- " bl m4aSoundVSyncOff\n"
- " add r0, r4, #0\n"
- " add r1, r5, #0\n"
- " add r2, r6, #0\n"
- " bl DebugMenu_8078E04\n"
- " add r4, r0, #0\n"
- " bl m4aSoundVSyncOn\n"
- " add r0, r4, #0\n"
- " pop {r4, r5, r6}\n"
- " pop {r1}\n"
- " bx r1\n"
- "\n"
- );
-}
-
-NAKED
+ bool32 result;
+ m4aSoundVSyncOff();
+ result = DebugMenu_8078E04(a0, a1, a2);
+ m4aSoundVSyncOn();
+ return result;
+}
+
void DebugMenu_8078E68(u8 a0, u8 * a1, u32 a2)
{
- asm(
- " push {r4, lr}\n"
- " add r4, r1, #0\n"
- " add r3, r2, #0\n"
- " lsl r0, r0, #0x18\n"
- " lsr r0, r0, #0x18\n"
- " mov r1, #0x0\n"
- " add r2, r4, #0\n"
- " bl ReadFlash\n"
- " pop {r4}\n"
- " pop {r0}\n"
- " bx r0\n"
- "\n"
- );
-}
-
-NAKED
-void DebugMenu_8078E80()
-{
- asm(
- " push {r4, lr}\n"
- " add r4, r0, #0\n"
- " mov r0, #0x2\n"
- " mov r1, #0xf\n"
- " mov r2, #0x16\n"
- " mov r3, #0x10\n"
- " bl Menu_BlankWindowRect\n"
- " ldr r1, ._581 @ gUnknown_Debug_839C5F4\n"
- " mov r2, #0x0\n"
- " ldsh r0, [r4, r2]\n"
- " lsl r0, r0, #0x3\n"
- " add r0, r0, r1\n"
- " ldrb r1, [r0, #0x4]\n"
- " mov r0, #0xd0\n"
- " mov r2, #0xf\n"
- " bl sub_8071F60\n"
- " pop {r4}\n"
- " pop {r0}\n"
- " bx r0\n"
- "._582:\n"
- " .align 2, 0\n"
- "._581:\n"
- " .word gUnknown_Debug_839C5F4\n"
- "\n"
- );
-}
-
-NAKED
-void DebugMenu_8078EB0()
-{
- asm(
- " push {r4, r5, lr}\n"
- " add r5, r0, #0\n"
- " ldr r4, ._583 @ gStringVar1\n"
- " mov r0, #0x2\n"
- " ldsh r1, [r5, r0]\n"
- " add r0, r4, #0\n"
- " mov r2, #0x1\n"
- " mov r3, #0x3\n"
- " bl ConvertIntToDecimalStringN\n"
- " add r0, r4, #0\n"
- " mov r1, #0x2\n"
- " mov r2, #0x11\n"
- " bl Menu_PrintText\n"
- " mov r0, #0xf0\n"
- " mov r1, #0x5\n"
- " mov r2, #0x11\n"
- " bl sub_8071F60\n"
- " mov r0, #0x4\n"
- " ldsh r1, [r5, r0]\n"
- " add r0, r4, #0\n"
- " mov r2, #0x2\n"
- " mov r3, #0x2\n"
- " bl ConvertIntToDecimalStringN\n"
- " add r0, r4, #0\n"
- " mov r1, #0x6\n"
- " mov r2, #0x11\n"
- " bl Menu_PrintText\n"
- " mov r0, #0xf0\n"
- " mov r1, #0x8\n"
- " mov r2, #0x11\n"
- " bl sub_8071F60\n"
- " mov r0, #0x6\n"
- " ldsh r1, [r5, r0]\n"
- " add r0, r4, #0\n"
- " mov r2, #0x2\n"
- " mov r3, #0x2\n"
- " bl ConvertIntToDecimalStringN\n"
- " add r0, r4, #0\n"
- " mov r1, #0x9\n"
- " mov r2, #0x11\n"
- " bl Menu_PrintText\n"
- " pop {r4, r5}\n"
- " pop {r0}\n"
- " bx r0\n"
- "._584:\n"
- " .align 2, 0\n"
- "._583:\n"
- " .word gStringVar1\n"
- "\n"
- );
-}
-
-NAKED
-void DebugMenu_8078F1C()
-{
- asm(
- " push {r4, r5, r6, lr}\n"
- " lsl r0, r0, #0x18\n"
- " lsr r0, r0, #0x18\n"
- " lsl r4, r0, #0x2\n"
- " add r4, r4, r0\n"
- " lsl r4, r4, #0x3\n"
- " ldr r6, ._585 @ gTasks\n"
- " add r5, r4, r6\n"
- " mov r0, #0x0\n"
- " strh r0, [r5]\n"
- " ldr r1, ._585 + 4 @ gSaveBlock2\n"
- " ldrh r0, [r1, #0xe]\n"
- " strh r0, [r5, #0x2]\n"
- " ldrb r0, [r1, #0x10]\n"
- " strh r0, [r5, #0x4]\n"
- " ldrb r0, [r1, #0x11]\n"
- " strh r0, [r5, #0x6]\n"
- " bl Menu_DisplayDialogueFrame\n"
- " add r0, r5, #0\n"
- " bl DebugMenu_8078EB0\n"
- " add r0, r5, #0\n"
- " bl DebugMenu_8078E80\n"
- " sub r6, r6, #0x8\n"
- " add r4, r4, r6\n"
- " ldr r0, ._585 + 8 @ DebugMenu_8078F68\n"
- " str r0, [r4]\n"
- " pop {r4, r5, r6}\n"
- " pop {r0}\n"
- " bx r0\n"
- "._586:\n"
- " .align 2, 0\n"
- "._585:\n"
- " .word gTasks+0x8\n"
- " .word gSaveBlock2\n"
- " .word DebugMenu_8078F68+1\n"
- "\n"
- );
-}
-
-NAKED
-void DebugMenu_8078F68()
-{
- asm(
- " push {r4, r5, r6, lr}\n"
- " lsl r0, r0, #0x18\n"
- " lsr r0, r0, #0x18\n"
- " lsl r1, r0, #0x2\n"
- " add r1, r1, r0\n"
- " lsl r5, r1, #0x3\n"
- " ldr r6, ._589 @ gTasks\n"
- " add r4, r5, r6\n"
- " ldr r3, ._589 + 4 @ gMain\n"
- " ldrh r1, [r3, #0x2e]\n"
- " mov r0, #0x1\n"
- " and r0, r0, r1\n"
- " cmp r0, #0\n"
- " beq ._587 @cond_branch\n"
- " ldr r1, ._589 + 8 @ gSaveBlock2\n"
- " ldrh r0, [r4, #0x2]\n"
- " strh r0, [r1, #0xe]\n"
- " ldrh r0, [r4, #0x4]\n"
- " strb r0, [r1, #0x10]\n"
- " ldrh r0, [r4, #0x6]\n"
- " strb r0, [r1, #0x11]\n"
- " mov r0, #0x49\n"
- " bl PlaySE\n"
- " b ._588\n"
- "._590:\n"
- " .align 2, 0\n"
- "._589:\n"
- " .word gTasks+0x8\n"
- " .word gMain\n"
- " .word gSaveBlock2\n"
- "._587:\n"
- " mov r0, #0x2\n"
- " and r0, r0, r1\n"
- " cmp r0, #0\n"
- " beq ._591 @cond_branch\n"
- "._588:\n"
- " add r0, r6, #0\n"
- " sub r0, r0, #0x8\n"
- " add r0, r5, r0\n"
- " ldr r1, ._593 @ DebugMenu_8079020\n"
- " str r1, [r0]\n"
- " b ._601\n"
- "._594:\n"
- " .align 2, 0\n"
- "._593:\n"
- " .word DebugMenu_8079020+1\n"
- "._591:\n"
- " mov r0, #0x20\n"
- " and r0, r0, r1\n"
- " cmp r0, #0\n"
- " beq ._595 @cond_branch\n"
- " ldrh r1, [r4]\n"
- " mov r2, #0x0\n"
- " ldsh r0, [r4, r2]\n"
- " cmp r0, #0\n"
- " beq ._601 @cond_branch\n"
- " sub r0, r1, #1\n"
- " b ._597\n"
- "._595:\n"
- " mov r0, #0x10\n"
- " and r0, r0, r1\n"
- " cmp r0, #0\n"
- " beq ._598 @cond_branch\n"
- " ldrh r0, [r4]\n"
- " cmp r0, #0x1\n"
- " bhi ._601 @cond_branch\n"
- " add r0, r0, #0x1\n"
- "._597:\n"
- " strh r0, [r4]\n"
- " add r0, r4, #0\n"
- " bl DebugMenu_8078E80\n"
- " b ._601\n"
- "._598:\n"
- " mov r0, #0x0\n"
- " ldsh r2, [r4, r0]\n"
- " lsl r2, r2, #0x3\n"
- " ldr r0, ._602 @ gUnknown_Debug_839C5F4\n"
- " add r2, r2, r0\n"
- " ldrb r0, [r2, #0x5]\n"
- " lsl r0, r0, #0x1\n"
- " add r0, r4, r0\n"
- " ldrh r1, [r2]\n"
- " ldrh r2, [r2, #0x2]\n"
- " ldrh r3, [r3, #0x30]\n"
- " bl DebugMenu_8077DD8\n"
- " cmp r0, #0x1\n"
- " bne ._601 @cond_branch\n"
- " add r0, r4, #0\n"
- " bl DebugMenu_8078EB0\n"
- "._601:\n"
- " pop {r4, r5, r6}\n"
- " pop {r0}\n"
- " bx r0\n"
- "._603:\n"
- " .align 2, 0\n"
- "._602:\n"
- " .word gUnknown_Debug_839C5F4\n"
- "\n"
- );
-}
-
-NAKED
-void DebugMenu_8079020()
-{
- asm(
- " push {r4, lr}\n"
- " add r4, r0, #0\n"
- " lsl r4, r4, #0x18\n"
- " lsr r4, r4, #0x18\n"
- " bl Menu_EraseScreen\n"
- " bl ScriptContext2_Disable\n"
- " add r0, r4, #0\n"
- " bl DestroyTask\n"
- " pop {r4}\n"
- " pop {r0}\n"
- " bx r0\n"
- "\n"
- );
-}
-
-NAKED
-u8 DebugMenu_PTime()
-{
- asm(
- " push {lr}\n"
- " bl CloseMenu\n"
- " ldr r0, ._604 @ DebugMenu_8078F1C\n"
- " mov r1, #0x50\n"
- " bl CreateTask\n"
- " bl ScriptContext2_Enable\n"
- " mov r0, #0x1\n"
- " pop {r1}\n"
- " bx r1\n"
- "._605:\n"
- " .align 2, 0\n"
- "._604:\n"
- " .word DebugMenu_8078F1C+1\n"
- "\n"
- );
-}
-
-NAKED
-void DebugMenu_8079058()
-{
- asm(
- " push {r4, r5, lr}\n"
- " lsl r0, r0, #0x18\n"
- " lsr r5, r0, #0x18\n"
- " ldr r1, ._610 @ gTasks\n"
- " lsl r0, r5, #0x2\n"
- " add r0, r0, r5\n"
- " lsl r0, r0, #0x3\n"
- " add r4, r0, r1\n"
- " mov r0, #0x8\n"
- " ldsh r1, [r4, r0]\n"
- " cmp r1, #0x1\n"
- " beq ._606 @cond_branch\n"
- " cmp r1, #0x1\n"
- " bgt ._607 @cond_branch\n"
- " cmp r1, #0\n"
- " beq ._608 @cond_branch\n"
- " b ._620\n"
- "._611:\n"
- " .align 2, 0\n"
- "._610:\n"
- " .word gTasks\n"
- "._607:\n"
- " cmp r1, #0x2\n"
- " beq ._612 @cond_branch\n"
- " b ._620\n"
- "._608:\n"
- " ldr r0, ._615 @ gUnknown_Debug_03004BD0\n"
- " str r1, [r0]\n"
- " bl Menu_DisplayDialogueFrame\n"
- " b ._614\n"
- "._616:\n"
- " .align 2, 0\n"
- "._615:\n"
- " .word gUnknown_Debug_03004BD0\n"
- "._606:\n"
- " ldr r0, ._618 @ gDebug0x839C60C\n"
- " mov r1, #0x4\n"
- " mov r2, #0xf\n"
- " bl Menu_PrintText\n"
- " mov r0, #0x14\n"
- " mov r1, #0x8\n"
- " mov r2, #0x1\n"
- " bl DisplayYesNoMenu\n"
- "._614:\n"
- " ldrh r0, [r4, #0x8]\n"
- " add r0, r0, #0x1\n"
- " strh r0, [r4, #0x8]\n"
- " b ._620\n"
- "._619:\n"
- " .align 2, 0\n"
- "._618:\n"
- " .word gDebug0x839C60C\n"
- "._612:\n"
- " bl Menu_ProcessInputNoWrap_\n"
- " lsl r0, r0, #0x18\n"
- " asr r1, r0, #0x18\n"
- " mov r0, #0x2\n"
- " neg r0, r0\n"
- " cmp r1, r0\n"
- " beq ._620 @cond_branch\n"
- " cmp r1, #0\n"
- " bne ._621 @cond_branch\n"
- " ldr r1, ._623 @ gUnknown_Debug_03004BD0\n"
- " mov r0, #0x1\n"
- " b ._622\n"
- "._624:\n"
- " .align 2, 0\n"
- "._623:\n"
- " .word gUnknown_Debug_03004BD0\n"
- "._621:\n"
- " ldr r1, ._625 @ gUnknown_Debug_03004BD0\n"
- " mov r0, #0x0\n"
- "._622:\n"
- " str r0, [r1]\n"
- " bl Menu_EraseScreen\n"
- " bl ScriptContext2_Disable\n"
- " add r0, r5, #0\n"
- " bl DestroyTask\n"
- "._620:\n"
- " pop {r4, r5}\n"
- " pop {r0}\n"
- " bx r0\n"
- "._626:\n"
- " .align 2, 0\n"
- "._625:\n"
- " .word gUnknown_Debug_03004BD0\n"
- "\n"
- );
-}
-
-NAKED
-u8 DebugMenu_OpenMurakawa()
-{
- asm(
- " push {lr}\n"
- " bl CloseMenu\n"
- " ldr r0, ._627 @ DebugMenu_8079058\n"
- " mov r1, #0x50\n"
- " bl CreateTask\n"
- " bl ScriptContext2_Enable\n"
- " mov r0, #0x1\n"
- " pop {r1}\n"
- " bx r1\n"
- "._628:\n"
- " .align 2, 0\n"
- "._627:\n"
- " .word DebugMenu_8079058+1\n"
- "\n"
- );
-}
-
-NAKED
-void DebugMenu_8079110()
-{
- asm(
- " push {r4, r5, lr}\n"
- " lsl r0, r0, #0x18\n"
- " lsr r5, r0, #0x18\n"
- " ldr r1, ._633 @ gTasks\n"
- " lsl r0, r5, #0x2\n"
- " add r0, r0, r5\n"
- " lsl r0, r0, #0x3\n"
- " add r4, r0, r1\n"
- " mov r1, #0x8\n"
- " ldsh r0, [r4, r1]\n"
- " cmp r0, #0x1\n"
- " beq ._629 @cond_branch\n"
- " cmp r0, #0x1\n"
- " bgt ._630 @cond_branch\n"
- " cmp r0, #0\n"
- " beq ._631 @cond_branch\n"
- " b ._642\n"
- "._634:\n"
- " .align 2, 0\n"
- "._633:\n"
- " .word gTasks\n"
- "._630:\n"
- " cmp r0, #0x2\n"
- " beq ._635 @cond_branch\n"
- " b ._642\n"
- "._631:\n"
- " bl Menu_DisplayDialogueFrame\n"
- " b ._637\n"
- "._629:\n"
- " ldr r0, ._639 @ Str_839C61A\n"
- " mov r1, #0x2\n"
- " mov r2, #0xf\n"
- " bl MenuPrintMessage\n"
- "._637:\n"
- " ldrh r0, [r4, #0x8]\n"
- " add r0, r0, #0x1\n"
- " strh r0, [r4, #0x8]\n"
- " b ._642\n"
- "._640:\n"
- " .align 2, 0\n"
- "._639:\n"
- " .word Str_839C61A\n"
- "._635:\n"
- " bl Menu_UpdateWindowText\n"
- " lsl r0, r0, #0x18\n"
- " cmp r0, #0\n"
- " beq ._642 @cond_branch\n"
- " ldr r0, ._643 @ gMain\n"
- " ldrh r1, [r0, #0x2e]\n"
- " mov r0, #0x1\n"
- " and r0, r0, r1\n"
- " cmp r0, #0\n"
- " beq ._642 @cond_branch\n"
- " bl Menu_EraseScreen\n"
- " bl ScriptContext2_Disable\n"
- " add r0, r5, #0\n"
- " bl DestroyTask\n"
- "._642:\n"
- " pop {r4, r5}\n"
- " pop {r0}\n"
- " bx r0\n"
- "._644:\n"
- " .align 2, 0\n"
- "._643:\n"
- " .word gMain\n"
- "\n"
- );
-}
-
-NAKED
-u8 DebugMenu_OpenKiwa()
-{
- asm(
- " push {lr}\n"
- " bl CloseMenu\n"
- " ldr r0, ._645 @ DebugMenu_8079110\n"
- " mov r1, #0x50\n"
- " bl CreateTask\n"
- " bl ScriptContext2_Enable\n"
- " pop {r1}\n"
- " bx r1\n"
- "._646:\n"
- " .align 2, 0\n"
- "._645:\n"
- " .word DebugMenu_8079110+1\n"
- "\n"
- );
+ ReadFlash(a0, 0, a1, a2);
+}
+
+struct GameTimeDebugMenuStruct {
+ u16 unk0;
+ u16 unk2;
+ u8 unk4;
+ u8 unk5;
+};
+
+const struct GameTimeDebugMenuStruct gUnknown_Debug_839C5F4[] = {
+ {0, 999, 2, 1},
+ {0, 59, 6, 2},
+ {0, 59, 9, 3}
+};
+
+void DebugMenu_8078E80(s16 * a0)
+{
+ Menu_BlankWindowRect(2, 15, 22, 16);
+ sub_8071F60(0xd0, gUnknown_Debug_839C5F4[*a0].unk4, 15);
+}
+
+void DebugMenu_8078EB0(s16 * a0)
+{
+ ConvertIntToDecimalStringN(gStringVar1, a0[1], STR_CONV_MODE_RIGHT_ALIGN, 3);
+ Menu_PrintText(gStringVar1, 2, 17);
+ sub_8071F60(0xf0, 5, 17);
+ ConvertIntToDecimalStringN(gStringVar1, a0[2], STR_CONV_MODE_LEADING_ZEROS, 2);
+ Menu_PrintText(gStringVar1, 6, 17);
+ sub_8071F60(0xf0, 8, 17);
+ ConvertIntToDecimalStringN(gStringVar1, a0[3], STR_CONV_MODE_LEADING_ZEROS, 2);
+ Menu_PrintText(gStringVar1, 9, 17);
+}
+
+void DebugMenu_8078F1C(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ data[0] = 0;
+ data[1] = gSaveBlock2.playTimeHours;
+ data[2] = gSaveBlock2.playTimeMinutes;
+ data[3] = gSaveBlock2.playTimeSeconds;
+
+ Menu_DisplayDialogueFrame();
+ DebugMenu_8078EB0(data);
+ DebugMenu_8078E80(data);
+ gTasks[taskId].func = DebugMenu_8078F68;
+}
+
+void DebugMenu_8078F68(u8 taskId)
+{
+ s16 * data = gTasks[taskId].data;
+
+ if (gMain.newKeys & A_BUTTON)
+ {
+ gSaveBlock2.playTimeHours = data[1];
+ gSaveBlock2.playTimeMinutes = data[2];
+ gSaveBlock2.playTimeSeconds = data[3];
+ PlaySE(SE_PINPON);
+ gTasks[taskId].func = DebugMenu_8079020;
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ gTasks[taskId].func = DebugMenu_8079020;
+ }
+ else if (gMain.newKeys & DPAD_LEFT)
+ {
+ if ((u16)data[0] > 0)
+ {
+ data[0]--;
+ DebugMenu_8078E80(data);
+ }
+ }
+ else if (gMain.newKeys & DPAD_RIGHT)
+ {
+ if ((u16)data[0] < 2)
+ {
+ data[0]++;
+ DebugMenu_8078E80(data);
+ }
+ }
+ else
+ {
+ const struct GameTimeDebugMenuStruct *r2 = gUnknown_Debug_839C5F4 + data[0];
+ if (DebugMenu_8077DD8(data + r2->unk5, r2->unk0, r2->unk2, gMain.newAndRepeatedKeys) == TRUE)
+ DebugMenu_8078EB0(data);
+ }
+}
+
+void DebugMenu_8079020(u8 taskId)
+{
+ Menu_EraseScreen();
+ ScriptContext2_Disable();
+ DestroyTask(taskId);
+}
+
+u8 DebugMenu_PTime(void)
+{
+ CloseMenu();
+ CreateTask(DebugMenu_8078F1C, 80);
+ ScriptContext2_Enable();
+ return TRUE;
+}
+
+const u8 gDebug0x839C60C[] = _("Set FLASH ERR");
+
+void DebugMenu_8079058(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ gUnknown_Debug_03004BD0 = 0;
+ Menu_DisplayDialogueFrame();
+ gTasks[taskId].data[0]++;
+ break;
+ case 1:
+ Menu_PrintText(gDebug0x839C60C, 4, 15);
+ DisplayYesNoMenu(20, 8, 1);
+ gTasks[taskId].data[0]++;
+ break;
+ case 2:
+ switch (Menu_ProcessInputNoWrap_())
+ {
+ case -2:
+ return;
+ case 0:
+ gUnknown_Debug_03004BD0 = 1;
+ break;
+ default:
+ gUnknown_Debug_03004BD0 = 0;
+ break;
+ }
+ Menu_EraseScreen();
+ ScriptContext2_Disable();
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+u8 DebugMenu_OpenMurakawa(void)
+{
+ CloseMenu();
+ CreateTask(DebugMenu_8079058, 80);
+ ScriptContext2_Enable();
+ return TRUE;
+}
+
+const u8 Str_839C61A[] = _("abcde; abcde: ABCDE; ABCDE:\p"
+ "Tableaux des verbes du 2{SUPER_E} groupe.\p"
+ "La1{SUPER_RE} chose à apprendre c’est de lire.\p"
+ "Tableaux des verbes du 1{SUPER_ER} groupe.\p"
+ "“あいうえおかきくけコさしすせそたちつてとな”\n"
+ "<にぬネのはひふへほマみむめもやゆよらりるれろわャッ>\p"
+ "をんゃゅょアイウエオカキクケサシスルレロワ,");
+
+void DebugMenu_8079110(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ Menu_DisplayDialogueFrame();
+ gTasks[taskId].data[0]++;
+ break;
+ case 1:
+ MenuPrintMessage(Str_839C61A, 2, 15);
+ gTasks[taskId].data[0]++;
+ break;
+ case 2:
+ if (Menu_UpdateWindowText() && gMain.newKeys & A_BUTTON)
+ {
+ Menu_EraseScreen();
+ ScriptContext2_Disable();
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+u8 DebugMenu_OpenKiwa(void)
+{
+ CloseMenu();
+ CreateTask(DebugMenu_8079110, 80);
+ ScriptContext2_Enable();
+ // return TRUE;
}
#endif