Description
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 state
The 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 check
Logs
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
- Test in the latest git build in case it's already fixed.
- Search for other reports of the same issue.