DualShock 2 left analog stick input also triggers D-Pad input on Linux

I have a USB adapter for my DualShock 2 (PS2) controller. RetroArch recognizes the adapter as Gamtec., Ltd SmartJoy PLUS Adapter. I have analog turned on for the DS2 controller, and I went through and bound all the buttons via the Input settings.

When I start a game, however, moving the left analog stick causes both analog stick and D-Pad input for the same directions. This happens when Analog to Digital Type is set to None. It also happens when it’s set to Left Analog, but not when set to Right Analog. (The latter works with the right analog stick, as expected.)

I tried this with the Windows version of RetroArch (on Win10). Same RA version, same adapter, same controller, after having bound the buttons via the Input settings, all that. It works the way it should in Windows. The left analog stick only provides analog stick movement, not the D-Pad. So it appears to only happen in Linux.

I can verify this by using the dualshock overlay preset and moving the left analog stick around.

I’m using openSUSE Tumbleweed Linux. RetroArch version 1.8.5. I have had this issue for the past several months. I first noticed when trying to play games via the PPSSPP core, but it also happens in the Beetle PSX HW core, so presumably all cores. I have also installed RetroArch from a few different repositories within that time period.

Once or twice in that time frame, I deleted most or all the RA config files, including when I upgraded to 1.8.5, and started from scratch. So it shouldn’t be residual config conflicts. When I check the controller via the KDE Plasma System Settings, it shows that all buttons and sticks are being detected properly. I used this controller and adapter with PCSX2 and it was fine.

Oddly, when binding the controller inputs, RetroArch detects the left analog stick separately from the D-Pad, so it seems to only present this issue when running content in a core rather than the menus.

If anyone can help fix this, or verify that it’s a bug so I can file a report, I would greatly appreciate it.

I seem to have managed to fix it. I guess the issue seems to be related to the Gamtec., Ltd SmartJoy PLUS Adapter autoconfig. I assume this because I found some steps in the RetroArch docs to save my own autoconfig file. So I bound all the buttons, saved the autoconfig file, set the bindings back to default, then removed and reconnected the adapter. Now things seem to work properly.

One thing that doesn’t make sense is that this issue happened after I had manually bound all the buttons, and only went away after I saved and reloaded my own autoconfig file. I’m hoping a dev might be able to make sense of it. It could be an issue with how Linux reports the adapter inputs compared to Windows, maybe?

Either way, it seems to be fixed.

That’s good news! Thanks for reporting your solution!

I’ll look into the current autoconfig. Would you mind posting your new one here for comparison? My first guess is that they have more than one version of the adapter and didn’t change the vid/pid but did change the mapping.

Yeah, sure.


I still remapped my bindings on Windows 10, but I never saved the autoconfig, because I didn’t have this issue pop up. And it seems that Win10 has the same autoconfig file as on Linux. So that makes me wonder why I would need to create a custom autoconfig on Linux to solve the issue and not Windows. I just figured it was some difference in how each OS reads the controller, but my mapping and the default autoconfig aren’t too different.

Since it’s a DualShock 2, after I plug it in, I always push the Analog button on the controller to turn analog mode on. The analog sticks won’t work properly without it. But I don’t think that has anything to do with it.

1 Like

I think i may have the same issue but i’m not sure. I’m using a PS3 USB controller that is recognized as an XBox Gamepad. When i run a game (sega master system is what i’m i’m trying to get going) first off, the controls don’t work. Not the controller or the keyboard. The only fix i found was to unplug the controller and plug it back in. So, that works but still sucks. But the similarity is once the controller is working and i get to a part of the game where it matters, it seems the left button is stuck. If it’s the analog stick then i’d be happy to just disable the analog since i don’t even need it for master system. I tried setting it to nul in config but the menu auto populates it. I tried saving an auto config but it didn’t seem to save. Is there a load option or is it just supposed to be the way you saved it when you hit default bind? I’m on ubuntu 16.04 BTW. Sorry if this is too unrelated.