Amiga Format
This article was originally written by Simon N Goodwin for Amiga Format magazine, and is used by permission of the joint copyright holders. It should not be copied any further without written permission. The free emulators mentioned were included on the accompanying CD with the magazine, and are generally available - often in updated form - from this site. The text is as originally submitted to the magazine - which means there are some differences, mostly extra text which was cut to fit into the pages available - with the addition of hyperlinks to new or updated information which has since become available. This approach has been taken to preserve the structure of the original series, while making new information readily available. Simon welcomes comments from readers, care of Tomas Amsrud, who has generously prepared the material for publication on the Internet.
PrevNext
Main

AER


UAE - The Amiga Emulator

They said it was impossible...

Simon NGoodwin reveals the truth about UAE,
the Uni*x Amiga 500 Emulator, which runs
on fast PCs, Macs and even Amigas...


UAE emulates the original Amiga - or comes pretty close. Amigas are uniquely difficult to emulate because the CPU, though complex, is just one of four large chips that operate simultaneously, including the Copper coprocessor, Blitter bit manipulator, and 20-odd direct memory access channels. Programmers know, understand and use all these goodies, often in ways the original designers never expected.

Other computers lack many basic Amiga features: sprites and dual playfields (overlaid displays), mixed modes on one screen,interacting (attached) sound channels, Hold and Modify colour, and bit level access to disks. Most can be emulated, but at great cost. Scrolling two overlays in opposite directions takes the A500 mere microseconds, but requires an emulator to read, mix and write up to 100 Mb of video data every second.

Tight coupling between the processors means the 68000 can program the blitter to program the copper to program the blitter, and then get on with something else leaving 100,000 or so graphic operations chugging away automatically every second, in perfect synchronisation at no cost to the 68000. An Amiga emulator must do all this, and more, without missing a beat.

UAE originally stood for Unusable Amiga Emulator, with good reason. Version 0.1 would not even boot! Despite this unpromising start vintage Amiga devotee Bernd Schmidt pressed on, encouraged by former Commodore man Ed Hanway who'd written his own, non-working, Amiga emulator.

Amiga emulation is a colossal problem. The 68000 processor is complicated, but a far greater challenge is emulating the custom chips, which can be reprogrammed at microsecond intervals, changing colours, reusing sprites and hardware channels. The effort required to allow for every possibility will humble even Gigahertz systems.

An accurate Amiga emulator - or even one as close as, say, the best freeware Spectrum emulators, or Fusion 2 - is a long way off. But even an imperfect emulator could be useful, and is certainly an impressive feat.

Eventually Bernd found a neat way to speed UAE up, skimping exact hardware emulation on display lines where nothing tricky happens, and the name changed to Un*x Amiga emulator. It's now approaching version 0.70, runs all Commodore versions of Workbench, and a fair proportion of unprotected A500 software, on fast computers from most manufacturers.

UAE was originally coded in Gnu C for Linux Torvald's Linux operating system for Intel/IBM PC hardware. It's freeware, running on Acorn, Amiga, Apple and Microsoft operating systems, besides DEC, SGI and Sun Unix workstations. The Amiga port is not as mad as it sounds, as we shall see. UAE has even run itself, albeit slothfully.

The current Unix version of UAE emulates an Amiga 500 with 68000 or 68020+68881 processors and the original 1985 graphics chip set - plus larger chip RAM and 'big blits' from ECS, but none of the other enhancements of the past decade. RAM may be mapped anywhere it would appear on a real 16 bit Amiga. 10 Mb of real memory is the minimum required to start most versions.

UAE can print to the 'Amiga' parallel port. It emulates mouse and joystick controllers, perhaps via the numeric keypad. It can generate and use hard disk images in files on the host system. It emulates floppy disk drives using 880K disk files. Only the Amiga port can read Amiga disks directly. The others require ready-made .ADF files, from CD or Internet or made on a real Amiga using the TRANSDISK utility.

One day the long-awaited PC version of Catweasel - the only modern disk controller in the mould of Amiga's Paula chip - may change this. For now, UAE can't properly emulate the Amiga floppy disk hardware, because other computer floppy controllers lacks the required bit-by-bit control. Protected A500 programs are inacessible.

UAE graphics

UAE runs best on an 800 by 600 pixel screen with 16 bit colour - into which it can map all the OCS modes. It works by generating one image containing the entire Amiga display, mixing sprites and playfields together and adjusting colours, position and resolution for Copper effects. Colour conversion, mixing and masking all take their toll.

Your initial choice of mode is important because UAE cannot change the physical mode after it's started - though it can map Amiga mode changes into the available space. 800 by 600 covers the full range of possibilities, including interlaced hires overscan, automatically flicker -fixed on PC monitors.
" Many old games, demos and serious programs run perfectly - at times, you can forget you're using a PC //Simon Goodwin"

In practice part of the screen will be blank in this mode, but VGA and Mac 640 pixel widths are too narrow for an entire overscan screen. Low resolution 320 column mode is much faster and adequate for some games and demos.

Scrolling and screen-dragging are supported, but work by redrawing the entire screen, making them slower and less smooth than the real thing. Workbench sprites and icons flicker slightly as they are moved, because the Kickstart beam avoidance code cannot work; the emulated display is not scanned at the original rate, and real Amiga programs rely on exact synchronisation which UAE cannot deliver.

Limitations

If you lack the 16 bit colour mode needed to render the entire 4096 colour OCS palette, UAE uses dither patterns to approximate the result. This is generally OK for graphics but makes text hard to read. UAE can also skip pixel rows or columns to fit a lower-resolution screen, sacrificing clarity.

UAE has some major limitations. Collisions between sprites and the background are not detected - this means players or bullets may slide blithely through walls in some games, for instance. Programmable beam modes like ECS productivity and SuperHiRes are not supported. Timers yield inaccurate results. Serial port code is faulty, ruling out comms and MIDI. Mouse movements lag, and keys don't always work as expected.

Undocumented gaps upset many programs, especially hardware-banging demos and Jeff Minter's games. Jesus on Es did not work, but many other demos did, and most of the Assassins PD games collection, ready-converted into ADF files on Epic's Amiga Emulator CD.

UAE sound

UAE sound is mono and extremely CPU-intensive. Even a 200 MHz computer struggles to keep up, with gaps or glitches when other work must be done. The 'popcorn' music on the Assassins disk menu regularly missed beats on a P200 with MMX. Reducing the sample resolution and rate did not cure this. Simple in-game effects were generally OK, though the Boing demo generated obvious clicks absent from the original.

UAE can't fix the compatibility problems of old Amiga programs, though it can emulate many hardware configurations. Some programs require a particular Kickstart, chip RAM size or trapdoor expansion, they'll crash, just as they would on a real A500, if UAE is not set up to suit. At least you can restart with new parameters, without having to dissect your computer to change the configuration.

Floppies

Amiga floppy disks can only be accessed after converting them into 880K 'disk image' files. Only Catweasel or the Paula chip in a real Amiga can do this; even then, there's no support for 'non-DOS' formats like protected disks, Diskspare, HD and ED floppies.

" For those who still have and treasure their A1000 (I do), Amiga UAE is not an alternative //Olaf Barthel"
TRANSDISK is a trivial program to copy a disk from DF0: to standard output, which you must redirect to a file, unless you enjoy watching 900,000-odd bytes of scrolling gibberish. The superior PD TrackWiz transfers both ways. With only a standard drive the image requires compression or splitting to fit MSDOS disks; you'll need ZIP for Amiga, LHA for PC, or some similar combination to pack and unpack the results on 720K floppies for transfer to the emulating machine. Fast serial links and high density 1.44 Mb floppy drives help.

UAE is useless without at least one disk image, and a half megabyte Kickstart ROM image from a real Amiga. A few demos that ignore Kickstart may run using minimal 'hook' code provided in the absence of genuine - copyright - ROM code. The only legal way to get Kickstart on UAE is to run TRANSROM to save it from a real Amiga or buy the Amiga Forever CD, which includes a set of ROM images from Kickstart 1.0 to 3.0.


UAE Versions

We've tested the four main versions of UAE, for Linux, Microsoft/Intel systems, Apple Macs and genuine Amigas. The Speed Table compares Power PC, Intel and 68K systems, from A500 to A4000/060 - with and without UAE. Two short tests assess CPU emulation. BinaryGCD finds cryptographic factors (Knuth, Vol. 2 page 321) while Twister rotates small bitmaps through 90 degrees. Times are in seconds for one million operations.

Real A500s are fastest when using few colours or expanded with real (not trapdoor) fast memory. The A500 Fast timings reflect such a system. By default, extra colours or pixels reduce speed to 75 per cent in HAM6, EHB or MagicWB modes, and leave just half that in the worst case, 16 colour HiRes: A500 Slow.

Linux

Bernd Schmidt wrote the original version of UAE on PC Linux, still the leading version. It's command driven, controlled by typically obscure parameters: a string of up to ten characters after -O (letter) picks a graphics mode, -0 (zero) selects a disk file name for the emulated DF0:, -s and -S for slow memory and sound, and so on. Not all combinations yield sensible results, so it takes trial and error to find a set that suits your hardware.

The UAE sources are portable but hardly optimal. Key parts have been rewritten in Intel assembly code, boosting x86 hardware: 486s, Pentiums and compatible chips. Now Linux runs on Phase Five PPCs, we can look forward to Power Amiga versions.

MSDOS

Any Intel system that can run UAE at usable speed will also run Linux, if you want a proper CLI, and is probably sold bundled with Windows. But until recently the MSDOS port of UAE was the easiest to get started. Most PC users have access to MSDOS 5 or later and know how to type commands there.

The best that can be said about MSDOS is that unlike Windows, it doesn't drain performance just by being there - but the many configuration possibilities, and great risk of clashes, mean you're lucky if emulation works first time. The latest version of MSDOS embedded in Windows 95 is not fully compatible, either.

Smart Fellow

The best argument for sticking with MSDOS is Fellow, a DOS-specific Amiga emulator heavily dependent on Intel assembly language, written in Norway by Petter Schau. Fellow's multi-screen configuration menus are a vast improvement on UAE's command line.

For reasonable performance you need at least a 100 Mhz Intel processor, PCI graphics with VESA BIOS Extensions 2, and a Soundblaster. Fellow requires 11 Mb RAM, and prefers 28 Mb. The current version 0.31 only emulates a 68000 processor, but 68030 emulation is in development.

Once you've got it started, the improved control makes it easier to get specific games and demos working with Fellow, but it's relatively fussy about the host PC configuration. A NexGen 586 fell over, reporting an illegal instruction. In a Windows95 DOS box on an Intel PC, Fellow just presented a blank screen and sulked, apparently because of sound-card incompatibilities.

Stereo sound is an option, and the 'Sync with VGA' option attempts to synchronise Amiga display updates with the PC screen. This may eliminate flicker, but messes up sound and emulation speed.

Windows

Versions of UAE optimised for 32 bit Windows are favoured by Amiga Forever, a CD release bolstered with Workbenches and Kickstarts from 1.0 to 3.0, licensed to Cloanto by Gateway 2000, Personal Paint 7.1 and AExplorer, which allows Window users to browse files on a serially-linked Amiga.

Amiga Forever is a commercial product for Amiga nostalgics loath to copy or steal Kickstart and Workbench. It has a neat browser-based front end, much background information about the Amiga, and some sampled Amiga speech. You still need command-line parameters to fine-tune the emulation.

A fast Pentium delivers two or three times the CPU speed of an A500 and runs more than half the available software for Amigas from vintage A1000s to accelerated A2000s with WB3 and a video card. Sound and graphics imperfections show up now and again, but many old games, demos and serious programs run perfectly - at times, you can forget you're using a PC. Even when programs won't run, UAE normally falls over in an authentic Amiga-like manner, with Windows grinding along unperturbed in the background.

Cloanto's initial CD release was stylish but flawed. The automatic installers for UAE and DirectX failed with cryptic messages, the DOS UAE drawer was empty apart from a key file for the encrypted ROMs. Four out of five of the Windows 95 and Windows NT systems I tried initially rejected the CD, because it contains long file names which Microsoft only recently deigned to support. The standard MSCDEX driver prevents access to such files, and only later versions of Win95, outlawed by US courts, are smart enough to comment out the redundant line in CONFIG.SYS.

Later versions will be tidied, gaining a startup floppy, TCP/IP networking and audio interviews with visionary Amiga designer Jay Miner. Help and updates are already available to registered users, via Cloanto's web site.

Amiga Forever demands a Pentium with 16 Mb RAM, Windows 95, 98 or NT, and HighColour display. It's most impressive on a fast system - especially in Picasso96 modes which turns the PC graphics card into a full Amiga RTG system, with megapixel displays in true colour.

Apple Mac

We tested the 68K version of UAE under Fusion 2, and more up-to-date PPC versions on Power Macs, all with Mac OS 7.5. The Mac port is relatively slow, but stable and friendly, with menus to change disks and tweak the display update rate from 1:4 to 1:16. It works on 8, 15 or 24 bit colour desktops. Options bypass Quickdraw and Amiga GfxLib, giving more speed at the expense of compatibility.

The Command key emulates the missing right mouse button, while PgUp and PgDn stand in for the Amiga keys. You can share files between Mac and Amiga in a folder, seen as HD0: by UAE. Mac UAE sound is a CPU hog and fussy about hardware; Fusion remained mute, though sound was enabled and other Mac sounds played OK. An old PowerMac 6100 ran Amiga Qdos at about the speed of a real QL, and with a bit of tweaking is could even read DD disks.

Amiga

UAE was first ported to Amiga by Olaf Barthel. Development continues thanks to Samuel Devulder, who's A500 with GVP030 runs it at perhaps a tenth of full speed, and takes the best part of a night to recompile each version.

The Amiga version goes a very long way round, decoding and interpreting CISC instructions it could run directly, but that brings great benefits in compatibility. UAE can trap errors that would crash a real Amiga, simulate RAM or ROM memory anywhere, and retarget graphics to any display, so you can view sprites, scrolling, dual playfields, copper fades and other custom candy even on a Zorro graphics card - albeit rather slowly if you try all these tricks at once.

On a 50 MHz 68060, Amiga UAE averages 50 to 75 per cent of the CPU speed of a real A500 with fast memory. That's usable, and twice as fast as the Mac version under Fusion. Graphic updates are relatively slow, at least on AGA, and sound - whether directed to Paula or AHI - lags far behind real time.

Amiga UAE is command-driven like the Linux original and requires IXEMUL, virtual Unix emulation which doesn't help speed or ease of use. It can read real Amiga floppy disks or partitions, albeit selected with Unix syntax. It's not very stable on my 68060, but apparently works fine for others.

Amiga UAE has an AREXX port which provides a GUI while it's running, via MUIREXX. This lets you toggle features and insert and remove virtual disks. Amiga UAE has a screen mode requester, and works best in HAM6 mode - HAM8 gives a blank green screen. Lines flash across the screen during HAM updates - these are negligible on Workbench, but intrusive on some demos.

Lower colour modes are usable - even ECS and EHB modes - but give only approximate colours. Aminet's PatchWPA8 speeds up output, which can be saved to a file and played later at full speed, including sprite and copper effects that would otherwise be impossible to grab. Amiga UAE even opens on the Workbench if you select no mode, but you need a high colour graphic card Workbench for full colour.

CPU EMULATION SPEED
SystemCPUMHz UAEBinaryGCDTwister
Fusion 268060 500.6.01990325
A500 slow680007.2none1290295
PerformaPPC603e1000.6.91408227
Linux PCCyrix 486660.6.9tofollow!
A400068060500.6.9920172
A500 fast680007.2none475125
Mac 8600PPC604e2000.6.944793
Win95 PCPentiumMMX2000.6.921441
A40006806050none10.12.1

Assessment

Bernd Schmidt is not a traitor but a real Amiga enthusiast, and he's demonstrated a detailed and sensitive understanding of the Amiga, in making UAE work. There's a risk that ignorant users of other computers will assume that since UAE is available, they can do anything a real Amiga can. This is nonsense. UAE runs some old games, demos and system-friendly applications at rather low speed, which may be all some early abandoners got out of their Amigas but is a fraction of the potential enjoyed by Amiga users this decade.

UAE is not the Amiga's death knell, but a tribute to the original model of the mid 1980s. UAE emulates a vintage A500 with CPU expansion, and even then it has gaps. Full A1200 emulation is barely conceivable; the best way to run Amiga software will remain a real Amiga for the foreseeable future.
" If you have a game or demo that has a lot of blitter activity, many copper or sprite effects, dual playfields and scrolling, no one can help you //Bernd Schmidt"

But UAE is potentially valuable to modern Amigans. It's a way to run old programs on modern systems with very different CPU and graphics, without resetting into compatibility mode. It can demonstrate programs developed on Amigas, on other platforms. As the most complex and demanding emulator around, it acknowledges and highlights the unique Amiga design. And - in the best Amiga tradition - its a seriously clever hack!


UAE Web Nodes
Amiga Forever:http://www.cloanto.com/amiga/forever
Official UAE Web page:http://www.schokola.de/~stepan/uae
Another UAE page:http://www.son.wisc.edu/~paul/uae
UAE discussion:http://www.netrunner.com.br/dosuae/uaeboard
UAE links:http://www.geocities.com/SiliconValley/Bay/3211/links
Fellow Home page:http://www.ifi.uio.no/~pettersc/fellow/fellow

CD resources
Amiga Emulator CD (PD in ADF format) Epic Marketing, 01793 414188, 14.99
Amiga Forever - Cloanto (dist. Epic, HiSoft, Power, Weird Science etc) 29.99
Amiga Classics (40 full games, KS1.3) Epic Marketing, 01793 414188, 14.99
AF CD 24 - PC, Mac & Amiga UAEs + sources, Fellow, TrackWiz, ADFs, more!

The UAE posse - UAE-compatible systems and developers
Acorn RISC- Peter Teichmann <sol@space.wh1.tu-dresden.de>
Amiga, pOS- Samuel Devulder <devulder@info.unicaen.fr>
BeBox- Christian Bauer <bauec002@goofy.zdv.uni-mainz.de>
Linux- Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
Macintosh- Ernesto Corvi <someone@imagina.com>
MSDOS- Gustavo Goedert <ggoedert@netrunner.com.br>
NextStep- Ian Stephenson <ians@cam-ani.co.uk>
OS2, XFree86- Krister Bergman <bellman@kuai.se>
PowerMac- Arnaud Blanchard <jblancha@pratique.fr>
Windows 32- Mathias Ortmann <ortmann@informatik.tu-muenchen.de>

Web page design Copyright © Tomas Amsrud
Articles Copyright © 1996-2002 Simon Goodwin