Update 25-04-23 (16:30 P.M.):
Detectado un problema con el teclado PS/2. Si os bajasteis la release (binario o código fuente) antes de las 16:20 P.M. (aprox.) volverla a descargar que ya está corregida. Sorry!
Update 25-04-23:
Versión 1.0 beta 5.3 disponible desde ya aquí:
https://github.com/EremusOne/ZX-ESPectr ... 0.beta.5.3
Novedades:
- Añadido retardo y sonidos de teclado al estilo Spectrum (en versiones 48k y 128k) al menú y las teclas de función.
- Añadido pantalla de ayuda tal y como sugirió azesmbog.
Cambios:
- Mejorada la calidad de la emulación AY y solucionada la detección del chip AY (Ahora no se detecta como YM) (Gracias Rampa!)
- Teclado PS/2 reescrito para ajustarse a los estándares de la emulación Spectrum: ahora los dos Shifts actúan como el Caps Shift del Spectrum y los dos Control actúan como las teclas Symbol Shift. Las únicas teclas especiales que se mantienen son Backspace, la coma y el punto.
- La emulación de Cursor joystick ahora genera CAPS SHIFT + 5, 6, 7 u 8 y la tecla 0 como disparo.
- Ahora el emu no recordará el ultimo snapshot cargado. Siempre arrancara con la ultima ROM activa.
Bugfixes:
- Corregida la emulación de la envolvente AY. El problema con el sonido en "The Addams Family", y probablemente en otros títulos, se ha solucionado.
Problemas conocidos:
- En raras ocasiones, el sonido no se inicializa tras arrancar el emu o después de cargar un sna, z80 o snapshot. Reiniciar el ESP32 (usando F12 o quitando y poniendo alimentación de nuevo) lo soluciona siempre.
Update 11-04-23:
Versión 1.0 beta 5.2 disponible desde ya aquí:
https://github.com/EremusOne/ZX-ESPectr ... 0.beta.5.2
Cambios:
- Libreria pwm audio actualizada a versión 1.1.1
- Ahora, la sincronización audio/video es perfecta. La consecuencia es un audio totalmente limpio. No mas clicks, artefactos o desincronizaciones.
- Mejorada la emulación del beeper. Se emulan los bits EAR y MIC y los niveles de salida de acuerdo a los de la ULA issue 2 (Gracias @zx81 !)
- Mejorada la emulación AY. El buffer de audio AY se produce ahora durante el frame. Esto hace que efectos como el de la voz en Robocop funcionen correctamente.
- Se ha ajustado la relación de volumen entre el chip AY y el beeper.
Bugfixes:
- A veces, tras iniciar el emu o después de cargar un sna, z80 o snapshot, el sonido se estropeaba ligeramente. Totalmente corregido.
Problemas conocidos:
- En raras ocasiones, el sonido no se inicializa tras arrancar el emu o después de cargar un sna, z80 o snapshot. Reiniciar el ESP32 (usando F12 o quitando y poniendo alimentación de nuevo) lo soluciona siempre.
Update 01-04-23:
Versión 1.0 beta 5.1 disponible desde ya aquí:
https://github.com/EremusOne/ZX-ESPectr ... 0.beta.5.1
Bugfixes:
- Se ha corregido un error en la gestión del registro AY de tipo de envolvente. Ahora todo suena perfecto.
Update 29-03-23:
Version 1.0 beta 5 disponible desde ya aquí:
https://github.com/EremusOne/ZX-ESPectr ... 1.0.beta.5
Novedades:
- Emulación AY-3-8912 completa!
Cambios:
- Calidad de sonido muy mejorada gracias a una mejor comprensión y uso de la librería pwm_audio.
- Mejorada la gestión del borde en Ports::output. Esto corrige un glitch (que me ponía muy nervioso

- Mas optimizaciones: el emu es un poco mas rápido.
- Optimizado el consumo de RAM: el emu debería ser mas estable y ahora hay mas RAM libre para futuras mejoras

Bugfixes:
- Corregido un error en el calculo del frame delay que producía cuelgues después de mas de 1,19 horas con un menú abierto.
Update 06-03-23:
Version 1.0 beta 4 disponible desde ya aquí:
https://github.com/EremusOne/ZX-ESPectr ... 1.0.beta.4
New features:
- Floating bus emulated!
- Active mode (48K, 128K) now shows on main menu.
- AY emulation is now selectable in 48K mode.
- Joystick mode (Cursor, Kempston) selectable in realtime.
- Cyclic menu movement (thanks David Crespo!).
Changes:
- Optimized video generation (about 10% speed boost).
- Optimized memory access (thanks Ackerman!) and contention code (about 10% speed boost too).
- Perfect timings in 48K and 128K mode (thanks to Azesmbog for testing and providing very valuable info to make the emu more precise).
- Changed arch and rom selection to machine selection: ZX Spectrum 48K and ZX Spectrum 128K. Sinclair ROM in both cases.
- Moved sound post proccessing to second core.
Bugfixes:
- Beeper sound generation lag fixed in 128K mode (thanks David Crespo!).
- Arch bug on SNA and Z80 load corrected.
Update 18-02-23:
Version beta 3 disponible desde ya aqui:
https://github.com/EremusOne/ZX-ESPectr ... 1.0.beta.3
He tenido que dedicar bastante tiempo a crear un sistema de indexado de los directorios para poder ordenarlos adecuadamente ya que, al disponer de muy poca RAM, la ordenación anterior la agotaba cuando había mucho archivo y el ESP32 se reiniciaba.
Ahora se genera un fichero índice en cada directorio mediante un merge sort y algunos truquillos que me he sacado de la manga para disponer de algo de RAM para acelerar el proceso. En mis pruebas, he podido meter mas de 6000 archivos en la carpeta de snapshots.
La longitud de nombre de archivos queda en 24 caracteres más la extensión para ambos sistemas: interno y sd. Si poneis ficheros con nombre más largo en la SD, el emu trunca el nombre en el índice y en el diálogo de ficheros pero no se realiza modificación alguna al nombre del fichero en la tarjeta.
Relacionado con esto, los nombres de carpetas han cambiado, ahora quedan así:
- p para los snapshots persistentes
- s para sna y z80
- t para tap
- c para capturas de pantalla
El emu genera automáticamente el índice si no lo encuentra en la carpeta. Después, si añadís cosas a la tarjeta sd, tendréis que usar "Opciones/Almacenamiento/Refrescar directorios" para regenerar el índice. No os preocupéis si tarda: para 1000 y pico ficheros no va mal, unos 15-20 segundos pero para 6000 y pico ya se va a los tres minutos.
Por otra parte ya hay localización completa ingles y español y soporte para varios layouts de teclado. También se soportan todas las "convenience keys" del Spectrum (punto, coma, comillas, etc.. todos los símbolos que se pueden obtener con Symbol Shift).
La emulación de joystick Kempston ahora usa las flechas del Keypad (y la tecla central del keypad, el 5, también como abajo para el que le resulte más cómodo que el 2) y el Alt derecho. Eso permite disparar correctamente en todos los movimientos en diagonal cosa que, al menos en mi teclado, era imposible con las flechas del cursor.
Os dejo aquí info de las release notes:
New features:
- Interface localization in English and Spanish.
- Support for US English, Spanish, German, French and UK British keyboard layouts.
- New directory index system for supporting BIG number of files in SNA,Z80 and TAP directories (check README.md for details)
Changes:
- Kempston emulation activated by default and moved to Keypad direction keys and Right Alt.
Bugfixes:
- Fix for 16:9 screen not correctly centered.
A disfrutarlo!
Post original:
Pues ya está

La versión 1.0 beta2 disponible desde ya mismo en el repo:
https://github.com/EremusOne/ZX-ESPectrum-IDF
Si no os apetece trastear con el compilador y el código fuente, podéis también descargar el binario y las instrucciones para flashearlo aquí:
https://github.com/EremusOne/ZX-ESPectrum-IDF/releases
En breve ampliare el post con todas las novedades, una descripción mas detallada de sus funcionalidades y las instrucciones para compilarlo y/o flashearlo directamente en vuestras plaquitas.
Ahora a trastear, a romper cosas y a darme todo el feedback que podais!

Saludos!