Fixing the way IL2 assigns Joystick IDs
I finally discovered how IL2 and a few other games assign joystick IDs. Now that this is known, is it fixable?
Currently, IL2 assigns IDs to joysticks alphabetically via the Vendor/Device ID. In my case, the list is as follows:
VID_044F&PID_0402 - Thrustmaster Warthog Stick
VID_044F&PID_0404 - Thrustmaster Warthog Throttle
VID_046D&PID_C215 - Logitech Extreme 3D Pro
VID_046D&PID_C216 - Logitech Dual Action Gamepad
VID_068E&PID_C0F2 - CH Pro Pedals USB
VID_068E&PID_00FA - CH THROTTLE QUADRANT
Because of this you have to remap all of your controls whenever something is removed/replaced.
The proper method is to assign joysticks ID's based on the list found in the following registry key: HKEY_CURRENT_USER\System\CurrentControlSet\Control \MediaResources\Joystick\DINPUT.DLL\CurrentJoystic kSettings
Devices are assigned IDs here as they're installed. It adds to better usability as devices retain their IDs, even as they're unplugged and plugged back in. The order of devices can even be changed by editing the values in this key or by using utilities that do it for you.
Is there any way TD can change the way IL2 enumerates joysticks to use this registry key? That way people like me who use a lot of different hardware won't have to remap our controls simply because we don't want to have everything plugged in permanently.
|