through sub_80C1E78

This commit is contained in:
PikalaxALT
2020-01-04 13:40:57 -05:00
parent 2c825017e6
commit 5cc480bc17
2 changed files with 88 additions and 324 deletions
-322
View File
@@ -5,328 +5,6 @@
.text
thumb_func_start sub_80C1BE0
sub_80C1BE0: @ 80C1BE0
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0xC
lsls r0, 24
lsrs r2, r0, 24
ldr r1, _080C1C08 @ =gUnknown_20399DC
ldr r0, [r1]
ldr r3, _080C1C0C @ =0x00003d49
adds r0, r3
ldrb r0, [r0]
adds r3, r1, 0
cmp r0, 0x4
bls _080C1BFE
b _080C1DF0
_080C1BFE:
lsls r0, 2
ldr r1, _080C1C10 @ =_080C1C14
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080C1C08: .4byte gUnknown_20399DC
_080C1C0C: .4byte 0x00003d49
_080C1C10: .4byte _080C1C14
.align 2, 0
_080C1C14:
.4byte _080C1C28
.4byte _080C1C58
.4byte _080C1C80
.4byte _080C1CA8
.4byte _080C1DA0
_080C1C28:
ldr r1, [r3]
ldr r0, _080C1C48 @ =0x00003e0e
adds r2, r1, r0
ldr r0, _080C1C4C @ =0x00000133
strh r0, [r2]
ldr r3, _080C1C50 @ =0x00003e10
adds r2, r1, r3
subs r0, 0x33
strh r0, [r2]
ldr r0, _080C1C54 @ =0x00003e12
adds r2, r1, r0
movs r0, 0xF0
strh r0, [r2]
subs r3, 0xC7
b _080C1DD6
.align 2, 0
_080C1C48: .4byte 0x00003e0e
_080C1C4C: .4byte 0x00000133
_080C1C50: .4byte 0x00003e10
_080C1C54: .4byte 0x00003e12
_080C1C58:
ldr r0, [r3]
ldr r1, _080C1C7C @ =0x00003d4c
adds r0, r1
ldrb r1, [r0]
adds r2, r1, 0x1
strb r2, [r0]
lsls r1, 24
lsrs r1, 24
cmp r1, 0x28
bhi _080C1C6E
b _080C1DFE
_080C1C6E:
ldr r0, [r3]
ldr r1, _080C1C7C @ =0x00003d4c
adds r0, r1
movs r1, 0
strb r1, [r0]
ldr r1, [r3]
b _080C1DD4
.align 2, 0
_080C1C7C: .4byte 0x00003d4c
_080C1C80:
movs r0, 0x2
movs r1, 0
bl FillWindowPixelBuffer
movs r0, 0x2
movs r1, 0x3
bl CopyWindowToVram
movs r0, 0x2
bl PutWindowTilemap
ldr r0, _080C1CA0 @ =gUnknown_20399DC
ldr r1, [r0]
ldr r0, _080C1CA4 @ =0x00003d49
adds r1, r0
b _080C1DD8
.align 2, 0
_080C1CA0: .4byte gUnknown_20399DC
_080C1CA4: .4byte 0x00003d49
_080C1CA8:
ldr r7, _080C1D10 @ =gUnknown_20399DC
ldr r2, [r7]
ldr r1, _080C1D14 @ =0x00003d4c
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0x19
bls _080C1D24
bl sub_80C3580
lsls r0, 16
lsrs r0, 16
bl sub_80C1920
ldr r1, _080C1D18 @ =gUnknown_83F1A94
str r1, [sp]
movs r4, 0x1
negs r4, r4
str r4, [sp, 0x4]
str r0, [sp, 0x8]
movs r0, 0x2
movs r1, 0x2
movs r2, 0x4
movs r3, 0
bl AddTextPrinterParameterized3
bl sub_80C3580
lsls r0, 16
lsrs r0, 16
bl sub_80C18E0
ldr r1, _080C1D1C @ =gUnknown_83F1A90
str r1, [sp]
str r4, [sp, 0x4]
str r0, [sp, 0x8]
movs r0, 0x2
movs r1, 0x2
movs r2, 0x2
movs r3, 0xE
bl AddTextPrinterParameterized3
movs r0, 0x2
movs r1, 0x3
bl CopyWindowToVram
ldr r1, [r7]
ldr r3, _080C1D20 @ =0x00003d49
adds r1, r3
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _080C1D80
.align 2, 0
_080C1D10: .4byte gUnknown_20399DC
_080C1D14: .4byte 0x00003d4c
_080C1D18: .4byte gUnknown_83F1A94
_080C1D1C: .4byte gUnknown_83F1A90
_080C1D20: .4byte 0x00003d49
_080C1D24:
cmp r0, 0x14
bls _080C1D80
ldr r6, _080C1D88 @ =0x00003e0e
adds r1, r2, r6
ldrh r0, [r1]
subs r0, 0x6
strh r0, [r1]
ldr r4, _080C1D8C @ =0x00003e10
adds r1, r2, r4
ldrh r0, [r1]
subs r0, 0x5
strh r0, [r1]
ldr r0, _080C1D90 @ =0x00003e12
mov r8, r0
adds r1, r2, r0
ldrh r0, [r1]
subs r0, 0x5
strh r0, [r1]
movs r1, 0xF5
lsls r1, 6
adds r0, r2, r1
ldr r0, [r0]
ldr r0, [r0, 0xC]
ldr r5, _080C1D94 @ =0x00003d4e
adds r1, r2, r5
movs r2, 0x30
bl CpuSet
ldr r1, [r7]
adds r0, r1, r5
adds r6, r1, r6
ldrh r2, [r6]
adds r4, r1, r4
ldrh r3, [r4]
add r1, r8
ldrh r1, [r1]
str r1, [sp]
movs r1, 0x30
bl TintPalette_CustomTone
ldr r0, [r7]
adds r0, r5
movs r1, 0xD0
movs r2, 0x60
bl LoadPalette
_080C1D80:
ldr r0, _080C1D98 @ =gUnknown_20399DC
ldr r1, [r0]
ldr r3, _080C1D9C @ =0x00003d4c
b _080C1DD6
.align 2, 0
_080C1D88: .4byte 0x00003e0e
_080C1D8C: .4byte 0x00003e10
_080C1D90: .4byte 0x00003e12
_080C1D94: .4byte 0x00003d4e
_080C1D98: .4byte gUnknown_20399DC
_080C1D9C: .4byte 0x00003d4c
_080C1DA0:
ldr r0, _080C1DE0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _080C1DB4
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080C1DFE
_080C1DB4:
movs r0, 0x2
movs r1, 0
bl FillWindowPixelBuffer
movs r0, 0x2
movs r1, 0x3
bl CopyWindowToVram
ldr r2, _080C1DE4 @ =gUnknown_20399DC
ldr r1, [r2]
ldr r0, _080C1DE8 @ =0x00003d48
adds r1, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
ldr r1, [r2]
_080C1DD4:
ldr r3, _080C1DEC @ =0x00003d49
_080C1DD6:
adds r1, r3
_080C1DD8:
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _080C1DFE
.align 2, 0
_080C1DE0: .4byte gMain
_080C1DE4: .4byte gUnknown_20399DC
_080C1DE8: .4byte 0x00003d48
_080C1DEC: .4byte 0x00003d49
_080C1DF0:
ldr r0, _080C1E0C @ =gTasks
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r1, r0
ldr r0, _080C1E10 @ =sub_80C1A94
str r0, [r1]
_080C1DFE:
add sp, 0xC
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080C1E0C: .4byte gTasks
_080C1E10: .4byte sub_80C1A94
thumb_func_end sub_80C1BE0
thumb_func_start sub_80C1E14
sub_80C1E14: @ 80C1E14
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _080C1E68 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
ldr r4, _080C1E6C @ =gUnknown_20399DC
ldr r0, [r4]
ldr r2, _080C1E70 @ =0x00003d44
adds r0, r2
ldr r0, [r0]
str r0, [r1]
movs r0, 0x2
bl HideBg
movs r0, 0
bl sub_80C4B30
bl sub_80C0B18
bl sub_80C0BB0
bl sub_80C0AB8
bl sub_80C0B9C
ldr r0, _080C1E74 @ =gUnknown_8418E8D
bl sub_80C4E74
ldr r0, [r4]
cmp r0, 0
beq _080C1E60
bl Free
movs r0, 0
str r0, [r4]
_080C1E60:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080C1E68: .4byte gTasks
_080C1E6C: .4byte gUnknown_20399DC
_080C1E70: .4byte 0x00003d44
_080C1E74: .4byte gUnknown_8418E8D
thumb_func_end sub_80C1E14
thumb_func_start sub_80C1E78
sub_80C1E78: @ 80C1E78
push {lr}
sub sp, 0x8
movs r0, 0x20
str r0, [sp]
movs r0, 0x14
str r0, [sp, 0x4]
movs r0, 0x2
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBufferRect
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_80C1E78
thumb_func_start sub_80C1E94
sub_80C1E94: @ 80C1E94
push {r4-r6,lr}
+88 -2
View File
@@ -94,7 +94,13 @@ struct UnkStruct_20399DC
u8 field_3D48;
u8 field_3D49;
u8 field_3D4A;
u8 filler_3D4B[0xC9];
u8 field_3D4B;
u8 field_3D4C;
u16 field_3D4E[0x30];
u8 field_3DAE[0x60];
u16 field_3E0E;
u16 field_3E10;
u16 field_3E12;
u16 field_3E14;
u8 filler_3E16[0x12];
}; // size = 0x3E28
@@ -142,6 +148,7 @@ bool8 sub_80C16D0(void);
void sub_80C1754(u8 a0, u16 a1, u16 a2);
void sub_80C176C(u8 a0, u16 a1, u16 a2);
void sub_80C1880(void);
void sub_80C195C(u8 a0, u8 taskId, TaskFunc taskFunc);
void sub_80C1A94(u8 taskId);
void sub_80C1BE0(u8 taskId);
void sub_80C1E14(u8 taskId);
@@ -157,7 +164,6 @@ void sub_80C4C74(u16 a0, u16 a1);
void sub_80C4C88(u16 a0);
void sub_80C4C9C(u8 a0, u8 a1);
void sub_80C4CF0(u8 a0, const struct UnkStruct_80C4CF0 *a1);
void sub_80C195C(u8 a0, u8 taskId, TaskFunc taskFunc);
void sub_80C2208(u8 taskId, TaskFunc taskFunc);
void sub_80C25BC(void);
void sub_80C2C1C(u8 taskId);
@@ -176,6 +182,7 @@ u16 sub_80C3520(void);
void sub_80C48BC(u8 a0, u8 a1, u8 a2);
void sub_80C4960(u8 a0, u8 a1, u8 a2);
void sub_80C4A04(void);
void sub_80C4B30(u8 a0);
void sub_80C4D30(void);
void sub_80C4E18(const u8 *str);
void sub_80C4E74(const u8 *str);
@@ -205,6 +212,7 @@ extern const u32 gUnknown_83F19A0[];
extern const struct BgTemplate gUnknown_83F1A50[4];
extern const struct WindowTemplate gUnknown_83F1A60[];
extern const u8 gUnknown_83F1A90[];
extern const u8 gUnknown_83F1A94[];
extern const u8 *const gUnknown_83F1A9C[];
extern const u8 sSeviiMapsecs[3][30];
extern const u8 gUnknown_83F1B00[3][4];
@@ -1312,3 +1320,81 @@ void sub_80C1A94(u8 taskId)
break;
}
}
void sub_80C1BE0(u8 taskId)
{
switch (gUnknown_20399DC->field_3D49)
{
case 0:
gUnknown_20399DC->field_3E0E = 0x0133;
gUnknown_20399DC->field_3E10 = 0x0100;
gUnknown_20399DC->field_3E12 = 0x00F0;
gUnknown_20399DC->field_3D49++;
break;
case 1:
if (gUnknown_20399DC->field_3D4C++ > 40)
{
gUnknown_20399DC->field_3D4C = 0;
gUnknown_20399DC->field_3D49++;
}
break;
case 2:
FillWindowPixelBuffer(2, PIXEL_FILL(0));
CopyWindowToVram(2, 3);
PutWindowTilemap(2);
gUnknown_20399DC->field_3D49++;
break;
case 3:
if (gUnknown_20399DC->field_3D4C > 25)
{
AddTextPrinterParameterized3(2, 2, 4, 0, gUnknown_83F1A94, -1, sub_80C1920(sub_80C3580()));
AddTextPrinterParameterized3(2, 2, 2, 14, gUnknown_83F1A90, -1, sub_80C18E0(sub_80C3580()));
CopyWindowToVram(2, 3);
gUnknown_20399DC->field_3D49++;
}
else if (gUnknown_20399DC->field_3D4C > 20)
{
gUnknown_20399DC->field_3E0E -= 6;
gUnknown_20399DC->field_3E10 -= 5;
gUnknown_20399DC->field_3E12 -= 5;
CpuCopy16(gUnknown_20399DC->field_3D40->palptr, gUnknown_20399DC->field_3D4E, 0x60);
TintPalette_CustomTone(gUnknown_20399DC->field_3D4E, 0x30, gUnknown_20399DC->field_3E0E, gUnknown_20399DC->field_3E10, gUnknown_20399DC->field_3E12);
LoadPalette(gUnknown_20399DC->field_3D4E, 0xD0, 0x60);
}
gUnknown_20399DC->field_3D4C++;
break;
case 4:
if (JOY_NEW(B_BUTTON) || JOY_NEW(A_BUTTON))
{
FillWindowPixelBuffer(2, PIXEL_FILL(0));
CopyWindowToVram(2, 3);
gUnknown_20399DC->field_3D48++;
gUnknown_20399DC->field_3D49++;
}
break;
default:
gTasks[taskId].func = sub_80C1A94;
break;
}
}
void sub_80C1E14(u8 taskId)
{
gTasks[taskId].func = gUnknown_20399DC->field_3D44;
HideBg(2);
sub_80C4B30(0);
sub_80C0B18();
sub_80C0BB0();
sub_80C0AB8();
sub_80C0B9C();
sub_80C4E74(gUnknown_8418E8D);
if (gUnknown_20399DC != NULL)
{
FREE_AND_SET_NULL(gUnknown_20399DC);
}
}
void sub_80C1E78(u8 bgId, const u16 * tilemap)
{
CopyToBgTilemapBufferRect(2, tilemap, 0, 0, 32, 20);
}