Primero, necesitas identificar el codigo VID-PID de tu mando. Si no sabes que es, primero busca el nombre tu mando en el panel de control. Despues abre el registro y busca el nombre del mando. Cuando encuentres una entrada, solo mira el folder y debes notar el codigo VID-PID de tu mando. Por ejemplo, VID_0E8F&PID_0003.
Entonces necesitas saber cuantos ejes tiene tu mando. Si tienes 2 analogos, tienes 4. Si tienes un slider, tienes 5. Cada eje es asignado un numero.
Left analog (x-y)
x = 0
y = 1
Right analog (Rz)
z axis = 2
z rotate = 5
Asi que tienes 0, 1, 2, 5. De hecho, puedes checar el numero de ejes mirando en:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\MediaProperties\PrivateProperties\DirectInput\ VID-PID code \Calibration\
Tienes tambien 0 1 2 5? Ok. Sigamos a como intercambiar 2 y 5.
Primero, debes cerrar el registro, desconectar el mando y reiniciar windows.
Ahora ve a
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\MediaProperties\PrivateProperties\Joystick\OEM\ VID-PID code
Click derecho en el folder y crear una clave llamada "Axes". Entonces click derecho en el folder "Axes" y crear una clave llamada "2". Dentro del folder "2", crear un valor binario llamado "Attributes" y fijarlo a: 00 00 00 00 XX 00 YY 00. XX es un numero hexadecimal de dos digitos especificando la pagina de uso HID del eje que quieres anular. YY es un numero hexadecimal de dos digitos especificando el uso HID del eje.
Para hacer las cosas simples,
Right analog (Rz)
z axis = 2
usage page = 01
usage = 32
z rotate = 5
usage page = 01
usage = 35
Asi que debe de ser 00 00 00 00 01 00 35 00 para folder "2" ya que quieres asignarlo como rotacion z.
Ahora creas una clave "5" y esta vez los "Attributes" deben ser 00 00 00 00 01 00 32 00
Ahora cierras el registro, reconectas el mando y vas al panel de control, calibracion para confirmar el cambio. De hecho, puedes ir al juego y y disfrutar inmediatamente.
Notas:
1. "2" debe estar antes que "5", de otro modo, un agujero durante el mappeo podria ocurrir.
2. Quizas notes un ControlSet001 y ControlSet003. No neceitas cambiarlo, cualquier cambio en CurrentControlSet sera dirigido a ellos
.