I am more of the occasional gamer, but sometimes I want to enjoy titles that are only running in Wine and don’t have a Linux port yet. As most of the games for PC’s are optimized for using the Xbox 360 controllers and don’t run with other ones, some people have built x360ce – an emulator that lets you use any controller you want as an Xbox 360 controller in-game.
The problem is: x360ce consists of 3 files – the config utility, the config file and a DLL that hooks into the games and fakes your controller. The DLL works fine, but the config utility only runs if you install .NET in Wine. As this may cause a lot of problems, I created a config file for the Xbox Classic Controller. It doesn’t matter if you have the big version or the newer, smaller “S” version.
Download the files here: Xbox360Controller_WINE.tar.gz
Usually you just have to place the DLL and the config file into the same directory as the game’s executable.
Note: On Linux, there are two drivers available for the Xbox Classic controllers. xpad and xboxdrv. I included an x360ce.ini for both of them, as they have slight differences.
The xpad driver is the default driver included in the Linux kernel. Force feedback doesn’t work with that, so you get no rumble. When you plug in your controller, two devices are created, /dev/input/event* and /dev/input/js0. That causes x360ce to detect two players, so I did this:
chmod 777 /dev/input/event10 && chmod 111 /dev/input/js0
On xboxdrv this is essentially the same – but you can enable rumble! 🙂 Just run:
xboxdrv --mimic-xpad --silent --force-feedback
Note that xboxdrv creates two devices, too. Giving all users read access to the event device and removing this from the js device is mandatory.
Now you are done! Have fun playing games in wine! 🙂 I will enjoy a little “Deadlight” now, with rumble.