diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2021-05-30 20:13:58 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2021-05-30 20:13:58 -0400 |
commit | daf02d9b198906d93a9b289315d0fc1e519843ef (patch) | |
tree | d111ed6157e21f26c4df2c2768084c51e58803d9 | |
parent | 2e6a113eb27577764b1b6de22e04ae1f73d3069f (diff) |
Document heap.c, 3
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 |