summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2018-01-18 13:18:24 -0500
committerscnorton <scnorton@biociphers.org>2018-01-18 13:18:24 -0500
commit090f70dd5b0983b761b08c04c8cfc9873738db52 (patch)
treec797ed2fe27913e6ca37e8498d85e69c30f29e80
parent75a32c9dc54e32dd8c87af98dd0d3def658f7b02 (diff)
sub_800F498
-rw-r--r--asm/link_rfu.s50
-rw-r--r--include/link_rfu.h4
-rw-r--r--src/link_rfu.c21
3 files changed, 24 insertions, 51 deletions
diff --git a/asm/link_rfu.s b/asm/link_rfu.s
index 72691fd6c..c88c29329 100644
--- a/asm/link_rfu.s
+++ b/asm/link_rfu.s
@@ -5,56 +5,6 @@
.text
- thumb_func_start sub_800F498
-sub_800F498: @ 800F498
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r2, r1, 0
- ldrh r1, [r4]
- cmp r1, 0
- beq _0800F4DC
- ldr r0, =gUnknown_03005000
- movs r5, 0x81
- lsls r5, 1
- adds r3, r0, r5
- ldrb r0, [r3]
- lsls r0, 5
- orrs r0, r1
- strh r0, [r4]
- ldrb r0, [r3]
- adds r0, 0x1
- movs r1, 0x7
- ands r0, r1
- strb r0, [r3]
- adds r3, r4, 0
- movs r4, 0x6
-_0800F4C2:
- ldrh r1, [r3]
- lsrs r0, r1, 8
- strb r0, [r2, 0x1]
- strb r1, [r2]
- adds r2, 0x2
- adds r3, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _0800F4C2
- b _0800F4EA
- .pool
-_0800F4DC:
- movs r1, 0
- adds r0, r2, 0
- adds r0, 0xD
-_0800F4E2:
- strb r1, [r0]
- subs r0, 0x1
- cmp r0, r2
- bge _0800F4E2
-_0800F4EA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_800F498
-
thumb_func_start sub_800F4F0
sub_800F4F0: @ 800F4F0
push {r4-r7,lr}
diff --git a/include/link_rfu.h b/include/link_rfu.h
index d6f0b5b79..3cad90fc0 100644
--- a/include/link_rfu.h
+++ b/include/link_rfu.h
@@ -152,7 +152,9 @@ struct UnkRfuStruct_2 {
/* 0x080 */ struct UnkRfuStruct_2_Sub_6c unk_80[5];
/* 0x0e4 */ u8 filler_e4[10];
/* 0x0ee */ vu8 unk_ee;
- /* 0x0ef */ u8 filler_ef[0x35];
+ /* 0x0ef */ u8 filler_ef[0x13];
+ /* 0x102 */ u8 unk_102;
+ /* 0x103 */ u8 filler_103[0x21];
/* 0x124 */ struct UnkRfuStruct_2_Sub_124 unk_124;
/* 0x9e8 */ struct UnkRfuStruct_2_Sub_9e8 unk_9e8;
/* 0xc1c */ struct UnkRfuStruct_2_Sub_c1c unk_c1c;
diff --git a/src/link_rfu.c b/src/link_rfu.c
index d5a789bed..6d6099188 100644
--- a/src/link_rfu.c
+++ b/src/link_rfu.c
@@ -3123,3 +3123,24 @@ bool32 sub_800F1E0(void)
retval = gUnknown_03005000.unk_cdc;
return gUnknown_03007890->unk_06 ? retval & 1 : FALSE;
}
+
+void sub_800F498(u16 *a0, u8 *a1)
+{
+ int i;
+
+ if (a0[0])
+ {
+ a0[0] |= (gUnknown_03005000.unk_102 << 5);
+ gUnknown_03005000.unk_102 = (gUnknown_03005000.unk_102 + 1) & 7;
+ for (i = 0; i < 7; i++)
+ {
+ a1[2 * i + 1] = a0[i] >> 8;
+ a1[2 * i + 0] = a0[i];
+ }
+ }
+ else
+ {
+ for (i = 0; i < 14; i++)
+ a1[i] = 0;
+ }
+}