Desarrollo de Juegos para Spectrum (Parte 1)

Si el otro día hablaba de mi primer programa de ordenador para 8 bits, hoy comienzo una serie de artículos que hace tiempo me apetecía hacer, y es que como joven de la generación X y que ha crecido y mamado de los pechos del ZX Spectrum, tenía ganas de explicar como se programa este ordenador utilizando las herramientas modernas de las que disponemos hoy en día. Hay mucha gente que piensa que los ordenadores de 8 bits, murieron hace mucho tiempo, y si bien es cierto que no están entre los más vendidos, básicamente porque ya no se fabrican, también es cierto que hay mucha gente que disfruta programando para estas máquinas y tratan de llevarlas a sus límites. De hecho, cuando parece que ya nada más se podía hacer con un ZX Spectrum, aparece alguien que nos demuestra lo equivocamos que estamos y nos pone delante de nuestros ojos, un nuevo juego que te haces preguntarte, ¿cómo diablos lo han hecho?

Lógicamente esta sección no creo que tenga muchos lectores, para ser sinceros no tengo ningún lector, ja, ja, sin embargo, escribir en el blog es algo que me relaja la mente, sirve para dedicarme a otros temas que los tradicionales que hago en mi día y a día, y como es mio, pues hablo de lo que quiero y me gusta, y si a alguien le viene bien, pues genial y si no, pues también. Quizás, y analizándolo ahora que llevo unos meses, pueda actuar como una especie de diario personal, donde dedico un rato de mi tiempo a lo que me gusta y que al verlo en retrospectiva sirva para entenderme mejor, y ver las motivaciones que tenia en ese momento. Es decir, cuando lea este post dentro de varios meses, podré decirme, anda mira lo que te entretenías en escribir un día tal como… y es que si a mi hermano Juanito le relaja el restaurar muebles, a mi lo que lo hace es escribir.

Una pregunta que nos puede venir a la cabeza, es la de porqué enfrentarnos al desarrollo sobre una plataforma de 8 bits, que salió hace 40 años al mercado y que tiene solo unos miles de usuarios viejunos aun en activo. Bueno, la pregunta tiene su miga, pero para mi hay varias razones que hacen que desarrollar para un Z80 tenga aún su sentido desde el punto de vista de la ingenieria:

  1. Reto técnico: Las restricciones de hardware del ZX Spectrum (como la limitada capacidad de memoria y la velocidad del procesador) pueden representar un desafío interesante para los programadores. Enfrentar y superar estas restricciones puede ser una forma satisfactoria de mejorar las habilidades de programación.
  2. Interés histórico: Programar para el ZX Spectrum puede dar una mejor apreciación de la historia de la informática y del desarrollo de videojuegos. Puede ser interesante experimentar de primera mano cómo se hacían las cosas en los primeros días de la industria del software.
  3. Nostalgia: Algunas personas pueden tener recuerdos cariñosos de jugar con el ZX Spectrum cuando eran más jóvenes y quieren recrear esa experiencia. También puede ser una forma de preservar el legado del ZX Spectrum para las generaciones futuras.
  4. Educación: Programar para una máquina como el ZX Spectrum puede ser una excelente forma de aprender los fundamentos de la informática y la programación. Debido a su simplicidad relativa en comparación con los sistemas modernos, puede ser más fácil entender cómo funciona todo a un nivel más profundo.
  5. Comunidad: Existe una comunidad activa de entusiastas del ZX Spectrum que sigue creando nuevo software para la plataforma. Programar para el ZX Spectrum puede ser una forma de participar en esta comunidad.

Y como tengo una facilidad infinita para enrollarme, vayamos al grano, que es lo que nos ocupa.

El ZX Spectrum, lanzado en la década de 1980, es un icónico ordenador personal que trajo consigo una gran cantidad de juegos y una comunidad apasionada de desarrolladores. Aunque han pasado décadas desde su lanzamiento original, el espíritu de crear juegos para el ZX Spectrum sigue vivo, si no te lo crees te recomiendo que eches un ojo a la web de «El Mundo del Spectrum» y veas los juegos que se publican cada mes, y los concursos que hay alrededor de esta plataforma, lo vais a flipar. Pero no solo alrededor del Spectrum se crean juegos y programas hoy día, otras plataformas retro como el MSX o el Amstrad, cuentan con enormes comunidades de seguidores que siguen peleándose por llevarlas al límite.

Pero volvamos al ZX Spectrum, que es el que nos ocupa, este ordenador fue creado por la compañía británica Sinclair Research Ltd., fundada por el inventor y empresario Sir Clive Sinclair. Fue lanzado al mercado en el Reino Unido en 1982 y se convirtió en uno de los ordenadores personales más populares de la época, entre otras cosas porque fue diseñado para ser un ordenador asequible y accesible para el público en general, y su éxito contribuyó significativamente a la popularización de los ordenadores domésticos en el Reino Unido y en otros países, en España sin duda fue el número 1 durante la década de los 80s.

El ZX Spectrum tuvo varias versiones a lo largo de su historia, algunas de las versiones más destacadas son las siguientes:

  1. ZX Spectrum 16K/48K: Fue la versión original lanzada en 1982. Venía en dos variantes de memoria: 16 KB y 48 KB. La versión de 48 KB se convirtió en la más popular.
  2. ZX Spectrum+ (Plus): Lanzado en 1984, esta versión presentaba un nuevo diseño de carcasa y un teclado mejorado. También incluía una fuente de alimentación interna.
  3. ZX Spectrum 128: Lanzado en 1986, esta versión aumentó la memoria a 128 KB y agregó un chip de sonido AY-3-8912. También introdujo un nuevo teclado y soporte para disco mediante la interfaz Microdrive.
  4. ZX Spectrum +2: Lanzado en 1987, fue una versión actualizada que combinaba el ZX Spectrum 128 con una unidad de cinta incorporada y un nuevo diseño de carcasa. También se lanzó una versión llamada ZX Spectrum +2A que incluía una fuente de alimentación mejorada.
  5. ZX Spectrum +3: Lanzado en 1988, esta versión presentaba una unidad de disco de 3 pulgadas incorporada en lugar de la unidad de cinta. También se mejoró el teclado y se incluyó una fuente de alimentación interna.

Estas son solo algunas de las versiones más notables del ZX Spectrum. A lo largo de su vida, también hubo otras variantes y ediciones especiales lanzadas por diferentes fabricantes y terceros, como por ejemplo la versión sacada por Investronica del 128K, que venía con un teclado numérico auxiliar, al que nunca le saque demasiado provecho. Cada versión tenía sus características únicas y contribuyó a la popularidad y longevidad del ZX Spectrum pero en general se mantenía la compatibilidad, por lo que un juego realizado para un 48K, funcionaba sin problemas en un 128K (en la mayoría de las ocasiones, je, je).

Emuladores

Hoy en día, aunque todavía quedan muchos Spectrum en funcionamiento, lo cierto es que los años ya van pasando factura, y también hay otros tantos que han dejado de funcionar. Los que todavía tenemos los nuestros, procuramos cuidarlos y mantenerlos en perfecto estado de revista, sin embargo, no resulta fácil encontrar repuestos (quizás retrocables sea una de las opciones más comunes) y los que hay a veces vienen de otras máquinas que han pasado a mejor vida, sacrificando su existencia para mantener en funcionamiento algún equipo en mejor estado de conservación.

Afortunadamente existe una amplia colección de emuladores que nos permiten usar el Spectrum sobre un ordenador moderno, y no tener que preocuparnos de disponer de uno fisicamente, y aunque se pierde parte del encanto de tocar uno y notar el teclado y como ha cambiado el tacto con el tiempo, el emulador es una alternativa más que recomendable para poder probar nuestros programas, porque tampoco podemos negar que hacerlo sobre una máquina real, puede hacerse un poco pesado al carecer de herramientas de edición de textos de las que usamos en nuestro dia a dia.

Por tanto, el primer paso para programar juegos para Spectrum es hacerse con un emulador, y aquí hay para todos los gustos, en la lista siguiente tenéis algunos de los más populares. La mayor parte son gratuitos y se mantienen por aficionados que adoran estas máquinas, y que en ocasiones soportan más de un sistema, pudiendo jugar sobre un Amstrad o un MSX desde el mismo programa. En general, a lo largo de este cursillo, utilizaré ZEsarUX y ZXSpin, porque tienen algunas herramientas muy útiles cara a poder ver que está en ejecución en la memoria y en los registros del procesador.

Nombre del EmuladorDescripciónURL para Descargar¿Es de Pago o Gratuito?
Fuse (Free Unix Spectrum Emulator)Es un emulador de ZX Spectrum altamente portátil, capaz de emular una variedad de modelos Spectrum, además de varias extensiones de hardware.Descargar FuseGratuito
SpectaculatorEs uno de los emuladores más conocidos, con una interfaz fácil de usar y opciones de guardar y cargar estados. Tiene versiones gratuitas y de pago, y también está disponible para Android.Descargar SpectaculatorGratuito/De Pago
BASinEste es un entorno de desarrollo para ZX Spectrum que es perfecto para aquellos interesados en la programación. Incluye un emulador y un conjunto completo de herramientas de codificación.Descargar BASinGratuito
ZEsarUXEste es un emulador multiplataforma que ofrece una alta compatibilidad con una amplia gama de modelos ZX Spectrum, incluyendo clones y máquinas relacionadas.Descargar ZEsarUXGratuito
Retro Virtual MachineEs un emulador altamente preciso y estético de ZX Spectrum para Mac y Windows. Ofrece emulación de varios modelos, incluyendo la interfaz 128k +2 y +3.Descargar Retro Virtual MachineGratuito
ZXSpinZXSpin es un emulador preciso y configurable para la ZX Spectrum, con soporte para una amplia gama de modelos y extensiones.Descargar ZXSpinGratuito
Emuladores de Spectrum más populares

Qué mas necesitaremos

Suponiendo que tenemos el emulador descargado (ya dedicaremos otra entrada a entender como funcionan), lo siguiente que tendremos que hacer es conseguir las herramientas para programar sobre el ZX Spectrum. aquí tenemos también varias opciones, aunque es importante distinguir si vamos a programar en BASIC o en ensamblador. Dado que vamos a hacer ambas cosas, necesitaremos herramientas que soporten ambas caracteristicas y usaremos unas u otras según vaya conviniendo. En la siguiente tabla tenéis una relación de las más comunes:

HerramientaDescripciónURL para Descargar
BASinUn entorno de desarrollo para ZX Spectrum que es perfecto para aquellos interesados en la programación en BASIC.Descargar BASin
PASMOUn ensamblador cruzado Z80, útil para aquellos que prefieren la programación en ensamblador.Descargar PASMO
SevenuPUna herramienta para el diseño de gráficos de 8 bits para ZX Spectrum.Descargar SevenuP
BeepolaUn compositor y compilador de música para el chip de sonido del ZX Spectrum.Descargar Beepola
1trackerUn rastreador de música chiptune que puede producir música para varios sistemas antiguos, incluyendo ZX Spectrum.Descargar 1tracker
TapeMasterUna herramienta para crear archivos de cinta a partir de tu código.Descargar TapeMaster
MakeTZXUna herramienta para convertir archivos binarios en archivos TZX, un formato de cinta virtual para ZX Spectrum.Descargar MakeTZX
AJAsmPlusEs un ensamblador de Visual Studio Code que proporciona un conjunto de herramientas para el desarrollo en ensamblador Z80, con funcionalidades como resaltado de sintaxis, comprobación de errores, entre otras.Descargar AJAsmPlus
Tabla con Utilidades para el Desarrollo en ZX Spectrum

Para nuestro trabajo haremos uso de AJAsmplus, por ser uno de los compiladores cruzados más potentes que existen para el desarrollo sobre ZX Spectrum y no ser muy complicado de utilizar.

Bueno, pues por hoy lo dejamos aquí, en la próxima hablaremos de los emuladores.

Para saber más sobre computación retro:

Desarrollo de Juegos para Spectrum (Parte 1)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll hacia arriba