Emulators

Introduction

If you spent your childhood afternoons on a computer using a cassette recorder or an unreliable floppy disk connected to a kind of computer, you've got for sure an interest for the emulators.

To the question: What's an emulator? I would answer:

  1. Are you dumb or what? You don't even know what's an emulator? You make me sad.
  2. It's a piece of software, sometimes helped by hardware, and which allows to reproduce the behaviour of another machine than the one it runs on.
If you've got an Amiga, and your sadic teachers and supervisors demand that reports from you are typed with micro$oft Word, you should also be interested by emulators, at least for the following reasons:
  1. You want to quiet down everybody with your Amiga by running Mac and PeeCee programs with the Amiga OS in background, and you are right.
  2. You don't want to touch a PeeCee without protection gloves and you are -still- right.
  3. You don't really feel like waking up at 5 A.M. to get a spare Mac at the computers room, just because you cannot touch a PeeCee, because you miss protection gloves.

Usefulness of such software

8 bit emulators

It's good to be able to play Lode Runner or Zorgon's Revenge on your amiga, but that's not very constructive. It is pure nostalgy, and nowaday's games are much better, most of all those using mapped 3D with 16 billons of colors, THX sound, dolby surround with the pentium processor directly connected to the CD-ROM 24x on internet thank you intel.

And even on Amiga, the games are better (not those from US Gold).

Nowaday's Amigas are able to emulate 8 bit computers with a decent speed, so the games are very playable. However, I know no tool which is absolutely necessary and which only runs on a 8 bit cpu (maybe BASIC).

16-32 bit emulation

It's serious matter. This kind of emulator is generally
  1. Slow
  2. Useful
  3. Unaffordable (in any order)
The emulated computer's speed is often similar to the one which runs the emulator, and then the result is rotten in most cases, except for the excellent Macintosh emulators on Amiga (Shapeshifter, A-Max, and Emplant) and on PeeCee (Executor).

Macintosh Emulation

On Amiga, it's "easy" (if I dare), because the 680x0 processor needs not to be emulated, and -funny fact- Shapeshifter allows to run Mac system with a 68060, which provides the fastest Mac on the market (don't talk me about the PowerMac, half of the current software are emulated).

On the Amiga, Shapeshifter blasted its competitors by its impressive functionalities

As I say, Shape (may I call you Shape?) is excellent. Once in the world a guy makes money with computer software without being called bill. He deserves it. Moreover, the author is not greedy, as he also wrote a very good and totally free C64 emulator, including source code. Finally, he's a bit like bill, who gives explorer for free...
Such a nice guy.

Let's mention the amazing speed of Executor on PC (yes) which performs dynamic compilation from 68000 to i386. Very impressive. The only problem is that Executor authors re-wrote the Macintosh ROMs (for better speed, and maybe also for a copyright problem) based on system 6.5, and that means you can't make the OS evolve.
But anyway that's a beautiful program.

PeeCee emulation

The PC-Task and PCX emulators are well programmed, but are a bit useless because games are unplayable because too slow (or the amiga version exists) and the macintosh emulation can handle 'serious' applications (such as M$-Office or Works), and other well-known ones (Photoshop, Netscape) at a very good speed.

Really, except for some old Pascal program the sources of which you've lost, really I can't see any interest.

Or you are PC-addicted. In that case, buy a PC and stop breaking balls.

Atari ST emulation

Who does not know the Amiga big brother, in the same frame of mind, but without the highly superior Amiga hardware, with the ugly us gold games, but also with unique software like Cubase, Studio 24 or Colonial Conquest and Super Sprint?

It's hard to code a ST emulator which would be both fast and compatible with games.
Actually, I doubt that any emulator can run any arcade game (the ones which trash the system and use their own code) when the code is not interpreted but runs freely, like in the Macintosh emulators. It's easier to achieve on a Mac because the OS is almost impossible to bypass.

Anything considered, there is no ST emulator on Amiga for the processors higher that the 68000.

Amiga Emulation

UAE taken apart, I cannot see one. UAE is *amazing*. A huge work, an impressive programmers coordination, excellent compatibility, even with the old crappy-programmed-by-pitbulls us gold software, or the ones with very special space tricks to improve scrolling smoothness with bitplane change at line 120, and sound modulation using the floppy controller in DMA.
For the Unix/Linux version, the interest is obvious: play again at games not released on PC, and play at decent games on workstations. (with a SGI Impact 10000, I can say that the speed is good).

If you run UAE under Linux and you reduce the screen resolution to 320x200, you nearly beleive you're on amiga.
I'm impressed.

And the amiga version, dummy?

Okay, I was talking about the Linux version, which now features sound, AGA modes, FPU emulation, 68020 CPU emulation, and dynamic compilation if that was not enough. We would never have thought about it a few months ago.

There had to be a mad man in this world to port UAE on amiga, and Samuel Devulder played that part. Even if the emulation is less performant (because of the planar display, because of the C slowness, because of problems of porting Unix -> AmigaOS), it's still great work, and this could even be a path to the new Amiga generation based on PPC (do you really beleive there will be another Amiga generation?)

How it works

I see you're doubting about my abilities to explain how all this work. I can do it.

The display

The method is roughly speaking the same for all emulators: they refresh the screen by a timer interrupt and convert the virtual video memory (of the emulated computer) to display the picture on the amiga screen.

For sure it will be slow, except if we forget to be stupid:

The processor

If both machines (emulated and amiga) use the same processor, then the only method is to redirect the system calls connected to low level ressources, like sound, floppy disk, SCSI ports, parallel and serial ports.

Macintosh emulators manage very well with this technique, but the problems begin when some "wicked" software (like there are thousands on the Amiga) use hardware banging in the hardware registers, bypassing the system interfaces (the devices, on amiga). The emulator does not notice those accesses and it can crash nastily, except if the emulator uses MMU to catch those accesses (not done on Shapeshifter, which would explain why some games crash, but I think it is done on A-Max IV).

If both don't have the same CPU, then, the emulator has to "translate" the binary code in 68000 assembler, either in an interpretive way (rather easy), or by dynamic compilation (very hard, but very efficient, except for self-modifying code).

Dynamic compilation is only worth if we want to emulate a powerful computer, like a 32 bit architecture. For 8 bit machines, it's of minor interest, and moreover problems could appear due to the rudimentary operating system of those computers. Actually those "OS" assume that the speed of the processor is constant, and some timing problems could occur: real time clocks, keyboarrrrrrrrrrrrrrrrrrd...

Peripherals

Low-level emulation is more suitable for 8 bit emulations than high level emulation (i.e. patching the OS routines that access hardware registers), in a compatibility issue (c.f. Frodo by C. Bauer versus A64).

Indeed, old games and applications wildly poke into the hardware registers, even if they use BASIC.

Conversely, for a 16-32 bit emulation, it's better to catch the system calls at a higher level because only a few programs use low level calls (virus...), and MMU traps can complement the low level accesses.
Speed is better if system calls are trapped at a higher level (e.g: read a block on a SCSI disk).

Shapeshifter reaches a very good speed using this method, but Macintosh is a bit special, as programmers generally respect programming guidelines (not exactly true on the amiga).

You have been had, confide it.

Okay, I stop those stupid technical details here.

Available emulators on the Amiga

I gathered here the emulators I knew for our great computer. For the ones I don't know, I cannot do so. If you know some other one, or the information I'm providing is inaccurate or wrong, don't hesitate to contact me for a correction. I won't feel annoyed.

Computer Software Comments License Author/Port by ROM(S) provided
Amiga
UAE V0.63
Port of B. Schmidt UNIX version
Freeware
S. Devulder
-
Amstrad
ACPC 1.11d
emulates CPC464, 664, and 6128
Shareware
K. Thacker
*
Amstrad
AmigaCPE
Simple Amstrad CPC emulator
Freeware
B. Schmidt
-
Amstrad
EmuCPC 0.7
emulates CPC464, 664, and 6128
Freeware
S. Tavenard
*
Apple II
Apple2000 V1.3
Developpment stopped. Very fast, many features, I understand why he stops.
Freeware
K. Kralian
-
Apple II
AppleOnAmiga
Old Apple emulator written in Modula 2
Freeware
Claudio Nieder
-
Atari 800
Atari 800 (original as a name)
UNIX port
Freeware
D. Firth
-
Atari 2600
Amiga v2600 v0.5
port of Virtual 2600 by Alex Hornby.
Amiga AGA necessary, 68060 and Fastmem recommended but it's likely to improve in next versions.
Freeware
M. Stroup
-
Atari ST
Cameleon
only works on a plain 68000
Commercial
TOS Integrated
Atari ST
ST4Amiga.
I never succeeded in making this one work, even on A500/68000.
Freeware
S. Haubenthal
-
Atari ST
There exist some other for sure, but I don't know them
BBC
Abeeb
James Fidell's XBeeb port
Freeware
J. Belson
-
BBC
I saw another one running, in the bright years of A500
Commodore 64
Frodo V2.4
very accurate, needs a very powerful Amiga
Freeware
C. Bauer
-
Colecovision
I saw the Marat Fayzullin's version ported on Amiga, but none of the games I tried worked. I can't remember where I got this archive, and I cannot find it on Aminet. You're right, guys, keep on programming in you igloo.
Freeware
?
*
C=16/+4
A4 V0.2a
Emulates the old Commodore machine Plus4
Shareware
Thomas Koenig
*
Commodore 64
Magic 64 V1.21
faster than Frodo
Shareware
M. Kramer
-
Commodore 64
A64 V3.0
the faster and the less accurate.
Commercial
Questronix
Custom
MSX
FMSX V1.2
Marat Fayzullin's UNIX port.
A very good port
Freeware
H. Guijt
*
MSX
AmiMSX2 V2.3
Lots of functionnalities
Shareware
J. Galvez
*
Gameboy
AmiGameBoy 0.82 Beta
Freeware
skid/ozone
-
Gameboy
AmigaVGB 0.7
Marat Fayzullin's UNIX port. Runs on a window.
Freeware
L. Malmborg
-
Gameboy
GBUK
Needs 68020+ processor and the AGA chip set.
Freeware
Paul Gaze
-
Gameboy
VGB Amiga V0.3
Amiga port of a Nintendo GameBoy emulator for Unix/X11.
68020 and OS3.0 required
Freeware
Matthias Bethke
-
Gameboy
Wzonka-Lad v0.57
A new 100% asm coded Gameboy emulator.
Wzonka-Lad is still in its early stages, but many games are playable.
Requires MC68020 or better and 3MB memory.
Freeware
Ville Helin
-
Oric
Amoric V1.5
I'm the author of this one, that's why I cannot say it's a piece of rubbish.
The cool thing is that it's "plug and play" (as would bill say)
Freeware
J.F Fabre
*
Mac 68K
Shapeshifter V3.7
100% software for 68020+ amigas.
Emulates video, disks, CD-ROMs, sound, // and serial port
with full multitasking.
Shareware
C. Bauer
-
Mac 68K
Emplant
Software emulation with a hardware part
Commercial
Jim Drew
*
Mac 68K
A-Max IV
Software emulation with a hardware part, but some software-only versions exist...
68060 not supported.
Commercial
ReadySoft
?
HP48
Alcuin V1.1
Shareware
S. Schupfer
-
PeeCee
PC-Task3.0
Commercial
Ever saw ROMs on a PC?
Pee Cee
PCX
Said to be very fast.
Don't hurt yourself. PC is lame.
Commercial
-
TI99-4A
TI4Amiga
Port of Ton Brouwer emulator.
Very simple pre-version, but at least it exists
Freeware
S. Haubenthal
-
VIC20
Vic-Emu V0.65
Freeware
Pieter van Leuven
*
ZX-Spectrum
Speculator
Lots of features.
Freeware
William James
*
ZX-Spectrum
ZX-Spectrum 4.71
Freeware
J. Kwast
-
ZX-Spectrum
ZX-AM 2.0b
The best, according to many people (and me)
Freeware
T. Pomar
*
ZX-Spectrum
ZX-Emulator V1.7
Old, but good
Freeware
P. McGavin
*



For C64 ROMs, you can get the PC64 emulator (for PC) and install it: the ROMs are provided.



What about the WEB?

That's a online fanzine, so I have to talk about the Web.

I gathered for you some cool URL's. You'll thank me later.

You can also get the emulators FAQ, maintained by Adam Roach, which can (often) be found on comp.sys.emulators.misc.

Some interesting newsgroups

If you want to contact me to insult me or even to thank me about this excellent paper, you can e-mail me.

As a conclusion

Well, I hope I did not bother you too much. In the other case, the 'HOME' button will get you out of here.

See you lads.