Una vez conectados los cables hay que pasar a la configuración de los botones en el sistema. Para ello recomiendo seguir un esquema como este:
En este esquema tenemos los pines, a qué se corresponden, qué vamos a conectar físicamente y cómo lo vamos a configurar. Los pines 27 y 28 no se pueden usar, ya que se usan para programar la eprom. He de decir que si lo hubiera hecho al principio me habría ahorrado muchos quebraderos de cabeza y sobre todo mucho tiempo. De nada ^_^
Lo primero es decirle al sistema qué hemos conectado en qué pin del GPIO. Yo lo he hecho conectando por ssh a la Rπ por comodidad, pero se puede hacer directamente conectando un teclado USB.
Recordad que por defecto el login es pi y la contraseña raspberry.
Si estáis en la Pi y os ha entrado en EmulationStation, pulsando F4 se sale a la terminal.
Estas instrucciones valen para los dos casos. Tecleamos
cd Retrogame
y a continuación
sudo nano retrogame.c
En el archivo buscamos la siguiente sección (el aspecto es un poco diferente por los tabuladores):
// Input Output (from /usr/include/linux/input.h)
{ 2, KEY_UP }, //Player 1 up
{ 3, KEY_DOWN }, //Player 1 down
{ 4, KEY_LEFT }, //Player 1 left
{ 17, KEY_RIGHT }, //Player 1 right
{ 27, KEY_B }, //P1 Blue
{ 22, KEY_A }, //P1 Red
{ 9, KEY_ENTER }, //P1 White
{ 11, KEY_RIGHTSHIFT }, //P1 Black
{ 18, KEY_1 }, //1P start
{ 23, KEY_X }, //P1 Green
{ 24, KEY_Y }, //P1 Yellow
{ 25, KEY_5 }, //Coin
{ 7, KEY_ESC } //Esc
Nota: Lo que se escribe tras // se considera un comentario y no tiene efecto.
Esta es la configuración que he dejado yo. Falta añadir el jugador 2 (recordad que la última línea no lleva coma).
Básicamente se trata de incluir líneas de la siguiente forma:
{ <Pin GPIO>, <tecla>},
Es decir, si queremos conectar el botón de 1P Start en el Pin 18 y asociarlo a la tecla 1 debemos incluir la línea
{ 18, KEY_1 }, //1P start
Ojo, los pines con una única cifra se escriben sin el 0, es decir 9, no 09.
Una vez configurado tal como se han conectado los botones, pulsamos
CTRL+o
para salvar con el mismo nombre y
CTRL+x
para guardar. A continuación tecleamos para recopilar el archivo
make
Si aparece algún error hay que revisarlo y repetir los pasos hasta que todo esté ok y procedemos a reiniciar la Pi con
sudo reboot
para que se apliquen los cambios.
Ahora sólo queda configurar el emulador en si. Volvemos a la terminal vía ssh o saliendo de EmulationStation como antes y tecleamos
/opt/retropie/configs/all
y luego
sudo nano retroarch.cfg
Aquí tenemos que bajar un poco más hasta encontrar la sección con estas entradas:
input_player1_a = a
input_player1_b = b
input_player1_y = x
input_player1_x = y
input_player1_start = enter
input_player1_select = rshift
#input_player1_l = l
#input_player1_r = r
input_player1_left = left
input_player1_right = right
input_player1_up = up
input_player1_down = down
input_player1_5 = num5
input_player1_1 = num1
input_player1_esc = escape
Nota: lo que se escribe tras # se considera un comentario y no tiene efecto.
Aquí es donde configuramos cómo se van a comportar los botones en EmulationStation… no dentro del mame. Esto me ha costado bastantes pruebas entenderlo. Aquí se pone en cada línea lo siguiente:
<acción en EmulationStation> = <botón configurado en GPIO>
Es un de los momentos en los que la chuleta que ponía arriba viene de lujo.
Y pese a todo el camino recorrido, aún no hemos terminado. Queda configurar el mame, que no responde a la mayoría de los botones. ¿Y cómo he solucionado esto… de la manera más sencilla y directa: conectando el teclado a la Rπ, pulsando tab en uno de los juegos y configurando la primera opción que si no recuerdo mal (lo digo de memoria) es «Input general». Aquí cambiamos la configuración de los botones que nos interesen pulsando Enter cuando estemos encima de ese botón (del mame) y a continuación pulsando el botón que queremos que ejecute esa acción. Por ejemplo, si bajamos hasta «1 coin» y pulsamos Enter, esperará que pulsemos un botón, que en nuestro caso será el botón que hemos conectado como «Coin».
Un consejo muy importante… antes de cambiar la configuración porque no os funciona algún botón, comprobad que está correctamente conectado y no os pase como a cierto cenutrio que estuvo una hora toqueteando >_<
Después de todo el proceso, así me queda el siguiente esquema de conexión:
Por cierto, todo esto no lo habría conseguido sin la inestimable ayuda del tutorial de retrobuiltgames.com que podéis encontrar aquí.
Ola tengo un problemilla para configurar los botones por los gpio entro en cd retrogame luego sudo nano retrogame.c y me sale una pantalla negro que arriba pone gnu nano 2.2.6 y no se como buscar el archivo puesto q la pantalla esta negro y no se como buscar para editar las líneas de los gpio me podías ayudar Esque de ordenadores yo no entiendo mucho mucho lo básico y poco más muchas gracias de ante mano y un saludo si ves que es muy lioso me puedes mandar tu teléfono y yo te llamo para que portavoz puedas explicármelo mejor de nuevo un saludo y tienes un gran blog
Hola Abel.
Te explico. cd retrogame lo que hace es entrar en la carpeta retrogame. Una vez en esa carpeta, teclea ls y pulsa enter. Te debe aparecer una serie de nombres entre los que debe de estar retrogame.c. Si no es así, ha habido algún problema con la instalación inicial, yo empezaría de nuevo. Y por lo que comentas de que la pantalla te aparece en negro, tiene toda la pinta de ser eso.
Suerte
Hola, yo salgo de emulationstation con F4 y escribo cd Retrogame y me dice que no hay ningun directorio con ese nombre. Que estoy haciendo mal??
¿Has instalado la distro correcta?
Prueba esta
http://blog.petrockblock.com/retropie/retropie-downloads/download-info/retropie-sd-card-image-for-rpi-version-1/
Esa es la que tengo instalada pero ni rastro de la carpeta retrogame. De todas formas lo de adafruit-retrogame (es eso no?) lo puedo instalar luego yo??
La imagen que instalé yo me creó directamente esa carpeta y no tuve que instalar nada de adafruit-retrogame… Me estoy bajando la imagen que te he dicho para darle un vistazo y te cuento.
Por cierto te he escrito un direct por instagram pidiendote ayuda xD
Buenas, ha sido todo un hallazgo encontrar este blog. Estoy constuyendo una máquina de conduccion con Raspberry y para programar el GPIO sólo he encontrado tutoriales para encender leds y apagar la Raspberry (aficionados… ;). Bueno seguiré paso a paso tus indicaciones y seguramente te haga mas de una pregunta.
Un saludo!!
Espero que te sirva! La verdad es que hay poca información, pero ayuda a saber qué tocar para empezar a realizar ensayos de prueba-error 😀
Suerte y ya nos contarás!
Mi primer atasco viene cuando comentas en el tutorial que en estos dos archivos:
retrogame y retroarch
hay que localizar las selecciones con las distintas entradas que le queremos dar al GPIO, pero cuando entro en ambos archivos, me aparecen vacios. Al retrogame le intenté salvar habiendole creado un par de lineas o tres de comandos pero me daba error, no me dejaba guardar… sabes qué estoy haciendo mal?
Muchas gracias!
Esque me da la sensacion de que o no existen esos dos archivos, o están vacios por alguna razon… Estoy atascado en este punto.
Gracias!
Acabo de subir una entrada con los archivos
http://www.rafolas.net/blog/2016/01/archivos-de-configuracion/
Espero que te sirvan!
Hola Rafolas, que tal te va! Veo que te cuidas, según las fotos que subes al Instagram! Eso esta muy bien… 🙂
Tengo un problema, bastante fustrante, y esque estuve cableando los mandos de la recreativa según el plano que colgaste aqui, pero cuando fuí a conectar los cables, me percaté de que en tu esquema hay 20 pares de pines y en mi rasperry sólo hay 13 pares, por lo que creo que son dos versiones distintas de dispositivo. No sabras donde conseguir un esquema de los pines de mi versión? (que no sé si es la A o la B o la C o la bla bla bla…). Muchas gracias!!!
Creo que esta es la forma más sencilla de identificarla:
Por otro lado desde la terminal puedes ejecutar el comando
cat /proc/cpuinfo
Según el número de «Revision» que te de, ese será tu modelo de R-π
Model and Pi Revision 256MB Hardware Revision Code from cpuinfo
Model B Revision 1.0 256MB 0002
Model B Revision 1.0 + ECN0001 (no fuses, D14 removed) 256MB 0003
Model B Revision 2.0
Mounting holes 256MB 0004
0005
0006
Model A
Mounting holes 256MB 0007
0008
0009
Model B Revision 2.0
Mounting holes 512MB 000d
000e
000f
Model B+ 512MB 0010
Compute Module 512MB 0011
Model A+ 256MB 0012
Pi 2 Model B 1GB a01041 (Sony, UK)
a21041 (Embest, China)
PiZero 512MB 900092
Pi 3 Model B 1GB a02082 (Sony, UK)
a22082 (Embest, China)
Aquí se ve mejor (en inglés)
Coméntame qué versión tienes cuando lo averigües!
Tengo que decirte, lamentándolo mucho, que he desistido de usar la Raspberry… No me apaño ni con los comandos ni la programación y cada paso que intento dar noto como se desprende un cachito de mi vida… Te agradezco la ayuda prestada, que me ha servido de mucho, aunque no haya llegado a buen puerto. Vuelvo al PC. Un saludo y que te vaya muy bien!!
Hola,a mi también me pasa lo mismo ,que no me deja entrar con cd Retrogame ,puede ser que los que tenemos el nuevo modelo de Raspiberry con la segunda versión de la sd no nos funciona…
He mirado conectado a la red y si tengo la carpeta retroarch.cfg… pero no puedo acceder a ella mediante comandos…¿alguna idea?? gracias ,un saludo.
¿A qué te refieres que no puedes acceder mediante comandos?
Muchas gracias Rafolas!
Afortunadamente puedo abrir los archivos con el Sublime Text y editar facilmente. En cuanto pueda acoplarlos a la recreativa te contaré.
Saludos!
Espero las noticias! 😀
Buenas.
Después de probar varias versiones de petropie y de intentar acceder a cd retrogame me doy por vencido y pido consejo.
Tengo una raspberry pi3 y la configuración igual que la que tienes en el gpio, la de los 2 players y no tengo narices de hacer funcionar nada.tampoco puedo entrar en cd retrogame (ya que me dice no such file of directory) para seguir tu tutorial.
Un saludo.
Pon el enlace desde dónde te descargas retropie y lo miro
Hola, tengo raspberry pi2 y no sale el archivo retrogame, quiero poner 2 player por gpio pero no encuentro nada de información, algún esquema para dos player y su configuración no hay nada por Internet.
Pon el enlace desde dónde te descargas retropie y lo miro
tienes que descargar primero el archivo retrogame
cd
curl -O https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/retrogame.sh
sudo bash retrogame.sh
copia eso por shh
Hola, buena pagina..pero algun error…
La distribución que se habla en este foro no corresponde a las oficilaes de la páguina Retropie..por eso cuando alguien se baja una distro oficial no está dicho directorio (Retrogame), es una versión retocada de un usuario que ha modificado dicha imagen para utilizar los GPios..
En esta imagen si aparece el directorio Retrogame para poder seguir el tuto de esta página. La pongo por si alguno le interesa..
Gracias y un saludo.
http://supergameco.com.au/media/
Muchas gracias por tu ayuda (y perdón por tardar tanto en aprobar el comentario). La verdad es que di tantas vueltas en tantas páginas diferentes que al final seguramente pasó lo que dices y acabé usando una imagen no oficial. Ahora estoy más metido con python, pero tengo intención de montar una recreativa «portátil» integrada en un mando arcade. Cuando me ponga a ello retomaré el blog seguro y tendré más cuidado!
Gracias de nuevo!