From cf25186021b33ad4f6917c86177a10972a29c154 Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Sat, 5 Nov 2022 16:50:25 -0500 Subject: [PATCH] core1/code_9D30.c progress --- README.md | 2 +- progress/progress_core1.svg | 6 ++--- progress/progress_total.svg | 4 ++-- src/core1/code_7F60.c | 1 + src/core1/code_9D30.c | 48 +++++++++++++++++++++++++++++++++++-- subyaml/core1.us.v10.yaml | 2 +- 6 files changed, 54 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index a1098dc6..974c3c0f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# banjo (92.8322%) +# banjo (92.8727%) diff --git a/progress/progress_core1.svg b/progress/progress_core1.svg index c6eec6a3..7e175f86 100644 --- a/progress/progress_core1.svg +++ b/progress/progress_core1.svg @@ -9,7 +9,7 @@ - + @@ -17,7 +17,7 @@ core1 - 86.2221% - 86.2221% + 86.5006% + 86.5006% \ No newline at end of file diff --git a/progress/progress_total.svg b/progress/progress_total.svg index dce23c96..0b212400 100644 --- a/progress/progress_total.svg +++ b/progress/progress_total.svg @@ -17,7 +17,7 @@ Banjo-Kazooie (us.v10) - 92.8322% - 92.8322% + 92.8727% + 92.8727% \ No newline at end of file diff --git a/src/core1/code_7F60.c b/src/core1/code_7F60.c index 7d95f7ac..1ea93121 100644 --- a/src/core1/code_7F60.c +++ b/src/core1/code_7F60.c @@ -130,6 +130,7 @@ void func_80245FB8(float mf[4][4], u16 *perspNorm, float fovy, float aspect, flo } #endif + void guPerspective(Mtx *m, u16 *perspNorm, f32 fovy, f32 aspect, f32 near, f32 far, f32 scale) { f32 sp28[4][4]; diff --git a/src/core1/code_9D30.c b/src/core1/code_9D30.c index 1736f26e..12ee9855 100644 --- a/src/core1/code_9D30.c +++ b/src/core1/code_9D30.c @@ -240,9 +240,53 @@ void func_80247F9C(s32 arg0){ func_802484D0(); } -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_9D30/func_80247FD0.s") +void func_80247FD0(u32 arg0) { + s32 var_s0; -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_9D30/func_80248098.s") + D_80275BC4 = D_80275BBC; + D_80275BD4 = 2; + func_80247CEC(D_80275BCC, 0x25, 2); + var_s0 = (arg0 >= 0x01000000U) ? 0x1C + : (arg0 >= 0x10000U) ? 0x14 + :0xC; + if (var_s0 >= 0) { + do { + func_80247CEC(D_80275BCC, ((s32) arg0 >> var_s0) & 0xF, 2); + var_s0 -= 4; + } while (var_s0 >= 0); + } + func_80248520(); +} + +void func_80248098(f32 arg0) { + f32 var_f22; + s32 var_s0; + + D_80275BC4 = D_80275BBC; + D_80275BD4 = 2; + if (arg0 < 0.0f) { + func_80247CEC(D_80275BCC, 0x26, 2); + arg0 *= -1.0f; + } + var_f22 = 1e+09; + while((var_f22 >= 10.0f) && (arg0 < var_f22)) { + var_f22 /= 10.0f; + } + while (1e-09 <= var_f22) { + if ((0.09 < var_f22) && (var_f22 < 0.11)) { + func_80247CEC(D_80275BCC, 0x24, 2); + } + + var_s0 = 0; + while (var_f22 <= arg0) { + arg0 -= var_f22; + var_s0 += 1; + } + func_80247CEC(D_80275BCC, var_s0, 2); + var_f22 /= 10.0f; + } + func_80248520(); +} s32 func_8024824C(s32 arg0) { if ((arg0 >= (s32) D_80275BE8[0]) && ((s32) D_80275BE8[1] >= arg0)) { diff --git a/subyaml/core1.us.v10.yaml b/subyaml/core1.us.v10.yaml index 6a51b754..edcb0c18 100644 --- a/subyaml/core1.us.v10.yaml +++ b/subyaml/core1.us.v10.yaml @@ -286,7 +286,7 @@ segments: - [0x39C40, .rodata, code_5650] - [0x39CA0, .rodata, code_72B0] - [0x39CC0, .rodata, code_7F60] - - [0x39CE0, bin, data_39CE0] # .rodata, code_9D30] + - [0x39CE0, .rodata, code_9D30] - [0x39D00, .rodata, done/code_CE60] - [0x39FD0, .rodata, code_EAF0] - [0x3A050, .rodata, code_10A00]