Editado: 11/01/2016 - Añadido nuevo video (Mini-tutorial, salida RCA en CRT 14" y testeo de diferentes mandos (oficiales y no oficiales)):
https://www.youtube.com/watch?v=DSTjcQOpoIk Añadidos scripts de configuracion
Revisada solucion a falta de voltaje + slowdowns (4.1.- Problemas de slowdowns con un disco duro)
Editado: 10/09/2015 - Añadido nuevo video (Juegos de Dreamcast y N64):
https://www.youtube.com/watch?v=SlyAtYz ... e=youtu.beEditado: 07/09/2015 - Añadido nuevo video:
http://youtu.be/wQc6yfqUQtAEditado: 06/09/2015 - Añadida seccion 4 -> Fixes varios
===================================================================
Buenas a todos,
Ante todo no se si esto va en clásicas o en multiplataforma. No se si hay manera de que vaya en los dos subforos a la vez, pero me da pena que los de multi se lo pierdan por no pasarse por clásicas.
Tras darle millones de vueltas al asunto de los flashcarts y con la sola intención de suplir todo lo que no voy a poder comprarme por motivos económicos y de espacio, tengo que hacer como todo el mundo y darle a los emuladores.
Como todo jugón de lo clásico, añoro la capacidad de que si solo dispongo de cinco minutos, puedo dedicarlos íntegramente a jugar con solo meter un cartucho y encender la consola.
Haciendo números, me di cuenta de que si cogía todos los flashcarts recomendados para cada consola, le añadía el precio de la consola, dos mandos (o cuatro en previsión), accesorios de conexión y espacio ocupado, me daba algo.
Hasta ahora lo suplía con unas Wiis, que permiten emular todo a la perfección hasta la generación de los 32 bits, donde empiezan a renquear. Tienen multitud de adaptadores, por lo que no es un problema usarlo como centro multijuegos y ademas te llevas de bonus una cantidad importante de arcades de Sega que se convirtieron a Cube. Pero no es ni de lejos perfecta.
Dependes de los malditos mandos inalámbricos y su par de pilas, requiere de una cantidad de conexiones entre la fuente, los cables y la barra que hacen que no sea demasiado portátil, para jugar en condiciones tienes que ir enchufando mandos adicionales al wiimote, que se convierte en un trasto mas. Y por el amor de Dios, no van a terminar esos emus de PSX y N64 antes de que el universo se apague.
Así que me dije, ¿Porque no usar una de las nuevas Raspberry Pi 2 que como mínimo me asegura la "perfección" hasta la PSX? ¿Y porque no intentar homenajear a la Megadrive, mi primera consola y la niña de mis ojos de entre las clásicas?
Pues me puse manos a la obra. ¿Queréis saber cuanto me costo y como se hace? No es muy difícil, primero vamos con la "inspiración" del proyecto:
https://www.youtube.com/watch?v=ylhp34hBoW8Esta es la MegaPi de Enrique Pellejer (nombre de usuario). Es justo que sea lo primero que diga, porque mi objetivo fue replicar en cierta medida lo que el ha hecho. He cambiado algunas cosas y ante la ausencia de tutoriales he tenido que ir a ciegas. Es por eso que quiero escribir este mini-tuto, para que podáis hacerlo vosotros también con algo mas de sencillez.
Vamos a pasar primero a la lista de materiales:
- Una carcasa de Megadrive, preferentemente de una Megadrive rota o irrecuperable (gracias a Pato que me vendió la suya).
- Una placa de Megadrive en la que por lo menos estén operativos los contactos de los conectores db9 de los mandos, los del botón de encendido y reset, la salida de audio, la entrada de corriente AC y el led de encendido.
- Una Raspberry Pi 2
- Una MicroSD de mínimo 4 GB
- Un cable USB a mini-USB
- Un HUB USB alimentado
- Un cable HDMI y un conector hembra-hembra
- Un cable de RCA a jack (de los que parecen de audio pero tienen tres anillas negras)
- Un convertidor de audio RCA a jack
- Splitters de conectores RCA (en principio 2)
- Un latiguillo de cable UTP Cat5
- Una roseta de RJ-45 (cogeremos la pieza interior)
- Cableado y clemas para las soldaduras
- Conectores para conectar los cables a los GPIO de la Raspberry (yo use unos faston hembra aislados con cinta porque soy un ansias)
- Una resistencia de 220 Ohmnios
- Un conector (jack) de potencia de 2,1 mm
- Pegamento, bridas, cinta aislante...
- Un soldador de electrónica
- Una Dremel o similar
- Una pistola de pegamento caliente (3€ en un chino)
- Software diverso (que detallaremos mas adelante)
1.- HARDWAREVamos a empezar con el montaje. Por desgracia no he hecho suficientes fotos durante el proceso, así que vais a tener que fiaros de mis descripciones.
Lo primero que vamos a hacer es cortar la placa de la Megadrive para quedarnos solo con lo que nos interesa. Para ello abrimos la consola, quitamos los protectores metálicos anti-interferencias superior e inferior (necesitaremos ese espacio) y sacamos la placa con cuidado de que el conector de potencia, audio y el led de encendido no se arranquen por un tirón mal dado. Este ultimo sale con facilidad si enderezáis las patillas del led.
Tras esto, trazáis una linea con rotulador por donde vais a cortar, ponéis en la Dremel un disco para materiales plásticos (me ha dado buenos resultados) y hacéis el corte. Os quedara algo asi:
A continuación le damos la vuelta y nos preparamos para soldar. Fijaos en la parte de la placa que esta justo debajo de los conectores de los mandos. Veréis muy juntitos nueve puntos de soldadura. Cada punto de soldadura corresponde a una de las patillas del db9.
Contando desde arriba a la derecha, podéis numerarlos del 1 al 9, siendo el 1 el superior derecho y el nueve el inferior izquierdo.
Estarán espejados con respecto al conector:
Preparais 18 cables, 9 para cada mando, de la siguiente manera:
- Procurad que cada cable mida aproximadamente un palmo.
- Una de las puntas se va a soldar a los puntos, dejad el vivo corto.
- La otra punta llevara el conector faston o, si sois muy limpios, ira a una clema.
- Los conectores faston son demasiado grandes como para no molestarse entre ellos al conectarlos en el GPIO, reducidlos de tamaño con unos alicates y usad cinta aislante para evitar cortos entre ellos (irán MUY juntitos).
A continuación soldamos los cables a cada punto de soldadura por el vivo. Es una tarea delicada puesto que al estar tan próximos, si nos pasamos con el estaño vamos a necesitar un chupón o paciencia y gravedad. Aparentemente es un juego de críos para los soldadores experimentados, para mi fue un infierno porque solo he soldado puntos separados en proyectos anteriores y como soy un rata para las herramientas tengo un soldador malísimo que solo calienta por una esquinita.
Ahora tenéis que usar un polímetro o un destornillador mortal (esos que se usan para saber si llega corriente al enchufe... y si tocas el tope con la palma te quedas ahí) para ver que hay continuidad entre los pines del puerto y la punta del cable. Mirad también que no haya cortos, con cuidado de saber que hay dos pines (creo recordar que eran el 2 y el 5) que si que tienen continuidad. Desconozco el porque, pero en mi caso es así en ambos puertos y no he tenido ningún problema.
Si todo va bien, procedemos a echar pegamento caliente sobre las soldaduras y parte de los cables. Sed generosos pero tened cuidado. Una vez que volváis a poner la placa hay una rebaba de plástico justo debajo del puerto de mandos. Si os habéis pasado con el pegamento os toca usar una Dremel para dejar la rebaba pulida.
A continuación toca soldar cables en el interruptor y el botón de reset. En este ultimo algo he debido de hacer mal, porque no consigo que lo reconozca como botón, me tocara darle un repaso. En cuanto al interruptor es sencillo. Con la placa vuelta del revés y los puertos hacia vosotros, debajo del interruptor veréis tres puntos de soldadura (no confundir con los puntos de anclaje). Creo recordar que eran los dos primeros empezando por la izquierda, pero es bien sencillo de comprobar con un polimetro. Poned el interruptor en on (mirad en la caracasa la dirección correcta) y comprobad continuidad. Haced lo mismo en off y habréis identificado los puntos.
Por ultimo toca hacer un par de apaños mas. Para usar el led, vamos a reaprovechar el cable de conexión de la placa, pero solo el lado que da al led. El otro conector, el que esta pinchado en la placa, no es necesario. Con unos alicates de corte le pegáis un tajo al cable al ras del conector. A continuación soldáis una resistencia de 220 Ohmnios en el cable rojo, y lo rematáis con un cable acabado en un conector faston aislado. El cable blanco lo rematáis directamente con otro faston. En este caso use clemas, puesto que una vez montado es muy propenso a tirones.
Si queréis comprobar si el led funciona, conectad el cable rojo a un pin que de 3,3 V o 5 V en el GPIO y el cable blanco a masa. Al encender la Raspberry el led de la Mega debería iluminarse. Si no funciona intercambiad los cables, puesto que es habitual que tras el montaje el conector este conectado al led al revés.
El cable de potencia va a sufrir un destino parecido. Lo primero es pegarle un corte, para a continuación llevárnoslo a una clema. En esa clema conectaremos por un lado uno de los cables soldados al interruptor y por otro un cable que ira a un conector de potencia de 2,1 mm. En mi caso esta era la medida puesto que el hub que alimentaba la raspberry tenia ese conector. El cable restante del interruptor ira también al conector. Con esto hemos creado un circuito de potencia controlado por el interruptor de la Megadrive. Conectaremos el jack de potencia a la toma de potencia del hub usb alimentado y la fuente original del hub a la toma de la megadrive. Si todo va bien podremos usar nuestro interruptor para dar potencia al hub, que a su vez se la dara a la Raspberry, funcionando de forma efectiva como ese interruptor que la Raspeberry deberia incorporar y no lo hace.
Haced algunas pruebas antes de seguir, por Dios, que luego da mucha rabia cuando todo son pegotes de pegamento:
Con esto hemos acabado de trastear con la placa, así que la podemos fijar a la carcasa cuando la tengamos modificada.
Para comenzar la modificación, tenéis que buscar una distribución que os resulte cómoda en el interior de la Megadrive.
En mi caso no tenia latiguillos pequeños de HDMI y USB, así que tuve que apañármelas como pude usando bridas e imaginación. Usando una Dremel me pulí la parte inferior del sistema de cerrado automático del slot de cartuchos para que entrara la Raspberry con todo su cableado. Ademas tuve que rebajar la muesca inferior de dicho slot, la rebaba que va debajo de los puertos de mandos y abri un buen agujero en la parte de las conexiones de vídeo para dejar al descubierto el hub USB y el conector HDMI hembra.
Obviamente el agujero es... funcional. Tengo que usar masilla negra para dejarlo un poco mas bonito, así como pegamento caliente más algún bi-componente para asegurarme de que no se va a mover por mucho trote que le de. Es una de las piezas mas difíciles de asegurar, puesto que al poner o quitar los cables ejercemos una fuerza mecánica considerable sobre el conjunto, algo que por lo general no llevan muy bien los pegamentos que se basan en la cristalización. Probablemente use algo tipo mi-usos de Quilosa, que pega todo tipo de materiales. Tras 24 horas podria quitar las bridas de una vez por todas.
La raspberry se puede conectar por wifi, lo que deja los cables al mínimo, pero para configurarla por ssh es recomendable que uséis su puerto RJ45. Podéis sacar el cable por ese agujero misterioso que tiene la Mega en la parte trasera central, si no os importa tener un cable unido a la consola:
A mi, personalmente, no me parece solución. Desconozco cuanta distancia habrá hasta el switch y desde luego no contribuye a seguir pensando que es una Megadrive. Para solucionarlo, tenéis que haceros con un conector de este tipo:
Después le hacemos sitio en el lateral de la Megadrive, justo en la ranura de expansión. Por mi distribución, lo he puesto pegado a la parte posterior de la consola.
Y ahora ya fabricais el latiguillo:
Como podéis ver en la imagen, cometí el error de usar un latiguillo de dos pares, dado que la Raspberry esta limitada a Fastethernet y me parecía un gasto tonto de UTP. Para mi consternación, eso impedía que la consola se conectara bien con el switch, así que tuve que hacerme uno como dios manda con un cable Cat5e que tenia por aquí tirado:
Una vez cerrada, la Megadrive ofrecerá este aspecto (siento lo del enfoque), donde podéis ver como queda accesible la ranura para MicroSD y la roseta RJ-45:
Después es todo ponerse con una lima y rebajar la roseta hasta que la tapa cierre. Otra opción es encajarla un poco inclinada, de forma que la presión de la carcasa la siga manteniendo en su sitio pero no tengáis que limar:
En mi caso eso produjo algunos tirones desagradables, asi que opte por limar. No os pongo una foto porque os asustáis. Tuve algunos problemas de conexión, pero por suerte para mi, al colocar con esta distribución la Raspberry, el puerto RJ-45 se quedo justo debajo del slot de cartuchos, con lo que pude comprobar que mi problema venia por falta de corriente al no hacer contacto el blanco-marron:
Lo que se vea a través de esa tapa... procurad que sea algo útil.
Cuando hayáis acomodado todo en su interior, toca fijarlo bien y empezar con el conexionado de pines del GPIO. Usad algo que os permita identificar a que pin pertenece cada cable, dado que al darle la vuelta vais a tener un problemón. Yo use cinta de pintor que había por casa, dado que siempre que hago un proyecto por primera vez soy algo chapuzas. El resultado fue funcional y suficiente. Para conectar los pines vamos a seguir el esquema de
https://github.com/RetroPie/RetroPie-Se ... 9_gpio_rpi :
Seguiremos el de MD/Genesis Pad. Para elegir el tipo de mando que conectamos, ya sea la ensaimada de 3 botones, el mejor mando del mundo de 6 o el limitado pero matón de la Master System de 2, vamos a hacerlo a posteriori y por consola.
Por alguna razón no he sido capaz de hacer funcionar correctamente el botón de reset de la Megadrive con el GPIO. Eventualmente tendré que poner otro botón, y así entre otras cosas podre usarlo de pausa cuando enchufe los mandos de la Master. Una opción (cutre) seria usar un par de cables pelados y unirlos con una pulsación del reset, pero ni siquiera yo me puedo permitir ese tipo de chapuzas.
El conexionado con nuestros conectores custom debería de quedar así:
En mi caso, allí donde no había presión se acababa saliendo todo. Una opción es, una vez nos aseguremos de que todo funciona, usar pegamento caliente para evitar problemas. Ahora bien, eso implica que la Pi ya no se usara para otra cosa, que los GPIO que no se usan quedan inutilizados y que somos mas cutres que la madre que nos pario. Lo dejo en vuestras conciencias, pero yo acabe usando cinta aislante para unir los cables en racimos y luego rodee todos los contactos como si fueran uno solo. No se ha vuelto a salir nada.
Por ultimo, y para terminar la parte hardware (ya iré poniendo alguna modificación más) nos quedaría darle funcionalidad a la salida de audio. Con esto también le vamos a dar una salida de vídeo compuesto, pero todavía no he llegado a ese paso de modificación porque me faltan algunos cables, así que de momento os explico como lo he hecho.
Se que es posible usar el control de volumen de la mega para subir o bajar el volumen, sin embargo y tras hacer unas pruebas, se metía demasiado ruido en el circuito. No descarto hacerlo en el futuro, pero de momento lo vamos a dejar así.
Para empezar necesitaremos un cable de audio y vídeo compuesto a jack, como los que vienen con las cámaras de vídeo, con la particularidad de que ese no vale. En la pagina de la Raspberry podéis ver cual es el adecuado.
Fijaos que he conectado unos splitter. El objetivo es que la consola tenga una salida RCA posterior para conectarla a televisiones de tubo y ademas el jack de audio frontal también funcione, de forma que podamos jugar sin despertar a los niños.
Si tenéis una Raspberry Pi 1, ya sea la A, la B o la B+, tiene una salida de vídeo compuesto y una de audio por separado, de forma que para el audio necesitareis esto:
Independientemente de la que tengáis, vais a necesitar uno de estos últimos adaptadores RCA - Jack para el audio. Fijaos en la parte trasera de la pieza de conexión del jack:
Las bolas gruesas de los lados son el canal izquierdo y derecho (da igual el orden de soldadura, al usar un adaptador podemos intercambiar los cables) y el central es para soldar la malla.
Cortamos el jack del adaptador, pelamos los cables y hacemos la soldadura:
A los que soldáis para ganaros la vida: salid a tomad el aire. Siento el daño que estoy haciendo a vuestro pobre cerebro. No os merecéis ver esta porquería.
Hacemos una prueba de audio y, si funciona, echamos pegamento caliente sobre las soldaduras y para casa. En este caso sed MUY PARCOS en pegamento. La pieza tiene un tamaño casi perfecto para encajar, de forma que no podemos pasarnos con el pegote. Ademas podemos pasar los cables por debajo de la placa antes de soldar, de forma que tirando de ellos se recoja la pieza:
Bueno, este es look definitivo del interior de nuestra consola (sin el latiguillo RJ-45 conectado dado que va unido a la parte superior):
Veréis que el led también esta desconectado. Eso era porque necesitaba hacerle algo a la parte superior. Cuando pato me vendió la Mega, me paso unas fotos en las que se apreciaba que había sido rescatada de las ruinas de una antigua ciudad sitiada por ISIS. El polvo del desierto se había colado por todas y cada una de las ranuras, los tornillos estaban oxidados y los botones no iban finos. Sin embargo le dije que no pasaba nada, porque tenia Pronto (marca registrada), con el que podéis hacer que resucite:
Ahora que ya parece una consola salida de fabrica, podemos unir el led, conectar el latiguillo y cerrar la tapa. Como habéis visto, quite las protecciones de metal, de forma que si acercáis un móvil y tenéis conectado el audio por el jack frontal, tiende a acoplarse. La placa frontal se asegura a la carcasa inferior usando los agujeros de tornillo que aun le queden, por eso tenemos que cortar con cabeza. Cuando cerremos la tapa, solo seis tornillos serán la diferencia entre una Megadrive y un desastre, aseguraos que al cerrar no tapáis el agujero interno de los mismos, puesto que puede pasar desde que no cierre hasta que hayáis destrozado un cable de alimentación o de vídeo.
Este es el resultado una vez esta todo conectado:
La conexión de red sera solo para configuración remota, descarga de actualizaciones, caratulas y descripciones, así como temas y juego en red. No lo he puesto, pero obviamente podéis configurar y conectar un usb wifi y ahorraros este paso. En mi caso quiero que eventualmente la Raspi sea también un mediacenter, así que voy a necesitar FastEthernet para conectarlo al servidor de pelis.
Ojo, os prometo que si hago funcionar el juego en red, dejare levantado cada cierto tiempo un servidor para echar unas megapachangas.
2.- SOFTWAREBueno, ahora que tenemos nuestro hardware preparado, le llega el turno al software.
En mi caso me he decidido por Retropie. Es una distribución de Debian que viene con EmulationStation como frontend para los emuladores, Retroarch para casi todo y una serie de drivers y herramientas muy útiles, que permiten hacer casi todo sin tener que conectar un teclado.
La podeis encontrar en
http://blog.petrockblock.com/retropie/r ... downloads/Bajos la que corresponda a vuestra versión de la Pi. Para grabarla necesitamos conectar nuestra tarjeta de memoria al PC y usar el programa Win32DiskImager. Es sencillo de utilizar, solo elegimos la letra de unidad de la tarjeta, la imagen y le damos a grabar. Al terminar arrancara automáticamente al conectarla a la Raspi.
Ahora solo queda seguir una serie de pasos para configurarla. Para ello, podéis conectar un teclado a la Pi, salir de EmulationStation y trabajar en consola conectados al televisor por HDMI, o bien usar un programa como Putty, conectaros por SSH a la IP de vuestra Pi (hay una opción en uno de los menús de EmulationStation para ver la IP) y usar como usuario y contraseña pi/raspberry.
Por un lado u otro, llegareis a esta shell:
Lo primero que haremos es meter estos dos comandos:
sudo apt-get update
sudo apt-get upgrade
No los he enlazado con ampersans para poder revisar tranquilamente el output de cada uno. Cuando terminen (respondiendo "y" cuando lo pidan) tendremos la ultima version de Retropie. Es un paso obligatorio para el siguiente. Metemos estos dos comandos:
Nos aparecerá esta pantalla:
Escogemos la tercera opción "Setup..." y veremos la siguiente pantalla:
De aquí nos interesa la primera opción para elegir si sacamos el audio por el HDMI o el Jack de audio. Se que es posible sacarlo por ambos, pero para eso necesitaremos hacer algunos ajustes de forma manual, sin script de por medio.
Pero la opción mas importante, la que nos dará funcionalidad a los mandos de la Megadrive, es la numero "08 Gamecon & db9 drivers". Una vez escogida, comenzara la instalación:
Una vez finalizada, procedemos a cargar el driver en memoria para probarlo (no hagáis caso al ultimo comando):
Ese 6,6 del final del comando indica el tipo de mando que vais a conectar en el conector de la Megadrive para cada jugador.
6 es el mando de 6 botones.
4 es el mando de 3 botones.
2 es el mando de la MasterSystem.
De forma que si el comando que meto es "sudo modprobe --first-time db9_gpio_rpi 6,4" le estoy diciendo que en el puerto 1 meteré un mando de 6 botones y en el puerto 2 uno de 3.
Con esto reiniciais EmulationStation (menu de ES, salir y esperáis cinco segundos sin tocar ningún botón) o lo volvéis a lanzar escribiendo "emulationstation" en la consola.
Os aparecerá el menú automático de configuración de mandos. Tened en cuenta que la distribución es la del mando de PSX/SNES, de forma que cuando os pida:
Botones direccionales -> los del mando
Start -> el del mando
A -> pulsáis "C"
B -> pulsáis "B"
X -> pulsáis "Y"
Y -> pulsáis "A"
Select -> pulsáis "Mode"
Lower Left Bumper (o algo asi) -> pulsáis "X"
Lower Right Bumper (o algo asi) -> pulsáis "Z"
Y en el resto de botones mantenéis apretado un botón cualquiera para ignorarlo. Configuráis el segundo mando y salís del menú ("C" es aceptar y "B" es cancelar).
Ahora podéis usar el mando para acceder al menú "Retropie", donde podemos configurar todo y lanzar los scripts de setup sin necesidad de usar un teclado (siempre que no requiera escribir algo).
Para que el driver se cargue al inicio, vamos a la shell otra vez y escribimos:
sudo nano /etc/modules
Lo dejamos así:
Y pulsamos Ctrl+O seguido de Ctrl+X.
Ahora cada vez que reiniciemos, tendremos ya nuestro driver cargado y nuestro mando configurado. Sin embargo hay algunos emuladores que nos van a dar problemas, como los de Mame, puesto que el boton asignado a "Menu" no lo tenemos en el mando de 6 botones y no podemos configurar los controles. Para solucionarlo hay que lanzar un juego de Mame con el teclado conectado, pulsar Tab y ahí ya cambiar la configuración.
Podemos usar combinaciones de botones, de forma que os recomiendo las que vienen por defecto en los emuladores que usan Retroarch:
mode + start -> sale del emulador a emulationstation
mode + Y -> menu del emulador (para cargar shaders, cambiar botones... etc)
mode + Z -> savestate
mode + Z -> loadstate
mode + A -> soft reset
Si recuerdo alguno mas os lo voy poniendo. El caso es que esto solo afecta a Advmame, imame4all y aquellos emuladores que no usen Retroarch.
En casos como el Mupen64, el core del emulador independiente (que no viene con Retroarch) es mucho mejor que el que viene de serie. Para cambiar con que emulador ejecutamos que juego, pulsad el botón "0" de vuestro gamepad durante la carga de cualquier juego. Como no se que botón es el "0", tiendo a pulsar los seis y me aparece el menu.
Ahí podéis usar la primera opción para cambiar el core, siendo los que empiezan por "lr-" parte de Retroarch y los que no independientes. La ventaja de usar los de Retroarch es que la configuración de botones no da problemas al ser acorde a la de EmulationStation y ser la misma para todas las plataformas.
Una vez en Retroarch os recomiendo que carguéis el shader "snes", el que viene a secas. Difumina la imagen para que parezca salida de un televisor de tubo y, por todos los Dioses, es igualita a lo que yo recordaba de la Megadrive (por fin).
Ahora para terminar, vamos a meter los malditos juegos en la Raspberry. Para ello vamos a volver a salir al menú de consola y lanzar el siguiente comando:
sudo raspi-config
Entraremos a la siguiente pantalla:
Y escogemos:
1.- Expand Filesystem: para llenar todo el espacio libre disponible de nuestra SD, de forma que la partición de Retropie la ocupe por completo.
7.- Overclock: para darle un puntillo extra de potencia a nuestra Pi. Escoged "Pi2" si tenéis una Raspi2 o "Modest" si tenéis una 1. Si tenéis disipadores, podéis tiraros a la piscina por supuesto.
8.- Advanced options: aquí escogeremos "Memory Split" escribiendo "256" si tenemos una B+ o "512" si tenemos una RPi2.
Con esto hemos terminado la configuración previa. Para meter los juegos tenemos dos opciones:
1.- En la tarjeta SD
Tenéis una SD enorme o muy pocos juegos, de forma que queréis meterlos aquí. No lo recomiendo, puesto que acelera el proceso de corrupción de la tarjeta, pero es una opción.
Para meterlos es bastante sencillo, solo tenéis que acceder a "Red" en un equipo Windows conectado a la misma red que la Raspberry y veréis la ubicación remota "Retropie". Otra opción es lanzar la ventana "Ejecutar..." con tecla de Windows + R y escribir "\\Retropie".
En la carpeta "roms" es donde meteréis los juegos y en la carpeta bios las bios. La de MegaCD es "bios_CD_E.bin" (U o J para la japonesa), la de PSX "SCPH1001.bin" y la de NeoGeo "neogeo.zip". No se si me dejo alguna, pero ya iré cambiando este post según tenga problemas.
Las roms están organizadas por carpetas para cada sistema. No cambiéis el nombre. Podéis añadir subcarpetas para organizarlas por letra, fabricante, top10 o lo que queráis.
Cada vez que reiniciáis EmulationStation, este busca nuevas roms en las carpetas y muestra en pantalla los emuladores a los que podemos acceder en consonancia. Es posible que si metéis demasiados sistemas EmulationStation empiece a fallar y aparezca una pantalla blanca, o no funcionen los emuladores. Para solucionarlo podemos eliminar aquellos sistemas que no nos interesen (veréis como en el punto siguiente) o usar un tema de ES que no tenga una imagen para cada sistema. Este problema surge al precargar demasiadas imágenes de cada consola, por lo que no tiene solución fácil aparte de las que ya he dicho.
2.- Por USB
Esta es la mejor solución, especialmente si vais a meter un ISO set completo de PSX. Para ello vamos a la consola y escribimos:
sudo cp /etc/emulationstation/es_systems.cfg /etc/emulationstation/es_systems.cfg.bak
Con esto hacemos un backup por si las moscas. Escribimos:
sudo nano /etc/emulationstation/es_systems.cfg
Y aparece la siguiente pantalla:
Aquí podéis puliros los sistemas que no queráis (borrando desde <system> hasta </system>, tags incluidos) o lo que nos interesa, cambiar la ruta.
Para ello sustituid el contenido del tag <path> por el de la carpeta del usb en el que tengáis las roms de vuestro sistema. En mi ejemplo es:
/media/usb0/roms/Amiga
Sin espacios y sin terminar el directorio final con "/".
Tened en cuenta que "/media/usb0/" es la raíz de vuestro USB extraible. Puede que no sea usb0, para ello probad a hacer:
cd /media/usb0
ls
Y si veis el contenido del usb, vamos por el buen camino. En caso contrario habría que averiguarlo y es un poco mas complicado. No voy a poner como, pero si a alguno os ocurre os echare una mano y actualizare el post.
Sustituid todos los sistemas que tengáis y cuando hayáis terminado metéis un Ctrl+O y Ctrl+X por ese orden.
Es posible que os hayáis cargado algún tag y EmulationStation no funcione. Para saberlo tenéis que cargar ES, dejar que os de el fallo, volver al archivo de configuración y revisarlo. Si estáis accediendo por SSH podéis mostrar el texto completo con:
sudo cat /etc/emulationstation/es_systems.cfg
Y luego usando el ratón copiarlo en Notepad++ que tiene un revisor de XML.
3.- FINALCon esto habremos terminado de hacer todo. Hay alguna cosilla mas que podemos hacer, como instalar Kodi para tener un media-center, limelight para hacer streaming de juegos desde el PC, dxx-rebirth para jugar al port del Descent, yabause para jugar a la Saturn, reicast para hacer lo propio con la Dreamcast (en una Pi... xD) o versiones optimizadas de PCSXreARMed o Mupen64 que nos darán unos FPS extras.
Ademas podéis conectar en cualquier momento pads usb como el Buffalo, los de N64, los adaptadores MayFlash de Classic Controller o lo que tengáis por ahí. A excepción del mando de 360, que solo funciona tras instalar un driver (ultima opción del submenu "Setup", que es la tercera opción del menú "retropie_setup.sh") todos funcionan automáticamente.
El resultado final lo podéis ver en este vídeo (lo siento por la calidad del vídeo y el audio, soy un negado):
https://www.youtube.com/watch?v=DSTjcQOpoIk4.- FIXES VARIOS4.1.- Problemas de slowdowns con un disco duroUna de las primeras cosas que me han ocurrido, es que al cargar las isos de PSX desde el disco duro USB he notado bajones de frames y problemas con el audio. En principio pensé que serian problemas de configuración del emulador e incluso he configurado una versión standalone del pcsx-rearmed. Sin embargo resulta que el problema no tenia nada que ver.
Para empezar aparecía esto en pantalla:
Una especie de cuadro de colorines en la esquina superior derecha. Al principio pensé que seria el indicador de acceso a USB, ya que coincidía con el led del disco duro. Sin embargo, buscando información para quitarlo, resulta que es un indicador de voltaje insuficiente.
Si queréis resolverlo, primero tenéis que estar muy seguros de que no tenéis problemas de alimentación en la consola. Si es así, añadid la siguiente linea en /boot/config.txt
avoid_warnings=2
Esto deshabilita el avisador y ademas evita que se anule el overclocking cuando hay problemas de voltaje. El resultado es un sistema mas inestable pero que no tiene ni un solo slowdown producido por una mala configuración.
Cargad el SO desde un USB si no queréis tener corrupción de datos cada dos por tres.
4.2.- No puedo usar el mando a distancia de la tele para manejar KodiSi habéis instalado Kodi desde los paquetes experimentales (próximamente os explicare como instalarlo y lanzarlo desde el menú) os habreis dado cuenta de que el sistema CEC que permite usar el mando a distancia de la tele para manejar Kodi, no funciona.
Para solucionarlo, salid a una shell o conectaos por SSH y escribid:
sudo apt-get install libcec1 libcec2
Tras reiniciar la consola y entrar en Kodi, podreis usar vuestro mando exactamente igual que con OpenElec.
4.3 - Scripts varios de configuración para hacer funcionar el boton reset y los diversos mandos db9/etc/rc.local
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
sudo bash /home/pi/RetroPie/resetscripts/mastersystem.sh &
exit 0
mastersystem.sh
#!/bin/bash
sudo python /home/pi/RetroPie/resetscripts/mastersystem.py &
mastersystem.py
import RPi.GPIO as GPIO
import time
import os
GPIO.setmode(GPIO.BCM)
GPIO.setup(20, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(10, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(11, GPIO.IN, pull_up_down=GPIO.PUD_UP)
while True:
input_state = GPIO.input(20)
input_state2 = GPIO.input(10)
input_state3 = GPIO.input(11)
time.sleep(0.1)
if input_state == False:
GPIO.setup(14, GPIO.OUT, pull_up_down=GPIO.PUD_DOWN)
GPIO.output(14, 1)
time.sleep(0.1)
GPIO.output(14, 0)
time.sleep(0.1)
if input_state2 == False:
if input_state3 == False:
os.system("mupen=$(ps a | grep mupen | cut -d \" \" -f2 | head -1); kill -2 \"$mupen\"")
os.system("retro=$(pidof retroarch); kill -2 \"$retro\"")
Lo que hace este ultimo es valorar tres pines GPIO. Dos de ellos son los botones 1 y 2 de un joystick de 3 botones (como el mando de Master + el pausa) y el otro el tercer boton, que esta cableado al interruptor de reset de la Megadrive. Si se pulsan a la vez los tres, cierra el emulador. Si solo se pulsa el reset hace la funcion de boton de pausa (hay que configurarlo como una tecla mas en RetroPie).
Para añadir un menu para cambiar entre mandos de 3 y 6 botones de Mega y el de Master, añadid al archivo /etc/emulationstation/es_systems.cfg el siguiente sistema:
<system>
<name>padconfigmenu</name>
<fullname>Pad Config Menu</fullname>
<path>/home/pi/padconfigmenu</path>
<extension>.sh</extension>
<command>sudo bash %ROM%</command>
<theme>pc</theme>
</system>
Cread la carpeta "padconfigmenu" en el directorio home (/home/pi) e incluid los siguientes archivos:
P1_3_Buttons_P2_3_Buttons.sh
P1_3_Buttons_P2_6_Buttons.sh
P1_2_Buttons_P2_2_Buttons.sh
P1_6_Buttons_P2_2_Buttons.sh
P1_2_Buttons_P2_3_Buttons.sh
P1_6_Buttons_P2_3_Buttons.sh
P1_2_Buttons_P2_6_Buttons.sh
P1_6_Buttons_P2_6_Buttons.sh
P1_3_Buttons_P2_2_Buttons.sh
Esto es lo que incluye por ejemplo P1_2_Buttons_P2_6_Buttons.sh:
modprobe -r db9_gpio_rpi
modprobe db9_gpio_rpi map=3,6
Lo que va cambiando son los numeros del final. El primero es el pad del jugador 1 y el segundo el del jugador 2.
3 = Pad de Master System
4 = Pad de 3 botones de Megadrive (ensaimada)
6 = Pad de 6 botones de Megadrive (croissant)
5.- FINAL WORDSAquí tenéis un vídeo del invento funcionando:
http://youtu.be/wQc6yfqUQtADudas, preguntas y sugerencias las que queráis.
Gracias a
@ffantasy6 por venderme la Megadrive (y el SF2, que me entretuvo a muerte durante el proceso de creación).