Cómo instalar dos versiones diferentes del emulador Fuse para ZX Spectrum

Descripción del contenido de la página

Cómo instalar y usar dos versiones diferentes del emulador Fuse para ZX Spectrum: la de interfaz de usuario GTK+ y la de interfaz de usuario SDL.

Etiquetas:

El texto que sigue fue escrito en 2010. Versiones posteriores del emulador Fuse ya proveen paquetes separados para sus versiones con SDL y GTK+, por lo que el método descrito a continuación es innecesario.


El emulador Fuse tiene varias interfaces de usuario, dependiendo de la librería utilizada: GTK+, SDL, framebuffer, SVGAlib y Xlib. Prefiero usar la versión SDL, porque la versión de GTK+, debido al espacio que ocupa la barra de menús, no permite ampliar la ventana del emulador al doble de su tamaño en la pequeña pantalla de 7 pulgadas de mi Asus Eee, y la pantalla de la ZX Spectrum parece un sello de correos grandecito.

La interfaz SDL no ocupa espacio adicional en la pantalla, pues el menú sólo aparece cuando se pulsa la tecla F1. Además es muy agradable porque usa el juego de caracteres de la ZX Spectrum y la estética de menús de la ZX Spectrum 128.

La interfaz, como es comprensible, no puede elegirse desde el programa: hay versiones diferentes compiladas para usar cada interfaz.

El problema que tengo desde hace tiempo es que la version del emulador con interfaz SDL carece de dos opciones importantes en el menú «File »: la de guardar cualquier zona de memoria de la ZX Spectrum en un fichero de sistema operativo anfitrión, y la inversa: cargar el contenido de un fichero del sistema anfitrión en la memoria de la ZX Spectrum.

Pensé que no sería tan difícil tener instaladas ambas. Mi única duda era si ambas versiones instalaban ficheros excluyentes que hubiera que preservar, aparte del ejecutable.

Fue más fácil de lo que esperaba, como describo a continuación.

Instalación

Por supuesto, primero hay que bajarse de la página de Fuse los paquetes DEB correspondientes:

Todas las operaciones que siguen hay que realizarlas como administrador (como usuario root).

libspectrum7 sólo hace falta si vamos a instalar Fuse por primera vez, en cuyo caso debe ser el primero en ser instalado:

dpkg -i libspectrum7_0.5.0.1-1_i386.deb

Hay que instalar el paquete de interfaz GTK+ antes que el de interfaz SDL. El motivo es que la instalación de una versión desinstala automáticamente la otra; si instalamos la versión GTK+ en segundo lugar, borrará los juegos de caracteres que la versión SDL necesita para funcionar.

dpkg -i fuse-emulator_0.10.0.2-0gtk1_i386.deb

Y después hay que hacer una copia de su ejecutable, para preservarlo:

cp /usr/bin/fuse /usr/bin/fuse-gtk

A continuación podemos instalar el paquete de interfaz SDL:

dpkg -i fuse-emulator_0.10.0.2-0sdl1_i386.deb

Y hacer una operación análoga para preservar su ejecutable:

cp /usr/bin/fuse /usr/bin/fuse-sdl

Por último, basta crear un enlace simbólico /usr/bin/fuse que apunte al ejecutable que usemos más frecuentemente:

rm /usr/bin/fuse
ln -s /usr/bin/fuse-sdl /usr/bin/fuse

Ejecución

La versión a la que apunte el enlace simbólico /usr/bin/fuse será la que se ejecute desde el menú de nuestro gestor de ventanas.

Para ejecutar cualquiera de las versiones, basta llamar a su ejecutable, con nuestra cuenta de usuario normal:

/usr/bin/fuse-gtk &

Actualización de menús

Si usamos el sistema de menús de Debian, podemos crear un par de ficheros en el directorio ~/.menu, como los siguientes:

Fichero ~/.menu/fuse-gtk:

?package(local.fuse):\
  needs="x11"\
  section="Applications/Emulators" \
  title="Fuse (GTK+)"\
  longtitle="Free Unix Spectrum Emulator (GTK+ UI)" \
  command="/usr/bin/fuse-gtk"

Fichero ~/.menu/fuse-sdl:

?package(local.fuse):\
  needs="x11"\
  section="Applications/Emulators" \
  title="Fuse (SDL)"\
  longtitle="Free Unix Spectrum Emulator (SDL UI)" \
  command="/usr/bin/fuse-sdl"

Después, para que los menús de nuestro gestor de ventanas se actualicen, sólo hay que usar el comando siguiente:

update-menus

Con esto ambas versiones aparecerán en los menús.

Otros problemillas de la versión de interfaz SDL

La versión de interfaz SDL tiene dos pequeñas pegas en los diálogos para elegir ficheros del sistema anfitrión.

  1. No interpreta los caracteres de dos octetos (codificados en UTF -8) de los nombres de ficheros.
  2. Muestra la lista de ficheros en dos columnas, lo que hace que no quepa el nombre completo de muchos ficheros, y en ocasiones sea difícil identificarlos (por suerte siempre muestra la extensión del nombre de fichero al final, pero eso no es suficiente).