Emuladores de Spectrum para GP32
Siempre hemos deseado tener un Spectrum en nuestras manos en cualquier momento. Al igual que en muchas ocasiones hemos tenido que ir corriendo urgentemente a un servicio, hemos tenido la misma sensación pero con la urgencia de correr a por un Spectrum. Vas a la tienda, compras un juego para tu Spectrum y… ¿tienes que esperar a llegar a casa para probarlo?
¡Pues NO! Ha llegado el momento de poder jugar con el Spectrum en el metro, la parada de autobús, la cola del INEM, o el baño. Si estás de viaje a más de 200 kilómetros de distancia del Spectrum más próximo, si te aburres soberanamente en la playa, si tu novia te abandona en mitad de un restaurante… ¡no temas! Sigue leyendo, pues este artículo te va a interesar, porque a todos nos interesa tener el poder en tu mano…
Con la aparición de las consolas portátiles se empezó a concebir la idea de desarrollar emuladores de máquinas antiguas en ellas. No sería hasta la aparición de la Game Boy Advance cuando se empezaron a hacer las primeras pruebas serias. La GP32, con una arquitectura más ideal para la creación de emuladores es, por el momento (y con el permiso de Nokia), la consola con mejores características para programar emuladores.
En la actualidad, existen 3 emuladores de Spectrum para la GP32. Vamos a pasar a analizarlos para ver hasta qué punto pueden convertirse en sustitutos portátiles de nuestros queridos Spectrums.
Los emuladores
GPSpeccy (versión comentada: 0.06)
Empezaremos con el emulador menos desarrollado de los tres. El GPSpeccy está programado por Zardoz Jones, algo que sabemos por lo que dice la pantalla de presentación (Figura 1) del emulador (la cual, por cierto, nos muestra la versión 0.05, cuando en realidad hemos descargado la versión 0.06). Y este no es el único error en cuanto a diseño del mismo. Tras la pantalla de presentación aparece una línea roja horizontal que atraviesa una pantalla totalmente negra. ¿Qué debería salir aquí? Pues muy sencillo. El emulador utiliza archivos con extensión SNA, pero ojo, sólo los de esta extensión de 48k no el formato SNA de 128k, algo por otra parte lógico si tenemos en cuenta que sólo emula el Spectrum de 48k.
Los juegos con esta extensión deberán estar grabados en la carpeta /GPMM/SNAP. Si no tenemos ningún archivo ahí, nos saldrá la pantalla antes comentada de una línea roja sin nada más. Si tuviéramos algún archivo grabado, saldrá un listado con los archivos para poder ejecutarlos.
En el caso de no tener ningún archivo, pulsando otro botón nos aparece una pantalla mucho más familiar (Figura 2): sobre un borde negro y un fondo blanco-grisáceo están los caracteres famosos del © 1982 Sinclair Research Inc.
Este modo es bastante inútil: el emulador se utiliza prácticamente como consola de videojuegos, siendo prácticamente imposible poder hacer algo con el teclado. En cualquier momento del emulador podemos pulsar el botón L de la consola y aparecerá ante nosotros una bonita reproducción del teclado del Spectrum (Figura 3). Con el stick podemos controlar la tecla que deseamos pulsar, y la seleccionamos con el botón A del emulador. Automáticamente saldremos a la pantalla del Spectrum con la tecla en cuestión pulsada. El problema es que el emulador no permite la pulsación de más de una tecla de forma simultánea, lo que nos impide escribir cualquier comando en el que sea necesario mantener pulsada la tecla Symbol Shift o la Caps Shift (aproximadamente, un 70% de los comandos existentes en el Spectrum). De ahí la inutilidad de este modo.
Si tenemos algún juego grabado en la tarjeta, lo podemos seleccionar de la lista con el botón A. El juego cargará inmediatamente. Si necesitamos pulsar alguna tecla, podemos acceder al teclado virtual mediante el botón L de la consola.
El programa emula el uso de varias configuraciones de teclas y del joystick Kempston mediante el uso del stick. Es realmente sencillo alternar entre un tipo de control y otro: pulsando únicamente la tecla R nos aparecerán sobreimpresionadas en pantalla las teclas usadas a partir de entonces. La configuración abarca las teclas O P Q A - M, N M Z X - Espacio, cursores, y joystick Kempston.
Pulsando el botón Select de la consola aparece el menú del emulador propiamente dicho (Figura 4). Las dos primeras opciones y la penúltima (Quick Save, Quick Load, y Reboot GP32) no tienen ninguna función en especial, puesto que su uso todavía no está implementado. La opción Vsync sirve para sincronizar el sonido, que aparece en la siguiente opción (Sound), con los gráficos. Por sí sola, el Vsync no afecta para nada al rendimiento del emulador, pero si se activa el sonido, es prácticamente obligatorio activar el Vsync.
El sonido del emulador merece un punto y aparte. Al emular únicamente al 48k, el sonido emulado es el del beeper. Sin embargo, el sonido está bastante mal emulado: existe mucho ruido y va a saltos, aun con la opción Vsync activada. Sin el Vsync activado el sonido es un auténtico caos. Esto explica que el sonido esté desactivado por defecto al iniciar el emulador.
Con Border se emula el borde de la pantalla del Spectrum, del mismo modo que se usaba el comando BORDER del BASIC del Spectrum. Fast CPU es utilizado para aumentar la velocidad del emulador en caso de juegos que vayan lentos, aunque la mejoría es muy leve y según qué juegos, apenas imperceptible. Profile nos muestra unas pequeñas indicaciones sobre el rendimiento del emulador en la pantalla del Spectrum. Por defecto, estas 3 opciones están desactivadas. La última opción, Back to Emu, nos permite volver al emulador.
En un principio, este emulador es el menos desarrollado y el más pobre en cuanto opciones. Es el único que no emula el modelo de 128k, su sonido es horrible y sólo permite cargar archivos con extensión SNA (ni siquiera admite TAP o Z80). Encontrar información sobre el emulador en la red es cosa harto complicada. No tiene página web (es el único así de los aquí comentados) y su única documentación se compone de un algo exiguo archivo de texto que viene con el emulador. También es cierto que este emulador fue el primero que salió de Spectrum para la GP32, y que su útlimo desarrollo data de hace más de un año. A favor del emulador, está su sencillez de uso: con 3 botones pulsados en la consola ya tenemos el juego funcionando en el emulador.
ZXGP32 (versión comentada: Beta 3)
El emulador ZXGP32 está bastante más desarrollado que el anterior. Incluye dos principales novedades con respecto al GPSpeccy: este ZXGP32 emula el modelo de 128k y además soporta los archivos con extensión Z80 y TAP, aparte de los SNA soportados en el anterior emulador. El archivo ejecutable del emulador (con extensión FXE) deberá grabarse en la carpeta GPMM de la SmartMedia. Junto con el ejecutable nos vendrán dos archivos de 16 Kb cada uno con las ROMs de los modelos de 48k y de 128k. Estos 2 archivos tendrán que ser grabados en una carpeta llamada ROMS dentro de la carpeta GPMM.
El emulador comienza con una decepcionante pantalla preliminar (Figura 5) de la pantalla de inicio del Spectrum 128k en su versión inglesa. ¿Dónde está lo decepcionante, si esta pantalla es la tradicional de este modelo de ordenador? Pues en el tiempo que tarda en mostrarse en la pantalla de la consola. La primera impresión que nos da este emulador es que es lento, muy lento, ya que la pantalla inicial tarda bastante en dibujarse.
Afortunadamente, es sólo una mala pesadilla. El emulador funciona al 100% de velocidad tanto en su modo 48k como en su modo 128k. Bien, de momento tenemos un emulador con su típica pantalla de presentación en modo 128k. ¿Qué podemos hacer ahora?
El problema del teclado en una consola se soluciona con un teclado virtual que aparece al pulsar el botón L. En esta ocasión no sale una reproducción del teclado del Spectrum, como sí ocurría con el GPSpeccy (y, como veremos más adelante, con el SpeccyalK). Aparece un pequeño recuadro en la parte inferior derecha de la pantalla con todas las teclas del Spectrum (Figura 6). La ventaja de este sistema es que se permite ver el teclado sin ocultar la pantalla del Spectrum, algo sumamente útil y rápido si tenemos que andar pulsando varias teclas para acceder a los distintos menús del juego.
El problema, en esta ocasión, es que con el tamaño tan pequeño de las teclas sólo nos aparecen las teclas principales, es decir, las letras, pero no los tokens del Spectrum. Así que si queremos ejecutar un PRINT con el emulador, tenemos que acordarnos que hay que pulsar la tecla P (al menos en modo 48k), porque en la representación del teclado virtual no aparece.
Otra gran ventaja de este teclado es que permite la pulsación de dos teclas a la vez, pudiendo acceder a la mayoría de los comandos del Spectrum en modo 48k. El modo de utilizar el teclado virtual es muy sencillo: con el stick de la consola manejamos un pequeño cursor que se posicionará encima de la tecla que deseemos. Para pulsar la tecla, hay que presionar el botón A de la consola. Si queremos mantener pulsada una tecla deberemos pulsar dos veces seguidas el botón A encima de la tecla en cuestión. Entonces se sombreará esa tecla y podremos pulsar cualquier otra para acceder al resto de comandos del Spectrum. Pero ojo: esto solo funcionará con SYMBOL SHIFT y con CAPS SHIFT. Para desactivar la pulsación de estas teclas hay que volver a pulsar dos veces seguidas el botón A.
De vuelta al emulador, pulsando el botón R de la consola nos aparecerá en la parte superior izquierda el número frames por minuto del mismo. Con el botón Select accederemos a un menú (Figura 7) donde podremos encontrar los archivos de imágenes que hayamos grabado previamente en la tarjeta SmartMedia. Estos archivos, como ya he comentado antes, deberán estar en formato SNA, Z80 (ambos son snapshots) o TAP (formato de imagen de cinta), y deberán estar grabados en la carpeta /GPMM/SNA creada a tal efecto. Aun así, es perfectamente posible navegar entre las carpetas de la tarjeta una vez dentro del emulador para buscar estos archivos.
Los archivos de snapshots (SNA y Z80) se cargan automáticamente una vez seleccionados, no ocurriendo lo mismo con los archivos en formato TAP, que es es necesario cargarlos mediante el cargardor del menú de inicio en modo 128k o mediante la instrucción LOAD “” que podemos ejecutar accediendo al teclado virtual en modo 48k.
Con el botón Start de la consola se accede al menú principal del emulador (Figura 8). La primera opción, Sound, permite activar o desactivar el sonido, pero sólo en el modo 48k. En el modo 128k el emulador carece por completo de sonido al no emular el chip AY-3-8912 de estos modelos. En modo 48k el sonido es aceptable, aunque en algunos juegos se noten algunos cortes algo molestos.
Con Map Button B tenemos la posibilidad de asignar una tecla del teclado virtual para usarlo con el botón B de la consola. Esto es extremadamente útil en muchos juegos en los que hay que pulsar una tecla para utilizar algún arma especial o alguna función específica del mismo. Con esta opción podremos definir cualquier tecla para que podamos usarla con el botón B de la consola.
En Model procederemos a seleccionar el modelo de Spectrum que deseamos emular. Por defecto viene el 128k, aunque en cualquier momento puede ser cambiado al modelo 48k. Siempre que haya un cambio de modelo el emulador se reiniciará. Reset Emulator permite resetear el Spectrum. En Render Mode se nos permitirá cambiar la velocidad de impresión en pantalla de los gráficos del Spectrum. Si es FAST, el emulador funcionará más rápido, pero algunos juegos que utilicen modos de pantalla no estándar pueden no funcionar. Con el modo ULA la emulación es más lenta, pero permitirá que estos programas que hacen llamadas no estándar tengan más posibilidades de ser ejecutados.
La opción Clock Speed permite configurar la velocidad del microprocesador de la consola: 66, 80. 120, o 132 Mhz. Es recomendable utilizar esta última opción, ya que permite jugar todos los juegos al 100% de su velocidad original aunque por ello la consola gaste más pilas. Save State graba las opciones que tengamos en ese momento activadas en el emulador, y por último Return to Emulator nos permite volver al emulador.
Este emulador supone un paso adelante en cuanto a calidad de los emuladores para Spectrum. La emulación está bastante bien conseguida, funcionando sin problemas la mayoría de los juegos. La ampliación de los formatos incluyendo el TAP, uno de los más extendidos, junto con el uso del modelo de 128k permite la utilización de prácticamente toda la biblioteca de soft existente para el Spectrum. El teclado virtual es un gran acierto, aunque la “desaparición” de los tokens pueda echar a más de uno hacia atrás. La falta de sonido en el modo 128k también influye negativamente, así como el control utilizado en el stick de la consola: únicamente se puede emular el joystick Kempston, quedando fuera todos los juegos que no utilicen este sistema de control. No son muchos pero, por desgracia, con este emulador es imposible jugar a algunas joyas de la programación de 8 bits como La Abadía del Crimen, que no permite utilizar joystick, dejándonos un programa totalmente inservible para este emulador.
Speccyal K (versión comentada: 0.6)
El emulador más potente de todos y el más conseguido. Las mejoras del ZXGP32 son aquí recogidas y ampliadas con otras, entre la que destaca más la emulación del sonido de los modelos de 128k. Los formatos utilizados son los mismos que el anterior emulador: SNA, Z80, y TAP, a los que hay que añadir SLT (no muy extendido, pero con posibilidad de cargar juegos multicarga, como el TAP), y SCR (pantallas de presentación del Spectrum).
El ejecutable FXE deberá grabarse en la carpeta GPMM, junto con las 2 ROMs (como el ZXGP32, el SpeccyalK viene con 2 archivos con las ROMs de los modelos de 48k y 128k). Los archivos de juegos podrán instalarse en cualquier sitio de la SmartMedia.
El inicio del emulador es prácticamente idéntico al del GPSpeccy: la pantalla de inicio del Spectrum 48k con un borde de color negro (Figura 9). Por defecto éste será el modelo de Spectrum que será emulado. Bien, empecemos a “desgranar” este emulador.
El teclado virtual (presionar Select para activarlo) es muy parecido al del viejo GPSpeccy (Figura 10), con alguna sustancial mejora. De nuevo vemos una fiel reproducción del teclado original del Spectrum 48k. Con el stick podemos posicionarnos en cualquier tecla y pulsar el botón B para que aparezca en el emulador. Pero si nos fijamos un poco más, en la parte superior de la pantalla aparece el mensaje Caps Shift Off y Symbol Shift Off. Pues bien, eso significa que podemos pulsar varias teclas a la vez de forma parecida a como se podía hacer en el ZXGP32. En la pantalla del teclado virtual podemos pulsar el botón L para activar el CAPS SHIFT y el botón R para activar el SYMBOL SHIFT. Para desactivar el uso de estas teclas hay que pulsar de nuevo los botones L y R.
Dentro del emulador, con el botón R, podremos navegar por las carpetas de nuestra tarjeta (Figura 11) para seleccionar el archivo que deseemos cargar. Al igual que en anteriores emuladores, los archivos SNA y Z80 (y ahora también los SLT) se cargarán de forma automática cuando los seleccionemos, mientras que el formato TAP y el SCR no podrán ser cargados hasta que no realicemos las instrucciones de carga pertinentes para cada uno de ellos (LOAD “” en el caso de los TAP y LOAD “” SCREEN$ en el caso de los SCR). En caso de no querer cargar ningún archivo, bastará con pulsar el botón B de la consola para salir de esta opción.
El botón L por sí solo no tiene ninguna función definida en el emulador. Y el botón Start resetea de forma directa el Spectrum. Las opciones, que son la parte más importante de este emulador, se activan con la pulsación simultánea de los botones L y R de la consola (Figura 12).
Se puede navegar a través de las distintas opciones del emulador con el stick, activarlas/desactivarlas con el botón A, y volver al emulador con el botón B. La primera opción nos permite elegir el modelo de Spectrum que queremos emular. Por defecto nos viene el modelo 48k.
Las siguientes 4 opciones nos deja utilizar el stick como un joystick Sinclair 1, Sinclair 2, cursores, o mejor todavía, remapear cualquier dirección y botón de la consola. Esto es sumamente útil para juegos como el ya citado Abadía del Crimen, que no tiene posibilidad de jugar con joystick ni tampoco de redefinir las teclas. Si el emulador no permite redefinir el teclado, ¿por qué no hacerlo el emulador?. Por desgracia, no existe la opción de emular el joystick Kempston en este emulador, siendo el Kempston uno de los interfaces para joysticks más usados en los Spectrum reales.
En Border Emulation se nos permite activar/desactivar la emulación del borde del Spectrum. Reboot GP32 nos reinicia la consola (cuidado con pulsar esta opción por error, que está muy metida entre otras opciones). Fast Rendering permite, si está activada, ejecutar más rápidamente las instrucciones gráficas del Spectrum para ganar velocidad, sacrificando para ello la compatibilidad.
Use frameskip hace que el emulador no dibuje algunos movimientos en pantalla (o frames) para ganar velocidad en caso de juegos que vayan lentos con el emulador. Y el Fullscreen Mode permite poner el emulador a pantalla completa, aunque para ello sea necesario perder las proporciones de los píxeles en la pantalla, quedándonos una imagen ligeramente distorsionada.
A priori, este emulador se nos antoja como el emulador más completo de los existentes para la GP32. Es el que más formatos soporta, el que emula los modelos de 48k y de 128k incluyendo (a diferencia del ZXGP32) sonido en el modo 128k. El sonido en modo 48k es muy bueno, el más cristalino de todos. El modo 128k el sonido está bastante bien, con buena calidad, aunque en este caso hemos encontrado algunos programas que se resisten a funcionar con sonido, obsequiándonos con una buena colección de chirridos y bocinazos que nos obliga a bajar el volumen de la consola al máximo (el emulador no permite desactivar el sonido).
Aunque el autor del emulador asegura haber utilizado el core del MAME para emular el Z80 del Spectrum, hemos comprobado que el emulador ofrece serios problemas de compatibilidad. En ocasiones, estos problemas son ocasionados más por el propio funcionamiento del emulador que por la emulación del Z80 en sí. Por ejemplo, hemos visto cómo un juego se resiste a cargar una y otra vez y no lo hace hasta que no reseteamos el emulador con el botón Start.
Algunas opciones tampoco funcionan como deberían, como poner la pantalla completa (a veces funciona, a veces no), o una opción que viene documentada en el archivo adjunto al emulador y que no hemos comentado aquí, que se trata de, pulsando simultáneamente los botones L y Select, grabar un snapshot del emulador. A pesar de las distintas pruebas que hemos realizado, en ninguna hemos obtenido éxito.
Tabla comparativa de los emuladores
Como se puede apreciar en las tablas, a los 3 emuladores les faltan bastantes cosas para poder llegar a ser buenos emuladores. El SpeccyalK, el emulador más completo, tiene como asignatura pendiente la compatibilidad. Y los 3 emuladores están muy lejos de los actuales emuladores de Spectrum que están saliendo para PC, e incluso están lejos de otros emuladores que han salido para la GP32 y que, en teoría, emulan máquinas más potentes. Para pasar el rato pueden servir, sobre todo teniendo en cuenta que son portables, pero ni mucho menos son capaces de sustituir a las máquinas originales.
Los juegos
Para comprobar el verdadero potencial de cada emulador, hemos decidido hacer una serie de pruebas ejecutando varios juegos de Spectrum en ellos. Se han escogido los siguientes juegos:
- Un juego clásico: el Manic Miner
- Un juego difícil de emular: el Cobra
- Un juego multicarga: el Gauntlet
- Un juego de 128k: La Abadía del Crimen
Manic Miner
GPSpeccy
- Gráficos: Correctos. Se ve perfectamente, sin que haya gráficos corruptos ni nada por el estilo.
- Sonido: Regular. Se oye algo de ruido de fondo. El sonido es estridente.
- Controles: Correcto. Se juega perfectamente con la opción de cursores.
- Jugabilidad: Regular. El juego es perfectamente jugable, pero no va al 100% de velocidad, aunque se queda cerca. No hay cuelgues ni reseteos.
ZXGP32
- Gráficos: Correctos. El juego tiene los mismos gráficos que el original del Spectrum.
- Sonido: Regular. La música de la presentación se oye perfecta, pero la música durante el juego ha desaparecido. Los efectos sonoros se oyen con bastante retraso respecto a los movimientos del juego.
- Controles: Correcto. El juego se maneja perfectamente con el stick de la consola.
- Jugabilidad: Correcto. Va al 100% de velocidad. No hay cuelgues ni reseteos.
SpeccyalK
- Gráficos: Correctos. Sigue la costumbre del resto de emuladores de emular perfectamente el grafismo del juego.
- Sonido: Regular. Tanto la música del principio como la del juego y los efectos sonoros están bien conseguidos. El problema es que al acceder al menú principal y volver al juego, la música desaparece por arte de magia, fruto de alguno de los tantos bugs que tiene este emulador.
- Controles: Correcto. El juego funciona a la perfección con el joystick Sinclair emulado.
- Jugabilidad: Correcto. Va al 100% de velocidad. No hay cuelgues ni reseteos.
Cobra
GPSpeccy
- Gráficos: Correcto. Se emula pefectamente el grafismo del juego.
- Sonido: Regular. La música está bien representada, pero se oyen algunas interferencias.
- Controles: Correcto. Se juega perfectamente con la opción de joystick Kempston.
- Jugabilidad: Regular. El juego es perfectamente jugable, pero no va al 100% de velocidad, aunque se queda cerca. No hay cuelgues ni reseteos.
ZXGP32
- Gráficos: Regular. Aunque los gráficos se ven bien representados, hay un excesivo parpadeo de algunos de ellos que no existe en un Spectrum real.
- Sonido: Correcto. Tanto la música del inicio como los efectos sonoros son bastante correctos.
- Controles: Correcto. El juego se maneja perfectamente con el stick de la consola.
- Jugabilidad: Correcto. Va al 100% de velocidad. No hay cuelgues ni reseteos.
SpeccyalK
- Gráficos: Correctos. Se ven perfectamente los gráficos del juego.
- Sonido: Regular. Tanto la música del principio como la del juego y los efectos sonoros están bien conseguidos, pero vuelve ocurrir lo mismo que con el Manic Miner: si se accede al menú principal, se pierde la música.
- Controles: Correcto. El juego funciona a la perfección con el joystick Sinclair emulado.
- Jugabilidad: Correcto. Va al 100% de velocidad. No hay cuelgues ni reseteos.
Gauntlet
GPSpeccy
Imposible determinar el funcionamiento del juego bajo este emulador al ser un juego multicarga en formato TAP, el cual no está soportado por este emulador.
ZXGP32
- Gráficos: Correctos. El grafismo del juego es idéntico al original.
- Sonido: Mal. La versión 128k no tiene sonido.
- Controles: Correcto. El juego se maneja perfectamente con el stick de la consola.
- Jugabilidad: Correcto. Va al 100% de velocidad. No hay cuelgues ni reseteos. No hay problemas para cargar las distintas fases desde el archivo TAP.
SpeccyalK
- Gráficos: Correctos. No hay gráficos corruptos.
- Sonido: Correcto. El sonido de 128k se oye a la perfección con gran nitidez.
- Controles: Correcto. El juego funciona a la perfección con el joystick Sinclair emulado.
- Jugabilidad: Mal. El juego es incapaz de cargar las distintas fases del archivo TAP, por lo que este juego es imposible de jugar en este emulador.
La Abadía Del Crimen
GPSpeccy
Imposible determinar el funcionamiento del juego bajo este emulador al ser un juego para 128k, modelo que no es emulado por este emulador.
ZXGP32
- Gráficos: Regular. Aunque el grafismo es correcto, al pulsar algunas teclas con el teclado virtual los gráficos se descomponen ligeramente.
- Sonido: Mal. Este emulador no soporta sonido en los modelos de 128k.
- Controles: Mal. Imposible de manejar con el teclado virtual. El juego no tiene soporte para joystick Kempston, que es el único emulado por el ZXGP32.
- Jugabilidad: Mal. Al no poder manejar al protagonista, el juego es totalmente injugable.
SpeccyalK
- Gráficos: Regular. Ocurre lo mismo que con el ZXGP32: al pulsar algunas teclas los gráficos se descomponen.
- Sonido: Regular. La música está bien conseguida, pero en ocasiones se satura y “chirría” bastante.
- Controles: Correcto. El juego funciona a la perfección con el stick de la consola mapeado con algunas teclas.
- Jugabilidad: Correcto. Va al 100% de velocidad. No hay cuelgues ni reseteos.
Enlaces
- Página web en castellano con bastantes emuladores y foros para la consola.
Y, por supuesto…
- Página web con TODO lo relacionado con el Spectrum, incluidos miles de archivos SNA, Z80, y TAP usados por estos emuladores: World Of Spectrum (WOS).
Noviembre 2003
MagazineZX #4