Ir al contenido principal

Emulador ESPectrum para TTGO VGA32 (ESP32)

Existen dos tipos de emuladores, los que requieren de un PC para poder utilizarlos y los que se ejecutan en pequeños dispositivos programables como Raspberry, ESP32, etc... Personalmente me gustan más estos últimos porque el inicio es instantáneo y no hay que esperar a que arranque el sistema operativo de turno para acceder a la emulación. Este tipo de emuladores se conocen como baremetal. Los más significativos para el ZX Spectrum son el ZXBaremulator para RasberryPi y el ESPectrum para ESP32, este último, objetivo de nuestro análisis. 


Para utilizar el emulador ESPectrum necesitamos una placa TTGO VGA32, que además de contener un ESP32, tiene una salida VGA, 2 puertos PS/2, para ratón y teclado, una salida de audio estéreo y un slot para tarjetas microsd. Este pequeño dispositivo está muy bien de precio, por aproximadamente 15€ podríamos conseguir uno, que en comparación a un Spectrum real, está claro que es una opción mucho más económica y que podría valernos si no tenemos una elevada nostalgia. 

Instalación del Firmware ESPectrum

Si, nada más comprar la TTGO, conectamos la placa con el cable VGA a un monitor, podremos ver el software que viene preinstalado por defecto, haciendo esto es una forma de asegurarnos que el dispositivo funciona.

El firmware del ESPectrum lo podemos descargar desde GitHub. La versión actual, a la hora de realizar este análisis, es la ESPectrum 1.0 rc3:


Hay distintas formas de realizar la instalación del firmware, en mi caso elijo la opción de utilizar el programa Flash Download Tool.

Primero nos descargamos en un PC el fichero .bin de Github. Conectamos la TTGO VGA con un cable USB-MicroUSB al PC. Abrimos una ventana CMD e introducimos el comando chgport,para ver qué puerto tiene asignado la TTGO, en mi caso el COM3. Si tienes varios dispositivos con un puerto asignado, antes de conectar la TTGO, ejecuta el comando chgport, anota los puertos que ya están asignados y al volver a conectar la TTGO asignará uno nuevo, que es el que utilizaremos para la instalación.

Abrimos la aplicación Flash Download Tool y nos preguntará por el tipo de dispositivo a flashear, elegimos ESP32 y el workmode develop.


Al entrar, seleccionamos el archivo .bin con el firmware del ESPectrum, en el cuadro de texto después de la @ se escribe 0x0 y por último se marca el check del lado izquierdo. Si todo está correcto, lo veremos resaltado de color verde. Seleccionamos el puerto COM en el que está conectado el dispositivo y en baudios ponemos el valor 460800, si da error, id bajando este valor hasta que funcione. 

Para empezar a flashear la TTGO pulsamos el botón Start. Veremos un barra de progreso avanzando muy rápido y en verde el texto Download. Cuando termine, nos aparecerá en azul el texto Finished. 


Primer encendido

Una vez flasheada, para utilizar la TTGO con el emulador ESPectrum necesitamos lo siguiente:
  • Monitor con entrada VGA
  • Cable VGA.
  • Teclado PS/2 o teclado USB con conversor USB a PS/2.
  • Conversor audio estéreo a audio RCA. Mi monitor no tiene entrada de audio estéreo pero sí RCA.
  • Cable audio RCA.
  • Cable USB-microUSB con alimentador/cargador 5V.
  • Tarjeta microSD formateada en FAT16 o FAT32 con juegos.

Primero, preparo la tarjeta microSD con juegos, en el raíz de la tarjeta, creo una carpeta con el nombre t, donde meto varios juegos .tap, una carpeta con el nombre s, para meter ficheros .z80 y .sna, y una carpeta con el nombre p para guardar los snapshots. También, si lo deseamos, habría que crear una carpeta c para guardar las capturas de pantalla. Esta creación de carpetas no será necesaria en versiones posteriores porque el software vendrá preparado para una gestión de directorios.

Conectamos a la TTGO el teclado, con el conversor de USB a PS/2, el cable VGA, el adaptador de audio estéreo a RCA, con los cables RCA, el cable microUSB con el cargador e insertamos la tarjeta microSD. 

Una vez que tengamos todo conectado, enchufamos el cargador a la red eléctrica y, casi instantáneamente, aparece en el monitor la típica pantalla de inicio del Spectrum 48K.

La primera impresión es muy buena, la imagen se ve muy nítida, el teclado funciona, tenía dudas de que el conversor USB a PS/2 funcionara, y la sensación de que estamos ante un ZX Spectrum es total.

Con las teclas de función del teclado podemos desplazarnos por las distintas opciones de menú u otras funciones. En la web del ESPectrum, en la guía de usuario, se listan todas las funciones disponibles. 

Se puede elegir entre tres máquinas, Spectrum 48K, Spectrum 128K y Pentagon 128K.

La carga de juegos la podemos realizar también desde el menú y tenemos dos opciones, Tape o casete para cargar ficheros con formato cinta (.tap) o snapshot para cargar imágenes (.z80 y .sna). Como también podemos grabar partidas, éstas se pueden cargar y reanudarlas en el punto que las dejamos. Esta última funcionalidad, muy típica de emulador, es una de las más valorables y que claramente no disponíamos en el Spectrum a no ser que tuvieras el Multiface.


La carga de los juegos es instantánea, el sonido es muy bueno, con las teclas de función F9 y F10 se puede bajar y subir el volumen, hay un pequeño bug, que lo tienen detectado y a mí me ha pasado varias veces, que en ocasiones se va el sonido y es necesario hacer un reset del dispositivo para poder volver a tener audio. 
He probado con distintos juegos, y la jugabilidad es muy buena, sobre todo por el teclado moderno, mucho mejor que el original del Spectrum, en cualquiera de sus versiones, 48K gomas, plus o de las versiones de Amstrad +2/A/B y +3. Respecto a añadir un joystick, está la opción del utilizar un mando de la Wii (ESPectrum Wiimote) o utilizar una especie de adaptador, que hay que adquirir aparte, que se llama ESPjoy, con dos puertos DB9, que se le puede conectar dos joysticks. Para utilizarlo, actualmente, habría que desconectar el teclado y conectar el ESPJoy, a través del conversor USB a PS/2, al conector PS/2 del teclado de la placa TTGO. Este adaptador es un poco caro, teniendo en cuenta lo que vale la placa, como personalmente siempre me ha gustado manejarme con el teclado, aquí por el precio, no tengo ninguna duda de seguir utilizándolo.

Conclusiones

Tiene muy buena pinta este emulador ESPectrum. Fácil de instalar, arranque rápido, buena calidad de imagen y sonido, dispositivo muy pequeño y un sinfín de excelentes prestaciones que hace casi imprescindible tener una TTGO guardada en el cajón para, cuando nos aburramos, conectarla a un monitor y echarnos unas partidas a nuestros juegos favoritos.

La sensación de estar con un Spectrum real es muy parecida. También, me ha gustado mucho utilizar un teclado moderno y guardar snapshots para continuar con las partidas en cualquier otro momento. 

El software ESPectrum está en continua evolución, el próximo 29/12/2023 está prevista el lanzamiento de la versión 1.0, con correcciones, mejoras y nuevas funcionalidades.


Como siempre, todo tiene sus problemas e inconvenientes, en este caso, creo que es elevado el número de cables y cachivaches que tenemos que utilizar: cable VGA, USB de alimentación, teclado, audio RCA, los adaptadores para hacer la conversión de USB a PS/2 y audio estéreo a RCA, y el cargador para la alimentación. Éste último he conseguido quitarlo gracias a que el monitor tiene un conector de alimentación USB de 5V, pero como se enciende la TTGO al encender el monitor, no sé porqué, pero no aparece el audio. Lo he conseguido resolver cambiando el tipo de entrada del monitor y volviéndolo a cambiar de nuevo al modo VGA.


Para conectarle un joystick hay que comprar un adaptador aparte, ESPJoy, metiendo un sobrecoste debido su alto precio. 

Otro inconveniente, de fácil solución, es que la placa está totalmente al descubierto. Al no venderse carcasas específicamente fabricadas para la TTGO, me tendré que imprimir una en 3D eligiendo alguno de los diseños que podemos encontrar en internet, por ejemplo, en Thingiverse.

Si la placa TTGO no nos convence porque nuestra nostalgia nos puede y nos gustaría utilizar un Spectrum original, existe la opción de un diseño de placa que se puede introducir en un teclado real de Spectrum, aunque mejor utilizar la carcasa que se vende aparte preparada para esta placa, porque el Spectrum original no tenía salida de video VGA. Tanto la placa como la carcasa del Spectrum lo podéis encontar en la web https://antoniovillena.es/store/product/espectrum/.

D.R. Spectrum








Comentarios

  1. Muchas gracias D.R.Spectrum!

    En nada, y como ya sabes, presentaremos la versión 1.0 que viene cargadita de novedades interesantes ;)

    Un saludo del equipo de ESPectrum!

    ResponderEliminar
    Respuestas
    1. Muchas gracias a vosotros por el gran trabajo que estáis haciendo. Estaré atento el 29 de diciembre para intentar ser de los primeros en instalar la nueva versión y hacer una nueva review.

      Eliminar

Publicar un comentario

Entradas populares de este blog

El botiquín del Spectrum: Componentes de repuesto

Debido a la avanzada edad de nuestros Spectrum, hay que estar prevenidos ante cualquier imprevisto que pueda surgir en forma de avería. Como hemos podido ver en alguna de las reparaciones que he publicado en este blog, me ha hecho falta una serie de componentes electrónicos, que en algún caso no los tenía, y he tenido que esperar a conseguirlos yendo a una tienda de electrónica o comprándolos por internet.  Para no encontrarnos en esta situación, he identificado cuales son las averías más frecuentes y qué componentes harían falta para poner de nuevo en marcha a nuestro Spectrum.  CPU La CPU que nos podemos encontrar en el ZX Spectrum puede ser Zilog Z80A de 4MHz o NEC D780-C, ambas totalmente compatibles. Aunque el cristal de cuarzo para generar una señal de reloj estable es de 14MHz, realmente la señal de reloj que utiliza la CPU es la marcada por el pin 32 (CLK) de la ULA. Esta señal tiene una frecuenca de 3,5MHZ, que es el resultado de dividir por 4 la señal de reloj produci

Cargar juegos con la App PlayZX (ZX81, ZX Spectrum, +2A/B y +3)

Existen varias alternativas para cargar juegos de forma casi instantánea en formatos .TAP y .TZX, como DivIDE, Dandanator, etc... A los más nostálgicos que nos sigue gustando cargar desde cinta y esperar esos minutos mientras contemplamos el screen de turno, tenemos que buscar otras alternativas que sean parecidas para así dar descanso a las cintas de casete que tan buenos momentos nos dieron, y de esta forma proporcionarles ese merecido retiro en una estantería junto a sus viejas compañeras donde podamos contemplarlas y admirar sus carátulas. La alternativa más popular es TZXduino, que junto a una tarjeta de memoria sd podemos reproducir los juegos como si los cargásemos desde un casete. Esta opción nos obliga a tener otro dispositivo, y dada la situación, por un poco más de lo que puede valer casi sería mejor opción comprarse un Divide, aunque en concepto son dispositivos muy distintos.  Otra opción sería utilizar la aplicación para teléfonos móviles Android PlayZX . En la web del de

Mi primer Amstrad CPC 6128: Puesta a punto y cómo sacarle provecho en la actualidad

El Amstrad CPC era el ordenador que siempre quise tener de niño. Recuerdo que, por el año 1986, en el centro comercial Alcampo de mi barrio tenían una especie de "corner" donde se exhibían los ordenadores de Amstrad que se podían tocar y hacer cosas con ellos, una idea muy brillante para aquella época, ya que no era un método muy habitual para captar compradores, y sin embargo, hoy en día se sigue aplicando y funcionando. Al pillarme cerca del instituto nos acercábamos a la hora del recreo y nos poníamos a hacer nuestros pinitos en Basic, de esta forma surgió mi gusto y admiración por este potente ordenador. Sin embargo, al final, en mi casa optamos por comprar el ZX Spectrum +2A, por varias razones, el precio era casi la mitad, eso sí, sin incluir monitor, en el instituto aprendíamos Basic en ordenadores Sinclair, como el de 48K o el QL, y lo más importante, casi todos mis amigos tenían ordenadores Spectrum. Todo esto influyó en la decisión final, viendo como se alejaba la o