L’emulazione dell’Amstrad CPC continua ad avanzare e arriva CPCSyntaxError, un emulatore sviluppato con l’obiettivo di riprodurre fedelmente il comportamento dell’hardware originale.
Si tratta di un emulatore per Windows compatibile con CPC 464, CPC 6128, CPC Plus e GX4000, sviluppato attorno a un modello «cycle-accurate» (accurato al singolo ciclo di clock) dei chip video del computer. Una caratteristica di punta del progetto è l’implementazione di tutti e cinque i tipi di CRTC, inclusi i modelli usati nei CPC classici e gli ASIC presenti nella gamma Plus.
L’emulatore replica anche varie versioni del Gate Array — con le loro specifiche caratteristiche di pixel-timing — e modella tipi di monitor come CTM 640/644, CM14, GT 64/65 e MM12.
Per il CPC Plus e il GX4000, CPCSyntaxError integra funzionalità specifiche per ASIC come sprite hardware, audio DMA, una palette a 4096 colori, interruzioni raster, effetti split-screen e uno scrolling fluido.
Un emulatore pensato anche per i programmatori
CPCSyntaxError va oltre la semplice esecuzione di giochi e programmi. Il progetto integra un debugger completo di breakpoint e condizioni, watchpoint di memoria, esecuzione passo-passo, un disassembler con etichette e un editor esadecimale.
Offre inoltre finestre di visualizzazione in tempo reale per vari componenti del CPC, tra cui CRTC, Gate Array, monitor, ASIC Plus, PSG, PPI, matrice della tastiera, controller del disco e sistema a cassette.
Un’altra funzione interessante è l’inclusione dell’assembler RASM, che consente di assemblare il codice direttamente nella memoria della macchina emulata ed eseguirlo all’interno dell’ambiente stesso.
L’interfaccia è realizzata utilizzando SDL2, OpenGL e Dear ImGui, e presenta finestre ridimensionabili e agganciabili che permettono agli utenti di organizzare lo spazio di lavoro in base alle proprie esigenze.
Ci sono anche diverse espansioni in fase di completamento, tra cui M4, Symbiface II/III, DigiBlaster, AmDrum DAC, pistola ottica (light gun), stampante e V9990/GFX9000.

