summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/quest_log.s131
-rw-r--r--src/quest_log.c70
-rw-r--r--sym_ewram.txt72
3 files changed, 62 insertions, 211 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s
index fe46a9da6..c85a496bc 100644
--- a/asm/quest_log.s
+++ b/asm/quest_log.s
@@ -5,137 +5,6 @@
.text
- thumb_func_start sub_811390C
-sub_811390C: @ 811390C
- push {r4,r5,lr}
- ldr r5, _08113944 @ =gUnknown_203B024
- ldrh r0, [r5]
- cmp r0, 0
- beq _0811393C
- ldr r1, _08113948 @ =gUnknown_203B04A
- movs r0, 0
- strb r0, [r1]
- ldrh r0, [r5]
- bl sub_8110AEC
- ldr r0, _0811394C @ =gUnknown_8456948
- ldrh r2, [r5]
- lsls r2, 2
- adds r2, r0
- ldr r4, _08113950 @ =gUnknown_203AE08
- ldr r0, [r4]
- adds r1, r5, 0x4
- ldr r2, [r2]
- bl _call_via_r2
- str r0, [r4]
- bl sub_81138F8
-_0811393C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08113944: .4byte gUnknown_203B024
-_08113948: .4byte gUnknown_203B04A
-_0811394C: .4byte gUnknown_8456948
-_08113950: .4byte gUnknown_203AE08
- thumb_func_end sub_811390C
-
- thumb_func_start sub_8113954
-sub_8113954: @ 8113954
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x22
- beq _08113970
- cmp r4, 0x1E
- beq _08113970
- cmp r4, 0x20
- beq _08113970
- cmp r4, 0x21
- beq _08113970
- movs r0, 0
- b _081139A8
-_08113970:
- bl sub_81138F8
- ldr r0, _081139B0 @ =gUnknown_3005E88
- ldrb r0, [r0]
- cmp r0, 0
- bne _08113998
- ldr r0, _081139B4 @ =0x0000082c
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _08113998
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_81137E4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081139A6
-_08113998:
- ldr r0, _081139B8 @ =gUnknown_203B024
- strh r4, [r0]
- adds r0, 0x4
- adds r1, r5, 0
- movs r2, 0x8
- bl memcpy
-_081139A6:
- movs r0, 0x1
-_081139A8:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_081139B0: .4byte gUnknown_3005E88
-_081139B4: .4byte 0x0000082c
-_081139B8: .4byte gUnknown_203B024
- thumb_func_end sub_8113954
-
- thumb_func_start sub_81139BC
-sub_81139BC: @ 81139BC
- push {r4,r5,lr}
- ldr r5, _08113A08 @ =gUnknown_203B024
- ldrh r0, [r5]
- cmp r0, 0
- beq _08113A02
- ldr r0, _08113A0C @ =gUnknown_3005E88
- ldrb r1, [r0]
- cmp r1, 0
- bne _081139D8
- ldr r0, _08113A10 @ =gUnknown_203B04A
- strb r1, [r0]
- ldrh r0, [r5]
- bl sub_8110AEC
-_081139D8:
- ldrh r0, [r5]
- bl sub_8113B94
- ldr r0, _08113A14 @ =gUnknown_8456948
- ldrh r2, [r5]
- lsls r2, 2
- adds r2, r0
- ldr r4, _08113A18 @ =gUnknown_203AE08
- ldr r0, [r4]
- adds r1, r5, 0x4
- ldr r2, [r2]
- bl _call_via_r2
- str r0, [r4]
- movs r0, 0x1
- bl sub_8113A1C
- bl sub_81138F8
- bl sub_811231C
-_08113A02:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08113A08: .4byte gUnknown_203B024
-_08113A0C: .4byte gUnknown_3005E88
-_08113A10: .4byte gUnknown_203B04A
-_08113A14: .4byte gUnknown_8456948
-_08113A18: .4byte gUnknown_203AE08
- thumb_func_end sub_81139BC
-
thumb_func_start sub_8113A1C
sub_8113A1C: @ 8113A1C
push {r4,lr}
diff --git a/src/quest_log.c b/src/quest_log.c
index 9cdd17816..98bb0b3b1 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -72,6 +72,12 @@ struct UnkStruct_300201C
u16 unk_2;
};
+struct UnkStruct_203B024
+{
+ u16 unk_00;
+ u32 unk_04[7];
+};
+
u8 gUnknown_3005E88;
u16 gUnknown_3005E8C;
struct UnkStruct_3005E90 gUnknown_3005E90;
@@ -84,11 +90,11 @@ EWRAM_DATA u8 gUnknown_203ADF8 = 0;
EWRAM_DATA u8 gUnknown_203ADF9 = 0;
EWRAM_DATA u8 gUnknown_203ADFA = 0;
EWRAM_DATA u16 gUnknown_203ADFC = 0;
-EWRAM_DATA u8 gUnknown_203ADFE[3];
+EWRAM_DATA u8 gUnknown_203ADFE[3] = {0};
EWRAM_DATA void * gUnknown_203AE04 = NULL;
EWRAM_DATA u16 * gUnknown_203AE08 = NULL;
EWRAM_DATA void * gUnknown_203AE0C[32] = {NULL};
-EWRAM_DATA void (* gUnknown_203AE8C)(void) = 0;
+EWRAM_DATA void (* gUnknown_203AE8C)(void) = NULL;
EWRAM_DATA u16 *gUnknown_203AE90 = NULL;
EWRAM_DATA struct UnkStruct_203AE94 gUnknown_203AE94 = {0};
EWRAM_DATA struct UnkStruct_203AE98 gUnknown_203AE98[32] = {0};
@@ -98,11 +104,12 @@ EWRAM_DATA u16 gUnknown_203B01A = 0;
EWRAM_DATA u16 gUnknown_203B01C = 0;
EWRAM_DATA u16 gUnknown_203B01E = 0;
EWRAM_DATA u8 gUnknown_203B020 = 0;
-
-EWRAM_DATA ALIGNED(2) u16 gUnknown_203B024[16] = {0};
-
+EWRAM_DATA struct UnkStruct_203B024 gUnknown_203B024 = {0};
EWRAM_DATA u16 gUnknown_203B044[2] = {0};
EWRAM_DATA u8 gUnknown_203B048 = 0;
+EWRAM_DATA u8 gUnknown_203B049 = 0;
+EWRAM_DATA u8 gUnknown_203B04A = 0;
+EWRAM_DATA u8 gUnknown_203B04B = 0;
void sub_8110A00(void);
void sub_8110A3C(void);
@@ -3009,19 +3016,64 @@ bool8 sub_81138A0(u16 a0, u16 * a1)
return FALSE;
sub_81138F8();
- gUnknown_203B024[0] = a0;
+ gUnknown_203B024.unk_00 = a0;
if (a0 < 16 || a0 > 17)
{
if (a0 == 12 || a0 == 18)
- memcpy(gUnknown_203B024 + 2, a1, 12);
+ memcpy(gUnknown_203B024.unk_04, a1, 12);
else
- memcpy(gUnknown_203B024 + 2, a1, 24);
+ memcpy(gUnknown_203B024.unk_04, a1, 24);
}
return TRUE;
}
void sub_81138F8(void)
{
- memset(gUnknown_203B024, 0, sizeof(gUnknown_203B024));
+ gUnknown_203B024 = (struct UnkStruct_203B024){};
+}
+
+void sub_811390C(void)
+{
+ if (gUnknown_203B024.unk_00 != 0)
+ {
+ void * resp;
+ gUnknown_203B04A = 0;
+ sub_8110AEC(gUnknown_203B024.unk_00);
+ resp = gUnknown_8456948[gUnknown_203B024.unk_00](gUnknown_203AE08, gUnknown_203B024.unk_04);
+ gUnknown_203AE08 = resp;
+ sub_81138F8();
+ }
+}
+
+bool8 sub_8113954(u16 a0, u16 * a1)
+{
+ if (a0 != 34 && a0 != 30 && a0 != 32 && a0 != 33)
+ return FALSE;
+ sub_81138F8();
+ if (gUnknown_3005E88 || FlagGet(0x82C) || sub_81137E4(a0, a1) != TRUE)
+ {
+ gUnknown_203B024.unk_00 = a0;
+ memcpy(gUnknown_203B024.unk_04, a1, 8);
+ }
+ return TRUE;
+}
+
+void sub_81139BC(void)
+{
+ if (gUnknown_203B024.unk_00 != 0)
+ {
+ void * resp;
+ if (gUnknown_3005E88 == 0)
+ {
+ gUnknown_203B04A = 0;
+ sub_8110AEC(gUnknown_203B024.unk_00);
+ }
+ sub_8113B94(gUnknown_203B024.unk_00);
+ resp = gUnknown_8456948[gUnknown_203B024.unk_00](gUnknown_203AE08, gUnknown_203B024.unk_04);
+ gUnknown_203AE08 = resp;
+ sub_8113A1C(1);
+ sub_81138F8();
+ sub_811231C();
+ }
}
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 7aa860fdd..2e0123d6f 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -1457,77 +1457,7 @@ gUnknown_203ADF3: @ 203ADF3
gUnknown_203ADF4: @ 203ADF4
.space 0x4
-gUnknown_203ADF8: @ 203ADF8
- .space 0x1
-
-gUnknown_203ADF9: @ 203ADF9
- .space 0x1
-
-gUnknown_203ADFA: @ 203ADFA
- .space 0x2
-
-gUnknown_203ADFC: @ 203ADFC
- .space 0x2
-
-gUnknown_203ADFE: @ 203ADFE
- .space 0x6
-
-gUnknown_203AE04: @ 203AE04
- .space 0x4
-
-gUnknown_203AE08: @ 203AE08
- .space 0x4
-
-gUnknown_203AE0C: @ 203AE0C
- .space 0x80
-
-gUnknown_203AE8C: @ 203AE8C
- .space 0x4
-
-gUnknown_203AE90: @ 203AE90
- .space 0x4
-
-gUnknown_203AE94: @ 203AE94
- .space 0x4
-
-gUnknown_203AE98: @ 203AE98
- .space 0x100
-
-gUnknown_203AF98: @ 203AF98
- .space 0x2
-
-gUnknown_203AF9A: @ 203AF9A
- .space 0x80
-
-gUnknown_203B01A: @ 203B01A
- .space 0x2
-
-gUnknown_203B01C: @ 203B01C
- .space 0x2
-
-gUnknown_203B01E: @ 203B01E
- .space 0x2
-
-gUnknown_203B020: @ 203B020
- .space 0x4
-
-gUnknown_203B024: @ 203B024
- .space 0x20
-
-gUnknown_203B044: @ 203B044
- .space 0x4
-
-gUnknown_203B048: @ 203B048
- .space 0x1
-
-gUnknown_203B049: @ 203B049
- .space 0x1
-
-gUnknown_203B04A: @ 203B04A
- .space 0x1
-
-gUnknown_203B04B: @ 203B04B
- .space 0x1
+ .include "src/quest_log.o"
gUnknown_203B04C: @ 203B04C
.space 0xC