I'm using a thrustmaster dual analog, and was really pissed off about the right analog stick not doing freestyle moves. I installed the thrustmapper crap but it was crap. They should have all the directinput axes in the options. Anyway spent all yesterday in work finding out that you can remap directinput/usb gampad axes in the registry.
Warning: you can f* things up by messing with the registry.
FIFA2003 wants to use axes 4 and 5 (Rx and Ry) for the right hand stick. But thrustmaster (and perhaps other) devices have Rz and Slider. In the registry you can say what device axis should map to what directinput axis.
So:
In the registry find
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM\VID_044F&PID_B303
The numbers on the end, VID(vendor), PID(product) will be slightly different for different controllers. Check yours in the System Info application, look under components->usb.
So, under
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM\VID_044F&PID_B303
add an Axes key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM\VID_044F&PID_B303\Axes
and then a key with the name 4 (for axis 4):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM\VID_044F&PID_B303\Axes\4
and add a binary value called Attributes
with the value 00 00 00 00 01 00 35 00
likewise for axis 5:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM\VID_044F&PID_B303\Axes\5
and add a binary value called Attributes
with the value 00 00 00 00 01 00 36 00
Note the different value for axis 5, 36 instead of 35.
The magic binary numbers are the USB ids of the axes on the controller.
This info was mostly gleaned from msdn:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intinput/hh/intinput/di_4zjd.asp
http://www.microsoft.com/hwdev/tech/input/hidgame.asp
It's not rocket science, but also not that simple, so if someone can make use of this info and wrap it in a little inf file or app or something that could be good.
This may not work. The MS docs mention some reasons why it might not. Also I'd expect trouble if you've got a bunch of 3rd party drivers etc. It should work for other controllers, you have to try different magic binary numbers, see the second MS doc about other possible values.
Post here if you have queries, I know it's something I'm happy is now working, cause I'm gonna go get 3 more analog pads and enjoy some multiplayer action.
You have to UNPLUG/REPLUG your controlller after making the registry changes!
Warning: you can f* things up by messing with the registry.
FIFA2003 wants to use axes 4 and 5 (Rx and Ry) for the right hand stick. But thrustmaster (and perhaps other) devices have Rz and Slider. In the registry you can say what device axis should map to what directinput axis.
So:
In the registry find
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM\VID_044F&PID_B303
The numbers on the end, VID(vendor), PID(product) will be slightly different for different controllers. Check yours in the System Info application, look under components->usb.
So, under
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM\VID_044F&PID_B303
add an Axes key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM\VID_044F&PID_B303\Axes
and then a key with the name 4 (for axis 4):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM\VID_044F&PID_B303\Axes\4
and add a binary value called Attributes
with the value 00 00 00 00 01 00 35 00
likewise for axis 5:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM\VID_044F&PID_B303\Axes\5
and add a binary value called Attributes
with the value 00 00 00 00 01 00 36 00
Note the different value for axis 5, 36 instead of 35.
The magic binary numbers are the USB ids of the axes on the controller.
This info was mostly gleaned from msdn:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intinput/hh/intinput/di_4zjd.asp
http://www.microsoft.com/hwdev/tech/input/hidgame.asp
It's not rocket science, but also not that simple, so if someone can make use of this info and wrap it in a little inf file or app or something that could be good.
This may not work. The MS docs mention some reasons why it might not. Also I'd expect trouble if you've got a bunch of 3rd party drivers etc. It should work for other controllers, you have to try different magic binary numbers, see the second MS doc about other possible values.
Post here if you have queries, I know it's something I'm happy is now working, cause I'm gonna go get 3 more analog pads and enjoy some multiplayer action.
You have to UNPLUG/REPLUG your controlller after making the registry changes!