在开始前,请注意以下几点:
纯技术教程,不提供amiibo文件,可以使用其他工具备份你的amiibo到电脑(本文不涉及)
目前只能实现读取功能,写入功能还无法实现
本文参考自 https://gist.github.com/colemickens/b08d1a339f4483c6b3c08e739d6cf5d0 ,结合了一些自己实际使用情况的经验,在此感谢原作者
那么就开始吧!
首先,你需要准备以下:
电脑(任何系统)
Switch(没有的话也可以收藏本文待日后使用哦)
蓝牙适配器(笔记本电脑内置的蓝牙很可能会有连上后马上断开的问题,已有多名用户回报此问题,至今未解决,如果你有这种情况出现,可以在网上花个十来二十块钱买一个USB蓝牙适配器插上使用)
第一步:启动Linux(如果你正在用Linux,可以跳过这一步)
1.前往 https://mirror.us.leaseweb.net/ubuntu-cdimage/xubuntu/releases/20.04/release/ 下载一个Ubuntu系统盘
2.前往 https://www.virtualbox.org/wiki/Downloads 下载虚拟机软件VirtualBox及其Extension Pack(本文以Windows版为例。VMware对蓝牙的支持有所限制,可能会无法连接到Switch,如果你正在用的话最好还是换成VirtualBox)
3.安装VirtualBox以及Extension Pack后打开,点选“新建”
4.接下来全部都按默认的选项点下一步就可以了(硬盘分配太小的话可能安装完后会无法启动系统,最好还是按默认的10GB来)
5.点选“设置”,在“存储”选项卡中载入我们前面下载的系统盘
5.在“USB设备”这个选项卡中加入你的蓝牙适配器,如果不知道是哪一个的话可以去设备管理器查看一下(或者拔插一下看看)
另外请特别注意,虚拟机开机后,所有已连接的蓝牙设备都会断开(比如蓝牙鼠标),且无法在虚拟机内连接这些设备,关闭虚拟机或者中止虚拟机连接蓝牙适配器后可恢复
6.保存设置后就可以开机装系统了,可选择中文
7.选择下载更新和安装第三方软件,之后会联网下载更新文件,有条件的话可以挂一个全局
8.再经过接下来的几个简单步骤后,接下来的就是安装了,请耐心等待
9.安装完后重启虚拟机(第一次重启要按一下回车键),确认有蓝牙图标出现并点击软件更新器安装更新,安装完后关闭虚拟机
10.载入VirtualBox安装路径内的VBoxGuestAdditions.iso这个光盘后开机
11.打开终端模拟器,按顺序输入以下(此时虚拟机还无法共享主机的粘贴板和文件,请逐字输入),安装完成后右键弹出光盘并重启虚拟机,在虚拟机选项栏的“设备”中启用“共享粘贴板”以及“拖放”即可实现粘贴板共享以及文件拖拽共享的功能了
sudo apt-get update
sudo apt-get install gcc make perl
cd /media/<用户名>/<光盘文件夹名>/ # 光盘就在桌面,可以直接复制整条路径
sudo ./VBoxLinuxAdditions.run
第二步:安装JoyControl
1.打开终端模拟器,按顺序输入以下(现在就可以复制粘贴了)
sudo true
sudo apt-get update -qy
sudo apt-get upgrade -qy
sudo apt-get install -qy git python3-pip libglib2.0-dev libhidapi-hidraw0 libhidapi-libusb0 libdbus-1-dev
sudo pip3 install hid aioconsole crc8 dbus-python
mkdir -p ~/joycontrol
git clone https://github.com/mart1nro/joycontrol ~/joycontrol
2.由于源码授权方式之类的等等问题,amiibo读取功能已经在最新版中删除了,我们需要回滚到读取功能删除前的最后一个版本,在终端模拟器中按顺序输入以下
cd ~/joycontrol
git checkout bf2e7e5
git log
第三步:使用JoyControl
1.将你的amiibo文件拖进虚拟机中(文件名越简单越好,方便切换使用)
2.先打开游戏,到达amiibo触发点前再退回到主界面(这样的话会方便很多,用电脑操控挺不方便的,本文以火纹为例)
4.卸下Switch上的Joy-Con,并进入“更改握法/顺序”的界面中
5.打开终端模拟器,按顺序输入以下,耐心等待连接(连接所需的时间可长可短,若有问题请见本文末尾),建议在虚拟机内新建一个文本文件来储存命令,就不用再切换出来复制了
cd ~/joycontrol
sudo python3 ./run_controller_cli.py PRO_CONTROLLER
6.连接上后按一下回车,就可以开始输入命令了,先输入“a”并回车确认连接再回到主界面(第一次连接的话虚拟机系统有可能会报错,无需理会,关掉它然后继续正常使用即可)
7.输入“home”即可回到游戏(或者使用触摸屏),继续输入命令打开amiibo界面,再使用以下命令读取amiibo文件(也可以先读取文件再开界面。如果是先开amiibo界面的话,终端此时会不断的刷屏,不用担心这个,照常输入命令再回车使用即可)
nfc <amiibo文件路径> # 可以通过更改文件随时切换到不同的amiibo
nfc remove # 停止读取amiibo文件,避免游戏反复读取同一个amiibo
8.amiibo读取成功
其他事项:
1.各种命令都是对应按键名称的,可以输入“help”查看所有命令
2.如果迟迟没有连接到Switch或者蓝牙出错,可以先在终端按顺序输入以下命令再来连接,同时可以手动搜索一下蓝牙设备看看,再不行就多重启几次虚拟机
sudo sed -i 's|^ExecStart=/usr/lib/bluetooth/bluetoothd.*$|ExecStart=/usr/lib/bluetooth/bluetoothd --noplugin=input|g' /lib/systemd/system/bluetooth.service # 这些是同一条命令,不要漏了
sudo systemctl daemon-reload
sudo systemctl restart bluetooth
3.若进入游戏后显示要按住L+R键来选择手柄的话,输入以下命令即可
hold l r
release l r # 连上后就可以输入这个放开L+R键
4.只要连接过一次,以后就可以不用再开启“更改握法/顺序”界面来连接了,在虚拟机的蓝牙设备里面可以找到Switch的蓝牙MAC地址(XX:XX:XX:XX:XX:XX),以后就可以输入以下命令来直接连接
cd ~/joycontrol
sudo python3 ./run_controller_cli.py PRO_CONTROLLER -r <Switch的蓝牙MAC地址>
5.可以在 https://amiibo.life/games/ 查询游戏支持哪些amiibo及其可获得的奖励
本文为我原创