summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-11-03 19:28:55 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-11-03 19:28:55 -0400
commitf3231493dbb90dbcb5d5653d0a873b38b1a6f2d4 (patch)
tree93a4f9afb626664a4354259b3e9146648a2c8b11
parenta68ed3ec1758533b73078da934e109d12c502691 (diff)
through sub_8113A78
-rw-r--r--asm/quest_log.s92
-rw-r--r--data/quest_log.s6
-rw-r--r--src/quest_log.c196
3 files changed, 180 insertions, 114 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s
index c85a496bc..d273125dc 100644
--- a/asm/quest_log.s
+++ b/asm/quest_log.s
@@ -5,98 +5,6 @@
.text
- thumb_func_start sub_8113A1C
-sub_8113A1C: @ 8113A1C
- push {r4,lr}
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _08113A3C @ =gUnknown_203AE08
- ldr r0, [r4]
- bl sub_8113C5C
- str r0, [r4]
- ldr r1, _08113A40 @ =gUnknown_203AF98
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08113A3C: .4byte gUnknown_203AE08
-_08113A40: .4byte gUnknown_203AF98
- thumb_func_end sub_8113A1C
-
- thumb_func_start sub_8113A44
-sub_8113A44: @ 8113A44
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1F
- bne _08113A6C
- ldrh r0, [r4]
- bl sub_8114FBC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08113A70
- ldrh r0, [r4, 0x2]
- bl sub_8114FBC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08113A70
-_08113A6C:
- movs r0, 0
- b _08113A72
-_08113A70:
- movs r0, 0x1
-_08113A72:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8113A44
-
- thumb_func_start sub_8113A78
-sub_8113A78: @ 8113A78
- push {r4,r5,lr}
- adds r3, r0, 0
- adds r5, r1, 0
- ldrh r1, [r3]
- ldr r0, _08113AAC @ =0x00000fff
- ands r0, r1
- adds r2, r0, 0
- lsrs r4, r1, 12
- cmp r2, 0x21
- bne _08113A8E
- movs r4, 0
-_08113A8E:
- subs r0, r2, 0x3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x27
- bhi _08113AB4
- str r3, [r5]
- ldr r0, _08113AB0 @ =gUnknown_8456AA0
- adds r0, r2, r0
- ldrb r0, [r0]
- subs r1, r0, 0x4
- muls r1, r4
- adds r0, r1
- adds r0, r3, r0
- b _08113AB6
- .align 2, 0
-_08113AAC: .4byte 0x00000fff
-_08113AB0: .4byte gUnknown_8456AA0
-_08113AB4:
- movs r0, 0
-_08113AB6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8113A78
-
thumb_func_start sub_8113ABC
sub_8113ABC: @ 8113ABC
push {lr}
diff --git a/data/quest_log.s b/data/quest_log.s
index 6a0f5449d..f8d02c32a 100644
--- a/data/quest_log.s
+++ b/data/quest_log.s
@@ -1,12 +1,6 @@
.section .rodata
.align 2
-gUnknown_84569F4:: @ 84569F4
- .incbin "baserom.gba", 0x4569F4, 0xAC
-
-gUnknown_8456AA0:: @ 8456AA0
- .incbin "baserom.gba", 0x456AA0, 0x2C
-
gUnknown_8456ACC:: @ 8456ACC
.incbin "baserom.gba", 0x456ACC, 0xC
diff --git a/src/quest_log.c b/src/quest_log.c
index 98bb0b3b1..58006d9ca 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -170,64 +170,104 @@ bool8 sub_81137E4(u16, u16 *);
void * sub_8113828(u16, u16 *);
bool8 sub_81138A0(u16, u16 *);
bool8 sub_8113954(u16, u16 *);
+void sub_8113A1C(u16);
+void sub_811381C(void);
+void sub_81138F8(void);
bool8 sub_8113A44(u16, u16 *);
+void * sub_8113A78(u16 *, void **);
+void sub_8113ABC(void *);
+bool8 sub_8113AE8(void *);
+bool8 sub_8113B44(void *);
+void sub_8113B88(void);
void sub_8113B94(u16);
+void sub_8113BD8(void);
+void * sub_8113BF4(void *);
+void * sub_8113C20(void *, struct UnkStruct_203AE98 *);
+void *sub_8113C5C(void *, u16);
+void * sub_8113C8C(void *, struct UnkStruct_203AE98 *);
+void * sub_8113CC8(void *, struct UnkStruct_203AE98 *);
+void * sub_8113D08(void *, struct UnkStruct_203AE98 *);
+void * sub_8113D48(void *, struct UnkStruct_203AE98 *);
+void * sub_8113D94(void *, struct UnkStruct_203AE98 *);
void *sub_8113F14(void *, void *);
+u16 *sub_8113F3C(u16 *);
void *sub_8113F80(void *, void *);
+u16 *sub_8113FBC(u16 *);
void *sub_8114174(void *, void *);
+u16 *sub_8114188(u16 *);
void *sub_81141D0(void *, void *);
+u16 *sub_81141E4(u16 *);
void *sub_811422C(void *, void *);
+u16 *sub_8114240(u16 *);
void *sub_8114288(void *, void *);
+u16 *sub_811429C(u16 *);
void *sub_8114310(void *, void *);
+u16 *sub_8114324(u16 *);
void *sub_8114380(void *, void *);
+u16 *sub_8114394(u16 *);
void *sub_81143F0(void *, void *);
+u16 *sub_811443C(u16 *);
void *sub_811445C(void *, void *);
+u16 *sub_811448C(u16 *);
void *sub_81144EC(void *, void *);
+u16 *sub_8114518(u16 *);
void *sub_8114578(void *, void *);
+u16 *sub_81145A4(u16 *);
void *sub_8114604(void *, void *);
+u16 *sub_811464C(u16 *);
void *sub_8114710(void *, void *);
+u16 *sub_8114724(u16 *);
void *sub_8114744(void *, void *);
+u16 *sub_8114758(u16 *);
void *sub_8114778(void *, void *);
+u16 *sub_81147A8(u16 *);
void *sub_8114808(void *, void *);
+u16 *sub_8114834(u16 *);
void *sub_811488C(void *, void *);
+u16 *sub_81148BC(u16 *);
void *sub_8114918(void *, void *);
+u16 *sub_8114944(u16 *);
void *sub_8114990(void *, void *);
+u16 *sub_81149D0(u16 *);
void *sub_8114A1C(void *, void *);
+u16 *sub_8114A4C(u16 *);
void *sub_8114AA0(void *, void *);
+u16 *sub_8114AC8(u16 *);
void *sub_8114B0C(void *, void *);
+u16 *sub_8114B34(u16 *);
void *sub_8114B78(void *, void *);
+u16 *sub_8114BA0(u16 *);
void *sub_8114BE4(void *, void *);
+u16 *sub_8114C0C(u16 *);
void *sub_8114C68(void *, void *);
+u16 *sub_8114C8C(u16 *);
void *sub_8114CC0(void *, void *);
+u16 *sub_8114CE4(u16 *);
void *sub_8114D4C(void *, void *);
+u16 *sub_8114D68(u16 *);
void *sub_8114DE8(void *, void *);
+u16 *sub_8114E68(u16 *);
+bool8 sub_8114FBC(u16);
void *sub_8114FF0(void *, void *);
+u16 *sub_811500C(u16 *);
void *sub_8115078(void *, void *);
+u16 *sub_81150CC(u16 *);
void *sub_81151C0(void *, void *);
+u16 *sub_81151DC(u16 *);
void *sub_8115280(void *, void *);
+u16 *sub_81152BC(u16 *);
void *sub_8115410(void *, void *);
+u16 *sub_8115460(u16 *);
void *sub_81154DC(void *, void *);
+u16 *sub_8115518(u16 *);
void *sub_81155A4(void *, void *);
+u16 *sub_81155E0(u16 *);
void *sub_81156D8(void *, void *);
+u16 *sub_8115700(u16 *);
void *sub_81157DC(void *, void *);
+u16 *sub_8115800(u16 *);
bool8 sub_81153A8(u16, void*);
bool8 sub_81153E4(u16, void*);
-void sub_8113A1C(u8);
-void sub_811381C(void);
-void sub_81138F8(void);
-void * sub_8113A78(void *, void **);
-void sub_8113ABC(void *);
-bool8 sub_8113AE8(void *);
-bool8 sub_8113B44(void *);
-void sub_8113B88(void);
-void sub_8113BD8(void);
-void * sub_8113BF4(void *);
-void * sub_8113C20(void *, struct UnkStruct_203AE98 *);
-void * sub_8113C8C(void *, struct UnkStruct_203AE98 *);
-void * sub_8113CC8(void *, struct UnkStruct_203AE98 *);
-void * sub_8113D08(void *, struct UnkStruct_203AE98 *);
-void * sub_8113D48(void *, struct UnkStruct_203AE98 *);
-void * sub_8113D94(void *, struct UnkStruct_203AE98 *);
extern const u8 gUnknown_841A155[];
extern const u8 gUnknown_841B073[];
@@ -3077,3 +3117,127 @@ void sub_81139BC(void)
sub_811231C();
}
}
+
+void sub_8113A1C(u16 a0)
+{
+ gUnknown_203AE08 = sub_8113C5C(gUnknown_203AE08, a0);
+ gUnknown_203AF98++;
+}
+
+bool8 sub_8113A44(u16 a0, u16 *a1)
+{
+ if (a0 != 31)
+ return FALSE;
+
+ if (sub_8114FBC(a1[0]) == TRUE)
+ return TRUE;
+
+ if (sub_8114FBC(a1[1]) == TRUE)
+ return TRUE;
+
+ return FALSE;
+}
+
+u16 * (*const gUnknown_84569F4[])(u16 *) = {
+ NULL,
+ NULL,
+ NULL,
+ sub_8113F3C,
+ sub_8113FBC,
+ sub_8114188,
+ sub_81141E4,
+ sub_8114240,
+ sub_811429C,
+ sub_8114324,
+ sub_8114394,
+ sub_811443C,
+ sub_811448C,
+ sub_8114518,
+ sub_81145A4,
+ sub_811464C,
+ sub_8114724,
+ sub_8114758,
+ sub_81147A8,
+ sub_8114834,
+ sub_81148BC,
+ sub_8114944,
+ sub_81149D0,
+ sub_8114A4C,
+ sub_8114AC8,
+ sub_8114B34,
+ sub_8114BA0,
+ sub_8114C0C,
+ sub_8114C8C,
+ sub_8114CE4,
+ sub_8114D68,
+ sub_8114E68,
+ sub_811500C,
+ sub_81150CC,
+ sub_81151DC,
+ sub_81152BC,
+ sub_8115460,
+ sub_8115518,
+ sub_81155E0,
+ NULL,
+ sub_8115700,
+ NULL,
+ sub_8115800
+};
+
+const u8 gUnknown_8456AA0[] = {
+ 0x08,
+ 0x08,
+ 0x08,
+ 0x08,
+ 0x0a,
+ 0x08,
+ 0x08,
+ 0x08,
+ 0x08,
+ 0x0a,
+ 0x0a,
+ 0x04,
+ 0x10,
+ 0x0c,
+ 0x0c,
+ 0x1a,
+ 0x04,
+ 0x04,
+ 0x10,
+ 0x0c,
+ 0x0a,
+ 0x0a,
+ 0x0a,
+ 0x08,
+ 0x08,
+ 0x08,
+ 0x08,
+ 0x06,
+ 0x06,
+ 0x06,
+ 0x0c,
+ 0x0c,
+ 0x0c,
+ 0x0a,
+ 0x0c,
+ 0x06,
+ 0x08,
+ 0x0e,
+ 0x0e,
+ 0x02,
+ 0x08,
+ 0x04,
+ 0x06
+};
+
+void * sub_8113A78(u16 *a0, void **a1)
+{
+ u16 r2 = *a0 & 0xfff;
+ u16 r4 = *a0 >> 12;
+ if (r2 == 33)
+ r4 = 0;
+ if (r2 < 3 || r2 > 42)
+ return NULL;
+ *a1 = a0;
+ return gUnknown_8456AA0[r2] + (gUnknown_8456AA0[r2] - 4) * r4 + (void *)a0;
+}