Archivo por meses: noviembre 2010

MAMEmania, Capítulo I: ¿Qué es MAME?

Bajo el nombre de MAMEmania publicaremos una serie de artículos en los que comentaremos los juegos más destacados para el archiconocido emulador MAME, cada uno de ellos centrado en algún tema o género en concreto. Pero antes de meternos en los juegos, quizá algún despistado se pregunte, ¿qué es MAME?

Un poco de historia

MAME Logo

MAME significa Multiple Arcade Machine Emulator y su objetivo es el de reproducir de la manera más fiel posible una multitud de juegos arcade en sistemas más modernos de propósito general — como puede ser un PC. En la actualidad, MAME puede emular miles de juegos de recreativa, desde los más antiguos con una CPU simple hasta los más actuales que muestran gráficos en 3D.

El propósito principal de MAME es el de preservar décadas de historia de los videojuegos, evitando que muchos juegos retro se pierdan y olviden — de hecho, la posibilidad de jugar es vista como sus desarrolladores como ‘un agradable efecto secundario’. Esto se consigue documentando el hardware y su funcionamiento; el propio código fuente de MAME es dicha documentación. Esto tiene otra implicación: MAME ahora es el ‘hardware’ sobre el que funcionan estos juegos. No se trata de ports, ni versiones, son exactamente los mismos juegos de recreativa con todos sus bugs, ralentizaciones y peculiaridades del original.

El proyecto MAME nace un 5 de febrero de 1997, cuando el desarrollador italiano Nicola Salmoria decide liberar la versión 0.1 de este emulador. En el readme adjunto se podían conocer los juegos soportados y su nivel de emulación:

Game Playable? Accurate colors? Sound?
Pac Man Yes Yes Yes
Ms Pac Man (bootleg) Yes Yes Yes
Crush Roller Yes No Yes
Pengo Yes Yes Yes
Lady Bug Yes Yes Partial

Eso es, cinco juegos, todos ellos basados en el mítico procesador Z80 de Zilog, lo cual facilitaba la emulación de estas y otras placas arcade similares. A partir de ahí, más desarrolladores se fueron incorporando al proyecto, posibilitando la documentación y soporte de una mayor cantidad de hardware (y por tanto de juegos), añadiendo nuevas características al emulador y expandiendo el proyecto MAME en general. Algunas fechas importantes, extraídas del ‘MAME Project Timeline’:

  • 18 de febrero de 1997: primera versión de MacMAME liberada (versión 0.4 de MAME). Hasta entonces, MAME solo corría en PCs bajo DOS.
  • 20 de abril de 1997: se hace check-in de la primera versión de XMAME (0.18), funcionando desde este momento en sistemas con soporte X11, como Unix (y Linux posteriormente).
  • 3 de mayo de 1998: empieza la política de betas públicas; anteriormente los usuarios tenían que esperar meses entre versiones (0.33b1)
  • 16 de agosto de 1998: primera aparición de juegos de Neo Geo, hecho de gran controversia (0.34b1)
  • 6 de noviembre de 2000: se añade soporte a la primera CPU de 32-bits (68EC020) (0.37b9)
  • 24 de mayo de 2001: Windows sustituye a DOS como plataforma primaria de desarrollo (0.37b15)
  • 6 de abril de 2003: se añade el primer núcleo con recompilación dinámica (MIPS3) (0.67)
  • 11 de noviembre de 2003: se añade la emulación de 3DFX Voodoo (0.77)
  • 7 de abril de 2005: nace mamedev.org, web oficial del equipo de desarrollo de MAME.
  • 5 de febrero de 2007: se implementa por completo el descifrado de CPS2 (0.112).

En el siguiente gráfico (click para ampliar) se puede comprobar como el proyecto MAME ha crecido hasta convertirse en el más importante en el ámbito de la emulación: de los 5 juegos soportados en la versión 0.1 se ha llegado a más de 4000 títulos únicos en la actualidad.

MAME Num Juegos

¿Qué necesito para usar MAME?

El primer ingrediente obvio es… el propio MAME. Los binarios oficiales están compilados para ser ejecutados en PCs con Windows. Según sus desarrolladores, los requisitos mínimos son:

  • Procesador Intel o AMD con soporte MMX (se recomienda Pentium III o superior)
  • Windows 98 o superior (mejor a partir de Windows 2000)
  • DirectX 5.0 o superior.
  • Tarjeta gráfica compatible con DirectDraw o Direct3D.
  • Tarjeta de sonido compatible con DirectSound.

Es decir, cualquier PC de este siglo sirve perfectamente :] Hay que aclarar que, dado que estos requisitos son mínimos, no cualquier juego va a funcionar a la velocidad original en cualquier ordenador. Esto es especialmente cierto en los títulos más recientes con gráficos 3D o varias CPUs. Recordemos que el objetivo del proyecto MAME es documentar y preservar juegos arcade de la forma más fiel posible; esto implica emular toda función de la CPU original, hardware de video, audio y cualquier otra cosa presente en la placa original — algo imposible de hacer con alta calidad y rápidamente al mismo tiempo. Debido a su filosofía, MAME no tiene hacks en su código, ya que si bien acelerarían la ejecución de algunos juegos, lo harían inmantenible para los desarrolladores e inútil en su propósito de ‘guardián del hardware original’.

Aparte del MAME oficial para Windows, existen algunos ports para otros sistemas operativos con una buena frecuencia de actualización.

  • SDLMAME: un port basado en SDL que puede funcionar en Linux, MacOS X y otras plataformas (actualmente no existe un proyecto SDL separado, sino que forma parte del MAME oficial)
  • MAME OS X: un port nativo de MAME para MacOS X.

Además, existen otros ports más exóticos de MAME que funcionan en teléfonos móviles o consolas.

Aparte del propio MAME, para jugar necesitamos juegos, por supuesto. Dado que se obtienen volcando la información de los chips ROM presentes en las placas arcade, reciben comunmente el nombre de ROMs. Existen diferentes formas de obtener estas ROMs:

  • Unas pocas ROMs están disponibles con permiso de los propietarios del copyright en mamedev.org. También se puede descargar con permiso de Gaelco su World Rally.
  • Puedes comprar tu propia placa arcade (en eBay por ejemplo) y un lector de ROMs y volcar su contenido para tu uso personal.
  • La que todos estáis pensando 😛 Que será parte del contenido en próximas entregas.

Para algunos juegos, además de las propias ROMs, necesitaremos la BIOS de la placa sobre la que funciona; este es el caso, por ejemplo, de Neo Geo.

Vale, ¿pero a qué voy a poder jugar?

Como hemos dicho, en números brutos MAME soporta actualmente unos 4000 juegos únicos, aproximadamente 9000 si se tienen en cuenta las distintas versiones existentes para cada uno de ellos. Esto en la práctica se traduce en que MAME soporta y hace funcionar casi cualquier ‘clásico’ arcade (de antes del 2000, digamos), mientras que los títulos más recientes o ni están soportados, o lo están pero no funcionan o lo hacen con lentitud y/o errores. Incluso, algunos juegos más antiguos puede que tampoco funcionen (o lo hagan incorrectamente o de forma limitada), debido a ciertas dificultades en la emulación de su circuitería analógica. Aunque lo parezca, el panorama no es para nada desolador: estos son algunos de los juegos que funcionan perfectamente, tal y como fueron concebidos, en MAME: