About

What is it?

Emumiga is a Motorola MC68000 emulator and a system interface proxy for AROS. Our goal is to run AmigaOS 3.x applications directly in AROS without emulating the Amiga chipset and without any 68000 Kickstart ROM. These two things are what separates it from the noble effort of integrating UAE into AROS.

Why does it exist?

We wanted something different than UAE on AROS, for a couple of reasons. First, licensing. UAE currently needs a commercial license for a ROM copyrighted by Amiga Inc, available for instance from Amiga Forever. We think this is unfortunate if all you want to do is run some favourite Amiga application on your AROS system. Therefore, Emumiga will be open source. This is one reason for Emumiga to exist. Another reason is, we want Amiga applications to be run as native applications in AROS, or first class citizens, if you like. An Amiga application should be able to talk to the AREXX port of an AROS application, and the other way around. When the Amiga application calls a library, it will automatically be a native AROS library, running some Amiga applications at close to AROS speeds, for instance when using datatypes.

How it works

Emumiga consists of a Motorola 68000 processor emulator that runs in emulated virtual memory. The virtual memory space contains mappings of real AROS system objects accessible from the virtual CPU. The mappings are set up to create AmigaOS binary-compatible system structures. Emumiga intercepts system calls made in the Amiga application and forward them to the corresponding AROS system calls. Emumiga constantly keeps track of all mappings, sets up new mappings as new objects are discovered and removes mappings for dead objects. The emulated CPU will not emulate any exact version of the MC68000 line of processors, but will behave in a way that runs the largest number of programs possible.

Goals we are not pursuing

Emumiga might never emulate the copper, the blitter and so on, in a bitbanging way. Do not expect an Amiga demo to run on the Emumiga anytime soon. Think of it this way: if an application ran on the Draco Amiga clone which had no blitter or copper, then we want it to run in Emumiga. There is no architectural limitation stopping Emumiga from emulating a complete Amiga chipset, but this is not our primary or even secondary goal. If you want to run demos or games on something else than an old Amiga, there is UAE or Minimig or hopefully soon, Natami to do that on. We are happy that there is an open source replacement for the Amiga 500 and 1200 ROM.  After many years, Amiga compatibles can finally be used without a Kickstart ROM.

Implications

AROS was created to be AmigaOS compatible. That goal is still visible but we want focus back on AmigaOS compatibility. AROS of today is pretty complete as an operating system, it already is the basis of an AROS distribution, the Icaros Desktop. That AROS has come as far as it has is nothing short of amazing. In roughly the same time period, the Wine project developed an implementation of the Windows API. However, they had from day one a luxury we did not: the ability to run legacy binaries to get further and further in their reverse engineering. Imagine, if we could improve AROS compatibility with AmigaOS by testing native AmigaOS m68k applications in all versions of AROS regardless of CPU or endianness. Frankly, we want to guide the development of AROS. If you want to extend AROS with capabilities AmigaOS never had, go right ahead, but not at the expense of AmigaOS compatibility. If AROS is no longer an AmigaOS clone, what makes it special? Why not use Syllable or any of the other countless operating systems out there? We want our Amigas back, both in AROS form on PC hardware, and in the new generation of Amiga hardware clones. The success of the hardware clones depends on an open source implementation of the Kickstart and not some closed alternative running only on proprietary hardware.

Credits

Too many to mention. We stand on the shoulders of giants. Without the thousands of hours spent by others, we would not be here with an attitude. Thanks, all Amiga fans, open source people, AROS developers and supporters. Oh, and Bernd Roesch is an unsung hero of AROS development with his AROS for Amiga. This has kept big chunks of AROS code tested on real 68000 hardware for all the years AROS was mostly an x86 only affair. Thank you.

Authors

Emumiga is written by Moggen, with great help and ideas from Jakob.