8000 Xinput triggers mapped to analog sticks could pollute internal analog sticks state · Issue #18404 · hrydgard/ppsspp · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Xinput triggers mapped to analog sticks could pollute internal analog sticks state #18404
Closed
@Kethen

Description

@Kethen

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

if (NormalizedDeadzoneDiffers(prevState[pad].Gamepad.bLeftTrigger, state.Gamepad.bLeftTrigger, XINPUT_GAMEPAD_TRIGGER_THRESHOLD)) {

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0