summaryrefslogtreecommitdiff
path: root/src/code_809D148.c
diff options
context:
space:
mode:
authorSeth Barberee <seth.barberee@gmail.com>2020-11-14 17:44:04 -0600
committerSeth Barberee <seth.barberee@gmail.com>2020-11-14 17:44:04 -0600
commit3b75b10bbbc99fbbba573142a3f027c3c0492593 (patch)
treea1fef25e1f8be1e59d07a3fcd9d490175384497e /src/code_809D148.c
parent9237db777e49204e8f09ec6607caefedb469da05 (diff)
more decomping and some data dumping
Diffstat (limited to 'src/code_809D148.c')
-rw-r--r--src/code_809D148.c42
1 files changed, 31 insertions, 11 deletions
diff --git a/src/code_809D148.c b/src/code_809D148.c
index 965ca12..5d3c908 100644
--- a/src/code_809D148.c
+++ b/src/code_809D148.c
@@ -18,6 +18,9 @@ struct unkStruct_20399E8
u32 unk30;
u32 unk34;
u32 unk38;
+ u32 unk3C;
+ u32 unk40;
+ u8 unk44;
};
struct unkStruct_809D158
@@ -264,14 +267,31 @@ u32 sub_809D234(void)
}
// TODO regswap but matches otherwise
-//u8 sub_809D248(struct unkStruct_809D158 *r0)
-//{
-// u32 temp;
-// u32 temp1;
-//
-// temp = gUnknown_20399E8.unk3C;
-// temp1 = gUnknown_20399E8.unk40;
-// r0->unk0 = temp;
-// r0->unk4 = temp1;
-// return gUnknown_20399E8.unk44;
-//}
+// Loads struct into R1... should be R3
+#ifndef NONMATCHING
+NAKED
+#endif
+u8 sub_809D248(struct unkStruct_809D158 *r0)
+{
+#ifdef NONMATCHING
+ u32 temp;
+ u32 temp1;
+
+ temp = gUnknown_20399E8.unk3C;
+ temp1 = gUnknown_20399E8.unk40;
+ r0->unk0 = temp;
+ r0->unk4 = temp1;
+ return gUnknown_20399E8.unk44;
+#else
+ asm_unified("\tldr r3, _0809D258\n"
+ "\tldr r1, [r3, 0x3C]\n"
+ "\tldr r2, [r3, 0x40]\n"
+ "\tstr r1, [r0]\n"
+ "\tstr r2, [r0, 0x4]\n"
+ "\tadds r3, 0x44\n"
+ "\tldrb r0, [r3]\n"
+ "\tbx lr\n"
+ "\t.align 2, 0\n"
+"_0809D258: .4byte gUnknown_20399E8");
+#endif
+}