Last modified on 29 August 2024, at 18:07

Emulators

Revision as of 18:07, 29 August 2024 by Phi2x (Talk | contribs) (Emulation Tools)

Vote for your favorite emulator

There is a 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

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] 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 BZH Games

WebGL 3d 8-bit Retro Store 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.268 Aug 4, 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 Summer Fixes Aug 17, 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.6 Jun 14, 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 Aug 27, 2024 ZX Spectrum, ZX80/81, Enterprise, MSX, 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 🛠️ 🛠️ May 5, 2024 ⚠️ ZX Spectrum, Commodore 64, MSX 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 wip2 Aug 12, 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] macOS Other ports

AmigaOS PPC MorphOS Haiku

0.269 Aug 29, 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.16 Jul 2, 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.0 Aug 9, 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.15 (0.268) Aug 5, 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


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 and Parts


Peripherals support

Mass storage devices

Emulator support is as follows:

Audio devices

Emulator support is as follows:

Graphics devices

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

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

CPC printers are poorly supported by emulators. 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, Wiituka.

CPC mouse support is as follows:

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

Hacking devices

Emulator support is as follows:


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.


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.

Graphics

Audio

Peripherals

Copy-protection

Other


File format specifications


Emulation Tools


Emulator Detection

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

  • Checking if the memory is initialized with zeroes, as real machines have random memory values at boot
  • 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 commands

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

There is also this initiative for emulators who willingly want to be detected: Emulator IDs


Emulators running on the Amstrad CPC

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