From 95bf34a6d4af0eca83d9ca3bf7e9a898e00429c8 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 12 Apr 2018 08:37:45 -0400 Subject: debug_80C35DC --- asm/watanabe_debug_menu.s | 137 ---------------------------------------- ld_script.txt | 1 + src/debug/watanabe_debug_menu.c | 47 ++++++++++++++ 3 files changed, 48 insertions(+), 137 deletions(-) diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index 892c2262d..8c482e10a 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,143 +5,6 @@ .text - thumb_func_start debug_69 -debug_69: - bx lr - - thumb_func_end debug_69 - - thumb_func_start debug_80C35DC -debug_80C35DC: - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - add sp, sp, #0xfffffff8 - mov r0, #0x0 - bl SetVBlankCallback - mov r0, #0x80 - lsl r0, r0, #0x13 - mov r1, #0x0 - strh r1, [r0] - add r0, r0, #0xe - strh r1, [r0] - sub r0, r0, #0x2 - strh r1, [r0] - sub r0, r0, #0x2 - strh r1, [r0] - sub r0, r0, #0x2 - strh r1, [r0] - add r0, r0, #0x14 - strh r1, [r0] - add r0, r0, #0x2 - strh r1, [r0] - sub r0, r0, #0x6 - strh r1, [r0] - add r0, r0, #0x2 - strh r1, [r0] - sub r0, r0, #0x6 - strh r1, [r0] - add r0, r0, #0x2 - strh r1, [r0] - sub r0, r0, #0x6 - strh r1, [r0] - add r0, r0, #0x2 - strh r1, [r0] - mov r3, #0xc0 - lsl r3, r3, #0x13 - mov r4, #0xc0 - lsl r4, r4, #0x9 - add r0, sp, #0x4 - mov r8, r0 - mov r2, sp - mov r6, #0x0 - ldr r1, ._2 @ 0x40000d4 - mov r5, #0x80 - lsl r5, r5, #0x5 - ldr r7, ._2 + 4 @ 0x81000800 - mov r0, #0x81 - lsl r0, r0, #0x18 - mov ip, r0 -._1: - strh r6, [r2] - mov r0, sp - str r0, [r1] - str r3, [r1, #0x4] - str r7, [r1, #0x8] - ldr r0, [r1, #0x8] - add r3, r3, r5 - sub r4, r4, r5 - cmp r4, r5 - bhi ._1 @cond_branch - strh r6, [r2] - mov r2, sp - str r2, [r1] - str r3, [r1, #0x4] - lsr r0, r4, #0x1 - mov r2, ip - orr r0, r0, r2 - str r0, [r1, #0x8] - ldr r0, [r1, #0x8] - mov r0, #0xe0 - lsl r0, r0, #0x13 - mov r3, #0x80 - lsl r3, r3, #0x3 - mov r4, #0x0 - str r4, [sp, #0x4] - ldr r2, ._2 @ 0x40000d4 - mov r1, r8 - str r1, [r2] - str r0, [r2, #0x4] - lsr r0, r3, #0x2 - mov r1, #0x85 - lsl r1, r1, #0x18 - orr r0, r0, r1 - str r0, [r2, #0x8] - ldr r0, [r2, #0x8] - mov r1, #0xa0 - lsl r1, r1, #0x13 - mov r0, sp - strh r4, [r0] - str r0, [r2] - str r1, [r2, #0x4] - lsr r3, r3, #0x1 - mov r0, #0x81 - lsl r0, r0, #0x18 - orr r3, r3, r0 - str r3, [r2, #0x8] - ldr r0, [r2, #0x8] - bl ResetPaletteFade - bl ScanlineEffect_Stop - bl ResetTasks - bl ResetSpriteData - bl ResetPaletteFade - bl FreeAllSpritePalettes - ldr r0, ._2 + 8 @ stru_83F8828 - bl LoadSpriteSheet - ldr r0, ._2 + 12 @ stru_83F8838 - bl LoadSpritePalette - ldr r0, ._2 + 16 @ gWindowTemplate_81E6C3C - bl Text_LoadWindowTemplate - ldr r0, ._2 + 20 @ gWindowTemplate_81E6CE4 - bl InitMenuWindow - add sp, sp, #0x8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._3: - .align 2, 0 -._2: - .word 0x40000d4 - .word 0x81000800 - .word stru_83F8828 - .word stru_83F8838 - .word gWindowTemplate_81E6C3C - .word gWindowTemplate_81E6CE4 - - thumb_func_end debug_80C35DC - thumb_func_start debug_80C36F4 debug_80C36F4: push {lr} diff --git a/ld_script.txt b/ld_script.txt index 2c861fdb7..e45408439 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -587,6 +587,7 @@ SECTIONS { src/shop.o(.rodata); src/fldeff_escalator.o(.rodata); src/berry.o(.rodata); + src/debug/watanabe_debug_menu.o(.rodata); data/debug_menu_watanabe.o(.rodata); src/script_menu.o(.rodata); src/naming_screen.o(.rodata); diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index 6c94b0466..8423ba685 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -1,5 +1,13 @@ #if DEBUG #include "global.h" +#include "debug.h" +#include "palette.h" +#include "scanline_effect.h" +#include "main.h" +#include "task.h" +#include "sprite.h" +#include "text.h" +#include "menu.h" EWRAM_DATA u8 gUnknown_Debug_20389EC[0x20] = { 0 }; EWRAM_DATA u8 gUnknown_Debug_2038A0C[0x10] = { 0 }; @@ -8,4 +16,43 @@ EWRAM_DATA u8 gUnknown_Debug_2038A20[4] = { 0 }; u8 byte_3005E30[0x20]; +extern const struct SpriteSheet stru_83F8828[2]; +extern const struct SpritePalette stru_83F8838[2]; + +void debug_69(struct Sprite *sprite) +{ + +} + +void debug_80C35DC(void) +{ + SetVBlankCallback(NULL); + REG_DISPCNT = 0; + REG_BG3CNT = 0; + REG_BG2CNT = 0; + REG_BG1CNT = 0; + REG_BG0CNT = 0; + REG_BG3HOFS = 0; + REG_BG3VOFS = 0; + REG_BG2HOFS = 0; + REG_BG2VOFS = 0; + REG_BG1HOFS = 0; + REG_BG1VOFS = 0; + REG_BG0HOFS = 0; + REG_BG0VOFS = 0; + DmaFill16Large(3, 0, VRAM, VRAM_SIZE, 0x1000); + DmaFill32Defvars(3, 0, OAM, OAM_SIZE); + DmaFill16Defvars(3, 0, PLTT, PLTT_SIZE); + ResetPaletteFade(); + ScanlineEffect_Stop(); + ResetTasks(); + ResetSpriteData(); + ResetPaletteFade(); // I really don't want palette fade here + FreeAllSpritePalettes(); + LoadSpriteSheet(stru_83F8828); + LoadSpritePalette(stru_83F8838); + Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C); + InitMenuWindow(&gWindowTemplate_81E6CE4); +} + #endif -- cgit v1.2.3 From bbab3e05fb5f459bbdefcc4dc3a0ea7a60c96f67 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 12 Apr 2018 08:45:40 -0400 Subject: through debug_80C376C --- asm/watanabe_debug_menu.s | 144 ---------------------------------------- src/debug/watanabe_debug_menu.c | 69 +++++++++++++++++++ 2 files changed, 69 insertions(+), 144 deletions(-) diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index 8c482e10a..80ed3f7b9 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,150 +5,6 @@ .text - thumb_func_start debug_80C36F4 -debug_80C36F4: - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - - thumb_func_end debug_80C36F4 - - thumb_func_start debug_80C370C -debug_80C370C: - push {lr} - ldr r0, ._6 @ gPaletteFade - ldrb r1, [r0, #0x7] - mov r0, #0x80 - and r0, r0, r1 - cmp r0, #0 - bne ._4 @cond_branch - ldr r0, ._6 + 4 @ debug_80C36F4 - bl SetMainCallback2 - b ._5 -._7: - .align 2, 0 -._6: - .word gPaletteFade - .word debug_80C36F4+1 -._4: - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade -._5: - pop {r0} - bx r0 - - thumb_func_end debug_80C370C - - thumb_func_start debug_80C373C -debug_80C373C: - push {lr} - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl DestroyTask - bl ScriptContext2_Disable - ldr r0, ._8 @ sub_80546F0 - bl SetMainCallback2 - pop {r0} - bx r0 -._9: - .align 2, 0 -._8: - .word sub_80546F0+1 - - thumb_func_end debug_80C373C - - thumb_func_start debug_80C3758 -debug_80C3758: - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - - thumb_func_end debug_80C3758 - - thumb_func_start debug_80C376C -debug_80C376C: - push {r4, r5, r6, r7, lr} - add sp, sp, #0xfffffffc - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - lsl r1, r1, #0x18 - lsr r7, r1, #0x18 - lsl r2, r2, #0x18 - lsr r6, r2, #0x18 - mov r1, #0x0 - mov r2, #0x0 -._10: - mov r3, sp - add r0, r3, r1 - strb r2, [r0] - add r0, r1, #1 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - cmp r1, #0x2 - bls ._10 @cond_branch - mov r1, sp - mov r0, #0xff - strb r0, [r1, #0x3] - mov r4, #0x0 - add r0, r5, #0 - mov r1, #0x64 - bl __udivsi3 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0 - beq ._11 @cond_branch - mov r1, sp - add r0, r0, #0xa1 - strb r0, [r1] - mov r4, #0x1 -._11: - add r0, r5, #0 - mov r1, #0x64 - bl __umodsi3 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r1, #0xa - bl __udivsi3 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0 - bne ._12 @cond_branch - cmp r4, #0 - beq ._13 @cond_branch -._12: - mov r1, sp - add r0, r0, #0xa1 - strb r0, [r1, #0x1] -._13: - mov r4, sp - add r0, r5, #0 - mov r1, #0x64 - bl __umodsi3 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r1, #0xa - bl __umodsi3 - add r0, r0, #0xa1 - strb r0, [r4, #0x2] - mov r0, sp - add r1, r7, #0 - add r2, r6, #0 - bl Menu_PrintText - add sp, sp, #0x4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - - thumb_func_end debug_80C376C - thumb_func_start debug_80C3800 debug_80C3800: push {r4, r5, r6, r7, lr} diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index 8423ba685..43d63dce4 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -8,6 +8,8 @@ #include "sprite.h" #include "text.h" #include "menu.h" +#include "script.h" +#include "overworld.h" EWRAM_DATA u8 gUnknown_Debug_20389EC[0x20] = { 0 }; EWRAM_DATA u8 gUnknown_Debug_2038A0C[0x10] = { 0 }; @@ -55,4 +57,71 @@ void debug_80C35DC(void) InitMenuWindow(&gWindowTemplate_81E6CE4); } +void debug_80C36F4(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +void debug_80C370C(void) +{ + if (!gPaletteFade.active) + { + SetMainCallback2(debug_80C36F4); + } + + else + { + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); + } +} + +void debug_80C373C(u8 taskId) +{ + DestroyTask(taskId); + ScriptContext2_Disable(); + SetMainCallback2(sub_80546F0); +} + +void debug_80C3758(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void debug_80C376C(u16 a0, u8 a1, u8 a2) +{ + u8 i; + u8 divresult; + u8 sp00[4]; + bool8 r4; + + for (i = 0; i < 3; i++) + sp00[i] = 0; + sp00[3] = EOS; + + r4 = FALSE; + divresult = a0 / 100; + if (divresult) + { + sp00[0] = CHAR_0 + divresult; + r4 = TRUE; + } + + divresult = (a0 % 100) / 10; + if (divresult || r4) + { + sp00[1] = CHAR_0 + divresult; + } + + sp00[2] = CHAR_0 + ((a0 % 100) % 10); + + Menu_PrintText(sp00, a1, a2); +} + #endif -- cgit v1.2.3 From 53e2b61fae450b47876420d8646a98ef8a2c450a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 12 Apr 2018 20:40:26 -0400 Subject: through InitSizeComparison --- asm/watanabe_debug_menu.s | 338 ---------------------------------------- src/debug/watanabe_debug_menu.c | 137 +++++++++++++++- 2 files changed, 136 insertions(+), 339 deletions(-) diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index 80ed3f7b9..3d751e544 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,344 +5,6 @@ .text - thumb_func_start debug_80C3800 -debug_80C3800: - push {r4, r5, r6, r7, lr} - add sp, sp, #0xfffffff4 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - lsl r1, r1, #0x18 - lsr r6, r1, #0x18 - lsl r2, r2, #0x18 - lsr r5, r2, #0x18 - mov r3, #0x0 - ldr r2, ._18 @ gSpeciesNames - mov r1, #0x0 -._14: - mov r7, sp - add r0, r7, r3 - strb r1, [r0] - add r0, r3, #1 - lsl r0, r0, #0x18 - lsr r3, r0, #0x18 - cmp r3, #0x9 - bls ._14 @cond_branch - add r1, r7, r3 - mov r0, #0xff - strb r0, [r1] - mov r3, #0x0 - mov r0, #0xb - add r1, r4, #0 - mul r1, r1, r0 - add r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0xff - beq ._16 @cond_branch - add r4, r2, #0 - add r2, r1, #0 -._17: - mov r0, sp - add r1, r0, r3 - add r0, r3, r2 - add r0, r0, r4 - ldrb r0, [r0] - strb r0, [r1] - add r0, r3, #1 - lsl r0, r0, #0x18 - lsr r3, r0, #0x18 - add r0, r3, r2 - add r0, r0, r4 - ldrb r0, [r0] - cmp r0, #0xff - beq ._16 @cond_branch - cmp r3, #0x9 - bls ._17 @cond_branch -._16: - mov r0, sp - add r1, r6, #0 - add r2, r5, #0 - bl Menu_PrintText - add sp, sp, #0xc - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._19: - .align 2, 0 -._18: - .word gSpeciesNames - - thumb_func_end debug_80C3800 - - thumb_func_start debug_80C3878 -debug_80C3878: - push {lr} - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - cmp r0, #0 - beq ._20 @cond_branch - cmp r0, #0x1 - beq ._21 @cond_branch -._20: - cmp r1, #0x1 - bls ._22 @cond_branch - sub r0, r1, #1 - b ._23 -._22: - ldr r1, ._25 @ 0x19b - b ._28 -._26: - .align 2, 0 -._25: - .word 0x19b -._21: - mov r0, #0xcd - lsl r0, r0, #0x1 - cmp r1, r0 - bhi ._27 @cond_branch - add r0, r1, #1 -._23: - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - b ._28 -._27: - mov r1, #0x1 -._28: - add r0, r1, #0 - pop {r1} - bx r1 - - thumb_func_end debug_80C3878 - - thumb_func_start debug_80C38B4 -debug_80C38B4: - push {lr} - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - lsl r1, r1, #0x10 - lsr r0, r1, #0x10 - cmp r2, #0 - beq ._29 @cond_branch - cmp r2, #0x1 - beq ._30 @cond_branch -._29: - cmp r0, #0 - beq ._31 @cond_branch - sub r0, r0, #0x1 - b ._32 -._31: - mov r0, #0x52 - b ._35 -._30: - cmp r0, #0x51 - bhi ._34 @cond_branch - add r0, r0, #0x1 -._32: - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - b ._35 -._34: - mov r0, #0x0 -._35: - pop {r1} - bx r1 - - thumb_func_end debug_80C38B4 - - thumb_func_start debug_80C38E4 -debug_80C38E4: - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - add sp, sp, #0xfffffffc - add r4, r2, #0 - add r5, r3, #0 - ldr r6, [sp, #0x1c] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov r8, r0 - lsl r1, r1, #0x18 - lsr r7, r1, #0x18 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - lsl r6, r6, #0x18 - lsr r6, r6, #0x18 - ldr r1, ._37 @ gUnknown_Debug_083F7FD4 - mov r0, sp - mov r2, #0x2 - bl memcpy - add r0, r7, #0 - add r1, r4, #0 - add r2, r7, #0 - add r3, r5, #0 - bl Menu_BlankWindowRect - cmp r6, #0 - beq ._36 @cond_branch - mov r0, sp - add r1, r7, #0 - mov r2, r8 - bl Menu_PrintText -._36: - add sp, sp, #0x4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._38: - .align 2, 0 -._37: - .word gUnknown_Debug_083F7FD4 - - thumb_func_end debug_80C38E4 - - thumb_func_start debug_80C393C -debug_80C393C: - push {lr} - ldr r1, ._39 @ gUnknown_Debug_083F7FD6 - mov r0, #0x1e - bl ProgramFlashSectorAndVerify - pop {r0} - bx r0 -._40: - .align 2, 0 -._39: - .word gUnknown_Debug_083F7FD6 - - thumb_func_end debug_80C393C - - thumb_func_start InitWatanabeDebugMenu -InitWatanabeDebugMenu: - push {r4, lr} - ldr r0, ._46 @ gMain - ldr r1, ._46 + 4 @ 0x43c - add r4, r0, r1 - ldrb r0, [r4] - cmp r0, #0x1 - beq ._41 @cond_branch - cmp r0, #0x1 - ble ._42 @cond_branch - cmp r0, #0x2 - beq ._43 @cond_branch - cmp r0, #0x3 - beq ._44 @cond_branch -._42: - bl save_serialize_map - bl sub_8125E2C - mov r0, #0x1 - strb r0, [r4] - b ._51 -._47: - .align 2, 0 -._46: - .word gMain - .word 0x43c -._41: - bl sub_8125E6C - lsl r0, r0, #0x18 - cmp r0, #0 - beq ._51 @cond_branch - b ._49 -._43: - mov r0, #0x37 - bl PlaySE -._49: - ldrb r0, [r4] - add r0, r0, #0x1 - strb r0, [r4] - b ._51 -._44: - bl IsSEPlaying - lsl r0, r0, #0x18 - cmp r0, #0 - bne ._51 @cond_branch - bl ScriptContext2_Disable - ldr r0, ._52 @ sub_80546F0 - bl SetMainCallback2 -._51: - pop {r4} - pop {r0} - bx r0 -._53: - .align 2, 0 -._52: - .word sub_80546F0+1 - - thumb_func_end InitWatanabeDebugMenu - - thumb_func_start InitSizeComparison -InitSizeComparison: - push {r4, lr} - add sp, sp, #0xfffffffc - bl debug_80C35DC - ldr r1, ._54 @ gReservedSpritePaletteCount - mov r0, #0x1 - strb r0, [r1] - ldr r0, ._54 + 4 @ gUnknown_Debug_20389EC - mov r1, #0x80 - lsl r1, r1, #0x1 - mov r2, #0x20 - bl LoadPalette - ldr r3, ._54 + 8 @ 0x4000208 - ldrh r2, [r3] - mov r0, #0x0 - strh r0, [r3] - ldr r4, ._54 + 12 @ 0x4000200 - ldrh r0, [r4] - mov r1, #0x1 - orr r0, r0, r1 - strh r0, [r4] - strh r2, [r3] - mov r0, #0x1 - neg r0, r0 - mov r1, #0x0 - str r1, [sp] - mov r2, #0x10 - mov r3, #0x0 - bl BeginNormalPaletteFade - ldr r0, ._54 + 16 @ debug_80C3758 - bl SetVBlankCallback - ldr r0, ._54 + 20 @ debug_80C370C - bl SetMainCallback2 - mov r1, #0x80 - lsl r1, r1, #0x13 - mov r2, #0x8a - lsl r2, r2, #0x5 - add r0, r2, #0 - strh r0, [r1] - ldr r0, ._54 + 24 @ debug_80C3A50 - mov r1, #0x0 - bl CreateTask - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - ldr r2, ._54 + 28 @ gTasks - lsl r1, r0, #0x2 - add r1, r1, r0 - lsl r1, r1, #0x3 - add r1, r1, r2 - mov r0, #0xfc - strh r0, [r1, #0x8] - add sp, sp, #0x4 - pop {r4} - pop {r0} - bx r0 -._55: - .align 2, 0 -._54: - .word gReservedSpritePaletteCount - .word gUnknown_Debug_20389EC - .word 0x4000208 - .word 0x4000200 - .word debug_80C3758+1 - .word debug_80C370C+1 - .word debug_80C3A50+1 - .word gTasks - - thumb_func_end InitSizeComparison - thumb_func_start debug_80C3A50 debug_80C3A50: push {r4, r5, r6, r7, lr} diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index 43d63dce4..582b65a3e 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -1,5 +1,8 @@ #if DEBUG #include "global.h" +#include "gba/flash_internal.h" +#include "constants/species.h" +#include "constants/songs.h" #include "debug.h" #include "palette.h" #include "scanline_effect.h" @@ -10,6 +13,10 @@ #include "menu.h" #include "script.h" #include "overworld.h" +#include "data2.h" +#include "fieldmap.h" +#include "save.h" +#include "sound.h" EWRAM_DATA u8 gUnknown_Debug_20389EC[0x20] = { 0 }; EWRAM_DATA u8 gUnknown_Debug_2038A0C[0x10] = { 0 }; @@ -18,9 +25,14 @@ EWRAM_DATA u8 gUnknown_Debug_2038A20[4] = { 0 }; u8 byte_3005E30[0x20]; +extern const u8 gUnknown_Debug_083F7FD4[2]; // = _("▶"); +extern const u8 gUnknown_Debug_083F7FD6[8]; // = _("ゆみあくひりつ"); + extern const struct SpriteSheet stru_83F8828[2]; extern const struct SpritePalette stru_83F8838[2]; +void debug_80C3A50(u8 taskId); + void debug_69(struct Sprite *sprite) { @@ -102,7 +114,7 @@ void debug_80C376C(u16 a0, u8 a1, u8 a2) bool8 r4; for (i = 0; i < 3; i++) - sp00[i] = 0; + sp00[i] = CHAR_SPACE; sp00[3] = EOS; r4 = FALSE; @@ -124,4 +136,127 @@ void debug_80C376C(u16 a0, u8 a1, u8 a2) Menu_PrintText(sp00, a1, a2); } +void debug_80C3800(u16 a0, u8 a1, u8 a2) +{ + u8 sp00[11]; + u8 i; + + for (i = 0; i < 10; i++) + sp00[i] = CHAR_SPACE; + sp00[i] = EOS; + + for (i = 0; gSpeciesNames[a0][i] != EOS && i < 10; i++) + sp00[i] = gSpeciesNames[a0][i]; + + Menu_PrintText(sp00, a1, a2); +} + +u16 debug_80C3878(u8 a0, u16 a1) +{ + switch (a0) + { + default: + case 0: + if (a1 > SPECIES_BULBASAUR) + a1--; + else + a1 = NUM_SPECIES - 1; + break; + case 1: + if (a1 < NUM_SPECIES - 1) + a1++; + else + a1 = SPECIES_BULBASAUR; + break; + } + return a1; +} + +u16 debug_80C38B4(u8 a0, u16 a1) +{ + switch (a0) + { + default: + case 0: + if (a1) + a1--; + else + a1 = 0x52; + break; + case 1: + if (a1 < 0x52) + a1++; + else + a1 = 0; + break; + } + return a1; +} + +void debug_80C38E4(u8 a0, u8 a1, u8 a2, u8 a3, u8 a4) +{ + // u8 sp00[] = _("▶"); + u8 sp00[2]; + + memcpy(sp00, gUnknown_Debug_083F7FD4, ARRAY_COUNT(gUnknown_Debug_083F7FD4)); + Menu_BlankWindowRect(a1, a2, a1, a3); + if (a4) + Menu_PrintText(sp00, a1, a0); +} + +void debug_80C393C(void) +{ + ProgramFlashSectorAndVerify(30, (void *)gUnknown_Debug_083F7FD6); +} + +void InitWatanabeDebugMenu(void) +{ + switch (gMain.state) + { + default: + case 0: + save_serialize_map(); + sub_8125E2C(); + gMain.state = 1; + break; + case 1: + if (sub_8125E6C()) + gMain.state++; + break; + case 2: + PlaySE(SE_SAVE); + gMain.state++; + break; + case 3: + if (!IsSEPlaying()) + { + ScriptContext2_Disable(); + SetMainCallback2(sub_80546F0); + } + break; + } +} + +void InitSizeComparison(void) +{ + u8 taskId; + debug_80C35DC(); + gReservedSpritePaletteCount = 1; + LoadPalette(gUnknown_Debug_20389EC, 0x100, 0x20); + + { + u16 imeBak = REG_IME; + REG_IME = 0; + REG_IE |= INTR_FLAG_VBLANK; + REG_IME = imeBak; + } + + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); + SetVBlankCallback(debug_80C3758); + SetMainCallback2(debug_80C370C); + REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_OBJ_ON; + taskId = CreateTask(debug_80C3A50, 0); + gTasks[taskId].data[0] = 0xfc; +} + #endif -- cgit v1.2.3 From bdd3cf36f59e9f3a308073f998a15a92aea62283 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 13 Apr 2018 17:40:18 -0400 Subject: nonmatching debug_80C3A50 --- asm/watanabe_debug_menu.s | 322 ------------------------------- data/debug_menu_watanabe.s | 5 +- include/pokedex.h | 19 ++ src/debug/watanabe_debug_menu.c | 412 +++++++++++++++++++++++++++++++++++++++- src/pokedex.c | 17 +- 5 files changed, 434 insertions(+), 341 deletions(-) diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index 3d751e544..034f0a2b3 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,328 +5,6 @@ .text - thumb_func_start debug_80C3A50 -debug_80C3A50: - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, r9 - mov r5, r8 - push {r5, r6, r7} - add sp, sp, #0xffffffd8 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - ldr r1, ._56 @ gTasks - lsl r2, r0, #0x2 - add r0, r2, r0 - lsl r0, r0, #0x3 - add r7, r0, r1 - ldrh r0, [r7, #0x8] - str r0, [sp, #0x4] - bl NationalPokedexNumToSpecies - mov r1, sp - strh r0, [r1, #0x8] - add r2, r0, #0 - lsl r2, r2, #0x10 - str r2, [sp, #0xc] - lsr r2, r2, #0x10 - mov r9, r2 - ldr r3, ._56 + 4 @ gSaveBlock2 - mov r8, r3 - mov r0, #0x6 - mov r1, #0x0 - mov r2, #0x17 - mov r3, #0x9 - bl Menu_DrawStdWindowFrame - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x5 - mov r3, #0x9 - bl Menu_DrawStdWindowFrame - ldr r5, ._56 + 8 @ gUnknown_Debug_083F7FD6 - add r0, r5, #0 - mov r1, #0x1 - mov r2, #0x1 - bl Menu_PrintText - ldr r4, ._56 + 12 @ gUnknown_Debug_083F7FDE - add r0, r4, #0 - mov r1, #0x1 - mov r2, #0x5 - bl Menu_PrintText - mov r0, #0x18 - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x9 - bl Menu_DrawStdWindowFrame - add r0, r5, #0 - mov r1, #0x19 - mov r2, #0x1 - bl Menu_PrintText - add r0, r4, #0 - mov r1, #0x19 - mov r2, #0x5 - bl Menu_PrintText - mov r0, #0x0 - mov r1, #0xa - mov r2, #0xb - mov r3, #0x13 - bl Menu_DrawStdWindowFrame - ldr r0, ._56 + 16 @ gUnknown_Debug_083F7FE2 - mov r1, #0x1 - mov r2, #0xb - bl Menu_PrintText - ldr r0, ._56 + 20 @ gUnknown_Debug_083F7FED - mov r1, #0x1 - mov r2, #0xd - bl Menu_PrintText - ldr r0, ._56 + 24 @ gUnknown_Debug_083F7FF6 - mov r1, #0x1 - mov r2, #0xf - bl Menu_PrintText - ldr r0, ._56 + 28 @ gUnknown_Debug_083F8001 - mov r1, #0x1 - mov r2, #0x11 - bl Menu_PrintText - mov r0, #0xc - mov r1, #0xa - mov r2, #0x1d - mov r3, #0xf - bl Menu_DrawStdWindowFrame - ldr r0, ._56 + 32 @ gUnknown_Debug_083F800C - mov r1, #0xd - mov r2, #0xb - bl Menu_PrintText - ldr r0, ._56 + 36 @ gUnknown_Debug_083F8019 - mov r1, #0xd - mov r2, #0xd - bl Menu_PrintText - mov r0, #0xc - mov r1, #0x10 - mov r2, #0x1d - mov r3, #0x13 - bl Menu_DrawStdWindowFrame - ldr r0, ._56 + 40 @ gUnknown_Debug_083F8022 - mov r1, #0xd - mov r2, #0x11 - bl Menu_PrintText - ldr r0, ._56 + 44 @ gUnknown_Debug_083F8028 - mov r1, #0x18 - mov r2, #0x11 - bl Menu_PrintText - mov r0, r9 - mov r1, #0x12 - mov r2, #0x11 - bl debug_80C3800 - mov r1, r8 - ldrb r0, [r1, #0x8] - mov r1, #0x98 - mov r2, #0x28 - mov r3, #0x0 - bl sub_8091A4C - mov r2, sp - strh r0, [r2, #0x10] - add r3, r0, #0 - lsl r3, r3, #0x10 - str r3, [sp, #0x18] - lsr r0, r3, #0x10 - str r0, [sp, #0x14] - lsl r4, r0, #0x4 - add r4, r4, r0 - lsl r4, r4, #0x2 - ldr r1, ._56 + 48 @ gSprites - add r4, r4, r1 - ldrb r1, [r4, #0x1] - mov r2, #0x4 - neg r2, r2 - mov sl, r2 - mov r0, sl - and r0, r0, r1 - mov r3, #0x1 - orr r0, r0, r3 - strb r0, [r4, #0x1] - ldrb r1, [r4, #0x3] - mov r0, #0x3f - neg r0, r0 - mov r9, r0 - and r0, r0, r1 - mov r1, #0x4 - orr r0, r0, r1 - strb r0, [r4, #0x3] - ldrb r1, [r4, #0x5] - sub r2, r2, #0x9 - mov r8, r2 - mov r0, r8 - and r0, r0, r1 - mov r3, #0xf - and r0, r0, r3 - strb r0, [r4, #0x5] - mov r0, #0x0 - bl GetSpritePaletteTagByPaletteNum - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FreeSpritePaletteByTag - ldr r0, ._56 + 52 @ gPokedexEntries - ldr r1, [sp, #0x4] - lsl r5, r1, #0x3 - add r5, r5, r1 - lsl r5, r5, #0x2 - add r5, r5, r0 - ldrh r6, [r5, #0x20] - strh r6, [r4, #0x26] - ldrh r4, [r5, #0x1e] - str r4, [sp] - mov r0, #0x2 - add r1, r4, #0 - mov r2, #0x0 - mov r3, #0x0 - bl SetOamMatrix - mov r2, sp - ldrh r2, [r2, #0x14] - strh r2, [r7, #0xe] - strh r6, [r7, #0x10] - strh r4, [r7, #0x14] - ldr r0, [sp, #0x4] - mov r1, #0x58 - mov r2, #0x28 - mov r3, #0x1 - bl sub_80918EC - mov r3, sp - strh r0, [r3, #0x1c] - lsl r0, r0, #0x10 - str r0, [sp, #0x24] - lsr r1, r0, #0x10 - str r1, [sp, #0x20] - lsl r4, r1, #0x4 - add r4, r4, r1 - lsl r4, r4, #0x2 - ldr r2, ._56 + 48 @ gSprites - add r4, r4, r2 - ldrb r0, [r4, #0x1] - mov r3, sl - and r3, r3, r0 - mov r0, #0x1 - orr r3, r3, r0 - strb r3, [r4, #0x1] - ldrb r0, [r4, #0x3] - mov r1, r9 - and r1, r1, r0 - mov r0, #0x2 - orr r1, r1, r0 - strb r1, [r4, #0x3] - ldrb r0, [r4, #0x5] - mov r2, r8 - and r2, r2, r0 - mov r3, #0xf - and r2, r2, r3 - strb r2, [r4, #0x5] - mov r0, #0x0 - bl GetSpritePaletteTagByPaletteNum - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FreeSpritePaletteByTag - ldrh r0, [r5, #0x1c] - mov r8, r0 - strh r0, [r4, #0x26] - ldrh r4, [r5, #0x1a] - str r4, [sp] - mov r0, #0x1 - add r1, r4, #0 - mov r2, #0x0 - mov r3, #0x0 - bl SetOamMatrix - mov r1, sp - ldrh r1, [r1, #0x20] - strh r1, [r7, #0xc] - mov r2, r8 - strh r2, [r7, #0x12] - strh r4, [r7, #0x16] - mov r3, #0x0 - strh r3, [r7, #0x18] - strh r3, [r7, #0x1a] - ldr r1, ._56 + 56 @ 0x4000048 - ldr r2, ._56 + 60 @ 0x3f1f - add r0, r2, #0 - strh r0, [r1] - add r1, r1, #0x2 - mov r0, #0x1f - strh r0, [r1] - ldr r2, ._56 + 64 @ 0x4000040 - mov r3, #0x18 - ldsh r1, [r7, r3] - lsl r1, r1, #0x6 - add r0, r1, #0 - add r0, r0, #0x38 - lsl r0, r0, #0x8 - add r1, r1, #0x78 - add r0, r0, r1 - strh r0, [r2] - ldr r1, ._56 + 68 @ 0x4000044 - ldr r2, ._56 + 72 @ 0x848 - add r0, r2, #0 - strh r0, [r1] - sub r1, r1, #0x2 - ldr r3, ._56 + 76 @ 0x31bf - add r0, r3, #0 - strh r0, [r1] - add r1, r1, #0x4 - ldr r2, ._56 + 80 @ 0x14f - add r0, r2, #0 - strh r0, [r1] - add r1, r1, #0xa - mov r0, #0xe1 - strh r0, [r1] - ldr r0, ._56 + 84 @ 0x4000052 - mov r3, #0x0 - strh r3, [r0] - add r1, r1, #0x4 - mov r0, #0x7 - strh r0, [r1] - mov r2, #0x80 - lsl r2, r2, #0x13 - ldrh r0, [r2] - mov r3, #0xc0 - lsl r3, r3, #0x7 - add r1, r3, #0 - orr r0, r0, r1 - strh r0, [r2] - ldr r0, ._56 + 88 @ debug_80C3D2C - str r0, [r7] - add sp, sp, #0x28 - pop {r3, r4, r5} - mov r8, r3 - mov r9, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._57: - .align 2, 0 -._56: - .word gTasks - .word gSaveBlock2 - .word gUnknown_Debug_083F7FD6+0x4 - .word gUnknown_Debug_083F7FDE - .word gUnknown_Debug_083F7FE2 - .word gUnknown_Debug_083F7FED - .word gUnknown_Debug_083F7FF6 - .word gUnknown_Debug_083F8001 - .word gUnknown_Debug_083F800C - .word gUnknown_Debug_083F8019 - .word gUnknown_Debug_083F8022 - .word gUnknown_Debug_083F8028 - .word gSprites - .word gPokedexEntries - .word 0x4000048 - .word 0x3f1f - .word 0x4000040 - .word 0x4000044 - .word 0x848 - .word 0x31bf - .word 0x14f - .word 0x4000052 - .word debug_80C3D2C+1 - - thumb_func_end debug_80C3A50 - thumb_func_start debug_80C3D2C debug_80C3D2C: push {r4, r5, r6, r7, lr} diff --git a/data/debug_menu_watanabe.s b/data/debug_menu_watanabe.s index 58f9b21fd..8717196ef 100644 --- a/data/debug_menu_watanabe.s +++ b/data/debug_menu_watanabe.s @@ -9,7 +9,10 @@ gUnknown_Debug_083F7FD4:: @ 0x83F7FD4 .string "▶$" gUnknown_Debug_083F7FD6:: @ 0x83F7FD6 - .string "ゆみあくひりつ$" + .string "ゆみあく" + +gUnknown_Debug_083F7FDA:: + .string "ひりつ$" gUnknown_Debug_083F7FDE:: @ 0x83F7FDE .string "たかさ$" diff --git a/include/pokedex.h b/include/pokedex.h index 9158a97f0..3dbbe6b8a 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -27,4 +27,23 @@ bool16 CompletedNationalPokedex(void); extern bool8 gUnknown_03005CE8; +struct PokedexEntry +{ + /*0x00*/ u8 categoryName[12]; + /*0x0C*/ u16 height; //in decimeters + /*0x0E*/ u16 weight; //in hectograms + /*0x10*/ const u8 *descriptionPage1; + /*0x14*/ const u8 *descriptionPage2; + /*0x18*/ u16 unused; + /*0x1A*/ u16 pokemonScale; + /*0x1C*/ u16 pokemonOffset; + /*0x1E*/ u16 trainerScale; + /*0x20*/ u16 trainerOffset; +}; /*size = 0x24*/ + +extern const struct PokedexEntry gPokedexEntries[]; + +u16 sub_8091A4C(u16 gender, s16 x, s16 y, u16 paletteNum); +u16 sub_80918EC(u16 num, s16 x, s16 y, u16 paletteNum); + #endif // GUARD_POKEDEX_H diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index 582b65a3e..7ca155faa 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -17,6 +17,7 @@ #include "fieldmap.h" #include "save.h" #include "sound.h" +#include "pokedex.h" EWRAM_DATA u8 gUnknown_Debug_20389EC[0x20] = { 0 }; EWRAM_DATA u8 gUnknown_Debug_2038A0C[0x10] = { 0 }; @@ -26,12 +27,23 @@ EWRAM_DATA u8 gUnknown_Debug_2038A20[4] = { 0 }; u8 byte_3005E30[0x20]; extern const u8 gUnknown_Debug_083F7FD4[2]; // = _("▶"); -extern const u8 gUnknown_Debug_083F7FD6[8]; // = _("ゆみあくひりつ"); +extern const u8 gUnknown_Debug_083F7FD6[4]; // = {0x25, 0x20, 0x01, 0x08}; +extern const u8 gUnknown_Debug_083F7FDA[4]; // = _("ひりつ"); +extern const u8 gUnknown_Debug_083F7FDE[4]; // = _("たかさ"); +extern const u8 gUnknown_Debug_083F7FE2[11]; // = _("Lキー▶しゅくしょう"); +extern const u8 gUnknown_Debug_083F7FED[9]; // = _("Rキー▶かくだい"); +extern const u8 gUnknown_Debug_083F7FF6[11]; // = _("Uキー▶うえ いどう"); +extern const u8 gUnknown_Debug_083F8001[11]; // = _("Dキー▶した いどう"); +extern const u8 gUnknown_Debug_083F800C[13]; // = _("Aボタン▶そうさきりかえ"); +extern const u8 gUnknown_Debug_083F8019[9]; // = _("Bボタン▶やめる"); +extern const u8 gUnknown_Debug_083F8022[6]; // = _("スタート:"); +extern const u8 gUnknown_Debug_083F8028[6]; // = _(":セレクト"); extern const struct SpriteSheet stru_83F8828[2]; extern const struct SpritePalette stru_83F8838[2]; void debug_80C3A50(u8 taskId); +void debug_80C3D2C(u8 taskId); void debug_69(struct Sprite *sprite) { @@ -259,4 +271,400 @@ void InitSizeComparison(void) gTasks[taskId].data[0] = 0xfc; } -#endif +#ifdef NONMATCHING +void debug_80C3A50(u8 taskId) +{ + u16 natDexNum = gTasks[taskId].data[0]; + u16 species = NationalPokedexNumToSpecies(natDexNum); + u16 spriteId; + u16 spriteId2; + struct SaveBlock2 *saveBlock2 = &gSaveBlock2; + + Menu_DrawStdWindowFrame(6, 0, 23, 9); + + Menu_DrawStdWindowFrame(0, 0, 5, 9); + Menu_PrintText(gUnknown_Debug_083F7FDA, 1, 1); + Menu_PrintText(gUnknown_Debug_083F7FDE, 1, 5); + + Menu_DrawStdWindowFrame(24, 0, 29, 9); + Menu_PrintText(gUnknown_Debug_083F7FD6, 25, 1); + Menu_PrintText(gUnknown_Debug_083F7FDE, 25, 5); + + Menu_DrawStdWindowFrame(0, 10, 11, 19); + Menu_PrintText(gUnknown_Debug_083F7FE2, 1, 11); + Menu_PrintText(gUnknown_Debug_083F7FED, 1, 13); + Menu_PrintText(gUnknown_Debug_083F7FF6, 1, 15); + Menu_PrintText(gUnknown_Debug_083F8001, 1, 17); + + Menu_DrawStdWindowFrame(12, 10, 29, 15); + Menu_PrintText(gUnknown_Debug_083F800C, 13, 11); + Menu_PrintText(gUnknown_Debug_083F8019, 13, 13); + + Menu_DrawStdWindowFrame(12, 16, 29, 19); + Menu_PrintText(gUnknown_Debug_083F8022, 13, 17); + Menu_PrintText(gUnknown_Debug_083F8028, 24, 17); + + debug_80C3800(species, 18, 17); + + spriteId = sub_8091A4C(saveBlock2->playerGender, 0x98, 0x28, 0); + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + gSprites[spriteId].oam.matrixNum = 2; + gSprites[spriteId].oam.priority = 0; + gSprites[spriteId].oam.paletteNum = 0; + FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(0)); + gSprites[spriteId].pos2.y = gPokedexEntries[natDexNum].trainerOffset; + SetOamMatrix(2, gPokedexEntries[natDexNum].trainerScale, 0, 0, gPokedexEntries[natDexNum].trainerScale); + gTasks[taskId].data[3] = spriteId; + gTasks[taskId].data[4] = gPokedexEntries[natDexNum].trainerOffset; + gTasks[taskId].data[6] = gPokedexEntries[natDexNum].trainerScale; + + spriteId2 = sub_80918EC(natDexNum, 0x58, 0x28, 1); + gSprites[spriteId2].oam.affineMode = ST_OAM_AFFINE_NORMAL; + gSprites[spriteId2].oam.matrixNum = 1; + gSprites[spriteId2].oam.priority = 0; + gSprites[spriteId2].oam.paletteNum = 0; + FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(0)); + gSprites[spriteId2].pos2.y = gPokedexEntries[natDexNum].pokemonOffset; + SetOamMatrix(1, gPokedexEntries[natDexNum].pokemonScale, 0, 0, gPokedexEntries[natDexNum].pokemonScale); + gTasks[taskId].data[2] = spriteId2; + gTasks[taskId].data[5] = gPokedexEntries[natDexNum].pokemonOffset; + gTasks[taskId].data[7] = gPokedexEntries[natDexNum].pokemonScale; + gTasks[taskId].data[8] = 0; + gTasks[taskId].data[9] = 0; + + REG_WININ = 0x3F1F; + REG_WINOUT = 0x001F; + REG_WIN0H = ((gTasks[taskId].data[8] * 64 + 0x38) << 8) + (gTasks[taskId].data[8] * 64 + 0x78); + REG_WIN0V = 0x0848; + REG_WIN1H = 0x31BF; + REG_WIN1V = 0x014F; + REG_BLDCNT = BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN; + REG_BLDALPHA = 0; + REG_BLDY = 7; + REG_DISPCNT |= DISPCNT_WIN0_ON | DISPCNT_WIN1_ON; + gTasks[taskId].func = debug_80C3D2C; +} +#else +NAKED void debug_80C3A50(u8 taskId) +{ + asm("\tpush\t{r4, r5, r6, r7, lr}\n" + "\tmov\tr7, sl\n" + "\tmov\tr6, r9\n" + "\tmov\tr5, r8\n" + "\tpush\t{r5, r6, r7}\n" + "\tadd\tsp, sp, #0xffffffd8\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr0, r0, #0x18\n" + "\tldr\tr1, ._56 @ gTasks\n" + "\tlsl\tr2, r0, #0x2\n" + "\tadd\tr0, r2, r0\n" + "\tlsl\tr0, r0, #0x3\n" + "\tadd\tr7, r0, r1\n" + "\tldrh\tr0, [r7, #0x8]\n" + "\tstr\tr0, [sp, #0x4]\n" + "\tbl\tNationalPokedexNumToSpecies\n" + "\tmov\tr1, sp\n" + "\tstrh\tr0, [r1, #0x8]\n" + "\tadd\tr2, r0, #0\n" + "\tlsl\tr2, r2, #0x10\n" + "\tstr\tr2, [sp, #0xc]\n" + "\tlsr\tr2, r2, #0x10\n" + "\tmov\tr9, r2\n" + "\tldr\tr3, ._56 + 4 @ gSaveBlock2\n" + "\tmov\tr8, r3\n" + "\tmov\tr0, #0x6\n" + "\tmov\tr1, #0x0\n" + "\tmov\tr2, #0x17\n" + "\tmov\tr3, #0x9\n" + "\tbl\tMenu_DrawStdWindowFrame\n" + "\tmov\tr0, #0x0\n" + "\tmov\tr1, #0x0\n" + "\tmov\tr2, #0x5\n" + "\tmov\tr3, #0x9\n" + "\tbl\tMenu_DrawStdWindowFrame\n" + "\tldr\tr5, ._56 + 8 @ gUnknown_Debug_083F7FD6\n" + "\tadd\tr0, r5, #0\n" + "\tmov\tr1, #0x1\n" + "\tmov\tr2, #0x1\n" + "\tbl\tMenu_PrintText\n" + "\tldr\tr4, ._56 + 12 @ gUnknown_Debug_083F7FDE\n" + "\tadd\tr0, r4, #0\n" + "\tmov\tr1, #0x1\n" + "\tmov\tr2, #0x5\n" + "\tbl\tMenu_PrintText\n" + "\tmov\tr0, #0x18\n" + "\tmov\tr1, #0x0\n" + "\tmov\tr2, #0x1d\n" + "\tmov\tr3, #0x9\n" + "\tbl\tMenu_DrawStdWindowFrame\n" + "\tadd\tr0, r5, #0\n" + "\tmov\tr1, #0x19\n" + "\tmov\tr2, #0x1\n" + "\tbl\tMenu_PrintText\n" + "\tadd\tr0, r4, #0\n" + "\tmov\tr1, #0x19\n" + "\tmov\tr2, #0x5\n" + "\tbl\tMenu_PrintText\n" + "\tmov\tr0, #0x0\n" + "\tmov\tr1, #0xa\n" + "\tmov\tr2, #0xb\n" + "\tmov\tr3, #0x13\n" + "\tbl\tMenu_DrawStdWindowFrame\n" + "\tldr\tr0, ._56 + 16 @ gUnknown_Debug_083F7FE2\n" + "\tmov\tr1, #0x1\n" + "\tmov\tr2, #0xb\n" + "\tbl\tMenu_PrintText\n" + "\tldr\tr0, ._56 + 20 @ gUnknown_Debug_083F7FED\n" + "\tmov\tr1, #0x1\n" + "\tmov\tr2, #0xd\n" + "\tbl\tMenu_PrintText\n" + "\tldr\tr0, ._56 + 24 @ gUnknown_Debug_083F7FF6\n" + "\tmov\tr1, #0x1\n" + "\tmov\tr2, #0xf\n" + "\tbl\tMenu_PrintText\n" + "\tldr\tr0, ._56 + 28 @ gUnknown_Debug_083F8001\n" + "\tmov\tr1, #0x1\n" + "\tmov\tr2, #0x11\n" + "\tbl\tMenu_PrintText\n" + "\tmov\tr0, #0xc\n" + "\tmov\tr1, #0xa\n" + "\tmov\tr2, #0x1d\n" + "\tmov\tr3, #0xf\n" + "\tbl\tMenu_DrawStdWindowFrame\n" + "\tldr\tr0, ._56 + 32 @ gUnknown_Debug_083F800C\n" + "\tmov\tr1, #0xd\n" + "\tmov\tr2, #0xb\n" + "\tbl\tMenu_PrintText\n" + "\tldr\tr0, ._56 + 36 @ gUnknown_Debug_083F8019\n" + "\tmov\tr1, #0xd\n" + "\tmov\tr2, #0xd\n" + "\tbl\tMenu_PrintText\n" + "\tmov\tr0, #0xc\n" + "\tmov\tr1, #0x10\n" + "\tmov\tr2, #0x1d\n" + "\tmov\tr3, #0x13\n" + "\tbl\tMenu_DrawStdWindowFrame\n" + "\tldr\tr0, ._56 + 40 @ gUnknown_Debug_083F8022\n" + "\tmov\tr1, #0xd\n" + "\tmov\tr2, #0x11\n" + "\tbl\tMenu_PrintText\n" + "\tldr\tr0, ._56 + 44 @ gUnknown_Debug_083F8028\n" + "\tmov\tr1, #0x18\n" + "\tmov\tr2, #0x11\n" + "\tbl\tMenu_PrintText\n" + "\tmov\tr0, r9\n" + "\tmov\tr1, #0x12\n" + "\tmov\tr2, #0x11\n" + "\tbl\tdebug_80C3800\n" + "\tmov\tr1, r8\n" + "\tldrb\tr0, [r1, #0x8]\n" + "\tmov\tr1, #0x98\n" + "\tmov\tr2, #0x28\n" + "\tmov\tr3, #0x0\n" + "\tbl\tsub_8091A4C\n" + "\tmov\tr2, sp\n" + "\tstrh\tr0, [r2, #0x10]\n" + "\tadd\tr3, r0, #0\n" + "\tlsl\tr3, r3, #0x10\n" + "\tstr\tr3, [sp, #0x18]\n" + "\tlsr\tr0, r3, #0x10\n" + "\tstr\tr0, [sp, #0x14]\n" + "\tlsl\tr4, r0, #0x4\n" + "\tadd\tr4, r4, r0\n" + "\tlsl\tr4, r4, #0x2\n" + "\tldr\tr1, ._56 + 48 @ gSprites\n" + "\tadd\tr4, r4, r1\n" + "\tldrb\tr1, [r4, #0x1]\n" + "\tmov\tr2, #0x4\n" + "\tneg\tr2, r2\n" + "\tmov\tsl, r2\n" + "\tmov\tr0, sl\n" + "\tand\tr0, r0, r1\n" + "\tmov\tr3, #0x1\n" + "\torr\tr0, r0, r3\n" + "\tstrb\tr0, [r4, #0x1]\n" + "\tldrb\tr1, [r4, #0x3]\n" + "\tmov\tr0, #0x3f\n" + "\tneg\tr0, r0\n" + "\tmov\tr9, r0\n" + "\tand\tr0, r0, r1\n" + "\tmov\tr1, #0x4\n" + "\torr\tr0, r0, r1\n" + "\tstrb\tr0, [r4, #0x3]\n" + "\tldrb\tr1, [r4, #0x5]\n" + "\tsub\tr2, r2, #0x9\n" + "\tmov\tr8, r2\n" + "\tmov\tr0, r8\n" + "\tand\tr0, r0, r1\n" + "\tmov\tr3, #0xf\n" + "\tand\tr0, r0, r3\n" + "\tstrb\tr0, [r4, #0x5]\n" + "\tmov\tr0, #0x0\n" + "\tbl\tGetSpritePaletteTagByPaletteNum\n" + "\tlsl\tr0, r0, #0x10\n" + "\tlsr\tr0, r0, #0x10\n" + "\tbl\tFreeSpritePaletteByTag\n" + "\tldr\tr0, ._56 + 52 @ gPokedexEntries\n" + "\tldr\tr1, [sp, #0x4]\n" + "\tlsl\tr5, r1, #0x3\n" + "\tadd\tr5, r5, r1\n" + "\tlsl\tr5, r5, #0x2\n" + "\tadd\tr5, r5, r0\n" + "\tldrh\tr6, [r5, #0x20]\n" + "\tstrh\tr6, [r4, #0x26]\n" + "\tldrh\tr4, [r5, #0x1e]\n" + "\tstr\tr4, [sp]\n" + "\tmov\tr0, #0x2\n" + "\tadd\tr1, r4, #0\n" + "\tmov\tr2, #0x0\n" + "\tmov\tr3, #0x0\n" + "\tbl\tSetOamMatrix\n" + "\tmov\tr2, sp\n" + "\tldrh\tr2, [r2, #0x14]\n" + "\tstrh\tr2, [r7, #0xe]\n" + "\tstrh\tr6, [r7, #0x10]\n" + "\tstrh\tr4, [r7, #0x14]\n" + "\tldr\tr0, [sp, #0x4]\n" + "\tmov\tr1, #0x58\n" + "\tmov\tr2, #0x28\n" + "\tmov\tr3, #0x1\n" + "\tbl\tsub_80918EC\n" + "\tmov\tr3, sp\n" + "\tstrh\tr0, [r3, #0x1c]\n" + "\tlsl\tr0, r0, #0x10\n" + "\tstr\tr0, [sp, #0x24]\n" + "\tlsr\tr1, r0, #0x10\n" + "\tstr\tr1, [sp, #0x20]\n" + "\tlsl\tr4, r1, #0x4\n" + "\tadd\tr4, r4, r1\n" + "\tlsl\tr4, r4, #0x2\n" + "\tldr\tr2, ._56 + 48 @ gSprites\n" + "\tadd\tr4, r4, r2\n" + "\tldrb\tr0, [r4, #0x1]\n" + "\tmov\tr3, sl\n" + "\tand\tr3, r3, r0\n" + "\tmov\tr0, #0x1\n" + "\torr\tr3, r3, r0\n" + "\tstrb\tr3, [r4, #0x1]\n" + "\tldrb\tr0, [r4, #0x3]\n" + "\tmov\tr1, r9\n" + "\tand\tr1, r1, r0\n" + "\tmov\tr0, #0x2\n" + "\torr\tr1, r1, r0\n" + "\tstrb\tr1, [r4, #0x3]\n" + "\tldrb\tr0, [r4, #0x5]\n" + "\tmov\tr2, r8\n" + "\tand\tr2, r2, r0\n" + "\tmov\tr3, #0xf\n" + "\tand\tr2, r2, r3\n" + "\tstrb\tr2, [r4, #0x5]\n" + "\tmov\tr0, #0x0\n" + "\tbl\tGetSpritePaletteTagByPaletteNum\n" + "\tlsl\tr0, r0, #0x10\n" + "\tlsr\tr0, r0, #0x10\n" + "\tbl\tFreeSpritePaletteByTag\n" + "\tldrh\tr0, [r5, #0x1c]\n" + "\tmov\tr8, r0\n" + "\tstrh\tr0, [r4, #0x26]\n" + "\tldrh\tr4, [r5, #0x1a]\n" + "\tstr\tr4, [sp]\n" + "\tmov\tr0, #0x1\n" + "\tadd\tr1, r4, #0\n" + "\tmov\tr2, #0x0\n" + "\tmov\tr3, #0x0\n" + "\tbl\tSetOamMatrix\n" + "\tmov\tr1, sp\n" + "\tldrh\tr1, [r1, #0x20]\n" + "\tstrh\tr1, [r7, #0xc]\n" + "\tmov\tr2, r8\n" + "\tstrh\tr2, [r7, #0x12]\n" + "\tstrh\tr4, [r7, #0x16]\n" + "\tmov\tr3, #0x0\n" + "\tstrh\tr3, [r7, #0x18]\n" + "\tstrh\tr3, [r7, #0x1a]\n" + "\tldr\tr1, ._56 + 56 @ 0x4000048\n" + "\tldr\tr2, ._56 + 60 @ 0x3f1f\n" + "\tadd\tr0, r2, #0\n" + "\tstrh\tr0, [r1]\n" + "\tadd\tr1, r1, #0x2\n" + "\tmov\tr0, #0x1f\n" + "\tstrh\tr0, [r1]\n" + "\tldr\tr2, ._56 + 64 @ 0x4000040\n" + "\tmov\tr3, #0x18\n" + "\tldsh\tr1, [r7, r3]\n" + "\tlsl\tr1, r1, #0x6\n" + "\tadd\tr0, r1, #0\n" + "\tadd\tr0, r0, #0x38\n" + "\tlsl\tr0, r0, #0x8\n" + "\tadd\tr1, r1, #0x78\n" + "\tadd\tr0, r0, r1\n" + "\tstrh\tr0, [r2]\n" + "\tldr\tr1, ._56 + 68 @ 0x4000044\n" + "\tldr\tr2, ._56 + 72 @ 0x848\n" + "\tadd\tr0, r2, #0\n" + "\tstrh\tr0, [r1]\n" + "\tsub\tr1, r1, #0x2\n" + "\tldr\tr3, ._56 + 76 @ 0x31bf\n" + "\tadd\tr0, r3, #0\n" + "\tstrh\tr0, [r1]\n" + "\tadd\tr1, r1, #0x4\n" + "\tldr\tr2, ._56 + 80 @ 0x14f\n" + "\tadd\tr0, r2, #0\n" + "\tstrh\tr0, [r1]\n" + "\tadd\tr1, r1, #0xa\n" + "\tmov\tr0, #0xe1\n" + "\tstrh\tr0, [r1]\n" + "\tldr\tr0, ._56 + 84 @ 0x4000052\n" + "\tmov\tr3, #0x0\n" + "\tstrh\tr3, [r0]\n" + "\tadd\tr1, r1, #0x4\n" + "\tmov\tr0, #0x7\n" + "\tstrh\tr0, [r1]\n" + "\tmov\tr2, #0x80\n" + "\tlsl\tr2, r2, #0x13\n" + "\tldrh\tr0, [r2]\n" + "\tmov\tr3, #0xc0\n" + "\tlsl\tr3, r3, #0x7\n" + "\tadd\tr1, r3, #0\n" + "\torr\tr0, r0, r1\n" + "\tstrh\tr0, [r2]\n" + "\tldr\tr0, ._56 + 88 @ debug_80C3D2C\n" + "\tstr\tr0, [r7]\n" + "\tadd\tsp, sp, #0x28\n" + "\tpop\t{r3, r4, r5}\n" + "\tmov\tr8, r3\n" + "\tmov\tr9, r4\n" + "\tmov\tsl, r5\n" + "\tpop\t{r4, r5, r6, r7}\n" + "\tpop\t{r0}\n" + "\tbx\tr0\n" + "._57:\n" + "\t.align\t2, 0\n" + "._56:\n" + "\t.word\tgTasks\n" + "\t.word\tgSaveBlock2\n" + "\t.word\tgUnknown_Debug_083F7FD6+0x4\n" + "\t.word\tgUnknown_Debug_083F7FDE\n" + "\t.word\tgUnknown_Debug_083F7FE2\n" + "\t.word\tgUnknown_Debug_083F7FED\n" + "\t.word\tgUnknown_Debug_083F7FF6\n" + "\t.word\tgUnknown_Debug_083F8001\n" + "\t.word\tgUnknown_Debug_083F800C\n" + "\t.word\tgUnknown_Debug_083F8019\n" + "\t.word\tgUnknown_Debug_083F8022\n" + "\t.word\tgUnknown_Debug_083F8028\n" + "\t.word\tgSprites\n" + "\t.word\tgPokedexEntries\n" + "\t.word\t0x4000048\n" + "\t.word\t0x3f1f\n" + "\t.word\t0x4000040\n" + "\t.word\t0x4000044\n" + "\t.word\t0x848\n" + "\t.word\t0x31bf\n" + "\t.word\t0x14f\n" + "\t.word\t0x4000052\n" + "\t.word\tdebug_80C3D2C+1"); +} +#endif // NONMATCHING + +#endif // DEBUG diff --git a/src/pokedex.c b/src/pokedex.c index 61f2bfbba..30b4d414c 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -94,20 +94,6 @@ enum SIZE_SCREEN }; -struct PokedexEntry -{ - /*0x00*/ u8 categoryName[12]; - /*0x0C*/ u16 height; //in decimeters - /*0x0E*/ u16 weight; //in hectograms - /*0x10*/ const u8 *descriptionPage1; - /*0x14*/ const u8 *descriptionPage2; - /*0x18*/ u16 unused; - /*0x1A*/ u16 pokemonScale; - /*0x1C*/ u16 pokemonOffset; - /*0x1E*/ u16 trainerScale; - /*0x20*/ u16 trainerOffset; -}; /*size = 0x24*/ - struct UnknownStruct2 { const u8 *text1; @@ -1277,7 +1263,6 @@ void sub_8091738(u16, u16, u16); static void sub_80917CC(u16 i, u16 i1); static u16 sub_8091818(u8, u16, u16, u16); u16 sub_80918EC(u16 a, s16 b, s16 c, u16 d); -u8 sub_8091A4C(u16 gender, s16, s16, u16); static void sub_8091E54(u8); static void sub_809204C(u8); static void sub_809207C(u8); @@ -4584,7 +4569,7 @@ u16 sub_80918EC(u16 num, s16 x, s16 y, u16 paletteNum) return spriteId; } -u8 sub_8091A4C(u16 gender, s16 x, s16 y, u16 paletteNum) +u16 sub_8091A4C(u16 gender, s16 x, s16 y, u16 paletteNum) { u8 spriteId; -- cgit v1.2.3 From ea25c05dcc8ba88c967f08d39f9d4c4db2e0cd3a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 14 Apr 2018 14:38:41 -0400 Subject: debug_80C3D2C --- asm/watanabe_debug_menu.s | 441 ---------------------------------------- src/debug/watanabe_debug_menu.c | 125 +++++++++++- 2 files changed, 122 insertions(+), 444 deletions(-) diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index 034f0a2b3..742dd66cd 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,447 +5,6 @@ .text - thumb_func_start debug_80C3D2C -debug_80C3D2C: - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - add sp, sp, #0xfffffffc - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - add r7, r6, #0 - ldr r4, ._60 @ gMain - ldrh r1, [r4, #0x2e] - mov r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - beq ._58 @cond_branch - mov r0, #0x5 - bl PlaySE - mov r0, #0x1 - neg r0, r0 - mov r1, #0x0 - str r1, [sp] - mov r2, #0x0 - mov r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, ._60 + 4 @ debug_80C370C - bl SetMainCallback2 - ldr r1, ._60 + 8 @ gTasks - lsl r0, r6, #0x2 - add r0, r0, r6 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._60 + 12 @ debug_80C373C - str r1, [r0] - b ._117 -._61: - .align 2, 0 -._60: - .word gMain - .word debug_80C370C+1 - .word gTasks - .word debug_80C373C+1 -._58: - mov r5, #0x1 - add r0, r5, #0 - and r0, r0, r1 - cmp r0, #0 - beq ._62 @cond_branch - mov r0, #0x5 - bl PlaySE - ldr r1, ._64 @ gTasks - lsl r0, r6, #0x2 - add r0, r0, r6 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldrh r1, [r0, #0x18] - mov r2, #0x1 - eor r1, r1, r2 - strh r1, [r0, #0x18] - b ._117 -._65: - .align 2, 0 -._64: - .word gTasks -._62: - ldrh r1, [r4, #0x30] - mov r0, #0x20 - and r0, r0, r1 - cmp r0, #0 - beq ._66 @cond_branch - ldr r1, ._70 @ gTasks - lsl r2, r6, #0x2 - add r0, r2, r6 - lsl r0, r0, #0x3 - add r3, r0, r1 - mov r5, #0x18 - ldsh r0, [r3, r5] - mov r8, r1 - cmp r0, #0 - beq ._67 @cond_branch - ldrh r1, [r4, #0x2c] - mov r0, #0x80 - lsl r0, r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._68 @cond_branch - ldrh r0, [r3, #0x14] - add r0, r0, #0x10 - b ._69 -._71: - .align 2, 0 -._70: - .word gTasks -._68: - ldrh r0, [r3, #0x14] - add r0, r0, #0x1 -._69: - strh r0, [r3, #0x14] - add r0, r2, r7 - lsl r0, r0, #0x3 - mov r2, r8 - add r1, r0, r2 - ldrh r0, [r1, #0x14] - mov r6, #0x80 - lsl r6, r6, #0x8 - cmp r0, r6 - bhi ._72 @cond_branch - b ._117 -._72: - strh r6, [r1, #0x14] - b ._117 -._67: - ldrh r1, [r4, #0x2c] - mov r0, #0x80 - lsl r0, r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._75 @cond_branch - ldrh r0, [r3, #0x16] - add r0, r0, #0x10 - b ._76 -._75: - ldrh r0, [r3, #0x16] - add r0, r0, #0x1 -._76: - strh r0, [r3, #0x16] - add r0, r2, r7 - lsl r0, r0, #0x3 - mov r4, r8 - add r1, r0, r4 - ldrh r0, [r1, #0x16] - mov r6, #0x80 - lsl r6, r6, #0x8 - cmp r0, r6 - bhi ._77 @cond_branch - b ._117 -._77: - strh r6, [r1, #0x16] - b ._117 -._66: - mov r0, #0x10 - and r0, r0, r1 - cmp r0, #0 - beq ._80 @cond_branch - ldr r1, ._84 @ gTasks - lsl r2, r6, #0x2 - add r0, r2, r6 - lsl r0, r0, #0x3 - add r3, r0, r1 - mov r5, #0x18 - ldsh r0, [r3, r5] - mov r8, r1 - cmp r0, #0 - beq ._81 @cond_branch - ldrh r1, [r4, #0x2c] - mov r0, #0x80 - lsl r0, r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._82 @cond_branch - ldrh r0, [r3, #0x14] - sub r0, r0, #0x10 - b ._83 -._85: - .align 2, 0 -._84: - .word gTasks -._82: - ldrh r0, [r3, #0x14] - sub r0, r0, #0x1 -._83: - strh r0, [r3, #0x14] - add r0, r2, r7 - lsl r0, r0, #0x3 - mov r2, r8 - add r1, r0, r2 - mov r4, #0x14 - ldsh r0, [r1, r4] - cmp r0, #0xff - ble ._86 @cond_branch - b ._117 -._86: - mov r0, #0x80 - lsl r0, r0, #0x1 - strh r0, [r1, #0x14] - b ._117 -._81: - ldrh r1, [r4, #0x2c] - mov r0, #0x80 - lsl r0, r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._89 @cond_branch - ldrh r0, [r3, #0x16] - sub r0, r0, #0x10 - b ._90 -._89: - ldrh r0, [r3, #0x16] - sub r0, r0, #0x1 -._90: - strh r0, [r3, #0x16] - add r0, r2, r7 - lsl r0, r0, #0x3 - mov r5, r8 - add r1, r0, r5 - mov r2, #0x16 - ldsh r0, [r1, r2] - cmp r0, #0xff - ble ._91 @cond_branch - b ._117 -._91: - mov r0, #0x80 - lsl r0, r0, #0x1 - strh r0, [r1, #0x16] - b ._117 -._80: - mov r0, #0x40 - and r0, r0, r1 - cmp r0, #0 - beq ._94 @cond_branch - ldr r0, ._97 @ gTasks - lsl r1, r6, #0x2 - add r1, r1, r6 - lsl r1, r1, #0x3 - add r1, r1, r0 - mov r4, #0x18 - ldsh r0, [r1, r4] - cmp r0, #0 - beq ._95 @cond_branch - ldrh r0, [r1, #0x10] - sub r0, r0, #0x1 - strh r0, [r1, #0x10] - b ._117 -._98: - .align 2, 0 -._97: - .word gTasks -._95: - ldrh r0, [r1, #0x12] - sub r0, r0, #0x1 - strh r0, [r1, #0x12] - b ._117 -._94: - mov r0, #0x80 - and r0, r0, r1 - cmp r0, #0 - beq ._100 @cond_branch - ldr r0, ._103 @ gTasks - lsl r1, r6, #0x2 - add r1, r1, r6 - lsl r1, r1, #0x3 - add r1, r1, r0 - mov r5, #0x18 - ldsh r0, [r1, r5] - cmp r0, #0 - beq ._101 @cond_branch - ldrh r0, [r1, #0x10] - add r0, r0, #0x1 - strh r0, [r1, #0x10] - b ._117 -._104: - .align 2, 0 -._103: - .word gTasks -._101: - ldrh r0, [r1, #0x12] - add r0, r0, #0x1 - strh r0, [r1, #0x12] - b ._117 -._100: - mov r0, #0x8 - and r0, r0, r1 - cmp r0, #0 - beq ._106 @cond_branch - ldr r2, ._109 @ gTasks - lsl r3, r6, #0x2 - add r0, r3, r6 - lsl r0, r0, #0x3 - add r6, r0, r2 - ldrh r4, [r6, #0x8] - mov r0, #0x8 - ldsh r1, [r6, r0] - ldr r0, ._109 + 4 @ 0x181 - mov r8, r2 - add r2, r3, #0 - cmp r1, r0 - bgt ._107 @cond_branch - add r0, r4, #1 - strh r0, [r6, #0x8] - b ._108 -._110: - .align 2, 0 -._109: - .word gTasks - .word 0x181 -._107: - strh r5, [r6, #0x8] -._108: - add r4, r2, r7 - lsl r4, r4, #0x3 - add r4, r4, r8 - mov r2, #0xc - ldsh r1, [r4, r2] - b ._111 -._106: - mov r0, #0x4 - and r0, r0, r1 - cmp r0, #0 - beq ._112 @cond_branch - ldr r1, ._115 @ gTasks - lsl r2, r6, #0x2 - add r0, r2, r6 - lsl r0, r0, #0x3 - add r3, r0, r1 - ldrh r6, [r3, #0x8] - mov r4, #0x8 - ldsh r0, [r3, r4] - mov r8, r1 - cmp r0, #0x1 - ble ._113 @cond_branch - sub r0, r6, #1 - b ._114 -._116: - .align 2, 0 -._115: - .word gTasks -._113: - mov r0, #0xc1 - lsl r0, r0, #0x1 -._114: - strh r0, [r3, #0x8] - add r4, r2, r7 - lsl r4, r4, #0x3 - add r4, r4, r8 - mov r5, #0xc - ldsh r1, [r4, r5] -._111: - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - ldr r5, ._118 @ gSprites - add r0, r0, r5 - bl DestroySprite - mov r0, #0xe - ldsh r1, [r4, r0] - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r5 - bl DestroySprite - ldr r0, ._118 + 4 @ debug_80C3A50 - str r0, [r4] - b ._117 -._119: - .align 2, 0 -._118: - .word gSprites - .word debug_80C3A50+1 -._112: - ldr r0, ._120 @ gTasks - lsl r5, r7, #0x2 - add r5, r5, r7 - lsl r5, r5, #0x3 - add r5, r5, r0 - ldrh r4, [r5, #0x16] - ldrh r6, [r5, #0x12] - str r4, [sp] - mov r0, #0x1 - add r1, r4, #0 - mov r2, #0x0 - mov r3, #0x0 - bl SetOamMatrix - add r0, r4, #0 - mov r1, #0x1 - mov r2, #0x3 - mov r3, #0x4 - bl debug_80C68CC - add r0, r6, #0 - mov r1, #0x1 - mov r2, #0x7 - mov r3, #0x4 - bl debug_80C68CC - ldr r2, ._120 + 4 @ gSprites - mov r8, r2 - mov r4, #0xc - ldsh r1, [r5, r4] - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r8 - strh r6, [r0, #0x26] - ldrh r4, [r5, #0x14] - ldrh r6, [r5, #0x10] - str r4, [sp] - mov r0, #0x2 - add r1, r4, #0 - mov r2, #0x0 - mov r3, #0x0 - bl SetOamMatrix - add r0, r4, #0 - mov r1, #0x19 - mov r2, #0x3 - mov r3, #0x4 - bl debug_80C68CC - add r0, r6, #0 - mov r1, #0x19 - mov r2, #0x7 - mov r3, #0x4 - bl debug_80C68CC - mov r0, #0xe - ldsh r1, [r5, r0] - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r8 - strh r6, [r0, #0x26] - ldr r2, ._120 + 8 @ 0x4000040 - mov r4, #0x18 - ldsh r1, [r5, r4] - lsl r1, r1, #0x6 - add r0, r1, #0 - add r0, r0, #0x38 - lsl r0, r0, #0x8 - add r1, r1, #0x78 - add r0, r0, r1 - strh r0, [r2] -._117: - add sp, sp, #0x4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._121: - .align 2, 0 -._120: - .word gTasks - .word gSprites - .word 0x4000040 - - thumb_func_end debug_80C3D2C - thumb_func_start debug_80C405C debug_80C405C: push {r4, r5, lr} diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index 7ca155faa..1f9bb8672 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -26,6 +26,10 @@ EWRAM_DATA u8 gUnknown_Debug_2038A20[4] = { 0 }; u8 byte_3005E30[0x20]; +void debug_80C3A50(u8 taskId); +void debug_80C3D2C(u8 taskId); +void debug_80C68CC(u16, u8, u8, u8); + 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]; // = _("ひりつ"); @@ -42,9 +46,6 @@ extern const u8 gUnknown_Debug_083F8028[6]; // = _(":セレクト"); extern const struct SpriteSheet stru_83F8828[2]; extern const struct SpritePalette stru_83F8838[2]; -void debug_80C3A50(u8 taskId); -void debug_80C3D2C(u8 taskId); - void debug_69(struct Sprite *sprite) { @@ -667,4 +668,122 @@ NAKED void debug_80C3A50(u8 taskId) } #endif // NONMATCHING +void debug_80C3D2C(u8 taskId) +{ + if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + SetMainCallback2(debug_80C370C); + gTasks[taskId].func = debug_80C373C; + } + else if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + gTasks[taskId].data[8] ^= 1; + } + else if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + if (gTasks[taskId].data[8]) + { + if (gMain.heldKeys & R_BUTTON) + gTasks[taskId].data[6] += 16; + else + gTasks[taskId].data[6] += 1; + if ((u16)gTasks[taskId].data[6] > 0x8000) + gTasks[taskId].data[6] = 0x8000; + } + else + { + if (gMain.heldKeys & R_BUTTON) + gTasks[taskId].data[7] += 16; + else + gTasks[taskId].data[7] += 1; + if ((u16)gTasks[taskId].data[7] > 0x8000) + gTasks[taskId].data[7] = 0x8000; + } + } + else if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + if (gTasks[taskId].data[8]) + { + if (gMain.heldKeys & R_BUTTON) + gTasks[taskId].data[6] -= 16; + else + gTasks[taskId].data[6] -= 1; + if (gTasks[taskId].data[6] < 0x100) + gTasks[taskId].data[6] = 0x100; + } + else + { + if (gMain.heldKeys & R_BUTTON) + gTasks[taskId].data[7] -= 16; + else + gTasks[taskId].data[7] -= 1; + if (gTasks[taskId].data[7] < 0x100) + gTasks[taskId].data[7] = 0x100; + } + } + else if (gMain.newAndRepeatedKeys & DPAD_UP) + { + if (gTasks[taskId].data[8]) + { + gTasks[taskId].data[4]--; + } + else + { + gTasks[taskId].data[5]--; + } + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + if (gTasks[taskId].data[8]) + { + gTasks[taskId].data[4]++; + } + else + { + gTasks[taskId].data[5]++; + } + } + else if (gMain.newAndRepeatedKeys & START_BUTTON) + { + if (gTasks[taskId].data[0] < 0x182) + gTasks[taskId].data[0]++; + else + gTasks[taskId].data[0] = 1; + DestroySprite(gSprites + gTasks[taskId].data[2]); + DestroySprite(gSprites + gTasks[taskId].data[3]); + gTasks[taskId].func = debug_80C3A50; + } + else if (gMain.newAndRepeatedKeys & SELECT_BUTTON) + { + if (gTasks[taskId].data[0] > 1) + gTasks[taskId].data[0]--; + else + gTasks[taskId].data[0] = 0x182; + DestroySprite(gSprites + gTasks[taskId].data[2]); + DestroySprite(gSprites + gTasks[taskId].data[3]); + gTasks[taskId].func = debug_80C3A50; + } + else + { + u16 scale = gTasks[taskId].data[7]; + u16 offset = gTasks[taskId].data[5]; + SetOamMatrix(1, scale, 0, 0, scale); + debug_80C68CC(scale, 1, 3, 4); + debug_80C68CC(offset, 1, 7, 4); + gSprites[gTasks[taskId].data[2]].pos2.y = offset; + + scale = gTasks[taskId].data[6]; + offset = gTasks[taskId].data[4]; + SetOamMatrix(2, scale, 0, 0, scale); + debug_80C68CC(scale, 25, 3, 4); + debug_80C68CC(offset, 25, 7, 4); + gSprites[gTasks[taskId].data[3]].pos2.y = offset; + + REG_WIN0H = ((gTasks[taskId].data[8] * 64 + 0x38) << 8) + (gTasks[taskId].data[8] * 64 + 0x78); + } +} + #endif // DEBUG -- cgit v1.2.3 From 21e006d680b2cf3b511e2f346cf997ab2fbbee47 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 14 Apr 2018 16:11:45 -0400 Subject: through debug_80C42B8 --- asm/watanabe_debug_menu.s | 381 ---------------------------------------- src/debug/watanabe_debug_menu.c | 157 ++++++++++++++++- 2 files changed, 155 insertions(+), 383 deletions(-) diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index 742dd66cd..cb8a10520 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,387 +5,6 @@ .text - thumb_func_start debug_80C405C -debug_80C405C: - push {r4, r5, lr} - add r4, r0, #0 - lsl r1, r1, #0x10 - lsr r5, r1, #0x10 - mov r2, #0x0 - mov r1, #0x0 -._122: - add r0, r4, r2 - strb r1, [r0] - add r0, r2, #1 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - cmp r2, #0x9 - bls ._122 @cond_branch - add r0, r4, r2 - mov r1, #0xff - strb r1, [r0] - mov r0, #0xae - strb r0, [r4] - cmp r5, #0 - beq ._125 @cond_branch - mov r2, #0x0 - ldr r3, ._127 @ gSpeciesNames - mov r0, #0xb - add r1, r5, #0 - mul r1, r1, r0 - add r0, r1, r3 - ldrb r0, [r0] - cmp r0, #0xff - beq ._125 @cond_branch - add r5, r3, #0 - add r3, r1, #0 -._126: - add r1, r4, r2 - add r0, r2, r3 - add r0, r0, r5 - ldrb r0, [r0] - strb r0, [r1] - add r0, r2, #1 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - add r0, r2, r3 - add r0, r0, r5 - ldrb r0, [r0] - cmp r0, #0xff - beq ._125 @cond_branch - cmp r2, #0x9 - bls ._126 @cond_branch -._125: - pop {r4, r5} - pop {r0} - bx r0 -._128: - .align 2, 0 -._127: - .word gSpeciesNames - - thumb_func_end debug_80C405C - - thumb_func_start debug_80C40C4 -debug_80C40C4: - push {r4, r5, r6, r7, lr} - add sp, sp, #0xfffffffc - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 - mov r5, #0x0 - mov r6, sp -._135: - cmp r7, #0 - beq ._129 @cond_branch - mov r0, #0x64 - add r1, r5, #0 - mul r1, r1, r0 - ldr r0, ._132 @ gEnemyParty - add r4, r1, r0 - add r0, r4, #0 - mov r1, #0xb - bl GetMonData - cmp r0, #0 - beq ._134 @cond_branch - add r0, r4, #0 - bl CalculateMonStats - add r0, r4, #0 - mov r1, #0x3a - bl GetMonData - strh r0, [r6] - add r0, r4, #0 - mov r1, #0x39 - mov r2, sp - bl SetMonData - b ._134 -._133: - .align 2, 0 -._132: - .word gEnemyParty -._129: - mov r0, #0x64 - add r1, r5, #0 - mul r1, r1, r0 - ldr r0, ._136 @ gPlayerParty - add r4, r1, r0 - add r0, r4, #0 - mov r1, #0xb - bl GetMonData - cmp r0, #0 - beq ._134 @cond_branch - add r0, r4, #0 - bl CalculateMonStats - add r0, r4, #0 - mov r1, #0x3a - bl GetMonData - strh r0, [r6] - add r0, r4, #0 - mov r1, #0x39 - mov r2, sp - bl SetMonData -._134: - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #0x5 - bls ._135 @cond_branch - add sp, sp, #0x4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._137: - .align 2, 0 -._136: - .word gPlayerParty - - thumb_func_end debug_80C40C4 - - thumb_func_start InitBattleForDebug -InitBattleForDebug: - push {lr} - bl SavePlayerParty - ldr r1, ._138 @ gUnknown_Debug_2038A0C - ldr r0, ._138 + 4 @ gSaveBlock2 - ldrb r2, [r0, #0x8] - mov r0, #0x0 - strb r2, [r1, #0xd] - strb r0, [r1] - strb r0, [r1, #0x1] - strb r0, [r1, #0x2] - strb r0, [r1, #0x3] - strb r0, [r1, #0x4] - strb r0, [r1, #0x5] - strb r0, [r1, #0x6] - strb r0, [r1, #0x7] - strb r0, [r1, #0x8] - strb r0, [r1, #0xc] - ldr r1, ._138 + 8 @ byte_3005E30 - str r0, [r1] - bl ZeroPlayerPartyMons - bl ZeroEnemyPartyMons - mov r0, #0x0 - bl debug_80C4214 - ldr r0, ._138 + 12 @ debug_80C47BC - mov r1, #0x0 - bl CreateTask - pop {r0} - bx r0 -._139: - .align 2, 0 -._138: - .word gUnknown_Debug_2038A0C - .word gSaveBlock2 - .word byte_3005E30 - .word debug_80C47BC+1 - - thumb_func_end InitBattleForDebug - - thumb_func_start debug_80C41A8 -debug_80C41A8: - push {lr} - ldr r1, ._140 @ gUnknown_Debug_2038A0C - mov r0, #0x0 - strb r0, [r1, #0x1] - strb r0, [r1, #0x2] - bl ZeroPlayerPartyMons - bl ZeroEnemyPartyMons - mov r0, #0x0 - bl debug_80C4214 - ldr r0, ._140 + 4 @ debug_80C47BC - mov r1, #0x0 - bl CreateTask - pop {r0} - bx r0 -._141: - .align 2, 0 -._140: - .word gUnknown_Debug_2038A0C - .word debug_80C47BC+1 - - thumb_func_end debug_80C41A8 - - thumb_func_start debug_80C41D4 -debug_80C41D4: - push {lr} - mov r0, #0x0 - bl debug_80C40C4 - mov r0, #0x0 - bl debug_80C4214 - ldr r0, ._142 @ debug_80C42B8 - mov r1, #0x0 - bl CreateTask - pop {r0} - bx r0 -._143: - .align 2, 0 -._142: - .word debug_80C42B8+1 - - thumb_func_end debug_80C41D4 - - thumb_func_start debug_80C41F4 -debug_80C41F4: - push {lr} - mov r0, #0x1 - bl debug_80C40C4 - mov r0, #0x1 - bl debug_80C4214 - ldr r0, ._144 @ debug_80C42B8 - mov r1, #0x0 - bl CreateTask - pop {r0} - bx r0 -._145: - .align 2, 0 -._144: - .word debug_80C42B8+1 - - thumb_func_end debug_80C41F4 - - thumb_func_start debug_80C4214 -debug_80C4214: - push {r4, r5, r6, lr} - bl debug_80C35DC - ldr r6, ._146 @ 0x4000040 - mov r4, #0x0 - strh r4, [r6] - ldr r5, ._146 + 4 @ 0x4000044 - strh r4, [r5] - ldr r0, ._146 + 8 @ 0x4000042 - strh r4, [r0] - add r0, r0, #0x4 - strh r4, [r0] - ldr r1, ._146 + 12 @ 0x4000048 - ldr r2, ._146 + 16 @ 0x1111 - add r0, r2, #0 - strh r0, [r1] - add r1, r1, #0x2 - mov r0, #0x31 - strh r0, [r1] - add r1, r1, #0x6 - mov r0, #0xe1 - strh r0, [r1] - ldr r0, ._146 + 20 @ 0x4000052 - strh r4, [r0] - add r1, r1, #0x4 - mov r0, #0x7 - strh r0, [r1] - ldr r3, ._146 + 24 @ 0x4000208 - ldrh r2, [r3] - strh r4, [r3] - ldr r4, ._146 + 28 @ 0x4000200 - ldrh r0, [r4] - mov r1, #0x1 - orr r0, r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r0, ._146 + 32 @ debug_80C3758 - bl SetVBlankCallback - ldr r0, ._146 + 36 @ debug_80C370C - bl SetMainCallback2 - mov r1, #0x80 - lsl r1, r1, #0x13 - ldr r2, ._146 + 40 @ 0x7140 - add r0, r2, #0 - strh r0, [r1] - ldr r1, ._146 + 44 @ 0x1ef - add r0, r1, #0 - strh r0, [r6] - ldr r2, ._146 + 48 @ 0x819f - add r0, r2, #0 - strh r0, [r5] - pop {r4, r5, r6} - pop {r0} - bx r0 -._147: - .align 2, 0 -._146: - .word 0x4000040 - .word 0x4000044 - .word 0x4000042 - .word 0x4000048 - .word 0x1111 - .word 0x4000052 - .word 0x4000208 - .word 0x4000200 - .word debug_80C3758+1 - .word debug_80C370C+1 - .word 0x7140 - .word 0x1ef - .word 0x819f - - thumb_func_end debug_80C4214 - - thumb_func_start debug_80C42B8 -debug_80C42B8: - push {r4, r5, lr} - add sp, sp, #0xffffffe4 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - ldr r1, ._150 @ gUnknown_Debug_083F8194 - mov r0, sp - mov r2, #0xc - bl memcpy - add r4, sp, #0xc - ldr r1, ._150 + 4 @ gUnknown_Debug_083F81A0 - add r0, r4, #0 - mov r2, #0xd - 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 - bl debug_80C4694 - bl debug_80C4704 - ldr r0, ._150 + 8 @ gUnknown_Debug_2038A0C - ldrb r0, [r0] - cmp r0, #0 - beq ._148 @cond_branch - ldr r0, ._150 + 12 @ gTasks - lsl r1, r5, #0x2 - add r1, r1, r5 - lsl r1, r1, #0x3 - add r1, r1, r0 - ldr r0, ._150 + 16 @ debug_80C44EC - b ._149 -._151: - .align 2, 0 -._150: - .word gUnknown_Debug_083F8194 - .word gUnknown_Debug_083F81A0 - .word gUnknown_Debug_2038A0C - .word gTasks - .word debug_80C44EC+1 -._148: - ldr r0, ._152 @ gTasks - lsl r1, r5, #0x2 - add r1, r1, r5 - lsl r1, r1, #0x3 - add r1, r1, r0 - ldr r0, ._152 + 4 @ debug_80C4348 -._149: - str r0, [r1] - add sp, sp, #0x1c - pop {r4, r5} - pop {r0} - bx r0 -._153: - .align 2, 0 -._152: - .word gTasks - .word debug_80C4348+1 - - thumb_func_end debug_80C42B8 - thumb_func_start debug_80C4348 debug_80C4348: push {r4, lr} diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index 1f9bb8672..a75ee16f1 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -18,16 +18,24 @@ #include "save.h" #include "sound.h" #include "pokedex.h" +#include "load_save.h" EWRAM_DATA u8 gUnknown_Debug_20389EC[0x20] = { 0 }; EWRAM_DATA u8 gUnknown_Debug_2038A0C[0x10] = { 0 }; EWRAM_DATA u8 gUnknown_Debug_2038A1C[4] = { 0 }; EWRAM_DATA u8 gUnknown_Debug_2038A20[4] = { 0 }; -u8 byte_3005E30[0x20]; +u32 byte_3005E30; void debug_80C3A50(u8 taskId); void debug_80C3D2C(u8 taskId); +void debug_80C4214(u8); +void debug_80C42B8(u8 taskId); +void debug_80C4348(u8 taskId); +void debug_80C44EC(u8 taskId); +void debug_80C4694(void); +void debug_80C4704(void); +void debug_80C47BC(u8 taskId); void debug_80C68CC(u16, u8, u8, u8); extern const u8 gUnknown_Debug_083F7FD4[2]; // = _("▶"); @@ -42,6 +50,8 @@ extern const u8 gUnknown_Debug_083F800C[13]; // = _("Aボタン▶そうさき extern const u8 gUnknown_Debug_083F8019[9]; // = _("Bボタン▶やめる"); extern const u8 gUnknown_Debug_083F8022[6]; // = _("スタート:"); extern const u8 gUnknown_Debug_083F8028[6]; // = _(":セレクト"); +extern const u8 gUnknown_Debug_083F8194[12]; // = _("ポケモンを えらんでね"); +extern const u8 gUnknown_Debug_083F81A0[13]; // = _("{COLOR RED}START:つぎへ"); extern const struct SpriteSheet stru_83F8828[2]; extern const struct SpritePalette stru_83F8838[2]; @@ -209,7 +219,7 @@ u16 debug_80C38B4(u8 a0, u16 a1) void debug_80C38E4(u8 a0, u8 a1, u8 a2, u8 a3, u8 a4) { // u8 sp00[] = _("▶"); - u8 sp00[2]; + u8 sp00[sizeof(gUnknown_Debug_083F7FD4)]; memcpy(sp00, gUnknown_Debug_083F7FD4, ARRAY_COUNT(gUnknown_Debug_083F7FD4)); Menu_BlankWindowRect(a1, a2, a1, a3); @@ -786,4 +796,147 @@ void debug_80C3D2C(u8 taskId) } } +void debug_80C405C(u8 * dest, u16 species) +{ + u8 i; + + for (i = 0; i < 10; i++) + dest[i] = CHAR_SPACE; + dest[i] = EOS; + + dest[0] = CHAR_HYPHEN; + + if (species != SPECIES_NONE) + { + for (i = 0; gSpeciesNames[species][i] != EOS && i < 10; i++) + dest[i] = gSpeciesNames[species][i]; + } +} + +void debug_80C40C4(bool8 who) +{ + u8 i; + u16 maxHp; + + for (i = 0; i < PARTY_SIZE; i++) + { + if (who) + { + struct Pokemon *pokemon = gEnemyParty + i; + if (GetMonData(pokemon, MON_DATA_SPECIES) != SPECIES_NONE) + { + CalculateMonStats(pokemon); + maxHp = GetMonData(pokemon, MON_DATA_MAX_HP); + SetMonData(pokemon, MON_DATA_HP, &maxHp); + } + } + else + { + struct Pokemon *pokemon = gPlayerParty + i; + if (GetMonData(pokemon, MON_DATA_SPECIES) != SPECIES_NONE) + { + CalculateMonStats(pokemon); + maxHp = GetMonData(pokemon, MON_DATA_MAX_HP); + SetMonData(pokemon, MON_DATA_HP, &maxHp); + } + } + } +} + +void InitBattleForDebug(void) +{ + SavePlayerParty(); + gUnknown_Debug_2038A0C[13] = gSaveBlock2.playerGender; + gUnknown_Debug_2038A0C[0] = 0; + gUnknown_Debug_2038A0C[1] = 0; + gUnknown_Debug_2038A0C[2] = 0; + gUnknown_Debug_2038A0C[3] = 0; + gUnknown_Debug_2038A0C[4] = 0; + gUnknown_Debug_2038A0C[5] = 0; + gUnknown_Debug_2038A0C[6] = 0; + gUnknown_Debug_2038A0C[7] = 0; + gUnknown_Debug_2038A0C[8] = 0; + gUnknown_Debug_2038A0C[12] = 0; + byte_3005E30 = 0; + ZeroPlayerPartyMons(); + ZeroEnemyPartyMons(); + debug_80C4214(0); + CreateTask(debug_80C47BC, 0); +} + +void debug_80C41A8(void) +{ + gUnknown_Debug_2038A0C[1] = 0; + gUnknown_Debug_2038A0C[2] = 0; + ZeroPlayerPartyMons(); + ZeroEnemyPartyMons(); + debug_80C4214(0); + CreateTask(debug_80C47BC, 0); +} + +void debug_80C41D4(void) +{ + debug_80C40C4(0); + debug_80C4214(0); + CreateTask(debug_80C42B8, 0); +} + +void debug_80C41F4(void) +{ + debug_80C40C4(1); + debug_80C4214(1); + CreateTask(debug_80C42B8, 0); +} + +void debug_80C4214(UNUSED u8 a0) +{ + debug_80C35DC(); + REG_WIN0H = 0; + REG_WIN0V = 0; + REG_WIN1H = 0; + REG_WIN1V = 0; + REG_WININ = 0x1111; + REG_WINOUT = 0x0031; + REG_BLDCNT = BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN; + REG_BLDALPHA = 0; + REG_BLDY = 7; + + { + u16 imeBak = REG_IME; + REG_IME = 0; + REG_IE |= INTR_FLAG_VBLANK; + REG_IME = imeBak; + } + + SetVBlankCallback(debug_80C3758); + SetMainCallback2(debug_80C370C); + REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON; + REG_WIN0H = 0x01EF; + REG_WIN0V = 0x819F; +} + +void debug_80C42B8(u8 taskId) +{ + u8 sp00[sizeof(gUnknown_Debug_083F8194)]; + u8 sp0c[sizeof(gUnknown_Debug_083F81A0)]; + + memcpy(sp00, gUnknown_Debug_083F8194, sizeof(gUnknown_Debug_083F8194)); + memcpy(sp0c, gUnknown_Debug_083F81A0, sizeof(gUnknown_Debug_083F81A0)); + + // u8 sp00[] = _("ポケモンを えらんでね"); + // u8 sp0c[] = _("{COLOR RED}START:つぎへ"); + + Menu_DrawStdWindowFrame(0, 16, 29, 19); + Menu_PrintText(sp00, 1, 17); + Menu_PrintText(sp0c, 20, 17); + + debug_80C4694(); + debug_80C4704(); + + if (gUnknown_Debug_2038A0C[0]) + gTasks[taskId].func = debug_80C44EC; + else + gTasks[taskId].func = debug_80C4348; +} + #endif // DEBUG -- cgit v1.2.3 From 7ce151910a3075757813ae3a870f30b5809e669c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 14 Apr 2018 21:34:03 -0400 Subject: through debug_80C43A8 --- Makefile | 20 ++-- asm/pokemon_storage_system.s | 6 +- asm/watanabe_debug_menu.s | 215 --------------------------------------- include/pokemon_storage_system.h | 2 + src/debug/watanabe_debug_menu.c | 52 ++++++++++ src/pokemon_storage_system_2.c | 8 +- 6 files changed, 73 insertions(+), 230 deletions(-) diff --git a/Makefile b/Makefile index 87d19422e..4853612bc 100644 --- a/Makefile +++ b/Makefile @@ -1,23 +1,27 @@ include config.mk +ifeq ($(OS),Windows_NT) +EXE := .exe +endif + #### Tools #### SHELL := /bin/bash -o pipefail AS := $(DEVKITARM)/bin/arm-none-eabi-as -CC1 := tools/agbcc/bin/agbcc +CC1 := tools/agbcc/bin/agbcc$(EXE) CPP := $(DEVKITARM)/bin/arm-none-eabi-cpp LD := $(DEVKITARM)/bin/arm-none-eabi-ld OBJCOPY := $(DEVKITARM)/bin/arm-none-eabi-objcopy SHA1SUM := sha1sum -c -GBAGFX := tools/gbagfx/gbagfx -RSFONT := tools/rsfont/rsfont -AIF2PCM := tools/aif2pcm/aif2pcm -MID2AGB := tools/mid2agb/mid2agb -PREPROC := tools/preproc/preproc -SCANINC := tools/scaninc/scaninc -RAMSCRGEN := tools/ramscrgen/ramscrgen +GBAGFX := tools/gbagfx/gbagfx$(EXE) +RSFONT := tools/rsfont/rsfont$(EXE) +AIF2PCM := tools/aif2pcm/aif2pcm$(EXE) +MID2AGB := tools/mid2agb/mid2agb$(EXE) +PREPROC := tools/preproc/preproc$(EXE) +SCANINC := tools/scaninc/scaninc$(EXE) +RAMSCRGEN := tools/ramscrgen/ramscrgen$(EXE) ASFLAGS := -mcpu=arm7tdmi -I include --defsym $(GAME_VERSION)=1 --defsym REVISION=$(GAME_REVISION) --defsym $(GAME_LANGUAGE)=1 --defsym DEBUG=$(DEBUG) CC1FLAGS := -mthumb-interwork -Wimplicit -Wparentheses -Wunused -Werror -O2 -fhex-asm diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index cee93a9e4..357fe9a49 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -582,8 +582,8 @@ sub_809CB74: @ 809CB74 _0809CB90: .4byte gPokemonStorageSystemPtr thumb_func_end sub_809CB74 - thumb_func_start unref_sub_809CB94 -unref_sub_809CB94: @ 809CB94 + thumb_func_start debug_sub_809CB94 +debug_sub_809CB94: @ 809CB94 push {r4,lr} adds r4, r0, 0 ldr r0, _0809CBBC @ =gUnknown_020384E4 @@ -636,7 +636,7 @@ _0809CBF6: .align 2, 0 _0809CBFC: .4byte gPokemonStorage _0809CC00: .4byte gUnknown_020384E5 - thumb_func_end unref_sub_809CB94 + thumb_func_end debug_sub_809CB94 thumb_func_start sub_809CC04 sub_809CC04: @ 809CC04 diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index cb8a10520..b552678bc 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,221 +5,6 @@ .text - thumb_func_start debug_80C4348 -debug_80C4348: - push {r4, lr} - add sp, sp, #0xfffffffc - add r4, r0, #0 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - ldr r0, ._154 @ gUnknown_Debug_2038A0C - ldrb r0, [r0, #0x1] - 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, ._154 + 4 @ 0x4000042 - ldr r2, ._154 + 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, ._154 + 12 @ gTasks - lsl r0, r4, #0x2 - add r0, r0, r4 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._154 + 16 @ debug_80C43A8 - str r1, [r0] - add sp, sp, #0x4 - pop {r4} - pop {r0} - bx r0 -._155: - .align 2, 0 -._154: - .word gUnknown_Debug_2038A0C - .word 0x4000042 - .word 0x177 - .word gTasks - .word debug_80C43A8+1 - - thumb_func_end debug_80C4348 - - thumb_func_start debug_80C43A8 -debug_80C43A8: - push {r4, r5, lr} - add sp, sp, #0xfffffffc - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - ldr r1, ._158 @ gMain - ldrh r2, [r1, #0x2e] - mov r0, #0x1 - and r0, r0, r2 - add r3, r1, #0 - cmp r0, #0 - beq ._156 @cond_branch - mov r0, #0x5 - bl PlaySE - ldr r0, ._158 + 4 @ gUnknown_Debug_2038A0C - ldrb r1, [r0, #0x1] - mov r0, #0x64 - mul r0, r0, r1 - ldr r1, ._158 + 8 @ gPlayerParty - add r0, r0, r1 - ldr r1, ._158 + 12 @ debug_80C41D4 - bl debug_sub_80A433C - add r0, r4, #0 - bl DestroyTask - b ._180 -._159: - .align 2, 0 -._158: - .word gMain - .word gUnknown_Debug_2038A0C - .word gPlayerParty - .word debug_80C41D4+1 -._156: - mov r0, #0x2 - and r0, r0, r2 - cmp r0, #0 - beq ._160 @cond_branch - ldr r0, ._162 @ gTasks - lsl r1, r4, #0x2 - add r1, r1, r4 - lsl r1, r1, #0x3 - add r1, r1, r0 - ldr r0, ._162 + 4 @ debug_80C4F48 - str r0, [r1] - b ._180 -._163: - .align 2, 0 -._162: - .word gTasks - .word debug_80C4F48+1 -._160: - mov r0, #0x8 - and r0, r0, r2 - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - cmp r1, #0 - beq ._164 @cond_branch - bl debug_80C4774 - lsl r0, r0, #0x18 - cmp r0, #0 - beq ._180 @cond_branch - mov r0, #0x5 - bl PlaySE - bl CalculatePlayerPartyCount - bl CalculateEnemyPartyCount - ldr r0, ._167 @ gTasks - lsl r1, r4, #0x2 - add r1, r1, r4 - lsl r1, r1, #0x3 - add r1, r1, r0 - ldr r0, ._167 + 4 @ debug_80C4D14 - str r0, [r1] - b ._180 -._168: - .align 2, 0 -._167: - .word gTasks - .word debug_80C4D14+1 -._164: - mov r0, #0x88 - lsl r0, r0, #0x1 - and r0, r0, r2 - cmp r0, #0 - beq ._169 @cond_branch - str r1, [sp] - mov r0, #0x0 - mov r1, #0x1 - mov r2, #0x1 - mov r3, #0xe - bl debug_80C38E4 - ldr r0, ._171 @ gTasks - lsl r1, r4, #0x2 - add r1, r1, r4 - lsl r1, r1, #0x3 - add r1, r1, r0 - ldr r0, ._171 + 4 @ debug_80C44EC - str r0, [r1] - b ._180 -._172: - .align 2, 0 -._171: - .word gTasks - .word debug_80C44EC+1 -._169: - ldrh r1, [r3, #0x30] - mov r0, #0x40 - and r0, r0, r1 - cmp r0, #0 - beq ._174 @cond_branch - ldr r1, ._176 @ gUnknown_Debug_2038A0C - ldrb r0, [r1, #0x1] - cmp r0, #0 - beq ._174 @cond_branch - sub r0, r0, #0x1 - strb r0, [r1, #0x1] - b ._175 -._177: - .align 2, 0 -._176: - .word gUnknown_Debug_2038A0C -._174: - ldrh r1, [r3, #0x30] - mov r0, #0x80 - and r0, r0, r1 - cmp r0, #0 - beq ._180 @cond_branch - ldr r5, ._181 @ gUnknown_Debug_2038A0C - ldrb r0, [r5, #0x1] - cmp r0, #0x4 - bhi ._180 @cond_branch - add r1, r0, #0 - mov r0, #0x64 - mul r0, r0, r1 - ldr r1, ._181 + 4 @ gPlayerParty - add r0, r0, r1 - mov r1, #0xb - bl GetMonData - cmp r0, #0 - beq ._180 @cond_branch - ldrb r0, [r5, #0x1] - add r0, r0, #0x1 - strb r0, [r5, #0x1] -._175: - ldr r1, ._181 + 8 @ gTasks - lsl r0, r4, #0x2 - add r0, r0, r4 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._181 + 12 @ debug_80C4348 - str r1, [r0] -._180: - add sp, sp, #0x4 - pop {r4, r5} - pop {r0} - bx r0 -._182: - .align 2, 0 -._181: - .word gUnknown_Debug_2038A0C - .word gPlayerParty - .word gTasks - .word debug_80C4348+1 - - thumb_func_end debug_80C43A8 - thumb_func_start debug_80C44EC debug_80C44EC: push {r4, lr} diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index c6c37c123..9c8fbdc13 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -300,4 +300,6 @@ void sub_809D104(void *dest, u16 dLeft, u16 dTop, const void *src, u16 sLeft, u1 void sub_809D16C(void *dest, u16 dLeft, u16 dTop, u16 width, u16 height); void ShowPokemonStorageSystem(void); +void debug_sub_80A433C(struct Pokemon *pokemon, void (*func)(void)); + #endif // GUARD_POKEMON_STORAGE_SYSTEM_H diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index a75ee16f1..672b28e71 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -19,6 +19,7 @@ #include "sound.h" #include "pokedex.h" #include "load_save.h" +#include "pokemon_storage_system.h" EWRAM_DATA u8 gUnknown_Debug_20389EC[0x20] = { 0 }; EWRAM_DATA u8 gUnknown_Debug_2038A0C[0x10] = { 0 }; @@ -32,10 +33,14 @@ void debug_80C3D2C(u8 taskId); void debug_80C4214(u8); void debug_80C42B8(u8 taskId); void debug_80C4348(u8 taskId); +void debug_80C43A8(u8 taskId); void debug_80C44EC(u8 taskId); void debug_80C4694(void); void debug_80C4704(void); +bool8 debug_80C4774(void); void debug_80C47BC(u8 taskId); +void debug_80C4D14(u8 taskId); +void debug_80C4F48(u8 taskId); void debug_80C68CC(u16, u8, u8, u8); extern const u8 gUnknown_Debug_083F7FD4[2]; // = _("▶"); @@ -939,4 +944,51 @@ void debug_80C42B8(u8 taskId) gTasks[taskId].func = debug_80C4348; } +void debug_80C4348(u8 taskId) +{ + debug_80C38E4(gUnknown_Debug_2038A0C[1] * 2 + 3, 1, 1, 14, 1); + REG_WIN1H = 0x0177; + REG_WIN1V = 0x017F; + gTasks[taskId].func = debug_80C43A8; +} + +void debug_80C43A8(u8 taskId) +{ + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + debug_sub_80A433C(gPlayerParty + gUnknown_Debug_2038A0C[1], debug_80C41D4); + DestroyTask(taskId); + } + else if (gMain.newKeys & B_BUTTON) + { + gTasks[taskId].func = debug_80C4F48; + } + else if (gMain.newKeys & START_BUTTON) + { + if (debug_80C4774()) + { + PlaySE(SE_SELECT); + CalculatePlayerPartyCount(); + CalculateEnemyPartyCount(); + gTasks[taskId].func = debug_80C4D14; + } + } + else if (gMain.newKeys & (R_BUTTON | DPAD_RIGHT)) + { + debug_80C38E4(0, 1, 1, 14, 0); + gTasks[taskId].func = debug_80C44EC; + } + else if (gMain.newAndRepeatedKeys & DPAD_UP && gUnknown_Debug_2038A0C[1] != 0) + { + gUnknown_Debug_2038A0C[1]--; + gTasks[taskId].func = debug_80C4348; + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN && gUnknown_Debug_2038A0C[1] < 5 && GetMonData(gPlayerParty + gUnknown_Debug_2038A0C[1], MON_DATA_SPECIES) != SPECIES_NONE) + { + gUnknown_Debug_2038A0C[1]++; + gTasks[taskId].func = debug_80C4348; + } +} + #endif // DEBUG diff --git a/src/pokemon_storage_system_2.c b/src/pokemon_storage_system_2.c index 0905c185b..762850e06 100644 --- a/src/pokemon_storage_system_2.c +++ b/src/pokemon_storage_system_2.c @@ -335,11 +335,11 @@ void debug_sub_80A4300(void) } extern void (*unk_2038794)(void); -extern u32 unk_2038798; +extern struct Pokemon * unk_2038798; -extern void unref_sub_809CB94(); +extern void debug_sub_809CB94(struct Pokemon *); -void debug_sub_80A433C(u32 a, void (*b)(void)) +void debug_sub_80A433C(struct Pokemon * a, void (*b)(void)) { unk_2038794 = b; unk_2038798 = a; @@ -351,7 +351,7 @@ void debug_sub_80A435C(void) switch (gPokemonStorageSystemPtr->unk_0004) { case 0: - unref_sub_809CB94(unk_2038798); + debug_sub_809CB94(unk_2038798); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); gPokemonStorageSystemPtr->unk_0004++; break; -- cgit v1.2.3 From 2a794fec1f975201823dd0d3c5be4553a23d7fed Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 15 Apr 2018 19:02:25 -0400 Subject: through debug_80C4774 --- Makefile | 6 +- asm/watanabe_debug_menu.s | 369 ---------------------------------------- src/debug/watanabe_debug_menu.c | 100 ++++++++++- 3 files changed, 99 insertions(+), 376 deletions(-) diff --git a/Makefile b/Makefile index 4853612bc..b9c827af7 100644 --- a/Makefile +++ b/Makefile @@ -54,9 +54,9 @@ LD_SCRIPT := $(BUILD_DIR)/ld_script.ld %src/libs/agb_flash.o: CC1FLAGS := -O1 -mthumb-interwork %src/libs/agb_flash_1m.o: CC1FLAGS := -O1 -mthumb-interwork %src/libs/agb_flash_mx.o: CC1FLAGS := -O1 -mthumb-interwork -%src/libs/m4a_2.o: CC1 := tools/agbcc/bin/old_agbcc -%src/libs/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc -%src/libs/libisagbprn.o: CC1 := tools/agbcc/bin/old_agbcc +%src/libs/m4a_2.o: CC1 := tools/agbcc/bin/old_agbcc$(EXE) +%src/libs/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc$(EXE) +%src/libs/libisagbprn.o: CC1 := tools/agbcc/bin/old_agbcc$(EXE) %src/libs/libisagbprn.o: CC1FLAGS := -mthumb-interwork diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index b552678bc..8580cc3d1 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,375 +5,6 @@ .text - thumb_func_start debug_80C44EC -debug_80C44EC: - push {r4, lr} - add sp, sp, #0xfffffffc - add r4, r0, #0 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - ldr r0, ._183 @ gUnknown_Debug_2038A0C - ldrb r0, [r0, #0x2] - 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 r1, #0x10 - mov r2, #0x1 - mov r3, #0xe - bl debug_80C38E4 - ldr r1, ._183 + 4 @ 0x4000042 - ldr r2, ._183 + 8 @ 0x79ef - add r0, r2, #0 - strh r0, [r1] - add r1, r1, #0x4 - ldr r2, ._183 + 12 @ 0x17f - add r0, r2, #0 - strh r0, [r1] - ldr r1, ._183 + 16 @ gTasks - lsl r0, r4, #0x2 - add r0, r0, r4 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._183 + 20 @ debug_80C4550 - str r1, [r0] - add sp, sp, #0x4 - pop {r4} - pop {r0} - bx r0 -._184: - .align 2, 0 -._183: - .word gUnknown_Debug_2038A0C - .word 0x4000042 - .word 0x79ef - .word 0x17f - .word gTasks - .word debug_80C4550+1 - - thumb_func_end debug_80C44EC - - thumb_func_start debug_80C4550 -debug_80C4550: - push {r4, r5, lr} - add sp, sp, #0xfffffffc - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - ldr r1, ._187 @ gMain - ldrh r2, [r1, #0x2e] - mov r0, #0x1 - and r0, r0, r2 - add r3, r1, #0 - cmp r0, #0 - beq ._185 @cond_branch - mov r0, #0x5 - bl PlaySE - ldr r0, ._187 + 4 @ gUnknown_Debug_2038A0C - ldrb r1, [r0, #0x2] - mov r0, #0x64 - mul r0, r0, r1 - ldr r1, ._187 + 8 @ gEnemyParty - add r0, r0, r1 - ldr r1, ._187 + 12 @ debug_80C41F4 - bl debug_sub_80A433C - add r0, r4, #0 - bl DestroyTask - b ._209 -._188: - .align 2, 0 -._187: - .word gMain - .word gUnknown_Debug_2038A0C - .word gEnemyParty - .word debug_80C41F4+1 -._185: - mov r0, #0x2 - and r0, r0, r2 - cmp r0, #0 - beq ._189 @cond_branch - ldr r0, ._191 @ gTasks - lsl r1, r4, #0x2 - add r1, r1, r4 - lsl r1, r1, #0x3 - add r1, r1, r0 - ldr r0, ._191 + 4 @ debug_80C4F48 - str r0, [r1] - b ._209 -._192: - .align 2, 0 -._191: - .word gTasks - .word debug_80C4F48+1 -._189: - mov r0, #0x8 - and r0, r0, r2 - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - cmp r1, #0 - beq ._193 @cond_branch - bl debug_80C4774 - lsl r0, r0, #0x18 - cmp r0, #0 - beq ._209 @cond_branch - mov r0, #0x5 - bl PlaySE - bl CalculatePlayerPartyCount - bl CalculateEnemyPartyCount - ldr r0, ._196 @ gTasks - lsl r1, r4, #0x2 - add r1, r1, r4 - lsl r1, r1, #0x3 - add r1, r1, r0 - ldr r0, ._196 + 4 @ debug_80C4D14 - str r0, [r1] - b ._209 -._197: - .align 2, 0 -._196: - .word gTasks - .word debug_80C4D14+1 -._193: - mov r0, #0x88 - lsl r0, r0, #0x2 - and r0, r0, r2 - cmp r0, #0 - beq ._198 @cond_branch - str r1, [sp] - mov r0, #0x0 - mov r1, #0x10 - mov r2, #0x1 - mov r3, #0xe - bl debug_80C38E4 - ldr r0, ._200 @ gTasks - lsl r1, r4, #0x2 - add r1, r1, r4 - lsl r1, r1, #0x3 - add r1, r1, r0 - ldr r0, ._200 + 4 @ debug_80C4348 - str r0, [r1] - b ._209 -._201: - .align 2, 0 -._200: - .word gTasks - .word debug_80C4348+1 -._198: - ldrh r1, [r3, #0x30] - mov r0, #0x40 - and r0, r0, r1 - cmp r0, #0 - beq ._203 @cond_branch - ldr r1, ._205 @ gUnknown_Debug_2038A0C - ldrb r0, [r1, #0x2] - cmp r0, #0 - beq ._203 @cond_branch - sub r0, r0, #0x1 - strb r0, [r1, #0x2] - b ._204 -._206: - .align 2, 0 -._205: - .word gUnknown_Debug_2038A0C -._203: - ldrh r1, [r3, #0x30] - mov r0, #0x80 - and r0, r0, r1 - cmp r0, #0 - beq ._209 @cond_branch - ldr r5, ._210 @ gUnknown_Debug_2038A0C - ldrb r0, [r5, #0x2] - cmp r0, #0x4 - bhi ._209 @cond_branch - add r1, r0, #0 - mov r0, #0x64 - mul r0, r0, r1 - ldr r1, ._210 + 4 @ gEnemyParty - add r0, r0, r1 - mov r1, #0xb - bl GetMonData - cmp r0, #0 - beq ._209 @cond_branch - ldrb r0, [r5, #0x2] - add r0, r0, #0x1 - strb r0, [r5, #0x2] -._204: - ldr r1, ._210 + 8 @ gTasks - lsl r0, r4, #0x2 - add r0, r0, r4 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._210 + 12 @ debug_80C44EC - str r1, [r0] -._209: - add sp, sp, #0x4 - pop {r4, r5} - pop {r0} - bx r0 -._211: - .align 2, 0 -._210: - .word gUnknown_Debug_2038A0C - .word gEnemyParty - .word gTasks - .word debug_80C44EC+1 - - thumb_func_end debug_80C4550 - - thumb_func_start debug_80C4694 -debug_80C4694: - push {r4, r5, lr} - add sp, sp, #0xffffffe4 - ldr r1, ._213 @ gUnknown_Debug_083F81AD - mov r0, sp - mov r2, #0xd - bl memcpy - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0xe - mov r3, #0xf - bl Menu_DrawStdWindowFrame - mov r0, sp - mov r1, #0x2 - mov r2, #0x1 - bl Menu_PrintText - mov r4, #0x0 - add r5, sp, #0x10 -._212: - mov r0, #0x64 - mul r0, r0, r4 - ldr r1, ._213 + 4 @ gPlayerParty - add r0, r0, r1 - mov r1, #0xb - bl GetMonData - add r1, r0, #0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - add r0, r5, #0 - bl debug_80C405C - lsl r2, r4, #0x19 - mov r0, #0xc0 - lsl r0, r0, #0x12 - add r2, r2, r0 - lsr r2, r2, #0x18 - add r0, r5, #0 - mov r1, #0x2 - bl Menu_PrintText - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0x5 - bls ._212 @cond_branch - add sp, sp, #0x1c - pop {r4, r5} - pop {r0} - bx r0 -._214: - .align 2, 0 -._213: - .word gUnknown_Debug_083F81AD - .word gPlayerParty - - thumb_func_end debug_80C4694 - - thumb_func_start debug_80C4704 -debug_80C4704: - push {r4, r5, lr} - add sp, sp, #0xffffffe4 - ldr r1, ._216 @ gUnknown_Debug_083F81BA - mov r0, sp - mov r2, #0xd - bl memcpy - mov r0, #0xf - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0xf - bl Menu_DrawStdWindowFrame - mov r0, sp - mov r1, #0x11 - mov r2, #0x1 - bl Menu_PrintText - mov r4, #0x0 - add r5, sp, #0x10 -._215: - mov r0, #0x64 - mul r0, r0, r4 - ldr r1, ._216 + 4 @ gEnemyParty - add r0, r0, r1 - mov r1, #0xb - bl GetMonData - add r1, r0, #0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - add r0, r5, #0 - bl debug_80C405C - lsl r2, r4, #0x19 - mov r0, #0xc0 - lsl r0, r0, #0x12 - add r2, r2, r0 - lsr r2, r2, #0x18 - add r0, r5, #0 - mov r1, #0x11 - bl Menu_PrintText - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0x5 - bls ._215 @cond_branch - add sp, sp, #0x1c - pop {r4, r5} - pop {r0} - bx r0 -._217: - .align 2, 0 -._216: - .word gUnknown_Debug_083F81BA - .word gEnemyParty - - thumb_func_end debug_80C4704 - - thumb_func_start debug_80C4774 -debug_80C4774: - push {r4, lr} - ldr r0, ._221 @ gUnknown_Debug_2038A0C - ldrb r0, [r0, #0xc] - sub r0, r0, #0x1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov r1, #0x64 - add r4, r0, #0 - mul r4, r4, r1 - ldr r0, ._221 + 4 @ gPlayerParty - add r0, r4, r0 - mov r1, #0xb - bl GetMonData - cmp r0, #0 - beq ._219 @cond_branch - ldr r0, ._221 + 8 @ gEnemyParty - add r0, r4, r0 - mov r1, #0xb - bl GetMonData - cmp r0, #0 - beq ._219 @cond_branch - mov r0, #0x1 - b ._220 -._222: - .align 2, 0 -._221: - .word gUnknown_Debug_2038A0C - .word gPlayerParty - .word gEnemyParty -._219: - mov r0, #0x0 -._220: - pop {r4} - pop {r1} - bx r1 - - thumb_func_end debug_80C4774 - thumb_func_start debug_80C47BC debug_80C47BC: push {r4, r5, r6, r7, lr} diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index 672b28e71..dbb086469 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -35,6 +35,7 @@ void debug_80C42B8(u8 taskId); void debug_80C4348(u8 taskId); void debug_80C43A8(u8 taskId); void debug_80C44EC(u8 taskId); +void debug_80C4550(u8 taskId); void debug_80C4694(void); void debug_80C4704(void); bool8 debug_80C4774(void); @@ -57,6 +58,8 @@ extern const u8 gUnknown_Debug_083F8022[6]; // = _("スタート:"); extern const u8 gUnknown_Debug_083F8028[6]; // = _(":セレクト"); 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 struct SpriteSheet stru_83F8828[2]; extern const struct SpritePalette stru_83F8838[2]; @@ -224,9 +227,9 @@ u16 debug_80C38B4(u8 a0, u16 a1) void debug_80C38E4(u8 a0, u8 a1, u8 a2, u8 a3, u8 a4) { // u8 sp00[] = _("▶"); - u8 sp00[sizeof(gUnknown_Debug_083F7FD4)]; + u8 sp00[ARRAY_COUNT(gUnknown_Debug_083F7FD4)]; - memcpy(sp00, gUnknown_Debug_083F7FD4, ARRAY_COUNT(gUnknown_Debug_083F7FD4)); + memcpy(sp00, gUnknown_Debug_083F7FD4, sizeof(gUnknown_Debug_083F7FD4)); Menu_BlankWindowRect(a1, a2, a1, a3); if (a4) Menu_PrintText(sp00, a1, a0); @@ -922,8 +925,8 @@ void debug_80C4214(UNUSED u8 a0) void debug_80C42B8(u8 taskId) { - u8 sp00[sizeof(gUnknown_Debug_083F8194)]; - u8 sp0c[sizeof(gUnknown_Debug_083F81A0)]; + u8 sp00[ARRAY_COUNT(gUnknown_Debug_083F8194)]; + u8 sp0c[ARRAY_COUNT(gUnknown_Debug_083F81A0)]; memcpy(sp00, gUnknown_Debug_083F8194, sizeof(gUnknown_Debug_083F8194)); memcpy(sp0c, gUnknown_Debug_083F81A0, sizeof(gUnknown_Debug_083F81A0)); @@ -991,4 +994,93 @@ void debug_80C43A8(u8 taskId) } } +void debug_80C44EC(u8 taskId) +{ + debug_80C38E4(gUnknown_Debug_2038A0C[2] * 2 + 3, 16, 1, 14, 1); + REG_WIN1H = 0x79EF; + REG_WIN1V = 0x017F; + gTasks[taskId].func = debug_80C4550; +} + +void debug_80C4550(u8 taskId) +{ + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + debug_sub_80A433C(gEnemyParty + gUnknown_Debug_2038A0C[2], debug_80C41F4); + DestroyTask(taskId); + } + else if (gMain.newKeys & B_BUTTON) + { + gTasks[taskId].func = debug_80C4F48; + } + else if (gMain.newKeys & START_BUTTON) + { + if (debug_80C4774()) + { + PlaySE(SE_SELECT); + CalculatePlayerPartyCount(); + CalculateEnemyPartyCount(); + gTasks[taskId].func = debug_80C4D14; + } + } + else if (gMain.newKeys & (L_BUTTON | DPAD_LEFT)) + { + debug_80C38E4(0, 16, 1, 14, 0); + gTasks[taskId].func = debug_80C4348; + } + else if (gMain.newAndRepeatedKeys & DPAD_UP && gUnknown_Debug_2038A0C[2] != 0) + { + gUnknown_Debug_2038A0C[2]--; + gTasks[taskId].func = debug_80C44EC; + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN && gUnknown_Debug_2038A0C[2] < 5 && GetMonData(gEnemyParty + gUnknown_Debug_2038A0C[2], MON_DATA_SPECIES) != SPECIES_NONE) + { + gUnknown_Debug_2038A0C[2]++; + gTasks[taskId].func = debug_80C44EC; + } +} + +void debug_80C4694(void) +{ + u8 i; + // u8 sp00[] = _("{COLOR RED}じぶんの ポケモン"); + u8 sp00[ARRAY_COUNT(gUnknown_Debug_083F81AD)]; + u8 sp10[POKEMON_NAME_LENGTH + 1]; + memcpy(sp00, gUnknown_Debug_083F81AD, sizeof(gUnknown_Debug_083F81AD)); + + Menu_DrawStdWindowFrame(0, 0, 14, 15); + Menu_PrintText(sp00, 2, 1); + for (i = 0; i < PARTY_SIZE; i++) + { + debug_80C405C(sp10, GetMonData(gPlayerParty + i, MON_DATA_SPECIES)); + Menu_PrintText(sp10, 2, 2 * i + 3); + } +} + +void debug_80C4704(void) +{ + u8 i; + // u8 sp00[] = _("{COLOR RED}あいての ポケモン"); + u8 sp00[ARRAY_COUNT(gUnknown_Debug_083F81BA)]; + u8 sp10[POKEMON_NAME_LENGTH + 1]; + memcpy(sp00, gUnknown_Debug_083F81BA, sizeof(gUnknown_Debug_083F81BA)); + + Menu_DrawStdWindowFrame(15, 0, 29, 15); + Menu_PrintText(sp00, 17, 1); + for (i = 0; i < PARTY_SIZE; i++) + { + debug_80C405C(sp10, GetMonData(gEnemyParty + i, MON_DATA_SPECIES)); + Menu_PrintText(sp10, 17, 2 * i + 3); + } +} + +bool8 debug_80C4774(void) +{ + u8 i = gUnknown_Debug_2038A0C[12] - 1; + if (GetMonData(gPlayerParty + i, MON_DATA_SPECIES) != SPECIES_NONE && GetMonData(gEnemyParty + i, MON_DATA_SPECIES) != SPECIES_NONE) + return TRUE; + return FALSE; +} + #endif // DEBUG -- cgit v1.2.3 From cd797cb4aad9960745be1e04625c5247d2b350a8 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 15 Apr 2018 20:01:17 -0400 Subject: through debug_80C48A0 --- asm/watanabe_debug_menu.s | 151 ---------------------------------------- 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 -- cgit v1.2.3 From dc8dba69491585097dc41ad33ff8006820ec8fd4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 15 Apr 2018 21:19:54 -0400 Subject: through debug_80C4AC4 (temp ewram struct) --- asm/watanabe_debug_menu.s | 431 ---------------------------------------- data/debug_menu_watanabe.s | 21 +- include/battle.h | 4 + src/debug/watanabe_debug_menu.c | 138 ++++++++++++- 4 files changed, 155 insertions(+), 439 deletions(-) diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index f02f6f702..7260c0bc4 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,437 +5,6 @@ .text - thumb_func_start debug_80C4900 -debug_80C4900: - push {r4, r5, lr} - add sp, sp, #0xfffffffc - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - ldr r1, ._230 @ gMain - ldrh r2, [r1, #0x2e] - mov r0, #0x2 - and r0, r0, r2 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - add r3, r1, #0 - cmp r4, #0 - beq ._228 @cond_branch - mov r0, #0x5 - bl PlaySE - mov r0, #0x1 - neg r0, r0 - mov r4, #0x0 - str r4, [sp] - mov r1, #0x0 - mov r2, #0x0 - mov r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, ._230 + 4 @ debug_80C370C - bl SetMainCallback2 - bl LoadPlayerParty - ldr r1, ._230 + 8 @ gSaveBlock2 - ldr r0, ._230 + 12 @ gUnknown_Debug_2038A0C - ldrb r0, [r0, #0xd] - strb r0, [r1, #0x8] - ldr r0, ._230 + 16 @ gBattleTypeFlags - mov r1, #0x0 - strh r4, [r0] - ldr r0, ._230 + 20 @ gUnknown_02023A14_50 - strb r1, [r0] - ldr r1, ._230 + 24 @ gTasks - lsl r0, r5, #0x2 - add r0, r0, r5 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._230 + 28 @ debug_80C373C - b ._229 -._231: - .align 2, 0 -._230: - .word gMain - .word debug_80C370C+1 - .word gSaveBlock2 - .word gUnknown_Debug_2038A0C - .word gBattleTypeFlags - .word gUnknown_02023A14_50 - .word gTasks - .word debug_80C373C+1 -._228: - mov r0, #0x8 - and r0, r0, r2 - cmp r0, #0 - bne ._232 @cond_branch - mov r0, #0x1 - and r0, r0, r2 - cmp r0, #0 - beq ._233 @cond_branch -._232: - mov r0, #0x5 - bl PlaySE - ldr r1, ._236 @ gBattleTypeFlags - ldr r3, ._236 + 4 @ gUnknown_Debug_083F8068 - ldr r2, ._236 + 8 @ gUnknown_Debug_2038A0C - ldrb r0, [r2, #0x3] - lsl r0, r0, #0x3 - add r0, r0, r3 - ldrb r0, [r0, #0x4] - strh r0, [r1] - ldr r1, ._236 + 12 @ gUnknown_02023A14_50 - mov r0, #0x8 - strb r0, [r1] - ldrb r0, [r2, #0x3] - lsl r0, r0, #0x3 - add r0, r0, r3 - ldrb r0, [r0, #0x5] - strb r0, [r2, #0xc] - ldrb r0, [r2, #0x3] - sub r0, r0, #0x1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x1 - bhi ._234 @cond_branch - str r4, [sp] - mov r0, #0x0 - mov r1, #0x1 - mov r2, #0x1 - mov r3, #0xe - bl debug_80C38E4 - ldr r0, ._236 + 16 @ gTasks - lsl r1, r5, #0x2 - add r1, r1, r5 - lsl r1, r1, #0x3 - add r1, r1, r0 - ldr r0, ._236 + 20 @ debug_80C4A60 - str r0, [r1] - b ._247 -._237: - .align 2, 0 -._236: - .word gBattleTypeFlags - .word gUnknown_Debug_083F8068 - .word gUnknown_Debug_2038A0C - .word gUnknown_02023A14_50 - .word gTasks - .word debug_80C4A60+1 -._234: - ldr r0, ._239 @ gTasks - lsl r1, r5, #0x2 - add r1, r1, r5 - lsl r1, r1, #0x3 - add r1, r1, r0 - ldr r0, ._239 + 4 @ debug_80C4F48 - str r0, [r1] - b ._247 -._240: - .align 2, 0 -._239: - .word gTasks - .word debug_80C4F48+1 -._233: - ldrh r1, [r3, #0x30] - mov r0, #0x40 - and r0, r0, r1 - cmp r0, #0 - beq ._242 @cond_branch - ldr r1, ._244 @ gUnknown_Debug_2038A0C - ldrb r0, [r1, #0x3] - cmp r0, #0 - beq ._242 @cond_branch - sub r0, r0, #0x1 - b ._243 -._245: - .align 2, 0 -._244: - .word gUnknown_Debug_2038A0C -._242: - ldrh r1, [r3, #0x30] - mov r0, #0x80 - and r0, r0, r1 - cmp r0, #0 - beq ._247 @cond_branch - ldr r1, ._248 @ gUnknown_Debug_2038A0C - ldrb r0, [r1, #0x3] - cmp r0, #0x1 - bhi ._247 @cond_branch - add r0, r0, #0x1 -._243: - strb r0, [r1, #0x3] - ldr r1, ._248 + 4 @ gTasks - lsl r0, r5, #0x2 - add r0, r0, r5 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._248 + 8 @ debug_80C48A0 -._229: - str r1, [r0] -._247: - add sp, sp, #0x4 - pop {r4, r5} - pop {r0} - bx r0 -._249: - .align 2, 0 -._248: - .word gUnknown_Debug_2038A0C - .word gTasks - .word debug_80C48A0+1 - - thumb_func_end debug_80C4900 - - thumb_func_start debug_80C4A60 -debug_80C4A60: - push {r4, lr} - add sp, sp, #0xfffffffc - add r4, r0, #0 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - ldr r0, ._250 @ gUnknown_Debug_2038A0C - ldrb r0, [r0, #0x5] - 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 r1, #0x10 - mov r2, #0x1 - mov r3, #0xe - bl debug_80C38E4 - ldr r1, ._250 + 4 @ 0x4000042 - ldr r2, ._250 + 8 @ 0x79ef - add r0, r2, #0 - strh r0, [r1] - add r1, r1, #0x4 - ldr r2, ._250 + 12 @ 0x17f - add r0, r2, #0 - strh r0, [r1] - ldr r1, ._250 + 16 @ gTasks - lsl r0, r4, #0x2 - add r0, r0, r4 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._250 + 20 @ debug_80C4AC4 - str r1, [r0] - add sp, sp, #0x4 - pop {r4} - pop {r0} - bx r0 -._251: - .align 2, 0 -._250: - .word gUnknown_Debug_2038A0C - .word 0x4000042 - .word 0x79ef - .word 0x17f - .word gTasks - .word debug_80C4AC4+1 - - thumb_func_end debug_80C4A60 - - thumb_func_start debug_80C4AC4 -debug_80C4AC4: - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - add sp, sp, #0xfffffffc - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - ldr r7, ._255 @ gUnknown_Debug_2038A0C - ldrb r0, [r7, #0x4] - mov ip, r0 - ldrb r5, [r7, #0x5] - mov r1, ip - add r0, r1, r5 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - ldr r2, ._255 + 4 @ gMain - mov r8, r2 - ldrh r2, [r2, #0x2e] - mov r3, #0x1 - and r3, r3, r2 - add r4, r7, #0 - cmp r3, #0 - beq ._252 @cond_branch - ldr r0, ._255 + 8 @ gUnknown_Debug_083F80D8 - lsl r1, r1, #0x3 - add r0, r0, #0x4 - add r1, r1, r0 - ldr r1, [r1] - ldr r3, ._255 + 12 @ byte_3005E30 - ldr r2, [r3] - add r0, r2, #0 - and r0, r0, r1 - cmp r0, #0 - beq ._253 @cond_branch - ldr r0, ._255 + 16 @ 0xffff - eor r1, r1, r0 - and r2, r2, r1 - b ._254 -._256: - .align 2, 0 -._255: - .word gUnknown_Debug_2038A0C - .word gMain - .word gUnknown_Debug_083F80D8 - .word byte_3005E30 - .word 0xffff -._253: - orr r2, r2, r1 -._254: - str r2, [r3] - ldrb r0, [r4, #0x4] - bl debug_80C4C44 - ldr r1, ._258 @ gTasks - lsl r0, r6, #0x2 - add r0, r0, r6 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._258 + 4 @ debug_80C4A60 - str r1, [r0] - b ._274 -._259: - .align 2, 0 -._258: - .word gTasks - .word debug_80C4A60+1 -._252: - mov r0, #0x2 - and r0, r0, r2 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - cmp r4, #0 - beq ._260 @cond_branch - str r3, [sp] - mov r0, #0x0 - mov r1, #0x10 - mov r2, #0x1 - mov r3, #0xe - bl debug_80C38E4 - ldr r0, ._262 @ gTasks - lsl r1, r6, #0x2 - add r1, r1, r6 - lsl r1, r1, #0x3 - add r1, r1, r0 - ldr r0, ._262 + 4 @ debug_80C48A0 - b ._261 -._263: - .align 2, 0 -._262: - .word gTasks - .word debug_80C48A0+1 -._260: - mov r0, #0x8 - and r0, r0, r2 - cmp r0, #0 - beq ._264 @cond_branch - mov r0, #0x5 - bl PlaySE - ldr r1, ._266 @ gTrainerBattleOpponent - mov r2, #0x80 - lsl r2, r2, #0x3 - add r0, r2, #0 - strh r0, [r1] - ldr r1, ._266 + 4 @ 0x2017000 - ldrb r2, [r1, #0x1] - mov r0, #0x11 - neg r0, r0 - and r0, r0, r2 - strb r0, [r1, #0x1] - mov r0, #0xac - strb r0, [r1, #0x2] - mov r0, #0xff - strb r0, [r1, #0x3] - strb r4, [r1, #0x9] - strb r4, [r1, #0xa] - strb r4, [r1, #0xb] - strb r4, [r1, #0xc] - ldr r1, ._266 + 8 @ gTasks - lsl r0, r6, #0x2 - add r0, r0, r6 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._266 + 12 @ debug_80C4F48 - str r1, [r0] - b ._274 -._267: - .align 2, 0 -._266: - .word gTrainerBattleOpponent - .word 0x2017000 - .word gTasks - .word debug_80C4F48+1 -._264: - mov r0, r8 - ldrh r1, [r0, #0x30] - mov r0, #0x40 - and r0, r0, r1 - cmp r0, #0 - beq ._268 @cond_branch - lsl r0, r5, #0x18 - cmp r0, #0 - beq ._269 @cond_branch - sub r0, r5, #1 - strb r0, [r7, #0x5] - b ._277 -._269: - mov r1, ip - lsl r0, r1, #0x18 - cmp r0, #0 - beq ._277 @cond_branch - mov r0, ip - sub r0, r0, #0x1 - b ._272 -._268: - mov r0, #0x80 - and r0, r0, r1 - cmp r0, #0 - beq ._274 @cond_branch - lsl r0, r5, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x8 - bhi ._274 @cond_branch - cmp r0, #0x4 - bhi ._275 @cond_branch - add r0, r5, #1 - strb r0, [r7, #0x5] - b ._277 -._275: - mov r2, ip - lsl r0, r2, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x3 - bhi ._277 @cond_branch - mov r0, ip - add r0, r0, #0x1 -._272: - strb r0, [r7, #0x4] - ldrb r0, [r7, #0x4] - bl debug_80C4C44 -._277: - ldr r0, ._278 @ gTasks - lsl r1, r6, #0x2 - add r1, r1, r6 - lsl r1, r1, #0x3 - add r1, r1, r0 - ldr r0, ._278 + 4 @ debug_80C4A60 -._261: - str r0, [r1] -._274: - add sp, sp, #0x4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._279: - .align 2, 0 -._278: - .word gTasks - .word debug_80C4A60+1 - - thumb_func_end debug_80C4AC4 - thumb_func_start debug_80C4C44 debug_80C4C44: push {r4, r5, r6, r7, lr} diff --git a/data/debug_menu_watanabe.s b/data/debug_menu_watanabe.s index 8717196ef..5b99533da 100644 --- a/data/debug_menu_watanabe.s +++ b/data/debug_menu_watanabe.s @@ -56,12 +56,23 @@ gUnknown_Debug_083F8048:: @ 0x83F8048 gUnknown_Debug_083F8058:: @ 0x83F8058 .string "{COLOR BLUE}2VS2つうしんたいせん$" + .align 2 gUnknown_Debug_083F8068:: @ 0x83F8068 - .4byte gUnknown_Debug_083F802E, 0x100 - .4byte gUnknown_Debug_083F8036, 0x108 - .4byte gUnknown_Debug_083F803F, 0x209 - .4byte gUnknown_Debug_083F8048, 0x10A - .4byte gUnknown_Debug_083F8058, 0x20B + .4byte gUnknown_Debug_083F802E + .byte 0x00, 0x01 + .align 2 + .4byte gUnknown_Debug_083F8036 + .byte 0x08, 0x01 + .align 2 + .4byte gUnknown_Debug_083F803F + .byte 0x09, 0x02 + .align 2 + .4byte gUnknown_Debug_083F8048 + .byte 0x0A, 0x01 + .align 2 + .4byte gUnknown_Debug_083F8058 + .byte 0x0B, 0x02 + .align 2 gUnknown_Debug_083F8090:: @ 0x83F8090 .string "きほんタイプ$" diff --git a/include/battle.h b/include/battle.h index 02e02ca83..e63560421 100644 --- a/include/battle.h +++ b/include/battle.h @@ -721,6 +721,10 @@ void MarkBufferBankForExecution(u8 bank); extern u8 gBattleTextBuff1[]; +extern u16 gBattleTypeFlags; +extern u8 gUnknown_02023A14_50; +extern u16 gTrainerBattleOpponent; + // src/battle_bg.o void sub_800D6D4(); void ApplyPlayerChosenFrameToBattleMenu(); diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index 112fd7e13..dcb74b870 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -1,5 +1,6 @@ #if DEBUG #include "global.h" +#include "ewram.h" #include "gba/flash_internal.h" #include "constants/species.h" #include "constants/songs.h" @@ -20,15 +21,22 @@ #include "pokedex.h" #include "load_save.h" #include "pokemon_storage_system.h" +#include "battle.h" EWRAM_DATA u8 gUnknown_Debug_20389EC[0x20] = { 0 }; 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 { +struct WatanabeDebugMenuItem1 { const u8 * text; - u32 value; + u8 battleTypeFlags; + u8 unk5; +}; + +struct WatanabeDebugMenuItem2 { + const u8 * text; + u32 mask; }; u32 byte_3005E30; @@ -47,12 +55,15 @@ bool8 debug_80C4774(void); void debug_80C47BC(u8 taskId); void debug_80C48A0(u8 taskId); void debug_80C4900(u8 taskId); +void debug_80C4A60(u8 taskId); +void debug_80C4AC4(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 struct WatanabeDebugMenuItem1 gUnknown_Debug_083F8068[5]; +extern const struct WatanabeDebugMenuItem2 gUnknown_Debug_083F80D8[10]; extern const u8 gUnknown_Debug_083F7FD4[2]; // = _("▶"); extern const u8 gUnknown_Debug_083F7FD6[4]; // = {0x25, 0x20, 0x01, 0x08}; @@ -1141,4 +1152,125 @@ void debug_80C48A0(u8 taskId) gTasks[taskId].func = debug_80C4900; } +void debug_80C4900(u8 taskId) +{ + if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + SetMainCallback2(debug_80C370C); + LoadPlayerParty(); + gSaveBlock2.playerGender = gUnknown_Debug_2038A0C[13]; + gBattleTypeFlags = 0; + gUnknown_02023A14_50 = 0; + gTasks[taskId].func = debug_80C373C; + } + else if (gMain.newKeys & START_BUTTON || gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + gBattleTypeFlags = gUnknown_Debug_083F8068[gUnknown_Debug_2038A0C[3]].battleTypeFlags; + gUnknown_02023A14_50 = 8; + gUnknown_Debug_2038A0C[12] = gUnknown_Debug_083F8068[gUnknown_Debug_2038A0C[3]].unk5; + if (gUnknown_Debug_2038A0C[3] == 1 || gUnknown_Debug_2038A0C[3] == 2) + { + debug_80C38E4(0, 1, 1, 14, 0); + gTasks[taskId].func = debug_80C4A60; + } + else + { + gTasks[taskId].func = debug_80C4F48; + } + } + else if (gMain.newAndRepeatedKeys & DPAD_UP && gUnknown_Debug_2038A0C[3] > 0) + { + gUnknown_Debug_2038A0C[3]--; + gTasks[taskId].func = debug_80C48A0; + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN && gUnknown_Debug_2038A0C[3] < 2) + { + gUnknown_Debug_2038A0C[3]++; + gTasks[taskId].func = debug_80C48A0; + } +} + +void debug_80C4A60(u8 taskId) +{ + debug_80C38E4(gUnknown_Debug_2038A0C[5] * 2 + 3, 16, 1, 14, 1); + REG_WIN1H = 0x79EF; + REG_WIN1V = 0x017F; + gTasks[taskId].func = debug_80C4AC4; +} + +struct WatanabeEwram17000 { + u8 fill0; + u8 unk1_0:4; + u8 unk1_4:1; + u8 unk1_5:3; + u8 unk2; + u8 unk3; + u8 fill4[5]; + u8 unk9; + u8 unkA; + u8 unkB; + u8 unkC; +}; + +#define eWatanabe17000 (*(struct WatanabeEwram17000 *)(gSharedMem + 0x17000)) + +void debug_80C4AC4(u8 taskId) +{ + u8 r1 = gUnknown_Debug_2038A0C[4] + gUnknown_Debug_2038A0C[5]; + + if (gMain.newKeys & A_BUTTON) + { + u32 mask = gUnknown_Debug_083F80D8[r1].mask; + if (byte_3005E30 & mask) + byte_3005E30 &= (mask ^ 0xFFFF); + else + byte_3005E30 |= mask; + debug_80C4C44(gUnknown_Debug_2038A0C[4]); + gTasks[taskId].func = debug_80C4A60; + } + else if (gMain.newKeys & B_BUTTON) + { + debug_80C38E4(0, 16, 1, 14, 0); + gTasks[taskId].func = debug_80C48A0; + } + else if (gMain.newKeys & START_BUTTON) + { + PlaySE(SE_SELECT); + gTrainerBattleOpponent = 0x400; + eWatanabe17000.unk1_4 = 0; + eWatanabe17000.unk2 = 0xAC; + eWatanabe17000.unk3 = 0xFF; + eWatanabe17000.unk9 = 0; + eWatanabe17000.unkA = 0; + eWatanabe17000.unkB = 0; + eWatanabe17000.unkC = 0; + gTasks[taskId].func = debug_80C4F48; + } + else if (gMain.newAndRepeatedKeys & DPAD_UP) + { + if (gUnknown_Debug_2038A0C[5] > 0) + gUnknown_Debug_2038A0C[5]--; + else if (gUnknown_Debug_2038A0C[4] > 0) + { + gUnknown_Debug_2038A0C[4]--; + debug_80C4C44(gUnknown_Debug_2038A0C[4]); + } + gTasks[taskId].func = debug_80C4A60; + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN && gUnknown_Debug_2038A0C[5] < 9) + { + if (gUnknown_Debug_2038A0C[5] < 5) + gUnknown_Debug_2038A0C[5]++; + else if (gUnknown_Debug_2038A0C[4] < 4) + { + gUnknown_Debug_2038A0C[4]++; + debug_80C4C44(gUnknown_Debug_2038A0C[4]); + } + gTasks[taskId].func = debug_80C4A60; + } +} + #endif // DEBUG -- cgit v1.2.3 From d86e8008b34c9fffad032cb3b212399f79bfbcd3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 16 Apr 2018 23:20:01 -0400 Subject: through debug_80C4F48 --- asm/watanabe_debug_menu.s | 513 ---------------------------------------- data/debug_menu_watanabe.s | 39 --- include/battle.h | 1 + ld_script.txt | 1 + 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 -- cgit v1.2.3 From 670a3e6b2bccb4b2def62c848e3925ae1086bf58 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 16 Apr 2018 23:42:34 -0400 Subject: through debug_80C5208 --- asm/watanabe_debug_menu.s | 336 ---------------------------------------- include/battle_bg.h | 6 + src/debug/watanabe_debug_menu.c | 109 ++++++++++++- 3 files changed, 110 insertions(+), 341 deletions(-) create mode 100644 include/battle_bg.h diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index bcc85ff17..83e4c5f10 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,342 +5,6 @@ .text - thumb_func_start debug_80C5038 -debug_80C5038: - push {r4, lr} - add sp, sp, #0xfffffffc - add r4, r0, #0 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - ldr r0, ._322 @ gUnknown_Debug_2038A0C - ldrb r0, [r0, #0x8] - 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, ._322 + 4 @ 0x4000042 - ldr r2, ._322 + 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, ._322 + 12 @ gTasks - lsl r0, r4, #0x2 - add r0, r0, r4 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._322 + 16 @ debug_80C5098 - str r1, [r0] - add sp, sp, #0x4 - pop {r4} - pop {r0} - bx r0 -._323: - .align 2, 0 -._322: - .word gUnknown_Debug_2038A0C - .word 0x4000042 - .word 0x177 - .word gTasks - .word debug_80C5098+1 - - thumb_func_end debug_80C5038 - - thumb_func_start debug_80C5098 -debug_80C5098: - push {r4, lr} - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - ldr r1, ._326 @ gMain - ldrh r2, [r1, #0x2e] - mov r0, #0x2 - and r0, r0, r2 - add r3, r1, #0 - cmp r0, #0 - beq ._324 @cond_branch - ldr r0, ._326 + 4 @ gTasks - lsl r1, r4, #0x2 - add r1, r1, r4 - lsl r1, r1, #0x3 - add r1, r1, r0 - ldr r0, ._326 + 8 @ debug_80C47BC - str r0, [r1] - b ._339 -._327: - .align 2, 0 -._326: - .word gMain - .word gTasks - .word debug_80C47BC+1 -._324: - mov r0, #0x8 - and r0, r0, r2 - cmp r0, #0 - bne ._328 @cond_branch - mov r0, #0x1 - and r0, r0, r2 - cmp r0, #0 - beq ._329 @cond_branch -._328: - mov r0, #0x5 - bl PlaySE - ldr r1, ._331 @ gSaveBlock2 - ldr r0, ._331 + 4 @ gUnknown_Debug_2038A0C - ldrb r0, [r0, #0x8] - strb r0, [r1, #0x8] - ldr r1, ._331 + 8 @ gTasks - lsl r0, r4, #0x2 - add r0, r0, r4 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._331 + 12 @ debug_80C42B8 - b ._330 -._332: - .align 2, 0 -._331: - .word gSaveBlock2 - .word gUnknown_Debug_2038A0C - .word gTasks - .word debug_80C42B8+1 -._329: - ldrh r1, [r3, #0x30] - mov r0, #0x40 - and r0, r0, r1 - cmp r0, #0 - beq ._334 @cond_branch - ldr r1, ._336 @ gUnknown_Debug_2038A0C - ldrb r0, [r1, #0x8] - cmp r0, #0 - beq ._334 @cond_branch - sub r0, r0, #0x1 - b ._335 -._337: - .align 2, 0 -._336: - .word gUnknown_Debug_2038A0C -._334: - ldrh r1, [r3, #0x30] - mov r0, #0x80 - and r0, r0, r1 - cmp r0, #0 - beq ._339 @cond_branch - ldr r1, ._340 @ gUnknown_Debug_2038A0C - ldrb r0, [r1, #0x8] - cmp r0, #0 - bne ._339 @cond_branch - add r0, r0, #0x1 -._335: - strb r0, [r1, #0x8] - ldr r1, ._340 + 4 @ gTasks - lsl r0, r4, #0x2 - add r0, r0, r4 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._340 + 8 @ debug_80C5038 -._330: - str r1, [r0] -._339: - pop {r4} - pop {r0} - bx r0 -._341: - .align 2, 0 -._340: - .word gUnknown_Debug_2038A0C - .word gTasks - .word debug_80C5038+1 - - thumb_func_end debug_80C5098 - - thumb_func_start debug_80C5158 -debug_80C5158: - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - ldr r2, ._342 @ gTasks - lsl r1, r0, #0x2 - add r1, r1, r0 - lsl r1, r1, #0x3 - add r1, r1, r2 - ldr r0, ._342 + 4 @ debug_80C5174 - str r0, [r1] - bx lr -._343: - .align 2, 0 -._342: - .word gTasks - .word debug_80C5174+1 - - thumb_func_end debug_80C5158 - - thumb_func_start debug_80C5174 -debug_80C5174: - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - ldr r2, ._344 @ gTasks - lsl r1, r0, #0x2 - add r1, r1, r0 - lsl r1, r1, #0x3 - add r1, r1, r2 - ldr r0, ._344 + 4 @ debug_80C5190 - str r0, [r1] - bx lr -._345: - .align 2, 0 -._344: - .word gTasks - .word debug_80C5190+1 - - thumb_func_end debug_80C5174 - - thumb_func_start debug_80C5190 -debug_80C5190: - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - ldr r2, ._346 @ gTasks - lsl r1, r0, #0x2 - add r1, r1, r0 - lsl r1, r1, #0x3 - add r1, r1, r2 - ldr r0, ._346 + 4 @ debug_80C51AC - str r0, [r1] - bx lr -._347: - .align 2, 0 -._346: - .word gTasks - .word debug_80C51AC+1 - - thumb_func_end debug_80C5190 - - thumb_func_start debug_80C51AC -debug_80C51AC: - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - ldr r2, ._348 @ gTasks - lsl r1, r0, #0x2 - add r1, r1, r0 - lsl r1, r1, #0x3 - add r1, r1, r2 - ldr r0, ._348 + 4 @ debug_80C51C8 - str r0, [r1] - bx lr -._349: - .align 2, 0 -._348: - .word gTasks - .word debug_80C51C8+1 - - thumb_func_end debug_80C51AC - - thumb_func_start debug_80C51C8 -debug_80C51C8: - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - ldr r2, ._350 @ gTasks - lsl r1, r0, #0x2 - add r1, r1, r0 - lsl r1, r1, #0x3 - add r1, r1, r2 - ldr r0, ._350 + 4 @ debug_80C51E4 - str r0, [r1] - bx lr -._351: - .align 2, 0 -._350: - .word gTasks - .word debug_80C51E4+1 - - thumb_func_end debug_80C51C8 - - thumb_func_start debug_80C51E4 -debug_80C51E4: - push {lr} - bl sub_80408BC - ldr r0, ._352 @ gMain - ldr r1, ._352 + 4 @ debug_80C41A8 - str r1, [r0, #0x8] - ldr r0, ._352 + 8 @ unref_sub_800D684 - bl SetMainCallback2 - pop {r0} - bx r0 -._353: - .align 2, 0 -._352: - .word gMain - .word debug_80C41A8+1 - .word unref_sub_800D684+1 - - thumb_func_end debug_80C51E4 - - thumb_func_start debug_80C5208 -debug_80C5208: - push {r4, r5, r6, lr} - ldr r1, ._355 @ gUnknown_Debug_2038A1C - ldr r0, ._355 + 4 @ 0x2018000 - str r0, [r1] - mov r3, #0x0 - add r6, r1, #0 - ldr r4, ._355 + 8 @ gSaveBlock2 - add r5, r6, #0 - mov r2, #0x0 -._354: - ldr r0, [r5] - lsl r1, r3, #0x2 - add r0, r0, #0x64 - add r0, r0, r1 - str r2, [r0] - add r0, r3, #1 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 - cmp r3, #0x3f - bls ._354 @cond_branch - ldr r2, [r6] - mov r0, #0xfc - str r0, [r2, #0x64] - ldrb r1, [r4, #0xa] - ldrb r0, [r4, #0xb] - lsl r0, r0, #0x8 - orr r1, r1, r0 - ldrb r0, [r4, #0xc] - lsl r0, r0, #0x10 - orr r1, r1, r0 - ldrb r0, [r4, #0xd] - lsl r0, r0, #0x18 - orr r1, r1, r0 - str r1, [r2, #0x70] - bl Random - add r4, r0, #0 - bl Random - ldr r1, [r6] - lsl r4, r4, #0x10 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - orr r4, r4, r0 - str r4, [r1, #0x74] - mov r0, #0x1 - str r0, [r1, #0x68] - str r0, [r1, #0x6c] - bl debug_80C5C94 - pop {r4, r5, r6} - pop {r0} - bx r0 -._356: - .align 2, 0 -._355: - .word gUnknown_Debug_2038A1C - .word 0x2018000 - .word gSaveBlock2 - - thumb_func_end debug_80C5208 - thumb_func_start debug_80C527C debug_80C527C: push {r4, r5, r6, r7, lr} diff --git a/include/battle_bg.h b/include/battle_bg.h new file mode 100644 index 000000000..88f040cb0 --- /dev/null +++ b/include/battle_bg.h @@ -0,0 +1,6 @@ +#ifndef GUARD_BATTLE_BG_H +#define GUARD_BATTLE_BG_H + +void unref_sub_800D684(void); + +#endif //GUARD_BATTLE_BG_H diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index a4002e325..b435c4558 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -1,6 +1,7 @@ #if DEBUG #include "global.h" #include "ewram.h" +#include "random.h" #include "gba/flash_internal.h" #include "constants/species.h" #include "constants/songs.h" @@ -22,11 +23,7 @@ #include "load_save.h" #include "pokemon_storage_system.h" #include "battle.h" - -EWRAM_DATA u8 gUnknown_Debug_20389EC[0x20] = { 0 }; -EWRAM_DATA u8 gUnknown_Debug_2038A0C[0x10] = { 0 }; -EWRAM_DATA u8 gUnknown_Debug_2038A1C[4] = { 0 }; -EWRAM_DATA u8 gUnknown_Debug_2038A20[4] = { 0 }; +#include "battle_bg.h" struct WatanabeDebugMenuItem { const u8 * text; @@ -37,6 +34,18 @@ struct WatanabeDebugMenuItem { } data; }; +struct WatanabeEwram18000 { + u8 filler_00[0x64]; + u32 unk64[0x40]; +}; + +#define eWatanabe18000 (*(struct WatanabeEwram18000 *)(gSharedMem + 0x18000)) + +EWRAM_DATA u8 gUnknown_Debug_20389EC[0x20] = { 0 }; +EWRAM_DATA u8 gUnknown_Debug_2038A0C[0x10] = { 0 }; +EWRAM_DATA struct WatanabeEwram18000 * gUnknown_Debug_2038A1C = NULL; +EWRAM_DATA u8 gUnknown_Debug_2038A20[4] = { 0 }; + u32 byte_3005E30; void debug_80C3A50(u8 taskId); @@ -62,7 +71,14 @@ void debug_80C4E18(u8 taskId); void debug_80C4F00(u8); void debug_80C4F48(u8 taskId); void debug_80C5038(u8 taskId); +void debug_80C5098(u8 taskId); void debug_80C5158(u8 taskId); +void debug_80C5174(u8 taskId); +void debug_80C5190(u8 taskId); +void debug_80C51AC(u8 taskId); +void debug_80C51C8(u8 taskId); +void debug_80C51E4(u8 taskId); +void debug_80C5C94(void); void debug_80C68CC(u16, u8, u8, u8); void debug_80C7584(struct Sprite *); @@ -1479,6 +1495,89 @@ void debug_80C4F48(u8 taskId) gTasks[taskId].func = debug_80C5038; } +void debug_80C5038(u8 taskId) +{ + debug_80C38E4(gUnknown_Debug_2038A0C[8] * 2 + 3, 1, 1, 14, 1); + REG_WIN1H = 0x0177; + REG_WIN1V = 0x017F; + gTasks[taskId].func = debug_80C5098; +} + +void debug_80C5098(u8 taskId) +{ + if (gMain.newKeys & B_BUTTON) + { + gTasks[taskId].func = debug_80C47BC; + } + else if (gMain.newKeys & START_BUTTON || gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + gSaveBlock2.playerGender = gUnknown_Debug_2038A0C[8]; + gTasks[taskId].func = debug_80C42B8; + } + else if (gMain.newAndRepeatedKeys & DPAD_UP && gUnknown_Debug_2038A0C[8] > 0) + { + gUnknown_Debug_2038A0C[8]--; + gTasks[taskId].func = debug_80C5038; + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN && gUnknown_Debug_2038A0C[8] < 1) + { + gUnknown_Debug_2038A0C[8]++; + gTasks[taskId].func = debug_80C5038; + } +} + +void debug_80C5158(u8 taskId) +{ + gTasks[taskId].func = debug_80C5174; +} + +void debug_80C5174(u8 taskId) +{ + gTasks[taskId].func = debug_80C5190; +} + +void debug_80C5190(u8 taskId) +{ + gTasks[taskId].func = debug_80C51AC; +} + +void debug_80C51AC(u8 taskId) +{ + gTasks[taskId].func = debug_80C51C8; +} + +void debug_80C51C8(u8 taskId) +{ + gTasks[taskId].func = debug_80C51E4; +} + +void debug_80C51E4(u8 taskId) +{ + sub_80408BC(); + gMain.savedCallback = debug_80C41A8; + SetMainCallback2(unref_sub_800D684); +} + +void debug_80C5208(void) +{ + u16 i; + + gUnknown_Debug_2038A1C = &eWatanabe18000; + + for (i = 0; i < 64; i++) + { + gUnknown_Debug_2038A1C->unk64[i] = 0; + } + + gUnknown_Debug_2038A1C->unk64[0] = 0xfc; + gUnknown_Debug_2038A1C->unk64[3] = gSaveBlock2.playerTrainerId[0] | (gSaveBlock2.playerTrainerId[1] << 8) | (gSaveBlock2.playerTrainerId[2] << 16) | (gSaveBlock2.playerTrainerId[3] << 24); + gUnknown_Debug_2038A1C->unk64[4] = (Random() << 16) | Random(); + gUnknown_Debug_2038A1C->unk64[1] = 1; + gUnknown_Debug_2038A1C->unk64[2] = 1; + debug_80C5C94(); +} + u16 word_83F888C[] = INCBIN_U16("graphics/debug/sprite_browser.gbapal"); u8 byte_83F88EC[] = INCBIN_U8("graphics/debug/sprite_browser.4bpp"); -- cgit v1.2.3 From d42c033eb624bc096431de7f259088ed43126245 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 17 Apr 2018 19:15:32 -0400 Subject: through debug_80C53F0 (also testing resplit of string) --- asm/watanabe_debug_menu.s | 440 ---------------------------------------- data/debug_menu_watanabe.s | 7 +- include/battle.h | 1 - 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"); -- cgit v1.2.3 From 3a82d934ab60ec82a89c66ebbe5024ee23334fdb Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 17 Apr 2018 20:41:18 -0400 Subject: through debug_80C5738 --- asm/watanabe_debug_menu.s | 695 ---------------------------------------- src/debug/watanabe_debug_menu.c | 186 +++++++++++ 2 files changed, 186 insertions(+), 695 deletions(-) diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index b8618a780..64cc54a0c 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,701 +5,6 @@ .text - thumb_func_start debug_80C55E4 -debug_80C55E4: - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsl r0, r0, #0x18 - lsr r3, r0, #0x18 - add r6, r3, #0 - ldr r1, ._405 @ gUnknown_Debug_083F8698 - ldr r2, ._405 + 4 @ gUnknown_Debug_2038A1C - ldr r0, [r2] - mov ip, r0 - mov r0, #0xb4 - lsl r0, r0, #0x1 - add r0, r0, ip - ldrb r0, [r0] - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._405 + 8 @ 0x169 - add r1, r1, ip - ldrb r1, [r1] - ldr r0, [r0] - add r0, r0, r1 - ldrb r5, [r0] - add r7, r5, #0 - ldr r1, ._405 + 12 @ gMain - ldrh r4, [r1, #0x2e] - mov r0, #0x1 - and r0, r0, r4 - mov r8, r2 - add r2, r1, #0 - cmp r0, #0 - beq ._403 @cond_branch - ldr r0, ._405 + 16 @ gTasks - lsl r1, r3, #0x2 - add r1, r1, r3 - lsl r1, r1, #0x3 - add r1, r1, r0 - ldr r0, ._405 + 20 @ debug_80C53C0 - str r0, [r1] - b ._422 -._406: - .align 2, 0 -._405: - .word gUnknown_Debug_083F8698 - .word gUnknown_Debug_2038A1C - .word 0x169 - .word gMain - .word gTasks - .word debug_80C53C0+1 -._403: - mov r0, #0x2 - and r0, r0, r4 - cmp r0, #0 - beq ._407 @cond_branch - lsl r1, r5, #0x2 - mov r0, ip - add r0, r0, #0x64 - add r0, r0, r1 - mov r1, #0xb2 - lsl r1, r1, #0x1 - add r1, r1, ip - ldr r1, [r1] - str r1, [r0] - ldr r1, ._409 @ gTasks - lsl r0, r6, #0x2 - add r0, r0, r6 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._409 + 4 @ debug_80C53C0 - str r1, [r0] - b ._422 -._410: - .align 2, 0 -._409: - .word gTasks - .word debug_80C53C0+1 -._407: - ldrh r1, [r2, #0x30] - mov r0, #0x40 - and r0, r0, r1 - cmp r0, #0 - beq ._411 @cond_branch - mov r0, #0x1 - b ._412 -._411: - mov r0, #0x80 - and r0, r0, r1 - cmp r0, #0 - beq ._413 @cond_branch - mov r0, #0x2 -._412: - bl debug_80C6544 - bl debug_80C643C - b ._422 -._413: - ldr r0, ._419 @ gUnknown_Debug_083F8554 - lsl r1, r7, #0x3 - add r0, r0, #0x4 - add r1, r1, r0 - ldr r1, [r1] - ldrb r0, [r1, #0x9] - cmp r0, #0xff - beq ._422 @cond_branch - mov r0, #0x20 - and r0, r0, r4 - cmp r0, #0 - beq ._417 @cond_branch - mov r0, #0xb5 - lsl r0, r0, #0x1 - add ip, ip, r0 - mov r0, ip - ldrb r3, [r0] - ldrb r0, [r1, #0x9] - sub r0, r0, #0x1 - cmp r3, r0 - bge ._417 @cond_branch - add r0, r3, #1 - mov r1, ip - strb r0, [r1] - bl debug_80C643C - b ._422 -._420: - .align 2, 0 -._419: - .word gUnknown_Debug_083F8554 -._417: - ldrh r1, [r2, #0x2e] - mov r0, #0x10 - and r0, r0, r1 - cmp r0, #0 - beq ._422 @cond_branch - mov r2, r8 - ldr r0, [r2] - mov r2, #0xb5 - lsl r2, r2, #0x1 - add r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0 - beq ._422 @cond_branch - sub r0, r0, #0x1 - strb r0, [r1] - bl debug_80C643C -._422: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - - thumb_func_end debug_80C55E4 - - thumb_func_start debug_80C5708 -debug_80C5708: - push {lr} - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - ldr r0, ._424 @ gMain - ldrh r1, [r0, #0x2e] - mov r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._423 @cond_branch - ldr r0, ._424 + 4 @ gTasks - lsl r1, r2, #0x2 - add r1, r1, r2 - lsl r1, r1, #0x3 - add r1, r1, r0 - ldr r0, ._424 + 8 @ debug_80C53C0 - str r0, [r1] -._423: - pop {r0} - bx r0 -._425: - .align 2, 0 -._424: - .word gMain - .word gTasks - .word debug_80C53C0+1 - - thumb_func_end debug_80C5708 - - thumb_func_start debug_80C5738 -debug_80C5738: - push {r4, r5, r6, r7, lr} - mov r7, r9 - mov r6, r8 - push {r6, r7} - add r6, r0, #0 - lsl r1, r1, #0x18 - lsr r4, r1, #0x18 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - mov r8, r2 - cmp r4, #0xfe - bne ._426 @cond_branch - ldr r1, ._428 @ gUnknown_Debug_083F850A - mov r2, #0x7 - bl debug_80C689C - add r0, r6, #7 - ldr r7, ._428 + 4 @ gUnknown_Debug_2038A1C - ldr r1, [r7] - add r1, r1, #0xf0 - ldr r1, [r1] - mov r2, #0x3 - mov r3, #0x1 - bl debug_80C6678 - mov r4, #0x0 - strb r4, [r6, #0x13] - strb r4, [r6, #0x14] - add r0, r6, #0 - add r0, r0, #0x15 - ldr r1, ._428 + 8 @ gUnknown_Debug_083F8514 - mov r2, #0x7 - bl debug_80C689C - add r0, r6, #0 - add r0, r0, #0x1c - ldr r1, [r7] - add r1, r1, #0xf4 - ldr r1, [r1] - mov r2, #0x3 - mov r3, #0x1 - bl debug_80C6678 - add r0, r6, #0 - add r0, r0, #0x28 - strb r4, [r0] - add r0, r0, #0x1 - strb r4, [r0] - add r0, r0, #0x1 - ldr r1, ._428 + 12 @ gUnknown_Debug_083F851C - mov r2, #0x9 - bl debug_80C689C - add r0, r6, #0 - add r0, r0, #0x31 - ldr r1, [r7] - add r1, r1, #0xf8 -._431: - ldr r1, [r1] - mov r2, #0x3 - mov r3, #0x1 - bl debug_80C6678 - b ._517 -._429: - .align 2, 0 -._428: - .word gUnknown_Debug_083F850A - .word gUnknown_Debug_2038A1C - .word gUnknown_Debug_083F8514 - .word gUnknown_Debug_083F851C -._426: - cmp r4, #0xfd - bne ._430 @cond_branch - ldr r1, ._432 @ gUnknown_Debug_083F8524 - add r0, r6, #0 - mov r2, #0x9 - bl debug_80C689C - add r0, r6, #0 - add r0, r0, #0x9 - ldr r7, ._432 + 4 @ gUnknown_Debug_2038A1C - ldr r1, [r7] - add r1, r1, #0xfc - ldr r1, [r1] - mov r2, #0x3 - mov r3, #0x1 - bl debug_80C6678 - mov r4, #0x0 - strb r4, [r6, #0x15] - strb r4, [r6, #0x16] - add r0, r6, #0 - add r0, r0, #0x17 - ldr r1, ._432 + 8 @ gUnknown_Debug_083F852D - mov r2, #0x9 - bl debug_80C689C - add r0, r6, #0 - add r0, r0, #0x20 - ldr r1, [r7] - mov r2, #0x80 - lsl r2, r2, #0x1 - add r1, r1, r2 - ldr r1, [r1] - mov r2, #0x3 - mov r3, #0x1 - bl debug_80C6678 - add r0, r6, #0 - add r0, r0, #0x2c - strb r4, [r0] - add r0, r0, #0x1 - strb r4, [r0] - add r0, r0, #0x1 - ldr r1, ._432 + 12 @ gUnknown_Debug_083F8537 - mov r2, #0x9 - bl debug_80C689C - add r0, r6, #0 - add r0, r0, #0x37 - ldr r1, [r7] - mov r3, #0x82 - lsl r3, r3, #0x1 - add r1, r1, r3 - b ._431 -._433: - .align 2, 0 -._432: - .word gUnknown_Debug_083F8524 - .word gUnknown_Debug_2038A1C - .word gUnknown_Debug_083F852D - .word gUnknown_Debug_083F8537 -._430: - mov r1, #0x0 - lsl r5, r4, #0x3 - mov r2, #0x0 -._434: - add r0, r6, r1 - strb r2, [r0] - add r0, r1, #1 - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - cmp r1, #0xb - bls ._434 @cond_branch - ldr r0, ._437 @ gUnknown_Debug_083F8554 - add r0, r5, r0 - ldr r1, [r0] - add r0, r6, #0 - mov r2, #0xb - bl debug_80C689C - mov r1, #0xc - mov r2, #0xff -._435: - add r0, r6, r1 - strb r2, [r0] - add r0, r1, #1 - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - cmp r1, #0xff - bls ._435 @cond_branch - ldr r0, ._437 @ gUnknown_Debug_083F8554 - add r0, r0, #0x4 - add r0, r5, r0 - ldr r0, [r0] - ldrb r2, [r0, #0x9] - lsl r0, r2, #0x1a - lsr r5, r0, #0x18 - cmp r4, #0x22 - bhi ._436 @cond_branch - lsl r0, r4, #0x2 - ldr r1, ._437 + 4 @ - add r1, r0, r1 - ldr r1, [r1] - add r7, r0, #0 - mov pc, r1 -._438: - .align 2, 0 -._437: - .word gUnknown_Debug_083F8554 - .word ._439 -._439: - .word ._440 - .word ._472 - .word ._472 - .word ._472 - .word ._472 - .word ._445 - .word ._446 - .word ._450 - .word ._450 - .word ._450 - .word ._450 - .word ._451 - .word ._452 - .word ._472 - .word ._472 - .word ._472 - .word ._472 - .word ._472 - .word ._472 - .word ._472 - .word ._472 - .word ._472 - .word ._472 - .word ._472 - .word ._472 - .word ._472 - .word ._472 - .word ._472 - .word ._472 - .word ._472 - .word ._472 - .word ._472 - .word ._472 - .word ._473 - .word ._474 -._436: - mov r0, #0xff - strb r0, [r6] - b ._517 -._440: - add r0, r6, #0 - add r0, r0, #0xa - ldr r1, ._477 @ gUnknown_Debug_2038A1C - mov r9, r1 - ldr r1, [r1] - add r1, r1, #0x64 - add r1, r1, r7 - ldr r1, [r1] - mov r3, r8 - bl debug_80C6678 - add r1, r5, r6 - mov r0, #0x0 - strb r0, [r1, #0xa] - mov r0, #0xfc - strb r0, [r1, #0xb] - mov r0, #0x1 - strb r0, [r1, #0xc] - mov r2, r8 - strb r2, [r1, #0xd] - add r4, r5, #0 - add r4, r4, #0xe - add r4, r6, r4 - mov r3, r9 - ldr r0, [r3] - add r0, r0, #0x64 - add r0, r0, r7 - ldrh r0, [r0] - bl NationalPokedexNumToSpecies - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r1, #0xb - mul r1, r1, r0 - ldr r0, ._477 + 4 @ gSpeciesNames - add r1, r1, r0 - add r0, r4, #0 - mov r2, #0xa - bl debug_80C689C - b ._517 -._478: - .align 2, 0 -._477: - .word gUnknown_Debug_2038A1C - .word gSpeciesNames -._445: - ldr r0, ._483 @ gUnknown_Debug_2038A1C - ldr r0, [r0] - add r0, r0, #0x64 - add r0, r0, r7 - ldr r0, [r0] - cmp r0, #0x1 - beq ._479 @cond_branch - cmp r0, #0x1 - bcc ._480 @cond_branch - cmp r0, #0x2 - beq ._481 @cond_branch - b ._517 -._484: - .align 2, 0 -._483: - .word gUnknown_Debug_2038A1C -._480: - add r0, r6, #0 - add r0, r0, #0xa - ldr r1, ._486 @ gUnknown_Debug_083F8546 - b ._488 -._487: - .align 2, 0 -._486: - .word gUnknown_Debug_083F8546 -._479: - add r0, r6, #0 - add r0, r0, #0xa - ldr r1, ._489 @ gUnknown_Debug_083F8541 - b ._488 -._490: - .align 2, 0 -._489: - .word gUnknown_Debug_083F8541 -._481: - add r0, r6, #0 - add r0, r0, #0xa - ldr r1, ._492 @ gUnknown_Debug_083F8544 -._488: - mov r2, #0x2 - bl debug_80C689C - b ._517 -._493: - .align 2, 0 -._492: - .word gUnknown_Debug_083F8544 -._450: - add r0, r6, #0 - add r0, r0, #0xa - ldr r4, ._495 @ gUnknown_Debug_2038A1C - ldr r1, [r4] - add r1, r1, #0x64 - add r1, r1, r7 - ldr r1, [r1] - mov r3, r8 - bl debug_80C6678 - add r1, r5, r6 - mov r0, #0x0 - strb r0, [r1, #0xa] - mov r0, #0xfc - strb r0, [r1, #0xb] - mov r0, #0x1 - strb r0, [r1, #0xc] - mov r0, r8 - strb r0, [r1, #0xd] - add r0, r5, #0 - add r0, r0, #0xe - add r0, r6, r0 - ldr r1, [r4] - add r1, r1, #0x64 - add r1, r1, r7 - ldr r2, [r1] - mov r1, #0xd - mul r1, r1, r2 - ldr r2, ._495 + 4 @ gMoveNames - add r1, r1, r2 - b ._494 -._496: - .align 2, 0 -._495: - .word gUnknown_Debug_2038A1C - .word gMoveNames -._451: - add r0, r6, #0 - add r0, r0, #0xa - ldr r4, ._499 @ gUnknown_Debug_2038A1C - ldr r1, [r4] - add r1, r1, #0x64 - add r1, r1, r7 - ldr r1, [r1] - mov r3, r8 - bl debug_80C6678 - add r1, r5, r6 - mov r0, #0x0 - strb r0, [r1, #0xa] - mov r0, #0xfc - strb r0, [r1, #0xb] - mov r0, #0x1 - strb r0, [r1, #0xc] - mov r2, r8 - strb r2, [r1, #0xd] - ldr r0, [r4] - add r0, r0, #0x64 - add r0, r0, r7 - ldr r0, [r0] - cmp r0, #0 - beq ._497 @cond_branch - add r4, r5, #0 - add r4, r4, #0xe - add r4, r6, r4 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl ItemId_GetName - add r1, r0, #0 - add r0, r4, #0 - b ._498 -._500: - .align 2, 0 -._499: - .word gUnknown_Debug_2038A1C -._497: - add r0, r5, #0 - add r0, r0, #0xe - add r0, r6, r0 - ldr r1, ._502 @ gUnknown_Debug_083F8541 -._498: - mov r2, #0x9 - bl debug_80C689C - b ._517 -._503: - .align 2, 0 -._502: - .word gUnknown_Debug_083F8541 -._452: - add r6, r6, #0xc - ldr r4, ._505 @ gUnknown_Debug_2038A1C - ldr r0, [r4] - ldr r0, [r0, #0x64] - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl NationalPokedexNumToSpecies - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - ldr r1, [r4] - add r1, r1, #0x64 - add r1, r1, r7 - ldrb r1, [r1] - bl GetAbilityBySpecies - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov r1, #0xd - mul r1, r1, r0 - ldr r0, ._505 + 4 @ gAbilityNames - add r1, r1, r0 - add r0, r6, #0 -._494: - mov r2, #0xc - bl debug_80C689C - b ._517 -._506: - .align 2, 0 -._505: - .word gUnknown_Debug_2038A1C - .word gAbilityNames -._474: - add r0, r6, #0 - add r0, r0, #0xa - ldr r2, ._508 @ gUnknown_Debug_083F86E8 - ldr r1, ._508 + 4 @ gUnknown_Debug_2038A1C - ldr r1, [r1] - add r1, r1, #0x64 - add r1, r1, r7 - ldr r1, [r1] - lsl r1, r1, #0x3 - add r1, r1, r2 - ldr r1, [r1] - b ._514 -._509: - .align 2, 0 -._508: - .word gUnknown_Debug_083F86E8 - .word gUnknown_Debug_2038A1C -._472: - add r0, r6, #0 - add r0, r0, #0xc - ldr r1, ._511 @ gUnknown_Debug_2038A1C - ldr r1, [r1] - add r1, r1, #0x64 - add r1, r1, r7 - ldr r1, [r1] - mov r3, r8 - bl debug_80C6678 - b ._517 -._512: - .align 2, 0 -._511: - .word gUnknown_Debug_2038A1C -._473: - ldr r0, ._515 @ gUnknown_Debug_2038A1C - ldr r0, [r0] - add r0, r0, #0x64 - add r0, r0, r7 - ldr r0, [r0] - cmp r0, #0 - beq ._513 @cond_branch - add r0, r6, #0 - add r0, r0, #0xa - ldr r1, ._515 + 4 @ gUnknown_Debug_083F854A - b ._514 -._516: - .align 2, 0 -._515: - .word gUnknown_Debug_2038A1C - .word gUnknown_Debug_083F854A -._513: - add r0, r6, #0 - add r0, r0, #0xa - ldr r1, ._518 @ gUnknown_Debug_083F854D -._514: - mov r2, #0x4 - bl debug_80C689C - b ._517 -._519: - .align 2, 0 -._518: - .word gUnknown_Debug_083F854D -._446: - add r0, r6, #0 - add r0, r0, #0xa - ldr r2, ._520 @ gNatureNames - ldr r1, ._520 + 4 @ gUnknown_Debug_2038A1C - ldr r1, [r1] - add r1, r1, #0x64 - add r1, r1, r7 - ldr r1, [r1] - lsl r1, r1, #0x2 - add r1, r1, r2 - ldr r1, [r1] - mov r2, #0x5 - bl debug_80C689C -._517: - mov r0, #0x0 - pop {r3, r4} - mov r8, r3 - mov r9, r4 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 -._521: - .align 2, 0 -._520: - .word gNatureNames - .word gUnknown_Debug_2038A1C - - thumb_func_end debug_80C5738 - thumb_func_start debug_80C5B60 debug_80C5B60: lsl r0, r0, #0x18 diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index 5ed067651..2b2da4951 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -3,6 +3,7 @@ #include "ewram.h" #include "random.h" #include "gba/flash_internal.h" +#include "constants/items.h" #include "constants/species.h" #include "constants/songs.h" #include "debug.h" @@ -24,6 +25,14 @@ #include "pokemon_storage_system.h" #include "battle.h" #include "battle_bg.h" +#include "item.h" +#include "pokemon_summary_screen.h" + +struct WatanabeDebugMenuItemSubstruct { + u32 unk0; + u8 fill4[5]; + u8 unk9; +}; struct WatanabeDebugMenuItem { const u8 * text; @@ -31,6 +40,7 @@ struct WatanabeDebugMenuItem { u8 type1[2]; u32 type2; u8 type3; + const struct WatanabeDebugMenuItemSubstruct *type4; } data; }; @@ -41,6 +51,10 @@ struct WatanabeEwram18000 { u8 unk168; u8 unk169; u8 unk16a; + u8 unk16b; + u8 unk16c; + u8 unk16d; + u8 unk16e[256]; }; #define eWatanabe18000 (*(struct WatanabeEwram18000 *)(gSharedMem + 0x18000)) @@ -94,13 +108,18 @@ void debug_80C5FFC(void); void debug_80C627C(u8); void debug_80C6384(void); void debug_80C643C(void); +void debug_80C6544(u8); +void debug_80C689C(u8 *, const u8 *, u8); +void debug_80C6678(u8 *, u32, u8, u8); 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_083F8554[35]; extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F8698[6]; +extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F86E8[7]; extern const u8 gUnknown_Debug_083F7FD4[2]; // = _("▶"); extern const u8 gUnknown_Debug_083F7FD6[4]; // = {0x25, 0x20, 0x01, 0x08}; @@ -130,6 +149,17 @@ 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"); +extern const u8 gUnknown_Debug_083F850A[10]; // = _("{COLOR RED}HP  "); +extern const u8 gUnknown_Debug_083F8514[8]; // = _("{COLOR RED}ATK "); +extern const u8 gUnknown_Debug_083F851C[8]; // = _("{COLOR RED}DEF "); +extern const u8 gUnknown_Debug_083F8524[9]; // = _("{COLOR RED}SPEED"); +extern const u8 gUnknown_Debug_083F852D[10]; // = _("{COLOR RED}SP。ATK"); +extern const u8 gUnknown_Debug_083F8537[10]; // = _("{COLOR RED}SP。DEF"); +extern const u8 gUnknown_Debug_083F8541[3]; // = _("なし"); +extern const u8 gUnknown_Debug_083F8544[2]; // = _("♂"); +extern const u8 gUnknown_Debug_083F8546[2]; // = _("♀"); +extern const u8 gUnknown_Debug_083F854A[3]; // = _("ON"); +extern const u8 gUnknown_Debug_083F854D[4]; // = _("OFF"); #define SPRITETAG_WATANABE 0x1000 @@ -1717,6 +1747,162 @@ void debug_80C53F0(u8 taskId) } } +void debug_80C55E4(u8 taskId) +{ + u8 r7 = gUnknown_Debug_083F8698[gUnknown_Debug_2038A1C->unk168].text[gUnknown_Debug_2038A1C->unk169]; + if (gMain.newKeys & A_BUTTON) + { + gTasks[taskId].func = debug_80C53C0; + } + else if (gMain.newKeys & B_BUTTON) + { + gUnknown_Debug_2038A1C->unk64[r7] = gUnknown_Debug_2038A1C->unk164; + gTasks[taskId].func = debug_80C53C0; + } + else if (gMain.newAndRepeatedKeys & DPAD_UP) + { + debug_80C6544(1); + debug_80C643C(); + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + debug_80C6544(2); + debug_80C643C(); + } + else if (gUnknown_Debug_083F8554[r7].data.type4->unk9 != 0xFF) + { + if (gMain.newKeys & DPAD_LEFT && gUnknown_Debug_2038A1C->unk16a < gUnknown_Debug_083F8554[r7].data.type4->unk9 - 1) + { + gUnknown_Debug_2038A1C->unk16a++; + debug_80C643C(); + } + else if (gMain.newKeys & DPAD_RIGHT && gUnknown_Debug_2038A1C->unk16a > 0) + { + gUnknown_Debug_2038A1C->unk16a--; + debug_80C643C(); + } + } +} + +void debug_80C5708(u8 taskId) +{ + if (gMain.newKeys & A_BUTTON) + { + gTasks[taskId].func = debug_80C53C0; + } +} + +u8 debug_80C5738(u8 * a0, u8 a1, u8 a2) +{ + u16 i; + u8 r5; + u8 r2; + + if (a1 == 0xfe) + { + debug_80C689C(a0, gUnknown_Debug_083F850A, 7); + debug_80C6678(a0 + 7, gUnknown_Debug_2038A1C->unk64[35], 3, 1); + a0[19] = CHAR_SPACE; + a0[20] = CHAR_SPACE; + debug_80C689C(a0 + 21, gUnknown_Debug_083F8514, 7); + debug_80C6678(a0 + 28, gUnknown_Debug_2038A1C->unk64[36], 3, 1); + a0[40] = CHAR_SPACE; + a0[41] = CHAR_SPACE; + debug_80C689C(a0 + 42, gUnknown_Debug_083F851C, 9); + debug_80C6678(a0 + 49, gUnknown_Debug_2038A1C->unk64[37], 3, 1); + return 0; + } + if (a1 == 0xfd) + { + debug_80C689C(a0, gUnknown_Debug_083F8524, 9); + debug_80C6678(a0 + 9, gUnknown_Debug_2038A1C->unk64[38], 3, 1); + a0[21] = CHAR_SPACE; + a0[22] = CHAR_SPACE; + debug_80C689C(a0 + 23, gUnknown_Debug_083F852D, 9); + debug_80C6678(a0 + 32, gUnknown_Debug_2038A1C->unk64[39], 3, 1); + a0[44] = CHAR_SPACE; + a0[45] = CHAR_SPACE; + debug_80C689C(a0 + 46, gUnknown_Debug_083F8537, 9); + debug_80C6678(a0 + 55, gUnknown_Debug_2038A1C->unk64[40], 3, 1); + return 0; + } + for (i = 0; i < 12; i++) + a0[i] = CHAR_SPACE; + debug_80C689C(a0, gUnknown_Debug_083F8554[a1].text, 11); + for (i = 12; i < 256; i++) + a0[i] = EOS; + r2 = gUnknown_Debug_083F8554[a1].data.type4->unk9; + r5 = r2 * 4; + switch (a1) + { + default: + a0[0] = EOS; + break; + case 0: + debug_80C6678(a0 + 10, gUnknown_Debug_2038A1C->unk64[a1], r2, a2); + a0[10 + r5] = CHAR_SPACE; + a0[11 + r5] = EXT_CTRL_CODE_BEGIN; + a0[12 + r5] = 0x01; + a0[13 + r5] = a2; + debug_80C689C(a0 + 14 + r5, gSpeciesNames[NationalPokedexNumToSpecies(gUnknown_Debug_2038A1C->unk64[a1])], 10); + break; + case 5: + switch (gUnknown_Debug_2038A1C->unk64[a1]) + { + case 0: + debug_80C689C(a0 + 10, gUnknown_Debug_083F8546, 2); + break; + case 1: + debug_80C689C(a0 + 10, gUnknown_Debug_083F8541, 2); + break; + case 2: + debug_80C689C(a0 + 10, gUnknown_Debug_083F8544, 2); + break; + } + break; + case 7 ... 10: + debug_80C6678(a0 + 10, gUnknown_Debug_2038A1C->unk64[a1], r2, a2); + a0[10 + r5] = CHAR_SPACE; + a0[11 + r5] = EXT_CTRL_CODE_BEGIN; + a0[12 + r5] = 0x01; + a0[13 + r5] = a2; + debug_80C689C(a0 + 14 + r5, gMoveNames[gUnknown_Debug_2038A1C->unk64[a1]], 12); + break; + case 11: + debug_80C6678(a0 + 10, gUnknown_Debug_2038A1C->unk64[a1], r2, a2); + a0[10 + r5] = CHAR_SPACE; + a0[11 + r5] = EXT_CTRL_CODE_BEGIN; + a0[12 + r5] = 0x01; + a0[13 + r5] = a2; + if (gUnknown_Debug_2038A1C->unk64[a1] != ITEM_NONE) + debug_80C689C(a0 + 14 + r5, ItemId_GetName(gUnknown_Debug_2038A1C->unk64[a1]), 9); + else + debug_80C689C(a0 + 14 + r5, gUnknown_Debug_083F8541, 9); + break; + case 12: + a0 += 12; + debug_80C689C(a0, gAbilityNames[GetAbilityBySpecies(NationalPokedexNumToSpecies(gUnknown_Debug_2038A1C->unk64[0]), gUnknown_Debug_2038A1C->unk64[a1])], 12); + break; + case 34: + debug_80C689C(a0 + 10, gUnknown_Debug_083F86E8[gUnknown_Debug_2038A1C->unk64[a1]].text, 4); + break; + case 1 ... 4: + case 13 ... 32: + debug_80C6678(a0 + 12, gUnknown_Debug_2038A1C->unk64[a1], r2, a2); + break; + case 33: + if (gUnknown_Debug_2038A1C->unk64[a1]) + debug_80C689C(a0 + 10, gUnknown_Debug_083F854A, 4); + else + debug_80C689C(a0 + 10, gUnknown_Debug_083F854D, 4); + break; + case 6: + debug_80C689C(a0 + 10, gNatureNames[gUnknown_Debug_2038A1C->unk64[a1]], 5); + break; + } + return 0; +} + u16 word_83F888C[] = INCBIN_U16("graphics/debug/sprite_browser.gbapal"); u8 byte_83F88EC[] = INCBIN_U8("graphics/debug/sprite_browser.4bpp"); -- cgit v1.2.3 From 3a4396984562a6e4665aecf45d60d944ccaa0ab6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 17 Apr 2018 21:36:43 -0400 Subject: through debug_80C5EF4 --- asm/watanabe_debug_menu.s | 555 ---------------------------------------- src/debug/watanabe_debug_menu.c | 107 ++++++++ 2 files changed, 107 insertions(+), 555 deletions(-) diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index 64cc54a0c..c0abfa2fa 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,561 +5,6 @@ .text - thumb_func_start debug_80C5B60 -debug_80C5B60: - lsl r0, r0, #0x18 - ldr r1, ._522 @ gUnknown_Debug_2038A1C - ldr r1, [r1] - lsr r0, r0, #0x16 - add r1, r1, #0x64 - add r1, r1, r0 - ldr r0, [r1] - bx lr -._523: - .align 2, 0 -._522: - .word gUnknown_Debug_2038A1C - - thumb_func_end debug_80C5B60 - - thumb_func_start debug_80C5B74 -debug_80C5B74: - push {r4, r5, r6, lr} - add r6, r0, #0 - lsl r1, r1, #0x18 - lsr r2, r1, #0x18 - cmp r2, #0x18 - bhi ._540 @cond_branch - lsl r0, r2, #0x2 - ldr r1, ._526 @ - add r1, r0, r1 - ldr r1, [r1] - add r3, r0, #0 - mov pc, r1 -._527: - .align 2, 0 -._526: - .word ._525 -._525: - .word ._532 - .word ._529 - .word ._530 - .word ._532 - .word ._532 - .word ._540 - .word ._540 - .word ._540 - .word ._540 - .word ._540 - .word ._540 - .word ._540 - .word ._540 - .word ._552 - .word ._552 - .word ._552 - .word ._552 - .word ._552 - .word ._552 - .word ._552 - .word ._552 - .word ._552 - .word ._552 - .word ._552 - .word ._552 -._540: - ldr r0, ._554 @ gUnknown_Debug_2038A1C - ldr r0, [r0] - lsl r1, r2, #0x2 - add r0, r0, #0x64 - add r0, r0, r1 - str r6, [r0] - b ._562 -._555: - .align 2, 0 -._554: - .word gUnknown_Debug_2038A1C -._532: - ldr r0, ._557 @ gUnknown_Debug_2038A1C - ldr r0, [r0] - add r0, r0, #0x64 - add r0, r0, r3 - str r6, [r0] - bl debug_80C5C94 - b ._562 -._558: - .align 2, 0 -._557: - .word gUnknown_Debug_2038A1C -._529: - ldr r4, ._560 @ gUnknown_Debug_2038A1C - ldr r1, [r4] - add r0, r1, #0 - add r0, r0, #0x64 - add r0, r0, r3 - str r6, [r0] - ldr r0, [r1, #0x64] - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl NationalPokedexNumToSpecies - ldr r5, [r4] - ldr r4, ._560 + 4 @ gExperienceTables - lsl r2, r6, #0x2 - ldr r3, ._560 + 8 @ gBaseStats - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - lsl r1, r0, #0x3 - sub r1, r1, r0 - lsl r1, r1, #0x2 - add r1, r1, r3 - ldrb r1, [r1, #0x13] - mov r0, #0xca - lsl r0, r0, #0x1 - mul r0, r0, r1 - add r2, r2, r0 - add r2, r2, r4 - ldr r0, [r2] - str r0, [r5, #0x6c] - bl debug_80C5C94 - b ._562 -._561: - .align 2, 0 -._560: - .word gUnknown_Debug_2038A1C - .word gExperienceTables - .word gBaseStats -._530: - ldr r0, ._563 @ gUnknown_Debug_2038A1C - ldr r0, [r0] - add r0, r0, #0x64 - add r0, r0, r3 - str r6, [r0] - bl debug_80C5DEC - b ._562 -._564: - .align 2, 0 -._563: - .word gUnknown_Debug_2038A1C -._552: - ldr r0, ._565 @ gUnknown_Debug_2038A1C - ldr r0, [r0] - add r0, r0, #0x64 - add r0, r0, r3 - str r6, [r0] - bl debug_80C5EF4 -._562: - pop {r4, r5, r6} - pop {r0} - bx r0 -._566: - .align 2, 0 -._565: - .word gUnknown_Debug_2038A1C - - thumb_func_end debug_80C5B74 - - thumb_func_start debug_80C5C94 -debug_80C5C94: - push {r4, r5, r6, lr} - add sp, sp, #0xfffffff0 - ldr r6, ._567 @ gUnknown_Debug_2038A1C - ldr r2, [r6] - add r0, r2, #0 - add r0, r0, #0x98 - ldr r4, [r0] - mov r1, #0x1f - and r4, r4, r1 - add r0, r0, #0x8 - ldr r0, [r0] - and r0, r0, r1 - lsl r0, r0, #0x5 - orr r4, r4, r0 - add r0, r2, #0 - add r0, r0, #0xa8 - ldr r0, [r0] - and r0, r0, r1 - lsl r0, r0, #0xa - orr r4, r4, r0 - add r0, r2, #0 - add r0, r0, #0xb0 - ldr r0, [r0] - and r0, r0, r1 - lsl r0, r0, #0xf - orr r4, r4, r0 - add r0, r2, #0 - add r0, r0, #0xb8 - ldr r0, [r0] - and r0, r0, r1 - lsl r0, r0, #0x14 - orr r4, r4, r0 - add r0, r2, #0 - add r0, r0, #0xc0 - ldr r0, [r0] - and r0, r0, r1 - lsl r0, r0, #0x19 - orr r4, r4, r0 - ldr r0, [r2, #0x64] - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl NationalPokedexNumToSpecies - add r1, r0, #0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - ldr r0, [r6] - ldr r2, [r0, #0x68] - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - mov r5, #0x1 - str r5, [sp] - ldr r3, [r0, #0x74] - str r3, [sp, #0x4] - str r5, [sp, #0x8] - ldr r3, [r0, #0x70] - str r3, [sp, #0xc] - add r3, r4, #0 - bl CreateMon - ldr r0, [r6] - bl GetMonGender - ldr r1, [r6] - add r0, r0, #0x2 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [r1, #0x78] - add r0, r1, #0 - bl GetNature - ldr r1, [r6] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [r1, #0x7c] - add r0, r1, #0 - mov r1, #0xd - bl GetMonData - add r2, r0, #0 - ldr r0, [r6] - add r1, r0, #0 - add r1, r1, #0x80 - str r2, [r1] - mov r1, #0xe - bl GetMonData - add r2, r0, #0 - ldr r0, [r6] - add r1, r0, #0 - add r1, r1, #0x84 - str r2, [r1] - mov r1, #0xf - bl GetMonData - add r2, r0, #0 - ldr r0, [r6] - add r1, r0, #0 - add r1, r1, #0x88 - str r2, [r1] - mov r1, #0x10 - bl GetMonData - add r2, r0, #0 - ldr r0, [r6] - add r1, r0, #0 - add r1, r1, #0x8c - str r2, [r1] - mov r1, #0x19 - bl GetMonData - add r1, r0, #0 - ldr r0, [r6] - str r1, [r0, #0x6c] - mov r1, #0x3a - bl GetMonData - add r2, r0, #0 - ldr r0, [r6] - add r1, r0, #0 - add r1, r1, #0xf0 - str r2, [r1] - mov r1, #0x3b - bl GetMonData - add r2, r0, #0 - ldr r0, [r6] - add r1, r0, #0 - add r1, r1, #0xf4 - str r2, [r1] - mov r1, #0x3c - bl GetMonData - add r2, r0, #0 - ldr r0, [r6] - add r1, r0, #0 - add r1, r1, #0xf8 - str r2, [r1] - mov r1, #0x3d - bl GetMonData - add r2, r0, #0 - ldr r0, [r6] - add r1, r0, #0 - add r1, r1, #0xfc - str r2, [r1] - mov r1, #0x3e - bl GetMonData - add r2, r0, #0 - ldr r0, [r6] - mov r3, #0x80 - lsl r3, r3, #0x1 - add r1, r0, r3 - str r2, [r1] - mov r1, #0x3f - bl GetMonData - ldr r1, [r6] - mov r2, #0x82 - lsl r2, r2, #0x1 - add r1, r1, r2 - str r0, [r1] - add sp, sp, #0x10 - pop {r4, r5, r6} - pop {r0} - bx r0 -._568: - .align 2, 0 -._567: - .word gUnknown_Debug_2038A1C - - thumb_func_end debug_80C5C94 - - thumb_func_start debug_80C5DEC -debug_80C5DEC: - push {r4, lr} - add sp, sp, #0xfffffffc - mov r0, #0x0 - str r0, [sp] - ldr r4, ._569 @ gUnknown_Debug_2038A1C - ldr r0, [r4] - add r2, r0, #0 - add r2, r2, #0x6c - mov r1, #0x19 - bl SetMonData - ldr r0, [r4] - mov r1, #0xd - mov r2, sp - bl SetMonData - ldr r0, [r4] - mov r1, #0xe - mov r2, sp - bl SetMonData - ldr r0, [r4] - mov r1, #0xf - mov r2, sp - bl SetMonData - ldr r0, [r4] - mov r1, #0x10 - mov r2, sp - bl SetMonData - ldr r0, [r4] - bl CalculateMonStats - ldr r0, [r4] - bl GiveMonInitialMoveset - ldr r0, [r4] - mov r1, #0x38 - bl GetMonData - add r1, r0, #0 - ldr r0, [r4] - str r1, [r0, #0x68] - mov r1, #0xd - bl GetMonData - add r2, r0, #0 - ldr r0, [r4] - add r1, r0, #0 - add r1, r1, #0x80 - str r2, [r1] - mov r1, #0xe - bl GetMonData - add r2, r0, #0 - ldr r0, [r4] - add r1, r0, #0 - add r1, r1, #0x84 - str r2, [r1] - mov r1, #0xf - bl GetMonData - add r2, r0, #0 - ldr r0, [r4] - add r1, r0, #0 - add r1, r1, #0x88 - str r2, [r1] - mov r1, #0x10 - bl GetMonData - add r2, r0, #0 - ldr r0, [r4] - add r1, r0, #0 - add r1, r1, #0x8c - str r2, [r1] - mov r1, #0x3a - bl GetMonData - add r2, r0, #0 - ldr r0, [r4] - add r1, r0, #0 - add r1, r1, #0xf0 - str r2, [r1] - mov r1, #0x3b - bl GetMonData - add r2, r0, #0 - ldr r0, [r4] - add r1, r0, #0 - add r1, r1, #0xf4 - str r2, [r1] - mov r1, #0x3c - bl GetMonData - add r2, r0, #0 - ldr r0, [r4] - add r1, r0, #0 - add r1, r1, #0xf8 - str r2, [r1] - mov r1, #0x3d - bl GetMonData - add r2, r0, #0 - ldr r0, [r4] - add r1, r0, #0 - add r1, r1, #0xfc - str r2, [r1] - mov r1, #0x3e - bl GetMonData - add r2, r0, #0 - ldr r0, [r4] - mov r3, #0x80 - lsl r3, r3, #0x1 - add r1, r0, r3 - str r2, [r1] - mov r1, #0x3f - bl GetMonData - ldr r1, [r4] - mov r2, #0x82 - lsl r2, r2, #0x1 - add r1, r1, r2 - str r0, [r1] - add sp, sp, #0x4 - pop {r4} - pop {r0} - bx r0 -._570: - .align 2, 0 -._569: - .word gUnknown_Debug_2038A1C - - thumb_func_end debug_80C5DEC - - thumb_func_start debug_80C5EF4 -debug_80C5EF4: - push {r4, lr} - ldr r4, ._571 @ gUnknown_Debug_2038A1C - ldr r0, [r4] - add r2, r0, #0 - add r2, r2, #0x98 - mov r1, #0x27 - bl SetMonData - ldr r0, [r4] - add r2, r0, #0 - add r2, r2, #0x9c - mov r1, #0x1a - bl SetMonData - ldr r0, [r4] - add r2, r0, #0 - add r2, r2, #0xa0 - mov r1, #0x28 - bl SetMonData - ldr r0, [r4] - add r2, r0, #0 - add r2, r2, #0xa4 - mov r1, #0x1b - bl SetMonData - ldr r0, [r4] - add r2, r0, #0 - add r2, r2, #0xa8 - mov r1, #0x29 - bl SetMonData - ldr r0, [r4] - add r2, r0, #0 - add r2, r2, #0xac - mov r1, #0x1c - bl SetMonData - ldr r0, [r4] - add r2, r0, #0 - add r2, r2, #0xb0 - mov r1, #0x2a - bl SetMonData - ldr r0, [r4] - add r2, r0, #0 - add r2, r2, #0xb4 - mov r1, #0x1d - bl SetMonData - ldr r0, [r4] - add r2, r0, #0 - add r2, r2, #0xb8 - mov r1, #0x2b - bl SetMonData - ldr r0, [r4] - add r2, r0, #0 - add r2, r2, #0xbc - mov r1, #0x1e - bl SetMonData - ldr r0, [r4] - add r2, r0, #0 - add r2, r2, #0xc0 - mov r1, #0x2c - bl SetMonData - ldr r0, [r4] - add r2, r0, #0 - add r2, r2, #0xc4 - mov r1, #0x1f - bl SetMonData - ldr r0, [r4] - bl CalculateMonStats - ldr r0, [r4] - mov r1, #0x3a - bl GetMonData - add r2, r0, #0 - ldr r0, [r4] - add r1, r0, #0 - add r1, r1, #0xf0 - str r2, [r1] - mov r1, #0x3b - bl GetMonData - add r2, r0, #0 - ldr r0, [r4] - add r1, r0, #0 - add r1, r1, #0xf4 - str r2, [r1] - mov r1, #0x3c - bl GetMonData - add r2, r0, #0 - ldr r0, [r4] - add r1, r0, #0 - add r1, r1, #0xf8 - str r2, [r1] - mov r1, #0x3d - bl GetMonData - add r2, r0, #0 - ldr r0, [r4] - add r1, r0, #0 - add r1, r1, #0xfc - str r2, [r1] - mov r1, #0x3e - bl GetMonData - add r2, r0, #0 - ldr r0, [r4] - mov r3, #0x80 - lsl r3, r3, #0x1 - add r1, r0, r3 - str r2, [r1] - mov r1, #0x3f - bl GetMonData - ldr r1, [r4] - mov r2, #0x82 - lsl r2, r2, #0x1 - add r1, r1, r2 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 -._572: - .align 2, 0 -._571: - .word gUnknown_Debug_2038A1C - - thumb_func_end debug_80C5EF4 - thumb_func_start debug_80C5FFC debug_80C5FFC: push {r4, r5, r6, r7, lr} diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index 2b2da4951..33b5e8a29 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -104,6 +104,8 @@ void debug_80C53F0(u8 taskId); void debug_80C55E4(u8 taskId); void debug_80C5708(u8 taskId); void debug_80C5C94(void); +void debug_80C5DEC(void); +void debug_80C5EF4(void); void debug_80C5FFC(void); void debug_80C627C(u8); void debug_80C6384(void); @@ -1903,6 +1905,111 @@ u8 debug_80C5738(u8 * a0, u8 a1, u8 a2) return 0; } +u32 debug_80C5B60(u8 a0) +{ + return gUnknown_Debug_2038A1C->unk64[a0]; +} + +void debug_80C5B74(u32 a0, u8 a1) +{ + switch (a1) + { + default: + gUnknown_Debug_2038A1C->unk64[a1] = a0; + break; + case 0: + case 3: + case 4: + gUnknown_Debug_2038A1C->unk64[a1] = a0; + debug_80C5C94(); + break; + case 1: + gUnknown_Debug_2038A1C->unk64[a1] = a0; + gUnknown_Debug_2038A1C->unk64[2] = gExperienceTables[gBaseStats[NationalPokedexNumToSpecies(gUnknown_Debug_2038A1C->unk64[0])].growthRate][a0]; + debug_80C5C94(); + break; + case 2: + gUnknown_Debug_2038A1C->unk64[a1] = a0; + debug_80C5DEC(); + break; + case 13 ... 24: + gUnknown_Debug_2038A1C->unk64[a1] = a0; + debug_80C5EF4(); + break; + } +} + +void debug_80C5C94(void) +{ + u32 ivs = gUnknown_Debug_2038A1C->unk64[13] & 0x1f; + ivs |= (gUnknown_Debug_2038A1C->unk64[15] & 0x1f) << 5; + ivs |= (gUnknown_Debug_2038A1C->unk64[17] & 0x1f) << 10; + ivs |= (gUnknown_Debug_2038A1C->unk64[19] & 0x1f) << 15; + ivs |= (gUnknown_Debug_2038A1C->unk64[21] & 0x1f) << 20; + ivs |= (gUnknown_Debug_2038A1C->unk64[23] & 0x1f) << 25; + CreateMon(&gUnknown_Debug_2038A1C->pokemon, NationalPokedexNumToSpecies(gUnknown_Debug_2038A1C->unk64[0]), gUnknown_Debug_2038A1C->unk64[1], ivs, TRUE, gUnknown_Debug_2038A1C->unk64[4], TRUE, gUnknown_Debug_2038A1C->unk64[3]); + gUnknown_Debug_2038A1C->unk64[5] = (u8)(GetMonGender(&gUnknown_Debug_2038A1C->pokemon) + 2); + gUnknown_Debug_2038A1C->unk64[6] = GetNature(&gUnknown_Debug_2038A1C->pokemon); + gUnknown_Debug_2038A1C->unk64[7] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_MOVE1); + gUnknown_Debug_2038A1C->unk64[8] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_MOVE2); + gUnknown_Debug_2038A1C->unk64[9] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_MOVE3); + gUnknown_Debug_2038A1C->unk64[10] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_MOVE4); + gUnknown_Debug_2038A1C->unk64[2] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_EXP); + gUnknown_Debug_2038A1C->unk64[35] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_MAX_HP); + gUnknown_Debug_2038A1C->unk64[36] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_ATK); + gUnknown_Debug_2038A1C->unk64[37] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_DEF); + gUnknown_Debug_2038A1C->unk64[38] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPEED); + gUnknown_Debug_2038A1C->unk64[39] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPATK); + gUnknown_Debug_2038A1C->unk64[40] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPDEF); +} + +void debug_80C5DEC(void) +{ + u32 zero = 0; + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_EXP, gUnknown_Debug_2038A1C->unk64 + 2); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_MOVE1, &zero); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_MOVE2, &zero); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_MOVE3, &zero); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_MOVE4, &zero); + CalculateMonStats(&gUnknown_Debug_2038A1C->pokemon); + GiveMonInitialMoveset(&gUnknown_Debug_2038A1C->pokemon); + gUnknown_Debug_2038A1C->unk64[1] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_LEVEL); + gUnknown_Debug_2038A1C->unk64[7] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_MOVE1); + gUnknown_Debug_2038A1C->unk64[8] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_MOVE2); + gUnknown_Debug_2038A1C->unk64[9] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_MOVE3); + gUnknown_Debug_2038A1C->unk64[10] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_MOVE4); + gUnknown_Debug_2038A1C->unk64[35] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_MAX_HP); + gUnknown_Debug_2038A1C->unk64[36] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_ATK); + gUnknown_Debug_2038A1C->unk64[37] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_DEF); + gUnknown_Debug_2038A1C->unk64[38] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPEED); + gUnknown_Debug_2038A1C->unk64[39] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPATK); + gUnknown_Debug_2038A1C->unk64[40] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPDEF); +} + +void debug_80C5EF4(void) +{ + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_HP_IV, gUnknown_Debug_2038A1C->unk64 + 13); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_HP_EV, gUnknown_Debug_2038A1C->unk64 + 14); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_ATK_IV, gUnknown_Debug_2038A1C->unk64 + 15); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_ATK_EV, gUnknown_Debug_2038A1C->unk64 + 16); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_DEF_IV, gUnknown_Debug_2038A1C->unk64 + 17); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_DEF_EV, gUnknown_Debug_2038A1C->unk64 + 18); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPEED_IV, gUnknown_Debug_2038A1C->unk64 + 19); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPEED_EV, gUnknown_Debug_2038A1C->unk64 + 20); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPATK_IV, gUnknown_Debug_2038A1C->unk64 + 21); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPATK_EV, gUnknown_Debug_2038A1C->unk64 + 22); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPDEF_IV, gUnknown_Debug_2038A1C->unk64 + 23); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPDEF_EV, gUnknown_Debug_2038A1C->unk64 + 24); + CalculateMonStats(&gUnknown_Debug_2038A1C->pokemon); + gUnknown_Debug_2038A1C->unk64[35] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_MAX_HP); + gUnknown_Debug_2038A1C->unk64[36] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_ATK); + gUnknown_Debug_2038A1C->unk64[37] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_DEF); + gUnknown_Debug_2038A1C->unk64[38] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPEED); + gUnknown_Debug_2038A1C->unk64[39] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPATK); + gUnknown_Debug_2038A1C->unk64[40] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPDEF); + +} + u16 word_83F888C[] = INCBIN_U16("graphics/debug/sprite_browser.gbapal"); u8 byte_83F88EC[] = INCBIN_U8("graphics/debug/sprite_browser.4bpp"); -- cgit v1.2.3 From 508e2a78acea7c2d04e8818d1a55bbc5a2b28fac Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 18 Apr 2018 08:42:20 -0400 Subject: debug_80C5FFC --- asm/watanabe_debug_menu.s | 299 +--------------------------------------- data/debug_menu_watanabe.s | 22 +-- src/debug/watanabe_debug_menu.c | 76 ++++++++++ 3 files changed, 91 insertions(+), 306 deletions(-) diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index c0abfa2fa..5b80700b8 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,297 +5,6 @@ .text - thumb_func_start debug_80C5FFC -debug_80C5FFC: - push {r4, r5, r6, r7, lr} - add sp, sp, #0xffffffe0 - ldr r1, ._578 @ gUnknown_Debug_083F8758 - add r0, sp, #0x10 - mov r2, #0x4 - bl memcpy - add r7, sp, #0x14 - ldr r1, ._578 + 4 @ gUnknown_Debug_083F875C - add r0, r7, #0 - mov r2, #0x8 - bl memcpy - ldr r5, ._578 + 8 @ gUnknown_Debug_2038A1C - ldr r2, [r5] - add r0, r2, #0 - add r0, r0, #0x98 - ldr r4, [r0] - mov r1, #0x1f - and r4, r4, r1 - add r0, r0, #0x8 - ldr r0, [r0] - and r0, r0, r1 - lsl r0, r0, #0x5 - orr r4, r4, r0 - add r0, r2, #0 - add r0, r0, #0xa8 - ldr r0, [r0] - and r0, r0, r1 - lsl r0, r0, #0xa - orr r4, r4, r0 - add r0, r2, #0 - add r0, r0, #0xb0 - ldr r0, [r0] - and r0, r0, r1 - lsl r0, r0, #0xf - orr r4, r4, r0 - add r0, r2, #0 - add r0, r0, #0xb8 - ldr r0, [r0] - and r0, r0, r1 - lsl r0, r0, #0x14 - orr r4, r4, r0 - add r0, r2, #0 - add r0, r0, #0xc0 - ldr r0, [r0] - and r0, r0, r1 - lsl r0, r0, #0x19 - orr r4, r4, r0 - ldr r0, [r2, #0x64] - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl NationalPokedexNumToSpecies - add r1, r0, #0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - ldr r0, [r5] - ldr r2, [r0, #0x68] - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - mov r6, #0x1 - str r6, [sp] - ldr r3, [r0, #0x74] - str r3, [sp, #0x4] - str r6, [sp, #0x8] - ldr r3, [r0, #0x70] - str r3, [sp, #0xc] - add r3, r4, #0 - bl CreateMon - ldr r2, [r5] - add r0, r2, #0 - add r0, r0, #0x80 - ldr r0, [r0] - cmp r0, #0 - beq ._573 @cond_branch - lsl r1, r0, #0x10 - lsr r1, r1, #0x10 - add r0, r2, #0 - mov r2, #0x0 - bl SetMonMoveSlot -._573: - ldr r2, [r5] - add r0, r2, #0 - add r0, r0, #0x84 - ldr r0, [r0] - cmp r0, #0 - beq ._574 @cond_branch - lsl r1, r0, #0x10 - lsr r1, r1, #0x10 - add r0, r2, #0 - mov r2, #0x1 - bl SetMonMoveSlot -._574: - ldr r2, [r5] - add r0, r2, #0 - add r0, r0, #0x88 - ldr r0, [r0] - cmp r0, #0 - beq ._575 @cond_branch - lsl r1, r0, #0x10 - lsr r1, r1, #0x10 - add r0, r2, #0 - mov r2, #0x2 - bl SetMonMoveSlot -._575: - ldr r2, [r5] - add r0, r2, #0 - add r0, r0, #0x8c - ldr r0, [r0] - cmp r0, #0 - beq ._576 @cond_branch - lsl r1, r0, #0x10 - lsr r1, r1, #0x10 - add r0, r2, #0 - mov r2, #0x3 - bl SetMonMoveSlot -._576: - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0x6c - mov r1, #0x19 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0x98 - mov r1, #0x27 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0x9c - mov r1, #0x1a - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xa0 - mov r1, #0x28 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xa4 - mov r1, #0x1b - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xa8 - mov r1, #0x29 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xac - mov r1, #0x1c - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xb0 - mov r1, #0x2a - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xb4 - mov r1, #0x1d - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xb8 - mov r1, #0x2b - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xbc - mov r1, #0x1e - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xc0 - mov r1, #0x2c - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xc4 - mov r1, #0x1f - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xc8 - mov r1, #0x16 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xcc - mov r1, #0x17 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xd0 - mov r1, #0x18 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xd4 - mov r1, #0x21 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xd8 - mov r1, #0x2f - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xdc - mov r1, #0x30 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xe0 - mov r1, #0x20 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xe4 - mov r1, #0x22 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0x90 - mov r1, #0xc - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0x94 - mov r1, #0x2e - bl SetMonData - ldr r0, [r5] - add r1, r0, #0 - add r1, r1, #0xec - ldr r2, [r1] - lsl r2, r2, #0x3 - ldr r1, ._578 + 12 @ gUnknown_Debug_083F86E8 - add r2, r2, r1 - mov r1, #0x37 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xe8 - mov r1, #0x2d - bl SetMonData - ldr r1, [r5] - add r0, r1, #0 - add r0, r0, #0xe8 - ldr r0, [r0] - cmp r0, #0 - beq ._577 @cond_branch - add r0, r1, #0 - mov r1, #0x2 - add r2, sp, #0x10 - bl SetMonData - add r2, sp, #0x1c - strb r6, [r2] - ldr r0, [r5] - mov r1, #0x3 - bl SetMonData -._577: - ldr r0, [r5] - mov r1, #0x7 - add r2, r7, #0 - bl SetMonData - mov r2, sp - add r2, r2, #0x1e - mov r0, #0xff - strh r0, [r2] - ldr r0, [r5] - mov r1, #0x23 - bl SetMonData - ldr r0, [r5] - bl CalculateMonStats - add sp, sp, #0x20 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._579: - .align 2, 0 -._578: - .word gUnknown_Debug_083F8758 - .word gUnknown_Debug_083F875C - .word gUnknown_Debug_2038A1C - .word gUnknown_Debug_083F86E8+0x4 - - thumb_func_end debug_80C5FFC - thumb_func_start debug_80C627C debug_80C627C: push {r4, r5, r6, lr} @@ -2054,7 +1763,7 @@ debug_80C6FA8: cmp r0, #0xd bhi ._689 @cond_branch lsl r0, r0, #0x1 - ldr r2, ._691 + 4 @ 0x5000102 + ldr r2, ._691 + 4 @ PLTT + 0x102 add r0, r0, r2 strh r3, [r0] ldr r1, [r1] @@ -2066,7 +1775,7 @@ debug_80C6FA8: .align 2, 0 ._691: .word gUnknown_Debug_2038A20 - .word 0x5000102 + .word PLTT + 0x102 ._689: ldrh r1, [r4, #0x30] mov r0, #0x20 @@ -2202,7 +1911,7 @@ debug_80C6FA8: ldr r0, [r2] ldrb r1, [r0, #0x7] lsl r1, r1, #0x1 - ldr r2, ._707 + 4 @ 0x5000142 + ldr r2, ._707 + 4 @ PLTT + 0x142 add r1, r1, r2 ldr r2, ._707 + 8 @ gUnknown_Debug_083F8790 ldrb r0, [r0, #0x8] @@ -2219,7 +1928,7 @@ debug_80C6FA8: .align 2, 0 ._707: .word gUnknown_Debug_2038A20 - .word 0x5000142 + .word PLTT + 0x142 .word gUnknown_Debug_083F8790 thumb_func_end debug_80C6FA8 diff --git a/data/debug_menu_watanabe.s b/data/debug_menu_watanabe.s index b409ecab3..a8bd429a4 100644 --- a/data/debug_menu_watanabe.s +++ b/data/debug_menu_watanabe.s @@ -630,19 +630,19 @@ gUnknown_Debug_083F875C:: @ 0x83F875C gUnknown_Debug_083F8764:: .string " $" - .byte 0, 0 + .align 2 gUnknown_Debug_083F8768:: - .4byte 0x00000001 - .4byte 0x0000000a - .4byte 0x00000064 - .4byte 0x000003e8 - .4byte 0x00002710 - .4byte 0x000186a0 - .4byte 0x000f4240 - .4byte 0x00989680 - .4byte 0x05f5e100 - .4byte 0x3b9aca00 + .4byte 1 + .4byte 10 + .4byte 100 + .4byte 1000 + .4byte 10000 + .4byte 100000 + .4byte 1000000 + .4byte 10000000 + .4byte 100000000 + .4byte 1000000000 gUnknown_Debug_083F8790:: .2byte 0x0000 diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index 33b5e8a29..16fe342e9 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -5,6 +5,7 @@ #include "gba/flash_internal.h" #include "constants/items.h" #include "constants/species.h" +#include "constants/moves.h" #include "constants/songs.h" #include "debug.h" #include "palette.h" @@ -162,6 +163,8 @@ extern const u8 gUnknown_Debug_083F8544[2]; // = _("♂"); extern const u8 gUnknown_Debug_083F8546[2]; // = _("♀"); extern const u8 gUnknown_Debug_083F854A[3]; // = _("ON"); extern const u8 gUnknown_Debug_083F854D[4]; // = _("OFF"); +extern const u8 gUnknown_Debug_083F8758[4]; // = _("たまご"); +extern const u8 gUnknown_Debug_083F875C[8]; // = _("DebugーG"); #define SPRITETAG_WATANABE 0x1000 @@ -2007,7 +2010,80 @@ void debug_80C5EF4(void) gUnknown_Debug_2038A1C->unk64[38] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPEED); gUnknown_Debug_2038A1C->unk64[39] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPATK); gUnknown_Debug_2038A1C->unk64[40] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPDEF); +} + +void debug_80C5FFC(void) +{ + u32 ivs; + // u8 sp10[] = _("たまご"); + // u8 sp14[] = _("DebugーG"); + + u8 sp10[ARRAY_COUNT(gUnknown_Debug_083F8758)]; + u8 sp14[ARRAY_COUNT(gUnknown_Debug_083F875C)]; + u8 one; + u16 ff; + + memcpy(sp10, gUnknown_Debug_083F8758, sizeof(gUnknown_Debug_083F8758)); + memcpy(sp14, gUnknown_Debug_083F875C, sizeof(gUnknown_Debug_083F875C)); + + ivs = gUnknown_Debug_2038A1C->unk64[13] & 0x1f; + ivs |= (gUnknown_Debug_2038A1C->unk64[15] & 0x1f) << 5; + ivs |= (gUnknown_Debug_2038A1C->unk64[17] & 0x1f) << 10; + ivs |= (gUnknown_Debug_2038A1C->unk64[19] & 0x1f) << 15; + ivs |= (gUnknown_Debug_2038A1C->unk64[21] & 0x1f) << 20; + ivs |= (gUnknown_Debug_2038A1C->unk64[23] & 0x1f) << 25; + + CreateMon(&gUnknown_Debug_2038A1C->pokemon, NationalPokedexNumToSpecies(gUnknown_Debug_2038A1C->unk64[0]), gUnknown_Debug_2038A1C->unk64[1], ivs, TRUE, gUnknown_Debug_2038A1C->unk64[4], TRUE, gUnknown_Debug_2038A1C->unk64[3]); + + if (gUnknown_Debug_2038A1C->unk64[7] != MOVE_NONE) + SetMonMoveSlot(&gUnknown_Debug_2038A1C->pokemon, gUnknown_Debug_2038A1C->unk64[7], 0); + if (gUnknown_Debug_2038A1C->unk64[8] != MOVE_NONE) + SetMonMoveSlot(&gUnknown_Debug_2038A1C->pokemon, gUnknown_Debug_2038A1C->unk64[8], 1); + if (gUnknown_Debug_2038A1C->unk64[9] != MOVE_NONE) + SetMonMoveSlot(&gUnknown_Debug_2038A1C->pokemon, gUnknown_Debug_2038A1C->unk64[9], 2); + if (gUnknown_Debug_2038A1C->unk64[10] != MOVE_NONE) + SetMonMoveSlot(&gUnknown_Debug_2038A1C->pokemon, gUnknown_Debug_2038A1C->unk64[10], 3); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_EXP, gUnknown_Debug_2038A1C->unk64 + 2); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_HP_IV, gUnknown_Debug_2038A1C->unk64 + 13); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_HP_EV, gUnknown_Debug_2038A1C->unk64 + 14); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_ATK_IV, gUnknown_Debug_2038A1C->unk64 + 15); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_ATK_EV, gUnknown_Debug_2038A1C->unk64 + 16); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_DEF_IV, gUnknown_Debug_2038A1C->unk64 + 17); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_DEF_EV, gUnknown_Debug_2038A1C->unk64 + 18); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPEED_IV, gUnknown_Debug_2038A1C->unk64 + 19); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPEED_EV, gUnknown_Debug_2038A1C->unk64 + 20); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPATK_IV, gUnknown_Debug_2038A1C->unk64 + 21); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPATK_EV, gUnknown_Debug_2038A1C->unk64 + 22); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPDEF_IV, gUnknown_Debug_2038A1C->unk64 + 23); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPDEF_EV, gUnknown_Debug_2038A1C->unk64 + 24); + + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_COOL, gUnknown_Debug_2038A1C->unk64 + 25); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_BEAUTY, gUnknown_Debug_2038A1C->unk64 + 26); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_CUTE, gUnknown_Debug_2038A1C->unk64 + 27); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SMART, gUnknown_Debug_2038A1C->unk64 + 28); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_TOUGH, gUnknown_Debug_2038A1C->unk64 + 29); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SHEEN, gUnknown_Debug_2038A1C->unk64 + 30); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_FRIENDSHIP, gUnknown_Debug_2038A1C->unk64 + 31); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_POKERUS, gUnknown_Debug_2038A1C->unk64 + 32); + + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_HELD_ITEM, gUnknown_Debug_2038A1C->unk64 + 11); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_ALT_ABILITY, gUnknown_Debug_2038A1C->unk64 + 12); + + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_STATUS, &gUnknown_Debug_083F86E8[gUnknown_Debug_2038A1C->unk64[34]].data.type3); + + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_IS_EGG, gUnknown_Debug_2038A1C->unk64 + 33); + if (gUnknown_Debug_2038A1C->unk64[33]) + { + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_NICKNAME, sp10); + one = LANGUAGE_JAPANESE; + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_LANGUAGE, &one); + } + + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_OT_NAME, sp14); + ff = 0xff; + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_MET_LOCATION, &ff); + CalculateMonStats(&gUnknown_Debug_2038A1C->pokemon); } u16 word_83F888C[] = INCBIN_U16("graphics/debug/sprite_browser.gbapal"); -- cgit v1.2.3 From 3920dd26d0c228460cd9558d226d1f44ed9d7b67 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 18 Apr 2018 22:45:55 -0400 Subject: through debug_80C689C --- asm/watanabe_debug_menu.s | 822 ---------------------------------------- data/debug_menu_watanabe.s | 175 +++++---- src/debug/watanabe_debug_menu.c | 189 ++++++++- 3 files changed, 289 insertions(+), 897 deletions(-) diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index 5b80700b8..17a7b01f1 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,828 +5,6 @@ .text - thumb_func_start debug_80C627C -debug_80C627C: - push {r4, r5, r6, lr} - add sp, sp, #0xfffffff8 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - add r6, r4, #0 - ldr r1, ._584 @ gUnknown_Debug_083F7FD4 - mov r0, sp - mov r2, #0x2 - bl memcpy - add r5, sp, #0x4 - ldr r1, ._584 + 4 @ gUnknown_Debug_083F8764 - add r0, r5, #0 - mov r2, #0x2 - bl memcpy - cmp r4, #0x1 - beq ._580 @cond_branch - cmp r4, #0x1 - bgt ._581 @cond_branch - cmp r4, #0 - beq ._582 @cond_branch - b ._595 -._585: - .align 2, 0 -._584: - .word gUnknown_Debug_083F7FD4 - .word gUnknown_Debug_083F8764 -._581: - cmp r6, #0x2 - beq ._586 @cond_branch - b ._595 -._582: - ldr r0, ._589 @ gUnknown_Debug_2038A1C - ldr r0, [r0] - ldr r1, ._589 + 4 @ 0x169 - add r0, r0, r1 - b ._588 -._590: - .align 2, 0 -._589: - .word gUnknown_Debug_2038A1C - .word 0x169 -._580: - ldr r4, ._593 @ gUnknown_Debug_2038A1C - ldr r3, [r4] - ldr r1, ._593 + 4 @ 0x169 - add r0, r3, r1 - ldrb r2, [r0] - ldr r1, ._593 + 8 @ gUnknown_Debug_083F8698 - mov r6, #0xb4 - lsl r6, r6, #0x1 - add r0, r3, r6 - ldrb r0, [r0] - lsl r0, r0, #0x3 - add r0, r0, r1 - ldrb r0, [r0, #0x4] - sub r0, r0, #0x1 - cmp r2, r0 - bge ._595 @cond_branch - lsl r2, r2, #0x19 - mov r0, #0xa0 - lsl r0, r0, #0x13 - add r2, r2, r0 - lsr r2, r2, #0x18 - add r0, r5, #0 - mov r1, #0x1 - bl Menu_PrintText - ldr r0, [r4] - ldr r2, ._593 + 4 @ 0x169 - add r1, r0, r2 - ldrb r0, [r1] - add r0, r0, #0x1 - strb r0, [r1] - ldr r0, [r4] - add r0, r0, r2 -._588: - ldrb r2, [r0] - lsl r2, r2, #0x19 - mov r6, #0xa0 - lsl r6, r6, #0x13 - add r2, r2, r6 - lsr r2, r2, #0x18 - mov r0, sp - mov r1, #0x1 - bl Menu_PrintText - b ._595 -._594: - .align 2, 0 -._593: - .word gUnknown_Debug_2038A1C - .word 0x169 - .word gUnknown_Debug_083F8698 -._586: - ldr r4, ._596 @ gUnknown_Debug_2038A1C - ldr r0, [r4] - ldr r2, ._596 + 4 @ 0x169 - add r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0 - beq ._595 @cond_branch - add r2, r0, #0 - lsl r2, r2, #0x19 - mov r6, #0xa0 - lsl r6, r6, #0x13 - add r2, r2, r6 - lsr r2, r2, #0x18 - add r0, r5, #0 - mov r1, #0x1 - bl Menu_PrintText - ldr r0, [r4] - ldr r2, ._596 + 4 @ 0x169 - add r1, r0, r2 - ldrb r0, [r1] - sub r0, r0, #0x1 - strb r0, [r1] - ldr r0, [r4] - add r0, r0, r2 - ldrb r2, [r0] - lsl r2, r2, #0x19 - add r2, r2, r6 - lsr r2, r2, #0x18 - mov r0, sp - mov r1, #0x1 - bl Menu_PrintText -._595: - add sp, sp, #0x8 - pop {r4, r5, r6} - pop {r0} - bx r0 -._597: - .align 2, 0 -._596: - .word gUnknown_Debug_2038A1C - .word 0x169 - - thumb_func_end debug_80C627C - - thumb_func_start debug_80C6384 -debug_80C6384: - push {r4, r5, r6, r7, lr} - mov r7, r9 - mov r6, r8 - push {r6, r7} - mov r0, #0x0 - mov r1, #0x4 - mov r2, #0x1d - mov r3, #0x13 - bl Menu_DrawStdWindowFrame - mov r5, #0x0 - ldr r3, ._600 @ gUnknown_Debug_083F8698 - ldr r1, ._600 + 4 @ gUnknown_Debug_2038A1C - ldr r0, [r1] - mov r2, #0xb4 - lsl r2, r2, #0x1 - add r0, r0, r2 - ldrb r0, [r0] - lsl r0, r0, #0x3 - add r0, r0, r3 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #0xff - beq ._598 @cond_branch - add r4, r1, #0 - ldr r0, ._600 + 8 @ 0x16b - mov r9, r0 - mov r8, r3 - add r7, r2, #0 - mov r6, #0x1 -._599: - ldr r0, [r4] - add r0, r0, r9 - mov r1, #0xfc - strb r1, [r0] - ldr r0, [r4] - add r1, r1, #0x70 - add r0, r0, r1 - strb r6, [r0] - ldr r0, [r4] - ldr r2, ._600 + 12 @ 0x16d - add r0, r0, r2 - strb r6, [r0] - ldr r1, [r4] - add r2, r2, #0x1 - add r0, r1, r2 - add r1, r1, r7 - ldrb r1, [r1] - lsl r1, r1, #0x3 - add r1, r1, r8 - ldr r1, [r1] - add r1, r1, r5 - ldrb r1, [r1] - mov r2, #0x1 - bl debug_80C5738 - ldr r0, [r4] - add r0, r0, r9 - lsl r2, r5, #0x19 - mov r1, #0xa0 - lsl r1, r1, #0x13 - add r2, r2, r1 - lsr r2, r2, #0x18 - mov r1, #0x2 - bl Menu_PrintText - add r0, r5, #1 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - ldr r0, [r4] - add r0, r0, r7 - ldrb r0, [r0] - lsl r0, r0, #0x3 - add r0, r0, r8 - ldr r0, [r0] - add r0, r0, r5 - ldrb r0, [r0] - cmp r0, #0xff - bne ._599 @cond_branch -._598: - pop {r3, r4} - mov r8, r3 - mov r9, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._601: - .align 2, 0 -._600: - .word gUnknown_Debug_083F8698 - .word gUnknown_Debug_2038A1C - .word 0x16b - .word 0x16d - - thumb_func_end debug_80C6384 - - thumb_func_start debug_80C643C -debug_80C643C: - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r0, #0x2 - mov r1, #0x5 - mov r2, #0x1c - mov r3, #0x12 - bl Menu_BlankWindowRect - mov r5, #0x0 - ldr r6, ._605 @ gUnknown_Debug_083F8698 - ldr r1, ._605 + 4 @ gUnknown_Debug_2038A1C - ldr r0, [r1] - mov r3, #0xb4 - lsl r3, r3, #0x1 - add r0, r0, r3 - ldrb r0, [r0] - lsl r0, r0, #0x3 - add r0, r0, r6 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, #0xff - beq ._602 @cond_branch - add r4, r1, #0 - mov r0, #0x1 - mov r8, r0 -._607: - ldr r0, [r4] - ldr r7, ._605 + 8 @ 0x16b - add r2, r0, r7 - mov r0, #0xfc - strb r0, [r2] - ldr r0, [r4] - mov r2, #0xb6 - lsl r2, r2, #0x1 - add r0, r0, r2 - mov r7, r8 - strb r7, [r0] - ldr r2, [r4] - ldr r7, ._605 + 12 @ 0x169 - add r0, r2, r7 - ldrb r0, [r0] - cmp r5, r0 - bne ._603 @cond_branch - ldr r0, ._605 + 16 @ 0x16d - add r2, r2, r0 - mov r0, #0x2 - strb r0, [r2] - ldr r1, [r1] - mov r2, #0xb7 - lsl r2, r2, #0x1 - add r0, r1, r2 - add r1, r1, r3 - ldrb r1, [r1] - lsl r1, r1, #0x3 - add r1, r1, r6 - ldr r1, [r1] - add r1, r1, r5 - ldrb r1, [r1] - mov r2, #0x2 - bl debug_80C5738 - b ._604 -._606: - .align 2, 0 -._605: - .word gUnknown_Debug_083F8698 - .word gUnknown_Debug_2038A1C - .word 0x16b - .word 0x169 - .word 0x16d -._603: - ldr r3, ._608 @ 0x16d - add r0, r2, r3 - mov r7, r8 - strb r7, [r0] - ldr r1, [r1] - mov r2, #0xb7 - lsl r2, r2, #0x1 - add r0, r1, r2 - ldr r2, ._608 + 4 @ gUnknown_Debug_083F8698 - sub r3, r3, #0x5 - add r1, r1, r3 - ldrb r1, [r1] - lsl r1, r1, #0x3 - add r1, r1, r2 - ldr r1, [r1] - add r1, r1, r5 - ldrb r1, [r1] - mov r2, #0x1 - bl debug_80C5738 -._604: - ldr r0, [r4] - ldr r7, ._608 + 8 @ 0x16b - add r0, r0, r7 - lsl r2, r5, #0x19 - mov r1, #0xa0 - lsl r1, r1, #0x13 - add r2, r2, r1 - lsr r2, r2, #0x18 - mov r1, #0x2 - bl Menu_PrintText - add r0, r5, #1 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - ldr r6, ._608 + 4 @ gUnknown_Debug_083F8698 - add r1, r4, #0 - ldr r0, [r4] - mov r3, #0xb4 - lsl r3, r3, #0x1 - add r0, r0, r3 - ldrb r0, [r0] - lsl r0, r0, #0x3 - add r0, r0, r6 - ldr r0, [r0] - add r0, r0, r5 - ldrb r0, [r0] - cmp r0, #0xff - bne ._607 @cond_branch -._602: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._609: - .align 2, 0 -._608: - .word 0x16d - .word gUnknown_Debug_083F8698 - .word 0x16b - - thumb_func_end debug_80C643C - - thumb_func_start debug_80C6544 -debug_80C6544: - push {r4, r5, r6, r7, lr} - mov r7, r9 - mov r6, r8 - push {r6, r7} - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov r9, r0 - ldr r0, ._614 @ gUnknown_Debug_083F8698 - mov r8, r0 - ldr r6, ._614 + 4 @ gUnknown_Debug_2038A1C - ldr r1, [r6] - mov r5, #0xb4 - lsl r5, r5, #0x1 - add r0, r1, r5 - ldrb r0, [r0] - lsl r0, r0, #0x3 - add r0, r0, r8 - ldr r4, ._614 + 8 @ 0x169 - add r1, r1, r4 - ldrb r1, [r1] - ldr r0, [r0] - add r0, r0, r1 - ldrb r0, [r0] - bl debug_80C5B60 - add r7, r0, #0 - ldr r2, ._614 + 12 @ gUnknown_Debug_083F8554 - ldr r3, [r6] - add r5, r3, r5 - ldrb r0, [r5] - lsl r0, r0, #0x3 - add r0, r0, r8 - add r4, r3, r4 - ldrb r1, [r4] - ldr r0, [r0] - add r0, r0, r1 - ldrb r0, [r0] - lsl r0, r0, #0x3 - add r2, r2, #0x4 - add r0, r0, r2 - ldr r1, [r0] - ldr r5, [r1] - ldr r4, [r1, #0x4] - ldr r2, ._614 + 16 @ gUnknown_Debug_083F8768 - mov r6, #0xb5 - lsl r6, r6, #0x1 - add r0, r3, r6 - ldrb r0, [r0] - lsl r0, r0, #0x2 - add r0, r0, r2 - ldr r3, [r0] - ldrb r0, [r1, #0x8] - cmp r0, #0 - bne ._623 @cond_branch - mov r0, r9 - cmp r0, #0x1 - beq ._611 @cond_branch - cmp r0, #0x2 - beq ._612 @cond_branch - b ._623 -._615: - .align 2, 0 -._614: - .word gUnknown_Debug_083F8698 - .word gUnknown_Debug_2038A1C - .word 0x169 - .word gUnknown_Debug_083F8554 - .word gUnknown_Debug_083F8768 -._611: - sub r0, r4, r3 - cmp r7, r0 - bcs ._616 @cond_branch - add r7, r7, r3 - b ._623 -._616: - cmp r7, r4 - bcc ._622 @cond_branch - b ._619 -._612: - add r0, r5, r3 - cmp r7, r0 - bls ._620 @cond_branch - sub r7, r7, r3 - b ._623 -._620: - cmp r7, r5 - bls ._622 @cond_branch -._619: - add r7, r5, #0 - b ._623 -._622: - add r7, r4, #0 -._623: - ldr r1, ._624 @ gUnknown_Debug_083F8698 - ldr r0, ._624 + 4 @ gUnknown_Debug_2038A1C - ldr r2, [r0] - mov r3, #0xb4 - lsl r3, r3, #0x1 - add r0, r2, r3 - ldrb r0, [r0] - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r6, ._624 + 8 @ 0x169 - add r1, r2, r6 - ldrb r1, [r1] - ldr r0, [r0] - add r0, r0, r1 - ldrb r1, [r0] - add r0, r7, #0 - bl debug_80C5B74 - pop {r3, r4} - mov r8, r3 - mov r9, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._625: - .align 2, 0 -._624: - .word gUnknown_Debug_083F8698 - .word gUnknown_Debug_2038A1C - .word 0x169 - - thumb_func_end debug_80C6544 - - thumb_func_start debug_80C6630 -debug_80C6630: - push {r4, r5, lr} - add r4, r0, #0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - lsl r3, r3, #0x18 - lsr r3, r3, #0x18 - mov r0, #0xfc - strb r0, [r4] - add r4, r4, #0x1 - mov r0, #0x1 - strb r0, [r4] - add r4, r4, #0x1 - cmp r2, #0x2 - bne ._626 @cond_branch - ldr r0, ._629 @ gUnknown_Debug_2038A1C - ldr r0, [r0] - mov r5, #0xb5 - lsl r5, r5, #0x1 - add r0, r0, r5 - ldrb r0, [r0] - cmp r3, r0 - beq ._627 @cond_branch - strb r2, [r4] - b ._628 -._630: - .align 2, 0 -._629: - .word gUnknown_Debug_2038A1C -._627: - mov r0, #0x4 -._626: - strb r0, [r4] -._628: - add r0, r1, #0 - add r0, r0, #0xa1 - strb r0, [r4, #0x1] - pop {r4, r5} - pop {r0} - bx r0 - - thumb_func_end debug_80C6630 - - thumb_func_start debug_80C6678 -debug_80C6678: - push {r4, r5, r6, r7, lr} - mov r7, r9 - mov r6, r8 - push {r6, r7} - mov r9, r0 - add r6, r1, #0 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - lsl r3, r3, #0x18 - lsr r3, r3, #0x18 - mov r8, r3 - mov r7, #0x0 - sub r0, r2, #1 - cmp r0, #0x9 - bhi ._644 @cond_branch - lsl r0, r0, #0x2 - ldr r1, ._633 @ - add r0, r0, r1 - ldr r0, [r0] - mov pc, r0 -._634: - .align 2, 0 -._633: - .word ._632 -._632: - .word ._635 - .word ._636 - .word ._637 - .word ._638 - .word ._639 - .word ._640 - .word ._641 - .word ._642 - .word ._643 - .word ._644 -._644: - mov r0, r9 - add r4, r0, r7 - ldr r5, ._645 @ 0x3b9aca00 - add r0, r6, #0 - add r1, r5, #0 - bl __udivsi3 - add r1, r0, #0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - add r0, r4, #0 - mov r2, r8 - mov r3, #0x9 - bl debug_80C6630 - add r0, r6, #0 - add r1, r5, #0 - bl __umodsi3 - add r6, r0, #0 - add r0, r7, #4 - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 -._643: - mov r1, r9 - add r4, r1, r7 - ldr r5, ._645 + 4 @ 0x5f5e100 - add r0, r6, #0 - add r1, r5, #0 - bl __udivsi3 - add r1, r0, #0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - add r0, r4, #0 - mov r2, r8 - mov r3, #0x8 - bl debug_80C6630 - add r0, r6, #0 - add r1, r5, #0 - bl __umodsi3 - add r6, r0, #0 - add r0, r7, #4 - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 -._642: - mov r0, r9 - add r4, r0, r7 - ldr r5, ._645 + 8 @ 0x989680 - add r0, r6, #0 - add r1, r5, #0 - bl __udivsi3 - add r1, r0, #0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - add r0, r4, #0 - mov r2, r8 - mov r3, #0x7 - bl debug_80C6630 - add r0, r6, #0 - add r1, r5, #0 - bl __umodsi3 - add r6, r0, #0 - add r0, r7, #4 - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 -._641: - mov r1, r9 - add r4, r1, r7 - ldr r5, ._645 + 12 @ 0xf4240 - add r0, r6, #0 - add r1, r5, #0 - bl __udivsi3 - add r1, r0, #0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - add r0, r4, #0 - mov r2, r8 - mov r3, #0x6 - bl debug_80C6630 - add r0, r6, #0 - add r1, r5, #0 - bl __umodsi3 - add r6, r0, #0 - add r0, r7, #4 - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 -._640: - mov r0, r9 - add r4, r0, r7 - ldr r5, ._645 + 16 @ 0x186a0 - add r0, r6, #0 - add r1, r5, #0 - bl __udivsi3 - add r1, r0, #0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - add r0, r4, #0 - mov r2, r8 - mov r3, #0x5 - bl debug_80C6630 - add r0, r6, #0 - add r1, r5, #0 - bl __umodsi3 - add r6, r0, #0 - add r0, r7, #4 - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 -._639: - mov r1, r9 - add r4, r1, r7 - ldr r5, ._645 + 20 @ 0x2710 - add r0, r6, #0 - add r1, r5, #0 - bl __udivsi3 - add r1, r0, #0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - add r0, r4, #0 - mov r2, r8 - mov r3, #0x4 - bl debug_80C6630 - add r0, r6, #0 - add r1, r5, #0 - bl __umodsi3 - add r6, r0, #0 - add r0, r7, #4 - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 -._638: - mov r0, r9 - add r4, r0, r7 - mov r5, #0xfa - lsl r5, r5, #0x2 - add r0, r6, #0 - add r1, r5, #0 - bl __udivsi3 - add r1, r0, #0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - add r0, r4, #0 - mov r2, r8 - mov r3, #0x3 - bl debug_80C6630 - add r0, r6, #0 - add r1, r5, #0 - bl __umodsi3 - add r6, r0, #0 - add r0, r7, #4 - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 -._637: - mov r1, r9 - add r4, r1, r7 - add r0, r6, #0 - mov r1, #0x64 - bl __udivsi3 - add r1, r0, #0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - add r0, r4, #0 - mov r2, r8 - mov r3, #0x2 - bl debug_80C6630 - add r0, r6, #0 - mov r1, #0x64 - bl __umodsi3 - add r6, r0, #0 - add r0, r7, #4 - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 -._636: - mov r0, r9 - add r4, r0, r7 - add r0, r6, #0 - mov r1, #0xa - bl __udivsi3 - add r1, r0, #0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - add r0, r4, #0 - mov r2, r8 - mov r3, #0x1 - bl debug_80C6630 - add r0, r6, #0 - mov r1, #0xa - bl __umodsi3 - add r6, r0, #0 - add r0, r7, #4 - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 -._635: - mov r1, r9 - add r0, r1, r7 - lsl r1, r6, #0x18 - lsr r1, r1, #0x18 - mov r2, r8 - mov r3, #0x0 - bl debug_80C6630 - pop {r3, r4} - mov r8, r3 - mov r9, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._646: - .align 2, 0 -._645: - .word 0x3b9aca00 - .word 0x5f5e100 - .word 0x989680 - .word 0xf4240 - .word 0x186a0 - .word 0x2710 - - thumb_func_end debug_80C6678 - - thumb_func_start debug_80C689C -debug_80C689C: - push {r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - mov r3, #0x0 - ldrb r0, [r4] - b ._647 -._649: - add r1, r5, r3 - add r0, r4, r3 - ldrb r0, [r0] - strb r0, [r1] - add r0, r3, #1 - lsl r0, r0, #0x18 - lsr r3, r0, #0x18 - add r0, r4, r3 - ldrb r0, [r0] -._647: - cmp r0, #0xff - beq ._648 @cond_branch - cmp r3, r2 - bcc ._649 @cond_branch -._648: - pop {r4, r5} - pop {r0} - bx r0 - - thumb_func_end debug_80C689C - thumb_func_start debug_80C68CC debug_80C68CC: push {r4, r5, r6, r7, lr} diff --git a/data/debug_menu_watanabe.s b/data/debug_menu_watanabe.s index a8bd429a4..e214bb450 100644 --- a/data/debug_menu_watanabe.s +++ b/data/debug_menu_watanabe.s @@ -199,168 +199,189 @@ Str_83F8237: .align 2 _83F823C: - .4byte 1 - .byte 0x82, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00 + .4byte 1, 0x00000182 + .byte 0x00, 0x03 + .align 2 Str_83F8248: .string "Level$" .align 2 _83F8250: - .4byte 1 - .byte 0x64, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00 + .4byte 1, 0x00000064 + .byte 0x00, 0x03 + .align 2 Str_83F825C: .string "EXP Points$" .align 2 _83F8268: - .4byte 1 - .byte 0x80, 0x84, 0x1E, 0x00, 0x00, 0x07, 0x00, 0x00 + .4byte 1, 0x001E8480 + .byte 0x00, 0x07 + .align 2 Str_83F8274: .string "ID$" .align 2 _83F8278: - .4byte 0 - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x0A, 0x00, 0x00 + .4byte 0, 0xFFFFFFFF + .byte 0x00, 0x0A + .align 2 Str_83F8284: .string "Rnd Numbers$" .align 2 _83F8290: - .4byte 0 - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x0A, 0x00, 0x00 + .4byte 0, 0xFFFFFFFF + .byte 0x00, 0x0A + .align 2 Str_83F829C: .string "Sex$" .align 2 _83F82A0: - .4byte 0 - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00 + .4byte 0, 0x00000002 + .byte 0x00, 0xFF + .align 2 Str_83F82AC: .string "Character$" .align 2 _83F82B8: - .4byte 0 - .byte 0x18, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00 + .4byte 0, 0x00000018 + .byte 0x00, 0xFF + .align 2 Str_83F82C4: .string "Move1$" .align 2 _83F82CC: - .4byte 0 - .byte 0x62, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00 + .4byte 0, 0x00000162 + .byte 0x00, 0x03 + .align 2 Str_83F82D8: .string "Move2$" .align 2 _83F82E0: - .4byte 0 - .byte 0x62, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00 + .4byte 0, 0x00000162 + .byte 0x00, 0x03 + .align 2 Str_83F82EC: .string "Move3$" .align 2 _83F82F4: - .4byte 0 - .byte 0x62, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00 + .4byte 0, 0x00000162 + .byte 0x00, 0x03 + .align 2 Str_83F8300: .string "Move4$" .align 2 _83F8308: - .4byte 0 - .byte 0x62, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00 + .4byte 0, 0x00000162 + .byte 0x00, 0x03 + .align 2 Str_83F8314: .string "Hold$" .align 2 _83F831C: - .4byte 0 - .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00 + .4byte 0, 0x000000FF + .byte 0x00, 0x03 + .align 2 Str_83F8328: .string "SP. Ability$" .align 2 _83F8334: - .4byte 0 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00 + .4byte 0, 0x00000001 + .byte 0x00, 0xFF + .align 2 Str_83F8340: .string "HPrnd$" .align 2 _83F8348: - .4byte 0 - .byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 + .4byte 0, 0x0000001F + .byte 0x00, 0x02 + .align 2 Str_83F8354: .string "HPexp$" .align 2 _83F835C: - .4byte 0 - .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00 + .4byte 0, 0x000000FF + .byte 0x00, 0x03 + .align 2 Str_83F8368: .string "ATKrnd$" .align 2 _83F8370: - .4byte 0 - .byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 + .4byte 0, 0x0000001F + .byte 0x00, 0x02 + .align 2 Str_83F837C: .string "ATKexp$" .align 2 _83F8384: - .4byte 0 - .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00 + .4byte 0, 0x000000FF + .byte 0x00, 0x03 + .align 2 Str_83F8390: .string "DEFrnd$" .align 2 _83F8398: - .4byte 0 - .byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 + .4byte 0, 0x0000001F + .byte 0x00, 0x02 + .align 2 Str_83F83A4: .string "DEFexp$" .align 2 _83F83AC: - .4byte 0 - .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00 + .4byte 0, 0x000000FF + .byte 0x00, 0x03 + .align 2 Str_83F83B8: .string "SPDrnd$" .align 2 _83F83C0: - .4byte 0 - .byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 + .4byte 0, 0x0000001F + .byte 0x00, 0x02 + .align 2 Str_83F83CC: .string "SPDexp$" .align 2 _83F83D4: - .4byte 0 - .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00 + .4byte 0, 0x000000FF + .byte 0x00, 0x03 + .align 2 Str_83F83E0: .string "SP. ATK$" @@ -368,8 +389,9 @@ Str_83F83E0: .align 2 _83F83EC: - .4byte 0 - .byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 + .4byte 0, 0x0000001F + .byte 0x00, 0x02 + .align 2 Str_83F83F8: .string "SP. ATK$" @@ -377,8 +399,9 @@ Str_83F83F8: .align 2 _83F8404: - .4byte 0 - .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00 + .4byte 0, 0x000000FF + .byte 0x00, 0x03 + .align 2 Str_83F8410: .string "SP. DEF$" @@ -386,8 +409,9 @@ Str_83F8410: .align 2 _83F841C: - .4byte 0 - .byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 + .4byte 0, 0x0000001F + .byte 0x00, 0x02 + .align 2 Str_83F8428: .string "SP. DEF$" @@ -395,72 +419,81 @@ Str_83F8428: .align 2 _83F8434: - .4byte 0 - .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00 + .4byte 0, 0x000000FF + .byte 0x00, 0x03 + .align 2 Str_83F8440: .string "Cool$" .align 2 _83F8448: - .4byte 0 - .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00 + .4byte 0, 0x000000FF + .byte 0x00, 0x03 + .align 2 Str_83F8454: .string "Beauty$" .align 2 _83F845C: - .4byte 0 - .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00 + .4byte 0, 0x000000FF + .byte 0x00, 0x03 + .align 2 Str_83F8468: .string "Cute$" .align 2 _83F8470: - .4byte 0 - .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00 + .4byte 0, 0x000000FF + .byte 0x00, 0x03 + .align 2 Str_83F847C: .string "Smart$" .align 2 _83F8484: - .4byte 0 - .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00 + .4byte 0, 0x000000FF + .byte 0x00, 0x03 + .align 2 Str_83F8490: .string "Tough$" .align 2 _83F8498: - .4byte 0 - .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00 + .4byte 0, 0x000000FF + .byte 0x00, 0x03 + .align 2 Str_83F84A4: .string "Sheen$" .align 2 _83F84AC: - .4byte 0 - .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00 + .4byte 0, 0x000000FF + .byte 0x00, 0x03 + .align 2 Str_83F84B8: .string "Tameness$" .align 2 _83F84C4: - .4byte 0 - .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00 + .4byte 0, 0x000000FF + .byte 0x00, 0x03 + .align 2 Str_83F84D0: .string "{PK}RUS$" .align 2 _83F84D8: - .4byte 0 - .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00 + .4byte 0, 0x000000FF + .byte 0x00, 0x03 + .align 2 Str_83F84E4: .string "EGG$" @@ -468,16 +501,18 @@ Str_83F84E4: .align 2 _83F84EC: - .4byte 0 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00 + .4byte 0, 0x00000001 + .byte 0x00, 0xFF + .align 2 Str_83F84F8: .string "Status$" .align 2 _83F8500: - .4byte 0 - .byte 0x06, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00 + .4byte 0, 0x00000006 + .byte 0x00, 0xFF + .align 2 gUnknown_Debug_083F850A:: @ 0x83F850A diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index 16fe342e9..17bb4c480 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -31,7 +31,8 @@ struct WatanabeDebugMenuItemSubstruct { u32 unk0; - u8 fill4[5]; + u32 unk4; + u8 unk8; u8 unk9; }; @@ -52,10 +53,7 @@ struct WatanabeEwram18000 { u8 unk168; u8 unk169; u8 unk16a; - u8 unk16b; - u8 unk16c; - u8 unk16d; - u8 unk16e[256]; + u8 unk16b[259]; }; #define eWatanabe18000 (*(struct WatanabeEwram18000 *)(gSharedMem + 0x18000)) @@ -165,6 +163,9 @@ extern const u8 gUnknown_Debug_083F854A[3]; // = _("ON"); extern const u8 gUnknown_Debug_083F854D[4]; // = _("OFF"); extern const u8 gUnknown_Debug_083F8758[4]; // = _("たまご"); extern const u8 gUnknown_Debug_083F875C[8]; // = _("DebugーG"); +extern const u8 gUnknown_Debug_083F8764[2]; // = _(" "); + +extern const u32 gUnknown_Debug_083F8768[10]; #define SPRITETAG_WATANABE 0x1000 @@ -2086,6 +2087,184 @@ void debug_80C5FFC(void) CalculateMonStats(&gUnknown_Debug_2038A1C->pokemon); } +void debug_80C627C(u8 a0) +{ + // u8 sp00[] = _("▶"); + // u8 sp04[] = _(" "); + + u8 sp00[ARRAY_COUNT(gUnknown_Debug_083F7FD4)]; + u8 sp04[ARRAY_COUNT(gUnknown_Debug_083F8764)]; + + memcpy(sp00, gUnknown_Debug_083F7FD4, sizeof(gUnknown_Debug_083F7FD4)); + memcpy(sp04, gUnknown_Debug_083F8764, sizeof(gUnknown_Debug_083F8764)); + + switch (a0) + { + case 0: + Menu_PrintText(sp00, 1, 2 * gUnknown_Debug_2038A1C->unk169 + 5); + break; + case 1: + if (gUnknown_Debug_2038A1C->unk169 < gUnknown_Debug_083F8698[gUnknown_Debug_2038A1C->unk168].data.type3 - 1) + { + Menu_PrintText(sp04, 1, 2 * gUnknown_Debug_2038A1C->unk169 + 5); + gUnknown_Debug_2038A1C->unk169++; + Menu_PrintText(sp00, 1, 2 * gUnknown_Debug_2038A1C->unk169 + 5); + } + break; + case 2: + if (gUnknown_Debug_2038A1C->unk169 > 0) + { + Menu_PrintText(sp04, 1, 2 * gUnknown_Debug_2038A1C->unk169 + 5); + gUnknown_Debug_2038A1C->unk169--; + Menu_PrintText(sp00, 1, 2 * gUnknown_Debug_2038A1C->unk169 + 5); + } + break; + } +} + +void debug_80C6384(void) +{ + u16 i; + + Menu_DrawStdWindowFrame(0, 4, 29, 19); + for (i = 0; gUnknown_Debug_083F8698[gUnknown_Debug_2038A1C->unk168].text[i] != EOS; i++) + { + gUnknown_Debug_2038A1C->unk16b[0] = EXT_CTRL_CODE_BEGIN; + gUnknown_Debug_2038A1C->unk16b[1] = 0x01; + gUnknown_Debug_2038A1C->unk16b[2] = 0x01; + debug_80C5738(gUnknown_Debug_2038A1C->unk16b + 3, gUnknown_Debug_083F8698[gUnknown_Debug_2038A1C->unk168].text[i], 1); + Menu_PrintText(gUnknown_Debug_2038A1C->unk16b, 2, 2 * i + 5); + } +} + +void debug_80C643C(void) +{ + u16 i; + + Menu_BlankWindowRect(2, 5, 28, 18); + for (i = 0; gUnknown_Debug_083F8698[gUnknown_Debug_2038A1C->unk168].text[i] != EOS; i++) + { + gUnknown_Debug_2038A1C->unk16b[0] = EXT_CTRL_CODE_BEGIN; + gUnknown_Debug_2038A1C->unk16b[1] = 0x01; + if (i == gUnknown_Debug_2038A1C->unk169) + { + gUnknown_Debug_2038A1C->unk16b[2] = 0x02; + debug_80C5738(gUnknown_Debug_2038A1C->unk16b + 3, gUnknown_Debug_083F8698[gUnknown_Debug_2038A1C->unk168].text[i], 2); + } + else + { + gUnknown_Debug_2038A1C->unk16b[2] = 0x01; + debug_80C5738(gUnknown_Debug_2038A1C->unk16b + 3, gUnknown_Debug_083F8698[gUnknown_Debug_2038A1C->unk168].text[i], 1); + } + Menu_PrintText(gUnknown_Debug_2038A1C->unk16b, 2, 2 * i + 5); + } +} + +void debug_80C6544(u8 a0) +{ + u32 r7 = debug_80C5B60(gUnknown_Debug_083F8698[gUnknown_Debug_2038A1C->unk168].text[gUnknown_Debug_2038A1C->unk169]); + u32 r5 = gUnknown_Debug_083F8554[gUnknown_Debug_083F8698[gUnknown_Debug_2038A1C->unk168].text[gUnknown_Debug_2038A1C->unk169]].data.type4->unk0; + u32 r4 = gUnknown_Debug_083F8554[gUnknown_Debug_083F8698[gUnknown_Debug_2038A1C->unk168].text[gUnknown_Debug_2038A1C->unk169]].data.type4->unk4; + u32 r3 = gUnknown_Debug_083F8768[gUnknown_Debug_2038A1C->unk16a]; + + if (gUnknown_Debug_083F8554[gUnknown_Debug_083F8698[gUnknown_Debug_2038A1C->unk168].text[gUnknown_Debug_2038A1C->unk169]].data.type4->unk8 == 0) + { + switch (a0) + { + case 1: + if (r7 < r4 - r3) + r7 += r3; + else if (r7 < r4) + r7 = r4; + else + r7 = r5; + break; + case 2: + if (r7 > r5 + r3) + r7 -= r3; + else if (r7 > r5) + r7 = r5; + else + r7 = r4; + break; + } + } + debug_80C5B74(r7, gUnknown_Debug_083F8698[gUnknown_Debug_2038A1C->unk168].text[gUnknown_Debug_2038A1C->unk169]); +} + +void debug_80C6630(u8 * a0, u8 a1, u8 a2, u8 a3) +{ + *a0++ = EXT_CTRL_CODE_BEGIN; + *a0++ = 0x01; + if (a2 == 2) + { + if (a3 != gUnknown_Debug_2038A1C->unk16a) + *a0 = 0x02; + else + *a0 = 0x04; + } + else + *a0 = 0x01; + a0[1] = a1 + CHAR_0; +} + +void debug_80C6678(u8 * a0, u32 a1, u8 a2, u8 a3) +{ + u8 r7 = 0; + + switch (a2) + { + default: + case 10: + debug_80C6630(a0 + r7, a1 / 1000000000, a3, 9); + a1 %= 1000000000; + r7 += 4; + case 9: + debug_80C6630(a0 + r7, a1 / 100000000, a3, 8); + a1 %= 100000000; + r7 += 4; + case 8: + debug_80C6630(a0 + r7, a1 / 10000000, a3, 7); + a1 %= 10000000; + r7 += 4; + case 7: + debug_80C6630(a0 + r7, a1 / 1000000, a3, 6); + a1 %= 1000000; + r7 += 4; + case 6: + debug_80C6630(a0 + r7, a1 / 100000, a3, 5); + a1 %= 100000; + r7 += 4; + case 5: + debug_80C6630(a0 + r7, a1 / 10000, a3, 4); + a1 %= 10000; + r7 += 4; + case 4: + debug_80C6630(a0 + r7, a1 / 1000, a3, 3); + a1 %= 1000; + r7 += 4; + case 3: + debug_80C6630(a0 + r7, a1 / 100, a3, 2); + a1 %= 100; + r7 += 4; + case 2: + debug_80C6630(a0 + r7, a1 / 10, a3, 1); + a1 %= 10; + r7 += 4; + case 1: + debug_80C6630(a0 + r7, a1, a3, 0); + break; + } +} + +void debug_80C689C(u8 * a0, const u8 * a1, u8 a2) +{ + u8 i; + + for (i = 0; a1[i] != EOS && i < a2; i++) + a0[i] = a1[i]; +} + u16 word_83F888C[] = INCBIN_U16("graphics/debug/sprite_browser.gbapal"); u8 byte_83F88EC[] = INCBIN_U8("graphics/debug/sprite_browser.4bpp"); -- cgit v1.2.3 From b229bfee70355a6ff5e416693d3138e14a2afaa2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 19 Apr 2018 08:43:15 -0400 Subject: through InitSeePokemonGraphics --- asm/watanabe_debug_menu.s | 266 ---------------------------------------- src/debug/watanabe_debug_menu.c | 102 ++++++++++++++- 2 files changed, 101 insertions(+), 267 deletions(-) diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index 17a7b01f1..08601042a 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,272 +5,6 @@ .text - thumb_func_start debug_80C68CC -debug_80C68CC: - push {r4, r5, r6, r7, lr} - add sp, sp, #0xfffffff8 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - lsl r1, r1, #0x18 - lsr r6, r1, #0x18 - lsl r2, r2, #0x18 - lsr r5, r2, #0x18 - lsl r3, r3, #0x18 - lsr r3, r3, #0x18 - mov r2, #0x0 - mov r1, #0x0 -._650: - mov r7, sp - add r0, r7, r2 - strb r1, [r0] - add r0, r2, #1 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - cmp r2, #0x3 - bls ._650 @cond_branch - mov r1, sp - mov r0, #0xff - strb r0, [r1, #0x4] - cmp r3, #0x2 - beq ._651 @cond_branch - cmp r3, #0x2 - bgt ._652 @cond_branch - cmp r3, #0x1 - beq ._653 @cond_branch - b ._654 -._652: - cmp r3, #0x3 - beq ._655 @cond_branch -._654: - mov r1, sp - lsr r0, r4, #0xc - strb r0, [r1] -._655: - mov r1, sp - mov r0, #0xf0 - lsl r0, r0, #0x4 - and r0, r0, r4 - lsr r0, r0, #0x8 - strb r0, [r1, #0x1] -._651: - mov r1, sp - mov r0, #0xf0 - and r0, r0, r4 - lsr r0, r0, #0x4 - strb r0, [r1, #0x2] -._653: - mov r2, sp - mov r1, #0xf - add r0, r4, #0 - and r0, r0, r1 - strb r0, [r2, #0x3] - mov r2, #0x0 -._658: - mov r0, sp - add r1, r0, r2 - ldrb r0, [r1] - cmp r0, #0x9 - bhi ._656 @cond_branch - add r0, r0, #0xa1 - b ._657 -._656: - add r0, r0, #0xb1 -._657: - strb r0, [r1] - add r0, r2, #1 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - cmp r2, #0x3 - bls ._658 @cond_branch - mov r0, #0x4 - sub r0, r0, r3 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - add r0, r0, sp - add r1, r6, #0 - add r2, r5, #0 - bl Menu_PrintText - add sp, sp, #0x8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - - thumb_func_end debug_80C68CC - - thumb_func_start InitSeePokemonGraphics -InitSeePokemonGraphics: - push {r4, r5, r6, lr} - add sp, sp, #0xfffffff8 - bl debug_80C35DC - ldr r1, ._659 @ byte_83F88EC - ldr r2, ._659 + 4 @ 0x600e000 - ldr r0, ._659 + 8 @ 0x40000d4 - str r1, [r0] - str r2, [r0, #0x4] - ldr r1, ._659 + 12 @ 0x80000400 - str r1, [r0, #0x8] - ldr r0, [r0, #0x8] - ldr r0, ._659 + 16 @ word_83F888C - mov r1, #0x80 - mov r2, #0x60 - bl LoadPalette - ldr r1, ._659 + 20 @ 0x7fff - add r0, sp, #0x4 - strh r1, [r0] - mov r1, #0x0 - mov r2, #0x2 - bl LoadPalette - mov r0, #0x1 - neg r0, r0 - mov r5, #0x0 - str r5, [sp] - mov r1, #0x0 - mov r2, #0x10 - mov r3, #0x0 - bl BeginNormalPaletteFade - ldr r0, ._659 + 24 @ 0x4000040 - mov r6, #0x0 - strh r5, [r0] - add r0, r0, #0x4 - strh r5, [r0] - sub r0, r0, #0x2 - strh r5, [r0] - add r0, r0, #0x4 - strh r5, [r0] - ldr r1, ._659 + 28 @ 0x4000048 - mov r0, #0x3f - strh r0, [r1] - add r1, r1, #0x2 - mov r0, #0x1f - strh r0, [r1] - add r1, r1, #0x6 - mov r0, #0xf1 - strh r0, [r1] - ldr r0, ._659 + 32 @ 0x4000052 - strh r5, [r0] - add r1, r1, #0x4 - mov r0, #0x7 - strh r0, [r1] - ldr r3, ._659 + 36 @ 0x4000208 - ldrh r2, [r3] - strh r5, [r3] - ldr r4, ._659 + 40 @ 0x4000200 - ldrh r0, [r4] - mov r1, #0x1 - orr r0, r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r0, ._659 + 44 @ debug_80C3758 - bl SetVBlankCallback - ldr r0, ._659 + 48 @ debug_80C370C - bl SetMainCallback2 - bl sub_809D51C - ldr r1, ._659 + 52 @ 0x4000008 - ldr r2, ._659 + 56 @ 0x1f0b - add r0, r2, #0 - strh r0, [r1] - add r1, r1, #0x2 - ldr r2, ._659 + 60 @ 0x1e0a - add r0, r2, #0 - strh r0, [r1] - sub r1, r1, #0xa - mov r2, #0xcd - lsl r2, r2, #0x6 - add r0, r2, #0 - strh r0, [r1] - ldr r0, ._659 + 64 @ debug_80C6B00 - mov r1, #0x0 - bl CreateTask - ldr r1, ._659 + 68 @ gUnknown_Debug_2038A20 - ldr r0, ._659 + 72 @ 0x2018000 - str r0, [r1] - ldr r1, ._659 + 76 @ 0x115 - strh r1, [r0] - strb r6, [r0, #0x2] - strb r6, [r0, #0x3] - strb r6, [r0, #0x5] - strb r6, [r0, #0x7] - strb r6, [r0, #0xa] - strb r6, [r0, #0x8] - ldr r4, ._659 + 80 @ gSpriteTemplate_83F8874 - add r0, r4, #0 - mov r1, #0x6c - mov r2, #0x74 - mov r3, #0x0 - bl CreateSprite - add r1, r0, #0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - ldr r6, ._659 + 84 @ gSprites - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r6 - strh r5, [r0, #0x2e] - mov r1, #0x0 - bl StartSpriteAnim - add r0, r4, #0 - mov r1, #0x6c - mov r2, #0x74 - mov r3, #0x0 - bl CreateSprite - add r1, r0, #0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r6 - mov r1, #0x1 - strh r1, [r0, #0x2e] - bl StartSpriteAnim - add r0, r4, #0 - mov r1, #0x6c - mov r2, #0x74 - mov r3, #0x0 - bl CreateSprite - add r1, r0, #0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r6 - mov r1, #0x2 - strh r1, [r0, #0x2e] - bl StartSpriteAnim - add sp, sp, #0x8 - pop {r4, r5, r6} - pop {r0} - bx r0 -._660: - .align 2, 0 -._659: - .word byte_83F88EC - .word 0x600e000 - .word 0x40000d4 - .word 0x80000400 - .word word_83F888C - .word 0x7fff - .word 0x4000040 - .word 0x4000048 - .word 0x4000052 - .word 0x4000208 - .word 0x4000200 - .word debug_80C3758+1 - .word debug_80C370C+1 - .word 0x4000008 - .word 0x1f0b - .word 0x1e0a - .word debug_80C6B00+1 - .word gUnknown_Debug_2038A20 - .word 0x2018000 - .word 0x115 - .word gSpriteTemplate_83F8874 - .word gSprites - - thumb_func_end InitSeePokemonGraphics - thumb_func_start debug_80C6B00 debug_80C6B00: push {r4, r5, r6, r7, lr} diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index 17bb4c480..483a3d9d0 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -28,6 +28,7 @@ #include "battle_bg.h" #include "item.h" #include "pokemon_summary_screen.h" +#include "pokemon_icon.h" struct WatanabeDebugMenuItemSubstruct { u32 unk0; @@ -56,12 +57,26 @@ struct WatanabeEwram18000 { u8 unk16b[259]; }; +struct WatanabeEwram18000_2 { + u16 unk0; + u8 unk2; + u8 unk3; + u8 unk4; + u8 unk5; + u8 unk6; + u8 unk7; + u8 unk8; + u8 unk9; + u8 unkA; +}; + #define eWatanabe18000 (*(struct WatanabeEwram18000 *)(gSharedMem + 0x18000)) +#define eWatanabe18000_2 (*(struct WatanabeEwram18000_2 *)(gSharedMem + 0x18000)) EWRAM_DATA u8 gUnknown_Debug_20389EC[0x20] = { 0 }; EWRAM_DATA u8 gUnknown_Debug_2038A0C[0x10] = { 0 }; EWRAM_DATA struct WatanabeEwram18000 * gUnknown_Debug_2038A1C = NULL; -EWRAM_DATA u8 gUnknown_Debug_2038A20[4] = { 0 }; +EWRAM_DATA struct WatanabeEwram18000_2 * gUnknown_Debug_2038A20 = NULL; u32 byte_3005E30; @@ -113,6 +128,7 @@ void debug_80C6544(u8); void debug_80C689C(u8 *, const u8 *, u8); void debug_80C6678(u8 *, u32, u8, u8); void debug_80C68CC(u16, u8, u8, u8); +void debug_80C6B00(u8 taskId); void debug_80C7584(struct Sprite *); extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F8068[5]; @@ -2265,7 +2281,91 @@ void debug_80C689C(u8 * a0, const u8 * a1, u8 a2) a0[i] = a1[i]; } +void debug_80C68CC(u16 a0, u8 a1, u8 a2, u8 a3) +{ + u8 sp00[5]; + u8 i; + + for (i = 0; i < 4; i++) + sp00[i] = 0; + sp00[4] = EOS; + + switch (a3) + { + default: + sp00[0] = a0 >> 12; + case 3: + sp00[1] = (a0 & 0x0F00) >> 8; + case 2: + sp00[2] = (a0 & 0x00F0) >> 4; + case 1: + sp00[3] = (a0 & 0x000F); + break; + } + + for (i = 0; i < 4; i++) + { + if (sp00[i] < 10) + sp00[i] += CHAR_0; + else + sp00[i] += CHAR_A - 10; + } + + Menu_PrintText(sp00 + (u8)(4 - a3), a1, a2); +} + u16 word_83F888C[] = INCBIN_U16("graphics/debug/sprite_browser.gbapal"); u8 byte_83F88EC[] = INCBIN_U8("graphics/debug/sprite_browser.4bpp"); +void InitSeePokemonGraphics(void) +{ + u16 pal; + u8 spriteId; + debug_80C35DC(); + DmaCopy16Defvars(3, byte_83F88EC, BG_SCREEN_ADDR(28), sizeof(byte_83F88EC)); + LoadPalette(word_83F888C, 0x80, sizeof(word_83F888C)); + pal = RGB(31, 31, 31); + LoadPalette(&pal, 0, sizeof(pal)); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); + REG_WIN0H = 0; + REG_WIN0V = 0; + REG_WIN1H = 0; + REG_WIN1V = 0; + REG_WININ = 0x3F; + REG_WINOUT = 0x1F; + REG_BLDCNT = BLDCNT_TGT1_BG0 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN; + REG_BLDALPHA = 0; + REG_BLDY = 0x07; + { + u16 imeBak = REG_IME; + REG_IME = 0; + REG_IE |= INTR_FLAG_VBLANK; + REG_IME = imeBak; + } + SetVBlankCallback(debug_80C3758); + SetMainCallback2(debug_80C370C); + sub_809D51C(); + REG_BG0CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(31); + REG_BG1CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(30); + REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON; + CreateTask(debug_80C6B00, 0); + gUnknown_Debug_2038A20 = &eWatanabe18000_2; + gUnknown_Debug_2038A20->unk0 = 0x115; + gUnknown_Debug_2038A20->unk2 = 0; + gUnknown_Debug_2038A20->unk3 = 0; + gUnknown_Debug_2038A20->unk5 = 0; + gUnknown_Debug_2038A20->unk7 = 0; + gUnknown_Debug_2038A20->unkA = 0; + gUnknown_Debug_2038A20->unk8 = 0; + spriteId = CreateSprite(&gSpriteTemplate_83F8874, 0x6C, 0x74, 0); + gSprites[spriteId].data[0] = 0; + StartSpriteAnim(gSprites + spriteId, 0); + spriteId = CreateSprite(&gSpriteTemplate_83F8874, 0x6C, 0x74, 0); + gSprites[spriteId].data[0] = 1; + StartSpriteAnim(gSprites + spriteId, 1); + spriteId = CreateSprite(&gSpriteTemplate_83F8874, 0x6C, 0x74, 0); + gSprites[spriteId].data[0] = 2; + StartSpriteAnim(gSprites + spriteId, 2); +} + #endif // DEBUG -- cgit v1.2.3 From b5e253af0df17caa6ea5a93374f53a0920d041be Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 19 Apr 2018 19:42:00 -0400 Subject: through debug_80C6CB8 --- asm/watanabe_debug_menu.s | 450 ---------------------------------------- include/pokedex.h | 2 + src/debug/watanabe_debug_menu.c | 92 ++++++++ 3 files changed, 94 insertions(+), 450 deletions(-) diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index 08601042a..c19ea14da 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,456 +5,6 @@ .text - thumb_func_start debug_80C6B00 -debug_80C6B00: - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - add sp, sp, #0xffffffec - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 - ldr r1, ._666 @ gUnknown_Debug_083F8815 - mov r0, sp - mov r2, #0x12 - bl memcpy - mov r0, #0xa - mov r1, #0x0 - mov r2, #0xf - mov r3, #0x7 - bl Menu_DrawStdWindowFrame - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x9 - mov r3, #0x9 - bl Menu_DrawStdWindowFrame - mov r0, #0x0 - mov r1, #0xa - mov r2, #0x9 - mov r3, #0x13 - bl Menu_DrawStdWindowFrame - mov r0, #0x10 - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x7 - bl Menu_DrawStdWindowFrame - ldr r0, ._666 + 4 @ gUnknown_Debug_083F87D0 - mov r1, #0x11 - mov r2, #0x1 - bl Menu_PrintText - ldr r0, ._666 + 8 @ gUnknown_Debug_083F87D8 - mov r1, #0x1b - mov r2, #0x1 - bl Menu_PrintText - ldr r0, ._666 + 12 @ gUnknown_Debug_083F87E0 - mov r1, #0x11 - mov r2, #0x5 - bl Menu_PrintText - mov r0, #0xa - mov r1, #0x8 - mov r2, #0x1d - mov r3, #0xc - bl Menu_DrawStdWindowFrame - mov r2, #0x0 - ldr r4, ._666 + 16 @ 0x600fa56 - ldr r0, ._666 + 20 @ 0xa311 - add r3, r0, #0 -._661: - lsl r0, r2, #0x1 - add r0, r0, r4 - add r1, r2, r3 - strh r1, [r0] - add r0, r2, #1 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - cmp r2, #0xe - bls ._661 @cond_branch - mov r2, #0x0 - ldr r5, ._666 + 24 @ gUnknown_Debug_083F87F4 - lsl r6, r7, #0x2 - mov r8, r6 - ldr r4, ._666 + 28 @ 0x600f256 - ldr r0, ._666 + 32 @ 0x8301 - add r3, r0, #0 -._662: - lsl r0, r2, #0x1 - add r0, r0, r4 - add r1, r2, r3 - strh r1, [r0] - add r0, r2, #1 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - cmp r2, #0xe - bls ._662 @cond_branch - add r0, r5, #0 - mov r1, #0x14 - mov r2, #0xa - bl Menu_PrintText - mov r0, #0xa - mov r1, #0xd - mov r2, #0x1d - mov r3, #0x13 - bl Menu_DrawStdWindowFrame - mov r1, sp - mov r0, #0x23 - strb r0, [r1] - mov r2, #0x0 - ldr r4, ._666 + 36 @ 0x600f396 - mov r5, #0x93 - lsl r5, r5, #0x8 - add r3, r5, #0 -._663: - lsl r1, r2, #0x1 - add r1, r1, r4 - mov r6, sp - add r0, r6, r2 - ldrb r0, [r0] - add r0, r0, r3 - strh r0, [r1] - add r0, r2, #1 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - cmp r2, #0x11 - bls ._663 @cond_branch - mov r1, sp - mov r0, #0x24 - strb r0, [r1] - mov r2, #0x0 - ldr r5, ._666 + 40 @ gUnknown_Debug_083F8801 - ldr r4, ._666 + 44 @ 0x600f3d6 - mov r0, #0x93 - lsl r0, r0, #0x8 - add r3, r0, #0 -._664: - lsl r1, r2, #0x1 - add r1, r1, r4 - mov r6, sp - add r0, r6, r2 - ldrb r0, [r0] - add r0, r0, r3 - strh r0, [r1] - add r0, r2, #1 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - cmp r2, #0x11 - bls ._664 @cond_branch - mov r1, sp - mov r0, #0x25 - strb r0, [r1] - mov r2, #0x0 - ldr r4, ._666 + 48 @ 0x600f416 - mov r0, #0x93 - lsl r0, r0, #0x8 - add r3, r0, #0 -._665: - lsl r1, r2, #0x1 - add r1, r1, r4 - mov r6, sp - add r0, r6, r2 - ldrb r0, [r0] - add r0, r0, r3 - strh r0, [r1] - add r0, r2, #1 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - cmp r2, #0x11 - bls ._665 @cond_branch - add r0, r5, #0 - mov r1, #0xf - mov r2, #0x11 - bl Menu_PrintText - ldr r1, ._666 + 52 @ 0x4000040 - ldr r2, ._666 + 56 @ 0x51ef - add r0, r2, #0 - strh r0, [r1] - add r1, r1, #0x4 - ldr r5, ._666 + 60 @ 0x699f - add r0, r5, #0 - strh r0, [r1] - ldr r1, ._666 + 64 @ gTasks - mov r6, r8 - add r0, r6, r7 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._666 + 68 @ debug_80C6CB8 - str r1, [r0] - add sp, sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._667: - .align 2, 0 -._666: - .word gUnknown_Debug_083F8815 - .word gUnknown_Debug_083F87D0 - .word gUnknown_Debug_083F87D8 - .word gUnknown_Debug_083F87E0 - .word 0x600fa56 - .word 0xa311 - .word gUnknown_Debug_083F87F4 - .word 0x600f256 - .word 0x8301 - .word 0x600f396 - .word gUnknown_Debug_083F8801 - .word 0x600f3d6 - .word 0x600f416 - .word 0x4000040 - .word 0x51ef - .word 0x699f - .word gTasks - .word debug_80C6CB8+1 - - thumb_func_end debug_80C6B00 - - thumb_func_start debug_80C6CB8 -debug_80C6CB8: - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, r9 - mov r5, r8 - push {r5, r6, r7} - add sp, sp, #0xfffffff4 - mov sl, r0 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov sl, r0 - ldr r5, ._668 @ gUnknown_Debug_2038A20 - ldr r4, [r5] - ldrh r2, [r4] - lsl r0, r2, #0x3 - ldr r1, ._668 + 4 @ gMonFrontPicTable - add r0, r0, r1 - ldr r1, ._668 + 8 @ gMonFrontPicCoords - lsl r2, r2, #0x2 - add r2, r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, #0x1] - ldr r3, ._668 + 12 @ gUnknown_081FAF4C - mov r8, r3 - ldr r6, [r3] - str r6, [sp, #0x8] - ldr r3, [r3, #0x4] - str r3, [sp] - ldrh r3, [r4] - str r3, [sp, #0x4] - add r3, r6, #0 - bl DecompressPicFromTable_2 - ldr r0, [r5] - ldrh r0, [r0] - lsl r0, r0, #0x3 - ldr r7, ._668 + 16 @ gMonPaletteTable - add r0, r0, r7 - bl LoadCompressedObjectPalette - ldr r0, [r5] - ldrh r0, [r0] - mov r1, #0x1 - bl GetMonSpriteTemplate_803C56C - ldr r0, ._668 + 20 @ gUnknown_02024E8C - mov r1, #0x28 - mov r2, #0x28 - mov r3, #0x0 - bl CreateSprite - ldr r1, [r5] - strb r0, [r1, #0x2] - ldr r2, [r5] - ldrb r1, [r2, #0x2] - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - ldr r1, ._668 + 24 @ gSprites - add r0, r0, r1 - ldr r3, ._668 + 28 @ debug_69 - mov r9, r3 - str r3, [r0] - ldrb r0, [r2, #0x2] - lsl r1, r0, #0x4 - add r1, r1, r0 - lsl r1, r1, #0x2 - ldr r6, ._668 + 32 @ gSprites - add r1, r1, r6 - ldrb r2, [r1, #0x5] - mov r6, #0xd - neg r6, r6 - add r0, r6, #0 - and r0, r0, r2 - strb r0, [r1, #0x5] - ldr r4, [r5] - ldrh r2, [r4] - lsl r0, r2, #0x3 - ldr r1, ._668 + 36 @ gMonBackPicTable - add r0, r0, r1 - ldr r1, ._668 + 40 @ gMonBackPicCoords - lsl r2, r2, #0x2 - add r2, r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, #0x1] - mov r7, r8 - ldr r3, [r7, #0x8] - str r3, [sp] - ldrh r3, [r4] - str r3, [sp, #0x4] - ldr r3, [sp, #0x8] - bl DecompressPicFromTable_2 - ldr r0, [r5] - ldrh r0, [r0] - lsl r0, r0, #0x3 - ldr r1, ._668 + 16 @ gMonPaletteTable - add r0, r0, r1 - bl LoadCompressedObjectPalette - ldr r0, [r5] - ldrh r0, [r0] - mov r1, #0x2 - bl GetMonSpriteTemplate_803C56C - ldr r0, ._668 + 20 @ gUnknown_02024E8C - mov r1, #0x28 - mov r2, #0x78 - mov r3, #0x0 - bl CreateSprite - ldr r1, [r5] - strb r0, [r1, #0x3] - ldr r2, [r5] - ldrb r1, [r2, #0x3] - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - ldr r3, ._668 + 24 @ gSprites - add r0, r0, r3 - mov r7, r9 - str r7, [r0] - ldrb r1, [r2, #0x3] - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - ldr r1, ._668 + 32 @ gSprites - add r0, r0, r1 - ldrb r1, [r0, #0x5] - and r6, r6, r1 - strb r6, [r0, #0x5] - ldr r0, [r5] - ldrh r0, [r0] - ldr r1, ._668 + 44 @ sub_809D62C - mov r2, #0x0 - str r2, [sp] - str r2, [sp, #0x4] - mov r2, #0x68 - mov r3, #0x2c - bl CreateMonIcon - ldr r1, [r5] - strb r0, [r1, #0x4] - ldr r0, [r5] - ldrh r0, [r0] - bl SpeciesToNationalPokedexNum - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r2, #0xff - lsl r2, r2, #0x2 - mov r1, #0x2 - bl sub_8091738 - ldr r1, ._668 + 48 @ 0x600f858 - ldr r3, ._668 + 52 @ 0xf3fc - add r0, r3, #0 - strh r0, [r1] - add r1, r1, #0x2 - ldr r6, ._668 + 56 @ 0xf3fd - add r0, r6, #0 - strh r0, [r1] - add r1, r1, #0x3e - ldr r7, ._668 + 60 @ 0xf3fe - add r0, r7, #0 - strh r0, [r1] - add r1, r1, #0x2 - ldr r2, ._668 + 64 @ 0xf3ff - add r0, r2, #0 - strh r0, [r1] - ldr r0, [r5] - ldrh r0, [r0] - mov r1, #0x11 - mov r2, #0x3 - bl debug_80C3800 - ldr r0, [r5] - ldrh r0, [r0] - mov r1, #0x1a - mov r2, #0x5 - bl debug_80C376C - ldr r2, [r5] - ldrb r1, [r2, #0x2] - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - ldr r3, ._668 + 32 @ gSprites - add r0, r0, r3 - ldrb r0, [r0, #0x5] - lsr r0, r0, #0x4 - strb r0, [r2, #0x6] - ldr r0, [r5] - ldrb r0, [r0, #0x6] - lsl r0, r0, #0x5 - ldr r4, ._668 + 68 @ gPlttBufferUnfaded - add r0, r0, r4 - ldr r6, ._668 + 72 @ 0xffffff00 - add r1, r4, r6 - mov r2, #0x10 - bl CpuSet - ldr r0, [r5] - ldrb r0, [r0, #0x6] - lsl r0, r0, #0x5 - add r0, r0, r4 - ldr r1, ._668 + 76 @ gPlttBufferFaded - mov r2, #0x10 - bl CpuSet - ldr r1, ._668 + 80 @ gTasks - mov r7, sl - lsl r0, r7, #0x2 - add r0, r0, sl - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._668 + 84 @ debug_80C6EE8 - str r1, [r0] - ldr r0, [r5] - mov r1, #0x0 - strb r1, [r0, #0x9] - bl StopCryAndClearCrySongs - ldr r0, [r5] - ldrh r0, [r0] - mov r1, #0x0 - bl PlayCry1 - add sp, sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov r9, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._669: - .align 2, 0 -._668: - .word gUnknown_Debug_2038A20 - .word gMonFrontPicTable - .word gMonFrontPicCoords - .word gUnknown_081FAF4C - .word gMonPaletteTable - .word gUnknown_02024E8C - .word gSprites+0x1c - .word debug_69+1 - .word gSprites - .word gMonBackPicTable - .word gMonBackPicCoords - .word sub_809D62C+1 - .word 0x600f858 - .word 0xf3fc - .word 0xf3fd - .word 0xf3fe - .word 0xf3ff - .word gPlttBufferUnfaded+0x200 - .word 0xffffff00 - .word gPlttBufferFaded+0x100 - .word gTasks - .word debug_80C6EE8+1 - - thumb_func_end debug_80C6CB8 - thumb_func_start debug_80C6EE8 debug_80C6EE8: push {r4, r5, r6, lr} diff --git a/include/pokedex.h b/include/pokedex.h index 3dbbe6b8a..f051b4afe 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -46,4 +46,6 @@ extern const struct PokedexEntry gPokedexEntries[]; u16 sub_8091A4C(u16 gender, s16 x, s16 y, u16 paletteNum); u16 sub_80918EC(u16 num, s16 x, s16 y, u16 paletteNum); +void sub_8091738(u16, u16, u16); + #endif // GUARD_POKEDEX_H diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index 483a3d9d0..61cd57fcc 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -1,5 +1,6 @@ #if DEBUG #include "global.h" +#include "decompress.h" #include "ewram.h" #include "random.h" #include "gba/flash_internal.h" @@ -29,6 +30,7 @@ #include "item.h" #include "pokemon_summary_screen.h" #include "pokemon_icon.h" +#include "field_effect.h" struct WatanabeDebugMenuItemSubstruct { u32 unk0; @@ -129,6 +131,8 @@ void debug_80C689C(u8 *, const u8 *, u8); void debug_80C6678(u8 *, u32, u8, u8); void debug_80C68CC(u16, u8, u8, u8); void debug_80C6B00(u8 taskId); +void debug_80C6CB8(u8 taskId); +void debug_80C6EE8(u8 taskId); void debug_80C7584(struct Sprite *); extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F8068[5]; @@ -2368,4 +2372,92 @@ void InitSeePokemonGraphics(void) StartSpriteAnim(gSprites + spriteId, 2); } +extern const u8 gUnknown_Debug_083F8815[18]; // = {0x00, 0x10, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21}; +extern const u8 gUnknown_Debug_083F87D0[]; +extern const u8 gUnknown_Debug_083F87D8[]; +extern const u8 gUnknown_Debug_083F87E0[]; +extern const u8 gUnknown_Debug_083F87F4[]; +extern const u8 gUnknown_Debug_083F8801[]; + +void debug_80C6B00(u8 taskId) +{ + // u8 sp00[] = {0x00, 0x10, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21}; + u8 i; + u8 sp00[ARRAY_COUNT(gUnknown_Debug_083F8815)]; + memcpy(sp00, gUnknown_Debug_083F8815, sizeof(gUnknown_Debug_083F8815)); + + Menu_DrawStdWindowFrame(10, 0, 15, 7); + Menu_DrawStdWindowFrame(0, 0, 9, 9); + Menu_DrawStdWindowFrame(0, 10, 9, 19); + Menu_DrawStdWindowFrame(16, 0, 29, 7); + Menu_PrintText(gUnknown_Debug_083F87D0, 17, 1); + Menu_PrintText(gUnknown_Debug_083F87D8, 27, 1); + Menu_PrintText(gUnknown_Debug_083F87E0, 17, 5); + + Menu_DrawStdWindowFrame(10, 8, 29, 12); + for (i = 0; i < 15; i++) + ((u16 *)(VRAM + 0xFA56))[i] = 0xA311 + i; + for (i = 0; i < 15; i++) + ((u16 *)(VRAM + 0xF256))[i] = 0x8301 + i; + + Menu_PrintText(gUnknown_Debug_083F87F4, 20, 10); + Menu_DrawStdWindowFrame(10, 13, 29, 19); + + sp00[0] = 0x23; + for (i = 0; i < 18; i++) + ((u16 *)(VRAM + 0xF396))[i] = 0x9300 + sp00[i]; + sp00[0] = 0x24; + for (i = 0; i < 18; i++) + ((u16 *)(VRAM + 0xF3D6))[i] = 0x9300 + sp00[i]; + sp00[0] = 0x25; + for (i = 0; i < 18; i++) + ((u16 *)(VRAM + 0xF416))[i] = 0x9300 + sp00[i]; + + Menu_PrintText(gUnknown_Debug_083F8801, 15, 17); + + REG_WIN0H = 0x51EF; + REG_WIN0V = 0x699F; + + gTasks[taskId].func = debug_80C6CB8; +} + +void debug_80C6CB8(u8 taskId) +{ + DecompressPicFromTable_2(gMonFrontPicTable + gUnknown_Debug_2038A20->unk0, gMonFrontPicCoords[gUnknown_Debug_2038A20->unk0].coords, gMonFrontPicCoords[gUnknown_Debug_2038A20->unk0].y_offset, gUnknown_081FAF4C[0], gUnknown_081FAF4C[1], gUnknown_Debug_2038A20->unk0); + LoadCompressedObjectPalette(gMonPaletteTable + gUnknown_Debug_2038A20->unk0); + GetMonSpriteTemplate_803C56C(gUnknown_Debug_2038A20->unk0, 1); + gUnknown_Debug_2038A20->unk2 = CreateSprite(&gUnknown_02024E8C, 0x28, 0x28, 0); + gSprites[gUnknown_Debug_2038A20->unk2].callback = debug_69; + gSprites[gUnknown_Debug_2038A20->unk2].oam.priority = 0; + + DecompressPicFromTable_2(gMonBackPicTable + gUnknown_Debug_2038A20->unk0, gMonBackPicCoords[gUnknown_Debug_2038A20->unk0].coords, gMonBackPicCoords[gUnknown_Debug_2038A20->unk0].y_offset, gUnknown_081FAF4C[0], gUnknown_081FAF4C[2], gUnknown_Debug_2038A20->unk0); + LoadCompressedObjectPalette(gMonPaletteTable + gUnknown_Debug_2038A20->unk0); + GetMonSpriteTemplate_803C56C(gUnknown_Debug_2038A20->unk0, 2); + gUnknown_Debug_2038A20->unk3 = CreateSprite(&gUnknown_02024E8C, 0x28, 0x78, 0); + gSprites[gUnknown_Debug_2038A20->unk3].callback = debug_69; + gSprites[gUnknown_Debug_2038A20->unk3].oam.priority = 0; + + gUnknown_Debug_2038A20->unk4 = CreateMonIcon(gUnknown_Debug_2038A20->unk0, sub_809D62C, 0x68, 0x2C, 0, 0); + + sub_8091738(SpeciesToNationalPokedexNum(gUnknown_Debug_2038A20->unk0), 2, 0x3fc); + + ((u16 *)(VRAM + 0xF858))[0] = 0xF3FC; + ((u16 *)(VRAM + 0xF858))[1] = 0xF3FD; + ((u16 *)(VRAM + 0xF858))[32] = 0xF3FE; + ((u16 *)(VRAM + 0xF858))[33] = 0xF3FF; + + debug_80C3800(gUnknown_Debug_2038A20->unk0, 17, 3); + debug_80C376C(gUnknown_Debug_2038A20->unk0, 26, 5); + + gUnknown_Debug_2038A20->unk6 = gSprites[gUnknown_Debug_2038A20->unk2].oam.paletteNum; + CpuCopy16(gPlttBufferUnfaded + gUnknown_Debug_2038A20->unk6 * 16 + 0x100, gPlttBufferUnfaded + 0x80, 0x20); + CpuCopy16(gPlttBufferUnfaded + gUnknown_Debug_2038A20->unk6 * 16 + 0x100, gPlttBufferFaded + 0x80, 0x20); + + gTasks[taskId].func = debug_80C6EE8; + + gUnknown_Debug_2038A20->unk9 = 0; + StopCryAndClearCrySongs(); + PlayCry1(gUnknown_Debug_2038A20->unk0, 0); +} + #endif // DEBUG -- cgit v1.2.3 From c576a8878a4a5f222c993526551f5e6d3bfe7ca4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 20 Apr 2018 08:38:13 -0400 Subject: nonmatching debug_80C6FA8 --- Makefile | 2 + asm/watanabe_debug_menu.s | 390 ---------------------------------------- include/battle_bg.h | 2 +- src/battle/battle_2.c | 4 +- src/battle/battle_bg.c | 2 +- src/debug/watanabe_debug_menu.c | 386 ++++++++++++++++++++++++++++++++++++++- 6 files changed, 391 insertions(+), 395 deletions(-) diff --git a/Makefile b/Makefile index b9c827af7..9a05c54fe 100644 --- a/Makefile +++ b/Makefile @@ -3,6 +3,8 @@ include config.mk ifeq ($(OS),Windows_NT) EXE := .exe +else +EXE := endif diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index c19ea14da..47832a6a9 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,396 +5,6 @@ .text - thumb_func_start debug_80C6EE8 -debug_80C6EE8: - push {r4, r5, r6, lr} - add r6, r0, #0 - lsl r6, r6, #0x18 - lsr r6, r6, #0x18 - ldr r4, ._670 @ gPlttBufferUnfaded - ldr r5, ._670 + 4 @ gUnknown_Debug_2038A20 - ldr r1, [r5] - add r1, r1, #0x10 - add r0, r4, #0 - mov r2, #0x10 - bl CpuSet - ldr r0, ._670 + 8 @ 0xffffff00 - add r4, r4, r0 - ldr r3, [r5] - ldrb r0, [r3, #0x7] - add r0, r0, #0x81 - lsl r0, r0, #0x1 - add r0, r0, r4 - ldrh r4, [r0] - mov r1, #0x1f - and r1, r1, r4 - ldrb r2, [r3, #0xc] - mov r0, #0x20 - neg r0, r0 - and r0, r0, r2 - orr r0, r0, r1 - strb r0, [r3, #0xc] - ldr r3, [r5] - mov r1, #0xf8 - lsl r1, r1, #0x2 - and r1, r1, r4 - ldrh r2, [r3, #0xc] - ldr r0, ._670 + 12 @ 0xfffffc1f - and r0, r0, r2 - orr r0, r0, r1 - strh r0, [r3, #0xc] - mov r1, #0xf8 - lsl r1, r1, #0x7 - and r1, r1, r4 - lsr r1, r1, #0x8 - ldrb r2, [r3, #0xd] - mov r0, #0x7d - neg r0, r0 - and r0, r0, r2 - orr r0, r0, r1 - strb r0, [r3, #0xd] - ldr r2, [r5] - ldrb r1, [r2, #0xd] - mov r0, #0x7f - and r0, r0, r1 - strb r0, [r2, #0xd] - ldr r0, [r5] - ldrb r0, [r0, #0x7] - add r0, r0, #0x1 - mov r1, #0xb - mov r2, #0xa - mov r3, #0x2 - bl debug_80C68CC - ldr r0, ._670 + 16 @ gUnknown_Debug_083F8813 - mov r1, #0xd - mov r2, #0xa - bl Menu_PrintText - add r0, r4, #0 - mov r1, #0xe - mov r2, #0xa - mov r3, #0x4 - bl debug_80C68CC - ldr r1, ._670 + 20 @ gTasks - lsl r0, r6, #0x2 - add r0, r0, r6 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._670 + 24 @ debug_80C6FA8 - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 -._671: - .align 2, 0 -._670: - .word gPlttBufferUnfaded+0x100 - .word gUnknown_Debug_2038A20 - .word 0xffffff00 - .word 0xfffffc1f - .word gUnknown_Debug_083F8813 - .word gTasks - .word debug_80C6FA8+1 - - thumb_func_end debug_80C6EE8 - - thumb_func_start debug_80C6FA8 -debug_80C6FA8: - push {r4, r5, r6, lr} - add sp, sp, #0xfffffffc - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - ldr r1, ._674 @ gMain - ldrh r2, [r1, #0x2e] - mov r0, #0x2 - and r0, r0, r2 - add r4, r1, #0 - cmp r0, #0 - beq ._672 @cond_branch - mov r0, #0x5 - bl PlaySE - mov r0, #0x1 - neg r0, r0 - mov r1, #0x0 - str r1, [sp] - mov r2, #0x0 - mov r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, ._674 + 4 @ debug_80C370C - bl SetMainCallback2 - ldr r1, ._674 + 8 @ gTasks - lsl r0, r6, #0x2 - add r0, r0, r6 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._674 + 12 @ debug_80C373C - str r1, [r0] - b ._703 -._675: - .align 2, 0 -._674: - .word gMain - .word debug_80C370C+1 - .word gTasks - .word debug_80C373C+1 -._672: - ldrh r1, [r4, #0x30] - mov r0, #0x80 - lsl r0, r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._676 @cond_branch - ldr r4, ._678 @ gUnknown_Debug_2038A20 - ldr r0, [r4] - ldrh r1, [r0] - mov r0, #0x0 - b ._677 -._679: - .align 2, 0 -._678: - .word gUnknown_Debug_2038A20 -._676: - mov r0, #0x80 - lsl r0, r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - beq ._680 @cond_branch - ldr r4, ._682 @ gUnknown_Debug_2038A20 - ldr r0, [r4] - ldrh r1, [r0] - mov r0, #0x1 -._677: - bl debug_80C3878 - ldr r1, [r4] - strh r0, [r1] - ldr r1, ._682 + 4 @ gTasks - lsl r0, r6, #0x2 - add r0, r0, r6 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._682 + 8 @ debug_80C71FC - str r1, [r0] - b ._703 -._683: - .align 2, 0 -._682: - .word gUnknown_Debug_2038A20 - .word gTasks - .word debug_80C71FC+1 -._680: - mov r3, #0x1 - and r3, r3, r2 - cmp r3, #0 - beq ._684 @cond_branch - ldr r0, ._686 @ gUnknown_Debug_2038A20 - ldr r1, [r0] - mov r0, #0x1 - strb r0, [r1, #0x5] - ldr r1, ._686 + 4 @ 0x4000040 - ldr r2, ._686 + 8 @ 0x51ef - add r0, r2, #0 - strh r0, [r1] - add r1, r1, #0x4 - ldr r2, ._686 + 12 @ 0x4167 - add r0, r2, #0 - strh r0, [r1] - ldr r1, ._686 + 16 @ gTasks - lsl r0, r6, #0x2 - add r0, r0, r6 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._686 + 20 @ debug_80C7294 - str r1, [r0] - b ._703 -._687: - .align 2, 0 -._686: - .word gUnknown_Debug_2038A20 - .word 0x4000040 - .word 0x51ef - .word 0x4167 - .word gTasks - .word debug_80C7294+1 -._684: - mov r0, #0x10 - and r0, r0, r1 - cmp r0, #0 - beq ._689 @cond_branch - ldr r1, ._691 @ gUnknown_Debug_2038A20 - ldr r2, [r1] - ldrb r0, [r2, #0x7] - cmp r0, #0xd - bhi ._689 @cond_branch - lsl r0, r0, #0x1 - ldr r2, ._691 + 4 @ PLTT + 0x102 - add r0, r0, r2 - strh r3, [r0] - ldr r1, [r1] - ldrb r0, [r1, #0x7] - add r0, r0, #0x1 - strb r0, [r1, #0x7] - b ._695 -._692: - .align 2, 0 -._691: - .word gUnknown_Debug_2038A20 - .word PLTT + 0x102 -._689: - ldrh r1, [r4, #0x30] - mov r0, #0x20 - and r0, r0, r1 - cmp r0, #0 - beq ._694 @cond_branch - ldr r2, ._696 @ gUnknown_Debug_2038A20 - ldr r1, [r2] - ldrb r0, [r1, #0x7] - cmp r0, #0 - beq ._694 @cond_branch - lsl r0, r0, #0x1 - ldr r1, ._696 + 4 @ 0x5000102 - add r0, r0, r1 - mov r1, #0x0 - strh r1, [r0] - ldr r1, [r2] - ldrb r0, [r1, #0x7] - sub r0, r0, #0x1 - strb r0, [r1, #0x7] - b ._695 -._697: - .align 2, 0 -._696: - .word gUnknown_Debug_2038A20 - .word 0x5000102 -._694: - ldrh r1, [r4, #0x2e] - mov r0, #0x8 - and r0, r0, r1 - cmp r0, #0 - beq ._698 @cond_branch - ldr r4, ._701 @ gUnknown_Debug_2038A20 - ldr r2, [r4] - ldrb r0, [r2, #0x9] - mov r1, #0x1 - eor r0, r0, r1 - strb r0, [r2, #0x9] - ldr r1, [r4] - ldrb r0, [r1, #0x9] - cmp r0, #0 - beq ._699 @cond_branch - ldrh r0, [r1] - mov r1, #0x0 - mov r2, #0x0 - bl GetMonSpritePalFromOtIdPersonality - ldr r1, [r4] - ldrb r1, [r1, #0x6] - lsl r1, r1, #0x14 - mov r2, #0x80 - lsl r2, r2, #0x11 - add r1, r1, r2 - lsr r1, r1, #0x10 - mov r2, #0x20 - bl LoadCompressedPalette - b ._700 -._702: - .align 2, 0 -._701: - .word gUnknown_Debug_2038A20 -._699: - ldrh r0, [r1] - mov r1, #0x0 - mov r2, #0x9 - bl GetMonSpritePalFromOtIdPersonality - ldr r1, [r4] - ldrb r1, [r1, #0x6] - lsl r1, r1, #0x14 - mov r2, #0x80 - lsl r2, r2, #0x11 - add r1, r1, r2 - lsr r1, r1, #0x10 - mov r2, #0x20 - bl LoadCompressedPalette -._700: - ldr r5, ._704 @ gUnknown_Debug_2038A20 - ldr r0, [r5] - ldrb r0, [r0, #0x6] - lsl r0, r0, #0x5 - ldr r4, ._704 + 4 @ gPlttBufferUnfaded - add r0, r0, r4 - ldr r2, ._704 + 8 @ 0xffffff00 - add r1, r4, r2 - mov r2, #0x10 - bl CpuSet - ldr r0, [r5] - ldrb r0, [r0, #0x6] - lsl r0, r0, #0x5 - add r0, r0, r4 - ldr r1, ._704 + 12 @ gPlttBufferFaded - mov r2, #0x10 - bl CpuSet -._695: - ldr r1, ._704 + 16 @ gTasks - lsl r0, r6, #0x2 - add r0, r0, r6 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._704 + 20 @ debug_80C6EE8 - str r1, [r0] - b ._703 -._705: - .align 2, 0 -._704: - .word gUnknown_Debug_2038A20 - .word gPlttBufferUnfaded+0x200 - .word 0xffffff00 - .word gPlttBufferFaded+0x100 - .word gTasks - .word debug_80C6EE8+1 -._698: - mov r0, #0x4 - and r0, r0, r1 - cmp r0, #0 - beq ._706 @cond_branch - bl StopCryAndClearCrySongs - ldr r0, ._707 @ gUnknown_Debug_2038A20 - ldr r0, [r0] - ldrh r0, [r0] - mov r1, #0x0 - bl PlayCry1 -._706: - ldr r2, ._707 @ gUnknown_Debug_2038A20 - ldr r1, [r2] - ldrb r0, [r1, #0x8] - add r0, r0, #0x4 - strb r0, [r1, #0x8] - ldr r3, [r2] - ldrb r1, [r3, #0x8] - mov r0, #0x1f - and r0, r0, r1 - strb r0, [r3, #0x8] - ldr r0, [r2] - ldrb r1, [r0, #0x7] - lsl r1, r1, #0x1 - ldr r2, ._707 + 4 @ PLTT + 0x142 - add r1, r1, r2 - ldr r2, ._707 + 8 @ gUnknown_Debug_083F8790 - ldrb r0, [r0, #0x8] - lsl r0, r0, #0x1 - add r0, r0, r2 - ldrh r0, [r0] - strh r0, [r1] -._703: - add sp, sp, #0x4 - pop {r4, r5, r6} - pop {r0} - bx r0 -._708: - .align 2, 0 -._707: - .word gUnknown_Debug_2038A20 - .word PLTT + 0x142 - .word gUnknown_Debug_083F8790 - - thumb_func_end debug_80C6FA8 - thumb_func_start debug_80C71FC debug_80C71FC: push {r4, r5, r6, lr} diff --git a/include/battle_bg.h b/include/battle_bg.h index 88f040cb0..8cbc74604 100644 --- a/include/battle_bg.h +++ b/include/battle_bg.h @@ -1,6 +1,6 @@ #ifndef GUARD_BATTLE_BG_H #define GUARD_BATTLE_BG_H -void unref_sub_800D684(void); +void debug_sub_800D684(void); #endif //GUARD_BATTLE_BG_H diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index b07ad0b2d..da566628d 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -2233,7 +2233,7 @@ extern const struct Pokeblock gUnknown_Debug_821F5AC[]; extern u8 gUnknown_020297ED; -extern void unref_sub_800D684(void); +extern void debug_sub_800D684(void); void debug_sub_801174C(void) { @@ -2408,7 +2408,7 @@ void debug_sub_801174C(void) } gMain.savedCallback = debug_sub_80108B8; - SetMainCallback2(unref_sub_800D684); + SetMainCallback2(debug_sub_800D684); ClearBag(); diff --git a/src/battle/battle_bg.c b/src/battle/battle_bg.c index 7474af74b..5a2a1efa3 100644 --- a/src/battle/battle_bg.c +++ b/src/battle/battle_bg.c @@ -211,7 +211,7 @@ const struct BattleBackground gBattleTerrainTable[] = { static void sub_800D6C4(void); -void unref_sub_800D684(void) +void debug_sub_800D684(void) { u8 spriteId; ResetSpriteData(); diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index 61cd57fcc..02f6054de 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -70,6 +70,8 @@ struct WatanabeEwram18000_2 { u8 unk8; u8 unk9; u8 unkA; + struct PlttData unkC; + u16 unk10[16]; }; #define eWatanabe18000 (*(struct WatanabeEwram18000 *)(gSharedMem + 0x18000)) @@ -133,6 +135,9 @@ void debug_80C68CC(u16, u8, u8, u8); void debug_80C6B00(u8 taskId); void debug_80C6CB8(u8 taskId); void debug_80C6EE8(u8 taskId); +void debug_80C6FA8(u8 taskId); +void debug_80C71FC(u8 taskId); +void debug_80C7294(u8 taskId); void debug_80C7584(struct Sprite *); extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F8068[5]; @@ -184,6 +189,7 @@ extern const u8 gUnknown_Debug_083F854D[4]; // = _("OFF"); extern const u8 gUnknown_Debug_083F8758[4]; // = _("たまご"); extern const u8 gUnknown_Debug_083F875C[8]; // = _("DebugーG"); extern const u8 gUnknown_Debug_083F8764[2]; // = _(" "); +extern const u8 gUnknown_Debug_083F8813[2]; // = _(":"); extern const u32 gUnknown_Debug_083F8768[10]; @@ -1631,7 +1637,7 @@ void debug_80C51E4(u8 taskId) { sub_80408BC(); gMain.savedCallback = debug_80C41A8; - SetMainCallback2(unref_sub_800D684); + SetMainCallback2(debug_sub_800D684); } void debug_80C5208(void) @@ -2460,4 +2466,382 @@ void debug_80C6CB8(u8 taskId) PlayCry1(gUnknown_Debug_2038A20->unk0, 0); } +void debug_80C6EE8(u8 taskId) +{ + u16 hue; + CpuCopy16(gPlttBufferUnfaded + 0x80, gUnknown_Debug_2038A20->unk10, 32); + hue = gPlttBufferUnfaded[gUnknown_Debug_2038A20->unk7 + 0x81]; + gUnknown_Debug_2038A20->unkC.r = hue & 0x1f; + gUnknown_Debug_2038A20->unkC.g = (hue & 0x3e0) >> 5; + gUnknown_Debug_2038A20->unkC.b = (hue & 0x7c00) >> 10; + gUnknown_Debug_2038A20->unkC.unused_15 = 0; + debug_80C68CC(gUnknown_Debug_2038A20->unk7 + 1, 11, 10, 2); + Menu_PrintText(gUnknown_Debug_083F8813, 13, 10); + debug_80C68CC(hue, 14, 10, 4); + gTasks[taskId].func = debug_80C6FA8; +} + +extern const u16 gUnknown_Debug_083F8790[32]; + +#ifdef NONMATCHING +void debug_80C6FA8(u8 taskId) +{ + if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + SetMainCallback2(debug_80C370C); + gTasks[taskId].func = debug_80C373C; + } + else if (gMain.newAndRepeatedKeys & R_BUTTON) + { + gUnknown_Debug_2038A20->unk0 = debug_80C3878(0, gUnknown_Debug_2038A20->unk0); + gTasks[taskId].func = debug_80C71FC; + } + else if (gMain.newAndRepeatedKeys & L_BUTTON) + { + gUnknown_Debug_2038A20->unk0 = debug_80C3878(1, gUnknown_Debug_2038A20->unk0); + gTasks[taskId].func = debug_80C71FC; + } + else if (gMain.newKeys & A_BUTTON) + { + gUnknown_Debug_2038A20->unk5 = 1; + REG_WIN0H = 0x51EF; + REG_WIN0V = 0x4167; + gTasks[taskId].func = debug_80C7294; + } + else if (gMain.newAndRepeatedKeys & DPAD_RIGHT && gUnknown_Debug_2038A20->unk7 < 14) + { + ((u16 *)PLTT)[0x81 + gUnknown_Debug_2038A20->unk7] = 0; + gUnknown_Debug_2038A20->unk7++; + gTasks[taskId].func = debug_80C6EE8; + } + else if (gMain.newAndRepeatedKeys & DPAD_LEFT && gUnknown_Debug_2038A20->unk7 > 0) + { + ((u16 *)PLTT)[0x81 + gUnknown_Debug_2038A20->unk7] = 0; + gUnknown_Debug_2038A20->unk7--; + gTasks[taskId].func = debug_80C6EE8; + } + else if (gMain.newKeys & START_BUTTON) + { + gUnknown_Debug_2038A20->unk9 ^= 1; + if (gUnknown_Debug_2038A20->unk9) + LoadCompressedPalette(GetMonSpritePalFromOtIdPersonality(gUnknown_Debug_2038A20->unk0, 0, 0), gUnknown_Debug_2038A20->unk6 * 16 + 0x100, 0x20); + else + LoadCompressedPalette(GetMonSpritePalFromOtIdPersonality(gUnknown_Debug_2038A20->unk0, 0, 9), gUnknown_Debug_2038A20->unk6 * 16 + 0x100, 0x20); + CpuCopy16(gPlttBufferUnfaded + gUnknown_Debug_2038A20->unk6 * 16 + 0x100, gPlttBufferUnfaded + 0x80, 32); + CpuCopy16(gPlttBufferUnfaded + gUnknown_Debug_2038A20->unk6 * 16 + 0x100, gPlttBufferFaded + 0x80, 32); + gTasks[taskId].func = debug_80C6EE8; + } + else + { + if (gMain.newKeys & SELECT_BUTTON) + { + StopCryAndClearCrySongs(); + PlayCry1(gUnknown_Debug_2038A20->unk0, 0); + } + gUnknown_Debug_2038A20->unk8 += 4; + gUnknown_Debug_2038A20->unk8 &= 0x1f; + ((u16 *)PLTT)[0xa1 + gUnknown_Debug_2038A20->unk7] = gUnknown_Debug_083F8790[gUnknown_Debug_2038A20->unk8]; + } +} +#else +NAKED void debug_80C6FA8(u8 taskId) +{ + asm(".equiv PLTT, 0x05000000\n" + "\tpush\t{r4, r5, r6, lr}\n" + "\tadd\tsp, sp, #0xfffffffc\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr6, r0, #0x18\n" + "\tldr\tr1, ._674 @ gMain\n" + "\tldrh\tr2, [r1, #0x2e]\n" + "\tmov\tr0, #0x2\n" + "\tand\tr0, r0, r2\n" + "\tadd\tr4, r1, #0\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._672\t@cond_branch\n" + "\tmov\tr0, #0x5\n" + "\tbl\tPlaySE\n" + "\tmov\tr0, #0x1\n" + "\tneg\tr0, r0\n" + "\tmov\tr1, #0x0\n" + "\tstr\tr1, [sp]\n" + "\tmov\tr2, #0x0\n" + "\tmov\tr3, #0x10\n" + "\tbl\tBeginNormalPaletteFade\n" + "\tldr\tr0, ._674 + 4 @ debug_80C370C\n" + "\tbl\tSetMainCallback2\n" + "\tldr\tr1, ._674 + 8 @ gTasks\n" + "\tlsl\tr0, r6, #0x2\n" + "\tadd\tr0, r0, r6\n" + "\tlsl\tr0, r0, #0x3\n" + "\tadd\tr0, r0, r1\n" + "\tldr\tr1, ._674 + 12 @ debug_80C373C\n" + "\tstr\tr1, [r0]\n" + "\tb\t._703\n" + "._675:\n" + "\t.align\t2, 0\n" + "._674:\n" + "\t.word\tgMain\n" + "\t.word\tdebug_80C370C+1\n" + "\t.word\tgTasks\n" + "\t.word\tdebug_80C373C+1\n" + "._672:\n" + "\tldrh\tr1, [r4, #0x30]\n" + "\tmov\tr0, #0x80\n" + "\tlsl\tr0, r0, #0x1\n" + "\tand\tr0, r0, r1\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._676\t@cond_branch\n" + "\tldr\tr4, ._678 @ gUnknown_Debug_2038A20\n" + "\tldr\tr0, [r4]\n" + "\tldrh\tr1, [r0]\n" + "\tmov\tr0, #0x0\n" + "\tb\t._677\n" + "._679:\n" + "\t.align\t2, 0\n" + "._678:\n" + "\t.word\tgUnknown_Debug_2038A20\n" + "._676:\n" + "\tmov\tr0, #0x80\n" + "\tlsl\tr0, r0, #0x2\n" + "\tand\tr0, r0, r1\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._680\t@cond_branch\n" + "\tldr\tr4, ._682 @ gUnknown_Debug_2038A20\n" + "\tldr\tr0, [r4]\n" + "\tldrh\tr1, [r0]\n" + "\tmov\tr0, #0x1\n" + "._677:\n" + "\tbl\tdebug_80C3878\n" + "\tldr\tr1, [r4]\n" + "\tstrh\tr0, [r1]\n" + "\tldr\tr1, ._682 + 4 @ gTasks\n" + "\tlsl\tr0, r6, #0x2\n" + "\tadd\tr0, r0, r6\n" + "\tlsl\tr0, r0, #0x3\n" + "\tadd\tr0, r0, r1\n" + "\tldr\tr1, ._682 + 8 @ debug_80C71FC\n" + "\tstr\tr1, [r0]\n" + "\tb\t._703\n" + "._683:\n" + "\t.align\t2, 0\n" + "._682:\n" + "\t.word\tgUnknown_Debug_2038A20\n" + "\t.word\tgTasks\n" + "\t.word\tdebug_80C71FC+1\n" + "._680:\n" + "\tmov\tr3, #0x1\n" + "\tand\tr3, r3, r2\n" + "\tcmp\tr3, #0\n" + "\tbeq\t._684\t@cond_branch\n" + "\tldr\tr0, ._686 @ gUnknown_Debug_2038A20\n" + "\tldr\tr1, [r0]\n" + "\tmov\tr0, #0x1\n" + "\tstrb\tr0, [r1, #0x5]\n" + "\tldr\tr1, ._686 + 4 @ 0x4000040\n" + "\tldr\tr2, ._686 + 8 @ 0x51ef\n" + "\tadd\tr0, r2, #0\n" + "\tstrh\tr0, [r1]\n" + "\tadd\tr1, r1, #0x4\n" + "\tldr\tr2, ._686 + 12 @ 0x4167\n" + "\tadd\tr0, r2, #0\n" + "\tstrh\tr0, [r1]\n" + "\tldr\tr1, ._686 + 16 @ gTasks\n" + "\tlsl\tr0, r6, #0x2\n" + "\tadd\tr0, r0, r6\n" + "\tlsl\tr0, r0, #0x3\n" + "\tadd\tr0, r0, r1\n" + "\tldr\tr1, ._686 + 20 @ debug_80C7294\n" + "\tstr\tr1, [r0]\n" + "\tb\t._703\n" + "._687:\n" + "\t.align\t2, 0\n" + "._686:\n" + "\t.word\tgUnknown_Debug_2038A20\n" + "\t.word\t0x4000040\n" + "\t.word\t0x51ef\n" + "\t.word\t0x4167\n" + "\t.word\tgTasks\n" + "\t.word\tdebug_80C7294+1\n" + "._684:\n" + "\tmov\tr0, #0x10\n" + "\tand\tr0, r0, r1\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._689\t@cond_branch\n" + "\tldr\tr1, ._691 @ gUnknown_Debug_2038A20\n" + "\tldr\tr2, [r1]\n" + "\tldrb\tr0, [r2, #0x7]\n" + "\tcmp\tr0, #0xd\n" + "\tbhi\t._689\t@cond_branch\n" + "\tlsl\tr0, r0, #0x1\n" + "\tldr\tr2, ._691 + 4 @ PLTT + 0x102\n" + "\tadd\tr0, r0, r2\n" + "\tstrh\tr3, [r0]\n" + "\tldr\tr1, [r1]\n" + "\tldrb\tr0, [r1, #0x7]\n" + "\tadd\tr0, r0, #0x1\n" + "\tstrb\tr0, [r1, #0x7]\n" + "\tb\t._695\n" + "._692:\n" + "\t.align\t2, 0\n" + "._691:\n" + "\t.word\tgUnknown_Debug_2038A20\n" + "\t.word\tPLTT + 0x102\n" + "._689:\n" + "\tldrh\tr1, [r4, #0x30]\n" + "\tmov\tr0, #0x20\n" + "\tand\tr0, r0, r1\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._694\t@cond_branch\n" + "\tldr\tr2, ._696 @ gUnknown_Debug_2038A20\n" + "\tldr\tr1, [r2]\n" + "\tldrb\tr0, [r1, #0x7]\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._694\t@cond_branch\n" + "\tlsl\tr0, r0, #0x1\n" + "\tldr\tr1, ._696 + 4 @ PLTT + 0x102\n" + "\tadd\tr0, r0, r1\n" + "\tmov\tr1, #0x0\n" + "\tstrh\tr1, [r0]\n" + "\tldr\tr1, [r2]\n" + "\tldrb\tr0, [r1, #0x7]\n" + "\tsub\tr0, r0, #0x1\n" + "\tstrb\tr0, [r1, #0x7]\n" + "\tb\t._695\n" + "._697:\n" + "\t.align\t2, 0\n" + "._696:\n" + "\t.word\tgUnknown_Debug_2038A20\n" + "\t.word\tPLTT + 0x102\n" + "._694:\n" + "\tldrh\tr1, [r4, #0x2e]\n" + "\tmov\tr0, #0x8\n" + "\tand\tr0, r0, r1\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._698\t@cond_branch\n" + "\tldr\tr4, ._701 @ gUnknown_Debug_2038A20\n" + "\tldr\tr2, [r4]\n" + "\tldrb\tr0, [r2, #0x9]\n" + "\tmov\tr1, #0x1\n" + "\teor\tr0, r0, r1\n" + "\tstrb\tr0, [r2, #0x9]\n" + "\tldr\tr1, [r4]\n" + "\tldrb\tr0, [r1, #0x9]\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._699\t@cond_branch\n" + "\tldrh\tr0, [r1]\n" + "\tmov\tr1, #0x0\n" + "\tmov\tr2, #0x0\n" + "\tbl\tGetMonSpritePalFromOtIdPersonality\n" + "\tldr\tr1, [r4]\n" + "\tldrb\tr1, [r1, #0x6]\n" + "\tlsl\tr1, r1, #0x14\n" + "\tmov\tr2, #0x80\n" + "\tlsl\tr2, r2, #0x11\n" + "\tadd\tr1, r1, r2\n" + "\tlsr\tr1, r1, #0x10\n" + "\tmov\tr2, #0x20\n" + "\tbl\tLoadCompressedPalette\n" + "\tb\t._700\n" + "._702:\n" + "\t.align\t2, 0\n" + "._701:\n" + "\t.word\tgUnknown_Debug_2038A20\n" + "._699:\n" + "\tldrh\tr0, [r1]\n" + "\tmov\tr1, #0x0\n" + "\tmov\tr2, #0x9\n" + "\tbl\tGetMonSpritePalFromOtIdPersonality\n" + "\tldr\tr1, [r4]\n" + "\tldrb\tr1, [r1, #0x6]\n" + "\tlsl\tr1, r1, #0x14\n" + "\tmov\tr2, #0x80\n" + "\tlsl\tr2, r2, #0x11\n" + "\tadd\tr1, r1, r2\n" + "\tlsr\tr1, r1, #0x10\n" + "\tmov\tr2, #0x20\n" + "\tbl\tLoadCompressedPalette\n" + "._700:\n" + "\tldr\tr5, ._704 @ gUnknown_Debug_2038A20\n" + "\tldr\tr0, [r5]\n" + "\tldrb\tr0, [r0, #0x6]\n" + "\tlsl\tr0, r0, #0x5\n" + "\tldr\tr4, ._704 + 4 @ gPlttBufferUnfaded\n" + "\tadd\tr0, r0, r4\n" + "\tldr\tr2, ._704 + 8 @ 0xffffff00\n" + "\tadd\tr1, r4, r2\n" + "\tmov\tr2, #0x10\n" + "\tbl\tCpuSet\n" + "\tldr\tr0, [r5]\n" + "\tldrb\tr0, [r0, #0x6]\n" + "\tlsl\tr0, r0, #0x5\n" + "\tadd\tr0, r0, r4\n" + "\tldr\tr1, ._704 + 12 @ gPlttBufferFaded\n" + "\tmov\tr2, #0x10\n" + "\tbl\tCpuSet\n" + "._695:\n" + "\tldr\tr1, ._704 + 16 @ gTasks\n" + "\tlsl\tr0, r6, #0x2\n" + "\tadd\tr0, r0, r6\n" + "\tlsl\tr0, r0, #0x3\n" + "\tadd\tr0, r0, r1\n" + "\tldr\tr1, ._704 + 20 @ debug_80C6EE8\n" + "\tstr\tr1, [r0]\n" + "\tb\t._703\n" + "._705:\n" + "\t.align\t2, 0\n" + "._704:\n" + "\t.word\tgUnknown_Debug_2038A20\n" + "\t.word\tgPlttBufferUnfaded+0x200\n" + "\t.word\t0xffffff00\n" + "\t.word\tgPlttBufferFaded+0x100\n" + "\t.word\tgTasks\n" + "\t.word\tdebug_80C6EE8+1\n" + "._698:\n" + "\tmov\tr0, #0x4\n" + "\tand\tr0, r0, r1\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._706\t@cond_branch\n" + "\tbl\tStopCryAndClearCrySongs\n" + "\tldr\tr0, ._707 @ gUnknown_Debug_2038A20\n" + "\tldr\tr0, [r0]\n" + "\tldrh\tr0, [r0]\n" + "\tmov\tr1, #0x0\n" + "\tbl\tPlayCry1\n" + "._706:\n" + "\tldr\tr2, ._707 @ gUnknown_Debug_2038A20\n" + "\tldr\tr1, [r2]\n" + "\tldrb\tr0, [r1, #0x8]\n" + "\tadd\tr0, r0, #0x4\n" + "\tstrb\tr0, [r1, #0x8]\n" + "\tldr\tr3, [r2]\n" + "\tldrb\tr1, [r3, #0x8]\n" + "\tmov\tr0, #0x1f\n" + "\tand\tr0, r0, r1\n" + "\tstrb\tr0, [r3, #0x8]\n" + "\tldr\tr0, [r2]\n" + "\tldrb\tr1, [r0, #0x7]\n" + "\tlsl\tr1, r1, #0x1\n" + "\tldr\tr2, ._707 + 4 @ PLTT + 0x142\n" + "\tadd\tr1, r1, r2\n" + "\tldr\tr2, ._707 + 8 @ gUnknown_Debug_083F8790\n" + "\tldrb\tr0, [r0, #0x8]\n" + "\tlsl\tr0, r0, #0x1\n" + "\tadd\tr0, r0, r2\n" + "\tldrh\tr0, [r0]\n" + "\tstrh\tr0, [r1]\n" + "._703:\n" + "\tadd\tsp, sp, #0x4\n" + "\tpop\t{r4, r5, r6}\n" + "\tpop\t{r0}\n" + "\tbx\tr0\n" + "._708:\n" + "\t.align\t2, 0\n" + "._707:\n" + "\t.word\tgUnknown_Debug_2038A20\n" + "\t.word\tPLTT + 0x142\n" + "\t.word\tgUnknown_Debug_083F8790"); +} +#endif #endif // DEBUG -- cgit v1.2.3 From 1acdf9496c9757f002476b56ad0842fed335999d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 20 Apr 2018 21:57:18 -0400 Subject: through debug_80C74E4 --- asm/watanabe_debug_menu.s | 466 ---------------------------------------- src/debug/watanabe_debug_menu.c | 97 ++++++++- 2 files changed, 96 insertions(+), 467 deletions(-) diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index 47832a6a9..f78a2ff77 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,472 +5,6 @@ .text - thumb_func_start debug_80C71FC -debug_80C71FC: - push {r4, r5, r6, lr} - add r5, r0, #0 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - ldr r6, ._709 @ gSprites - ldr r4, ._709 + 4 @ gUnknown_Debug_2038A20 - ldr r0, [r4] - ldrb r1, [r0, #0x2] - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r6 - ldrb r0, [r0, #0x5] - lsr r0, r0, #0x4 - bl GetSpritePaletteTagByPaletteNum - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FreeSpritePaletteByTag - ldr r0, [r4] - ldrb r1, [r0, #0x2] - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r6 - bl DestroySprite - ldr r0, [r4] - ldrb r1, [r0, #0x3] - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r6 - ldrb r0, [r0, #0x5] - lsr r0, r0, #0x4 - bl GetSpritePaletteTagByPaletteNum - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FreeSpritePaletteByTag - ldr r0, [r4] - ldrb r1, [r0, #0x3] - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r6 - bl DestroySprite - ldr r0, [r4] - ldrb r1, [r0, #0x4] - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r6 - bl sub_809D510 - ldr r1, ._709 + 8 @ gTasks - lsl r0, r5, #0x2 - add r0, r0, r5 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._709 + 12 @ debug_80C6CB8 - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 -._710: - .align 2, 0 -._709: - .word gSprites - .word gUnknown_Debug_2038A20 - .word gTasks - .word debug_80C6CB8+1 - - thumb_func_end debug_80C71FC - - thumb_func_start debug_80C7294 -debug_80C7294: - push {r4, r5, r6, r7, lr} - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 - ldr r0, ._713 @ gMain - ldrh r2, [r0, #0x2e] - mov r1, #0x1 - and r1, r1, r2 - add r3, r0, #0 - cmp r1, #0 - beq ._711 @cond_branch - ldr r0, ._713 + 4 @ gUnknown_Debug_2038A20 - ldr r1, [r0] - mov r0, #0x0 - strb r0, [r1, #0x5] - ldr r1, ._713 + 8 @ 0x4000040 - ldr r2, ._713 + 12 @ 0x51ef - add r0, r2, #0 - strh r0, [r1] - add r1, r1, #0x4 - ldr r2, ._713 + 16 @ 0x699f - add r0, r2, #0 - strh r0, [r1] - b ._712 -._714: - .align 2, 0 -._713: - .word gMain - .word gUnknown_Debug_2038A20 - .word 0x4000040 - .word 0x51ef - .word 0x699f -._711: - mov r0, #0x2 - and r0, r0, r2 - cmp r0, #0 - beq ._715 @cond_branch - ldr r6, ._717 @ gUnknown_Debug_2038A20 - ldr r0, [r6] - strb r1, [r0, #0x5] - ldr r1, ._717 + 4 @ 0x4000040 - ldr r2, ._717 + 8 @ 0x51ef - add r0, r2, #0 - strh r0, [r1] - add r1, r1, #0x4 - ldr r2, ._717 + 12 @ 0x699f - add r0, r2, #0 - strh r0, [r1] - ldr r0, [r6] - add r0, r0, #0x10 - ldr r4, ._717 + 16 @ gPlttBufferUnfaded - add r1, r4, #0 - mov r2, #0x10 - bl CpuSet - ldr r0, [r6] - add r0, r0, #0x10 - ldr r5, ._717 + 20 @ gPlttBufferFaded - add r1, r5, #0 - mov r2, #0x10 - bl CpuSet - ldr r1, [r6] - add r0, r1, #0 - add r0, r0, #0x10 - ldrb r1, [r1, #0x6] - lsl r1, r1, #0x5 - mov r2, #0x80 - lsl r2, r2, #0x1 - add r4, r4, r2 - add r1, r1, r4 - mov r2, #0x10 - bl CpuSet - ldr r1, [r6] - add r0, r1, #0 - add r0, r0, #0x10 - ldrb r1, [r1, #0x6] - lsl r1, r1, #0x5 - mov r2, #0x80 - lsl r2, r2, #0x1 - add r5, r5, r2 - add r1, r1, r5 - mov r2, #0x10 - bl CpuSet -._712: - ldr r1, ._717 + 24 @ gTasks - lsl r0, r7, #0x2 - add r0, r0, r7 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._717 + 28 @ debug_80C6EE8 - str r1, [r0] - b ._754 -._718: - .align 2, 0 -._717: - .word gUnknown_Debug_2038A20 - .word 0x4000040 - .word 0x51ef - .word 0x699f - .word gPlttBufferUnfaded+0x100 - .word gPlttBufferFaded+0x100 - .word gTasks - .word debug_80C6EE8+1 -._715: - ldrh r1, [r3, #0x30] - mov r0, #0x80 - and r0, r0, r1 - cmp r0, #0 - beq ._720 @cond_branch - ldr r0, ._722 @ gUnknown_Debug_2038A20 - ldr r1, [r0] - ldrb r0, [r1, #0xa] - cmp r0, #0x1 - bhi ._720 @cond_branch - add r0, r0, #0x1 - strb r0, [r1, #0xa] - b ._754 -._723: - .align 2, 0 -._722: - .word gUnknown_Debug_2038A20 -._720: - ldrh r1, [r3, #0x30] - mov r0, #0x40 - and r0, r0, r1 - cmp r0, #0 - beq ._725 @cond_branch - ldr r0, ._727 @ gUnknown_Debug_2038A20 - ldr r1, [r0] - ldrb r0, [r1, #0xa] - cmp r0, #0 - beq ._725 @cond_branch - sub r0, r0, #0x1 - strb r0, [r1, #0xa] - b ._754 -._728: - .align 2, 0 -._727: - .word gUnknown_Debug_2038A20 -._725: - ldrh r1, [r3, #0x30] - mov r0, #0x10 - and r0, r0, r1 - cmp r0, #0 - beq ._729 @cond_branch - ldr r0, ._734 @ gUnknown_Debug_2038A20 - ldr r2, [r0] - ldrb r0, [r2, #0xa] - cmp r0, #0x1 - beq ._730 @cond_branch - cmp r0, #0x1 - bgt ._731 @cond_branch - cmp r0, #0 - beq ._732 @cond_branch - b ._754 -._735: - .align 2, 0 -._734: - .word gUnknown_Debug_2038A20 -._731: - cmp r0, #0x2 - beq ._736 @cond_branch - b ._754 -._732: - ldrb r3, [r2, #0xc] - lsl r1, r3, #0x1b - lsr r0, r1, #0x1b - cmp r0, #0x1e - bhi ._761 @cond_branch - add r0, r0, #0x1 - mov r1, #0x1f - and r0, r0, r1 - mov r1, #0x20 - neg r1, r1 - and r1, r1, r3 - orr r1, r1, r0 - strb r1, [r2, #0xc] - b ._761 -._730: - ldrh r3, [r2, #0xc] - lsl r1, r3, #0x16 - lsr r0, r1, #0x1b - cmp r0, #0x1e - bhi ._761 @cond_branch - add r0, r0, #0x1 - mov r1, #0x1f - and r0, r0, r1 - lsl r0, r0, #0x5 - ldr r1, ._742 @ 0xfffffc1f - and r1, r1, r3 - orr r1, r1, r0 - strh r1, [r2, #0xc] - b ._761 -._743: - .align 2, 0 -._742: - .word 0xfffffc1f -._736: - ldrb r3, [r2, #0xd] - lsl r1, r3, #0x19 - lsr r0, r1, #0x1b - cmp r0, #0x1e - bhi ._761 @cond_branch - add r0, r0, #0x1 - mov r1, #0x1f - and r0, r0, r1 - lsl r0, r0, #0x2 - mov r1, #0x7d - neg r1, r1 - and r1, r1, r3 - orr r1, r1, r0 - strb r1, [r2, #0xd] - b ._761 -._729: - mov r0, #0x20 - and r0, r0, r1 - cmp r0, #0 - beq ._754 @cond_branch - ldr r0, ._751 @ gUnknown_Debug_2038A20 - ldr r3, [r0] - ldrb r0, [r3, #0xa] - cmp r0, #0x1 - beq ._747 @cond_branch - cmp r0, #0x1 - bgt ._748 @cond_branch - cmp r0, #0 - beq ._749 @cond_branch - b ._754 -._752: - .align 2, 0 -._751: - .word gUnknown_Debug_2038A20 -._748: - cmp r0, #0x2 - beq ._753 @cond_branch - b ._754 -._749: - ldrb r2, [r3, #0xc] - mov r0, #0x1f - and r0, r0, r2 - cmp r0, #0 - beq ._761 @cond_branch - lsl r0, r2, #0x1b - lsr r0, r0, #0x1b - sub r0, r0, #0x1 - mov r1, #0x1f - and r0, r0, r1 - mov r1, #0x20 - neg r1, r1 - and r1, r1, r2 - orr r1, r1, r0 - strb r1, [r3, #0xc] - b ._761 -._747: - ldrh r2, [r3, #0xc] - mov r0, #0xf8 - lsl r0, r0, #0x2 - and r0, r0, r2 - cmp r0, #0 - beq ._761 @cond_branch - lsl r0, r2, #0x16 - lsr r0, r0, #0x1b - sub r0, r0, #0x1 - mov r1, #0x1f - and r0, r0, r1 - lsl r0, r0, #0x5 - ldr r1, ._759 @ 0xfffffc1f - and r1, r1, r2 - orr r1, r1, r0 - strh r1, [r3, #0xc] - b ._761 -._760: - .align 2, 0 -._759: - .word 0xfffffc1f -._753: - ldrb r2, [r3, #0xd] - mov r0, #0x7c - and r0, r0, r2 - cmp r0, #0 - beq ._761 @cond_branch - lsl r0, r2, #0x19 - lsr r0, r0, #0x1b - sub r0, r0, #0x1 - mov r1, #0x1f - and r0, r0, r1 - lsl r0, r0, #0x2 - mov r1, #0x7d - neg r1, r1 - and r1, r1, r2 - orr r1, r1, r0 - strb r1, [r3, #0xd] -._761: - ldr r0, ._762 @ gTasks - lsl r1, r7, #0x2 - add r1, r1, r7 - lsl r1, r1, #0x3 - add r1, r1, r0 - ldr r0, ._762 + 4 @ debug_80C74E4 - str r0, [r1] -._754: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._763: - .align 2, 0 -._762: - .word gTasks - .word debug_80C74E4+1 - - thumb_func_end debug_80C7294 - - thumb_func_start debug_80C74E4 -debug_80C74E4: - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - add r5, r0, #0 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - ldr r0, ._764 @ gUnknown_Debug_2038A20 - ldr r3, [r0] - ldrb r0, [r3, #0xc] - lsl r0, r0, #0x1b - lsr r0, r0, #0x1b - ldrh r2, [r3, #0xc] - mov r1, #0xf8 - lsl r1, r1, #0x2 - and r1, r1, r2 - add r0, r0, r1 - ldrb r1, [r3, #0xd] - lsl r1, r1, #0x19 - lsr r1, r1, #0x1b - lsl r1, r1, #0xa - add r0, r0, r1 - ldr r6, ._764 + 4 @ gPlttBufferUnfaded - ldrb r1, [r3, #0x7] - add r1, r1, #0x81 - lsl r1, r1, #0x1 - add r1, r1, r6 - strh r0, [r1] - ldr r1, ._764 + 8 @ gPlttBufferFaded - mov r8, r1 - ldrb r1, [r3, #0x7] - add r1, r1, #0x81 - lsl r1, r1, #0x1 - add r1, r1, r8 - strh r0, [r1] - ldrb r1, [r3, #0x6] - lsl r1, r1, #0x4 - ldrb r2, [r3, #0x7] - ldr r4, ._764 + 12 @ 0x101 - add r2, r2, r4 - add r1, r1, r2 - lsl r1, r1, #0x1 - add r1, r1, r6 - strh r0, [r1] - ldrb r1, [r3, #0x6] - lsl r1, r1, #0x4 - ldrb r2, [r3, #0x7] - add r2, r2, r4 - add r1, r1, r2 - lsl r1, r1, #0x1 - add r1, r1, r8 - strh r0, [r1] - mov r1, #0xe - mov r2, #0xa - mov r3, #0x4 - bl debug_80C68CC - ldr r1, ._764 + 16 @ gTasks - lsl r0, r5, #0x2 - add r0, r0, r5 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._764 + 20 @ debug_80C7294 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 -._765: - .align 2, 0 -._764: - .word gUnknown_Debug_2038A20 - .word gPlttBufferUnfaded - .word gPlttBufferFaded - .word 0x101 - .word gTasks - .word debug_80C7294+1 - - thumb_func_end debug_80C74E4 - thumb_func_start debug_80C7584 debug_80C7584: push {r4, lr} diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index 02f6054de..697f97c4e 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -138,6 +138,7 @@ void debug_80C6EE8(u8 taskId); void debug_80C6FA8(u8 taskId); void debug_80C71FC(u8 taskId); void debug_80C7294(u8 taskId); +void debug_80C74E4(u8 taskId); void debug_80C7584(struct Sprite *); extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F8068[5]; @@ -2843,5 +2844,99 @@ NAKED void debug_80C6FA8(u8 taskId) "\t.word\tPLTT + 0x142\n" "\t.word\tgUnknown_Debug_083F8790"); } -#endif +#endif // NONMATCHING + +void debug_80C71FC(u8 taskId) +{ + FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[gUnknown_Debug_2038A20->unk2].oam.paletteNum)); + DestroySprite(gSprites + gUnknown_Debug_2038A20->unk2); + FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[gUnknown_Debug_2038A20->unk3].oam.paletteNum)); + DestroySprite(gSprites + gUnknown_Debug_2038A20->unk3); + sub_809D510(gSprites + gUnknown_Debug_2038A20->unk4); + gTasks[taskId].func = debug_80C6CB8; +} + +void debug_80C7294(u8 taskId) +{ + if (gMain.newKeys & A_BUTTON) + { + gUnknown_Debug_2038A20->unk5 = 0; + REG_WIN0H = 0x51EF; + REG_WIN0V = 0x699F; + gTasks[taskId].func = debug_80C6EE8; + } + else if (gMain.newKeys & B_BUTTON) + { + gUnknown_Debug_2038A20->unk5 = 0; + REG_WIN0H = 0x51EF; + REG_WIN0V = 0x699F; + CpuCopy16(gUnknown_Debug_2038A20->unk10, gPlttBufferUnfaded + 0x80, 32); + CpuCopy16(gUnknown_Debug_2038A20->unk10, gPlttBufferFaded + 0x80, 32); + CpuCopy16(gUnknown_Debug_2038A20->unk10, gPlttBufferUnfaded + 0x100 + gUnknown_Debug_2038A20->unk6 * 16, 32); + CpuCopy16(gUnknown_Debug_2038A20->unk10, gPlttBufferFaded + 0x100 + gUnknown_Debug_2038A20->unk6 * 16, 32); + gTasks[taskId].func = debug_80C6EE8; + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN && gUnknown_Debug_2038A20->unkA < 2) + { + gUnknown_Debug_2038A20->unkA++; + } + else if (gMain.newAndRepeatedKeys & DPAD_UP && gUnknown_Debug_2038A20->unkA > 0) + { + gUnknown_Debug_2038A20->unkA--; + } + else if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + switch (gUnknown_Debug_2038A20->unkA) + { + case 0: + if (gUnknown_Debug_2038A20->unkC.r < 31) + gUnknown_Debug_2038A20->unkC.r++; + gTasks[taskId].func = debug_80C74E4; + break; + case 1: + if (gUnknown_Debug_2038A20->unkC.g < 31) + gUnknown_Debug_2038A20->unkC.g++; + gTasks[taskId].func = debug_80C74E4; + break; + case 2: + if (gUnknown_Debug_2038A20->unkC.b < 31) + gUnknown_Debug_2038A20->unkC.b++; + gTasks[taskId].func = debug_80C74E4; + break; + } + } + else if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + switch (gUnknown_Debug_2038A20->unkA) + { + case 0: + if (gUnknown_Debug_2038A20->unkC.r > 0) + gUnknown_Debug_2038A20->unkC.r--; + gTasks[taskId].func = debug_80C74E4; + break; + case 1: + if (gUnknown_Debug_2038A20->unkC.g > 0) + gUnknown_Debug_2038A20->unkC.g--; + gTasks[taskId].func = debug_80C74E4; + break; + case 2: + if (gUnknown_Debug_2038A20->unkC.b > 0) + gUnknown_Debug_2038A20->unkC.b--; + gTasks[taskId].func = debug_80C74E4; + break; + } + } +} + +void debug_80C74E4(u8 taskId) +{ + u16 pal = (gUnknown_Debug_2038A20->unkC.r & 0x001f) + ((gUnknown_Debug_2038A20->unkC.g << 5) & 0x03e0) + ((gUnknown_Debug_2038A20->unkC.b << 10) & 0x7c00); + gPlttBufferUnfaded[gUnknown_Debug_2038A20->unk7 + 0x81] = pal; + gPlttBufferFaded[gUnknown_Debug_2038A20->unk7 + 0x81] = pal; + gPlttBufferUnfaded[0x101 + gUnknown_Debug_2038A20->unk6 * 16 + gUnknown_Debug_2038A20->unk7] = pal; + gPlttBufferFaded[0x101 + gUnknown_Debug_2038A20->unk6 * 16 + gUnknown_Debug_2038A20->unk7] = pal; + debug_80C68CC(pal, 14, 10, 4); + gTasks[taskId].func = debug_80C7294; +} + #endif // DEBUG -- cgit v1.2.3 From f2adb8e246e5d850c6fdf51e5ba113b13640888c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 20 Apr 2018 22:31:46 -0400 Subject: through InitSeeTrainers --- asm/watanabe_debug_menu.s | 240 ---------------------------------------- src/debug/watanabe_debug_menu.c | 78 +++++++++++++ 2 files changed, 78 insertions(+), 240 deletions(-) diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index f78a2ff77..e7ae5d91f 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,246 +5,6 @@ .text - thumb_func_start debug_80C7584 -debug_80C7584: - push {r4, lr} - add r2, r0, #0 - ldr r0, ._771 @ gUnknown_Debug_2038A20 - ldr r3, [r0] - ldrb r1, [r3, #0x5] - add r4, r0, #0 - cmp r1, #0 - beq ._766 @cond_branch - mov r1, #0x2e - ldsh r0, [r2, r1] - cmp r0, #0x1 - beq ._767 @cond_branch - cmp r0, #0x1 - ble ._768 @cond_branch - cmp r0, #0x2 - beq ._769 @cond_branch -._768: - ldrb r0, [r3, #0xc] - lsl r0, r0, #0x1b - b ._773 -._772: - .align 2, 0 -._771: - .word gUnknown_Debug_2038A20 -._767: - ldrh r0, [r3, #0xc] - lsl r0, r0, #0x16 - b ._773 -._769: - ldrb r0, [r3, #0xd] - lsl r0, r0, #0x19 -._773: - lsr r0, r0, #0x1b - lsl r0, r0, #0x2 - strh r0, [r2, #0x24] - mov r1, #0x2e - ldsh r0, [r2, r1] - lsl r0, r0, #0x3 - strh r0, [r2, #0x26] - ldrh r0, [r2, #0x30] - add r3, r0, #1 - strh r3, [r2, #0x30] - mov r0, #0x2e - ldsh r1, [r2, r0] - ldr r0, [r4] - ldrb r0, [r0, #0xa] - cmp r1, r0 - bne ._775 @cond_branch - mov r0, #0x8 - and r3, r3, r0 - cmp r3, #0 - bne ._775 @cond_branch -._766: - add r0, r2, #0 - add r0, r0, #0x3e - ldrb r1, [r0] - mov r2, #0x4 - orr r1, r1, r2 - strb r1, [r0] - b ._776 -._775: - add r2, r2, #0x3e - ldrb r1, [r2] - mov r0, #0x5 - neg r0, r0 - and r0, r0, r1 - strb r0, [r2] -._776: - pop {r4} - pop {r0} - bx r0 - - thumb_func_end debug_80C7584 - - thumb_func_start InitSeeTrainers -InitSeeTrainers: - push {r4, r5, r6, lr} - add sp, sp, #0xfffffffc - bl debug_80C35DC - ldr r1, ._777 @ byte_83F88EC - ldr r2, ._777 + 4 @ 0x600e000 - ldr r0, ._777 + 8 @ 0x40000d4 - str r1, [r0] - str r2, [r0, #0x4] - ldr r1, ._777 + 12 @ 0x80000400 - str r1, [r0, #0x8] - ldr r0, [r0, #0x8] - ldr r0, ._777 + 16 @ word_83F888C - mov r1, #0x80 - mov r2, #0x60 - bl LoadPalette - mov r0, #0x1 - neg r0, r0 - mov r5, #0x0 - str r5, [sp] - mov r1, #0x0 - mov r2, #0x10 - mov r3, #0x0 - bl BeginNormalPaletteFade - ldr r0, ._777 + 20 @ 0x4000040 - mov r6, #0x0 - strh r5, [r0] - add r0, r0, #0x4 - strh r5, [r0] - sub r0, r0, #0x2 - strh r5, [r0] - add r0, r0, #0x4 - strh r5, [r0] - ldr r1, ._777 + 24 @ 0x4000048 - mov r0, #0x3f - strh r0, [r1] - add r1, r1, #0x2 - mov r0, #0x1f - strh r0, [r1] - add r1, r1, #0x6 - mov r0, #0xf1 - strh r0, [r1] - ldr r0, ._777 + 28 @ 0x4000052 - strh r5, [r0] - add r1, r1, #0x4 - mov r0, #0x7 - strh r0, [r1] - ldr r3, ._777 + 32 @ 0x4000208 - ldrh r2, [r3] - strh r5, [r3] - ldr r4, ._777 + 36 @ 0x4000200 - ldrh r0, [r4] - mov r1, #0x1 - orr r0, r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r0, ._777 + 40 @ debug_80C3758 - bl SetVBlankCallback - ldr r0, ._777 + 44 @ debug_80C370C - bl SetMainCallback2 - ldr r1, ._777 + 48 @ 0x4000008 - ldr r2, ._777 + 52 @ 0x1f0b - add r0, r2, #0 - strh r0, [r1] - add r1, r1, #0x2 - ldr r2, ._777 + 56 @ 0x1e0a - add r0, r2, #0 - strh r0, [r1] - sub r1, r1, #0xa - mov r2, #0xcd - lsl r2, r2, #0x6 - add r0, r2, #0 - strh r0, [r1] - ldr r0, ._777 + 60 @ debug_80C777C - mov r1, #0x0 - bl CreateTask - ldr r1, ._777 + 64 @ gUnknown_Debug_2038A20 - ldr r0, ._777 + 68 @ 0x2018000 - str r0, [r1] - strh r5, [r0] - strb r6, [r0, #0x2] - strb r6, [r0, #0x3] - strb r6, [r0, #0x5] - strb r6, [r0, #0x7] - strb r6, [r0, #0xa] - strb r6, [r0, #0x8] - ldr r4, ._777 + 72 @ gSpriteTemplate_83F8874 - add r0, r4, #0 - mov r1, #0x6c - mov r2, #0x74 - mov r3, #0x0 - bl CreateSprite - add r1, r0, #0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - ldr r6, ._777 + 76 @ gSprites - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r6 - strh r5, [r0, #0x2e] - mov r1, #0x0 - bl StartSpriteAnim - add r0, r4, #0 - mov r1, #0x6c - mov r2, #0x74 - mov r3, #0x0 - bl CreateSprite - add r1, r0, #0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r6 - mov r1, #0x1 - strh r1, [r0, #0x2e] - bl StartSpriteAnim - add r0, r4, #0 - mov r1, #0x6c - mov r2, #0x74 - mov r3, #0x0 - bl CreateSprite - add r1, r0, #0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r6 - mov r1, #0x2 - strh r1, [r0, #0x2e] - bl StartSpriteAnim - add sp, sp, #0x4 - pop {r4, r5, r6} - pop {r0} - bx r0 -._778: - .align 2, 0 -._777: - .word byte_83F88EC - .word 0x600e000 - .word 0x40000d4 - .word 0x80000400 - .word word_83F888C - .word 0x4000040 - .word 0x4000048 - .word 0x4000052 - .word 0x4000208 - .word 0x4000200 - .word debug_80C3758+1 - .word debug_80C370C+1 - .word 0x4000008 - .word 0x1f0b - .word 0x1e0a - .word debug_80C777C+1 - .word gUnknown_Debug_2038A20 - .word 0x2018000 - .word gSpriteTemplate_83F8874 - .word gSprites - - thumb_func_end InitSeeTrainers - thumb_func_start debug_80C777C debug_80C777C: push {r4, r5, r6, r7, lr} diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index 697f97c4e..7bb182be8 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -140,6 +140,7 @@ void debug_80C71FC(u8 taskId); void debug_80C7294(u8 taskId); void debug_80C74E4(u8 taskId); void debug_80C7584(struct Sprite *); +void debug_80C777C(u8 taskId); extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F8068[5]; extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F80D8[10]; @@ -2939,4 +2940,81 @@ void debug_80C74E4(u8 taskId) gTasks[taskId].func = debug_80C7294; } +void debug_80C7584(struct Sprite *sprite) +{ + if (!gUnknown_Debug_2038A20->unk5) + sprite->invisible = TRUE; + else + { + u8 shade; + switch (sprite->data[0]) + { + default: + case 0: + shade = gUnknown_Debug_2038A20->unkC.r; + break; + case 1: + shade = gUnknown_Debug_2038A20->unkC.g; + break; + case 2: + shade = gUnknown_Debug_2038A20->unkC.b; + break; + } + sprite->pos2.x = 4 * shade; + sprite->pos2.y = 8 * sprite->data[0]; + sprite->data[1]++; + if (sprite->data[0] == gUnknown_Debug_2038A20->unkA && !(sprite->data[1] & 0x08)) + sprite->invisible = TRUE; + else + sprite->invisible = FALSE; + } +} + +void InitSeeTrainers(void) +{ + u8 spriteId; + debug_80C35DC(); + DmaCopy16Defvars(3, byte_83F88EC, VRAM + 0xe000, 0x800); + LoadPalette(word_83F888C, 0x80, 0x60); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); + REG_WIN0H = 0; + REG_WIN0V = 0; + REG_WIN1H = 0; + REG_WIN1V = 0; + REG_WININ = 0x3F; + REG_WINOUT = 0x1F; + REG_BLDCNT = 0xF1; + REG_BLDALPHA = 0; + REG_BLDY = 7; + { + u16 imeBak = REG_IME; + REG_IME = 0; + REG_IE |= INTR_FLAG_VBLANK; + REG_IME = imeBak; + } + SetVBlankCallback(debug_80C3758); + SetMainCallback2(debug_80C370C); + REG_BG0CNT = 0x1F0B; + REG_BG1CNT = 0x1E0A; + REG_DISPCNT = 0x3340; + CreateTask(debug_80C777C, 0); + gUnknown_Debug_2038A20 = &eWatanabe18000_2; + gUnknown_Debug_2038A20->unk0 = 0; + gUnknown_Debug_2038A20->unk2 = 0; + gUnknown_Debug_2038A20->unk3 = 0; + gUnknown_Debug_2038A20->unk5 = 0; + gUnknown_Debug_2038A20->unk7 = 0; + gUnknown_Debug_2038A20->unkA = 0; + gUnknown_Debug_2038A20->unk8 = 0; + spriteId = CreateSprite(&gSpriteTemplate_83F8874, 0x6c, 0x74, 0); + gSprites[spriteId].data[0] = 0; + StartSpriteAnim(gSprites + spriteId, 0); + spriteId = CreateSprite(&gSpriteTemplate_83F8874, 0x6c, 0x74, 0); + gSprites[spriteId].data[0] = 1; + StartSpriteAnim(gSprites + spriteId, 1); + spriteId = CreateSprite(&gSpriteTemplate_83F8874, 0x6c, 0x74, 0); + gSprites[spriteId].data[0] = 2; + StartSpriteAnim(gSprites + spriteId, 2); +} + #endif // DEBUG -- cgit v1.2.3 From 8528e529dac0ee23a1ffe9c8f7177c6c32825fa8 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 21 Apr 2018 11:18:33 -0400 Subject: copypasta through debug_80C7A54 --- asm/watanabe_debug_menu.s | 426 ---------------------------------------- src/debug/watanabe_debug_menu.c | 80 ++++++++ 2 files changed, 80 insertions(+), 426 deletions(-) diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index e7ae5d91f..cb801d86b 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,432 +5,6 @@ .text - thumb_func_start debug_80C777C -debug_80C777C: - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - add sp, sp, #0xffffffec - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 - ldr r1, ._784 @ gUnknown_Debug_083F8815 - mov r0, sp - mov r2, #0x12 - bl memcpy - mov r0, #0x9 - mov r1, #0x0 - mov r2, #0xe - mov r3, #0x7 - bl Menu_DrawStdWindowFrame - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x9 - mov r3, #0x9 - bl Menu_DrawStdWindowFrame - mov r0, #0x0 - mov r1, #0xa - mov r2, #0x9 - mov r3, #0x13 - bl Menu_DrawStdWindowFrame - mov r0, #0xe - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x7 - bl Menu_DrawStdWindowFrame - ldr r0, ._784 + 4 @ gUnknown_Debug_083F87D0 - mov r1, #0xf - mov r2, #0x1 - bl Menu_PrintText - ldr r0, ._784 + 8 @ gUnknown_Debug_083F87D8 - mov r1, #0x19 - mov r2, #0x1 - bl Menu_PrintText - ldr r0, ._784 + 12 @ gUnknown_Debug_083F87E0 - mov r1, #0xf - mov r2, #0x5 - bl Menu_PrintText - mov r0, #0xa - mov r1, #0x8 - mov r2, #0x1d - mov r3, #0xc - bl Menu_DrawStdWindowFrame - mov r2, #0x0 - ldr r4, ._784 + 16 @ 0x600fa56 - ldr r0, ._784 + 20 @ 0xa311 - add r3, r0, #0 -._779: - lsl r0, r2, #0x1 - add r0, r0, r4 - add r1, r2, r3 - strh r1, [r0] - add r0, r2, #1 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - cmp r2, #0xe - bls ._779 @cond_branch - mov r2, #0x0 - ldr r5, ._784 + 24 @ gUnknown_Debug_083F87F4 - lsl r6, r7, #0x2 - mov r8, r6 - ldr r4, ._784 + 28 @ 0x600f256 - ldr r0, ._784 + 32 @ 0x8301 - add r3, r0, #0 -._780: - lsl r0, r2, #0x1 - add r0, r0, r4 - add r1, r2, r3 - strh r1, [r0] - add r0, r2, #1 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - cmp r2, #0xe - bls ._780 @cond_branch - add r0, r5, #0 - mov r1, #0x14 - mov r2, #0xa - bl Menu_PrintText - mov r0, #0xa - mov r1, #0xd - mov r2, #0x1d - mov r3, #0x13 - bl Menu_DrawStdWindowFrame - mov r1, sp - mov r0, #0x23 - strb r0, [r1] - mov r2, #0x0 - ldr r4, ._784 + 36 @ 0x600f396 - mov r5, #0x93 - lsl r5, r5, #0x8 - add r3, r5, #0 -._781: - lsl r1, r2, #0x1 - add r1, r1, r4 - mov r6, sp - add r0, r6, r2 - ldrb r0, [r0] - add r0, r0, r3 - strh r0, [r1] - add r0, r2, #1 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - cmp r2, #0x11 - bls ._781 @cond_branch - mov r1, sp - mov r0, #0x24 - strb r0, [r1] - mov r2, #0x0 - ldr r5, ._784 + 40 @ gUnknown_Debug_083F8801 - ldr r4, ._784 + 44 @ 0x600f3d6 - mov r0, #0x93 - lsl r0, r0, #0x8 - add r3, r0, #0 -._782: - lsl r1, r2, #0x1 - add r1, r1, r4 - mov r6, sp - add r0, r6, r2 - ldrb r0, [r0] - add r0, r0, r3 - strh r0, [r1] - add r0, r2, #1 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - cmp r2, #0x11 - bls ._782 @cond_branch - mov r1, sp - mov r0, #0x25 - strb r0, [r1] - mov r2, #0x0 - ldr r4, ._784 + 48 @ 0x600f416 - mov r0, #0x93 - lsl r0, r0, #0x8 - add r3, r0, #0 -._783: - lsl r1, r2, #0x1 - add r1, r1, r4 - mov r6, sp - add r0, r6, r2 - ldrb r0, [r0] - add r0, r0, r3 - strh r0, [r1] - add r0, r2, #1 - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - cmp r2, #0x11 - bls ._783 @cond_branch - add r0, r5, #0 - mov r1, #0xf - mov r2, #0x11 - bl Menu_PrintText - ldr r1, ._784 + 52 @ 0x4000040 - ldr r2, ._784 + 56 @ 0x51ef - add r0, r2, #0 - strh r0, [r1] - add r1, r1, #0x4 - ldr r5, ._784 + 60 @ 0x699f - add r0, r5, #0 - strh r0, [r1] - ldr r1, ._784 + 64 @ gTasks - mov r6, r8 - add r0, r6, r7 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._784 + 68 @ debug_80C7934 - str r1, [r0] - add sp, sp, #0x14 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._785: - .align 2, 0 -._784: - .word gUnknown_Debug_083F8815 - .word gUnknown_Debug_083F87D0 - .word gUnknown_Debug_083F87D8 - .word gUnknown_Debug_083F87E0 - .word 0x600fa56 - .word 0xa311 - .word gUnknown_Debug_083F87F4 - .word 0x600f256 - .word 0x8301 - .word 0x600f396 - .word gUnknown_Debug_083F8801 - .word 0x600f3d6 - .word 0x600f416 - .word 0x4000040 - .word 0x51ef - .word 0x699f - .word gTasks - .word debug_80C7934+1 - - thumb_func_end debug_80C777C - - thumb_func_start debug_80C7934 -debug_80C7934: - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - add sp, sp, #0xfffffff8 - mov r8, r0 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov r8, r0 - ldr r5, ._786 @ gUnknown_Debug_2038A20 - ldr r6, [r5] - ldrh r2, [r6] - lsl r0, r2, #0x3 - ldr r1, ._786 + 4 @ gTrainerFrontPicTable - add r0, r0, r1 - ldr r1, ._786 + 8 @ gTrainerFrontPicCoords - lsl r2, r2, #0x2 - add r2, r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, #0x1] - ldr r4, ._786 + 12 @ gUnknown_081FAF4C - ldr r3, [r4] - ldr r4, [r4, #0x4] - str r4, [sp] - ldrh r4, [r6] - str r4, [sp, #0x4] - bl DecompressPicFromTable_2 - ldr r0, [r5] - ldrh r0, [r0] - lsl r0, r0, #0x3 - ldr r1, ._786 + 16 @ gTrainerFrontPicPaletteTable - add r0, r0, r1 - bl LoadCompressedObjectPalette - ldr r0, [r5] - ldrh r0, [r0] - mov r1, #0x1 - bl GetMonSpriteTemplate_803C5A0 - ldr r0, ._786 + 20 @ gUnknown_02024E8C - mov r1, #0x28 - mov r2, #0x28 - mov r3, #0x0 - bl CreateSprite - ldr r1, [r5] - mov r6, #0x0 - strb r0, [r1, #0x2] - ldr r4, ._786 + 24 @ gSprites - ldr r2, [r5] - ldrb r1, [r2, #0x2] - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r1, r4, #0 - add r1, r1, #0x1c - add r0, r0, r1 - ldr r1, ._786 + 28 @ debug_69 - str r1, [r0] - ldrb r0, [r2, #0x2] - lsl r1, r0, #0x4 - add r1, r1, r0 - lsl r1, r1, #0x2 - add r1, r1, r4 - ldrb r2, [r1, #0x5] - mov r0, #0xd - neg r0, r0 - and r0, r0, r2 - strb r0, [r1, #0x5] - ldr r0, [r5] - ldrh r0, [r0] - mov r1, #0x1a - mov r2, #0x5 - bl debug_80C376C - ldr r2, [r5] - ldrb r1, [r2, #0x2] - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r4 - ldrb r0, [r0, #0x5] - lsr r0, r0, #0x4 - strb r0, [r2, #0x6] - ldr r0, [r5] - ldrb r0, [r0, #0x6] - lsl r0, r0, #0x5 - ldr r4, ._786 + 32 @ gPlttBufferUnfaded - add r0, r0, r4 - ldr r2, ._786 + 36 @ 0xffffff00 - add r1, r4, r2 - mov r2, #0x10 - bl CpuSet - ldr r0, [r5] - ldrb r0, [r0, #0x6] - lsl r0, r0, #0x5 - add r0, r0, r4 - ldr r1, ._786 + 40 @ gPlttBufferFaded - mov r2, #0x10 - bl CpuSet - ldr r1, ._786 + 44 @ gTasks - mov r2, r8 - lsl r0, r2, #0x2 - add r0, r0, r8 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._786 + 48 @ debug_80C7A54 - str r1, [r0] - ldr r0, [r5] - strb r6, [r0, #0x9] - add sp, sp, #0x8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 -._787: - .align 2, 0 -._786: - .word gUnknown_Debug_2038A20 - .word gTrainerFrontPicTable - .word gTrainerFrontPicCoords - .word gUnknown_081FAF4C - .word gTrainerFrontPicPaletteTable - .word gUnknown_02024E8C - .word gSprites - .word debug_69+1 - .word gPlttBufferUnfaded+0x200 - .word 0xffffff00 - .word gPlttBufferFaded+0x100 - .word gTasks - .word debug_80C7A54+1 - - thumb_func_end debug_80C7934 - - thumb_func_start debug_80C7A54 -debug_80C7A54: - push {r4, r5, r6, lr} - add r6, r0, #0 - lsl r6, r6, #0x18 - lsr r6, r6, #0x18 - ldr r4, ._788 @ gPlttBufferUnfaded - ldr r5, ._788 + 4 @ gUnknown_Debug_2038A20 - ldr r1, [r5] - add r1, r1, #0x10 - add r0, r4, #0 - mov r2, #0x10 - bl CpuSet - ldr r0, ._788 + 8 @ 0xffffff00 - add r4, r4, r0 - ldr r3, [r5] - ldrb r0, [r3, #0x7] - add r0, r0, #0x81 - lsl r0, r0, #0x1 - add r0, r0, r4 - ldrh r4, [r0] - mov r1, #0x1f - and r1, r1, r4 - ldrb r2, [r3, #0xc] - mov r0, #0x20 - neg r0, r0 - and r0, r0, r2 - orr r0, r0, r1 - strb r0, [r3, #0xc] - ldr r3, [r5] - mov r1, #0xf8 - lsl r1, r1, #0x2 - and r1, r1, r4 - ldrh r2, [r3, #0xc] - ldr r0, ._788 + 12 @ 0xfffffc1f - and r0, r0, r2 - orr r0, r0, r1 - strh r0, [r3, #0xc] - mov r1, #0xf8 - lsl r1, r1, #0x7 - and r1, r1, r4 - lsr r1, r1, #0x8 - ldrb r2, [r3, #0xd] - mov r0, #0x7d - neg r0, r0 - and r0, r0, r2 - orr r0, r0, r1 - strb r0, [r3, #0xd] - ldr r2, [r5] - ldrb r1, [r2, #0xd] - mov r0, #0x7f - and r0, r0, r1 - strb r0, [r2, #0xd] - ldr r0, [r5] - ldrb r0, [r0, #0x7] - add r0, r0, #0x1 - mov r1, #0xb - mov r2, #0xa - mov r3, #0x2 - bl debug_80C68CC - ldr r0, ._788 + 16 @ gUnknown_Debug_083F8813 - mov r1, #0xd - mov r2, #0xa - bl Menu_PrintText - add r0, r4, #0 - mov r1, #0xe - mov r2, #0xa - mov r3, #0x4 - bl debug_80C68CC - ldr r1, ._788 + 20 @ gTasks - lsl r0, r6, #0x2 - add r0, r0, r6 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._788 + 24 @ debug_80C7B14 - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 -._789: - .align 2, 0 -._788: - .word gPlttBufferUnfaded+0x100 - .word gUnknown_Debug_2038A20 - .word 0xffffff00 - .word 0xfffffc1f - .word gUnknown_Debug_083F8813 - .word gTasks - .word debug_80C7B14+1 - - thumb_func_end debug_80C7A54 - thumb_func_start debug_80C7B14 debug_80C7B14: push {r4, r5, r6, lr} diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index 7bb182be8..b1f7cbe54 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -141,6 +141,9 @@ void debug_80C7294(u8 taskId); void debug_80C74E4(u8 taskId); void debug_80C7584(struct Sprite *); void debug_80C777C(u8 taskId); +void debug_80C7934(u8 taskId); +void debug_80C7A54(u8 taskId); +void debug_80C7B14(u8 taskId); extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F8068[5]; extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F80D8[10]; @@ -3017,4 +3020,81 @@ void InitSeeTrainers(void) StartSpriteAnim(gSprites + spriteId, 2); } +void debug_80C777C(u8 taskId) +{ + // u8 sp00[] = {0x00, 0x10, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21}; + u8 i; + u8 sp00[ARRAY_COUNT(gUnknown_Debug_083F8815)]; + memcpy(sp00, gUnknown_Debug_083F8815, sizeof(gUnknown_Debug_083F8815)); + + Menu_DrawStdWindowFrame(9, 0, 14, 7); + Menu_DrawStdWindowFrame(0, 0, 9, 9); + Menu_DrawStdWindowFrame(0, 10, 9, 19); + Menu_DrawStdWindowFrame(14, 0, 29, 7); + Menu_PrintText(gUnknown_Debug_083F87D0, 15, 1); + Menu_PrintText(gUnknown_Debug_083F87D8, 25, 1); + Menu_PrintText(gUnknown_Debug_083F87E0, 15, 5); + + Menu_DrawStdWindowFrame(10, 8, 29, 12); + for (i = 0; i < 15; i++) + ((u16 *)(VRAM + 0xFA56))[i] = 0xA311 + i; + for (i = 0; i < 15; i++) + ((u16 *)(VRAM + 0xF256))[i] = 0x8301 + i; + + Menu_PrintText(gUnknown_Debug_083F87F4, 20, 10); + Menu_DrawStdWindowFrame(10, 13, 29, 19); + + sp00[0] = 0x23; + for (i = 0; i < 18; i++) + ((u16 *)(VRAM + 0xF396))[i] = 0x9300 + sp00[i]; + sp00[0] = 0x24; + for (i = 0; i < 18; i++) + ((u16 *)(VRAM + 0xF3D6))[i] = 0x9300 + sp00[i]; + sp00[0] = 0x25; + for (i = 0; i < 18; i++) + ((u16 *)(VRAM + 0xF416))[i] = 0x9300 + sp00[i]; + + Menu_PrintText(gUnknown_Debug_083F8801, 15, 17); + + REG_WIN0H = 0x51EF; + REG_WIN0V = 0x699F; + + gTasks[taskId].func = debug_80C7934; +} + +void debug_80C7934(u8 taskId) +{ + DecompressPicFromTable_2(gTrainerFrontPicTable + gUnknown_Debug_2038A20->unk0, gTrainerFrontPicCoords[gUnknown_Debug_2038A20->unk0].coords, gTrainerFrontPicCoords[gUnknown_Debug_2038A20->unk0].y_offset, gUnknown_081FAF4C[0], gUnknown_081FAF4C[1], gUnknown_Debug_2038A20->unk0); + LoadCompressedObjectPalette(gTrainerFrontPicPaletteTable + gUnknown_Debug_2038A20->unk0); + GetMonSpriteTemplate_803C5A0(gUnknown_Debug_2038A20->unk0, 1); + gUnknown_Debug_2038A20->unk2 = CreateSprite(&gUnknown_02024E8C, 0x28, 0x28, 0); + gSprites[gUnknown_Debug_2038A20->unk2].callback = debug_69; + gSprites[gUnknown_Debug_2038A20->unk2].oam.priority = 0; + + debug_80C376C(gUnknown_Debug_2038A20->unk0, 26, 5); + + gUnknown_Debug_2038A20->unk6 = gSprites[gUnknown_Debug_2038A20->unk2].oam.paletteNum; + CpuCopy16(gPlttBufferUnfaded + gUnknown_Debug_2038A20->unk6 * 16 + 0x100, gPlttBufferUnfaded + 0x80, 0x20); + CpuCopy16(gPlttBufferUnfaded + gUnknown_Debug_2038A20->unk6 * 16 + 0x100, gPlttBufferFaded + 0x80, 0x20); + + gTasks[taskId].func = debug_80C7A54; + + gUnknown_Debug_2038A20->unk9 = 0; +} + +void debug_80C7A54(u8 taskId) +{ + u16 hue; + CpuCopy16(gPlttBufferUnfaded + 0x80, gUnknown_Debug_2038A20->unk10, 32); + hue = gPlttBufferUnfaded[gUnknown_Debug_2038A20->unk7 + 0x81]; + gUnknown_Debug_2038A20->unkC.r = hue & 0x1f; + gUnknown_Debug_2038A20->unkC.g = (hue & 0x3e0) >> 5; + gUnknown_Debug_2038A20->unkC.b = (hue & 0x7c00) >> 10; + gUnknown_Debug_2038A20->unkC.unused_15 = 0; + debug_80C68CC(gUnknown_Debug_2038A20->unk7 + 1, 11, 10, 2); + Menu_PrintText(gUnknown_Debug_083F8813, 13, 10); + debug_80C68CC(hue, 14, 10, 4); + gTasks[taskId].func = debug_80C7B14; +} + #endif // DEBUG -- cgit v1.2.3 From 936981f6698cd489c91c1dd419a6dbaa6179eaef Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 21 Apr 2018 14:09:13 -0400 Subject: Remaining functions in watanabe --- asm/watanabe_debug_menu.s | 759 ---------------------------------------- ld_script.txt | 1 - src/debug/watanabe_debug_menu.c | 445 +++++++++++++++++++++++ 3 files changed, 445 insertions(+), 760 deletions(-) delete mode 100644 asm/watanabe_debug_menu.s diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s deleted file mode 100644 index cb801d86b..000000000 --- a/asm/watanabe_debug_menu.s +++ /dev/null @@ -1,759 +0,0 @@ -.if DEBUG - - .include "constants/gba_constants.inc" - .include "include/macros.inc" - - .text - - thumb_func_start debug_80C7B14 -debug_80C7B14: - push {r4, r5, r6, lr} - add sp, sp, #0xfffffffc - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - ldr r1, ._792 @ gMain - ldrh r3, [r1, #0x2e] - mov r0, #0x2 - and r0, r0, r3 - add r4, r1, #0 - cmp r0, #0 - beq ._790 @cond_branch - mov r0, #0x5 - bl PlaySE - mov r0, #0x1 - neg r0, r0 - mov r1, #0x0 - str r1, [sp] - mov r2, #0x0 - mov r3, #0x10 - bl BeginNormalPaletteFade - ldr r0, ._792 + 4 @ debug_80C370C - bl SetMainCallback2 - ldr r1, ._792 + 8 @ gTasks - lsl r0, r6, #0x2 - add r0, r0, r6 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._792 + 12 @ debug_80C373C - str r1, [r0] - b ._821 -._793: - .align 2, 0 -._792: - .word gMain - .word debug_80C370C+1 - .word gTasks - .word debug_80C373C+1 -._790: - ldrh r1, [r4, #0x30] - mov r0, #0x80 - lsl r0, r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._794 @cond_branch - ldr r4, ._796 @ gUnknown_Debug_2038A20 - ldr r0, [r4] - ldrh r1, [r0] - mov r0, #0x0 - b ._795 -._797: - .align 2, 0 -._796: - .word gUnknown_Debug_2038A20 -._794: - mov r0, #0x80 - lsl r0, r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - beq ._798 @cond_branch - ldr r4, ._800 @ gUnknown_Debug_2038A20 - ldr r0, [r4] - ldrh r1, [r0] - mov r0, #0x1 -._795: - bl debug_80C38B4 - ldr r1, [r4] - strh r0, [r1] - ldr r1, ._800 + 4 @ gTasks - lsl r0, r6, #0x2 - add r0, r0, r6 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._800 + 8 @ debug_80C7D44 - str r1, [r0] - b ._821 -._801: - .align 2, 0 -._800: - .word gUnknown_Debug_2038A20 - .word gTasks - .word debug_80C7D44+1 -._798: - mov r2, #0x1 - and r2, r2, r3 - cmp r2, #0 - beq ._802 @cond_branch - ldr r0, ._804 @ gUnknown_Debug_2038A20 - ldr r1, [r0] - mov r0, #0x1 - strb r0, [r1, #0x5] - ldr r1, ._804 + 4 @ 0x4000040 - ldr r2, ._804 + 8 @ 0x51ef - add r0, r2, #0 - strh r0, [r1] - add r1, r1, #0x4 - ldr r2, ._804 + 12 @ 0x4167 - add r0, r2, #0 - strh r0, [r1] - ldr r1, ._804 + 16 @ gTasks - lsl r0, r6, #0x2 - add r0, r0, r6 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._804 + 20 @ debug_80C7DDC - str r1, [r0] - b ._821 -._805: - .align 2, 0 -._804: - .word gUnknown_Debug_2038A20 - .word 0x4000040 - .word 0x51ef - .word 0x4167 - .word gTasks - .word debug_80C7DDC+1 -._802: - mov r0, #0x10 - and r0, r0, r1 - ldr r3, ._809 @ gUnknown_Debug_2038A20 - cmp r0, #0 - beq ._807 @cond_branch - ldr r1, [r3] - ldrb r0, [r1, #0x7] - cmp r0, #0xd - bhi ._807 @cond_branch - lsl r0, r0, #0x1 - ldr r1, ._809 + 4 @ 0x5000102 - add r0, r0, r1 - strh r2, [r0] - ldr r1, [r3] - ldrb r0, [r1, #0x7] - add r0, r0, #0x1 - strb r0, [r1, #0x7] - b ._813 -._810: - .align 2, 0 -._809: - .word gUnknown_Debug_2038A20 - .word 0x5000102 -._807: - ldrh r1, [r4, #0x30] - mov r0, #0x20 - and r0, r0, r1 - cmp r0, #0 - beq ._812 @cond_branch - ldr r1, [r3] - ldrb r0, [r1, #0x7] - cmp r0, #0 - beq ._812 @cond_branch - lsl r0, r0, #0x1 - ldr r2, ._814 @ 0x5000102 - add r0, r0, r2 - mov r1, #0x0 - strh r1, [r0] - ldr r1, [r3] - ldrb r0, [r1, #0x7] - sub r0, r0, #0x1 - strb r0, [r1, #0x7] - b ._813 -._815: - .align 2, 0 -._814: - .word 0x5000102 -._812: - ldrh r1, [r4, #0x2e] - mov r0, #0x8 - and r0, r0, r1 - cmp r0, #0 - beq ._816 @cond_branch - ldr r4, ._819 @ gUnknown_Debug_2038A20 - ldr r2, [r4] - ldrb r0, [r2, #0x9] - mov r1, #0x1 - eor r0, r0, r1 - strb r0, [r2, #0x9] - ldr r1, [r4] - ldrb r0, [r1, #0x9] - cmp r0, #0 - beq ._817 @cond_branch - ldrh r0, [r1] - mov r1, #0x0 - mov r2, #0x0 - bl GetMonSpritePalFromOtIdPersonality - ldr r1, [r4] - ldrb r1, [r1, #0x6] - lsl r1, r1, #0x14 - mov r2, #0x80 - lsl r2, r2, #0x11 - add r1, r1, r2 - lsr r1, r1, #0x10 - mov r2, #0x20 - bl LoadCompressedPalette - b ._818 -._820: - .align 2, 0 -._819: - .word gUnknown_Debug_2038A20 -._817: - ldrh r0, [r1] - mov r1, #0x0 - mov r2, #0x9 - bl GetMonSpritePalFromOtIdPersonality - ldr r1, [r4] - ldrb r1, [r1, #0x6] - lsl r1, r1, #0x14 - mov r2, #0x80 - lsl r2, r2, #0x11 - add r1, r1, r2 - lsr r1, r1, #0x10 - mov r2, #0x20 - bl LoadCompressedPalette -._818: - ldr r5, ._822 @ gUnknown_Debug_2038A20 - ldr r0, [r5] - ldrb r0, [r0, #0x6] - lsl r0, r0, #0x5 - ldr r4, ._822 + 4 @ gPlttBufferUnfaded - add r0, r0, r4 - ldr r2, ._822 + 8 @ 0xffffff00 - add r1, r4, r2 - mov r2, #0x10 - bl CpuSet - ldr r0, [r5] - ldrb r0, [r0, #0x6] - lsl r0, r0, #0x5 - add r0, r0, r4 - ldr r1, ._822 + 12 @ gPlttBufferFaded - mov r2, #0x10 - bl CpuSet -._813: - ldr r1, ._822 + 16 @ gTasks - lsl r0, r6, #0x2 - add r0, r0, r6 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._822 + 20 @ debug_80C7A54 - str r1, [r0] - b ._821 -._823: - .align 2, 0 -._822: - .word gUnknown_Debug_2038A20 - .word gPlttBufferUnfaded+0x200 - .word 0xffffff00 - .word gPlttBufferFaded+0x100 - .word gTasks - .word debug_80C7A54+1 -._816: - ldr r1, [r3] - ldrb r0, [r1, #0x8] - add r0, r0, #0x4 - strb r0, [r1, #0x8] - ldr r2, [r3] - ldrb r1, [r2, #0x8] - mov r0, #0x1f - and r0, r0, r1 - strb r0, [r2, #0x8] - ldr r0, [r3] - ldrb r1, [r0, #0x7] - lsl r1, r1, #0x1 - ldr r2, ._824 @ 0x5000142 - add r1, r1, r2 - ldr r2, ._824 + 4 @ gUnknown_Debug_083F8790 - ldrb r0, [r0, #0x8] - lsl r0, r0, #0x1 - add r0, r0, r2 - ldrh r0, [r0] - strh r0, [r1] -._821: - add sp, sp, #0x4 - pop {r4, r5, r6} - pop {r0} - bx r0 -._825: - .align 2, 0 -._824: - .word 0x5000142 - .word gUnknown_Debug_083F8790 - - thumb_func_end debug_80C7B14 - - thumb_func_start debug_80C7D44 -debug_80C7D44: - push {r4, r5, r6, lr} - add r5, r0, #0 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - ldr r6, ._826 @ gSprites - ldr r4, ._826 + 4 @ gUnknown_Debug_2038A20 - ldr r0, [r4] - ldrb r1, [r0, #0x2] - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r6 - ldrb r0, [r0, #0x5] - lsr r0, r0, #0x4 - bl GetSpritePaletteTagByPaletteNum - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FreeSpritePaletteByTag - ldr r0, [r4] - ldrb r1, [r0, #0x2] - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r6 - bl DestroySprite - ldr r0, [r4] - ldrb r1, [r0, #0x3] - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r6 - ldrb r0, [r0, #0x5] - lsr r0, r0, #0x4 - bl GetSpritePaletteTagByPaletteNum - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FreeSpritePaletteByTag - ldr r0, [r4] - ldrb r1, [r0, #0x3] - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r6 - bl DestroySprite - ldr r0, [r4] - ldrb r1, [r0, #0x4] - lsl r0, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x2 - add r0, r0, r6 - bl sub_809D510 - ldr r1, ._826 + 8 @ gTasks - lsl r0, r5, #0x2 - add r0, r0, r5 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._826 + 12 @ debug_80C7934 - str r1, [r0] - pop {r4, r5, r6} - pop {r0} - bx r0 -._827: - .align 2, 0 -._826: - .word gSprites - .word gUnknown_Debug_2038A20 - .word gTasks - .word debug_80C7934+1 - - thumb_func_end debug_80C7D44 - - thumb_func_start debug_80C7DDC -debug_80C7DDC: - push {r4, r5, r6, r7, lr} - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 - ldr r0, ._830 @ gMain - ldrh r2, [r0, #0x2e] - mov r1, #0x1 - and r1, r1, r2 - add r3, r0, #0 - cmp r1, #0 - beq ._828 @cond_branch - ldr r0, ._830 + 4 @ gUnknown_Debug_2038A20 - ldr r1, [r0] - mov r0, #0x0 - strb r0, [r1, #0x5] - ldr r1, ._830 + 8 @ 0x4000040 - ldr r2, ._830 + 12 @ 0x51ef - add r0, r2, #0 - strh r0, [r1] - add r1, r1, #0x4 - ldr r2, ._830 + 16 @ 0x699f - add r0, r2, #0 - strh r0, [r1] - b ._829 -._831: - .align 2, 0 -._830: - .word gMain - .word gUnknown_Debug_2038A20 - .word 0x4000040 - .word 0x51ef - .word 0x699f -._828: - mov r0, #0x2 - and r0, r0, r2 - cmp r0, #0 - beq ._832 @cond_branch - ldr r6, ._834 @ gUnknown_Debug_2038A20 - ldr r0, [r6] - strb r1, [r0, #0x5] - ldr r1, ._834 + 4 @ 0x4000040 - ldr r2, ._834 + 8 @ 0x51ef - add r0, r2, #0 - strh r0, [r1] - add r1, r1, #0x4 - ldr r2, ._834 + 12 @ 0x699f - add r0, r2, #0 - strh r0, [r1] - ldr r0, [r6] - add r0, r0, #0x10 - ldr r4, ._834 + 16 @ gPlttBufferUnfaded - add r1, r4, #0 - mov r2, #0x10 - bl CpuSet - ldr r0, [r6] - add r0, r0, #0x10 - ldr r5, ._834 + 20 @ gPlttBufferFaded - add r1, r5, #0 - mov r2, #0x10 - bl CpuSet - ldr r1, [r6] - add r0, r1, #0 - add r0, r0, #0x10 - ldrb r1, [r1, #0x6] - lsl r1, r1, #0x5 - mov r2, #0x80 - lsl r2, r2, #0x1 - add r4, r4, r2 - add r1, r1, r4 - mov r2, #0x10 - bl CpuSet - ldr r1, [r6] - add r0, r1, #0 - add r0, r0, #0x10 - ldrb r1, [r1, #0x6] - lsl r1, r1, #0x5 - mov r2, #0x80 - lsl r2, r2, #0x1 - add r5, r5, r2 - add r1, r1, r5 - mov r2, #0x10 - bl CpuSet -._829: - ldr r1, ._834 + 24 @ gTasks - lsl r0, r7, #0x2 - add r0, r0, r7 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._834 + 28 @ debug_80C7A54 - str r1, [r0] - b ._871 -._835: - .align 2, 0 -._834: - .word gUnknown_Debug_2038A20 - .word 0x4000040 - .word 0x51ef - .word 0x699f - .word gPlttBufferUnfaded+0x100 - .word gPlttBufferFaded+0x100 - .word gTasks - .word debug_80C7A54+1 -._832: - ldrh r1, [r3, #0x30] - mov r0, #0x80 - and r0, r0, r1 - cmp r0, #0 - beq ._837 @cond_branch - ldr r0, ._839 @ gUnknown_Debug_2038A20 - ldr r1, [r0] - ldrb r0, [r1, #0xa] - cmp r0, #0x1 - bhi ._837 @cond_branch - add r0, r0, #0x1 - strb r0, [r1, #0xa] - b ._871 -._840: - .align 2, 0 -._839: - .word gUnknown_Debug_2038A20 -._837: - ldrh r1, [r3, #0x30] - mov r0, #0x40 - and r0, r0, r1 - cmp r0, #0 - beq ._842 @cond_branch - ldr r0, ._844 @ gUnknown_Debug_2038A20 - ldr r1, [r0] - ldrb r0, [r1, #0xa] - cmp r0, #0 - beq ._842 @cond_branch - sub r0, r0, #0x1 - strb r0, [r1, #0xa] - b ._871 -._845: - .align 2, 0 -._844: - .word gUnknown_Debug_2038A20 -._842: - ldrh r1, [r3, #0x30] - mov r0, #0x10 - and r0, r0, r1 - cmp r0, #0 - beq ._846 @cond_branch - ldr r0, ._851 @ gUnknown_Debug_2038A20 - ldr r2, [r0] - ldrb r0, [r2, #0xa] - cmp r0, #0x1 - beq ._847 @cond_branch - cmp r0, #0x1 - bgt ._848 @cond_branch - cmp r0, #0 - beq ._849 @cond_branch - b ._871 -._852: - .align 2, 0 -._851: - .word gUnknown_Debug_2038A20 -._848: - cmp r0, #0x2 - beq ._853 @cond_branch - b ._871 -._849: - ldrb r3, [r2, #0xc] - lsl r1, r3, #0x1b - lsr r0, r1, #0x1b - cmp r0, #0x1e - bhi ._878 @cond_branch - add r0, r0, #0x1 - mov r1, #0x1f - and r0, r0, r1 - mov r1, #0x20 - neg r1, r1 - and r1, r1, r3 - orr r1, r1, r0 - strb r1, [r2, #0xc] - b ._878 -._847: - ldrh r3, [r2, #0xc] - lsl r1, r3, #0x16 - lsr r0, r1, #0x1b - cmp r0, #0x1e - bhi ._878 @cond_branch - add r0, r0, #0x1 - mov r1, #0x1f - and r0, r0, r1 - lsl r0, r0, #0x5 - ldr r1, ._859 @ 0xfffffc1f - and r1, r1, r3 - orr r1, r1, r0 - strh r1, [r2, #0xc] - b ._878 -._860: - .align 2, 0 -._859: - .word 0xfffffc1f -._853: - ldrb r3, [r2, #0xd] - lsl r1, r3, #0x19 - lsr r0, r1, #0x1b - cmp r0, #0x1e - bhi ._878 @cond_branch - add r0, r0, #0x1 - mov r1, #0x1f - and r0, r0, r1 - lsl r0, r0, #0x2 - mov r1, #0x7d - neg r1, r1 - and r1, r1, r3 - orr r1, r1, r0 - strb r1, [r2, #0xd] - b ._878 -._846: - mov r0, #0x20 - and r0, r0, r1 - cmp r0, #0 - beq ._871 @cond_branch - ldr r0, ._868 @ gUnknown_Debug_2038A20 - ldr r3, [r0] - ldrb r0, [r3, #0xa] - cmp r0, #0x1 - beq ._864 @cond_branch - cmp r0, #0x1 - bgt ._865 @cond_branch - cmp r0, #0 - beq ._866 @cond_branch - b ._871 -._869: - .align 2, 0 -._868: - .word gUnknown_Debug_2038A20 -._865: - cmp r0, #0x2 - beq ._870 @cond_branch - b ._871 -._866: - ldrb r2, [r3, #0xc] - mov r0, #0x1f - and r0, r0, r2 - cmp r0, #0 - beq ._878 @cond_branch - lsl r0, r2, #0x1b - lsr r0, r0, #0x1b - sub r0, r0, #0x1 - mov r1, #0x1f - and r0, r0, r1 - mov r1, #0x20 - neg r1, r1 - and r1, r1, r2 - orr r1, r1, r0 - strb r1, [r3, #0xc] - b ._878 -._864: - ldrh r2, [r3, #0xc] - mov r0, #0xf8 - lsl r0, r0, #0x2 - and r0, r0, r2 - cmp r0, #0 - beq ._878 @cond_branch - lsl r0, r2, #0x16 - lsr r0, r0, #0x1b - sub r0, r0, #0x1 - mov r1, #0x1f - and r0, r0, r1 - lsl r0, r0, #0x5 - ldr r1, ._876 @ 0xfffffc1f - and r1, r1, r2 - orr r1, r1, r0 - strh r1, [r3, #0xc] - b ._878 -._877: - .align 2, 0 -._876: - .word 0xfffffc1f -._870: - ldrb r2, [r3, #0xd] - mov r0, #0x7c - and r0, r0, r2 - cmp r0, #0 - beq ._878 @cond_branch - lsl r0, r2, #0x19 - lsr r0, r0, #0x1b - sub r0, r0, #0x1 - mov r1, #0x1f - and r0, r0, r1 - lsl r0, r0, #0x2 - mov r1, #0x7d - neg r1, r1 - and r1, r1, r2 - orr r1, r1, r0 - strb r1, [r3, #0xd] -._878: - ldr r0, ._879 @ gTasks - lsl r1, r7, #0x2 - add r1, r1, r7 - lsl r1, r1, #0x3 - add r1, r1, r0 - ldr r0, ._879 + 4 @ debug_80C802C - str r0, [r1] -._871: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._880: - .align 2, 0 -._879: - .word gTasks - .word debug_80C802C+1 - - thumb_func_end debug_80C7DDC - - thumb_func_start debug_80C802C -debug_80C802C: - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - add r5, r0, #0 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - ldr r0, ._881 @ gUnknown_Debug_2038A20 - ldr r3, [r0] - ldrb r0, [r3, #0xc] - lsl r0, r0, #0x1b - lsr r0, r0, #0x1b - ldrh r2, [r3, #0xc] - mov r1, #0xf8 - lsl r1, r1, #0x2 - and r1, r1, r2 - add r0, r0, r1 - ldrb r1, [r3, #0xd] - lsl r1, r1, #0x19 - lsr r1, r1, #0x1b - lsl r1, r1, #0xa - add r0, r0, r1 - ldr r6, ._881 + 4 @ gPlttBufferUnfaded - ldrb r1, [r3, #0x7] - add r1, r1, #0x81 - lsl r1, r1, #0x1 - add r1, r1, r6 - strh r0, [r1] - ldr r1, ._881 + 8 @ gPlttBufferFaded - mov r8, r1 - ldrb r1, [r3, #0x7] - add r1, r1, #0x81 - lsl r1, r1, #0x1 - add r1, r1, r8 - strh r0, [r1] - ldrb r1, [r3, #0x6] - lsl r1, r1, #0x4 - ldrb r2, [r3, #0x7] - ldr r4, ._881 + 12 @ 0x101 - add r2, r2, r4 - add r1, r1, r2 - lsl r1, r1, #0x1 - add r1, r1, r6 - strh r0, [r1] - ldrb r1, [r3, #0x6] - lsl r1, r1, #0x4 - ldrb r2, [r3, #0x7] - add r2, r2, r4 - add r1, r1, r2 - lsl r1, r1, #0x1 - add r1, r1, r8 - strh r0, [r1] - mov r1, #0xe - mov r2, #0xa - mov r3, #0x4 - bl debug_80C68CC - ldr r1, ._881 + 16 @ gTasks - lsl r0, r5, #0x2 - add r0, r0, r5 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, ._881 + 20 @ debug_80C7DDC - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6} - pop {r0} - bx r0 -._882: - .align 2, 0 -._881: - .word gUnknown_Debug_2038A20 - .word gPlttBufferUnfaded - .word gPlttBufferFaded - .word 0x101 - .word gTasks - .word debug_80C7DDC+1 - - thumb_func_end debug_80C802C - - .align 2, 0 - -.endif diff --git a/ld_script.txt b/ld_script.txt index df91d85cc..2497e1d91 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -152,7 +152,6 @@ SECTIONS { src/fldeff_escalator.o(.text); src/berry.o(.text); src/debug/watanabe_debug_menu.o(.text); - asm/watanabe_debug_menu.o(.text); src/script_menu.o(.text); src/naming_screen.o(.text); src/money.o(.text); diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index b1f7cbe54..cf54f62f2 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -144,6 +144,9 @@ void debug_80C777C(u8 taskId); void debug_80C7934(u8 taskId); void debug_80C7A54(u8 taskId); void debug_80C7B14(u8 taskId); +void debug_80C7D44(u8 taskId); +void debug_80C7DDC(u8 taskId); +void debug_80C802C(u8 taskId); extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F8068[5]; extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F80D8[10]; @@ -2518,12 +2521,14 @@ void debug_80C6FA8(u8 taskId) else if (gMain.newAndRepeatedKeys & DPAD_RIGHT && gUnknown_Debug_2038A20->unk7 < 14) { ((u16 *)PLTT)[0x81 + gUnknown_Debug_2038A20->unk7] = 0; + do; while(0); gUnknown_Debug_2038A20->unk7++; gTasks[taskId].func = debug_80C6EE8; } else if (gMain.newAndRepeatedKeys & DPAD_LEFT && gUnknown_Debug_2038A20->unk7 > 0) { ((u16 *)PLTT)[0x81 + gUnknown_Debug_2038A20->unk7] = 0; + do; while(0); gUnknown_Debug_2038A20->unk7--; gTasks[taskId].func = debug_80C6EE8; } @@ -3097,4 +3102,444 @@ void debug_80C7A54(u8 taskId) gTasks[taskId].func = debug_80C7B14; } +#ifdef NONMATCHING +void debug_80C7B14(u8 taskId) +{ + if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + SetMainCallback2(debug_80C370C); + gTasks[taskId].func = debug_80C373C; + } + else if (gMain.newAndRepeatedKeys & R_BUTTON) + { + gUnknown_Debug_2038A20->unk0 = debug_80C38B4(0, gUnknown_Debug_2038A20->unk0); + gTasks[taskId].func = debug_80C7D44; + } + else if (gMain.newAndRepeatedKeys & L_BUTTON) + { + gUnknown_Debug_2038A20->unk0 = debug_80C38B4(1, gUnknown_Debug_2038A20->unk0); + gTasks[taskId].func = debug_80C7D44; + } + else if (gMain.newKeys & A_BUTTON) + { + gUnknown_Debug_2038A20->unk5 = 1; + REG_WIN0H = 0x51EF; + REG_WIN0V = 0x4167; + gTasks[taskId].func = debug_80C7DDC; + } + else if (gMain.newAndRepeatedKeys & DPAD_RIGHT && gUnknown_Debug_2038A20->unk7 < 14) + { + ((u16 *)PLTT)[0x81 + gUnknown_Debug_2038A20->unk7] = 0; + do; while (0); // this matches the asm here... + gUnknown_Debug_2038A20->unk7++; + gTasks[taskId].func = debug_80C7A54; + } + else if (gMain.newAndRepeatedKeys & DPAD_LEFT && gUnknown_Debug_2038A20->unk7 > 0) + { + ((u16 *)PLTT)[0x81 + gUnknown_Debug_2038A20->unk7] = 0; + do; while (0); // ... but not here + gUnknown_Debug_2038A20->unk7--; + gTasks[taskId].func = debug_80C7A54; + } + else if (gMain.newKeys & START_BUTTON) + { + gUnknown_Debug_2038A20->unk9 ^= 1; + if (gUnknown_Debug_2038A20->unk9) + { + LoadCompressedPalette(GetMonSpritePalFromOtIdPersonality(gUnknown_Debug_2038A20->unk0, 0, 0), gUnknown_Debug_2038A20->unk6 * 16 + 0x100, 0x20); + } + else + { + LoadCompressedPalette(GetMonSpritePalFromOtIdPersonality(gUnknown_Debug_2038A20->unk0, 0, 9), gUnknown_Debug_2038A20->unk6 * 16 + 0x100, 0x20); + } + CpuCopy16(gPlttBufferUnfaded + gUnknown_Debug_2038A20->unk6 * 16 + 0x100, gPlttBufferUnfaded + 0x80, 32); + CpuCopy16(gPlttBufferUnfaded + gUnknown_Debug_2038A20->unk6 * 16 + 0x100, gPlttBufferFaded + 0x80, 32); + gTasks[taskId].func = debug_80C7A54; + } + else + { + gUnknown_Debug_2038A20->unk8 += 4; + gUnknown_Debug_2038A20->unk8 &= 0x1f; + ((u16 *)PLTT)[0xa1 + gUnknown_Debug_2038A20->unk7] = gUnknown_Debug_083F8790[gUnknown_Debug_2038A20->unk8]; + } +} +#else +NAKED void debug_80C7B14(u8 taskId) +{ + asm("\tpush\t{r4, r5, r6, lr}\n" + "\tadd\tsp, sp, #0xfffffffc\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr6, r0, #0x18\n" + "\tldr\tr1, ._792 @ gMain\n" + "\tldrh\tr3, [r1, #0x2e]\n" + "\tmov\tr0, #0x2\n" + "\tand\tr0, r0, r3\n" + "\tadd\tr4, r1, #0\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._790\t@cond_branch\n" + "\tmov\tr0, #0x5\n" + "\tbl\tPlaySE\n" + "\tmov\tr0, #0x1\n" + "\tneg\tr0, r0\n" + "\tmov\tr1, #0x0\n" + "\tstr\tr1, [sp]\n" + "\tmov\tr2, #0x0\n" + "\tmov\tr3, #0x10\n" + "\tbl\tBeginNormalPaletteFade\n" + "\tldr\tr0, ._792 + 4 @ debug_80C370C\n" + "\tbl\tSetMainCallback2\n" + "\tldr\tr1, ._792 + 8 @ gTasks\n" + "\tlsl\tr0, r6, #0x2\n" + "\tadd\tr0, r0, r6\n" + "\tlsl\tr0, r0, #0x3\n" + "\tadd\tr0, r0, r1\n" + "\tldr\tr1, ._792 + 12 @ debug_80C373C\n" + "\tstr\tr1, [r0]\n" + "\tb\t._821\n" + "._793:\n" + "\t.align\t2, 0\n" + "._792:\n" + "\t.word\tgMain\n" + "\t.word\tdebug_80C370C+1\n" + "\t.word\tgTasks\n" + "\t.word\tdebug_80C373C+1\n" + "._790:\n" + "\tldrh\tr1, [r4, #0x30]\n" + "\tmov\tr0, #0x80\n" + "\tlsl\tr0, r0, #0x1\n" + "\tand\tr0, r0, r1\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._794\t@cond_branch\n" + "\tldr\tr4, ._796 @ gUnknown_Debug_2038A20\n" + "\tldr\tr0, [r4]\n" + "\tldrh\tr1, [r0]\n" + "\tmov\tr0, #0x0\n" + "\tb\t._795\n" + "._797:\n" + "\t.align\t2, 0\n" + "._796:\n" + "\t.word\tgUnknown_Debug_2038A20\n" + "._794:\n" + "\tmov\tr0, #0x80\n" + "\tlsl\tr0, r0, #0x2\n" + "\tand\tr0, r0, r1\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._798\t@cond_branch\n" + "\tldr\tr4, ._800 @ gUnknown_Debug_2038A20\n" + "\tldr\tr0, [r4]\n" + "\tldrh\tr1, [r0]\n" + "\tmov\tr0, #0x1\n" + "._795:\n" + "\tbl\tdebug_80C38B4\n" + "\tldr\tr1, [r4]\n" + "\tstrh\tr0, [r1]\n" + "\tldr\tr1, ._800 + 4 @ gTasks\n" + "\tlsl\tr0, r6, #0x2\n" + "\tadd\tr0, r0, r6\n" + "\tlsl\tr0, r0, #0x3\n" + "\tadd\tr0, r0, r1\n" + "\tldr\tr1, ._800 + 8 @ debug_80C7D44\n" + "\tstr\tr1, [r0]\n" + "\tb\t._821\n" + "._801:\n" + "\t.align\t2, 0\n" + "._800:\n" + "\t.word\tgUnknown_Debug_2038A20\n" + "\t.word\tgTasks\n" + "\t.word\tdebug_80C7D44+1\n" + "._798:\n" + "\tmov\tr2, #0x1\n" + "\tand\tr2, r2, r3\n" + "\tcmp\tr2, #0\n" + "\tbeq\t._802\t@cond_branch\n" + "\tldr\tr0, ._804 @ gUnknown_Debug_2038A20\n" + "\tldr\tr1, [r0]\n" + "\tmov\tr0, #0x1\n" + "\tstrb\tr0, [r1, #0x5]\n" + "\tldr\tr1, ._804 + 4 @ 0x4000040\n" + "\tldr\tr2, ._804 + 8 @ 0x51ef\n" + "\tadd\tr0, r2, #0\n" + "\tstrh\tr0, [r1]\n" + "\tadd\tr1, r1, #0x4\n" + "\tldr\tr2, ._804 + 12 @ 0x4167\n" + "\tadd\tr0, r2, #0\n" + "\tstrh\tr0, [r1]\n" + "\tldr\tr1, ._804 + 16 @ gTasks\n" + "\tlsl\tr0, r6, #0x2\n" + "\tadd\tr0, r0, r6\n" + "\tlsl\tr0, r0, #0x3\n" + "\tadd\tr0, r0, r1\n" + "\tldr\tr1, ._804 + 20 @ debug_80C7DDC\n" + "\tstr\tr1, [r0]\n" + "\tb\t._821\n" + "._805:\n" + "\t.align\t2, 0\n" + "._804:\n" + "\t.word\tgUnknown_Debug_2038A20\n" + "\t.word\t0x4000040\n" + "\t.word\t0x51ef\n" + "\t.word\t0x4167\n" + "\t.word\tgTasks\n" + "\t.word\tdebug_80C7DDC+1\n" + "._802:\n" + "\tmov\tr0, #0x10\n" + "\tand\tr0, r0, r1\n" + "\tldr\tr3, ._809 @ gUnknown_Debug_2038A20\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._807\t@cond_branch\n" + "\tldr\tr1, [r3]\n" + "\tldrb\tr0, [r1, #0x7]\n" + "\tcmp\tr0, #0xd\n" + "\tbhi\t._807\t@cond_branch\n" + "\tlsl\tr0, r0, #0x1\n" + "\tldr\tr1, ._809 + 4 @ 0x5000102\n" + "\tadd\tr0, r0, r1\n" + "\tstrh\tr2, [r0]\n" + "\tldr\tr1, [r3]\n" + "\tldrb\tr0, [r1, #0x7]\n" + "\tadd\tr0, r0, #0x1\n" + "\tstrb\tr0, [r1, #0x7]\n" + "\tb\t._813\n" + "._810:\n" + "\t.align\t2, 0\n" + "._809:\n" + "\t.word\tgUnknown_Debug_2038A20\n" + "\t.word\t0x5000102\n" + "._807:\n" + "\tldrh\tr1, [r4, #0x30]\n" + "\tmov\tr0, #0x20\n" + "\tand\tr0, r0, r1\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._812\t@cond_branch\n" + "\tldr\tr1, [r3]\n" + "\tldrb\tr0, [r1, #0x7]\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._812\t@cond_branch\n" + "\tlsl\tr0, r0, #0x1\n" + "\tldr\tr2, ._814 @ 0x5000102\n" + "\tadd\tr0, r0, r2\n" + "\tmov\tr1, #0x0\n" + "\tstrh\tr1, [r0]\n" + "\tldr\tr1, [r3]\n" + "\tldrb\tr0, [r1, #0x7]\n" + "\tsub\tr0, r0, #0x1\n" + "\tstrb\tr0, [r1, #0x7]\n" + "\tb\t._813\n" + "._815:\n" + "\t.align\t2, 0\n" + "._814:\n" + "\t.word\t0x5000102\n" + "._812:\n" + "\tldrh\tr1, [r4, #0x2e]\n" + "\tmov\tr0, #0x8\n" + "\tand\tr0, r0, r1\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._816\t@cond_branch\n" + "\tldr\tr4, ._819 @ gUnknown_Debug_2038A20\n" + "\tldr\tr2, [r4]\n" + "\tldrb\tr0, [r2, #0x9]\n" + "\tmov\tr1, #0x1\n" + "\teor\tr0, r0, r1\n" + "\tstrb\tr0, [r2, #0x9]\n" + "\tldr\tr1, [r4]\n" + "\tldrb\tr0, [r1, #0x9]\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._817\t@cond_branch\n" + "\tldrh\tr0, [r1]\n" + "\tmov\tr1, #0x0\n" + "\tmov\tr2, #0x0\n" + "\tbl\tGetMonSpritePalFromOtIdPersonality\n" + "\tldr\tr1, [r4]\n" + "\tldrb\tr1, [r1, #0x6]\n" + "\tlsl\tr1, r1, #0x14\n" + "\tmov\tr2, #0x80\n" + "\tlsl\tr2, r2, #0x11\n" + "\tadd\tr1, r1, r2\n" + "\tlsr\tr1, r1, #0x10\n" + "\tmov\tr2, #0x20\n" + "\tbl\tLoadCompressedPalette\n" + "\tb\t._818\n" + "._820:\n" + "\t.align\t2, 0\n" + "._819:\n" + "\t.word\tgUnknown_Debug_2038A20\n" + "._817:\n" + "\tldrh\tr0, [r1]\n" + "\tmov\tr1, #0x0\n" + "\tmov\tr2, #0x9\n" + "\tbl\tGetMonSpritePalFromOtIdPersonality\n" + "\tldr\tr1, [r4]\n" + "\tldrb\tr1, [r1, #0x6]\n" + "\tlsl\tr1, r1, #0x14\n" + "\tmov\tr2, #0x80\n" + "\tlsl\tr2, r2, #0x11\n" + "\tadd\tr1, r1, r2\n" + "\tlsr\tr1, r1, #0x10\n" + "\tmov\tr2, #0x20\n" + "\tbl\tLoadCompressedPalette\n" + "._818:\n" + "\tldr\tr5, ._822 @ gUnknown_Debug_2038A20\n" + "\tldr\tr0, [r5]\n" + "\tldrb\tr0, [r0, #0x6]\n" + "\tlsl\tr0, r0, #0x5\n" + "\tldr\tr4, ._822 + 4 @ gPlttBufferUnfaded\n" + "\tadd\tr0, r0, r4\n" + "\tldr\tr2, ._822 + 8 @ 0xffffff00\n" + "\tadd\tr1, r4, r2\n" + "\tmov\tr2, #0x10\n" + "\tbl\tCpuSet\n" + "\tldr\tr0, [r5]\n" + "\tldrb\tr0, [r0, #0x6]\n" + "\tlsl\tr0, r0, #0x5\n" + "\tadd\tr0, r0, r4\n" + "\tldr\tr1, ._822 + 12 @ gPlttBufferFaded\n" + "\tmov\tr2, #0x10\n" + "\tbl\tCpuSet\n" + "._813:\n" + "\tldr\tr1, ._822 + 16 @ gTasks\n" + "\tlsl\tr0, r6, #0x2\n" + "\tadd\tr0, r0, r6\n" + "\tlsl\tr0, r0, #0x3\n" + "\tadd\tr0, r0, r1\n" + "\tldr\tr1, ._822 + 20 @ debug_80C7A54\n" + "\tstr\tr1, [r0]\n" + "\tb\t._821\n" + "._823:\n" + "\t.align\t2, 0\n" + "._822:\n" + "\t.word\tgUnknown_Debug_2038A20\n" + "\t.word\tgPlttBufferUnfaded+0x200\n" + "\t.word\t0xffffff00\n" + "\t.word\tgPlttBufferFaded+0x100\n" + "\t.word\tgTasks\n" + "\t.word\tdebug_80C7A54+1\n" + "._816:\n" + "\tldr\tr1, [r3]\n" + "\tldrb\tr0, [r1, #0x8]\n" + "\tadd\tr0, r0, #0x4\n" + "\tstrb\tr0, [r1, #0x8]\n" + "\tldr\tr2, [r3]\n" + "\tldrb\tr1, [r2, #0x8]\n" + "\tmov\tr0, #0x1f\n" + "\tand\tr0, r0, r1\n" + "\tstrb\tr0, [r2, #0x8]\n" + "\tldr\tr0, [r3]\n" + "\tldrb\tr1, [r0, #0x7]\n" + "\tlsl\tr1, r1, #0x1\n" + "\tldr\tr2, ._824 @ 0x5000142\n" + "\tadd\tr1, r1, r2\n" + "\tldr\tr2, ._824 + 4 @ gUnknown_Debug_083F8790\n" + "\tldrb\tr0, [r0, #0x8]\n" + "\tlsl\tr0, r0, #0x1\n" + "\tadd\tr0, r0, r2\n" + "\tldrh\tr0, [r0]\n" + "\tstrh\tr0, [r1]\n" + "._821:\n" + "\tadd\tsp, sp, #0x4\n" + "\tpop\t{r4, r5, r6}\n" + "\tpop\t{r0}\n" + "\tbx\tr0\n" + "._825:\n" + "\t.align\t2, 0\n" + "._824:\n" + "\t.word\t0x5000142\n" + "\t.word\tgUnknown_Debug_083F8790"); +} +#endif // NONMATCHING + +void debug_80C7D44(u8 taskId) +{ + FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[gUnknown_Debug_2038A20->unk2].oam.paletteNum)); + DestroySprite(gSprites + gUnknown_Debug_2038A20->unk2); + FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[gUnknown_Debug_2038A20->unk3].oam.paletteNum)); + DestroySprite(gSprites + gUnknown_Debug_2038A20->unk3); + sub_809D510(gSprites + gUnknown_Debug_2038A20->unk4); + gTasks[taskId].func = debug_80C7934; +} + +void debug_80C7DDC(u8 taskId) +{ + if (gMain.newKeys & A_BUTTON) + { + gUnknown_Debug_2038A20->unk5 = 0; + REG_WIN0H = 0x51EF; + REG_WIN0V = 0x699F; + gTasks[taskId].func = debug_80C7A54; + } + else if (gMain.newKeys & B_BUTTON) + { + gUnknown_Debug_2038A20->unk5 = 0; + REG_WIN0H = 0x51EF; + REG_WIN0V = 0x699F; + CpuCopy16(gUnknown_Debug_2038A20->unk10, gPlttBufferUnfaded + 0x80, 32); + CpuCopy16(gUnknown_Debug_2038A20->unk10, gPlttBufferFaded + 0x80, 32); + CpuCopy16(gUnknown_Debug_2038A20->unk10, gPlttBufferUnfaded + 0x100 + gUnknown_Debug_2038A20->unk6 * 16, 32); + CpuCopy16(gUnknown_Debug_2038A20->unk10, gPlttBufferFaded + 0x100 + gUnknown_Debug_2038A20->unk6 * 16, 32); + gTasks[taskId].func = debug_80C7A54; + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN && gUnknown_Debug_2038A20->unkA < 2) + { + gUnknown_Debug_2038A20->unkA++; + } + else if (gMain.newAndRepeatedKeys & DPAD_UP && gUnknown_Debug_2038A20->unkA > 0) + { + gUnknown_Debug_2038A20->unkA--; + } + else if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + switch (gUnknown_Debug_2038A20->unkA) + { + case 0: + if (gUnknown_Debug_2038A20->unkC.r < 31) + gUnknown_Debug_2038A20->unkC.r++; + gTasks[taskId].func = debug_80C802C; + break; + case 1: + if (gUnknown_Debug_2038A20->unkC.g < 31) + gUnknown_Debug_2038A20->unkC.g++; + gTasks[taskId].func = debug_80C802C; + break; + case 2: + if (gUnknown_Debug_2038A20->unkC.b < 31) + gUnknown_Debug_2038A20->unkC.b++; + gTasks[taskId].func = debug_80C802C; + break; + } + } + else if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + switch (gUnknown_Debug_2038A20->unkA) + { + case 0: + if (gUnknown_Debug_2038A20->unkC.r > 0) + gUnknown_Debug_2038A20->unkC.r--; + gTasks[taskId].func = debug_80C802C; + break; + case 1: + if (gUnknown_Debug_2038A20->unkC.g > 0) + gUnknown_Debug_2038A20->unkC.g--; + gTasks[taskId].func = debug_80C802C; + break; + case 2: + if (gUnknown_Debug_2038A20->unkC.b > 0) + gUnknown_Debug_2038A20->unkC.b--; + gTasks[taskId].func = debug_80C802C; + break; + } + } +} + +void debug_80C802C(u8 taskId) +{ + u16 pal = (gUnknown_Debug_2038A20->unkC.r & 0x001f) + ((gUnknown_Debug_2038A20->unkC.g << 5) & 0x03e0) + ((gUnknown_Debug_2038A20->unkC.b << 10) & 0x7c00); + gPlttBufferUnfaded[gUnknown_Debug_2038A20->unk7 + 0x81] = pal; + gPlttBufferFaded[gUnknown_Debug_2038A20->unk7 + 0x81] = pal; + gPlttBufferUnfaded[0x101 + gUnknown_Debug_2038A20->unk6 * 16 + gUnknown_Debug_2038A20->unk7] = pal; + gPlttBufferFaded[0x101 + gUnknown_Debug_2038A20->unk6 * 16 + gUnknown_Debug_2038A20->unk7] = pal; + debug_80C68CC(pal, 14, 10, 4); + gTasks[taskId].func = debug_80C7DDC; +} + #endif // DEBUG -- cgit v1.2.3 From 557248ffc9a2c7fd65f8282172a76f1e65602611 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 21 Apr 2018 15:07:26 -0400 Subject: Decompile watanabe data --- data/debug_menu_watanabe.s | 757 ---------------------------------------- ld_script.txt | 1 - src/debug/watanabe_debug_menu.c | 609 +++++++++++++++++++++----------- 3 files changed, 410 insertions(+), 957 deletions(-) delete mode 100644 data/debug_menu_watanabe.s diff --git a/data/debug_menu_watanabe.s b/data/debug_menu_watanabe.s deleted file mode 100644 index e214bb450..000000000 --- a/data/debug_menu_watanabe.s +++ /dev/null @@ -1,757 +0,0 @@ - .include "include/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .if DEBUG - -gUnknown_Debug_083F7FD4:: @ 0x83F7FD4 - .string "▶$" - -gUnknown_Debug_083F7FD6:: @ 0x83F7FD6 - .string "ゆみあく" - -gUnknown_Debug_083F7FDA:: - .string "ひりつ$" - -gUnknown_Debug_083F7FDE:: @ 0x83F7FDE - .string "たかさ$" - -gUnknown_Debug_083F7FE2:: @ 0x83F7FE2 - .string "Lキー▶しゅくしょう$" - -gUnknown_Debug_083F7FED:: @ 0x83F7FED - .string "Rキー▶かくだい$" - -gUnknown_Debug_083F7FF6:: @ 0x83F7FF6 - .string "Uキー▶うえ いどう$" - -gUnknown_Debug_083F8001:: @ 0x83F8001 - .string "Dキー▶した いどう$" - -gUnknown_Debug_083F800C:: @ 0x83F800C - .string "Aボタン▶そうさきりかえ$" - -gUnknown_Debug_083F8019:: @ 0x83F8019 - .string "Bボタン▶やめる$" - -gUnknown_Debug_083F8022:: @ 0x83F8022 - .string "スタート:$" - -gUnknown_Debug_083F8028:: @ 0x83F8028 - .string ":セレクト$" - -gUnknown_Debug_083F802E:: @ 0x83F802E - .string "やせいたいせん$" - -gUnknown_Debug_083F8036:: @ 0x83F8036 - .string "1VS1たいせん$" - -gUnknown_Debug_083F803F:: @ 0x83F803F - .string "2VS2たいせん$" - -gUnknown_Debug_083F8048:: @ 0x83F8048 - .string "{COLOR BLUE}1VS1つうしんたいせん$" - -gUnknown_Debug_083F8058:: @ 0x83F8058 - .string "{COLOR BLUE}2VS2つうしんたいせん$" - - .align 2 -gUnknown_Debug_083F8068:: @ 0x83F8068 - .4byte gUnknown_Debug_083F802E - .byte 0x00, 0x01 - .align 2 - .4byte gUnknown_Debug_083F8036 - .byte 0x08, 0x01 - .align 2 - .4byte gUnknown_Debug_083F803F - .byte 0x09, 0x02 - .align 2 - .4byte gUnknown_Debug_083F8048 - .byte 0x0A, 0x01 - .align 2 - .4byte gUnknown_Debug_083F8058 - .byte 0x0B, 0x02 - .align 2 - -gUnknown_Debug_083F8090:: @ 0x83F8090 - .string "きほんタイプ$" - -gUnknown_Debug_083F8097:: @ 0x83F8097 - .string "AIタイプ2$" - -gUnknown_Debug_083F809E:: @ 0x83F809E - .string "AIタイプ3$" - -gUnknown_Debug_083F80A5:: @ 0x83F80A5 - .string "AIタイプ4$" - -gUnknown_Debug_083F80AC:: @ 0x83F80AC - .string "AIタイプ5$" - -gUnknown_Debug_083F80B3:: @ 0x83F80B3 - .string "AIタイプ6$" - -gUnknown_Debug_083F80BA:: @ 0x83F80BA - .string "AIタイプ7$" - -gUnknown_Debug_083F80C1:: @ 0x83F80C1 - .string "AIタイプ8$" - -gUnknown_Debug_083F80C8:: @ 0x83F80C8 - .string "AIタイプ9$" - -gUnknown_Debug_083F80CF:: @ 0x83F80CF - .string "AIタイプ10$" - - .align 2 -gUnknown_Debug_083F80D8:: @ 0x83F80D8 - .4byte gUnknown_Debug_083F8090, 0x1 - .4byte gUnknown_Debug_083F8097, 0x2 - .4byte gUnknown_Debug_083F809E, 0x4 - .4byte gUnknown_Debug_083F80A5, 0x8 - .4byte gUnknown_Debug_083F80AC, 0x10 - .4byte gUnknown_Debug_083F80B3, 0x20 - .4byte gUnknown_Debug_083F80BA, 0x40 - .4byte gUnknown_Debug_083F80C1, 0x80 - .4byte gUnknown_Debug_083F80C8, 0x100 - .4byte gUnknown_Debug_083F80CF, 0x200 - -gUnknown_Debug_083F8128:: @ 0x83F8128 - .string "くさ$" - -gUnknown_Debug_083F812B:: @ 0x83F812B - .string "ながい くさ$" - -gUnknown_Debug_083F8132:: @ 0x83F8132 - .string "すな$" - -gUnknown_Debug_083F8135:: @ 0x83F8135 - .string "みず$" - -gUnknown_Debug_083F8138:: @ 0x83F8138 - .string "うみ$" - -gUnknown_Debug_083F813B:: @ 0x83F813B - .string "いけ$" - -gUnknown_Debug_083F813E:: @ 0x83F813E - .string "いわ$" - -gUnknown_Debug_083F8141:: @ 0x83F8141 - .string "どうくつ$" - -gUnknown_Debug_083F8146:: @ 0x83F8146 - .string "そのた$" - - .align 2 -gUnknown_Debug_083F814C:: @ 0x83F814C - .4byte gUnknown_Debug_083F8128, 0x0 - .4byte gUnknown_Debug_083F812B, 0x1 - .4byte gUnknown_Debug_083F8132, 0x2 - .4byte gUnknown_Debug_083F8135, 0x3 - .4byte gUnknown_Debug_083F8138, 0x4 - .4byte gUnknown_Debug_083F813B, 0x5 - .4byte gUnknown_Debug_083F813E, 0x6 - .4byte gUnknown_Debug_083F8141, 0x7 - .4byte gUnknown_Debug_083F8146, 0x8 - -gUnknown_Debug_083F8194:: @ 0x83F8194 - .string "ポケモンを えらんでね$" - -gUnknown_Debug_083F81A0:: @ 0x83F81A0 - .string "{COLOR RED}START:つぎへ$" - -gUnknown_Debug_083F81AD:: @ 0x83F81AD - .string "{COLOR RED}じぶんの ポケモン$" - -gUnknown_Debug_083F81BA:: @ 0x83F81BA - .string "{COLOR RED}あいての ポケモン$" - -gUnknown_Debug_083F81C7:: @ 0x83F81C7 - .string "たいせんモードを えらんでね$" - -gUnknown_Debug_083F81D6:: @ 0x83F81D6 - .string "{COLOR RED}バトルモード せんたく$" - -gUnknown_Debug_083F81E5:: @ 0x83F81E5 - .string "{COLOR RED}トレーナーAI せんたく$" - -gUnknown_Debug_083F81F5:: @ 0x83F81F5 - .string "{COLOR RED}START:かいし$" - -gUnknown_Debug_083F8202:: @ 0x83F8202 - .string "{COLOR RED}バトルちけい せんたく$" - -gUnknown_Debug_083F8211:: @ 0x83F8211 - .string "じぶんの せいべつを えらんでね$" - -gUnknown_Debug_083F8222:: @ 0x83F8222 - .string "{COLOR RED}せいべつ せんたく$" - -gUnknown_Debug_083F822F:: @ 0x83F822F - .string "おとこ$" - -gUnknown_Debug_083F8233:: @ 0x83F8233 - .string "おんな$" -Str_83F8237: - .string "Kind$" - - .align 2 -_83F823C: - .4byte 1, 0x00000182 - .byte 0x00, 0x03 - .align 2 - -Str_83F8248: - .string "Level$" - - .align 2 -_83F8250: - .4byte 1, 0x00000064 - .byte 0x00, 0x03 - .align 2 - -Str_83F825C: - .string "EXP Points$" - - .align 2 -_83F8268: - .4byte 1, 0x001E8480 - .byte 0x00, 0x07 - .align 2 - -Str_83F8274: - .string "ID$" - - .align 2 -_83F8278: - .4byte 0, 0xFFFFFFFF - .byte 0x00, 0x0A - .align 2 - -Str_83F8284: - .string "Rnd Numbers$" - - .align 2 -_83F8290: - .4byte 0, 0xFFFFFFFF - .byte 0x00, 0x0A - .align 2 - -Str_83F829C: - .string "Sex$" - - .align 2 -_83F82A0: - .4byte 0, 0x00000002 - .byte 0x00, 0xFF - .align 2 - -Str_83F82AC: - .string "Character$" - - .align 2 -_83F82B8: - .4byte 0, 0x00000018 - .byte 0x00, 0xFF - .align 2 - -Str_83F82C4: - .string "Move1$" - - .align 2 -_83F82CC: - .4byte 0, 0x00000162 - .byte 0x00, 0x03 - .align 2 - -Str_83F82D8: - .string "Move2$" - - .align 2 -_83F82E0: - .4byte 0, 0x00000162 - .byte 0x00, 0x03 - .align 2 - -Str_83F82EC: - .string "Move3$" - - .align 2 -_83F82F4: - .4byte 0, 0x00000162 - .byte 0x00, 0x03 - .align 2 - -Str_83F8300: - .string "Move4$" - - .align 2 -_83F8308: - .4byte 0, 0x00000162 - .byte 0x00, 0x03 - .align 2 - -Str_83F8314: - .string "Hold$" - - .align 2 -_83F831C: - .4byte 0, 0x000000FF - .byte 0x00, 0x03 - .align 2 - -Str_83F8328: - .string "SP. Ability$" - - .align 2 -_83F8334: - .4byte 0, 0x00000001 - .byte 0x00, 0xFF - .align 2 - -Str_83F8340: - .string "HPrnd$" - - .align 2 -_83F8348: - .4byte 0, 0x0000001F - .byte 0x00, 0x02 - .align 2 - -Str_83F8354: - .string "HPexp$" - - .align 2 -_83F835C: - .4byte 0, 0x000000FF - .byte 0x00, 0x03 - .align 2 - -Str_83F8368: - .string "ATKrnd$" - - .align 2 -_83F8370: - .4byte 0, 0x0000001F - .byte 0x00, 0x02 - .align 2 - -Str_83F837C: - .string "ATKexp$" - - .align 2 -_83F8384: - .4byte 0, 0x000000FF - .byte 0x00, 0x03 - .align 2 - -Str_83F8390: - .string "DEFrnd$" - - .align 2 -_83F8398: - .4byte 0, 0x0000001F - .byte 0x00, 0x02 - .align 2 - -Str_83F83A4: - .string "DEFexp$" - - .align 2 -_83F83AC: - .4byte 0, 0x000000FF - .byte 0x00, 0x03 - .align 2 - -Str_83F83B8: - .string "SPDrnd$" - - .align 2 -_83F83C0: - .4byte 0, 0x0000001F - .byte 0x00, 0x02 - .align 2 - -Str_83F83CC: - .string "SPDexp$" - - .align 2 -_83F83D4: - .4byte 0, 0x000000FF - .byte 0x00, 0x03 - .align 2 - -Str_83F83E0: - .string "SP. ATK$" - .string "rnd$" - - .align 2 -_83F83EC: - .4byte 0, 0x0000001F - .byte 0x00, 0x02 - .align 2 - -Str_83F83F8: - .string "SP. ATK$" - .string "exp$" - - .align 2 -_83F8404: - .4byte 0, 0x000000FF - .byte 0x00, 0x03 - .align 2 - -Str_83F8410: - .string "SP. DEF$" - .string "rnd$" - - .align 2 -_83F841C: - .4byte 0, 0x0000001F - .byte 0x00, 0x02 - .align 2 - -Str_83F8428: - .string "SP. DEF$" - .string "exp$" - - .align 2 -_83F8434: - .4byte 0, 0x000000FF - .byte 0x00, 0x03 - .align 2 - -Str_83F8440: - .string "Cool$" - - .align 2 -_83F8448: - .4byte 0, 0x000000FF - .byte 0x00, 0x03 - .align 2 - -Str_83F8454: - .string "Beauty$" - - .align 2 -_83F845C: - .4byte 0, 0x000000FF - .byte 0x00, 0x03 - .align 2 - -Str_83F8468: - .string "Cute$" - - .align 2 -_83F8470: - .4byte 0, 0x000000FF - .byte 0x00, 0x03 - .align 2 - -Str_83F847C: - .string "Smart$" - - .align 2 -_83F8484: - .4byte 0, 0x000000FF - .byte 0x00, 0x03 - .align 2 - -Str_83F8490: - .string "Tough$" - - .align 2 -_83F8498: - .4byte 0, 0x000000FF - .byte 0x00, 0x03 - .align 2 - -Str_83F84A4: - .string "Sheen$" - - .align 2 -_83F84AC: - .4byte 0, 0x000000FF - .byte 0x00, 0x03 - .align 2 - -Str_83F84B8: - .string "Tameness$" - - .align 2 -_83F84C4: - .4byte 0, 0x000000FF - .byte 0x00, 0x03 - .align 2 - -Str_83F84D0: - .string "{PK}RUS$" - - .align 2 -_83F84D8: - .4byte 0, 0x000000FF - .byte 0x00, 0x03 - .align 2 - -Str_83F84E4: - .string "EGG$" - .string "$" - - .align 2 -_83F84EC: - .4byte 0, 0x00000001 - .byte 0x00, 0xFF - .align 2 - -Str_83F84F8: - .string "Status$" - - .align 2 -_83F8500: - .4byte 0, 0x00000006 - .byte 0x00, 0xFF - .align 2 - - -gUnknown_Debug_083F850A:: @ 0x83F850A - .string "{COLOR RED}HP  $" - -gUnknown_Debug_083F8514:: @ 0x83F8514 - .string "{COLOR RED}ATK $" - -gUnknown_Debug_083F851C:: @ 0x83F851C - .string "{COLOR RED}DEF $" - -gUnknown_Debug_083F8524:: @ 0x83F8524 - .string "{COLOR RED}SPEED$" - -gUnknown_Debug_083F852D:: @ 0x83F852D - .string "{COLOR RED}SP。ATK$" - -gUnknown_Debug_083F8537:: @ 0x83F8537 - .string "{COLOR RED}SP。DEF$" - -gUnknown_Debug_083F8541:: @ 0x83F8541 - .string "なし$" - -gUnknown_Debug_083F8544:: @ 0x83F8544 - .string "♂$" - -gUnknown_Debug_083F8546:: @ 0x83F8546 - .string "♀$" - -gUnknown_Debug_083F8548:: @ 0x83F8548 - .string "ー$" - -gUnknown_Debug_083F854A:: @ 0x83F854A - .string "ON$" - -gUnknown_Debug_083F854D:: @ 0x83F854D - .string "OFF$" - - .align 2 -gUnknown_Debug_083F8554:: @ 0x83F8554 - .4byte Str_83F8237, _83F823C - .4byte Str_83F8248, _83F8250 - .4byte Str_83F825C, _83F8268 - .4byte Str_83F8274, _83F8278 - .4byte Str_83F8284, _83F8290 - .4byte Str_83F829C, _83F82A0 - .4byte Str_83F82AC, _83F82B8 - .4byte Str_83F82C4, _83F82CC - .4byte Str_83F82D8, _83F82E0 - .4byte Str_83F82EC, _83F82F4 - .4byte Str_83F8300, _83F8308 - .4byte Str_83F8314, _83F831C - .4byte Str_83F8328, _83F8334 - .4byte Str_83F8340, _83F8348 - .4byte Str_83F8354, _83F835C - .4byte Str_83F8368, _83F8370 - .4byte Str_83F837C, _83F8384 - .4byte Str_83F8390, _83F8398 - .4byte Str_83F83A4, _83F83AC - .4byte Str_83F83B8, _83F83C0 - .4byte Str_83F83CC, _83F83D4 - .4byte Str_83F83E0, _83F83EC - .4byte Str_83F83F8, _83F8404 - .4byte Str_83F8410, _83F841C - .4byte Str_83F8428, _83F8434 - .4byte Str_83F8440, _83F8448 - .4byte Str_83F8454, _83F845C - .4byte Str_83F8468, _83F8470 - .4byte Str_83F847C, _83F8484 - .4byte Str_83F8490, _83F8498 - .4byte Str_83F84A4, _83F84AC - .4byte Str_83F84B8, _83F84C4 - .4byte Str_83F84D0, _83F84D8 - .4byte Str_83F84E4, _83F84EC - .4byte Str_83F84F8, _83F8500 - -gUnknown_Debug_083F866C:: @ 0x83F866C - .string " あいうえおか$" - -gUnknown_Debug_083F8674:: @ 0x83F8674 - .string "めまみ$" - -gUnknown_Debug_083F8678:: @ 0x83F8678 - .string "きくけこさし$" - -gUnknown_Debug_083F867F:: @ 0x83F867F - .string "すせそたちつ\n" - .string "$" - -gUnknown_Debug_083F8687:: @ 0x83F8687 - .string "てとなにぬね{STRING}$" - -gUnknown_Debug_083F868F:: @ 0x83F8687 - .string "のはひふへほ$" - - .align 2 -gUnknown_Debug_083F8698:: @ 0x83F8698 - .4byte gUnknown_Debug_083F866C, 0x5 - .4byte gUnknown_Debug_083F8674, 0x3 - .4byte gUnknown_Debug_083F8678, 0x6 - .4byte gUnknown_Debug_083F867F, 0x6 - .4byte gUnknown_Debug_083F8687, 0x6 - .4byte gUnknown_Debug_083F868F, 0x6 - -gUnknown_Debug_083F86C8:: @ 0x83F86C8 - .string "ーーー$" - -gUnknown_Debug_083F86CC:: @ 0x83F86CC - .string "SLP$" - -gUnknown_Debug_083F86D0:: @ 0x83F86D0 - .string "PSN$" - -gUnknown_Debug_083F86D4:: @ 0x83F86D4 - .string "BRN$" - -gUnknown_Debug_083F86D8:: @ 0x83F86D8 - .string "FRZ$" - -gUnknown_Debug_083F86DC:: @ 0x83F86DC - .string "PAR$" - -gUnknown_Debug_083F86E0:: @ 0x83F86E0 - .string "PSN2$" - - .align 2 -gUnknown_Debug_083F86E8:: @ 0x83F86E8 - .4byte gUnknown_Debug_083F86C8, 0x0 - .4byte gUnknown_Debug_083F86CC, 0x1 - .4byte gUnknown_Debug_083F86D0, 0x8 - .4byte gUnknown_Debug_083F86D4, 0x10 - .4byte gUnknown_Debug_083F86D8, 0x20 - .4byte gUnknown_Debug_083F86DC, 0x40 - .4byte gUnknown_Debug_083F86E0, 0x80 - -gUnknown_Debug_083F8720:: @ 0x83F8720 - .string "PKMNワLIST$" - -gUnknown_Debug_083F872A:: @ 0x83F872A - .string "PKMNワBOX$" - -gUnknown_Debug_083F8733:: @ 0x83F8733 - .string "Create POKひMON   LR:Shift  START:Add$" - -gUnknown_Debug_083F8758:: @ 0x83F8758 - .string "たまご$" - -gUnknown_Debug_083F875C:: @ 0x83F875C - .string "DebugーG$" - -gUnknown_Debug_083F8764:: - .string " $" - - .align 2 -gUnknown_Debug_083F8768:: - .4byte 1 - .4byte 10 - .4byte 100 - .4byte 1000 - .4byte 10000 - .4byte 100000 - .4byte 1000000 - .4byte 10000000 - .4byte 100000000 - .4byte 1000000000 - -gUnknown_Debug_083F8790:: - .2byte 0x0000 - .2byte 0x0002 - .2byte 0x0004 - .2byte 0x0006 - .2byte 0x0008 - .2byte 0x000a - .2byte 0x000c - .2byte 0x000e - .2byte 0x0010 - .2byte 0x0012 - .2byte 0x0014 - .2byte 0x0016 - .2byte 0x0018 - .2byte 0x001a - .2byte 0x001c - .2byte 0x001e - .2byte 0x001f - .2byte 0x001e - .2byte 0x001c - .2byte 0x001a - .2byte 0x0018 - .2byte 0x0016 - .2byte 0x0014 - .2byte 0x0012 - .2byte 0x0010 - .2byte 0x000e - .2byte 0x000c - .2byte 0x000a - .2byte 0x0008 - .2byte 0x0006 - .2byte 0x0004 - .2byte 0x0002 - -gUnknown_Debug_083F87D0:: @ 0x83F87D0 - .string "{COLOR RED}L{ESCAPE}ロ$" - -gUnknown_Debug_083F87D8:: @ 0x83F87D8 - .string "{COLOR RED}{ESCAPE}ワR$" - -gUnknown_Debug_083F87E0:: @ 0x83F87E0 - .string "かいはつナンバー$" - -gUnknown_Debug_083F87E9:: @ 0x83F87E9 - .string "グラフィックナンバー$" - -gUnknown_Debug_083F87F4:: @ 0x83F87F4 - .string "{COLOR RED}A:カラーせってい$" - -gUnknown_Debug_083F8801:: @ 0x83F8801 - .string "{COLOR RED}A:けってい B:キャンセル$" - -gUnknown_Debug_083F8813:: @ 0x83F8813 - .string ":$" - -gUnknown_Debug_083F8815:: - .byte 0x00 - .byte 0x10 - .byte 0x20 - .byte 0x20 - .byte 0x20 - .byte 0x21 - .byte 0x20 - .byte 0x20 - .byte 0x20 - .byte 0x21 - .byte 0x20 - .byte 0x20 - .byte 0x20 - .byte 0x21 - .byte 0x20 - .byte 0x20 - .byte 0x20 - .byte 0x21 - - .endif diff --git a/ld_script.txt b/ld_script.txt index 2497e1d91..0655384af 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -587,7 +587,6 @@ SECTIONS { src/fldeff_escalator.o(.rodata); 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); diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index cf54f62f2..d4c7b8cf3 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -49,6 +49,20 @@ struct WatanabeDebugMenuItem { } data; }; +struct WatanabeEwram17000 { + u8 fill0; + u8 unk1_0:4; + u8 unk1_4:1; + u8 unk1_5:3; + u8 unk2; + u8 unk3; + u8 fill4[5]; + u8 unk9; + u8 unkA; + u8 unkB; + u8 unkC; +}; + struct WatanabeEwram18000 { struct Pokemon pokemon; u32 unk64[0x40]; @@ -74,6 +88,7 @@ struct WatanabeEwram18000_2 { u16 unk10[16]; }; +#define eWatanabe17000 (*(struct WatanabeEwram17000 *)(gSharedMem + 0x17000)) #define eWatanabe18000 (*(struct WatanabeEwram18000 *)(gSharedMem + 0x18000)) #define eWatanabe18000_2 (*(struct WatanabeEwram18000_2 *)(gSharedMem + 0x18000)) @@ -148,59 +163,6 @@ void debug_80C7D44(u8 taskId); void debug_80C7DDC(u8 taskId); void debug_80C802C(u8 taskId); -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_083F8554[35]; -extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F8698[6]; -extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F86E8[7]; - -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]; // = _("ひりつ"); -extern const u8 gUnknown_Debug_083F7FDE[4]; // = _("たかさ"); -extern const u8 gUnknown_Debug_083F7FE2[11]; // = _("Lキー▶しゅくしょう"); -extern const u8 gUnknown_Debug_083F7FED[9]; // = _("Rキー▶かくだい"); -extern const u8 gUnknown_Debug_083F7FF6[11]; // = _("Uキー▶うえ いどう"); -extern const u8 gUnknown_Debug_083F8001[11]; // = _("Dキー▶した いどう"); -extern const u8 gUnknown_Debug_083F800C[13]; // = _("Aボタン▶そうさきりかえ"); -extern const u8 gUnknown_Debug_083F8019[9]; // = _("Bボタン▶やめる"); -extern const u8 gUnknown_Debug_083F8022[6]; // = _("スタート:"); -extern const u8 gUnknown_Debug_083F8028[6]; // = _(":セレクト"); -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 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]; // = _("おんな"); -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"); -extern const u8 gUnknown_Debug_083F850A[10]; // = _("{COLOR RED}HP  "); -extern const u8 gUnknown_Debug_083F8514[8]; // = _("{COLOR RED}ATK "); -extern const u8 gUnknown_Debug_083F851C[8]; // = _("{COLOR RED}DEF "); -extern const u8 gUnknown_Debug_083F8524[9]; // = _("{COLOR RED}SPEED"); -extern const u8 gUnknown_Debug_083F852D[10]; // = _("{COLOR RED}SP。ATK"); -extern const u8 gUnknown_Debug_083F8537[10]; // = _("{COLOR RED}SP。DEF"); -extern const u8 gUnknown_Debug_083F8541[3]; // = _("なし"); -extern const u8 gUnknown_Debug_083F8544[2]; // = _("♂"); -extern const u8 gUnknown_Debug_083F8546[2]; // = _("♀"); -extern const u8 gUnknown_Debug_083F854A[3]; // = _("ON"); -extern const u8 gUnknown_Debug_083F854D[4]; // = _("OFF"); -extern const u8 gUnknown_Debug_083F8758[4]; // = _("たまご"); -extern const u8 gUnknown_Debug_083F875C[8]; // = _("DebugーG"); -extern const u8 gUnknown_Debug_083F8764[2]; // = _(" "); -extern const u8 gUnknown_Debug_083F8813[2]; // = _(":"); - -extern const u32 gUnknown_Debug_083F8768[10]; - #define SPRITETAG_WATANABE 0x1000 u8 byte_83F88EC[]; @@ -215,41 +177,6 @@ struct SpritePalette stru_83F8838[] = { {} }; -struct OamData gOamData_83F8848 = { - .y = 0xa0 -}; - -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) { @@ -412,15 +339,14 @@ u16 debug_80C38B4(u8 a0, u16 a1) void debug_80C38E4(u8 a0, u8 a1, u8 a2, u8 a3, u8 a4) { - // u8 sp00[] = _("▶"); - u8 sp00[ARRAY_COUNT(gUnknown_Debug_083F7FD4)]; - - memcpy(sp00, gUnknown_Debug_083F7FD4, sizeof(gUnknown_Debug_083F7FD4)); + u8 sp00[] = _("▶"); Menu_BlankWindowRect(a1, a2, a1, a3); if (a4) Menu_PrintText(sp00, a1, a0); } +const u8 gUnknown_Debug_083F7FD6[] = {0x25, 0x20, 0x01, 0x08}; + void debug_80C393C(void) { ProgramFlashSectorAndVerify(30, (void *)gUnknown_Debug_083F7FD6); @@ -476,6 +402,17 @@ void InitSizeComparison(void) gTasks[taskId].data[0] = 0xfc; } +const u8 gUnknown_Debug_083F7FDA[] = _("ひりつ"); +const u8 gUnknown_Debug_083F7FDE[] = _("たかさ"); +const u8 gUnknown_Debug_083F7FE2[] = _("Lキー▶しゅくしょう"); +const u8 gUnknown_Debug_083F7FED[] = _("Rキー▶かくだい"); +const u8 gUnknown_Debug_083F7FF6[] = _("Uキー▶うえ いどう"); +const u8 gUnknown_Debug_083F8001[] = _("Dキー▶した いどう"); +const u8 gUnknown_Debug_083F800C[] = _("Aボタン▶そうさきりかえ"); +const u8 gUnknown_Debug_083F8019[] = _("Bボタン▶やめる"); +const u8 gUnknown_Debug_083F8022[] = _("スタート:"); +const u8 gUnknown_Debug_083F8028[] = _(":セレクト"); + #ifdef NONMATCHING void debug_80C3A50(u8 taskId) { @@ -1068,6 +1005,66 @@ void debug_80C41A8(void) CreateTask(debug_80C47BC, 0); } +const u8 gUnknown_Debug_083F802E[] = _("やせいたいせん"); +const u8 gUnknown_Debug_083F8036[] = _("1VS1たいせん"); +const u8 gUnknown_Debug_083F803F[] = _("2VS2たいせん"); +const u8 gUnknown_Debug_083F8048[] = _("{COLOR BLUE}1VS1つうしんたいせん"); +const u8 gUnknown_Debug_083F8058[] = _("{COLOR BLUE}2VS2つうしんたいせん"); + +const struct WatanabeDebugMenuItem gUnknown_Debug_083F8068[] = { + {gUnknown_Debug_083F802E, {.type1 = {0x00, 0x01}}}, + {gUnknown_Debug_083F8036, {.type1 = {0x08, 0x01}}}, + {gUnknown_Debug_083F803F, {.type1 = {0x09, 0x02}}}, + {gUnknown_Debug_083F8048, {.type1 = {0x0A, 0x01}}}, + {gUnknown_Debug_083F8058, {.type1 = {0x0B, 0x02}}} +}; + +const u8 gUnknown_Debug_083F8090[] = _("きほんタイプ"); +const u8 gUnknown_Debug_083F8097[] = _("AIタイプ2"); +const u8 gUnknown_Debug_083F809E[] = _("AIタイプ3"); +const u8 gUnknown_Debug_083F80A5[] = _("AIタイプ4"); +const u8 gUnknown_Debug_083F80AC[] = _("AIタイプ5"); +const u8 gUnknown_Debug_083F80B3[] = _("AIタイプ6"); +const u8 gUnknown_Debug_083F80BA[] = _("AIタイプ7"); +const u8 gUnknown_Debug_083F80C1[] = _("AIタイプ8"); +const u8 gUnknown_Debug_083F80C8[] = _("AIタイプ9"); +const u8 gUnknown_Debug_083F80CF[] = _("AIタイプ10"); + +const struct WatanabeDebugMenuItem gUnknown_Debug_083F80D8[] = { + {gUnknown_Debug_083F8090, {.type2 = 0x1}}, + {gUnknown_Debug_083F8097, {.type2 = 0x2}}, + {gUnknown_Debug_083F809E, {.type2 = 0x4}}, + {gUnknown_Debug_083F80A5, {.type2 = 0x8}}, + {gUnknown_Debug_083F80AC, {.type2 = 0x10}}, + {gUnknown_Debug_083F80B3, {.type2 = 0x20}}, + {gUnknown_Debug_083F80BA, {.type2 = 0x40}}, + {gUnknown_Debug_083F80C1, {.type2 = 0x80}}, + {gUnknown_Debug_083F80C8, {.type2 = 0x100}}, + {gUnknown_Debug_083F80CF, {.type2 = 0x200}} +}; + +const u8 gUnknown_Debug_083F8128[] = _("くさ"); +const u8 gUnknown_Debug_083F812B[] = _("ながい くさ"); +const u8 gUnknown_Debug_083F8132[] = _("すな"); +const u8 gUnknown_Debug_083F8135[] = _("みず"); +const u8 gUnknown_Debug_083F8138[] = _("うみ"); +const u8 gUnknown_Debug_083F813B[] = _("いけ"); +const u8 gUnknown_Debug_083F813E[] = _("いわ"); +const u8 gUnknown_Debug_083F8141[] = _("どうくつ"); +const u8 gUnknown_Debug_083F8146[] = _("そのた"); + +const struct WatanabeDebugMenuItem gUnknown_Debug_083F814C[] = { + {gUnknown_Debug_083F8128, {.type3 = 0x0}}, + {gUnknown_Debug_083F812B, {.type3 = 0x1}}, + {gUnknown_Debug_083F8132, {.type3 = 0x2}}, + {gUnknown_Debug_083F8135, {.type3 = 0x3}}, + {gUnknown_Debug_083F8138, {.type3 = 0x4}}, + {gUnknown_Debug_083F813B, {.type3 = 0x5}}, + {gUnknown_Debug_083F813E, {.type3 = 0x6}}, + {gUnknown_Debug_083F8141, {.type3 = 0x7}}, + {gUnknown_Debug_083F8146, {.type3 = 0x8}} +}; + void debug_80C41D4(void) { debug_80C40C4(0); @@ -1111,14 +1108,8 @@ void debug_80C4214(UNUSED u8 a0) void debug_80C42B8(u8 taskId) { - u8 sp00[ARRAY_COUNT(gUnknown_Debug_083F8194)]; - u8 sp0c[ARRAY_COUNT(gUnknown_Debug_083F81A0)]; - - memcpy(sp00, gUnknown_Debug_083F8194, sizeof(gUnknown_Debug_083F8194)); - memcpy(sp0c, gUnknown_Debug_083F81A0, sizeof(gUnknown_Debug_083F81A0)); - - // u8 sp00[] = _("ポケモンを えらんでね"); - // u8 sp0c[] = _("{COLOR RED}START:つぎへ"); + u8 sp00[] = _("ポケモンを えらんでね"); + u8 sp0c[] = _("{COLOR RED}START:つぎへ"); Menu_DrawStdWindowFrame(0, 16, 29, 19); Menu_PrintText(sp00, 1, 17); @@ -1230,10 +1221,8 @@ void debug_80C4550(u8 taskId) void debug_80C4694(void) { u8 i; - // u8 sp00[] = _("{COLOR RED}じぶんの ポケモン"); - u8 sp00[ARRAY_COUNT(gUnknown_Debug_083F81AD)]; + u8 sp00[] = _("{COLOR RED}じぶんの ポケモン"); u8 sp10[POKEMON_NAME_LENGTH + 1]; - memcpy(sp00, gUnknown_Debug_083F81AD, sizeof(gUnknown_Debug_083F81AD)); Menu_DrawStdWindowFrame(0, 0, 14, 15); Menu_PrintText(sp00, 2, 1); @@ -1247,10 +1236,8 @@ void debug_80C4694(void) void debug_80C4704(void) { u8 i; - // u8 sp00[] = _("{COLOR RED}あいての ポケモン"); - u8 sp00[ARRAY_COUNT(gUnknown_Debug_083F81BA)]; + u8 sp00[] = _("{COLOR RED}あいての ポケモン"); u8 sp10[POKEMON_NAME_LENGTH + 1]; - memcpy(sp00, gUnknown_Debug_083F81BA, sizeof(gUnknown_Debug_083F81BA)); Menu_DrawStdWindowFrame(15, 0, 29, 15); Menu_PrintText(sp00, 17, 1); @@ -1272,21 +1259,10 @@ bool8 debug_80C4774(void) 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)); + u8 sp00[] = _("{COLOR RED}あいての ポケモン"); + u8 sp10[] = _("たいせんモードを えらんでね"); + u8 sp20[] = _("{COLOR RED}バトルモード せんたく"); + u8 sp30[] = _("{COLOR RED}トレーナーAI せんたく"); Menu_DrawStdWindowFrame(0, 16, 29, 19); Menu_PrintText(sp00, 1, 17); @@ -1363,22 +1339,6 @@ void debug_80C4A60(u8 taskId) gTasks[taskId].func = debug_80C4AC4; } -struct WatanabeEwram17000 { - u8 fill0; - u8 unk1_0:4; - u8 unk1_4:1; - u8 unk1_5:3; - u8 unk2; - u8 unk3; - u8 fill4[5]; - u8 unk9; - u8 unkA; - u8 unkB; - u8 unkC; -}; - -#define eWatanabe17000 (*(struct WatanabeEwram17000 *)(gSharedMem + 0x17000)) - void debug_80C4AC4(u8 taskId) { u8 r1 = gUnknown_Debug_2038A0C[4] + gUnknown_Debug_2038A0C[5]; @@ -1467,17 +1427,9 @@ void debug_80C4C44(u8 a0) 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)); + u8 sp00[] = _("たいせんモードを えらんでね"); + u8 sp10[] = _("{COLOR RED}START:かいし"); + u8 sp20[] = _("{COLOR RED}バトルちけい せんたく"); Menu_DrawStdWindowFrame(0, 16, 29, 19); Menu_PrintText(sp00, 1, 17); @@ -1550,23 +1502,11 @@ void debug_80C4F00(u8 a0) 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)); + u8 sp00[] = _("じぶんの せいべつを えらんでね"); + u8 sp14[] = _("{COLOR RED}START:つぎへ"); + u8 sp24[] = _("{COLOR RED}せいべつ せんたく"); + u8 sp34[] = _("おとこ"); + u8 sp38[] = _("おんな"); Menu_DrawStdWindowFrame(0, 16, 29, 19); Menu_PrintText(sp00, 1, 17); @@ -1684,12 +1624,218 @@ bool8 debug_80C527C(struct Pokemon *pokemon) return TRUE; } +const u8 Str_83F8237[] = _("Kind"); +const struct WatanabeDebugMenuItemSubstruct _83F823C = {1, 0x00000182, 0x00, 0x03}; + +const u8 Str_83F8248[] = _("Level"); +const struct WatanabeDebugMenuItemSubstruct _83F8250 = {1, 0x00000064, 0x00, 0x03}; + +const u8 Str_83F825C[] = _("EXP Points"); +const struct WatanabeDebugMenuItemSubstruct _83F8268 = {1, 0x001E8480, 0x00, 0x07}; + +const u8 Str_83F8274[] = _("ID"); +const struct WatanabeDebugMenuItemSubstruct _83F8278 = {0, 0xFFFFFFFF, 0x00, 0x0A}; + +const u8 Str_83F8284[] = _("Rnd Numbers"); +const struct WatanabeDebugMenuItemSubstruct _83F8290 = {0, 0xFFFFFFFF, 0x00, 0x0A}; + +const u8 Str_83F829C[] = _("Sex"); +const struct WatanabeDebugMenuItemSubstruct _83F82A0 = {0, 0x00000002, 0x00, 0xFF}; + +const u8 Str_83F82AC[] = _("Character"); +const struct WatanabeDebugMenuItemSubstruct _83F82B8 = {0, 0x00000018, 0x00, 0xFF}; + +const u8 Str_83F82C4[] = _("Move1"); +const struct WatanabeDebugMenuItemSubstruct _83F82CC = {0, 0x00000162, 0x00, 0x03}; + +const u8 Str_83F82D8[] = _("Move2"); +const struct WatanabeDebugMenuItemSubstruct _83F82E0 = {0, 0x00000162, 0x00, 0x03}; + +const u8 Str_83F82EC[] = _("Move3"); +const struct WatanabeDebugMenuItemSubstruct _83F82F4 = {0, 0x00000162, 0x00, 0x03}; + +const u8 Str_83F8300[] = _("Move4"); +const struct WatanabeDebugMenuItemSubstruct _83F8308 = {0, 0x00000162, 0x00, 0x03}; + +const u8 Str_83F8314[] = _("Hold"); +const struct WatanabeDebugMenuItemSubstruct _83F831C = {0, 0x000000FF, 0x00, 0x03}; + +const u8 Str_83F8328[] = _("SP. Ability"); +const struct WatanabeDebugMenuItemSubstruct _83F8334 = {0, 0x00000001, 0x00, 0xFF}; + +const u8 Str_83F8340[] = _("HPrnd"); +const struct WatanabeDebugMenuItemSubstruct _83F8348 = {0, 0x0000001F, 0x00, 0x02}; + +const u8 Str_83F8354[] = _("HPexp"); +const struct WatanabeDebugMenuItemSubstruct _83F835C = {0, 0x000000FF, 0x00, 0x03}; + +const u8 Str_83F8368[] = _("ATKrnd"); +const struct WatanabeDebugMenuItemSubstruct _83F8370 = {0, 0x0000001F, 0x00, 0x02}; + +const u8 Str_83F837C[] = _("ATKexp"); +const struct WatanabeDebugMenuItemSubstruct _83F8384 = {0, 0x000000FF, 0x00, 0x03}; + +const u8 Str_83F8390[] = _("DEFrnd"); +const struct WatanabeDebugMenuItemSubstruct _83F8398 = {0, 0x0000001F, 0x00, 0x02}; + +const u8 Str_83F83A4[] = _("DEFexp"); +const struct WatanabeDebugMenuItemSubstruct _83F83AC = {0, 0x000000FF, 0x00, 0x03}; + +const u8 Str_83F83B8[] = _("SPDrnd"); +const struct WatanabeDebugMenuItemSubstruct _83F83C0 = {0, 0x0000001F, 0x00, 0x02}; + +const u8 Str_83F83CC[] = _("SPDexp"); +const struct WatanabeDebugMenuItemSubstruct _83F83D4 = {0, 0x000000FF, 0x00, 0x03}; + +const u8 Str_83F83E0[] = _("SP. ATK$rnd"); +const struct WatanabeDebugMenuItemSubstruct _83F83EC = {0, 0x0000001F, 0x00, 0x02}; + +const u8 Str_83F83F8[] = _("SP. ATK$exp"); +const struct WatanabeDebugMenuItemSubstruct _83F8404 = {0, 0x000000FF, 0x00, 0x03}; + +const u8 Str_83F8410[] = _("SP. DEF$rnd"); +const struct WatanabeDebugMenuItemSubstruct _83F841C = {0, 0x0000001F, 0x00, 0x02}; + +const u8 Str_83F8428[] = _("SP. DEF$exp"); +const struct WatanabeDebugMenuItemSubstruct _83F8434 = {0, 0x000000FF, 0x00, 0x03}; + +const u8 Str_83F8440[] = _("Cool"); +const struct WatanabeDebugMenuItemSubstruct _83F8448 = {0, 0x000000FF, 0x00, 0x03}; + +const u8 Str_83F8454[] = _("Beauty"); +const struct WatanabeDebugMenuItemSubstruct _83F845C = {0, 0x000000FF, 0x00, 0x03}; + +const u8 Str_83F8468[] = _("Cute"); +const struct WatanabeDebugMenuItemSubstruct _83F8470 = {0, 0x000000FF, 0x00, 0x03}; + +const u8 Str_83F847C[] = _("Smart"); +const struct WatanabeDebugMenuItemSubstruct _83F8484 = {0, 0x000000FF, 0x00, 0x03}; + +const u8 Str_83F8490[] = _("Tough"); +const struct WatanabeDebugMenuItemSubstruct _83F8498 = {0, 0x000000FF, 0x00, 0x03}; + +const u8 Str_83F84A4[] = _("Sheen"); +const struct WatanabeDebugMenuItemSubstruct _83F84AC = {0, 0x000000FF, 0x00, 0x03}; + +const u8 Str_83F84B8[] = _("Tameness"); +const struct WatanabeDebugMenuItemSubstruct _83F84C4 = {0, 0x000000FF, 0x00, 0x03}; + +const u8 Str_83F84D0[] = _("{PK}RUS"); +const struct WatanabeDebugMenuItemSubstruct _83F84D8 = {0, 0x000000FF, 0x00, 0x03}; + +const u8 Str_83F84E4[] = _("EGG$"); +const struct WatanabeDebugMenuItemSubstruct _83F84EC = {0, 0x00000001, 0x00, 0xFF}; + +const u8 Str_83F84F8[] = _("Status"); +const struct WatanabeDebugMenuItemSubstruct _83F8500 = {0, 0x00000006, 0x00, 0xFF}; + +const u8 gUnknown_Debug_083F850A[] = _("{COLOR RED}HP  "); +const u8 gUnknown_Debug_083F8514[] = _("{COLOR RED}ATK "); +const u8 gUnknown_Debug_083F851C[] = _("{COLOR RED}DEF "); +const u8 gUnknown_Debug_083F8524[] = _("{COLOR RED}SPEED"); +const u8 gUnknown_Debug_083F852D[] = _("{COLOR RED}SP。ATK"); +const u8 gUnknown_Debug_083F8537[] = _("{COLOR RED}SP。DEF"); +const u8 gUnknown_Debug_083F8541[] = _("なし"); +const u8 gUnknown_Debug_083F8544[] = _("♂"); +const u8 gUnknown_Debug_083F8546[] = _("♀"); +const u8 gUnknown_Debug_083F8548[] = _("ー"); +const u8 gUnknown_Debug_083F854A[] = _("ON"); +const u8 gUnknown_Debug_083F854D[] = _("OFF"); + +const struct WatanabeDebugMenuItem gUnknown_Debug_083F8554[] = { + {Str_83F8237, {.type4 = &_83F823C}}, + {Str_83F8248, {.type4 = &_83F8250}}, + {Str_83F825C, {.type4 = &_83F8268}}, + {Str_83F8274, {.type4 = &_83F8278}}, + {Str_83F8284, {.type4 = &_83F8290}}, + {Str_83F829C, {.type4 = &_83F82A0}}, + {Str_83F82AC, {.type4 = &_83F82B8}}, + {Str_83F82C4, {.type4 = &_83F82CC}}, + {Str_83F82D8, {.type4 = &_83F82E0}}, + {Str_83F82EC, {.type4 = &_83F82F4}}, + {Str_83F8300, {.type4 = &_83F8308}}, + {Str_83F8314, {.type4 = &_83F831C}}, + {Str_83F8328, {.type4 = &_83F8334}}, + {Str_83F8340, {.type4 = &_83F8348}}, + {Str_83F8354, {.type4 = &_83F835C}}, + {Str_83F8368, {.type4 = &_83F8370}}, + {Str_83F837C, {.type4 = &_83F8384}}, + {Str_83F8390, {.type4 = &_83F8398}}, + {Str_83F83A4, {.type4 = &_83F83AC}}, + {Str_83F83B8, {.type4 = &_83F83C0}}, + {Str_83F83CC, {.type4 = &_83F83D4}}, + {Str_83F83E0, {.type4 = &_83F83EC}}, + {Str_83F83F8, {.type4 = &_83F8404}}, + {Str_83F8410, {.type4 = &_83F841C}}, + {Str_83F8428, {.type4 = &_83F8434}}, + {Str_83F8440, {.type4 = &_83F8448}}, + {Str_83F8454, {.type4 = &_83F845C}}, + {Str_83F8468, {.type4 = &_83F8470}}, + {Str_83F847C, {.type4 = &_83F8484}}, + {Str_83F8490, {.type4 = &_83F8498}}, + {Str_83F84A4, {.type4 = &_83F84AC}}, + {Str_83F84B8, {.type4 = &_83F84C4}}, + {Str_83F84D0, {.type4 = &_83F84D8}}, + {Str_83F84E4, {.type4 = &_83F84EC}}, + {Str_83F84F8, {.type4 = &_83F8500}} +}; + +const u8 gUnknown_Debug_083F866C[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0xFF +}; + +const u8 gUnknown_Debug_083F8674[] = { + 0x22, 0x1F, 0x20, 0xFF +}; + +const u8 gUnknown_Debug_083F8678[] = { + 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0xFF +}; + +const u8 gUnknown_Debug_083F867F[] = { + 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0xFE, 0xFF +}; + +const u8 gUnknown_Debug_083F8687[] = { + 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0xFD, 0xFF +}; + +const u8 gUnknown_Debug_083F868F[] = { + 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0xFF +}; + +const struct WatanabeDebugMenuItem gUnknown_Debug_083F8698[] = { + {gUnknown_Debug_083F866C, {.type3 = 0x5}}, + {gUnknown_Debug_083F8674, {.type3 = 0x3}}, + {gUnknown_Debug_083F8678, {.type3 = 0x6}}, + {gUnknown_Debug_083F867F, {.type3 = 0x6}}, + {gUnknown_Debug_083F8687, {.type3 = 0x6}}, + {gUnknown_Debug_083F868F, {.type3 = 0x6}} +}; + +const u8 gUnknown_Debug_083F86C8[] = _("ーーー"); +const u8 gUnknown_Debug_083F86CC[] = _("SLP"); +const u8 gUnknown_Debug_083F86D0[] = _("PSN"); +const u8 gUnknown_Debug_083F86D4[] = _("BRN"); +const u8 gUnknown_Debug_083F86D8[] = _("FRZ"); +const u8 gUnknown_Debug_083F86DC[] = _("PAR"); +const u8 gUnknown_Debug_083F86E0[] = _("PSN2"); + +const struct WatanabeDebugMenuItem gUnknown_Debug_083F86E8[] = { + {gUnknown_Debug_083F86C8, {.type3 = 0x0}}, + {gUnknown_Debug_083F86CC, {.type3 = 0x1}}, + {gUnknown_Debug_083F86D0, {.type3 = 0x8}}, + {gUnknown_Debug_083F86D4, {.type3 = 0x10}}, + {gUnknown_Debug_083F86D8, {.type3 = 0x20}}, + {gUnknown_Debug_083F86DC, {.type3 = 0x40}}, + {gUnknown_Debug_083F86E0, {.type3 = 0x80}} +}; + +const u8 gUnknown_Debug_083F8720[] = _("PKMNワLIST"); +const u8 gUnknown_Debug_083F872A[] = _("PKMNワBOX"); 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)); + u8 sp04[] = _("Create POKひMON   LR:Shift  START:Add"); debug_80C35DC(); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); @@ -2050,17 +2196,11 @@ void debug_80C5EF4(void) void debug_80C5FFC(void) { u32 ivs; - // u8 sp10[] = _("たまご"); - // u8 sp14[] = _("DebugーG"); - - u8 sp10[ARRAY_COUNT(gUnknown_Debug_083F8758)]; - u8 sp14[ARRAY_COUNT(gUnknown_Debug_083F875C)]; + u8 sp10[] = _("たまご"); + u8 sp14[] = _("DebugーG"); u8 one; u16 ff; - memcpy(sp10, gUnknown_Debug_083F8758, sizeof(gUnknown_Debug_083F8758)); - memcpy(sp14, gUnknown_Debug_083F875C, sizeof(gUnknown_Debug_083F875C)); - ivs = gUnknown_Debug_2038A1C->unk64[13] & 0x1f; ivs |= (gUnknown_Debug_2038A1C->unk64[15] & 0x1f) << 5; ivs |= (gUnknown_Debug_2038A1C->unk64[17] & 0x1f) << 10; @@ -2123,14 +2263,8 @@ void debug_80C5FFC(void) void debug_80C627C(u8 a0) { - // u8 sp00[] = _("▶"); - // u8 sp04[] = _(" "); - - u8 sp00[ARRAY_COUNT(gUnknown_Debug_083F7FD4)]; - u8 sp04[ARRAY_COUNT(gUnknown_Debug_083F8764)]; - - memcpy(sp00, gUnknown_Debug_083F7FD4, sizeof(gUnknown_Debug_083F7FD4)); - memcpy(sp04, gUnknown_Debug_083F8764, sizeof(gUnknown_Debug_083F8764)); + u8 sp00[] = _("▶"); + u8 sp04[] = _(" "); switch (a0) { @@ -2194,6 +2328,19 @@ void debug_80C643C(void) } } +const u32 gUnknown_Debug_083F8768[] = { + 1, + 10, + 100, + 1000, + 10000, + 100000, + 1000000, + 10000000, + 100000000, + 1000000000 +}; + void debug_80C6544(u8 a0) { u32 r7 = debug_80C5B60(gUnknown_Debug_083F8698[gUnknown_Debug_2038A1C->unk168].text[gUnknown_Debug_2038A1C->unk169]); @@ -2332,6 +2479,41 @@ void debug_80C68CC(u16 a0, u8 a1, u8 a2, u8 a3) Menu_PrintText(sp00 + (u8)(4 - a3), a1, a2); } +struct OamData gOamData_83F8848 = { + .y = 0xa0 +}; + +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 +}; + u16 word_83F888C[] = INCBIN_U16("graphics/debug/sprite_browser.gbapal"); u8 byte_83F88EC[] = INCBIN_U8("graphics/debug/sprite_browser.4bpp"); @@ -2386,19 +2568,52 @@ void InitSeePokemonGraphics(void) StartSpriteAnim(gSprites + spriteId, 2); } -extern const u8 gUnknown_Debug_083F8815[18]; // = {0x00, 0x10, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21}; -extern const u8 gUnknown_Debug_083F87D0[]; -extern const u8 gUnknown_Debug_083F87D8[]; -extern const u8 gUnknown_Debug_083F87E0[]; -extern const u8 gUnknown_Debug_083F87F4[]; -extern const u8 gUnknown_Debug_083F8801[]; +const u16 gUnknown_Debug_083F8790[] = { + 0x0000, + 0x0002, + 0x0004, + 0x0006, + 0x0008, + 0x000a, + 0x000c, + 0x000e, + 0x0010, + 0x0012, + 0x0014, + 0x0016, + 0x0018, + 0x001a, + 0x001c, + 0x001e, + 0x001f, + 0x001e, + 0x001c, + 0x001a, + 0x0018, + 0x0016, + 0x0014, + 0x0012, + 0x0010, + 0x000e, + 0x000c, + 0x000a, + 0x0008, + 0x0006, + 0x0004, + 0x0002 +}; +const u8 gUnknown_Debug_083F87D0[] = _("{COLOR RED}L{ESCAPE}ロ"); +const u8 gUnknown_Debug_083F87D8[] = _("{COLOR RED}{ESCAPE}ワR"); +const u8 gUnknown_Debug_083F87E0[] = _("かいはつナンバー"); +const u8 gUnknown_Debug_083F87E9[] = _("グラフィックナンバー"); +const u8 gUnknown_Debug_083F87F4[] = _("{COLOR RED}A:カラーせってい"); +const u8 gUnknown_Debug_083F8801[] = _("{COLOR RED}A:けってい B:キャンセル"); +const u8 gUnknown_Debug_083F8813[] = _(":"); void debug_80C6B00(u8 taskId) { - // u8 sp00[] = {0x00, 0x10, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21}; + u8 sp00[] = {0x00, 0x10, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21}; u8 i; - u8 sp00[ARRAY_COUNT(gUnknown_Debug_083F8815)]; - memcpy(sp00, gUnknown_Debug_083F8815, sizeof(gUnknown_Debug_083F8815)); Menu_DrawStdWindowFrame(10, 0, 15, 7); Menu_DrawStdWindowFrame(0, 0, 9, 9); @@ -2489,8 +2704,6 @@ void debug_80C6EE8(u8 taskId) gTasks[taskId].func = debug_80C6FA8; } -extern const u16 gUnknown_Debug_083F8790[32]; - #ifdef NONMATCHING void debug_80C6FA8(u8 taskId) { @@ -3027,10 +3240,8 @@ void InitSeeTrainers(void) void debug_80C777C(u8 taskId) { - // u8 sp00[] = {0x00, 0x10, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21}; + u8 sp00[] = {0x00, 0x10, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21, 0x20, 0x20, 0x20, 0x21}; u8 i; - u8 sp00[ARRAY_COUNT(gUnknown_Debug_083F8815)]; - memcpy(sp00, gUnknown_Debug_083F8815, sizeof(gUnknown_Debug_083F8815)); Menu_DrawStdWindowFrame(9, 0, 14, 7); Menu_DrawStdWindowFrame(0, 0, 9, 9); -- cgit v1.2.3 From 1a63f6607e187a58973cff05eb150fd66f77b9b9 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 21 Apr 2018 15:51:32 -0400 Subject: Fix mistake in debug_80C47BC --- src/debug/watanabe_debug_menu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index d4c7b8cf3..4378e1075 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -1259,8 +1259,8 @@ bool8 debug_80C4774(void) void debug_80C47BC(u8 taskId) { u8 i; - u8 sp00[] = _("{COLOR RED}あいての ポケモン"); - u8 sp10[] = _("たいせんモードを えらんでね"); + u8 sp00[] = _("たいせんモードを えらんでね"); + u8 sp10[] = _("{COLOR RED}START:つぎへ"); u8 sp20[] = _("{COLOR RED}バトルモード せんたく"); u8 sp30[] = _("{COLOR RED}トレーナーAI せんたく"); -- cgit v1.2.3 From f54ccdc7ca5007edb196bcf4657d36f9bb5c295c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 22 Apr 2018 08:57:17 -0400 Subject: Take the IME/IE ops out of their own blocks --- src/debug/watanabe_debug_menu.c | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index 4378e1075..1b13b2d4e 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -383,17 +383,15 @@ void InitWatanabeDebugMenu(void) void InitSizeComparison(void) { u8 taskId; + u16 imeBak; debug_80C35DC(); gReservedSpritePaletteCount = 1; LoadPalette(gUnknown_Debug_20389EC, 0x100, 0x20); - { - u16 imeBak = REG_IME; - REG_IME = 0; - REG_IE |= INTR_FLAG_VBLANK; - REG_IME = imeBak; - } - + imeBak = REG_IME; + REG_IME = 0; + REG_IE |= INTR_FLAG_VBLANK; + REG_IME = imeBak; BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); SetVBlankCallback(debug_80C3758); SetMainCallback2(debug_80C370C); @@ -1081,6 +1079,7 @@ void debug_80C41F4(void) void debug_80C4214(UNUSED u8 a0) { + u16 imeBak; debug_80C35DC(); REG_WIN0H = 0; REG_WIN0V = 0; @@ -1092,12 +1091,10 @@ void debug_80C4214(UNUSED u8 a0) REG_BLDALPHA = 0; REG_BLDY = 7; - { - u16 imeBak = REG_IME; - REG_IME = 0; - REG_IE |= INTR_FLAG_VBLANK; - REG_IME = imeBak; - } + imeBak = REG_IME; + REG_IME = 0; + REG_IE |= INTR_FLAG_VBLANK; + REG_IME = imeBak; SetVBlankCallback(debug_80C3758); SetMainCallback2(debug_80C370C); @@ -3194,6 +3191,7 @@ void debug_80C7584(struct Sprite *sprite) void InitSeeTrainers(void) { u8 spriteId; + u16 imeBak; debug_80C35DC(); DmaCopy16Defvars(3, byte_83F88EC, VRAM + 0xe000, 0x800); LoadPalette(word_83F888C, 0x80, 0x60); @@ -3207,12 +3205,10 @@ void InitSeeTrainers(void) REG_BLDCNT = 0xF1; REG_BLDALPHA = 0; REG_BLDY = 7; - { - u16 imeBak = REG_IME; - REG_IME = 0; - REG_IE |= INTR_FLAG_VBLANK; - REG_IME = imeBak; - } + imeBak = REG_IME; + REG_IME = 0; + REG_IE |= INTR_FLAG_VBLANK; + REG_IME = imeBak; SetVBlankCallback(debug_80C3758); SetMainCallback2(debug_80C370C); REG_BG0CNT = 0x1F0B; -- cgit v1.2.3