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:
- Are you dumb or what? You don't even know what's an emulator? You make me sad.
- 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:
- 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.
- You don't want to touch a PeeCee without protection gloves and you are -still- right.
- 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
- Slow
- Useful
- 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
- It's 100% software
- Modularity: other developpers can write their extensions (devices, gfx)
- Perfect multitasking
- Very impressing demo version
- Very low price (40$/25 UK Pounds)
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:
- Modifying some system calls to redirect them to custom native routines (e.g. line draw or polygon fill)
- Using the MMU (like A-Max, or the Savage video driver useable in Shape) to know exactly the parts to refresh. It's much better than the I-don't-think-a-lot-in-my-life method.
Unfortunately, lots of Amiga owners still stay with 68020 or 680EC30.
Solution: attack old people, they're rich.
- For interpretive emulators, emulating the MMU in some way by intercepting video memory writes (that's how Amoric works).
- Hiding a PC under the desk, connecting it to the Microvitec monitor, and making believe you can play Quake on the amiga (that's a bad example)
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.