darktjm: Of course if you attach your ds4 with USB, the guid and controller name are different, so adjust that as needed.
This worked for me with a
wired DS4 (PS4 Controller)... but the trick is to set your in-game settings to "Gamepad", NOT "Dualshock Controller" (for some reason that creates a camera bug on the right trigger).
export SDL_GAMECONTROLLERCONFIG='030000004c050000cc09000011810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.1,dpleft:h0.8,dpright:h0.2,dpup:h0.4,guide:b11,leftshoulder:b4,leftstic k:b12,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,sta rt:b9,x:b3,y:b2'
As far as SDL configs go, it's completely wrong -- dpad is flipped vertically and the values for guide/leftstick/rightstick have been swapped. But for Firewatch, the buttons are mapped correctly.
As previously mentioned you may need to tweak the GUID to match your DS4 model, so here are the ones I know of for Linux:
030000004c050000a00b000011010000
030000004c050000a00b000011810000
030000004c050000c405000011010000
030000004c050000c405000011810000
030000004c050000cc09000000010000
030000004c050000cc09000011010000
030000004c050000cc09000011810000
050000004c050000c405000000010000
050000004c050000c405000000810000
050000004c050000cc09000000010000
050000004c050000cc09000000810000
050000004c050000cc09000001800000
Once you verify it works, to make things easier you can just create a small "start_ds4.sh" shell script.
Just place it in your
Firewatch directory and make it executable with
chmod +x start_ds4.sh (and update your desktop or "start menu" entries accordingly).
Here's mine:
start_ds4.sh #!/bin/bash
cd $(dirname "$0") || exit
export SDL_GAMECONTROLLERCONFIG="\
030000004c050000cc09000011810000,\
PS4 Controller,\
a:b0,\
b:b1,\
back:b8,\
dpdown:h0.1,\
dpleft:h0.8,\
dpright:h0.2,\
dpup:h0.4,\
guide:b11,\
leftshoulder:b4,\
leftstick:b12,\
lefttrigger:a2,\
leftx:a0,\
lefty:a1,\
rightshoulder:b5,\
rightstick:b10,\
righttrigger:a5,\
rightx:a3,\
righty:a4,\
start:b9,\
x:b3,\
y:b2,\
"
./start.sh