debug_80C3D2C

This commit is contained in:
PikalaxALT
2018-04-14 14:38:41 -04:00
parent bdd3cf36f5
commit ea25c05dcc
2 changed files with 122 additions and 444 deletions
-441
View File
@@ -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}
+122 -3
View File
@@ -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