summaryrefslogtreecommitdiff
path: root/arm9/src
diff options
context:
space:
mode:
authorRémi Calixte <remicalixte.rmc@gmail.com>2021-03-24 19:41:23 +0100
committerRémi Calixte <remicalixte.rmc@gmail.com>2021-03-26 19:04:24 +0100
commitd84e1e2a3573c7dc7d567b5b034c55611fe72ecb (patch)
tree959409c7459ce0f692f93a4909e52ced25d50bb2 /arm9/src
parent954605b27b93c6d98fb74feb485aa7c85cd60d88 (diff)
decomp start of unk_02016B94.s
Diffstat (limited to 'arm9/src')
-rw-r--r--arm9/src/unk_02016B94_c.c111
1 files changed, 111 insertions, 0 deletions
diff --git a/arm9/src/unk_02016B94_c.c b/arm9/src/unk_02016B94_c.c
new file mode 100644
index 00000000..c8fa991c
--- /dev/null
+++ b/arm9/src/unk_02016B94_c.c
@@ -0,0 +1,111 @@
+#include "global.h"
+#include "GX_layers.h"
+#include "gx.h"
+#include "heap.h"
+
+extern void FUN_020192D4();
+extern void FUN_02019358();
+
+extern void FUN_020195D0();
+extern void FUN_0201960C();
+
+extern void FUN_020195A8();
+extern void FUN_020195E4();
+
+extern void FUN_020194C8();
+extern void FUN_0201951C();
+
+extern void FUN_0201949C();
+extern void FUN_020194E0();
+
+extern void FUN_020193B4();
+extern void FUN_02019444();
+
+const u8 UNK_020EDB30[8] = {
+ 0x10,
+ 0x20,
+ 0x20,
+ 0x20,
+ 0x20,
+ 0x20,
+ 0x00,
+ 0x00,
+};
+
+void (*const UNK_020EDB5C[])() = {
+ FUN_020194C8,
+ FUN_0201951C,
+ FUN_020194C8,
+};
+
+void (*const UNK_020EDB50[])() = {
+ FUN_020195A8,
+ FUN_020195E4,
+ FUN_020195A8,
+};
+
+void (*const UNK_020EDB44[])() = {
+ FUN_020195D0,
+ FUN_0201960C,
+ FUN_020195D0,
+};
+
+void (*const UNK_020EDB38[])() = {
+ FUN_020192D4,
+ FUN_02019358,
+ FUN_020192D4,
+};
+
+void (*const UNK_020EDB68[])() = {
+ FUN_0201949C,
+ FUN_020194E0,
+ FUN_0201949C,
+};
+
+void (*const UNK_020EDB74[])() = {
+ FUN_020193B4,
+ FUN_02019444,
+ FUN_020193B4,
+};
+
+
+THUMB_FUNC void *FUN_02016B94(u32 heap_id)
+{
+ void *ptr = AllocFromHeap(heap_id, 0x5a << 2);
+ memset(ptr, 0, 0x5a << 2);
+ *(u32 *)ptr = heap_id;
+ *(u16 *)(ptr + 4) = 0;
+ *(u16 *)(ptr + 6) = 0;
+
+ return ptr;
+}
+
+THUMB_FUNC u32 FUN_02016BB8(u32 *param0)
+{
+ return *param0;
+}
+
+THUMB_FUNC void FUN_02016BBC(u32 *param0)
+{
+ GX_SetGraphicsMode(param0[0], param0[1], param0[3]);
+ GXS_SetGraphicsMode(param0[2]);
+ reg_GX_DISPCNT &= 0xC7FFFFFF;
+ reg_GX_DISPCNT &= 0xF8FFFFFF;
+
+ GX_DisableEngineALayers();
+ GX_DisableEngineBLayers();
+}
+
+THUMB_FUNC void FUN_02016BF4(u32 *param0, u32 param1)
+{
+ if (param1 == 0)
+ {
+ GX_SetGraphicsMode(param0[0], param0[1], param0[3]);
+ GX_DisableEngineALayers();
+ }
+ else
+ {
+ GXS_SetGraphicsMode(param0[2]);
+ GX_DisableEngineBLayers();
+ }
+}