diff --git a/README.md b/README.md index 720620de..a40189a2 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# banjo (97.7499%) +# banjo (97.7837%) diff --git a/progress/progress_core1.svg b/progress/progress_core1.svg index 58f73fa1..d6bb42ec 100644 --- a/progress/progress_core1.svg +++ b/progress/progress_core1.svg @@ -9,7 +9,7 @@ - + @@ -17,7 +17,7 @@ core1 - 96.5630% - 96.5630% + 96.7959% + 96.7959% \ No newline at end of file diff --git a/progress/progress_total.svg b/progress/progress_total.svg index bfc200d4..9e63e2af 100644 --- a/progress/progress_total.svg +++ b/progress/progress_total.svg @@ -17,7 +17,7 @@ Banjo-Kazooie (us.v10) - 97.7499% - 97.7499% + 97.7837% + 97.7837% \ No newline at end of file diff --git a/src/core1/code_13990.c b/src/core1/code_13990.c index 03d510bb..7b6304a3 100644 --- a/src/core1/code_13990.c +++ b/src/core1/code_13990.c @@ -403,7 +403,37 @@ void mlMtx_apply_vec3s(s16 dst[3], s16 src[3]) { dst[2] = (spC[2] >= 0.0) ? spC[2] + 0.5 : spC[2] - 0.5; } -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_13990/func_8025276C.s") +void func_8025276C(s32 arg0[3], s32 arg1[3], s32 arg2[3], s32 arg3[3]) { + s32 var_t0; + s32 j; + f32 sp48[8][3]; + f32 *ptr = sp48[0]; + + for(var_t0 = 0; var_t0 < 8; var_t0++){ + ptr[0] = (var_t0 & 1) ? arg3[0] : arg2[0]; + ptr[1] = (var_t0 & 2) ? arg3[1] : arg2[1]; + ptr[2] = (var_t0 & 4) ? arg3[2] : arg2[2]; + ptr+=3; + } + + for(var_t0 = 0; var_t0 < 8; var_t0++){ + func_8025235C(sp48[var_t0], sp48[var_t0]); + } + + for(var_t0 = 0; var_t0< 3; var_t0++){ + arg0[var_t0] = arg1[var_t0] = sp48[0][var_t0]; + } + + for(var_t0 = 1; var_t0 < 8; var_t0++){ + for(j = 0; j < 3; j++){ + if(sp48[var_t0][j] < arg0[j]){ + arg0[j] = sp48[var_t0][j]; + } else if (arg1[j] < sp48[var_t0][j]){ + arg1[j] = sp48[var_t0][j]; + } + } + } +} void mlMtxTranslate(f32 x, f32 y, f32 z) { f32 *temp_t6;