Ultima versión:
Versión 1.0 rc3
https://github.com/EremusOne/ZX-ESPectrum-IDF/releases/tag/v1.0.rc3
Nuevas características:
– Nuevo modelo Spectrum: Pentagon 128.
– Emulación de Betadisk con soporte de lectura/escritura TRD y solo lectura SCL. Disponible en todos los modelos Spectrum.
– Soporte de teclado dual PS/2 en ambos puertos de las placas Lilygo y Olimex.
– Nueva opción para indicar al emulador si hay un dispositivo conectado al primer puerto PS/2 en la placa ESPectrum o al segundo puerto PS/2 en las placas Lilygo y Olimex. Esto es útil para acelerar el proceso de inicio. Antes de esta opción, si no tenías un dispositivo conectado al puerto, se producía un retraso mientras el emulador intentaba reiniciarlo.
– Nueva opción para seleccionar si deseas que las teclas de cursor actúen como teclas de cursor Spectrum o como emulación de joystick. Puede seleccionarse en el menú o cambiarse usando la tecla Bloq Despl. Independientemente del modo de teclas de flecha seleccionado, la emulación de joystick estará siempre disponible en las teclas de cursor del teclado numérico.
– Soporte para el segundo botón de disparo en la emulación Kempston. Está asignado a la tecla Slash o a la tecla Gui derecha.
Cambios:
– Optimizada la velocidad de arranque: ahora el emulador se inicia en menos de dos segundos.
– Optimización de carga de archivos Sna y z80.
– La emulación de cursor joystick ahora envía 5678 y 0 de nuevo.
– La pantalla de ayuda ahora muestra las teclas para la placa ESPectrum si el emulador se está ejecutando en ella.
– Puedes usar CS+SS+P como pausa en el teclado ZX.
– El mensaje de pausa ya no se mantendrá fijo en la pantalla.
Bugfixes:
– Se solucionaron algunos errores en la carga de archivos z80: registro R incorrecto, escritura en páginas ROM y carga de bloques sin comprimir en las versiones v2 y v3 no implementadas. Ahora, muchos archivos z80 que antes no funcionaban cargarán perfectamente.
– Se solucionó un error en el OSD después de hacer hard reset.
Problemas conocidos:
– En casos raros, el sonido no se inicializa al iniciar el emulador o se corrompe o se silencia después de cargar un .sna, .z80 o snapshot. Reiniciar el ESP32 (usando F12 o apagando y encendiendo) siempre lo soluciona.
Versiones anteriores:
Versión 1.0 rc2
https://github.com/EremusOne/ZX-ESPectrum-IDF/releases/tag/v1.0.rc2
Nuevas características:
– Implementada la carga rápida de archivos TAP, seleccionable a través del menú Opciones/Almacenamiento.
– Posibilidad de carga rápida o solo insertar cinta desde el selector de archivos TAP: ENTER para carga rápida y ESPACIO para insertar la cinta (ENTER y 0 en el teclado ZX).
– Nuevo Navegador de cinta (F7) que permite navegar por la cinta y (re)iniciar la carga desde cualquier punto.
– OSD en tiempo real del estado de la cinta: si la cinta se está cargando, el OSD (F8) cambiará para mostrar información sobre el estado de la carga.
– Se atrapa el comando SAVE: si utilizas el comando, guardará un archivo .tap en la tarjeta SD con el nombre que pongas entre comillas.
– Emulación de las temporizaciones «Early» y «Late» de la ULA. Ahora, con «Late timings», el “128k Spectrum Timing Test” funciona perfectamente. (Gracias a @redcode AKA zJoyKiler, por su ayuda).
– La emulación de Spectrum 48K Issue 2 ahora es seleccionable (Opciones/Otros/48K Issue 2).
– Detección software de las diferentes placas compatibles Ahora, solo hay un archivo binario para todas las placas: Lilygo TTGO VGA32, ESPectrum de Antonio Villena y ESP32-SBC FabGL de Olimex. (Gracias a David Carrion @dacarsoft por la ayuda con la placa ESPectrum).
Cambios:
– Optimizaciones en el sistema de video y el ciclo de la CPU que resultan en un aumento de ~10.65% en la velocidad de emulación.
– Cambios en el núcleo Z80 para reflejar el comportamiento de las instrucciones de bloque como se describe en https://github.com/hoglet67/Z80Decoder/ … nted-Flags (Gracias a José Luis Sánchez @zx81 por su ayuda).
– Se agregaron cambios en la emulación de la instrucción HALT según se describe en https://github.com/jsanchezv/JSpeccy/co … 0d1eb40cfd
– Se corrigió el tiempo de cambio de banco de pantalla. Ahora la prueba ptime.tap de Patrik Rak funciona correctamente. (También podemos pasar ptime128.tap correctamente, pero necesita funciones de dibujo más precisas y lentas, así que decidimos mantener las funciones de dibujo más rápidas porque es una prueba no compatible en la mayoría de los emuladores y sin uso práctico. Más información en https://softspectrum48.weebly.com/notes … -challenge ).
– El sistema de archivos SPIFFS ya no se utiliza. La tarjeta SD es la única opción de almacenamiento y la configuración se almacena en la partición NVS.
– La tecla F7 ya no es «Detener cinta» y la tecla F6 cambia de «Reproducir/Pausar cinta» a «Reproducir/Detener cinta».
– La tecla F11 ahora es un atajo a «Hard reset» (CS + SS + Q en el teclado ZX).
– El atajo para la captura de pantalla BMP cambia a CS + SS + S en el teclado ZX.
– Se redujo el consumo de RAM de la emulación AY en 6kb.
– Mejorada la emulación del joystick Kempston para leer también el puerto 0xDF. El joystick ahora funciona correctamente en Nonamed y probablemente en otros juegos.
Problemas conocidos:
– En casos raros, el sonido no se inicializa al iniciar el emulador o se corrompe o se silencia después de cargar un .sna, .z80 o snapshot. Reiniciar el ESP32 (usando F12 o apagando y encendiendo) siempre lo soluciona.
Versión 1.0 rc1 hotfix
https://github.com/EremusOne/ZX-ESPectrum-IDF/releases/tag/v1.0.rc1.hotfix1
Bugfixes:
– Arregladas funciones peek16 y poke16 para comprobar que los dos bytes de la dirección estan en la misma pagina de ram. Esto soluciona problemas detectados en Cabal, en algunas intros de 1k incluidas en «Ahh… the tape loading era» y en el primer sample de voz de la demo «Back to the gemba».
Versión 1.0 rc1
https://github.com/EremusOne/ZX-ESPectrum-IDF/releases/tag/v1.0.rc1
Nuevas características:
– Soporte para el teclado real Spectrum 48k utilizando la nueva placa ESPectrum de Antonio Villena. A partir de ahora, habrá dos binarios: uno para las placas Lilygo VGA32 y similares y otro para la placa de Villena.
– Soporte para tres modos de video: VGA Estándar (60 y 70hz), VGA 33-40k 50hz y modos CRT 15k 50hz. Para los modos VGA 50hz solo necesitas un monitor que los soporte. El modo CRT 50hz se soporta en la placa ESPectrum a través del adaptador VGA-Scart de Antonio Villena (también funciona en la placa Lilygo pero se necesita un pequeño truco, que detallaremos en el sitio web de ESPectrum).
Puedes cambiar entre modos usando las siguientes combinaciones de teclas durante la secuencia de arranque del emulador y verificar más tarde el modo de video actual en la barra inferior de la pantalla de ayuda:
1 + Q -> VGA Estándar 4:3 (60hz)
1 + W -> VGA Estándar 16:9 (70hz)
2 + Q -> VGA 40khz 50hz 4:3
2 + W -> VGA 33khz 50hz 16:9
3 + Q -> CRT 15khz 50hz 4:3
3 + W -> CRT 15khz 50hz 16:9
(En teclados PS/2 debes alternar entre las dos teclas. En el teclado ZX Spectrum puedes mantener ambas teclas presionadas)
Cambios:
– Más optimizaciones: mejor velocidad de emulación.
– Mejoró el sistema de menú: puedes moverte hacia adelante y hacia atrás en los niveles de menú sin problemas.
– Nombre «ESPectrum» multicolor en el menú principal.
Problemas conocidos:
– En casos raros, el sonido no se inicializa al iniciar el emulador o se corrompe o se silencia después de cargar sna, z80 o snapshot. Reiniciar el ESP32 (usando F12 o apagando y encendiendo) siempre lo soluciona.
Versión 1.0 Beta 5.3
https://github.com/EremusOne/ZX-ESPectrum-IDF/releases/tag/v1.0.beta.5.3
Repositorio Github:
¿Interesado en conocer los entresijos del código o en ampliar o mejorar alguna característica del emulador? Entonces, este es el enlace que debes seguir: