diff options
-rw-r--r-- | asm/watanabe_debug_menu.s | 151 | ||||
-rw-r--r-- | src/debug/watanabe_debug_menu.c | 58 |
2 files changed, 58 insertions, 151 deletions
diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index 8580cc3d1..f02f6f702 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,157 +5,6 @@ .text - thumb_func_start debug_80C47BC -debug_80C47BC: - push {r4, r5, r6, r7, lr} - add sp, sp, #0xffffffc0 - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 - ldr r1, ._224 @ gUnknown_Debug_083F81C7 - mov r0, sp - mov r2, #0xf - bl memcpy - add r4, sp, #0x10 - ldr r1, ._224 + 4 @ gUnknown_Debug_083F81A0 - add r0, r4, #0 - mov r2, #0xd - bl memcpy - add r6, sp, #0x20 - ldr r1, ._224 + 8 @ gUnknown_Debug_083F81D6 - add r0, r6, #0 - mov r2, #0xf - bl memcpy - add r5, sp, #0x30 - ldr r1, ._224 + 12 @ gUnknown_Debug_083F81E5 - add r0, r5, #0 - mov r2, #0x10 - bl memcpy - mov r0, #0x0 - mov r1, #0x10 - mov r2, #0x1d - mov r3, #0x13 - bl Menu_DrawStdWindowFrame - mov r0, sp - mov r1, #0x1 - mov r2, #0x11 - bl Menu_PrintText - add r0, r4, #0 - mov r1, #0x14 - mov r2, #0x11 - bl Menu_PrintText - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0xe - mov r3, #0xf - bl Menu_DrawStdWindowFrame - add r0, r6, #0 - mov r1, #0x2 - mov r2, #0x1 - bl Menu_PrintText - mov r4, #0x0 - ldr r6, ._224 + 16 @ gUnknown_Debug_083F8068 -._223: - lsl r0, r4, #0x3 - add r0, r0, r6 - ldr r0, [r0] - lsl r2, r4, #0x19 - mov r1, #0xc0 - lsl r1, r1, #0x12 - add r2, r2, r1 - lsr r2, r2, #0x18 - mov r1, #0x2 - bl Menu_PrintText - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0x4 - bls ._223 @cond_branch - mov r0, #0xf - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0xf - bl Menu_DrawStdWindowFrame - add r0, r5, #0 - mov r1, #0x11 - mov r2, #0x1 - bl Menu_PrintText - ldr r0, ._224 + 20 @ gUnknown_Debug_2038A0C - ldrb r0, [r0, #0x4] - bl debug_80C4C44 - ldr r1, ._224 + 24 @ gTasks - lsl r0, r7, #0x2 - add r0, r0, r7 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._224 + 28 @ debug_80C48A0 - str r1, [r0] - add sp, sp, #0x40 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._225: - .align 2, 0 -._224: - .word gUnknown_Debug_083F81C7 - .word gUnknown_Debug_083F81A0 - .word gUnknown_Debug_083F81D6 - .word gUnknown_Debug_083F81E5 - .word gUnknown_Debug_083F8068 - .word gUnknown_Debug_2038A0C - .word gTasks - .word debug_80C48A0+1 - - thumb_func_end debug_80C47BC - - thumb_func_start debug_80C48A0 -debug_80C48A0: - push {r4, lr} - add sp, sp, #0xfffffffc - add r4, r0, #0 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - ldr r0, ._226 @ gUnknown_Debug_2038A0C - ldrb r0, [r0, #0x3] - lsl r0, r0, #0x19 - mov r1, #0xc0 - lsl r1, r1, #0x12 - add r0, r0, r1 - lsr r0, r0, #0x18 - mov r1, #0x1 - str r1, [sp] - mov r2, #0x1 - mov r3, #0xe - bl debug_80C38E4 - ldr r1, ._226 + 4 @ 0x4000042 - ldr r2, ._226 + 8 @ 0x177 - add r0, r2, #0 - strh r0, [r1] - add r1, r1, #0x4 - add r2, r2, #0x8 - add r0, r2, #0 - strh r0, [r1] - ldr r1, ._226 + 12 @ gTasks - lsl r0, r4, #0x2 - add r0, r0, r4 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._226 + 16 @ debug_80C4900 - str r1, [r0] - add sp, sp, #0x4 - pop {r4} - pop {r0} - bx r0 -._227: - .align 2, 0 -._226: - .word gUnknown_Debug_2038A0C - .word 0x4000042 - .word 0x177 - .word gTasks - .word debug_80C4900+1 - - thumb_func_end debug_80C48A0 - thumb_func_start debug_80C4900 debug_80C4900: push {r4, r5, lr} diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index dbb086469..112fd7e13 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -26,6 +26,11 @@ EWRAM_DATA u8 gUnknown_Debug_2038A0C[0x10] = { 0 }; EWRAM_DATA u8 gUnknown_Debug_2038A1C[4] = { 0 }; EWRAM_DATA u8 gUnknown_Debug_2038A20[4] = { 0 }; +struct WatanabeDebugMenuItem { + const u8 * text; + u32 value; +}; + u32 byte_3005E30; void debug_80C3A50(u8 taskId); @@ -40,10 +45,15 @@ void debug_80C4694(void); void debug_80C4704(void); bool8 debug_80C4774(void); void debug_80C47BC(u8 taskId); +void debug_80C48A0(u8 taskId); +void debug_80C4900(u8 taskId); +void debug_80C4C44(u8); void debug_80C4D14(u8 taskId); void debug_80C4F48(u8 taskId); void debug_80C68CC(u16, u8, u8, u8); +extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F8068[5]; + extern const u8 gUnknown_Debug_083F7FD4[2]; // = _("▶"); extern const u8 gUnknown_Debug_083F7FD6[4]; // = {0x25, 0x20, 0x01, 0x08}; extern const u8 gUnknown_Debug_083F7FDA[4]; // = _("ひりつ"); @@ -60,6 +70,9 @@ extern const u8 gUnknown_Debug_083F8194[12]; // = _("ポケモンを えらん extern const u8 gUnknown_Debug_083F81A0[13]; // = _("{COLOR RED}START:つぎへ"); extern const u8 gUnknown_Debug_083F81AD[13]; // = _("{COLOR RED}じぶんの ポケモン"); extern const u8 gUnknown_Debug_083F81BA[13]; // = _("{COLOR RED}あいての ポケモン"); +extern const u8 gUnknown_Debug_083F81C7[15]; // = _("たいせんモードを えらんでね"); +extern const u8 gUnknown_Debug_083F81D6[15]; // = _("{COLOR RED}バトルモード せんたく"); +extern const u8 gUnknown_Debug_083F81E5[16]; // = _("{COLOR RED}トレーナーAI せんたく"); extern const struct SpriteSheet stru_83F8828[2]; extern const struct SpritePalette stru_83F8838[2]; @@ -1083,4 +1096,49 @@ bool8 debug_80C4774(void) return FALSE; } +void debug_80C47BC(u8 taskId) +{ + u8 i; + + // u8 sp00[] = _("{COLOR RED}あいての ポケモン"); + // u8 sp10[] = _("たいせんモードを えらんでね"); + // u8 sp20[] = _("{COLOR RED}バトルモード せんたく"); + // u8 sp30[] = _("{COLOR RED}トレーナーAI せんたく"); + + u8 sp00[ARRAY_COUNT(gUnknown_Debug_083F81C7)]; + u8 sp10[ARRAY_COUNT(gUnknown_Debug_083F81A0)]; + u8 sp20[ARRAY_COUNT(gUnknown_Debug_083F81D6)]; + u8 sp30[ARRAY_COUNT(gUnknown_Debug_083F81E5)]; + + memcpy(sp00, gUnknown_Debug_083F81C7, sizeof(gUnknown_Debug_083F81C7)); + memcpy(sp10, gUnknown_Debug_083F81A0, sizeof(gUnknown_Debug_083F81A0)); + memcpy(sp20, gUnknown_Debug_083F81D6, sizeof(gUnknown_Debug_083F81D6)); + memcpy(sp30, gUnknown_Debug_083F81E5, sizeof(gUnknown_Debug_083F81E5)); + + Menu_DrawStdWindowFrame(0, 16, 29, 19); + Menu_PrintText(sp00, 1, 17); + Menu_PrintText(sp10, 20, 17); + + Menu_DrawStdWindowFrame(0, 0, 14, 15); + Menu_PrintText(sp20, 2, 1); + + for (i = 0; i < ARRAY_COUNT(gUnknown_Debug_083F8068); i++) + Menu_PrintText(gUnknown_Debug_083F8068[i].text, 2, 2 * i + 3); + + Menu_DrawStdWindowFrame(15, 0, 29, 15); + Menu_PrintText(sp30, 17, 1); + + debug_80C4C44(gUnknown_Debug_2038A0C[4]); + + gTasks[taskId].func = debug_80C48A0; +} + +void debug_80C48A0(u8 taskId) +{ + debug_80C38E4(2 * gUnknown_Debug_2038A0C[3] + 3, 1, 1, 14, 1); + REG_WIN1H = 0x0177; + REG_WIN1V = 0x017F; + gTasks[taskId].func = debug_80C4900; +} + #endif // DEBUG |