Re: What we need @DrBed
The Z80 in the Spectrum is not only nominally clocked at 3.58Mhz but also genuinely runs at that speed for as long as you avoid the physical chips that are shared with the ULA. E.g. on a 48kb Spectrum that means that as long as your code is in the top 32kb of RAM rather than the bottom 16kb.
The CPC is nominally clocked at 4Mhz but via use of the WAIT line permits a Z80 memory access on only one in every four cycles, regardless of what you're accessing. The standard fetch cycle is four cycles long, so single-byte instructions that don't cause a memory access run without a speed penalty (once you're in phase, anyway) but everything else is subject to delays. As a result code often ends up running more slowly than it would on a ZX Spectrum.
It depends how often the Spectrum code is seeking to update the display though, obviously. And the CPC's main problem isn't this clocking scheme or that one, it's the annoying large percentage of titles that are so lazy as just to be the Spectrum code plus some extra work at the end to translate the Spectrum graphics to anything that looks sort of right. It's almost a revelation every time you load a game that was converted properly, like Chase HQ, Robocop or Gryzor.