En esta ocasión, voy hablar, sobre como compilar la ultima o versión desarrollo del MAME, ya que la que está en la pagina oficial, tiene inconvenientes en tiempo de compilación.
Lo bueno de compilar los programas para tu equipo, es que sacas más provecho del mismo, en especial mención, del procesador central, ya que los emuladores generalmente, hacen uso intensivo de este. También, la instalación de un frontend para interaccionar mucho mejor con el programa.
Esta guía o tutorial, esta pensada para las personas que no se conforman como viene MAME de fábrica. Así que los beneficios son palpable cuando haces la prueba de lugar.
Para empezar con el trabajo de compilación, clonamos las fuentes del programa, haciendo lo siguiente:
build-essential gconf2 libgconf2-dev libgtk2.0-dev libsdl1.2-dev libsdl-ttf2.0-dev
Los usuarios de Archlinux, les pido disculpa, pero ya tenia las librerías desde hace tiempo instalada, solo fíjense en las de ahí y busquen su homologa con pacman.
git clone git://git.redump.net/mame
Cuando termine del proceso de clonación, ir al directorio creado, en este caso, el directorio creado por defecto es «mame».
Ya dentro de este directorio, tendremos una serie de carpetas y archivos. De aquí, solo nos interesa el makefile. Lo abren con el editor de texto de su preferencia y buscamos algo parecido a esto:
#ARCHOPTS = -march=native # optimize for local machine (auto detect)
Y descomentamos esa linea, que nos quede como se ve en la imagen siguiente.
Guardamos los cambios, y ahí mismo iniciamos la compilación con el comando make:
make
Cuando el proceso de compilación de por terminado su trabajo, aparecerá un archivo de nombre dependiendo de la arquitectura del sistema como mame si estas en 32bits o mame64 para 64bits.
En mi caso, estoy en sistema de 64bits.
Bien, por hasta aquí vamos bien, ya podremos ejecutar juegos con el programa, pero es algo engorroso para un principiante. Así que vamos a complementarlo con el programa qmc2.
Ahí, en la misma ventana ejecutamos a yaourt para instalar el frontend.
Para usuarios de Archlinux
yaourt -S qmc2
Para usuarios de Ubuntu-Debian
sudo add-apt-repository ppa:mmbossoni-gmail/emu sudo apt-get update sudo apt-get install qmc2-sdlmame qmc2-sdlmess qmc2-sdlume qmc2-arcade qchdman
Copien el archivo ejecutable del mame a esta ruta como: /usr/games/mame
Luego, abren el programa qmc2–sdlmame y les aparecerá esta ventana:
Como ven, el programa no pide mucho.
Lo mas importante en esta ventana, son la ruta del archivo ejecutable, el directorio de trabajo y la ruta de los roms.
Y aquí mame en acción. Pues ahí, estoy ya probando un juego, uno de mis favoritos de maquinitas, tantas monedas que me tomo en su tiempo, ahora soy yo quien le saco el jugo aquí. xD
Nuestro MAME en ejecución
Saludos y a jugar se ha dicho
Este es mi primer articulo para este blog, el cual vengo siguiendo desde hace mucho tiempo con el sobrenombre de Mauricio, por sus interesantes post y que siempre tiene algo nuevo que mostrar.
¿dónde consigues los roms?
En Google, amigo 🙂
Artículo muy bueno para recordar que antes de Steam ya había videojuegos en GNU/Linux. No son nuevos ni nativos, pero pueden proporcionar miles de horas de entretenimiento y diversión.
Y me gustaría nombrar UME (http://mamedev.emulab.it/haze/), la iniciativa que mezcla Mame y Mess (si Mame se ocupa de recreativas, Mess de videoconsolas), creando un auténtico emulador multisistema. Solo lo he visto en los repositorios de emuladores de OpenSUSE y en el comunitario de ArchLinux, pero para compilarlo en Debian los pasos a seguir son muy similares a los que expone NauTiluS para Debian/ Ubuntu.
Si editas el archivo makefile, y te vas a la linea 27, te encontraras con una variable importante. Esta variable, es la que especifica el objetivo a construir, sean estos: MAME, UME, MESS, etc.
En tu caso, cambiarla por UME, obtendrás este ejecutable.
Saludos
Hola
al hacer make me sale lo siguiente:
src/osd/sdl/sdl.mak:519: *** Qt’s Meta Object Compiler (moc) wasn’t found!. Alto.
Uso Kubuntu 12.04 32 bits
Gracias
Me parece que te está avisando que te hace falta instalar moc; investigando un poco encontré que lo que lo que posiblemente te hace falta es automoc pero no estoy seguro. Intenta buscando en Sinaptic o con Aptitude, no me acuerdo cual de los dos usa Kubuntu.
Gracias, era eso instale moc y automoc y esta compilando
es conveniente tener instalada la ultima versión de mame?? pregunto xq al cargar el repo de deb-multimedia, me instalo un mame mas moderno que el de debian testing, pero… muchos de los juegos dejaron de funcionar. asi que mantuve la version de debian y chau problemas.
no estoy seguro pero creo que muchos de los juegos estan compilados para una determinada versión de mame
finalmente compilo
pero al querer instalar el qmc2 me sale:
sudo apt-get install qmc2-sdlmame qmc2-sdlmess qmc2-sdlume qmc2-arcade qchdman
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la información de estado… Hecho
No se pudieron instalar algunos paquetes. Esto puede significar que
usted pidió una situación imposible o, si está usando la distribución
inestable, que algunos paquetes necesarios no han sido creados o han
sido movidos fuera de Incoming.
La siguiente información puede ayudar a resolver la situación:
Los siguientes paquetes tienen dependencias incumplidas:
qmc2-sdlmess : Depende: sdlmess (>= 0.144) pero no es instalable o
mess (>= 0.144) pero no es instalable
qmc2-sdlume : Depende: sdlume (>= 0.144) pero no es instalable o
ume (>= 0.144) pero no es instalable
E: No se pudieron corregir los problemas, usted ha retenido paquetes rotos.
Hola y gracias por comentar.
Lo que tienes que hacer en ese caso, es engañar al sistema eh instalar esos paquetes que de piden, sdlmame y sdlmess.
Con eso se resuelve tu problema, luego sustituye o pasa el path donde esta el mame que haz compilado.
Saludos
pruebo de instalarlos con apt-get install pero me sale lo siguiente:
sudo apt-get install sdlmess
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la información de estado… Hecho
El paquete sdlmess no está disponible, pero algún otro paquete hace referencia
a él. Esto puede significar que el paquete falta, está obsoleto o sólo se
encuentra disponible desde alguna otra fuente
E: El paquete «sdlmess» no tiene un candidato para la instalación
y lo mismo para el sdlume
Intenta lo siguiente.
sudo touch sdlmess /usr/games/
Para engañar al instalador.
Saludos
Hola
Probe, pero no pasa nada, me sigue sin dejar instalar…
🙁
instalar xmame-sdl sirve igual de bien o mejor !! y ruteas a /usr/games/mame -a pesar que el qmc2 pida sdl….-.
Tarde esta respuesta pero quizas le sirva a otro que anda por ahi buscando lo mismo. A mi me tomo dos dias recaudar toda la info para para hacer funcionar bien el mame en su version actual: 0.153.
si queres roms para esta version la mejor pagina aunque algo lenta es planetemu.net. saludos.
Todavia no encuentro como filtrar roms en qmc2 por funcionamiento, no encuentro la opcion y me tira la lista oficial larguisima !
Lo que me gusta es que qmc2 es una aplicación Qt :D, pero una lastima que estoy usando kubuntu 14.04 por que el PPA de qmc2 esta solo disponible hasta saucy.
Hola, puedes intentar compilar qmc2 bajando las fuentes desde su pagina.
http://qmc2.arcadehits.net/wordpress/download/
Saludos.
por que instalar estos ( qmc2-sdlmess qmc2-sdlume qmc2-arcade qchdman) si solo instalamos mame?
sudo apt-get install qmc2-sdlmame qmc2-sdlmess qmc2-sdlume qmc2-arcade qchdman
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la información de estado… Hecho
No se pudieron instalar algunos paquetes. Esto puede significar que
usted pidió una situación imposible o, si está usando la distribución
inestable, que algunos paquetes necesarios no han sido creados o han
sido movidos fuera de Incoming.
La siguiente información puede ayudar a resolver la situación:
Los siguientes paquetes tienen dependencias incumplidas:
qmc2-sdlmess : Depende: sdlmess (>= 0.144) pero no es instalable o
mess (>= 0.144) pero no es instalable
qmc2-sdlume : Depende: sdlume (>= 0.144) pero no es instalable o
ume (>= 0.144) pero no es instalable
E: No se pudieron corregir los problemas, usted ha retenido paquetes rotos.
a los que le pase esto solo instalen qmc2-sdlmame
quedaria asi :
sudo add-apt-repository ppa:mmbossoni-gmail/emu
sudo apt-get update
sudo apt-get install qmc2-sdlmame
ola como se descargan?
Al ejecutar el make da el siguiente error:
src/osd/sdl/sdl.mak:456: *** Ubuntu 12.10 detected. Please install the gcc-4.6 and g++-4.6 packages. Stop.
Al intentar instalar gcc o g++ da el siguiente error:
apt-get install gcc-4.6 –fix-missing
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la información de estado… Hecho
Se instalarán los siguientes paquetes extras:
cpp-4.6 gcc-4.6-base
Paquetes sugeridos:
gcc-4.6-locales gcc-4.6-multilib libmudflap0-4.6-dev gcc-4.6-doc libgcc1-dbg libgomp1-dbg libquadmath0-dbg libmudflap0-dbg binutils-gold
Se instalarán los siguientes paquetes NUEVOS:
cpp-4.6 gcc-4.6 gcc-4.6-base
0 actualizados, 3 se instalarán, 0 para eliminar y 19 no actualizados.
Se necesita descargar 12,5 MB de archivos.
Se utilizarán 28,1 MB de espacio de disco adicional después de esta operación.
¿Quiere continuar [S/n]? s
AVISO: ¡No se han podido autenticar los siguientes paquetes!
gcc-4.6-base cpp-4.6 gcc-4.6
¿Instalar estos paquetes sin verificación [s/N]? s
Err http://archive.ubuntu.com/ubuntu/ quantal/main gcc-4.6-base amd64 4.6.3-10ubuntu1
404 Not Found [IP: 91.189.88.153 80]
Err http://archive.ubuntu.com/ubuntu/ quantal/main cpp-4.6 amd64 4.6.3-10ubuntu1
404 Not Found [IP: 91.189.88.153 80]
Err http://archive.ubuntu.com/ubuntu/ quantal/main gcc-4.6 amd64 4.6.3-10ubuntu1
404 Not Found [IP: 91.189.88.153 80]
Imposible obtener http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-4.6/gcc-4.6-base_4.6.3-10ubuntu1_amd64.deb 404 Not Found [IP: 91.189.88.153 80]
Imposible obtener http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-4.6/cpp-4.6_4.6.3-10ubuntu1_amd64.deb 404 Not Found [IP: 91.189.88.153 80]
Imposible obtener http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-4.6/gcc-4.6_4.6.3-10ubuntu1_amd64.deb 404 Not Found [IP: 91.189.88.153 80]
No se pudieron corregir los paquetes que faltan.
E: Abortando la instalación.
Tengo Linux Mint Maya
pasate por acá http://foro.desdelinux.net/
Hola y disculpa la tardanza de la contesta.
Ese linux Mint Maya es muy viejo amigo, tendrías que instalar el gcc manualmente, para poder compilar este programa.
Aunque creo que hay otro método, pero tienes que buscar los paquetes manualmente en los repositorios historicos de ubuntu.
Creo que el Mint Maya, estaba basado en precise
http://packages.ubuntu.com/precise/devel/
Solo, tienes que descargar los paquetes gcc 4.6 como te pide el programa.
hey, como puedo eliminar todos los archivos?
Suponiendo que te refieres a los archivos de compilación, pues ejecutando esta orden en la terminal, «make clean». Si es para eliminar todo y carpeta, sube un directorio arriba y con rm -vrf «nombre de la carpeta».
Hola! Yo tengo Manjaro (archlinux) y no me compila
Me tira esto
/usr/bin/ld: no se puede encontrar -lSDL_ttf
collect2: error: ld devolvió el estado de salida 1
src/build/build.mak:63: recipe for target ‘obj/sdl/build/file2str’ failed
make: *** [obj/sdl/build/file2str] Error 1
ademas tampoco se cuales son las librerías equivalentes de las que mencionas en el principio, salvo build-essential, si me podés dar una mano, sería bien agradecido!
Hola. Efectivamente te hace falta la librería SDL_ttf. Para instalarlo en archlinux, simplemente pon en la consola «pacman -S sdl_ttf».
También, debes tener instalado la librería «pacman -S sdl».
Sobre build-essential, lo mas probable es que ya lo tengas instalado. Esto lo que instala en ubuntu y derivado son algunas utilidades básicas de compilación.
Cualquier otro inconveniente no dudes en preguntar.
Hola! Me anduvo eso! Gracias! ahora tuve otro error, me tira esto:
Compiling src/mame/video/model1.c…
src/mame/video/model1.c: En la función ‘void draw_quads(model1_state*, bitmap_rgb32&, const rectangle&)’:
src/mame/video/model1.c:307:17: error: el subíndice de la matriz está por arriba de los límites de la matriz [-Werror=array-bounds]
while(p[ps2+1].y == cury)
^
src/mame/video/model1.c:319:17: error: el subíndice de la matriz está por debajo de los límites de la matriz [-Werror=array-bounds]
while(p[ps1-1].y == cury)
^
src/mame/video/model1.c:319:17: error: el subíndice de la matriz está por debajo de los límites de la matriz [-Werror=array-bounds]
src/mame/video/model1.c:329:17: error: el subíndice de la matriz está por arriba de los límites de la matriz [-Werror=array-bounds]
while(p[ps2+1].y == cury)
^
src/mame/video/model1.c:329:17: error: el subíndice de la matriz está por arriba de los límites de la matriz [-Werror=array-bounds]
src/mame/video/model1.c:305:17: error: el subíndice de la matriz está por debajo de los límites de la matriz [-Werror=array-bounds]
while(p[ps1-1].y == cury)
^
cc1plus: todos los avisos se tratan como errores
makefile:922: recipe for target ‘obj/sdl/mame/video/model1.o’ failed
make: *** [obj/sdl/mame/video/model1.o] Error 1
Que podra ser?
Gracias!
Todo parece indicar un error del compilador.
Necesitas una versión mas adelantada del compilador.
Hola, yo compilé la version .0151 de MAME y aparte de los paquetes que tu mencionas, es necesario el libqt4-dev. Saludos 🙂