Last modified on 30 March 2024, at 13:46

Arnold (Emulator)

Arnold is a CPC emulator written and maintained by Kevin Thacker.

The newest version is 13/05/2017. This is the "work in progress"/"wip" version which is already very advanced and is more accurate than most existing emulators. This is verifable using the 'acid test' test programs which are freely available for others to use to improve their emulators.

Arnold is being actively developed and there are updates to the code almost daily. The work in progress version uses SDL for the display, audio and input and wxWidgets for the GUI. It is built with cmake and now all versions (Mac OS X, Linux/Unix and Windows) have identical functionality and interface.

Arnold aims for maximum emulation accuracy across the whole CPC and Plus range as well as the KC Compact, Aleste 520Ex and the GX4000. The emulator has various devices that can be enabled and there is extensive configuration possible.


The following devices are emulated and useable:

The following are partially emulated:

The following are in progress:

The following are based on hacking the ROMs so need much more testing


Previous versions shared the same emulation core, but each port was managed separately and had different user interfaces. The Windows port made by Kevin, Apple Macintosh port by Richard Bannister and Linux port by Andreas Micklei. There is also a Linux "nurgle" version which contains patches and improvements over the original by Elmsoft and Nurgle.

The initial version was written in C on Windows and used DirectX.

Previously to this there was A-CPC, an Amstrad emulator for Amiga also by Kevin Thacker.


Arnold WIP

"Acid tests"

Arnold comes with a collection of tests which are used to verify it's operation against real CPC, Plus and expansions. These tests aim to test every feature and bug of the hardware including rarely used ones. It also attempts to show the differences with the ICs used by the Amstrad which came from different manufacturers (8255, CRTC etc)

Web links

Older Arnold versions: