summaryrefslogtreecommitdiff
path: root/src/link.c
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-11-08 20:11:29 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2017-11-08 20:11:29 -0500
commitd51f87226f029143dfb027f5e7bc36c64c5959eb (patch)
treeceae0d92d04bbbee7dd12d5693b7123405626065 /src/link.c
parent9a9f6012441a4ed0f7ba1566a3f693801957ef12 (diff)
sub_80099E0
Diffstat (limited to 'src/link.c')
-rw-r--r--src/link.c46
1 files changed, 45 insertions, 1 deletions
diff --git a/src/link.c b/src/link.c
index 327a170d0..c07a6d701 100644
--- a/src/link.c
+++ b/src/link.c
@@ -31,6 +31,13 @@ struct LinkTestBGInfo
u32 dummy_C;
};
+struct SIOCnt {
+ u32 cnt0_0:4;
+ u32 cnt0_2:2;
+};
+
+#define REG_SIOCNT_STRUCT (*(volatile struct SIOCnt *)REG_ADDR_SIOCNT)
+
// Static RAM declarations
IWRAM_DATA struct BlockTransfer gUnknown_03000D10;
@@ -98,12 +105,14 @@ struct LinkPlayer gUnknown_020229CC = {};
void sub_8009638(void);
void sub_80096BC(void);
void c2_08009A8C(void);
+void sub_8009AA0(u8 unused);
void sub_800A2E0(void);
void sub_800A2F4(void *heapptr, size_t src);
void task00_link_test(u8 taskId);
u16 sub_800A648(u16 *src, u16 size);
void sub_800A6E8(u32 pos, u8 a0, u8 a1, u8 a2);
void sub_800A824(void);
+void sub_800AEB4(void);
void sub_800B330(bool8 flag);
void sub_800B4A4(void);
void sub_800B53C(void);
@@ -316,7 +325,7 @@ void sub_80097E8(void)
sub_800B53C();
}
-void sub_8009818(void)
+static void sub_8009818(u8 nothing, u8 is, u8 used)
{
u8 i;
u8 status;
@@ -384,3 +393,38 @@ void sub_8009900(void)
sub_800A994(gMain.vblankCounter2, gUnknown_03003140 ? gUnknown_03002748 : gUnknown_03002748 | 0x10);
}
}
+
+void c2_08009A8C(void)
+{
+ sub_8009900();
+ sub_8009818(1, 1, 0);
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
+u16 sub_80099E0(const u16 *src)
+{
+ u8 i;
+
+ if (!gUnknown_020229C4)
+ {
+ return 0;
+ }
+ for (i = 0; i < 8; i ++)
+ {
+ gUnknown_03003110[i] = 0;
+ }
+ gUnknown_03003084 = *src;
+ if (gUnknown_030030E0 & 0x40)
+ {
+ sub_8009AA0(REG_SIOCNT_STRUCT.cnt0_2);
+ if (gUnknown_03003140 != NULL)
+ {
+ gUnknown_03003140();
+ }
+ sub_800AEB4();
+ }
+ return gUnknown_030030E0;
+}