The Amstrad CPC Had A Spectrum Emulator?

In the dying days of the Amstrad CPC, an interesting utility appeared in the pages of Amstrad Action. This utility, which claimed to be able to emulate a 16k ZX Spectrum, was long thought to be a myth by the CPC community. It’s not a myth, however. It’s real.

The CPC Wiki, a cornerstone of the modern CPC community, believes the program was written by Dr Andy Wright of BetaSoft (since BetaSoft was a one-man band, and since Dr Wright was a much-loved coder of Spectrum software, this seems logical) but the only review of the utility, in Issue 96 of Amstrad Action, doesn’t mention the coder’s name.

A screenshot of the Amstrad Action Issue 96 review of ZXM.
When I first read this review, my jaw dropped. My CPC can emulate my cousin’s Spectrum? It was like a dream come true!

ZXM, the ZX Spectrum Emulator, comes on one 3-inch floppy disc and requires the additional loading of a ZX Spectrum ROM into memory before it will work. The software does not come supplied with the ROM but there are instructions for dumping the ROM to a cassette that you can then load into your CPC. At the time this is because of licensing issues (Amstrad owned the Spectrum ROM and didn’t want to share while the system was still a going concern) but these days Amstrad allows the use of Spectrum and CPC ROMs for all home user, non-commercial purposes you could likely think of (that’s how the Speccy and CPC communities are so revitalised now) – so that’s a victory for the modern world.

The emulator runs surprisingly well, all things considered. This probably should come as too big a surprise since the emulator doesn’t have to emulate the Z80 CPU of a Spectrum on a CPC (which also uses a Z80 CPU), only the other bits and pieces of the Speccy that are unique to it.

There are compatibility issues but that’s to be expected if we are honest. Sprites don’t work too well thanks to the CPC’s graphics chip and the way the CPC monitors work – there is a built-in workaround in the emulator but it won’t fix everything – and this limits the speed of the emulator because the workaround takes a few processor cycles.

The emulator also can’t handle direct port access, so many games simply won’t work (much to my dismay back in the day, since I really, really wanted to play some Speccy classics that never got CPC ports) and you are pretty much limited to BASIC code if you want to get anything done with this program.

I really wish this had come out several years earlier, when the CPC was still in its heyday. It reminds me a lot of the Macintosh emulator that used to do the rounds in Amiga circles. The Mac and the Amiga shared a lot of hardware between them, which meant you could run Mac software very nicely on an Amiga with some basic emulation utilities; hence the old tagline that “The best Mac is an Amiga” (as Retro Man Cave so aptly demonstrated in one of his brilliant videos). ZXM feels like a similar program.

If ZXM had arrived a few years earlier, I can easily see a ZXM 2 or rival program coming along that fixes some or all of the issues this utility has. It would have been a real boost to the CPC to be able to use the Speccy classic software that we never got native ports of. Although the CPC’s library was substantial (it stands at around 5-6000 titles and is still growing), being able to add the Spectrum’s even more gargantuan library to our own would have cemented the CPC as a software powerhouse.

Still, there’s always modern emulation. We don’t have to miss out any more.