For those who used my tutorial for zero delay controllers, The TigerGame Xbox Blog, or XBCD you will likely face this problem with a lot of PC games. Worse yet some games will completely ignore the fact you have a controller hooked up and only offer keyboard support for your game and that’s it. One of the biggest ones being that if you didn’t have an official Microsoft Controller then the game will not even let you continue past its the start screen.
Depending on the gaming engine used this generated a series of problems. Devs were using versions 1.1 to 1.3 versions which simply ‘assumed’ the mapping of each button to that of a classic Xbox 360 joystick.
Instead of using archaic and complicated hooks such as the original xinput.dll which is version 1.0. That’s exactly what developers started to do. Spelunky HD is just one of many games that assumes you are installing an Xbox 360 Controller and nothing else.
Microsoft in particular made it very easy to port back and forth between Xbox and PC because everything relied on Direct X. Developers will branch out to other platforms to sell their games.
But after the game has been released for a while. Thus as a developer, you begin to program your game to conform to the standards of that environment. The highest place to sell your game unless it’s crazily complicated is typically the console environment. The Wine team have done a lot of work recently on native support for joysticks, but it's not quite there yet (Wine 2.3 is the latest version at time of writing) and xboxdrv is still required for most games.Common sense will tell developers will go to where the market is. Read the included Readme.txt for the list of all possible names. Note that some games expect xinput1_3.dll to have a different name - Tomb Raider 2013 for instance needs it to be called xinput9_1_0.dll. Rather than having multiple copies of these files in every game directory, I keep the files in a single directory in my home dir, and then just create symlinks to them for any game that needs them. To make this work for a particular game, you need to put the DLL and the INI file in the directory where your game's executable lives. You can instead get hold of just the necessary files here. NET versions to run and the preset controller templates it offers probably don't offer much benefit for Wine users.
You can try running x360ce.exe from the Zip available on the project's GitHub (see link above), but this needs particular. Luckily for us, it works perfectly in Wine as a way to fix the mixed-up mappings of the Xbox controller itself. This Windows program is designed to allow you to remap the buttons and axes on some other gamepad, such as a PlayStation controller, to match those of an Xbox 360 controller. x360ceIf all you need to do is to fix the button mapping for Wine games, the simplest solution I've found is x360ce (the "Xbox 360 Controller Emulator"). The big advantage it offers is that it allows you to map gamepad (or joystick or steering wheel) buttons to keyboard presses, enabling you to use a gamepad in games that don't offer built-in support. It's a pretty powerful program but is also quite a hassle to configure. Don't worry though, it's not hard to fix this, by simply remapping the buttons to the correct inputs and then Wine games will recognise it properly and assign the right actions to the correct buttons. This is because gamepad button mapping is different in Windows, Linux and even Mac. When running Windows games under Wine, you are quite likely to find that the buttons and axes do not do what they're supposed to, or even don't function at all. This controller should work without need for configuration in most native Linux games.
The xpad kernel driver works pretty well for gamepads in Linux these days, with the wired Xbox 360 controller the recommended choice.