Saltar al contenido
Arcadespain

¿Cómo compilar mame en 32 bits?

 

Pensaréis que estamos locos! ¿32 bits para qué y por qué? La respuesta es simple y rápida: «Todavía hay más gente de la que pensáis usando sistemas de 32 bits…». A lo que podemos añadir también que en el tema de la emulación todavía queda mucha gente que para jugar al Pac Man, KungFu Master y similares les vale con un Pentium III o Pentium IV con sistema operativo Windows XP los cuales solían ir en 32 bits.

Siguiendo el post que nos puso el compañero del foro ArcadeSpain @machiminax vamos a seguir los pasos que indicaba con todo tipo de imágenes. El link original del post lo podéis encontrar aquí.

 

Índice

    Pasos para compilar Mame (método 1)

    Descargamos las buildtools de mame

    El primer paso será ir a la siguiente dirección y descargar el fichero que os mostramos en la siguiente foto.

     

    Descargamos el fichero msys64-2022-01-12.exe de las buildtools de mame
    Descargamos el fichero msys64-2022-01-12.exe

     

    Como vemos en la foto el fichero a descargar se llama msys64-2022-01-12.exe del cual también dejaremos link alternativo porque ya sabemos todos que cada x tiempo los links caen, se pierden y desaparecen.

     

    Una vez descargado el fichero haremos doble click de ratón sobre él, apareciéndote algo parecido a esto

     

    Doble click de ratón sobre el fichero msys64-2022-01-12.exe
    Doble click de ratón sobre el fichero msys64-2022-01-12.exe

     

    y donde borraremos el texto dejando sólo lo siguiente:

    C:\

     

    Escribimos C:\ al descomprimir el fichero msys64-2022-01-12.exe
    Escribimos C:\ al descomprimir el fichero msys64-2022-01-12.exe

     

    Una vez pulsemos en el botón Extract empezará a descomprimirse

     

    Pulsamos en el botón Extract del fichero msys64-2022-01-12.exe
    Pulsamos en el botón Extract del fichero msys64-2022-01-12.exe

     

    ya que lo ideal es que se descomprima todo quedando en la ruta final de:

    C:\msys64

     

    Ejecutamos unos ficheros bat que nos ayudan a configurar el entorno

     

    Nos vamos a la ruta C:\msys64\win32 y ejecutamos el fichero config32.bat tal y como se muestra en la siguiente foto

     

    Ejecutamos el fichero config32.bat de la ruta c:\msys64\win32
    Ejecutamos el fichero config32.bat de la ruta c:\msys64\win32

     

    y a continuación debería aparecer algo parecido a lo que mostramos en la siguiente foto

     

    Pantalla tras ejecutar config32.bat en la ruta c:\msys64\win32
    Pantalla tras ejecutar config32.bat en la ruta c:\msys64\win32

     

    Si se queda la pantalla de CMD (Command line) abierta escribimos exit y pulsamos a continuación la tecla ENTER/INTRO.

     

    A continuación, nos vamos a la ruta C:\msys64 y vamos a ejecutar el fichero autorebase.bat

     

    Ejecutamos el fichero autorebase.bat en la ruta c:\msys64
    Ejecutamos el fichero autorebase.bat en la ruta c:\msys64

     

    y a continuación, vamos a ejecutar el fichero win32env.bat el cual está en la misma ruta.

     

    Ejecutamos el fichero win32env.bat en la ruta c:\msys64
    Ejecutamos el fichero win32env.bat en la ruta c:\msys64

     

    Si finalmente se te queda una pantalla abierta del Command Line como antes simplemente escribes exit y luego pulsas la tecla INTRO/ENTER.

     

    Escribimos exit y pulsamos la tecla INTRO
    Escribimos exit y pulsamos la tecla INTRO

     

    Ejecución de comandos para instalar programas necesarios

    Vamos a ejecutar nuevamente el comando win32env.bat y una vez abierto el entorno vamos a lanzar los siguientes comandos seguidos de la pulsación de la tecla ENTER/INTRO (lo haremos de uno en uno).

    git config --global core.autocrlf true

    seguiremos con

    pacman -Sy

    y luego

    pacman -S bash pacman msys2-runtime --noconfirm --needed

     

    apareciendo en pantalla algo parecido a lo siguiente

     

    Ejecutamos comandos en el entorno win32env.bat
    Ejecutamos comandos en el entorno win32env.bat

     

    Si en algún momento nos hace una pregunta de si procedemos a seguir con la instalación escribiremos la tecla Y y seguidamente pulsaremos la tecla ENTER/INTRO.

    Cuando termine si se queda de nuevo abierta esta pantalla negra escribimos exit y pulsamos la tecla ENTER/INTRO.

    A continuación, de nuevo ejecutamos el fichero win32env.bat escribiendo a continuación lo siguiente

    pacman -Su --noconfirm

    y cuando termine igual que antes, exit para cerrarlo nuevamente.

    Otra vez, lanzamos el fichero win32env.bat y ahora escribimos el siguiente código

    pacman -S mingw-w64-i686-gcc mingw-w64-i686-libc++ mingw-w64-i686-lld mingw-w64-i686-python mingw-w64-i686-SDL2 mingw-w64-i686-SDL2_ttf

     

    debiendo aparecer algo parecido a lo siguiente

     

    Instalando programas necesarios para compilar mame
    Instalando programas necesarios para compilar mame

     

    en la foto podemos apreciar lo de la pregunta de si proceder con la instalación y ahí es donde tendremos que escribir Y de Yes en inglés para que proceda con el resto de la instalación (no siempre lo pregunta) y seguirá instalando.

     

    Pulsamos Y para proceder a la instalación de los paquetes
    Pulsamos Y para proceder a la instalación de los paquetes

     

    Como hicimos en pasos anteriores escribimos exit para cerrar el entorno de CMD (Command line).

    Ya por último, vamos a lanzar otra vez el fichero win32env.bat para escribir el siguiente código

    pacman -S mingw-w64-i686-ccache 

     

    donde tendremos en cuenta las mismas cosas que antes y finalmente escribimos exit para cerrar.

     

    Modificamos el fichero env.bat

    Nos iremos a la ruta C:\msys64\win32 y tendremos que editar el fichero env.bat donde localizaremos el siguiente código

    :: Enhance Path
    @if "%CONFIG_ARCHITECTURE%"=="x86" (
    @set MINGW32=%MSYS2_ROOT%\mingw32
    @set MINGW=%MSYS2_ROOT%\mingw32
    @set prompt=[MINGW32] $p$g
    ) else (
    @set MINGW64=%MSYS2_ROOT%\mingw64
    @set MINGW=%MSYS2_ROOT%\mingw64
    @set prompt=[MINGW64] $p$g
    )

     

    para sustituirlo por el siguiente

     

    :: Enhance Path
    @if "%CONFIG_ARCHITECTURE%"=="x86" (
    @set MINGW32=%MSYS2_ROOT%\mingw32
    @set MINGW=%MSYS2_ROOT%\mingw32
    @set prompt=[MINGW32] $p$g
    ) else (
    @set MINGW32=%MSYS2_ROOT%\mingw32
    @set MINGW=%MSYS2_ROOT%\mingw32
    @set prompt=[MINGW32] $p$g
    )

     

    En este momento, guardamos el fichero env.bat y lo cerramos.

     

    Descargamos el fuente del mame a compilar

    En nuestro caso como vamos a intentar compilar wolfmame, el compañero @machiminax nos recomienda ejecutar de nuevo el fichero win32env.bat para a continuación lanzar el siguiente código que lo que hará es descargar los fuentes oficiales

    git clone https://github.com/mahlemiut/wolfmame.git

     

    Más adelante podremos ver que podemos descargar los fuentes de donde queramos y meterlos en la carpeta C:\msys64\src\<versionfuentes>

    En este caso debería aparecernos algo parecido a lo siguiente

     

    Descargamos los fuentes de wolfmame desde el git original
    Descargamos los fuentes de wolfmame desde el git original

     

    Resolución de problema en la compilación

    Si váis al siguiente link veréis que comentan un error que tenemos al intentar compilar ficheros con más de 3 gigas y la forma de resolverlo; al parecer es un problema con el cc1plus.exe pero vamos a ver como resolverlo.

    Lo primero de todo es que tendréis que conseguir dos ficheros ejecutables llamados:

    editbin.exe

    link.exe

    Los cuales tendréis que copiar en la siguiente carpeta:

    C:\msys64\mingw32\lib\gcc\i686-w64-mingw32\12.1.0\

    que es la carpeta donde se encuentra el fichero ejecutable que comentamos antes de cc1plus.exe

     

    Ahora tendremos que abrir una línea de comandos en modo administrador

     

    Abrimos línea de comandos de windows como administrador
    Abrimos línea de comandos de windows como administrador

     

    Lo cual podemos hacer fácilmente, pulsando la tecla Windows y a continuación escribimos CMD. Cuando aparezca el Símbolo del sistema como se aprecia en la foto anterior, pulsamos el botón derecho del ratón y seleccionamos Ejecutar como administrador

    En este momento tendremos abierta una ventana de CMD o línea de comandos y tendremos que irnos a la carpeta C:\msys64\mingw32\lib\gcc\i686-w64-mingw32\12.1.0\ haciendo uso de comandos donde lo más rápido es que escribas lo siguiente:

    cd C:\msys64\mingw32\lib\gcc\i686-w64-mingw32\12.1.0\

     

    Nos metemos en la carpeta donde se encuentra el ejecutable cc1plus.exe
    Nos metemos en la carpeta donde se encuentra el ejecutable cc1plus.exe

     

    Llegados a este punto, y estando en el interior de la carpeta que estáis viendo en la foto anterior escribiremos el siguiente comando:

    bcdedit /set IncreaseUserVa 3072

     debiendo apareceros en pantalla algo parecido a lo siguiente

     

    bcdedit /set IncreaseUserVa 3072
    Ejecutamos bcdedit /set IncreaseUserVa 3072

     

    sin cerrar esta línea de comandos y habiendo introducido en esta carpeta los dos ejecutables que mencionamos antes (editbin.exe y link.exe) ejecutaremos el siguiente comando:

    editbin /LARGEADDRESSAWARE cc1plus.exe

     

    a lo que debería apareceros algo como lo siguiente:

     

    Ejecutamos editbin /LARGEADDRESSAWARE cc1plus.exe
    Ejecutamos editbin /LARGEADDRESSAWARE cc1plus.exe

     

    Si todo ha ido bien y hemos llegado hasta este punto lo último que faltaría ya sería intentar compilar pero antes cerramos nuestro command line que tenemos abierto ahora mismo.

     

    Compilamos para obtener nuestro ejecutable de 32 bits de mame

    Nos vamos a C:\msys64 y ejecutamos win32env.bat

    Una vez se nos abra la pantalla de command line nos vamos a la carpeta src ( cd src) y luego a la carpeta donde tengamos los fuentes descargados de mame o wolfmame como es nuestro caso; en nuestro ejemplo, la carpeta donde se descargó era wolfmame, así que escribiendo:

    cd src/wolfmame

    podríamos irnos directamente a dicha carpeta o bien podemos hacerlo una a una.

    Nos vamos a la carpeta donde hemos descargado los fuentes de mame
    Nos vamos a la carpeta donde hemos descargado los fuentes de mame

     

    Además, como podéis ver en la foto anterior una vez dentro de la carpeta de los fuentes lanzamos el siguiente comando para intentar compilar mame

    make SUBTARGET=arcade

     

    En la pantalla una vez lanzado el comando anterior o algún otro parecido que ahora pondré empezarán a salir todo tipo de textos y tardará aproximadamente dos o tres horas en compilar.

    Textos en pantalla mientras compilamos Mame
    Textos en pantalla mientras compilamos Mame

     

    Aquí caben dos opciones. La primera es que compile bien y obtengáis vuestro merecido ejecutable de mame en 32 bits o bien que obtengáis un error como el que obtuve yo u otro parecido.

     

    Mensaje de error al compilar mame en 32 bits
    Mensaje de error al compilar mame en 32 bits

     

    Al compañero @machiminax en este punto le funcionaba pero yo obtenía este error.

    Intenté compilar con el siguiente comando

    make REGENIE=1 STRIP_SYMBOLS=1 NOWERROR=1 PTR64=0

    obteniendo el mismo error así que mi gozo en un pozo…

     

    Programas necesarios para el proceso de compilación de mame en 32 bits

    Como comentamos antes los links son propensos a dejar de estar activos por lo que dejo este link con los programas que hemos mencionado para llevar a cabo del proceso que habéis visto hasta este momento.

    Haced todo el proceso como lo he hecho yo y probad a ver si os compila a vosotros y en caso de que no os funcione podéis intentar el método 2 que os pongo a continuación.

     

    Pasos para compilar mame en 32 bits (método 2)

    Descargar el siguiente paquete de ficheros

    Iremos al siguiente link y descargamos el paquete para compilar con Windows 10 (este es mi caso).

     

    Descargamos el paquete de compilación para Windows 10
    Descargamos el paquete de compilación para Windows 10

     

    El fichero descargado es un fichero zip que lleva dentro una serie ficheros de extensión sh; lo descomprimimos y ya veremos luego que hacer. Como con el método 1 dejaré un link para poder descargar estos ficheros necesarios para compilar este método 2 por si en algún momento estas webs dedjaran de funcionar.

     

    Ficheros sh para compilar mame 32 bits por el método 2
    Ficheros sh para compilar mame 32 bits por el método 2

     

    Comentar que para intentar este método 2 podemos partir empezando desde aquí o bien seguir a continuación justo despues de haber intentado hacer el procedimiento del método 1.

    Descargamos las buildtools de mame

    Al igual que hicimos en el método 1 descargamos el mismo fichero y lo extraemos de la misma forma en C:\ quedándonos finalmente instalado todo en la unidad C:\msys64

     

    Instalado las buildtools en c:\msys64
    Instalado las buildtools en c:\msys64

     

    Ejecutamos unos ficheros bat que nos ayudan a configurar el entorno

    Tal y como podemos ver en la foto anterior, nos iremos a la carpeta c:\msys64 la carpeta donde se ha descomprimido el fichero anteriormente descargado y ejecutado y ejecutaremos ahora el fichero autorebase.bat abriéndose una línea de comandos momentáneamente para cerrarse sola a continuación.

     

    Nos iremos ahora a la carpeta C:\msys64\win32 y ejecutaremos el fichero config32.bat apareciendo una pantalla parecidas a la siguiente

     

    Mensajes en pantalla tras lanzar config32.bat para compilar mame en 32 bits
    Mensajes en pantalla tras lanzar config32.bat para compilar mame en 32 bits

     

    Finalmente, la pantalla de línea de comandos se cerrará sola.

     

    Lanzamos mingw32 y los ficheros sh descargados

    Nos iremos a la carpeta c:\msys64 y ejecutamos mingw32.exe debiendo abrirse una pantalla parecida a la siguiente

     

    Ejecutamos mingw32.exe para compilar mame en 32 bits
    Ejecutamos mingw32.exe para compilar mame en 32 bits

     

    En esta línea de comandos que se nos ha abierto escribiremos cd /tmp

     

    Nos vamos a la carpeta tmp
    Nos vamos a la carpeta tmp

     

    y ahora copiaremos los ficheros sh que descargamos al principio a esta carpeta tmp. Mejor que por línea de comandos, los copiaremos desde una ventana del explorador de windows y la ruta debería ser C:\msys64\tmp

     

    Ficheros sh copiados a la carpeta tmp
    Ficheros sh copiados a la carpeta tmp

     

    En la foto anterior podéis ver que hemos copiado los ficheros a la carpeta temporal (/tmp) pero veréis que hay uno de más que lleva la leyenda empardopo. Este fichero es igual que el init32.sh sólo que le he quitado las líneas que descargaban el mame oficial ya que en mi caso quiero descargar el wolfmame. En vuestro caso, podéis usar uno u otro dependiendo de lo que queráis hacer.

     

    A continuación, desde la línea de comandos que deberíamos seguir teniendo abierta (recordar que habíamos ejecutado mingw32.exe) escribiremos el siguiente código:

    bash -l init32empardopo.sh

     

    En mi caso ya sabéis, lanzo el que lleva empardopo pero si queréis que se os descarguen los fuentes del mame oficial lanzar el init32.sh

    En cualquier caso debería apareceros algo parecido a esto

     

    Ejecutamos init32.sh para descargar paquetes necesarios para compilar mame en 32 bits
    Ejecutamos init32.sh para descargar paquetes necesarios para compilar mame en 32 bits

     

    que son las pantallas parecidas a las que ya salían en el método 1. Si en cualquier momento nos hace la pregunta de si instalar, ya sabéis escribimos una Y y a continuación pulsamos la tecla INTRO/ENTER.

     

    Finalmente, aparecería algo parecido a esta pantalla

     

    Paquetes instalados para compilar mame en 32 bits
    Paquetes instalados para compilar mame en 32 bits

     

    En este momento, pulsaremos exit seguido de la tecla INTRO/ENTER para cerrar la línea de comandos.

     

    Descargamos los fuentes de la versión de mame que queramos compilar en 32 bits

    Este paso no tendrías que hacerlo si antes has lanzado el init32.sh porque en ese caso el script ya te habría descargado el mame oficial. En mi caso como quiero compilar wolfmame que es la variante que usamos en las competiciones del foro ArcadeSpain, me voy al siguiente link para descargar la versión correspondiente.

     

    Descargamos los fuentes de wolfmame 0.244 para compilarlo para 32 bits
    Descargamos los fuentes de wolfmame 0.244 para compilarlo para 32 bits

     

    Una vez descargado lo vamos a descomprimir en la carpeta /tmp que usamos antes, osea en la ruta C:\msys64\tmp quedando todo el fuente descomprimido en la ruta C:\msys64\tmp\wolfmame-wolf244 por ejemplo y para muestra un botón.

     

    Fuentes de wolfmame descomprimidos en la carpeta tmp
    Fuentes de wolfmame descomprimidos en la carpeta tmp

     

    Si en este punto tenemos abierta todavía la ventana de línea de comandos la cerramos escribiendo exit y pulsando la tecla INTRO/ENTER.

     

    Compilamos para obtener nuestro ejecutable de 32 bits de mame

    Llegados a este punto sólo nos quedaría intentar compilar a ver si en esta ocasión no tenemos problemas.

    Nuevamente, lanzaremos el mingw32.exe que hay en la carpeta C:\msys64 y escribiremos el comando que mejor nos venga de los siguientes tres:

    make -j3 si tenemos un PC Dual Core con más de 4 GB de RAM

    make -j5 si tenemos un PC Quad Core con de 8 GB de RAM

    make -j7 si tenemos un PC Six Core con más de 8 GB de RAM

     

    nos movemos a la carpeta donde tenemos los fuentes de mame, en mi caso y una vez lanzado el mingw32.exe escribo cd wolfmame-wolf244

     

    Nos vamos a la carpeta de fuentes de wolfmame para compilar en 32 bits
    Nos vamos a la carpeta de fuentes de wolfmame para compilar en 32 bits

     

    Una vez aquí, lanzamos el comando que en mi caso creo que me viene mejor y que es:

    make -j5 SUBTARGET=arcade

     

    Momento en el que empezarán a salir todo tipo de mensajes mientra que empieza a compilar.

     

    Compilando Wolfmame 0.244 en 32 bits
    Compilando Wolfmame 0.244 en 32 bits

     

    y finalmente, redoble de tambores!!!!! Conseguido!!!

     

    Wolfmame 0.244 compilado en 32 bits
    Wolfmame 0.244 compilado en 32 bits

     

    Y si ahora miramos dentro de la misma carpeta de nuestro fuente y desde la que hemos lanzado el make para la compilación podremos ver que tenemos el ejecutable de mame.

     

    Ejecutable de Mame compilado para 32 bits en la misma carpeta de las fuentes
    Ejecutable de Mame compilado para 32 bits en la misma carpeta de las fuentes

     

     

     

    Como podéis ver ahora tenemos el ejecutable mamearcade.exe que será nuestro ejecutable de wolfmame en 32 bits compilado.

     

    Programas necesarios para el proceso de compilación de mame en 32 bits

    Como comentamos antes los links son propensos a dejar de estar activos por lo que dejo este link con los programas que hemos mencionado para llevar a cabo del proceso que habéis visto hasta este momento.

    Haced todo el proceso como lo he hecho yo y probad a ver si os compila a vosotros y en caso de que no os funcione podéis intentar el método 3 que os propongo a continuación.

     

    Pasos para compilar mame en 32 bits (método 3 – no probado)

    Este paso es algo que se me acaba de ocurrir y no tengo muy claro si funcionará o no, pero simplemente se trata de intentar ayudar a la gente para que tenga que hacer los mínimos pasos posibles y como a mí me ha funcionado el método 2, partiremos de ahí.

    La idea es que descarguéis todo el paquete instalado que tengo yo en mi carpeta c:\msys64 una vez seguido todo el proceso del método 2 e intentar compilar a ver si os funciona.

    Descargar msys64.7z

    Os vaís a este link que os dejo aquí y descargáis todo mi directorio funcional de msys64; una vez descargado lo descomprimís en vuestra unidad C:\ de forma que quede todo dentro de la carpeta C:\msys64

     

    Descomprimimimos el fichero msys64.7z en c:\msys64
    Descomprimimimos el fichero msys64.7z en c:\msys64

     

    Descargamos los fuentes de la versión de mame que queramos compilar en 32 bits

    Si habéis seguido todo el tutorial, sabréis que yo lanzé el fichero init32empardopo.sh por lo que tendréis que descargar los fuentes de mame que necesitéis. Los descargáis de donde queráis y lo descomprimís en la carpeta C:\msys64\tmp\<dir_tu_mame>

     Una vez descargada las fuentes a compilar las descomprimimos en la carpeta /tmp al igual que en el método 2

     

    Descomprimiendo los fuentes de wolfmame 0.226 para intentar compilarlo en 32 bits
    Descomprimiendo los fuentes de wolfmame 0.226 para intentar compilarlo en 32 bits

      

    Como véis los fuentes quedarán en la carpeta C:\msys64\tmp\wolfmame-wolf226

    Una vez con los fuentes en la carpeta hacéis lo mismo que en el método 2, os metéis dentro de dicha carpeta y lanzáis el comando para compilar.

    Espero os haya servido de ayuda y muchas gracias al compeñero @machiminax del foro ArcadeSpain.