diff options
-rw-r--r-- | asm/code_801DAAE0_asm.s | 42 | ||||
-rw-r--r-- | include/code_801DAAE0.h | 5 | ||||
-rw-r--r-- | src/code_801DAAE0.cpp | 29 |
3 files changed, 32 insertions, 44 deletions
diff --git a/asm/code_801DAAE0_asm.s b/asm/code_801DAAE0_asm.s index ede4108..99decd5 100644 --- a/asm/code_801DAAE0_asm.s +++ b/asm/code_801DAAE0_asm.s @@ -2,48 +2,6 @@ .section .text, "ax" # 0x80006980 - 0x803E1E60
-.global func_801DAC0C
-func_801DAC0C:
-/* 801DAC0C 001D686C 80 6D A0 18 */ lwz r3, lbl_8063F2D8-_SDA_BASE_(r13)
-/* 801DAC10 001D6870 4E 80 00 20 */ blr
-
-.global func_801DAC14
-func_801DAC14:
-/* 801DAC14 001D6874 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 801DAC18 001D6878 7C 08 02 A6 */ mflr r0
-/* 801DAC1C 001D687C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 801DAC20 001D6880 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 801DAC24 001D6884 7C 7F 1B 78 */ mr r31, r3
-/* 801DAC28 001D6888 4B FF FF E5 */ bl func_801DAC0C
-/* 801DAC2C 001D688C 93 ED A0 18 */ stw r31, lbl_8063F2D8-_SDA_BASE_(r13)
-/* 801DAC30 001D6890 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 801DAC34 001D6894 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 801DAC38 001D6898 7C 08 03 A6 */ mtlr r0
-/* 801DAC3C 001D689C 38 21 00 10 */ addi r1, r1, 0x10
-/* 801DAC40 001D68A0 4E 80 00 20 */ blr
-
-.global func_801DAC44
-func_801DAC44:
-/* 801DAC44 001D68A4 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 801DAC48 001D68A8 7C 08 02 A6 */ mflr r0
-/* 801DAC4C 001D68AC 54 64 06 3E */ clrlwi r4, r3, 0x18
-/* 801DAC50 001D68B0 90 01 00 14 */ stw r0, 0x14(r1)
-/* 801DAC54 001D68B4 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 801DAC58 001D68B8 A3 ED A0 1C */ lhz r31, lbl_8063F2DC-_SDA_BASE_(r13)
-/* 801DAC5C 001D68BC B0 6D A0 1C */ sth r3, lbl_8063F2DC-_SDA_BASE_(r13)
-/* 801DAC60 001D68C0 80 6D 96 28 */ lwz r3, lbl_8063E8E8-_SDA_BASE_(r13)
-/* 801DAC64 001D68C4 48 0B C6 A9 */ bl MEMSetGroupIDForExpHeap
-/* 801DAC68 001D68C8 A0 0D A0 1C */ lhz r0, lbl_8063F2DC-_SDA_BASE_(r13)
-/* 801DAC6C 001D68CC 80 6D 96 2C */ lwz r3, lbl_8063E8EC-_SDA_BASE_(r13)
-/* 801DAC70 001D68D0 54 04 06 3E */ clrlwi r4, r0, 0x18
-/* 801DAC74 001D68D4 48 0B C6 99 */ bl MEMSetGroupIDForExpHeap
-/* 801DAC78 001D68D8 7F E3 FB 78 */ mr r3, r31
-/* 801DAC7C 001D68DC 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 801DAC80 001D68E0 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 801DAC84 001D68E4 7C 08 03 A6 */ mtlr r0
-/* 801DAC88 001D68E8 38 21 00 10 */ addi r1, r1, 0x10
-/* 801DAC8C 001D68EC 4E 80 00 20 */ blr
-
.global func_801DAC90
func_801DAC90:
/* 801DAC90 001D68F0 48 0B C6 7C */ b MEMSetGroupIDForExpHeap
diff --git a/include/code_801DAAE0.h b/include/code_801DAAE0.h index b27a833..897f09d 100644 --- a/include/code_801DAAE0.h +++ b/include/code_801DAAE0.h @@ -5,7 +5,7 @@ extern "C" {
#endif
-// TODO: move
+// TODO: move, determine type definition
typedef u32 MEMHeapHandle;
@@ -21,6 +21,9 @@ unkClass* func_801DAAE0(void); BOOL func_801DAB28(void);
void func_801DAB30(void);
MEMHeapHandle func_801DAB78(void* p1, u32 p2, u16 p3);
+u32 func_801DAC0C(void);
+u32 func_801DAC14(u32 p1);
+u16 func_801DAC44(u16 p1);
void* func_801DAD64(size_t);
void func_801DAEA4(void*);
diff --git a/src/code_801DAAE0.cpp b/src/code_801DAAE0.cpp index 2398148..f54450d 100644 --- a/src/code_801DAAE0.cpp +++ b/src/code_801DAAE0.cpp @@ -8,13 +8,16 @@ extern "C" { // unkStruct gUnk8063F2D0(1, 4, 0);
// TODO: move
+extern u32 lbl_8063E8E8;
+extern u32 lbl_8063E8EC;
extern u8 lbl_8063F2D6;
extern u8 lbl_8063F2D7;
extern u32 lbl_8063F2D8;
extern u16 lbl_8063F2DC;
+
void *memset(void *s, int c, size_t n);
MEMHeapHandle MEMCreateExpHeapEx(void* p1, u32 p2, u16 p3);
-
+u16 MEMSetGroupIDForExpHeap(MEMHeapHandle heap, u16 groupID);
unkClass gUnk804912B0[16];
@@ -54,4 +57,28 @@ MEMHeapHandle func_801DAB78(void* p1, u32 p2, u16 p3) return r3;
}
+u32 func_801DAC0C(void)
+{
+ return lbl_8063F2D8;
+}
+
+u32 func_801DAC14(u32 p1)
+{
+ u32 r3 = func_801DAC0C();
+ lbl_8063F2D8 = p1;
+ return r3;
+}
+
+u16 func_801DAC44(u16 p1)
+{
+ u16 r31 = lbl_8063F2DC;
+ lbl_8063F2DC = p1;
+ MEMSetGroupIDForExpHeap(lbl_8063E8E8, (u16)(p1 & 0xff));
+ MEMSetGroupIDForExpHeap(lbl_8063E8EC, (u16)(lbl_8063F2DC & 0xff));
+ return r31;
+}
+
+
+
+
}
|