summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/watanabe_debug_menu.s466
-rw-r--r--src/debug/watanabe_debug_menu.c97
2 files changed, 96 insertions, 467 deletions
diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s
index 47832a6a9..f78a2ff77 100644
--- a/asm/watanabe_debug_menu.s
+++ b/asm/watanabe_debug_menu.s
@@ -5,472 +5,6 @@
.text
- thumb_func_start debug_80C71FC
-debug_80C71FC:
- push {r4, r5, r6, lr}
- add r5, r0, #0
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- ldr r6, ._709 @ gSprites
- ldr r4, ._709 + 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, ._709 + 8 @ gTasks
- lsl r0, r5, #0x2
- add r0, r0, r5
- lsl r0, r0, #0x3
- add r0, r0, r1
- ldr r1, ._709 + 12 @ debug_80C6CB8
- str r1, [r0]
- pop {r4, r5, r6}
- pop {r0}
- bx r0
-._710:
- .align 2, 0
-._709:
- .word gSprites
- .word gUnknown_Debug_2038A20
- .word gTasks
- .word debug_80C6CB8+1
-
- thumb_func_end debug_80C71FC
-
- thumb_func_start debug_80C7294
-debug_80C7294:
- push {r4, r5, r6, r7, lr}
- lsl r0, r0, #0x18
- lsr r7, r0, #0x18
- ldr r0, ._713 @ gMain
- ldrh r2, [r0, #0x2e]
- mov r1, #0x1
- and r1, r1, r2
- add r3, r0, #0
- cmp r1, #0
- beq ._711 @cond_branch
- ldr r0, ._713 + 4 @ gUnknown_Debug_2038A20
- ldr r1, [r0]
- mov r0, #0x0
- strb r0, [r1, #0x5]
- ldr r1, ._713 + 8 @ 0x4000040
- ldr r2, ._713 + 12 @ 0x51ef
- add r0, r2, #0
- strh r0, [r1]
- add r1, r1, #0x4
- ldr r2, ._713 + 16 @ 0x699f
- add r0, r2, #0
- strh r0, [r1]
- b ._712
-._714:
- .align 2, 0
-._713:
- .word gMain
- .word gUnknown_Debug_2038A20
- .word 0x4000040
- .word 0x51ef
- .word 0x699f
-._711:
- mov r0, #0x2
- and r0, r0, r2
- cmp r0, #0
- beq ._715 @cond_branch
- ldr r6, ._717 @ gUnknown_Debug_2038A20
- ldr r0, [r6]
- strb r1, [r0, #0x5]
- ldr r1, ._717 + 4 @ 0x4000040
- ldr r2, ._717 + 8 @ 0x51ef
- add r0, r2, #0
- strh r0, [r1]
- add r1, r1, #0x4
- ldr r2, ._717 + 12 @ 0x699f
- add r0, r2, #0
- strh r0, [r1]
- ldr r0, [r6]
- add r0, r0, #0x10
- ldr r4, ._717 + 16 @ gPlttBufferUnfaded
- add r1, r4, #0
- mov r2, #0x10
- bl CpuSet
- ldr r0, [r6]
- add r0, r0, #0x10
- ldr r5, ._717 + 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
-._712:
- ldr r1, ._717 + 24 @ gTasks
- lsl r0, r7, #0x2
- add r0, r0, r7
- lsl r0, r0, #0x3
- add r0, r0, r1
- ldr r1, ._717 + 28 @ debug_80C6EE8
- str r1, [r0]
- b ._754
-._718:
- .align 2, 0
-._717:
- .word gUnknown_Debug_2038A20
- .word 0x4000040
- .word 0x51ef
- .word 0x699f
- .word gPlttBufferUnfaded+0x100
- .word gPlttBufferFaded+0x100
- .word gTasks
- .word debug_80C6EE8+1
-._715:
- ldrh r1, [r3, #0x30]
- mov r0, #0x80
- and r0, r0, r1
- cmp r0, #0
- beq ._720 @cond_branch
- ldr r0, ._722 @ gUnknown_Debug_2038A20
- ldr r1, [r0]
- ldrb r0, [r1, #0xa]
- cmp r0, #0x1
- bhi ._720 @cond_branch
- add r0, r0, #0x1
- strb r0, [r1, #0xa]
- b ._754
-._723:
- .align 2, 0
-._722:
- .word gUnknown_Debug_2038A20
-._720:
- ldrh r1, [r3, #0x30]
- mov r0, #0x40
- and r0, r0, r1
- cmp r0, #0
- beq ._725 @cond_branch
- ldr r0, ._727 @ gUnknown_Debug_2038A20
- ldr r1, [r0]
- ldrb r0, [r1, #0xa]
- cmp r0, #0
- beq ._725 @cond_branch
- sub r0, r0, #0x1
- strb r0, [r1, #0xa]
- b ._754
-._728:
- .align 2, 0
-._727:
- .word gUnknown_Debug_2038A20
-._725:
- ldrh r1, [r3, #0x30]
- mov r0, #0x10
- and r0, r0, r1
- cmp r0, #0
- beq ._729 @cond_branch
- ldr r0, ._734 @ gUnknown_Debug_2038A20
- ldr r2, [r0]
- ldrb r0, [r2, #0xa]
- cmp r0, #0x1
- beq ._730 @cond_branch
- cmp r0, #0x1
- bgt ._731 @cond_branch
- cmp r0, #0
- beq ._732 @cond_branch
- b ._754
-._735:
- .align 2, 0
-._734:
- .word gUnknown_Debug_2038A20
-._731:
- cmp r0, #0x2
- beq ._736 @cond_branch
- b ._754
-._732:
- ldrb r3, [r2, #0xc]
- lsl r1, r3, #0x1b
- lsr r0, r1, #0x1b
- cmp r0, #0x1e
- bhi ._761 @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 ._761
-._730:
- ldrh r3, [r2, #0xc]
- lsl r1, r3, #0x16
- lsr r0, r1, #0x1b
- cmp r0, #0x1e
- bhi ._761 @cond_branch
- add r0, r0, #0x1
- mov r1, #0x1f
- and r0, r0, r1
- lsl r0, r0, #0x5
- ldr r1, ._742 @ 0xfffffc1f
- and r1, r1, r3
- orr r1, r1, r0
- strh r1, [r2, #0xc]
- b ._761
-._743:
- .align 2, 0
-._742:
- .word 0xfffffc1f
-._736:
- ldrb r3, [r2, #0xd]
- lsl r1, r3, #0x19
- lsr r0, r1, #0x1b
- cmp r0, #0x1e
- bhi ._761 @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 ._761
-._729:
- mov r0, #0x20
- and r0, r0, r1
- cmp r0, #0
- beq ._754 @cond_branch
- ldr r0, ._751 @ gUnknown_Debug_2038A20
- ldr r3, [r0]
- ldrb r0, [r3, #0xa]
- cmp r0, #0x1
- beq ._747 @cond_branch
- cmp r0, #0x1
- bgt ._748 @cond_branch
- cmp r0, #0
- beq ._749 @cond_branch
- b ._754
-._752:
- .align 2, 0
-._751:
- .word gUnknown_Debug_2038A20
-._748:
- cmp r0, #0x2
- beq ._753 @cond_branch
- b ._754
-._749:
- ldrb r2, [r3, #0xc]
- mov r0, #0x1f
- and r0, r0, r2
- cmp r0, #0
- beq ._761 @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 ._761
-._747:
- ldrh r2, [r3, #0xc]
- mov r0, #0xf8
- lsl r0, r0, #0x2
- and r0, r0, r2
- cmp r0, #0
- beq ._761 @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, ._759 @ 0xfffffc1f
- and r1, r1, r2
- orr r1, r1, r0
- strh r1, [r3, #0xc]
- b ._761
-._760:
- .align 2, 0
-._759:
- .word 0xfffffc1f
-._753:
- ldrb r2, [r3, #0xd]
- mov r0, #0x7c
- and r0, r0, r2
- cmp r0, #0
- beq ._761 @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]
-._761:
- ldr r0, ._762 @ gTasks
- lsl r1, r7, #0x2
- add r1, r1, r7
- lsl r1, r1, #0x3
- add r1, r1, r0
- ldr r0, ._762 + 4 @ debug_80C74E4
- str r0, [r1]
-._754:
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
-._763:
- .align 2, 0
-._762:
- .word gTasks
- .word debug_80C74E4+1
-
- thumb_func_end debug_80C7294
-
- thumb_func_start debug_80C74E4
-debug_80C74E4:
- push {r4, r5, r6, lr}
- mov r6, r8
- push {r6}
- add r5, r0, #0
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- ldr r0, ._764 @ 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, ._764 + 4 @ gPlttBufferUnfaded
- ldrb r1, [r3, #0x7]
- add r1, r1, #0x81
- lsl r1, r1, #0x1
- add r1, r1, r6
- strh r0, [r1]
- ldr r1, ._764 + 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, ._764 + 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, ._764 + 16 @ gTasks
- lsl r0, r5, #0x2
- add r0, r0, r5
- lsl r0, r0, #0x3
- add r0, r0, r1
- ldr r1, ._764 + 20 @ debug_80C7294
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6}
- pop {r0}
- bx r0
-._765:
- .align 2, 0
-._764:
- .word gUnknown_Debug_2038A20
- .word gPlttBufferUnfaded
- .word gPlttBufferFaded
- .word 0x101
- .word gTasks
- .word debug_80C7294+1
-
- thumb_func_end debug_80C74E4
-
thumb_func_start debug_80C7584
debug_80C7584:
push {r4, lr}
diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c
index 02f6054de..697f97c4e 100644
--- a/src/debug/watanabe_debug_menu.c
+++ b/src/debug/watanabe_debug_menu.c
@@ -138,6 +138,7 @@ void debug_80C6EE8(u8 taskId);
void debug_80C6FA8(u8 taskId);
void debug_80C71FC(u8 taskId);
void debug_80C7294(u8 taskId);
+void debug_80C74E4(u8 taskId);
void debug_80C7584(struct Sprite *);
extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F8068[5];
@@ -2843,5 +2844,99 @@ NAKED void debug_80C6FA8(u8 taskId)
"\t.word\tPLTT + 0x142\n"
"\t.word\tgUnknown_Debug_083F8790");
}
-#endif
+#endif // NONMATCHING
+
+void debug_80C71FC(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_80C6CB8;
+}
+
+void debug_80C7294(u8 taskId)
+{
+ if (gMain.newKeys & A_BUTTON)
+ {
+ gUnknown_Debug_2038A20->unk5 = 0;
+ REG_WIN0H = 0x51EF;
+ REG_WIN0V = 0x699F;
+ gTasks[taskId].func = debug_80C6EE8;
+ }
+ 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_80C6EE8;
+ }
+ 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_80C74E4;
+ break;
+ case 1:
+ if (gUnknown_Debug_2038A20->unkC.g < 31)
+ gUnknown_Debug_2038A20->unkC.g++;
+ gTasks[taskId].func = debug_80C74E4;
+ break;
+ case 2:
+ if (gUnknown_Debug_2038A20->unkC.b < 31)
+ gUnknown_Debug_2038A20->unkC.b++;
+ gTasks[taskId].func = debug_80C74E4;
+ 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_80C74E4;
+ break;
+ case 1:
+ if (gUnknown_Debug_2038A20->unkC.g > 0)
+ gUnknown_Debug_2038A20->unkC.g--;
+ gTasks[taskId].func = debug_80C74E4;
+ break;
+ case 2:
+ if (gUnknown_Debug_2038A20->unkC.b > 0)
+ gUnknown_Debug_2038A20->unkC.b--;
+ gTasks[taskId].func = debug_80C74E4;
+ break;
+ }
+ }
+}
+
+void debug_80C74E4(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_80C7294;
+}
+
#endif // DEBUG