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í.
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.
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
y donde borraremos el texto dejando sólo lo siguiente:
C:\
Una vez pulsemos en el botón Extract empezará a descomprimirse
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
y a continuación debería aparecer algo parecido a lo que mostramos en la siguiente foto
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
y a continuación, vamos a ejecutar el fichero win32env.bat el cual está en la misma ruta.
Si finalmente se te queda una pantalla abierta del Command Line como antes simplemente escribes exit y luego pulsas la tecla INTRO/ENTER.
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
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
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.
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
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
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\
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
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:
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.
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.
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.
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).
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.
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
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
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
En esta línea de comandos que se nos ha abierto escribiremos cd /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
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
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
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.
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.
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
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.
y finalmente, redoble de tambores!!!!! Conseguido!!!
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.
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
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
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.