diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-04-17 19:15:32 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-04-17 19:15:32 -0400 |
commit | d42c033eb624bc096431de7f259088ed43126245 (patch) | |
tree | cf341c37899cffdbf4f47eb28610f9aa1d947758 | |
parent | 670a3e6b2bccb4b2def62c848e3925ae1086bf58 (diff) |
through debug_80C53F0 (also testing resplit of string)
-rw-r--r-- | asm/watanabe_debug_menu.s | 440 | ||||
-rw-r--r-- | data/debug_menu_watanabe.s | 7 | ||||
-rw-r--r-- | include/battle.h | 1 | ||||
-rw-r--r-- | src/debug/watanabe_debug_menu.c | 141 |
4 files changed, 145 insertions, 444 deletions
diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index 83e4c5f10..b8618a780 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,446 +5,6 @@ .text - thumb_func_start debug_80C527C -debug_80C527C: - push {r4, r5, r6, r7, lr} - add r6, r0, #0 - mov r5, #0x0 - ldr r7, ._359 @ gPlayerPartyCount -._361: - mov r0, #0x64 - add r1, r5, #0 - mul r1, r1, r0 - ldr r0, ._359 + 4 @ gPlayerParty - add r4, r1, r0 - add r0, r4, #0 - mov r1, #0xb - mov r2, #0x0 - bl GetMonData - cmp r0, #0 - bne ._357 @cond_branch - add r0, r4, #0 - add r1, r6, #0 - mov r2, #0x64 - bl memcpy - add r0, r5, #1 - strb r0, [r7] - mov r0, #0x0 - b ._358 -._360: - .align 2, 0 -._359: - .word gPlayerPartyCount - .word gPlayerParty -._357: - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #0x5 - bls ._361 @cond_branch - ldr r0, ._362 @ gUnknown_Debug_2038A1C - ldr r0, [r0] - bl SendMonToPC - mov r0, #0x1 -._358: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 -._363: - .align 2, 0 -._362: - .word gUnknown_Debug_2038A1C - - thumb_func_end debug_80C527C - - thumb_func_start InitCreatePokemon -InitCreatePokemon: - push {r4, r5, lr} - add sp, sp, #0xffffffd4 - ldr r1, ._364 @ gUnknown_Debug_083F8733 - add r0, sp, #0x4 - mov r2, #0x25 - bl memcpy - bl debug_80C35DC - mov r0, #0x1 - neg r0, r0 - mov r4, #0x0 - str r4, [sp] - mov r1, #0x0 - mov r2, #0x10 - mov r3, #0x0 - bl BeginNormalPaletteFade - ldr r0, ._364 + 4 @ 0x4000050 - mov r5, #0x0 - strh r4, [r0] - add r0, r0, #0x2 - strh r4, [r0] - add r0, r0, #0x2 - strh r4, [r0] - ldr r3, ._364 + 8 @ 0x4000208 - ldrh r2, [r3] - strh r4, [r3] - ldr r4, ._364 + 12 @ 0x4000200 - ldrh r0, [r4] - mov r1, #0x1 - orr r0, r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, ._364 + 16 @ 0x4000004 - ldrh r0, [r2] - mov r1, #0x8 - orr r0, r0, r1 - strh r0, [r2] - ldr r0, ._364 + 20 @ debug_80C3758 - bl SetVBlankCallback - ldr r0, ._364 + 24 @ debug_80C370C - bl SetMainCallback2 - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x3 - bl Menu_DrawStdWindowFrame - add r0, sp, #0x4 - mov r1, #0x1 - mov r2, #0x1 - bl Menu_PrintText - mov r1, #0x80 - lsl r1, r1, #0x13 - mov r2, #0x8a - lsl r2, r2, #0x5 - add r0, r2, #0 - strh r0, [r1] - ldr r0, ._364 + 28 @ debug_80C53A4 - mov r1, #0x0 - bl CreateTask - bl debug_80C5208 - ldr r1, ._364 + 32 @ gUnknown_Debug_2038A1C - ldr r0, [r1] - mov r2, #0xb4 - lsl r2, r2, #0x1 - add r0, r0, r2 - strb r5, [r0] - ldr r0, [r1] - ldr r1, ._364 + 36 @ 0x169 - add r0, r0, r1 - strb r5, [r0] - add sp, sp, #0x2c - pop {r4, r5} - pop {r0} - bx r0 -._365: - .align 2, 0 -._364: - .word gUnknown_Debug_083F8733 - .word 0x4000050 - .word 0x4000208 - .word 0x4000200 - .word 0x4000004 - .word debug_80C3758+1 - .word debug_80C370C+1 - .word debug_80C53A4+1 - .word gUnknown_Debug_2038A1C - .word 0x169 - - thumb_func_end InitCreatePokemon - - thumb_func_start debug_80C53A4 -debug_80C53A4: - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - ldr r2, ._366 @ gTasks - lsl r1, r0, #0x2 - add r1, r1, r0 - lsl r1, r1, #0x3 - add r1, r1, r2 - ldr r0, ._366 + 4 @ debug_80C53C0 - str r0, [r1] - bx lr -._367: - .align 2, 0 -._366: - .word gTasks - .word debug_80C53C0+1 - - thumb_func_end debug_80C53A4 - - thumb_func_start debug_80C53C0 -debug_80C53C0: - push {r4, lr} - add r4, r0, #0 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - bl debug_80C6384 - mov r0, #0x0 - bl debug_80C627C - ldr r1, ._368 @ gTasks - lsl r0, r4, #0x2 - add r0, r0, r4 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._368 + 4 @ debug_80C53F0 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 -._369: - .align 2, 0 -._368: - .word gTasks - .word debug_80C53F0+1 - - thumb_func_end debug_80C53C0 - - thumb_func_start debug_80C53F0 -debug_80C53F0: - push {r4, r5, r6, lr} - add sp, sp, #0xfffffffc - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - ldr r0, ._372 @ gMain - ldrh r1, [r0, #0x2e] - mov r2, #0x1 - and r2, r2, r1 - add r4, r0, #0 - cmp r2, #0 - beq ._370 @cond_branch - ldr r0, ._372 + 4 @ gUnknown_Debug_2038A1C - ldr r3, [r0] - mov r0, #0xb2 - lsl r0, r0, #0x1 - add r2, r3, r0 - ldr r1, ._372 + 8 @ gUnknown_Debug_083F8698 - mov r4, #0xb4 - lsl r4, r4, #0x1 - add r0, r3, r4 - ldrb r0, [r0] - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r6, ._372 + 12 @ 0x169 - add r1, r3, r6 - ldrb r1, [r1] - ldr r0, [r0] - add r0, r0, r1 - ldrb r1, [r0] - lsl r1, r1, #0x2 - add r0, r3, #0 - add r0, r0, #0x64 - add r0, r0, r1 - ldr r0, [r0] - str r0, [r2] - mov r0, #0xb5 - lsl r0, r0, #0x1 - add r1, r3, r0 - mov r0, #0x0 - strb r0, [r1] - bl debug_80C643C - ldr r1, ._372 + 16 @ gTasks - lsl r0, r5, #0x2 - add r0, r0, r5 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._372 + 20 @ debug_80C55E4 - b ._375 -._373: - .align 2, 0 -._372: - .word gMain - .word gUnknown_Debug_2038A1C - .word gUnknown_Debug_083F8698 - .word 0x169 - .word gTasks - .word debug_80C55E4+1 -._370: - mov r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - beq ._374 @cond_branch - mov r0, #0x1 - neg r0, r0 - str r2, [sp] - mov r1, #0x0 - mov r2, #0x0 - mov r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, ._376 @ debug_80C370C - bl SetMainCallback2 - ldr r1, ._376 + 4 @ gTasks - lsl r0, r5, #0x2 - add r0, r0, r5 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._376 + 8 @ debug_80C373C - b ._375 -._377: - .align 2, 0 -._376: - .word debug_80C370C+1 - .word gTasks - .word debug_80C373C+1 -._374: - mov r0, #0x8 - and r0, r0, r1 - cmp r0, #0 - beq ._378 @cond_branch - mov r0, #0x5 - bl PlaySE - bl debug_80C5FFC - ldr r0, ._381 @ gUnknown_Debug_2038A1C - ldr r0, [r0] - bl debug_80C527C - add r4, r0, #0 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - mov r0, #0x3 - mov r1, #0x8 - mov r2, #0x1a - mov r3, #0xb - bl Menu_DrawStdWindowFrame - cmp r4, #0 - beq ._379 @cond_branch - ldr r0, ._381 + 4 @ gUnknown_Debug_083F872A - mov r1, #0x4 - mov r2, #0x9 - bl Menu_PrintText - b ._380 -._382: - .align 2, 0 -._381: - .word gUnknown_Debug_2038A1C - .word gUnknown_Debug_083F872A -._379: - ldr r0, ._384 @ gUnknown_Debug_083F8720 - mov r1, #0x4 - mov r2, #0x9 - bl Menu_PrintText -._380: - ldr r0, ._384 + 4 @ gTasks - lsl r1, r5, #0x2 - add r1, r1, r5 - lsl r1, r1, #0x3 - add r1, r1, r0 - ldr r0, ._384 + 8 @ debug_80C5708 - str r0, [r1] - b ._400 -._385: - .align 2, 0 -._384: - .word gUnknown_Debug_083F8720 - .word gTasks - .word debug_80C5708+1 -._378: - mov r0, #0x4 - and r0, r0, r1 - cmp r0, #0 - beq ._386 @cond_branch - ldr r0, ._388 @ gUnknown_Debug_2038A1C - ldr r0, [r0] - ldr r4, [r0, #0x64] - lsl r4, r4, #0x10 - lsr r4, r4, #0x10 - add r0, r4, #0 - mov r1, #0x2 - bl GetSetPokedexFlag - add r0, r4, #0 - mov r1, #0x3 - bl GetSetPokedexFlag - mov r0, #0x5 - bl PlaySE - b ._400 -._389: - .align 2, 0 -._388: - .word gUnknown_Debug_2038A1C -._386: - mov r0, #0x40 - and r0, r0, r1 - cmp r0, #0 - beq ._390 @cond_branch - mov r0, #0x2 - bl debug_80C627C - b ._400 -._390: - mov r0, #0x80 - and r0, r0, r1 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 - cmp r3, #0 - beq ._392 @cond_branch - mov r0, #0x1 - bl debug_80C627C - b ._400 -._392: - mov r0, #0x80 - lsl r0, r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - beq ._395 @cond_branch - ldr r2, ._397 @ gUnknown_Debug_2038A1C - ldr r0, [r2] - mov r6, #0xb4 - lsl r6, r6, #0x1 - add r1, r0, r6 - ldrb r0, [r1] - cmp r0, #0 - beq ._395 @cond_branch - sub r0, r0, #0x1 - strb r0, [r1] - ldr r0, [r2] - ldr r1, ._397 + 4 @ 0x169 - add r0, r0, r1 - strb r3, [r0] - b ._396 -._398: - .align 2, 0 -._397: - .word gUnknown_Debug_2038A1C - .word 0x169 -._395: - ldrh r1, [r4, #0x2e] - mov r0, #0x80 - lsl r0, r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._400 @cond_branch - ldr r3, ._401 @ gUnknown_Debug_2038A1C - ldr r0, [r3] - mov r4, #0xb4 - lsl r4, r4, #0x1 - add r2, r0, r4 - ldrb r0, [r2] - cmp r0, #0x4 - bhi ._400 @cond_branch - add r0, r0, #0x1 - mov r1, #0x0 - strb r0, [r2] - ldr r0, [r3] - ldr r6, ._401 + 4 @ 0x169 - add r0, r0, r6 - strb r1, [r0] -._396: - ldr r1, ._401 + 8 @ gTasks - lsl r0, r5, #0x2 - add r0, r0, r5 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._401 + 12 @ debug_80C53C0 -._375: - str r1, [r0] -._400: - add sp, sp, #0x4 - pop {r4, r5, r6} - pop {r0} - bx r0 -._402: - .align 2, 0 -._401: - .word gUnknown_Debug_2038A1C - .word 0x169 - .word gTasks - .word debug_80C53C0+1 - - thumb_func_end debug_80C53F0 - thumb_func_start debug_80C55E4 debug_80C55E4: push {r4, r5, r6, r7, lr} diff --git a/data/debug_menu_watanabe.s b/data/debug_menu_watanabe.s index 50cc210d7..b409ecab3 100644 --- a/data/debug_menu_watanabe.s +++ b/data/debug_menu_watanabe.s @@ -568,7 +568,10 @@ gUnknown_Debug_083F867F:: @ 0x83F867F .string "$" gUnknown_Debug_083F8687:: @ 0x83F8687 - .string "てとなにぬね{STRING 255}のはひふへほ$" + .string "てとなにぬね{STRING}$" + +gUnknown_Debug_083F868F:: @ 0x83F8687 + .string "のはひふへほ$" .align 2 gUnknown_Debug_083F8698:: @ 0x83F8698 @@ -577,7 +580,7 @@ gUnknown_Debug_083F8698:: @ 0x83F8698 .4byte gUnknown_Debug_083F8678, 0x6 .4byte gUnknown_Debug_083F867F, 0x6 .4byte gUnknown_Debug_083F8687, 0x6 - .4byte 0x83F868F, 0x6 + .4byte gUnknown_Debug_083F868F, 0x6 gUnknown_Debug_083F86C8:: @ 0x83F86C8 .string "ーーー$" diff --git a/include/battle.h b/include/battle.h index 2af4bd19d..e63560421 100644 --- a/include/battle.h +++ b/include/battle.h @@ -724,7 +724,6 @@ 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/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index b435c4558..5ed067651 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -35,8 +35,12 @@ struct WatanabeDebugMenuItem { }; struct WatanabeEwram18000 { - u8 filler_00[0x64]; + struct Pokemon pokemon; u32 unk64[0x40]; + u32 unk164; + u8 unk168; + u8 unk169; + u8 unk16a; }; #define eWatanabe18000 (*(struct WatanabeEwram18000 *)(gSharedMem + 0x18000)) @@ -48,6 +52,8 @@ EWRAM_DATA u8 gUnknown_Debug_2038A20[4] = { 0 }; u32 byte_3005E30; +extern s8 gBattleTerrain; + void debug_80C3A50(u8 taskId); void debug_80C3D2C(u8 taskId); void debug_80C4214(u8); @@ -78,13 +84,23 @@ void debug_80C5190(u8 taskId); void debug_80C51AC(u8 taskId); void debug_80C51C8(u8 taskId); void debug_80C51E4(u8 taskId); +void debug_80C53A4(u8 taskId); +void debug_80C53C0(u8 taskId); +void debug_80C53F0(u8 taskId); +void debug_80C55E4(u8 taskId); +void debug_80C5708(u8 taskId); void debug_80C5C94(void); +void debug_80C5FFC(void); +void debug_80C627C(u8); +void debug_80C6384(void); +void debug_80C643C(void); void debug_80C68CC(u16, u8, u8, u8); void debug_80C7584(struct Sprite *); 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 struct WatanabeDebugMenuItem gUnknown_Debug_083F8698[6]; extern const u8 gUnknown_Debug_083F7FD4[2]; // = _("▶"); extern const u8 gUnknown_Debug_083F7FD6[4]; // = {0x25, 0x20, 0x01, 0x08}; @@ -111,6 +127,9 @@ 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]; // = _("おんな"); +extern const u8 gUnknown_Debug_083F8720[10]; +extern const u8 gUnknown_Debug_083F872A[9]; +extern const u8 gUnknown_Debug_083F8733[37]; // = _("Create POKひMON LR:Shift START:Add"); #define SPRITETAG_WATANABE 0x1000 @@ -1578,6 +1597,126 @@ void debug_80C5208(void) debug_80C5C94(); } +bool8 debug_80C527C(struct Pokemon *pokemon) +{ + u8 i; + + for (i = 0; i < PARTY_SIZE; i++) + { + if (GetMonData(gPlayerParty + i, MON_DATA_SPECIES, NULL) == SPECIES_NONE) + { + gPlayerParty[i] = *pokemon; + gPlayerPartyCount = i + 1; + return FALSE; + } + } + SendMonToPC(&gUnknown_Debug_2038A1C->pokemon); + return TRUE; +} + +void InitCreatePokemon(void) +{ + // u8 sp04[] = _("Create POKひMON LR:Shift START:Add"); + u8 sp04[ARRAY_COUNT(gUnknown_Debug_083F8733)]; + + memcpy(sp04, gUnknown_Debug_083F8733, sizeof(gUnknown_Debug_083F8733)); + + debug_80C35DC(); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); + REG_BLDCNT = 0x0000; + REG_BLDALPHA = 0x0000; + REG_BLDY = 0x0000; + + { + u16 imeBak = REG_IME; + REG_IME = 0; + REG_IE |= INTR_FLAG_VBLANK; + REG_IME = imeBak; + } + + REG_DISPSTAT |= DISPSTAT_VBLANK_INTR; + + SetVBlankCallback(debug_80C3758); + SetMainCallback2(debug_80C370C); + + Menu_DrawStdWindowFrame(0, 0, 29, 3); + Menu_PrintText(sp04, 1, 1); + REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_OBJ_ON; + CreateTask(debug_80C53A4, 0); + debug_80C5208(); + gUnknown_Debug_2038A1C->unk168 = 0; + gUnknown_Debug_2038A1C->unk169 = 0; +} + +void debug_80C53A4(u8 taskId) +{ + gTasks[taskId].func = debug_80C53C0; +} + +void debug_80C53C0(u8 taskId) +{ + debug_80C6384(); + debug_80C627C(0); + gTasks[taskId].func = debug_80C53F0; +} + +void debug_80C53F0(u8 taskId) +{ + if (gMain.newKeys & A_BUTTON) + { + gUnknown_Debug_2038A1C->unk164 = gUnknown_Debug_2038A1C->unk64[gUnknown_Debug_083F8698[gUnknown_Debug_2038A1C->unk168].text[gUnknown_Debug_2038A1C->unk169]]; + gUnknown_Debug_2038A1C->unk16a = 0; + debug_80C643C(); + gTasks[taskId].func = debug_80C55E4; + } + else if (gMain.newKeys & B_BUTTON) + { + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + SetMainCallback2(debug_80C370C); + gTasks[taskId].func = debug_80C373C; + } + else if (gMain.newKeys & START_BUTTON) + { + bool8 r4; + PlaySE(SE_SELECT); + debug_80C5FFC(); + r4 = debug_80C527C(&gUnknown_Debug_2038A1C->pokemon); + Menu_DrawStdWindowFrame(3, 8, 26, 11); + if (r4) + Menu_PrintText(gUnknown_Debug_083F872A, 4, 9); + else + Menu_PrintText(gUnknown_Debug_083F8720, 4, 9); + gTasks[taskId].func = debug_80C5708; + } + else if (gMain.newKeys & SELECT_BUTTON) + { + u32 r4 = gUnknown_Debug_2038A1C->unk64[0]; + GetSetPokedexFlag(r4, 2); + GetSetPokedexFlag(r4, 3); + PlaySE(SE_SELECT); + } + else if (gMain.newKeys & DPAD_UP) + { + debug_80C627C(2); + } + else if (gMain.newKeys & DPAD_DOWN) + { + debug_80C627C(1); + } + else if (gMain.newKeys & L_BUTTON && gUnknown_Debug_2038A1C->unk168 > 0) + { + gUnknown_Debug_2038A1C->unk168--; + gUnknown_Debug_2038A1C->unk169 = 0; + gTasks[taskId].func = debug_80C53C0; + } + else if (gMain.newKeys & R_BUTTON && gUnknown_Debug_2038A1C->unk168 < 5) + { + gUnknown_Debug_2038A1C->unk168++; + gUnknown_Debug_2038A1C->unk169 = 0; + gTasks[taskId].func = debug_80C53C0; + } +} + u16 word_83F888C[] = INCBIN_U16("graphics/debug/sprite_browser.gbapal"); u8 byte_83F88EC[] = INCBIN_U8("graphics/debug/sprite_browser.4bpp"); |