Al final he decidido hacerme mi propio front-end para la máquina arcade que me estoy construyendo, basada en PiMAME / PiPLAY. La historia es muy larga, y ahora no es el momento de explicarla. El caso es que AdvMENU, que es el front-end propuesto en el proyecto PiMAME, a mi no me funciona con mi configuración de teclas y la interficie de joystick que me fabriqué en su día, basado en V-USB. El caso es que no soy la primera persona que tiene problemas con la configuración de AdvMenu. Resumiendo, una cuestión que tendría que ser fácil de resolver se convierte en un problema irresoluble. Después de desestimar AdvMENU (y después de compilar desde las fuentes la versión 2.7 y de modificar y modificar el fichero advmenu.rc) consideré la posibilidad de instalar otro front-end para emuladores Arcade que se pudiese instalar bien en la Raspberry Pi. Los requisitos eran que funcionase bajo Linux/Raspberry Pi, y que no necesitase el servidor X de la RPi (lo que desestima el popular front-end Wahcade). Después de analizar las diferentes soluciones, la noticia mala fue que llegué a la conclusión de que tenía que programar mi propio front-end… que al final es una noticia buena, pues por fin tendría un front-end simple y eficiente, con tan sólo las funcionalidades que necesito, que funciona con mi configuración de botones, y que se adapta al diseño y filtros de ROMs a mi gusto.
El resultado es un código C++ de 700 líneas, que utiliza SDL de forma nativa, igual de bien en el portátil que en la Raspberry Pi, donde no hay que arrancar el entorno gráfico. Se puede navegar de forma fácil por la clasificación de los juegos (All Favourites, Bad, Good, Very good, Prefered), y por las categorías de los juegos (Platform, Shooter, Gallery,…). El fichero de configuración es muy simple, resources/romlist.txt, con una línea para cada ROM. Se ha programado a chorro, en muy poco tiempo, seguro que hay cosas a mejorar, pero la lista TODO ha quedado realmente pequeña. Este front-end sólo está pensado para los juegos de MAME (mame4all), por tanto si alguien lo quiere utilizar encontrará a faltar cambiar a otros emuladores. De todas formas, sería fácil hacer la adaptación y disponer de un botón para el cambio de emulador.
Sin embargo, el bartop que estoy construyendo se basa en la simplicidad (un solo joystick y tan solo seis botones, que están mapeados a las teclas ‘0’,…, ‘5’). Y esta simplicidad queda reflejada en el código fuente. Esto hace que lanzar una ROM y volver al front-end sea mucho más rápido (mucho más rápido que con AdvMenu), con una mejor experiencia de usuario. También se ha conseguido una solución elegante para ir a la consola de Linux, o para apagar la Raspberry Pi de forma correcta antes de apagar el interruptor.
En resumen, un front-end para MAME muy simple pero con un diseño correcto, que no tiene ni de largo todas las opciones del proyecto AdvMENU, pero que tampoco se encuentran a faltar.
Puedes descargarte el código fuente de:
http://wiki.joanillo.org/index.php/Fitxer:Joanillo_arcade_frontend.zip
Y aquí tienes un vídeo demostrativo de cómo funciona el front-end y de sus opciones básicas: