supertuxkart / stk-code

The code base of supertuxkart
Other
4.49k stars 1.06k forks source link

PS5 gamepad left joystick and D pad always bound to steer and accelerate #4674

Open allstar87 opened 2 years ago

allstar87 commented 2 years ago

Description

Playing the game with a PS5 dualsense controller, and I can change the configuration of most actions, but steering, braking and accelerating are always bound to the D pad and the left analog stick. I can set steering, braking, and accelerating to None in the control mapping screen in the options menu, and the controls will still be bound to that pad.

Also, if I try to bind the accelerator to the (analog) right trigger, it either registers as a button, or as "Axis 5 (inverted)" I don't seem to be able to get it registered to "Axis 5" normally.

Steps to reproduce

Attach a Playstation 5 controller to a Linux PC Launch SuperTuxKart Bind the controls to "none" in the options menu Start a race; the controls still work. Bind the controls to other axes or buttons, the left stick and D pad still accelerate, brake, and steer.

Configuration

STK release version:

STK Source (PPA, distribution package, official binary, etc.):

System: Linux Mint 20.2 Uma, Cinnamon Edition Kernel version 5.13.0-21

Graphics card: Nvidia GeForce GTX-1080

CPU: AMD Ryzen 5 3600

Gamepads/keyboards models if related to the issue: Sony Playstation 5 Dualsense controller

Additional information

stdout.log:

Don't know where to find that for the flatpak version

input.xml:

Don't know where to find that for the flatpak version

Error message:

No error message shown
s3rvant commented 1 year ago

I'm seeing same with an older Steam controller on Ubuntu 22.10 with STK 1.4 download from main site (not flatpak).

I was specifically looking for help remapping acceleration as I much prefer having that on a dedicated button rather then holding thumbstick up while also using thumbstick to steer.

input.xml

<input version="1">

<!--
Event 1 : Keyboard button press
    'id' indicates which button, as defined by irrlicht's EKEY_CODE enum
Event 2 : Gamepad stick motion
    'id' indicates which stick, starting from 0
    'direction' 0 means negative, 1 means positive
Event 3 : Gamepad button press
    'id' indicates which button, starting from 0
-->

<keyboard enabled="true" configName="">
     <action name="steerLeft" event="1" id="37" />
    <action name="steerRight" event="1" id="39" />
    <action name="accel" event="1" id="38" />
    <action name="brake" event="1" id="40" />
    <action name="nitro" event="1" id="78" />
    <action name="drift" event="1" id="86" />
    <action name="rescue" event="1" id="8" />
    <action name="fire" event="1" id="32" />
    <action name="lookBack" event="1" id="66" />
    <action name="pauserace" event="1" id="27" />
    <action name="menuUp" event="1" id="38" />
    <action name="menuDown" event="1" id="40" />
    <action name="menuLeft" event="1" id="37" />
    <action name="menuRight" event="1" id="39" />
    <action name="menuSelect" event="1" id="13" />
    <action name="menuCancel" event="1" id="27" />
</keyboard>

<gamepad name ="Steam Controller" deadzone="4096" desensitize="0" auto-center="20" force-feedback="1" enabled="true" configName="">
     <action name="steerLeft" event="2" id="0" direction="0" range="0" />
    <action name="steerRight" event="2" id="0" direction="1" range="0" />
    <action name="accel" event="3" id="15" />
    <action name="brake" event="3" id="3" />
    <action name="nitro" event="2" id="7" direction="1" range="1" />
    <action name="drift" event="2" id="6" direction="1" range="1" />
    <action name="rescue" event="3" id="4" />
    <action name="fire" event="3" id="16" />
    <action name="lookBack" event="3" id="5" />
    <action name="pauserace" event="3" id="11" />
    <action name="menuUp" event="2" id="1" direction="0" range="0" />
    <action name="menuDown" event="2" id="1" direction="1" range="0" />
    <action name="menuLeft" event="2" id="0" direction="0" range="0" />
    <action name="menuRight" event="2" id="0" direction="1" range="0" />
    <action name="menuSelect" event="3" id="2" />
    <action name="menuCancel" event="3" id="10" />
</gamepad>

</input>
s3rvant commented 1 year ago

Update: after restarting the app and changing accelerate bind again it's now working. Initially tested using Appimage below but then even the local install worked as well.

https://old.reddit.com/r/AppImage/comments/xydkcg/supertuxkart_appimage_built_from_the_official/