Dualshock 4 crazy-fast, repeating controls



Hi, I experience the exact same issue as “codextremist”. And are also looking for a solution for this. Really need help.


The latest nightlies have actual analog deadzone and sensitivity calibration options, which may help with some of this.


I still think there’s something weird with the button mapping in the current autoconfig profile.

My working button assignment is the same as what was used in 2015. In 2017 it was changed (see history) .

Does the PS4 update the firmware on the controller? That could explain the different assignments.


Sorry to bump a somewhat old thread, I just recently acquired a DS4 controller and set it up in Lakka, but I seem to experience the exact same problem you guys have. Both wired and over Bluetooth.

So I followed the solutions you provided, but to no avail, issue still persists. Therefore I was wondering if anyone had came up with a solution to this problem? Or should I just give up? My problem seems to occur with the DS4 model name: CUH-ZCT2E


Did you try rebinding all inputs manually and saving the profile for the DS4? This should be enough to fix the problem. You do, however, require a second working gamepad to do this (or keyboard if it works).


The problem is that the keyboard acts just as strange as the DS4 when both are plugged in, and I cant determine why. Maybe I should just delete all the configs for the controllers inside the joypad folder?


Hi. This might be a general problem. (I’m new so I cannot start a new thread). Been trying out various kernel that I’ve built myself (not lakka but ubuntu). with kernel 4.4.53 (before the VID/PID for v2 of the DS was backported to the Sony HID driver), v1 would control fine, v2 would be wonky. With later kernels where DS4v2 was added, the opposite happened. V2 would be fine, but V1 would be wonky. I looked for clues everywhere, in dmesg, kernel config, source code. I couldn’t find anything particulary that stood out. Both versions “should” work fine.

In the end, the solution was simple:

I deleted “Sony Computer Entertainment Wireless Controller.cfg” from the autoconfig/udev folder. This conflicts with Sony-PlayStation4-DualShock4-Controller.cfg. Dunno the exact cause but looking inside the files I can see the VID/PID are the same but the button mappings are a bit different.

I think with an earlier kernel without explicit support for the v2, probably “Sony_PlayStation4_Dualshock4_500-Million_Limited_Edition.cfg” was conflicting with “Sony-PlayStation4-DualShock4v2-Controller.cfg” With a later kernel, this isn’t the case although you shouldn’t ask me why.

Anyways, at least Sony Computer Entertainment Wireless Controller.cfg should be removed upstream. Maybe “Sony_PlayStation4_Dualshock4_500-Million_Limited_Edition.cfg” too. Any devs that could look into this?


Hello, have the same problem, came today at least as far as connecting the controller and then came to the same behavior.

Had zumidnest managed to stop the controller from configuring itself automatically.

Then I went through the buttons manually:

-> What I noticed at least: With the D-Pad and the analog sticks the value is set to -3 if upwards.

As soon as any key has been set to -3, whether with cable or Bluetooth, it will behave like this.

Can anyone do anything with it?

Or any other workaround?

Translated with www.DeepL.com/Translator


Hey, where is the autoconfig folder you mean?




Sorry, one more stupid question, im logged in with root access and wont let me delete this file, how did you do that?


I didn’t use Lakka, but ubuntu. Lakka is based on OpenELEC so the filesystem is compressed into a squashfs file. Probably Lakka haven’t configured the the overlay file system (or doesn’t use an overlayfs) to cover these files system.

Upon reading http://www.lakka.tv/doc/Accessing-Lakka-filesystem/

The joypad folder is editable. You probably have to replicate the relative path of the original file, which is udev/Sony Computer Entertainment Wireless Controller.cfg.

Maybe if you put a file there named "Sony Computer Entertainment Wireless Controller.cfg” and make it empty, it might override the included one.


Upon checking https://github.com/libretro/retroarch-joypad-autoconfig/tree/master/udev it seems the file Sony Computer Entertainment Wireless Controller.cfg isnt there at all. I dunno how that file ended up in my autoconfig folder. I even tried to delete med autoconfig folder and updated it inside Retroarch and it’s nowhere to be seen.

I dunno how it ended up there in the first place. Maybe because I configured it and saved it before I ran the updater. So I guess, my problem was self inflicted and probably won’t help anyone here. (although the symptoms were the same)


I got it working!

After i enabled ssh and samba i could find out what was wrong with my Dualshock PS4 Controller. Under samba i found 2 files in \Lakka-IP\Joypads\udev ssh: ~/joypads/udev

  • Sony-PlayStation4-DualShock4v2-Controller.cfg
  • Sony-PlayStation4-DualShock4v2-Wired-Crystal-Controller.cfg

After investigating both files in Text-Editor i found out that the options for some configurations where different. for example: input_r_x_plus_axis input_r_x_minus_axis input_r_y_plus_axis input_r_y_minus_axis

After i changed all wrong options in both files to the right values it worked perfekt. This should also work with the wireless file or the bluethooth file. Thanks for all your work in this case.


Hey, great! Could you pleased Post your actual config File?

input_device = "Sony Interactive Entertainment Wireless Controller"
input_driver = "udev"
input_vendor_id  = "1356"
input_product_id = "2508"
input_b_btn = "1"
input_y_btn = "0"
input_select_btn = "8"
input_start_btn = "9"
input_up_btn = "h0up"
input_down_btn = "h0down"
input_left_btn = "h0left"
input_right_btn = "h0right"
input_a_btn = "2"
input_x_btn = "3"
input_l_btn = "4"
input_r_btn = "5"
input_l2_btn = "6"
input_r2_btn = "7"
input_l3_btn = "10"
input_r3_btn = "11"
input_l_x_plus_axis = "+0"
input_l_x_minus_axis = "-0"
input_l_y_plus_axis = "+1"
input_l_y_minus_axis = "-1"
input_r_x_plus_axis = "+2"
input_r_x_minus_axis = "-2"
input_r_y_plus_axis = "+5"
input_r_y_minus_axis = "-5"
input_menu_toggle_btn = "12"

input_b_btn_label = "Cross"
input_y_btn_label = "Square"
input_select_btn_label = "Share"
input_start_btn_label = "Options"
input_up_btn_label = "D-Pad Up"
input_down_btn_label = "D-Pad Down"
input_left_btn_label = "D-Pad Left"
input_right_btn_label = "D-Pad Right"
input_a_btn_label = "Circle"
input_x_btn_label = "Triangle"
input_l_btn_label = "L1"
input_r_btn_label = "R1"
input_l2_btn_label = "L2"
input_r2_btn_label = "R2"
input_l3_btn_label = "L3"
input_r3_btn_label = "R3"
input_l_x_plus_axis_label = "Left Analog Right"
input_l_x_minus_axis_label = "Left Analog Left"
input_l_y_plus_axis_label = "Left Analog Down"
input_l_y_minus_axis_label = "Left Analog Up"
input_r_x_plus_axis_label = "Right Analog Right"
input_r_x_minus_axis_label = "Right Analog Left"
input_r_y_plus_axis_label = "Right Analog Down"
input_r_y_minus_axis_label = "Right Analog Up"
input_menu_toggle_btn_label = "PS"

Please change the Product and Vendor ID to your needs.


Thanks a lot! That worked for me, too.