肇鑫的日常博客

日常

Xbox One S手柄在macOS下的安装使用流程

起因

之前买的北通震动手柄3是有线的。macOS下可以免驱,打一些模拟器的小游戏。不过它不支持Xbox 360模式,Steam里的游戏没法玩儿。

于是我打算买升级版的阿修罗2无线版。可以无线,可以模拟Xbox 360,价格还便宜。唯一缺点是,据说手感不如Xbox One的手柄。于是我想不如加钱买Xbox的手柄算了,Xbox的手柄一共有3种,360手柄,One手柄,One S手柄,分别是有线/无线/蓝牙,其中后两者也可以有线玩儿。

买之前搜索了一下,发现说法是,Xbox的手柄,macOS下虽然可以无线连,但是打游戏的时候,手柄会被同时识别为鼠标,导致没法玩儿游戏,因为会经常点到别的东西。但是实际上这个说法是错误的,或者说,至少它是不适合Xbox One S手柄的,应该指的是Xbox One的无线手柄。

综合比较

  • 北通阿修罗2无线版:可无线、可模拟Xbox 360手柄,价格便宜,做工据说较差。
  • Xbox One S手柄:可无线、可有线,价格贵(大概是2.5倍的阿修罗2无线版的价格),据说做工较好。

于是我买了后者。

测试

第一轮

收到货之后,发现无法连接。原因有两点:

  1. 手柄背面的电池位置,看起来两个电池是并联,实际上是串联的。你要看弹簧片上的正负极标注,一个是正,一个是负。我刚开始以为是并联的。这点还不如很多年前的设计。那时弹簧片一侧是负极,另一边是正极。这个手柄的弹簧片有正也有负。
  2. 微软的快速安装手册的描述是错误的。它说安装好电池之后,按3秒无线连接键,然后Xbox的灯会闪动,就可以蓝牙配对了。这个说法是错误的。正确的操作是电池装好之后,按Xbox标志的按钮,等灯开始闪烁之后,再按住无线连接按钮几秒,这时灯会更快速的闪动,此时就可以蓝牙配对了。

macOS High Sierra下,蓝牙可以配对之后,一些模拟器的小游戏,比如OpenEmu,就可以直接玩儿了。但是Steam的游戏不识别。安装了Xbox 360 Controllers应用,重启之后,无论是否连接USB线,都无法识别手柄。

第二轮

到Github上的Xbox 360 Controllers的页面查看issues,看看有没有人提到Xbox One S手柄的不兼容问题,发现的确有。但是有的人说没问题。

为了定位问题,我安装了OS X Mavericks 10.10,以及Xcode 6.4到Parallels Desktop 13中。我一共测试了3个版本的macOS,10.10、10.12、10.13。我发现前两个重启之后都能自动识别手柄。但是10.13不可以。可喜的是,这次我注意到,重启之后会提示有软件被禁用,到系统偏好设置->安全与隐私查看,果然提示来自开发者“Drew Mills”的系统软件已被阻止载入。点击允许之后,手柄就正确被识别了。

正确流程

有线连接,适用于玩儿Steam平台的大型游戏以及模拟器游戏

下载这个。我安装时最新的是0.16.5版。

英文说明在这里

macOS Sierra 10.12及以前的版本的系统

正常安装驱动,重启电脑即可。然后再升级到macOS High Sierra,可以保证后者也还能继续识别。

macOS High Sierra 10.13

  1. 安装好电池,按Xbox标志按钮,此时按钮会闪动。(这个闪动是比较慢的,不同于蓝牙配对时的快速闪动)
  2. 使用USB连线与电脑相连。
  3. 安装Xbox 360 Controllers应用。如果期间Xbox按钮的闪动停止了,再次按一次Xbox标志,保证按钮一直处于闪动状态。
  4. 重启系统。
  5. 重新进入系统后,点击系统偏好设置->安全与隐私,点击允许。此时有可能会提示你需要重启,如果提示,就重启。如果不提示,就去看系统偏好设置->Xbox 360 Controllers。手柄的灯一直亮就代表驱动安装成功了。
    驱动被系统阻止

伪装成Xbox 360手柄,这样Steam的游戏才会识别

这时Steam的大型游戏也还是不识别,需要再伪装一下。

  1. 打开系统偏好设置->Xbox 360 Controllers->Advanced,点击右下角的Pretend to be an Xbox 360 Controller

伪装成Xbox 360的手柄

  1. 打开你要玩儿的游戏。
    古墓丽影9正确识别了手柄

蓝牙连接,适用于玩儿模拟器游戏

  1. 按Xbox按钮,按钮会慢慢的闪动。
  2. 长按无线连接按钮,Xbox按钮会快速闪动。
  3. 打开系统偏好设置->蓝牙。当出现手柄时点连接。

上面这几步比较简单。主要的问题在于从有线连接切换到蓝牙连接时有些问题。比如你在有线连接时,直接拔下USB线,这时,并不会直接切换到蓝牙连接。Xbox按钮会慢慢的闪,你这时有两个选择:

  • 按住Xbox按钮,直到灯灭。然后再按Xbox按钮,将手柄打开。此时,会自动连接蓝牙。
  • 或者,你可以打开系统的蓝牙设置,先删除掉手柄,然后重复上面的第2步,重新配对蓝牙。

说说Xbox按钮指示灯

它有4个状态:

  1. 慢闪。代表手柄没有连接到电脑,处于等待的状态。此时如果一段时间还是没连接,会自动进入到省电状态。
  2. 快闪。代表手柄等待蓝牙配对。
  3. 常亮。代表手柄已经正常连接到了设备上,可以正常操作。
  4. 不亮。电池没装好。或者手柄处于关闭或节电状态。

电池正确安装后,长按Xbox键可以开启手柄,慢闪。慢闪状态,长按配对按钮,可以配对,快闪。快闪状态,配对成功后,会常亮。常亮状态,连接USB线会变成有线连接。有线连接拔掉USB线,会变成慢闪。

说说Parallels Desktop虚拟机里的Xbox One S手柄

  • 在Windows 10的虚拟机里,通过蓝牙分享可以识别出来无线连接下的手柄。但这个手柄在游戏中无法使用。
  • 在Windows 10的虚拟机里,USB连接的手柄,通过指派给虚拟机,可以在Windows 10里正确识别手柄,并且可以在游戏中使用。另外,安装Xbox 附件应用,可以更新手柄的固件。值得说的有一点,即便是Xbox 附件应用,也仅支持USB连线下更新固件,而不支持蓝牙更新。这个是微软的限制,和虚拟机无关。