En esta guia, vamos a enseñar cómo usar el paquete joycontrol
y una placa Raspberry Pi Zero W para emular Amiibos en nuestra Nintendo Switch.
Si no dispones de una Raspberry Pi Zero W o un ordenador con Linux sigue este otro tutorial para usar una máquina virtual de Linux sobre Windows|macOS.
Nota: Si ya tienes una Raspberry Pi W con Raspbian Lite y conexión a internet, puedes saltar directamente al paso 4.
Para seguir esta guia, necesitarás conocimientos mínimos de manejo de terminales y una Raspberry Pi Zero W, que incorpora un módulo Wi-Fi y bluetooth de fábrica.
También serán necesarios los archivos binarios de los Amiibos (por ejemplo, los de Animal Crossing que puedes descargar aquí).
Puedes hacerte con una Raspberry Pi Zero W por internet a precios muy competitivos (e.g., en kubii.es por 10,5 euros). Además de la placa, necesitaremos tres cosas: una fuente de alimentación compatible, una tarjeta micro-SD y un adaptador de red USB (opcionalmente, puedes conectarte por Wi-Fi y omitir este requisito técnico).
¿Todo listo? Comenzamos.
Para instalar el sistema operativo en la micro-SD, usaremos la herramienta Raspberry Pi Imager. Tan solo debemos introducir la tarjeta en nuestro ordenador, ejecutar la aplicación y seleccionar el SO Raspbian Lite.
Antes de expulsar la tarjeta micro-SD, crearemos un fichero ssh vacio y sin extensión dentro del directorio raíz de la tarjeta:
macbook-pro:~ benhid$ sudo touch ssh
Si no vas a usar un adaptador de red para conectar la placa a internet, también deberás habilitar la conexión Wi-Fi de la placa. Crea un fichero wpa_supplicant.conf en el directorio raíz de la tarjeta e introduce las siguientes líneas (adaptándolas a la configuración de tu red):
country=ES
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="NOMBRE-DE-TU-WIFI"
psk="CONTRASEÑA-DE-TU-WIFI"
key_mgmt=WPA-PSK
}
Una vez introducida la tarjeta micro-SD en la placa y conectarla a la corriente con la fuente de alimentación, esperaremos 30 segundos a que se inicie el sistema operativo.
Después, escanea tu red para encontrar la dirección IP de la placa. Ésto puedes hacerlo accediendo al panel de configuración del router o bien usando el siguiente comando en la terminal de tu ordenador:
macbook-pro:~ benhid$ sudo nmap -sn 192.168.1.0/24
Una vez identificada la IP, usaremos ssh
para conectarnos remotamente a la placa (la contraseña por defecto es raspberry).
macbook-pro:~ benhid$ ssh pi@192.168.1.X
pi@raspberrypi:~ $
Vamos a necesitar mover el fichero comprimido con los Amiibos a la máquina virtual. Para moverlo a nuestra micro-SD de forma remota, abre una nueva terminal en tu ordenador e introduce el siguiente comando:
macbook-pro:~ benhid$ scp nfc-ac-dump.zip pi@192.168.1.X:/home/pi/Escritorio/
Podemos descomprimir el fichero usando unzip
o cualquier otra utilidad:
pi@raspberrypi:~/Escritorio $ sudo apt-get install unzip
pi@raspberrypi:~/Escritorio $ unzip nfc-ac-dump.zip
En primer lugar, vamos a instalar git
y otras utilidades en nuestra placa:
pi@raspberrypi:~ $ sudo apt update
pi@raspberrypi:~ $ sudo apt upgrade
pi@raspberrypi:~ $ sudo apt install git python3-pip python3-dbus libhidapi-hidraw0
A continuación instalaremos el paquete joycontrol
>= 0.13 a través de su repositorio en Github:
pi@raspberrypi:~/Escritorio $ git clone https://github.com/mart1nro/joycontrol
pi@raspberrypi:~/Escritorio $ cd joycontrol
pi@raspberrypi:~/Escritorio/joycontrol $ sudo pip3 install .
Inicia la aplicación usando el siguiente comando:
pi@raspberrypi:~/Escritorio/joycontrol $ sudo python3 run_controller_cli.py PRO_CONTROLLER
Inmediatamente después, abre el menú "Cambiar el orden o el modo de sujeción" en la consola. En pocos seguros deberías ver que un nuevo mando Pro se ha conectado.
Si ocurre algún error o quieres empezar de cero, pulsa la combinación de teclas
Ctrl+C
y vuelve a iniciar la aplicación.
Presiona enter
en la consola. Si todo ha ido bien, aparecerá la siguiente línea:
cmd >>
Usa los comandos home
, up
, down
, left
, right
, y
, x
, b
y a
para volver al juego, por ejemplo:
cmd >> home
cmd >> a
cmd >> b
Por último, introduce el siguiente comando para añadir un nuevo Amiibo cuando te lo indique la consola:
cmd >> amiibo /home/pi/Escritorio/nfc-ac-dump/001.bin
P1. No avanzo del mensaje "Please open the Change Grip menu.." / No logro emparejar la consola con el mando emulado.
R1. Prueba a desactivar el plugin "input" introduciendo los siguientes comandos en la consola:
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
P2. He desactivado el plugin "input" pero mi consola sigue sin poder conectarse.
R2. Algunos adaptadores parecen no funcionar con joycontrol
por el momento. Prueba con otro adaptador o usa un live USB con Linux en lugar de una máquina virtual.