The steps in here should apply to any controller as long as your (linux) system has a driver for it. I'm using an xbox360 controller and it is recognized out of the box in Ubuntu 12.04.
So what's the problem and how can we solve it? Well, the xbox360 controller is an xinput device but wine has implemented support for dinput. The workaround is to use a wrapper that "translates" xinput to dinput. Enter xbox360ce . Here's what to download and how to use it (at least, what worked for me):
I've downloaded these files:
x360ce_lib32_r766.zip, x360ce.App-2.1.2.191.zip
The first zip contains the libs that actually do the translating and the latter is a program that allows you to configure your gamepad (map buttons, joystick axes, d-pad buttons, etc...
I provide a ready made .ini file that has worked with my Xbox 360 (wired) controller on Manjaro and Ubuntu here:
You will need to add .NET 4.0 to the bottle where your game is installed
Using the Run Command button in the bottle manager (make sure the correct bottle is selected) go to the folder where you have unpacked the zips and run x360ce.exe. This will run and prompt you to do some stuff. Do what it tells you. It will try to guess, as best it can the button and joytick axis mappings. It will probably get some right and some wrong. Not a problem. This can be fixed by remapping. Here's the config that works for me:
Once you have checked that everything works right, hit the save button. The program might complain that it found no ini file and will offer to create one. Do so. It might also complain that the ini file does not have the right version. Ignore it.
(Note: You may not need to mess with the setting at all. Just check that the buttons work as they should before changing anything if you used my .ini file)
We need one more thing because applications that try to find xinput devices will still not be able to. Notice the xinput1_3.dll file that the program shows in the bottom right corner? We'll add and override in winecfg for it.
So, in the same Control Panel tab launch Wine Configuration and go to the Libraries tab, enter xinput1_3 in the box as shown in the screen shot below and then click the Add button. Set it to native.
Click Apply and then OK and you should be done. Try starting your game. You may see the error about the config file that I talked about earlier. That is good, it means the game will use the xinput1_3.dll that we supplied.
Fixing the "constant spinning" issue
If everything worked as expected the game should be able to see the controller but... oh no! What's with all this spinning? Make it stop!... Yeah, there's an issue with constant spinning of the camera after the initial intro movie. Happens to Windows users too.
The most successful fix is to create an empty file called joypad.txt in your $HOME/Documents/Electrontic Arts/Dead Space (yes, there is another "t" in Electronic) and $HOME/Documents/Electronic Arts/Dead Space folders. Make sure to have your game closed before doing this.
Now, launch the game again and your controller should work fine.