STEAM GROUP
Steam Client Beta SteamBeta
STEAM GROUP
Steam Client Beta SteamBeta
18,251
IN-GAME
79,679
ONLINE
Founded
January 8, 2013
All Discussions > Bug Reports > Topic Details
Grinness May 9, 2017 @ 6:28am
Steam Beta Linux + Sony DS4: Issues in getting the controller working across multiple games
HI there,

I would like to report a few issues I am having using DS4 (PS4 original) controller.

I use Arch (Antergos) linux:
Kernel 4.10.13-1 ZEN
AMD RX480, Mesa 17.0.5/Gallium/llvm 4.0
Steam Linux Beta 8 May (same issues apply to current stable version)
DS4 hooked up via USB cable (controller correctly identified as in dmesg)

The issues below started when Steam enabled the PS4/DS4 controller support in BigPicture

Game: Shadow of Mordor
* running the game witout BigPigture, the controller is recognised fine as DS4 and all works
* running the game in BigPictire disabling PS4 controller configuration, the controller does not work
* running the game in BigPictire enabling PS4 controller configuration, the controller does work but button lay out is Xbox/Steam Controller type
TO NOTE:
With the current Steam stable:
* Controller works only in BigPicture with PS4 controller configuration enabled and it is recognised with Xbox/Steam Controller button layout
* testing FPS counts with game 'Benchmark', the latest Steam stable halves (-50%) the average FPS

Game: Mad Max
Regardless of BigPicture/No BigPicture/PS4 controller configuration enable/disabled, the controller is not working properly:
* buttons layout always as PS4 DS4
* button O swapped with button X, button TRIANGLE swapped with button O
* left stick not used for camera, but directions remapped to other controls
* L1/L2/R1/R2 not correctly mapped
* game camera rotating continuously

Game: Apotheon
* running the game without BigPigture, the controller does not work (it used to work fine and recognised as PS4 DS4)
* running the game in BigPictire disabling PS4 controller configuration, the controller does not work
* running the game in BigPictire enabling PS4 controller configuration, the controller does work but button lay out is Xbox/Steam Controller type

Game: Tomb Rider
Controller always recognised with Xbox type buttons layout, but working fine; regardless of how the game is started (BigPicture/No BigPicture/PS4 controller configuration enable/disabled)

Best,
G.
< >
Showing 1-10 of 10 comments
Grinness May 9, 2017 @ 6:42am 
Hi,

inspecting system logs (dmesg)

I noticed that
1. plugging in the controller via usb, it is recognised correclty:
[20463.085878] usb 1-3: new full-speed USB device number 17 using xhci_hcd
[20463.218416] sony 0003:054C:05C4.000C: Using modified Dualshock 4 report descriptor with gyroscope axes
[20463.223384] input: Sony Computer Entertainment Wireless Controller Touchpad as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:054C:05C4.000C/input/input43
[20463.279354] input: Sony Computer Entertainment Wireless Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:054C:05C4.000C/input/input42
[20463.279581] sony 0003:054C:05C4.000C: input,hidraw7: USB HID v81.11 Gamepad [Sony Computer Entertainment Wireless Controller] on usb-0000:00:14.0-3/input0

2. Starting Steam, a new virtual device is created, a XBox 360 game pad:
[20480.160461] input: Microsoft X-Box 360 pad as /devices/virtual/input/input44
austinp_valve May 9, 2017 @ 12:17pm 
Can you post a link to the config you're using for Mad Max? If you are in the browse config menu there's a share button that will copy a link for you.

Can you go into Big Picture->Settings->Controller Settings and calibrate your DS4? Continuous rotation of the camera sounds like the gyro is pegged to one direction.

When PS4 configuration support is enabled seeing Xbox or keyboard glyphs in expected when games aren't using the Native Controller API. Steam emulates controllers using Xinput rather than Dinput because it is more widely supported. Some configs also use keyboard/mouse instead of gamepad even for games that support gamepads because sometimes camera controls are just better in mouse modes.
Last edited by austinp_valve; May 9, 2017 @ 12:36pm
Grinness May 9, 2017 @ 4:09pm 
Hi Austinp,

I calibrated the pad as suggested

I tried with 'Gamepad' (from selection of default configs)
steam://controllerconfig/234140/922695215


and with 'Gamepad with High Precision Camera/Aim' (the default setting from selection of default configs)

I did not re-configure anything.

but the result is the same:
* righ stick does not work
* as soon as I trigger L2, the camera starts spinning
* in menu: X for selection does not work, O works instead
* In menu: O for exiting sub menu does not work, TRIANGLE works instead
* dpad works
* left stick works
* SHARE does not work -- should bring up the map

Note that mad max shows the DS4 gliphs, but when accessing the ingame gamepad menu, it shows the XBox One controller ....

I do understantd that Valve/Steam wants to guarantee maximum compatibility, but currently the end result is breaking those games that support DS4 natively, or making the 'experience' not really enjoyable when button glyphs on screen and on controller do not match
I still can't figure out why Aphotheon refuses to 'see' the controller if I disable Steam controller support. When I bought the game, DS4 worked flawlessly and game showed the correct glyphs

Best
G.
Grinness May 9, 2017 @ 5:10pm 
Hi,

just a quick update.

Without changing any configuration, now controller support in Shadow of Mordor is back to bad.
The game has native support for PS4 DS4 in linux (and windows I assume), but
* controller works only if Steam controller support for PS4 is enabled
* controller is identified as Steam Controller (wrong glyphs and ingame controller button mapping shows image of Steam Controller)

This is BAD.

Until the issue is solved and Steam guarantees supporting transparently gamepads (no, sticking in-between the controller and the game a wrapper is no good, especially if disabling it breaks usage of the controller) I will avoid buying from Steam.

If you need more testing on the games I have, I am happy to provide info.

Best,
G.
austinp_valve May 9, 2017 @ 5:27pm 
Are you still seeing issues if you power cycle the controller after opting out of controller configuration? Also are you opting out per game or globally on the controller settings page?

When you opt-out of controller configuration for the DS4 Steam no longer interposes between the game and the controller. It still does send some messages to the controller, but so far the only known cases where that would cause problems are via Bluetooth.
Grinness May 10, 2017 @ 1:35am 
Hi,

I tested controller support in 5 games.
For maximum clarity: controller worked fine for all games below with glyph shown as specific game support. Issues since Steam enabled PS4 Controller Support for non Steam Controller

Procedure 1:
PS4 Controller Support DISABLED GLOBALLY (from BigPicture)
Controller POWERCYCLED (USB CABLE)
Steam Restarted
Games started from 'normal interface' (NO BigPicture)

Shadow Of Mordor
Controller is not identified by the game -- can not use

MadMax
Controller unusable with buttons wrongly mapped and PS4 DS4 glyphs (as above posts)

Life Is Strange
Controller is not identified by the game -- can not use

Tomb Rider
Controller works perfectly with Xbox style glyphs

Rocket League
Controller is not identified by the game -- can not use

Procedure2
PS4 Controller Support ENABLED GLOBALLY (from BigPicture)
Controller POWERCYCLED (USB CABLE)
Steam Restarted
Games started from BigPicture
Controller POWERCYCLED (USB CABLE) before running each game

Shadow Of Mordor
Controller identified as Steam Controller. It works

MadMax
Controller unusable with buttons wrongly mapped and PS4 DS4 glyphs (as above posts)

Life Is Strange
Controller works perfectly with Xbox style glyphs

Tomb Rider
Controller works perfectly with Xbox style glyphs
Note:
when games starts, controller's front light dims as if Steam stop applying its controller overlay.
Once out of game, controller front light does not change. I have to POWERCYCLE to get it beck to bright (as when Steam applies its controller overlay)

Rochet League
Controller works only for Player 2.
Note: the fact that game recognizes controller as controller2/player2 may be due to Steam creating the extra 'Microsoft X-Box 360 pad as /devices/virtual/input/inputXXX' as in dmesg

Checking dmesg output:

Step1
Steam NOT Running
Controller POWERCYCLED (USB CABLE)

output dmesg:
[ 970.420173] usb 1-3: USB disconnect, device number 12
[ 985.283234] usb 1-3: new full-speed USB device number 13 using xhci_hcd
[ 985.416006] sony 0003:054C:05C4.000A: Using modified Dualshock 4 report descriptor with gyroscope axes
[ 985.420973] input: Sony Computer Entertainment Wireless Controller Touchpad as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:054C:05C4.000A/input/input39
[ 985.476691] input: Sony Computer Entertainment Wireless Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:054C:05C4.000A/input/input38
[ 985.477385] sony 0003:054C:05C4.000A: input,hidraw0: USB HID v81.11 Gamepad [Sony Computer Entertainment Wireless Controller] on usb-0000:00:14.0-3/input0

ls /sys/devices/virtual/input/
mice


Step2
Start Steam (No BigPicture,PS4 Controller Support ENABLED GLOBALLY)

output dmesg:
[ 970.420173] usb 1-3: USB disconnect, device number 12
[ 985.283234] usb 1-3: new full-speed USB device number 13 using xhci_hcd
[ 985.416006] sony 0003:054C:05C4.000A: Using modified Dualshock 4 report descriptor with gyroscope axes
[ 985.420973] input: Sony Computer Entertainment Wireless Controller Touchpad as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:054C:05C4.000A/input/input39
[ 985.476691] input: Sony Computer Entertainment Wireless Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:054C:05C4.000A/input/input38
[ 985.477385] sony 0003:054C:05C4.000A: input,hidraw0: USB HID v81.11 Gamepad [Sony Computer Entertainment Wireless Controller] on usb-0000:00:14.0-3/input0
[ 1148.985672] input: Microsoft X-Box 360 pad as /devices/virtual/input/input40


ls /sys/devices/virtual/input/
input40 mice

ls /sys/devices/virtual/input/input40/
capabilities event24 id js1 modalias name phys power properties subsystem uevent uniq

Step3
Start Big Picture
Controller POWERCYCLED (USB CABLE)

output dmesg:
[ 1341.469160] usb 1-3: USB disconnect, device number 13
[ 1345.653881] usb 1-3: new full-speed USB device number 14 using xhci_hcd
[ 1345.789909] sony 0003:054C:05C4.000B: Using modified Dualshock 4 report descriptor with gyroscope axes
[ 1345.794971] input: Sony Computer Entertainment Wireless Controller Touchpad as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:054C:05C4.000B/input/input42
[ 1345.850707] input: Sony Computer Entertainment Wireless Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:054C:05C4.000B/input/input41
[ 1345.851381] sony 0003:054C:05C4.000B: input,hidraw0: USB HID v81.11 Gamepad [Sony Computer Entertainment Wireless Controller] on usb-0000:00:14.0-3/input0
[ 1346.617481] input: Microsoft X-Box 360 pad as /devices/virtual/input/input43

ls /sys/devices/virtual/input/
input43 mice

ls /sys/devices/virtual/input/input43/
capabilities event24 id js1 modalias name phys power properties subsystem uevent uniq

Step4
Start Rocket League from BigPicture
Result: Controller only for Player2. Player1 has keyboard
Please note that the virtual input has 'js1' (controller2) in its /sys/ device above (step 2 and step3).

Controller1 is 'js0':
ls /sys/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:054C:05C4.000B/input/input41
capabilities device event1 id js0 modalias name phys power properties subsystem uevent uniq


Best,
G.
Last edited by Grinness; May 10, 2017 @ 1:40am
Grinness May 10, 2017 @ 3:50am 
Just to quickly follow up on the Controller1/Controller2 issue.

The net effect of Steam creating the second virtual device is (most likely) messing up any game that support mutiplayer via multi-game pads via the /dev/input interface (or alternative interfaces) -- as in the case of Rocket League

Please check below the content of /dev/input

When:
* DS4 IS NOT PLUGGED IN
* Steam NOT Running

NO GAMEPAD LISTED:

ls -al /dev/input/
total 0
drwxr-xr-x 4 root root 580 May 10 11:40 .
drwxr-xr-x 19 root root 3420 May 10 11:40 ..
drwxr-xr-x 2 root root 200 May 10 11:40 by-id
drwxr-xr-x 2 root root 240 May 10 11:40 by-path
crw-rw---- 1 root input 13, 74 May 10 08:58 event10
crw-rw---- 1 root input 13, 75 May 10 08:58 event11
crw-rw---- 1 root input 13, 76 May 10 08:58 event12
crw-rw---- 1 root input 13, 77 May 10 08:58 event13
crw-rw---- 1 root input 13, 78 May 10 08:58 event14
crw-rw---- 1 root input 13, 79 May 10 08:58 event15
crw-rw---- 1 root input 13, 80 May 10 08:58 event16
crw-rw---- 1 root input 13, 81 May 10 08:58 event17
crw-rw---- 1 root input 13, 82 May 10 08:58 event18
crw-rw---- 1 root input 13, 83 May 10 08:58 event19
crw-rw---- 1 root input 13, 66 May 10 08:58 event2
crw-rw---- 1 root input 13, 84 May 10 08:58 event20
crw-rw---- 1 root input 13, 85 May 10 08:58 event21
crw-rw---- 1 root input 13, 86 May 10 08:58 event22
crw-rw---- 1 root input 13, 87 May 10 08:58 event23
crw-rw---- 1 root input 13, 67 May 10 08:58 event3
crw-rw---- 1 root input 13, 68 May 10 08:58 event4
crw-rw---- 1 root input 13, 69 May 10 08:58 event5
crw-rw---- 1 root input 13, 70 May 10 08:58 event6
crw-rw---- 1 root input 13, 71 May 10 08:58 event7
crw-rw---- 1 root input 13, 72 May 10 08:58 event8
crw-rw---- 1 root input 13, 73 May 10 08:58 event9
crw-rw---- 1 root input 13, 63 May 10 08:58 mice
crw-rw---- 1 root input 13, 32 May 10 08:58 mouse0
crw-rw---- 1 root input 13, 33 May 10 08:58 mouse1



When:
* DS4 IS PLUGGED IN
* Steam NOT Running

1 GAMEPAD LISTED (js0):

ls -al /dev/input/
total 0
drwxr-xr-x 4 root root 640 May 10 11:46 .
drwxr-xr-x 19 root root 3440 May 10 11:46 ..
drwxr-xr-x 2 root root 260 May 10 11:46 by-id
drwxr-xr-x 2 root root 300 May 10 11:46 by-path
crw-rw---- 1 root input 13, 64 May 10 11:46 event0
crw-rw----+ 1 root input 13, 65 May 10 11:46 event1
crw-rw---- 1 root input 13, 74 May 10 08:58 event10
crw-rw---- 1 root input 13, 75 May 10 08:58 event11
crw-rw---- 1 root input 13, 76 May 10 08:58 event12
crw-rw---- 1 root input 13, 77 May 10 08:58 event13
crw-rw---- 1 root input 13, 78 May 10 08:58 event14
crw-rw---- 1 root input 13, 79 May 10 08:58 event15
crw-rw---- 1 root input 13, 80 May 10 08:58 event16
crw-rw---- 1 root input 13, 81 May 10 08:58 event17
crw-rw---- 1 root input 13, 82 May 10 08:58 event18
crw-rw---- 1 root input 13, 83 May 10 08:58 event19
crw-rw---- 1 root input 13, 66 May 10 08:58 event2
crw-rw---- 1 root input 13, 84 May 10 08:58 event20
crw-rw---- 1 root input 13, 85 May 10 08:58 event21
crw-rw---- 1 root input 13, 86 May 10 08:58 event22
crw-rw---- 1 root input 13, 87 May 10 08:58 event23
crw-rw---- 1 root input 13, 67 May 10 08:58 event3
crw-rw---- 1 root input 13, 68 May 10 08:58 event4
crw-rw---- 1 root input 13, 69 May 10 08:58 event5
crw-rw---- 1 root input 13, 70 May 10 08:58 event6
crw-rw---- 1 root input 13, 71 May 10 08:58 event7
crw-rw---- 1 root input 13, 72 May 10 08:58 event8
crw-rw---- 1 root input 13, 73 May 10 08:58 event9
crw-rw-r--+ 1 root input 13, 0 May 10 11:46 js0
crw-rw---- 1 root input 13, 63 May 10 08:58 mice
crw-rw---- 1 root input 13, 32 May 10 08:58 mouse0
crw-rw---- 1 root input 13, 33 May 10 08:58 mouse1

When:
* DS4 IS PLUGGED IN
* Steam Running

2 GAMEPAD LISTED (js0, js1):

ls -al /dev/input/
total 0
drwxr-xr-x 4 root root 680 May 10 11:47 .
drwxr-xr-x 19 root root 3440 May 10 11:46 ..
drwxr-xr-x 2 root root 260 May 10 11:46 by-id
drwxr-xr-x 2 root root 300 May 10 11:46 by-path
crw-rw---- 1 root input 13, 64 May 10 11:46 event0
crw-rw----+ 1 root input 13, 65 May 10 11:46 event1
crw-rw---- 1 root input 13, 74 May 10 08:58 event10
crw-rw---- 1 root input 13, 75 May 10 08:58 event11
crw-rw---- 1 root input 13, 76 May 10 08:58 event12
crw-rw---- 1 root input 13, 77 May 10 08:58 event13
crw-rw---- 1 root input 13, 78 May 10 08:58 event14
crw-rw---- 1 root input 13, 79 May 10 08:58 event15
crw-rw---- 1 root input 13, 80 May 10 08:58 event16
crw-rw---- 1 root input 13, 81 May 10 08:58 event17
crw-rw---- 1 root input 13, 82 May 10 08:58 event18
crw-rw---- 1 root input 13, 83 May 10 08:58 event19
crw-rw---- 1 root input 13, 66 May 10 08:58 event2
crw-rw---- 1 root input 13, 84 May 10 08:58 event20
crw-rw---- 1 root input 13, 85 May 10 08:58 event21
crw-rw---- 1 root input 13, 86 May 10 08:58 event22
crw-rw---- 1 root input 13, 87 May 10 08:58 event23
crw-rw----+ 1 root input 13, 88 May 10 11:47 event24
crw-rw---- 1 root input 13, 67 May 10 08:58 event3
crw-rw---- 1 root input 13, 68 May 10 08:58 event4
crw-rw---- 1 root input 13, 69 May 10 08:58 event5
crw-rw---- 1 root input 13, 70 May 10 08:58 event6
crw-rw---- 1 root input 13, 71 May 10 08:58 event7
crw-rw---- 1 root input 13, 72 May 10 08:58 event8
crw-rw---- 1 root input 13, 73 May 10 08:58 event9
crw-rw-r--+ 1 root input 13, 0 May 10 11:46 js0
crw-rw-r--+ 1 root input 13, 1 May 10 11:47 js1
crw-rw---- 1 root input 13, 63 May 10 08:58 mice
crw-rw---- 1 root input 13, 32 May 10 08:58 mouse0
crw-rw---- 1 root input 13, 33 May 10 08:58 mouse1


When:
* DS4 IS NOT PLUGGED IN
* Steam Running

NO GAMEPAD LISTED:

ls -al /dev/input/
total 0
drwxr-xr-x 4 root root 580 May 10 12:07 .
drwxr-xr-x 19 root root 3420 May 10 12:07 ..
drwxr-xr-x 2 root root 200 May 10 12:07 by-id
drwxr-xr-x 2 root root 240 May 10 12:07 by-path
crw-rw---- 1 root input 13, 74 May 10 08:58 event10
crw-rw---- 1 root input 13, 75 May 10 08:58 event11
crw-rw---- 1 root input 13, 76 May 10 08:58 event12
crw-rw---- 1 root input 13, 77 May 10 08:58 event13
crw-rw---- 1 root input 13, 78 May 10 08:58 event14
crw-rw---- 1 root input 13, 79 May 10 08:58 event15
crw-rw---- 1 root input 13, 80 May 10 08:58 event16
crw-rw---- 1 root input 13, 81 May 10 08:58 event17
crw-rw---- 1 root input 13, 82 May 10 08:58 event18
crw-rw---- 1 root input 13, 83 May 10 08:58 event19
crw-rw---- 1 root input 13, 66 May 10 08:58 event2
crw-rw---- 1 root input 13, 84 May 10 08:58 event20
crw-rw---- 1 root input 13, 85 May 10 08:58 event21
crw-rw---- 1 root input 13, 86 May 10 08:58 event22
crw-rw---- 1 root input 13, 87 May 10 08:58 event23
crw-rw---- 1 root input 13, 67 May 10 08:58 event3
crw-rw---- 1 root input 13, 68 May 10 08:58 event4
crw-rw---- 1 root input 13, 69 May 10 08:58 event5
crw-rw---- 1 root input 13, 70 May 10 08:58 event6
crw-rw---- 1 root input 13, 71 May 10 08:58 event7
crw-rw---- 1 root input 13, 72 May 10 08:58 event8
crw-rw---- 1 root input 13, 73 May 10 08:58 event9
crw-rw---- 1 root input 13, 63 May 10 08:58 mice
crw-rw---- 1 root input 13, 32 May 10 08:58 mouse0
crw-rw---- 1 root input 13, 33 May 10 08:58 mouse1


Best,
G,
Last edited by Grinness; May 10, 2017 @ 4:08am
Scratch May 10, 2017 @ 12:45pm 
Even as a windows user, I've had a number of issues with DS4 that have put me in the position to no longer care about steam's support into controller inputs.

While it's marketed for those developing for the steam platform for users to have an easier experiance, it's not, and it's sh:B1:t

I'm still resorting to third party applications for games that either, do not provide support for DS4, or if I wish to play over Bluetooth
Last edited by Scratch; May 10, 2017 @ 12:46pm
Pierre-Loup May 10, 2017 @ 4:22pm 
There's been upstream kernel changes that changed the userspace interface for DS4 controllers and unfortunately regressed older SDL2 builds. The corresponding fixes have been made to SDL at the same time as the kernel changes, so building a fresh copy of SDL2 from Mercurial and using that instead with the problematic games should work around this problem.

We're working on a new release of SDL2 that would include these changes and updating the copy in the Steam Runtime.
Grinness May 10, 2017 @ 5:12pm 
Thank you very much for the info.
I will keep an eye on SDL updates on my distro and test using 'steam-native' provided by Arch.

TBH, I do hope that the issue gets solve.
I am very keen to support gaming on linux on a comletely FOSS stack.

Best,
M.
< >
Showing 1-10 of 10 comments
Per page: 1530 50

All Discussions > Bug Reports > Topic Details
Date Posted: May 9, 2017 @ 6:28am
Posts: 10