diff --git a/README.md b/README.md index 10cab2f3..24c9e251 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# banjo (93.4956%) +# banjo (93.5289%) diff --git a/progress/progress_core1.svg b/progress/progress_core1.svg index 018d6d19..1249385c 100644 --- a/progress/progress_core1.svg +++ b/progress/progress_core1.svg @@ -9,7 +9,7 @@ - + @@ -17,7 +17,7 @@ core1 - 87.9020% - 87.9020% + 88.1315% + 88.1315% \ No newline at end of file diff --git a/progress/progress_total.svg b/progress/progress_total.svg index f7490e13..d10f4bba 100644 --- a/progress/progress_total.svg +++ b/progress/progress_total.svg @@ -17,7 +17,7 @@ Banjo-Kazooie (us.v10) - 93.4956% - 93.4956% + 93.5289% + 93.5289% \ No newline at end of file diff --git a/src/core1/code_9D30.c b/src/core1/code_9D30.c index 17532259..458065f2 100644 --- a/src/core1/code_9D30.c +++ b/src/core1/code_9D30.c @@ -920,43 +920,49 @@ void func_8024A490(s32 x, s32 y, s32 w, s32 h) { } } -#ifndef NONMATCHING -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_9D30/func_8024A564.s") -#else -void func_8024A564(s32 x, s32 y, u16 *arg2, s32 arg3, s32 arg4, f32 arg5, f32 arg6) { - s32 temp_a2; - s32 temp_a2_2; - s32 temp_a2_3; - s32 temp_f6; - s32 temp_f6_2; - s32 temp_lo; - s32 temp_t5; - s32 var_a0; - s32 var_a2; - s32 var_t1; - s32 var_t3; - s32 var_v0; - s32 var_v1; - u16 temp_t8; - s16 *var_t0; - s16 *var_t2; - - var_v0 = 0; - var_v1 = D_80276588; - var_t0 = &D_803A5D00[D_802806EC][x + y * D_80276588]; - for( var_t1 = (arg4 * arg6) + 0.5; var_t1 != 0; var_t1--){ - var_a2 = ((var_v0 >> 8) * arg3) << 8; - var_t2 = var_t0; - var_v0 += (s32) ((f64) (256.0f / arg6) + 0.5); - for(var_t3 = (arg3 * arg5) + 0.5; var_t3 != 0; var_t3--){ - *var_t2 = arg2[var_a2 >> 8]; - var_a2 += (s32) ((f64) (256.0f / arg5) + 0.5); - var_t2++; - } - var_t0 += D_80276588; +void func_8024A564(s32 x, s32 y, u16 *arg2, s32 arg3, s32 arg4, f32 arg5, f32 arg6) +{ + s32 temp_a2; + s32 temp_a2_2; + s32 temp_a2_3; + s32 temp_f6; + s32 temp_f6_2; + s32 temp_lo; + s32 temp_t5; + s32 var_a0; + s32 var_a2; + s32 new_var; + f32 new_var3; + s32 new_var2; + s32 var_t1; + s32 var_t3; + s32 var_v0; + s32 var_v1; + u16 temp_t8; + s16 *var_t0; + s16 *var_t2; + var_v0 = 0; + var_v1 = D_80276588; + var_t0 = &D_803A5D00[D_802806EC][x + (y * D_80276588)]; + new_var = (s32) (((f64) (256.0f / (new_var3 = arg6))) + 0.5); + new_var2 = (s32) (((f64) (256.0f / arg5)) + 0.5); + for (var_t1 = (arg4 * arg6) + 0.5; var_t1 != 0; var_t1--) + { + temp_lo = (arg3 * arg5) + 0.5; + var_a2 = ((var_v0 >> 8) * arg3) << 8; + var_t2 = var_t0; + for (var_t3 = temp_lo; var_t3 != 0; var_t3--) + { + *var_t2 = arg2[var_a2 >> 8]; + var_a2 += new_var2; + var_t2++; } + + var_t0 += D_80276588; + var_v0 += new_var; + } + } -#endif //fills in rectangle in frame buffer with D_802806E0 color void draw_prim_rect(s32 x, s32 y, s32 w, s32 h) {