Introducción a la Emulación (y II)

Ahora que ya sabemos qué es y cómo funciona un emulador profundizaremos en los emuladores de Spectrum, en una visión global de los diferentes emuladores disponibles y la gran variedad de sistemas operativos en que corren.

Este mes nos centraremos en los distintos emuladores de Spectrum (al menos los más conocidos) para las diferentes arquitecturas mayoritarias. El objetivo es dar al lector que se introduce en el mundo de la emulación no sólo una lista de emuladores, sino también una guía de qué emulador puede elegir con respecto a sus necesidades. No todos los emuladores soportan los mismos formatos, y muchos de ellos están especialmente diseñados para cubrir carencias que otros tienen. Un ejemplo de esto sería el emulador Z80, que no es uno de los mejores actualmente, pero que sin embargo es de los pocos que nos van a permitir emular un Spectrum con mucha fidelidad en máquinas 486 (suponiendo que decidiéramos destinar uno de estos PCs antiguos a máquina-emuladora o sistema para correr juegos abandonware).


Lo primero que tenemos que hacer para trabajar con emuladores es seleccionar aquel más adecuado a la arquitectura que usamos. Desde PCs con Linux hasta ordenadores Amiga, pasando por consolas Playstation, tenemos una enorme gama de emuladores disponibles.

En la sección de emuladores de World Of Spectrum podremos descargar todos ellos. Pero… ¿cómo saber cuál es el emulador más adecuado para nosotros? Veamos un rápido comentario de algunos uno de ellos.

MS-DOS

  • Z80 (Gerton Lunter): uno de los primeros emuladores de Spectrum. Es shareware (hay que pagar y registrarse para obtener la versión completa) y tenía en su época características que lo hacían muy competitivo, como correr los juegos de Spectrum correctamente en un 486 a 33 Mhz. Existe una versión Windows llamada WinZ80 que también es shareware.
  • X128 (James McKay): Bajo MS-DOS, este era uno de los emuladores más utilizados en los primeros tiempos de la emulación de Spectrum en PC junto a Z80 y Spectrum. Soporta Sound Blaster y Adlib y tiene el código fuente disponible para la versión 0.5 (de forma que hay port de esa versión para Unix). Actualmente se acaba de retomar su desarrollo con una “tímida” actualización, aunque lamentablemente X128 sigue muy por detrás de otros emuladores que veremos posteriormente.
  • Warajevo (Zeljko Juric y Samir Ribic): desarrollado durante la guerra de Yugoslavia en Sarajevo, es un emulador muy completo que corre sobre MS-DOS. Pertenece a la misma línea temporal que los anteriores.
  • Spectrum (Pedro Gimeno): uno de los emuladores españoles más conocidos, desarrollado por Pedro Gimeno para la revista PCManía. Utiliza el formato de ficheros SP (snapshot) y emulaba el modelo de Spectrum 48K. Fue uno de los emuladores que más utilicé a título personal, de modo que no puedo desde aquí sino agradecerselo a su autor. Corre perfectamente en máquinas PC antiguas (como 486 y 386).
  • Spec256 (Íñigo Ayo y David Goti): La idea de los autores de este emulador (ya no tan antiguo como los anteriores) era de dotar de mayor colorido a los clásicos del Spectrum. Para ello programaron un emulador capaz de mostrar juegos empaquetados de una forma especial, en 256 colores. Para poder jugar en 256 colores era necesaria una modificación de los juegos (rediseñando y modificando los gráficos). Se pasaron a 256 colores una serie de juegos clásicos, pero posteriormente el proyecto no pareció avanzar más en este sentido, ya que requería trabajo por parte de gente que se dedicara a pasar los gráficos de los juegos a una versión de 256 colores. Este trabajo no sólo era gráfico, sino que requería encontrar y modificar los sprites originales en el juego.

Versión original para Spectrum

Versión a 256 colores para Spec256
  • R80 (Raúl Gómez): Otro emulador Español desarrollado por Raúl Gómez. Probablemente uno de los mejores para MS-DOS. Es limpio, tiene un buen sistema de menúes, emula casi a la perfección todos los juegos y la temporización de las instrucciones, y soporta casi todos los formatos de fichero existentes. R80 es un desarrollo de los últimos años, aunque parece estar parado por ocupación del autor.

  • RealSpectrum (RamSoft): Este emulador es probablemente el más usado para MS-DOS en la actualidad (junto a R80). El motivo radica en que RamSoft (los desarrolladores de RealSpectrum) dispone de información muy detallada sobre la ULA del Spectrum, lo cual le ha permitido emularla de una forma casi perfecta. Esto hace que muchos juegos y demos que no funcionaban en otros emuladores por motivos de temporización y por estar basados en trucos del Z80 no emulados, funcionen en RealSpectrum. Debido a esta compleja emulación, RealSpectrum requiere bastante potencia de procesador para funcionar al 100% (aproxidamente un Pentium 200 MMX o superior), mientras que algunos de los emuladores anteriores podían ejecutarse en 386 y 486 a 33 ó 66 Mhz. Este emulador incorporaba además un sistema de grabación de eventos llamado AIR que permitía grabar todo lo que sucedía en el juego (como si fuera un vídeo) de forma que otra persona puede reproducir este fichero en su RealSpectrum visionando la partida completa jugada por el primero. Esto es muy útil para mostrar recorridos completos de juegos, trucos, obtención de altas puntuaciones, o para la realización de concursos. Actualmente este fichero de grabación de eventos (el .AIR) ha sido reemplazado por el .RZX, como se vio en el artículo de emulación de Magazine ZX nº 1.
  • Bacteria (Antonio José Villena Godoy): Un emulador muy curioso, escrito completamente en ensamblador y que ocupa apenas unos cuantos KiloBytes. Está limitado por su tamaño (en opciones, formatos soportados, etc.) pero merece ser nombrado por ser probablemente el emulador de Spectrum más pequeño existente.

Si hemos de elegir un emulador para MS-DOS, la elección deberá basarse en el tipo de máquina que poseamos. Para máquinas poco potentes, Z80, Spectrum o X128 (siendo el mejor de los tres el primero de ellos, seguido de X128, por cantidad de opciones). Para máquinas potentes, Realspectrum o r80 (cualquiera de los 2).

Windows

  • ZX-32 (Vaggelis Kapartzianis): uno de los primeros emuladores para win32 (Windows95 y superior) que apareció. Bastante cómodo y sencillo de usar, aunque peca un poco de falta de opciones. Puede ser bueno para PCs antiguos (Pentium MMX), pero en cualquier otro tipo de procesador conviene utilizar cualquiera de los que veremos a continuación.
  • GLECK (Ignacio Burgueño): un emulador muy completo escrito por nuestro compañero Ignacio Burgueño. Lamentablemente su desarrollo está algo parado en el último año.
  • Es.pectrum (Javier Chocano): Completísimo emulador de Spectrum español, probablemente uno de los más sencillos de usar y configurar. Se instala a partir de un fichero ZIP y permite asociar (como la mayoría de los otros emuladores de Windows) las extensiones de ficheros típicos al emulador, de forma que al hacer doble click sobre ellos se abra el emulador con el Snapshot cargado en memoria, o con la cinta introducida y en modo de reproducción (aunque esta característica también la incorporan algunos de los otros emuladores para Windows).

Es.pectrum (paradójicamente, corriendo en un
emulador de Windows bajo Linux).
  • Spectaculator (Jonathan Needle): Probablemente es el emulador que más desarrollo ha sufrido en este año. Incorpora gran cantidad de funciones, la emulación es muy fiel y es el precursor del futuro formato de fichero de snapshot .SZX como estándar de snapshot entre los diferentes emuladores. Funciona en todos los sistemas Windows desde W95, y emula todo tipo de dispositivos hardware de Spectrum. Permite, como Es.pectrum, grabar ficheros .RZX.

  • SPIN (Paul Dunn, Mark Woodmass and Mark Boyd): en la línea de los demás emuladores de Windows: muy completo y con opciones que lo hacen especial, como la posibilidad de pasar texto desde el portapapeles al Spectrum tal y como si lo hubiéramos tecleado (incluso sabe pasarlo a modo 48K con las teclas y tokens adecuados). Tan recomendable como Es.pectrum o Spectaculator.
  • RealSpectrum (Windows) (Ramsoft): Versión Windows (DirectX) del emulador RealSpectrum (la versión DOS tenía problemas de sonido con ciertas tarjetas y no funcionaba correctamente bajo Windows 2000 y XP).

Realmente es muy complicado elegir un “mejor emulador” en esta plataforma. El consejo del autor es probar todos ellos y quedarnos con el que más se adapte a nuestros gustos de usabilidad y necesidades. Existen muchos otros no comentados, como Klive, que también cumplen sobradamente las funciones de emulación básicas. Probablemente Es.pectrum, SPIN y Spectaculator serán del agrado de la mayoría de los usuarios, por su sencillez y potencia.

UNIX/Linux

  • XZX Pro (Erik Kunze): Este emulador fue uno de los primeros emuladores de Spectrum en plataforma UNIX. Es shareware y requiere de registro para poder utilizar todas sus opciones, de modo que no es de los más populares. Soporta gran cantidad de formatos y opciones, y la emulación es en general buena.
  • Aspectrum (Santiago Romero, Álvaro Alea, Metalbrain): Este emulador de Spectrum creado por el autor de este artículo en estrecha colaboración con Alvaro Alea y Metalbrain (amén de la propia ayuda de Philip Kendall -FUSE-, Raúl Gómez -r80- e Ignacio Burgueño -Gleck- entre otros) es un emulador de Spectrum multiplataforma (Linux y DOS/Windows, principalmente) que emula el Spectrum 48K. Soporta los diferentes formatos clásicos, emula el sonido, y fue el primero en emular la pistola Gunstick mediante el uso del ratón. Pese a sus características, no puede competir con los 2 emuladores que veremos a continuación.

  • Glukalka (Dmitry Sanarin): este emulador ruso (que emula los modelos Pentagon y Scorpion, nacidos en ese país) es bastante completo pese a estar todavía en desarrollo. Soporta cintas y discos, permite aplicar filtros a la pantalla (para ver la imagen del Spectrum como en una TV), y tiene un debugger y un navegador de cintas avanzado.
  • FUSE (Philip Kendall): Sin duda el mejor emulador de Spectrum para plataformas UNIX, por varios motivos. El primero, estar escrito en puro C, siendo totalmente portable entre las diferentes plataformas (incluso se puede compilar en MS-DOS/Windows si se cambia el backend gráfico, como se ha hecho en PocketClive para PocketPC, que no es más que un port de FUSE). En segundo lugar, es libre (al igual que Aspectrum), es decir, podemos aportar cualquier modificación ya que disponemos del código fuente. Soporta todos los formatos de fichero clásicos (TAP,TZX,DSK,Z80…) y todos los modelos de Spectrum existentes (incluídos los rusos). Permite grabar y reproducir ficheros RZX, y apunta a convertirse en el emulador estándar de Spectrum para UNIX.

FUSE, the Free Unix Spectrum Emulator

Sin duda en plataformas UNIX, FUSE y Glukalka se muestran como los mejores emuladores, en ese orden.

Otras plataformas

No sólo de UNIX o Windows viven el hombre, de modo que también existen emuladores de Spectrum para las diferentes plataformas no mayoritarias (que siguen siendo felizmente usadas por muchos usuarios). A saber:

  • AMIGA
    • ZXAM (Toni Pomar)
    • ZX-Live (Dmitriy Zhivilov)
    • X128 (port por Paul Hill)
  • MACINTOSH
    • FUSE (Fredrick Meunier, port del emulador de Philip Kendall)
    • ZXSP-Mac (Günter Woigk)
    • MacSpectacle (Günter Woigk)
  • PALMOS, TEXAS, PSION y MÓVILES
    • MIZX, PALMSSEC y ZX-PILOT para PalmOS
    • ZX Emul para Psion 3 (Freeman)
    • Sinclair Spectrum Emulator para Psion 5 (Palmtop BV)
    • ZX9200 para Nokia Comunicator 9210 (WildPalm)
    • Tezxas (Samir Ribic) para Calculadora TI89 y TI92 plus

ZX Pilot para PalmOS

emulacion3_9.jpg

Un Spectrum en tu calculadora Texas Instruments
  • DISPOSITIVOS CON WINDOWS CE
    • Sinclair Spectrum Emulator (Palmtop BV)
    • PocketClive (por Anders Holmberg, port del FUSE de Philip Kendall)
  • CONSOLAS
    • Speculator (Gabriele Roncolato) para PSX
    • Spectrum (Anthony Ball) para PSX
    • DreamSpec (Bigboy) para Dreamcast y PS2
    • ZXAdvance (The Hive) y FooN (Ben Stragnell) para GBA
    • GPSpeccy, Speccyal'K y ZXGP32 para GP32.
  • OTROS
    • BeZX (port de ZXZ) y Beccy para BEOS.
    • ZX Spectrum Emulator (Christian Gandler) para Atari.
    • ZExcel: Emulador de Spectrum para el propio Sinclair QL

Emulador de Spectrum para Sinclair QL


Hemos dejado para el final los emuladores realizados en Java por la relativa importancia que tienen. En principio Java no es la plataforma ideal para desarrollar juegos y emuladores por diferentes razones técnicas, pero su portabilidad hace que disponer de emuladores en Java los ponga al alcance de cualquier tipo de dispositivos capaz de correr una máquina virtual de Java: desde móviles hasta PDAs, podremos jugar a nuestro Spectrum en cualquier lugar. Incluso algunas páginas incorporan un applet Java para jugar vía Web (sin instalar un emulador) los juegos de Spectrum que nos podemos descargar. Los emuladores existentes en este área son:

  • Hob (Nigel Barford)
  • Jasper (Adam Davidson y Andrew Pollard)
  • Spectrum Emulator For Java
  • JZ Speccy (Marzio De Biasi)
  • ZZ Spectrum (Troels Nørgaard)
  • JZX (Razvan Surdulescu)

Jasper: emulando el Spectrum en una página Web


Como hemos visto, existen gran cantidad de emuladores para una extensa selección de arquitecturas que seguramente cubrirán todas nuestras necesidades. Por otra parte, la existencia de emuladores portables en C y en Java asegura la disponibilidad del código fuente de los mismos para llevarlos a otras plataformas (como se ha hecho con FUSE de Philip Kendall).


  • Descarga todos los emuladores en WOS.
  • Juega a juegos de Spectrum online con un navegador con Java en Lovely.net.


Santiago Romero
Septiembre 2003
MagazineZX #3