summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-04-19 08:43:15 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-04-19 08:43:15 -0400
commitb229bfee70355a6ff5e416693d3138e14a2afaa2 (patch)
treedd223b3d5a7d3452783d8b39b75a789c50868fc6
parent3920dd26d0c228460cd9558d226d1f44ed9d7b67 (diff)
through InitSeePokemonGraphics
-rw-r--r--asm/watanabe_debug_menu.s266
-rw-r--r--src/debug/watanabe_debug_menu.c102
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