Difference between revisions of "Emulator IDs"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(List of known Emulator-IDs)
(List of known Emulator-IDs)
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
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 effechts 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.  
+
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:
 +
<pre>
 +
PRINT HEX$(INP(&FEFE))
 +
</pre>
  
 
== List of known Emulator-IDs  ==
 
== List of known Emulator-IDs  ==
 
<pre>
 
<pre>
 +
- #78: Amspirit
 
- #88: VirtualCPC
 
- #88: VirtualCPC
 
- #99: WinCPC
 
- #99: WinCPC
Line 12: Line 19:
 
- #C3: TREX Turbo
 
- #C3: TREX Turbo
 
- #CE: CPCE
 
- #CE: CPCE
- #FF: Caprice, CPCBox, WinApe, MESS or a real CPC
+
- #FF: Caprice, WinApe, MAME or a real CPC
 
</pre>  
 
</pre>  
 
<b>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!</b>
 
<b>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!</b>
 +
 +
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). [https://www.grimware.org/doku.php/documentations/devices/io.devices#blind.test Source]
 +
 +
<b>You should never do anything relying on the value of the DATA bus in High impedance state and expect it to work the same on all machines. It won't!</b>
 +
 
[[Category:Emulator]] [[Category:Programming]]
 
[[Category:Emulator]] [[Category:Programming]]

Latest revision as of 15:55, 16 January 2025

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

You should never do anything relying on the value of the DATA bus in High impedance state and expect it to work the same on all machines. It won't!