diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-03-12 23:37:16 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-03-12 23:37:16 -0400 |
commit | 187bc5f6a17ca53390fa95d9ec836fcc228d4b03 (patch) | |
tree | 90061145dbc0dc61bfa95b3f903b8eceaa623b16 | |
parent | 017d462feddbf3101c22c8d95901c1ad50f8f406 (diff) |
through debug_sub_808E310
-rw-r--r-- | asm/tomomichi_debug_menu.s | 495 | ||||
-rw-r--r-- | src/debug/tomomichi_debug_menu.c | 135 |
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 |