ESPectrum: Un emulador de ZX Spectrum

Moderador: Fundadores

Avatar de Usuario
davidprograma
Le gustan las llamas
Le gustan las llamas
Mensajes: 74
Registrado: 25 Nov 2020, 02:57
Has thanked: 7 times
Been thanked: 27 times

ESPectrum: Un emulador de ZX Spectrum

Mensaje por davidprograma »

ESPectrum: emulador de Spectrum por 10€ (para VGA y PS/2)

Hola, ya se ha hablado de este tema por aquí, pero quería contarlo desde mi punto de vista...

El ZX-ESPectrum es un emulador para microcontroladores ESP32, con algunas limitaciones pero bastante operativo. Hay una placa ESP32 lista para usar, que se puede conseguir por 10€ en AliExpress (o menos, las últimas que compré me han salido por 8.5€ cada una, incluyendo gastos de envío). Aquí teneis la página del fabricante y esta es la que yo compré. Buscando y rebuscando se pueden conseguir más baratas, pero ya sabeis cómo son estos productos chinos, igual lo que os llegue otras especificaciones (menos memoria, o sólo un core).


Es una placa muy interesante que lleva los siguientes conectores:
- VGA (D-SUB 15 pines)
- Teclado PS/2
- Ratón PS/2
- Jack de 3.5mm
- Ranura de tarjeta microSD
- USB para alimentación y programación
- Y algunos pines sueltos para expansión

En su interior lleva un procesador Xtensa dual-core con 520kb de RAM, memoria SPI de 4Mb y almacenamiento flash SPI de 4Mb. Tiene suficiente potencia para generar señal de vídeo VGA de baja resolución (<= 400x300), y todavía le queda potencia disponible para hacer otras cosas.

Lleva incorporado WiFi y Bluetooth, este último lo he usado para manejar el emulador con un mando de la Wii.)

También se puede comprar el microcontrolador suelto, para soldar en una placa, por unos 3€, o en una placa para montar en breadboard por unos 9€ (o menos, según modelos), para conectar los pines a VGA, PS/2, etc.

El año pasado (2020) conocí los micros ESP32 y me puse a cacharrear con ellos. Pensé en programar un emulador de Spectrum, pero ya encontré uno hecho (el de Rampa), y empecé a construir sobre él.

El repositorio github del emulador está en
https://github.com/dcrespo3d/ZX-ESPectr ... ttgo-vga32

La rama que indico tiene configurados los pines para la TTGo, la rama Master es para un ESPectrum que me construí _dentro_ de un teclado PS/2, al estilo de un Spectrum real, donde el teclado es el ordenador.

He escrito cómo conocí la plataforma y los cacharreos variados que hice con ella en este documento:
https://dcrespo3d.github.io/ZX-ESPectru ... istory-es/

El emulador de Spectrum emula Spectrum 48K y 128K / +2A / +3, con ficheros de ROM intercambiables.

La temporización de la emulación es más que digna, pero no perfecta al 100%. Eso sí, ha mejorado muchísimo desde que incluí el emulador de Z80 de José Luis Sánchez (aka zx81 por aquí), aunque todavía genero el vídeo sin sincronizar con los T-states, con lo que los modos multicolor raros/modernos no funcionan aún.

La salida de vídeo por VGA soporta monitores 4:3 (320x240) y 16:9 (360x200).

Soporta juegos en snapshot en formatos .SNA y .Z80.

Los juegos pueden estar o bien en la flash interna, que se graba al programarla por USB, o bien en una tarjeta micro SD externa.

El emulador tiene sonido casi perfecto en modo 48K. En modo 128K la emulación del AY-3-8912 está incompleta; suena algo, pero no suena perfecto.

Se pueden grabar y cargar instantáneas (en modos 48K y 128K) para esos juegos difíciles...

Tengo un par de vídeos sobre el emulador:

El primero muestra la placa TTGo, que viene con todos los conectores necesarios:
https://youtu.be/GXHBrQVTfBw

El segundo muestra una placa de desarrollo ESP32, a la que he tenido que conectar un conector VGA a los pines adecuados, y adaptar el teclado PS/2 mediante un convertidor de niveles. Para el que le guste cacharrear con hardware puede ser interesante...
https://youtu.be/ROthljwC5OA

Incluso he hecho pruebas (con éxito) de conectar la membrana de un spectrum real, tengo preparado el código para ello, sólo hay que conectar 13 pines. Igual algún día me lo monto dentro de un teclado de Spectrum real, como ya hice con un Raspberry Pi y el ZXBaremulator de José Luis Sánchez, pero eso es otra historia...

Todavía sigo trabajando en el emulador, me gustaría añadir:
- Gestión de múltiples instantáneas (ahora sólo se guarda una).
- Soporte para ficheros .TAP, para ello tengo que entender mejor el proceso de carga desde cinta.
- Mejora de la temporización (la emulación de la contended memory y los ciclos de espera ULA -> CPU es casi perfecta en modo 48K).
- Soporte de modos multicolor (Nirvana / Bifrost / ...). Para ello es imprescindible mejorar la temporización, y sincronizar la generación de vídeo con la emulación de la CPU casi con precisión de T-state. Actualmente la sincronización es a nivel de frame...

Pues nada, si alguien se anima y quiere probarlo, ya tiene bastante info... no prometo ni garantizo nada ni me llevo comisión, pero personalmente estoy bastante contento con las ESP32, me lo estoy pasango genial cacharreando con ellas, y no soy el único; por los comentarios en los vídeos de youtube veo que hay más gente que se ha animado a hacerse con uno.
Última edición por davidprograma el 30 Mar 2021, 17:16, editado 4 veces en total.
DavidPrograma en YouTube, GitHub
Avatar de Usuario
Alki
Aspirante a demonio
Aspirante a demonio
Mensajes: 237
Registrado: 25 Jul 2020, 18:15
Has thanked: 25 times
Been thanked: 24 times

Re: ESPectrum: emulador de Spectrum por 10€ (para VGA y PS/2)

Mensaje por Alki »

Hola, tienes un hilo donde se habla bastante de este tema:
viewtopic.php?t=8882

Un saludo
Avatar de Usuario
iturbez
Demonio segundo orden
Demonio segundo orden
Mensajes: 1261
Registrado: 01 Feb 2014, 18:56
Has thanked: 19 times
Been thanked: 41 times

Re: ESPectrum: emulador de Spectrum por 10€ (para VGA y PS/2)

Mensaje por iturbez »

Hola.
Muy interesante el tema.
¿Podrías poner un enlace directo a la placa que utilizas para este proyecto?
Sí pongo los datos que has dado, no me aclaro cuál es la necesaria... Igual doy yo muy bruto...
Gracias y un saludo.
Avatar de Usuario
davidprograma
Le gustan las llamas
Le gustan las llamas
Mensajes: 74
Registrado: 25 Nov 2020, 02:57
Has thanked: 7 times
Been thanked: 27 times

Re: ESPectrum: emulador de Spectrum por 10€ (para VGA y PS/2)

Mensaje por davidprograma »

Sí, por eso digo que ya se ha hablado de esto por aquí.

Un saludo.
Alki escribió: 20 Mar 2021, 08:21 Hola, tienes un hilo donde se habla bastante de este tema:
viewtopic.php?t=8882

Un saludo
DavidPrograma en YouTube, GitHub
Avatar de Usuario
davidprograma
Le gustan las llamas
Le gustan las llamas
Mensajes: 74
Registrado: 25 Nov 2020, 02:57
Has thanked: 7 times
Been thanked: 27 times

Re: ESPectrum: emulador de Spectrum por 10€ (para VGA y PS/2)

Mensaje por davidprograma »

Hola, he actualizado el mensaje con enlaces.

Mirando mi historial de compras de AliExpress, he comprado ésta recientemente

https://es.aliexpress.com/item/4001229710648.html

y ésta hace unos meses:

https://es.aliexpress.com/item/33014937190.html


iturbez escribió: 20 Mar 2021, 09:05 Hola.
Muy interesante el tema.
¿Podrías poner un enlace directo a la placa que utilizas para este proyecto?
Sí pongo los datos que has dado, no me aclaro cuál es la necesaria... Igual doy yo muy bruto...
Gracias y un saludo.
DavidPrograma en YouTube, GitHub
Avatar de Usuario
iturbez
Demonio segundo orden
Demonio segundo orden
Mensajes: 1261
Registrado: 01 Feb 2014, 18:56
Has thanked: 19 times
Been thanked: 41 times

Re: ESPectrum: emulador de Spectrum por 10€ (para VGA y PS/2)

Mensaje por iturbez »

davidprograma escribió: 20 Mar 2021, 10:53 Hola, he actualizado el mensaje con enlaces.

Mirando mi historial de compras de AliExpress, he comprado ésta recientemente

https://es.aliexpress.com/item/4001229710648.html

y ésta hace unos meses:

https://es.aliexpress.com/item/33014937190.html


iturbez escribió: 20 Mar 2021, 09:05 Hola.
Muy interesante el tema.
¿Podrías poner un enlace directo a la placa que utilizas para este proyecto?
Sí pongo los datos que has dado, no me aclaro cuál es la necesaria... Igual doy yo muy bruto...
Gracias y un saludo.
¡Guauuu!
Me lo pido ahora mismo...
Muchísimas gracias, compañero.
issalig
Aspirante a demonio
Aspirante a demonio
Mensajes: 435
Registrado: 25 Feb 2021, 00:18
Has thanked: 187 times
Been thanked: 118 times

Re: ESPectrum: emulador de Spectrum por 10€ (para VGA y PS/2)

Mensaje por issalig »

Ackerman está portando un montón de emuladores (CPC, ZX, GameBoy, ...) a esa tarjeta.
Más info en http://retrowiki.es/viewtopic.php?f=86& ... p200125074
Avatar de Usuario
davidprograma
Le gustan las llamas
Le gustan las llamas
Mensajes: 74
Registrado: 25 Nov 2020, 02:57
Has thanked: 7 times
Been thanked: 27 times

Re: ESPectrum: emulador de Spectrum por 10€ (para VGA y PS/2)

Mensaje por davidprograma »

Lo sé, estoy en contacto con él, estamos intercambiando ideas y detalles técnicos... :)
issalig escribió: 20 Mar 2021, 21:38 Ackerman está portando un montón de emuladores (CPC, ZX, GameBoy, ...) a esa tarjeta.
Más info en http://retrowiki.es/viewtopic.php?f=86& ... p200125074
DavidPrograma en YouTube, GitHub
Avatar de Usuario
davidprograma
Le gustan las llamas
Le gustan las llamas
Mensajes: 74
Registrado: 25 Nov 2020, 02:57
Has thanked: 7 times
Been thanked: 27 times

Re: ESPectrum: emulador de Spectrum por 10€ (para VGA y PS/2)

Mensaje por davidprograma »

iturbez escribió: 20 Mar 2021, 17:28
¡Guauuu!
Me lo pido ahora mismo...
Muchísimas gracias, compañero.
Ya me contarás ;) Yo me lo estoy pasando como un enano trasteando con él...
DavidPrograma en YouTube, GitHub
Avatar de Usuario
iturbez
Demonio segundo orden
Demonio segundo orden
Mensajes: 1261
Registrado: 01 Feb 2014, 18:56
Has thanked: 19 times
Been thanked: 41 times

Re: ESPectrum: emulador de Spectrum por 10€ (para VGA y PS/2)

Mensaje por iturbez »

davidprograma escribió: 21 Mar 2021, 01:37
iturbez escribió: 20 Mar 2021, 17:28
¡Guauuu!
Me lo pido ahora mismo...
Muchísimas gracias, compañero.
Ya me contarás ;) Yo me lo estoy pasando como un enano trasteando con él...
He pedido un par de tarjetas. Ahora, a esperar que lleguen, y ¡a jugaaar!
Magnífico proyecto.
Responder

Volver a “Emulación”