Notice: Trying to access array offset on value of type bool in /mnt/cpcwiki-httpdocs/includes/libs/IPSet.php on line 243

Notice: Trying to access array offset on value of type bool in /mnt/cpcwiki-httpdocs/includes/libs/IPSet.php on line 246

Notice: Trying to access array offset on value of type bool in /mnt/cpcwiki-httpdocs/includes/libs/IPSet.php on line 243

Notice: Trying to access array offset on value of type bool in /mnt/cpcwiki-httpdocs/includes/libs/IPSet.php on line 246

Notice: Trying to access array offset on value of type null in /mnt/cpcwiki-httpdocs/includes/profiler/SectionProfiler.php on line 104

Notice: Trying to access array offset on value of type null in /mnt/cpcwiki-httpdocs/includes/profiler/SectionProfiler.php on line 104

Notice: Trying to access array offset on value of type null in /mnt/cpcwiki-httpdocs/includes/profiler/SectionProfiler.php on line 105

Notice: Trying to access array offset on value of type null in /mnt/cpcwiki-httpdocs/includes/profiler/SectionProfiler.php on line 105

Notice: Trying to access array offset on value of type null in /mnt/cpcwiki-httpdocs/includes/profiler/SectionProfiler.php on line 106

Notice: Trying to access array offset on value of type null in /mnt/cpcwiki-httpdocs/includes/profiler/SectionProfiler.php on line 106
Emulator IDs - CPCWiki
Last modified on 16 January 2025, at 17:03

Emulator IDs

Revision as of 17:03, 16 January 2025 by Phi2x (Talk | contribs) (List of known Emulator-IDs)

Some CPC emulators use Port &FEFE to provide a method to identify a specific CPC emulator. CPC programs could use this ID to detect an emulator and change some of their behaviour (e.g. changing graphic effects which will not work on an emulator or using special emulator-specific features). Reading from this port returns the Emulator-ID or &FF on the real CPC and on emulators which do not provide this feature.

Showing the Emulator-ID

In Locomotive BASIC, type the following command:

PRINT HEX$(INP(&FEFE))

List of known Emulator-IDs

- #78: Amspirit
- #88: VirtualCPC
- #99: WinCPC
- #A0: JavaCPC
- #AA: PC-CPC
- #C0: C-One Normal
- #C1: C-One Turbo
- #C2: TREX Normal
- #C3: TREX Turbo
- #CE: CPCE
- #FF: Caprice, WinApe, MAME or a real CPC

NOTE: It should be noted that the value #FF is just valid on a bare CPC (not plus!) and any extensions connected can change this!

On a healthy and bare Amstrad CPC, &FF is the value you can usually read on the DATA bus in high impedance state. On a healthy and bare Amstrad Plus, this is usually &78. This property has been used to detect the Plus machines in several productions (and failed on several occasions as this is not a reliable technique) Source.