CPC & MSX Emulators
Simon N Goodwin tests the Amiga's
CPC emulatorsAmstrad allow the CPC ROMs to be freely distributed, which makes it relatively easy to get an emulator up and running. This enlightened decision has made CPC (and Spectrum) emulation one of the boom areas of the last couple of years. It helps that we're now reaching a position when most Amiga enthusiasts own systems that can do justice to emulating another processor.
A-CPCA-CPC was written in the UK by Computer Science student Kevin Thacker, on a Amiga 500 with Workbench 2, Devpac and twin floppy drives. It does not have a built in monitor, but can emulate the 'Multiface 2', a CPC device similar to Action Replay, if you've got the right ROM file. The demo is usable but crippled: it can't SAVE, use joysticks or emulate the Multiface.
The full version allows direct access to real CPC disks, and instructions for anyone brave enough to connect a three inch drive to their Amiga. Even if you manage this, you're unlikely to be able to read copy-protected disks, but disks in normal CPC format will be accessible from the Amiga Shell.
A-CPC will run on a 68000 Amiga, but very slowly - it works best on a 68030 and I couldn't get it to run at all on a 68060. It emulates all the original Amstrad models from 464 to 6128, and the registered version - available for £10 - supports CPC+ features as well.
A-CPC needs at least a Meg of RAM and comes in versions for old and new processors. It's system friendly, with pull-down menus, and can read disk images and snapshots from the PC-compatible CPCEMU and CPE emulators, which are widely available on the Web and FTP sites.
AmiCPCAmiCPC also expects a 68030, although it will run on 68020 systems. I tested version 0.33, which is freeware. Like A-CPC it needs a 15 KHz PAL monitor and objects to AGA mode promotion. It is faster than its rivals, but you need a 68030 or better to run most programs at full speed.
The 'turbo' version requires 2 Megs of fast memory, and manages about 20 per cent of real Amstrad speed on a 14 MHz Amiga, or 660 KHz in Z80 terms. It's more than twice the speed of a real CPC, on a 68060.
Sound emulation is limited to simple tones. Most of the documentation is in French, with about four pages in English. It's a nice freeware emulator and well worth looking at, especially if you understand French. It's coded in approved style with menus and tooltypes, multi-tasks well and doesn't tie up the Amiga, even if you leave it running in the background.
CPECPE is a relatively limited emulator, based on an early version of an eponymous emulator for PC clones, and an old Amiga emulator for obsolete CP/M business machines. The assembler source code supplied needs changes for processors after the 68000. I spent a while tweaking it, with some success, but could not get the keyboard working properly.
Disk support is rudimentary and there's no emulation of CPC sound effects. CPE does include a reasonable Z80 monitor. You're probably better off with one of the other CPC emulators, although real enthusiasts might find the source code interesting.
EmuCPCEmuCPC was also written in France, once a key territory for Amstrad sales and the home of many CPC enthusiasts. Version 0.4B arrived on Aminet at the beginning of this year, and works quite well, although rather slowly. It requires Workbench 3.0 and at least a 68020. It emulates the 64K Amstrad 664 with one disk drive, and can work with disk images as well as A-CPC CPCEMU and CPE memory snapshot files.
EmuCPU multi-tasks but there's not much CPU time left, unless you call up one of its ReqTools requesters to pause the ferocious CPU drain of the Z80 emulator. It's noticeably slower than its rivals in 16 colour MODE 0 on a 68060, which suggests that it may be relying on instructions which the 68060 has to trap and emulate.
EmuCPC is freeware with just two A4 pages of documentation, but some useful example files. It supports add-on Amstrad 'ROM' files, and comes with Amiga shell utilities to format, read and write 180K 'disk' files.
There are no menus. Function keys, listed when you the start the program, change screen mode, reset, swap disks and save and load snapshots. The original CPC keymap is emulated, with simple help text available on F7, as the Amiga keytops and CPC characters do not correspond. This is a common problem with all the CPC emulators - it would have been nice to have had an option to use the Amiga rather than the Amstrad keymap.
EmuCPC is being actively developed and a new version, 0.7, arrived on Aminet as this article was prepared. This one can emulate the 6128 model and programs which change the display resolution part-way down the screen. Four versions are now included, varying in speed, RAM capacity and accuracy of graphics emulation.
Perhaps the most significant advance is provision for fast parallel transfers from a real CPC to your Amiga. EmuCPC 0.7 comes with instructions showing how to link the parallel ports of the computers with nine wires, and software to manage both ends of the link, transferring the contents of a three inch disk into an Amiga disk image file.
You need another custom cable to get the transfer program from Amiga to the CPC. This time EmuCPC uses the cassette interface, generating tones through one of the Amiga's sound channels which the CPC interprets as a program. This is trickier, as it can be messed up by signal levels and processor speed - you might end up having to retype the CPC part of the transfer program, which is about 5K of BASIC.
In the absence of any direct way of loading CPC cassettes onto the Amiga, this is an ingenious and important utility which marks out EmuCPC from the rest. The new uses icon tool-types for configuration, making it yet more Amiga-friendly.
ComparisonsEmuCPC and AmiCPC are freeware and work well on all the Amiga configurations we tested. The shareware A-CPC has problems on faster machines, but direct support for three inch disks and CPC plus features - in the registered version - should win it a few converts.
Cross emulationfMSX is available for NetBSD, but lacks Amiga optimisations so you'll need a graphics card and quick CPU to do it justice. The same situation is likely if a Unix CPC emulator is ported to Amiga hardware. In either case, the native Amiga emulators are sufficiently good that you'll probably prefer them unless you spend most of your time in NetBSD already. I've yet to see useful MSX or CPC emulators for Macs, so Shapeshifting is - for once - not an option.
Some text-based CPC software runs under CP/M, the seventies business operating system. If you want to run this on an Amiga you're best off using a CP/M emulator, rather than trying to load Amstrad CP/M into a CPC emulator. You can find several CP/M emulators on Aminet and Fish disks.