diff options
-rw-r--r-- | asm/watanabe_debug_menu.s | 759 | ||||
-rw-r--r-- | ld_script.txt | 1 | ||||
-rw-r--r-- | src/debug/watanabe_debug_menu.c | 445 |
3 files changed, 445 insertions, 760 deletions
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 |