diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-03-12 08:25:17 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-03-12 08:25:17 -0400 |
commit | 2467956243043cff17fa6636098d5b7e5506f5d7 (patch) | |
tree | 35acfda95403e25fa2a6f443bd037f284f7a2e6b | |
parent | aa1e7c8cd89bde9fd044ed12cdce294e0d3ba53d (diff) |
through debug_sub_808D59C
-rw-r--r-- | asm/tomomichi_debug_menu.s | 310 | ||||
-rw-r--r-- | src/debug/tomomichi_debug_menu.c | 93 |
2 files changed, 91 insertions, 312 deletions
diff --git a/asm/tomomichi_debug_menu.s b/asm/tomomichi_debug_menu.s index db5247be4..1661c2da3 100644 --- a/asm/tomomichi_debug_menu.s +++ b/asm/tomomichi_debug_menu.s @@ -3,316 +3,6 @@ .include "constants/gba_constants.inc" .include "include/macros.inc" - thumb_func_start debug_sub_808D3BC -debug_sub_808D3BC: - push {lr} - add sp, sp, #0xfffffff8 - bl Menu_EraseScreen - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1c - mov r3, #0x5 - bl Menu_DrawStdWindowFrame - ldr r3, ._305 @ gUnknown_Debug_083C105C - mov r0, #0x2 - mov r1, #0x1 - mov r2, #0x2 - bl Menu_PrintItems - mov r0, #0x0 - str r0, [sp] - mov r0, #0x1b - str r0, [sp, #0x4] - mov r0, #0x0 - mov r1, #0x1 - mov r2, #0x1 - mov r3, #0x2 - bl InitMenu - ldr r1, ._305 + 4 @ gMenuCallback - ldr r0, ._305 + 8 @ debug_sub_808D40C - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._306: - .align 2, 0 -._305: - .word gUnknown_Debug_083C105C - .word gMenuCallback - .word debug_sub_808D40C+1 - - thumb_func_end debug_sub_808D3BC - - thumb_func_start debug_sub_808D40C -debug_sub_808D40C: - push {lr} - bl Menu_ProcessInput - lsl r0, r0, #0x18 - asr r1, r0, #0x18 - mov r0, #0x2 - neg r0, r0 - cmp r1, r0 - bne ._307 @cond_branch - mov r0, #0x0 - b ._310 -._307: - mov r0, #0x1 - neg r0, r0 - cmp r1, r0 - beq ._309 @cond_branch - ldr r2, ._311 @ gMenuCallback - ldr r0, ._311 + 4 @ gUnknown_Debug_083C105C - lsl r1, r1, #0x3 - add r0, r0, #0x4 - add r1, r1, r0 - ldr r0, [r1] - str r0, [r2] - mov r0, #0x0 - b ._310 -._312: - .align 2, 0 -._311: - .word gMenuCallback - .word gUnknown_Debug_083C105C -._309: - bl CloseMenu - mov r0, #0x1 -._310: - pop {r1} - bx r1 - - thumb_func_end debug_sub_808D40C - - thumb_func_start debug_sub_808D450 -debug_sub_808D450: - push {r4, 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, ._313 @ gUnknown_Debug_083C10BD - mov r0, #0x2 - mov r1, #0x1 - mov r2, #0x9 - 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, #0x9 - bl InitMenu - ldr r0, ._313 + 4 @ gDebug_0300070F - strb r4, [r0] - ldr r1, ._313 + 8 @ gMenuCallback - ldr r0, ._313 + 12 @ debug_sub_808D500 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r4} - pop {r1} - bx r1 -._314: - .align 2, 0 -._313: - .word gUnknown_Debug_083C10BD - .word gDebug_0300070F - .word gMenuCallback - .word debug_sub_808D500+1 - - thumb_func_end debug_sub_808D450 - - thumb_func_start debug_sub_808D4A8 -debug_sub_808D4A8: - push {lr} - add sp, sp, #0xfffffff8 - bl Menu_EraseScreen - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0xf - bl Menu_DrawStdWindowFrame - ldr r3, ._315 @ gUnknown_Debug_083C1149 - mov r0, #0x2 - mov r1, #0x1 - mov r2, #0x7 - 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, #0x7 - bl InitMenu - ldr r1, ._315 + 4 @ gDebug_0300070F - mov r0, #0x1 - strb r0, [r1] - ldr r1, ._315 + 8 @ gMenuCallback - ldr r0, ._315 + 12 @ debug_sub_808D500 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._316: - .align 2, 0 -._315: - .word gUnknown_Debug_083C1149 - .word gDebug_0300070F - .word gMenuCallback - .word debug_sub_808D500+1 - - thumb_func_end debug_sub_808D4A8 - - thumb_func_start debug_sub_808D500 -debug_sub_808D500: - 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, ._320 @ gDebug_0300070F - ldrb r0, [r5] - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - bl debug_sub_808D54C - ldrb r0, [r5] - bl debug_sub_808D59C - lsl r4, r4, #0x18 - asr r4, r4, #0x18 - mov r0, #0x2 - neg r0, r0 - cmp r4, r0 - beq ._317 @cond_branch - mov r0, #0x1 - neg r0, r0 - cmp r4, r0 - beq ._318 @cond_branch -._317: - mov r0, #0x0 - b ._319 -._321: - .align 2, 0 -._320: - .word gDebug_0300070F -._318: - bl CloseMenu - mov r0, #0x1 -._319: - pop {r4, r5} - pop {r1} - bx r1 - - thumb_func_end debug_sub_808D500 - - thumb_func_start debug_sub_808D54C -debug_sub_808D54C: - push {r4, lr} - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - lsl r1, r1, #0x18 - lsr r3, r1, #0x18 - ldr r0, ._325 @ gMain - ldrh r1, [r0, #0x2e] - mov r0, #0x80 - lsl r0, r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._324 @cond_branch - ldr r0, ._325 + 4 @ gUnknown_Debug_083C1196 - lsl r1, r2, #0x3 - add r1, r1, r2 - add r1, r1, r3 - lsl r1, r1, #0x1 - add r1, r1, r0 - ldrh r4, [r1] - add r0, r4, #0 - bl FlagGet - lsl r0, r0, #0x18 - cmp r0, #0 - bne ._323 @cond_branch - add r0, r4, #0 - bl FlagSet - b ._324 -._326: - .align 2, 0 -._325: - .word gMain - .word gUnknown_Debug_083C1196 -._323: - add r0, r4, #0 - bl FlagClear -._324: - pop {r4} - pop {r0} - bx r0 - - thumb_func_end debug_sub_808D54C - - thumb_func_start debug_sub_808D59C -debug_sub_808D59C: - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - mov r5, #0x0 - ldr r0, ._329 @ gUnknown_Debug_083C1194 - add r0, r1, r0 - ldrb r2, [r0] - cmp r5, r2 - bcs ._327 @cond_branch - ldr r0, ._329 + 4 @ gUnknown_Debug_083C1196 - mov r8, r0 - lsl r0, r1, #0x3 - add r0, r0, r1 - lsl r7, r0, #0x1 - add r6, r2, #0 -._328: - 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 FlagGet - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - neg r2, r0 - orr r2, r2, r0 - lsr r2, r2, #0x1f - mov r0, #0x1c - add r1, r4, #0 - bl debug_sub_808F2E0 - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, r6 - bcc ._328 @cond_branch -._327: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._330: - .align 2, 0 -._329: - .word gUnknown_Debug_083C1194 - .word gUnknown_Debug_083C1196 - - thumb_func_end debug_sub_808D59C - thumb_func_start debug_sub_808D600 debug_sub_808D600: push {lr} diff --git a/src/debug/tomomichi_debug_menu.c b/src/debug/tomomichi_debug_menu.c index 4d2d234bf..f0c11c8d6 100644 --- a/src/debug/tomomichi_debug_menu.c +++ b/src/debug/tomomichi_debug_menu.c @@ -158,15 +158,19 @@ bool8 debug_sub_808DE60(void); bool8 debug_sub_808E754(void); bool8 debug_sub_808E7AC(void); void debug_sub_808CBC0(u8, u8); +void debug_sub_808CC10(u8); bool8 debug_sub_808CCC4(void); bool8 debug_sub_808CE10(void); -void debug_sub_808CC10(u8); void debug_sub_808CE5C(u8, u8); +void debug_sub_808CEAC(u8); bool8 debug_sub_808CF60(void); bool8 debug_sub_808D2BC(void); -void debug_sub_808CEAC(u8); void debug_sub_808D308(u8, u8); void debug_sub_808D358(u8); +bool8 debug_sub_808D40C(void); +bool8 debug_sub_808D500(void); +void debug_sub_808D54C(u8, u8); +void debug_sub_808D59C(u8); extern const u8 DebugScript_081C1CFE[]; extern const u8 DebugScript_081C1D07[]; @@ -2943,4 +2947,89 @@ void debug_sub_808D358(u8 whichMenu) } } +bool8 debug_sub_808D3BC(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 28, 2 * ARRAY_COUNT(gUnknown_Debug_083C105C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C105C), gUnknown_Debug_083C105C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C105C), 0, 27); + gMenuCallback = debug_sub_808D40C; + return FALSE; +} + +bool8 debug_sub_808D40C(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = gUnknown_Debug_083C105C[input].func; + return FALSE; +} + +bool8 debug_sub_808D450(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C10BD) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C10BD), gUnknown_Debug_083C10BD); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C10BD), 0, 28); + gDebug_0300070F = 0; + gMenuCallback = debug_sub_808D500; + return FALSE; +} + +bool8 debug_sub_808D4A8(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * 7 + 1); + Menu_PrintItems(2, 1, 7, gUnknown_Debug_083C1149); + InitMenu(0, 1, 1, 7, 0, 28); + gDebug_0300070F = 1; + gMenuCallback = debug_sub_808D500; + return FALSE; +} + +bool8 debug_sub_808D500(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808D54C(gDebug_0300070F, cursorPos); + debug_sub_808D59C(gDebug_0300070F); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +void debug_sub_808D54C(u8 whichMenu, u8 cursorPos) +{ + if (gMain.newKeys & R_BUTTON) + { + if (!FlagGet(gUnknown_Debug_083C1196[whichMenu][cursorPos])) + FlagSet(gUnknown_Debug_083C1196[whichMenu][cursorPos]); + else + FlagClear(gUnknown_Debug_083C1196[whichMenu][cursorPos]); + } +} + +void debug_sub_808D59C(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C1194[whichMenu]; i++) + { + debug_sub_808F2E0(28, 2 * i + 1, FlagGet(gUnknown_Debug_083C1196[whichMenu][i]) ? TRUE : FALSE); + } +} + #endif |