Changes
While it is easy to create an approximate emulation, the [[Amstrad CPC]] and Plus are very difficult to emulate accurately.
Each chip has its own challenges:
*[[Z80]] is a bloated architecture, with lots of special cases. The difference with the lean 6502 is striking.
*[[CRTC]] has many incompatible implementations, and requires an accurate VDU implementation too.
*[[Gate Array]] has a weird interrupt system and adds an unnecessary layer of complexity to sync signals.
*[[ASIC]] is buggy and lacks precise documentation.
*[[8255|PPI]] has more functionalities than what the CPC needs.
*[[PSG]] cannot be accessed directly as it is behind the PPI. It is simple to emulate though, but it cannot do much.
*[[FDC]] is a black box internally.
Thankfully, many tools exist to help emulation authors.
= Quick evaluation =
*[https://www.cpc-power.com/index.php?page=detail&num=7529 From Scratch demo] with reference images (CRTC 1): [[Media:From Scratch logo.png]] [[Media:From Scratch tetris.png]] [[Media:From Scratch ovl.png]]