Files
UnleashedRecomp/UnleashedRecomp/patches/misc_patches.cpp
T
Hyper ec5c51f54c Migrate game.cpp to categorised source files (#3)
* Migrate game.cpp to categorised source files

Co-Authored-By: Skyth (Asilkan) <19259897+blueskythlikesclouds@users.noreply.github.com>
Co-Authored-By: Michael <15317421+ActualMandM@users.noreply.github.com>

* Move motion blur hook to video_patches.cpp

---------

Co-authored-by: Skyth (Asilkan) <19259897+blueskythlikesclouds@users.noreply.github.com>
Co-authored-by: Michael <15317421+ActualMandM@users.noreply.github.com>
2024-11-08 16:18:41 +03:00

72 lines
1.3 KiB
C++

#include <cpu/guest_code.h>
#include "api/SWA.h"
#include "ui/window.h"
#include "config.h"
bool DisableHintsMidAsmHook()
{
return !Config::Hints;
}
bool DisableControlTutorialMidAsmHook()
{
return !Config::ControlTutorial;
}
bool DisableEvilControlTutorialMidAsmHook(PPCRegister& r4, PPCRegister& r5)
{
if (Config::ControlTutorial)
return true;
// Only allow enemy QTE prompts to get through.
return r4.u32 == 1 && r5.u32 == 1;
}
void WerehogBattleMusicMidAsmHook(PPCRegister& r11)
{
if (Config::WerehogBattleMusic)
return;
// Swap CStateBattle for CStateNormal.
if (r11.u8 == 4)
r11.u8 = 3;
}
void SetXButtonHomingMidAsmHook(PPCRegister& r30)
{
r30.u32 = Config::XButtonHoming;
}
/* Hook function that gets the game region
and force result to zero for Japanese
to display the correct logos. */
PPC_FUNC_IMPL(__imp__sub_825197C0);
PPC_FUNC(sub_825197C0)
{
if (Config::Language == ELanguage::Japanese)
{
ctx.r3.u64 = 0;
return;
}
__imp__sub_825197C0(ctx, base);
}
// Logo skip
PPC_FUNC_IMPL(__imp__sub_82547DF0);
PPC_FUNC(sub_82547DF0)
{
if (Config::LogoSkip)
{
ctx.r4.u64 = 0;
ctx.r5.u64 = 0;
ctx.r6.u64 = 1;
ctx.r7.u64 = 0;
sub_825517C8(ctx, base);
}
else
{
__imp__sub_82547DF0(ctx, base);
}
}