Fix "Disable Boost Filter" code not affecting certain parts of the game. (#1468)

* hook different part of the code to affect Eggmanland too

* Update UnleashedRecomp/patches/misc_patches.cpp

Co-authored-by: Skyth (Asilkan) <19259897+blueskythlikesclouds@users.noreply.github.com>

---------

Co-authored-by: Skyth (Asilkan) <19259897+blueskythlikesclouds@users.noreply.github.com>
This commit is contained in:
ĐeäTh
2025-03-24 20:15:46 +01:00
committed by GitHub
parent 8ca5f1bf53
commit d0cc13c2fd
2 changed files with 11 additions and 10 deletions

View File

@@ -157,12 +157,18 @@ PPC_FUNC(sub_824C1E60)
__imp__sub_824C1E60(ctx, base);
}
// Remove boost filter
void DisableBoostFilterMidAsmHook(PPCRegister& r11)
// This function is called in various places but primarily for the boost filter
// when the second argument (r4) is set to "boost". Whilst boosting the third argument (f1)
// will go up to 1.0f and then down to 0.0f as the player lets off of the boost button.
// To avoid the boost filter from kicking in at all if the function is called with "boost"
// we set the third argument to zero no matter what (if the code is on).
PPC_FUNC_IMPL(__imp__sub_82B4DB48);
PPC_FUNC(sub_82B4DB48)
{
if (Config::DisableBoostFilter)
if (Config::DisableBoostFilter && strcmp((const char*)(base + ctx.r4.u32), "boost") == 0)
{
if (r11.u32 == 1)
r11.u32 = 0;
ctx.f1.f64 = 0.0;
}
__imp__sub_82B4DB48(ctx, base);
}