Emulando a los clásicos (II)

Voy a seguir con esta serie que estoy dedicando a los emuladores de plataformas antiguas de hardware y software. En este artículo -continuación del primero- vuelvo a ocuparme de la emulación del ZX Spectrum, el mítico micro-ordenador que Sir Clive Sinclair lanzó allá por 1982. La aplicación que traigo hoy es otro emulador del ZX, pero bastante más completo y elaborado que el anterior. Se llama FUSE y, en esta ocasión, se trata de una aplicación gráfica multi-plataforma 1 a la cual se puede acceder, tras haberse instalado, desde el menú de escritorio. Para ello deberemos instalar previamente los siguientes paquetes:

$ sudo aptitude install fuse-emulator-gtk spectrum-roms

FUSE permite emular con precisión casi todas las versiones oficiales de Spectrum que fueron lanzadas a lo largo de los años 80 (16K, 48K -incluyendo la variante NTSC-, 128K, +2, +2A y +3); y emula bastante bien a otras versiones, clones oficiales y piratas 2 (+3e, SE, TC2048, TC2068, TS2068, Pentagon 128, Pentagon “512” -Pentagon 128 modificado con memoria extra-, Pentagon 1024 y Scorpion ZS 256).

Interfaz

Como puede verse, la interfaz consiste en una ventana pequeña que incluye una barra de menú y otra de estado. Dado que muchas de las teclas de nuestro ordenador están dedicadas a la emulación del teclado del Spectrum, la principal forma de controlar la interfaz de FUSE es a través de los menús, aunque también hay atajos de teclas de función para algunas opciones de menú.

En la barra de estado (que puede verse en la captura anterior) se muestra una fila de iconos y mensajes indicativos, que, comenzando por la izquierda, son estos:

  • modelo de máquina: indica la versión de Spectrum que está emulando. Cada vez que se ejecuta, FUSE empieza emulando, por defecto, al Spectrum 48, pero se puede modificar mediante la opción de menú MachineSelect... (o pulsando F9), y seleccionando la máquina que deseemos en la ventana emergente. Aunque no es posible elegir cualquier máquina, pues las ROMs 3 correspondientes al modelo Spectrum +3e y a casi todos los clónicos (salvo el Timex TC2048) están fuera de nuestro alcance debido a que no se incluyen en el paquete spectrum-roms. Es importante saber qué máquina Spectrum está emulando FUSE en cada momento, pues de ello depende que la ejecución de un juego pueda funcionar, ya que cada juego fue programado para un modelo concreto con unas prestaciones determinadas. Luego explico como saber a qué máquina corresponde cada juego que nos descarguemos
  • ratón: icono en forma de ratón que se “ilumina” cuando se encuentra activada la emulación de la interfaz del ratón Kempston a través del ratón de nuestro ordenador. Se puede activar mediante OptionsPeripheralsGeneral.., y seleccionando la opción Kempston mouse; tras pulsar en Aceptar se nos pedirá confirmación para reiniciar la máquina emulada (reset). Hasta ahora no he encontrado ninguna aplicación a esta funcionalidad; cuando activo el ratón, su cursor desaparece pero no logro interactuar con ningún juego, por más que lo mueva o pulse sus teclas. Para desactivar esta emulación se debe pulsar el botón central (la rueda) o bien la tecla Esc.
  • pausa: se activa al hacer pausa en el emulador, lo cual se consigue ejecutando el comando de menú MachinePause..., que detiene la ejecución del programa emulado que se esté ejecutando. Para desactivarlo se vuelve a ejecutar el mismo comando.
  • cinta: se activa durante el proceso de carga de un fichero de cinta.
  • velocidad de emulación: indica la rapidez con la que FUSE intenta emular al Spectrum en la ejecución de cualquier programa; el valor mostrado se expresa como el porcentaje de la velocidad a la cual se ejecutaría realmente dicho programa en la máquina emulada. Normalmente suele ser el 100%.

Pasos previos

configuración ventana

Eligiendo el tamaño de ventana

Nada más arrancar el emulador, debemos establecer el tamaño que queremos para la ventana de la interfaz, que por defecto se abre con el tamaño Normal que es el más pequeño posible. Se puede ampliar mediante el menú OptionsFilter..., seleccionando la opción correspondiente al tamaño que queramos. Con elegir Double size o Triple size será suficiente en la mayoría de los casos.

Si no disponemos de mando para jugar (joystick) quizás nos interese controlar el movimiento de cualquier juego mediante cualquier combinación de teclas del teclado, lo haremos a través de OptionsJoysticksKeyboard...; se abrirá una ventana en cuya parte derecha podremos asignar una tecla a cada botón de dirección (up, down, …) y otra al botón Fire (el botón de disparo). No estoy muy seguro de si es buena idea seleccionar en Joystick type la opción Cursor para poder usar las teclas del cursor de movimiento en cualquier juego o utilidad; podríamos hacer una prueba y luego decidir en función del resultado. Yo lo tengo asignado a none.

configuración teclado

Ventana de configuración del teclado en FUSE

Y ya solo nos falta lo más importante: descargarnos las “cintas” de los programas que vamos a ejecutar en nuestro Spectrum. En el artículo anterior hice referencia a la web ComputerEmuZone para la descarga de juegos en formato cinta (principalmente tap) para Spectrum; en este artículo voy a proponer la web WorldOfSpectrum, un sitio muy completo que dispone de un amplísimo catálogo de software (mayor que la de ComputerEmuZone) que incluye juegos, utilidades y programas educativos. Nada más entrar en dicha web deberemos hacer clic en la sección Archive!, y a partir de ahí, nos iremos al tipo de software que estemos buscando.

archivo World of Spectrum

Archivo de ‘World of Spectrum’

Si nos vamos a los juegos (Games) podremos obtener varios listados de juegos según la letra inicial del nombre (como puede observarse en la imagen derecha); o podremos hacer una búsqueda -si no recordamos el nombre exacto del juego- haciendo clic en Search; o también podemos obtener una lista ordenada de los juegos más valorados por los usuarios accediendo a Best games, desde la cual podremos dirigirnos a las páginas particulares de cada uno de dichos juegos, en las cuales disponemos de toda la información habida y por haber sobre los mismos (a veces, hasta el precio de venta que tenía cuando fue lanzado … pero en pesetas 😮 ). En cualquier caso, una vez que estamos situados en la página del juego que nos queremos descargar, nos veremos abrumados por el ingente volumen de información que se nos ofrece, distribuidas en distintos apartados (ficha, enlaces de descarga, material adicional, opiniones de jugadores, referencias y publicidad en revistas y capturas de pantalla).

Página información

Página de información de un juego

A nosotros nos interesa fijarnos en dos datos: el tipo de máquina (Machine type) y el nombre del fichero de cinta (Filename). El tipo de máquina determina la versión del modelo de Spectrum que debe emular FUSE, que se establece -como se vio antes- mediante la opción de menú MachineSelect... (o pulsando F9). Y el nombre del fichero desvela el formato de cinta en el que se almacena el juego.

cambiar nombre

Añadiendo un sufijo al nombre de fichero

En la captura de página de la imagen superior, los formatos disponibles son tzx, z80 y tap; por tanto, nos vamos a bajar el archivo comprimido correspondiente al formato que queramos, tras lo cual lo descomprimiremos. Una vez hecho eso, es buena idea cambiarle el nombre al fichero de cinta para añadirle un sufijo que especifique el tipo de máquina para el cual está orientado dicho juego (véase imagen izquierda). De esa manera sabremos qué versión de Spectrum debe emular FUSE antes de cargar el fichero de cinta del programa que vayamos a ejecutar. También conviene fijarse -dentro de la página del juego- en la columna Origin del apartado de enlaces de descargas, ya que nos informa de si el fichero que nos vamos a descargar corresponde a la cinta del juego lanzado originalmente, o a la de una versión ulterior modificada.

A jugar

Para cargar un juego (u otro tipo de software) en el emulador nos vamos a FileOpen (o pulsar F3) y seleccionamos el fichero de cinta correspondiente a dicho juego. Como he dicho antes, previamente habremos de seleccionar la máquina que debe ser emulada, que será la que se nos indique en la página de descarga del juego. Una vez descargado el juego es muy conveniente (pero mucho) descargarse también las instrucciones del juego (a ser posible en español), que suelen encontrarse dentro del material adicional de dicha página, bien en formato texto o PDF. A modo de ejemplo, muestro las instrucciones del juego Zynaps (pulsa en el enlace):

ZYNAPS

SPECTRUM, AMSTRAD, COMMODORE


CARGA

Spectrum: LOAD "" ENTER.

Amstrad: CTRL + ENTER.

Commodore: Pulsa SHIFT y RUN/STOP, y luego PLAY en al reproductor.


CONTROLES

Usa un joystick o define tus propias teclas (Spectrum y Amstrad sólo). Las teclas predefinidas al comienzo del juego son:

Spectrum	Commodore	Efecto
Amstrad

Teclas 1 y 2	f1		Uno o dos jugadores.
—		f2		Uno o dos Joysticks.
Tecla 3		—		Definir teclas.
Tecla 4		—		Acceso a tabla honor.
Disparo		Disparo		Comenzar partida.

Durante la partida, el botón de disparo dispara armas, o cuando se mantiene pulsado, activa el recogedor de combustible. Algunas armas requieren que se mantenga el botón de disparo pulsado antes de que funcionen. Para pausar el juego durante la partida, pulsa la tecla 4 (Spectrum, Amstrad) o RUN/STOP (C-64). Pulsa disparo para seguir jugando, o la tecla Q para abandonar definitivamente la partida (CLR/HOME en el Commodore).


EL CAZA DE ATAQUE SCORPION

El Scorpion MK1 tiene varios equipos sofisticados y mucho armamento, todo ello alimentado por un recoge-combustible interno.

Propulsión: Los motores principales pueden ser operados a cuatro niveles de potencia.


ARMAS

Lasers: Ideales para disparar enemigos a mogollón. Estos lasers también tienen cuatro niveles de potencia.

Bombas de plasma: Dos lanza-bombas independientes que dan una tremenda potencia destructiva contra objetivos en tierra.

Misiles autopropulsados: Estos misiles llevan pequeñas cabezas nucleares que una vez se «enganchan» a un blanco aseguran su destrucción.

Misiles inteligentes: Estos misiles son tan listos que automáticamente «enganchan» cualquier blanco que son capaces de destruir.

EL RECOGE-COMBUSTIBLE: Proporciona la energía necesaria para activar los sistemas de propulsión del Scorpion. Para activar alguno de los sistemas de armamento o propulsión recoge suficiente combustible para remarcar el equipo deseado en el INDICADOR DE ACTIVACION DE ARMAMENTO, luego recoge una unidad más de combustible una vez en modo ACTIVACION.

Para entrar en modo ACTIVACION mantén pulsado el botón de disparo hasta que la nave cambie de amarillo a azul (de azul a gris parpadeante en el Commodore) y sigue manteniéndolo pulsado mientras recoges combustible. El nuevo equipo quedará recogido o su potencia aumentada y el indicador volverá a la posición primera «Speedup». EL INDICADOR DE ACTIVACION DE ARMAMENTO muestra en orden:
SPEEDUP		Aceleración.
FIREPOWER	Incrementar poder láser.
BOMBS		Activar lanza-bombas.
MISSILES	Activar búsqueda automática de blancos.
SEEKER		Activar misil «listo».


LOS ENEMIGOS

Naves espaciales: Pequeñas naves que pueden normalmente ser destruidas con un disparo de láser, bomba o misil. Los misiles listos no pueden «engancharse».

Instalaciones terrestres: Peligrosas instalaciones que necesitan de varios disparos de láser o una sola bomba o misil listo para destruirlas.

Naves de mando enemigas: Grandes naves espaciales, fuertemente armadas y protegidas. Se pueden destruir con múltiples disparos de láser o misiles.

Nave nodriza: Enormes naves enemigas; más grandes que las anteriores.

Peligros naturales: Sobre todo asteroides y similares.  Conviene mantenerse bien alejado.


PUNTUACION

Se consiguen puntos por destruir, enemigos y puntos adicionales por destruir formaciones enteras de alienígenas. A los 10.000 puntos se consigue una vida extra, y luego otra cada 20.000 puntos adicionales.


© 1987 Hewson Consultants.

Siguiendo dichas instrucciones aprenderemos, entre otras cosas, a definir las teclas de acción, para poder disfrutar del juego sin necesidad de estar dando palos de ciego (como suelo hacer yo XD ). He aquí unas capturas de pantalla de varios juegos que me he descargado al azar (elegidos entre los más valorados).

Si un juego se bloquea en plena ejecución, o no termina de cargarse correctamente, podemos reiniciar la máquina virtual mediante el comando MachineReset... o pulsando F5. También podemos hacer otro tipo de reinicio duro, que sería equivalente al apagado y encendido de una máquina Spectrum real; se realiza mediante el comando de menú MachineHard reset.... En ambos casos se nos pedirá una confirmación antes de proceder al reinicio.

En cualquier momento podemos realizar una captura de pantalla del escenario en el que nos encontremos dentro del juego mediante FileSave screen as PNG.... De la misma forma podemos grabar un vídeo de la secuencia que se está desarrollando en el juego mediante la opción FileMovieRecord... e introduciendo un nombre para el fichero de vídeo; podemos pausar la grabación mediante FileMoviePause y reanudarla con FileMovieContinue; para detener la grabación ejecutamos FileMovieStop. El vídeo resultante se grabará en formato FMF, el cual podrá ser convertido a otro formato más convencional mediante la utilidad de línea de comandos fmfconv, que se instala con el paquete fuse-emulator-utils. Es posible establecer el nivel de compresión que tendrán esos vídeos mediante OptionsMovie...; los posibles valores que podemos asignar a Movie compression son None (vídeo sin comprimir), Lossless (compresión sin pérdidas) y High (alto nivel de compresión).

Realizando ajustes

En el menú OptionsGeneral (o pulsando F4) encontramos una serie de ajustes de configuración que, por defecto, suelen ser válidos para utilizar FUSE sin problemas; aunque si surgen contratiempos con algún juego puede ser útil conocer para qué sirven algunos de estos ajustes:

  • Emulation speed : establece la rapidez con la que FUSE intentará emular al Spectrum. Si el ordenador no es lo bastante rápido para ejecutar con la velocidad solicitada, FUSE lo ejecutará tan rápido como pueda.
  • Use tape traps : habitualmente, FUSE intercepta las llamadas a una rutina de carga de cinta para cargar ficheros de cinta más rápidamente cuando sea posible, aunque esto puede (rara vez) interferir con la carga de los ficheros TZX. Desactivar esta opción evita el problema a costa de incrementar el tiempo de carga de la cinta y de tener que iniciar la reproducción de la cinta manualmente, presionando F8 o mediante MediaTapePlay.
  • Fastloading : si esta opción está activada, FUSE se ejecutará a la velocidad más rápida posible cuando la cinta virtual esté reproduciéndose, reduciendo así drásticamente el tiempo que tarda en cargar los programas. Es posible que quieras desactivar esta opción si necesita detener la cinta en un momento determinado.
  • Detect loaders : al habilitar esta opción, FUSE intentará detectar cuando una rutina de carga está en progreso para, a continuación, iniciar automáticamente la cinta virtual para cargar el programa. No es inefable, pero funciona en la mayoría de los casos.
  • Accelerate loaders : si esta opción está activada, FUSE intentará acelerar los cargadores de cinta mediante ‘cortocircuitos’ del bucle de carga. Esto permitirá que se acelere la carga, pero puede causar que algunos cargadores fallen.
  • Auto-load media : si se selecciona esta opción se cargará y ejecutará automáticamente cualquier programa que se encuentre almacenado en un fichero de cinta que hayamos abierto.
  • Auto-save settings : si seleccionamos esta opción, cuando salgamos de FUSE serán almacenados automáticamente en un fichero los ajustes de configuración que hayamos establecido en el menú Options. Si desactivamos esta opción tendremos que guardarlo manualmente mediante OptionsSave.

Conclusión

FUSE ofrece más posibilidades de las aquí expuestas, aunque he preferido obviarlas. Por ejemplo, la conexión de unidades de discos magnéticos, palancas de juego o impresoras. No me he ocupado de ellas, más que nada, porque no dispongo de tales periféricos y me es imposible probarlas para saber y explicar como funcionan. De todos modos, creo que, con lo aquí expuesto, es más que suficiente para adentrarse en esta interesante utilidad, solo apta para nostálgicos y muy curiosos. Espero que haya resultado de tu agrado.


  1. Posee versiones para 14 plataformas y sistemas, incluyendo MacOS, Windows, Android, PSP, Wii, XBox y otras. 
  2. Dado el éxito que tuvieron los distintos Spectrum en Europa occidental, se fabricaron diversos clones del mismo. Unos oficiales, como la gama Timex, que fue fabricada con licencia oficial de Sinclair para el mercado americano; y otros piratas, como los Scorpion, los Pentagon o los Lambda que fueron clonados mediante ingeniería inversa en la antigua URSS para ser lanzados en los paises del bloque comunista. 
  3. Aunque ROM significa Read Only Memory (memoria de solo lectura), en este contexto se refiere a los sistemas operativos que ejecutaban las distintas versiones del Spectrum, las cuales se almacenaban en dicha memoria ROM. De ahí la sinécdoque. 
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s