CPCESP

EMULADOR DE AMSTRAD CPC PARA ESP32

¿Qué es?

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.

Qué necesitas

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.

¿Por qué CPCESP?

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.

F1Menú principal
SHIFT+F1Información del hardware
CTRL+F1Ayuda
F2 / F3Exploradores de archivos
SHIFT+F2Entrada de audio sí / no
CTRL+F2Turbo
F4Unidad activa: A / B
SHIFT+F4Expulsar el disco de la unidad activa
CTRL+F4Dar la vuelta a ese disco
F5Cinta: Play / Stop
SHIFT+F5Expulsar la cinta
CTRL+F5Bloques de la cinta
F6Explorador de snapshots
F7Snapshot rápido
SHIFT+F7 / F8Centrado CRT: horizontal
CTRL+F7 / F8Centrado CRT: vertical
F8OSD: CPU y cinta
F9 / F10Volumen - / +
F11 / F12Reset / reset del ESP32
PausaPausa
ImpPantCaptura BMP
BloqDesplCursores como joystick

Instala CPCESP

Flashea el firmware directamente desde esta página, con Chrome o Edge en un ordenador.

  1. Conecta la placa al ordenador con su cable USB.
  2. Pulsa el botón de abajo y elige el puerto serie de la placa.
  3. Elige «Install CPCESP» y espera a que termine.
Tu navegador no puede flashear placas: usa Chrome o Edge en un ordenador, o el fichero de abajo.Para flashear, la página tiene que abrirse por HTTPS.

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 firmware

esptool 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.bin

Apoya 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.