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) {