through sub_8112EB4

This commit is contained in:
PikalaxALT 2018-10-15 11:30:50 -05:00
parent 1c90805498
commit 3f43d60bc2
3 changed files with 64 additions and 166 deletions

View File

@ -5,163 +5,6 @@
.text
thumb_func_start sub_8112DB0
sub_8112DB0: @ 8112DB0
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
lsls r1, 16
lsrs r3, r1, 16
lsls r2, 16
lsrs r2, 16
mov r12, r2
ldr r0, _08112E20 @ =gUnknown_203AF98
ldrh r1, [r0]
cmp r1, 0
beq _08112E18
ldr r0, _08112E24 @ =gUnknown_3005E8C
ldrh r0, [r0]
cmp r1, r0
bcs _08112E18
ldr r6, _08112E28 @ =gUnknown_203B01E
ldr r1, _08112E2C @ =gUnknown_3002020
ldrh r0, [r6]
ldrh r1, [r1]
cmp r0, r1
bcs _08112E18
adds r2, r0, 0
ldr r5, _08112E30 @ =gUnknown_300201C
ldr r4, [r5]
lsls r2, 2
adds r2, r4
ldr r1, _08112E34 @ =0x00007fff
ands r1, r3
ldrh r3, [r2]
ldr r0, _08112E38 @ =0xffff8000
ands r0, r3
orrs r0, r1
strh r0, [r2]
ldrh r1, [r6]
lsls r1, 2
adds r1, r4
lsls r3, r7, 7
ldrb r2, [r1, 0x1]
movs r0, 0x7F
ands r0, r2
orrs r0, r3
strb r0, [r1, 0x1]
ldrh r0, [r6]
ldr r1, [r5]
lsls r0, 2
adds r0, r1
mov r1, r12
strh r1, [r0, 0x2]
ldrh r0, [r6]
adds r0, 0x1
strh r0, [r6]
_08112E18:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08112E20: .4byte gUnknown_203AF98
_08112E24: .4byte gUnknown_3005E8C
_08112E28: .4byte gUnknown_203B01E
_08112E2C: .4byte gUnknown_3002020
_08112E30: .4byte gUnknown_300201C
_08112E34: .4byte 0x00007fff
_08112E38: .4byte 0xffff8000
thumb_func_end sub_8112DB0
thumb_func_start sub_8112E3C
sub_8112E3C: @ 8112E3C
push {r4,r5,lr}
lsls r0, 24
lsls r2, 16
lsrs r3, r0, 24
movs r4, 0xFF
lsls r4, 24
adds r0, r4
lsrs r0, 24
cmp r0, 0x1
bls _08112E5C
ldr r1, _08112E58 @ =gUnknown_3005E88
movs r0, 0
strb r0, [r1]
b _08112E8E
.align 2, 0
_08112E58: .4byte gUnknown_3005E88
_08112E5C:
ldr r5, _08112E94 @ =gUnknown_300201C
str r1, [r5]
ldr r1, _08112E98 @ =gUnknown_3002020
lsrs r0, r2, 18
strh r0, [r1]
ldr r1, _08112E9C @ =gUnknown_203B01E
movs r0, 0
strh r0, [r1]
cmp r3, 0x2
bne _08112E8E
movs r2, 0
ldr r4, _08112EA0 @ =gUnknown_3005E8C
ldrh r0, [r4]
cmp r2, r0
bge _08112E8E
ldr r0, _08112EA4 @ =gUnknown_84566A4
ldr r3, [r0]
_08112E7E:
ldr r1, [r5]
lsls r0, r2, 2
adds r0, r1
str r3, [r0]
adds r2, 0x1
ldrh r0, [r4]
cmp r2, r0
blt _08112E7E
_08112E8E:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08112E94: .4byte gUnknown_300201C
_08112E98: .4byte gUnknown_3002020
_08112E9C: .4byte gUnknown_203B01E
_08112EA0: .4byte gUnknown_3005E8C
_08112EA4: .4byte gUnknown_84566A4
thumb_func_end sub_8112E3C
thumb_func_start sub_8112EA8
sub_8112EA8: @ 8112EA8
ldr r1, _08112EB0 @ =gUnknown_203B020
movs r0, 0xFF
strb r0, [r1]
bx lr
.align 2, 0
_08112EB0: .4byte gUnknown_203B020
thumb_func_end sub_8112EA8
thumb_func_start sub_8112EB4
sub_8112EB4: @ 8112EB4
push {r4,lr}
ldr r4, _08112ED4 @ =gUnknown_203B020
ldrb r0, [r4]
cmp r0, 0xFF
bne _08112ECC
ldr r0, _08112ED8 @ =gUnknown_8456928
bl AddWindow
strb r0, [r4]
ldrb r0, [r4]
bl PutWindowTilemap
_08112ECC:
ldrb r0, [r4]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08112ED4: .4byte gUnknown_203B020
_08112ED8: .4byte gUnknown_8456928
thumb_func_end sub_8112EB4
thumb_func_start sub_8112EDC
sub_8112EDC: @ 8112EDC
push {r4,r5,lr}

View File

@ -1,14 +1,6 @@
.section .rodata
gUnknown_84566A4:: @ 84566A4
.incbin "baserom.gba", 0x4566A4, 0x4
gUnknown_84566A8:: @ 84566A8
.incbin "baserom.gba", 0x4566A8, 0x280
gUnknown_8456928:: @ 8456928
.incbin "baserom.gba", 0x456928, 0x8
.align 2
gUnknown_8456930:: @ 8456930
.incbin "baserom.gba", 0x456930, 0x4

View File

@ -84,6 +84,7 @@ EWRAM_DATA u8 gUnknown_203AF9A[64][2];
EWRAM_DATA u16 gUnknown_203B01A;
EWRAM_DATA u16 gUnknown_203B01C;
EWRAM_DATA u16 gUnknown_203B01E;
EWRAM_DATA u8 gUnknown_203B020;
EWRAM_DATA u16 gUnknown_203B044[2] = {0};
@ -1979,6 +1980,12 @@ bool8 sub_8112D1C(void)
return FALSE;
}
const struct UnkStruct_300201C gUnknown_84566A4 = {
0,
FALSE,
0x7FFF
};
u16 * sub_8112D40(u8 a0, u16 a1)
{
u16 * response;
@ -1997,3 +2004,59 @@ u16 * sub_8112D40(u8 a0, u16 a1)
response = NULL;
return response;
}
void sub_8112DB0(u8 a0, u16 a1, u16 a2)
{
if (gUnknown_203AF98 == 0)
return;
if (gUnknown_203AF98 >= gUnknown_3005E8C)
return;
if (gUnknown_203B01E >= gUnknown_3002020)
return;
gUnknown_300201C[gUnknown_203B01E].unk_0_0 = a1;
gUnknown_300201C[gUnknown_203B01E].unk_0_f = a0;
gUnknown_300201C[gUnknown_203B01E].unk_2 = a2;
gUnknown_203B01E++;
}
void sub_8112E3C(u8 a0, struct UnkStruct_300201C * a1, u16 a2)
{
s32 i;
if (a0 == 0 || a0 > 2)
gUnknown_3005E88 = 0;
else
{
gUnknown_300201C = a1;
gUnknown_3002020 = a2 >> 2;
gUnknown_203B01E = 0;
if (a0 == 2)
{
for (i = 0; i < gUnknown_3005E8C; i++)
{
gUnknown_300201C[i] = gUnknown_84566A4;
}
}
}
}
const u16 gUnknown_84566A8[] = INCBIN_U16("data/graphics/unknown_84566a8.bin");
const struct WindowTemplate gUnknown_8456928 = {
0x00, 0, 15, 30, 5, 15, 0x008F
};
void sub_8112EA8(void)
{
gUnknown_203B020 = 0xFF;
}
u8 sub_8112EB4(void)
{
if (gUnknown_203B020 == 0xFF)
{
gUnknown_203B020 = AddWindow(&gUnknown_8456928);
PutWindowTilemap(gUnknown_203B020);
}
return gUnknown_203B020;
}