From 99201a82877c7a4ebbc1ad394ddfbeb49fe36451 Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Sun, 18 Dec 2022 15:24:28 -0600 Subject: [PATCH] func_80255200() match, core1/memory.c done --- README.md | 2 +- decompressed.us.v10.yaml | 2 +- progress/progress_core1.svg | 4 ++-- progress/progress_total.svg | 4 ++-- src/core1/memory.c | 30 +++++++++++++++--------------- src/core2/code_C9F00.c | 12 ++++++------ 6 files changed, 27 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 9c816644..a33f7a52 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# banjo (96.5722%) +# banjo (96.5885%) diff --git a/decompressed.us.v10.yaml b/decompressed.us.v10.yaml index 21bdd87c..b402da1e 100644 --- a/decompressed.us.v10.yaml +++ b/decompressed.us.v10.yaml @@ -173,7 +173,7 @@ segments: - [0xF2E880, c, code_15630] #DONE - [0xF2E9C0, c, code_15770] - [0xF2ED80, c, code_15B30] #DONE - - [0xF2FCA0, c, memory] + - [0xF2FCA0, c, memory] #DONE - [0xF31360, c, code_18110] #DONE - [0xF31460, c, code_18210] #DONE - [0xF31560, c, code_18310] #DONE diff --git a/progress/progress_core1.svg b/progress/progress_core1.svg index cd7ed568..4e27106a 100644 --- a/progress/progress_core1.svg +++ b/progress/progress_core1.svg @@ -17,7 +17,7 @@ core1 - 93.4675% - 93.4675% + 93.5796% + 93.5796% \ No newline at end of file diff --git a/progress/progress_total.svg b/progress/progress_total.svg index 52d0a7ab..68fe5812 100644 --- a/progress/progress_total.svg +++ b/progress/progress_total.svg @@ -17,7 +17,7 @@ Banjo-Kazooie (us.v10) - 96.5722% - 96.5722% + 96.5885% + 96.5885% \ No newline at end of file diff --git a/src/core1/memory.c b/src/core1/memory.c index 3f984e69..ca1b4f3d 100644 --- a/src/core1/memory.c +++ b/src/core1/memory.c @@ -496,28 +496,29 @@ void func_80255198(void){ } } -#ifndef NONMATCHING -#pragma GLOBAL_ASM("asm/nonmatchings/core1/memory/func_80255200.s") -#else //resizes and fragments a block; void func_80255200(HeapHeader *block, s32 size){ - u32 chnk_size; u32 remaining_bytes; EmptyHeapBlock *a0; + u32 tmp, tmp2, tmp3; - chnk_size = (u32)block->next - (u32)block; - remaining_bytes = chnk_size - 0x20; - block->unusedBytes_C_31 = chnk_size - sizeof(HeapHeader) - size; + block->unusedBytes_C_31 = chunkSize(block) - size; + tmp = ((u32) (block)->next) - ((u32) (block)); if(size > 0) - remaining_bytes = chunkSize(block) - __heap_align(size); - else{ - remaining_bytes = remaining_bytes; + { + // tmp2 = chunkSize(block) - sizeof(HeapHeader); + tmp2 = __heap_align(size); + remaining_bytes = chunkSize(block) - tmp2; + } + else{ + remaining_bytes = tmp - sizeof(EmptyHeapBlock); } - - if(remaining_bytes >= 0x20){ - heap_occupiedBytes = heap_occupiedBytes - remaining_bytes; - a0 = (s32)block + (chnk_size - remaining_bytes); + if(remaining_bytes >= sizeof(EmptyHeapBlock)){ + tmp = (chunkSize(block) + sizeof(HeapHeader)) - remaining_bytes; + if(tmp); + a0 = (s32)block + tmp; + heap_occupiedBytes -= remaining_bytes; a0->hdr.prev = block; a0->hdr.next = block->next; @@ -527,7 +528,6 @@ void func_80255200(HeapHeader *block, s32 size){ func_8025456C(a0); } } -#endif void func_80255300(HeapHeader *block, s32 size){ func_80255200(block, size); diff --git a/src/core2/code_C9F00.c b/src/core2/code_C9F00.c index 7b04fb55..79f1493d 100644 --- a/src/core2/code_C9F00.c +++ b/src/core2/code_C9F00.c @@ -138,19 +138,19 @@ s32 func_80350F7C(ActorMarker *marker, s32 arg1, f32 arg2[3], s32 arg3, s32 arg4 return sp4C; } -s32 func_803510B4(ActorMarker *marker, s32 arg1, f32 arg2[3], f32 arg3, s32 arg4, s32 arg5, s32 arg6) { +s32 func_803510B4(ActorMarker *marker, s32 arg1, f32 arg2[3], f32 arg3, s32 arg4, s32 arg5, s32 flagFliter) { s32 pad44; Struct68s *sp40; - BKVertexList *sp3C; - BKCollisionList *sp38; + BKVertexList *vertex_list; + BKCollisionList *collision_list; sp40 = &D_803861B0.unk4[marker->actrArrayIdx]; if ((sp40->unkC == NULL) || (sp40->unk30 & 1)) { return 0; } - sp38 = func_8033A084(sp40->unkC); - sp3C = func_8033A148(sp40->unkC); - return func_802E9118(sp38, sp3C, sp40->unk14, sp40->unk20, sp40->unk2C, arg1, arg2, arg3, arg4, arg5, arg6); + collision_list = func_8033A084(sp40->unkC); + vertex_list = func_8033A148(sp40->unkC); + return func_802E9118(collision_list, vertex_list, sp40->unk14, sp40->unk20, sp40->unk2C, arg1, arg2, arg3, arg4, arg5, flagFliter); } s32 func_80351198(ActorMarker *marker, s32 arg1, f32 arg2, s32 arg3, s32 arg4) {