Sorry MoscowModder, it was Raw input I was thinking.
Here's an excerpt from the Manual...
Different controllers have different button layouts, or the buttons have different names. For example, the Playstation 3 controller uses square, circle, triangle and X buttons, whereas the XBox 360 controller uses A, B, X and Y (note that X appears in a different position in each controller too). For consistency, the Gamepad object refers to the XBox 360 layout only.
The Gamepad object will also attempt to map other controller's keys to the XBox 360 layout internally, to ensure the same button always triggers the same event. However it is impractical to set this up for every device in existence, so some device buttons may trigger different key events in the Gamepad object. This is partly why it is recommended to focus on XBox 360 controllers. If you are interested in using Gamepad input extensively, be sure to test on as wide a range of devices as you can obtain.
Raw input can be obtained, circumventing the Gamepad object's built in key mapping, using the Raw expressions.
Retrieve raw axis input for a specific gamepad and axis index. This returns the value without keymapping, applying the analog deadzone, or multiplying the returned value by 100. Axis values range from -1 to 1.
Return the number of axes available in the raw input for a specific gamepad. This returns the value without keymapping.
Retrieve raw button input for a specific gamepad and button index. This returns the value without keymapping. Button values range from 0 to 1 (pressure sensitive buttons can return values in between).
Return the number of buttons available in the raw input for a specific gamepad. This returns the value without keymapping.
How to actually set it up to get other gamepads to work is out of my experience, but I hope this might be something beneficial.