diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-03-11 18:30:26 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-03-11 18:30:26 -0400 |
commit | 0e0651c0283bf1d11d9984acaea878cb409c4e6a (patch) | |
tree | 8418e78e46970476407b29de3a0034e0d8c082a2 | |
parent | 937451db9d86f60bb87bbeb1a19f27354bf9d8f0 (diff) |
through debug_sub_808C764
-rw-r--r-- | asm/tomomichi_debug_menu.s | 362 | ||||
-rw-r--r-- | data/debug_menu_tomomichi.s | 7 | ||||
-rw-r--r-- | src/debug/tomomichi_debug_menu.c | 112 |
3 files changed, 112 insertions, 369 deletions
diff --git a/asm/tomomichi_debug_menu.s b/asm/tomomichi_debug_menu.s index c45617840..a7489ccb3 100644 --- a/asm/tomomichi_debug_menu.s +++ b/asm/tomomichi_debug_menu.s @@ -3,368 +3,6 @@ .include "constants/gba_constants.inc" .include "include/macros.inc" - thumb_func_start debug_sub_808C510 -debug_sub_808C510: - 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, ._173 @ gUnknown_Debug_083C2D8C - 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, ._173 + 4 @ gDebug_0300070F - mov r0, #0x4 - strb r0, [r1] - ldr r1, ._173 + 8 @ gMenuCallback - ldr r0, ._173 + 12 @ debug_sub_808C6C8 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._174: - .align 2, 0 -._173: - .word gUnknown_Debug_083C2D8C - .word gDebug_0300070F - .word gMenuCallback - .word debug_sub_808C6C8+1 - - thumb_func_end debug_sub_808C510 - - thumb_func_start debug_sub_808C568 -debug_sub_808C568: - 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, ._175 @ gUnknown_Debug_083C2EB0 - 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, ._175 + 4 @ gDebug_0300070F - mov r0, #0x5 - strb r0, [r1] - ldr r1, ._175 + 8 @ gMenuCallback - ldr r0, ._175 + 12 @ debug_sub_808C6C8 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._176: - .align 2, 0 -._175: - .word gUnknown_Debug_083C2EB0 - .word gDebug_0300070F - .word gMenuCallback - .word debug_sub_808C6C8+1 - - thumb_func_end debug_sub_808C568 - - thumb_func_start debug_sub_808C5C0 -debug_sub_808C5C0: - 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, ._177 @ gUnknown_Debug_083C2FE0 - 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, ._177 + 4 @ gDebug_0300070F - mov r0, #0x6 - strb r0, [r1] - ldr r1, ._177 + 8 @ gMenuCallback - ldr r0, ._177 + 12 @ debug_sub_808C6C8 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._178: - .align 2, 0 -._177: - .word gUnknown_Debug_083C2FE0 - .word gDebug_0300070F - .word gMenuCallback - .word debug_sub_808C6C8+1 - - thumb_func_end debug_sub_808C5C0 - - thumb_func_start debug_sub_808C618 -debug_sub_808C618: - 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, ._179 @ gUnknown_Debug_083C3100 - 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, ._179 + 4 @ gDebug_0300070F - mov r0, #0x7 - strb r0, [r1] - ldr r1, ._179 + 8 @ gMenuCallback - ldr r0, ._179 + 12 @ debug_sub_808C6C8 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._180: - .align 2, 0 -._179: - .word gUnknown_Debug_083C3100 - .word gDebug_0300070F - .word gMenuCallback - .word debug_sub_808C6C8+1 - - thumb_func_end debug_sub_808C618 - - thumb_func_start debug_sub_808C670 -debug_sub_808C670: - push {lr} - add sp, sp, #0xfffffff8 - bl Menu_EraseScreen - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x7 - bl Menu_DrawStdWindowFrame - ldr r3, ._181 @ gUnknown_Debug_083C3194 - mov r0, #0x2 - mov r1, #0x1 - mov r2, #0x3 - 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, #0x3 - bl InitMenu - ldr r1, ._181 + 4 @ gDebug_0300070F - mov r0, #0x8 - strb r0, [r1] - ldr r1, ._181 + 8 @ gMenuCallback - ldr r0, ._181 + 12 @ debug_sub_808C6C8 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._182: - .align 2, 0 -._181: - .word gUnknown_Debug_083C3194 - .word gDebug_0300070F - .word gMenuCallback - .word debug_sub_808C6C8+1 - - thumb_func_end debug_sub_808C670 - - thumb_func_start debug_sub_808C6C8 -debug_sub_808C6C8: - 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, ._186 @ gDebug_0300070F - ldrb r0, [r5] - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - bl debug_sub_808C714 - ldrb r0, [r5] - bl debug_sub_808C764 - lsl r4, r4, #0x18 - asr r4, r4, #0x18 - mov r0, #0x2 - neg r0, r0 - cmp r4, r0 - beq ._183 @cond_branch - mov r0, #0x1 - neg r0, r0 - cmp r4, r0 - beq ._184 @cond_branch -._183: - mov r0, #0x0 - b ._185 -._187: - .align 2, 0 -._186: - .word gDebug_0300070F -._184: - bl CloseMenu - mov r0, #0x1 -._185: - pop {r4, r5} - pop {r1} - bx r1 - - thumb_func_end debug_sub_808C6C8 - - thumb_func_start debug_sub_808C714 -debug_sub_808C714: - push {r4, lr} - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - lsl r1, r1, #0x18 - lsr r3, r1, #0x18 - ldr r0, ._191 @ gMain - ldrh r1, [r0, #0x2e] - mov r0, #0x80 - lsl r0, r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._190 @cond_branch - ldr r0, ._191 + 4 @ gUnknown_Debug_83C31E6 - 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 ._189 @cond_branch - add r0, r4, #0 - bl FlagSet - b ._190 -._192: - .align 2, 0 -._191: - .word gMain - .word gUnknown_Debug_83C31E6 -._189: - add r0, r4, #0 - bl FlagClear -._190: - pop {r4} - pop {r0} - bx r0 - - thumb_func_end debug_sub_808C714 - - thumb_func_start debug_sub_808C764 -debug_sub_808C764: - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - mov r5, #0x0 - ldr r0, ._195 @ gUnknown_Debug_083C31DC - add r0, r1, r0 - ldrb r2, [r0] - cmp r5, r2 - bcs ._193 @cond_branch - ldr r0, ._195 + 4 @ gUnknown_Debug_83C31E6 - mov r8, r0 - lsl r0, r1, #0x3 - add r0, r0, r1 - lsl r7, r0, #0x1 - add r6, r2, #0 -._194: - 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 ._194 @cond_branch -._193: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._196: - .align 2, 0 -._195: - .word gUnknown_Debug_083C31DC - .word gUnknown_Debug_83C31E6 - - thumb_func_end debug_sub_808C764 - thumb_func_start debug_sub_808C7C8 debug_sub_808C7C8: push {lr} diff --git a/data/debug_menu_tomomichi.s b/data/debug_menu_tomomichi.s index 045303123..efd7c9921 100644 --- a/data/debug_menu_tomomichi.s +++ b/data/debug_menu_tomomichi.s @@ -5,13 +5,6 @@ .if DEBUG -gUnknown_Debug_083C31DC:: @ 0x83C31DC - .byte 9, 9, 9, 9, 9, 9, 9, 9, 3, 0 - - @ This is not a string. I don't feel like converting it right now. -gUnknown_Debug_83C31E6:: @ 0x83C31E6 - .string "グ ホ レ ハ ヘ ヒ ゾ ズ ゼ コ サ シ ス セ ソ ああo ブ ゴ よあゥ ム あもあらあさあ{0xF7} フ ン D G ふあ: Ä Ö Ü H I J K L ト ナ ニ ヌ ェ ほあみあやあゆあっ ア イ オ N O P Q R ウ エ カ キ ▶ ä ォ そあうあきあこあつあへあク ケ タ " - gUnknown_Debug_083C3288:: @ 0x83C3288 .string "CYCLEかんれん$" diff --git a/src/debug/tomomichi_debug_menu.c b/src/debug/tomomichi_debug_menu.c index 89885070a..f2d8d8096 100644 --- a/src/debug/tomomichi_debug_menu.c +++ b/src/debug/tomomichi_debug_menu.c @@ -1,6 +1,7 @@ #if DEBUG #include "global.h" #include "palette.h" +#include "event_data.h" #include "constants/songs.h" #include "overworld.h" #include "script.h" @@ -126,6 +127,9 @@ bool8 debug_sub_808C618(void); bool8 debug_sub_808C670(void); bool8 debug_sub_808C36C(void); bool8 debug_sub_808C6C8(void); +void debug_sub_808C714(u8, u8); +void debug_sub_808C764(u8); +void debug_sub_808F2E0(u8, u8, bool8); extern const u8 DebugScript_081C1CFE[]; extern const u8 DebugScript_081C1D07[]; @@ -1218,6 +1222,20 @@ const struct MenuAction gUnknown_Debug_083C3194[] = { {gUnknown_Debug_083C3192, TomomichiDebugMenu_Config} }; +const u8 gUnknown_Debug_083C31DC[] = {9, 9, 9, 9, 9, 9, 9, 9, 3, 0}; + +const u16 gUnknown_Debug_83C31E6[][9] = { + {0x89, 0x6E, 0x7A, 0x6A, 0x6D, 0x6B, 0x90, 0x8E, 0x8F}, + {0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x101, 0xE3, 0x98}, + {0x8B, 0x126, 0x81, 0x71, 0x100, 0x123, 0x127, 0x10B, 0xF7}, + {0x6C, 0x7E, 0xBE, 0xC1, 0x11C, 0xF0, 0xF1, 0xF2, 0xF3}, + {0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0x64, 0x65, 0x66, 0x67}, + {0x82, 0x11E, 0x120, 0x124, 0x125, 0x50, 0x51, 0x52, 0x55}, + {0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0x53, 0x54, 0x56, 0x57}, + {0xEF, 0xF4, 0x83, 0x10F, 0x103, 0x107, 0x10A, 0x112, 0x11D}, + {0x58, 0x59, 0x60, 0, 0, 0, 0, 0, 0} +}; + bool8 InitTomomichiDebugWindow(void) { debug_sub_808B874(); @@ -1813,4 +1831,98 @@ bool8 debug_sub_808C4B8(void) return FALSE; } +bool8 debug_sub_808C510(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 19); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2D8C), gUnknown_Debug_083C2D8C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2D8C), 0, 28); + gDebug_0300070F = 4; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +bool8 debug_sub_808C568(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 19); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2EB0), gUnknown_Debug_083C2EB0); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2EB0), 0, 28); + gDebug_0300070F = 5; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +bool8 debug_sub_808C5C0(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 19); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2FE0), gUnknown_Debug_083C2FE0); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2FE0), 0, 28); + gDebug_0300070F = 6; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +bool8 debug_sub_808C618(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 19); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C3100), gUnknown_Debug_083C3100); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C3100), 0, 28); + gDebug_0300070F = 7; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +bool8 debug_sub_808C670(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 7); + Menu_PrintItems(2, 1, 3, gUnknown_Debug_083C3194); + InitMenu(0, 1, 1, 3, 0, 28); + gDebug_0300070F = 8; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +bool8 debug_sub_808C6C8(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808C714(gDebug_0300070F, cursorPos); + debug_sub_808C764(gDebug_0300070F); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +void debug_sub_808C714(u8 whichMenu, u8 cursorPos) +{ + if (gMain.newKeys & R_BUTTON) + { + u16 flag = gUnknown_Debug_83C31E6[whichMenu][cursorPos]; + if (!FlagGet(flag)) + FlagSet(flag); + else + FlagClear(flag); + } +} + +void debug_sub_808C764(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C31DC[whichMenu]; i++) + { + debug_sub_808F2E0(28, 2 * i + 1, FlagGet(gUnknown_Debug_83C31E6[whichMenu][i]) ? TRUE : FALSE); + } +} + #endif |