El proyecto consiste en montar una maquina recreativa con software libre.
Lo mas complicado fue encontrar el frontend necesario para presentar los juegos. Es muy importante el hecho de no tener que tener un teclado y raton conectado todo el tiempo y que la interaccion debe
El emulador por el que nos decantamos fue el que ofrece el AdvanceProject . Anteriormente habiamos probado otros frontends (LemonLancher, gxMame) pero el Advance nos parecio el mejor por la simpleza, a la vez que permite una configuracion potente. Tambien lo positivo es que permite varios emuladores desde el mismo frontend, por lo que aparte de MAME y NEOGEO se le puede poner Super Nintendo y Sega Mega Drive.
Curie
El ordenador se llama Madame Curie.

- Es una PIII Coppermine a 666 Mhz (la Bestia :D )
- 512 de RAM
- El proyecto que utilizamos: Advance Project
- Juegos: mas de 800, de momento solo de MAME. Pueden agregarse de otros emus (ej zsnes)
- Los joysticks son Digi-USB Joystick TopWay TP-U670, compatibles con GNU/Linux
La estructura
El proyecto comenzo pensando en el fabuloso juego Wonder Boy. La estructura exterior (el mueble donde va alojado el pc) fue reciclado de dos puertas, recortado y pintado rusticamente debido al nivel de droga que aturdia al genio escultor de la obra. El proyecto comenzo haciendo el mueble en Diciembre 2007 y montandolo todo lo que se fue juntando en Julio 2008. Los diferentes componentes que tiene son: la CPU, 2 joysticks, pantalla plana, altavoces y la estructura de madera.

HowTo
El software utilizado es el AdvanceProject, en particular el AdvMame y el AdvMenu. El primero consiste en un emulador y el segundo es el frontend donde se muestran todos los juegos disponibles. Imagenes aqui.
Se instalo sobre un Xubuntu 8.04 utilizando XFCE 4.4.2. Para instalar se usaron los paquetes .deb de este foro. Tambien se siguieron las instrucciones de este tutorial.
Instalamos primero las dependencias:
sudo apt-get install libfreetype6 libexpat1 libsdl1.2debian-alsa wget
Luego descargamos los fichero .deb
wget http://david.dantoine.org/ficheros/ages/advancemame_0.106.0-586-6_i386.deb
wget http://david.dantoine.org/ficheros/ages/advancemenu_2.4.13-586-5_i386.deb
wget http://david.dantoine.org/ficheros/ages/advance-common_0.106.0-2_i386.deb
Y ponemos en una terminal:
sudo dpkg -i advancemame_0.106.0-586-6_i386.deb
sudo dpkg -i advancemenu_2.4.13-586-5_i386.deb
sudo dpkg -i advance-common_0.106.0-2_i386.deb
Una vez instalado ponemos
advmame
advmenu
Para que cree los ficheros de configuracion necesarios. Si nos equivocamos en algo de la configuracion podemos volver a generarlos simplemente eliminando los ficheros
rm /home/user/.advance/advmame.rc
rm /home/user/.advance/advmenu.rc
Tambien se pueden regenerar poniendo
advmame --default
advmenu --default

Los cambios que se realizaron en los ficheros de configuracion .advance/advmame.rc y .advance/advmenu son:
device_joystick auto
device_video_output fullscreen
input_map[coin1] joystick_button[0,8]
input_map[coin2] joystick_button[1,8]
input_map[start1] joystick_button[0,9]
input_map[start2] joystick_button[1,9]
input_map[misc_quiet] joystick_button[0,7]
video_interlace no
misc_quiet yes
Probamos que funcione el joystick aplicacion advj. Esto sirve para comprobar que cuando presionamos las teclas del joystick el ordenador recibe la señal.
advj
Copiamos las roms de los juegos (descargados de aqui) en la carpeta
.advance/roms
Copiamos las snapshots (capturas de pantallas) de los juegos (descargados de [http://www.mininova.org/tor/1223419 aqui]) en la carpeta
.advance/snaps
TIPS
COINS
input_map[coin1] joystick_button[x,x]
START
input_map[start1] joystick_button[x,x]
EXIT
input_map[ui_cancel] joystick_button[x,x]
NOCERRARSE
misc_exit none

RESOLUCION
device_video_clock 10 - 150 / 30.5 - 60 / 55 - 130
echo video_restore no >> advmenu.rc
video_size 800
video_size 320
video_size 640
MUSICA
sound_background_loop_dir "mp3"
APAGAR
ui_command "Shutdown" halt
ui_command "Reset" reboot
RESOLUCION
device_video_output overlay
AUTOCOINSTART
simulate_event(coin1, 100); \
delay(300); \
simulate_event(start1, 100);
AUTOSTART
script_start2 wait(!event()); simulate_event(coin2, 100); delay(300); simulate_event(start2, 100);


