From affb101ab37661d5fc198c8ad3190cfd18bd7560 Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Sun, 18 Sep 2022 19:09:39 -0500 Subject: [PATCH] core2/code_B9770.c progress --- progress/progress_core2.svg | 4 ++-- progress/progress_total.svg | 4 ++-- src/core2/code_B9770.c | 36 ++++++++++++++++++------------------ 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/progress/progress_core2.svg b/progress/progress_core2.svg index ad235435..1968d120 100644 --- a/progress/progress_core2.svg +++ b/progress/progress_core2.svg @@ -17,7 +17,7 @@ core2 - 85.3818% - 85.3818% + 85.4270% + 85.4270% \ No newline at end of file diff --git a/progress/progress_total.svg b/progress/progress_total.svg index bc0f973f..a5932be0 100644 --- a/progress/progress_total.svg +++ b/progress/progress_total.svg @@ -17,7 +17,7 @@ Banjo-Kazooie (us.v10) - 86.7842% - 86.7842% + 86.8101% + 86.8101% \ No newline at end of file diff --git a/src/core2/code_B9770.c b/src/core2/code_B9770.c index 22fc3653..0a7b6e6e 100644 --- a/src/core2/code_B9770.c +++ b/src/core2/code_B9770.c @@ -222,6 +222,7 @@ extern f64 D_80379070; s16 *D_803858A0; /* .code */ +//glspline_clamp f32 func_80340700(f32 value, f32 min, f32 max) { return (value < min) ? min : (max < value) ? max @@ -234,25 +235,24 @@ bool func_80340748(s32 arg0, s32 arg1, s32 arg2, f32 arg3[3], s32 arg4, s32 arg5 #pragma GLOBAL_ASM("asm/nonmatchings/core2/code_B9770/func_80340760.s") -#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_B9770/func_80340A4C.s") -// f32 func_80340A4C(f32 arg0, s32 arg1, f32 *arg2){ -// s32 tmp_v1; -// s32 sp30; -// f32 sp24[3]; -// f32 f20; +f32 func_80340A4C(f32 arg0, s32 arg1, f32 *arg2) { + s32 tmp_v1; + s32 tmp_t7; + f32 sp24[3]; + f32 *var_a0; -// sp30 = arg1 - 3; -// f20 = func_80340700( arg0, 0.0f, 1.0f)*sp30; -// tmp_v1 = f20; -// arg1 -= 4; -// tmp_v1 = MIN(tmp_v1, arg1); -// arg2 += tmp_v1; -// f20 -= tmp_v1; -// sp24[2] = -0.5*arg2[0] + 1.5*arg2[1] + -1.5*arg2[2] + 0.5*arg2[3]; -// sp24[1] = 1.0*arg2[0] + -2.5*arg2[1] + 2.0*arg2[2] + -0.5*arg2[3]; -// sp24[0] = -0.5*arg2[0] + 0.5*arg2[2]; -// return f20*(sp24[0] + f20*(sp24[1] + f20*sp24[2])) + (f64)arg2[1]; -// } + tmp_t7 = arg1 - 3; + tmp_v1 = arg0 = tmp_t7 * func_80340700(arg0, 0.0f, 1.0f); + tmp_v1 = (tmp_v1 >= (arg1 - 4)) ? (arg1 - 4) : (tmp_v1); + arg2 += tmp_v1; + arg0 -= tmp_v1; + + sp24[2] = -0.5*arg2[0] + 1.5*arg2[1] + -1.5*arg2[2] + 0.5*arg2[3]; + sp24[1] = 1.0*arg2[0] + -2.5*arg2[1] + 2.0*arg2[2] + -0.5*arg2[3]; + sp24[0] = -0.5*arg2[0] + 0.0*arg2[1] + 0.5*arg2[2] + 0.0*arg2[3]; + + return (((((sp24[2] * arg0) + sp24[1]) * arg0) + sp24[0]) * arg0) + (1.0*arg2[1]); +} void func_80340BE4(f32 arg0, s32 arg1, s32 arg2, s32 arg3, f32 * arg4, f32 arg5[3]); #pragma GLOBAL_ASM("asm/nonmatchings/core2/code_B9770/func_80340BE4.s")