summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-10-09 21:17:43 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-10-09 21:17:43 -0400
commitd1381d8b77ee691cc5dc1fe1fdcb158e7524283a (patch)
tree3d338bc3fceafd05af7bbcf4e7e3a92669f83902
parent10fff9c6f2d29899952d1751d3de827e7e98bb60 (diff)
Start decompiling quest_log.o
-rw-r--r--asm/quest_log.s87
-rw-r--r--include/global.h9
-rw-r--r--include/quest_log.h4
-rw-r--r--ld_script.txt1
-rw-r--r--src/quest_log.c43
5 files changed, 56 insertions, 88 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s
index 9b7c29ccc..cc5c32e64 100644
--- a/asm/quest_log.s
+++ b/asm/quest_log.s
@@ -5,93 +5,6 @@
.text
- thumb_func_start sub_8110840
-sub_8110840: @ 8110840
- push {lr}
- ldr r1, _08110888 @ =gSaveBlock1Ptr
- ldr r1, [r1]
- subs r1, r0
- ldr r2, _0811088C @ =gUnknown_203AE04
- ldr r0, [r2]
- cmp r0, 0
- beq _08110854
- adds r0, r1
- str r0, [r2]
-_08110854:
- ldr r0, _08110890 @ =gUnknown_203ADFA
- ldrb r2, [r0]
- cmp r2, 0
- beq _08110882
- ldr r3, _08110894 @ =gUnknown_203AE08
- ldr r0, [r3]
- cmp r0, 0
- beq _08110868
- adds r0, r1
- str r0, [r3]
-_08110868:
- cmp r2, 0x2
- bne _08110882
- ldr r2, _08110898 @ =gUnknown_203AE0C
- movs r3, 0x1F
-_08110870:
- ldr r0, [r2]
- cmp r0, 0
- beq _0811087A
- adds r0, r1
- str r0, [r2]
-_0811087A:
- adds r2, 0x4
- subs r3, 0x1
- cmp r3, 0
- bge _08110870
-_08110882:
- pop {r0}
- bx r0
- .align 2, 0
-_08110888: .4byte gSaveBlock1Ptr
-_0811088C: .4byte gUnknown_203AE04
-_08110890: .4byte gUnknown_203ADFA
-_08110894: .4byte gUnknown_203AE08
-_08110898: .4byte gUnknown_203AE0C
- thumb_func_end sub_8110840
-
- thumb_func_start sub_811089C
-sub_811089C: @ 811089C
- push {lr}
- ldr r0, _081108D8 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x98
- lsls r1, 5
- adds r0, r1
- movs r2, 0xCD
- lsls r2, 5
- movs r1, 0
- bl memset
- ldr r0, _081108DC @ =gUnknown_203ADF8
- movs r1, 0
- strb r1, [r0]
- ldr r0, _081108E0 @ =gUnknown_203ADFA
- strb r1, [r0]
- ldr r0, _081108E4 @ =gUnknown_203AE8C
- movs r1, 0
- str r1, [r0]
- ldr r0, _081108E8 @ =gUnknown_203AE08
- str r1, [r0]
- ldr r0, _081108EC @ =gUnknown_203AE04
- str r1, [r0]
- bl sub_8113BD8
- bl sub_81138F8
- pop {r0}
- bx r0
- .align 2, 0
-_081108D8: .4byte gSaveBlock1Ptr
-_081108DC: .4byte gUnknown_203ADF8
-_081108E0: .4byte gUnknown_203ADFA
-_081108E4: .4byte gUnknown_203AE8C
-_081108E8: .4byte gUnknown_203AE08
-_081108EC: .4byte gUnknown_203AE04
- thumb_func_end sub_811089C
-
thumb_func_start sub_81108F0
sub_81108F0: @ 81108F0
push {lr}
diff --git a/include/global.h b/include/global.h
index 11a79ebe8..791eb2dbf 100644
--- a/include/global.h
+++ b/include/global.h
@@ -474,6 +474,11 @@ struct MysteryEventStruct
u8 unk_1;
};
+struct QuestLog
+{
+ /*0x0000*/ u8 filler_0000[0x19a0];
+};
+
#define MAP_OBJECTS_COUNT 16
#define BERRY_TREES_COUNT 128
#define FLAGS_COUNT 300
@@ -494,7 +499,9 @@ struct SaveBlock1
/*0x63a*/ u8 trainerRematches[100];
/*0x06A0*/ struct MapObject mapObjects[MAP_OBJECTS_COUNT];
/*0x08E0*/ struct MapObjectTemplate mapObjectTemplates[64];
- /*0x0EE0*/ u8 fillerEE0[0x2580];
+ /*0x0EE0*/ u8 fillerEE0[0x420];
+ /*0x1300*/ struct QuestLog questLog;
+ /*0x2ca0*/ u8 filler2CA0[0x7c0];
/*0x3460*/ struct MysteryEventStruct unk_3460;
/*0x3464*/ u8 filler_3464[0x1b8];
/*0x361C*/ struct RamScript ramScript;
diff --git a/include/quest_log.h b/include/quest_log.h
new file mode 100644
index 000000000..015f4966e
--- /dev/null
+++ b/include/quest_log.h
@@ -0,0 +1,4 @@
+#ifndef GUARD_QUEST_LOG_H
+#define GUARD_QUEST_LOG_H
+
+#endif //GUARD_QUEST_LOG_H
diff --git a/ld_script.txt b/ld_script.txt
index 70084ef0e..0cd3d6202 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -222,6 +222,7 @@ SECTIONS {
asm/item_pc.o(.text);
asm/mailbox_pc.o(.text);
asm/menu.o(.text);
+ src/quest_log.o(.text);
asm/quest_log.o(.text);
asm/link_rfu_3.o(.text);
asm/pokemon_special_anim.o(.text);
diff --git a/src/quest_log.c b/src/quest_log.c
new file mode 100644
index 000000000..00b79516d
--- /dev/null
+++ b/src/quest_log.c
@@ -0,0 +1,43 @@
+#include "global.h"
+#include "quest_log.h"
+
+EWRAM_DATA u8 gUnknown_203ADF8 = 0;
+EWRAM_DATA u8 gUnknown_203ADFA = 0;
+EWRAM_DATA void * gUnknown_203AE04 = NULL;
+EWRAM_DATA void * gUnknown_203AE08 = NULL;
+EWRAM_DATA void * gUnknown_203AE0C[32] = {NULL};
+EWRAM_DATA u32 gUnknown_203AE8C = 0;
+
+void sub_8113BD8(void);
+void sub_81138F8(void);
+
+void sub_8110840(void * a0)
+{
+ size_t r1 = (void *)gSaveBlock1Ptr - a0;
+ if (gUnknown_203AE04)
+ gUnknown_203AE04 += r1;
+ if (gUnknown_203ADFA != 0)
+ {
+ if (gUnknown_203AE08)
+ gUnknown_203AE08 += r1;
+ if (gUnknown_203ADFA == 2)
+ {
+ int r3;
+ for (r3 = 0; r3 < 0x20; r3++)
+ if (gUnknown_203AE0C[r3])
+ gUnknown_203AE0C[r3] += r1;
+ }
+ }
+}
+
+void sub_811089C(void)
+{
+ gSaveBlock1Ptr->questLog = (struct QuestLog){};
+ gUnknown_203ADF8 = 0;
+ gUnknown_203ADFA = 0;
+ gUnknown_203AE8C = 0;
+ gUnknown_203AE08 = 0;
+ gUnknown_203AE04 = 0;
+ sub_8113BD8();
+ sub_81138F8();
+}