protonscr

Saving controller config does not work in big picture mode

steamopen Big PicturereviewedGeneral controller / Steam Input
ValveSoftware/steam-for-linux#4468 · opened 2016-05-29 by abc-mikey · updated 2019-06-05 · 7 comments · github
Aabc-mikey 2016-05-29 github

System information

  • Steam client version: Built: Apr 29 2016, at 22:27:58, Steam API: v017, Steam package versions: 1461972496
  • Distribution (e.g. Ubuntu): Fedora 23
  • Opted into Steam client beta?: [Yes/No] No
  • Have you checked for system updates?: [Yes/No] Yes

Description

Big picture mode allows the configuration of button layout on a controller. It also allows saving the configuration. However once SteamOS has been restarted the saved configuration is not available and needs remapping every start.

One additional issue (if not bug) is that the configuration screen upon finishing says press "Y" to save. However the controller configuration hasn't actually remapped so it's difficult to say which button is "Y". You can use a mouse if you have one available.

Steps for reproducing this issue:

  1. Go into settings in SteamOS.
  2. Add / Test controller (non-steam controller)
  3. Click on it to configure the button layout.
  4. Complete the layout mapping.
  5. Select save ("a mouse may help") and exit config.
  6. Check mapping works.
  7. Exit SteamOS (perhaps with restart)
  8. Reenter SteamOS.
  9. Check controller has lost mappings.
Xxksteven 2016-06-10 github

I've been having a similar issue on Ubuntu 16.04. It isn't working at all in big picture mode anymore. I was on steam beta client.

After a restart though the steam controller started to work again as intended.

Iinpos 2016-11-04 github

Same issue in Steam on Debian Stretch amd64.

Ssaladasa 2017-12-02 github

18 months later the issue still exists. Get your act together Valve.

Iinpos 2017-12-04 github

In current version this issue has gone

Aanantha1093 2017-12-24 github

If you don't mind, I have an elaborate workaround for this.

This results from the fact that your config.vdf file (located in C:\Program Files (x86)\Steam\config by default) is being rewritten each time you start up Steam.

To fix this, you have to go to config.vdf and manually edit it - specifically the text related to the "SDL_GamepadBind" field, which you will find towards the end of the file. This needs an input in the template

"controller GUID, controller name, bindings, platform"

Sample:

"79000600000000000000504944564944,NGS Phantom,a:b2,b:b3,y:b1,x:b0,start:b9,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a4,lefttrigger:b6,righttrigger:b7,platform:Windows"

So here's how I went about adding this.

Steps:

  1. I downloaded Notepad++ and SDL2 Gamepad Tool

  2. I exited Steam completely. Then, I opened config.vdf (located as mentioned above) in Notepad++ and scrolled to the bottom to find the following text:

"SDL_GamepadBind" ""

  1. SDL2 Gamepad Tool needs to be extracted to a folder. Then if you run GamepadTool.exe from your extracted files, it will open the tool. However, it kept crashing on startup for me - might be a bug with the tool itself. I noticed that it detected my controller and showed me its name in the text that appears in the lower half of its window on startup. Mine was "NGS Phantom". Start it up a couple of times and you can easily see the name before it crashes.

  2. I opened the gamecontrollerdb.txt file located in the SDL2 Gamepad Tool's directory itself. Then I searched for "NGS Phantom" and I found the text I have mentioned in the sample above. I just copied this text and pasted it in the SDL_GamepadBind field in my config.vdf file. So now that line in my config.vdf file looks like this:

"SDL_GamepadBind" "79000600000000000000504944564944,NGS Phantom,a:b2,b:b3,y:b1,x:b0,start:b9,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a4,lefttrigger:b6,righttrigger:b7,platform:Windows"

  1. I saved the config.vdf file and made a copy of it and kept just in case Steam decided to overwrite it. Then I started up Steam. Of course, it overwrote. Notepad++ will tell you if the file is modified. I exited Steam again, replaced the config.vdf file with the copy that I had made (that contains the SDL_GamepadBind changes), restarted my system and when Steam started up, it informed me that I had connected a controller. The controller then started working properly and I tested it with games.

  2. I still have the copy of the edited file just in case.

Note: I'm sure there are other better tools to detect your Gamepad, I'm not aware of them; I just used SDL2 Gamepad Tool because I found it on Googling. The gamecontrollerdb text file can be found online, but you need to know which Gamepad yours is, right? You basically need to find your controller's GUID and Name as assigned by your system.

Note: The 'platform' field needs to be edited to whichever OS you're using.

Do let me know if this solved the issue! It worked for me.

Kkisak-valve maintainer 2019-05-17 github

Hello, is anyone still experiencing this issue on an up to date system?

Kklepp0906 2019-06-05 github

I am currently. just found this looking for a solution. I fortunately have saved templates that I can just re-apply that blanket-configures most things. I still have to re-apply every re start though.

aaaaaand this is a linux thread. whoops, on windows.

Launch options