Failure to map Dual Shock 4 right dpad

Hello, I am trying to set RetroArch up in Ubuntu, and I am able to correctly map every single input on my Dual Shock 4 with the single exception of the right direction on the dpad. I am using sdl2 for both input and joystick. Up, down and left get mapped to buttons 11, 12, and 13 respectively. I assume right should technically be 14, although the system detects the DS4 as a 13 button controller, so perhaps 14 is unenumerated? On Windows, these inputs get mapped to hat #0 and #1 - and +. Is there a way to force Ubuntu to recognize the dpad as hat analogs? Thank you.

Have you tried using a different input driver? Linuxraw and udev typically give better results than sdl2.

No dice. If I set the joystick driver to anything other than sdl2, I lose all input, keyboard included. I tried setting both input and joystick to udev in case it was a conflict, but the effect was the same. For clarification, I am using the Dual Shock 4 wired by USB, I’m not trying to use it through Bluetooth. For what it’s worth, when I configure SDL MAME with the same controller, it does identify the dpad as Joy 0 Hat U/D/L/R. Mednafen also accepts input from the right direction pad. Any other possible suggestions? This controller works well for me, I’d like to be able to continue using it with RA. Thanks for your help.

Can you try running RetroArch as root once (i.e., with sudo) and switch to udev/linuxraw and see if the input lockout is permissions-related? If so, there are steps to correct that.

So setting both input and joystick to either udev or linuxraw, and running sudo retroarch did not fix the frozen input issue. However, what did work (temporarily) was setting the joystick driver to hid (input to sdl2). Then I was able to map every button, including right dpad. This seemed to go swimmingly for a while until I accidentally set the joystick port to a port that didn’t contain a joystick, and retroarch seemed to spaz out. I couldn’t fix it so I closed Retroarch, backed up and deleted my original config file, and tried to start from scratch with a new config file. However, ever since that occurred, Retroarch has failed to recognize the fact that my DS4 is plugged in. I even tried logging out and logging back in. That’s as far as I got until I had to put my kid to bed. If you have any thoughts, I’d be grateful, but this is probably a lost cause. Thanks.

use linuxraw that’s what i have been using