sábado, 10 de agosto de 2013

Creando una Recreativa con Raspberry Pi - Parte 3

Advance Mame es el proyecto para emulación Arcade que mejor resultado parece dar en dispositivos ARM. Por este motivo es el que vamos a aprender a compilar para nuestra Raspberry Pi o nuestra CubieBoard. A continuación os dejo los pasos necesarios, compatibles para ambos dispositivos siempre que tengan el sistema operativo Debian Whezzy instalado. Si todavía no habéis instalado Debian Whezzy en vuestra CubieBoard, podéis seguir este tutorial.


Compilando Advance Mame


Como siempre debes hacer login en el sistema para comenzar, recuerda que el usuario si usas Debian Whezzy es pi y contraseña es raspberry.

En primer lugar debes confirmar que estas con arm. Para conocer tu kernel puedes usar el comando:
uname -a
Debería obtener una salida como esta si utilizas Raspberry:
Linux rasberry-pi 3.0.4 #2 mon oct 17 17:39:42 ict 2011 armv61 GNU/Linux
O como esta si utilizas CubieBoard:
Linux rasberry-pi 3.0.24-a10-aufs+ #33 PREEMPT Sun Feb 24 21:17:26 CET 2013 armv71 GNU/Linux
Si no tienes instaladas las X o las opciones gráficas puedes hacerlo con el siguente comando:
sudo apt-get install lxde xorg python geany
En caso de tener algún problema con los mirrors o repositorios, es posible que sea porque han cambiado, puedes probar con el siguiente comando y luego volver a intentar ejecutar el anterior:
sudo apt-get update
Para poder compilar hacen falta algunas herramientas pero para no instalarlas una a una, lo más comod es instalar el conjunto de herramientas build-essential que aglutina las más importantes. Además habrá que instalar, los paquetes de desarrollo para GTK, para Gnome y para sdl. Para instalar todo lo necesario puedes utilizar el siguiente comando, pero ten en cuenta que puede tardar una o dos horas:
sudo apt-get install build-essential libgtk2.0-dev libgnome2-dev libsdl1.2-dev
sudo apt-get install libxv-dev libxv1
Descarga el código fuente de advmame, yo voy a probar con la versión 1.2: http://sourceforge.net/projects/advancemame/files/advancemame/1.2/advancemame-1.2.tar.gz. En caso de que no sea esa ya la última versión, podéis encontrar el nuevo enlace en la página del proyecto advance mame.
Para descargarlo puedes utilizar el programa wget como sigue:
wget http://sourceforge.net/projects/advancemame/files/advancemame/1.2/advancemame-1.2.tar.gz
Una vez descargado hay que descoprimir el archivo:
extract the archive.
tar -xvzf advancemame-1.2.tar.gz
cd advancemame-1.2/
Ahora hay que instalar la versión de compilador 4.7 y configurarlo como compilador por defecto.
sudo apt-get install gcc-4.7
sudo apt-get install g++-4.7
A continuación hay que configurarlos como compiladores por defecto, para eso hay que cambiar los enlaces simbólicos que hay en la carpeta /usr/bin. Utilizando el comando grep podemos filtrar el contenido de la carpeta /usr/bin para comprobar si efectivamente existen los enlaces al compilador que queremos establecer como nuevo compilador por defecto, en este caso es la versión 4.7:
sudo ls -la /usr/bin | grep gcc-4.
sudo ls -la /usr/bin | grep g++-4.
Ahora eliminamos los enlaces simbólicos actuales si existen:
sudo rm /usr/bin/gcc
sudo rm /usr/bin/g++
Creamos los nuevos enlaces al compilador que queremos utilizar:
sudo ln -s /usr/bin/gcc-4.7 /usr/bin/gcc
sudo ln -s /usr/bin/g++-4.7 /usr/bin/g++
Por último queda configurar y compilar, esto puede tardar entre 2 y 3 horas:
sudo ./configure
sudo make
sudo make install


Configurando un servidor FTP


Ahora para probar nuestras ROMs instalamos un servidor FTP, en concreto para debian Whezzy utilizamos vsftpd y a través de un cliente FTP como por ejemplo Fillezila podemos cargar las roms en nuestra Cubieboard/Raspberry Pi.
sudo apt-get install vsftpd
Una vez que vsftpd está instalado, hay que configurarlo, para ello editamos su fichero de configuración de la siguiente forma:
sudo nano /etc/vsftpd.conf
Ahora hay que descomentar las lineas correspondientes a las siguientes eliminando el simbolo # almohadilla, o bien sustituyendo los valores YES por No o viceversa hasta dejarlo de la siguiente forma:
Anonymous_enable=NO
Write_enable=YES
Local_enable=YES
Ascii_upload_enable=YES
Ascii_download_enable=YES
Por último hay que reiniciar la cubieboard o raspberry pi, y ya tendremos la posibilidad de conectar a ella a través del servidor FTP utilizando su IP y el usuario pi con contraseña raspberry. Cargamos la ROM de prueba en la carpeta /home/pi/.advance/rom/ utilizando el cliente FileZilla. Para conocer la IP de la cubieboardo raspberry podemos utilizar el comando ipconfig .


Configurando los modos de vídeo


Para poder probar las ROMs en primer lugar hay que configurar la señal de reloj para generación de vídeo dependiendo del tipo de pantalla utilizado, en mi caso para una pantalla LCD he utilizado los siguientes valores:
device_video_clock 10 - 50 / 31.5 / 55 - 130 
En último lugar hay que configurar las opciones de vídeo para mame utilizando el programa advv. Para lanzarlo hay que escribir su nombre en la terminal:
advv
Una vez en la pantalla de configuración aparecerá toda una lista de configuraciones posible. En la esquina inferior izquierda aparece un cuadro cuyo valor será OUT OF RANGE si la configuración no es valida y PROGRAMABLE si la configuración se puede utilizar para nuestro emulador. Hay que ir desplazándose hasta encontrar una resolución con el valor PROGRAMABLE. En la parte superior de la pantalla puede verse que apareen los diferentes tipos de color, hay que elegir uno compatible con nuestro dispositivo utilizando las flechas derecha e izquierda, en mi caso he elegido brg32. Por último pulsando el botón ENTER se accede a la configuración del modo de vídeo. En caso de que de un error significa que la configuración no es valida y hay que seguir buscando hasta que aparezca una imagen de una rejilla.


Una vez en la pantalla de configuración habrá que centrar la rejilla utilizando las flechas para alinearla a la esquina superior izquierda y luego utilizando los botones U para extender por la derecha y SHIFT+U para reducir por la derecha. De igual modo con la tecla A se extenderá la pantalla hacia abajo y con SHIFT+A se reduce hasta conseguir que quede centrada. Una vez conseguido se pulsa la tecla ENTER y se volverá a la lista anterior guardando la configuración y se pulsa la tecla SPACE para habilitar dicha selección ya que las únicas que MAME podrá emplear serán aquellas que hayamos habilitado y por tanto si no las habilitamos no podremos iniciar la ejecución de ninguna ROM. Es necesario repetir este proceso para varias resoluciones dado que cada juego tiene una resolución y con esto quedarán ajustadas todas las resoluciones más utilizadas. Por último pulsamos la tecla F2 para guardar los cambios y ESC para salir. También es posible crear una configuración propia con la configuración que deseemos utilizando el botón F6 y siguiendo los pasos.



Hecho esto ya podemos volver a la consola y probar la ROM utilizando el comando advmame y un espacio seguido del nombre de la ROM. Hay que tener en cuenta que las imagen aparecerá mal porque todavía queda configurar los modos de vídeo dentro del emulador.


En primer lugar pulsamos de forma alternadas izquierda y derecha o bien pulsamos las teclas O y K sucesivamente para pasar la advertencia inicial. A continuación pulsamos el botón TAB y aparecerá el menú de configuración de MAME.



Ahora hay que seleccionar la opción VIDEO, pulsar ENTER y modificar la opción de color hasta que la imagen se aclare.


Ahora ya sólo queda realizar los ajustes al gusto y disfrutar de tus viejos juegos en tu CubieBoard/Rasbperry Pi. A la hora de obtener las ROMs os recuerdo que Advance Mame está basado en la versión 0.106 de MAME y por tanto es compatible con las ROMs creadas para dicha versión.