Como corrijo o comportamento do stick analógico direito do controlador Nyko Airflo EX no Windows 10?

Como corrijo o comportamento do stick analógico direito do controlador Nyko Airflo EX no Windows 10?

Eu tenho um antigo Nyko Air Flo EX que funciona muito bem. Com a exceção de que o analógico direito se comporta incorretamente. Depois de algumas pesquisas, foi isso que encontrei:

  • Está usando um controlador de jogo compatível com HID
  • IDs 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

  • QuandoO teste Joy.Cpl está ocioso

  • Pressionando o botão analógico(btn 13) também retorna +1 no eixo Y
  • Movendo o stick analógico -1 no eixo Xtambém retorna +1 no eixo Y
  • Na verdade, parece haver uma pequena brincadeira em que ele dispara todos os tipos de valores de eixo. Normalmente, ao viajar em um movimento do eixo X ou no botão stick, pressione para baixo. Botão 13.

Não tenho certeza se relacionado:

  • O controle direito parece estar usando os eixos 2 e 5 em vez de 2 e 3

Coisas que tentei:

  • Tentativa de calibração do Joy.Cpl [não funcionou]
  • Tentativa de procurar driver/suporte no site da Nyko [Nada lá]
  • Suporte Nyko por e-mail [resposta inútil] basicamente apenas disse que o produto foi descontinuado
  • Eu segui algumas instruções que diziam para adicionar regkeys para Axes\2 Attributes=00 00 00 01 00 35 00 e Axes\5 Attributes= 00 00 00 01 00 32 00 [Não pareceu mudar muito]
  • Continuei lendo mais alguma documentação sobre substituição de eixos de entrada direta e registro no site da MicrosoftaquiEusb.orgdocumentos. Talvez eu não tenha entendido corretamente, mas não pareceu modificar o comportamento. Não tenho certeza se terá menos efeito se o dispositivo estiver sendo captado pelo Xinput.

Coisas que não estou procurando:

  • Mapeamento para teclas do teclado
  • Instalando aplicativos de middleware para solucionar o problema

Obrigado desde já por qualquer ajuda.

Responder1

Eu tinha outro do mesmo controlador que não usava há algum tempo. Decidi conectá-lo em uma porta diferente ao mesmo tempo. Testei a calibração emhtml5gamepade teve o comportamento correto.

Comecei a comparar as diferenças de registro entre os dois controladores. Então me deparei

[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 é o problema. Quando comparei os valores hexadecimais, notei 0e no Joystick2Configuration. No Joystick1Config o valor em seu lugar é 0d que é compartilhado pelo 5º valor hexadecimal.

Desconectei o controlador e configurei o último valor hexadecimal 0d para 0e no Joystick1. E fiz a mesma alteração em ..\DINPUT.DLL\CurrentJoystickSettings

Quando conectei o joystick novamente, não vi nenhuma melhora. Então desconectei os dois joysticks e troquei a localização das portas. Conectando o joystick 2 anterior onde o joystick 1 estava conectado e vice-versa. Ambos os controladores agora funcionam.

Eu me pergunto se já tentei trocar de porta com apenas um joystick antes e se isso poderia ter resolvido o problema. Em vez de perder horas da minha vida solucionando teimosamente essa coisa.

informação relacionada