Found all fixes for most Dualshock 4 bluetooth issues! But need help from someone with Linux knowledge!
-
So, after lots of issues with the Dualshock 4 and RetroPie, I think I've stumbled my way into every necessary fix to make it function flawlessly. The first steps could be handled with a few commands in the command line, but I'm no programmer, and the last step is waaaaay beyond my capabilities. Is there any Linux programmer out there who would be willing to write out a step-by-step guide for dummies?
I'll start with the first few steps. Before I list them, you can use on-board bluetooth, but it's pretty weak (especially in a case), so I would suggest getting a compatible BT dongle. Mine is an ASUS USB BT-400 which supposedly works quite well for general purposes.
-
Bluetooth can't find controller. Fix: Get the latest update of bluez. Open the command menu, and type <sudo apt-get update> , and when it's done, type <sudo apt-get upgrade>. Bluez gets updated along with everything else in RetroPie. Then connect through the Bluetooth Menu, and define buttons through the configure controller option in the RetroPie start menu.
-
Controller will now connect, but has various performance issues. Fix: install ds4drv drivers, disable onboard bluetooth to ensure it uses the dongle, and set the system up to connect to your DS4 when you boot it up (by simply using the pair function > holding the PS button + share for three seconds). All these steps are located in this lovely guide: [https://github.com/retropie/retropie-setup/wiki/Setting-up-a-PS4-controller]
-
Controller now connects, but some buttons don't work as intended (i.e. shoulder buttons don't automatically become L and R in most emulators). Fix: Manually input key settings. Use the Select + Triangle hotkey in any emulator, navigate to Settings > Input, and manually tell it which buttons to make L and R, etc. Then, save your settings for that emulator.
-
Controller finally works as intended, but there is severe input lag. If you go to the command menu and wait, it will display frequent messages telling you there is a low signal. Fix: correct a typo in the Sony driver for the controller.
This is where the fix gets over my head. It took me a long time to track down what was happening here, but it seems that a few people figured out the problem while trying to connect DS4 to Steamboxes (which also use Linux). It turns out that a typo in the settings of the DS4 driver limits the number of signals that the controller sends out in a certain period of time, resulting in what the Pi registers as a weak signal. A value labeled as 0xB0 was likely supposed to read 0x80.
However, the way to fix this involves way more Linux knowledge than any of the simple fixes I've done thus far.
I'm posting the link to the original forum post and the original fix. If anyone out there is willing to write a step-by-step guide showing us how to pull this off on a Pi (mine is a Pi3), you would be saving us all from soooooo many headaches.
Here's the original forum post (the solution is way down toward the end of the post): https://github.com/chrippa/ds4drv/issues/42
And here's the proposed fix: http://www.mail-archive.com/linux-kernel@vger.kernel.org/msg941718.htmlThanks for all your help! You're a great community. Rawk on.
-
-
To put it simply:
We need someone who can walk us through the process of compiling a kernel module for a rasp pi.
Also, I'm not sure if the information still applies to the "hid-sony" driver mentioned in the thread, or if this needs to be translated to a fix for the ds3drv driver.
Thanks for your help.
-
This patch in hid-sony.c has been committed over a year ago. If you're running up-to-date RetroPie (namely a kernel version > 4.3), you've already got this fix.
-
@bazmonkey le sigh. thanks for the info.
same problem description... must be something different =(
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.