Xinput triggers mapped to analog sticks could pollute internal analog sticks state #18404
Closed
2 tasks done
Labels
Input/Controller
Input and controller issues
Milestone
Game or games this happens in
all games, if triggers were mapped under xinput
What area of the game / PPSSPP
It seems that Xinput devices would not send trigger values unless it's over XINPUT_GAMEPAD_TRIGGER_THRESHOLD
ppsspp/Windows/XinputDevice.cpp
Line 240 in 2036f1c
So it never sends anything under XINPUT_GAMEPAD_TRIGGER_THRESHOLD after a higher value was sent, leaving a stuck analog value >
30.f/255.0f ~ 0.1176
on internal stateThe stuck value can then further affect analog normalizing on control mapper
What should happen
Idle trigger should not maintain an analog value
Maintaining a value could also be the cause of #16643
Perhaps when XINPUT_GAMEPAD_TRIGGER_THRESHOLD is not met, it should gradually send values until 0 so that control mapper can also drop back to under deadzone? Or maybe send
clamp((x - 30.0f)/(255.0f - 30.0f), 0.0, 1.0)
as trigger input and skip the checkLogs
No response
Platform
Windows
Mobile phone model or graphics card
Not relevant
PPSSPP version affected
v1.16.6 release, v1.16.6-290-g2036f1c36
Last working version
No response
Graphics backend (3D API)
Vulkan
Checklist
The text was updated successfully, but these errors were encountered: