nonmatching sub_8110BE8
This commit is contained in:
-175
@@ -5,181 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_8110BE8
|
|
||||||
sub_8110BE8: @ 8110BE8
|
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r10
|
|
||||||
mov r6, r9
|
|
||||||
mov r5, r8
|
|
||||||
push {r5-r7}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
ldr r4, _08110C54 @ =gSaveBlock1Ptr
|
|
||||||
movs r1, 0xCD
|
|
||||||
lsls r1, 3
|
|
||||||
muls r0, r1
|
|
||||||
movs r1, 0x98
|
|
||||||
lsls r1, 5
|
|
||||||
adds r0, r1
|
|
||||||
ldr r1, [r4]
|
|
||||||
adds r7, r1, r0
|
|
||||||
adds r0, r7, 0
|
|
||||||
bl sub_815A008
|
|
||||||
movs r6, 0
|
|
||||||
mov r9, r4
|
|
||||||
movs r2, 0x8D
|
|
||||||
lsls r2, 3
|
|
||||||
mov r8, r2
|
|
||||||
ldr r3, _08110C58 @ =0x0000046a
|
|
||||||
mov r10, r3
|
|
||||||
_08110C1C:
|
|
||||||
mov r4, r9
|
|
||||||
ldr r1, [r4]
|
|
||||||
lsls r2, r6, 1
|
|
||||||
adds r0, r2, r6
|
|
||||||
lsls r0, 3
|
|
||||||
adds r1, r0
|
|
||||||
ldr r0, _08110C5C @ =0x000008e4
|
|
||||||
adds r1, r0
|
|
||||||
ldrh r4, [r1]
|
|
||||||
movs r3, 0
|
|
||||||
ldrsh r0, [r1, r3]
|
|
||||||
mov r12, r2
|
|
||||||
cmp r0, 0
|
|
||||||
bge _08110C64
|
|
||||||
lsls r3, r6, 2
|
|
||||||
adds r2, r7, r3
|
|
||||||
negs r0, r0
|
|
||||||
mov r4, r8
|
|
||||||
adds r1, r2, r4
|
|
||||||
strb r0, [r1]
|
|
||||||
ldr r0, _08110C60 @ =0x00000469
|
|
||||||
adds r2, r0
|
|
||||||
ldrb r0, [r2]
|
|
||||||
movs r1, 0x1
|
|
||||||
orrs r0, r1
|
|
||||||
strb r0, [r2]
|
|
||||||
b _08110C7C
|
|
||||||
.align 2, 0
|
|
||||||
_08110C54: .4byte gSaveBlock1Ptr
|
|
||||||
_08110C58: .4byte 0x0000046a
|
|
||||||
_08110C5C: .4byte 0x000008e4
|
|
||||||
_08110C60: .4byte 0x00000469
|
|
||||||
_08110C64:
|
|
||||||
lsls r3, r6, 2
|
|
||||||
adds r1, r7, r3
|
|
||||||
mov r2, r8
|
|
||||||
adds r0, r1, r2
|
|
||||||
strb r4, [r0]
|
|
||||||
ldr r4, _08110CBC @ =0x00000469
|
|
||||||
adds r1, r4
|
|
||||||
ldrb r2, [r1]
|
|
||||||
movs r0, 0x2
|
|
||||||
negs r0, r0
|
|
||||||
ands r0, r2
|
|
||||||
strb r0, [r1]
|
|
||||||
_08110C7C:
|
|
||||||
adds r5, r3, 0
|
|
||||||
mov r1, r9
|
|
||||||
ldr r0, [r1]
|
|
||||||
mov r2, r12
|
|
||||||
adds r1, r2, r6
|
|
||||||
lsls r1, 3
|
|
||||||
adds r0, r1
|
|
||||||
ldr r3, _08110CC0 @ =0x000008e6
|
|
||||||
adds r1, r0, r3
|
|
||||||
ldrh r2, [r1]
|
|
||||||
movs r4, 0
|
|
||||||
ldrsh r0, [r1, r4]
|
|
||||||
cmp r0, 0
|
|
||||||
bge _08110CC8
|
|
||||||
adds r3, r7, r5
|
|
||||||
adds r1, r0, 0
|
|
||||||
negs r1, r1
|
|
||||||
lsls r1, 24
|
|
||||||
mov r2, r8
|
|
||||||
adds r4, r3, r2
|
|
||||||
lsrs r1, 15
|
|
||||||
ldr r0, [r4]
|
|
||||||
ldr r2, _08110CC4 @ =0xfffe01ff
|
|
||||||
ands r0, r2
|
|
||||||
orrs r0, r1
|
|
||||||
str r0, [r4]
|
|
||||||
add r3, r10
|
|
||||||
ldrb r0, [r3]
|
|
||||||
movs r1, 0x2
|
|
||||||
orrs r0, r1
|
|
||||||
b _08110CE6
|
|
||||||
.align 2, 0
|
|
||||||
_08110CBC: .4byte 0x00000469
|
|
||||||
_08110CC0: .4byte 0x000008e6
|
|
||||||
_08110CC4: .4byte 0xfffe01ff
|
|
||||||
_08110CC8:
|
|
||||||
adds r3, r7, r5
|
|
||||||
lsls r2, 24
|
|
||||||
mov r0, r8
|
|
||||||
adds r4, r3, r0
|
|
||||||
lsrs r2, 15
|
|
||||||
ldr r0, [r4]
|
|
||||||
ldr r1, _08110D38 @ =0xfffe01ff
|
|
||||||
ands r0, r1
|
|
||||||
orrs r0, r2
|
|
||||||
str r0, [r4]
|
|
||||||
add r3, r10
|
|
||||||
ldrb r1, [r3]
|
|
||||||
movs r0, 0x3
|
|
||||||
negs r0, r0
|
|
||||||
ands r0, r1
|
|
||||||
_08110CE6:
|
|
||||||
strb r0, [r3]
|
|
||||||
adds r5, r7, r5
|
|
||||||
mov r1, r9
|
|
||||||
ldr r0, [r1]
|
|
||||||
mov r2, r12
|
|
||||||
adds r3, r2, r6
|
|
||||||
lsls r3, 3
|
|
||||||
adds r0, r3
|
|
||||||
ldr r4, _08110D3C @ =0x000008e8
|
|
||||||
adds r0, r4
|
|
||||||
ldrb r1, [r0]
|
|
||||||
mov r0, r10
|
|
||||||
adds r4, r5, r0
|
|
||||||
lsls r1, 2
|
|
||||||
ldrb r2, [r4]
|
|
||||||
movs r0, 0x3
|
|
||||||
ands r0, r2
|
|
||||||
orrs r0, r1
|
|
||||||
strb r0, [r4]
|
|
||||||
mov r1, r9
|
|
||||||
ldr r0, [r1]
|
|
||||||
adds r0, r3
|
|
||||||
ldr r2, _08110D40 @ =0x000008e9
|
|
||||||
adds r0, r2
|
|
||||||
ldrb r0, [r0]
|
|
||||||
ldr r3, _08110D44 @ =0x0000046b
|
|
||||||
adds r5, r3
|
|
||||||
strb r0, [r5]
|
|
||||||
adds r0, r6, 0x1
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r6, r0, 16
|
|
||||||
cmp r6, 0x3F
|
|
||||||
bhi _08110D2A
|
|
||||||
b _08110C1C
|
|
||||||
_08110D2A:
|
|
||||||
pop {r3-r5}
|
|
||||||
mov r8, r3
|
|
||||||
mov r9, r4
|
|
||||||
mov r10, r5
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08110D38: .4byte 0xfffe01ff
|
|
||||||
_08110D3C: .4byte 0x000008e8
|
|
||||||
_08110D40: .4byte 0x000008e9
|
|
||||||
_08110D44: .4byte 0x0000046b
|
|
||||||
thumb_func_end sub_8110BE8
|
|
||||||
|
|
||||||
thumb_func_start sub_8110D48
|
thumb_func_start sub_8110D48
|
||||||
sub_8110D48: @ 8110D48
|
sub_8110D48: @ 8110D48
|
||||||
push {r4,r5,lr}
|
push {r4,r5,lr}
|
||||||
|
|||||||
+12
-1
@@ -474,6 +474,16 @@ struct MysteryEventStruct
|
|||||||
u8 unk_1;
|
u8 unk_1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct QuestLogNPCData
|
||||||
|
{
|
||||||
|
u32 x:8;
|
||||||
|
u32 negx:1;
|
||||||
|
u32 y:8;
|
||||||
|
u32 negy:1;
|
||||||
|
u32 elevation:6;
|
||||||
|
u32 movementType:8;
|
||||||
|
};
|
||||||
|
|
||||||
struct QuestLog
|
struct QuestLog
|
||||||
{
|
{
|
||||||
/*0x0000*/ u8 unk_000;
|
/*0x0000*/ u8 unk_000;
|
||||||
@@ -482,7 +492,8 @@ struct QuestLog
|
|||||||
/*0x0003*/ s8 unk_003;
|
/*0x0003*/ s8 unk_003;
|
||||||
/*0x0004*/ s16 unk_004;
|
/*0x0004*/ s16 unk_004;
|
||||||
/*0x0006*/ s16 unk_006;
|
/*0x0006*/ s16 unk_006;
|
||||||
/*0x0008*/ u8 filler_008[0x560];
|
/*0x0008*/ u8 filler_008[0x460];
|
||||||
|
/*0x0468*/ struct QuestLogNPCData npcData[64];
|
||||||
/*0x0568*/ u8 filler_568[0x100];
|
/*0x0568*/ u8 filler_568[0x100];
|
||||||
/*0x0668*/ u8 end[0];
|
/*0x0668*/ u8 end[0];
|
||||||
};
|
};
|
||||||
|
|||||||
+204
-2
@@ -25,6 +25,9 @@ EWRAM_DATA u8 gUnknown_203AE98[0x100] = {0};
|
|||||||
|
|
||||||
void sub_8110A00(void);
|
void sub_8110A00(void);
|
||||||
void sub_8110A3C(void);
|
void sub_8110A3C(void);
|
||||||
|
void sub_8110BB0(u8);
|
||||||
|
void sub_8110BE8(u8);
|
||||||
|
void sub_815A008(struct QuestLog *);
|
||||||
void sub_8110E3C(void);
|
void sub_8110E3C(void);
|
||||||
u8 sub_8110E68(void *);
|
u8 sub_8110E68(void *);
|
||||||
void sub_81118F4(s8);
|
void sub_81118F4(s8);
|
||||||
@@ -33,8 +36,6 @@ void sub_8113B88(void);
|
|||||||
void sub_8113BD8(void);
|
void sub_8113BD8(void);
|
||||||
void sub_81138F8(void);
|
void sub_81138F8(void);
|
||||||
void sub_81115E8(void);
|
void sub_81115E8(void);
|
||||||
void sub_8110BB0(u8);
|
|
||||||
void sub_8110BE8(u8);
|
|
||||||
void sub_8110D94(void);
|
void sub_8110D94(void);
|
||||||
void sub_8110E20(void);
|
void sub_8110E20(void);
|
||||||
void sub_8110D48(u8);
|
void sub_8110D48(u8);
|
||||||
@@ -190,3 +191,204 @@ void sub_8110BB0(u8 a0)
|
|||||||
questLog->unk_004 = gSaveBlock1Ptr->pos.x;
|
questLog->unk_004 = gSaveBlock1Ptr->pos.x;
|
||||||
questLog->unk_006 = gSaveBlock1Ptr->pos.y;
|
questLog->unk_006 = gSaveBlock1Ptr->pos.y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef NONMATCHING
|
||||||
|
void sub_8110BE8(u8 a0)
|
||||||
|
{
|
||||||
|
struct QuestLog * questLog = &gSaveBlock1Ptr->questLog[a0];
|
||||||
|
u16 i; // r6
|
||||||
|
|
||||||
|
sub_815A008(questLog);
|
||||||
|
|
||||||
|
for (i = 0; i < ARRAY_COUNT(gSaveBlock1Ptr->mapObjectTemplates); i++)
|
||||||
|
{
|
||||||
|
if (gSaveBlock1Ptr->mapObjectTemplates[i].x < 0)
|
||||||
|
{
|
||||||
|
questLog->npcData[i].x = (u8)-gSaveBlock1Ptr->mapObjectTemplates[i].x;
|
||||||
|
questLog->npcData[i].negx = TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
questLog->npcData[i].x = (u8)gSaveBlock1Ptr->mapObjectTemplates[i].x;
|
||||||
|
questLog->npcData[i].negx = FALSE;
|
||||||
|
}
|
||||||
|
if (gSaveBlock1Ptr->mapObjectTemplates[i].y < 0)
|
||||||
|
{
|
||||||
|
questLog->npcData[i].y = (u8)-gSaveBlock1Ptr->mapObjectTemplates[i].y;
|
||||||
|
questLog->npcData[i].negy = TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
questLog->npcData[i].y = (u8)gSaveBlock1Ptr->mapObjectTemplates[i].y;
|
||||||
|
questLog->npcData[i].negy = FALSE;
|
||||||
|
}
|
||||||
|
questLog->npcData[i].elevation = gSaveBlock1Ptr->mapObjectTemplates[i].elevation;
|
||||||
|
questLog->npcData[i].movementType = gSaveBlock1Ptr->mapObjectTemplates[i].movementType;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
NAKED
|
||||||
|
void sub_8110BE8(u8 a0)
|
||||||
|
{
|
||||||
|
asm_unified("\tpush {r4-r7,lr}\n"
|
||||||
|
"\tmov r7, r10\n"
|
||||||
|
"\tmov r6, r9\n"
|
||||||
|
"\tmov r5, r8\n"
|
||||||
|
"\tpush {r5-r7}\n"
|
||||||
|
"\tlsls r0, 24\n"
|
||||||
|
"\tlsrs r0, 24\n"
|
||||||
|
"\tldr r4, =gSaveBlock1Ptr\n"
|
||||||
|
"\tmovs r1, 0xCD\n"
|
||||||
|
"\tlsls r1, 3\n"
|
||||||
|
"\tmuls r0, r1\n"
|
||||||
|
"\tmovs r1, 0x98\n"
|
||||||
|
"\tlsls r1, 5\n"
|
||||||
|
"\tadds r0, r1\n"
|
||||||
|
"\tldr r1, [r4]\n"
|
||||||
|
"\tadds r7, r1, r0\n"
|
||||||
|
"\tadds r0, r7, 0\n"
|
||||||
|
"\tbl sub_815A008\n"
|
||||||
|
"\tmovs r6, 0\n"
|
||||||
|
"\tmov r9, r4\n"
|
||||||
|
"\tmovs r2, 0x8D\n"
|
||||||
|
"\tlsls r2, 3\n"
|
||||||
|
"\tmov r8, r2\n"
|
||||||
|
"\tldr r3, =0x0000046a\n"
|
||||||
|
"\tmov r10, r3\n"
|
||||||
|
"_08110C1C:\n"
|
||||||
|
"\tmov r4, r9\n"
|
||||||
|
"\tldr r1, [r4]\n"
|
||||||
|
"\tlsls r2, r6, 1\n"
|
||||||
|
"\tadds r0, r2, r6\n"
|
||||||
|
"\tlsls r0, 3\n"
|
||||||
|
"\tadds r1, r0\n"
|
||||||
|
"\tldr r0, =0x000008e4\n"
|
||||||
|
"\tadds r1, r0\n"
|
||||||
|
"\tldrh r4, [r1]\n"
|
||||||
|
"\tmovs r3, 0\n"
|
||||||
|
"\tldrsh r0, [r1, r3]\n"
|
||||||
|
"\tmov r12, r2\n"
|
||||||
|
"\tcmp r0, 0\n"
|
||||||
|
"\tbge _08110C64\n"
|
||||||
|
"\tlsls r3, r6, 2\n"
|
||||||
|
"\tadds r2, r7, r3\n"
|
||||||
|
"\tnegs r0, r0\n"
|
||||||
|
"\tmov r4, r8\n"
|
||||||
|
"\tadds r1, r2, r4\n"
|
||||||
|
"\tstrb r0, [r1]\n"
|
||||||
|
"\tldr r0, =0x00000469\n"
|
||||||
|
"\tadds r2, r0\n"
|
||||||
|
"\tldrb r0, [r2]\n"
|
||||||
|
"\tmovs r1, 0x1\n"
|
||||||
|
"\torrs r0, r1\n"
|
||||||
|
"\tstrb r0, [r2]\n"
|
||||||
|
"\tb _08110C7C\n"
|
||||||
|
"\t.pool\n"
|
||||||
|
"_08110C64:\n"
|
||||||
|
"\tlsls r3, r6, 2\n"
|
||||||
|
"\tadds r1, r7, r3\n"
|
||||||
|
"\tmov r2, r8\n"
|
||||||
|
"\tadds r0, r1, r2\n"
|
||||||
|
"\tstrb r4, [r0]\n"
|
||||||
|
"\tldr r4, =0x00000469\n"
|
||||||
|
"\tadds r1, r4\n"
|
||||||
|
"\tldrb r2, [r1]\n"
|
||||||
|
"\tmovs r0, 0x2\n"
|
||||||
|
"\tnegs r0, r0\n"
|
||||||
|
"\tands r0, r2\n"
|
||||||
|
"\tstrb r0, [r1]\n"
|
||||||
|
"_08110C7C:\n"
|
||||||
|
"\tadds r5, r3, 0\n"
|
||||||
|
"\tmov r1, r9\n"
|
||||||
|
"\tldr r0, [r1]\n"
|
||||||
|
"\tmov r2, r12\n"
|
||||||
|
"\tadds r1, r2, r6\n"
|
||||||
|
"\tlsls r1, 3\n"
|
||||||
|
"\tadds r0, r1\n"
|
||||||
|
"\tldr r3, =0x000008e6\n"
|
||||||
|
"\tadds r1, r0, r3\n"
|
||||||
|
"\tldrh r2, [r1]\n"
|
||||||
|
"\tmovs r4, 0\n"
|
||||||
|
"\tldrsh r0, [r1, r4]\n"
|
||||||
|
"\tcmp r0, 0\n"
|
||||||
|
"\tbge _08110CC8\n"
|
||||||
|
"\tadds r3, r7, r5\n"
|
||||||
|
"\tadds r1, r0, 0\n"
|
||||||
|
"\tnegs r1, r1\n"
|
||||||
|
"\tlsls r1, 24\n"
|
||||||
|
"\tmov r2, r8\n"
|
||||||
|
"\tadds r4, r3, r2\n"
|
||||||
|
"\tlsrs r1, 15\n"
|
||||||
|
"\tldr r0, [r4]\n"
|
||||||
|
"\tldr r2, =0xfffe01ff\n"
|
||||||
|
"\tands r0, r2\n"
|
||||||
|
"\torrs r0, r1\n"
|
||||||
|
"\tstr r0, [r4]\n"
|
||||||
|
"\tadd r3, r10\n"
|
||||||
|
"\tldrb r0, [r3]\n"
|
||||||
|
"\tmovs r1, 0x2\n"
|
||||||
|
"\torrs r0, r1\n"
|
||||||
|
"\tb _08110CE6\n"
|
||||||
|
"\t.pool\n"
|
||||||
|
"_08110CC8:\n"
|
||||||
|
"\tadds r3, r7, r5\n"
|
||||||
|
"\tlsls r2, 24\n"
|
||||||
|
"\tmov r0, r8\n"
|
||||||
|
"\tadds r4, r3, r0\n"
|
||||||
|
"\tlsrs r2, 15\n"
|
||||||
|
"\tldr r0, [r4]\n"
|
||||||
|
"\tldr r1, =0xfffe01ff\n"
|
||||||
|
"\tands r0, r1\n"
|
||||||
|
"\torrs r0, r2\n"
|
||||||
|
"\tstr r0, [r4]\n"
|
||||||
|
"\tadd r3, r10\n"
|
||||||
|
"\tldrb r1, [r3]\n"
|
||||||
|
"\tmovs r0, 0x3\n"
|
||||||
|
"\tnegs r0, r0\n"
|
||||||
|
"\tands r0, r1\n"
|
||||||
|
"_08110CE6:\n"
|
||||||
|
"\tstrb r0, [r3]\n"
|
||||||
|
"\tadds r5, r7, r5\n"
|
||||||
|
"\tmov r1, r9\n"
|
||||||
|
"\tldr r0, [r1]\n"
|
||||||
|
"\tmov r2, r12\n"
|
||||||
|
"\tadds r3, r2, r6\n"
|
||||||
|
"\tlsls r3, 3\n"
|
||||||
|
"\tadds r0, r3\n"
|
||||||
|
"\tldr r4, =0x000008e8\n"
|
||||||
|
"\tadds r0, r4\n"
|
||||||
|
"\tldrb r1, [r0]\n"
|
||||||
|
"\tmov r0, r10\n"
|
||||||
|
"\tadds r4, r5, r0\n"
|
||||||
|
"\tlsls r1, 2\n"
|
||||||
|
"\tldrb r2, [r4]\n"
|
||||||
|
"\tmovs r0, 0x3\n"
|
||||||
|
"\tands r0, r2\n"
|
||||||
|
"\torrs r0, r1\n"
|
||||||
|
"\tstrb r0, [r4]\n"
|
||||||
|
"\tmov r1, r9\n"
|
||||||
|
"\tldr r0, [r1]\n"
|
||||||
|
"\tadds r0, r3\n"
|
||||||
|
"\tldr r2, =0x000008e9\n"
|
||||||
|
"\tadds r0, r2\n"
|
||||||
|
"\tldrb r0, [r0]\n"
|
||||||
|
"\tldr r3, =0x0000046b\n"
|
||||||
|
"\tadds r5, r3\n"
|
||||||
|
"\tstrb r0, [r5]\n"
|
||||||
|
"\tadds r0, r6, 0x1\n"
|
||||||
|
"\tlsls r0, 16\n"
|
||||||
|
"\tlsrs r6, r0, 16\n"
|
||||||
|
"\tcmp r6, 0x3F\n"
|
||||||
|
"\tbhi _08110D2A\n"
|
||||||
|
"\tb _08110C1C\n"
|
||||||
|
"_08110D2A:\n"
|
||||||
|
"\tpop {r3-r5}\n"
|
||||||
|
"\tmov r8, r3\n"
|
||||||
|
"\tmov r9, r4\n"
|
||||||
|
"\tmov r10, r5\n"
|
||||||
|
"\tpop {r4-r7}\n"
|
||||||
|
"\tpop {r0}\n"
|
||||||
|
"\tbx r0\n"
|
||||||
|
"\t.pool");
|
||||||
|
}
|
||||||
|
#endif // NONMATCHING
|
||||||
|
|||||||
Reference in New Issue
Block a user