diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-04-19 08:43:15 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-04-19 08:43:15 -0400 |
commit | b229bfee70355a6ff5e416693d3138e14a2afaa2 (patch) | |
tree | dd223b3d5a7d3452783d8b39b75a789c50868fc6 | |
parent | 3920dd26d0c228460cd9558d226d1f44ed9d7b67 (diff) |
through InitSeePokemonGraphics
-rw-r--r-- | asm/watanabe_debug_menu.s | 266 | ||||
-rw-r--r-- | 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 |