summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-04-19 19:42:00 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-04-19 19:42:00 -0400
commitb5e253af0df17caa6ea5a93374f53a0920d041be (patch)
treefba61564777da9c29d960562d253900c664bbba8
parentb229bfee70355a6ff5e416693d3138e14a2afaa2 (diff)
through debug_80C6CB8
-rw-r--r--asm/watanabe_debug_menu.s450
-rw-r--r--include/pokedex.h2
-rw-r--r--src/debug/watanabe_debug_menu.c92
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