diff options
-rw-r--r-- | asm/watanabe_debug_menu.s | 513 | ||||
-rw-r--r-- | data/debug_menu_watanabe.s | 39 | ||||
-rw-r--r-- | include/battle.h | 1 | ||||
-rw-r--r-- | ld_script.txt | 1 | ||||
-rw-r--r-- | src/debug/watanabe_debug_menu.c | 239 |
5 files changed, 226 insertions, 567 deletions
diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index 7260c0bc4..bcc85ff17 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,519 +5,6 @@ .text - thumb_func_start debug_80C4C44 -debug_80C4C44: - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, r9 - mov r5, r8 - push {r5, r6, r7} - add sp, sp, #0xfffffff0 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov sl, r0 - mov r2, #0x0 - mov r5, sp -._290: - mov r0, sl - add r6, r2, r0 - add r4, r6, #0 - add r1, r2, #1 - mov r8, r1 - cmp r4, #0x9 - bgt ._280 @cond_branch - mov r3, #0x0 - ldr r1, ._288 @ gUnknown_Debug_083F80D8 - lsl r0, r4, #0x3 - add r0, r0, r1 - ldr r0, [r0] - ldrb r0, [r0] - ldr r7, ._288 + 4 @ byte_3005E30 - mov r9, r7 - lsl r2, r2, #0x1 - mov ip, r2 - cmp r0, #0xff - beq ._282 @cond_branch - add r7, r1, #0 -._283: - add r0, r3, #3 - mov r1, sp - add r2, r1, r0 - lsl r1, r6, #0x3 - add r1, r1, r7 - ldr r0, [r1] - add r0, r0, r3 - ldrb r0, [r0] - strb r0, [r2] - add r0, r3, #1 - lsl r0, r0, #0x18 - lsr r3, r0, #0x18 - ldr r0, [r1] - add r0, r0, r3 - ldrb r0, [r0] - cmp r0, #0xff - beq ._282 @cond_branch - cmp r3, #0xb - bls ._283 @cond_branch -._282: - cmp r3, #0xb - bhi ._284 @cond_branch - mov r1, #0x0 -._285: - add r0, r3, #3 - add r0, r0, sp - strb r1, [r0] - add r0, r3, #1 - lsl r0, r0, #0x18 - lsr r3, r0, #0x18 - cmp r3, #0xb - bls ._285 @cond_branch -._284: - mov r0, #0xff - strb r0, [r5, #0xe] - mov r0, #0xfc - strb r0, [r5] - mov r2, #0x1 - strb r2, [r5, #0x1] - add r1, r2, #0 - LSL r1, r4 - mov r3, r9 - ldr r0, [r3] - and r0, r0, r1 - cmp r0, #0 - beq ._286 @cond_branch - mov r0, #0x3 - strb r0, [r5, #0x2] - b ._287 -._289: - .align 2, 0 -._288: - .word gUnknown_Debug_083F80D8 - .word byte_3005E30 -._286: - strb r2, [r5, #0x2] -._287: - mov r2, ip - add r2, r2, #0x3 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - mov r0, sp - mov r1, #0x11 - bl Menu_PrintText -._280: - mov r7, r8 - lsl r0, r7, #0x18 - lsr r2, r0, #0x18 - cmp r2, #0x5 - bls ._290 @cond_branch - add sp, sp, #0x10 - pop {r3, r4, r5} - mov r8, r3 - mov r9, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - - thumb_func_end debug_80C4C44 - - thumb_func_start debug_80C4D14 -debug_80C4D14: - push {r4, r5, r6, lr} - add sp, sp, #0xffffffd0 - add r4, r0, #0 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - ldr r1, ._291 @ gUnknown_Debug_083F81C7 - mov r0, sp - mov r2, #0xf - bl memcpy - add r5, sp, #0x10 - ldr r1, ._291 + 4 @ gUnknown_Debug_083F81F5 - add r0, r5, #0 - mov r2, #0xd - bl memcpy - add r6, sp, #0x20 - ldr r1, ._291 + 8 @ gUnknown_Debug_083F8202 - add r0, r6, #0 - mov r2, #0xf - 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, r5, #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 - ldr r0, ._291 + 12 @ gUnknown_Debug_2038A0C - ldrb r0, [r0, #0x6] - bl debug_80C4F00 - mov r0, #0xf - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0xf - bl Menu_DrawStdWindowFrame - ldr r1, ._291 + 16 @ gTasks - lsl r0, r4, #0x2 - add r0, r0, r4 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._291 + 20 @ debug_80C4DB8 - str r1, [r0] - add sp, sp, #0x30 - pop {r4, r5, r6} - pop {r0} - bx r0 -._292: - .align 2, 0 -._291: - .word gUnknown_Debug_083F81C7 - .word gUnknown_Debug_083F81F5 - .word gUnknown_Debug_083F8202 - .word gUnknown_Debug_2038A0C - .word gTasks - .word debug_80C4DB8+1 - - thumb_func_end debug_80C4D14 - - thumb_func_start debug_80C4DB8 -debug_80C4DB8: - push {r4, lr} - add sp, sp, #0xfffffffc - add r4, r0, #0 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - ldr r0, ._293 @ gUnknown_Debug_2038A0C - ldrb r0, [r0, #0x7] - 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, ._293 + 4 @ 0x4000042 - ldr r2, ._293 + 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, ._293 + 12 @ gTasks - lsl r0, r4, #0x2 - add r0, r0, r4 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._293 + 16 @ debug_80C4E18 - str r1, [r0] - add sp, sp, #0x4 - pop {r4} - pop {r0} - bx r0 -._294: - .align 2, 0 -._293: - .word gUnknown_Debug_2038A0C - .word 0x4000042 - .word 0x177 - .word gTasks - .word debug_80C4E18+1 - - thumb_func_end debug_80C4DB8 - - thumb_func_start debug_80C4E18 -debug_80C4E18: - push {r4, r5, r6, r7, lr} - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - ldr r5, ._297 @ gUnknown_Debug_2038A0C - ldrb r3, [r5, #0x6] - ldrb r2, [r5, #0x7] - add r0, r3, r2 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - ldr r7, ._297 + 4 @ gMain - ldrh r1, [r7, #0x2e] - mov r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - beq ._295 @cond_branch - ldr r0, ._297 + 8 @ gTasks - lsl r1, r4, #0x2 - add r1, r1, r4 - lsl r1, r1, #0x3 - add r1, r1, r0 - ldr r0, ._297 + 12 @ debug_80C42B8 - b ._296 -._298: - .align 2, 0 -._297: - .word gUnknown_Debug_2038A0C - .word gMain - .word gTasks - .word debug_80C42B8+1 -._295: - mov r0, #0x8 - and r0, r0, r1 - cmp r0, #0 - bne ._299 @cond_branch - mov r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._300 @cond_branch -._299: - mov r0, #0x5 - bl PlaySE - ldr r2, ._302 @ gBattleTerrain - ldr r1, ._302 + 4 @ gUnknown_Debug_083F814C - lsl r0, r6, #0x3 - add r0, r0, r1 - ldrb r0, [r0, #0x4] - strb r0, [r2] - ldr r1, ._302 + 8 @ gTasks - lsl r0, r4, #0x2 - add r0, r0, r4 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._302 + 12 @ debug_80C5158 - str r1, [r0] - b ._310 -._303: - .align 2, 0 -._302: - .word gBattleTerrain - .word gUnknown_Debug_083F814C - .word gTasks - .word debug_80C5158+1 -._300: - ldrh r1, [r7, #0x30] - mov r0, #0x40 - and r0, r0, r1 - cmp r0, #0 - beq ._304 @cond_branch - lsl r0, r2, #0x18 - cmp r0, #0 - beq ._305 @cond_branch - sub r0, r2, #1 - strb r0, [r5, #0x7] - b ._313 -._305: - lsl r0, r3, #0x18 - cmp r0, #0 - beq ._313 @cond_branch - sub r0, r3, #1 - b ._308 -._304: - mov r0, #0x80 - and r0, r0, r1 - cmp r0, #0 - beq ._310 @cond_branch - lsl r0, r2, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x7 - bhi ._310 @cond_branch - cmp r0, #0x4 - bhi ._311 @cond_branch - add r0, r2, #1 - strb r0, [r5, #0x7] - b ._313 -._311: - lsl r0, r3, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x2 - bhi ._313 @cond_branch - add r0, r3, #1 -._308: - strb r0, [r5, #0x6] - ldrb r0, [r5, #0x6] - bl debug_80C4F00 -._313: - ldr r0, ._314 @ gTasks - lsl r1, r4, #0x2 - add r1, r1, r4 - lsl r1, r1, #0x3 - add r1, r1, r0 - ldr r0, ._314 + 4 @ debug_80C4DB8 -._296: - str r0, [r1] -._310: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._315: - .align 2, 0 -._314: - .word gTasks - .word debug_80C4DB8+1 - - thumb_func_end debug_80C4E18 - - thumb_func_start debug_80C4F00 -debug_80C4F00: - push {r4, r5, r6, lr} - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - mov r0, #0x1 - mov r1, #0x3 - mov r2, #0xd - mov r3, #0xe - bl Menu_BlankWindowRect - mov r4, #0x0 - ldr r6, ._318 @ gUnknown_Debug_083F814C -._317: - cmp r4, #0x8 - bhi ._316 @cond_branch - add r0, r4, r5 - lsl r0, r0, #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 -._316: - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0x5 - bls ._317 @cond_branch - pop {r4, r5, r6} - pop {r0} - bx r0 -._319: - .align 2, 0 -._318: - .word gUnknown_Debug_083F814C - - thumb_func_end debug_80C4F00 - - thumb_func_start debug_80C4F48 -debug_80C4F48: - push {r4, r5, r6, lr} - mov r6, r9 - mov r5, r8 - push {r5, r6} - add sp, sp, #0xffffffc4 - add r4, r0, #0 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - ldr r1, ._320 @ gUnknown_Debug_083F8211 - mov r0, sp - mov r2, #0x11 - bl memcpy - add r6, sp, #0x14 - ldr r1, ._320 + 4 @ gUnknown_Debug_083F81A0 - add r0, r6, #0 - mov r2, #0xd - bl memcpy - add r5, sp, #0x24 - ldr r1, ._320 + 8 @ gUnknown_Debug_083F8222 - add r0, r5, #0 - mov r2, #0xd - bl memcpy - add r0, sp, #0x34 - mov r9, r0 - ldr r1, ._320 + 12 @ gUnknown_Debug_083F822F - mov r2, #0x4 - bl memcpy - add r0, sp, #0x38 - mov r8, r0 - ldr r1, ._320 + 16 @ gUnknown_Debug_083F8233 - mov r2, #0x4 - 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, r6, #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, r5, #0 - mov r1, #0x2 - mov r2, #0x1 - bl Menu_PrintText - mov r0, #0x1 - mov r1, #0x3 - mov r2, #0xd - mov r3, #0xe - bl Menu_BlankWindowRect - add r0, r5, #0 - mov r1, #0x2 - mov r2, #0x1 - bl Menu_PrintText - mov r0, r9 - mov r1, #0x2 - mov r2, #0x3 - bl Menu_PrintText - mov r0, r8 - mov r1, #0x2 - mov r2, #0x5 - bl Menu_PrintText - mov r0, #0xf - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0xf - bl Menu_DrawStdWindowFrame - ldr r1, ._320 + 20 @ gTasks - lsl r0, r4, #0x2 - add r0, r0, r4 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._320 + 24 @ debug_80C5038 - str r1, [r0] - add sp, sp, #0x3c - pop {r3, r4} - mov r8, r3 - mov r9, r4 - pop {r4, r5, r6} - pop {r0} - bx r0 -._321: - .align 2, 0 -._320: - .word gUnknown_Debug_083F8211 - .word gUnknown_Debug_083F81A0 - .word gUnknown_Debug_083F8222 - .word gUnknown_Debug_083F822F - .word gUnknown_Debug_083F8233 - .word gTasks - .word debug_80C5038+1 - - thumb_func_end debug_80C4F48 - thumb_func_start debug_80C5038 debug_80C5038: push {r4, lr} diff --git a/data/debug_menu_watanabe.s b/data/debug_menu_watanabe.s index 5b99533da..50cc210d7 100644 --- a/data/debug_menu_watanabe.s +++ b/data/debug_menu_watanabe.s @@ -716,43 +716,4 @@ gUnknown_Debug_083F8815:: .byte 0x20 .byte 0x21 - .align 2 -stru_83F8828:: - obj_tiles byte_83F88EC, 0x800, 0x1000 - null_obj_tiles - -stru_83F8838:: - obj_pal word_83F888C, 0x1000 - null_obj_pal - -gOamData_83F8848: - .2byte 0x00a0 - .2byte 0x0000 - .2byte 0x0000 - - .align 2 -gSpriteAnim_83F8850: - obj_image_anim_frame 38, 30 - obj_image_anim_end - -gSpriteAnim_83F8858: - obj_image_anim_frame 39, 30 - obj_image_anim_end - -gSpriteAnim_83F8860: - obj_image_anim_frame 40, 30 - obj_image_anim_end - -gSpriteAnimTable_83F8868:: - .4byte gSpriteAnim_83F8850, gSpriteAnim_83F8858, gSpriteAnim_83F8860 - -gSpriteTemplate_83F8874:: - spr_template 0x1000, 0x1000, gOamData_83F8848, gSpriteAnimTable_83F8868, 0, gDummySpriteAffineAnimTable, debug_80C7584 - -word_83F888C:: - .incbin "graphics/debug/sprite_browser.gbapal" - -byte_83F88EC:: - .incbin "graphics/debug/sprite_browser.4bpp" - .endif diff --git a/include/battle.h b/include/battle.h index e63560421..2af4bd19d 100644 --- a/include/battle.h +++ b/include/battle.h @@ -724,6 +724,7 @@ extern u8 gBattleTextBuff1[]; extern u16 gBattleTypeFlags; extern u8 gUnknown_02023A14_50; extern u16 gTrainerBattleOpponent; +extern u8 gBattleTerrain; // src/battle_bg.o void sub_800D6D4(); diff --git a/ld_script.txt b/ld_script.txt index e45408439..df91d85cc 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -589,6 +589,7 @@ SECTIONS { src/berry.o(.rodata); src/debug/watanabe_debug_menu.o(.rodata); data/debug_menu_watanabe.o(.rodata); + src/debug/watanabe_debug_menu.o(.data); src/script_menu.o(.rodata); src/naming_screen.o(.rodata); src/money.o(.rodata); diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index dcb74b870..a4002e325 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -28,15 +28,13 @@ 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 WatanabeDebugMenuItem1 { +struct WatanabeDebugMenuItem { const u8 * text; - u8 battleTypeFlags; - u8 unk5; -}; - -struct WatanabeDebugMenuItem2 { - const u8 * text; - u32 mask; + union { + u8 type1[2]; + u32 type2; + u8 type3; + } data; }; u32 byte_3005E30; @@ -59,11 +57,18 @@ void debug_80C4A60(u8 taskId); void debug_80C4AC4(u8 taskId); void debug_80C4C44(u8); void debug_80C4D14(u8 taskId); +void debug_80C4DB8(u8 taskId); +void debug_80C4E18(u8 taskId); +void debug_80C4F00(u8); void debug_80C4F48(u8 taskId); +void debug_80C5038(u8 taskId); +void debug_80C5158(u8 taskId); void debug_80C68CC(u16, u8, u8, u8); +void debug_80C7584(struct Sprite *); -extern const struct WatanabeDebugMenuItem1 gUnknown_Debug_083F8068[5]; -extern const struct WatanabeDebugMenuItem2 gUnknown_Debug_083F80D8[10]; +extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F8068[5]; +extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F80D8[10]; +extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F814C[9]; extern const u8 gUnknown_Debug_083F7FD4[2]; // = _("▶"); extern const u8 gUnknown_Debug_083F7FD6[4]; // = {0x25, 0x20, 0x01, 0x08}; @@ -84,9 +89,61 @@ 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 u8 gUnknown_Debug_083F81F5[13]; // = _("{COLOR RED}START:かいし"); +extern const u8 gUnknown_Debug_083F8202[15]; // =_("{COLOR RED}バトルちけい せんたく"); +extern const u8 gUnknown_Debug_083F8211[17]; // = _("じぶんの せいべつを えらんでね"); +extern const u8 gUnknown_Debug_083F8222[13]; // = _("{COLOR RED}せいべつ せんたく"); +extern const u8 gUnknown_Debug_083F822F[4]; // = _("おとこ"); +extern const u8 gUnknown_Debug_083F8233[4]; // = _("おんな"); + +#define SPRITETAG_WATANABE 0x1000 + +u8 byte_83F88EC[]; +u16 word_83F888C[]; + +struct SpriteSheet stru_83F8828[] = { + {byte_83F88EC, 0x800, SPRITETAG_WATANABE}, + {} +}; +struct SpritePalette stru_83F8838[] = { + {word_83F888C, SPRITETAG_WATANABE}, + {} +}; + +struct OamData gOamData_83F8848 = { + .y = 0xa0 +}; -extern const struct SpriteSheet stru_83F8828[2]; -extern const struct SpritePalette stru_83F8838[2]; +union AnimCmd gSpriteAnim_83F8850[] = { + ANIMCMD_FRAME(38, 30), + ANIMCMD_END +}; + +union AnimCmd gSpriteAnim_83F8858[] = { + ANIMCMD_FRAME(39, 30), + ANIMCMD_END +}; + +union AnimCmd gSpriteAnim_83F8860[] = { + ANIMCMD_FRAME(40, 30), + ANIMCMD_END +}; + +const union AnimCmd *gSpriteAnimTable_83F8868[] = { + gSpriteAnim_83F8850, + gSpriteAnim_83F8858, + gSpriteAnim_83F8860 +}; + +struct SpriteTemplate gSpriteTemplate_83F8874 = { + SPRITETAG_WATANABE, + SPRITETAG_WATANABE, + &gOamData_83F8848, + gSpriteAnimTable_83F8868, + NULL, + gDummySpriteAffineAnimTable, + debug_80C7584 +}; void debug_69(struct Sprite *sprite) { @@ -1168,9 +1225,9 @@ void debug_80C4900(u8 taskId) else if (gMain.newKeys & START_BUTTON || gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); - gBattleTypeFlags = gUnknown_Debug_083F8068[gUnknown_Debug_2038A0C[3]].battleTypeFlags; + gBattleTypeFlags = gUnknown_Debug_083F8068[gUnknown_Debug_2038A0C[3]].data.type1[0]; gUnknown_02023A14_50 = 8; - gUnknown_Debug_2038A0C[12] = gUnknown_Debug_083F8068[gUnknown_Debug_2038A0C[3]].unk5; + gUnknown_Debug_2038A0C[12] = gUnknown_Debug_083F8068[gUnknown_Debug_2038A0C[3]].data.type1[1]; if (gUnknown_Debug_2038A0C[3] == 1 || gUnknown_Debug_2038A0C[3] == 2) { debug_80C38E4(0, 1, 1, 14, 0); @@ -1223,7 +1280,7 @@ void debug_80C4AC4(u8 taskId) if (gMain.newKeys & A_BUTTON) { - u32 mask = gUnknown_Debug_083F80D8[r1].mask; + u32 mask = gUnknown_Debug_083F80D8[r1].data.type2; if (byte_3005E30 & mask) byte_3005E30 &= (mask ^ 0xFFFF); else @@ -1273,4 +1330,156 @@ void debug_80C4AC4(u8 taskId) } } +void debug_80C4C44(u8 a0) +{ + u8 i; + u8 j; + u8 sp00[15]; + + for (i = 0; i < 6; i++) + { + if (i + a0 < 10) + { + for (j = 0; gUnknown_Debug_083F80D8[i + a0].text[j] != EOS && j < 12; j++) + { + sp00[j + 3] = gUnknown_Debug_083F80D8[i + a0].text[j]; + } + for (; j < 12; j++) + { + sp00[j + 3] = CHAR_SPACE; + } + sp00[14] = EOS; + sp00[0] = EXT_CTRL_CODE_BEGIN; + sp00[1] = 0x01; + if (byte_3005E30 & (1 << (i + a0))) + sp00[2] = 0x03; + else + sp00[2] = 0x01; + Menu_PrintText(sp00, 17, 2 * i + 3); + } + } +} + +void debug_80C4D14(u8 taskId) +{ + // u8 sp00[] = _("たいせんモードを えらんでね"); + // u8 sp10[] = _("{COLOR RED}START:かいし"); + // u8 sp20[] = _("{COLOR RED}バトルちけい せんたく"); + + u8 sp00[ARRAY_COUNT(gUnknown_Debug_083F81C7)]; + u8 sp10[ARRAY_COUNT(gUnknown_Debug_083F81F5)]; + u8 sp20[ARRAY_COUNT(gUnknown_Debug_083F8202)]; + + memcpy(sp00, gUnknown_Debug_083F81C7, sizeof(gUnknown_Debug_083F81C7)); + memcpy(sp10, gUnknown_Debug_083F81F5, sizeof(gUnknown_Debug_083F81F5)); + memcpy(sp20, gUnknown_Debug_083F8202, sizeof(gUnknown_Debug_083F8202)); + + 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); + debug_80C4F00(gUnknown_Debug_2038A0C[6]); + + Menu_DrawStdWindowFrame(15, 0, 29,15); + gTasks[taskId].func = debug_80C4DB8; +} + +void debug_80C4DB8(u8 taskId) +{ + debug_80C38E4(2 * gUnknown_Debug_2038A0C[7] + 3, 1, 1, 14, 1); + REG_WIN1H = 0x0177; + REG_WIN1V = 0x017F; + gTasks[taskId].func = debug_80C4E18; +} + +void debug_80C4E18(u8 taskId) +{ + u8 r6 = gUnknown_Debug_2038A0C[6] + gUnknown_Debug_2038A0C[7]; + if (gMain.newKeys & B_BUTTON) + { + gTasks[taskId].func = debug_80C42B8; + } + else if (gMain.newKeys & START_BUTTON || gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + gBattleTerrain = gUnknown_Debug_083F814C[r6].data.type3; + gTasks[taskId].func = debug_80C5158; + } + else if (gMain.newAndRepeatedKeys & DPAD_UP) + { + if (gUnknown_Debug_2038A0C[7] > 0) + gUnknown_Debug_2038A0C[7]--; + else if (gUnknown_Debug_2038A0C[6] > 0) + { + gUnknown_Debug_2038A0C[6]--; + debug_80C4F00(gUnknown_Debug_2038A0C[6]); + } + gTasks[taskId].func = debug_80C4DB8; + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN && gUnknown_Debug_2038A0C[7] < 8) + { + if (gUnknown_Debug_2038A0C[7] < 5) + gUnknown_Debug_2038A0C[7]++; + else if (gUnknown_Debug_2038A0C[6] < 3) + { + gUnknown_Debug_2038A0C[6]++; + debug_80C4F00(gUnknown_Debug_2038A0C[6]); + } + gTasks[taskId].func = debug_80C4DB8; + } +} + +void debug_80C4F00(u8 a0) +{ + u8 i; + Menu_BlankWindowRect(1, 3, 13, 14); + + for (i = 0; i < 6; i++) + { + if (i < 9) + Menu_PrintText(gUnknown_Debug_083F814C[i + a0].text, 2, 2 * i + 3); + } +} + +void debug_80C4F48(u8 taskId) +{ + // u8 sp00[] = _("じぶんの せいべつを えらんでね"); + // u8 sp14[] = _("{COLOR RED}START:つぎへ"); + // u8 sp24[] = _("{COLOR RED}せいべつ せんたく"); + // u8 sp34[] = _("おとこ"); + // u8 sp38[] = _("おんな"); + + u8 sp00[ARRAY_COUNT(gUnknown_Debug_083F8211)]; + u8 sp14[ARRAY_COUNT(gUnknown_Debug_083F81A0)]; + u8 sp24[ARRAY_COUNT(gUnknown_Debug_083F8222)]; + u8 sp34[ARRAY_COUNT(gUnknown_Debug_083F822F)]; + u8 sp38[ARRAY_COUNT(gUnknown_Debug_083F8233)]; + + memcpy(sp00, gUnknown_Debug_083F8211, sizeof(gUnknown_Debug_083F8211)); + memcpy(sp14, gUnknown_Debug_083F81A0, sizeof(gUnknown_Debug_083F81A0)); + memcpy(sp24, gUnknown_Debug_083F8222, sizeof(gUnknown_Debug_083F8222)); + memcpy(sp34, gUnknown_Debug_083F822F, sizeof(gUnknown_Debug_083F822F)); + memcpy(sp38, gUnknown_Debug_083F8233, sizeof(gUnknown_Debug_083F8233)); + + Menu_DrawStdWindowFrame(0, 16, 29, 19); + Menu_PrintText(sp00, 1, 17); + Menu_PrintText(sp14, 20, 17); + + Menu_DrawStdWindowFrame(0, 0, 14, 15); + Menu_PrintText(sp24, 2, 1); + + Menu_BlankWindowRect(1, 3, 13, 14); + Menu_PrintText(sp24, 2, 1); + Menu_PrintText(sp34, 2, 3); + Menu_PrintText(sp38, 2, 5); + + Menu_DrawStdWindowFrame(15, 0, 29, 15); + gTasks[taskId].func = debug_80C5038; +} + +u16 word_83F888C[] = INCBIN_U16("graphics/debug/sprite_browser.gbapal"); +u8 byte_83F88EC[] = INCBIN_U8("graphics/debug/sprite_browser.4bpp"); + #endif // DEBUG |