diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-04-19 19:42:00 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-04-19 19:42:00 -0400 |
commit | b5e253af0df17caa6ea5a93374f53a0920d041be (patch) | |
tree | fba61564777da9c29d960562d253900c664bbba8 | |
parent | b229bfee70355a6ff5e416693d3138e14a2afaa2 (diff) |
through debug_80C6CB8
-rw-r--r-- | asm/watanabe_debug_menu.s | 450 | ||||
-rw-r--r-- | include/pokedex.h | 2 | ||||
-rw-r--r-- | 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 |