Retroecetia Especial: MAME, 15 años de un proyecto increíble

Siena, la ciudad italiana es famosa por muchos hechos históricos. Uno de los más remotos teñido de leyenda cuenta que el lugar fue fundado por Asquio y Senio hijos de Remo, cuyo hermano, Rómulo fue el fundador de Roma. Este hecho se destaca por toda la ciudad que está plaga de estatuas representativas de la loba alimentando a los dos famosos hermanos gemelos. Casualmente esta misma ciudad nació Nicola Salmoria creador de uno de los proyectos Open Source más grandes, mejor realizado y más longevo relacionado con el mundo de los videogames y que todos conocemos como MAME y que en conceptos de emulación e ingeniería reversa es casi similar a la fundación de Roma.

¿Qué es MAME? es es quizás la pregunta más difícil y la más simple de contestar, MAME, como su nombre lo indica es un emulador múltiple de máquinas arcade, o sea MAME es el acrónimo de Multiple Arcade Machine Emulator. Lo que esto significa es que es un software dedicado a reproducir el funcionamiento de la mayor cantidad posible de hardware de máquinas recreativas en otras plataformas. En palabras de jugador, con MAME podemos jugar, por ejemplo, al Pacman original exactamente igual que en su hardware nativo en cualquier sistema que soporte el emulador. Lo increíble de esto es que MAME está soportado por un increíble numero de plataformas que van desde la más humilde PC, muchísimos modelos de teléfonos --no necesariamente smartphones--, decenas de consolas y otros soportes de lo más inimaginable posible, tal es así que hay versiones de MAME para algunos modelos de cámaras fotográficas.

MAME se originó, como decíamos en la ciudad de Siena de manos de Nicolia Salmoria quién estuvo al frente del proyecto hasta el año 2003, aunque tuvo un breve período donde fue reemplazado por su compatriota Mirko Buffoni ya que Nicola tuvo que cumplir con el servicio militar. A partir del 2003 se hizo cargo uno de los principales colaboradores del proyecto, David Haywood quién mantuvo la batuta hasta el 18 de abril del 2005, cuando se hizo cargo Aaron Giles que es el que lleva adelante todo los asuntos de coordinación del proyecto.

MAME debe parte de su vida a Allard van der Bas quien tuvo la genial idea de fundar un repositorio de código para la emulación de máquinas arcade llamado Arcade Emulation Programming Repository lugar de donde salió Multi-Pac un emulador pensado para correr Pacman y otros juegos que corrían bajo el mismo hardware. Este emulador fue el puntapié inicial para el proyecto MAME que decidió tomar el mismo como base y cambiar el nombre ante la creciente lista de juegos que comenzaban a soportar.

El 5 de Febrero de 1997, hace 15 años y pocos días se libera la primera versión pública de MAME , que llevaba el humilde número de versión 0.1. Y era el inicio de una larga serie de entregas las cuales se repiten mes a mes hasta el día de hoy que se cuenta la versión 0.145u3. En la versión 0.1 se emulaban los siguientes juegos:

  • Pac Man
  • Ms Pac Man (bootleg)
  • Crush Roller
  • Pengo
  • Lady Bug (parcialmente, aún existían algunos problemas con el sonido)

En la versión 0.145 que salió precisamente el 5 de febrero de este año para festejar los 15 años se soportan más de 18500 ROMS, y más del 90 por ciento de las mismas emuladas al 100%, impresionante ¿no?. En el gráfico a continuación se puede apreciar la progresión casi geométrica de la cantidad de juegos emulados desde el inicio hasta el año 2007, cuando el emulador cumplió 10 años:

Quizás muchos no tengan la real dimensión de todo esto, el proceso de emulación suele ser muy complicado, implica un conocimiento muy profundo del hardware a emular y otro similar de la plataforma donde se emula. Hacer emuladores que ejecuten de forma óptima y con el mayor aprovechamiento de recursos es probablemente uno de los mayores desafíos de cualquier programador que se precie. Es por eso que MAME es uno de los proyectos bandera de como debe hacerse ingeniería reversa y ha servido de inspiración a los cientos de emuladores de otras plataformas, de hecho el hermano directo es MESS --Multi Emulator Super System-- un proyecto similar pero que pretende emular cualquier sistema aparecido hasta la fecha incluyendo consolas.

La filosofía detrás de el emulador es casi una religión, según sus propios creadores MAME es estrictamente un proyecto sin fines económicos. El propósito principal es ser una referencia de la forma de trabajar de las máquinas emuladas. Está hecho para propósitos educativos y de preservación, para evitar que muchos juegos históricos desaparezcan una vez que el hardware que los ejecutaba dejara de funcionar. Obviamente, para preservar los juegos y demostrar que el comportamiento del mismo es igual al original debe permitir jugarlos. Esto es considerado un efecto colateral beneficioso pero no es el foco primario de MAME.
No es la intención de los desarrolladores infringir ningún tipo de copyright o patentes de los juegos originales. Todo el código de MAME está disponible libremente bajo una licencia que permite su uso para cualquier otro producto pero que no puede usarse de ninguna forma comercial. No hay ninguna porción del código original del juego emulado en el archivo ejecutable, es por esto que para poder usar un juego en MAME es necesario disponer de la ROM o imagen del disco correspondiente del juego que se pretenda jugar.

Otro efecto colateral de MAME es que surgió todo una movida de hobbistas que se dedican a armar sus propios gabinetes para tener sus propios arcade en su casa lo cual mueve todo una industria de accesorios como botones, joysticks, trackballs, etc, que se usaban en las máquinas originales y hoy día se compran para mantener estas máquinas hechas por gente que realmente ama los videojuegos. Uno de los más populares es Arcadecab.com que se encarga de vender todos los accesorios y proveer proyectos para armarnos nuestro propio gabinete en nuestra casa.

Tengo la suerte de haber probado MAME desde su primera versión, todavía se me eriza la piel cuando cargué el Commando por primera vez en mi añeja 386 y me hizo poner mi primera ficha solamente presionando un botón. Gente como Nicola Salmoria merece estar en el podio de los grandes desarrolladores de videojuegos por el gran legado que nos deja MAME y su increíble coordinación que permite que miles de personas trabajen en un único software a lo largo de todo el planeta de la forma más desinteresada posible sólo por el placer de ver ese juego que tanto amaban en su infancia corriendo de nuevo en su computadora.