diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-03-12 23:21:23 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-03-12 23:21:23 -0400 |
commit | 017d462feddbf3101c22c8d95901c1ad50f8f406 (patch) | |
tree | b010504b98f2701774b01d9600d58acdd03aba37 | |
parent | d5ccd132e0043405bae5337919c8678817417b4c (diff) |
through debug_sub_808DF64
-rw-r--r-- | asm/tomomichi_debug_menu.s | 1021 | ||||
-rw-r--r-- | src/debug/tomomichi_debug_menu.c | 359 |
2 files changed, 329 insertions, 1051 deletions
diff --git a/asm/tomomichi_debug_menu.s b/asm/tomomichi_debug_menu.s index 98ce3da92..8c60faedb 100644 --- a/asm/tomomichi_debug_menu.s +++ b/asm/tomomichi_debug_menu.s @@ -3,1027 +3,6 @@ .include "constants/gba_constants.inc" .include "include/macros.inc" - thumb_func_start debug_sub_808D844 -debug_sub_808D844: - push {lr} - add sp, sp, #0xfffffff8 - bl Menu_EraseScreen - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1c - mov r3, #0x3 - bl Menu_DrawStdWindowFrame - ldr r3, ._357 @ gUnknown_Debug_083C1A78 - mov r0, #0x2 - mov r1, #0x1 - mov r2, #0x1 - 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, #0x1 - bl InitMenu - ldr r1, ._357 + 4 @ gMenuCallback - ldr r0, ._357 + 8 @ debug_sub_808D894 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._358: - .align 2, 0 -._357: - .word gUnknown_Debug_083C1A78 - .word gMenuCallback - .word debug_sub_808D894+1 - - thumb_func_end debug_sub_808D844 - - thumb_func_start debug_sub_808D894 -debug_sub_808D894: - push {lr} - bl Menu_ProcessInput - lsl r0, r0, #0x18 - asr r3, r0, #0x18 - mov r0, #0x2 - neg r0, r0 - cmp r3, r0 - bne ._359 @cond_branch - mov r0, #0x0 - b ._362 -._359: - mov r0, #0x1 - neg r0, r0 - cmp r3, r0 - beq ._361 @cond_branch - ldr r2, ._363 @ gMenuCallback - ldr r1, ._363 + 4 @ gUnknown_Debug_083C1A78 - lsl r0, r3, #0x3 - add r0, r0, r1 - ldr r0, [r0, #0x4] - str r0, [r2] - mov r0, #0x0 - b ._362 -._364: - .align 2, 0 -._363: - .word gMenuCallback - .word gUnknown_Debug_083C1A78 -._361: - bl CloseMenu - mov r0, #0x1 -._362: - pop {r1} - bx r1 - - thumb_func_end debug_sub_808D894 - - thumb_func_start debug_sub_808D8D8 -debug_sub_808D8D8: - push {r4, 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, ._365 @ gUnknown_Debug_083C1A9C - mov r0, #0x2 - mov r1, #0x1 - mov r2, #0x2 - 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, #0x2 - bl InitMenu - ldr r0, ._365 + 4 @ gDebug_0300070F - strb r4, [r0] - ldr r1, ._365 + 8 @ gMenuCallback - ldr r0, ._365 + 12 @ debug_sub_808D930 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r4} - pop {r1} - bx r1 -._366: - .align 2, 0 -._365: - .word gUnknown_Debug_083C1A9C - .word gDebug_0300070F - .word gMenuCallback - .word debug_sub_808D930+1 - - thumb_func_end debug_sub_808D8D8 - - thumb_func_start debug_sub_808D930 -debug_sub_808D930: - 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, ._370 @ gDebug_0300070F - ldrb r0, [r5] - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - bl debug_sub_808D97C - ldrb r0, [r5] - bl debug_sub_808D9CC - lsl r4, r4, #0x18 - asr r4, r4, #0x18 - mov r0, #0x2 - neg r0, r0 - cmp r4, r0 - beq ._367 @cond_branch - mov r0, #0x1 - neg r0, r0 - cmp r4, r0 - beq ._368 @cond_branch -._367: - mov r0, #0x0 - b ._369 -._371: - .align 2, 0 -._370: - .word gDebug_0300070F -._368: - bl CloseMenu - mov r0, #0x1 -._369: - pop {r4, r5} - pop {r1} - bx r1 - - thumb_func_end debug_sub_808D930 - - thumb_func_start debug_sub_808D97C -debug_sub_808D97C: - push {r4, lr} - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - lsl r1, r1, #0x18 - lsr r3, r1, #0x18 - ldr r0, ._375 @ gMain - ldrh r1, [r0, #0x2e] - mov r0, #0x80 - lsl r0, r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._374 @cond_branch - ldr r0, ._375 + 4 @ gUnknown_Debug_083C1AAE - 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 ._373 @cond_branch - add r0, r4, #0 - bl FlagSet - b ._374 -._376: - .align 2, 0 -._375: - .word gMain - .word gUnknown_Debug_083C1AAE -._373: - add r0, r4, #0 - bl FlagClear -._374: - pop {r4} - pop {r0} - bx r0 - - thumb_func_end debug_sub_808D97C - - thumb_func_start debug_sub_808D9CC -debug_sub_808D9CC: - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - mov r5, #0x0 - ldr r0, ._379 @ gUnknown_Debug_083C1AAC - add r0, r1, r0 - ldrb r2, [r0] - cmp r5, r2 - bcs ._377 @cond_branch - ldr r0, ._379 + 4 @ gUnknown_Debug_083C1AAE - mov r8, r0 - lsl r0, r1, #0x3 - add r0, r0, r1 - lsl r7, r0, #0x1 - add r6, r2, #0 -._378: - 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 ._378 @cond_branch -._377: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._380: - .align 2, 0 -._379: - .word gUnknown_Debug_083C1AAC - .word gUnknown_Debug_083C1AAE - - thumb_func_end debug_sub_808D9CC - - thumb_func_start debug_sub_808DA30 -debug_sub_808DA30: - push {lr} - add sp, sp, #0xfffffff8 - bl Menu_EraseScreen - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x3 - bl Menu_DrawStdWindowFrame - ldr r3, ._381 @ gUnknown_Debug_083C103A - mov r0, #0x2 - mov r1, #0x1 - mov r2, #0x1 - 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, #0x1 - bl InitMenu - ldr r1, ._381 + 4 @ gMenuCallback - ldr r0, ._381 + 8 @ debug_sub_808DA80 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._382: - .align 2, 0 -._381: - .word gUnknown_Debug_083C103A - .word gMenuCallback - .word debug_sub_808DA80+1 - - thumb_func_end debug_sub_808DA30 - - thumb_func_start debug_sub_808DA80 -debug_sub_808DA80: - push {r4, lr} - bl Menu_ProcessInput - add r4, r0, #0 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - bl Menu_GetCursorPos - bl debug_sub_808DAD4 - bl debug_sub_808DABC - lsl r4, r4, #0x18 - asr r4, r4, #0x18 - mov r0, #0x2 - neg r0, r0 - cmp r4, r0 - beq ._383 @cond_branch - mov r0, #0x1 - neg r0, r0 - cmp r4, r0 - beq ._384 @cond_branch -._383: - mov r0, #0x0 - b ._385 -._384: - bl CloseMenu - mov r0, #0x1 -._385: - pop {r4} - pop {r1} - bx r1 - - thumb_func_end debug_sub_808DA80 - - thumb_func_start debug_sub_808DABC -debug_sub_808DABC: - push {lr} - ldr r0, ._386 @ gSpecialVar_Result - ldrh r2, [r0] - mov r0, #0x18 - mov r1, #0x1 - bl debug_sub_808F31C - pop {r0} - bx r0 -._387: - .align 2, 0 -._386: - .word gSpecialVar_Result - - thumb_func_end debug_sub_808DABC - - thumb_func_start debug_sub_808DAD4 -debug_sub_808DAD4: - push {lr} - ldr r0, ._390 @ gMain - ldrh r1, [r0, #0x2e] - mov r0, #0x80 - lsl r0, r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._388 @cond_branch - mov r2, #0x1 - b ._389 -._391: - .align 2, 0 -._390: - .word gMain -._388: - mov r0, #0x80 - lsl r0, r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - beq ._392 @cond_branch - ldr r2, ._393 @ 0xffff -._389: - ldr r1, ._393 + 4 @ gSpecialVar_Result - ldrh r0, [r1] - add r0, r2, r0 - strh r0, [r1] -._392: - pop {r0} - bx r0 -._394: - .align 2, 0 -._393: - .word 0xffff - .word gSpecialVar_Result - - thumb_func_end debug_sub_808DAD4 - - thumb_func_start debug_sub_808DB0C -debug_sub_808DB0C: - push {lr} - add sp, sp, #0xfffffff8 - bl Menu_EraseScreen - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x18 - mov r3, #0x13 - bl Menu_DrawStdWindowFrame - ldr r3, ._395 @ gUnknown_Debug_083C3D08 - mov r0, #0x2 - mov r1, #0x1 - mov r2, #0x9 - 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, #0x9 - bl InitMenu - ldr r1, ._395 + 4 @ gMenuCallback - ldr r0, ._395 + 8 @ debug_sub_808DB5C - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._396: - .align 2, 0 -._395: - .word gUnknown_Debug_083C3D08 - .word gMenuCallback - .word debug_sub_808DB5C+1 - - thumb_func_end debug_sub_808DB0C - - thumb_func_start debug_sub_808DB5C -debug_sub_808DB5C: - push {lr} - bl Menu_ProcessInput - lsl r0, r0, #0x18 - asr r1, r0, #0x18 - mov r0, #0x2 - neg r0, r0 - cmp r1, r0 - bne ._397 @cond_branch - mov r0, #0x0 - b ._400 -._397: - mov r0, #0x1 - neg r0, r0 - cmp r1, r0 - beq ._399 @cond_branch - ldr r2, ._401 @ gMenuCallback - ldr r0, ._401 + 4 @ gUnknown_Debug_083C3D08 - lsl r1, r1, #0x3 - add r0, r0, #0x4 - add r1, r1, r0 - ldr r0, [r1] - str r0, [r2] - mov r0, #0x0 - b ._400 -._402: - .align 2, 0 -._401: - .word gMenuCallback - .word gUnknown_Debug_083C3D08 -._399: - bl CloseMenu - mov r0, #0x1 -._400: - pop {r1} - bx r1 - - thumb_func_end debug_sub_808DB5C - - thumb_func_start debug_sub_808DBA0 -debug_sub_808DBA0: - push {r4, lr} - add sp, sp, #0xfffffff8 - bl Menu_EraseScreen - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x11 - bl Menu_DrawStdWindowFrame - ldr r3, ._403 @ gUnknown_Debug_083C432C - mov r0, #0x2 - mov r1, #0x1 - mov r2, #0x8 - 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, #0x8 - bl InitMenu - ldr r0, ._403 + 4 @ gDebug_0300070F - strb r4, [r0] - ldr r1, ._403 + 8 @ gMenuCallback - ldr r0, ._403 + 12 @ debug_sub_808DEB8 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r4} - pop {r1} - bx r1 -._404: - .align 2, 0 -._403: - .word gUnknown_Debug_083C432C - .word gDebug_0300070F - .word gMenuCallback - .word debug_sub_808DEB8+1 - - thumb_func_end debug_sub_808DBA0 - - thumb_func_start debug_sub_808DBF8 -debug_sub_808DBF8: - 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, ._405 @ gUnknown_Debug_083C436C - 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, ._405 + 4 @ gDebug_0300070F - mov r0, #0x1 - strb r0, [r1] - ldr r1, ._405 + 8 @ gMenuCallback - ldr r0, ._405 + 12 @ debug_sub_808DEB8 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._406: - .align 2, 0 -._405: - .word gUnknown_Debug_083C436C - .word gDebug_0300070F - .word gMenuCallback - .word debug_sub_808DEB8+1 - - thumb_func_end debug_sub_808DBF8 - - thumb_func_start debug_sub_808DC50 -debug_sub_808DC50: - 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, ._407 @ gUnknown_Debug_083C43B4 - 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, ._407 + 4 @ gDebug_0300070F - mov r0, #0x2 - strb r0, [r1] - ldr r1, ._407 + 8 @ gMenuCallback - ldr r0, ._407 + 12 @ debug_sub_808DEB8 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._408: - .align 2, 0 -._407: - .word gUnknown_Debug_083C43B4 - .word gDebug_0300070F - .word gMenuCallback - .word debug_sub_808DEB8+1 - - thumb_func_end debug_sub_808DC50 - - thumb_func_start debug_sub_808DCA8 -debug_sub_808DCA8: - 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, ._409 @ gUnknown_Debug_083C43FC - 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, ._409 + 4 @ gDebug_0300070F - mov r0, #0x3 - strb r0, [r1] - ldr r1, ._409 + 8 @ gMenuCallback - ldr r0, ._409 + 12 @ debug_sub_808DEB8 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._410: - .align 2, 0 -._409: - .word gUnknown_Debug_083C43FC - .word gDebug_0300070F - .word gMenuCallback - .word debug_sub_808DEB8+1 - - thumb_func_end debug_sub_808DCA8 - - thumb_func_start debug_sub_808DD00 -debug_sub_808DD00: - 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, ._411 @ gUnknown_Debug_083C4444 - 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, ._411 + 4 @ gDebug_0300070F - mov r0, #0x4 - strb r0, [r1] - ldr r1, ._411 + 8 @ gMenuCallback - ldr r0, ._411 + 12 @ debug_sub_808DEB8 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._412: - .align 2, 0 -._411: - .word gUnknown_Debug_083C4444 - .word gDebug_0300070F - .word gMenuCallback - .word debug_sub_808DEB8+1 - - thumb_func_end debug_sub_808DD00 - - thumb_func_start debug_sub_808DD58 -debug_sub_808DD58: - 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, ._413 @ gUnknown_Debug_083C448C - 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, ._413 + 4 @ gDebug_0300070F - mov r0, #0x5 - strb r0, [r1] - ldr r1, ._413 + 8 @ gMenuCallback - ldr r0, ._413 + 12 @ debug_sub_808DEB8 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._414: - .align 2, 0 -._413: - .word gUnknown_Debug_083C448C - .word gDebug_0300070F - .word gMenuCallback - .word debug_sub_808DEB8+1 - - thumb_func_end debug_sub_808DD58 - - thumb_func_start debug_sub_808DDB0 -debug_sub_808DDB0: - 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, ._415 @ gUnknown_Debug_83C44C4 - 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, ._415 + 4 @ gDebug_0300070F - mov r0, #0x6 - strb r0, [r1] - ldr r1, ._415 + 8 @ gMenuCallback - ldr r0, ._415 + 12 @ debug_sub_808DEB8 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._416: - .align 2, 0 -._415: - .word gUnknown_Debug_83C44C4 - .word gDebug_0300070F - .word gMenuCallback - .word debug_sub_808DEB8+1 - - thumb_func_end debug_sub_808DDB0 - - thumb_func_start debug_sub_808DE08 -debug_sub_808DE08: - 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, ._417 @ gUnknown_Debug_83C44EC - 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, ._417 + 4 @ gDebug_0300070F - mov r0, #0x7 - strb r0, [r1] - ldr r1, ._417 + 8 @ gMenuCallback - ldr r0, ._417 + 12 @ debug_sub_808DEB8 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._418: - .align 2, 0 -._417: - .word gUnknown_Debug_83C44EC - .word gDebug_0300070F - .word gMenuCallback - .word debug_sub_808DEB8+1 - - thumb_func_end debug_sub_808DE08 - - thumb_func_start debug_sub_808DE60 -debug_sub_808DE60: - 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, ._419 @ gUnknown_Debug_083C4534 - 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, ._419 + 4 @ gDebug_0300070F - mov r0, #0x8 - strb r0, [r1] - ldr r1, ._419 + 8 @ gMenuCallback - ldr r0, ._419 + 12 @ debug_sub_808DEB8 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._420: - .align 2, 0 -._419: - .word gUnknown_Debug_083C4534 - .word gDebug_0300070F - .word gMenuCallback - .word debug_sub_808DEB8+1 - - thumb_func_end debug_sub_808DE60 - - thumb_func_start debug_sub_808DEB8 -debug_sub_808DEB8: - 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, ._424 @ gDebug_0300070F - ldrb r0, [r5] - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - bl debug_sub_808DF64 - ldrb r0, [r5] - bl debug_sub_808DF04 - lsl r4, r4, #0x18 - asr r4, r4, #0x18 - mov r0, #0x2 - neg r0, r0 - cmp r4, r0 - beq ._421 @cond_branch - mov r0, #0x1 - neg r0, r0 - cmp r4, r0 - beq ._422 @cond_branch -._421: - mov r0, #0x0 - b ._423 -._425: - .align 2, 0 -._424: - .word gDebug_0300070F -._422: - bl CloseMenu - mov r0, #0x1 -._423: - pop {r4, r5} - pop {r1} - bx r1 - - thumb_func_end debug_sub_808DEB8 - - thumb_func_start debug_sub_808DF04 -debug_sub_808DF04: - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - mov r5, #0x0 - ldr r0, ._428 @ gUnknown_Debug_083C457C - add r0, r1, r0 - ldrb r2, [r0] - cmp r5, r2 - bcs ._426 @cond_branch - ldr r0, ._428 + 4 @ gUnknown_Debug_083C4586 - mov r8, r0 - lsl r0, r1, #0x3 - add r0, r0, r1 - lsl r7, r0, #0x1 - add r6, r2, #0 -._427: - 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 ._427 @cond_branch -._426: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._429: - .align 2, 0 -._428: - .word gUnknown_Debug_083C457C - .word gUnknown_Debug_083C4586 - - thumb_func_end debug_sub_808DF04 - - thumb_func_start debug_sub_808DF64 -debug_sub_808DF64: - push {r4, r5, lr} - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - lsl r1, r1, #0x18 - lsr r3, r1, #0x18 - ldr r0, ._432 @ gMain - ldrh r1, [r0, #0x2e] - mov r0, #0x80 - lsl r0, r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._430 @cond_branch - mov r5, #0x1 - b ._431 -._433: - .align 2, 0 -._432: - .word gMain -._430: - mov r0, #0x80 - lsl r0, r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - beq ._434 @cond_branch - ldr r5, ._435 @ 0xffff -._431: - ldr r1, ._435 + 4 @ gUnknown_Debug_083C4586 - 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 -._434: - pop {r4, r5} - pop {r0} - bx r0 -._436: - .align 2, 0 -._435: - .word 0xffff - .word gUnknown_Debug_083C4586 - - thumb_func_end debug_sub_808DF64 - thumb_func_start debug_sub_808DFC0 debug_sub_808DFC0: push {lr} diff --git a/src/debug/tomomichi_debug_menu.c b/src/debug/tomomichi_debug_menu.c index 0c72b8e66..03c520018 100644 --- a/src/debug/tomomichi_debug_menu.c +++ b/src/debug/tomomichi_debug_menu.c @@ -175,6 +175,18 @@ bool8 debug_sub_808D650(void); bool8 debug_sub_808D744(void); void debug_sub_808D790(u8, u8); void debug_sub_808D7E0(u8); +bool8 debug_sub_808D894(void); +bool8 debug_sub_808D930(void); +void debug_sub_808D97C(u8, u8); +void debug_sub_808D9CC(u8); +bool8 debug_sub_808DA80(void); +void debug_sub_808DAD4(void); +void debug_sub_808DABC(void); +void debug_sub_808F31C(u8, u8, u16); +bool8 debug_sub_808DB5C(void); +bool8 debug_sub_808DEB8(void); +void debug_sub_808DF64(u8, u8); +void debug_sub_808DF04(u8); extern const u8 DebugScript_081C1CFE[]; extern const u8 DebugScript_081C1D07[]; @@ -1308,11 +1320,11 @@ const struct MenuAction gUnknown_Debug_083C351C[] = { const u8 gUnknown_Debug_083C3544[] = {3, 2, 6, 9, 5}; const u16 gUnknown_Debug_083C354A[][9] = { - {0x4027, 0x4028, 0x4029}, - {0x4047, 0x404F}, - {0x4021, 0x4022, 0x4048, 0x404A, 0x402A, 0x402B}, - {0x4020, 0x4023, 0x4024, 0x4025, 0x4040, 0x4041, 0x4042, 0x4044, 0x4045}, - {0x4046, 0x4049, 0x404B, 0x404C, 0x4026} + {VAR_CYCLING_ROAD_RECORD_COLLISIONS, VAR_CYCLING_ROAD_RECORD_TIME_L, VAR_CYCLING_ROAD_RECORD_TIME_H}, + {VAR_SHROOMISH_SIZE_RECORD, VAR_BARBOACH_SIZE_RECORD}, + {VAR_REPEL_STEP_COUNT, VAR_ICE_STEP_COUNT, VAR_ASH_GATHER_COUNT, VAR_CRUISE_STEP_COUNT, VAR_HAPPINESS_STEP_COUNTER, VAR_POISON_STEP_COUNTER}, + {VAR_RECYCLE_GOODS, VAR_STARTER_MON, VAR_MIRAGE_RND_H, VAR_MIRAGE_RND_L, VAR_DAYS, VAR_FANCLUB_UNKNOWN_1, VAR_FANCLUB_UNKNOWN_2, VAR_TRICK_HOUSE_ROOMS_COMPLETED, VAR_LOTTERY_PRIZE}, + {VAR_NATIONAL_DEX, VAR_BIRCH_STATE, VAR_LOTTERY_RND_L, VAR_LOTTERY_RND_H, VAR_SECRET_BASE_MAP} }; const u8 gUnknown_Debug_083C35A4[] = _("OBJCHRWORK0ー8"); @@ -1366,8 +1378,8 @@ const struct MenuAction gUnknown_Debug_083C36E4[] = { const u8 gUnknown_Debug_083C371C[] = {9, 7}; const u16 gUnknown_Debug_083C371E[][9] = { - {0x4010, 0x4011, 0x4012, 0x4013, 0x4014, 0x4015, 0x4016, 0x4017, 0x4018}, - {0x4019, 0x401A, 0x401B, 0x401C, 0x401D, 0x401E, 0x401F} + {VAR_OBJ_GFX_ID_0, VAR_OBJ_GFX_ID_1, VAR_OBJ_GFX_ID_2, VAR_OBJ_GFX_ID_3, VAR_OBJ_GFX_ID_4, VAR_OBJ_GFX_ID_5, VAR_OBJ_GFX_ID_6, VAR_OBJ_GFX_ID_7, VAR_OBJ_GFX_ID_8}, + {VAR_OBJ_GFX_ID_9, VAR_OBJ_GFX_ID_A, VAR_OBJ_GFX_ID_B, VAR_OBJ_GFX_ID_C, VAR_OBJ_GFX_ID_D, VAR_OBJ_GFX_ID_E, VAR_OBJ_GFX_ID_F} }; const u8 gUnknown_Debug_083C3742[] = _("SP"); @@ -1520,12 +1532,12 @@ const struct MenuAction gUnknown_Debug_83C3C00[] = { const u8 gUnknown_Debug_083C3C48[] = {6, 5, 9, 2, 9, 6}; const u16 gUnknown_Debug_83C3C4E[][9] = { - {0x4086, 0x4087, 0x4088, 0x408A, 0x4092, 0x40B4}, - {0x40A6, 0x40C1, 0x40B5, 0x40A7, 0x40A5}, - {0x40AB, 0x40AC, 0x40AD, 0x40AE, 0x40AF, 0x40B0, 0x40B1, 0x40B2, 0x40B6}, - {0x4090, 0x40BE}, - {0x4089, 0x408E, 0x4096, 0x4097, 0x4099, 0x409C, 0x40A3, 0x40A4, 0x40A9}, - {0x40B3, 0x40B7, 0x40BB, 0x40BC, 0x40C0, 0x40C5} + {VAR_LINK_CONTEST_ROOM_STATE, VAR_CABLE_CLUB_STATE, VAR_CONTEST_LOCATION, VAR_CONTEST_PRIZE_PICKUP, VAR_LITTLEROOT_INTRO_STATE, VAR_PORTHOLE_STATE}, + {VAR_TRICK_HOUSE_ENTRANCE_STATE_2, VAR_TRICK_HOUSE_PRIZE_PICKUP, VAR_TRICK_HOUSE_STATE, VAR_TRICK_HOUSE_ENTRANCE_STATE_3, VAR_TRICK_HOUSE_ENTRANCE_STATE}, + {VAR_TRICK_HOUSE_PUZZLE_1_STATE, VAR_TRICK_HOUSE_PUZZLE_2_STATE, VAR_TRICK_HOUSE_PUZZLE_3_STATE, VAR_TRICK_HOUSE_PUZZLE_4_STATE, VAR_TRICK_HOUSE_PUZZLE_5_STATE, VAR_TRICK_HOUSE_PUZZLE_6_STATE, VAR_TRICK_HOUSE_PUZZLE_7_STATE, VAR_TRICK_HOUSE_PUZZLE_8_STATE, VAR_TRICK_HOUSE_PUZZLE_7_STATE_2}, + {VAR_BRINEY_HOUSE_STATE, VAR_GLASS_WORKSHOP_STATE}, + {VAR_0x4089, VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE, VAR_BRINEY_LOCATION, VAR_0x4097, VAR_LILYCOVE_CONTEST_LOBBY_STATE, VAR_ELITE_4_STATE, VAR_CABLE_CAR_STATION_STATE, VAR_SAFARI_ZONE_STATE, VAR_CYCLING_CHALLENGE_STATE}, + {VAR_WEATHER_INSTITUTE_STATE, VAR_SLATEPORT_FAN_CLUB_STATE, 0x40BB, VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, VAR_GAME_CORNER_STATE, VAR_WHICH_FOSSIL_REVIVED} }; const u8 gUnknown_Debug_083C3CBA[] = _("タウン"); @@ -1738,15 +1750,15 @@ const struct MenuAction gUnknown_Debug_083C4534[] = { const u8 gUnknown_Debug_083C457C[] = {8, 9, 9, 9, 9, 7, 6, 9, 9}; const u16 gUnknown_Debug_083C4586[][9] = { - {0x4050, 0x4051, 0x4052, 0x4053, 0x4054, 0x4055, 0x4056, 0x40C7, 0x0000}, - {0x4057, 0x4058, 0x4059, 0x405A, 0x405B, 0x405C, 0x405D, 0x405E, 0x405F}, - {0x4060, 0x4061, 0x4062, 0x4063, 0x4064, 0x4065, 0x4066, 0x4067, 0x4068}, - {0x4069, 0x406A, 0x406B, 0x406C, 0x406D, 0x406E, 0x406F, 0x4070, 0x4071}, - {0x4072, 0x4073, 0x4074, 0x4075, 0x4076, 0x4077, 0x4078, 0x4079, 0x407A}, - {0x407B, 0x407C, 0x407D, 0x407E, 0x407F, 0x4080, 0x4081, 0x0000, 0x0000}, - {0x4082, 0x4083, 0x4084, 0x408C, 0x408D, 0x40C2, 0x0000, 0x0000, 0x0000}, - {0x4085, 0x408F, 0x4093, 0x4094, 0x4095, 0x40A0, 0x40AA, 0x40C4, 0x40C6}, - {0x4098, 0x409A, 0x409B, 0x40A2, 0x40A8, 0x40B9, 0x40BA, 0x40BF, 0x40C3} + {VAR_LITTLEROOT_STATE, VAR_ROUTE102_ACCESSIBLE, 0x4052, VAR_LAVARIDGE_RIVAL_STATE, VAR_CURRENT_SECRET_BASE, 0x4055, 0x4056, VAR_OLDALE_STATE}, + {VAR_PETALBURG_STATE, VAR_SLATEPORT_STATE, 0x4059, VAR_RUSTBORO_STATE, 0x405B, 0x405C, 0x405D, VAR_SOOTOPOLIS_STATE, 0x405F}, + {VAR_ROUTE101_STATE, 0x4061, VAR_ROUTE103_STATE, 0x4063, 0x4064, 0x4065, 0x4066, 0x4067, 0x4068}, + {VAR_ROUTE110_STATE, 0x406A, 0x406B, 0x406C, 0x406D, 0x406E, VAR_ROUTE116_STATE, 0x4070, VAR_ROUTE118_STATE}, + {VAR_ROUTE119_STATE, 0x4073, VAR_ROUTE121_STATE, 0x4075, 0x4076, 0x4077, 0x4078, 0x4079, 0x407A}, + {VAR_ROUTE128_STATE, 0x407C, 0x407D, 0x407E, 0x407F, 0x4080, 0x4081}, + {VAR_LITTLEROOT_HOUSES_STATE, 0x4083, VAR_BIRCH_LAB_STATE, VAR_LITTLEROOT_HOUSES_STATE_2, VAR_LITTLEROOT_RIVAL_STATE, VAR_PACIFIDLOG_TM_RECEIVED_DAY}, + {VAR_PETALBURG_GYM_STATE, VAR_DEVON_CORP_3F_STATE, VAR_MAUVILLE_GYM_STATE, VAR_LILYCOVE_MUSEUM_2F_STATE, VAR_LILYCOVE_FAN_CLUB_STATE, VAR_SLATEPORT_HARBOR_STATE, VAR_SLATEPORT_MUSEUM_1F_STATE, VAR_FOSSIL_RESURRECTION_STATE, VAR_STEVENS_HOUSE_STATE}, + {VAR_PETALBURG_WOODS_STATE, VAR_RUSTURF_TUNNEL_STATE, VAR_CAVE_OF_ORIGIN_B4F_STATE, VAR_SEAFLOOR_CAVERN_STATE, 0x40A8, VAR_MT_PYRE_STATE, VAR_NEW_MAUVILLE_STATE, VAR_METEOR_FALLS_STATE, VAR_VICTORY_ROAD_1F_STATE} }; const u8 gUnknown_Debug_083C4628[] = _("LOCALWORK0ー8"); @@ -1800,8 +1812,8 @@ const struct MenuAction gUnknown_Debug_083C4754C[] = { const u8 gUnknown_Debug_083C478C[] = {9, 7}; const u16 gUnknown_Debug_083C478E[][9] = { - {0x4000, 0x4001, 0x4002, 0x4003, 0x4004, 0x4005, 0x4006, 0x4007, 0x4008}, - {0x4009, 0x400A, 0x400B, 0x400C, 0x400D, 0x400E, 0x400F} + {VAR_TEMP_0, VAR_TEMP_1, VAR_TEMP_2, VAR_TEMP_3, VAR_TEMP_4, VAR_TEMP_5, VAR_TEMP_6, VAR_TEMP_7, VAR_TEMP_8}, + {VAR_TEMP_9, VAR_TEMP_A, VAR_TEMP_B, VAR_TEMP_C, VAR_TEMP_D, VAR_TEMP_E, VAR_TEMP_F} }; const u8 gUnknown_Debug_083C47B2[] = _("Level"); @@ -2527,7 +2539,7 @@ void debug_sub_808C764(u8 whichMenu) for (i = 0; i < gUnknown_Debug_083C31DC[whichMenu]; i++) { - debug_sub_808F2E0(28, 2 * i + 1, FlagGet(gUnknown_Debug_83C31E6[whichMenu][i]) ? TRUE : FALSE); + debug_sub_808F2E0(28, 2 * i + 1, FlagGet(gUnknown_Debug_83C31E6[whichMenu][i]) ? 1 : 0); } } @@ -2689,7 +2701,7 @@ void debug_sub_808CC10(u8 whichMenu) for (i = 0; i < gUnknown_Debug_083C2710[whichMenu]; i++) { - debug_sub_808F2E0(28, 2 * i + 1, FlagGet(gUnknown_Debug_083C271A[whichMenu][i]) ? TRUE : FALSE); + debug_sub_808F2E0(28, 2 * i + 1, FlagGet(gUnknown_Debug_083C271A[whichMenu][i]) ? 1 : 0); } } @@ -2785,7 +2797,7 @@ void debug_sub_808CEAC(u8 whichMenu) for (i = 0; i < gUnknown_Debug_083C1C34[whichMenu]; i++) { - debug_sub_808F2E0(28, 2 * i + 1, FlagGet(gUnknown_Debug_083C1C38[whichMenu][i]) ? TRUE : FALSE); + debug_sub_808F2E0(28, 2 * i + 1, FlagGet(gUnknown_Debug_083C1C38[whichMenu][i]) ? 1 : 0); } } @@ -2947,7 +2959,7 @@ void debug_sub_808D358(u8 whichMenu) for (i = 0; i < gUnknown_Debug_083C19BC[whichMenu]; i++) { - debug_sub_808F2E0(28, 2 * i + 1, FlagGet(gUnknown_Debug_083C19C6[whichMenu][i]) ? TRUE : FALSE); + debug_sub_808F2E0(28, 2 * i + 1, FlagGet(gUnknown_Debug_083C19C6[whichMenu][i]) ? 1 : 0); } } @@ -3032,7 +3044,7 @@ void debug_sub_808D59C(u8 whichMenu) for (i = 0; i < gUnknown_Debug_083C1194[whichMenu]; i++) { - debug_sub_808F2E0(28, 2 * i + 1, FlagGet(gUnknown_Debug_083C1196[whichMenu][i]) ? TRUE : FALSE); + debug_sub_808F2E0(28, 2 * i + 1, FlagGet(gUnknown_Debug_083C1196[whichMenu][i]) ? 1 : 0); } } @@ -3117,8 +3129,295 @@ void debug_sub_808D7E0(u8 whichMenu) for (i = 0; i < gUnknown_Debug_083C12D0[whichMenu]; i++) { - debug_sub_808F2E0(28, 2 * i + 1, FlagGet(gUnknown_Debug_083C12D2[whichMenu][i]) ? TRUE : FALSE); + debug_sub_808F2E0(28, 2 * i + 1, FlagGet(gUnknown_Debug_083C12D2[whichMenu][i]) ? 1 : 0); } } +bool8 debug_sub_808D844(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 28, 2 * ARRAY_COUNT(gUnknown_Debug_083C1A78) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1A78), gUnknown_Debug_083C1A78); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1A78), 0, 27); + gMenuCallback = debug_sub_808D894; + return FALSE; +} + +bool8 debug_sub_808D894(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = gUnknown_Debug_083C1A78[input].func; + return FALSE; +} + +bool8 debug_sub_808D8D8(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1A9C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1A9C), gUnknown_Debug_083C1A9C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1A9C), 0, 28); + gDebug_0300070F = 0; + gMenuCallback = debug_sub_808D930; + return FALSE; +} + +bool8 debug_sub_808D930(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808D97C(gDebug_0300070F, cursorPos); + debug_sub_808D9CC(gDebug_0300070F); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +void debug_sub_808D97C(u8 whichMenu, u8 cursorPos) +{ + if (gMain.newKeys & R_BUTTON) + { + if (!FlagGet(gUnknown_Debug_083C1AAE[whichMenu][cursorPos])) + FlagSet(gUnknown_Debug_083C1AAE[whichMenu][cursorPos]); + else + FlagClear(gUnknown_Debug_083C1AAE[whichMenu][cursorPos]); + } +} + +void debug_sub_808D9CC(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C1AAC[whichMenu]; i++) + { + debug_sub_808F2E0(28, 2 * i + 1, FlagGet(gUnknown_Debug_083C1AAE[whichMenu][i]) ? 1 : 0); + } +} + +bool8 debug_sub_808DA30(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C103A) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C103A), gUnknown_Debug_083C103A); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C103A), 0, 28); + gMenuCallback = debug_sub_808DA80; + return FALSE; +} + +bool8 debug_sub_808DA80(void) +{ + s8 input = Menu_ProcessInput(); + /*s8 cursorPos = */Menu_GetCursorPos(); + + debug_sub_808DAD4(); + debug_sub_808DABC(); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +void debug_sub_808DABC(void) +{ + debug_sub_808F31C(24, 1, gSpecialVar_Result); +} + +void debug_sub_808DAD4(void) +{ + u16 delta; + + if (gMain.newKeys & R_BUTTON) + { + delta = +1; + } + else if (gMain.newKeys & L_BUTTON) + { + delta = -1; + } + else + return; + gSpecialVar_Result += delta; +} + +bool8 debug_sub_808DB0C(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 24, 2 * ARRAY_COUNT(gUnknown_Debug_083C3D08) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C3D08), gUnknown_Debug_083C3D08); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C3D08), 0, 23); + gMenuCallback = debug_sub_808DB5C; + return FALSE; +} + +bool8 debug_sub_808DB5C(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = gUnknown_Debug_083C3D08[input].func; + return FALSE; +} + +bool8 debug_sub_808DBA0(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C432C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C432C), gUnknown_Debug_083C432C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C432C), 0, 28); + gDebug_0300070F = 0; + gMenuCallback = debug_sub_808DEB8; + return FALSE; +} + +bool8 debug_sub_808DBF8(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C436C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C436C), gUnknown_Debug_083C436C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C436C), 0, 28); + gDebug_0300070F = 1; + gMenuCallback = debug_sub_808DEB8; + return FALSE; +} + +bool8 debug_sub_808DC50(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C43B4) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C43B4), gUnknown_Debug_083C43B4); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C43B4), 0, 28); + gDebug_0300070F = 2; + gMenuCallback = debug_sub_808DEB8; + return FALSE; +} + +bool8 debug_sub_808DCA8(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C43FC) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C43FC), gUnknown_Debug_083C43FC); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C43FC), 0, 28); + gDebug_0300070F = 3; + gMenuCallback = debug_sub_808DEB8; + return FALSE; +} + +bool8 debug_sub_808DD00(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C4444) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C4444), gUnknown_Debug_083C4444); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C4444), 0, 28); + gDebug_0300070F = 4; + gMenuCallback = debug_sub_808DEB8; + return FALSE; +} + +bool8 debug_sub_808DD58(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C448C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C448C), gUnknown_Debug_083C448C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C448C), 0, 28); + gDebug_0300070F = 5; + gMenuCallback = debug_sub_808DEB8; + return FALSE; +} + +bool8 debug_sub_808DDB0(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * 6 + 1); + Menu_PrintItems(2, 1, 6, gUnknown_Debug_83C44C4); // overflows into the next menu + InitMenu(0, 1, 1, 6, 0, 28); + gDebug_0300070F = 6; + gMenuCallback = debug_sub_808DEB8; + return FALSE; +} + +bool8 debug_sub_808DE08(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_83C44EC) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_83C44EC), gUnknown_Debug_83C44EC); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_83C44EC), 0, 28); + gDebug_0300070F = 7; + gMenuCallback = debug_sub_808DEB8; + return FALSE; +} + +bool8 debug_sub_808DE60(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C4534) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C4534), gUnknown_Debug_083C4534); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C4534), 0, 28); + gDebug_0300070F = 8; + gMenuCallback = debug_sub_808DEB8; + return FALSE; +} + +bool8 debug_sub_808DEB8(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808DF64(gDebug_0300070F, cursorPos); + debug_sub_808DF04(gDebug_0300070F); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +void debug_sub_808DF04(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C457C[whichMenu]; i++) + { + debug_sub_808F31C(24, 2 * i + 1, VarGet(gUnknown_Debug_083C4586[whichMenu][i])); + } +} + +void debug_sub_808DF64(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_083C4586[whichMenu][cursorPos], VarGet(gUnknown_Debug_083C4586[whichMenu][cursorPos]) + delta); +} + #endif |