summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-03-12 23:37:16 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-03-12 23:37:16 -0400
commit187bc5f6a17ca53390fa95d9ec836fcc228d4b03 (patch)
tree90061145dbc0dc61bfa95b3f903b8eceaa623b16
parent017d462feddbf3101c22c8d95901c1ad50f8f406 (diff)
through debug_sub_808E310
-rw-r--r--asm/tomomichi_debug_menu.s495
-rw-r--r--src/debug/tomomichi_debug_menu.c135
2 files changed, 135 insertions, 495 deletions
diff --git a/asm/tomomichi_debug_menu.s b/asm/tomomichi_debug_menu.s
index 8c60faedb..b5e56a5d8 100644
--- a/asm/tomomichi_debug_menu.s
+++ b/asm/tomomichi_debug_menu.s
@@ -3,501 +3,6 @@
.include "constants/gba_constants.inc"
.include "include/macros.inc"
- thumb_func_start debug_sub_808DFC0
-debug_sub_808DFC0:
- push {lr}
- add sp, sp, #0xfffffff8
- bl Menu_EraseScreen
- mov r0, #0x0
- mov r1, #0x0
- mov r2, #0x18
- mov r3, #0xd
- bl Menu_DrawStdWindowFrame
- ldr r3, ._437 @ gUnknown_Debug_083C377C
- mov r0, #0x2
- mov r1, #0x1
- mov r2, #0x6
- bl Menu_PrintItems
- mov r0, #0x0
- str r0, [sp]
- mov r0, #0x17
- str r0, [sp, #0x4]
- mov r0, #0x0
- mov r1, #0x1
- mov r2, #0x1
- mov r3, #0x6
- bl InitMenu
- ldr r1, ._437 + 4 @ gMenuCallback
- ldr r0, ._437 + 8 @ debug_sub_808E010
- str r0, [r1]
- mov r0, #0x0
- add sp, sp, #0x8
- pop {r1}
- bx r1
-._438:
- .align 2, 0
-._437:
- .word gUnknown_Debug_083C377C
- .word gMenuCallback
- .word debug_sub_808E010+1
-
- thumb_func_end debug_sub_808DFC0
-
- thumb_func_start debug_sub_808E010
-debug_sub_808E010:
- push {lr}
- bl Menu_ProcessInput
- lsl r0, r0, #0x18
- asr r1, r0, #0x18
- mov r0, #0x2
- neg r0, r0
- cmp r1, r0
- bne ._439 @cond_branch
- mov r0, #0x0
- b ._442
-._439:
- mov r0, #0x1
- neg r0, r0
- cmp r1, r0
- beq ._441 @cond_branch
- ldr r2, ._443 @ gMenuCallback
- ldr r0, ._443 + 4 @ gUnknown_Debug_083C377C
- lsl r1, r1, #0x3
- add r0, r0, #0x4
- add r1, r1, r0
- ldr r0, [r1]
- str r0, [r2]
- mov r0, #0x0
- b ._442
-._444:
- .align 2, 0
-._443:
- .word gMenuCallback
- .word gUnknown_Debug_083C377C
-._441:
- bl CloseMenu
- mov r0, #0x1
-._442:
- pop {r1}
- bx r1
-
- thumb_func_end debug_sub_808E010
-
- thumb_func_start debug_sub_808E054
-debug_sub_808E054:
- push {r4, lr}
- add sp, sp, #0xfffffff8
- bl Menu_EraseScreen
- mov r0, #0x0
- mov r1, #0x0
- mov r2, #0x1d
- mov r3, #0xd
- bl Menu_DrawStdWindowFrame
- ldr r3, ._445 @ gUnknown_Debug_083C3AA0
- mov r0, #0x2
- mov r1, #0x1
- mov r2, #0x6
- bl Menu_PrintItems
- mov r4, #0x0
- str r4, [sp]
- mov r0, #0x1c
- str r0, [sp, #0x4]
- mov r0, #0x0
- mov r1, #0x1
- mov r2, #0x1
- mov r3, #0x6
- bl InitMenu
- ldr r0, ._445 + 4 @ gDebug_0300070F
- strb r4, [r0]
- ldr r1, ._445 + 8 @ gMenuCallback
- ldr r0, ._445 + 12 @ debug_sub_808E264
- str r0, [r1]
- mov r0, #0x0
- add sp, sp, #0x8
- pop {r4}
- pop {r1}
- bx r1
-._446:
- .align 2, 0
-._445:
- .word gUnknown_Debug_083C3AA0
- .word gDebug_0300070F
- .word gMenuCallback
- .word debug_sub_808E264+1
-
- thumb_func_end debug_sub_808E054
-
- thumb_func_start debug_sub_808E0AC
-debug_sub_808E0AC:
- push {lr}
- add sp, sp, #0xfffffff8
- bl Menu_EraseScreen
- mov r0, #0x0
- mov r1, #0x0
- mov r2, #0x1d
- mov r3, #0xb
- bl Menu_DrawStdWindowFrame
- ldr r3, ._447 @ gUnknown_Debug_83C3AE0
- mov r0, #0x2
- mov r1, #0x1
- mov r2, #0x5
- bl Menu_PrintItems
- mov r0, #0x0
- str r0, [sp]
- mov r0, #0x1c
- str r0, [sp, #0x4]
- mov r0, #0x0
- mov r1, #0x1
- mov r2, #0x1
- mov r3, #0x5
- bl InitMenu
- ldr r1, ._447 + 4 @ gDebug_0300070F
- mov r0, #0x1
- strb r0, [r1]
- ldr r1, ._447 + 8 @ gMenuCallback
- ldr r0, ._447 + 12 @ debug_sub_808E264
- str r0, [r1]
- mov r0, #0x0
- add sp, sp, #0x8
- pop {r1}
- bx r1
-._448:
- .align 2, 0
-._447:
- .word gUnknown_Debug_83C3AE0
- .word gDebug_0300070F
- .word gMenuCallback
- .word debug_sub_808E264+1
-
- thumb_func_end debug_sub_808E0AC
-
- thumb_func_start debug_sub_808E104
-debug_sub_808E104:
- push {lr}
- add sp, sp, #0xfffffff8
- bl Menu_EraseScreen
- mov r0, #0x0
- mov r1, #0x0
- mov r2, #0x1d
- mov r3, #0x13
- bl Menu_DrawStdWindowFrame
- ldr r3, ._449 @ gUnknown_Debug_83C3B28
- mov r0, #0x2
- mov r1, #0x1
- mov r2, #0x9
- bl Menu_PrintItems
- mov r0, #0x0
- str r0, [sp]
- mov r0, #0x1c
- str r0, [sp, #0x4]
- mov r0, #0x0
- mov r1, #0x1
- mov r2, #0x1
- mov r3, #0x9
- bl InitMenu
- ldr r1, ._449 + 4 @ gDebug_0300070F
- mov r0, #0x2
- strb r0, [r1]
- ldr r1, ._449 + 8 @ gMenuCallback
- ldr r0, ._449 + 12 @ debug_sub_808E264
- str r0, [r1]
- mov r0, #0x0
- add sp, sp, #0x8
- pop {r1}
- bx r1
-._450:
- .align 2, 0
-._449:
- .word gUnknown_Debug_83C3B28
- .word gDebug_0300070F
- .word gMenuCallback
- .word debug_sub_808E264+1
-
- thumb_func_end debug_sub_808E104
-
- thumb_func_start debug_sub_808E15C
-debug_sub_808E15C:
- push {lr}
- add sp, sp, #0xfffffff8
- bl Menu_EraseScreen
- mov r0, #0x0
- mov r1, #0x0
- mov r2, #0x1d
- mov r3, #0x5
- bl Menu_DrawStdWindowFrame
- ldr r3, ._451 @ gUnknown_Debug_83C3B70
- mov r0, #0x2
- mov r1, #0x1
- mov r2, #0x2
- bl Menu_PrintItems
- mov r0, #0x0
- str r0, [sp]
- mov r0, #0x1c
- str r0, [sp, #0x4]
- mov r0, #0x0
- mov r1, #0x1
- mov r2, #0x1
- mov r3, #0x2
- bl InitMenu
- ldr r1, ._451 + 4 @ gDebug_0300070F
- mov r0, #0x3
- strb r0, [r1]
- ldr r1, ._451 + 8 @ gMenuCallback
- ldr r0, ._451 + 12 @ debug_sub_808E264
- str r0, [r1]
- mov r0, #0x0
- add sp, sp, #0x8
- pop {r1}
- bx r1
-._452:
- .align 2, 0
-._451:
- .word gUnknown_Debug_83C3B70
- .word gDebug_0300070F
- .word gMenuCallback
- .word debug_sub_808E264+1
-
- thumb_func_end debug_sub_808E15C
-
- thumb_func_start debug_sub_808E1B4
-debug_sub_808E1B4:
- push {lr}
- add sp, sp, #0xfffffff8
- bl Menu_EraseScreen
- mov r0, #0x0
- mov r1, #0x0
- mov r2, #0x1d
- mov r3, #0x13
- bl Menu_DrawStdWindowFrame
- ldr r3, ._453 @ gUnknown_Debug_83C3BB8
- mov r0, #0x2
- mov r1, #0x1
- mov r2, #0x9
- bl Menu_PrintItems
- mov r0, #0x0
- str r0, [sp]
- mov r0, #0x1c
- str r0, [sp, #0x4]
- mov r0, #0x0
- mov r1, #0x1
- mov r2, #0x1
- mov r3, #0x9
- bl InitMenu
- ldr r1, ._453 + 4 @ gDebug_0300070F
- mov r0, #0x4
- strb r0, [r1]
- ldr r1, ._453 + 8 @ gMenuCallback
- ldr r0, ._453 + 12 @ debug_sub_808E264
- str r0, [r1]
- mov r0, #0x0
- add sp, sp, #0x8
- pop {r1}
- bx r1
-._454:
- .align 2, 0
-._453:
- .word gUnknown_Debug_83C3BB8
- .word gDebug_0300070F
- .word gMenuCallback
- .word debug_sub_808E264+1
-
- thumb_func_end debug_sub_808E1B4
-
- thumb_func_start debug_sub_808E20C
-debug_sub_808E20C:
- push {lr}
- add sp, sp, #0xfffffff8
- bl Menu_EraseScreen
- mov r0, #0x0
- mov r1, #0x0
- mov r2, #0x1d
- mov r3, #0xd
- bl Menu_DrawStdWindowFrame
- ldr r3, ._455 @ gUnknown_Debug_83C3C00
- mov r0, #0x2
- mov r1, #0x1
- mov r2, #0x6
- bl Menu_PrintItems
- mov r0, #0x0
- str r0, [sp]
- mov r0, #0x1c
- str r0, [sp, #0x4]
- mov r0, #0x0
- mov r1, #0x1
- mov r2, #0x1
- mov r3, #0x6
- bl InitMenu
- ldr r1, ._455 + 4 @ gDebug_0300070F
- mov r0, #0x5
- strb r0, [r1]
- ldr r1, ._455 + 8 @ gMenuCallback
- ldr r0, ._455 + 12 @ debug_sub_808E264
- str r0, [r1]
- mov r0, #0x0
- add sp, sp, #0x8
- pop {r1}
- bx r1
-._456:
- .align 2, 0
-._455:
- .word gUnknown_Debug_83C3C00
- .word gDebug_0300070F
- .word gMenuCallback
- .word debug_sub_808E264+1
-
- thumb_func_end debug_sub_808E20C
-
- thumb_func_start debug_sub_808E264
-debug_sub_808E264:
- push {r4, r5, lr}
- bl Menu_ProcessInput
- add r4, r0, #0
- lsl r4, r4, #0x18
- lsr r4, r4, #0x18
- bl Menu_GetCursorPos
- add r1, r0, #0
- ldr r5, ._460 @ gDebug_0300070F
- ldrb r0, [r5]
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl debug_sub_808E310
- ldrb r0, [r5]
- bl debug_sub_808E2B0
- lsl r4, r4, #0x18
- asr r4, r4, #0x18
- mov r0, #0x2
- neg r0, r0
- cmp r4, r0
- beq ._457 @cond_branch
- mov r0, #0x1
- neg r0, r0
- cmp r4, r0
- beq ._458 @cond_branch
-._457:
- mov r0, #0x0
- b ._459
-._461:
- .align 2, 0
-._460:
- .word gDebug_0300070F
-._458:
- bl CloseMenu
- mov r0, #0x1
-._459:
- pop {r4, r5}
- pop {r1}
- bx r1
-
- thumb_func_end debug_sub_808E264
-
- thumb_func_start debug_sub_808E2B0
-debug_sub_808E2B0:
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- mov r5, #0x0
- ldr r0, ._464 @ gUnknown_Debug_083C3C48
- add r0, r1, r0
- ldrb r2, [r0]
- cmp r5, r2
- bcs ._462 @cond_branch
- ldr r0, ._464 + 4 @ gUnknown_Debug_83C3C4E
- mov r8, r0
- lsl r0, r1, #0x3
- add r0, r0, r1
- lsl r7, r0, #0x1
- add r6, r2, #0
-._463:
- lsl r0, r5, #0x1
- add r4, r0, #1
- lsl r4, r4, #0x18
- lsr r4, r4, #0x18
- add r0, r0, r7
- add r0, r0, r8
- ldrh r0, [r0]
- bl VarGet
- add r2, r0, #0
- lsl r2, r2, #0x10
- lsr r2, r2, #0x10
- mov r0, #0x18
- add r1, r4, #0
- bl debug_sub_808F31C
- add r0, r5, #1
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- cmp r5, r6
- bcc ._463 @cond_branch
-._462:
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
-._465:
- .align 2, 0
-._464:
- .word gUnknown_Debug_083C3C48
- .word gUnknown_Debug_83C3C4E
-
- thumb_func_end debug_sub_808E2B0
-
- thumb_func_start debug_sub_808E310
-debug_sub_808E310:
- push {r4, r5, lr}
- lsl r0, r0, #0x18
- lsr r2, r0, #0x18
- lsl r1, r1, #0x18
- lsr r3, r1, #0x18
- ldr r0, ._468 @ gMain
- ldrh r1, [r0, #0x2e]
- mov r0, #0x80
- lsl r0, r0, #0x1
- and r0, r0, r1
- cmp r0, #0
- beq ._466 @cond_branch
- mov r5, #0x1
- b ._467
-._469:
- .align 2, 0
-._468:
- .word gMain
-._466:
- mov r0, #0x80
- lsl r0, r0, #0x2
- and r0, r0, r1
- cmp r0, #0
- beq ._470 @cond_branch
- ldr r5, ._471 @ 0xffff
-._467:
- ldr r1, ._471 + 4 @ gUnknown_Debug_83C3C4E
- lsl r0, r2, #0x3
- add r0, r0, r2
- add r0, r0, r3
- lsl r0, r0, #0x1
- add r0, r0, r1
- ldrh r4, [r0]
- add r0, r4, #0
- bl VarGet
- add r1, r0, #0
- add r1, r5, r1
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- add r0, r4, #0
- bl VarSet
-._470:
- pop {r4, r5}
- pop {r0}
- bx r0
-._472:
- .align 2, 0
-._471:
- .word 0xffff
- .word gUnknown_Debug_83C3C4E
-
- thumb_func_end debug_sub_808E310
-
thumb_func_start debug_sub_808E36C
debug_sub_808E36C:
push {lr}
diff --git a/src/debug/tomomichi_debug_menu.c b/src/debug/tomomichi_debug_menu.c
index 03c520018..b741436a2 100644
--- a/src/debug/tomomichi_debug_menu.c
+++ b/src/debug/tomomichi_debug_menu.c
@@ -187,6 +187,10 @@ bool8 debug_sub_808DB5C(void);
bool8 debug_sub_808DEB8(void);
void debug_sub_808DF64(u8, u8);
void debug_sub_808DF04(u8);
+bool8 debug_sub_808E010(void);
+bool8 debug_sub_808E264(void);
+void debug_sub_808E310(u8, u8);
+void debug_sub_808E2B0(u8);
extern const u8 DebugScript_081C1CFE[];
extern const u8 DebugScript_081C1D07[];
@@ -3420,4 +3424,135 @@ void debug_sub_808DF64(u8 whichMenu, u8 cursorPos)
VarSet(gUnknown_Debug_083C4586[whichMenu][cursorPos], VarGet(gUnknown_Debug_083C4586[whichMenu][cursorPos]) + delta);
}
+bool8 debug_sub_808DFC0(void)
+{
+ Menu_EraseScreen();
+ Menu_DrawStdWindowFrame(0, 0, 24, 2 * ARRAY_COUNT(gUnknown_Debug_083C377C) + 1);
+ Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C377C), gUnknown_Debug_083C377C);
+ InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C377C), 0, 23);
+ gMenuCallback = debug_sub_808E010;
+ return FALSE;
+}
+
+bool8 debug_sub_808E010(void)
+{
+ s8 input = Menu_ProcessInput();
+
+ if (input == -2)
+ return FALSE;
+ if (input == -1)
+ {
+ CloseMenu();
+ return TRUE;
+ }
+ gMenuCallback = gUnknown_Debug_083C377C[input].func;
+ return FALSE;
+}
+
+bool8 debug_sub_808E054(void)
+{
+ Menu_EraseScreen();
+ Menu_DrawStdWindowFrame(0, 0, 29, 2 * 6 + 1);
+ Menu_PrintItems(2, 1, 6, gUnknown_Debug_083C3AA0);
+ InitMenu(0, 1, 1, 6, 0, 28);
+ gDebug_0300070F = 0;
+ gMenuCallback = debug_sub_808E264;
+ return FALSE;
+}
+
+bool8 debug_sub_808E0AC(void)
+{
+ Menu_EraseScreen();
+ Menu_DrawStdWindowFrame(0, 0, 29, 2 * 5 + 1);
+ Menu_PrintItems(2, 1, 5, gUnknown_Debug_83C3AE0);
+ InitMenu(0, 1, 1, 5, 0, 28);
+ gDebug_0300070F = 1;
+ gMenuCallback = debug_sub_808E264;
+ return FALSE;
+}
+
+bool8 debug_sub_808E104(void)
+{
+ Menu_EraseScreen();
+ Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_83C3B28) + 1);
+ Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_83C3B28), gUnknown_Debug_83C3B28);
+ InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_83C3B28), 0, 28);
+ gDebug_0300070F = 2;
+ gMenuCallback = debug_sub_808E264;
+ return FALSE;
+}
+
+bool8 debug_sub_808E15C(void)
+{
+ Menu_EraseScreen();
+ Menu_DrawStdWindowFrame(0, 0, 29, 2 * 2 + 1);
+ Menu_PrintItems(2, 1, 2, gUnknown_Debug_83C3B70);
+ InitMenu(0, 1, 1, 2, 0, 28);
+ gDebug_0300070F = 3;
+ gMenuCallback = debug_sub_808E264;
+ return FALSE;
+}
+
+bool8 debug_sub_808E1B4(void)
+{
+ Menu_EraseScreen();
+ Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_83C3BB8) + 1);
+ Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_83C3BB8), gUnknown_Debug_83C3BB8);
+ InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_83C3BB8), 0, 28);
+ gDebug_0300070F = 4;
+ gMenuCallback = debug_sub_808E264;
+ return FALSE;
+}
+
+bool8 debug_sub_808E20C(void)
+{
+ Menu_EraseScreen();
+ Menu_DrawStdWindowFrame(0, 0, 29, 2 * 6 + 1);
+ Menu_PrintItems(2, 1, 6, gUnknown_Debug_83C3C00);
+ InitMenu(0, 1, 1, 6, 0, 28);
+ gDebug_0300070F = 5;
+ gMenuCallback = debug_sub_808E264;
+ return FALSE;
+}
+
+bool8 debug_sub_808E264(void)
+{
+ s8 input = Menu_ProcessInput();
+ s8 cursorPos = Menu_GetCursorPos();
+
+ debug_sub_808E310(gDebug_0300070F, cursorPos);
+ debug_sub_808E2B0(gDebug_0300070F);
+ if (input == -2)
+ return FALSE;
+ if (input == -1)
+ {
+ CloseMenu();
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void debug_sub_808E2B0(u8 whichMenu)
+{
+ u8 i;
+
+ for (i = 0; i < gUnknown_Debug_083C3C48[whichMenu]; i++)
+ {
+ debug_sub_808F31C(24, 2 * i + 1, VarGet(gUnknown_Debug_83C3C4E[whichMenu][i]));
+ }
+}
+
+void debug_sub_808E310(u8 whichMenu, u8 cursorPos)
+{
+ u16 delta;
+
+ if (gMain.newKeys & R_BUTTON)
+ delta = +1;
+ else if (gMain.newKeys & L_BUTTON)
+ delta = -1;
+ else
+ return;
+ VarSet(gUnknown_Debug_83C3C4E[whichMenu][cursorPos], VarGet(gUnknown_Debug_83C3C4E[whichMenu][cursorPos]) + delta);
+}
+
#endif