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]