Zona Arcade. Construye, Restaura y Decora tu Máquina Arcade y Pinball.

Tutorial: Compilación de Mame 0.128 - Personalizar y optimizar Mame en nuestro ordenador

« Older   Newer »
  Share  
-shark-
view post Posted on 26/10/2008, 19:40     +1   -1




Tutorial: Compilación de Mame 0.128 para eliminar pantallas de advertencia, guardar 'scores' y optimizarlo para nuestro procesador.

1.- Introducción

NOTA: Antes de nada, recordaros que "Mamecompiler" es una herramienta que ha creado Headkaze y ha puesto a la disposicion de todo aquel que la necesite en el foro de Arcadecontrol, por lo que mi objetivo con este tutorial es enseñaros cómo se utiliza. El mérito es realmente suyo y no mío.

Tal vez haya personas que no sepan qué significa "compilar", por lo que el título de este tutorial no levantará mucho su interés si no llegan a entrar para leerlo. A grandes rasgos, diremos que cuando se desarrolla una aplicación, como es, por ejemplo, MAME, éste se hace a base de escribir instrucciones en un determinado lenguaje de programación, estas intrucciones son propias de un sistema de programación, valga la redundancia, y sirven para describir lo que una aplicación va a realizar o cómo se va a comportar durante su ejecución.

Estas líneas 'legibles' que teclean los programadores o desarrollo del programa forman el código fuente, pero, una vez terminado, hay que convertir este lenguaje de programación (lenguaje de alto nivel) a un lenguaje que el PC sepa ejecutar, normalmente código máquina, el cual no sería igual de 'legible' y editable como lo es el código fuente. Este proceso de conversión de un lenguaje a otro es el que se denomina 'compilación'.

No merece la pena entrar en detalle en el proceso de compilación, realmente, para lo queremos hacer, no nos aporta nada.

La compilación Mame tiene como objetivo, por parte del aficionado a este emulador, poder optimizar la aplicación con el ordenador doméstico que se tenga, y además eliminar todas aquellas pantallas previas informativas que se suceden cuando ejecutamos un juego.

Como ventajas de este proceso está el hecho de que podremos extraer un mayor rendimiento a juegos que pudieran ir demasiado justos en nuestro ordenador de no hacer esto y, si tenemos una máquina recreativa, el poder saltarnos las pantallas informativas, contribuirá notablemente a alcanzar una mayor sensación arcade con la misma.

Con el código libre de MAME podríamos hacer muchos cambios, incluso participar en el proyecto si fuesemos capaces, pero a nivel de jugón vamos a tunear el codigo de MAME para personalizarlo a nuestras necesidades. En concreto haremos lo siguiente:

  • Evitar las tan molestas pantallas antes de que se ejecute el juego.

  • Poder guardar nuestras Records.

  • Poder optimizar mame en función del equipo (procesador) que tengamos.


  • 2.- ¿Qué vamos a necesitar?

    Para conseguir nuestra compilación personalizada de Mame, vamos a necesitar una serie de programas de código libre y ficheros que podéis descargar de los siguientes enlaces:

    Software necesario (indispensable para compilar MAME):

  • Mamecompiler. V1.17 (Pagina de origen)

  • Hidiff0128 (página de origen)

  • Source de mame 0.128

  • Microsoft .NET Framework, versión 2.0.

  • Highscore (página de origen)


  • Software opcional (aplicación que nos ayudará a saber qué CPU tenemos y sus características. Más adelante veremos cómo utilizarlo):
  • Cpu-z (página de origen)


  • ¡Vale!, pues si ya lo tenemos todo... ¡manos a la obra!.

    3.- Preparando el terreno para la compilación...

    Antes de empezar hay que instalar y preparar el software que hemos descargado. Seguiremos la siguiente lista de pasos:

    Paso 1: Instalamos Microsoft .NET Framework, versión 2.0: (si no el mamecompiler no se abrirá nunca) seguimos el asistente con todas las opciones por defecto

    Paso 2: Instalamos mamecompiler: Durante el proceso de instalación te pedirá una ruta para el programa, elegimos la que queramos. aunque la que te da por defecto está muy bien, es en "C:", y pilla muy a mano.

    Paso 3: Añadir Hidiff0.128: Ahora nos toca poner el fichero "hidiff0.128" en su sitio correspondiente, que debería ser en una carpeta que se llama "patches" dentro de "Mingw" (si has dejado predefinida la ruta al instalar mamecompiler es “C:MinGWpatches”).

    NOTA: Cuando hacéis clic sobre el enlace anterior de Hidiff0128 (un poco más arriba), os habréis dado cuenta que abre automáticamente una nueva ventana de Internet Explorer con todo el contenido del fichero. Para guardarlo haz clic en Página->Guardar como... Busca la ubicación "C:MinGWpaches" y pon como nombre de fichero 'hi_128.diff' (borra la extensión .txt) y en 'Tipo', despliega el cuadro combinado y pon 'Todos los archivos':

    image

    Paso 4: Añadir MAME 0.128: Por ultimo nos queda por poner la carpeta mame 0.128 dentro de la carpeta source “C:MinGWsource”, no olvidéis que hay que descomprimir el fichero que os habéis bajado, vamos que tiene que quedar así.

    image

    Bueno, pues ya lo tenemos todo instalado, vamos a arrancar "Mame Compiler". Si lo habéis hecho todo bien se os lanzara un programa como este:

    image

    Ya nos queda poco.

    Vamos a dejar las rutas para más tarde y vamos a centrarnos en las 'opciones de compilación'. Concretamente empezaremos por optimizar MAME para nuestro procesador.

    Lo primero que haremos será desplegar la pestaña 'Optimize for' (donde pone none), y nos saldra algo así.

    image

    Evidentemente, deberiamos saber qué procesador tenemos, pero os puede pasar como a mí, que tenía claro que mi procesador era un pentium 4 32bits, pero no sabia si era +SSE3 o -SSE3. Por este motivo hemos descargado "Cpu-z". Busca donde lo hayas descargado y ejecútalo. Nada más arrancar testeará nuestro equipo y nos saldrá una imagen parecida a esta:

    image

    Como podéis comprobar, nos da toda la información que vamos a necesitar y mucha más:

  • El tipo de procesador: 'Name'

  • Las instrucciones que soporta: 'Instructions'

  • El número de núcleos: 'Cores'

  • Más información que en este caso no nos hace falta.


  • En la imagen superior vemos que las instrucciones son mmx,sse,sse2 y sse3, este procesador es un p4 (de los buenos), soporta todas las instrucciones, (esta información no la dan los vendedores y es de las mas importantes, ya que el rendimiento es mucho mejor), por lo que si vuestro procesador P4 soporta la instrucción sse3 marcaréis +sse3 y, en caso contrario, -sse3.

    NOTA: Los 2 porcesadores Motorola G4 son procesadores de Mac, Los dos últimos de IBM G3 y G5 son porcesadores de servidores (a ver quien es el guapo que mete un G5 en la maca para jugar al Pang). Con el resto de tecnologías no creo que vayáis a tener problemas por lo que no os las comento para no alargar el tema de forma innecesaria.

    Ahora que ya hemos averiguado qué procesador e instrucciones tenemos, y además lo hemos marcado en el desplegable, seguiremos con nuestra tarea de configuración. En la siguiente imagen os he señalado la parte en la que nos centraremos ahora:

    image

    Como véis, en mi caso, de las tres primeras opciones ('64-bit Processor', 'Dual Core' y 'Quad Core') no me vale ninguna, ya que como hemos comprobado en en cpu-z mi procesador no cumple ninguno de esos requisitos.

    Mame UI: La dejaremos tambien desmarcada ya que estamos compilando mame y no mame ui (mame32) (Lo haremos en la segunda parte de este tutorial)

    Debug: Creo que es para depurar el código fuente, por lo que la marcamos tambien.

    Clean Compile: (esta paso de traducir), la marcamos tambien.

    Disable Warnings as Error: Esta última opción debemos marcarla si vamos a compilar una version inferior a la 0.118, pero como no es nuestro caso, no la marcaremos (¡Ojo!, si intentais compilar una version inferior a la 0.118 y no esta marcada esta opción, no se va a compilar bien Mame)

    Ahora vamos con las rutas:

    Estas son las rutas que aparecen predefinidas:

    image

  • En la primera ('MinGW Folder') nos pregunta donde esta instalado MinGW, si cuando instalastéis mamecompiler aceptasteis las instalación por defecto, tendréis que dejarla como está, de lo contrario poned el sitio donde decidisteis instalarlo pulsando el botón de los tres puntos suspensivos de la derecha.


  • En la segunda ruta nos pregunta dónde esta el SRC de Mame ('Mame Source Folder'), que si recordáis, lo pusimos en "C:MinGWsourcemame0128", por lo que pulsamos el botón de la derecha y le indicamos dónde esta.


  • Y por último, nos pregunta dónde están los parches que vamos a aplicar ('Diff Patch File'). En nuestro caso, si recordáis, lo pusimos en "C:MinGWpatches", por lo que pulsamos el botón de su derecha y lo buscamos.


  • Una vez que lo tenemos todo seleccionado, apretaremos el botón 'Apply Patch' y veremos en el marco negro el proceso de aplicación del parche con nuestras modificaciones


  • image

    Y, por último, presionamos 'GO!'. Este proceso tarda bastante. Dejad el ordenador trabajando, ya que puede durar entre media hora y dos horas, según el equipo.

    Bueno y con esto ya tendríamos nuestro pastel en el horno, solo nos faltaría esperar a que se haga.

    Una vez que termine el proceso, y si lo hemos hecho todo bien, debemos obtener un resultado como este (os indico también el botón 'GO!', aunque la captura corresponde al final del proceso):

    image

    Vamos ahora a la carpeta "soure" ("C:MinGWsource"), donde habíamos dejado los ficheros mamedev y, ¡¡sorpresa!!, hay un montón de ficheros más, pues ese es nuestro Mame. Copiamos o cortamos la carpeta y la ponemos ya en su sitio definitivo.

    Debes de haber obtenido algo así:

    image

    Ya tenemos compilado y optimizado nuestro mame, pero nos falta un par de cosas:

    1. Tenemos que crear un carpeta denominada "hi" dentro de nuestra carpeta mame0128

    2. Pondremos dentro de la carpeta mame0128 el fichero que nos bajamos de los records "hiscoredat", (recordar que tiene que ser descomprimido).

    3. Crearemos las carpetas de roms snap y samples.


    Ahora sí, ya hemos completado todo el proceso.


    - Por Uhepa -

    Edited by Mikonos - 14/1/2009, 19:28
     
    Top
    uhepa
    view post Posted on 27/10/2008, 09:15     +1   -1




    Shark, me gusta mucho las modificaciones que le has hecho.


    Un Saludo.
     
    Top
    _Naxete_
    view post Posted on 27/10/2008, 10:39     +1   -1




    Excelente tuto y excelente maquetación.

    Pese a ser un tema complejo y en el que pocos usuarios "normales" intentarían aventurarse a priori, está explicado de forma muy clara y concreta.

    Yo animo a todo el mundo a que lo intente, dispondrán en sus makas un MAME, como diría mi nano, "más mejor".

    Enhorabuena por el tuto! Slds.
     
    Top
    -shark-
    view post Posted on 27/10/2008, 12:26     +1   -1




    Gracias Uhepa...
    Si quieres que cambie/añada algo ya me dirás.

    Por cierto Morti, has cambiado de usuario??!? Acabo de darme cuenta!
     
    Top
    uhepa
    view post Posted on 27/10/2008, 12:45     +1   -1




    Yo creo que está perfecto.

    Tan solo falta hacer la ampliación a la compilacion de mameui y si fuera necesario de como compilar una actualización.

    Pero voy tan liado :sudor: que no tengo tiempo ni siquiera para darle vueltas al foro, pero cuando saque un hueco prometo hacerlo.


    Saludos,

    Uhepa.
     
    Top
    -shark-
    view post Posted on 27/10/2008, 13:19     +1   -1




    Tranqui... todos andamos parecido ;) :lol:
     
    Top
    velozur
    view post Posted on 31/10/2008, 14:34     +1   -1




    Pues no pude hacerlo..... veran, yo tengo un servidor con pentium 3, mmx , ss3 y win XP con Spack 3, cuando instalo el Mame compiler, se instala todo normal, solo que en a carpeta source del winmg esta la carpeta del mame 0128 y en ella un archivo de DOS que se llama Make-mame64, bueno, ahi instalo los archivos de la Source de mame, y al correr el patch aparentemente lo aplica bien, y se hace todo el proceso, pero al checarlo, me di cuenta de que no me esta creando los "Ejecuitables" en la carpeta de MAME, ninguno de ellos....
     
    Top
    uhepa
    view post Posted on 31/10/2008, 19:10     +1   -1




    QUOTE (velozur @ 31/10/2008, 14:34)
    Pues no pude hacerlo..... veran, yo tengo un servidor con pentium 3, mmx , ss3 y win XP con Spack 3, cuando instalo el Mame compiler, se instala todo normal, solo que en a carpeta source del winmg esta la carpeta del mame 0128 y en ella un archivo de DOS que se llama Make-mame64, bueno, ahi instalo los archivos de la Source de mame, y al correr el patch aparentemente lo aplica bien, y se hace todo el proceso, pero al checarlo, me di cuenta de que no me esta creando los "Ejecuitables" en la carpeta de MAME, ninguno de ellos....

    Antes de entrar en el tema del compilador me gustaria comentarte algo que creo mas importante que la compilacion.

    Por lo que veo tienes un pentium 3 por lo que dudo que las instrucciones SSE3 las reconozca ya que en Pentium fue el procesador Prescott el primero que lo introdujo (en 2004) y este prcesador era Un Pentium 4, por lo que te recomiendo que revises el procesador que tienes con el programa que os aconseje (cpu-z).
    Puesto que el pc va destinado a la maquina no es necesario que le pongas los service pack a windows xp, ya que lo unico que vas a conseguir es relentizarlo, sobretodo con el sp3.

    Una vez visto esto vamos a entrar en materia:

    Dentro de la carpeta source tienes que crear una carpeta y en esta meter los ficheros que os comente (source de la version a compilar), unica y exclusivamente, si existiera otra carpeta, o bien la borras o bien te olvidas de ella y creas otra, ya que el nombre de la carpeta que tienes que crear no es importante, lo importante es que solo este el source que vamos a compilar.

    Espero haberte ayudado si aun asi sigues teniendo problemas cometamelo y ya vareas como lo solucionamos.

    P.D: Si es verdad que tu procesador P III reconoce las instrucciones SSE3, te lo compro, ya que debe ser el unico en el mundo que las reconozca.

    Un Saludo.

    Edited by uhepa - 31/10/2008, 19:26
     
    Top
    velozur
    view post Posted on 2/11/2008, 20:24     +1   -1




    si, de ehecho para aplicar el patch tuve que dejar en "None" la opcion del procesador pues no habia ninguno que fuese compatible con el mio....

    tratare hacerlo como lo dices hoy en la noche y veres si funciona....

    gracias
     
    Top
    morogoku
    view post Posted on 17/11/2008, 02:38     +1   -1




    Estoy intentando compilar el mame 0.128 optimizandolo para un AMD XP activando su correspondiente casilla, pero lo estoy haciendo desde un P4 con SSE3 y me da un error,
    Hay que compilarlo desde el mismo ordenador para el que activas las opciones especificas para el procesador y es por eso que me da el error? o el ordenador desde que lo compiles da igual?

    Edited by morogoku - 17/11/2008, 02:58
     
    Top
    uhepa
    view post Posted on 17/11/2008, 09:34     +1   -1




    Da igula desde el equipo que lo compiles.
    Comprueba que has seguido bien todos los pasos, que seguramente se te habra pasdo algo por alto.

    Un Saludo.
     
    Top
    morogoku
    view post Posted on 18/11/2008, 01:29     +1   -1




    El problema creo que esta en que intento compilar el mameUI(mame32),

    Antes de ver este tuto lo intente hacer a mano, con las herraminetas de mamedev.org, y el mame 0.128 con el mameui, sin modificar nada del codigo me lo compilaba bien, pero al intentar modificarlo para quitar los mensajes del mame, me daba un error.
    Asique lo he intentado hacer siguiendo este tuto con el mame compiler, pero me sigue dando error.

    Lo que hago es:
    - Instalo el mamecompiler 1.17 en la carpeta por defecto: C:\MinGW
    - Copio el source de mame 0.128 en la carpeta C:\MinGW\source\Mame0128
    - El Hidiff0128 no lo copio porque ya viene con el mame compiler en la carpeta C:\MinGW\patches, de hecho vienen los de todas las versiones. Los edite y eran iguales.
    - Copio los 0128u1.diff, 0128u2.diff y 0128u3.diff en la carpeta C:\MinGW\patches junto con el Hidiff0128
    - Cojo el source del mameUIu3 y copio el archivo Mameui.mak en C:\MinGW\source\Mame0128
    y la carpeta winui en C:\MinGW\source\Mame0128\src\osd
    - Abro el mamecompiler y aplico los parches 0128u1.diff, 0128u2.diff, 0128u3.diff y Hidiff0128.diff
    - Marco la casilla MameUI (tambien he probado a marcar las caillas debug, Clean Compile y disable warnings) le doy a GO y se pone a compilar.

    Despues de unos 20 minutos da error y se para.
    Aqui esta el error:
    image

    -

    Edited by morogoku - 18/11/2008, 01:55
     
    Top
    uhepa
    view post Posted on 20/11/2008, 13:28     +1   -1




    En el tutorial está explicado como compilar mame y tu estas intentando compilar mameui, esta parte es la que falta por explicar en el tutorial, pero los pasos que estas haciendo son los correctos para compilar mameui.

    Creo que tu fallo está en que has cogido el source de mameui 0.128u3 en lugar del source de mameui 0.128.


    Un Saludo.
     
    Top
    morogoku
    view post Posted on 24/11/2008, 02:04     +1   -1




    Pero si compilo el mame 0.128 con los diffs u1, u2 y u3 tendre que usar el source del mameui 0.128u3 no?

    A demas es el que esta en la pagina de mameui, solo viene el source del u3
     
    Top
    uhepa
    view post Posted on 24/11/2008, 11:14     +1   -1




    No, precisamente le metes los diff 1,2,3 porque tiene que ser sobre el generico no sobre el actualizado.

    Busca bien en la pagina de mameui, porque ademas de estar la ultima version, tambien estan las anteriores.
     
    Top
    36 replies since 26/10/2008, 19:40   17590 views
      Share