From 1f94ff05e044c7eae1113df1630eb2541692fa02 Mon Sep 17 00:00:00 2001 From: Michael Robles <40410952+dashdogy@users.noreply.github.com> Date: Sun, 11 Oct 2026 01:12:56 +1100 Subject: [PATCH] Don't hook OptiScaler's own XeFG as the game's --- OptiScaler/inputs/FG/XeFG_Inputs_Dx12.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OptiScaler/inputs/FG/XeFG_Inputs_Dx12.cpp b/OptiScaler/inputs/FG/XeFG_Inputs_Dx12.cpp index a1123cb0..a160f175 100644 --- a/OptiScaler/inputs/FG/XeFG_Inputs_Dx12.cpp +++ b/OptiScaler/inputs/FG/XeFG_Inputs_Dx12.cpp @@ -771,6 +771,10 @@ void XeFGInputs::Hook(HMODULE libxessFg) if (State::Instance().activeFgInput != FGInput::XeFG) { #ifdef LOW_LATENCY_INPUTS + // OptiScaler's own XeFG isn't the game's, a game without one finds OptiScaler's copy by name + if (libxessFg == XeFGProxy::Module()) + return; + // One library, its trampoline is kept in the table if (_nativeHooks[0].target == nullptr) {