• As part of the relaunch of Skullheart, ALL previous threads have been archived. You can find them at the bottom of the forum in the Archives (2021) section. The archives are locked, so please use the new forum sections to create new discussion threads.

Steam - Windows Linux - Controller Discovery Issues [RESOLVED]

Staples

New Member
Joined
Sep 3, 2013
Messages
3
Reaction score
0
Points
1
Age
38
Parasoul Filia Double
On the Linux client, I've had trouble getting my joystick to be recognized by Skullgirls. I've got a SFxT Fightstick Pro 360 dual modded with a PhreakMods Cerberus (ironically, to play Skullgirls).

using openSuse Tumbleweed, my joystick is recognized by linux as you can see below.

$ cd /dev/input/by-id
$ ls | grep joystick
usb-PhreakMods_Cerberus_v1.01-event-joystick
usb-PhreakMods_Cerberus_v1.01-joystick

I can do
$ cat /dev/input/by-id/usb-PhreakMods_Cerberus_v1.01-event-joystick
and when I press buttons I get some nice wingdings, which means the buttons are recognized.

However, I only get keyboard 1 and 2 options within Skullgirls.
I've tried a few variations of using xboxdrv as well, but to no avail.

Is there anything special I have to do for controller support on linux, or do I have to map the joystick to emulate keyboard presses?
 
Though I still don't have a great understanding of how Skullgirls detects controllers on Linux, I was able to get it to work by using xboxdrv with the --mimic-xpad option.

Before I launch skullgirls I run the following command to make my stick look like a 360 stick.
xboxdrv --evdev /dev/input/by-id/usb-PhreakMods_Cerberus_v1.01-event-joystick --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RZ=y2,ABS_Z=x2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y --evdev-keymap BTN_MODE=guide,BTN_TR2=start,BTN_TL2=back,BTN_Z=rb,BTN_C=b,BTN_TR=rt,BTN_TL=lt,BTN_X=y,BTN_A=x,BTN_B=a,BTN_Y=lb --mimic-xpad --silent

Essentially, I point xboxdrv to the evdev handler. I use evdev-absmap to associate my joystick directions with the xbox directions, and evdev-keymap to associate my joystick buttons with the xbox buttons. --mimic-xpad is what really makes it work and forces the system to make it look like I have a 360 controller inserted.
 
Hi Staples, sounds like you've solved the problem somewhat for yourself, but I'd like to share my solution as well.

I got my Saitek P990 controllers working with Skullgirls under linux by editing a file in the Skullgirls folder called gamecontrollerdb.txt. If I understand what other people have told me, this file consists of a list of controller mappings in the SDL game controller format. To get a new controller working with Skullgirls, all you have to do is add a line to this file using the right information in the right format.

If you have Steam, you can get the information you need using the Big Picture Mode. You then copy paste from a text file under the steam directory to the gamecontrollerdb.txt file.

Step by step:
  1. Plug in your controller
  2. Start up Steam
  3. Turn on Big Picture Mode (an option under the "View" menu). Steam will go full screen
  4. Click on the "Setting" icon in the top right-hand corner of the screen
  5. Choose the "Controllers" setting button from the list of options. On the resulting screen Steam should tell you that your controller is recognised.
    At this point, I don't know if the next few steps are necessary. It may be that Steam automatically configures controllers and you don't need to manually configure the controller. You might try skipping to step 8.
  6. Click on the "Edit Controls" button.
  7. Select each command in turn and map it to a button on your controller
  8. When you're done, exit Big Picture Mode. You don't need Steam running any more.
  9. Open a file called config.vdf in the config subfolder of the Steam directory: .steam/steam/config/config.vdf
  10. Copy a part of the final line of config.vdf. The line will start with something like "SDL_GamepadBind" "a string of numbers, gamepad name, a:b1, b,b2..." You want the bit between the second set of quotation marks starting with the string of numbers. Copy it to clip board without the quotation marks.
  11. Paste this line at the bottom (probably doesn't matter where) of the file gamecontrollerdb.txt in the Skullgirls folder.
  12. Start Skullgirls. Your controller should now be recognised
There's probably another way to get this information without using Steam, but I don't know it. Hope that helps someone.

Edit: I should add that I had to map my controller twice, to get the mapping to recognise the full range of motion on my analog sticks.
 
Last edited:
Supposedly it recognizes anything in the Steam controller database, so as long as Steam finds it it should work. But you do have to configure it from Steam.
I'm not a Linux person, but we had a discussion about what to do before the game was released and that was the method that was...arrived upon?
 
I assume Staples and I are both using the DRM-free client. Is there an easier way to get the game to recognise controllers than what I described?

Once I knew what to do, I found the gamecontrollerdb list easy to use. In fact, I wish that file was universally included in the top directory of games with controller support. I've been frustrated with the lack of controller support by a bunch of local multiplayer games. (I was a backer of Sportfriends, for example, and the DRM free client is still unusable for me.)
 
I do not own the DRM free version of the game.
Within Steam Big Picture, my stick is recognized as an "XInput Controller" and the only option I have is to "Identify" it, which doesn't seem to do anything. I have a Hori FIghting Stick 3 that is doing the same as my dual modded stick. It shows up in Steam as an "XInput Controller" as well.
Nothing seems to get created for me regarding controllers in my config.vdf file.

I've noticed that neither of them are in the gamecontrollerdb.txt file. I could add something manually, but I don't know how to figure out what b0, b1 is. evtest shows them as BTN_C, BTN_Z, etc. and I'm not sure how to get the id number at the being of the line for it.

Thanks Mike for the input on what Skullgirls is doing to find the controller. I think that was a reasonable decision. I don't know how feasible it would have been to inquire directly against the hardware. At this time, steam doesn't seem to recognize my sticks well, either, so that all jives with why skullgirls wouldn't either.
 
I use the PS360+ ( v1.66 fw ) in my fightstick, and I had the best results to connect to Linux/skullgirls by using the force Xbox 360 mode on the controller. None of the other force modes seemed to work.

I also tried using the Big Picture method described above, but I ran into issues. Steam detected the controller right away as a PS360+ which is great, but I couldn't save the button bindings how I wanted. I mapped my joystick directions to the DPAD Up, down, left, right directions, but Steam required me to also save an input for the Left Stick x-axis and y-axis, which I can't bind correctly. I tried going into the config.vdf file and manually setting it up, but Steam didn't like my changes.

Anyway, I'm able to play using the force Xbox 360 mode so I'm happy, I just thought I'd share my experience.