Página 1 de 1

Varios MAMEs para Raspberry Pi (Zup)

Publicado: 14 Jul 2012, 06:33
por TITAN
(ZUP)

Aquí dejo 3 opciones para poner a funcionar MAME en el Raspberry Pi, por si queréis hacer pruebas. Atentos a los diferentes sets de roms, en especial a las de Neo Geo...

(SDL)(X)MAME 0.106
En esta página explican cómo se deben modificar los fuentes del MAME 0.106 para hacerlos compilar y funcionar en la Raspberry Pi. El autor propone una descarga para el fuente de MAME, pero funciona igual de bien si se usa el archivo fuente de Debian. NOTA: No olvidéis modificar a vuestro antojo el archivo Makefile. Por defecto compila un MAME para X Windows, mi recomendación es que hagáis que compile para SDL.

AdvanceMAME 0.106:
Parecido a la anterior, incluso hay archivos binarios publicados. En esencia es un procedimiento muy parecido, pero supuestamente debería ir mejor con monitores de tubo (no estoy seguro, pero me da a mi que HDMI no va a poder sacar imágen RGB analógica en la vida).

MAME4ALL: Basado en MAME 0.37b5, va más rápido en consolas poco potentes. El proyecto original funcionaba en Linux, Windows, Dreamcast, PSP y GP2X... ahora tiene un target más.

Lo primero de todo es conseguirse el código fuente de la página de Chui, y el parche que he creado. Copiamos los archivos a /usr/src.

Descomprimimos el fuente y le aplicamos el parche (como administrador):

Código: Seleccionar todo

cd /usr/src
tar -jxvf mame4all-beta2-src.tar.bz2
unzip mame4all.zip
cd mame4all
patch -p1 < ../mame4all.diff


Después editamos el fichero Makefile.pi. Aquí hay dos líneas importantes:
- Si quitamos el comentario a la que dice HARDFLOAT = 1, mame4all compilará con soporte hard-float. Eso significa que funcionará sólo en Raspbian y alguna otra distribución que lo soporte. Si compilas para Debian, Fedora o alguna otra, no toques esta línea.
- Si quitamos el comentario a la que dice RASPBERRY_DRZ80 =1, mame4all usará el core DRZ80. Este core es más rápido, pero algunos juegos no funcionan con él. Mi recomendación es compilar una versión sin DRZ80, limpiar y después compilar otra con este core. De esta manera tendrás dos ejecutables, y si un juego casca en uno siempre puedes usar el otro.

Lo último ya es darle una make -f Makefile.pi y ver lo que pasa. Si algo va mal, o quieres cambiar de opciones de compilación, ejecuta estas líneas:

Código: Seleccionar todo

make -f Makefile.pi clean
make -f Makefile.pi clean-all


Como veis, sólo he estado hablando de compilar fuentes... ¿por qué? [d]Porque yo lo valgo[/d] Porque yo estoy usando en mi Raspberry Pi la distribución Raspbian. Esta distribución es de las pocas que usan librerías de coma flotante por hardware, lo que hace que el software compilado en ella no ejecute en otras distribuciones (p.ej.: Debian) pero que en aplicaciones de cálculo intensivo (Quake 3) se consiga mayor velocidad.

Si alguien compila desde el código fuente, los ejecutables generados funcionarán bien en su distribución y no tendrá más problemas; si se distribuyen binarios puede haber algún tema.

Re: Varios MAMEs para Raspberry Pi (Zup)

Publicado: 17 Jul 2012, 19:48
por zup
Tan solo decir que he puesto el procedimiento del Mame4all (no sé si mejor o peor explicado) en ese desastre que a veces llamo blog. Los enlaces al parche del post anterior son válidos (por ahora), y cuando tenga un rato intentaré subir binarios para Raspbian (si alguien puede, que los compile también para Debian, aunque creo que hay un pequeño y evidente error en el parche).

Otro temita es que no está del todo terminado (y para esto creo que puedo necesitar ayuda), ya que falla la redimensión por dos partes:
- Este mame4all utiliza resolución de 320x240. SDL elige (correctamente) la siguiente resolución disponible (640x480), pero no redimensiona la ventana de juego.
- Algunos juegos (CPS1) no caben en la ventana de juego, y tampoco redimensionan para caber (se salen por los bordes). Curiosamente en el mame4all para Nintendo DS sí que redimensionan bien, pero no tengo los fuentes.

Al margen de estos dos detalles, para tener el auténtico MQTC (MAME-que-te-cagas) para Raspberry Pi, habría que robar el soporte de OpenGLES que tiene el iMame4all... por ahí se dice que acelera "algo" las cosas. No espero una ganancia de rendimiento brutal, pero sí lo suficiente para que algunos juegos dejen de hacer "saltitos".

De hecho, creo que lo mejor hubiera sido empezar con imame4all, pero es que con mis habilidades no tengo ni repajolera idea de por dónde agarrarlo.

-- 21 Jul 2012, 19:27 --

Adjunto dos cosillas para los interesados...

- Parche para aplicar al código fuente del mame4all de Chui. Espero no haber metido mucho la zarpa al hacerlo.
- Binarios fresquitos para aquellos que usen Raspbian (por ahora no puedo compilar para Debian).

Espero que os sirva de algo.