To detect Amstrad CPC emulators, the simplest method is to check if the memory is initialized with zeroes. The CPC firmware doesn't initialize the memory at boot, so memory values are random on a real machine.
You can also target the minute details of the Z80, CRTC and PPI chips that are almost always wrongly implemented by in emulators.
And you can target the FDC chip that is only replicated more or less superficially in all emulators because the internals of the chip are still unknown.