Wrong joypad profile is being loaded

I’m using a Sony DualShock 4, model CUH-ZCT2U, over Bluez 5, on a Linux distribution with a 4.14 kernel.

If I just update the Joypad Profiles using the Online Updater and then run “retroarch --verbose”, I see that it loads the profile for an XBox One S controller:

[INFO] [Autoconf]: selected configuration: /home/dugan/.config/retroarch/autoconfig/udev/Microsoft_X-Box_One_S_pad_v2.cfg
[INFO] [Joypad]: Found joypad driver: "udev".

If I delete that file and run “retroarch --verbose” again, then it loads a Switch Pro Controller profile:

[INFO] [Autoconf]: selected configuration: /home/dugan/.config/retroarch/autoconfig/udev/Pro  Controller.cfg
[INFO] [Joypad]: Found joypad driver: "udev".

If I delete that file and run “retroarch --verbose” again, then it loads a DualShock 4 profile, but the controller isn’t mapped properly:

[INFO] [Autoconf]: selected configuration: /home/dugan/.config/retroarch/autoconfig/udev/Sony-PlayStation4-DualShock4-Controller-Bluez.cfg
 [INFO] [Joypad]: Found joypad driver: "udev".

If I delete that file then it loads a different DualShock 4 profile. Then, and only then, does the controller work properly.

[INFO] [Autoconf]: selected configuration: /home/dugan/.config/retroarch/autoconfig/udev/Sony-PlayStation4-DualShock4-Controller-Bluetooth.cfg
[INFO] [Joypad]: Found joypad driver: "udev".

What’s going on?

Someone mentioned recently that a lot of the autoconfig profiles for bluetooth controllers may actually contain the vid/pid of the bluetooth adapter rather than the pad itself. You might have run into this.

It looks like it was a combination of that, plus the DualShock 4 mappings having changed across different kernel revisions.

The pull request I sent in to fix it was merged immediately, so it looks like things are good now.

1 Like

Worth mentioning:

The reason the Xbox One S and Switch Pro Controller profiles (I was the one who submitted them) had the wrong pid and vid? I had configured them using RetroArch’s XMB interface, then I had retroarch save them as autoconfig profiles. RetroArch saved them with the vid and pid of the BT adapter.