Last modified on 25 October 2024, at 12:08

Emulators

Revision as of 12:08, 25 October 2024 by Phi2x (Talk | contribs) (Network devices)

Vote for your favorite emulator Poll on CPCWiki forum


Software Platforms (Full OS independance)

Java Platform

Emulator name External link Current version Latest release Developer tools Amstrad Plus Also emulates License
Arnold Jnr [1] Aug 27, 2001 - Open source
JavaCPC Desktop [2] JavaGX4000 CPCInAJar 3.0.2 Apr 8, 2022 KC Compact Donationware & Open source
JEMU [3] Feb 19, 2007 ZX Spectrum, ZX80/81, BBC Micro, VZ-300 Open source
WebCPC [4] JavaCPC Applet r15 Dec 31, 2010 - Open source

Note: Java applets have been discontinued and removed in all major web browsers. So JEMU and WebCPC could belong to the "Discontinued OS" part of this article.

JS / Wasm / Web Platform

Emulator name External link Current version Latest release Developer tools Amstrad Plus Also emulates License
CPCBox [5] [6] BZH Games beta Dec 28, 2013 - Freeware
CrocoDS [7] Repo Jun 9, 2020 ⚠️ - Open source
Emularity (MAME) [8] JSMESS Classic Reload

CPC Games CPC Demos on Internet Archive

Jan 27, 2024 Tons of vintage computers, game consoles and arcade systems Open source
Roland [9] JuegoTk Sep 24, 2011 - Open source
Ronald [10] Repo Apr 1, 2024 ⚠️ - Open source
RVMplayer [11] 0.1.1 May 6, 2023 ZX Spectrum Freeware
Tiny Emus [12] CPC UI yakc zpz mini CPC Online OldGames

WebGL 3d 8-bit Arcade Room acpc.me Retro Store

BZH Games Sean's CPC Games Amstrad CPC Games

Mar 22, 2024 KC Compact, ZX Spectrum, VIC-20, Commodore 64, Acorn Atom, KC 85, KC 87, Z9001, Z1013, LC80 Open source
Xiragon [13] Nov 28, 2012 - Open source

LibRetro (API for emulators)

Emulator name Type External link Current version Latest release Developer tools Amstrad Plus Also emulates License
libretro-cap32 Emulation core [14] 4.5.4 Dec 18, 2023 - - Open source
libretro-crocods Emulation core [15] 0.1 Jul 26, 2022 - - Open source
LRMAME Emulation core [16] 0.270 Sep 27, 2024 - Tons of vintage computers, game consoles and arcade systems Open source
SugarLibRetro Emulation core [17] (wraps independent lib CPCCore) git Jan 10, 2020 - - Open source
EmuVR Frontend [18] 1.0.11 Dec 24, 2022 - Depends on emulation cores Donationware
Hackable Console Frontend [19] Mar 27, 2022 - Depends on emulation cores Open source
RetroArch Frontend [20] RetroAchievements 1.19.1 Jun 5, 2024 - Depends on emulation cores Donationware & Open source

Several distributions also exist based on RetroArch: RetroBat, Lakka, RetroPie, Batocera, Recalbox, RGB-Pi OS


Operating Systems

Desktop

Emulator name External link Windows macOS Linux Current version Latest release Developer tools Amstrad Plus Also emulates License
ACE MorphOS and Haiku IRC chan Repo 1.26 Jan 1, 2024 Dozens of CPC hardware expansions thru plugins Freeware (plugins are Open Source)
ACE-DL [21] Discord Based on ACE Oktober Fest Oct 2, 2024 - Freeware
AMSpiriT [22] Discord Forum 1.01 rc Apr 24, 2024 - Freeware
Arnimedes [23] 1.02 Jul 7, 2012 - Freeware
Arnold [24] Aeliss fork Arnold TNG

macOS AmigaOS PPC

🛠️ May 13, 2017 ⚠️ KC Compact, Aleste 520EX Open source
Caprice Forever [25] 24.10 Oct 1, 2024 - Freeware & Outdated sources
Caprice32 [26] Old repo Linux Reloaded

Cpc4Rpi CapriceRPI CPC-PI

4.6.0 Oct 8, 2022 ⚠️ Aleste 520EX Donationware & Open source
Clock Signal [27] Linux Raspberry Pi Oct 19, 2024 ZX Spectrum, ZX80/81, Enterprise, MSX 1&2, Oric, ColecoVision, Apple II, VIC-20, Atari 2600, Atari ST, Electron, Archimedes, Macintosh, Master System Donationware & Open source
CoPaCabana [28] 0.74 Apr 12, 2006 ⚠️ - Donationware
CPC++ [29] b700 May 31, 2015 - Freeware
cpc4x [30] 🛠️ 0.26 Dec 11, 2004 - Open source
CPCEC [31] Repo CPCE CPCEG 🛠️ 🛠️ Sep 9, 2024 ⚠️ ZX Spectrum, Commodore 64, MSX 1&2 Open source
cpcec-gtk [32] 🛠️ Feb 4, 2023 - Open source
CPCemu [33] 2.5 Aug 13, 2022 ⚠️ - Freeware
CPCEPower [34] 2105 Jun 4, 2021 - Donationware
CPCSharp [35] 1.0.0-beta1 Apr 7, 2021 ⚠️ - Open source
CPvC [36] Sep 30, 2022 - Open source
CrocoDS [37] Repo 4.0 beta3 Dec 10, 2023 ⚠️ - Open source
DSP [38] 🛠️ 0.23 wip4 Sep 29, 2024 ZX Spectrum, Commodore 64, Oric, ColecoVision, Game Boy, NES, SG-1000, Master System, Game Gear, Super Cassette Vision, PV-1000, PV-2000, Arcade Open source
ep128emu [39] 🛠️ 🛠️ 2.0.11.2 Apr 19, 2019 ⚠️ ZX Spectrum, Enterprise Donationware & Open source
MAME [40] AmigaOS PPC MorphOS Haiku 0.270 Sep 26, 2024 ⚠️ Tons of vintage computers, game consoles and arcade systems Open source
NO$CPC [41] 1.8 Nov 2, 2000 ⚠️ - Donationware
PC-CPC [42] Repo 0.1at b29 Nov 17, 2011 ⚠️ - Open source
Retro Virtual Machine [43] 2.1.17 Sep 3, 2024 ❌ Removed ZX Spectrum, MSX 1, ColecoVision, SG-1000, Master System Donationware
Roland [44] Repo 🛠️ 0.70 Apr 20, 2017 - Open source
Ronald [45] 🛠️ Apr 1, 2024 ⚠️ - Open source
SugarBox [46] Old site SugarPi 2.0.2 Nov 29, 2023 ⚠️ - Open source
Virtual CPC [47] Archive 1.1 Aug 8, 2011 ⚠️ - Freeware
WinAPE [48] CPCwin 2.0b2 Jan 5, 2016 - Donationware
WinCPC / MacCPC [49] vbCPC 0.9.2 Jan 22, 2010 - Freeware
Xcpc [50] Repo 0.52.1 Sep 8, 2024 - Open source
XNACPC [51] CPC3D 1.0 Nov 11, 2011 - Open source
ZEsarUX [52] Haiku 11.0 Jun 6, 2024 ⚠️ PCW, ZX Spectrum, ZX80/81, MSX 1, ColecoVision, Spectravideo, Jupiter ACE, Sam Coupe, SG-1000, Master System, Sinclair QL, MK14, Z88 Donationware & Open source

❗= No Raspberry Pi / ARM build

🛠️ = Build it yourself

⚠️ = Incomplete tooling

Mobile

Host system Emulator name External link Current version Latest release Amstrad Plus Also emulates License
Android andcpc [53] 1.5.1 Apr 4, 2011 - Open source
Android Azimuth [54] 1.11 Aug 22, 2023 - Adware and in-app purchases💲
Android CPCDroid [55] 1.5.1 Mar 2, 2011 - Open source
Android CPCemu [56] 2.5 Aug 14, 2022 - Freeware
Android Droid-CPC [57] 1.1.01 Dec 15, 2016 - Commercial💲
Android MAME4droid 2024 [58] Repo 1.7 (0.270) Sep 27, 2024 Tons of vintage computers, game consoles and arcade systems Open source
iOS CPCemu [59] 2.5 Aug 13, 2022 - Software available on request
iOS CrocoDS [60] Repo 2.1 Jun 21, 2013 - Open source
iOS MAME4iOS [61] 2022.5 Dec 12, 2022 Tons of vintage computers, game consoles and arcade systems Open source

Discontinued OS

Host system Emulator name External link Current version Latest release Amstrad Plus Also emulates License
Acorn RISC OS !CPC [62] [63] Jul 28, 1996 - Open source
Acorn RISC OS !CPCemu [64] 1.21 Mar 22, 2016 - Open source
AmigaOS m68k A-CPC [65] 2.0 Mar 30, 2002 - Open source
AmigaOS m68k Ami-cpc [66] Ami-cpc2 0.46 Jan 21, 1998 - Open source
AmigaOS m68k CPE [67] Feb 24, 1995 - Open source
AmigaOS m68k EmuCPC [68] 0.7 Sep 15, 1996 - Open source
AROS Arnold [69] Oct 24, 2010 - Open source
AROS Caprice32 [70] 4.2.0 Oct 23, 2010 - Open source
BlackBerry OS BB-CPC [71] (dead link) 1.0.1.3 Jul 15, 2013 - Commercial💲
Classic Mac OS CPC++ [72] 1.3.2 Oct 6, 1997 - Shareware💲
DOS AdvanceMESS [73] 3.9 Sep 8, 2018 Tons of vintage computers and game consoles Open source
DOS Arnimedes [74] 0.8a Apr 15, 2000 - Freeware
DOS Caprice32 [75] 1.11 Sep 20, 1999 - Open source
DOS CPC [76] 0.55b May 16, 1997 - Freeware
DOS CPC-em [77] 0.4 Jul 7, 2004 - Open source
DOS CPCE [78] 1.94 Jun 2, 2011 - Freeware
DOS CPCemu [79] 1.5 Jul 7, 1998 - Freeware
DOS CPE [80] 5.2 Apr 21, 1997 - Open source
DOS NO$CPC [81] 1.8 Nov 2, 2000 - Freeware
DOS PC-CPC [82] Feb 3, 1998 - Open source
DOS RWCPC [83] Mar 23, 1995 - Freeware
DOS SIMCPC [84] Dec 10, 1989 - Shareware💲
DOS YAGE [85] 0.91 Oct 24, 1998 - Freeware
EXOS Software CPC Emulator [86] [87] 1.3 Jan 11, 2013 - Open source
Maemo CPCm [88] 1.20-1 Apr 27, 2010 - Open source
MSX-DOS EMU6CPC [89] Dec 17, 2018 - Freeware
OS/2 SDLMAME [90] 0.170 Jan 30, 2016 Tons of vintage computers, game consoles and arcade systems Open source
Palm OS CaPriCe for Palm OS [91] 2.8 Jun 28, 2011 - Open source
Palm OS CoPaCabana [92] 0.75 Dec 4, 2007 - Freeware
Pocket PC PocketCaprice [93] 0.9 Aug 19, 2007 - Freeware
SunOS CPC++ [94] 1.3.0 Feb 22, 1997 - Shareware💲
Symbian S60-CPC [95] 0.74 Feb 21, 2006 - Open source
Windows 9x CPC-em [96] 0.3 Jan 22, 2004 - Open source
Windows 9x MTMW [97] 1.30B Jan 11, 2000 ZX Spectrum, ZX80/81, Enterprise, Jupiter ACE Freeware


Other Platforms

Home Consoles

You can use RetroArch for Amstrad CPC emulation on Apple TV, Android TV, Nvidia Shield, Steam Link, Xbox One, Xbox Series, PS2, PS Vita TV, GameCube, Wii, Wii U and Switch. Or you can use these stand-alone CPC emulators:

Host system Emulator name External link Current version Latest release Amstrad Plus Also emulates License
Microsoft XBOX ArnoldX [98] [99] v5 Apr 20, 2010 - Freeware
Microsoft XBOX CoinOPS (RetroFE) [100] 5 Oct 18, 2012 Tons of vintage computers, game consoles and arcade systems Freeware
Microsoft Xbox 360 XNACPC [101] 1.0 Nov 11, 2011 - Open source
Nintendo Wii Wiituka [102] 0.98.8 May 15, 2009 - Open source
Sega Dreamcast CPCast [103] May 6, 2006 - Freeware
Sega Dreamcast DreamCPC [104] Alpha 3 Oct 16, 2005 - Freeware
Sony PS2 CPC-em [105] 0.4 Dec 22, 2004 - Freeware
Sony PS3 Caprice32 [106] 4.1.0 DBG Apr 9, 2012 - Open source

Handheld Consoles

Note: Android-based handheld consoles (Razer Edge, Ayn Odin Pro, Retroid Pocket Flip, GPD XP, ...) will work with stand-alone Android CPC emulators or with RetroArch, same as an Android phone.

You can use RetroArch for Amstrad CPC emulation on PSP, PS Vita, DS, 3DS, Switch, Steam Deck, RetroFW, Miyoo, OpenDingux and ArkOS. Or you can use these stand-alone CPC emulators:

Host system Emulator name External link Current version Latest release Amstrad Plus Also emulates License
Dingoo A320 / A330 Pituka Dingux [107] 0.8pre Aug 19, 2010 - Open source
Dingoo A320 / A330 Dingux-CAP32 [108] 1.1.2 Oct 17, 2009 - Open source
GamePark Caanoo Caanoo-CAP32 [109] 1.1.3 Apr 24, 2011 - Open source
GamePark GP2x CapriceGP2x [110] 0.5 Feb 22, 2006 - Open source
GamePark GP2x GP2X-CAP32 [111] 1.5.1 Aug 29, 2009 - Open source
GamePark GP32 Pituka GP32 [112] 1d May 15, 2010 - Open source
GamePark Wiz Wiz-CAP32 [113] 1.1.0 Aug 29, 2009 - Open source
GCW Zero Dingux-CAP32 [114] 1.1.2 May 25, 2014 - Open source
JXD S5110 / S601 & Yinlips G18 JXD-CAP32 [115] 1.1.1 Oct 27, 2012 - Open source
Nintendo DS AmeDS [116] 4.0 Apr 25, 2010 - Freeware
Nintendo DS CrocoDS [117] Repo 2.0 Nov 9, 2007 - Open source
Nintendo GameBoy Advance Mini Amstrad Emulator [118] Dec 26, 2005 - Open source
Odroid GO CapriceESP32 [119] Dec 3, 2020 - Open source
OpenDingux CrocoDS [120] Repo Jan 15, 2020 - Open source
Pandora Pandora-CAP32 [121] 1.1.0 Jun 27, 2010 - Open source
Sony PSP Caprice32 PSP [122] 4.2.0.2 Nov 28, 2007 - Open source
Sony PSP CPCPSP [123] 0.1 Dec 24, 2005 - Freeware
Sony PSP PSPCAP32 [124] 1.5.1 Aug 21, 2009 - Open source
Trimui Model S Arnold Trimui [125] Oct 19, 2021 - Open source

FPGA

  • CPC TREX CPC-One TurboCPC core by TobiFlex running on different FPGA boards
  • CPC FPGA CPC emulation by Ranulf (Ralferoo) Doswell, running on a custom made FPGA board
  • FPGAmstrad CoreAmstrad CoreDocAmstrad Translation by Renaud (Freemac) Hélias of JavaCPC from Java into VHDL for MiST board
  • CPC for MiST and MiSTer Started by Alexey (Sorgelig) Melnikov as a port of CoreAmstrad, but every module has been either rewritten or replaced
  • CPC2 Project CPC emulation running on a Cyclone V FPGA board
  • AmstradCPC core Based on McLeod's core and running on a ZXTres FPGA board


Hardware Replacements

Chips

Floppy drives

  • SDiskEmul Floppy-drive emulator released in 2007. Abandoned now. Supports DSK, EDSK disk-images
  • HxC Floppy Emulator Commercial floppy-drive emulator. Supports directly DSK, EDSK, HFE disk-images. IPF, CTRAW, SCP disk-images supported through conversion to HFE disk-image [126]
  • FlashFloppy Open source floppy-drive emulator for the ubiquitous Gotek hardware. Supports DSK, EDSK, HFE disk-images
  • GreaseWeazle Open source USB floppy adapter Flux reader/writer
  • SuperCard Pro Claims to be the most advanced flux level copier/imager/converter system
  • KryoFlux Proprietary floppy adapter Flux reader/writer
  • Pauline FPGA-based floppy-drive dumper and emulator
  • OmniFlop Universal floppy disk reader, writer, and tester for Windows. Supports over 280 floppy disk formats
  • DDI-3 USB floppy-drive emulator with an integrated FDC chip, floppy data separator and AMSDOS ROM for CPC464. Current evolution DDI-6 has also integrated a RAM/ROM box
  • DriveRDY Emulates the Ready signal necessary for floppy drives on Amstrad machines

Tapes

  • TZXduino MAXduino Abatape Arduino-based tape deck emulator. Supports many formats of tape-images including CDT and TZX
  • SVI-CAS Digital Tape Drive for Playback & Recording. Supports many formats of tape-images including CDT and TZX
  • tapDancer [127] Chrome and Android app that plays back many formats of tape-images including CDT and TZX
  • PlayUEF Web-browser based tape deck emulator, supporting CDT and TZX tape-images

Cartridges

  • CPC-plus-cartridge Different PCB designs and code to make a CPC-plus cartridge
  • Amstrad Multicart 16-in-1 cartridge for the GX4000 or Amstrad Plus computer
  • C4CPC Cartridge replacement for the Amstrad Plus range and the GX4000
  • Flash+ cartridge Amstrad CPC+ GX4000 reflashable cartridge
  • M4 Board Supports CPR cartridges, among many other features

Printers

  • Amstrad CPC Printer Emulator Arduino-based CPC printer emulator that can output text, markdown or HTML
  • Retro-Printer Plugin module for the Raspberry Pi that makes it possible to connect retro computers to modern USB or network printers
  • ESCParser Command-line utility, ESC/P printer emulator that can output PostScript, SVG or PDF

Other

  • LensKey LensLok copy-protection decoder for Windows
  • vga4cpc VGA output for Amstrad CPC based on Raspberry Pi Pico
  • Sinden Lightgun LCD-compatible lightgun


Peripherals supported in emulators

Mass storage devices

Network devices

There is a plethora of serial communication devices (using RS232, USB, SPI, Modem, Teletext, Virtual Net 96, etc...) on Amstrad CPC, but none are supported in emulators.

Higher-level Ethernet or TCP/IP network devices are much less common:

Audio devices

Note: all RS232 serial port devices (USIFAC, Amstrad Serial Interface, etc...) and USB port devices with direct control (Albireo, etc...) can also be used as MIDI ports.

Graphics devices

CPC graphics display expansions (CRTC Type 5, Amsdap GFX9000) are not supported.

CPC graphics acquisition devices (Dart Scanner, VIDI digitizer, Digitaliseur Ara) are not supported.

CPC printers are poorly supported. The only emulators that at least do some print rendering emulation are JavaCPC and Caprice Forever.

Input devices

Some lightguns / lightpens are emulated by ACE, ACE-DL, Caprice Forever, JavaCPC, CPCEC, CPCEPower, Virtual CPC, PC-CPC, Wiituka.

CPC mouse support is as follows:

Note: AMX and MultiPlay are the most widely supported mice in CPC programs.

Hacking devices


Emulator accuracy checking tools

Quick evaluation

Z80 CPU

Diagnostics

Amstrad Plus

Colorimetry

  • CPC DiAG also shows that the primary colours themselves are a bit different. Blue is more vivid and Green is less fluorescent on Amstrad displays.
  • Colours are less saturated and black is not as profound on CRT monitors than they are on modern displays.
  • On CRT displays, bright pixels will spill on their neighbours while dark pixels will get eaten by their neighbours (ie. bright pixels are bigger than dark pixels on CRT displays). This effect is absent on LCD displays.

Graphics

Audio

Peripherals

Copy-protection

Other


Rewind feature

ACE-DL has a rewind feature, but it is not as good as it could be: Demonstration of rewind in ACE-DL

Only the RetroArch CPC emulator has a proper rewind feature: Demonstration of rewind in RetroArch. To reverse the game, the user press and hold the rewind button. And at any point, releasing the button makes time goes forward again.

A very simple approach would be to make a SNA for each frame and limit the RAM snapshot to 128KB, which is ok for 99% of CPC software. For a 10-seconds long rewind functionality, only 64MB RAM is needed (128KB * 50 frames * 10 seconds).

A more efficient approach is to store only the values that are changed in RAM between two frames, so that RAM can be restored when rewinding. This allows for long rewinds, even of a CPC equipped with a 4MB RAM expansion. Proof of it is the GBA emulator SkyEmu demonstrating super long rewind while needing very few RAM.

For debugging, going back to the previous instruction is easily implemented. The emulator has to store the time when the previous instruction was executed so that he can go back to that instruction. In the same way, emulators can provide access to the previous HBL, IRQ, VBL, etc.


File format specifications


Emulation Tools

Cross-Platform Development

Cross-Platform Art


Emulator Detection

If you want to promote usage of real CPC computers, you can detect CPC emulators by:

  • Checking if the memory is initialised with zeroes, as RAM in real machines is not initialised during boot. Source
  • Configuring the CRTC to stop refreshing part of the RAM. This behaviour has never been emulated. Source
The way to cause the RAM refresh to fail in both a Plus or normal CPC is simply to stop a few bits of the CRTC address changing (ie. never refresh the selected area).
Generally, only the Row address needs to be cycled, so stopping MA0 through MA7 from changing, and stopping the CPU from reading those rows, will cause data to be lost, quite quickly (generally around 4ms).
  • Playing with the "floating" bus. Using Z80 read I/O commands to write to chip registers. Using undocumented I/O ports. Writing to multiple chips simultaneously.
  • Focusing on the minute details in Z80, CRTC, PPI and PAL chips. They are most often wrong in emulators.
  • Examining the FDC chip. It is only replicated more or less superficially in all emulators because the internals of the chip are still unknown. Many emulators don't even support the FDC SCAN or FORMAT TRACK commands.

Combining these methods will definitely get you a 100% success rate in detecting emulators, even the toughest ones.

Additionally, an Emulator IDs system is available for easier detection of CPC emulators.

On ZX Spectrum, gamedevs are challenging emulators real hard with titles like MEMPTR Snake, Super HALT Invaders Test and Chromatrons Attack.


Emulators running on the Amstrad CPC

Emulator name External link Current version Latest release License Emulates
Amstrad BBC BASIC [136] 2.30 Apr 2, 1986 Commercial💲 BBC BASIC
BASIC 1.1 Fuer CPC464 [137] Oct 1986 Open source Locomotive BASIC 1.1
CPCZVM [138] Jul 6, 2019 Open source Z-Machine
CPvM [139] Repo 1.0 Apr 17, 2024 Open source CP/M
Pac-Man [140] 1.1 Jun 5, 2014 Open source Pac-Man arcade
PC-Emulator [141] Sep 1986 Hardware💲 IBM PC
Phoenix [142] Jan 6, 2019 Freeware Phoenix arcade
Space Invaders [143] 1.02 Mar 18, 2017 Freeware Space Invaders arcade
Vezza [144] Repo Jan 7, 2024 Open source Z-Machine
ZXM [145] 1993 Freeware ZX Spectrum
Zym [146] 0.9 Feb 19, 2022 Open source Z-Machine