summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-03-11 18:30:26 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-03-11 18:30:26 -0400
commit0e0651c0283bf1d11d9984acaea878cb409c4e6a (patch)
tree8418e78e46970476407b29de3a0034e0d8c082a2
parent937451db9d86f60bb87bbeb1a19f27354bf9d8f0 (diff)
through debug_sub_808C764
-rw-r--r--asm/tomomichi_debug_menu.s362
-rw-r--r--data/debug_menu_tomomichi.s7
-rw-r--r--src/debug/tomomichi_debug_menu.c112
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