diff --git a/progress/progress_core2.svg b/progress/progress_core2.svg
index bac4eefd..b48df500 100644
--- a/progress/progress_core2.svg
+++ b/progress/progress_core2.svg
@@ -9,7 +9,7 @@
-
+
@@ -17,7 +17,7 @@
core2
- 77.0566%
- 77.0566%
+ 77.1244%
+ 77.1244%
\ No newline at end of file
diff --git a/progress/progress_total.svg b/progress/progress_total.svg
index 555a9189..9933e405 100644
--- a/progress/progress_total.svg
+++ b/progress/progress_total.svg
@@ -17,7 +17,7 @@
Banjo-Kazooie (us.v10)
- 81.6280%
- 81.6280%
+ 81.6669%
+ 81.6669%
\ No newline at end of file
diff --git a/src/core2/code_5DBC0.c b/src/core2/code_5DBC0.c
index f19165fd..11b3c041 100644
--- a/src/core2/code_5DBC0.c
+++ b/src/core2/code_5DBC0.c
@@ -88,8 +88,22 @@ void func_802E4C78(void){
D_8037E900 = NULL;
}
-extern s32 func_802E4CF8(u8);
+#ifndef NONMATCHING
+s32 func_802E4CF8(u8);
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_5DBC0/func_802E4CF8.s")
+#else
+s32 func_802E4CF8(u8 arg0) {
+ s32 var_v1;
+
+ for(var_v1 = D_8037E900->unk10 - 1; var_v1 >= 0; var_v1--){
+ if (arg0 == D_8037E900->unk4[var_v1].unk4) {
+ return var_v1;
+ }
+ }
+ return -1;
+}
+#endif
+
BKSpriteTextureBlock *func_802E4D5C(s32 arg0, char arg1){
return D_8037E900->unk4[arg0].unk8[arg1 - 0x21];
diff --git a/src/core2/code_67650.c b/src/core2/code_67650.c
index e98685e1..2db48ae0 100644
--- a/src/core2/code_67650.c
+++ b/src/core2/code_67650.c
@@ -41,4 +41,46 @@ void func_802EE684(void) {
}
}
-#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_67650/func_802EE6CC.s")
+void func_802EE6CC(f32 position[3], f32 velocity[3], s32 color[4], s32 arg3, f32 arg4, f32 arg5, s32 arg6, s32 arg7, s32 arg8) {
+ s32 pad54;
+ s32 pad50;
+ s32 pad4C;
+ f32 sp40[3];
+ s32 sp3C;
+ ParticleEmitter *p_ctrl;
+
+ sp3C = 0x28;
+ p_ctrl = func_802F0EF0(D_80380910[arg8]);
+ particleEmitter_setSprite(p_ctrl, D_80368930[arg8]);
+ func_802EFA5C(p_ctrl, 0.075f, 0.4f);
+ particleEmitter_setPosition(p_ctrl, position);
+ particleEmitter_setSpawnIntervalRange(p_ctrl, 0.0f, 0.0f);
+ func_802EFA78(p_ctrl, 1);
+ if (velocity != NULL) {
+ ml_vec3f_scale_copy(sp40, velocity, 30.0f);
+ } else {
+ sp40[0] = sp40[1] = sp40[2] = 0.0f;
+ }
+
+ if (arg5 != 0.0) {
+ sp40[1] += arg5 / arg4;
+ }
+ particleEmitter_setParticleVelocityRange(p_ctrl, sp40[0], sp40[1], sp40[2], sp40[0], sp40[1], sp40[2]);
+ if (color != NULL) {
+ func_802EFFA8(p_ctrl, color);
+ func_802EF9E4(p_ctrl, color[3]);
+ }
+ if (arg3 == 0) {
+ sp3C = 0x38;
+ }
+ func_802EFA70(p_ctrl, sp3C);
+ func_802EFEC0(p_ctrl, arg4, arg4);
+ func_802EFB70(p_ctrl, arg6 / 175.0, arg6 / 175.0);
+ func_802EFB84(p_ctrl, (arg6 + arg7) / 175.0, (arg6 + arg7) / 175.0);
+ if (arg8 == 0) {
+ particleEmitter_setParticleFramerateRange(p_ctrl, (15.0 / arg4), (15.0 / arg4));
+ } else {
+ particleEmitter_setStartingFrameRange(p_ctrl, 0, 0xC);
+ }
+ particleEmitter_emitN(p_ctrl, 1);
+}
diff --git a/subyaml/core2.us.v10.yaml b/subyaml/core2.us.v10.yaml
index 31cf5078..2df28774 100644
--- a/subyaml/core2.us.v10.yaml
+++ b/subyaml/core2.us.v10.yaml
@@ -719,7 +719,7 @@ segments:
- [0xF0180, .rodata, code_5C870]
- [0xF01F0, bin, data_F01F0] #.rodata, code_5FD90]
- [0xF0200, .rodata, code_66FB0]
- - [0xF0210, bin, data_F0210]
+ - [0xF0210, .rodata, code_67650]
- [0xF0220, .rodata, code_679A0]
- [0xF0240, bin, data_F0240]
- [0xF0280, .rodata, code_6CEC0]