¿Qué es ESPectrum?
ESPectrum es un emulador de los modelos 48K y 128K del microordenador Sinclair ZX Spectrum que se ejecuta sobre microcontroladores Espressif ESP32.
Un microcontrolador es un pequeño ordenador dedicado para tareas específicas (usualmente industriales) con una potencia de proceso, memoria y almacenamiento usualmente limitadas. Afortunadamente, aun con sus limitaciones, el ESP32 ha demostrado disponer de suficiente potencia de proceso para el desarrollo y ejecución de diversos proyectos de emulación.
El chip se ofrece a fabricantes y “makers” para su integración en otras placas y por suerte para nosotros, existen placas en el mercado que, además del ESP32, incluyen de serie la electrónica, componentes y conectores necesarios para el perfecto funcionamiento de nuestro proyecto. Una de las opciones más asequibles es la placa Lilygo TTGo VGA32.
Esta pequeña placa incluye, por un precio aproximado de unos 15€, todo lo necesario para disfrutar de un Spectrum emulado: conector VGA, dos conexiones de tipo PS/2 para teclado y ratón, una salida de audio minijack preamplificada, un slot para tarjeta SD y un conector microUSB para alimentación y comunicación USB serie.
Además hemos colaborado con Antonio Villena, conocido fabricante de hardware retro que ha creado una placa compatible con el proyecto que dispone de algunas mejoras destacando entre ellas la posibilidad de utilizar como dispositivo de entrada un teclado real de Sinclair ZX Spectrum.
Así, si disponemos de una placa equipada con los conectores necesarios, un teclado que soporte el protocolo PS/2 o un teclado real ZX Spectrum, un monitor VGA y, aunque no es imprescindible ya que el ESP32 incluye almacenamiento interno, una tarjeta micro SD como medio de almacenamiento, podemos disfrutar gracias a ESPectrum de un emulador maduro y preciso, que implementa a la perfección aspectos como memoria en contienda, bus flotante, sonido beeper y AY, temporización cycle-perfect y generación de vídeo idéntica a la máquina real.
En su versión más reciente se puede conectar, además de a monitores VGA estándar, a televisores CRT mediante una sencilla modificación a la placa Lilygo (con soporte directo en la placa ESPectrum de Antonio Villena) y un adaptador bastante asequible utilizando la frecuencia exacta de refresco de video que la de un Sinclair ZX Spectrum original.
Características
- Emulación de Spectrum 48K y 128K (no se necesita PSRAM).
- Emulación precisa del Z80 (core de José Luis Sánchez AKA zx81, autor del magnífico ZXBaremulator).
- Modos de video VGA Standard, VGA 50hz y CRT 50hz.
- Soporte para relaciones de aspecto 16:9 y 4:3 (usando modos de 360×200 o 320×240).
- Efectos de atributos multicolor emulados (motores Bifrost*2, Nirvana y Nirvana+).
- Efectos de borde emulados (Aquaplane, The Sentinel, demo Overscan).
- Efecto de bus flotante emulado (Arkanoid, Sidewize).
- Emulación de memoria contended y E/S contended.
- Emulación de sonido AY-3-8912.
- Emulación de Beeper & Mic respetando sus niveles de salida relativos (Cobra’s Arc).
- Soporte de teclado PS/2 y teclado Spectrum real (utilizando la placa ESPectrum de Antonio Villena).
- Emulación de joystick tipo Kempston y Cursor.
- Menú OSD completo en dos idiomas: inglés y español.
- Carga de archivos TAP en tiempo real.
- Carga de snapshots SNA y Z80.
- Guardado y carga de snapshots (tanto 48K como 128K soportados).
- Captura de pantalla BMP en tarjeta SD.
- Soporte simultáneo de almacenamiento interno (SPIFFS) y externo (tarjeta SD).
Historia
Todo comenzó en 2017, cuando Pete Todd dio vida al proyecto inicial. En 2019, Ramón Martínez y Jorge Fuertes añadieron su toque, mejorando el trabajo de Pete y, no mucho después, David Crespo intervino, expandiendo y mejorando aún más el proyecto con su versión con soporte de Wiimote.
El verano de 2022 trajo un giro emocionante. Después de ver un vídeo sobre el proyecto de David Crespo en su canal de YouTube, Víctor Iborra se compró una placa Lilygo VGA32 y se enamoró del proyecto al instante. Pronto se encontró inmerso en el código, analizándolo, intentando solucionar problemas y mejorando el emulador. Con paciencia, perseverancia y la inestimable ayuda de David y otros miembros del foro Retrowiki.es, Víctor superó obstáculos y añadió mejoras. A través de este proceso, resucitó su aprecio adolescente por el Spectrum y ganó un profundo conocimiento del mismo y sus particularidades.
Tras muchas horas de desarrollo, estudio y pruebas, Víctor publicó la versión IDF, que puede considerarse muy completa y madura y emula a la perfección tanto el modelo de 48K como el de 128K.
Como mencionó David en su vídeo, ESPectrum es ahora mismo una de las formas más asequibles de tener lo mas parecido a un Spectrum totalmente funcional.
A fecha de hoy, el desarrollo de ESPectrum sigue siendo un esfuerzo conjunto entre Víctor Iborra y David Crespo, con muchas ideas emocionantes de cara al futuro.