Skip to content

Nintendo Switch Pro Controller USB inputs are erratic w/ Steam #47874

Closed
@ace24713

Description

@ace24713

Godot version:
3.3 rc8

OS/device including version:
Windows 10

Issue description:
Under specific configurations, godot interprets the controller as sending many random inputs.

I'm not pressing anything at all:
pro_controller

From my basic googling of the issue, it seems that there's a problem with Steam's "Switch Pro Configuration Support" where the DirectInput freaks out when Steam enables gyro on a Pro Controller over USB. I don't have a great source for this, but this discussion has a post from a Valve employee that describes what I just said.

While this itself isn't Godot's fault, it seems the problem does not effect apps that use XInput to read controller inputs. I'm a bit out of the loop, but I did think Godot supports XInput, so I'm wondering why this is messing up?

For the record, from the discussion I linked above adding the project exe as a non-steam game is a workaround. Seems like steam forces the game to use XInput in some way, as the controller is no longer reported as a "Nintendo Switch Pro Controller" but instead as an "XInput Gamepad"

Additionally I've heard about similar problems with DS4 controllers and Steam's "PlayStation Configuration Support" option, but I don't own one of those so I can't try it.

Steps to reproduce:
Steam must be running, with "Switch Pro Configuration Support" enabled in the Controller Settings menu.
A Nintendo Switch Controller must be plugged in via USB. You should be able to move the mouse with the right thumbstick if it detected it. The problem is NOT reproducible when using Bluetooth.

Launch any godot game with joypad inputs the joypads demo project works well

(To my knowledge it is irrelevant if the controller is plugged in before or after steam is started. And steam must be closed AND the controller unplugged to reset it)

Minimal reproduction project:
I've been using the joypads demo project to test

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions