viernes, enero 18, 2019

Bandersnatch y ET el Extraterrestre Parte 2 de 2 (o cómo hacer un perfecto homenaje a los programadores de videojuegos de los ochenta

Continuando con la primera parte, lo primero que hay que hacer es responder a la pregunta que se quedó colgada en la primera parte de este artículo de por qué los entornos de desarrollo de juegos para ZX Spectrum eran aquellos con MS-DOS o los Commodore Amiga. El motivo es que básicamente estos ordenadores, además de su velocidad, tenían gran cantidad de software que se podía utilizar con mucha más facilidad (por ejemplo, usando un ratón algo todavía no muy común por aquella época) o más agilidad durante la compilación del programa.

Figura 11: Bandersnatch y ET el Extraterrestre Parte 2 de 2
(o cómo hacer un perfecto homenaje a los programadores de videojuegos de los ochenta

Por lo tanto, la programación se realizaba directamente sobre estos IBM PC (o equipos PC Compatibles) y luego se exportaba directamente al ZX Spectrum conectándolo directamente utilizando algún tipo de interface (esto se llegó a perfeccionar hasta tener casi de forma instantánea el resultado plasmado en un ZX Spectrum desde el ordenador desde el cual se estaba programando) o utilizando este método un poco más manual pero igual de efectivo utilizando el puerto paralelo.De esta forma, por un lado, tenías el código fuente que podías editar, salvar en disco, etcétera, y por otro la ejecución final en un ordenador ZX Spectrum real.

Hoy día con los emuladores esto es mucho más sencillo de realizar, pero hay que tener en cuenta que el primer emulador de Z80 por software (para Windows) no apareció hasta bien entrados los noventa. La base de estos programas, además de los de diseño gráfico para crear los sprites y escenarios eran por supuesto los ensambladores cruzados para Z80, los cuales permiten crear o exportar programas en ensamblador para otras plataformas o arquitecturas diferentes desde la cual se está programando el código original.

Figura 12: Menú principal de HiSoft Devpac v4.1 GENS para ZX Spectrum

Volviendo al código BASIC de Bandersnatch, también es probable que no sea más que un cargador o loader de instrucciones en código máquina (no vemos al completo el programa del juego). Si tienes una edad como el que está escribiendo estas líneas, recordarás copiar aparte de código en BASIC, interminables listas de números en hexadecimal y decimal donde no tenías ni idea de qué se estaba ejecutando. Esas líneas no eran más que las instrucciones en código máquina del programa creado en ensamblador Z80. Cada uno de estos valores dentro de una instrucción DATA podía corresponder a direcciones de memoria, instrucciones, etcétera. Si te equivocabas en cualquier carácter, el programa no funcionaría, eso cuando tenías suerte y no se cortaba la luz de casa.

Figura 13: Unidad Sinclair ZX Microdrive

Una vez ya tenías todo el código preparado para probarlo, a no ser que tuvieras uno de los sofisticados sistemas que antes he mencionado o una unidad de disco para Spectrum (no el ZX Microdrive, ya que no era más que una cinta de casete “sin fin”) la cual no apareció de serie hasta el ZX Spectrum +3 la cual tenía también, al igual que el CPC 6128, discos de 3 pulgadas, había que cargarlo en el ordenador.

Y eso se realizaba con las famosas cintas de casete y su característico ruido en un proceso de carga que a veces resultaba dramático. En función de la calidad de la cinta o del reproductor, el ordenador no detectaba bien la señal de audio por lo que teníamos que ajustarlo utilizando el clásico azimut usando un destornillador. Muchos lectores más jóvenes no se lo creerán, pero antes teníamos que esperar, a veces muchos minutos, para poder jugar o ver el resultado de un programa en pantalla.

Figura 14: Programa en BASIC y ensamblador del cargador
universal de código máquina donde vemos la sentencia DATA

En Bandersnatch hay un giño espectacular a este peculiar método de carga. En uno de los finales, cuando Stefan está sentado en el autobús, si has seguido correctamente los pasos, lo que se escuchará a través del walkman no es música, sino un proceso de carga de un programa ZX Spectrum. Usuarios de Reddit consiguieron extraer el audio (aquí tienes el fichero wav original), lo cargaron en un emulador y vieron que el resultado era un código QR el cual enlazaba con una página web secreta llena de huevos de pascua - tan comunes en la época  y que Ready Player ONE también usa-, incluido una versión del juego Nohzdyve que también aparece en la película. Para poder ejecutarlo es posible usar cualquiera de los cientos de emuladores que existen para esta plataforma como por ejemplo Speccy.


Figura 15: Vídeo de Youtube con lo que aparece al cargar el programa que
se escucha en la cinta de Bandersnatch en un ZX Spectrum real

Vale, pero ¿qué tiene que ver el juego de ET El extraterrestre con Bandersnatch? Esta referencia la he dejado para el final ya que creo que es posiblemente, a mi parecer, la mejor de todas. Hay otra secuencia de la película que hace referencia a uno de los temas relacionados con la programación de antes y de ahora, y son los famosos tiempos de entrega y la calidad final del producto. Por aquella época era absolutamente vital tener los juegos preparados antes que la competencia en una frenética carrera de desarrollo que llegaba a poner a prueba los nervios e incluso la salud de los programadores (tal y como le ocurre a Stefan en el film).

Por cierto, un inciso, el error que aparece varias veces al ejecutar el programa del juego es el: FN WITHOUT DEF, es real y aparece cuando llamamos a una función (FN) que no está definida previamente. De hecho, también se hace referencia a la calidad final del juego en cada programa de análisis que parece en los finales (MicroPlay), donde se le otorga una puntuación a Bandersnatch (algo que se hacía y aún se hace en este tipo de medios que analizan videojuegos)

Figura 16: Escena de la película donde tenemos que elegir una
acción y donde además aparece el error FN WITHOUT DEF

En Bandersnatch, el dueño de Tuckersoft le dice al protagonista que el juego tiene que estar terminado para la campaña de navidad, en concreto antes de noviembre. Stefan visita las oficinas de Tuckersoft en julio, por lo tanto, tenía sólo unas pocas semanas para completarlo. Más o menos, esta es la misma franja de tiempo que Atari impuso a Howard Scott Warshaw para acabar el juego para la consola 2600, ET el Extraterrestre (aquí podéis jugar online). En el libro de Microhistorias que escribimos mi amigo Rafael Troncoso (tuxotron) y yo tenemos todo un capítulo dedicado sólo a este juego y fantástica aventura detrás de su desarrollo y destino final.

Figura 17: Libro de Microhistorias: Anécdotas y curiosidades
de la historia de la informática y los hackers

En 1982, Atari quería aprovechar el tirón del estreno de la película de ET el Extraterrestre, así que intentaron tener a tiempo un videojuego basado en dicha película. Debido al poco tiempo de desarrollo, este estaba lleno de fallos (bugs), poca jugabilidad, un dificultad extrema, etcétera. Incluso llegó a ganarse el título del peor juego de la historia (aunque esto puede que sea un poco injusto debido a la historia que lo rodea). Tuxotron (que por cierto es un gran fan del Commodore Amiga) escribió este artículo en nuestro blog Cyberhades donde explicaba que incluso hay gente que se ha dedicado a intentar arreglar todos los fallos del juego.

Figura 18: Copia sellada del juego ET para Atari 2600 propiedad del autor de este artículo

Aún así, Atari vendió 1.5 millones de cartuchos con el juego, el problema era que fabricaron 4 millones de ellos. ¿Qué pasó con el resto? Pues que lo enterraron en un desierto de Arizona (era más barato enterrarlos que mantenerlos guardados en un almacén), en lo que parecía una leyenda urbana que luego se demostró que era cierta. No os perdáis este documental "Atari Game Over" que también podéis encontrar en Netflix y Movistar Fusión.


Figura 19: Vídeo gameplay de ET para 2600

Pensaba que era el único friki-retro-geek que se había dado cuenta de este hecho, incluso creía que era una coincidencia (y posiblemente lo sea) así que me olvidé de él hasta que vi este vídeo con los easter eggs de Bandersnatch (minuto 3) donde hablan de lo mismo (gracias, menos mal que hay otros ahí fuera).


Figura 20: Easter Eggs en Bandersnatch

Y no voy a entrar en el tema de la música, la cual es absolutamente genial, sobre todo el álbum de Tangerine Dream (Phaedra) o Tomita (The Bermuda Triangle), entre otros, o también el libro “Lock Door, Get Key” que aparece varias veces en la película, y además se podía encontrar en Amazon hasta hace poco el cual tenía 250 páginas en blanco (y está basado en otros reales como éste por ejemplo de Tim Hartnell).

Figura 21: Anuncio de trabajo en Tuckersoft

Para finalizar, reitero lo que escribí al principio de este artículo, Bandersnatch es, además de original e innovadora, un sentido homenaje cuidado y destinado a un público que creció en los años ochenta, en una cultura rodeada de ordenadores que cargaban los programas desde cinta, libros de “Elige tu propia aventura” y películas como Tron o los Goonies que no se volverá a repetir. Gracias Netflix por Bandersnatch, de parte de uno de esos niños de los ochenta.

Fran Ramírez, (@cyberhadesblog) miembro del equipo de Crazy Ideas en CDO en Telefónica, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps" y del blog Cyberhades.

2 comentarios:

Victor dijo...

Apreciación. El primer emulador de Spectrum era para DOS y data del 89. De hecho lo publicaron en la PCMania nº1 en el año 92. Por si quieres corregir el por otro lado genial artículo.

http://www.elmundodelspectrum.com/contenido.php?id=1126&d=Desenterrando-el-primer-emulador-de-Spectrum

cybercaronte dijo...

Hola Victor, muchas gracias por la aclaración. Tienes razón, además era un emulador patrio ;) creado por el gran Pedro Gimeno. De hecho creo que tengo incluso ese número de PCManía por alguna parte. Fíjate que en el artículo digo "para Windows", ya que durante la redacción del post estuve haciendo algo de investigación y me aparecían varios emuladores Z80 en diversas plataformas (no buscaba específicamente uno de Spectrum, por el tema de desarrollo usando otros ordenadores), por eso decidí acotar con Windows ya que fue realmente aquí cuando los emuladores tuvieron mejor aceptación por su facilidad de uso. Muchas gracias por la aclaración, me he leído por completo el artículo de WOS y ya tengo claro cuál es el primer emulador para ZX Spectrum, no se me olvidará ;) . Un saludo.

Entrada destacada

Seis recomendaciones personales de libros de @0xWord para disfrutar y aprender

Este verano pude disfrutar de la lectura de un libro que me encantó. El libro de Factfulness que me había regalado mi compañera Beatriz Ce...

Entradas populares