summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-10-15 05:41:11 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-10-15 05:41:11 -0400
commitf12a82b068bb5871bc8ee9fd4146baa89799e645 (patch)
treeb9bb91b13334317b0eae3352d69a3f5feadfc05c
parentddb2440809e0f222175c43045fc0d450cf7c0938 (diff)
nonmatching sub_8112B3C
-rw-r--r--asm/quest_log.s184
-rw-r--r--src/quest_log.c259
2 files changed, 257 insertions, 186 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s
index e4947d79c..2bfc14dd1 100644
--- a/asm/quest_log.s
+++ b/asm/quest_log.s
@@ -5,190 +5,6 @@
.text
- thumb_func_start sub_8112B3C
-sub_8112B3C: @ 8112B3C
- push {r4-r7,lr}
- ldr r0, _08112B54 @ =gUnknown_3005E88
- ldrb r0, [r0]
- cmp r0, 0x4
- bls _08112B48
- b _08112C84
-_08112B48:
- lsls r0, 2
- ldr r1, _08112B58 @ =_08112B5C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08112B54: .4byte gUnknown_3005E88
-_08112B58: .4byte _08112B5C
- .align 2, 0
-_08112B5C:
- .4byte _08112C84
- .4byte _08112B70
- .4byte _08112C5E
- .4byte _08112C84
- .4byte _08112C84
-_08112B70:
- bl sub_8112CEC
- lsls r0, 24
- cmp r0, 0
- beq _08112B7C
- b _08112C72
-_08112B7C:
- ldr r0, _08112B8C @ =gUnknown_203B01A
- ldrh r1, [r0]
- adds r7, r0, 0
- cmp r1, 0
- beq _08112B90
- subs r0, r1, 0x1
- strh r0, [r7]
- b _08112C84
- .align 2, 0
-_08112B8C: .4byte gUnknown_203B01A
-_08112B90:
- ldr r5, _08112B98 @ =gUnknown_3005E88
- ldr r4, _08112B9C @ =gUnknown_203AF98
- ldr r6, _08112BA0 @ =gUnknown_3005E94
- b _08112BD4
- .align 2, 0
-_08112B98: .4byte gUnknown_3005E88
-_08112B9C: .4byte gUnknown_203AF98
-_08112BA0: .4byte gUnknown_3005E94
-_08112BA4:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- ldr r1, _08112BF0 @ =gUnknown_3005E8C
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r1]
- cmp r0, r1
- bcs _08112C58
- ldrh r0, [r4]
- ldr r1, [r6]
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x4]
- strh r0, [r7]
- cmp r2, 0x3
- beq _08112C84
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _08112BD4
- ldr r0, _08112BF4 @ =0x0000ffff
- cmp r1, r0
- bne _08112C84
-_08112BD4:
- ldrh r0, [r4]
- ldr r1, [r6]
- lsls r0, 3
- adds r3, r0, r1
- ldrb r0, [r3, 0x6]
- cmp r0, 0x2
- beq _08112C2C
- cmp r0, 0x2
- bgt _08112BF8
- cmp r0, 0
- beq _08112C0C
- cmp r0, 0x1
- beq _08112C18
- b _08112C50
- .align 2, 0
-_08112BF0: .4byte gUnknown_3005E8C
-_08112BF4: .4byte 0x0000ffff
-_08112BF8:
- cmp r0, 0xFE
- beq _08112C50
- cmp r0, 0xFE
- bgt _08112C06
- cmp r0, 0x3
- beq _08112C4E
- b _08112C50
-_08112C06:
- cmp r0, 0xFF
- beq _08112C4C
- b _08112C50
-_08112C0C:
- ldr r0, _08112C14 @ =gUnknown_203AF9A
- ldrb r1, [r3]
- lsls r1, 1
- b _08112C20
- .align 2, 0
-_08112C14: .4byte gUnknown_203AF9A
-_08112C18:
- ldr r0, _08112C28 @ =gUnknown_203AF9A
- ldrb r1, [r3]
- lsls r1, 1
- adds r0, 0x1
-_08112C20:
- adds r1, r0
- ldrb r0, [r3, 0x3]
- strb r0, [r1]
- b _08112C50
- .align 2, 0
-_08112C28: .4byte gUnknown_203AF9A
-_08112C2C:
- ldr r2, _08112C48 @ =gUnknown_3005E90
- ldrb r1, [r3, 0x3]
- lsls r1, 24
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3]
- orrs r1, r0
- str r1, [r2]
- b _08112C50
- .align 2, 0
-_08112C48: .4byte gUnknown_3005E90
-_08112C4C:
- movs r0, 0
-_08112C4E:
- strb r0, [r5]
-_08112C50:
- ldrb r2, [r5]
- cmp r2, 0
- bne _08112BA4
- b _08112C84
-_08112C58:
- movs r0, 0
- strb r0, [r5]
- b _08112C84
-_08112C5E:
- bl ScriptContext2_IsEnabled
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08112C84
- ldr r1, _08112C8C @ =gUnknown_203B01A
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_08112C72:
- ldr r0, _08112C90 @ =gUnknown_203AF98
- ldr r1, _08112C94 @ =gUnknown_3005E8C
- ldrh r0, [r0]
- ldrh r1, [r1]
- cmp r0, r1
- bcc _08112C84
- ldr r1, _08112C98 @ =gUnknown_3005E88
- movs r0, 0
- strb r0, [r1]
-_08112C84:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08112C8C: .4byte gUnknown_203B01A
-_08112C90: .4byte gUnknown_203AF98
-_08112C94: .4byte gUnknown_3005E8C
-_08112C98: .4byte gUnknown_3005E88
- thumb_func_end sub_8112B3C
-
thumb_func_start sub_8112C9C
sub_8112C9C: @ 8112C9C
ldr r1, _08112CA8 @ =gUnknown_203B01A
diff --git a/src/quest_log.c b/src/quest_log.c
index 49e0db836..61b1e66d6 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -1550,11 +1550,11 @@ void sub_811278C(u8 a0, u8 a1)
}
}
-void sub_81127F8(u32 * a0)
+void sub_81127F8(struct UnkStruct_3005E90 * a0)
{
if (gUnknown_203AF98 < gUnknown_3005E8C)
{
- u32 r2 = *a0 & 0x00FF00F3;
+ u32 r2 = *(u32 *)a0 & 0x00FF00F3;
gUnknown_3005E94[gUnknown_203AF98].unk_4 = gUnknown_203B01A;
gUnknown_3005E94[gUnknown_203AF98].unk_6 = 2;
gUnknown_3005E94[gUnknown_203AF98].unk_0 = r2;
@@ -1677,3 +1677,258 @@ void sub_8112940(u8 a0, struct UnkStruct_203AE98 *a1, u16 a2)
break;
}
}
+
+#ifdef NONMATCHING
+void sub_8112B3C(void)
+{
+ switch (gUnknown_3005E88)
+ {
+ case 0:
+ break;
+ case 1:
+ if (sub_8112CEC())
+ {
+ if (gUnknown_203B01A != 0)
+ gUnknown_203B01A--;
+ else
+ {
+ while (1)
+ {
+ switch (gUnknown_3005E94[gUnknown_203AF98].unk_6)
+ {
+ case 0:
+ gUnknown_203AF9A[gUnknown_3005E94[gUnknown_203AF98].unk_0][0] = gUnknown_3005E94[gUnknown_203AF98].unk_3;
+ break;
+ case 1:
+ gUnknown_203AF9A[gUnknown_3005E94[gUnknown_203AF98].unk_0][1] = gUnknown_3005E94[gUnknown_203AF98].unk_3;
+ break;
+ case 2:
+ *(u32 *)&gUnknown_3005E90 = ((gUnknown_3005E94[gUnknown_203AF98].unk_3 << 24) | (gUnknown_3005E94[gUnknown_203AF98].unk_2 << 16) | (gUnknown_3005E94[gUnknown_203AF98].unk_1 << 8) | (gUnknown_3005E94[gUnknown_203AF98].unk_0 << 0));
+ break;
+ case 3:
+ gUnknown_3005E88 = 3;
+ break;
+ case 0xFE:
+ break;
+ case 0xFF:
+ gUnknown_3005E88 = 0;
+ break;
+ }
+ if (gUnknown_3005E88 == 0)
+ break;
+ if (++gUnknown_203AF98 >= gUnknown_3005E8C)
+ {
+ gUnknown_3005E88 = 0;
+ break;
+ }
+ gUnknown_203B01A = gUnknown_3005E94[gUnknown_203AF98].unk_4;
+ if (gUnknown_3005E88 == 3)
+ break;
+ if (gUnknown_203B01A == 0)
+ continue;
+ if (gUnknown_203B01A == 0xFFFF)
+ break;
+ }
+ }
+ }
+ else if (gUnknown_203AF98 >= gUnknown_3005E8C)
+ gUnknown_3005E88 = 0;
+ break;
+ case 2:
+ if (ScriptContext2_IsEnabled() != 1)
+ gUnknown_203B01A++;
+ if (gUnknown_203AF98 >= gUnknown_3005E8C)
+ gUnknown_3005E88 = 0;
+ break;
+ case 3:
+ break;
+ case 4:
+ break;
+ }
+}
+#else
+NAKED
+void sub_8112B3C(void)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tldr r0, _08112B54 @ =gUnknown_3005E88\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r0, 0x4\n"
+ "\tbls _08112B48\n"
+ "\tb _08112C84\n"
+ "_08112B48:\n"
+ "\tlsls r0, 2\n"
+ "\tldr r1, _08112B58 @ =_08112B5C\n"
+ "\tadds r0, r1\n"
+ "\tldr r0, [r0]\n"
+ "\tmov pc, r0\n"
+ "\t.align 2, 0\n"
+ "_08112B54: .4byte gUnknown_3005E88\n"
+ "_08112B58: .4byte _08112B5C\n"
+ "\t.align 2, 0\n"
+ "_08112B5C:\n"
+ "\t.4byte _08112C84\n"
+ "\t.4byte _08112B70\n"
+ "\t.4byte _08112C5E\n"
+ "\t.4byte _08112C84\n"
+ "\t.4byte _08112C84\n"
+ "_08112B70:\n"
+ "\tbl sub_8112CEC\n"
+ "\tlsls r0, 24\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _08112B7C\n"
+ "\tb _08112C72\n"
+ "_08112B7C:\n"
+ "\tldr r0, _08112B8C @ =gUnknown_203B01A\n"
+ "\tldrh r1, [r0]\n"
+ "\tadds r7, r0, 0\n"
+ "\tcmp r1, 0\n"
+ "\tbeq _08112B90\n"
+ "\tsubs r0, r1, 0x1\n"
+ "\tstrh r0, [r7]\n"
+ "\tb _08112C84\n"
+ "\t.align 2, 0\n"
+ "_08112B8C: .4byte gUnknown_203B01A\n"
+ "_08112B90:\n"
+ "\tldr r5, _08112B98 @ =gUnknown_3005E88\n"
+ "\tldr r4, _08112B9C @ =gUnknown_203AF98\n"
+ "\tldr r6, _08112BA0 @ =gUnknown_3005E94\n"
+ "\tb _08112BD4\n"
+ "\t.align 2, 0\n"
+ "_08112B98: .4byte gUnknown_3005E88\n"
+ "_08112B9C: .4byte gUnknown_203AF98\n"
+ "_08112BA0: .4byte gUnknown_3005E94\n"
+ "_08112BA4:\n"
+ "\tldrh r0, [r4]\n"
+ "\tadds r0, 0x1\n"
+ "\tstrh r0, [r4]\n"
+ "\tldr r1, _08112BF0 @ =gUnknown_3005E8C\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tldrh r1, [r1]\n"
+ "\tcmp r0, r1\n"
+ "\tbcs _08112C58\n"
+ "\tldrh r0, [r4]\n"
+ "\tldr r1, [r6]\n"
+ "\tlsls r0, 3\n"
+ "\tadds r0, r1\n"
+ "\tldrh r0, [r0, 0x4]\n"
+ "\tstrh r0, [r7]\n"
+ "\tcmp r2, 0x3\n"
+ "\tbeq _08112C84\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r1, r0, 16\n"
+ "\tcmp r1, 0\n"
+ "\tbeq _08112BD4\n"
+ "\tldr r0, _08112BF4 @ =0x0000ffff\n"
+ "\tcmp r1, r0\n"
+ "\tbne _08112C84\n"
+ "_08112BD4:\n"
+ "\tldrh r0, [r4]\n"
+ "\tldr r1, [r6]\n"
+ "\tlsls r0, 3\n"
+ "\tadds r3, r0, r1\n"
+ "\tldrb r0, [r3, 0x6]\n"
+ "\tcmp r0, 0x2\n"
+ "\tbeq _08112C2C\n"
+ "\tcmp r0, 0x2\n"
+ "\tbgt _08112BF8\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _08112C0C\n"
+ "\tcmp r0, 0x1\n"
+ "\tbeq _08112C18\n"
+ "\tb _08112C50\n"
+ "\t.align 2, 0\n"
+ "_08112BF0: .4byte gUnknown_3005E8C\n"
+ "_08112BF4: .4byte 0x0000ffff\n"
+ "_08112BF8:\n"
+ "\tcmp r0, 0xFE\n"
+ "\tbeq _08112C50\n"
+ "\tcmp r0, 0xFE\n"
+ "\tbgt _08112C06\n"
+ "\tcmp r0, 0x3\n"
+ "\tbeq _08112C4E\n"
+ "\tb _08112C50\n"
+ "_08112C06:\n"
+ "\tcmp r0, 0xFF\n"
+ "\tbeq _08112C4C\n"
+ "\tb _08112C50\n"
+ "_08112C0C:\n"
+ "\tldr r0, _08112C14 @ =gUnknown_203AF9A\n"
+ "\tldrb r1, [r3]\n"
+ "\tlsls r1, 1\n"
+ "\tb _08112C20\n"
+ "\t.align 2, 0\n"
+ "_08112C14: .4byte gUnknown_203AF9A\n"
+ "_08112C18:\n"
+ "\tldr r0, _08112C28 @ =gUnknown_203AF9A\n"
+ "\tldrb r1, [r3]\n"
+ "\tlsls r1, 1\n"
+ "\tadds r0, 0x1\n"
+ "_08112C20:\n"
+ "\tadds r1, r0\n"
+ "\tldrb r0, [r3, 0x3]\n"
+ "\tstrb r0, [r1]\n"
+ "\tb _08112C50\n"
+ "\t.align 2, 0\n"
+ "_08112C28: .4byte gUnknown_203AF9A\n"
+ "_08112C2C:\n"
+ "\tldr r2, _08112C48 @ =gUnknown_3005E90\n"
+ "\tldrb r1, [r3, 0x3]\n"
+ "\tlsls r1, 24\n"
+ "\tldrb r0, [r3, 0x2]\n"
+ "\tlsls r0, 16\n"
+ "\torrs r1, r0\n"
+ "\tldrb r0, [r3, 0x1]\n"
+ "\tlsls r0, 8\n"
+ "\torrs r1, r0\n"
+ "\tldrb r0, [r3]\n"
+ "\torrs r1, r0\n"
+ "\tstr r1, [r2]\n"
+ "\tb _08112C50\n"
+ "\t.align 2, 0\n"
+ "_08112C48: .4byte gUnknown_3005E90\n"
+ "_08112C4C:\n"
+ "\tmovs r0, 0\n"
+ "_08112C4E:\n"
+ "\tstrb r0, [r5]\n"
+ "_08112C50:\n"
+ "\tldrb r2, [r5]\n"
+ "\tcmp r2, 0\n"
+ "\tbne _08112BA4\n"
+ "\tb _08112C84\n"
+ "_08112C58:\n"
+ "\tmovs r0, 0\n"
+ "\tstrb r0, [r5]\n"
+ "\tb _08112C84\n"
+ "_08112C5E:\n"
+ "\tbl ScriptContext2_IsEnabled\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tcmp r0, 0x1\n"
+ "\tbeq _08112C84\n"
+ "\tldr r1, _08112C8C @ =gUnknown_203B01A\n"
+ "\tldrh r0, [r1]\n"
+ "\tadds r0, 0x1\n"
+ "\tstrh r0, [r1]\n"
+ "_08112C72:\n"
+ "\tldr r0, _08112C90 @ =gUnknown_203AF98\n"
+ "\tldr r1, _08112C94 @ =gUnknown_3005E8C\n"
+ "\tldrh r0, [r0]\n"
+ "\tldrh r1, [r1]\n"
+ "\tcmp r0, r1\n"
+ "\tbcc _08112C84\n"
+ "\tldr r1, _08112C98 @ =gUnknown_3005E88\n"
+ "\tmovs r0, 0\n"
+ "\tstrb r0, [r1]\n"
+ "_08112C84:\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.align 2, 0\n"
+ "_08112C8C: .4byte gUnknown_203B01A\n"
+ "_08112C90: .4byte gUnknown_203AF98\n"
+ "_08112C94: .4byte gUnknown_3005E8C\n"
+ "_08112C98: .4byte gUnknown_3005E88");
+}
+#endif