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
- 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.