Emulando a los clásicos (I)

Una de las cosas que me gusta de GNU/Linux es su capacidad para emular sistemas propios de otras plataformas; especialmente, sistemas ya en desuso que hicieron funcionar a los ordenadores de antaño. Para los más jóvenes, esto no dejará de ser una mera curiosidad. Pero para los que fuimos testigos del auge de la informática doméstica a principios de la década de los 80, gracias a la popularización de los micro-ordenadores, es un pequeño placer poder volver a manejar aquellos antiguos sistemas con sus rudimentarias interfaces, o -como es mi caso- descubrirlos por primera vez, ya que no pudimos disfrutar de ellos en su momento.

Sea como fuere, disponemos de una serie de aplicaciones que nos permiten revivir la experiencia de interactuar con sistemas y programas que dejaron de comercializarse hace décadas. Una de ellas es la aplicación que traigo hoy. Se llama SpectEmu, un emulador un tanto básico del Sinclair ZX Spectrum, un micro 1 que, casi con toda seguridad, fue el principal responsable de haber introducido la informática en muchos hogares españoles durante la primera mitad de los 80, gracias a su volumen de ventas, al catálogo de software existente y a la cantidad (y calidad) de publicaciones y bibliografía que se editó sobre dicho ordenador. SpectEmu es un emulador que, tras ejecutarse en el terminal, abre una ventana en la que se muestra una interfaz que imita (no sé con cuanta fidelidad) a la del Spectrum, y con la cual se puede interactuar mediante combinaciones de teclas que ejecutan los mismos comandos que podían ejecutarse al pulsar ciertas teclas del ZX.

Manos al teclado

Pero antes de hacer nada, primero hay que instalar los paquetes necesarios:

$ sudo aptitude install spectemu-x11 alsa-oss

SpectEmu sólo funciona con OSS 2 por lo que, si quieres que los juegos se oigan, se recomienda instalar el paquete alsa-oss, el cual viene con la utilidad aoss, que emula OSS usando ALSA.

De la misma manera que ningún ordenador puede funcionar si no dispone de programas, tampoco podemos hacer nada con un emulador si no tenemos ficheros que simulen a esos programas. Y eso es lo que hay que hacer ahora, descargar juegos con los que poder probar el funcionamiento de SpectEmu. Para ello nos vamos a la web de ComputerEmuZone y nos bajamos los juegos que más nos gusten 3. Dicha web dispone de un amplísimo repositorio para Spectrum (y otros micros), cada uno con una página que incluye información, sinopsis, trucos, mapas, capturas de pantalla, etc. Una vez descargados y descomprimidos, veremos una serie de ficheros en formato tap (u otros, como tzx, z80 o dsk) que contienen los bloques de datos que se guardaban en las antiguas cintas de juegos, los cuales se cargaban en la memoria del Spectrum a través de un reproductor de cintas de cassette.

Puesta en marcha

Antes de ejecutar SpectEmu, debemos abrir el terminal y situarnos en el directorio donde hemos descargados los juegos.

Esta aplicación se puede ejecutar de dos formas:

  1. Añadiendo en la línea de comandos el nombre de un juego, que será cargado al abrirse la ventana. En tal supuesto, la sintaxis del programa será esta:
    $ aoss xspect -name ZX-Spectrum -tap Bugaboo.tap
    

    o esta otra:

    $ aoss xspect -name ZX-Spectrum Bugaboo.tap
    

    …dependiendo de si el juego está en formato tap -en cuyo caso se podrá especificar dentro de la opción -tap– o en otro formato cualquiera. De cualquier modo, aunque carguemos ficheros tap, la opción -tap es optativa. El nombre del juego (en este ejemplo Bugaboo) deberá ser el nombre del fichero de cinta correspondiente al juego que queramos cargar, incluyendo la extensión del formato (tap, tzx, z80, dsk o el que sea).
    Una vez abierta la ventana veremos en consola la siguiente salida:

    $ aoss xspect -name ZX-Spectrum Bugaboo.tap
    Welcome to SPECTEMU version 0.94/c (C) Szeredi Miklos 1996-1998
    This program comes with NO WARRANTY, see the file COPYING for details
    Press Ctrl-h for help
    Loading tape 'Bugaboo.tap'
     * Tape paused * 
    

    Y en la ventana emergente veremos esto:

    Spectemu inicio

    Pantalla inicial del emulador Spectemu


    Como se puede comprobar, el juego aún no se ha cargado porque la cinta arranca en modo pausado. Para ponerla en marcha habrá que ejecutar la siguiente secuencia de comandos:

    • pulsar la tecla j. Aparece LOAD en la pantalla virtual del Spectrum
    • pulsar dos veces Alt-2, aparecen dos comillas dobles en pantalla . Pulsar Intro
    • pulsar Ctrl-o para despausar la cinta
      Y tras reanudar la cinta comienza la carga del juego, proceso que puede durar de unos cuantos minutos a un rato bien largo, dependiendo del tamaño del fichero de cinta. Durante dicho proceso es posible que se oigan una serie de pitidos, similar al ruido que hacían los módem analógicos al conectar. Al finalizar la carga empieza a ejecutarse el juego.
  2. La otra forma es ejecutarlo sin especificar ningún juego.
    $ aoss xspect -name ZX-Spectrum
    

    Se abrirá la ventana con la pantalla de inicio de Spectemu (la mostrada en el apartado anterior), y en el terminal se mostrará el siguiente mensaje:

    $ aoss xspect -name ZX-Spectrum
    Welcome to SPECTEMU version 0.94/c (C) Szeredi Miklos 1996-1998
    This program comes with NO WARRANTY, see the file COPYING for details
    Press Ctrl-h for help
    

    A continuación se debe cargar el juego que queramos, pero … para acelerar el proceso activaremos el modo de carga rápida de cinta pulsando Ctrl-y, tras lo cual aparecerá en el terminal:

    Quick load on
    

    A continuación seleccionamos la cinta del juego que queramos cargar mediante la ejecución del comando LOAD "" (e Intro), como se explicó en el apartado anterior. Nos saldrá esto en el terminal:

    Enter tape file path:
    _
    

    Escribimos el nombre del fichero de cinta correspondiente, pulsamos Intro y comienza la carga del juego en cuestión, a una velocidad algo mayor que en el método anterior. Una vez finalizada la carga podremos empezar a jugar.

La opción -name cumple únicamente una función estética: elegir el título que queramos para la ventana emergente. Yo he elegido ZX-Spectrum, obviamente 😉

Voy a enseñar algunas capturas de pantalla de varios juegos que he tomado al azar, para que te hagas una idea de como se ven en este emulador.

Sacándonos de apuros

Sea cual fuere el método elegido, podremos ver una lista de los comandos disponibles en SpectEmu pulsando la combinación Ctrl-h.

Press Ctrl-h for help
= ZX Spectrum Emulation (C) Szeredi Miklos 1996-98 =
----------------------------------------------------------
Left Shift Spectrum - CAPS SHIFT
Right Shift Spectrum - SYMBOL SHIFT
Alt "True" Shift
Ctrl Commands
----------------------------------------------------------
Ctrl-c F10 Quit
Ctrl-h F1 More help
Ctrl-t F2 Save snapshot
Ctrl-l F3 Load snapshot
Ctrl-p F4 Play tape
Ctrl-q F5 Reset
Ctrl-o F6 Pause/unpause tape
Ctrl-s F7 Stop tape
Ctrl-f Fast
Ctrl-n Normal speed
Ctrl-b Pause/Unpause emulator
Ctrl-m Toggle sound
Ctrl-y Toggle quick loading of tapes
Ctrl-\ F9 Refresh screen / reset keyboard
==========================================================

Y podemos ampliar dicha lista volviendo a pulsar Ctrl-h.

    = ZX Spectrum Emulation (C) Szeredi Miklos 1996-98 =   
 ----------------------------------------------------------
  More help:                                               
 ----------------------------------------------------------
  Ctrl-h    F1           Normal help                       
  Ctrl-k                 Display (undisplay) keyboard      
  Ctrl-w    Ctrl-F2      Save temporary snapshot           
  Ctrl-e    Ctrl-F3      Load temporary snapshot           
  Ctrl-r                 Save to tapefile                  
  Ctrl-,                 Reduce screen size       (X only) 
  Ctrl-.                 Increase screen size     (X only) 
  Ctrl-.                 Toggle private color-map (X only) 
  Ctrl-=                 Decrease frame frequency          
  Ctrl--                 Increase frame frequency          
  Ctrl-]                 Increase sound buffer size        
  Ctrl-[                 Decrease sound buffer size        
 ==========================================================

Existen varios comandos interesantes que merece la pena destacar.

Ctrl-p: pone en marcha una cinta nueva, se nos pedirá introducir un nombre de fichero de cinta
Ctrl-o: pausa o despausa una cinta
Ctrl-s: para la cinta
Ctrl-q: reinicia el emulador (equivalente al reset del Spectrum) para ejecutar otro juego después de terminar con el anterior sin salir del emulador
Ctrl-c: sale del emulador
Ctrl-b: para/reanuda el emulador
Ctrl-m: desactiva/activa el sonido
Ctrl-y: desactiva/activa la carga rápida de cintas
Ctrl-k: muestra/oculta el teclado del Spectrum, se supone que para interactuar con el emulador, aunque yo no he conseguido hacer nada.

Teclado-Spectemu

Teclado en pantalla de Spectemu

Ctrl-.: incrementa el tamaño de la ventana del emulador
Ctrl-,: decrementa el tamaño de la ventana del emulador
Ctrl-r: imagino que guarda las partidas de juegos en un fichero, para continuarlas en otro momento. Pero no estoy muy seguro de ello.

Los comandos se pueden ejecutar mediante combinaciones de teclas o, a veces, con las teclas de función. He optado por poner lo primero.

💡 Cuando configures las teclas de acción de un juego, es conveniente elegir teclas correspondientes a letras y números, y descartar las teclas especiales (cursores, Alt, Ctrl, Shift, etc.), ya que si eliges éstas últimas es muy posible que no puedas realizar ninguna acción.


Y esto es todo. Si eres de los afortunados que tuvo un Spectrum en sus manos, ya puedes satisfacer tus ansias de nostalgia con esta pequeña utilidad.

Aunque no es la única en su género que tenemos en GNU/Linux. Aún hay más … 😀


  1. Así se le llamaba coloquialmente a los micro-ordenadores 
  2. Arquitectura de sonido alternativa para sistemas compatibles con UNIX. Era el sistema original de sonido para Linux, y estaba incluido en el kernel hasta que fue reemplazado por Advanced Linux Sound Architecture (ALSA) en 2002, año en que la versión 4 de OSS se convirtió en un producto propietario. 
  3. Ya que, en esa web, solo se pueden encontrar juegos. O, al menos, yo no he visto otro tipo de programas. 
Anuncios

Un comentario en “Emulando a los clásicos (I)

  1. Pingback: Emulando a los clásicos (II) | #LINux #SOftwareLIbre #TIC

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