Hey folks. I've run into a bit of a snag with a particular Steam-released game called SteamWorld Dig. Many players found their joypads didn't work at all, and are being told to use nonsense like JoyToKey.
The game itself has a file called gamepads.cfg that you can edit and actually add your own joypad definition, which the game will hnour. The file format wasn't documented, but the default file looked familiar to me:
After much prodding, I finally got the developers to explain what the heck they're doing: the first two fields are something SDL 2.0 itself refers to/comes up with/can compile/generate:
http://wiki.libsdl.org/SDL_GameControllerAddMapping
...based on Windows USB device strings and so on. I can tell the last hex values in the first field end in "HIDVID" but the rest is a bunch of SDL 2.0 API-generated abstract gobbledegook. I've dug through the Device Manager and I can work out small bits/pieces but nothing really adds up that would match exactly what SDL 2.0 expects.
I was wondering if there was someone here who could write me a simple Win32 application using SDL 2.0 that basically would dump all of those strings and capabilities of every joypad found:
http://wiki.libsdl.org/CategoryGameCont ... umerations
...to stdout, so that I could add a proper entry into gamepads.cfg and get my USB gamepad working with the game (it's a Playstation 2-to-USB adapter but it's pure USB HID, no drivers).
Or if someone here has familiarity with the SDL 2.0 code -- no I am not going to reverse-engineer it and spend days looking at github source or whatever else -- that can tell me how these strings are generated on Windows (i.e. how to create the string myself), that would absolutely awesome. All I have available to me are the standard tools that come with Windows XP SP3.
I just have little faith that the developers are really going to do anything about the issue, since they're already advocating Joy2Key (and if you think this is a solution, trust me, it isn't; try running something in windowed mode with Joy2Key using the profile for the game, then switching to a browser window and accidentally doing something like bumping a button on your joypad... yeah...).
Thanks guys.
The game itself has a file called gamepads.cfg that you can edit and actually add your own joypad definition, which the game will hnour. The file format wasn't documented, but the default file looked familiar to me:
Code:
# Retro NES gamepad (just for fun/example; doesn't actually have the required number of buttons)
79001100000000000000504944564944,USB Gamepad,a:b1,b:b2,leftx:a0,lefty:a4
79001100000000000000504944564944,USB Gamepad,a:b1,b:b2,leftx:a0,lefty:a4
After much prodding, I finally got the developers to explain what the heck they're doing: the first two fields are something SDL 2.0 itself refers to/comes up with/can compile/generate:
http://wiki.libsdl.org/SDL_GameControllerAddMapping
...based on Windows USB device strings and so on. I can tell the last hex values in the first field end in "HIDVID" but the rest is a bunch of SDL 2.0 API-generated abstract gobbledegook. I've dug through the Device Manager and I can work out small bits/pieces but nothing really adds up that would match exactly what SDL 2.0 expects.
I was wondering if there was someone here who could write me a simple Win32 application using SDL 2.0 that basically would dump all of those strings and capabilities of every joypad found:
http://wiki.libsdl.org/CategoryGameCont ... umerations
...to stdout, so that I could add a proper entry into gamepads.cfg and get my USB gamepad working with the game (it's a Playstation 2-to-USB adapter but it's pure USB HID, no drivers).
Or if someone here has familiarity with the SDL 2.0 code -- no I am not going to reverse-engineer it and spend days looking at github source or whatever else -- that can tell me how these strings are generated on Windows (i.e. how to create the string myself), that would absolutely awesome. All I have available to me are the standard tools that come with Windows XP SP3.
I just have little faith that the developers are really going to do anything about the issue, since they're already advocating Joy2Key (and if you think this is a solution, trust me, it isn't; try running something in windowed mode with Joy2Key using the profile for the game, then switching to a browser window and accidentally doing something like bumping a button on your joypad... yeah...).
Thanks guys.