Ir al contenido principal

Compilando MAME desde UBUNTU




Hace unas semanas un amigo me retó a compilar la última versión de MAME en Linux.


Y la verdad es que lo vi como un reto bastante fácil (pensé, me bajo el código, instalo dependencias y ya está). Pues no fue tan fácil, me costó muchísimo encontrar todas las dependencias necesarias. 


¿Por qué hago esto? MAME es un emulador de máquinas recreativas (ahora también incluye el proyecto MESS...) que se va actualizando continuamente. En los repositorios no siempre está la última versión, y si quieres esta última tienes que compilarlo tú.


Mientras escribo este artículo la última versión de MAME es 0.170, después de buscar no he encontrado ninguna guía paso a paso, y ahora que he conseguido compilarlo he decidido que la voy a hacer yo.


Mi sistema operativo es un Ubuntu 14 LTS.


Éstos son lo pasos que hay que seguir:

  1. Creación de entorno: creo el directorio “mame” en mi “home”.

  1. Conseguir el código fuente:

    1. En http://mamedev.org/ es donde están tanto los ejecutables de Windows como los fuentes.
    2. En http://mamedev.org/release.html el último enlace son los fuentes. Actualmente éste es su enlace: http://mamedev.org/downloader.php?file=mame0170/mame0170s.zip
    3. Nos lo descargamos (81 MB).
    4. Descomprimimos en home/mame:
   
        Esto nos crea un “mame.zip”. Voy a crear el subdirectorio “0170”, moverlo y descomprimirlo dentro.



  1. Dependencias
   
Llega el momento de utilizar el terminal, accedemos al directorio donde tenemos todo descomprimido. En mi caso:

cd mame/0170/mame/

    Ahora vamos a instalar todas las dependencias que necesitamos para compilar:

                      sudo apt-get install build-essential libgtk2.0-dev libgnome2-dev libsdl1.2-dev libqt4-dev libqt4-gui libsdl-ttf2.0-dev libsdl2-ttf-dev libsdl2-dev qt5-default

Saber que las dos últimas son necesarias me llevó bastante tiempo.

  1. Actualizamos compiladores
   
Si lanzamos la compilación con “make”, tendremos un error porque el compilador GCC que viene de serie es el 4.8, y MAME requiere al menos la versión 4.9:

“GCC version 4.9 or later needed”

Además de GCC también necesitamos el compilador G++. Ahora mismo los dos están en la versión 4.8.

Con estas líneas instalaremos la versión 4.9 de los dos compiladores:

     sudo add-apt-repository ppa:ubuntu-toolchain-r/test
                sudo apt-get update
                sudo apt-get install gcc-4.9 g++-4.9

Una vez instalado si escribimos “gcc -v” nos aparece:

gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1)

y si escribimos “g++ -v” nos aparece:

El programa «g++» no está instalado. Puede instalarlo escribiendo:
sudo apt-get install g++

Aparentemente tenemos problemas, parece que no se han actualizado.

Pero es fácil de solucionar, vamos a crear prioridades de ejecución en los enlaces simbólicos de nuestros compiladores.

Escribimos esto:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 10
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20
Ahora verificamos con:

         gcc -v
         g++ -v

Y vemos que ambos están en 4.9.3.       

Si queremos volver a cambiar de versión podemos usar los comandos:

“sudo update-alternatives --config gcc”
“sudo update-alternatives --config g++”
  
   
  1. Compilando
   
    Y ahora sí, podemos lanzar el comando “make” para empiece la compilación.

    Ahora sólo nos queda esperar. Si tenéis varios procesadores podéis usar el comando “make -j N” donde N es el número de procesadores. Con lo que ahorraréis bastante tiempo.

    Yo lo hice en un portátil antiguo de dos núcleos y tardé casi tres horas.
   
   



Al final tendremos en el directorio 0170 el ejecutable "mame" listo.

Si tenéis alguna duda no dudéis en preguntar.

Entradas populares de este blog

Spring Boot: Página inicial con Bootstrap

  Este es el segundo artículo de la serie sobre Spring Boot que comenzamos hace dos semanas, si quieres ver el primero puedes acceder pulsando aquí . En el primer artículo vimos cómo descargar nuestro proyecto configurado para nuestros intereses y listo para ser importado en nuestro IDE (nosotros usaremos Eclipse ). Lo primero que vamos a hacer es importar el proyecto: File -> Import Existing Maven Projects Seleccionamos el fichero pom.xml en la carpeta donde lo hemos descomprimido y esperamos unos segundos Cuando acabe la importación, esta es la estructura que nos aparecerá: Con Spring Boot no necesitamos configurar el servidor, ya se encarga él de facilitarnos la vida. Lo único que tenemos que hacer es arrancar la clase BootApplication.java , que se encargará de arrancar Tomcat y dejar nuestra aplicación funcionando en el puerto 8080.  Y si todo fuera bien, podríamos acceder a través de la URL:  http://localhost:8080/ Pero ahora mismo tenemos un error de conexión c...

Redirección de puertos en Virtual Box

Continuando con mis anteriores "posts", vamos a terminar nuestro entorno de pruebas redirigiendo los puertos que nos interesan de la máquina virtual a nuestro PC. Con Virtual Box podemos configurar la red de diversas formas, una de ellas es redireccionar los puertos de la máquina virtual a la nuestra. Es bastante fácil y rápido de configurar, y lo que hace es que tengamos unos puertos destinados al entorno de desarrollo y otros para el entorno de pruebas. Ejemplo de uso:  - podemos usar el puerto 8080 para desarrollar en eclipse en nuestro entorno de desarrollo con Tomcat. - usaremos el puerto 80 para el Tomcat del entorno de pruebas Más adelante veremos cómo configurar las redes de virtual box para que sean máquinas independientes conectadas a nuestra red y más opciones. Vamos a hacer la redirección del puerto 22 para poder acceder a nuestra máquina virtual a través de uno de los clientes ssh más extendidos (y con nombre controvertido): ...

ASP.Net MVC: Subida de imágenes al servidor y recorte con Jcrop

Recientemente tuve que incluir, en un proyecto de ASP.Net MVC en el que estoy trabajando, un formulario donde un usuario podía subir su foto al perfil, y si el sistema detectaba que el tamaño de la imagen subida superaba el 100x100, había que recortarla. Esta premisa, aunque parece sencilla, encierra varios problemas técnicos a solucionar: 1) Subida de ficheros al servidor con ASP.Net MVC. 2) Recorte de foto y guardado. 3) Puntos a tener en cuenta: versiones de navegadores y otros aspectos técnicos. Vamos a ir viendo paso a paso cómo implementar esta práctica funcionalidad. Subida de ficheros al servidor con ASP.Net MVC Para subir ficheros al servidor desde la Vista, en Mvc se dispone de la clase System.Web.HttpPostedFileBase.  Para utilizarla, hay que seguir los pasos: - Declarar una propiedad de este tipo en el Model que se va a utilizar: public HttpPostedFileBase Fichero { get; set; } - Crear en la vista el formulario para realizar la subida ...