如何在 Windows 10 上纠正 Nyko Airflo EX 控制器右模拟摇杆行为?

如何在 Windows 10 上纠正 Nyko Airflo EX 控制器右模拟摇杆行为?

我有一台旧的 Nyko Air Flo EX,它运行良好。除了右侧模拟摇杆行为不正确。经过一番挖掘,我发现了以下内容:

  • 它使用符合 HID 标准的游戏控制器
  • 硬件 ID:

    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

  • 什么时候Joy.Cpl 测试处于空闲状态

  • 按下模拟摇杆按钮(btn 13) 也在 Y 轴上返回 +1
  • 在 X 轴上移动模拟摇杆 -1还在 Y 轴上返回 +1
  • 实际上似乎有一个小玩意,它会触发各种轴值。通常在沿 X 轴移动时按下移动或摇杆按钮。按钮 13。

不确定是否相关:

  • 右摇杆似乎使用轴 2 和 5,而不是轴 2 和 3

我尝试过的事情:

  • 尝试 Joy.Cpl 校准 [未成功]
  • 尝试在 Nyko 网站上寻找驱动程序/支持 [没有任何内容]
  • 给 Nyko 支持部门发了电子邮件 [没有帮助的回复] 基本上只是说产品已停产
  • 我按照一些说明操作,这些说明要求添加 Axes\2 Attributes=00 00 00 01 00 35 00 和 Axes\5 Attributes= 00 00 00 01 00 32 00 的注册表项 [似乎没有太大变化]
  • 我继续在 Microsoft 网站上阅读有关 directinput 和注册表 Axes override 的更多文档这里usb.orgdocs。也许我理解得不正确,但它似乎并没有改变行为。我不确定如果设备被 Xinput 拾取,效果是否会降低。

我不想要的东西:

  • 映射到键盘按键
  • 安装中间件应用程序来解决此问题

预先感谢您的任何帮助。

答案1

我还有另一个同样的控制器,我已经有一段时间没用了。我决定同时将它插入另一个端口。在html5游戏手柄并且它具有正确的行为。

我开始比较两个控制器之间的注册表差异。然后我遇到了

[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 是问题所在。当我比较十六进制值时,我注意到 Joystick2Con​​figuration 上的值为 0e。在 Joystick1Config 上,其位置上的值为 0d,与第 5 个十六进制值相同。

我拔下控制器,将 Joystick1 上的最后一个 0d 十六进制值设置为 0e。并在 ..\DINPUT.DLL\CurrentJoystickSettings 中进行了相同的更改

当我重新插入操纵杆时,我没有看到任何改进。所以我拔下两个操纵杆并交换它们的端口位置。将之前的操纵杆 2 插入操纵杆 1 插入的位置,反之亦然。两个控制器现在都可以工作了。

我想知道我是否曾经尝试过只用一个操纵杆切换端口,以及这是否能解决问题。而不是浪费我生命中的几个小时来固执地排除故障。

相关内容