Cuando empecé a usar la distribución Retropie en mi Raspberry Pi, me encontré con varias dificultades a la hora de configurar los mandos para poder jugar varios jugadores. Espero que esta entrada os pueda servir de ayuda y que aprovechéis todo lo que yo aprendí.
Para los que no lo sepáis, Retropie proyect es una distribución basada en Rasbpian en la que ya viene instalado los emuladores de consolas de juegos antiguos, como la NES, SNES, MAME, Sega Genesis, etc.
Si queremos instalar Retropie en una tarjeta SD para usarla en nuestras Raspberry Pi, os recomiendo que sigáis esta guía (en inglés). Es muy completa y bastante sencilla si estáis familiarizados con la línea de comandos. También podéis ver esta entrada en la que se explica en detalle lo que te puedes encontrar en Retropie.
Una vez instalado, hay que meterle los juegos. De serie, apenas tiene juegos, pero se le pueden añadir las ROMs que queramos, ya sea copiándolos directamente en la tarjeta SD o mediante la red con SSH o SAMBA.
Cuando ya tenemos montado el sistema, hay que configurar los controles en los juegos. No hay que confundirse con configuración inicial que se hace para seleccionar los emuladores los juegos.
Por defecto, las teclas del teclado vienen predefinidas en los emuladores para el jugador 1, aunque estas teclas se pueden editar como veremos más adelante. Esta opción no la recomiendo porque algunas funciones ya están asociadas a una tecla, como reiniciar el juego o iniciar la grabación de un vídeo, y lo que haríamos sería añadir otra función más a la tecla, es decir, no se sobrescribe la antigua funcionalidad.
En mi caso, además de un teclado, tengo un mando que me encontré por mi casa con una cruceta y 8 botones en total, lo cual lo hace perfecto para jugar a esta clase de juegos. Para poder asignar a cada botón una función en los emuladores, hay que ejecutar el siguiente comando:
cd ~/RetroPie/emulators/RetroArch/installdir/bin/
./retroarch-joyconfig -o ~/RetroPie/configs/all/retroarch.cfg -p 1 -j 0
Como podemos ver, el comando retroarch-joyconfig tiene tres parámetros:
- -o : que indica el fichero donde va a escribir la configuración.
- -p : es el número de jugador.
- -j : es el identificador del joystick.
De esta manera, el jugador 1 puede ser controlado mediante el teclado (ya que viene por defecto) y el mando. Si quisiésemos poder jugar con el jugador 2 utilizando el mando, habría que ejecutar de nuevo este comando (con -p 2) y volver a seleccionar de nuevo los botones. Sin embargo, no he encontrado manera que poder utilizar el teclado para el jugador 2, ya que al asignarle teclas en el archivo retroarch.cfg, haremos que en el teclado esté configurado tanto para el jugado 1 como el 2. De esta forma, podemos llegar a tener las mismas teclas para los dos jugadores.
También podemos configurar manualmente las teclas editando directamente el archivo:
nano ~/RetroPie/emulators/RetroArch/installdir/bin/retroarch.cfg
De esta forma podemos poner asignar funciones que el comando retroarch-joyconfig no te permite, como las de guardar y cargar estado. Para ello, añadimos al final este archivo lo siguiente:
input_save_state_btn = "6"
input_load_state_btn = "7"
Donde “6″ y “7″ tendrán que ser sustituidos por los botones oportunos.
Todo esto puede hacer que perdamos mucho tiempo, ya que si queremos jugar nosotros solos con el mando tendremos una configuración, y si queremos jugar con alguien (teclado+mando), tendremos otra. Para evitar tener que estar ejecutando cada vez el comando retroarch-joyconfig, os dejo aquí un script que he hecho al que he bautizado como switchJoypadPlayer. Este script habrá que copiarlo a un archivo de texto que tenga permisos de ejecución para poder usarlo.
#!/bin/bash
if [ $1 -eq 1 ]; then
sed -i "s/player2/player1/g" /home/pi/RetroPie/configs/all/retroarch.cfg
elif [ $1 -eq 2 ]; then
sed -i "s/player1/player2/g" /home/pi/RetroPie/configs/all/retroarch.cfg
else
echo “No player has been selected.”
fi
Como se puede observar necesita de un parámetro, que será 1 ó 2 al cual corresponde el número de jugador que queremos que utilice el mando. Básicamente, lo que hace este script es substituir (mediante el comando sed) “player1″ por “player2″, o viceversa, en el archivo del configuración .
Así pues, cuando estemos solos, para jugar con nuestro mando ejecutaremos:
./switchJoypadPlayer 1
Pero si tenemos visita, ejecutaremos lo siguiente para que el jugador 2 pueda usar el mando:
./switchJoypadPlayer 2
Así, de una forma fácil, con sólo un comando podemos automatizar el jugador que queremos que use el mando. Espero que esto os pueda servir para algo y si tenéis dudas, preguntadlo en los comentarios.