
EMULADOR DE AMSTRAD CPC PARA ESP32
Un CPC en una placa económica
CPCESP convierte una placa ESP32 en un Amstrad CPC 464, 664 o 6128. Funciona bare-metal, sin sistema operativo debajo, y los dos núcleos del ESP32 trabajan para la emulación.
El montaje
Una placa ESP32 como la LilyGO TTGO VGA32, un monitor VGA o un CRT de 15 kHz, un teclado PS/2 y una tarjeta microSD con tus discos, cintas y snapshots.
Como el de verdad
El CRTC, el Gate Array y el monitor están emulados con la precisión necesaria para que las producciones más difíciles de la demoscene se vean como en un CPC real, a 50 Hz de verdad.
Preciso donde más cuesta
Demos que cambian los registros del CRTC en mitad de una línea, que parten la pantalla en bandas de raster o que cuentan con la sincronía del monitor para doblar la imagen: CPCESP las dibuja como el CPC. Estas imágenes las ha dibujado el propio código del CRTC y del Gate Array de CPCESP.












Pulsa en una imagen para verla a tamaño completo.
Características
Tres máquinas
CPC 464, 664 y 6128, con sus ROM en inglés, español o francés, y AMSDOS o ParaDOS como ROM de disco.
CRTC y monitor
CRTC tipo 0 (HD6845S) y 1 (UM6845R), y un modelo de la sincronía del monitor, para que los efectos que dependen de ella se vean como en un CTM.
Discos
Dos unidades, DSK y EDSK, y lo que escribe el CPC se guarda en la microSD. Discos de 3" de dos caras a los que se da la vuelta, discos en blanco y protección contra escritura.
Cintas
CDT y CSW, con carga rápida que conserva los tiempos exactos, un explorador de los bloques de la cinta y una cinta de verdad por la entrada de audio.
Sonido
El AY-3-8912, en estéreo (ABC o ACB) en las placas que lo tienen.
Memoria y snapshots
Ampliaciones de RAM Dk'tronics de 128, 320 y 576 KB, también en el 464 y el 664, y snapshots SNA de hasta 576 KB.
Teclado, joysticks y ratones
Teclado PS/2, el teclado ZX de las placas ESPectrum, joysticks DB9 con sus botones asignados a tu gusto, y ratones AMX y SYMBiFACE II desde un ratón PS/2.
Vídeo
VGA a 50 o 60 Hz (384×288, 400×300, 720×288) y CRT de 15 kHz (384×288, 768×288), con sincronismo compuesto para cables VGA-SCART, y scanlines.
Interfaz
Menús en inglés, español y francés, y dos exploradores de archivos que recuerdan dónde estabas, buscan mientras escribes y abren ficheros ZIP.
Placas compatibles
CPCESP detecta la placa en el primer arranque. Conecta un monitor VGA o un CRT de 15 kHz, un teclado PS/2 y una tarjeta microSD.
LilyGO TTGO VGA32
La placa más común: VGA, PS/2, microSD y PSRAM.
Olimex ESP32-SBC-FabGL
Dos puertos PS/2, VGA y microSD.
ESPectrum
Su teclado de membrana de ZX Spectrum funciona como el del CPC.
ESPectrum+
Sonido estéreo, el teclado ZX y un botón físico.
RobGo-RG Mono / Stereo
Versiones mono y estéreo, con botón físico.
Teclas
CTRL+F1 las muestra también en el emulador.
| F1 | Menú principal |
| SHIFT+F1 | Información del hardware |
| CTRL+F1 | Ayuda |
| F2 / F3 | Exploradores de archivos |
| SHIFT+F2 | Entrada de audio sí / no |
| CTRL+F2 | Turbo |
| F4 | Unidad activa: A / B |
| SHIFT+F4 | Expulsar el disco de la unidad activa |
| CTRL+F4 | Dar la vuelta a ese disco |
| F5 | Cinta: Play / Stop |
| SHIFT+F5 | Expulsar la cinta |
| CTRL+F5 | Bloques de la cinta |
| F6 | Explorador de snapshots |
| F7 | Snapshot rápido |
| SHIFT+F7 / F8 | Centrado CRT: horizontal |
| CTRL+F7 / F8 | Centrado CRT: vertical |
| F8 | OSD: CPU y cinta |
| F9 / F10 | Volumen - / + |
| F11 / F12 | Reset / reset del ESP32 |
| Pausa | Pausa |
| ImpPant | Captura BMP |
| BloqDespl | Cursores como joystick |
Instala CPCESP
Flashea el firmware directamente desde esta página, con Chrome o Edge en un ordenador.
- Conecta la placa al ordenador con su cable USB.
- Pulsa el botón de abajo y elige el puerto serie de la placa.
- Elige «Install CPCESP» y espera a que termine.
Instalar CPCESP 1.0 borra toda la flash de la placa: se pierden los ajustes de versiones anteriores.
O a mano, con esptool
Descargar el firmwareesptool es la herramienta de Espressif: descárgala de su página de GitHub, o instálala con pip install esptool.github.com/espressif/esptool
Borra la flash y graba el fichero en la dirección 0x0:
esptool --chip esp32 erase-flash
esptool --chip esp32 --baud 921600 write-flash 0x0 CPCESP-1.0.bin
# esptool 4 or older:
esptool.py --chip esp32 erase_flash
esptool.py --chip esp32 --baud 921600 write_flash 0x0 CPCESP-1.0.binApoya CPCESP
CPCESP es gratuito y vive y crece gracias a gente como tú. Si te gusta, puedes apoyarlo en Patreon o con una donación puntual en Ko-fi.