Contents | < Browse | Browse >

===========================================================================
                 A Guide To The Ubiquitous Amiga Emulator
  Paul Liss                                   paul@armstrong.son.wisc.edu
===========================================================================

I have been following the development of UAE (initially, it stood for the
Useless Amiga Emulator, then it became the Un*x Amiga Emulator, and now it
seems to go by the Ubiquitous Amiga Emulator) since the early days when it
was black and white and couldn't boot from a floppy image.  It has come a
long way since then.

This review is primarily directed at those Amiga users who also have a PC,
or, those Amiga users who are thinking about jumping ship to the PC, but
want to know if they'll be able to take their software with them.  This
review is not a tutorial on how to use UAE, however I will include links to
that information on the WWW.  This review focuses on using UAE to play
games and look at demos.  I will write another article on more advanced
issues at a later date.
 
Introduction to UAE:
 
UAE is an emulator that allows you to run Amiga software on whatever
platform you can find a port for.  Versions exist for Win32/Direct X
(Windows 95 and Windows NT 4.0), DOS, OS/2, PowerMAC, BeBox, Linux, UNIX,
Next, Acorn RISC, and the Amiga (I'll explain this one in greater detail
later).
 
So, exactly, what does it emulate?
 
(from the readme in UAE version 0.6.9)
 
This version of UAE emulates:
 
- An Amiga 500 Computer, with 68000 or 68020 CPU (68020 includes 68881 FPU)
- OCS Graphics Chipset, plus big blits from the ECS Chipset
- Up to 2MB Chip RAM
- Up to 8MB Fast RAM
- Up to 1MB Slow RAM, for extended compatibility with problem software
- 4 x 3.5" floppy disk drives (DF0:, DF1:, DF2: and DF3:)
- Hard-disk emulation
- Joystick support (with option of mapping joystick to numeric keypad)
- Mouse support
- Ability to run in various screen modes (for better display quality or
  better speed)
- Full sound support, consisting of 4 x 8bit channels (mixed into one, so
  output is mono for now).
- Beta parallel port support
- some other things which don't work well enough to mention them here...
 
Not emulated:
- Sprite to playfield collisions (sprite to sprite collisions work)
- An MMU (part of 68030/040 CPUs except those that Commodore used).  This
  means you can't use virtual memory systems or real operating systems like
  Linux or BSD.
- The AGA chipset (A4000/A1200).  This chipset has enhanced capabilites for
  up to 256 colors in all resolutions.
- Serial port emulation exists but doesn't work too well.
 
I maintain a web page with links to all of the UAE versions for various
platforms that I know of at:
 
http://www.son.wisc.edu/~paul/uae.html
 
UAE was written by Bernd Schmidt, and was developed on an Intel based Linux
machine.  It was designed with portability in mind (i.e.  written in C),
but some speed critical parts are written in assembly (Intel versions
only).  Bernd has made the source code available as well.  The UAE home
page (hosted by Stefan Reinauer) has the source, plus binary versions for
Intel Linux at:
 
http://www.schokola.de/~stepan/uae/
 
Which version of UAE should you get?
 
If you have a PC, and you have Windows 95 or NT 4.0, get the Win 32 version
(ported by Mathias Ortmann).  It has some advantages over the DOS and Linux
versions: it supports all of the sound and video cards supported by Windows
95 or NT 4.0, it takes advantage of Direct X (which makes it faster than
the DOS version under certain conditions), and it supports some features
that neither the DOS or Linux version do.  (Stereo support, for one).
 
http://www.informatik.tu-muenchen.de/~ortmann/uae/
http://www.geocities.com/ResearchTriangle/1570/ (USA mirror)
 
If you have a Soundblaster 16, VESA 2.0 support for your video card, and
would prefer not to use Windows, you can try the DOS version (ported by
Gustavo Geodert).
 
http://www.netrunner.com.br/dosuae/index.html
 
There is a version of UAE for the Amiga, available from my UAE page:
 
http://www.son.wisc.edu/~paul/uae.html
 
I'll discuss UAE on the Amiga later on in this article.
 
When you unpack the UAE archive, make sure to look at the documentation
found in the docs directory of the archive.  Further, there may be
additional documentation found in the root directory of the archive.  It
might seem like a lot to read, but read everything specific to your
configuration that you can find (especially the faq in docs/faq, and the
readme in docs/readme).  UAE is not a user-friendly program.  It is very
difficult for a novice computer user to set it up.  Fortunately, there are
some pages on the WWW where help can be found.
 
I recommend that every UAE user check out the UAE discussion board at:
 
http://www.netrunner.com.br/dosuae/uaeboard/
 
There is a very good online faq at:
 
http://www.netrunner.com.br/dosuae/uaeboard/uaefaq2.html
 
There is a very good, step by step guide to setting up hard drive support on UAE at:
 
http://app.nexus-online.com/lazarus/harddrive.html
 
How fast is it?
 
That really depends.  It depends on how fast your machine is, and it
depends on what you're trying to run.  If you have less than 16 MB of RAM
on the DOS and Linux versions, or 32MB of RAM for the Win32 version, the
emulator will be constantly using virtual memory, and therefore slow.  Do
you want to run something that uses the copper, blitter, all 4 sound
channels, and has tons of sprites on screen plus horizontal or vertical
scrolling (think Turrican)?  You need the fastest machine you can find. 
(Pentium II at 300 Mhz., perhaps, or maybe it's time to put that SGI in
your closet to good use).  Do you want to play games without a great deal
of action on the screen?  (Think Bard's Tale or Monkey Island) You can do
that on a Pentium 133.  Do you want to mess around with the Workbench?  You
need even less CPU horsepower.  Games seem to vary so much that you really
need to try it yourself and see how it goes.  The typical case you'll
discover is that the graphics will look fine, but the sound will be
distorted or out of sync.  This means that your computer isn't fast enough
to let UAE emulate a PAL Amiga 500 at 50 fps for the particular program you
are trying to run.
 
You can tune things to some degree to get more speed.  UAE can skip the
display of some frames, or allocate more of the host's CPU time to hardware
emulation as opposed to 68000/020 emulation.  If you use the Linux version,
you can compile a version of UAE without sound support, which will give you
about 10% extra performance.  You can even turn off screen updates entirely
if all you want to do is hear UAE play mods or other music.
 
Compatibility:
 
UAE does a very, very good job of maintaining compatibility with a PAL
Amiga 500.  Read the docs/compatibility file for starters.  This file is a
woefully incomplete list of programs that are known to work with UAE.  If
you downloaded the Win32/Direct X version, there is a file called
compatibility.txt which contains some more compatibility information.  A
much more complete list can be found at the UnOfficial UAE Compatibility
Table at:
 
http://www.alpes-net.fr/~flynn/amiga.htm
 
UAE has, in general, become more and more compatible with a real Amiga 500
over time.  However, there are still problems with sprites (specifically,
sprite to playfield collisions).  For example, the Pinball Fantasies demo
from Aminet http://wuarchive.wustl.edu/~aminet/dirs/game_demo.html
eventually crashes UAE after you get to watch the pinball sprite go through
the bottom of the screen, then appear at the top, then get pulled down etc.
However, that same game demo works 100% on version 0.6.3 of UAE.
 
Careful readers will have noticed by now that, just like on a real Amiga,
you'll need Kickstart 1.3 to play some games, and later Kickstart versions
for others. 
 
Getting Disk and ROM Images:
 
First off, you need a working Amiga to transfer ROM and disk images.  It
may be possible someday to use the Catweasel controller to read Amiga disks
on a PC, but for now, UAE does not directly support such hardware.  You
will need a way to transfer data between a PC and an Amiga.  Several
suggestions are given in the docs.
 
UAE includes two programs for that purpose; transdisk and transrom.  (Found
in the amiga directory of the UAE distribution).  The operation of both
programs is well documented in docs/readme.  One pitfall is that transdisk
cannot copy copy-protected disks.  This presents a problem for those of us
who aren't pirates.  Like the C64 emulation scene, it is best to have
"cracked" copies of games.  Fortunately, Tony Bybell has put his Lockpick
program (which can remove the copy protection of many popular games)
available for download on the web at:
 
http://www.cse.psu.edu/~bybell/lockpick.html
 
Another place to visit for help is The Amiga Ultimate Patch & HD Installers
Page:
 
http://www.ensica.fr/~jffabre/patches.html
 
How to get those old Amiga games working is a great web page with even more
information on which programs need various Kickstart versions, 1/2 or 1 MB
of chip ram, etc.:
 
http://web.ukonline.co.uk/Members/gc.yuen/gamesfixes/
 
And, finally, don't forget Aminet.  Look in the game/patch directory for
some more useful programs.
 
Managing UAE:
 
Some clever programmers have come up with front-ends for UAE that take much
of the drudgery out of running several different games.  For example,
Bard's Tale requires Kickstart 1.3, and some older games require kickstart
1.1 or 1.2.  I used to have dozens of batch files that took care of
starting UAE with different settings, but now I use a front-end program to
take care of that for me.  I seriously recommend looking at one of the
front-ends available for download from these pages:
 
http://www.eastwind.com.au/homepages/timgunn/uae/
http://www.geocities.com/SiliconValley/Bay/3211/
 
What was that about an Amiga version of UAE?
 
Samuel Devulder has ported UAE to the Amiga.  He has made a lot of tweaks
to slim down UAE's memory requirements and get as much speed as possible. 
Despite that, it's very slow.  Sam recommends a machine 20 times faster
than an A4000 (which doesn't yet exist).  With a 060, a decent Zorro III
graphics card with CyberGFX support, no sound, and a frame rate of 1/5,
games like Bard's Tale are playable under UAE.  As Sam points, out, Amigas
using the PowerPC chip will eventually be fast enough to run UAE at usable
speeds.
 
Some unique features about Sam's Amiga port are the ability to make
animations from UAE (read readme.amiga in the UAE distribution), and the
ability to dump the sound to a file.  (so you could ultimately make an MP3
of the music from your favorite demos, with the use of some other programs
of course - I'm going to make one of the Obliterator music from the
RasterMagic demo).
 
Another neat thing is that it is possible to run UAE for Amiga under UAE. 
Remember that patience is a virtue, if you want to try this.
 
Final thoughts:
 
UAE is an incredible piece of software.  It does what was supposed to be
impossible: Emulate an Amiga in software.  It really works!  You can play
just about any ECS game you can make an appropriate image for.  Even games
like Shadow of the Beast, Turrican, and the like work under UAE. 
 
Unfortunately, on today's PCs, it isn't that fast.  In a CPU generation or
two, running an Amiga emulator won't be a problem, much like running a C64
emulator on a Pentium.
 
If you want to play action games and look at demos, make sure you have a
Pentium II / Pentium Pro class machine.  Alternatively, you might wish to
try out Fellow, a less-compatible but faster Amiga emulator for MSDOS only.
You can find Fellow at:
 
http://www.ifi.uio.no/~pettersc/fellow/fellow.html
 
If you want to play adventure/role playing games without with less screen
activity, you can run UAE on a speedy Pentium class machine.  In fact, I
finally solved the Amiga version of Bard's Tale II, after meaning to do so
for about 8 years, using UAE.
 
Make sure to invest the time in looking at the docs, and to get comfortable
with one of the front-end programs.
 
The Future of UAE:
 
Recently, it has been announced on the Amiga newsgroups that there will be
a Picasso 96 driver for UAE.  Once that's out, I'm going to do another
review of UAE, focusing on Workbench performance and applications
performance.  Further, I think some attention needs to be paid to using the
serial and parallel port emulation of UAE, and I'll give a review of the
dynamic recompilation options available in Linux and older versions of
DOSUAE.