diff --git a/README.md b/README.md
index 34433d1f..98c970fe 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# banjo (95.7970%)
+# banjo (95.8191%)
diff --git a/decompressed.us.v10.yaml b/decompressed.us.v10.yaml
index adbac4ef..dd385d0a 100644
--- a/decompressed.us.v10.yaml
+++ b/decompressed.us.v10.yaml
@@ -619,7 +619,7 @@ segments:
- [0xF896A0, c, code_33D40] #DONE
- [0xF898F0, c, code_33F90] #DONE
- [0xF89C70, c, code_34310] #DONE
- - [0xF8A0F0, c, code_34790]
+ - [0xF8A0F0, c, code_34790] #DONE
- [0xF8AE80, c, code_35520] #DONE
- [0xF8B010, c, code_356B0] #DONE
- [0xF8D310, c, code_379B0]
diff --git a/progress/progress_core2.svg b/progress/progress_core2.svg
index 9567af62..62fe6fed 100644
--- a/progress/progress_core2.svg
+++ b/progress/progress_core2.svg
@@ -17,7 +17,7 @@
core2
- 94.5406%
- 94.5406%
+ 94.5791%
+ 94.5791%
\ No newline at end of file
diff --git a/progress/progress_total.svg b/progress/progress_total.svg
index 77cd9f35..edcf84d5 100644
--- a/progress/progress_total.svg
+++ b/progress/progress_total.svg
@@ -17,7 +17,7 @@
Banjo-Kazooie (us.v10)
- 95.7970%
- 95.7970%
+ 95.8191%
+ 95.8191%
\ No newline at end of file
diff --git a/src/core2/code_34790.c b/src/core2/code_34790.c
index b759de5d..0ff706ae 100644
--- a/src/core2/code_34790.c
+++ b/src/core2/code_34790.c
@@ -2,9 +2,11 @@
#include "functions.h"
#include "variables.h"
+extern Actor *func_80328230(enum actor_e, f32[3], f32[3]);
extern void func_802BEA4C(f32[3], f32[3], f32, f32[3]);
extern void func_802BEBE8(f32[3], f32[3], f32, f32[3]);
extern void func_802BEAAC(f32[3], f32[3], f32, f32[3], f32[3], f32[3], f32[3]);
+extern NodeProp *cubeList_findNodePropByActorId(enum actor_e, s32[3]);
extern BKCollisionTri *func_80320B98(f32[3], f32[3], f32[3], s32);
f32 func_802BB938(f32[3], f32[3]);
f32 func_802BBD48(void);
@@ -38,7 +40,7 @@ f32 D_8037D918[3];
/* .code */
bool func_802BB720(s32 arg0, f32 arg1[3], f32 arg2[3], s32 *arg3) {
f32 temp_f6;
- s16 *temp_v0;
+ NodeProp *temp_v0;
if (arg0 == 0x65) {
arg0 = 0x1A;
@@ -55,7 +57,7 @@ bool func_802BB720(s32 arg0, f32 arg1[3], f32 arg2[3], s32 *arg3) {
if ((arg0 >= 0x5B) && (arg0 < 0x63)) {
arg0 -= 0x40;
}
- temp_v0 = cubeList_findNodePropByActorId(D_803657E0[arg0], 0);
+ temp_v0 = cubeList_findNodePropByActorId(D_803657E0[arg0], NULL);
if (temp_v0 != NULL) {
nodeprop_getPosition(temp_v0, arg1);
*arg3 = func_80304DB8(temp_v0);
@@ -212,7 +214,7 @@ f32 func_802BBEA4(f32 arg0[3], f32 arg1[3], f32 arg2, s32 arg3, s32 arg4) {
ml_vec3f_copy(sp4C, sp58[D_8037D8D0.unk30]);
sp38 = func_80320B98(arg0, sp4C, sp3C, arg4);
if (sp38 != NULL) {
- phi_f2 = ml_vec3f_distance(arg0, &sp4C);
+ phi_f2 = ml_vec3f_distance(arg0, sp4C);
D_8037D8D0.unk0[D_8037D8D0.unk30] = sp38->flags;
} else {
phi_f2 = arg2;
@@ -329,16 +331,12 @@ Actor *func_802BC2A0(f32 position[3], f32 rotation[3]){
return func_80328230(0x66, position, rotation);
}
-#ifndef NONMATCHING
-#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_34790/func_802BC2CC.s")
-#else
+
void func_802BC2CC(s32 arg0) {
- f32 *sp24;
- f32 *sp20;
+ f32 *sp24 = D_8037D908;\
+ f32 *sp20 = D_8037D918;
s32 sp1C;
- sp24 = &D_8037D908;
- sp20 = &D_8037D918;
if (func_803203FC(0xE) != 0) {
func_80347A14(0);
}
@@ -356,7 +354,7 @@ void func_802BC2CC(s32 arg0) {
func_8024CD88(D_8037D908);
func_8024CE18(D_8037D918);
func_8024CFD4();
- __spawnQueue_add_2((GenMethod_2)func_802BC2A0, D_8037D908, D_8037D918);
+ __spawnQueue_add_2((GenMethod_2)func_802BC2A0, reinterpret_cast(s32, sp24), reinterpret_cast(s32, sp20));
if (D_8037D8C0 == 2) {
func_802BE720();
if (sp1C != 0x63) {
@@ -365,7 +363,6 @@ void func_802BC2CC(s32 arg0) {
}
}
}
-#endif
bool func_802BC428(void){
return D_8037D8C6;
diff --git a/src/core2/code_C0E60.c b/src/core2/code_C0E60.c
index 4317a7a5..c72d2c90 100644
--- a/src/core2/code_C0E60.c
+++ b/src/core2/code_C0E60.c
@@ -4,7 +4,7 @@
extern void func_80355C60(f32[3], f32);
-void func_80348044(Gfx **gfx, BKSprite* sprite, s32 frame, s32 tmem, s32 rtile, s32 arg5, s32 arg6, s32 cms, s32 cmt, s32 *width, s32 *height, s32 *argB, s32 *argC, s32 *argD, s32 *argE, s32 *argF);
+void func_80348044(Gfx **gfx, BKSprite* sprite, s32 frame, s32 tmem, s32 rtile, s32 arg5, s32 arg6, s32 cms, s32 cmt, s32 *width, s32 *height, s32 *argB, s32 *argC, s32 *argD, s32 *argE, s32 *textureCount);
#define rare_gDPLoadMultiBlock(pkt, timg, tmem, rtile, fmt, siz, width, height, \
uls, ult, \
@@ -123,7 +123,7 @@ void func_80347FC0(Gfx **gfx, BKSprite *sprite, s32 frame, s32 tmem, s32 rtile,
);
}
-void func_80348044(Gfx **gfx, BKSprite* sprite, s32 frame, s32 tmem, s32 rtile, s32 arg5, s32 arg6, s32 cms, s32 cmt, s32 *width, s32 *height, s32 *argB, s32 *argC, s32 *argD, s32 *argE, s32 *argF) {
+void func_80348044(Gfx **gfx, BKSprite* sprite, s32 frame, s32 tmem, s32 rtile, s32 arg5, s32 arg6, s32 cms, s32 cmt, s32 *width, s32 *height, s32 *argB, s32 *argC, s32 *argD, s32 *argE, s32 *textureCount) {
BKSpriteFrame *sprite_frame;
s32 palette_addr;
BKSpriteTextureBlock *var_v1;
@@ -138,11 +138,11 @@ void func_80348044(Gfx **gfx, BKSprite* sprite, s32 frame, s32 tmem, s32 rtile,
sprite_frame = spriteGetFramePtr(sprite, frame);
*argB = (s32) sprite_frame->w;
*argC = (s32) sprite_frame->h;
- if (*argF == -1) {
- *argF = (s32) sprite_frame->chunkCnt;
+ if (*textureCount == -1) {
+ *textureCount = (s32) sprite_frame->chunkCnt;
}
- (*argF)--;
- chunk_count = (*argF);
+ (*textureCount)--;
+ chunk_count = (*textureCount);
if (sprite->type & SPRITE_TYPE_CI4) {
for(palette_addr = (s32)(sprite_frame + 1); palette_addr % 8; palette_addr++);
gDPSetTextureLUT((*gfx)++, G_TT_RGBA16);