summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-04-14 14:38:41 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-04-14 14:38:41 -0400
commitea25c05dcc8ba88c967f08d39f9d4c4db2e0cd3a (patch)
tree42c8d14dab2dafa8c5fe3ebbce784d2939302790
parentbdd3cf36f59e9f3a308073f998a15a92aea62283 (diff)
debug_80C3D2C
-rw-r--r--asm/watanabe_debug_menu.s441
-rw-r--r--src/debug/watanabe_debug_menu.c125
2 files changed, 122 insertions, 444 deletions
diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s
index 034f0a2b3..742dd66cd 100644
--- a/asm/watanabe_debug_menu.s
+++ b/asm/watanabe_debug_menu.s
@@ -5,447 +5,6 @@
.text
- thumb_func_start debug_80C3D2C
-debug_80C3D2C:
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- add sp, sp, #0xfffffffc
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- add r7, r6, #0
- ldr r4, ._60 @ gMain
- ldrh r1, [r4, #0x2e]
- mov r0, #0x2
- and r0, r0, r1
- cmp r0, #0
- beq ._58 @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, ._60 + 4 @ debug_80C370C
- bl SetMainCallback2
- ldr r1, ._60 + 8 @ gTasks
- lsl r0, r6, #0x2
- add r0, r0, r6
- lsl r0, r0, #0x3
- add r0, r0, r1
- ldr r1, ._60 + 12 @ debug_80C373C
- str r1, [r0]
- b ._117
-._61:
- .align 2, 0
-._60:
- .word gMain
- .word debug_80C370C+1
- .word gTasks
- .word debug_80C373C+1
-._58:
- mov r5, #0x1
- add r0, r5, #0
- and r0, r0, r1
- cmp r0, #0
- beq ._62 @cond_branch
- mov r0, #0x5
- bl PlaySE
- ldr r1, ._64 @ gTasks
- lsl r0, r6, #0x2
- add r0, r0, r6
- lsl r0, r0, #0x3
- add r0, r0, r1
- ldrh r1, [r0, #0x18]
- mov r2, #0x1
- eor r1, r1, r2
- strh r1, [r0, #0x18]
- b ._117
-._65:
- .align 2, 0
-._64:
- .word gTasks
-._62:
- ldrh r1, [r4, #0x30]
- mov r0, #0x20
- and r0, r0, r1
- cmp r0, #0
- beq ._66 @cond_branch
- ldr r1, ._70 @ gTasks
- lsl r2, r6, #0x2
- add r0, r2, r6
- lsl r0, r0, #0x3
- add r3, r0, r1
- mov r5, #0x18
- ldsh r0, [r3, r5]
- mov r8, r1
- cmp r0, #0
- beq ._67 @cond_branch
- ldrh r1, [r4, #0x2c]
- mov r0, #0x80
- lsl r0, r0, #0x1
- and r0, r0, r1
- cmp r0, #0
- beq ._68 @cond_branch
- ldrh r0, [r3, #0x14]
- add r0, r0, #0x10
- b ._69
-._71:
- .align 2, 0
-._70:
- .word gTasks
-._68:
- ldrh r0, [r3, #0x14]
- add r0, r0, #0x1
-._69:
- strh r0, [r3, #0x14]
- add r0, r2, r7
- lsl r0, r0, #0x3
- mov r2, r8
- add r1, r0, r2
- ldrh r0, [r1, #0x14]
- mov r6, #0x80
- lsl r6, r6, #0x8
- cmp r0, r6
- bhi ._72 @cond_branch
- b ._117
-._72:
- strh r6, [r1, #0x14]
- b ._117
-._67:
- ldrh r1, [r4, #0x2c]
- mov r0, #0x80
- lsl r0, r0, #0x1
- and r0, r0, r1
- cmp r0, #0
- beq ._75 @cond_branch
- ldrh r0, [r3, #0x16]
- add r0, r0, #0x10
- b ._76
-._75:
- ldrh r0, [r3, #0x16]
- add r0, r0, #0x1
-._76:
- strh r0, [r3, #0x16]
- add r0, r2, r7
- lsl r0, r0, #0x3
- mov r4, r8
- add r1, r0, r4
- ldrh r0, [r1, #0x16]
- mov r6, #0x80
- lsl r6, r6, #0x8
- cmp r0, r6
- bhi ._77 @cond_branch
- b ._117
-._77:
- strh r6, [r1, #0x16]
- b ._117
-._66:
- mov r0, #0x10
- and r0, r0, r1
- cmp r0, #0
- beq ._80 @cond_branch
- ldr r1, ._84 @ gTasks
- lsl r2, r6, #0x2
- add r0, r2, r6
- lsl r0, r0, #0x3
- add r3, r0, r1
- mov r5, #0x18
- ldsh r0, [r3, r5]
- mov r8, r1
- cmp r0, #0
- beq ._81 @cond_branch
- ldrh r1, [r4, #0x2c]
- mov r0, #0x80
- lsl r0, r0, #0x1
- and r0, r0, r1
- cmp r0, #0
- beq ._82 @cond_branch
- ldrh r0, [r3, #0x14]
- sub r0, r0, #0x10
- b ._83
-._85:
- .align 2, 0
-._84:
- .word gTasks
-._82:
- ldrh r0, [r3, #0x14]
- sub r0, r0, #0x1
-._83:
- strh r0, [r3, #0x14]
- add r0, r2, r7
- lsl r0, r0, #0x3
- mov r2, r8
- add r1, r0, r2
- mov r4, #0x14
- ldsh r0, [r1, r4]
- cmp r0, #0xff
- ble ._86 @cond_branch
- b ._117
-._86:
- mov r0, #0x80
- lsl r0, r0, #0x1
- strh r0, [r1, #0x14]
- b ._117
-._81:
- ldrh r1, [r4, #0x2c]
- mov r0, #0x80
- lsl r0, r0, #0x1
- and r0, r0, r1
- cmp r0, #0
- beq ._89 @cond_branch
- ldrh r0, [r3, #0x16]
- sub r0, r0, #0x10
- b ._90
-._89:
- ldrh r0, [r3, #0x16]
- sub r0, r0, #0x1
-._90:
- strh r0, [r3, #0x16]
- add r0, r2, r7
- lsl r0, r0, #0x3
- mov r5, r8
- add r1, r0, r5
- mov r2, #0x16
- ldsh r0, [r1, r2]
- cmp r0, #0xff
- ble ._91 @cond_branch
- b ._117
-._91:
- mov r0, #0x80
- lsl r0, r0, #0x1
- strh r0, [r1, #0x16]
- b ._117
-._80:
- mov r0, #0x40
- and r0, r0, r1
- cmp r0, #0
- beq ._94 @cond_branch
- ldr r0, ._97 @ gTasks
- lsl r1, r6, #0x2
- add r1, r1, r6
- lsl r1, r1, #0x3
- add r1, r1, r0
- mov r4, #0x18
- ldsh r0, [r1, r4]
- cmp r0, #0
- beq ._95 @cond_branch
- ldrh r0, [r1, #0x10]
- sub r0, r0, #0x1
- strh r0, [r1, #0x10]
- b ._117
-._98:
- .align 2, 0
-._97:
- .word gTasks
-._95:
- ldrh r0, [r1, #0x12]
- sub r0, r0, #0x1
- strh r0, [r1, #0x12]
- b ._117
-._94:
- mov r0, #0x80
- and r0, r0, r1
- cmp r0, #0
- beq ._100 @cond_branch
- ldr r0, ._103 @ gTasks
- lsl r1, r6, #0x2
- add r1, r1, r6
- lsl r1, r1, #0x3
- add r1, r1, r0
- mov r5, #0x18
- ldsh r0, [r1, r5]
- cmp r0, #0
- beq ._101 @cond_branch
- ldrh r0, [r1, #0x10]
- add r0, r0, #0x1
- strh r0, [r1, #0x10]
- b ._117
-._104:
- .align 2, 0
-._103:
- .word gTasks
-._101:
- ldrh r0, [r1, #0x12]
- add r0, r0, #0x1
- strh r0, [r1, #0x12]
- b ._117
-._100:
- mov r0, #0x8
- and r0, r0, r1
- cmp r0, #0
- beq ._106 @cond_branch
- ldr r2, ._109 @ gTasks
- lsl r3, r6, #0x2
- add r0, r3, r6
- lsl r0, r0, #0x3
- add r6, r0, r2
- ldrh r4, [r6, #0x8]
- mov r0, #0x8
- ldsh r1, [r6, r0]
- ldr r0, ._109 + 4 @ 0x181
- mov r8, r2
- add r2, r3, #0
- cmp r1, r0
- bgt ._107 @cond_branch
- add r0, r4, #1
- strh r0, [r6, #0x8]
- b ._108
-._110:
- .align 2, 0
-._109:
- .word gTasks
- .word 0x181
-._107:
- strh r5, [r6, #0x8]
-._108:
- add r4, r2, r7
- lsl r4, r4, #0x3
- add r4, r4, r8
- mov r2, #0xc
- ldsh r1, [r4, r2]
- b ._111
-._106:
- mov r0, #0x4
- and r0, r0, r1
- cmp r0, #0
- beq ._112 @cond_branch
- ldr r1, ._115 @ gTasks
- lsl r2, r6, #0x2
- add r0, r2, r6
- lsl r0, r0, #0x3
- add r3, r0, r1
- ldrh r6, [r3, #0x8]
- mov r4, #0x8
- ldsh r0, [r3, r4]
- mov r8, r1
- cmp r0, #0x1
- ble ._113 @cond_branch
- sub r0, r6, #1
- b ._114
-._116:
- .align 2, 0
-._115:
- .word gTasks
-._113:
- mov r0, #0xc1
- lsl r0, r0, #0x1
-._114:
- strh r0, [r3, #0x8]
- add r4, r2, r7
- lsl r4, r4, #0x3
- add r4, r4, r8
- mov r5, #0xc
- ldsh r1, [r4, r5]
-._111:
- lsl r0, r1, #0x4
- add r0, r0, r1
- lsl r0, r0, #0x2
- ldr r5, ._118 @ gSprites
- add r0, r0, r5
- bl DestroySprite
- mov r0, #0xe
- ldsh r1, [r4, r0]
- lsl r0, r1, #0x4
- add r0, r0, r1
- lsl r0, r0, #0x2
- add r0, r0, r5
- bl DestroySprite
- ldr r0, ._118 + 4 @ debug_80C3A50
- str r0, [r4]
- b ._117
-._119:
- .align 2, 0
-._118:
- .word gSprites
- .word debug_80C3A50+1
-._112:
- ldr r0, ._120 @ gTasks
- lsl r5, r7, #0x2
- add r5, r5, r7
- lsl r5, r5, #0x3
- add r5, r5, r0
- ldrh r4, [r5, #0x16]
- ldrh r6, [r5, #0x12]
- str r4, [sp]
- mov r0, #0x1
- add r1, r4, #0
- mov r2, #0x0
- mov r3, #0x0
- bl SetOamMatrix
- add r0, r4, #0
- mov r1, #0x1
- mov r2, #0x3
- mov r3, #0x4
- bl debug_80C68CC
- add r0, r6, #0
- mov r1, #0x1
- mov r2, #0x7
- mov r3, #0x4
- bl debug_80C68CC
- ldr r2, ._120 + 4 @ gSprites
- mov r8, r2
- mov r4, #0xc
- ldsh r1, [r5, r4]
- lsl r0, r1, #0x4
- add r0, r0, r1
- lsl r0, r0, #0x2
- add r0, r0, r8
- strh r6, [r0, #0x26]
- ldrh r4, [r5, #0x14]
- ldrh r6, [r5, #0x10]
- str r4, [sp]
- mov r0, #0x2
- add r1, r4, #0
- mov r2, #0x0
- mov r3, #0x0
- bl SetOamMatrix
- add r0, r4, #0
- mov r1, #0x19
- mov r2, #0x3
- mov r3, #0x4
- bl debug_80C68CC
- add r0, r6, #0
- mov r1, #0x19
- mov r2, #0x7
- mov r3, #0x4
- bl debug_80C68CC
- mov r0, #0xe
- ldsh r1, [r5, r0]
- lsl r0, r1, #0x4
- add r0, r0, r1
- lsl r0, r0, #0x2
- add r0, r0, r8
- strh r6, [r0, #0x26]
- ldr r2, ._120 + 8 @ 0x4000040
- mov r4, #0x18
- ldsh r1, [r5, r4]
- lsl r1, r1, #0x6
- add r0, r1, #0
- add r0, r0, #0x38
- lsl r0, r0, #0x8
- add r1, r1, #0x78
- add r0, r0, r1
- strh r0, [r2]
-._117:
- add sp, sp, #0x4
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
-._121:
- .align 2, 0
-._120:
- .word gTasks
- .word gSprites
- .word 0x4000040
-
- thumb_func_end debug_80C3D2C
-
thumb_func_start debug_80C405C
debug_80C405C:
push {r4, r5, lr}
diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c
index 7ca155faa..1f9bb8672 100644
--- a/src/debug/watanabe_debug_menu.c
+++ b/src/debug/watanabe_debug_menu.c
@@ -26,6 +26,10 @@ EWRAM_DATA u8 gUnknown_Debug_2038A20[4] = { 0 };
u8 byte_3005E30[0x20];
+void debug_80C3A50(u8 taskId);
+void debug_80C3D2C(u8 taskId);
+void debug_80C68CC(u16, u8, u8, u8);
+
extern const u8 gUnknown_Debug_083F7FD4[2]; // = _("▶");
extern const u8 gUnknown_Debug_083F7FD6[4]; // = {0x25, 0x20, 0x01, 0x08};
extern const u8 gUnknown_Debug_083F7FDA[4]; // = _("ひりつ");
@@ -42,9 +46,6 @@ extern const u8 gUnknown_Debug_083F8028[6]; // = _(":セレクト");
extern const struct SpriteSheet stru_83F8828[2];
extern const struct SpritePalette stru_83F8838[2];
-void debug_80C3A50(u8 taskId);
-void debug_80C3D2C(u8 taskId);
-
void debug_69(struct Sprite *sprite)
{
@@ -667,4 +668,122 @@ NAKED void debug_80C3A50(u8 taskId)
}
#endif // NONMATCHING
+void debug_80C3D2C(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.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ gTasks[taskId].data[8] ^= 1;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_LEFT)
+ {
+ if (gTasks[taskId].data[8])
+ {
+ if (gMain.heldKeys & R_BUTTON)
+ gTasks[taskId].data[6] += 16;
+ else
+ gTasks[taskId].data[6] += 1;
+ if ((u16)gTasks[taskId].data[6] > 0x8000)
+ gTasks[taskId].data[6] = 0x8000;
+ }
+ else
+ {
+ if (gMain.heldKeys & R_BUTTON)
+ gTasks[taskId].data[7] += 16;
+ else
+ gTasks[taskId].data[7] += 1;
+ if ((u16)gTasks[taskId].data[7] > 0x8000)
+ gTasks[taskId].data[7] = 0x8000;
+ }
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_RIGHT)
+ {
+ if (gTasks[taskId].data[8])
+ {
+ if (gMain.heldKeys & R_BUTTON)
+ gTasks[taskId].data[6] -= 16;
+ else
+ gTasks[taskId].data[6] -= 1;
+ if (gTasks[taskId].data[6] < 0x100)
+ gTasks[taskId].data[6] = 0x100;
+ }
+ else
+ {
+ if (gMain.heldKeys & R_BUTTON)
+ gTasks[taskId].data[7] -= 16;
+ else
+ gTasks[taskId].data[7] -= 1;
+ if (gTasks[taskId].data[7] < 0x100)
+ gTasks[taskId].data[7] = 0x100;
+ }
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ if (gTasks[taskId].data[8])
+ {
+ gTasks[taskId].data[4]--;
+ }
+ else
+ {
+ gTasks[taskId].data[5]--;
+ }
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ if (gTasks[taskId].data[8])
+ {
+ gTasks[taskId].data[4]++;
+ }
+ else
+ {
+ gTasks[taskId].data[5]++;
+ }
+ }
+ else if (gMain.newAndRepeatedKeys & START_BUTTON)
+ {
+ if (gTasks[taskId].data[0] < 0x182)
+ gTasks[taskId].data[0]++;
+ else
+ gTasks[taskId].data[0] = 1;
+ DestroySprite(gSprites + gTasks[taskId].data[2]);
+ DestroySprite(gSprites + gTasks[taskId].data[3]);
+ gTasks[taskId].func = debug_80C3A50;
+ }
+ else if (gMain.newAndRepeatedKeys & SELECT_BUTTON)
+ {
+ if (gTasks[taskId].data[0] > 1)
+ gTasks[taskId].data[0]--;
+ else
+ gTasks[taskId].data[0] = 0x182;
+ DestroySprite(gSprites + gTasks[taskId].data[2]);
+ DestroySprite(gSprites + gTasks[taskId].data[3]);
+ gTasks[taskId].func = debug_80C3A50;
+ }
+ else
+ {
+ u16 scale = gTasks[taskId].data[7];
+ u16 offset = gTasks[taskId].data[5];
+ SetOamMatrix(1, scale, 0, 0, scale);
+ debug_80C68CC(scale, 1, 3, 4);
+ debug_80C68CC(offset, 1, 7, 4);
+ gSprites[gTasks[taskId].data[2]].pos2.y = offset;
+
+ scale = gTasks[taskId].data[6];
+ offset = gTasks[taskId].data[4];
+ SetOamMatrix(2, scale, 0, 0, scale);
+ debug_80C68CC(scale, 25, 3, 4);
+ debug_80C68CC(offset, 25, 7, 4);
+ gSprites[gTasks[taskId].data[3]].pos2.y = offset;
+
+ REG_WIN0H = ((gTasks[taskId].data[8] * 64 + 0x38) << 8) + (gTasks[taskId].data[8] * 64 + 0x78);
+ }
+}
+
#endif // DEBUG