through sub_81051D0
This commit is contained in:
@@ -5,371 +5,6 @@
|
||||
|
||||
.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
|
||||
sub_81051F0: @ 81051F0
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -975,6 +975,7 @@ extern const u8 gUnknown_8415DD7[];
|
||||
extern const u8 gUnknown_8415F3D[];
|
||||
extern const u8 gUnknown_8415F4A[];
|
||||
extern const u8 gUnknown_8415F66[];
|
||||
extern const u8 gUnknown_8415F6C[];
|
||||
extern const u8 gUnknown_8415FFF[];
|
||||
extern const u8 gUnknown_8416002[];
|
||||
|
||||
|
||||
+108
-2
@@ -107,7 +107,7 @@ void sub_8104A34(u8 windowId, u8 fontId, u16 species, u8 x, u8 y);
|
||||
u16 sub_8104BBC(u8 caseID, bool8 whichDex);
|
||||
void sub_8104C2C(const u8 *src);
|
||||
void sub_8104E90(void);
|
||||
void sub_8104F0C(u8 a0);
|
||||
bool8 sub_8104F0C(bool8 a0);
|
||||
void sub_8105058(u8 a0);
|
||||
void sub_8105178(u8 a0, u8 a1, u8 a2);
|
||||
bool8 sub_81052D0(u8 a0);
|
||||
@@ -120,6 +120,8 @@ u8 sub_81068A0(u8 a0);
|
||||
void sub_810699C(u8 a0);
|
||||
bool8 sub_8106A20(u16 a0);
|
||||
void sub_81067C0(void);
|
||||
void sub_81068DC(u8 a0, u8 a1);
|
||||
u8 sub_8106AF8(u16 a0);
|
||||
void sub_8106B34(void);
|
||||
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_84403AC[];
|
||||
extern const u16 gUnknown_84404C8[];
|
||||
extern const u16 gUnknown_84406C8[];
|
||||
extern const u16 gUnknown_84406E0[];
|
||||
extern const u16 gUnknown_8440EF0[];
|
||||
extern const u16 gUnknown_8443460[];
|
||||
@@ -154,6 +157,7 @@ extern const struct WindowTemplate gUnknown_84521C4;
|
||||
extern const struct WindowTemplate gUnknown_84521CC;
|
||||
extern const u16 gUnknown_845228C[];
|
||||
extern const u8 (*const gUnknown_8452334[])[4];
|
||||
extern const u8 *const gUnknown_8452344[];
|
||||
extern const struct ScrollArrowsTemplate gUnknown_84524B4;
|
||||
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 *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);
|
||||
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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user