libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.25k stars 1.83k forks source link

Inputs become broken after mapping more than 3 axi of a single gamepad stick #15974

Open JochemSKuipers opened 11 months ago

JochemSKuipers commented 11 months ago

First and foremost consider this:

Description

when mapping a controller all buttons work fine untill i map the sticks. i can map 3 axi of a single stick just fine, but after mapping all 4 axi of a single stick all input stop working from both controller and keyboard.

after deleting retroarch.cfg and restarting everything works fine and i can map everything and it works, but as soon as i restart retroarch again it stops working.

i have tried with 3 different controller with usb, 2,4ghz or bluetooth. all have the same problem

i have also tried all 4 input drivers.

on udev i can map 3 axi of a single stick before it breaks on linuxraw it doesnt detect any gamepad at all on paraport it doesnt detect any gamepad at all on sdl2 i can map 2 axi of a single stick before it breaks

only happens on arch linux based distros

Expected behavior

mapping all inputs should work fine without anything breaking

Actual behavior

when mapping more than 3 axi of a single gamepad stick all inputs from keyboard and gamepad stop working

Steps to reproduce the bug

  1. delete retroarch.cfg
  2. start retroarch
  3. map gamepad buttons and sticks
  4. everything works
  5. restart retroarch
  6. all inputs stop working

Bisect Results

i think it started happening since version 1.16.

Version/Commit

You can find this information under Information/System Information

Environment information

zoltanvb commented 11 months ago

On Discord, the config file decimal separator was mentioned ("," instead of "."), which could have several side effects, maybe this is one of them. Can you try if the workaround mentioned in #15756 solves the issue?

_Currently I work around it by launching retroarch with LCNUMERIC=C.

As in: LC_NUMERIC=C retroarch

Side-note: linuxraw gamepad driver is limited, so it may be normal that it does not recognize any input in this case. Parport is only for connection through the ancient parallel port (I was not even aware there were such adapters), probably a help text could be added for those.

JochemSKuipers commented 11 months ago

ive already tried replacing the commas with dots in the retroarch.cfg but it gets replaced back to commas as soon as i launch retroarch again. the LC_NUMERIC launch option did work so i guess ill use that for now

zoltanvb commented 11 months ago

Can you also try a recent nightly build (without the LC_NUMERIC setting) at your convenience? I wonder if the workaround that was merged on Oct 31, after version 1.16, also solves this issue. http://buildbot.libretro.com/nightly/linux/x86_64/