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