Check out our Monthly Survey Page to see what our users are running.
Tools to Fix Incorrect Controller Mappings for Wine Games?
OPCDF 23 Dec, 2020
Some games incorrectly map controller buttons or don't detect certain buttons on controllers under Wine/Proton. In my specific case I am attempting to play "Yakuza: Like a Dragon" through Proton. It detects the controller just fine but the buttons are not mapped properly. For example it maps the trigger buttons to the right stick, and the actual right stick is not recognised by the game. This seems to affect Windows users too, but their fixes either don't work (turning off Steam Input) or don't apply (using x360ce, which needs dotnet45 to run). The ideal solution here is to wait for a Wine/Proton patch as the issue is documented, but I'm hoping for a band-aid fix for this game and more generally a solution for games under Wine in general. I would like an x360ce-like tool to fix incorrectly mapped controllers for, say, games that have been abandoned by developers and had broken controller support natively on Windows.

I have looked into SC-Controller but it doesn't seem to be quite as flexible as x360ce from what I've messed around with over the last week or so. x360ce lets you have more detailed mapping fixes such as passing in specific button/axis codes. Essentially I want my button presses on my controller to pass the inputs the game expects and from what I've read and briefly used many years ago a tool like x360ce allows for this.

I've also checked out gamepad-tool, however it doesn't seem to do anything when I set the SDL_GAMECONTROLLERCONFIG variable either by passing it as a launch option to my games, or through setting it as an environment variable when running the tool with sudo. This tool like SC-Controller does not allow for as granular control over what inputs each button sends.

Is there any, preferably graphical, tool that can do this on Linux either native or through Wine?
The_Aquabat 23 Dec, 2020
have you installed the steam-devices package?? I don't if this has a arch analog.

Quoteapt-cache show steam-devices
Package: steam-devices
Status: install ok installed
Priority: optional
Section: non-free/games
Installed-Size: 80
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: all
Multi-Arch: foreign
Source: steam
Version: 1:1.0.0.61-2ubuntu3
Replaces: steam (>= 1:1.0.0.61-2ubuntu3.), steam (<< 1:1.0.0.61-2ubuntu3), steam-launcher
Recommends: steam
Breaks: steam (>= 1:1.0.0.61-2ubuntu3.), steam (<< 1:1.0.0.61-2ubuntu3)
Conflicts: steam-launcher
Description: Device support for Steam-related hardware
This package provides udev rules for various Steam-related hardware devices
such as the Steam Controller (gamepad) and the HTC Vive (virtual reality
headset).
Description-md5: f9b7ac135061c71ccbe81df2a894fb55
Homepage: https://steamcommunity.com/linux
Original-Maintainer: Debian Games Team <pkg-games-devel@lists.alioth.debian.org>
Plintslîcho 23 Dec, 2020
I use jstest-gtk.
OPCDF 23 Dec, 2020
Thanks for the reply! Maybe I should have made my OP clearer, but this only effects a small subset of games and for me, it only affects "Yakuza: Like a Dragon". It is a bug with the game. My controllers in other games including my Steam Controller works fine. "Yakuza: Like a Dragon" correctly picks up my controller as being connected and shows controller prompts, but a bug with the game means they are mapped incorrectly.

QuoteI don't if this has a arch analog

I don't believe it does, as on all of my Arch installs my Steam Controller works out of the box even without Steam installed. Some games like SuperTuxKart pick up that I'm using a Steam Controller. I did a search of the packages I have installed and couldn't find that package, however it's a good tip since I know people that use Ubuntu who have needed to install it to get their controller working.
OPCDF 24 Dec, 2020
Quoting: PlintslîchoI use jstest-gtk.

Unfortunately, it seems like that tool no longer functions as intended according to the website. It also seems to have the same issue as SC-Controller anyway, where it doesn't allow you to pass in specific button codes. However, please correct me if I'm wrong and I can give it a try!
While you're here, please consider supporting GamingOnLinux on:

Patreon, Liberapay or PayPal Donation.

We have no adverts, no paywalls, no timed exclusive articles. Just good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register

Or login with...
Sign in with Steam Sign in with Twitter Sign in with Google
Social logins require cookies to stay logged in.

Livestreams & Videos
Community Livestreams
Latest Forum Posts