Difference between revisions of "Emulators"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
Line 226: Line 226:
 
| Donationware & Open source
 
| Donationware & Open source
 
|}
 
|}
 +
  
 
= Current Operating Systems =
 
= Current Operating Systems =

Revision as of 15:43, 15 April 2024

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 Online Old Games BZH Games

WebGL 3d 8-bit Retro Store Amstrad CPC Games zpz

Mar 2, 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.264 Apr 1, 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.17.0 Feb 3, 2024 - Depends on emulation cores Donationware & Open source


Current Operating Systems

Desktop

Emulator name External link Windows macOS Linux Current version Latest release Developer tools Amstrad Plus Also emulates License
ACE-DL [21] Discord Based on ACE Apr 12, 2024 - Freeware
AMSpiriT [22] Discord Forum 1.0 rc1 Apr 2, 2024 - Freeware
Arnimedes [23] 1.02 Jul 7, 2012 - Freeware
Arnold [24] Aeliss fork Arnold TNG macOS ⚠️ ⚠️ WIP May 13, 2017 ⚠️ KC Compact, Aleste 520EX Open source
Caprice Forever [25] 24.2 Feb 10, 2024 - Freeware & Outdated sources
Caprice32 [26] Old repo Linux Aleste Reloaded 4.6.0 Oct 8, 2022 ⚠️ - Donationware & Open source
Clock Signal [27] Linux Jan 22, 2024 ZX Spectrum, ZX80/81, Enterprise, MSX, Oric, ColecoVision, Acorn Electron, Apple II, VIC-20, Atari 2600, Atari ST, Macintosh 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 ⚠️ Mar 28, 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 wip1 Mar 25, 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 0.264 Mar 27, 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.11 Nov 13, 2023 ❌ 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 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] 0.38.1 Apr 8, 2023 - Open source
XNACPC [51] CPC3D 1.0 Nov 11, 2011 - Open source
ZEsarUX [52] X Sep 8, 2023 ⚠️ PCW, ZX Spectrum, ZX80/81, MSX 1, ColecoVision, Spectravideo, Jupiter ACE, Sam Coupe, SG-1000, Master System, Sinclair QL, MK14, Z88 Donationware & Open source

Alternative OS

Emulator name External link AmigaOS PPC AROS MorphOS Haiku Developer tools Amstrad Plus Also emulates License
ACE Web site IRC channel Plugins' repo ⚠️ ⚠️ v1.26 - Jan 1, 2024 v1.26.0 - Mar 2, 2024 Dozens of CPC hardware expansions thru plugins Freeware (plugins are Open Source)
Arnold AmigaOS AROS v1.15 - Dec 17, 2012 Oct 24, 2010 ⚠️ KC Compact Open source
Caprice32 [53] v4.2.0 - Oct 23, 2010 ⚠️ - Open source
MAME AmigaOS MorphOS Haiku MESS v0.146u4 - Aug 19, 2012 MESS v0.113 - Nov 1, 2007 v0.264-2 - Apr 3, 2024 ⚠️ Tons of vintage computers, game consoles and arcade systems Open source
ZEsarUX [54] v10.10-1 - Oct 28, 2023 ⚠️ PCW, ZX Spectrum, ZX80/81, MSX 1, ColecoVision, Spectravideo, Jupiter ACE, Sam Coupe, SG-1000, Master System, Sinclair QL, MK14, Z88 Donationware & Open source

Mobile

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

Discontinued Operating Systems

Host system Emulator name External link Current version Latest release Amstrad Plus Also emulates License
Acorn RISC OS !CPC [63] [64] Jul 28, 1996 - Open source
Acorn RISC OS !CPCemu [65] 1.21 Mar 22, 2016 - Open source
AmigaOS m68k A-CPC [66] 2.0 Mar 30, 2002 - Open source
AmigaOS m68k Ami-cpc [67] Ami-cpc2 0.46 Jan 21, 1998 - Open source
AmigaOS m68k CPE [68] Feb 24, 1995 - Open source
AmigaOS m68k EmuCPC [69] 0.7 Sep 15, 1996 - Open source
BlackBerry OS BB-CPC [70] (dead link) 1.0.1.3 Jul 15, 2013 - Commercial💲
Classic Mac OS CPC++ [71] 1.3.2 Oct 6, 1997 - Shareware💲
DOS AdvanceMESS [72] 3.9 Sep 8, 2018 Tons of vintage computers and game consoles Open source
DOS Arnimedes [73] 0.8a Apr 15, 2000 - Freeware
DOS Caprice32 [74] 1.11 Sep 20, 1999 - Open source
DOS CPC [75] 0.55b May 16, 1997 - Freeware
DOS CPC-em [76] 0.4 Jul 7, 2004 - Open source
DOS CPCE [77] 1.94 Jun 2, 2011 - Freeware
DOS CPCemu [78] 1.5 Jul 7, 1998 - Freeware
DOS CPE [79] 5.2 Apr 21, 1997 - Open source
DOS NO$CPC [80] 1.8 Nov 2, 2000 - Freeware
DOS PC-CPC [81] Feb 3, 1998 - Open source
DOS RWCPC [82] Mar 23, 1995 - Freeware
DOS SIMCPC [83] Dec 10, 1989 - Shareware💲
DOS YAGE [84] 0.91 Oct 24, 1998 - Freeware
EXOS Software CPC Emulator [85] [86] 1.3 Jan 11, 2013 - Open source
Maemo CPCm [87] 1.20-1 Apr 27, 2010 - Open source
MSX-DOS EMU6CPC [88] Dec 17, 2018 - Freeware
Palm OS CaPriCe for Palm OS [89] 2.8 Jun 28, 2011 - Open source
Palm OS CoPaCabana [90] 0.75 Dec 4, 2007 - Freeware
Pocket PC PocketCaprice [91] 0.9 Aug 19, 2007 - Freeware
SunOS CPC++ [92] 1.3.0 Feb 22, 1997 - Shareware💲
Symbian S60-CPC [93] 0.74 Feb 21, 2006 - Open source
Windows 9x CPC-em [94] 0.3 Jan 22, 2004 - Open source
Windows 9x MTMW [95] 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 [96] [97] v5 Apr 20, 2010 - Freeware
Microsoft XBOX CoinOPS (RetroFE) [98] 5 Oct 18, 2012 Tons of vintage computers, game consoles and arcade systems Freeware
Microsoft Xbox 360 XNACPC [99] 1.0 Nov 11, 2011 - Open source
Nintendo Wii Wiituka [100] 0.98.8 May 15, 2009 - Open source
Sega Dreamcast CPCast [101] May 6, 2006 - Freeware
Sega Dreamcast DreamCPC [102] Alpha 3 Oct 16, 2005 - Freeware
Sony PS2 CPC-em [103] 0.4 Dec 22, 2004 - Freeware
Sony PS3 Caprice32 [104] 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 [105] 0.8pre Aug 19, 2010 - Open source
Dingoo A320 / A330 Dingux-CAP32 [106] 1.1.2 Oct 17, 2009 - Open source
GamePark Caanoo Caanoo-CAP32 [107] 1.1.3 Apr 24, 2011 - Open source
GamePark GP2x CapriceGP2x [108] 0.5 Feb 22, 2006 - Open source
GamePark GP2x GP2X-CAP32 [109] 1.5.1 Aug 29, 2009 - Open source
GamePark GP32 Pituka GP32 [110] 1d May 15, 2010 - Open source
GamePark Wiz Wiz-CAP32 [111] 1.1.0 Aug 29, 2009 - Open source
GCW Zero Dingux-CAP32 [112] 1.1.2 May 25, 2014 - Open source
JXD S5110 / S601 & Yinlips G18 JXD-CAP32 [113] 1.1.1 Oct 27, 2012 - Open source
Nintendo DS AmeDS [114] 4.0 Apr 25, 2010 - Freeware
Nintendo DS CrocoDS [115] Repo 2.0 Nov 9, 2007 - Open source
Nintendo GameBoy Advance Mini Amstrad Emulator [116] Dec 26, 2005 - Open source
Odroid GO CapriceESP32 [117] Dec 3, 2020 - Open source
OpenDingux CrocoDS [118] Repo Jan 15, 2020 - Open source
Pandora Pandora-CAP32 [119] 1.1.0 Jun 27, 2010 - Open source
Sony PSP Caprice32 PSP [120] 4.2.0.2 Nov 28, 2007 - Open source
Sony PSP CPCPSP [121] 0.1 Dec 24, 2005 - Freeware
Sony PSP PSPCAP32 [122] 1.5.1 Aug 21, 2009 - Open source
Trimui Model S Arnold Trimui [123] Oct 19, 2021 - Open source

Single-Board Computers / Raspberry Pi

LibRetro / RetroArch is used as the foundation of Lakka, Recalbox, Batocera and RetroPie alternative OS distributions for the Raspberry Pi and other SBC. But you can also use RetroArch for Amstrad CPC emulation on a stock Raspberry Pi OS. Or you can use these stand-alone CPC emulators:

Emulator name External link Current version Latest release Amstrad Plus Also emulates License
#CPC4Rpi [124] 1.1 Dec 19, 2013 - Commercial💲
CapriceRPI [125] 1.3d Feb 28, 2016 - Open source
Clock Signal [126] Dec 28, 2023 ZX Spectrum, ZX80/81, Enterprise, MSX, Oric, ColecoVision, Acorn Electron, Apple II, VIC-20, Atari 2600, Atari ST, Macintosh Donationware & Open source
CPC-PI [127] 0.1 Feb 5, 2017 - Freeware
CPCEPower [128] 2105 Jun 4, 2021 - Freeware
MAME [129] 0.264 Mar 26, 2024 Tons of vintage computers, game consoles and arcade systems Open source
SugarPi [130] 1.2.0 Feb 3, 2021 - Open source
ZEsarUX [131] X Sep 8, 2023 PCW, ZX Spectrum, ZX80/81, MSX 1, ColecoVision, Spectravideo, Jupiter ACE, Sam Coupe, SG-1000, Master System, Sinclair QL, MK14, Z88 Donationware & 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


Mass storage devices

Emulator support is as follows:


Audio devices

Emulator support is as follows:


Printers

Support for CPC printers is abysmal in all emulators. The only emulators that at least do some print rendering emulation are JavaCPC and Caprice Forever.


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

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
  • Focusing on the minute details in Z80, CRTC and PPI 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

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 [140] 2.30 Apr 2, 1986 Commercial💲 BBC BASIC
BASIC 1.1 Fuer CPC464 [141] Oct 1986 Open source Locomotive BASIC 1.1
CPCZVM [142] Jul 6, 2019 Open source Z-Machine
CPvM [143] Mar 29, 2024 Open source CP/M
Pac-Man [144] 1.1 Jun 5, 2014 Open source Pac-Man arcade
Phoenix [145] Jan 6, 2019 Freeware Phoenix arcade
Space Invaders [146] 1.0 Jun 11, 2016 Freeware Space Invaders arcade
Vezza [147] Jan 7, 2024 Open source Z-Machine
ZXM [148] 1993 Freeware ZX Spectrum
Zym [149] 0.9 Feb 19, 2022 Open source Z-Machine