¿Cómo corrijo el comportamiento del joystick analógico derecho del controlador Nyko Airflo EX en Windows 10?

¿Cómo corrijo el comportamiento del joystick analógico derecho del controlador Nyko Airflo EX en Windows 10?

Tengo un viejo Nyko Air Flo EX que funciona muy bien. Con la excepción de que el joystick analógico derecho se comporta incorrectamente. Después de investigar un poco, esto es lo que encontré:

  • Está utilizando un controlador de juego compatible con HID.
  • Identificadores de hardware:

    HID\VID_124B&PID_4D01&REV_0101 HID\VID_124B&PID_4D01 HID\VID_124B&UP:0001_U:0004 HID_DEVICE_SYSTEM_GAME HID_DEVICE_UP:0001_U:0004 HID_DEVICE

  • CuandoLa prueba Joy.Cpl está inactiva

  • Presionar el botón del joystick analógico(botón 13) también devuelve +1 en el eje Y
  • Mover el joystick analógico -1 en el eje Xtambién devuelve +1 en el eje Y
  • De hecho, parece haber un pequeño juego en el que activa todo tipo de valores de eje. Por lo general, cuando se desplaza en un movimiento del eje X o se presiona el botón del joystick. Botón 13.

No estoy seguro si está relacionado:

  • El joystick derecho parece estar usando los ejes 2 y 5 en lugar de 2 y 3

Cosas que he probado:

  • Intento de calibración Joy.Cpl [No funcionó]
  • Intenté buscar controlador/soporte en el sitio web de Nyko [No hay nada]
  • Soporte de Nyko por correo electrónico [Respuesta inútil] básicamente solo dijo que el producto está descontinuado
  • Seguí algunas instrucciones que decían agregar claves de registro para Axes\2 Attributes=00 00 00 01 00 35 00 y Axes\5 Attributes= 00 00 00 01 00 32 00 [No pareció cambiar mucho]
  • Procedí a leer más documentación sobre entrada directa y anulación de ejes de registro en el sitio de Microsoft.aquíYusb.orgdocumentos. Quizás no lo entendí correctamente pero no pareció modificar el comportamiento. No estoy seguro de si tiene menos efecto si Xinput detecta el dispositivo.

Cosas que no estoy buscando:

  • Mapeo de teclas del teclado
  • Instalación de aplicaciones de middleware para solucionar el problema

Gracias de antemano por cualquier ayuda.

Respuesta1

Tenía otro del mismo controlador que no había usado desde hacía tiempo. Decidí conectarlo en un puerto diferente al mismo tiempo. Probó la calibración enhtml5 gamepady tuvo el comportamiento correcto.

Comencé a comparar las diferencias de registro entre ambos controladores. Entonces me encontré

[HKEY_USERS\S-1-5-21-2677610290-3994198311-1182961626-1001\System\CurrentControlSet\Control\MediaResources\Joystick\DINPUT.DLL\JoystickSettings\VID_124B&PID_4D01]
"Joystick1Configuration"=hex:03,00,08,10,0d,00,00,00,0f,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,ff,00,00,00,ff,\
  00,00,00,ff,00,00,00,ff,00,00,00,00,00,00,00,00,00,00,00,80,00,00,00,80,00,\
  00,00,80,00,00,00,80,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,0d,00,00,00,00,00,00,00
"Joystick2Configuration"=hex:03,00,08,10,0d,00,00,00,0f,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,ff,00,00,00,ff,\
  00,00,00,ff,00,00,00,ff,00,00,00,00,00,00,00,00,00,00,00,80,00,00,00,80,00,\
  00,00,80,00,00,00,80,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,0e,00,00,00,00,00,00,00

Joistic1Configuration es el problema. Cuando comparé los valores hexadecimales, noté 0e en Joystick2Configuration. En Joystick1Config, el valor en su lugar es 0d, que es compartido por el quinto valor hexadecimal.

Lo desconecté del controlador y configuré el último valor hexadecimal 0d en 0e en el Joystick1. Y realizó el mismo cambio en ..\DINPUT.DLL\CurrentJoystickSettings

Cuando volví a enchufar el joystick, no vi ninguna mejora. Entonces desconecté ambos joysticks e cambié la ubicación de sus puertos. Conectando el joystick 2 anterior donde estaba conectado el joystick 1 y viceversa. Ambos controladores ahora funcionan.

Me pregunto si alguna vez intenté cambiar de puerto solo con un joystick y si eso podría haberlo solucionado. En lugar de perder horas de mi vida obstinadamente solucionando este problema.

información relacionada