Tutorial: MAME look retro

¡Hola amigos! ¿Cuánto tiempo sin post? Mucho.
Pero no importa, ya estamos de regreso, con muy buen contenido.
En esta ocasión, un tutorial, para usar MAME desde 0 y además, darle un look retro, para revivir los tiempos míticos de las maquinitas, lo más cercano a la experiencia real.
La verdad es que, escribo este tutorial, en gran parte para poderlo seguir yo mismo, pues muchas veces paso un largo tiempo sin usar MAME y cuando vuelvo, se me olvida todo.
Así que, comenzamos.

1-Descargar MAME
Para empezar, vamos al sitio oficial de MAME "www.mamedev.org/release.html"


Vamos a descargar este archivo auto-extraible y extraerlo en la ubicación que vaya a ser nuestro folder de MAME. Nota: Puede que tengamos que deshabilitar Windows Smart Screen en caso que nos impida extraer los contenidos.
Listo, tenemos MAME descargado.

2-Descargar juegos
Existen dos tipos de instalación de MAME los full set y los incomplete set.
-Los full set son, como el nombre lo indica, sets completos de todas las ROMS lanzadas para MAME.
Esto implica muchos gigas en disco duro y son literalmente miles de juegos.
-Incomplete set, es el set que tú te armas, sólo con los juegos que te interesan.

En este caso vamos a hacer un incomplete set, porque la descarga de un full set puede tardar mucho tiempo y honestamente ¿vamos a jugar toooodos los juegos de MAME?
Pues realmente no.

Así que, lo que yo recomiendo, es decidir qué juegos son los que queremos y lanzarnos a Google, a realizar una búsqueda de los ROMS. Sólo hay que estar muy conscientes de lo siguiente:
MAME no es un emulador de un arcade específico, sino como su nombre indica, un Multi Arcade Machine Emulator. Lo que implica que, sirve para emular distintos hardware de distintas máquinas arcade. Por lo tanto, las máquinas más antiguas, funcionaban sin sistema operativo y de una manera muy sencilla y genérica, por lo que únicamente hará falta descargar la ROM que nos interesa y a jugar.

Pero conforme pasó el tiempo, los arcades se hicieron más complicados, teniendo hardware especializado, sistemas operativos, BIOS, etc.
De modo que, muchas veces, vamos a tener que descargar la ROM del juego y uno o más archivos extra, correspondientes a esas piezas de hardware o de sistema, que nos permitirán emular el juego.

Para ello, recomiendo visitar el sitio: http://adb.arcadeitalia.net/
Es una base de datos de los ROMS y sus archivos necesarios para funcionar.
De aquí no puedes descargar nada, pero te dirá exactamente qué necesitar para emular el juego.
Basta con escribir el nombre del juego en su barra de búsqueda y recibir resultados de la ROM solicitada.

Ejemplo:


Buscamos KOF 98 y nos muestra todas las versiones distintas que hay, incluyendo clones, e incluso mods no oficiales. Yo les recomiendo siempre elegir la versión normal, directo de su país de origen, aunque para nuestro propósito, no hay mucha diferencia, nos va a decir qué archivos necesitamos.


Al dar click en una de las versiones, se nos va a mostrar mucha información técnica del juego.
Entre ello, si elegimos un clon o la versión padre, o sea, la original.
En caso de haber seleccionado sin querer, un clon, tenemos la opción de ir directamente al ROM parent.

Pero la parte realmente importante, es esta:

En la sección "ROMSET" ya nos está mencionando la BIOS NEOGEO.
Y más adelante, en la sección "FILES" hay un enlace que debemos dar click y dice "Show MAME required files".
Justo ahí, nos va a mostrar que para KOF 98 necesitamos dos archivos: 1-La BIOS de NEOGEO y 2-La ROM de KOF 98. También nos dice el peso de los archivos para poder asegurarnos de descargar las versiones correctas.

Así de fácil y así de simple.

3- Ejecutar los juegos.
Una vez que tengamos descargados los ROMS que queramos, junto con los archivos necesarios; los vamos a mover a la carpeta ROMS dentro de la carpeta de MAME.
Los BIOS o demás archivos necesarios para ejecutar el juego, también se colocan ahí.
Hay que tener en mente que si tenemos dos juegos que requieren los mismos archivos extra, como KOF 97  y 98 que ambos van a requerir la misma BIOS de NEOGEO, no hace falta descargar esa BIOS dos veces, con una basta.

IMPORTANTE: No debemos cambiar el nombre de las ROMS, porque del nombre que tiene el archivo, depende que funcionen muchas cosas dentro de MAME, como las rutas del juego, del artwork, etc. que quedarían inservibles si cambiamos el nombre de la ROM.

Ahora buscamos el icono de MAME en su folder y lo ejecutamos.


Por default, MAME se va a lanzar en pantalla completa.
Vamos a ver, que se puede controlar con el mouse o con el teclado.
Nos vamos a encontrar con una pantalla así:


Del lado derecho tenemos una columna donde podemos filtrar las ROM entre varias opciones como: Sin filtro, disponibles, no disponibles, funcionando, no funcionando, etc...
Lo recomendable es utilizar el filtro que te muestra las ROMS disponibles.

En la parte central aparecerán los nombres de los juegos y en el lado derecho aparecerán capturas de pantalla de los juegos, para identificarlos más fácilmente. Pero esto sucederá hasta que tú mismo hagas las capturas en los juegos.

Damos doble click en uno de los juegos o lo seleccionamos y damos ENTER.
Si todo sale bien, el juego debe ejecutarse.
Sólo es una prueba. Con la tecla ESC, abandonamos el juego.

4-La configuración de MAME
 En la parte baja de la pantalla principal de MAME, vamos a encontrar las opciones "General Settings" y "System Settings".
Con la primera, podemos cambiar las opciones globales de todo MAME, y con la segunda, podemos cambiar las opciones en específico del juego que tenemos seleccionado.

Recomiendo mucho, abrir las opciones globales de MAME y echarle un vistazo a TODO.
Se nos ofrecen ajustes de idioma, video, sonido, etc. Lo mejor es familiarizarnos con todas esas opciones y una cosa que nos facilita mucho esta tarea, es que el emulador ofrece una descripción de para qué sirve cada ajuste. Una vez hechos los cambios deseados, los guardamos.

Importante: La primera vez que hacemos esto, se generará en automático un archivo mame.ini, dentro del mismo folder del ejecutable.
Un archivo muy útil, porque al abrirlo con el block de notas o similar, podemos hacer un fine-tuning aún más profundo de las opciones de MAME, además de que es un archivo que podremos respaldar y utilizar con instalaciones limpias de MAME, para recuperar todos nuestros ajustes y no comenzar desde cero.

Un pequeño mame.ini

Ahora, recomiendo hacer lo mismo con algún juego. Seleccionarlo, entrar a los ajustes, cambiar algo y salvar los ajustes. Esto también va a generar un archivo ini para el juego, dentro del folder de MAME.
Al igual que en el caso anterior, ahí van guardados todos los ajustes y es un archivo que podemos respaldar y restaurar en configuraciones distintas de MAME.

Ajustes que me parecen interesantes para cambiar en el ini de la configuración global de MAME:

-writeconfig: Al colocarlo en 1, MAME creará automáticamente un archivo .ini para cada juego que se ejecute

-pause_brightness: El default es 0.65, esta opción obscurece un poco la pantalla al poner pausa, si queremos que la pantalla no se obscuresca, por ejemplo, para hacer un screenshot, podemos colocar el valor en 1

-update_in_pause: Esta es una opción útil a la hora de aplicar ajustes, sobre todo gráficos. Sirve para que el emulador actualice los ajustes, aún estando en pausa. De lo contrario hay que quitar la pausa para ver viendo cómo se aplican los ajustes.

-confirm_quit: Al colocarlo en 1, nos va a pedir confirmación cada vez que presionemos ESC para quitar un juego. Útil para no quitarlo por accidente.

-waitvsync: Opción que se activa para corregir problemas de screen tearing, especialmente al jugar en modo ventana

-tripplebuffer: Opción que se activa para corregir problemas de screen tearing, especialmente al jugar en modopantalla completa

Ajustes que se usan en conjunto para solucionar problemas de screen tearing, desincronización, lag en audio o video:
vsync
autoframeskip 
throttle
refreshspeed
syncrefresh
waitvsync
tripplebuffer
 

5-Configuración de los juegos
Una vez que tenemos las configuraciones básicas de MAME, vamos a configurar los juegos en específico. Para ello ejecutamos un juego con doble click o lo seleccionamos con el teclado y presionamos ENTER.

CONTROLES DENTRO DEL JUEGO:

ESC: Salir del juego

TAB: Ajustes del juego

P: Pausa

F11: Mostrar desempeño del juego

F7: Cargar partida

SHIFT + F7: Guardar partida (adicionalmente se debe elegir un número 1-9 como slot para guardar la partida)

Desde el menú de la tecla TAB podemos configurar nuestros controles, dentro de la opción "input settings"

6-Activando los hiscores
Para poder guardar nuestras puntuaciones en los juegos, y que estén ahí la próxima vez que juguemos MAME, vamos a hacer lo siguiente.

En las opciones globales de MAME, vamos a ir a la opción Plugins.



Ahí, vamos a activar la opción "Hiscore support"


Guardamos los cambios.
Entonces, abrimos el .ini de MAME y buscamos la sección "Scripting opctions"
En la opción plugin, vamos a escribir la variable "hiscore"


Listo. Con eso quedan activados los hiscores en los juegos.

7-Activar y ajustar el look retro con HLSL
Lo que nos ayudará a alcanzar un look retro muy mejorado, es el llamado HLSL o high level shader language, que en resumen, es un lenguaje de shaders o filtros de video para personalizar la imagen a niveles increíbles.

Lo primero que tenemos que hacer, es cambiar nuestro modo de video de MAME  a d3d, pues es el modo de video con el que funcionan los filtros. Esto lo podemos hacer desde dentro de los ajustes de MAME o directamente en el archivo ini, lo cual es más recomendable, ya que también tenemos que modificar la siguiente opción.
Eliminar cualquier filtro extra que no sea HLSL. Eso lo vamos a hacer cambiando en el archivo ini la opción de filter a 0.
Por lo que quedaría:

video d3d
filter 0

Lo siguiente que recomiendo es cambiar en el ini de cada juego, la opción hlsl_enable de 0, a 1.
Eso habilitará los efectos HLSL en el juego elegido.
Lo recomiendo de este modo, porque hay que hacer un fine tuning de los ajustes HLSL para cada juego. Puede que creemos una base en general para todos, pero habrá que ajustar individualmente las opciones para conseguir la imagen ideal para cada uno de los juegos. Sobre todo, en el caso de los juegos a pantalla horizontal y en pantalla vertical.

Con la opción habilitada, podemos entrar al juego y comenzar a experimentar con las variables que ofrecen los efectos HLSL. Para ello, basta con abrir el juego deseado y al estar en el juego, presionar la siguiente tecla:


Esta tecla, que en el teclado inglés se llama tilde y en el teclado español o latino, corresponde a otro símbolo totalmente. Pero la ubicación es la misma: arriba de TAB, abajo de ESC y a la izquierda del 1.

Con esa tecla vamos a abrir los "slider options" dentro del juego en MAME.
Vamos a comenzar con opciones comunes de volumen de audio, pero seguimos presionando tecla abajo hasta alcanzar las opciones gráficas.
La primera opción que veremos, será "screen brightness" a partir de ahí, son opciones gráficas con las que podemos jugar, experimentar y probar para conseguir el tipo de imagen que más te guste.

CONTROLES:
Con las teclas de arriba y abajo, te mueves entre las diferentes opciones y con las teclas izquierda y derecha disminuyes o aumentas la intensidad del efecto.
Si la izquierda y derecha se mueven demasiado lento, puedes combinarlas con SHIFT o CTRL para mover los sliders en intervalos mayores.

Recomiendo la lectura de la documentación oficial de MAME respecto al HLSL, donde se explica específicamente cada uno de los efectos y su uso: https://docs.mamedev.org/advanced/hlsl.html

Pero más aún que eso, recomiendo mirar este video:

Un video muy completo donde se muestran a detalle los diferentes efectos HLSL y una buena explicación de todo el tema en general.

IMPORTANTE #1: Todos los ajustes que hagamos con los sliders, MAME NO LOS GUARDARÁ.
Eso lo tenemos que hacer manualmente, mirando qué efecto modificamos y cuánto lo modificamos. Es decir, habrá que tomar nota del efecto y el valor numérico, para después volcar todos esos valores en el ini del juego y así lograr que se guarden los efectos HLSL.

IMPORTANTE #2: Entre otros, uno de los efectos que más usaremos para lograr el look retro, son los scanlines y las shadowmasks. Ambos tienen en común que a menudo, oscurecerán la imagen.
Para corregir esto, la opción más recomendada es incrementar un poco el valor del gamma.
Los puntos de referencia que debemos tomar en cuenta al ajustar el brillo y el contraste de un juego, es observar que los negros se vean negros y los blancos se vean blancos, es decir, que ninguno de estos colores se quede en un punto grisáceo. Que el negro no parezca un gris deslavado y que el blanco no parezca sucio, grisáceo.

También debo decir que, además de los efectos HLSL, otro set de efectos con el que pueden experimentar y lograr buenos resultados son los NTSC post-processing y para las máquinas de vectores, los vector post-processing y los efectos bloom.
Todos estos efectos, requieren que tengamos una tarjeta gráfica al menos decente, pues pueden llegar a ser demandantes en cuanto a recursos.
Irónicamente, lo realmente retro, requiere mucho poder tecnológico. Pero vale la pena, podemos obtener resultados asombrosos.

Sin HLSL. Pixeles muy puntiagudos, sin ningún suavizado, muy alejado de la imagen que daba un televisor o monitor CRT.

Con HLSL. Pura belleza y perfección retro. Pixeles suavizados, scanlines, efectos del brillo del bulbo, tal como en un viejo televisor.

A continuación, les voy a compartir mi plantilla de HLSL, basada en el juego de Snow Bros, Nick y Tom (un juego hermoso). Es la plantilla que yo uso de base para todos los juegos y a partir de ahí hago el fine tuning para cada caso específico.
También les comparto todo el archivo .ini del Snow Bros, por si quieren checar algún otro detalle.

Sin HLSL.

Mirad qué belleza, con HLSL.

Es que esto ya no se puede ver mejor, ni más retro, ¿no?
Pues sí, ¡aún quedan algunos trucos por revelar!
Pasamos a la siguiente sección.

8-Artwork
Además de los efectos HLSL, vamos a poner los últimos toques retro a nuestros juegos de MAME, con las opciones de artwork que tenemos disponibles. Específicamente, vamos a usar los bezels, que son esos marcos que rodeaban a la pantalla de un arcade y por lo general, tenían arte del mismo video juego. Esto nos servirá además, para cubrir las barras negras, que seguramente tengamos en nuestro monitor wide-screen, ya que todos estos juegos eran de un ratio de pantalla 4:3.
Y por último, también vamos a simular el cristal de una TV vieja, mediante un overlay.
Esto podría ser quizá ya demasiado retro o exagerado para algunos, pero para mí está más que bien. Verdaderamente me causa nostalgia ver los juegos de esta forma.

Los bezels los tendremos que crear nosotros, para ello, voy a compartir las plantillas de los bezels igualmente, y tenemos dos formatos: Bezel para juegos a pantalla horizontal, como Snow Bros y bezel para juegos a pantalla vertical, como son normalmente muchos juegos de naves o shooters. En el mismo paquete vienen los diferentes overlays que simulan una pantallas de televisión CRT.
Estos Bezels están diseñados en una resolución de 1920 X 1080. Si usas un monitor de menor resolución, no hay ningún problema. Si tu resolución es mayor, quizás tengas que escalarlos para que se vean bien.


Como se puede ver, la plantilla corresponde a un rectángulo con dos barras verdes a los lados.
Lo que nosotros tenemos que hacer, es mediante un programa de edición, como Photoshop, reemplazar las barras verdes, con el arte de los juegos, que normalmente podemos encontrar en sitios dedicados a MAME. Podemos googlear algo como "Snow Bros bezels MAME" y encontrar buenos resultados.
Por supuesto, si quieres colocar otro tipo de arte no hay ningún problema.
Lo único importante es reemplazar sólo el espacio de las barras verdes y guardar el archivo en formato PNG con las respectivas transparencias.


Yo por ejemplo, cree este bezel para los juegos de las tortugas ninja. El color púrpura en realidad es la parte de la transparencia.

Una vez creado nuestro bezel, vamos a crear una copia de la carpeta de la plantilla y la vamos a renombrar con el mismo nombre exacto que tiene nuestra ROM. Es decir, si nuestra ROM se llama "snowbros" la copia del folder de la plantilla también debe llamarse "snowbros".
Esta copia vamos a colocarla en el folder artwork, que se encuentra dentro del folder de MAME.

A continuación, vamos a lanzar el juego y...


Snow Bros con su hermoso Bezel.

Si por algún motivo no aparece el bezel, vamos a mostrar cómo activar o desactivar los bezels.
Primero, ejecutamos el juego.
Ya dentro del juego, presionamos la tecla TAB, para ir a las opciones.
Vamos a Video Options.


Screen #0 (la pantalla o monitor por defecto)


Ahí vamos a encontrar la opción para activar y desactivar los bezels.



Por último, vamos a aprender a activar y desactivar los overlays que vienen incluidos en el folder de plantillas.
Tenemos varias opciones que simular el cristal de televisores viejos y dañados con y sin el marco del televisor.

TV con marco

Cristal de TV


En lo personal, yo prefiero el cristal sólo, sin el marco.
Para activarlo, al igual que con los bezels, primero lanzamos el juego y una vez ejecutado, vamos a las opciones con la tecla TAB.

Video Options.


Screen #0 (la pantalla o monitor por defecto)


Lo primero que veremos es un listado con todos los overlays que tenemos disponibles.
Basta con seleccionar uno y presionar ENTER.


Para este ejemplo, vamos a utilizar el overlay llamado "Glass".
Y este es el aspecto final del juego:


Efectos HLSL + bezel + glass overlay para un auténtico look retro.

Justo como en los viejos tiempos.

Y este ha sido el tutorial del día de hoy.
Pienso repetir lo mismo con algunos otros emuladores, sobre todo en los casos en los que se puede ir más allá con el look retro de los video juegos, como ha sido el caso de MAME.
Así que, nos vemos hasta la próxima.
Cambio y fuera.

Comments