through sub_81051D0

This commit is contained in:
PikalaxALT
2019-12-13 14:55:19 -05:00
parent e38355d255
commit be8b7a6f13
3 changed files with 109 additions and 367 deletions
-365
View File
@@ -5,371 +5,6 @@
.text .text
thumb_func_start sub_8104F0C
sub_8104F0C: @ 8104F0C
push {r4-r6,lr}
sub sp, 0x8
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0x1E
str r0, [sp]
movs r4, 0x14
str r4, [sp, 0x4]
movs r0, 0x3
movs r1, 0x2
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
movs r5, 0x20
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0x2
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
ldr r5, _08104F80 @ =gUnknown_203ACF0
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x28
ldrb r0, [r0]
adds r1, 0x2B
ldrb r1, [r1]
bl sub_81068DC
movs r0, 0
movs r1, 0xFF
bl FillWindowPixelBuffer
cmp r6, 0
beq _08104F88
ldr r1, _08104F84 @ =gUnknown_8452344
ldr r0, [r5]
adds r0, 0x28
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x1
bl sub_8106E78
b _08104FD0
.align 2, 0
_08104F80: .4byte gUnknown_203ACF0
_08104F84: .4byte gUnknown_8452344
_08104F88:
ldr r1, _08105048 @ =gUnknown_8452344
ldr r0, [r5]
adds r0, 0x28
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0
bl sub_8106E78
ldr r0, [r5]
adds r0, 0x2B
ldrb r0, [r0]
bl sub_8106AF8
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, [r5]
adds r0, 0x2A
ldrb r0, [r0]
subs r0, 0x1
lsls r0, 16
lsrs r0, 16
bl sub_8106AF8
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
movs r0, 0x2
str r0, [sp]
movs r0, 0
adds r1, r4, 0
movs r3, 0xA0
bl sub_8104EC0
_08104FD0:
movs r0, 0
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0x1
movs r1, 0xFF
bl FillWindowPixelBuffer
cmp r6, 0
bne _08104FEA
ldr r0, _0810504C @ =gUnknown_8415F6C
bl sub_8104C2C
_08104FEA:
movs r0, 0x1
movs r1, 0x2
bl CopyWindowToVram
ldr r5, _08105050 @ =gUnknown_203ACF0
ldr r1, [r5]
ldrh r0, [r1, 0x18]
ldr r4, _08105054 @ =0x0000ffff
cmp r0, r4
beq _08105008
adds r1, 0x2C
ldrb r2, [r1]
movs r1, 0
bl sub_8104C64
_08105008:
ldr r1, [r5]
ldrh r0, [r1, 0x1A]
cmp r0, r4
beq _0810501A
adds r1, 0x2C
ldrb r2, [r1]
movs r1, 0x1
bl sub_8104C64
_0810501A:
ldr r1, [r5]
ldrh r0, [r1, 0x1C]
cmp r0, r4
beq _0810502C
adds r1, 0x2C
ldrb r2, [r1]
movs r1, 0x2
bl sub_8104C64
_0810502C:
ldr r1, [r5]
ldrh r0, [r1, 0x1E]
cmp r0, r4
beq _0810503E
adds r1, 0x2C
ldrb r2, [r1]
movs r1, 0x3
bl sub_8104C64
_0810503E:
movs r0, 0
add sp, 0x8
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08105048: .4byte gUnknown_8452344
_0810504C: .4byte gUnknown_8415F6C
_08105050: .4byte gUnknown_203ACF0
_08105054: .4byte 0x0000ffff
thumb_func_end sub_8104F0C
thumb_func_start sub_8105058
sub_8105058: @ 8105058
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
str r0, [sp]
cmp r0, 0xFF
bne _081050C0
ldr r7, _081050B4 @ =gUnknown_84406C8
movs r6, 0xB0
lsls r6, 15
movs r5, 0xA4
lsls r5, 15
movs r4, 0x3
_0810507A:
lsrs r1, r5, 16
adds r0, r7, 0
movs r2, 0x2
bl LoadPalette
lsrs r1, r6, 16
adds r0, r7, 0x2
movs r2, 0x2
bl LoadPalette
movs r0, 0x80
lsls r0, 13
adds r6, r0
adds r5, r0
subs r4, 0x1
cmp r4, 0
bge _0810507A
ldr r0, _081050B4 @ =gUnknown_84406C8
ldr r1, _081050B8 @ =0x00000141
movs r2, 0x2
bl LoadPalette
ldr r0, _081050BC @ =gUnknown_203ACF0
ldr r0, [r0]
adds r0, 0x2E
movs r1, 0
strb r1, [r0]
b _0810515E
.align 2, 0
_081050B4: .4byte gUnknown_84406C8
_081050B8: .4byte 0x00000141
_081050BC: .4byte gUnknown_203ACF0
_081050C0:
ldr r2, _08105120 @ =gUnknown_203ACF0
ldr r1, [r2]
adds r1, 0x2E
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
ldr r0, [r2]
adds r1, r0, 0
adds r1, 0x2E
ldrb r0, [r1]
cmp r0, 0x10
bne _081050DC
movs r0, 0
strb r0, [r1]
_081050DC:
ldr r0, [r2]
adds r0, 0x2E
ldrb r0, [r0]
lsrs r7, r0, 2
movs r4, 0
lsls r0, r7, 2
mov r8, r0
ldr r0, _08105124 @ =gUnknown_84406CC
mov r10, r0
movs r6, 0xB0
lsls r6, 15
movs r5, 0xA4
lsls r5, 15
movs r0, 0x4
negs r0, r0
add r0, r10
mov r9, r0
_081050FE:
ldr r0, [sp]
cmp r4, r0
bne _0810512C
lsrs r1, r5, 16
mov r0, r8
add r0, r10
movs r2, 0x2
bl LoadPalette
lsrs r1, r6, 16
ldr r0, _08105128 @ =gUnknown_84406CE
add r0, r8
movs r2, 0x2
bl LoadPalette
b _08105142
.align 2, 0
_08105120: .4byte gUnknown_203ACF0
_08105124: .4byte gUnknown_84406CC
_08105128: .4byte gUnknown_84406CE
_0810512C:
lsrs r1, r5, 16
mov r0, r9
movs r2, 0x2
bl LoadPalette
lsrs r1, r6, 16
mov r0, r9
adds r0, 0x2
movs r2, 0x2
bl LoadPalette
_08105142:
lsls r1, r7, 2
movs r0, 0x80
lsls r0, 13
adds r6, r0
adds r5, r0
adds r4, 0x1
cmp r4, 0x3
ble _081050FE
ldr r0, _08105170 @ =gUnknown_84406CC
adds r0, r1, r0
ldr r1, _08105174 @ =0x00000141
movs r2, 0x2
bl LoadPalette
_0810515E:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08105170: .4byte gUnknown_84406CC
_08105174: .4byte 0x00000141
thumb_func_end sub_8105058
thumb_func_start sub_8105178
sub_8105178: @ 8105178
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsls r2, 24
movs r3, 0xFF
lsls r3, 24
adds r2, r3
ldr r3, _081051A8 @ =gUnknown_8452334
lsrs r2, 22
adds r2, r3
ldr r2, [r2]
lsrs r1, 22
adds r1, r2
ldrb r3, [r1, 0x2]
lsls r3, 3
ldrb r2, [r1, 0x3]
lsls r2, 3
adds r1, r3, 0
movs r3, 0
bl ListMenuUpdateCursorObject
pop {r0}
bx r0
.align 2, 0
_081051A8: .4byte gUnknown_8452334
thumb_func_end sub_8105178
thumb_func_start sub_81051AC
sub_81051AC: @ 81051AC
push {lr}
lsls r1, 24
lsls r3, 24
lsrs r1, 23
adds r1, r0, r1
lsrs r3, 23
adds r2, r3
movs r3, 0x13
_081051BC:
ldrh r0, [r1]
strh r0, [r2]
adds r2, 0x40
adds r1, 0x40
subs r3, 0x1
cmp r3, 0
bge _081051BC
movs r0, 0
pop {r1}
bx r1
thumb_func_end sub_81051AC
thumb_func_start sub_81051D0
sub_81051D0: @ 81051D0
push {lr}
lsls r0, 16
lsrs r0, 16
lsls r2, 24
lsrs r2, 23
adds r1, r2
movs r2, 0x13
_081051DE:
strh r0, [r1]
adds r1, 0x40
subs r2, 0x1
cmp r2, 0
bge _081051DE
movs r0, 0
pop {r1}
bx r1
thumb_func_end sub_81051D0
thumb_func_start sub_81051F0 thumb_func_start sub_81051F0
sub_81051F0: @ 81051F0 sub_81051F0: @ 81051F0
push {r4-r7,lr} push {r4-r7,lr}
+1
View File
@@ -975,6 +975,7 @@ extern const u8 gUnknown_8415DD7[];
extern const u8 gUnknown_8415F3D[]; extern const u8 gUnknown_8415F3D[];
extern const u8 gUnknown_8415F4A[]; extern const u8 gUnknown_8415F4A[];
extern const u8 gUnknown_8415F66[]; extern const u8 gUnknown_8415F66[];
extern const u8 gUnknown_8415F6C[];
extern const u8 gUnknown_8415FFF[]; extern const u8 gUnknown_8415FFF[];
extern const u8 gUnknown_8416002[]; extern const u8 gUnknown_8416002[];
+108 -2
View File
@@ -107,7 +107,7 @@ void sub_8104A34(u8 windowId, u8 fontId, u16 species, u8 x, u8 y);
u16 sub_8104BBC(u8 caseID, bool8 whichDex); u16 sub_8104BBC(u8 caseID, bool8 whichDex);
void sub_8104C2C(const u8 *src); void sub_8104C2C(const u8 *src);
void sub_8104E90(void); void sub_8104E90(void);
void sub_8104F0C(u8 a0); bool8 sub_8104F0C(bool8 a0);
void sub_8105058(u8 a0); void sub_8105058(u8 a0);
void sub_8105178(u8 a0, u8 a1, u8 a2); void sub_8105178(u8 a0, u8 a1, u8 a2);
bool8 sub_81052D0(u8 a0); bool8 sub_81052D0(u8 a0);
@@ -120,6 +120,8 @@ u8 sub_81068A0(u8 a0);
void sub_810699C(u8 a0); void sub_810699C(u8 a0);
bool8 sub_8106A20(u16 a0); bool8 sub_8106A20(u16 a0);
void sub_81067C0(void); void sub_81067C0(void);
void sub_81068DC(u8 a0, u8 a1);
u8 sub_8106AF8(u16 a0);
void sub_8106B34(void); void sub_8106B34(void);
void sub_8106E78(const u8 *a0, s32 a1); void sub_8106E78(const u8 *a0, s32 a1);
@@ -127,6 +129,7 @@ extern const u16 gUnknown_8440124[];
extern const u32 gUnknown_8440274[]; extern const u32 gUnknown_8440274[];
extern const u32 gUnknown_84403AC[]; extern const u32 gUnknown_84403AC[];
extern const u16 gUnknown_84404C8[]; extern const u16 gUnknown_84404C8[];
extern const u16 gUnknown_84406C8[];
extern const u16 gUnknown_84406E0[]; extern const u16 gUnknown_84406E0[];
extern const u16 gUnknown_8440EF0[]; extern const u16 gUnknown_8440EF0[];
extern const u16 gUnknown_8443460[]; extern const u16 gUnknown_8443460[];
@@ -154,6 +157,7 @@ extern const struct WindowTemplate gUnknown_84521C4;
extern const struct WindowTemplate gUnknown_84521CC; extern const struct WindowTemplate gUnknown_84521CC;
extern const u16 gUnknown_845228C[]; extern const u16 gUnknown_845228C[];
extern const u8 (*const gUnknown_8452334[])[4]; extern const u8 (*const gUnknown_8452334[])[4];
extern const u8 *const gUnknown_8452344[];
extern const struct ScrollArrowsTemplate gUnknown_84524B4; extern const struct ScrollArrowsTemplate gUnknown_84524B4;
extern const struct CursorStruct gUnknown_84524C4; extern const struct CursorStruct gUnknown_84524C4;
@@ -1832,7 +1836,7 @@ void sub_8104E90(void)
} }
} }
void sub_8104EC0(u8 unused, u16 a1, u16 a2) void sub_8104EC0(u8 unused, u16 a1, u16 a2, u8 unused2, u8 unused3)
{ {
u8 buffer[30]; u8 buffer[30];
u8 *ptr = StringCopy(buffer, gUnknown_8416002); u8 *ptr = StringCopy(buffer, gUnknown_8416002);
@@ -1841,3 +1845,105 @@ void sub_8104EC0(u8 unused, u16 a1, u16 a2)
ptr = ConvertIntToDecimalStringN(ptr, a2, STR_CONV_MODE_RIGHT_ALIGN, 2); ptr = ConvertIntToDecimalStringN(ptr, a2, STR_CONV_MODE_RIGHT_ALIGN, 2);
sub_8106E78(buffer, 2); sub_8106E78(buffer, 2);
} }
bool8 sub_8104F0C(bool8 a0)
{
FillBgTilemapBufferRect_Palette0(3, 2, 0, 0, 30, 20);
FillBgTilemapBufferRect_Palette0(2, 0, 0, 0, 32, 20);
FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 32, 20);
sub_81068DC(gUnknown_203ACF0->field_28, gUnknown_203ACF0->field_2B);
FillWindowPixelBuffer(0, PIXEL_FILL(15));
if (a0)
{
sub_8106E78(gUnknown_8452344[gUnknown_203ACF0->field_28], 1);
}
else
{
sub_8106E78(gUnknown_8452344[gUnknown_203ACF0->field_28], 0);
sub_8104EC0(0, sub_8106AF8(gUnknown_203ACF0->field_2B), sub_8106AF8(gUnknown_203ACF0->field_2A - 1), 160, 2);
}
CopyWindowToVram(0, 2);
FillWindowPixelBuffer(1, PIXEL_FILL(15));
if (!a0)
sub_8104C2C(gUnknown_8415F6C);
CopyWindowToVram(1, 2);
if (gUnknown_203ACF0->field_18[0] != 0xFFFF)
sub_8104C64(gUnknown_203ACF0->field_18[0], 0, gUnknown_203ACF0->field_2C);
if (gUnknown_203ACF0->field_18[1] != 0xFFFF)
sub_8104C64(gUnknown_203ACF0->field_18[1], 1, gUnknown_203ACF0->field_2C);
if (gUnknown_203ACF0->field_18[2] != 0xFFFF)
sub_8104C64(gUnknown_203ACF0->field_18[2], 2, gUnknown_203ACF0->field_2C);
if (gUnknown_203ACF0->field_18[3] != 0xFFFF)
sub_8104C64(gUnknown_203ACF0->field_18[3], 3, gUnknown_203ACF0->field_2C);
return FALSE;
}
void sub_8105058(u8 a0)
{
int i;
u32 r7;
if (a0 == 0xFF)
{
for (i = 0; i < 4; i++)
{
LoadPalette(&gUnknown_84406C8[0], 0x52 + 0x10 * i, 2);
LoadPalette(&gUnknown_84406C8[1], 0x58 + 0x10 * i, 2);
}
LoadPalette(&gUnknown_84406C8[0], 0x141, 2);
gUnknown_203ACF0->field_2E = 0;
}
else
{
gUnknown_203ACF0->field_2E++;
if (gUnknown_203ACF0->field_2E == 16)
gUnknown_203ACF0->field_2E = 0;
r7 = gUnknown_203ACF0->field_2E >> 2;
for (i = 0; i < 4; i++)
{
if (i == a0)
{
LoadPalette(&gUnknown_84406C8[2 * r7 + 2], 0x52 + 0x10 * i, 2);
LoadPalette(&gUnknown_84406C8[2 * r7 + 3], 0x58 + 0x10 * i, 2);
}
else
{
LoadPalette(&gUnknown_84406C8[0], 0x52 + 0x10 * i, 2);
LoadPalette(&gUnknown_84406C8[1], 0x58 + 0x10 * i, 2);
}
}
LoadPalette(&gUnknown_84406C8[2 * r7 + 2], 0x141, 2);
}
}
void sub_8105178(u8 a0, u8 a1, u8 a2)
{
a2--;
ListMenuUpdateCursorObject(a0, gUnknown_8452334[a2][a1][2] * 8, gUnknown_8452334[a2][a1][3] * 8, 0);
}
bool8 sub_81051AC(const u16 *a0, u8 a1, u16 *a2, u8 a3)
{
int i;
const u16 *src = &a0[a1];
u16 *dst = &a2[a3];
for (i = 0; i < 20; i++)
{
*dst = *src;
dst += 32;
src += 32;
}
return FALSE;
}
bool8 sub_81051D0(u16 a0, u16 *a1, u8 a2)
{
int i;
u16 *dst = &a1[a2];
for (i = 0; i < 20; i++)
{
*dst = a0;
dst += 32;
}
return FALSE;
}