Difference between revisions of "Emulator evaluation tools"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(Copy-protection)
(Diagnostics)
Line 19: Line 19:
 
== Diagnostics ==
 
== Diagnostics ==
 
*[https://www.cpc-power.com/index.php?page=detail&num=5113 Amstest] [https://www.cpc-power.com/index.php?page=detail&num=17932 Amstrad Diagnostics]  [https://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-diagnostics-rom/msg243665/] [https://www.cpc-power.com/index.php?page=detail&num=6545 STS SysInfo] [https://www.cpc-power.com/index.php?page=database&r1=1&lemot=test%20crtc%20v Test CRTC type] [http://quasar.cpcscene.net/doku.php?id=coding:test_crtc] [http://cpc.sylvestre.org/technique/technique_identifier_crtc.html Identifying CRTC visually] [https://www.cpc-power.com/index.php?page=detail&num=11446 Basic Program Status Window] [https://www.cpc-power.com/index.php?page=detail&num=12584 Version du Firmware Basic]
 
*[https://www.cpc-power.com/index.php?page=detail&num=5113 Amstest] [https://www.cpc-power.com/index.php?page=detail&num=17932 Amstrad Diagnostics]  [https://www.cpcwiki.eu/forum/amstrad-cpc-hardware/amstrad-diagnostics-rom/msg243665/] [https://www.cpc-power.com/index.php?page=detail&num=6545 STS SysInfo] [https://www.cpc-power.com/index.php?page=database&r1=1&lemot=test%20crtc%20v Test CRTC type] [http://quasar.cpcscene.net/doku.php?id=coding:test_crtc] [http://cpc.sylvestre.org/technique/technique_identifier_crtc.html Identifying CRTC visually] [https://www.cpc-power.com/index.php?page=detail&num=11446 Basic Program Status Window] [https://www.cpc-power.com/index.php?page=detail&num=12584 Version du Firmware Basic]
*[https://symbos.org SymbOS] [https://www.cpc-power.com/index.php?page=detail&num=6987 RAM Expansion Test] [https://www.cpc-power.com/index.php?page=detail&num=14833 MemTest] [https://www.cpc-power.com/index.php?page=detail&num=14834 RAM Test CRTC4] [https://www.cpcwiki.eu/forum/technical-support/test-ram-de-mcleod-ideafix/ Test RAM de McLeod Ideafix] [https://www.cpc-power.com/index.php?page=detail&num=15739 RAM Check] [https://www.cpc-power.com/index.php?page=detail&num=13386 Testprogram For All ERAM] [https://www.cpc-power.com/index.php?page=detail&num=16010 Test RAM Basic] [https://www.cpc-power.com/index.php?page=detail&num=19185 Xenon 2] [https://www.cpc-power.com/index.php?page=detail&num=12188 Take On Me] [https://www.cpc-power.com/index.php?page=detail&num=14339 Trololo Experiments] [https://www.cpc-power.com/index.php?page=detail&num=19406 Still The One] [https://www.cpc-power.com/index.php?page=detail&num=16084 Post Scriptum] [https://www.cpc-power.com/index.php?page=detail&num=18658 Onescreen Colonies #2 256K] [https://www.cpc-power.com/index.php?page=detail&num=15985 A tribute to the sisters] [https://amstrad-ggp.itch.io/mightysf Mighty Steel Fighters] [https://cpcrulez.fr/info-chany-enhanced_edition.htm Chany 512K cracks] [https://www.cpc-power.com/index.php?page=detail&num=14814 Anti-Multiface] [https://www.cpc-power.com/cpcarchives/index.php?page=articles&num=151 Expanded RAM software list] RAM exercisers
+
*[http://www.symbos.de/appinfo.htm?00061 SyMon (SymbOS)] [https://www.cpc-power.com/index.php?page=detail&num=6987 RAM Expansion Test] [https://www.cpc-power.com/index.php?page=detail&num=14833 MemTest] [https://www.cpc-power.com/index.php?page=detail&num=14834 RAM Test CRTC4] [https://www.cpcwiki.eu/forum/technical-support/test-ram-de-mcleod-ideafix/ Test RAM de McLeod Ideafix] [https://www.cpc-power.com/index.php?page=detail&num=15739 RAM Check] [https://www.cpc-power.com/index.php?page=detail&num=13386 Testprogram For All ERAM] [https://www.cpc-power.com/index.php?page=detail&num=16010 Test RAM Basic] [https://www.cpc-power.com/index.php?page=detail&num=19185 Xenon 2] [https://www.cpc-power.com/index.php?page=detail&num=12188 Take On Me] [https://www.cpc-power.com/index.php?page=detail&num=14339 Trololo Experiments] [https://www.cpc-power.com/index.php?page=detail&num=19406 Still The One] [https://www.cpc-power.com/index.php?page=detail&num=16084 Post Scriptum] [https://www.cpc-power.com/index.php?page=detail&num=18658 Onescreen Colonies #2 256K] [https://www.cpc-power.com/index.php?page=detail&num=15985 A tribute to the sisters] [https://amstrad-ggp.itch.io/mightysf Mighty Steel Fighters] [https://cpcrulez.fr/info-chany-enhanced_edition.htm Chany 512K cracks] [https://www.cpc-power.com/index.php?page=detail&num=14814 Anti-Multiface] [https://www.cpc-power.com/cpcarchives/index.php?page=articles&num=151 Expanded RAM software list] RAM exercisers
 
*[https://www.cpc-power.com/index.php?page=detail&num=15975 FutureOS] [https://www.cpc-power.com/index.php?page=detail&num=4174 CP/M Plus] [https://www.cpc-power.com/index.php?page=detail&num=10030 Phortem] [https://www.cpc-power.com/index.php?page=detail&num=7270 Pac-Man Emulator] [https://www.cpcwiki.eu/forum/amstrad-cpc-hardware/464-and-ram-extension/ Behaviour of RAM mode &C3] [https://www.cpcwiki.eu/forum/amstrad-cpc-hardware/upgrading-a-cpc-464-in-2022/ More on the issue] RAM expansion hardware bug on CPC464/664
 
*[https://www.cpc-power.com/index.php?page=detail&num=15975 FutureOS] [https://www.cpc-power.com/index.php?page=detail&num=4174 CP/M Plus] [https://www.cpc-power.com/index.php?page=detail&num=10030 Phortem] [https://www.cpc-power.com/index.php?page=detail&num=7270 Pac-Man Emulator] [https://www.cpcwiki.eu/forum/amstrad-cpc-hardware/464-and-ram-extension/ Behaviour of RAM mode &C3] [https://www.cpcwiki.eu/forum/amstrad-cpc-hardware/upgrading-a-cpc-464-in-2022/ More on the issue] RAM expansion hardware bug on CPC464/664
 
*🔥[http://www.cpctech.org.uk/test.zip Kevin Thacker's "Acid tests" suite] [https://cpctech.cpcwiki.de/download/test.zip Older version] [https://www.cpcwiki.eu/forum/emulators/amstrad-cpc-'acid'-test/ Forum thread] [http://ace.cpcscene.net/tests:arnold_test_suite Tests results in ACE] Collection of tests which are used to verify emulators operation against real CPC, Plus and expansions
 
*🔥[http://www.cpctech.org.uk/test.zip Kevin Thacker's "Acid tests" suite] [https://cpctech.cpcwiki.de/download/test.zip Older version] [https://www.cpcwiki.eu/forum/emulators/amstrad-cpc-'acid'-test/ Forum thread] [http://ace.cpcscene.net/tests:arnold_test_suite Tests results in ACE] Collection of tests which are used to verify emulators operation against real CPC, Plus and expansions

Revision as of 21:24, 3 January 2025

Quick evaluation


Categories

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), affecting dithered colours. This effect is absent on LCD displays.
  • The usual scanline effect of CRT monitors is barely noticeable on the Amstrad CTM colour monitor. But it is very pronounced on Amstrad monochrome monitors.
  • The slot mask is the texture that is visible in the CTM colour monitor. CRT masks do not exist on monochrome monitors.
  • To test emulators VSYNC (screen-tearing and frame skipping): Source
border 22,17:ink 0,4,9:speed ink 1,1


Graphics


Audio


Peripherals


Copy-protection


Other


Emulator detection methods

If you are a programmer who wants 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. Accessing ghost registers. Using undocumented I/O ports. Writing to multiple chips simultaneously. Changing PPI and PSG ports direction.
  • 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.