summaryrefslogtreecommitdiff
path: root/src/memory.c
diff options
context:
space:
mode:
authornullableVoidPtr <30564701+nullableVoidPtr@users.noreply.github.com>2018-11-20 13:17:30 +0800
committernullableVoidPtr <30564701+nullableVoidPtr@users.noreply.github.com>2018-11-20 15:04:02 +0800
commitc7045ae3694f677b634f3908c1ea935c2998727e (patch)
treeb4aa509751cfa3d71897ae9442c39875db8cbc21 /src/memory.c
parentf4ef62bb4134498a4b4a9c4d61b99bda24c98680 (diff)
Identify, split, decompile m4a, and more
ResetSprites, gCharMemCursor, gSpriteCount; analysed subheaps; identified more file pointers
Diffstat (limited to 'src/memory.c')
-rw-r--r--src/memory.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/memory.c b/src/memory.c
index 0d282d5..05c89a2 100644
--- a/src/memory.c
+++ b/src/memory.c
@@ -113,7 +113,7 @@ void DoInitHeap(struct HeapDescriptor *descriptor, struct HeapSettings *settings
descriptor->start = settings->start;
descriptor->size = aligned_size;
descriptor->unk0 = 2;
- descriptor->unk4 = 0;
+ descriptor->parentHeap = NULL;
descriptor->freeList = freeList;
descriptor->freeCount = 1;
descriptor->freeListLength = freeListLength;
@@ -126,7 +126,7 @@ void DoInitHeap(struct HeapDescriptor *descriptor, struct HeapSettings *settings
freeList->grp = 0;
}
-void InitSubHeap(struct HeapDescriptor *parentHeap, struct HeapFreeListElement *start, u32 freeListMax)
+void InitSubHeap(struct HeapDescriptor *parentHeap, struct HeapMemoryBlock *block, u32 freeListMax)
{
u32 freeListSize;
u32 aligned_size;
@@ -137,9 +137,9 @@ void InitSubHeap(struct HeapDescriptor *parentHeap, struct HeapFreeListElement *
freeListSize = freeListMax * 3;
alignment = ~3;
freeListSize *= 8;
- aligned_size = (start->atb - freeListSize) & alignment; //possible struct misalignment?
- freeList = (struct HeapFreeListElement *)start->unk_atb;
- settings.start = &((u8 *)start->unk_atb)[freeListSize];
+ aligned_size = (block->size - freeListSize) & alignment;
+ freeList = (struct HeapFreeListElement *)block->start;
+ settings.start = &((u8 *)block->start)[freeListSize];
settings.size = aligned_size;
DoInitHeap(parentHeap, &settings, freeList, freeListMax);
-} \ No newline at end of file
+}