It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
Hello, I recently purchased a USB controller for my desktop computer so that I could play games with it. Unfortunately, Firewatch doesn't seem to be compatible with it for some reason. Other games I have installed, that are designed with controllers in mind, such as Alien Isolation and Tomb Raider work fine, but for some reason not Firewatch. When I select the controller in settings I can even here it making little sounds when I press certain buttons on the controller, but it doesn't respond to any inputs. Does anyone have any solutions about how to get controllers working in Linux Mint 19+?

Thank you in advance and have a wonderful day.
No posts in this topic were marked as the solution yet. If you can help, add your reply
I can't say for sure about this game, since I haven't gotten around to testing it yet, but you might want to try xboxdrv if your controller isn't an X-Box controller. I use it to make some games work with my dualshock 4. I have a sample xboxdrv.conf and a driver script you can look at for help.

edit: I noticed this game might use SDL2 for controllers. If so, you can set SDL_GAMECONTROLLERCONFIG to the game controller database entry for your controller. If you can't find one, you can create one using SDL2's controllermap utility, which unfortunately doesn't get shipped with most distros, so you'll have to build the SDL2 sources yourself, where controllermap will be in the test directory. The only documented alternative is to use Steam's controller mapping utility, which I can't veri9fy because I stay clear of Steam. Note that I still haven't tested this game, and can't right now, because I am on battery power.

edit 2: OK, now I've actually tried the game. All I can say is that it's likely neither of the above suggestions will work for you. I can't get this to work at all on my controller (basic controls work, but R2/RT for example never works). This is just like another game I recently got (uses an internal mapping that overrides SDL2's mapping), so now 4 games that are "cross-platform" but can't do Linux controllers correctly. There is one thing about unity3d's controller support that I might try later (it has a manual remapper for other games, which may translate into config file entries that can be transferred to this game), but I don't have much hope. I started on a general button/axis swapper to replace my old one, but I decided not to waste my time on this issue any more, as I have better games to play.

edit 3: I found a unity3d game that generates config values, but they are mostly illegible and not worth my time to try to decipher. Maybe if there were a way to force ScreenSelector.so to pop up on other games, but it's impossible to find user-level documentation for unity3d. Again, not worth my effort.
Post edited May 10, 2020 by darktjm
avatar
chaostheory6682:
Never mind most of my previous rambling post. In a fit of anger, I finally finished my alternate remapper, and found that this game didn't need it after all. I had assumed it needed one because the right trigger (R2) was moving the cursor right and left in the menu (whereas the dpad up & down were moving it down & up, respectively), but it appears that was by design. The only thing I haven't yet verified is the dpad left/right, because I didn't get far enough in the game for that to have any effect.

The only thing you need to get your gamepad working with this game is a proper SDL2 controller config database entry. You should have one anyway, as many games these days need one. You can even modify the config line as needed (I had to reverse the dpad up and down keys, for example). Either stick the entry in a file, or set SDL_GAMECONTROLLERCONFIG to the full entry. If you stick it in a file, make sure to put it in the right place for this game (I am posting this without power, so I can't really do an strace to find out where this game wants it) or set the SDL_GAMECONTROLLERCONFIG_FILE environment variable to the path to that file.

edit: see the SDL_GamecontrollerDB for a community gamecontrollerdb.txt. To load it, set SDL_GAMECONTROLLERCONFIG_FILE to point to the file (or try placing it in the game dir, but there's no guarantee it will be loaded). That page also has links to 3 different ways to generate an entry for your controller yourself.
Post edited May 14, 2020 by darktjm
Thank you for the replies, sorry it took so long to respond, I didn't actually see a notification for this until today. I will look into this and see if I get any results. I contacted GOG about the issue and they couldn't help, their only response was that it doesn't support controllers. Your help is appreciated, as is your time. I will let you know if it works.
avatar
chaostheory6682: Thank you for the replies, sorry it took so long to respond, I didn't actually see a notification for this until today. I will look into this and see if I get any results. I contacted GOG about the issue and they couldn't help, their only response was that it doesn't support controllers. Your help is appreciated, as is your time. I will let you know if it works.
Hi there, I'm also struggling with controllers (DS4) not working on linux. Did this work for you?
avatar
gibson1403: Hi there, I'm also struggling with controllers (DS4) not working on linux. Did this work for you?
While neither of us mentioned the exact controler we were using, I am, in fact, using a bt-attached ds4. For this, I have the following set in my global environment:

export SDL_GAMECONTROLLERCONFIG="050000004c050000cc09000000810000,Wireless Controller,platform:Linux,a:b0,b:b1,x:b3,y:b2,back:b8,guide:b10,start:b9,leftstick:b11,rightstick:b12,leftshou lder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a4, lefttrigger:a2,righttrigger:a5,"

But, as I mentioned above, for this game, the dpad up and down keys are inverted, so adjust the above as needed. I'm typing blinkdly in a public area with the sun on my screen, so I can't do it for you.

Of course if you attach your ds4 with USB, the guid and controller name are different, so adjust that as needed.
avatar
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
Post edited September 01, 2020 by xixas
Just now seeing that this got a response and I know I'm a bit late with a reply, but if you get it through Steam you can use their client to force controller support. Just an FYI