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]