#Not working right trigger in Steam on Linux (SDL mapping problem)

1 messages · Page 1 of 1 (latest)

lapis wing
#

Hey everyone,

I'm using a Lekker edition and I'm having an odd problem where in Xbox mode my space bar key (mapped to right trigger) isn't detected in games. The ones I've tested so far are Celeste, Rocket League, and Splitgate. It seems to work fine on Windows.

It seems to be working fine at www.gamepad-tester.com

It shows up as "Axis 5"

My elite controller's right trigger works fine.

I'm using Fedora with kernel 6.0.7 and I'm not using xboxdrv, anyone know what the problem could be?

jagged pawn
#

Please check the controller inputs within your OS. On OpenSUSE I have a tool called Gamecontroller where I can check them.
I guess the input works fine on Fedora too and that the problem is just a different mapping on the controls. I can't tell you how to adjust the mapping so it matches the Xbox scheme. As a workaround I guess it would help to find out how they differ and accommodate within the Wootility. The downside of course is that the control mapping would mismatch when you use it on Win again.

jagged pawn
#

So when I compare a real Xbox 360 controller with the Wooting on OpenSUSE with the Gamecontroller tool everything seems to be the same. The dpad is mapped as two axis like the site shows. So I assume it all comes down how that site or the game interprets the controls.

#

Meaning I assume the site (or Chromium) itself apply a remapping to the controller so the scheme on Linux matches that for Win.

lapis wing
# jagged pawn Please check the controller inputs within your OS. On OpenSUSE I have a tool cal...

Hey, thanks for getting back to me! I don't have a pre installed application on Fedora that I can use to test controllers. However, I don't think it's a matter of different mapping. The site I mentioned is the only one that detects any input from right trigger (I'm using Firefox). Other websites don't detect any input at all. In the games, when I try to go into settings and remap keys, when I press the right trigger nothing happens.. So it's not a different mapping, just not detected.

#

Additionally, in rocket league all button mappings work the same as they do in Windows, except for the right trigger.

jagged pawn
#

As mentioned I'm not that into the controller stuff on Linux. If I got it right on Linux input devices are handled via two modes. Like for a joystick device there is an older handling where a joystick node is created (like js0), but the OS also adds a more modern device node for event based communication or so (like event0). The site seems to pick up the controller by the js node only, at least it don't detect it when I revoke the permissions for the corresponding node. In that case Steam still seems to work fine. Only if I revoke the permissions for the event nodes it don't working in Steam.

In Steam all the inputs seem to be mapped correctly. For the site not just the trigger are wrong but also the dpad isn't handled the same. Instead that is mapped to different buttons it handled like a hat switch (but not really correctly because the axis are separated). Because of that I believe the site has applies a special mapping to the real controller due to the used vendor and product ID.

lapis wing
#

Thanks a lot. I have class right now but I'll do a separate test without using the site and get back to you.

jagged pawn
# lapis wing Additionally, in rocket league all button mappings work the same as they do in W...

So I guess this comes done which mode the game uses to handle the inputs. As mentioned the event based method seems to be fine and only the joystick mode don't match up.

It can be that some games only accept inputs from well known devices. Like I know Fortnite accepts inputs from a DualShock controller on Win but not from generic controller even the OS handles the DualShock controller also as a generic HID device.

About the games it's maybe the best to bind all controls and check how the game registers them. It can be that the game only handles specific controls.

#

So at first maybe start by ruling out which mode the game uses for controller support. For that you can revoke the permission of the js and event nodes and check if the inputs are still working.

lapis wing
#

Okay, I'll try that

jagged pawn
#

Have you tried the classic analog mode yet? Then the Wooting is registered as a generic HID device like any generic joystick or non Microsoft or Sony controller. I would guess that a game which supports generic controller will work fine. This to say then these games should also have no problem supporting the Wooting in Xbox mode.

Maybe it would also help a lot if you would tell which game you want to use. Maybe you are lucky and I also own it.

lapis wing
jagged pawn
#

I tested the Linux support by changing the device ID of the Wooting. When I used the same device IDs as the real Xbox controller everything was fine. I already knew the inputs where the same. So it all comes down how different device IDs are handled.

it can be that Rocket League is like Fortnite and that this only support selected controller. Not sure how that works on Linux. Like on Linux the Xbox driver works differently. On Win there is an API handling the Xbox controller called XInput. On Linux I assume there is no such API and they are support as generic devices. Then it's likely that if Rocket League don't support generic controller it would also not support the Wooting even in Xbox mode.

lapis wing
#

Rocket League does detect it in Xbox mode. Everything works correctly, just like in Windows. Except for the right trigger for some reason. I'll do further testing later since I'm in class.

jagged pawn
#

xboxdrv works differently. That driver will create a virtual Xbox controller which has the same device ID as a real Xbox controller. So in the case the game only supports selected controller it would not find the device ID of the Wooting but rather the device ID of the virtual controller which matches the real one.

jagged pawn
lapis wing
jagged pawn
#

How do you play Rocket League in Linux? Do you use the Steam version or does the Epic launcher also supports Linux?

lapis wing
#

It's possible to play both versions in Linux, I currently only use the steam version but I've used both. The epic version is playable using heroic launcher.

#

I've tried with and without steam input.

jagged pawn
#

So the Wooting works in Xbox mode under Linux but not in classic mode in Rocket League, right? And you are using the xpad and not the xboxdrv driver?

lapis wing
#

If I disable steam input completely so rocket league can see the keyboard directly, it works fine (except for right trigger). If I enable steam input rocket league doesn't detect the keyboard at all.

jagged pawn
# lapis wing If I disable steam input completely so rocket league can see the keyboard direct...

I assume the controller still works fine in Steam. Please confirm this by disabling the digital keys and test if you can navigate in Steam correctly in classic mode.
If so and if the Steam controller integration also works for your other / real controller it would also work with the Wooting. It can be that the slot assignment is not correct. You can change this by reordering the controller order within the Steam controller integartion.

lapis wing
jagged pawn
#

Also don't forget to check the option for generic controller in the Steam controller settings, otherwise generic controller don't work if the Steam controller integration is used.

lapis wing
jagged pawn
lapis wing
#

I tried to do that but when I launch the game after enabling steam controller support. The game doesn't detect ANY input from the wooting.

jagged pawn
#

But you checked the slot order right?

lapis wing
#

No, I didn't check the slot order

jagged pawn
#

Games typically only support the inputs from the controller in slot 1.

lapis wing
#

I had no other controllers plugged in

jagged pawn
#

So in the case you have multiple controller connected and another works it's likely that the inputs from the Wooting are ignored.

lapis wing
#

But, I tried pressing the start key which I bound to ESC on the wooting, and it didn't detect it as player 2 either

#

You can use up to 4 controllers in rocket league as split screen players.. So even if the slot order was wrong, it should've detected it as second or third player

#

But that didn't work..

#

I thought the problem was rocket league, so I tried other games as well and I had the same problem in those games.

jagged pawn
#

I will try to check out a game. But because I don't own Rocked League on Steam I may not be able to really reproduce the issue.

lapis wing
#

I'm able to reproduce the issue in Celeste as well. I'll test more games. Maybe you and I own the same game and I can test it on that one

jagged pawn
#

The best is to use a free game.

lapis wing
#

Sure, that's not a problem

#

Would this game be fine?

jagged pawn
#

I will check it out.

lapis wing
#

Thanks

jagged pawn
#

Hmm, my VM crashed when I try to open the Steam Input overlay after the game has started. But the game registers the inputs from the Wooting in classic mode and from the real Xbox controller while I forced the game to use the Steam controller integration and checked the options in the controller settings.

lapis wing
#

Yes, this game supports classic controllers. I won't be able to test until my class finishes in 2 hours. I will of course test with my wooting in Xbox mode

jagged pawn
#

That game seems to accept simulations inputs from multiple controller. I forced Steam Input and my real Xbox controller and the Wooting in both analog modes worked fine.

lapis wing
jagged pawn
#

Hmm, possible that I will ran into issue due to the use of a VM. Most games nowadays don't allow that to prevent cheating.

lapis wing
#

Yes, that's possible. I'm running bare metal. I'm not sure if Splitgate has that kind of anti cheat

jagged pawn
#

Steam seems to pick up the Wooting as a generic controller regardless in which analog mode that is. Which is expected...

lapis wing
#

Are you using xboxdrv?

jagged pawn
#

Due to the enabled settings in the Steam controller menu the Wooting has registered in Steam Input regardless in which mode it was. So I was able to change the order of the real and the Wooting. So I would guess that it was fine.

jagged pawn
#

What's why the Wooting in Xbox mode is picked up as a generic controller as assumed above.

lapis wing
#

I see, I thought the xpad picks it up as an Xbox controller.

jagged pawn
#

Not sure where the misunderstanding is... Xpad is just a driver so the OS can pick up the device as a controller.

lapis wing
#

Okay. I thought when you said generic controller you meant a controller that doesn't support Xinput. So it was a misunderstanding on my behalf

jagged pawn
#

A generic HID device tells the OS what it supports and how to interpret the data by a offering a report, like a keyboard or mouse. So the device tells the OS what it is and how it works and everything via a common standard. A Xbox controller does not do that, so it needs a special driver. For Xbox controller it system on Linux basically only checks the device ID and searches for a specific vendor defined interface. The interpretation of the inputs which data controls which key is handled hardcoded.

#

A driver handles the communication between the OS and the device. The API handled the communication between the OS and a game.
XInput is an API on Win so games have a unified way of accessing Xbox controller. But that don't exists on Linux. How I understood it is that on Linux the OS just provide the Xbox controller as regular generic devices because there is no XInput API. Possible that on Linux there is some wrapper or so to map XInput calls to the generic controllers. But as mentioned I'm not sure because I'm not that familiar with Linux.

#

I would assume at least Proton and such tools do such mapping of XInput to generic controller.

lapis wing
#

I see, so xpad tells Linux how to interpret inputs from the wooting in Xbox mode.

jagged pawn
#

Correct...

lapis wing
#

I tested Celeste (native), Splitgate (native), rocket league (native) and rocket league(proton). All of them detected the wooting in Xbox mode perfectly fine. Every mapping worked correctly, except the right trigger. The right trigger couldn't be detected at all, even in the game settings when I tried to change what action is mapped to what controller input.

#

This is why I'm assuming that something is incorrectly implemented in xpad. At least for the Lekker edition keyboard..

jagged pawn
jagged pawn
#

And this is true regardless of the analog mode of the Wooting, correct?

lapis wing
#

Are you talking about the reorder menu in steam big picture mode?

#

I never checked the reorder menu because wooting was the only controller I had plugged in. I'll check the reorder menu when I test again.

jagged pawn
#

When the game is launched.

lapis wing
#

There's no reorder menu in any of the games I tested.

jagged pawn
#

If the Wooting is picked up there it would indicate it was successfully detected by Steam and indeed handled as a Xbox controller regardless of the analog mode.

jagged pawn
lapis wing
#

Doesn't the fact that everything but right trigger was working fine already indicate that wooting is picked up successfully?

jagged pawn
#

By the way, if I unload xpad Steam isn't able to pick up the real Xbox controller. This tells me that Steam isn't handling the RAW data, or in other words don't handle the driver stuff.

lapis wing
#

I can guarantee that all the games and steam picked up the wooting successfully as an Xbox controller. Only problem is the right trigger.

jagged pawn
#

Meaning Steam rely on the controller the system provides.

jagged pawn
lapis wing
#

I never tested classic mode.

jagged pawn
#

I thought you had and I told you so.

lapis wing
#

I think that must have been a misunderstanding

jagged pawn
#

You mentioned Rocked League isn't able to pick up the Wooting in classic mode even when Steam Input is used.

lapis wing
#

No, I mentioned that rocket league isn't able to pick up wooting in classic mode

#

But not with steam input

jagged pawn
#

Ok, so Rocket League isn't able to pick up the Wooting in classic mode directly but you never tested it with Steam Input, correct?

#

So please test it with Steam Input as recommended.

lapis wing
#

I tested with steam input but wooting was in Xbox mode. In this case, rocket league couldn't pick anything up

#

Normally I play without steam input as it adds a little bit of input latency.

jagged pawn
jagged pawn
#

Like mentioned on Win the game just use XInput but I don't know how that is done on Linux.

#

So either all generic controller are working or only specific ones with the normal controller handling. If only specific ones are working I would expect that the Wooting would not work regardless of the used analog mode. While when Steam Input is used that hooks into the controller handling of the game and so meaning every controller should work.

lapis wing
# jagged pawn It's basically the same because that should work.

If xpad presents the wooting as an Xbox controller to Linux, then rocket league should detect it just fine without steam input (and rocket league DOES detect it just fine) and it should be able to understand that when right trigger is pressed it's like pressing right trigger on an Xbox controller (but it doesn't detect right trigger at all, not even as a different mapped button)

jagged pawn
lapis wing
#

Maybe I will try opensuse and see what the game controller program you mentioned shows.

jagged pawn
#

And that the game uses a special mapping for the real Xbox controller which don't apply to the Wooting.

lapis wing
#

Which wooting are you using?

jagged pawn
#

Currently the 60HE AVR.

lapis wing
#

I also own a 60HE but it's ARM, I haven't removed it from the packaging yet. But I can open it up and test it and see if I have the same issue.. I will get back to you after I do some more testing.

#

Thanks btw for spending so much time to help me, really appreciate it.

jagged pawn
#

These are the inputs of the js nodes from the Wooting in Xbox mode and the real Xbox 360 controller. I pressed the right trigger and as you can see the input is handled the same.

jagged pawn
lapis wing
#

How can I perform that same test in the screenshot?

jagged pawn
#

I ran it with jstest /dev/input/js4.

#

This is basically the same as the native tool Gamecontroller from my distribution. That only shows it via a UI.

#

I expect your controls will look the same. Because this node is created by the xpad driver which should use the same configuration for the Wooting as for a real Xbox controller.

#
GitHub

Linux kernel source tree. Contribute to torvalds/linux development by creating an account on GitHub.

#

Because both lack the MAP_DPAD_TO_BUTTONS option the dpad is mapped for both as two different axis where up and down and left and right on the dpad share the same axis.

#

To recap, because the input layout is the same on the bare js node and because the site picks up the controller by this node but shows it differently I conclude that the site has a special handling. For example the site can only show the controller preview if it knows how the controller looks like. So I assume it does that due to the vendor and product ID (which is shown) and what's why I also think it applies the remapping the same way.

#

Out of curiosity I checked how the controller are shown when I use Firefox. And indeed Firefox shows them differently and the same way as the controls look like when I check the js nodes. Before I used Chromium. So this confirms that it depends on the process and that Chromium applies some remapping.

lapis wing
#

Using the ARM 60He made no difference. I'm gonna try openSUSE and check out the game controller app

jagged pawn
#

How Chromium provides the real Xbox for sites:

#

How Firefox provides the real Xbox controller to sites:

lapis wing
#

I assume you are using tumbleweed?

jagged pawn
#

Yes...

#

As shown both browser show the same controller differently (different values for the registered axis and buttons). Also on Chromium it shows a mapping named "standard" which is missing on Firefox.

lapis wing
#

I'll check on chrome and see if I get different results

jagged pawn
#

While Chromium shows a controller UI Firefox don't do it.

lapis wing
#

Yes, I don't get controller UI on Firefox

jagged pawn
#

And there the Wooting matches the real Xbox controller and the inputs are the same as for the js node.

lapis wing
jagged pawn
#

Yes...

#

If you want to test how the device are picked up you can use these commands:
sudo chmod 0000 /dev/input/js* to revoke the permissions for all the js nodes.
sudo chmod 0000 /dev/input/event* to revoke the permissions for all the event nodes.

lapis wing
#

Got it, I'll do that.

jagged pawn
#

After restarting the browser you should notice that it works as long as the permission for the js nodes are there regardless how they are set for the event nodes.

lapis wing
#

I'll need a bit of time to go through and understand all the info you've provided me

jagged pawn
#

So for you it should be the same as for me. The browser only picks up the js node. Firefox shows the raw structure of that while Chromium seems to apply some special mapping for a real Xbox controller which is not applied for the Wooting in Xbox mode when the xpad driver is used.

#

Because xboxdrv creates a virtual controller which has the same device ID as a real one the same mapping is applied. Due to the different handling of the browser I also conclude that it depends on the application how the controls are mapped.

#

This should be all comply with the things I mentioned earlier.

#

Meaning if the game handles the triggers differently it most likely use the js node and not the event node and that the game applies some special mapping for selected devices.

#

So as mentioned before it would be nice if you can rule out which node the game uses, by revoking the permissions for the nodes and checking if the game still picks up the inputs.

lapis wing
#

Do both Firefox and chrome pick up the js node?

jagged pawn
#

I haven't tested Firefox by revoking the permission yet but I would think so because the controls look the same a the js nodes.

jagged pawn
lapis wing
#

I'm testing now whether the game uses js or event, give me 2-3 minutes

#

It uses event

#

When I removed permissions on js game still detected controls fine

#

After removing permissions on event game can't detect it anymore

jagged pawn
#

Ok, good to know. I assume the events are still the same between a real Xbox controller and the Wooting in Xbox mode.

#

So far I don't know a tool to show the event data visually.

lapis wing
#

Does the game controller app use event or js node on your distribution?

#

I'm gonna check whether steam input uses event or js

jagged pawn
#

The build-in tool provided by the OS shows the data for the js nodes.

lapis wing
#

Steam big picture uses event nodes.. and for some reason the right trigger doesn't work on event nodes for me..

jagged pawn
#

I noticed Steam creates additional js nodes when Steam Input is used. Not sure if it also creates event nodes.

lapis wing
#

Hmm actually I didn't restart steam after revoking permissions so I need to double check

#

Alright steam big picture does use event nodes and right trigger doesn't work on event nodes

#

I guess, what I learned is that it's better to use xboxdrv for most games.

jagged pawn
#

Please open the define layout option of the real controller and the Wooting in the Steam controller settings.

#

At the bottom you can bind the trigger. I noticed that for the Wooting the right trigger is unmapped for me but it is for the real controller.

lapis wing
#

Right trigger is mapped for me on the wooting

jagged pawn
#

As shown within the js node the left trigger should be axis 2 and the right axis 5.

lapis wing
#

That's my wooting

#

I remapped it to a different button and now I'm trying to remap it to space (which is where I bound right trigger in wootility) and it does nothing

#

Oh I'm sorry, you're right right trigger is unbound

#

But when I press space to bind right trigger it does nothing

#

That was probably confusing sorry

jagged pawn
#

Hmm, for some reason I can't bind the right trigger in Steam.

lapis wing
#

Same, and that's the same problem I'm having in rocket league

#

Does binding other buttons work fine for you?

jagged pawn
#

No 😦

lapis wing
#

I can make changes and save them but they revert

#

And right trigger is always empty, that's weird

jagged pawn
#

On Win Steam don't allow you to bind the controller of the Wooting when in Xbox mode and only in the classic mode. That makes sense because due to the XInput API the scheme in known while for a generic controller the menu is thee to map the generic controls to the corresponding Xbox controls.

Because there is no XInput API on Linux even a Xbox controller is picked up as a generic controller and that's why it's possible to remap the bindings.

The question is still why the Wooting can't be remapped.

lapis wing
#

I have no clue.. But what's interesting is that the right trigger is empty by default as well

#

Are you able to remap your real Xbox controller

#

I'm able to remap my real Xbox controller

jagged pawn
#

The same, I can remap the real controller but not the Wooting in Xbox mode.

#

What is also weird is that if I bind A and use it for confirming to bind an entry that button is directly bound to it. So like the button is registered multiple times.

#

Then I also can't bind the Axis 5 / right trigger to anything even when I selecting a binding with the mouse.

lapis wing
#

I use mouse to carefully select where I want to bind a specific button

jagged pawn
#

I need to stop investigating for now. I will look into it later on again...

lapis wing
jagged pawn
#

@lapis wing I think I found it. So Steam uses SDL as the API to interact with the controller provided by the OS. This is the equivalent of XInput on Win but it supports all kind of input devices and not just Xbox controller. So Steam uses this to handle all the gamepads.

The mapping is done via a SLD configuration. Steam stores this along with some other Steam settings under ~/.local/share/Steam/config/config.vdf (on a default installation).

So for my 60HE the original entry looks like this:
03000000e33100000013000010020000,Wooting 60HE (AVR),a:b0,b:b1,x:b2,y:b3,back:b6,guide:b8,start:b7,leftstick:b9,rightstick:b10,leftshoulder: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:a5crc:f94e,"
Notice that at the end after the binding of the right trigger there is a crc value which isn't separated with a comma and that's why the mapping can't be changed. Most likely because of that it causes an error when the config is saved.

So by exiting Steam and then removing every crc part in that config file for the mappings, so it looks like this, it should work (I also added the platform information which was missing):
03000000e33100000013000010020000,Wooting 60HE (AVR),a:b0,b:b1,x:b2,y:b3,back:b6,guide:b8,start:b7,leftstick:b9,rightstick:b10,leftshoulder: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,platform:Linux
CRC is a checksum and not really needed here. My other entries also don't have this value.

This problem seems to be specific for the Wootings. I wasn't able to reproduce the broken SDL configuration for the Xbox 360 controller "Logitech F310" (both modes) or the original Xbox One Wireless controller (wired). All the third party Xbox One controller I tested don't seem to create mappings there for some reason.

#

After that the binding for the right trigger may is still missing but then it can be successfully rebound and saved.

#

Please report back if this fixes the issue for you. It can be that this is more like a general SDL issue and not really a Steam one. So in the case the game don't uses Steam but runs SDL by its own it can be that you may need to find the SDL config file for that game and fix it there.

lapis wing
#

I can't do this right now but I will let you know if this works for me, thanks

jagged pawn
#

I want to hear good things. 😄

lapis wing
#

This doesn't fix the issue for me. I had that CRC checksum in the config file as well. I modified it just like you did and saved it. When I launch steam and go to define layout, the right trigger is still unassigned, I can click it and assign Axis 5 to it but I can't save it. I hit save and the settings don't stick. When I go back into define layout the right trigger is unbound again.

lapis wing
jagged pawn
#

As mentioned above its likely that after removing the additional text that the binding is still missing. If done right you should be able to save the bindings.

#

Please post the part of the config file her. But only the related part because it looks like Steam also saves the login data there.

lapis wing
#

Sure, give me a moment I don't have discord installed on my desktop

#

Yep, I'll post it in a moment

jagged pawn
#

I'm interested in this part:

lapis wing
#

"SDL_GamepadBind" "03003d2be33100001012000010020000,dev:xb1:Wooting Lekker,platform:Linux,a:b0,b:b1,y:b3,x:b2,start:b7,guide:b8,back:b6,leftstick:b9,rightstick:b10,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:a2,righttrigger:a5,
03000000de280000ff11000001000000,Steam Virtual Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux
03000000e33100001012000010020000,Wooting Lekker,a:b0,b:b1,x:b2,y:b3,back:b6,guide:b8,start:b7,leftstick:b9,rightstick:b10,leftshoulder: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:a5crc:2b3d,
03000000de280000fc11000001000000,Steam Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux"

jagged pawn
#

It should end with ,".

lapis wing
#

You mean the last one for Steam Controller should end with ," ?

jagged pawn
#

Also the platform:Linux is misisng for the Wooting entry.

lapis wing
#

Interesting

jagged pawn
lapis wing
#

I put it in there and saved it but it looks like the CRC checksum value is back

#

righttrigger:a5crc:2b3d,

jagged pawn
#

Yeah and what's why it don't work.

#

Also make sure Steam is completely closed.

lapis wing
#

Yes.. but I changed it.. and I saved it.. then I launched Steam and after defining layout I saved it

#

I'll try it again.

jagged pawn
#

In the case it's present again it's likely that Steam saved it after you edited it.

#

Steam should not add it again after you had fixed it as long as the value is present.

lapis wing
#

Btw, did you notice that in the text I pasted, there are TWO lines that mention "Wooting Lekker"?

jagged pawn
#

Steam should only add it again if there is a new entry.

jagged pawn
lapis wing
#

Do you mind if I shared my screen?

jagged pawn
#

Please just try it again and remove ever crc part. There should be none in the entire config file.

lapis wing
#

Okay, will do

#

"SDL_GamepadBind" "03003d2be33100001012000010020000,dev:xb1:Wooting Lekker,platform:Linux,a:b0,b:b1,y:b3,x:b2,start:b7,guide:b8,back:b6,leftstick:b9,rightstick:b10,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:a2,righttrigger:a5,
03000000de280000ff11000001000000,Steam Virtual Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux
03000000e33100001012000010020000,Wooting Lekker,a:b0,b:b1,x:b2,y:b3,back:b6,guide:b8,start:b7,leftstick:b9,rightstick:b10,leftshoulder: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,platform:Linux,
03000000de280000fc11000001000000,Steam Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux"

#

I changed it to this, is this fine?

jagged pawn
#

I'm not sure if every mapping part should end with a comma. On my example some do but some don't. So I can't tell if the last needs a comma or not.

#

So far this looks good to me.

lapis wing
#

I will try without comma if this doesn't work.

#

I will now launch steam and see if it works.

#

It works, and what's interesting is that it works perfectly now even if I disable steam input... I wonder if a separate fix will be needed for games outside of Steam, like Lutris

#

I didn't have to bind right trigger in define layout, it was already bound.

jagged pawn
#

The first entry there is for the modification you have done. In my shown configuration these are two entries (for the W1 and W2). These entries have dev in the near the start.
The rest of the entries are for all the detected devices. These don't have dev in it. These need to have the platform value.
All need to be fixed.

jagged pawn
lapis wing
jagged pawn
#

This is just for information. I just explained how the data is structured.

lapis wing
#

Ah okay, so when it says dev, that's a custom configuration that I saved..

jagged pawn
#

Correct... It starts with the modification entries and after that the detected standard settings are listed.

lapis wing
#

Why is there a CRC checksum there, do you think there's possibly some bug in xpad.c?

jagged pawn
#

So because your entry has dev:xb1 for your Wooting Steam shows that as a Xbox One controller even the Wooting is a Xbox 360 controller.

lapis wing
#

Yes, correct.

jagged pawn
#

This is just the label you selected after you saved the binding.

#

Maybe the reason behind this is to have a custom mapping while you can still have different mapping depending on the platform. But I'm not sure on this.

#

At least that would explain why a device can have two entries and why the list of all devices contain the info for the platform.

lapis wing
#

Yeah, but this is a Steam specific solution, I think there is a deeper issue somewhere else.

jagged pawn
#

As mentioned I'm not sure if this is a Steam issue or a SDL issue.

lapis wing
#

I think it's an SDL issue, but the solution is a Steam specific solution..

#

This solves the issue for me on steam but I think xboxdrv is a better solution for now.

jagged pawn
#

So in one way or the other the user needs deal with different things so it works on Linux. I personally don't think the solution via xboxdrv is superior.

lapis wing
#

Yeah, that's why I was excited to try out the wooting support on xpad because xboxdrv hasn't been updated in a long time. Unfortunately, there seems to be some sort of issue between xpad and SDL causing this weird partial CRC checksum to show up where it shouldn't

jagged pawn
#

Because the Steam / SDL thing seems to be a bug it will maybe addressed.

lapis wing
#

But for the SDL issue, you must change multiple config files for different launchers or games

lapis wing
jagged pawn
#

The whole reason why I spend so much time here to address your issue is because I was expecting some issues with the new xpad support of the Wootings. I want to make sure that the new method works. 🙂

lapis wing
#

Btw, I'm sorry for keeping you up. It's very late there isn't it? We can discuss this another time.

jagged pawn
#

It's just after 1 am more me. So I'm fine.

#

By the way, I reported that problem on Steam. Maybe it helps...

lapis wing
lapis wing
jagged pawn
#

The new method will even add support of the Wooting for Android in the future. But it will take some time until that OS uses the newer kernel.

jagged pawn
lapis wing
#

Hmm I can test it in a game outside of steam and then I'll know if it's a steam problem or an SDL problem.

jagged pawn
#

I think the chance is very high that this is a Steam issue because the wrong string of the SDL mapping is stored within a Steam file. Maybe the wrong mapping part is returned by a SDL function. Because the wrong part is most likely generated or at least concatenated by Steam I think it's likely that it's caused by Steam.

lapis wing
#

After I test it in a game outside of steam, I'll report here if it works fine or not

jagged pawn
#

If so can you please test the Rocket League version via Epic?

lapis wing
#

No, I'm forced to use steam input otherwise it detects it as player 2. Rocket League doesn't have an in game menu for reordering controllers. Celeste works perfectly now, with or without steam input

lapis wing
jagged pawn
#

I'm confused. For testing RL in Steam it should not matter which player slot the controller got.

lapis wing
# jagged pawn I'm confused. For testing RL in Steam it should not matter which player slot the...

It shouldn't, but this is a rocket league specific issue that I'm very familiar with. It happens on windows as well. The problem is that when rocket league sees a controller, it will make that player 1. But if that controller is removed and another one is plugged in, rocket league will not recognize the new controller as player 1. It'll recognize it as player 2. After I changed the config file, I think rocket league sees the keyboard now as a "new device" and sets it to player 2. This problem is usually fixed in Windows by a full restart.. But that didn't seem to work for me..

#

Celeste doesn't have this problem, it works fine there

jagged pawn
#

I get that. Before you mentioned that the right trigger wasn't working. So to test that it should not matter if the Wooting now is registered as player two. I assume by using the split screen game mode you can test if the controls are working now as the second player.

lapis wing
jagged pawn
#

So the problem from the beginning is fixed at least for RL from Steam, correct?

#

So the only question is if it also works for none Steam games now.

#

Or is there still an issue on Steam which I forgot?

lapis wing
#

No, I don't think there's anymore issues on Steam

#

It would be great if this is a steam only problem

jagged pawn
#

By the way, I assume it should now also work fine when the Wooting is in classic mode at RL started via Steam Input.

lapis wing
#

I never use wooting in classic mode but it does work fine in Xbox mode via steam input

jagged pawn
#

Just for information... The bad SDL configuration also happens for the Wooting in classic mode. It looks like the issue is somehow Wooting specific. So far the other controller I tested don't have this issue.

lapis wing
lapis wing
#

I tested Rocket League using Heroic Launcher (this allows you to play epic version). There were no issues at all. So I believe this is a Steam problem.

jagged pawn
#

So are all issues you had addressed and everything is working fine now? Or are there still issues?

lapis wing
#

It's all working

#

No more issues ☺️!

jagged pawn
#

@lapis wing Can you please change the thread title. Like for example: "Not working right trigger in Steam on Linux (SDL mapping problem)"

lapis wing
#

Yes

jagged pawn
#

And please label it as fixed.

lapis wing
#

Not working right trigger in Steam on Linux (SDL mapping problem)

#

I tagged it as resolved, is that fine?

jagged pawn