精彩文章免费看

Switch Amiibo模拟器(Windows|Linux PC + JoyControl + Bluetooth)

之前我发了一篇文章,介绍如何用安卓手机模拟switch的pro手柄刷amiibo,大家如果感兴趣可以点击我的那篇文章: 蓝牙5.0安卓手机连接switch刷任意amiibo,不用白卡 。但是如果你没有蓝牙5.0的安卓手机,那么你还有另一种选择:用一台带蓝牙的电脑和一个linux系统(可以是虚拟机)。
原文github链接: 地址
油管视频教程: 地址

最近大热的游戏动森,用这种方法你可以邀请任意的村民,Amiibo邀请的村民可以指定替换掉现有村民。人气小润,柠檬娜你都可以拥有!

请不要在评论中要求或共享指向Amiibo二进制文件的链接!它们将被删除, 谢谢理解。

本教程旨在介绍如何使用joycontrol模拟Amiibo。 只需要一个蓝牙适配器(可以是笔记本或者板载的蓝牙,也可以是usb蓝牙适配器),并将PC暂时引导到Linux(或者可以在Windows中使用Linux虚拟机,但存在更多问题)。

Windows/Linux系统电脑 , 笔记本或台式机都可以,主要我们要用到Linux系统,所以双系统或者虚拟机都可以 需要支持蓝牙 ,版本不限,笔记本或台式机的板载蓝牙,或者usb蓝牙适配器都可以 JoyControl ,该软件可从github下载到,我们需要用它模拟pro手柄进行amiibo读取

第一步,启动Linux

跳过这一步如果你已经启动了Linux。

你可以在网上搜索到很多文章介绍如何安装Linux双系统或者虚拟机,本文只简要介绍下必要的步骤:

  • 下载Ubuntu镜像文件
  • 安装Windows/Linux双系统(如果你当前是Windows系统),或者安装Linux虚拟机
  • 启动Linux系统
  • 第二步,安装JoyControl

    首先打开终端。 单击Ubuntu桌面左上边的Dash主页图标,在搜索框内输入 ter ,然后在搜索结果内会出现终端的图标,然后单击终端图标即可打开终端。亦或者直接按: Ctrl+Alt+T 即可打开终端。

    请注意,这些命令将需要联网,但是默认情况下,大多数虚拟机程序都默认将主机网络连接到虚拟机。 配置此功能不在本攻略的讨论范围内。

    首先运行下面两行代码,更新安装库,你可以选择按行复制到终端,然后按回车键运行

    sudo apt-get update -qy
    sudo apt-get upgrade -qy
    

    接下来安装Python及相关的依赖库

    sudo apt-get install -qy git python3-pip libglib2.0-dev libhidapi-hidraw0 libhidapi-libusb0 libdbus-1-dev
    

    下面用pip安装dbus-python,用来控制蓝牙

    sudo pip3 install hid aioconsole crc8 dbus-python
    

    然后新建一个文件夹命名为joycontrol,并从github下载joycontrol到joycontrol文件夹。

    mkdir -p ~/joycontrol
    git clone https://github.com/mart1nro/joycontrol ~/joycontrol
    

    第三步,拷贝Amiibo文件到Downloads文件夹

    这里还是不会提供Amiibo文件的下载地址,需要自行搜索下载。将下载好的Amiibo文件拷贝到Downloads文件夹,接下来会用到Amiibo的文件路径,类似~/Downloads/amiibo.binammibo.bin是你的Amiibo文件名。

    第四步,使用JoyControl !

    开始之前,请在掌机模式下使用Switch,先用原左右joycon手柄在游戏中进入到马上要刷Amiibo的界面,然后回到Switch主界面,从主机上取下左右joycon手柄,并短按侧面的黑色同步键断开手柄,之后的操作都用触屏直到连接上模拟手柄。
    因为之后连接模拟的手柄过程中,如果用物理手柄可能导致连接不上,所以需要用命令控制,而摇杆是没办法模拟的,所以类似行走的相关功能无法完成。

    首先,进入joycontrol文件夹

    cd ~/joycontrol
    

    然后运行joycontrol程序

    sudo python3 ./run_controller_cli.py PRO_CONTROLLER
    

    正常情况下,会有一串日志输出在终端,当终端出现下面的代码时,包含Please open the "Change Grip/Order" menu,用触摸屏打开Switch的手柄-->更改握法/顺序

    [15:07:37] joycontrol.server create_hid_server::94 INFO - Waiting for Switch to connect... Please open the "Change Grip/Order" menu.
    

    然后程序继续运行,模拟的pro手柄完成和Switch的连接。最终你可以按回车键进入命令行模式。这时候你可以输入指令控制Switch。

    注意,实测连接上之后是可以将物理手柄插到主机上控制操作的,就是说模拟手柄和物理手柄可以同时连接,行走用物理手柄,到刷amiibo的时候用命令(需用命令进入刷amiibo的界面)

    一些简单的命令包括(输入对应指令并按回车):

  • A键:a
  • B键:b
  • 主界面键:home
  • 上键:up
  • 下键:down

    其他可用命令可以输入help查询。

    当控制游戏到达检测Amiibo界面时,输入amiibo + 你的amiibo文件路径就可以读取Amiibo文件。

    amiibo ~/Downloads/amiibo.bin
    尝试几次! 即使在非常理想的条件下,有时候似乎也不是很稳定。
    另外,尝试使用另一个usb蓝牙适配器。 有时候板载蓝牙因为兼容问题更大概率无法成功。
  • 当离开更改握法/顺序界面时,模拟手柄断开连接
    错误可能如下:
  • ERROR - [Errno 104] Connection reset by peer [19:39:05] joycontrol.protocol connection_lost::121
    ERROR - Connection lost.
    
  • 请勿触摸真正的摇杆或控制器! 如果可能,完全移除Joycon并卸下其他的pro手柄。
  • 如果您已完成上述操作,但在离开更改握法/顺序屏幕时仍断开连接,则可能是蓝牙适配器问题。 如果是这种情况,请检查虚拟机的蓝牙转发设置。尝试改为通过双系统启动Linux。 或尝试另一个蓝牙适配器。
  • OSError: [Errno 98] Address already in use
    检查是否已经运行了另一个joycontrol程序,如果是终止程序或重启终端
    如果还是一样的问题,常识运行如下代码,并重新启动程序
    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
    

    还有什么问题可以在评论区留言,我会尽量解答大家的疑问。