ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.22k stars 174 forks source link

Cannot save my controller settings #9049

Open LuparLenz opened 1 year ago

LuparLenz commented 1 year ago

Your system information

Please describe your issue in as much detail as possible:

Describe what you expected should happen and what did happen. Please link any large code pastes as a Github Gist

I have a generic controller (Iqual H4200). After I try to define the buttons layout (Under General controller settings > Define layout), I try to save the changes, and steam will give the usual window asking if I want to upload those settings. Doesn't mind if I select Yes or No, the changes won't be saved. This is a problem, because there are some buttons which steam doesn't detect, (for example, if I press Y, nothing will happen), and there are others which are mixed up (for example, it detects the Right Stick Click as start.)

I also tried the same process in a Windows pc (Which detects the gamepad as a PlayStation 4 controller) with no problem. Maybe I could beat that bug if I paste the file where those configurations are saved from one machine to another. But I don't know where those files are located (and I didn't find any information researching in google)

I also started steam using the console, to see if it displayed some kind of warning or error. This is what I got:


(steam:45126): GLib-CRITICAL **: 00:10:36.713: g_main_context_pop_thread_default: assertion 'g_queue_peek_head (stack) == context' failed
Controller device closed after hid_read failure
Local Device Found
  type: 0c12 1e1a
  path: sdl://0
  serial_number:  - 0
  Manufacturer: 
  Product:      ZEROPLUS P4 Wired Gamepad
  Release:      111
  Interface:    -1

!! Steam controller device opened for index 0.
Local Device Found
  type: 0c12 1e1a
  path: sdl://0
  serial_number:  - 0
  Manufacturer: 
  Product:      ZEROPLUS P4 Wired Gamepad
  Release:      111
  Interface:    -1

!! Steam controller device opened for index 0.
No cached sticky mapping in DeactivateActionSetLayer.
(steam:45126): GLib-CRITICAL **: 00:10:46.719: g_main_context_push_thread_default: assertion 'acquired_context' failed

(steam:45126): GLib-CRITICAL **: 00:10:46.720: g_main_context_pop_thread_default: assertion 'g_queue_peek_head (stack) == context' failed
Moving back to: ShowSettingsMenu (focus: none)
Moving back to: ShowMainMenu (focus: SettingsButton)
**** Panel FavoritePages has fill-parent-flow for height, but isn't in a flowing down or up layout
DeleteFBOFreeList: Removing 96 FBO objects, total 0

(steam:45126): GLib-CRITICAL **: 00:10:56.723: g_main_context_push_thread_default: assertion 'acquired_context' failed

(steam:45126): GLib-CRITICAL **: 00:10:56.724: g_main_context_pop_thread_default: assertion 'g_queue_peek_head (stack) == context' failed

(steam:45126): GLib-CRITICAL **: 00:11:06.770: g_main_context_push_thread_default: assertion 'acquired_context' failed

(steam:45126): GLib-CRITICAL **: 00:11:06.771: g_main_context_pop_thread_default: assertion 'g_queue_peek_head (stack) == context' failed

This is what I got from Applications Logs:

(II) This device may have been added with another device file. (II) No input driver specified, ignoring this device. (II) config/udev: Adding input device Microsoft X-Box 360 pad 0 (/dev/input/event20) (II) This device may have been added with another device file. (II) No input driver specified, ignoring this device. (II) config/udev: Adding input device Microsoft X-Box 360 pad 0 (/dev/input/js1)

I also uninstalled and reinstalled steam, and the problem persisted.

Steps for reproducing this issue:

  1. Start up steam
  2. Start Big Picture Mode
  3. Go to settings
  4. In settings go to "General Controller Settings"
  5. Go to your controller
  6. Go to "Define Layout"
  7. Make some changes
  8. Press on "Save"
  9. Upload your settings or press "No, thanks" (It doesn't mind)
  10. Your changes weren't saved

Or you can go to general controller settings without entering BPM. But the results will be the same.

kisak-valve commented 1 year ago

On #9085, @dinhokusanagi asked if a controller mapping file could be generated as an alternative to resolving this issue. Steam Input uses SDL2 under the hood and this shouldn't be practical or needed. Instead, as a workaround, it should be possible to use SDL tools like https://generalarcade.com/gamepadtool/ to help generate a SDL_GAMECONTROLLERCONFIG environment variable and set that in the environment that Steam or individual games run in.

A potentially useful guide: https://www.reddit.com/r/linux_gaming/comments/9cf6ip/guide_how_to_make_all_of_your_controllers_work_at/

RedKrieg commented 1 year ago

I was unable to use my Google Stadia controller because of this issue, but the new big picture mode just released to stable allowed me to configure it using Settings > Controller > Test Device Inputs > Begin Test > Setup Device Inputs.

By default the triggers were unbound and the sticks controlled the triggers.

dinhokusanagi commented 1 year ago

After I took a ban of a few days I found the solution of this problem.Some here said I deserved Ban, and that was great, now I wish Valve never solve this problem.thank you guys.

kislaykk commented 1 year ago

I was facing this same problem , my controller is ANT ESPORTS gp310 . So i created a new mapping with the tool https://generalarcade.com/gamepadtool/ and copied the value it displayed in its console window such as this image

and then set its value in ~/.bashrc, something like this(I did this step because environment variable was not set properly) image

after this i started the steam via terminal and it picked up the mapping. Hope it helps every one!!!

gabrielwoj commented 1 year ago

This is happening on the Windows version too (Steam build Mar 24, 2023, at 10:12:43), Windows 10 Pro 21H2 (64bits).

I have intentionally removed the left stick's functionality on my Xbox One Controller due to a massive drift problem, for all games. However, all the sudden, the "Left Stick X" option came back to normal after months of being unbound, but not "Left Stick Y". Both of them should be "---".

You can remove a bind by, for example, setting something to "Start", then setting back the proper button for "Start" on the appropriate button, this will mark the previous button as "---". This is how I did for the Left Stick, and it used to work just fine (both X and Y axis as "---").

I don't know if that's an unintended feature. Thankfully, my drift problem only affects the Y Axis, so I'm not having a problem on games I only play via D-Pad, though I still wish that moving the Left Stick left or right didn't move me in-game.

But, no matter what I do, the setting always go back to "Left Stick X = Axis 0" and "Left Stick Y = ---".

But... Eventually I want to fix this controller, and I feel like I won't be able to set back to defaults. Perhaps by disabling "Xbox Configuration Support" will make everything default again, but I would rather not try right now to lose my "Left Stick Y" setting.

I know that my post is related to the Windows version, so I'm sorry for posting if it's not valid. I was unable to find a repo for Issue Tracking for the Windows version, if said repo exists.

e-clin commented 1 year ago

Replying to https://github.com/ValveSoftware/steam-for-linux/issues/9049#issuecomment-1485929309

I also encountered this weird problem in Steam (API v020, package version 1682573004) on Windows 11 Pro 21H2. My generic Nintendo Switch Pro Controller was detected as an Xbox controller, so the A/B and X/Y button layout was misaligned with the physical buttons. I tried to change the button layout, but when I clicked on Save, it revert to the original settings and my changes were not kept.

bennolor commented 1 year ago

https://github.com/ValveSoftware/steam-for-linux/issues/9049#issuecomment-1485929309

I have also encountered this issue. While I was able to change the config at least at one point in the past it is now not possible anymore.

Behavior:

  1. Controller layout is redefined in the layout screen
  2. Controller layout is saved
  3. Controller disappears almost instantly from the list of available controllers
  4. Controller reappears
  5. Layout is unchanged.
e-clin commented 1 year ago

Replying to #9049 (comment)

I also encountered this weird problem in Steam (API v020, package version 1682573004) on Windows 11 Pro 21H2. My generic Nintendo Switch Pro Controller was detected as an Xbox controller, so the A/B and X/Y button layout was misaligned with the physical buttons. I tried to change the button layout, but when I clicked on Save, it revert to the original settings and my changes were not kept.

I've since found a solution, although I'm not sure whether it applies to the others - I followed the instructions in the user's manual of my controller to switch it from the default XInput to DirectInput mode, and Steam correctly recognised it as a Switch Pro Controller instead of an Xbox Controller. I no longer need to change the controller layout.

PonPonTheBonBon commented 1 year ago

I can report that I have the same issue,

Steam: 2023-05-30T13:43:01 v020 1685488080 Windows 10.0.19045.2965

Changing anything, then pressing save, choosing to upload or not doesn't matter, the changes won't be saved.

e-clin commented 1 year ago

I can report that I have the same issue,

Steam: 2023-05-30T13:43:01 v020 1685488080 Windows 10.0.19045.2965

Changing anything, then pressing save, choosing to upload or not doesn't matter, the changes won't be saved.

Just curious whether you've tried changing the controller from XInput to DirectInput or vice versa. Steam recognised my third-party Nintendo Switch controller as an Xbox controller and I couldn't save my custom layout, but changing the controller from XInput to DirectInput solved all the problems.

PonPonTheBonBon commented 1 year ago

I can report that I have the same issue, Steam: 2023-05-30T13:43:01 v020 1685488080 Windows 10.0.19045.2965 Changing anything, then pressing save, choosing to upload or not doesn't matter, the changes won't be saved.

Just curious whether you've tried changing the controller from XInput to DirectInput or vice versa. Steam recognised my third-party Nintendo Switch controller as an Xbox controller and I couldn't save my custom layout, but changing the controller from XInput to DirectInput solved all the problems.

I changed Steam to always use Steam Input for the games I need the controls changed for, the I press the menu button top right of a game, and choose to modify the input. This will go to a different page of settings which has vastly superior settings, and per-game-settings, and allows you to save as multiple layouts (the latter is rather clunky though).

Trying to modify the Steam input from Steam-settings itself as a global setting isn't working properly, is too limited, as well as just redundant. I've stopped using this and perhaps Steam should mark it as deprecated and suggest the better alternative.

toris-birds commented 8 months ago

This is happening on the Windows version too (Steam build Mar 24, 2023, at 10:12:43), Windows 10 Pro 21H2 (64bits).

I have also encountered this issue on Windows 10, Steam API v021, 1705108172 with ETS2 (Euro Truck Simulator 2). I don't know it's game dependent or not, but some settings are not saved correctly.

And I found that input configs are written to WRONG config (IGA) file occasionally.

IGA file: partner.steamgames.com/doc/features/steam_controller/iga_file

For ETS2 game dependent configs are [SteamDirectory]\UserData[UserID]\241100\remote\xxx_controller_config.vdf (Not in remote\controller_config[appid]\ )

and personal configs are [SteamDirectory]\steamapps\common\Steam Controller Configs[UserID]\config[appid(?)]\some_name.vdf

and latter (personal) ones are saved to wrong file occasionally.

Example steps

  1. Select settings for PS5 controller as a template (saved as controller_ps5.vdf)

  2. Edit setting in game and name it as test1 (saved as test1_0.vdf)

  3. After some edits and reloads, input configs are saved to a wrong file. This happens occasionally. (saved as controller_ps5.vdf)

This might happen when game dependent values, like "game_action xxx" in ETS2 as a binding value, are set to some buttons and after some merge of templates are occurred, I guess. Note: Game dependent values does not appear to in-game controller config screen if the original template does not contain game dependent values. So, I edited vdf file manually as a test and observed loaded/saved values and timings.

  1. Exit steam client and restart it again. And start the game This might load old or mixed up configs from the cloud, not from local, and some configs are lost or overwritten with wrong values.