Emulating the Amiga on Non-Windows Platforms

As you might have noticed, I am rather nostalgic for the Commodore Amiga series of computers.  They inspired me at an impressionable time in my life, the same way that steam trains did for my father…  Or Pokémon appears to be doing for my sons.

The Amiga is a pretty unique collection of very tightly coupled hardware, with each component providing certain functionality but needing the other bits to make it work.  The trinity of Paula, Agnus and Denise provide IO, sound, graphics, manipulation and display, all with little or no CPU intervention thanks to the magic of DMA.  The highly interconnected nature, the multiple threads of execution, the sheer complexity of the hardware means emulating an Amiga to a high degree of accuracy is a difficult thing to do.  Don’t be fooled by me stating that multiple threads means that stuff can be easily processed in parallel: simply put, it can’t, as the whole environment needs such a high degree of synchronisation that any advantages in a parallel approach are rapidly negated.

A 68k Mac, or Atari ST, can be easily emulated thanks to the relative simplicity of the hardware.  Standard chips and little tailoring in such machines mean the emulation is simple to achieve and prove.  The Amiga’s custom chips lead to the power that made the machine attractive in the first place, but at the expense of simplicity.

The State of the Art for Amiga emulation has, and I assume whilst Toni Wilen is alive, will be represented by WinUAE.  This is a magnum opus that has consumed Toni for years and will continue to do so, and Toni himself is proud to be standing on the shoulders of giants.  The sheer completeness of emulation achieved is quite astonishing considering the complexity involved.  It works – dare I say it – perfectly.  Of course, Toni is still developing this and at the time of writing he is working on version 2.4.1 beta to address small inconsistencies and enhance usability.

All well and good, but what about Mac and Linux users?

Well, we’ve been running E-UAE, from Richard Drummond, for years.  It works, and works well enough but has nowhere near the feature set of WinUAE.

PUAE, from Mustafa Tufan (GnoStiC) has the ambition to be a portable version of WinUAE, based on modern WinUAE code.  Given the complexity of WinUAE, this is a hugely ambitious project, and Mustafa has achieved wonderful results.  I’m pleased to have helped in a very small way by providing precompiled OSX binaries.

Most recently, Frode Solheim has undertaken to develop a version of UAE based on a modern WinUAE with a focus on games, and suitability for media centre use with a suitable “10-foot interface” that will run on Windows, Linux and MacOS.  In a very short space of time Frode has achieved his goal, thanks in no small part to focus and relying on the work of others, and has released FS-UAE.  There’s few times that I’m genuinely speechless, however when I first ran FS-UAE I can safely say that I was.

FS-UAE now runs natively under MacOS, emulating both ECS and AGA Amigas, pretty much perfectly.  Using SwitchResX I was able to create a 50Hz screenmode for my Macbook Pro, and FS-UAE runs with perfect PAL VSYNC.

With Version 1.1, Frode is adding support for non-game features such as Picasso96: more on that later, as I intend to write a howto for P96 to make things simple.

So the options for non-windows UAE have expanded wonderfully in the last 18 months.  Both PUAE and FS-UAE are ambitious, and have achieved a huge amount.  Myself?  I’ll keep pestering Mustafa for a new push to the git hub for PUAE, but I am also enthusiastic for FS-UAE.

Variety.  It’s great!