summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2021-05-30 20:13:58 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2021-05-30 20:13:58 -0400
commitdaf02d9b198906d93a9b289315d0fc1e519843ef (patch)
treed111ed6157e21f26c4df2c2768084c51e58803d9
parent2e6a113eb27577764b1b6de22e04ae1f73d3069f (diff)
Document heap.c, 3
-rw-r--r--arm9/asm/unk_02035068.s4
-rw-r--r--arm9/asm/unk_020372D4.s12
-rw-r--r--arm9/asm/unk_020377F0.s4
-rw-r--r--arm9/asm/unk_020484A8.s4
-rw-r--r--arm9/asm/unk_0204FBA8.s4
-rw-r--r--arm9/asm/unk_020520AC.s4
-rw-r--r--arm9/asm/unk_02052EE8.s4
-rw-r--r--arm9/asm/unk_020625EC.s4
-rw-r--r--arm9/asm/unk_020653EC.s4
-rw-r--r--arm9/asm/unk_0206F1F0.s2
-rw-r--r--arm9/asm/unk_0206F3FC.s4
-rw-r--r--arm9/asm/unk_020772F0.s4
-rw-r--r--arm9/asm/unk_02079C70.s4
-rw-r--r--arm9/asm/unk_02080C38.s4
-rw-r--r--arm9/asm/unk_020854E0.s4
-rw-r--r--arm9/asm/unk_020859C0.s4
-rw-r--r--arm9/asm/unk_02086084.s4
-rw-r--r--arm9/asm/unk_02087D00.s4
-rw-r--r--arm9/asm/unk_02088858.s4
-rw-r--r--arm9/asm/unk_0208898C.s4
-rw-r--r--arm9/asm/unk_02089498.s4
-rw-r--r--arm9/asm/unk_02089960.s4
-rw-r--r--arm9/global.inc10
-rw-r--r--arm9/modules/05/asm/mod05_021D74E0.s4
-rw-r--r--arm9/modules/05/asm/module_05.s4
-rw-r--r--arm9/modules/06/asm/module_06.s12
-rw-r--r--arm9/modules/11/asm/module_11_thumb1.s10
-rw-r--r--arm9/modules/12/asm/module_12.s16
-rw-r--r--arm9/modules/14/asm/module_14.s20
-rw-r--r--arm9/modules/15/asm/module_15.s8
-rw-r--r--arm9/modules/16/asm/module_16.s4
-rw-r--r--arm9/modules/17/asm/module_17.s24
-rw-r--r--arm9/modules/18/asm/module_18.s4
-rw-r--r--arm9/modules/19/asm/module_19.s4
-rw-r--r--arm9/modules/20/asm/module_20.s8
-rw-r--r--arm9/modules/24/asm/module_24.s20
-rw-r--r--arm9/modules/36/asm/module_36.s8
-rw-r--r--arm9/modules/52/src/module_52.c12
-rw-r--r--arm9/modules/53/asm/module_53.s4
-rw-r--r--arm9/modules/54/asm/module_54.s4
-rw-r--r--arm9/modules/55/asm/module_55.s6
-rw-r--r--arm9/modules/56/asm/module_56.s6
-rw-r--r--arm9/modules/57/asm/module_57.s4
-rw-r--r--arm9/modules/58/asm/module_58.s4
-rw-r--r--arm9/modules/59/asm/mod59_021D74E0_asm.s2
-rw-r--r--arm9/modules/59/asm/mod59_021D9868.s4
-rw-r--r--arm9/modules/59/src/mod59_021D74E0_src.c2
-rw-r--r--arm9/modules/60/asm/module_60.s4
-rw-r--r--arm9/modules/61/asm/module_61.s4
-rw-r--r--arm9/modules/63/asm/mod63_021D74E0.s4
-rw-r--r--arm9/modules/63/asm/mod63_021D8890.s4
-rw-r--r--arm9/modules/64/asm/module_64.s4
-rw-r--r--arm9/modules/65/asm/module_65.s8
-rw-r--r--arm9/modules/66/asm/module_66.s4
-rw-r--r--arm9/modules/67/asm/module_67.s4
-rw-r--r--arm9/modules/68/asm/module_68.s4
-rw-r--r--arm9/modules/69/asm/module_69.s4
-rw-r--r--arm9/modules/70/asm/module_70.s8
-rw-r--r--arm9/modules/71/asm/module_71.s4
-rw-r--r--arm9/modules/73/asm/module_73.s4
-rw-r--r--arm9/modules/74/asm/module_74.s4
-rw-r--r--arm9/modules/75/asm/module_75.s4
-rw-r--r--arm9/modules/76/asm/module_76.s4
-rw-r--r--arm9/modules/77/asm/module_77.s4
-rw-r--r--arm9/modules/78/asm/module_78.s4
-rw-r--r--arm9/modules/80/asm/module_80.s4
-rw-r--r--arm9/modules/81/asm/module_81.s8
-rw-r--r--arm9/modules/82/asm/module_82.s4
-rw-r--r--arm9/modules/83/asm/module_83.s32
-rw-r--r--arm9/modules/84/asm/module_84_thumb1.s4
-rw-r--r--arm9/modules/85/asm/module_85.s4
-rw-r--r--arm9/modules/86/asm/module_86.s4
-rw-r--r--arm9/src/error_message_reset.c2
-rw-r--r--arm9/src/game_init.c2
-rw-r--r--arm9/src/heap.c239
-rw-r--r--arm9/src/unk_02031734.c32
-rw-r--r--include/heap.h32
77 files changed, 375 insertions, 370 deletions
diff --git a/arm9/asm/unk_02035068.s b/arm9/asm/unk_02035068.s
index c9df4ca4..0a9414a9 100644
--- a/arm9/asm/unk_02035068.s
+++ b/arm9/asm/unk_02035068.s
@@ -3649,7 +3649,7 @@ FUN_02036E08: ; 0x02036E08
mov r0, #0x3
mov r1, #0x49
lsl r2, r0, #0x10
- bl FUN_0201681C
+ bl CreateHeap
ldr r0, [r4, #0xc]
bl SavArray_PlayerParty_get
ldrb r1, [r5, #0x0]
@@ -3773,7 +3773,7 @@ FUN_02036F1C: ; 0x02036F1C
ldr r0, [r4, r0]
bl FUN_0206C92C
mov r0, #0x49
- bl FUN_020168D0
+ bl DestroyHeap
ldr r0, _02036F9C ; =0x00000475
mov r1, #0x0
bl FUN_02005350
diff --git a/arm9/asm/unk_020372D4.s b/arm9/asm/unk_020372D4.s
index 26a50555..efd22ed4 100644
--- a/arm9/asm/unk_020372D4.s
+++ b/arm9/asm/unk_020372D4.s
@@ -187,16 +187,16 @@ FUN_02037400: ; 0x02037400
mov r0, #0x3
mov r1, #0xb
lsl r2, r2, #0xe
- bl FUN_0201681C
+ bl CreateHeap
mov r1, #0x20
mov r0, #0x3
lsl r2, r1, #0x9
- bl FUN_0201681C
+ bl CreateHeap
mov r2, #0x3
mov r0, #0x0
mov r1, #0x5b
lsl r2, r2, #0x8
- bl FUN_0201681C
+ bl CreateHeap
add r0, r5, #0x0
mov r1, #0xb8
mov r2, #0xb
@@ -282,11 +282,11 @@ FUN_020374B0: ; 0x020374B0
add r0, r5, #0x0
bl OverlayManager_FreeData
mov r0, #0x5b
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0xb
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0x20
- bl FUN_020168D0
+ bl DestroyHeap
pop {r3-r5, pc}
thumb_func_start FUN_02037504
diff --git a/arm9/asm/unk_020377F0.s b/arm9/asm/unk_020377F0.s
index 9c2132bf..f564a2ab 100644
--- a/arm9/asm/unk_020377F0.s
+++ b/arm9/asm/unk_020377F0.s
@@ -1633,7 +1633,7 @@ _020382F6:
mov r0, #0x3
mov r1, #0x1a
lsl r2, r0, #0x10
- bl FUN_0201681C
+ bl CreateHeap
ldr r0, [r5, #0xc]
bl Sav2_PlayerData_GetOptionsAddr
str r0, [sp, #0x24]
@@ -1691,7 +1691,7 @@ _02038386:
ldr r0, [r4, #0x60]
bl FUN_0206C92C
mov r0, #0x1a
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0x7
str r0, [r4, #0x0]
b _020383C8
diff --git a/arm9/asm/unk_020484A8.s b/arm9/asm/unk_020484A8.s
index 929f1efa..ac3011bd 100644
--- a/arm9/asm/unk_020484A8.s
+++ b/arm9/asm/unk_020484A8.s
@@ -110,7 +110,7 @@ _02048556:
mov r1, #0x4
mov r0, #0x3
lsl r2, r1, #0xf
- bl FUN_0201681C
+ bl CreateHeap
add r0, r6, #0x0
add r1, r5, #0x0
bl FUN_02048764
@@ -240,7 +240,7 @@ _02048666:
add r0, r5, #0x0
bl FreeToHeap
mov r0, #0x4
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0x0
bl OS_ResetSystem
add sp, #0xc
diff --git a/arm9/asm/unk_0204FBA8.s b/arm9/asm/unk_0204FBA8.s
index f1101a82..e53fd195 100644
--- a/arm9/asm/unk_0204FBA8.s
+++ b/arm9/asm/unk_0204FBA8.s
@@ -154,7 +154,7 @@ FUN_0204FC5C: ; 0x0204FC5C
mov r0, #0x3
mov r1, #0x21
lsl r2, r2, #0xa
- bl FUN_0201681C
+ bl CreateHeap
ldr r0, _0204FC9C ; =UNK_021C5A6C
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x18]
@@ -2279,7 +2279,7 @@ _02050D66:
bl MOD18_0223E1A4
bl FUN_02031860
mov r0, #0x21
- bl FUN_020168D0
+ bl DestroyHeap
ldr r0, _02050D84 ; =UNK_021C5A6C
mov r1, #0x0
ldr r0, [r0, #0x0]
diff --git a/arm9/asm/unk_020520AC.s b/arm9/asm/unk_020520AC.s
index 8ff9a9a1..c53ca1c7 100644
--- a/arm9/asm/unk_020520AC.s
+++ b/arm9/asm/unk_020520AC.s
@@ -137,7 +137,7 @@ _020520C0:
mov r0, #0x3
mov r1, #0x1f
lsl r2, r2, #0x6
- bl FUN_02016828
+ bl CreateHeapAtEnd
add r0, r4, #0x0
bl FUN_02052110
add r5, r0, #0x0
@@ -625,7 +625,7 @@ FUN_020524A0: ; 0x020524A0
add r0, r4, #0x0
bl FreeToHeap
mov r0, #0x1f
- bl FUN_020168D0
+ bl DestroyHeap
_020524B8:
pop {r4, pc}
.balign 4
diff --git a/arm9/asm/unk_02052EE8.s b/arm9/asm/unk_02052EE8.s
index 0c163fd8..7014adcd 100644
--- a/arm9/asm/unk_02052EE8.s
+++ b/arm9/asm/unk_02052EE8.s
@@ -50,7 +50,7 @@ FUN_02052EE8: ; 0x02052EE8
ldr r0, [r0, #0x38]
str r0, [r4, #0x8]
mov r0, #0xb
- bl FUN_02016828
+ bl CreateHeapAtEnd
mov r0, #0x59
bl FUN_02053618
ldr r1, _02052F6C ; =0x000004DC
@@ -113,7 +113,7 @@ FUN_02052FA4: ; 0x02052FA4
ldr r0, [r4, r0]
bl FUN_0205362C
mov r0, #0x59
- bl FUN_020168D0
+ bl DestroyHeap
add r0, r4, #0x0
bl FreeToHeap
pop {r4, pc}
diff --git a/arm9/asm/unk_020625EC.s b/arm9/asm/unk_020625EC.s
index fc235004..09de8a47 100644
--- a/arm9/asm/unk_020625EC.s
+++ b/arm9/asm/unk_020625EC.s
@@ -61,7 +61,7 @@ FUN_020625EC: ; 0x020625EC
mov r1, #0x50
lsl r2, r0, #0xd
ldr r6, [r5, #0xc]
- bl FUN_0201681C
+ bl CreateHeap
mov r1, #0x2d
mov r0, #0x50
lsl r1, r1, #0x4
@@ -194,7 +194,7 @@ _020626FE:
lsl r2, r2, #0x4
bl MI_CpuFill8
add r0, r5, #0x0
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0xc
add sp, #0x8
pop {r3-r7, pc}
diff --git a/arm9/asm/unk_020653EC.s b/arm9/asm/unk_020653EC.s
index df203337..c7b09260 100644
--- a/arm9/asm/unk_020653EC.s
+++ b/arm9/asm/unk_020653EC.s
@@ -43,7 +43,7 @@ FUN_020653EC: ; 0x020653EC
mov r0, #0x3
mov r1, #0x2b
lsl r2, r2, #0xc
- bl FUN_0201681C
+ bl CreateHeap
mov r1, #0x6e
mov r0, #0x2b
lsl r1, r1, #0x2
@@ -111,7 +111,7 @@ FUN_02065474: ; 0x02065474
add r0, r4, #0x0
bl FreeToHeap
ldr r0, [r4, #0x0]
- bl FUN_020168D0
+ bl DestroyHeap
pop {r4, pc}
.balign 4
diff --git a/arm9/asm/unk_0206F1F0.s b/arm9/asm/unk_0206F1F0.s
index cdb5db18..8493d5db 100644
--- a/arm9/asm/unk_0206F1F0.s
+++ b/arm9/asm/unk_0206F1F0.s
@@ -203,7 +203,7 @@ _0206F34A:
ldr r2, _0206F388 ; =0x00040100
mov r0, #0x3
mov r1, #0x36
- bl FUN_0201681C
+ bl CreateHeap
bl FUN_02088878
mov r0, #0x36
bl MOD07_02211E60
diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s
index 53557016..5e04c49a 100644
--- a/arm9/asm/unk_0206F3FC.s
+++ b/arm9/asm/unk_0206F3FC.s
@@ -148,7 +148,7 @@ FUN_0206F3FC: ; 0x0206F3FC
mov r0, #0x3
mov r1, #0xc
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
add r0, r4, #0x0
bl FUN_0206FE74
add r4, r0, #0x0
@@ -1022,7 +1022,7 @@ _0206FB30:
ldr r0, [sp, #0x0]
bl OverlayManager_FreeData
mov r0, #0xc
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0x1
pop {r3-r7, pc}
.balign 4
diff --git a/arm9/asm/unk_020772F0.s b/arm9/asm/unk_020772F0.s
index 5a4129b1..15173c11 100644
--- a/arm9/asm/unk_020772F0.s
+++ b/arm9/asm/unk_020772F0.s
@@ -730,7 +730,7 @@ _020772FE:
mov r0, #0x3
mov r1, #0x12
lsl r2, r2, #0xe
- bl FUN_0201681C
+ bl CreateHeap
mov r1, #0x5d
add r0, r6, #0x0
lsl r1, r1, #0x4
@@ -1583,7 +1583,7 @@ _02077A0C:
add r1, r0, #0x0
bl Main_SetVBlankIntrCB
mov r0, #0x12
- bl FUN_020168D0
+ bl DestroyHeap
ldr r0, _02077A80 ; =gMain + 0x60
mov r1, #0x0
strb r1, [r0, #0x5]
diff --git a/arm9/asm/unk_02079C70.s b/arm9/asm/unk_02079C70.s
index 87da24ba..4dee97dd 100644
--- a/arm9/asm/unk_02079C70.s
+++ b/arm9/asm/unk_02079C70.s
@@ -92,7 +92,7 @@ FUN_02079C7C: ; 0x02079C7C
mov r0, #0x3
mov r1, #0x13
lsl r2, r2, #0x12
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _02079DAC ; =0x0000069C
add r0, r4, #0x0
mov r2, #0x13
@@ -339,7 +339,7 @@ FUN_02079ECC: ; 0x02079ECC
add r0, r4, #0x0
bl OverlayManager_FreeData
mov r0, #0x13
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0x1
pop {r3-r5, pc}
.balign 4
diff --git a/arm9/asm/unk_02080C38.s b/arm9/asm/unk_02080C38.s
index 3e0d058c..d1dff0e3 100644
--- a/arm9/asm/unk_02080C38.s
+++ b/arm9/asm/unk_02080C38.s
@@ -807,7 +807,7 @@ FUN_02081214: ; 0x02081214
mov r0, #0xb
mov r1, #0x14
lsl r2, r2, #0xe
- bl FUN_0201681C
+ bl CreateHeap
bl FUN_020811D8
add r4, r0, #0x0
bl GetLCRNGSeed
@@ -1191,7 +1191,7 @@ _020814FE:
add r0, r7, #0x0
bl FUN_0208120C
mov r0, #0x14
- bl FUN_020168D0
+ bl DestroyHeap
pop {r3-r7, pc}
.balign 4
diff --git a/arm9/asm/unk_020854E0.s b/arm9/asm/unk_020854E0.s
index c19e1a5d..d4e2215b 100644
--- a/arm9/asm/unk_020854E0.s
+++ b/arm9/asm/unk_020854E0.s
@@ -418,7 +418,7 @@ FUN_020857F8: ; 0x020857F8
mov r0, #0x3
mov r1, #0x28
lsl r2, r2, #0xc
- bl FUN_0201681C
+ bl CreateHeap
add r0, r4, #0x0
mov r1, #0x1c
mov r2, #0x28
@@ -629,6 +629,6 @@ FUN_020859A0: ; 0x020859A0
add r0, r5, #0x0
bl OverlayManager_FreeData
ldr r0, [r4, #0x0]
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0x1
pop {r3-r5, pc}
diff --git a/arm9/asm/unk_020859C0.s b/arm9/asm/unk_020859C0.s
index a2f90e0a..aa13c4f2 100644
--- a/arm9/asm/unk_020859C0.s
+++ b/arm9/asm/unk_020859C0.s
@@ -184,7 +184,7 @@ FUN_020859C0: ; 0x020859C0
mov r0, #0x3
mov r1, #0x35
lsl r2, r2, #0x12
- bl FUN_0201681C
+ bl CreateHeap
mov r0, #0x35
bl MOD62_02230F3C
bl MOD62_0222F7E0
@@ -570,7 +570,7 @@ FUN_02085C08: ; 0x02085C08
bl OverlayManager_FreeData
bl FUN_0201CD04
mov r0, #0x35
- bl FUN_020168D0
+ bl DestroyHeap
ldr r0, _02085D68 ; =SDK_OVERLAY_MODULE_08_ID
bl UnloadOverlayByID
mov r0, #0x1
diff --git a/arm9/asm/unk_02086084.s b/arm9/asm/unk_02086084.s
index 3a4017d7..b2d21149 100644
--- a/arm9/asm/unk_02086084.s
+++ b/arm9/asm/unk_02086084.s
@@ -23,7 +23,7 @@ FUN_02086084: ; 0x02086084
mov r0, #0x3
mov r1, #0x47
lsl r2, r2, #0x12
- bl FUN_0201681C
+ bl CreateHeap
add r0, r5, #0x0
mov r1, #0x80
mov r2, #0x47
@@ -219,7 +219,7 @@ FUN_020861DC: ; 0x020861DC
add r0, r5, #0x0
bl OverlayManager_FreeData
mov r0, #0x47
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0x1
pop {r3-r5, pc}
.balign 4
diff --git a/arm9/asm/unk_02087D00.s b/arm9/asm/unk_02087D00.s
index 65d4db3d..dfdb08c6 100644
--- a/arm9/asm/unk_02087D00.s
+++ b/arm9/asm/unk_02087D00.s
@@ -206,7 +206,7 @@ FUN_02087E40: ; 0x02087E40
mov r0, #0x3
mov r1, #0x2c
lsl r2, r2, #0xc
- bl FUN_0201681C
+ bl CreateHeap
add r0, r4, #0x0
mov r1, #0x18
mov r2, #0x2c
@@ -294,7 +294,7 @@ FUN_02087EE8: ; 0x02087EE8
add r0, r5, #0x0
bl OverlayManager_FreeData
ldr r0, [r4, #0x0]
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0x1
pop {r3-r5, pc}
.balign 4
diff --git a/arm9/asm/unk_02088858.s b/arm9/asm/unk_02088858.s
index 5f71517a..f7539bca 100644
--- a/arm9/asm/unk_02088858.s
+++ b/arm9/asm/unk_02088858.s
@@ -89,14 +89,14 @@ FUN_020888DC: ; 0x020888DC
mov r0, #0x3
mov r1, #0x31
lsl r2, r2, #0xc
- bl FUN_0201681C
+ bl CreateHeap
add r0, r4, #0x0
bl OverlayManager_GetField18
ldr r0, [r0, #0x8]
mov r1, #0x31
bl FUN_02088898
mov r0, #0x31
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0x0
bl OS_ResetSystem
mov r0, #0x1
diff --git a/arm9/asm/unk_0208898C.s b/arm9/asm/unk_0208898C.s
index 6fef7584..68885a65 100644
--- a/arm9/asm/unk_0208898C.s
+++ b/arm9/asm/unk_0208898C.s
@@ -33,7 +33,7 @@ FUN_020889B0: ; 0x020889B0
mov r0, #0x3
mov r1, #0x37
lsl r2, r2, #0xe
- bl FUN_0201681C
+ bl CreateHeap
add r0, r4, #0x0
mov r1, #0x24
mov r2, #0x37
@@ -145,7 +145,7 @@ FUN_02088A78: ; 0x02088A78
add r0, r5, #0x0
bl OverlayManager_FreeData
add r0, r6, #0x0
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0x1
pop {r4-r6, pc}
.balign 4
diff --git a/arm9/asm/unk_02089498.s b/arm9/asm/unk_02089498.s
index 8e706149..56b9ee9e 100644
--- a/arm9/asm/unk_02089498.s
+++ b/arm9/asm/unk_02089498.s
@@ -42,7 +42,7 @@ FUN_02089498: ; 0x02089498
mov r0, #0x3
mov r1, #0x58
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
add r0, r5, #0x0
mov r1, #0x38
mov r2, #0x58
@@ -197,7 +197,7 @@ FUN_020895F0: ; 0x020895F0
add r0, r5, #0x0
bl OverlayManager_FreeData
add r0, r4, #0x0
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0x0
bl OS_ResetSystem
mov r0, #0x1
diff --git a/arm9/asm/unk_02089960.s b/arm9/asm/unk_02089960.s
index bd234548..a1b0c04b 100644
--- a/arm9/asm/unk_02089960.s
+++ b/arm9/asm/unk_02089960.s
@@ -38,7 +38,7 @@ FUN_02089960: ; 0x02089960
mov r0, #0x3
mov r1, #0x58
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
add r0, r5, #0x0
mov r1, #0x3c
mov r2, #0x58
@@ -141,7 +141,7 @@ FUN_02089A40: ; 0x02089A40
add r0, r5, #0x0
bl OverlayManager_FreeData
add r0, r4, #0x0
- bl FUN_020168D0
+ bl DestroyHeap
ldr r0, _02089A64 ; =SDK_OVERLAY_MODULE_83_ID
ldr r1, _02089A68 ; =MOD83_0223A360
bl RegisterMainOverlay
diff --git a/arm9/global.inc b/arm9/global.inc
index cf0a8ab7..dfc30aa2 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -1022,10 +1022,10 @@
.extern SetKeyRepeatTimers
.extern SetSoftResetDisableMask
.extern ClearSoftResetDisableMask
-.extern FUN_020166C8
-.extern FUN_0201681C
-.extern FUN_02016828
-.extern FUN_020168D0
+.extern InitHeapSystem
+.extern CreateHeap
+.extern CreateHeapAtEnd
+.extern DestroyHeap
.extern AllocFromHeap
.extern AllocFromHeapAtEnd
.extern FreeToHeap
@@ -1033,7 +1033,7 @@
.extern GF_ExpHeap_FndGetTotalFreeSize
.extern GF_ExpHeap_FndInitAllocator
.extern ReallocFromHeap
-.extern FUN_02016B90
+.extern GF_heap_c_dummy_return_true
.extern FUN_02016B94
.extern FUN_02016BB8
.extern FUN_02016BBC
diff --git a/arm9/modules/05/asm/mod05_021D74E0.s b/arm9/modules/05/asm/mod05_021D74E0.s
index 730bfc00..4ca1ac2e 100644
--- a/arm9/modules/05/asm/mod05_021D74E0.s
+++ b/arm9/modules/05/asm/mod05_021D74E0.s
@@ -69,7 +69,7 @@ _021D7564:
mov r0, #3
ldr r2, [r2, #4]
mov r1, #4
- bl FUN_0201681C
+ bl CreateHeap
ldr r0, [r4, #4]
cmp r0, #0
beq _021D757A
@@ -361,7 +361,7 @@ _021D7806:
mov r0, #0
str r0, [r4, #4]
mov r0, #4
- bl FUN_020168D0
+ bl DestroyHeap
ldr r0, [r4, #0x70]
ldr r0, [r0]
lsl r0, r0, #8
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s
index ee979879..a67d2d02 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -27084,7 +27084,7 @@ MOD05_021F5990: ; 0x021F5990
str r0, [sp]
add r7, r1, #0
str r3, [sp, #4]
- bl FUN_0201681C
+ bl CreateHeap
cmp r0, #1
beq _021F59B2
bl GF_AssertFail
@@ -27142,7 +27142,7 @@ _021F5A0E:
add r0, r6, #0
bl FreeToHeap
add r0, r4, #0
- bl FUN_020168D0
+ bl DestroyHeap
pop {r4, r5, r6, pc}
.balign 4, 0
diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s
index 83971e80..5afae6a8 100644
--- a/arm9/modules/06/asm/module_06.s
+++ b/arm9/modules/06/asm/module_06.s
@@ -5151,13 +5151,13 @@ _0223BCDA:
str r0, [sp, #0x10]
_0223BCDE:
mov r0, #4
- bl FUN_02016B90
+ bl GF_heap_c_dummy_return_true
cmp r0, #0
bne _0223BCEC
bl GF_AssertFail
_0223BCEC:
mov r0, #0xb
- bl FUN_02016B90
+ bl GF_heap_c_dummy_return_true
cmp r0, #0
bne _0223BCFA
bl GF_AssertFail
@@ -5864,13 +5864,13 @@ _0223C2DC:
str r0, [sp, #0x10]
_0223C2E4:
mov r0, #4
- bl FUN_02016B90
+ bl GF_heap_c_dummy_return_true
cmp r0, #0
bne _0223C2F2
bl GF_AssertFail
_0223C2F2:
mov r0, #0xb
- bl FUN_02016B90
+ bl GF_heap_c_dummy_return_true
cmp r0, #0
bne _0223C300
bl GF_AssertFail
@@ -20061,7 +20061,7 @@ MOD06_022434D0: ; 0x022434D0
mov r0, #3
mov r1, #0x3b
lsl r2, r2, #0xe
- bl FUN_02016828
+ bl CreateHeapAtEnd
ldr r1, _02243684 ; =0x000008CC
mov r0, #0x3b
bl AllocFromHeap
@@ -20275,7 +20275,7 @@ _022436A6:
add r0, r4, #0
bl FreeToHeap
add r0, r5, #0
- bl FUN_020168D0
+ bl DestroyHeap
_022436BE:
pop {r3, r4, r5, pc}
.align 2, 0
diff --git a/arm9/modules/11/asm/module_11_thumb1.s b/arm9/modules/11/asm/module_11_thumb1.s
index 2a6bb196..65a74381 100644
--- a/arm9/modules/11/asm/module_11_thumb1.s
+++ b/arm9/modules/11/asm/module_11_thumb1.s
@@ -42,7 +42,7 @@ _0222D600:
mov r0, #3
mov r1, #5
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, [r5]
mov r0, #4
tst r0, r1
@@ -175,7 +175,7 @@ _0222D704:
b _0222D7EA
_0222D714:
mov r0, #5
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0xd
str r0, [r4]
b _0222D7EA
@@ -187,7 +187,7 @@ _0222D720:
ldr r0, _0222D7F0 ; =SDK_OVERLAY_MODULE_07_ID
bl UnloadOverlayByID
mov r0, #5
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0x3e
bl FUN_02031588
mov r0, #0xc
@@ -210,7 +210,7 @@ _0222D752:
mov r0, #3
mov r1, #0x49
lsl r2, r0, #0x10
- bl FUN_0201681C
+ bl CreateHeap
ldr r0, [r5, #4]
ldr r1, [sp, #0x24]
bl GetPartyMonByIndex
@@ -266,7 +266,7 @@ _0222D7C2:
add r0, r5, #0
bl FUN_0206C92C
mov r0, #0x49
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0xd
str r0, [r4]
b _0222D7EA
diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s
index fcb737d8..8c91e781 100644
--- a/arm9/modules/12/asm/module_12.s
+++ b/arm9/modules/12/asm/module_12.s
@@ -40,7 +40,7 @@ MOD12_0222D5C0: ; 0x0222D5C0
mov r0, #3
mov r1, #0x15
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _0222D868 ; =0x00001658
add r0, r5, #0
mov r2, #0x15
@@ -521,7 +521,7 @@ MOD12_0222D9B0: ; 0x0222D9B0
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
mov r0, #0x15
- bl FUN_020168D0
+ bl DestroyHeap
bl FUN_02083404
bl FUN_02033ED0
ldr r0, _0222DADC ; =SDK_OVERLAY_MODULE_08_ID
@@ -3175,7 +3175,7 @@ MOD12_0222EF04: ; 0x0222EF04
mov r0, #3
mov r1, #0x16
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _0222F168 ; =0x00000F68
add r0, r4, #0
mov r2, #0x16
@@ -3686,7 +3686,7 @@ _0222F3AE:
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
mov r0, #0x16
- bl FUN_020168D0
+ bl DestroyHeap
bl FUN_02083404
bl FUN_02033ED0
ldr r0, _0222F450 ; =SDK_OVERLAY_MODULE_08_ID
@@ -5015,7 +5015,7 @@ MOD12_0222FE4C: ; 0x0222FE4C
mov r0, #3
mov r1, #0x17
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _022300EC ; =0x00001BF4
add r0, r4, #0
mov r2, #0x17
@@ -5530,7 +5530,7 @@ _02230296:
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
mov r0, #0x17
- bl FUN_020168D0
+ bl DestroyHeap
bl FUN_02083404
bl FUN_02033ED0
ldr r0, _022303B8 ; =SDK_OVERLAY_MODULE_08_ID
@@ -41102,7 +41102,7 @@ MOD12_02241210: ; 0x02241210
mov r0, #3
mov r1, #0x18
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
mov r1, #0x4a
add r0, r4, #0
lsl r1, r1, #6
@@ -41577,7 +41577,7 @@ _022415D4:
bl Main_SetVBlankIntrCB
bl FUN_02015F1C
mov r0, #0x18
- bl FUN_020168D0
+ bl DestroyHeap
bl FUN_02083404
mov r1, #5
mov r2, #2
diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s
index bdfed5b1..d5f05188 100644
--- a/arm9/modules/14/asm/module_14.s
+++ b/arm9/modules/14/asm/module_14.s
@@ -11,12 +11,12 @@ StoragePC_Overlay_Init: ; 0x021D74E0
mov r0, #3
mov r1, #9
lsl r2, r2, #0xe
- bl FUN_0201681C
+ bl CreateHeap
mov r2, #0xf
mov r0, #3
mov r1, #0xa
lsl r2, r2, #0xe
- bl FUN_0201681C
+ bl CreateHeap
mov r1, #0x87
add r0, r5, #0
lsl r1, r1, #2
@@ -132,9 +132,9 @@ _021D75DE:
add r0, r4, #0
bl MOD14_021DB398
mov r0, #9
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0xa
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r4, pc}
.align 2, 0
@@ -5546,7 +5546,7 @@ _021DA1FE:
ldr r0, [r4, r0]
bl MOD14_021DCA38
mov r0, #0xa
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0x12
lsl r0, r0, #4
ldr r0, [r4, r0]
@@ -5592,7 +5592,7 @@ _021DA256:
mov r0, #3
mov r1, #0xa
lsl r2, r2, #0xe
- bl FUN_0201681C
+ bl CreateHeap
mov r2, #0x12
lsl r2, r2, #4
ldr r0, [r4, r2]
@@ -5658,7 +5658,7 @@ _021DA2F2:
ldr r0, [r5, r0]
bl MOD14_021DCA38
mov r0, #0xa
- bl FUN_020168D0
+ bl DestroyHeap
add r0, r5, #0
bl MOD14_021D83E4
mov r1, #0x4b
@@ -5693,7 +5693,7 @@ _021DA334:
mov r0, #3
mov r1, #0xa
lsl r2, r2, #0xe
- bl FUN_0201681C
+ bl CreateHeap
add r0, r5, #0
bl MOD14_021DC3F4
cmp r0, #1
@@ -5803,7 +5803,7 @@ _021DA41E:
ldr r0, [r4, r0]
bl MOD14_021DCA38
mov r0, #0xa
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0x47
lsl r0, r0, #2
ldr r0, [r4, r0]
@@ -5889,7 +5889,7 @@ _021DA4F4:
mov r0, #3
mov r1, #0xa
lsl r2, r2, #0xe
- bl FUN_0201681C
+ bl CreateHeap
mov r0, #0x45
lsl r0, r0, #2
add r0, r4, r0
diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s
index 97282c02..a1f0f2d1 100644
--- a/arm9/modules/15/asm/module_15.s
+++ b/arm9/modules/15/asm/module_15.s
@@ -23,12 +23,12 @@ _021D74F2:
mov r0, #3
mov r1, #0x22
lsl r2, r2, #0xe
- bl FUN_0201681C
+ bl CreateHeap
mov r2, #0xa
mov r0, #3
mov r1, #0x23
lsl r2, r2, #0xe
- bl FUN_0201681C
+ bl CreateHeap
add r0, r5, #0
bl MOD15_021D7628
ldr r0, [r0, #0x14]
@@ -170,9 +170,9 @@ MOD15_021D7608: ; 0x021D7608
add r1, r4, #0
bl MOD15_021D7774
mov r0, #0x22
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0x23
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r4, pc}
.align 2, 0
diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s
index 82ff69c0..4fb65b68 100644
--- a/arm9/modules/16/asm/module_16.s
+++ b/arm9/modules/16/asm/module_16.s
@@ -16,7 +16,7 @@ MOD16_021D74E0: ; 0x021D74E0
mov r0, #3
mov r1, #0x25
lsl r2, r2, #0x12
- bl FUN_0201681C
+ bl CreateHeap
add r0, r5, #0
mov r1, #4
mov r2, #0x25
@@ -168,7 +168,7 @@ _021D7630:
add r0, r4, #0
bl OverlayManager_FreeData
mov r0, #0x25
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
mov r1, #0x7f
bl FUN_020051EC
diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s
index 955741b3..7d11697e 100644
--- a/arm9/modules/17/asm/module_17.s
+++ b/arm9/modules/17/asm/module_17.s
@@ -2042,12 +2042,12 @@ MOD17_021D83E4: ; 0x021D83E4
mov r0, #3
mov r1, #0xd
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
mov r2, #1
mov r0, #3
mov r1, #0xe
lsl r2, r2, #0x12
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _021D84D8 ; =0x000006D8
add r0, r4, #0
mov r2, #0xd
@@ -2511,9 +2511,9 @@ _021D87F0:
add r0, r6, #0
bl OverlayManager_FreeData
mov r0, #0xd
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0xe
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r4, r5, r6, pc}
nop
@@ -2532,12 +2532,12 @@ MOD17_021D8818: ; 0x021D8818
mov r0, #3
mov r1, #0xd
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
mov r2, #1
mov r0, #3
mov r1, #0xe
lsl r2, r2, #0x12
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _021D897C ; =0x000006D8
add r0, r5, #0
mov r2, #0xd
@@ -3119,9 +3119,9 @@ _021D8D30:
add r0, r5, #0
bl OverlayManager_FreeData
mov r0, #0xd
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0xe
- bl FUN_020168D0
+ bl DestroyHeap
bl FUN_02083404
bl FUN_02033ED0
mov r0, #1
@@ -13780,12 +13780,12 @@ MOD17_021DDB58: ; 0x021DDB58
mov r0, #3
mov r1, #0xd
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
mov r2, #1
mov r0, #3
mov r1, #0xe
lsl r2, r2, #0x12
- bl FUN_0201681C
+ bl CreateHeap
mov r1, #0x65
add r0, r5, #0
lsl r1, r1, #2
@@ -13990,9 +13990,9 @@ MOD17_021DDCF4: ; 0x021DDCF4
add r0, r5, #0
bl OverlayManager_FreeData
mov r0, #0xd
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0xe
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s
index e84656ac..e3fbe038 100644
--- a/arm9/modules/18/asm/module_18.s
+++ b/arm9/modules/18/asm/module_18.s
@@ -1747,7 +1747,7 @@ MOD18_0223A3D4: ; 0x0223A3D4
mov r0, #3
mov r1, #0x1d
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
mov r0, #0x1d
bl FUN_02016B94
add r4, r0, #0
@@ -1984,7 +1984,7 @@ _0223A5F8:
ldr r0, [r0]
str r1, [r0, #4]
mov r0, #0x1d
- bl FUN_020168D0
+ bl DestroyHeap
bl MOD18_0223D638
ldr r1, _0223A648 ; =0x02251380
ldr r1, [r1]
diff --git a/arm9/modules/19/asm/module_19.s b/arm9/modules/19/asm/module_19.s
index 8f3a28ce..bb49a485 100644
--- a/arm9/modules/19/asm/module_19.s
+++ b/arm9/modules/19/asm/module_19.s
@@ -11,7 +11,7 @@ MOD19_02252440: ; 0x02252440
mov r0, #3
mov r1, #8
lsl r2, r0, #0xf
- bl FUN_0201681C
+ bl CreateHeap
mov r0, #0
bl GXS_SetGraphicsMode
mov r0, #0x80
@@ -91,7 +91,7 @@ MOD19_022524F4: ; 0x022524F4
mov r1, #4
bl FUN_020178A0
mov r0, #8
- bl FUN_020168D0
+ bl DestroyHeap
pop {r3, pc}
thumb_func_end MOD19_022524F4
diff --git a/arm9/modules/20/asm/module_20.s b/arm9/modules/20/asm/module_20.s
index a77f95fc..e812d527 100644
--- a/arm9/modules/20/asm/module_20.s
+++ b/arm9/modules/20/asm/module_20.s
@@ -21,11 +21,11 @@ MOD20_02252448: ; 0x02252448
mov r1, #7
lsl r2, r0, #0xe
add r7, r3, #0
- bl FUN_0201681C
+ bl CreateHeap
mov r0, #3
mov r1, #8
lsl r2, r0, #0xe
- bl FUN_0201681C
+ bl CreateHeap
mov r0, #7
mov r1, #0x60
bl AllocFromHeap
@@ -238,9 +238,9 @@ _022525C6:
add r0, r5, #0
bl FUN_0200CAB4
mov r0, #7
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #8
- bl FUN_020168D0
+ bl DestroyHeap
pop {r3, r4, r5, pc}
.align 2, 0
_022525EC: .word MOD20_022544CC
diff --git a/arm9/modules/24/asm/module_24.s b/arm9/modules/24/asm/module_24.s
index cdf4b770..577a6ac9 100644
--- a/arm9/modules/24/asm/module_24.s
+++ b/arm9/modules/24/asm/module_24.s
@@ -621,7 +621,7 @@ MOD24_02254CA0: ; 0x02254CA0
add r4, r0, #0
beq _02254CFA
mov r0, #7
- bl FUN_02016B90
+ bl GF_heap_c_dummy_return_true
cmp r0, #0
bne _02254CC0
bl GF_AssertFail
@@ -631,7 +631,7 @@ _02254CC0:
mov r1, #0x10
bl MOD20_022536F4
mov r0, #7
- bl FUN_02016B90
+ bl GF_heap_c_dummy_return_true
cmp r0, #0
bne _02254CD8
bl GF_AssertFail
@@ -642,7 +642,7 @@ _02254CD8:
bl MOD20_02252D24
str r0, [r4, #0x50]
mov r0, #7
- bl FUN_02016B90
+ bl GF_heap_c_dummy_return_true
cmp r0, #0
bne _02254CF4
bl GF_AssertFail
@@ -699,7 +699,7 @@ MOD24_02254D48: ; 0x02254D48
add r4, r0, #0
beq _02254D84
mov r0, #7
- bl FUN_02016B90
+ bl GF_heap_c_dummy_return_true
cmp r0, #0
bne _02254D5C
bl GF_AssertFail
@@ -783,7 +783,7 @@ MOD24_02254DDC: ; 0x02254DDC
sub sp, #0x14
mov r0, #8
add r4, r1, #0
- bl FUN_02016B90
+ bl GF_heap_c_dummy_return_true
cmp r0, #0
bne _02254DF0
bl GF_AssertFail
@@ -802,7 +802,7 @@ _02254DF0:
mov r3, #0
bl FUN_02016C18
mov r0, #8
- bl FUN_02016B90
+ bl GF_heap_c_dummy_return_true
cmp r0, #0
bne _02254E1E
bl GF_AssertFail
@@ -835,7 +835,7 @@ _02254E1E:
add r1, r0, #0
bl MOD20_02252D7C
mov r0, #8
- bl FUN_02016B90
+ bl GF_heap_c_dummy_return_true
cmp r0, #0
bne _02254E68
bl GF_AssertFail
@@ -845,7 +845,7 @@ _02254E68:
ldr r0, [r5, #0x70]
bl CopyWindowToVram
mov r0, #8
- bl FUN_02016B90
+ bl GF_heap_c_dummy_return_true
cmp r0, #0
bne _02254E82
bl GF_AssertFail
@@ -853,7 +853,7 @@ _02254E82:
add r0, r5, #0
bl MOD24_02255078
mov r0, #8
- bl FUN_02016B90
+ bl GF_heap_c_dummy_return_true
cmp r0, #0
bne _02254E96
bl GF_AssertFail
@@ -877,7 +877,7 @@ _02254E96:
add r0, r4, #0
bl MOD24_02254DC8
mov r0, #8
- bl FUN_02016B90
+ bl GF_heap_c_dummy_return_true
cmp r0, #0
bne _02254ECC
bl GF_AssertFail
diff --git a/arm9/modules/36/asm/module_36.s b/arm9/modules/36/asm/module_36.s
index 0149e180..0b141199 100644
--- a/arm9/modules/36/asm/module_36.s
+++ b/arm9/modules/36/asm/module_36.s
@@ -981,7 +981,7 @@ MOD36_02254F5C: ; 0x02254F5C
sub sp, #0x14
mov r0, #8
add r5, r1, #0
- bl FUN_02016B90
+ bl GF_heap_c_dummy_return_true
cmp r0, #0
bne _02254F70
bl GF_AssertFail
@@ -1000,7 +1000,7 @@ _02254F70:
mov r3, #0
bl FUN_02016C18
mov r0, #8
- bl FUN_02016B90
+ bl GF_heap_c_dummy_return_true
cmp r0, #0
bne _02254F9E
bl GF_AssertFail
@@ -1034,7 +1034,7 @@ _02254F9E:
add r1, r0, #0
bl MOD20_02252D7C
mov r0, #8
- bl FUN_02016B90
+ bl GF_heap_c_dummy_return_true
cmp r0, #0
bne _02254FEA
bl GF_AssertFail
@@ -1061,7 +1061,7 @@ _02254FEA:
add r0, r5, #0
bl MOD36_02254F48
mov r0, #8
- bl FUN_02016B90
+ bl GF_heap_c_dummy_return_true
cmp r0, #0
bne _02255028
bl GF_AssertFail
diff --git a/arm9/modules/52/src/module_52.c b/arm9/modules/52/src/module_52.c
index 41f2706a..08da79f4 100644
--- a/arm9/modules/52/src/module_52.c
+++ b/arm9/modules/52/src/module_52.c
@@ -159,7 +159,7 @@ THUMB_FUNC BOOL MOD52_021D74E0(struct UnkStruct_02006234 *arg1, u32 *arg2)
{
#pragma unused(arg1)
#pragma unused(arg2)
- FUN_0201681C(3, 0x4d, 2 << 16);
+ CreateHeap(3, 0x4d, 2 << 16);
InitializeMainRNG();
return 1;
@@ -179,7 +179,7 @@ THUMB_FUNC BOOL MOD52_021D750C(struct UnkStruct_02006234 *arg1, u32 *arg2)
{
#pragma unused(arg1)
#pragma unused(arg2)
- FUN_020168D0(0x4d);
+ DestroyHeap(0x4d);
RegisterMainOverlay(0XFFFFFFFF, &UNK_020FD144);
return 1;
@@ -189,7 +189,7 @@ THUMB_FUNC BOOL MOD52_021D7528(struct UnkStruct_02006234 *arg1, u32 *arg2)
{
#pragma unused(arg1)
#pragma unused(arg2)
- FUN_0201681C(3, 0x4d, 2 << 16);
+ CreateHeap(3, 0x4d, 2 << 16);
InitializeMainRNG();
return 1;
@@ -211,7 +211,7 @@ THUMB_FUNC BOOL MOD52_021D7560(struct UnkStruct_02006234 *arg1, u32 *arg2)
{
#pragma unused(arg1)
#pragma unused(arg2)
- FUN_020168D0(0x4d);
+ DestroyHeap(0x4d);
RegisterMainOverlay(0xFFFFFFFF, &UNK_020F2B7C);
return 1;
@@ -221,7 +221,7 @@ THUMB_FUNC BOOL MOD52_021D757C(struct UnkStruct_02006234 *arg1, u32 *arg2)
{
#pragma unused(arg1)
#pragma unused(arg2)
- FUN_0201681C(3, 0x4d, 2 << 16);
+ CreateHeap(3, 0x4d, 2 << 16);
InitializeMainRNG();
return 1;
@@ -252,7 +252,7 @@ THUMB_FUNC BOOL MOD52_021D75E8(struct UnkStruct_02006234 *arg1, u32 *arg2)
{
#pragma unused(arg1)
#pragma unused(arg2)
- FUN_020168D0(0x4d);
+ DestroyHeap(0x4d);
RegisterMainOverlay(0XFFFFFFFF, &UNK_020F2B8C);
return 1;
diff --git a/arm9/modules/53/asm/module_53.s b/arm9/modules/53/asm/module_53.s
index 3c747f56..7049c5bb 100644
--- a/arm9/modules/53/asm/module_53.s
+++ b/arm9/modules/53/asm/module_53.s
@@ -37,7 +37,7 @@ _021D74F6:
mov r0, #3
mov r1, #0x27
lsl r2, r2, #6
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _021D7640 ; =0x0000940C
add r0, r6, #0
mov r2, #0x27
@@ -417,7 +417,7 @@ _021D786E:
add r1, r0, #0
bl Main_SetVBlankIntrCB
mov r0, #0x27
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #2
bl FUN_02032B6C
mov r0, #1
diff --git a/arm9/modules/54/asm/module_54.s b/arm9/modules/54/asm/module_54.s
index 04f3927a..a0d5ce50 100644
--- a/arm9/modules/54/asm/module_54.s
+++ b/arm9/modules/54/asm/module_54.s
@@ -38,7 +38,7 @@ _021D74F6:
mov r0, #3
mov r1, #0x33
lsl r2, r2, #0xc
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _021D7638 ; =0x00004A60
add r0, r6, #0
mov r2, #0x33
@@ -333,7 +333,7 @@ _021D776C:
add r1, r0, #0
bl Main_SetVBlankIntrCB
mov r0, #0x33
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
diff --git a/arm9/modules/55/asm/module_55.s b/arm9/modules/55/asm/module_55.s
index f90f346e..51b82ddf 100644
--- a/arm9/modules/55/asm/module_55.s
+++ b/arm9/modules/55/asm/module_55.s
@@ -89,7 +89,7 @@ _021D7580:
mov r0, #3
mov r1, #0x34
lsl r2, r2, #0x12
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _021D7610 ; =0x0000041C
add r0, r6, #0
mov r2, #0x34
@@ -164,7 +164,7 @@ _021D7628:
mov r0, #3
mov r1, #0x34
lsl r2, r2, #0x12
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _021D76B8 ; =0x0000041C
add r0, r6, #0
mov r2, #0x34
@@ -349,7 +349,7 @@ MOD55_021D77AC: ; 0x021D77AC
add r0, r5, #0
bl OverlayManager_FreeData
mov r0, #0x34
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r3, r4, r5, pc}
thumb_func_end MOD55_021D77AC
diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s
index 2f71e04c..ac016f49 100644
--- a/arm9/modules/56/asm/module_56.s
+++ b/arm9/modules/56/asm/module_56.s
@@ -340,14 +340,14 @@ _02212098:
mov r0, #3
mov r1, #0x36
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
b _022120BE
_022120B2:
mov r2, #0xb
mov r0, #3
mov r1, #0x36
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
_022120BE:
mov r1, #0x3f
add r0, r4, #0
@@ -564,7 +564,7 @@ _02212274:
add r0, r5, #0
bl OverlayManager_FreeData
mov r0, #0x36
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r4, r5, r6, pc}
.align 2, 0
diff --git a/arm9/modules/57/asm/module_57.s b/arm9/modules/57/asm/module_57.s
index 624f332c..a9163534 100644
--- a/arm9/modules/57/asm/module_57.s
+++ b/arm9/modules/57/asm/module_57.s
@@ -33,7 +33,7 @@ MOD57_021D74E0: ; 0x021D74E0
mov r0, #3
mov r1, #0x19
lsl r2, r2, #0xe
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _021D76F0 ; =0x00003320
add r0, r5, #0
mov r2, #0x19
@@ -561,7 +561,7 @@ MOD57_021D7944: ; 0x021D7944
add r1, r0, #0
bl Main_SetVBlankIntrCB
mov r0, #0x19
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
mov r1, #0x7f
bl FUN_020051EC
diff --git a/arm9/modules/58/asm/module_58.s b/arm9/modules/58/asm/module_58.s
index c3ac0512..99967607 100644
--- a/arm9/modules/58/asm/module_58.s
+++ b/arm9/modules/58/asm/module_58.s
@@ -43,7 +43,7 @@ _021D9A36:
mov r0, #3
mov r1, #0x27
lsl r2, r2, #6
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _021D9B74 ; =0x00005CB0
add r0, r6, #0
mov r2, #0x27
@@ -274,7 +274,7 @@ _021D9C40:
add r1, r0, #0
bl Main_SetVBlankIntrCB
mov r0, #0x27
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
nop
diff --git a/arm9/modules/59/asm/mod59_021D74E0_asm.s b/arm9/modules/59/asm/mod59_021D74E0_asm.s
index c47887c1..a48cd966 100644
--- a/arm9/modules/59/asm/mod59_021D74E0_asm.s
+++ b/arm9/modules/59/asm/mod59_021D74E0_asm.s
@@ -189,7 +189,7 @@ MOD59_021D76C0: ; 0x021D76C0
add r0, r6, #0
bl OverlayManager_FreeData
add r0, r5, #0
- bl FUN_020168D0
+ bl DestroyHeap
ldr r0, _021D771C ; =SDK_OVERLAY_MODULE_52_ID
ldr r1, _021D7720 ; =MOD52_021D76D8
bl RegisterMainOverlay
diff --git a/arm9/modules/59/asm/mod59_021D9868.s b/arm9/modules/59/asm/mod59_021D9868.s
index 78e2c5b2..e4325d83 100644
--- a/arm9/modules/59/asm/mod59_021D9868.s
+++ b/arm9/modules/59/asm/mod59_021D9868.s
@@ -11,7 +11,7 @@ MOD59_021D9868: ; 0x021D9868
mov r0, #3
mov r1, #0x53
lsl r2, r2, #0x12
- bl FUN_0201681C
+ bl CreateHeap
add r0, r4, #0
mov r1, #0x28
mov r2, #0x53
@@ -200,7 +200,7 @@ MOD59_021D99F8: ; 0x021D99F8
add r0, r5, #0
bl OverlayManager_FreeData
add r0, r4, #0
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
diff --git a/arm9/modules/59/src/mod59_021D74E0_src.c b/arm9/modules/59/src/mod59_021D74E0_src.c
index 4d7a4a98..be8dac20 100644
--- a/arm9/modules/59/src/mod59_021D74E0_src.c
+++ b/arm9/modules/59/src/mod59_021D74E0_src.c
@@ -10,7 +10,7 @@ extern u32 FUN_02077A84(u32 heap_id, u32 param1, u32 param2, u32 param3, struct
THUMB_FUNC BOOL MOD59_Init(struct UnkStruct_02006234 *param0)
{
//note: 0xb4 is likely the overlay data struct size, once struct is padded replace with sizeof
- FUN_0201681C(3, 0x52, 1 << 18);
+ CreateHeap(3, 0x52, 1 << 18);
MOD59_OverlayData *data = (MOD59_OverlayData *) OverlayManager_CreateAndGetData(param0, 0xb4, 0x52);
(void)memset((void *)data, 0, 0xb4);
diff --git a/arm9/modules/60/asm/module_60.s b/arm9/modules/60/asm/module_60.s
index 8c6d04fc..a30f563f 100644
--- a/arm9/modules/60/asm/module_60.s
+++ b/arm9/modules/60/asm/module_60.s
@@ -13,7 +13,7 @@ MOD60_021D74E0: ; 0x021D74E0
mov r0, #3
mov r1, #0x26
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
mov r1, #0xad
add r0, r4, #0
lsl r1, r1, #2
@@ -215,7 +215,7 @@ _021D769A:
add r0, r5, #0
bl OverlayManager_FreeData
ldr r0, [r4]
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r3, r4, r5, pc}
nop
diff --git a/arm9/modules/61/asm/module_61.s b/arm9/modules/61/asm/module_61.s
index ed9e0e05..d13a3071 100644
--- a/arm9/modules/61/asm/module_61.s
+++ b/arm9/modules/61/asm/module_61.s
@@ -12,7 +12,7 @@ MOD61_021D74E0: ; 0x021D74E0
mov r0, #3
mov r1, #0x29
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
add r0, r5, #0
mov r1, #0xbc
mov r2, #0x29
@@ -80,7 +80,7 @@ MOD61_021D7568: ; 0x021D7568
add r0, r5, #0
bl OverlayManager_FreeData
add r0, r4, #0
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
diff --git a/arm9/modules/63/asm/mod63_021D74E0.s b/arm9/modules/63/asm/mod63_021D74E0.s
index a32913d9..4f086525 100644
--- a/arm9/modules/63/asm/mod63_021D74E0.s
+++ b/arm9/modules/63/asm/mod63_021D74E0.s
@@ -42,7 +42,7 @@ MOD63_021D74E0: ; 0x021D74E0
mov r0, #3
mov r1, #0x1e
lsl r2, r2, #0x12
- bl FUN_0201681C
+ bl CreateHeap
mov r1, #0x79
add r0, r4, #0
lsl r1, r1, #2
@@ -363,7 +363,7 @@ MOD63_021D77B4: ; 0x021D77B4
add r0, r7, #0
bl OverlayManager_FreeData
add r0, r4, #0
- bl FUN_020168D0
+ bl DestroyHeap
cmp r5, #1
beq _021D77F2
cmp r5, #2
diff --git a/arm9/modules/63/asm/mod63_021D8890.s b/arm9/modules/63/asm/mod63_021D8890.s
index 982a2b9a..24804568 100644
--- a/arm9/modules/63/asm/mod63_021D8890.s
+++ b/arm9/modules/63/asm/mod63_021D8890.s
@@ -586,7 +586,7 @@ MOD63_021D8D10: ; 0x021D8D10
mov r0, #3
mov r1, #0x4c
lsl r2, r0, #0x11
- bl FUN_0201681C
+ bl CreateHeap
mov r1, #0xab
add r0, r4, #0
lsl r1, r1, #2
@@ -739,7 +739,7 @@ MOD63_021D8E68: ; 0x021D8E68
add r0, r5, #0
bl OverlayManager_FreeData
mov r0, #0x4c
- bl FUN_020168D0
+ bl DestroyHeap
ldr r0, _021D8E94 ; =SDK_OVERLAY_MODULE_63_ID
ldr r1, _021D8E98 ; =MOD63_021DBAB8
bl RegisterMainOverlay
diff --git a/arm9/modules/64/asm/module_64.s b/arm9/modules/64/asm/module_64.s
index c6d71664..0c56aa30 100644
--- a/arm9/modules/64/asm/module_64.s
+++ b/arm9/modules/64/asm/module_64.s
@@ -12,7 +12,7 @@ MOD64_021D74E0: ; 0x021D74E0
mov r0, #3
mov r1, #0x2f
lsl r2, r2, #0x12
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _021D7630 ; =0x000006B4
add r0, r4, #0
mov r2, #0x2f
@@ -299,7 +299,7 @@ _021D7726:
add r0, r5, #0
bl OverlayManager_FreeData
mov r0, #0x2f
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r4, r5, r6, pc}
thumb_func_end MOD64_021D76F4
diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s
index e9e1ed78..1050ff4e 100644
--- a/arm9/modules/65/asm/module_65.s
+++ b/arm9/modules/65/asm/module_65.s
@@ -13,7 +13,7 @@ MOD65_021D74E0: ; 0x021D74E0
mov r0, #3
mov r1, #0x2d
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
mov r1, #2
add r0, r4, #0
lsl r1, r1, #8
@@ -80,7 +80,7 @@ MOD65_021D753C: ; 0x021D753C
add r0, r5, #0
bl OverlayManager_FreeData
ldr r0, [r4]
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r3, r4, r5, pc}
thumb_func_end MOD65_021D753C
@@ -2710,7 +2710,7 @@ MOD65_021D8A08: ; 0x021D8A08
mov r0, #3
mov r1, #0x2e
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
mov r1, #0x6f
add r0, r4, #0
lsl r1, r1, #2
@@ -2921,7 +2921,7 @@ MOD65_021D8BBC: ; 0x021D8BBC
add r0, r5, #0
bl OverlayManager_FreeData
ldr r0, [r4]
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
diff --git a/arm9/modules/66/asm/module_66.s b/arm9/modules/66/asm/module_66.s
index c902cd22..f8cb1081 100644
--- a/arm9/modules/66/asm/module_66.s
+++ b/arm9/modules/66/asm/module_66.s
@@ -13,7 +13,7 @@ MOD66_021D74E0: ; 0x021D74E0
mov r0, #3
mov r1, #0x11
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
add r0, r4, #0
mov r1, #0xe4
mov r2, #0x11
@@ -119,7 +119,7 @@ MOD66_021D75B0: ; 0x021D75B0
add r0, r4, #0
bl OverlayManager_FreeData
mov r0, #0x11
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r4, pc}
thumb_func_end MOD66_021D75B0
diff --git a/arm9/modules/67/asm/module_67.s b/arm9/modules/67/asm/module_67.s
index cc5e6e22..c39f5c7d 100644
--- a/arm9/modules/67/asm/module_67.s
+++ b/arm9/modules/67/asm/module_67.s
@@ -35,7 +35,7 @@ MOD67_021D74E0: ; 0x021D74E0
mov r0, #3
mov r1, #0x2a
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
add r0, r4, #0
bl OverlayManager_GetField18
add r5, r0, #0
@@ -165,7 +165,7 @@ MOD67_021D7624: ; 0x021D7624
add r0, r5, #0
bl OverlayManager_FreeData
mov r0, #0x2a
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
diff --git a/arm9/modules/68/asm/module_68.s b/arm9/modules/68/asm/module_68.s
index 3d73e7bd..6e79c8cf 100644
--- a/arm9/modules/68/asm/module_68.s
+++ b/arm9/modules/68/asm/module_68.s
@@ -32,7 +32,7 @@ MOD68_021D74E0: ; 0x021D74E0
mov r0, #3
mov r1, #0x24
lsr r2, r2, #9
- bl FUN_0201681C
+ bl CreateHeap
mov r1, #0x81
add r0, r4, #0
lsl r1, r1, #2
@@ -173,7 +173,7 @@ MOD68_021D762C: ; 0x021D762C
add r1, r0, #0
bl Main_SetVBlankIntrCB
mov r0, #0x24
- bl FUN_020168D0
+ bl DestroyHeap
ldr r0, _021D767C ; =0x04000050
mov r1, #0
strh r1, [r0]
diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s
index 58d0b4f8..c9bce6b2 100644
--- a/arm9/modules/69/asm/module_69.s
+++ b/arm9/modules/69/asm/module_69.s
@@ -13,7 +13,7 @@ HOF_OverlayInit: ; 0x0222D5C0
mov r0, #3
mov r1, #0x3f
lsl r2, r0, #0x10
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _0222D70C ; =0x00001B60
add r0, r5, #0
mov r2, #0x3f
@@ -213,7 +213,7 @@ _0222D762:
add r0, r6, #0
bl OverlayManager_FreeData
mov r0, #0x3f
- bl FUN_020168D0
+ bl DestroyHeap
ldr r0, [r5]
add r0, r0, #1
str r0, [r5]
diff --git a/arm9/modules/70/asm/module_70.s b/arm9/modules/70/asm/module_70.s
index 9db294af..daff2762 100644
--- a/arm9/modules/70/asm/module_70.s
+++ b/arm9/modules/70/asm/module_70.s
@@ -11,12 +11,12 @@ MOD70_021D74E0: ; 0x021D74E0
mov r0, #3
mov r1, #0x3c
lsl r2, r2, #0xe
- bl FUN_0201681C
+ bl CreateHeap
mov r2, #7
mov r0, #3
mov r1, #0x3d
lsl r2, r2, #0xe
- bl FUN_0201681C
+ bl CreateHeap
add r0, r5, #0
mov r1, #0xdc
mov r2, #0x3c
@@ -76,9 +76,9 @@ MOD70_021D755C: ; 0x021D755C
add r0, r5, #0
bl OverlayManager_FreeData
mov r0, #0x3d
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0x3c
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s
index 613e6aa0..d01ea938 100644
--- a/arm9/modules/71/asm/module_71.s
+++ b/arm9/modules/71/asm/module_71.s
@@ -27,7 +27,7 @@ MOD71_0222D5C0: ; 0x0222D5C0
ldr r2, _0222D734 ; =0x000707D0
mov r0, #3
mov r1, #0x1a
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _0222D738 ; =0x000036B4
add r0, r5, #0
mov r2, #0x1a
@@ -1777,7 +1777,7 @@ MOD71_0222E438: ; 0x0222E438
add r1, r0, #0
bl Main_SetVBlankIntrCB
mov r0, #0x1a
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r3, r4, r5, pc}
nop
diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s
index 7d9850cc..3caf2693 100644
--- a/arm9/modules/73/asm/module_73.s
+++ b/arm9/modules/73/asm/module_73.s
@@ -23,7 +23,7 @@ MOD73_021D74F0: ; 0x021D74F0
mov r0, #3
mov r1, #0x38
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _021D757C ; =0x000015E8
add r0, r5, #0
mov r2, #0x38
@@ -201,7 +201,7 @@ MOD73_021D7640: ; 0x021D7640
mov r0, #0
str r0, [r6, #0x18]
add r0, r4, #0
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
nop
diff --git a/arm9/modules/74/asm/module_74.s b/arm9/modules/74/asm/module_74.s
index 651527c1..75afef9d 100644
--- a/arm9/modules/74/asm/module_74.s
+++ b/arm9/modules/74/asm/module_74.s
@@ -13,7 +13,7 @@ MOD74_021D74E0: ; 0x021D74E0
mov r0, #3
mov r1, #0x4a
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
mov r1, #0xad
add r0, r4, #0
lsl r1, r1, #2
@@ -56,7 +56,7 @@ MOD74_021D7540: ; 0x021D7540
add r0, r5, #0
bl OverlayManager_FreeData
ldr r0, [r4]
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s
index fc726042..a425935f 100644
--- a/arm9/modules/75/asm/module_75.s
+++ b/arm9/modules/75/asm/module_75.s
@@ -32,7 +32,7 @@ MOD75_021E6BA0: ; 0x021E6BA0
mov r1, #6
mov r0, #3
lsl r2, r1, #0xf
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _021E6D60 ; =0x000004A4
add r0, r5, #0
mov r2, #6
@@ -460,7 +460,7 @@ MOD75_021E6F00: ; 0x021E6F00
add r1, r0, #0
bl Main_SetVBlankIntrCB
mov r0, #6
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s
index 4f32e870..38055b90 100644
--- a/arm9/modules/76/asm/module_76.s
+++ b/arm9/modules/76/asm/module_76.s
@@ -11,7 +11,7 @@ MOD76_021D74E0: ; 0x021D74E0
mov r0, #3
mov r1, #0x43
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
mov r1, #0x62
add r0, r5, #0
lsl r1, r1, #2
@@ -166,7 +166,7 @@ MOD76_021D761C: ; 0x021D761C
add r0, r4, #0
bl OverlayManager_FreeData
mov r0, #0x43
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r4, pc}
thumb_func_end MOD76_021D761C
diff --git a/arm9/modules/77/asm/module_77.s b/arm9/modules/77/asm/module_77.s
index 1f240502..0b432b90 100644
--- a/arm9/modules/77/asm/module_77.s
+++ b/arm9/modules/77/asm/module_77.s
@@ -28,7 +28,7 @@ MOD77_021D74E0: ; 0x021D74E0
mov r0, #3
mov r1, #0x32
lsl r2, r2, #7
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _021D75DC ; =0x0000C32C
add r0, r4, #0
mov r2, #0x32
@@ -831,7 +831,7 @@ MOD77_021D7BAC: ; 0x021D7BAC
add r0, r6, #0
bl OverlayManager_FreeData
add r0, r5, #0
- bl FUN_020168D0
+ bl DestroyHeap
ldr r0, _021D7C20 ; =gMain + 0x60
mov r1, #0
strb r1, [r0, #5]
diff --git a/arm9/modules/78/asm/module_78.s b/arm9/modules/78/asm/module_78.s
index 8a6451fe..85167a84 100644
--- a/arm9/modules/78/asm/module_78.s
+++ b/arm9/modules/78/asm/module_78.s
@@ -12,7 +12,7 @@ MOD78_021D74E0: ; 0x021D74E0
mov r0, #3
mov r1, #0x48
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
add r0, r5, #0
mov r1, #0xa0
mov r2, #0x48
@@ -259,7 +259,7 @@ _021D76C8:
bl OverlayManager_FreeData
bl FUN_0201B398
mov r0, #0x48
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD78_021D76B8
diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s
index 56c92006..db04b6c2 100644
--- a/arm9/modules/80/asm/module_80.s
+++ b/arm9/modules/80/asm/module_80.s
@@ -1391,7 +1391,7 @@ _0222DFE4:
mov r0, #3
mov r1, #0x3e
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _0222E108 ; =0x00001044
add r0, r6, #0
mov r2, #0x3e
@@ -1689,7 +1689,7 @@ MOD80_0222E25C: ; 0x0222E25C
add r1, r0, #0
bl Main_SetVBlankIntrCB
mov r0, #0x3e
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
diff --git a/arm9/modules/81/asm/module_81.s b/arm9/modules/81/asm/module_81.s
index 9505f17c..01caab99 100644
--- a/arm9/modules/81/asm/module_81.s
+++ b/arm9/modules/81/asm/module_81.s
@@ -16,11 +16,11 @@ _02237E50:
mov r0, #3
mov r1, #0x39
lsl r2, r0, #0xf
- bl FUN_0201681C
+ bl CreateHeap
mov r0, #3
mov r1, #0x3a
lsl r2, r0, #0xf
- bl FUN_0201681C
+ bl CreateHeap
bl MOD81_02238858
ldr r1, _02237FD0 ; =0x00000492
mov r0, #3
@@ -237,9 +237,9 @@ MOD81_02238004: ; 0x02238004
add r0, r5, #0
bl OverlayManager_FreeData
mov r0, #0x39
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0x3a
- bl FUN_020168D0
+ bl DestroyHeap
add r0, r6, #0
bl OS_RestoreInterrupts
mov r0, #1
diff --git a/arm9/modules/82/asm/module_82.s b/arm9/modules/82/asm/module_82.s
index b897380f..20b82216 100644
--- a/arm9/modules/82/asm/module_82.s
+++ b/arm9/modules/82/asm/module_82.s
@@ -641,7 +641,7 @@ _0222DA48:
mov r0, #3
mov r1, #0x44
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _0222DB58 ; =0x00000EC8
add r0, r6, #0
mov r2, #0x44
@@ -887,7 +887,7 @@ MOD82_0222DC50: ; 0x0222DC50
add r1, r0, #0
bl Main_SetVBlankIntrCB
mov r0, #0x44
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r3, r4, r5, pc}
.align 2, 0
diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s
index 354932d5..0527c923 100644
--- a/arm9/modules/83/asm/module_83.s
+++ b/arm9/modules/83/asm/module_83.s
@@ -1916,7 +1916,7 @@ MOD83_0222E48C: ; 0x0222E48C
mov r0, #3
mov r1, #0x51
lsl r2, r2, #0x12
- bl FUN_0201681C
+ bl CreateHeap
mov r1, #0x57
add r0, r5, #0
lsl r1, r1, #2
@@ -2372,7 +2372,7 @@ MOD83_0222E850: ; 0x0222E850
add r0, r4, #0
bl OverlayManager_FreeData
mov r0, #0x51
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0
bl MOD83_02239450
mov r0, #1
@@ -3085,7 +3085,7 @@ MOD83_0222EDF8: ; 0x0222EDF8
mov r2, #3
mov r1, #0x5b
lsl r2, r2, #8
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _0222EE88 ; =0x00000496
mov r0, #9
mov r2, #1
@@ -3312,14 +3312,14 @@ MOD83_0222F048: ; 0x0222F048
push {r4, lr}
add r4, r0, #0
mov r0, #0x5b
- bl FUN_020168D0
+ bl DestroyHeap
ldr r0, _0222F06C ; =SDK_OVERLAY_MODULE_63_ID
ldr r1, _0222F070 ; =MOD63_021DBAB8
bl RegisterMainOverlay
add r0, r4, #0
bl OverlayManager_FreeData
mov r0, #0x55
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r4, pc}
nop
@@ -6505,7 +6505,7 @@ MOD83_02230954: ; 0x02230954
mov r0, #3
mov r1, #0x56
lsl r2, r0, #0x10
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _022309FC ; =0x00002998
add r0, r5, #0
mov r2, #0x56
@@ -6561,7 +6561,7 @@ _022309D0:
mov r0, #0
mov r1, #0x5b
lsl r2, r2, #8
- bl FUN_0201681C
+ bl CreateHeap
mov r0, #1
pop {r3, r4, r5, pc}
nop
@@ -7695,11 +7695,11 @@ _0223139A:
bl RegisterMainOverlay
_022313A6:
mov r0, #0x5b
- bl FUN_020168D0
+ bl DestroyHeap
add r0, r5, #0
bl OverlayManager_FreeData
mov r0, #0x56
- bl FUN_020168D0
+ bl DestroyHeap
ldr r0, _022313E0 ; =0x000015D4
ldr r0, [r4, r0]
cmp r0, #2
@@ -9726,7 +9726,7 @@ MOD83_022323A8: ; 0x022323A8
mov r0, #3
mov r1, #0x57
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _0223240C ; =0x00003CF4
add r0, r4, #0
mov r2, #0x57
@@ -9759,7 +9759,7 @@ MOD83_022323A8: ; 0x022323A8
mov r0, #0
mov r1, #0x5b
lsl r2, r2, #8
- bl FUN_0201681C
+ bl CreateHeap
mov r0, #1
pop {r4, pc}
.align 2, 0
@@ -11366,11 +11366,11 @@ _02233104:
ldr r1, _02233164 ; =MOD83_0223A434
bl RegisterMainOverlay
mov r0, #0x5b
- bl FUN_020168D0
+ bl DestroyHeap
ldr r0, [sp]
bl OverlayManager_FreeData
mov r0, #0x57
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -18509,7 +18509,7 @@ MOD83_02236764: ; 0x02236764
mov r0, #3
mov r1, #0x4e
lsl r2, r2, #0xe
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _022367F0 ; =0x00012608
add r0, r5, #0
mov r2, #0x4e
@@ -19287,7 +19287,7 @@ MOD83_02236DD0: ; 0x02236DD0
add r0, r4, #0
bl OverlayManager_FreeData
mov r0, #0x4e
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #0
bl MOD83_02239450
mov r0, #1
@@ -22827,7 +22827,7 @@ MOD83_022387A0: ; 0x022387A0
add r6, r1, #0
mov r0, #3
add r2, r3, #0
- bl FUN_0201681C
+ bl CreateHeap
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
diff --git a/arm9/modules/84/asm/module_84_thumb1.s b/arm9/modules/84/asm/module_84_thumb1.s
index e133a761..3c6bd557 100644
--- a/arm9/modules/84/asm/module_84_thumb1.s
+++ b/arm9/modules/84/asm/module_84_thumb1.s
@@ -25,7 +25,7 @@ _021D74FC:
mov r0, #3
mov r1, #0x4b
lsl r2, r0, #0x10
- bl FUN_0201681C
+ bl CreateHeap
ldr r1, _021D7670 ; =0x00001244
add r0, r6, #0
mov r2, #0x4b
@@ -269,7 +269,7 @@ _021D772E:
add r0, r6, #0
bl OverlayManager_FreeData
mov r0, #0x4b
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r4, r5, r6, pc}
_021D773E:
diff --git a/arm9/modules/85/asm/module_85.s b/arm9/modules/85/asm/module_85.s
index 221d2f9d..4ccc0477 100644
--- a/arm9/modules/85/asm/module_85.s
+++ b/arm9/modules/85/asm/module_85.s
@@ -18,7 +18,7 @@ MOD85_021D74E0: ; 0x021D74E0
mov r0, #3
mov r1, #0x4f
lsl r2, r2, #0x12
- bl FUN_0201681C
+ bl CreateHeap
add r0, r5, #0
mov r1, #8
mov r2, #0x4f
@@ -193,7 +193,7 @@ MOD85_021D7644: ; 0x021D7644
add r0, r5, #0
bl OverlayManager_FreeData
mov r0, #0x4f
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r4, r5, r6, pc}
.align 2, 0
diff --git a/arm9/modules/86/asm/module_86.s b/arm9/modules/86/asm/module_86.s
index 82dca844..0c2e1774 100644
--- a/arm9/modules/86/asm/module_86.s
+++ b/arm9/modules/86/asm/module_86.s
@@ -11,7 +11,7 @@ MOD86_021D74E0: ; 0x021D74E0
mov r0, #3
mov r1, #0x54
lsl r2, r2, #0x10
- bl FUN_0201681C
+ bl CreateHeap
add r0, r5, #0
mov r1, #0x44
mov r2, #0x54
@@ -233,7 +233,7 @@ MOD86_021D76B0: ; 0x021D76B0
add r0, r5, #0
bl OverlayManager_FreeData
add r0, r4, #0
- bl FUN_020168D0
+ bl DestroyHeap
mov r0, #1
pop {r4, r5, r6, pc}
.align 2, 0
diff --git a/arm9/src/error_message_reset.c b/arm9/src/error_message_reset.c
index f028f038..520a5077 100644
--- a/arm9/src/error_message_reset.c
+++ b/arm9/src/error_message_reset.c
@@ -46,7 +46,7 @@ THUMB_FUNC void PrintErrorMessageAndReset()
OS_SetArenaHi(OS_ARENA_MAIN, OS_GetInitArenaHi(OS_ARENA_MAIN));
OS_SetArenaLo(OS_ARENA_MAIN, OS_GetInitArenaLo(OS_ARENA_MAIN));
- FUN_020166C8(UNK_020FF4A4, NELEMS(UNK_020FF4A4), 1, 0);
+ InitHeapSystem(UNK_020FF4A4, NELEMS(UNK_020FF4A4), 1, 0);
FUN_0200E3A0(PM_LCD_TOP, 0);
FUN_0200E3A0(PM_LCD_BOTTOM, 0);
diff --git a/arm9/src/game_init.c b/arm9/src/game_init.c
index 05b1f9bd..f907d646 100644
--- a/arm9/src/game_init.c
+++ b/arm9/src/game_init.c
@@ -142,7 +142,7 @@ void FUN_02015FC8(void)
{
csum++;
}
- FUN_020166C8(UNK_020EDB10, NELEMS(UNK_020EDB10), 92, csum);
+ InitHeapSystem(UNK_020EDB10, NELEMS(UNK_020EDB10), 92, csum);
}
void InitSystemForTheGame(void)
diff --git a/arm9/src/heap.c b/arm9/src/heap.c
index 79763865..ba3776ac 100644
--- a/arm9/src/heap.c
+++ b/arm9/src/heap.c
@@ -4,12 +4,32 @@
#include "NNS_FND_expheap.h"
#include "NNS_FND_allocator.h"
-struct UnkStruct_020166C8 UNK_021C4D28;
+struct HeapInfo
+{
+ NNSFndHeapHandle *heapHandles;
+ NNSFndHeapHandle *parentHeapHandles;
+ void **subHeapRawPtrs;
+ u16 *numMemBlocks;
+ u8 *heapIdxs;
+ u16 totalNumHeaps;
+ u16 nTemplates;
+ u16 maxHeaps;
+ u16 unallocatedHeapId;
+};
+
+typedef struct MemoryBlock
+{
+ u8 filler_00[12];
+ u32 heapId:8;
+ u32 filler_0D:24;
+} MemoryBlock;
-THUMB_FUNC void FUN_020166C8(const struct UnkStruct_020EDB10 *templates, u32 nTemplates, u32 totalNumHeaps, u32 pre_size)
+struct HeapInfo sHeapInfo;
+
+THUMB_FUNC void InitHeapSystem(const struct UnkStruct_020EDB10 *templates, u32 nTemplates, u32 totalNumHeaps, u32 pre_size)
{
void * ptr;
- u32 unk_size, r7;
+ u32 unk_size, i;
unk_size = nTemplates + 24;
@@ -27,7 +47,7 @@ THUMB_FUNC void FUN_020166C8(const struct UnkStruct_020EDB10 *templates, u32 nTe
OS_AllocFromArenaLo(OS_ARENA_MAIN, pre_size, 4);
}
- UNK_021C4D28.heapHandles = (NNSFndHeapHandle*) OS_AllocFromArenaLo(
+ sHeapInfo.heapHandles = (NNSFndHeapHandle*) OS_AllocFromArenaLo(
OS_ARENA_MAIN,
(unk_size + 1) * sizeof(NNSFndHeapHandle)
+ unk_size * sizeof(NNSFndHeapHandle)
@@ -36,34 +56,34 @@ THUMB_FUNC void FUN_020166C8(const struct UnkStruct_020EDB10 *templates, u32 nTe
+ totalNumHeaps,
4
);
- UNK_021C4D28.unk04 = UNK_021C4D28.heapHandles + (unk_size + 1);
- UNK_021C4D28.unk08 = (void **)(UNK_021C4D28.unk04 + unk_size);
- UNK_021C4D28.unk0c = (u16 *)(UNK_021C4D28.unk08 + unk_size);
- UNK_021C4D28.heapIdxs = (u8 *)(UNK_021C4D28.unk0c + totalNumHeaps);
- UNK_021C4D28.totalNumHeaps = (u16)totalNumHeaps;
- UNK_021C4D28.nTemplates = (u16)nTemplates;
+ sHeapInfo.parentHeapHandles = sHeapInfo.heapHandles + (unk_size + 1);
+ sHeapInfo.subHeapRawPtrs = (void **)(sHeapInfo.parentHeapHandles + unk_size);
+ sHeapInfo.numMemBlocks = (u16 *)(sHeapInfo.subHeapRawPtrs + unk_size);
+ sHeapInfo.heapIdxs = (u8 *)(sHeapInfo.numMemBlocks + totalNumHeaps);
+ sHeapInfo.totalNumHeaps = (u16)totalNumHeaps;
+ sHeapInfo.nTemplates = (u16)nTemplates;
- UNK_021C4D28.unk1a = (u16)unk_size;
- UNK_021C4D28.unk18 = (u16)unk_size;
+ sHeapInfo.unallocatedHeapId = (u16)unk_size;
+ sHeapInfo.maxHeaps = (u16)unk_size;
- for (r7 = 0; r7 < nTemplates; r7++)
+ for (i = 0; i < nTemplates; i++)
{
- switch (templates[r7].arena)
+ switch (templates[i].arena)
{
case OS_ARENA_MAIN:
default:
- ptr = OS_AllocFromArenaLo(OS_ARENA_MAIN, templates[r7].size, 4);
+ ptr = OS_AllocFromArenaLo(OS_ARENA_MAIN, templates[i].size, 4);
break;
case OS_ARENA_MAINEX:
- ptr = OS_AllocFromArenaHi(OS_ARENA_MAINEX, templates[r7].size, 4);
+ ptr = OS_AllocFromArenaHi(OS_ARENA_MAINEX, templates[i].size, 4);
break;
}
if (ptr != NULL)
{
- UNK_021C4D28.heapHandles[r7] = NNS_FndCreateExpHeap(ptr, templates[r7].size);
- UNK_021C4D28.heapIdxs[r7] = (u8)r7;
+ sHeapInfo.heapHandles[i] = NNS_FndCreateExpHeap(ptr, templates[i].size);
+ sHeapInfo.heapIdxs[i] = (u8)i;
}
else
{
@@ -71,75 +91,73 @@ THUMB_FUNC void FUN_020166C8(const struct UnkStruct_020EDB10 *templates, u32 nTe
}
}
- while (nTemplates < unk_size + 1)
+ for (i = nTemplates; i < unk_size + 1; i++)
{
- UNK_021C4D28.heapHandles[nTemplates] = NULL;
- UNK_021C4D28.heapIdxs[nTemplates] = (u8)UNK_021C4D28.unk1a;
-
- nTemplates++;
+ sHeapInfo.heapHandles[i] = NULL;
+ sHeapInfo.heapIdxs[i] = (u8)sHeapInfo.unallocatedHeapId;
}
- while (nTemplates < totalNumHeaps)
+ while (i < totalNumHeaps)
{
- UNK_021C4D28.heapIdxs[nTemplates] = (u8)UNK_021C4D28.unk1a;
+ sHeapInfo.heapIdxs[i] = (u8)sHeapInfo.unallocatedHeapId;
- nTemplates++;
+ i++;
}
- for (nTemplates = 0; nTemplates < totalNumHeaps; nTemplates++)
+ for (i = 0; i < totalNumHeaps; i++)
{
- UNK_021C4D28.unk0c[nTemplates] = 0;
+ sHeapInfo.numMemBlocks[i] = 0;
}
}
-THUMB_FUNC s32 FUN_020167F4()
+THUMB_FUNC s32 FindFirstAvailableHeapHandle()
{
s32 i;
s32 j;
- for (i = UNK_021C4D28.nTemplates; i < UNK_021C4D28.unk18; i++)
+ for (i = sHeapInfo.nTemplates; i < sHeapInfo.maxHeaps; i++)
{
- if (UNK_021C4D28.heapHandles[i] == NULL)
+ if (sHeapInfo.heapHandles[i] == NULL)
return i;
}
return -1;
}
-THUMB_FUNC u32 FUN_0201681C(u32 param0, u32 param1, u32 param2)
+THUMB_FUNC BOOL CreateHeap(u32 parent, u32 child, u32 size)
{
- return FUN_02016834(param0, param1, param2, 4);
+ return CreateHeapInternal(parent, child, size, 4);
}
-THUMB_FUNC u32 FUN_02016828(u32 param0, u32 param1, u32 param2)
+THUMB_FUNC BOOL CreateHeapAtEnd(u32 parent, u32 child, u32 size)
{
- return FUN_02016834(param0, param1, param2, -4);
+ return CreateHeapInternal(parent, child, size, -4);
}
-THUMB_FUNC u32 FUN_02016834(u32 param0, u32 param1, u32 size, s32 alignment)
+THUMB_FUNC BOOL CreateHeapInternal(u32 parent, u32 child, u32 size, s32 alignment)
{
GF_ASSERT(OS_GetProcMode() != OS_PROCMODE_IRQ);
- u8 *ptr = UNK_021C4D28.heapIdxs;
- if (UNK_021C4D28.unk1a == ptr[param1])
+ u8 *ptr = sHeapInfo.heapIdxs;
+ if (sHeapInfo.unallocatedHeapId == ptr[child])
{
- NNSFndHeapHandle ptr2 = UNK_021C4D28.heapHandles[ptr[param0]];
- if (ptr2 != NULL)
+ NNSFndHeapHandle parentHeap = sHeapInfo.heapHandles[ptr[parent]];
+ if (parentHeap != NULL)
{
- void *ptr3 = NNS_FndAllocFromExpHeapEx(ptr2, size, alignment);
- if (ptr3 != NULL)
+ void *newHeapAddr = NNS_FndAllocFromExpHeapEx(parentHeap, size, alignment);
+ if (newHeapAddr != NULL)
{
- s32 i = FUN_020167F4();
+ s32 i = FindFirstAvailableHeapHandle();
if (i >= 0)
{
- UNK_021C4D28.heapHandles[i] = NNS_FndCreateExpHeap(ptr3, size);
+ sHeapInfo.heapHandles[i] = NNS_FndCreateExpHeap(newHeapAddr, size);
- if (UNK_021C4D28.heapHandles[i] != 0)
+ if (sHeapInfo.heapHandles[i] != 0)
{
- UNK_021C4D28.unk04[i] = ptr2;
- UNK_021C4D28.unk08[i] = ptr3;
- UNK_021C4D28.heapIdxs[param1] = (u8)i;
+ sHeapInfo.parentHeapHandles[i] = parentHeap;
+ sHeapInfo.subHeapRawPtrs[i] = newHeapAddr;
+ sHeapInfo.heapIdxs[child] = (u8)i;
return TRUE;
}
@@ -170,56 +188,56 @@ THUMB_FUNC u32 FUN_02016834(u32 param0, u32 param1, u32 size, s32 alignment)
return 0;
}
-THUMB_FUNC void FUN_020168D0(u32 heap_id)
+THUMB_FUNC void DestroyHeap(u32 heap_id)
{
GF_ASSERT (OS_GetProcMode() != OS_PROCMODE_IRQ);
- NNSFndHeapHandle handle = UNK_021C4D28.heapHandles[UNK_021C4D28.heapIdxs[heap_id]];
+ NNSFndHeapHandle handle = sHeapInfo.heapHandles[sHeapInfo.heapIdxs[heap_id]];
if (handle != NULL)
{
NNS_FndDestroyExpHeap(handle);
- u8 index = UNK_021C4D28.heapIdxs[heap_id];
- NNSFndHeapHandle ptr1 = UNK_021C4D28.unk04[index];
- void *ptr2 = UNK_021C4D28.unk08[index];
- if (ptr1 != NULL && ptr2 != NULL)
+ u8 index = sHeapInfo.heapIdxs[heap_id];
+ NNSFndHeapHandle parentHeap = sHeapInfo.parentHeapHandles[index];
+ void *childRaw = sHeapInfo.subHeapRawPtrs[index];
+ if (parentHeap != NULL && childRaw != NULL)
{
- NNS_FndFreeToExpHeap(ptr1, ptr2);
+ NNS_FndFreeToExpHeap(parentHeap, childRaw);
}
else
{
GF_ASSERT(0);
}
- UNK_021C4D28.heapHandles[UNK_021C4D28.heapIdxs[heap_id]] = NULL;
- UNK_021C4D28.unk04[UNK_021C4D28.heapIdxs[heap_id]] = NULL;
- UNK_021C4D28.unk08[UNK_021C4D28.heapIdxs[heap_id]] = NULL;
+ sHeapInfo.heapHandles[sHeapInfo.heapIdxs[heap_id]] = NULL;
+ sHeapInfo.parentHeapHandles[sHeapInfo.heapIdxs[heap_id]] = NULL;
+ sHeapInfo.subHeapRawPtrs[sHeapInfo.heapIdxs[heap_id]] = NULL;
- UNK_021C4D28.heapIdxs[heap_id] = (u8)UNK_021C4D28.unk1a;
+ sHeapInfo.heapIdxs[heap_id] = (u8)sHeapInfo.unallocatedHeapId;
}
}
-THUMB_FUNC u32 *FUN_02016944(void *param0, u32 param1, s32 param2, u32 param3)
+THUMB_FUNC void *AllocFromHeapInternal(NNSFndHeapHandle heap, u32 size, s32 alignment, u32 heap_id)
{
- GF_ASSERT(param0);
+ GF_ASSERT(heap);
OSIntrMode intr_mode = OS_DisableInterrupts();
- param1 += 16;
- u32 *ptr = (u32 *)NNS_FndAllocFromExpHeapEx(param0, param1, param2);
+ size += 16;
+ void *ptr = NNS_FndAllocFromExpHeapEx(heap, size, alignment);
OS_RestoreInterrupts(intr_mode);
- if (ptr != 0)
+ if (ptr != NULL)
{
- ptr[3] = (ptr[3] & ~0xff) | (param3 & 0xff);
+ ((MemoryBlock *)ptr)->heapId = heap_id;
- ptr += 4;
+ ptr += sizeof(MemoryBlock);
}
return ptr;
}
-THUMB_FUNC void FUN_02016988()
+THUMB_FUNC void AllocFail()
{
if (FUN_02031810() != 0)
{
@@ -230,18 +248,18 @@ THUMB_FUNC void FUN_02016988()
void *AllocFromHeap(u32 heap_id, u32 size)
{
void *ptr = 0;
- if (heap_id < UNK_021C4D28.totalNumHeaps)
+ if (heap_id < sHeapInfo.totalNumHeaps)
{
- u8 index = UNK_021C4D28.heapIdxs[heap_id];
- ptr = FUN_02016944(UNK_021C4D28.heapHandles[index], size, 4, heap_id);
+ u8 index = sHeapInfo.heapIdxs[heap_id];
+ ptr = AllocFromHeapInternal(sHeapInfo.heapHandles[index], size, 4, heap_id);
}
- if (ptr != 0)
+ if (ptr != NULL)
{
- UNK_021C4D28.unk0c[heap_id]++;
+ sHeapInfo.numMemBlocks[heap_id]++;
}
else
{
- FUN_02016988();
+ AllocFail();
}
return ptr;
@@ -250,19 +268,19 @@ void *AllocFromHeap(u32 heap_id, u32 size)
void *AllocFromHeapAtEnd(u32 heap_id, u32 size)
{
void *ptr = 0;
- if (heap_id < UNK_021C4D28.totalNumHeaps)
+ if (heap_id < sHeapInfo.totalNumHeaps)
{
- u8 index = UNK_021C4D28.heapIdxs[heap_id];
- ptr = FUN_02016944(UNK_021C4D28.heapHandles[index], size, -4, heap_id);
+ u8 index = sHeapInfo.heapIdxs[heap_id];
+ ptr = AllocFromHeapInternal(sHeapInfo.heapHandles[index], size, -4, heap_id);
}
- if (ptr != 0)
+ if (ptr != NULL)
{
- UNK_021C4D28.unk0c[heap_id]++;
+ sHeapInfo.numMemBlocks[heap_id]++;
}
else
{
- FUN_02016988();
+ AllocFail();
}
return ptr;
@@ -270,23 +288,24 @@ void *AllocFromHeapAtEnd(u32 heap_id, u32 size)
void FreeToHeap(void *ptr)
{
- u8 heap_id = (u8)((u32 *)ptr)[-1];
+ ptr -= sizeof(MemoryBlock);
+ u32 heap_id = ((MemoryBlock *)ptr)->heapId;
- if ((u16)heap_id < UNK_021C4D28.totalNumHeaps)
+ if (heap_id < sHeapInfo.totalNumHeaps)
{
- u8 index = UNK_021C4D28.heapIdxs[heap_id];
- void *ptr2 = UNK_021C4D28.heapHandles[index];
- GF_ASSERT(ptr2);
+ u8 index = sHeapInfo.heapIdxs[heap_id];
+ NNSFndHeapHandle heap = sHeapInfo.heapHandles[index];
+ GF_ASSERT(heap != NULL);
- if (UNK_021C4D28.unk0c[heap_id] == 0)
+ if (sHeapInfo.numMemBlocks[heap_id] == 0)
{
- FUN_02016B90(heap_id);
+ GF_heap_c_dummy_return_true(heap_id);
}
- GF_ASSERT(UNK_021C4D28.unk0c[heap_id]);
+ GF_ASSERT(sHeapInfo.numMemBlocks[heap_id] != 0);
- UNK_021C4D28.unk0c[heap_id]--;
+ sHeapInfo.numMemBlocks[heap_id]--;
OSIntrMode intr_mode = OS_DisableInterrupts();
- NNS_FndFreeToExpHeap(ptr2, ptr - 16);
+ NNS_FndFreeToExpHeap(heap, ptr);
OS_RestoreInterrupts(intr_mode);
return;
}
@@ -294,23 +313,23 @@ void FreeToHeap(void *ptr)
GF_ASSERT(0);
}
-void FreeToHeapExplicit(u32 param0, void *param1)
+void FreeToHeapExplicit(u32 heap_id, void *ptr)
{
GF_ASSERT (OS_GetProcMode() != OS_PROCMODE_IRQ);
- if (param0 < UNK_021C4D28.totalNumHeaps)
+ if (heap_id < sHeapInfo.totalNumHeaps)
{
- u8 index = UNK_021C4D28.heapIdxs[param0];
- void *ptr = UNK_021C4D28.heapHandles[index];
- GF_ASSERT (ptr );
+ u8 index = sHeapInfo.heapIdxs[heap_id];
+ NNSFndHeapHandle heap = sHeapInfo.heapHandles[index];
+ GF_ASSERT ( heap != NULL );
- u8 heap_id = (u8)((u32 *)param1)[-1];
- GF_ASSERT (heap_id == param0);
+ ptr -= sizeof(MemoryBlock);
+ GF_ASSERT (((MemoryBlock *)ptr)->heapId == heap_id);
- NNS_FndFreeToExpHeap(ptr, param1 - 16);
- GF_ASSERT (UNK_021C4D28.unk0c[param0]);
+ NNS_FndFreeToExpHeap(heap, ptr);
+ GF_ASSERT (sHeapInfo.numMemBlocks[heap_id] != 0);
- UNK_021C4D28.unk0c[param0]--;
+ sHeapInfo.numMemBlocks[heap_id]--;
return;
}
@@ -319,10 +338,10 @@ void FreeToHeapExplicit(u32 param0, void *param1)
THUMB_FUNC u32 GF_ExpHeap_FndGetTotalFreeSize(u32 heap_id)
{
- if (heap_id < UNK_021C4D28.totalNumHeaps)
+ if (heap_id < sHeapInfo.totalNumHeaps)
{
- u8 index = UNK_021C4D28.heapIdxs[heap_id];
- return NNS_FndGetTotalFreeSizeForExpHeap(UNK_021C4D28.heapHandles[index]);
+ u8 index = sHeapInfo.heapIdxs[heap_id];
+ return NNS_FndGetTotalFreeSizeForExpHeap(sHeapInfo.heapHandles[index]);
}
GF_ASSERT(0);
@@ -331,11 +350,11 @@ THUMB_FUNC u32 GF_ExpHeap_FndGetTotalFreeSize(u32 heap_id)
THUMB_FUNC void GF_ExpHeap_FndInitAllocator(NNSFndAllocator * pAllocator, u32 heap_id, int alignment)
{
- if (heap_id < UNK_021C4D28.totalNumHeaps)
+ if (heap_id < sHeapInfo.totalNumHeaps)
{
- u8 index = UNK_021C4D28.heapIdxs[heap_id];
- NNS_FndInitAllocatorForExpHeap(pAllocator, UNK_021C4D28.heapHandles[index], alignment);
+ u8 index = sHeapInfo.heapIdxs[heap_id];
+ NNS_FndInitAllocatorForExpHeap(pAllocator, sHeapInfo.heapHandles[index], alignment);
return;
}
@@ -351,16 +370,16 @@ THUMB_FUNC void ReallocFromHeap(void *ptr, u32 newSize)
{
u8 heap_id = (u8)((u32 *)ptr)[-1];
- u8 index = UNK_021C4D28.heapIdxs[heap_id];
+ u8 index = sHeapInfo.heapIdxs[heap_id];
- NNS_FndResizeForMBlockExpHeap(UNK_021C4D28.heapHandles[index], ptr - 16, newSize);
+ NNS_FndResizeForMBlockExpHeap(sHeapInfo.heapHandles[index], ptr - 16, newSize);
return;
}
GF_ASSERT(0);
}
-THUMB_FUNC u32 FUN_02016B90(u32 param0)
+THUMB_FUNC BOOL GF_heap_c_dummy_return_true(u32 heap_id)
{
-#pragma unused(param0)
- return 1;
+#pragma unused(heap_id)
+ return TRUE;
}
diff --git a/arm9/src/unk_02031734.c b/arm9/src/unk_02031734.c
index 49283907..7d3b4c03 100644
--- a/arm9/src/unk_02031734.c
+++ b/arm9/src/unk_02031734.c
@@ -97,14 +97,14 @@ THUMB_FUNC void FUN_020317C0()
if (UNK_021C5A00->unk3F >= 0x13)
{
- FUN_020168D0(0x31);
+ DestroyHeap(0x31);
}
FUN_02033ED0();
FUN_0202E4F0();
FreeToHeap(UNK_021C5A00);
- FUN_020168D0(0xf);
+ DestroyHeap(0xf);
UNK_021C5A00 = NULL;
}
@@ -123,7 +123,7 @@ THUMB_FUNC void FUN_02031824(struct SaveBlock2 *sav2)
{
if (UNK_021C5A00 == NULL)
{
- FUN_02016828(3, 0xf, 0xe000);
+ CreateHeapAtEnd(3, 0xf, 0xe000);
FUN_02031734(sav2, 0xa);
UNK_021C5A00->unk40 = 0;
@@ -201,7 +201,7 @@ THUMB_FUNC void FUN_02031948(struct SaveBlock2 *sav2, u8 param1, u8 param2, u32
{
if (FUN_02030F40() == 0)
{
- FUN_02016828(3, 0xf, 0x7080);
+ CreateHeapAtEnd(3, 0xf, 0x7080);
FUN_02031734(sav2, param1);
UNK_021C5A00->unk40 = param2;
UNK_021C5A00->unk30 = param3;
@@ -213,7 +213,7 @@ THUMB_FUNC void FUN_02031990(struct SaveBlock2 *sav2, u8 param1, u8 param2, u32
{
if (FUN_02030F40() == 0)
{
- FUN_02016828(3, 0xf, 0x7080);
+ CreateHeapAtEnd(3, 0xf, 0x7080);
FUN_02031734(sav2, param1);
UNK_021C5A00->unk40 = param2;
UNK_021C5A00->unk30 = param3;
@@ -273,7 +273,7 @@ THUMB_FUNC void FUN_02031A7C(struct SaveBlock2 *sav2)
{
if (UNK_021C5A00 == NULL)
{
- if (FUN_02016828(3, 0xf, 0x7080) == 0)
+ if (CreateHeapAtEnd(3, 0xf, 0x7080) == 0)
{
FUN_020335E0();
}
@@ -406,7 +406,7 @@ THUMB_FUNC void FUN_02031C74(struct SaveBlock2 *sav2, u8 param1)
{
if (FUN_02030F40() == 0)
{
- FUN_02016828(3, 0xf, 0x7080);
+ CreateHeapAtEnd(3, 0xf, 0x7080);
FUN_02031734(sav2, param1);
FUN_02031D20(FUN_02032E00, 0);
}
@@ -416,7 +416,7 @@ THUMB_FUNC void FUN_02031CA8(struct SaveBlock2 *sav2, u8 param1)
{
if (FUN_02030F40() == 0)
{
- FUN_02016828(3, 0xf, 0x7080);
+ CreateHeapAtEnd(3, 0xf, 0x7080);
FUN_02031734(sav2, param1);
FUN_02031D20(FUN_02032E48, 0);
}
@@ -1393,7 +1393,7 @@ THUMB_FUNC void FUN_02032BD0(struct SaveBlock2 *sav2)
{
if (FUN_02030F40() == 0)
{
- FUN_02016828(3, 0xf, 0x7000);
+ CreateHeapAtEnd(3, 0xf, 0x7000);
FUN_02031734(sav2, 0xe);
UNK_021C5A00->unk40 = 0;
FUN_02031D20(FUN_02032B8C, 0);
@@ -1479,7 +1479,7 @@ THUMB_FUNC void FUN_02032D44(struct SaveBlock2 *sav2)
{
if (FUN_02030F40() == 0)
{
- FUN_02016828(3, 0xf, 0x7000);
+ CreateHeapAtEnd(3, 0xf, 0x7000);
FUN_02031734(sav2, 0x11);
UNK_021C5A00->unk40 = 0;
FUN_02031D20(FUN_02032CF4, 0);
@@ -1866,7 +1866,7 @@ THUMB_FUNC void FUN_02033288(struct SaveBlock2 *sav2)
{
if (UNK_021C5A00 == NULL)
{
- FUN_02016828(3, 0xf, 0x100);
+ CreateHeapAtEnd(3, 0xf, 0x100);
UNK_021C5A00 =
(struct UnkStruct_02031734 *)AllocFromHeap(0xf, sizeof(struct UnkStruct_02031734));
MI_CpuFill8(UNK_021C5A00, 0, sizeof(struct UnkStruct_02031734));
@@ -1887,7 +1887,7 @@ THUMB_FUNC void FUN_020332DC()
FUN_020334E8(0, 0);
FreeToHeap(UNK_021C5A00);
UNK_021C5A00 = NULL;
- FUN_020168D0(0xf);
+ DestroyHeap(0xf);
}
}
@@ -1895,7 +1895,7 @@ THUMB_FUNC void FUN_02033310(struct SaveBlock2 *sav2)
{
if (UNK_021C5A00 == NULL)
{
- FUN_02016828(3, 0xf, 0x100);
+ CreateHeapAtEnd(3, 0xf, 0x100);
UNK_021C5A00 =
(struct UnkStruct_02031734 *)AllocFromHeap(0xf, sizeof(struct UnkStruct_02031734));
MI_CpuFill8(UNK_021C5A00, 0, sizeof(struct UnkStruct_02031734));
@@ -1915,7 +1915,7 @@ THUMB_FUNC void FUN_02033364()
FUN_020334E8(0, 0);
FreeToHeap(UNK_021C5A00);
UNK_021C5A00 = NULL;
- FUN_020168D0(0xf);
+ DestroyHeap(0xf);
}
}
@@ -1966,7 +1966,7 @@ THUMB_FUNC void FUN_0203341C()
{
if (FUN_0202E4C8())
{
- FUN_02016828(3, 0x31, 0x31000);
+ CreateHeapAtEnd(3, 0x31, 0x31000);
if (FUN_0202F918(1, 1, 0x200, 1) != 0)
{
MOD05_021D74E0(UNK_021C5A00->unk28, 0x31);
@@ -1986,7 +1986,7 @@ THUMB_FUNC void *FUN_0203346C(struct SaveBlock2 *sav2, u32 param1)
}
SetSoftResetDisableMask(1);
- FUN_02016828(3, 0xf, 0x7080);
+ CreateHeapAtEnd(3, 0xf, 0x7080);
FUN_02031734(sav2, 0x17);
UNK_021C5A00->unk00 = AllocFromHeap(0xf, param1);
MI_CpuFill8(UNK_021C5A00->unk00, 0, param1);
diff --git a/include/heap.h b/include/heap.h
index 3eb124ba..6910d4a6 100644
--- a/include/heap.h
+++ b/include/heap.h
@@ -11,28 +11,14 @@ struct UnkStruct_020EDB10
OSArenaId arena;
};
-struct UnkStruct_020166C8
-{
- NNSFndHeapHandle *heapHandles;
- NNSFndHeapHandle *unk04;
- void **unk08;
- u16 *unk0c;
- u8 *heapIdxs;
- u16 totalNumHeaps;
- u16 nTemplates;
- u16 unk18;
- u16 unk1a;
-};
-
-
-void FUN_020166C8(const struct UnkStruct_020EDB10 *templates, u32 nTemplates, u32 totalNumHeaps, u32 pre_size);
-s32 FUN_020167F4();
-u32 FUN_0201681C(u32 param0, u32 heap_id, u32 param2);
-u32 FUN_02016828(u32 param0, u32 param1, u32 param2);
-u32 FUN_02016834(u32 param0, u32 param1, u32 size, s32 alignment);
-void FUN_020168D0(u32 heap_id);
-u32 *FUN_02016944(void *param0, u32 param1, s32 param2, u32 param3);
-void FUN_02016988();
+void InitHeapSystem(const struct UnkStruct_020EDB10 *templates, u32 nTemplates, u32 totalNumHeaps, u32 pre_size);
+s32 FindFirstAvailableHeapHandle();
+BOOL CreateHeap(u32 parent, u32 child, u32 size);
+BOOL CreateHeapAtEnd(u32 parent, u32 child, u32 size);
+BOOL CreateHeapInternal(u32 parent, u32 child, u32 size, s32 alignment);
+void DestroyHeap(u32 heap_id);
+void *AllocFromHeapInternal(NNSFndHeapHandle heap, u32 size, s32 alignment, u32 heap_id);
+void AllocFail();
void *AllocFromHeap(u32 heap_id, u32 size);
void *AllocFromHeapAtEnd(u32 heap_id, u32 size);
void FreeToHeap(void *ptr);
@@ -40,6 +26,6 @@ void FreeToHeapExplicit(u32 heap_id, void * ptr);
u32 GF_ExpHeap_FndGetTotalFreeSize(u32 heap_id);
void GF_ExpHeap_FndInitAllocator(NNSFndAllocator * pAllocator, u32 heap_id, int alignment);
void ReallocFromHeap(void *ptr, u32 newSize);
-u32 FUN_02016B90(u32 param0);
+BOOL GF_heap_c_dummy_return_true(u32 heap_id);
#endif //POKEDIAMOND_HEAP_H