Nintendo Switch 利用 JoyControl 模拟读取 Amiibo

2020-12-28 550点热度 1人点赞 3条评论

如果你拥有一台 Nintendo Switch (以下简称 NS),那么对 Amiibo 肯定不陌生,这是任天堂推出的一种内置 NFC 芯片类似手办的产品。由于内置 NFC 芯片的特性,让它有了可以和电子设备交互的能力,而任天堂某些掌机产品带有 NFC 读取功能,所以这些 Amiibo 都会和一些游戏有联动,如果你在游戏里读取它们,可以获得一些奖励或其他功能等。

但是 Amiibo 售价并不便宜,在腾讯代理 NS 之前国内也没有正规的购买渠道。即使现在腾讯代理了 NS,发售的 Amiibo 也只有那么几个,是没有办法彻底满足玩家需求的。不过 Amiibo 本质上只是在手办里放了个 NFC 芯片,既然是 NFC 芯片,那就肯定是可以被破解或着克隆的。

NS 玩家大部分都玩过塞尔达,而部分 Amiibo 可以在塞尔达里有些很不错的效果。某些玩家也在淘宝买过“便宜的 Amiibo”,或者自己买一些 NFC 芯片制作。这是目前最方便且好用的方法,不过缺点是如果你想克隆所有 Amiibo,成本并不低。

小山前段时间趁《暗黑破坏神3》在美服打折入手了一波,如果你玩过NS的暗黑3的话应该知道它有一款专属的 Amiibo,可以召唤出藏宝秘境,刷金币、宝石、装备还是很不错的。我在玩塞尔达的时候也买过制作 Amiibo 用的 NFC 芯片,但是用完了,于是我想找找看有没有别的方法可以模拟 Amiibo 读取。还真被我找到了一款软件可以用于模拟 Amiibo 读取,下面我就教大家如何使用 JoyControl 模拟 Amiibo 读取。

JoyControl

运行环境:支持蓝牙的 Linux 系统设备,如果你的电脑没有蓝牙,可以去买个 USB 蓝牙适配器。如果你有树莓派之类的设备,也可以直接拿来用。如果是 Windows 用户,可以使用虚拟机解决。遇到任何问题欢迎加入 QQ 群与我讨论。

PS:部分蓝牙适配器可能有兼容性问题

JoyControl 本质上是个NS的手柄模拟软件,它当然不仅可以用来模拟 Amiibo 读取,它还可以有一些其他作用,比如按键连发,按顺序执行某些按键,如果你对这些有兴趣,欢迎加入 QQ 群与我讨论。

由于 #80 导致 JoyControl 最新版目前没有 NFC 支持,但是好在它是开源的,可以通过 git 回退到之前的提交来重新获得 NFC 支持。

PS: 请确保你使用的系统的 Python 版本是 3.6 或更高,输入python3 --version查看 Python 版本。

首先使用 git 克隆 JoyControl 到本地:git clone https://github.com/mart1nro/joycontrol.git JoyControl

然后切换到 JoyControl 所在目录并回退到支持 NFC 的最后一个提交:cd JoyControl && git checkout bf2e7e52fb54edb6b74e6a21fb77e0f73f14e21e

安装 Python 依赖:sudo pip3 install .

安装系统依赖:

Ubuntu 用户:sudo apt install python3-dbus libhidapi-hidraw0

Arch 用户:yay -S hidapi bluez-utils-compat

禁用 bluez 的 input 插件(可选),编辑文件 /etc/systemd/system/bluetooth.service.d/override.conf,文件内容如下面所示,保存后重启蓝牙服务:sudo systemctl restart bluetooth.service

# /etc/systemd/system/bluetooth.service.d/override.conf

[Service]
ExecStart=
ExecStart=/usr/lib/bluetooth/bluetoothd --noplugin=input

大功告成,可以使用了!

首次使用只需运行:sudo python3 ./run_controller_cli.py PRO_CONTROLLER

然后进入NS的手柄界面选择 「更改握法/顺序」,过不了多久NS应该就可以搜索到并连接上 JoyControl 模拟的 PRO 手柄了。

JoyControl 的操作很简单,你只需要在 JoyControl 的命令行界面输入命令并执行即可,输入 help 可以查看帮助信息,操作很简单,我就不多说了。

那么如何模拟 Amiibo 读取呢?你只需要准备好对应的 Amiibo 文件,然后输入 nfc <文件路径>,例如:nfc /mnt/amiibo/pikachu.bin,读取之前最好让游戏处于读取准备状态。

之后使用 JoyControl 需要运行:sudo python3 ./run_controller_cli.py -r <NS MAC ADDRESS> PRO_CONTROLLER,将 <NS MAC ADDRESS> 替换为 NS 的蓝牙 MAC 地址,这样可以更快速的连接到 NS,蓝牙 MAC 地址可以通过运行bluetoothctl devices查看。

以上就是如何利用 JoyControl 为 NS 模拟 Amiibo 读取的教程,小伙伴们学“废”了吗?有任何不懂的地方欢迎加入 QQ 群与我讨论,如果你喜欢玩 NS 游戏,也欢迎加入 QQ 群小山一起开黑。

微信公众号二维码

微信扫描二维码关注我们

如果觉得文章有帮助到你,可以点击下方的打赏按钮赞助下服务器费用。

小山

一个什么都不会但要装作很厉害的人

文章评论

  • Lee

    [email protected]:~/joycontrol$ sudo python3 ./run_controller_cli.py PRO_CONTROLLER
    File "./run_controller_cli.py", line 147
    raise ValueError(f'Button {button} does not exist on {controller_state.get_controller()}')
    ^
    SyntaxError: invalid syntax
    这是啥原因?

    2021-01-08
    • 小山

      @Lee Python 版本过旧,请使用 Python 3.6+

      2021-01-08
  • LOGI

    教程有了,坐等 Switch

    2020-12-28
  • 此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据