Skip to content

Commit

Permalink
Merge branch 'hedge-dev:main' into Nintendo-Layout-tempt-fix
Browse files Browse the repository at this point in the history
  • Loading branch information
AL2009man authored Mar 6, 2025
2 parents a1556b6 + df5e48f commit 1d4a017
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 12 deletions.
40 changes: 29 additions & 11 deletions UnleashedRecomp/patches/input_patches.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,9 @@ g_sdlEventListenerForInputPatches;

static bool IsDPadThreshold(const SWA::SPadState* pPadState)
{
if (Config::DisableDPadAsAnalogInput)
return false;

return pPadState->IsDown(SWA::eKeyState_DpadUp) ||
pPadState->IsDown(SWA::eKeyState_DpadDown) ||
pPadState->IsDown(SWA::eKeyState_DpadLeft) ||
Expand All @@ -237,6 +240,9 @@ static bool IsCursorThreshold(double deadzone = 0, bool isBelowThreshold = false

static void SetDPadAnalogDirectionX(PPCRegister& pPadState, PPCRegister& x, bool invert, float max = 1.0f)
{
if (Config::DisableDPadAsAnalogInput)
return;

auto pGuestPadState = (SWA::SPadState*)g_memory.Translate(pPadState.u32);

if (pGuestPadState->IsDown(SWA::eKeyState_DpadLeft))
Expand All @@ -248,6 +254,9 @@ static void SetDPadAnalogDirectionX(PPCRegister& pPadState, PPCRegister& x, bool

static void SetDPadAnalogDirectionY(PPCRegister& pPadState, PPCRegister& y, bool invert, float max = 1.0f)
{
if (Config::DisableDPadAsAnalogInput)
return;

auto pGuestPadState = (SWA::SPadState*)g_memory.Translate(pPadState.u32);

if (pGuestPadState->IsDown(SWA::eKeyState_DpadUp))
Expand Down Expand Up @@ -283,6 +292,9 @@ void PostureDPadSupportYMidAsmHook(PPCRegister& pPadState, PPCRegister& y)

void PostureSpaceHurrierDPadSupportXMidAsmHook(PPCRegister& pPadState, PPCVRegister& vector)
{
if (Config::DisableDPadAsAnalogInput)
return;

auto pGuestPadState = (SWA::SPadState*)g_memory.Translate(pPadState.u32);

if (pGuestPadState->IsDown(SWA::eKeyState_DpadLeft))
Expand All @@ -294,6 +306,9 @@ void PostureSpaceHurrierDPadSupportXMidAsmHook(PPCRegister& pPadState, PPCVRegis

void PostureSpaceHurrierDPadSupportYMidAsmHook(PPCRegister& pPadState, PPCVRegister& vector)
{
if (Config::DisableDPadAsAnalogInput)
return;

auto pGuestPadState = (SWA::SPadState*)g_memory.Translate(pPadState.u32);

if (pGuestPadState->IsDown(SWA::eKeyState_DpadUp))
Expand Down Expand Up @@ -403,17 +418,20 @@ PPC_FUNC(sub_8256C938)
pWorldMapCursor->m_LeftStickVertical = rPadState.LeftStickVertical;
pWorldMapCursor->m_LeftStickHorizontal = rPadState.LeftStickHorizontal;

if (rPadState.IsDown(SWA::eKeyState_DpadUp))
pWorldMapCursor->m_LeftStickVertical = 1.0f;

if (rPadState.IsDown(SWA::eKeyState_DpadDown))
pWorldMapCursor->m_LeftStickVertical = -1.0f;

if (rPadState.IsDown(SWA::eKeyState_DpadLeft))
pWorldMapCursor->m_LeftStickHorizontal = -1.0f;

if (rPadState.IsDown(SWA::eKeyState_DpadRight))
pWorldMapCursor->m_LeftStickHorizontal = 1.0f;
if (!Config::DisableDPadAsAnalogInput)
{
if (rPadState.IsDown(SWA::eKeyState_DpadUp))
pWorldMapCursor->m_LeftStickVertical = 1.0f;

if (rPadState.IsDown(SWA::eKeyState_DpadDown))
pWorldMapCursor->m_LeftStickVertical = -1.0f;

if (rPadState.IsDown(SWA::eKeyState_DpadLeft))
pWorldMapCursor->m_LeftStickHorizontal = -1.0f;

if (rPadState.IsDown(SWA::eKeyState_DpadRight))
pWorldMapCursor->m_LeftStickHorizontal = 1.0f;
}

if (sqrtl((pWorldMapCursor->m_LeftStickHorizontal * pWorldMapCursor->m_LeftStickHorizontal) +
(pWorldMapCursor->m_LeftStickVertical * pWorldMapCursor->m_LeftStickVertical)) > WORLD_MAP_ROTATE_DEADZONE)
Expand Down
10 changes: 10 additions & 0 deletions UnleashedRecomp/patches/misc_patches.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -146,3 +146,13 @@ PPC_FUNC(sub_824C1E60)

__imp__sub_824C1E60(ctx, base);
}

// Remove boost filter
void DisableBoostFilterMidAsmHook(PPCRegister& r11)
{
if (Config::DisableBoostFilter)
{
if (r11.u32 == 1)
r11.u32 = 0;
}
}
2 changes: 1 addition & 1 deletion UnleashedRecomp/user/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ enum class ETripleBuffering : uint32_t
};

static constexpr int32_t FPS_MIN = 15;
static constexpr int32_t FPS_MAX = 240;
static constexpr int32_t FPS_MAX = 241;

enum class EAntiAliasing : uint32_t
{
Expand Down
2 changes: 2 additions & 0 deletions UnleashedRecomp/user/config_def.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ CONFIG_DEFINE_ENUM_LOCALISED("Video", EUIAlignmentMode, UIAlignmentMode, EUIAlig

CONFIG_DEFINE_HIDDEN("Codes", bool, AllowCancellingUnleash, false);
CONFIG_DEFINE_HIDDEN("Codes", bool, DisableAutoSaveWarning, false);
CONFIG_DEFINE_HIDDEN("Codes", bool, DisableBoostFilter, false);
CONFIG_DEFINE_HIDDEN("Codes", bool, DisableDLCIcon, false);
CONFIG_DEFINE_HIDDEN("Codes", bool, DisableDWMRoundedCorners, false);
CONFIG_DEFINE_HIDDEN("Codes", bool, EnableEventCollisionDebugView, false);
Expand All @@ -92,5 +93,6 @@ CONFIG_DEFINE_HIDDEN("Codes", bool, SkipIntroLogos, false);
CONFIG_DEFINE_HIDDEN("Codes", bool, UseArrowsForTimeOfDayTransition, false);
CONFIG_DEFINE_HIDDEN("Codes", bool, UseOfficialTitleOnTitleBar, false);
CONFIG_DEFINE_HIDDEN("Codes", bool, DisableLowResolutionFontOnCustomUI, false);
CONFIG_DEFINE_HIDDEN("Codes", bool, DisableDPadAsAnalogInput, false);

CONFIG_DEFINE("Update", time_t, LastChecked, 0);
5 changes: 5 additions & 0 deletions UnleashedRecompLib/config/SWA.toml
Original file line number Diff line number Diff line change
Expand Up @@ -1093,3 +1093,8 @@ registers = ["r31", "r29", "r28"]
name = "ObjGrindDashPanelAllocMidAsmHook"
address = 0x82614948
registers = ["r3"]

[[midasm_hook]]
name = "DisableBoostFilterMidAsmHook"
address = 0x82B48C9C
registers = ["r11"]

0 comments on commit 1d4a017

Please sign in to comment.