UAE (emulator)

UAE is a computer emulator which emulates the hardware of Commodore International's Amiga range of computers. Released under the GNU General Public License, UAE is free software.

UAE
E-UAE 0.8.27 configuration and control panel
Developer(s)
  • Bernd Schmidt (UAE)
  • Toni Wilen (WinUAE, originally Mathias Ortmann)
  • Richard Drummond (E-UAE)
  • Mustafa 'GnoStiC' TUFAN (PUAE)
  • Frode Solheim (FS-UAE)
  • Rupert Hausberger (SAE)
Initial release1995 (1995)
Stable release
4.3.0 (WinUAE) / 22 December 2019 (2019-12-22)
Preview release
4.3.0 Beta 10 (WinUAE) / 17 December 2019 (2019-12-17)
Written inC++ and ASM
Operating systemWindows, macOS, Linux, Android, FreeBSD, OpenBSD
TypeEmulator
LicenseGNU General Public License
Websiteamiga.technology

History

UAE was released in 1995 and was originally called the Unusable Amiga Emulator, due to its inability to boot.[1] In its early stages, it was known as Unix Amiga Emulator and later with other names as well. Since none of the popular expansions fit any more, the abbreviation no longer stands for anything, and the software is simply known as UAE this occasionally gets backronymed as Universal Amiga Emulator, Ultimate Amiga Emulator or Ubiquitous Amiga Emulator.

Features

UAE is almost a full-featured Amiga emulator. It emulates most of its functions:

  • Original Chip Set (OCS), Enhanced Chip Set (ECS) and Advanced Graphics Architecture (AGA)[2]
  • I/O devices: (floppy disk drives, joystick, mouse and serial ports)
  • Processor: Motorola 68000/010/020/040 CPU, optionally a 68881 FPU,[2] and as of WinUAE 3.0.0 beta 15, an enhanced PowerPC JIT core using the QEMU CPU libraries.[3]
  • Memory: 2 MB Chip RAM and 8 MB Fast RAM, or 8 MB Chip RAM without Fast RAM. 64 MB Zorro III Fast RAM, independent of Chip RAM setting (68020+ only). 1 MB Slow RAM, for compatibility.[2]
  • Picasso 96 graphics with 8 MB of memory[2]
  • Serial port, and Simple parallel port is only sufficient for printing.[2]
  • Networking via bsdsocket.library emulation[4][5]

For software, UAE may use disk images made from original Amiga floppy disks. These images have the file extension of "ADF" (Amiga Disk File). Actual Amiga disks cannot be used, because of limitations in the floppy controllers used in other computers.[6] Images of Amiga formatted hard drives can also be made. UAE also supports mapping host operating system's directories to Amiga hard drives.

UAE does not include the original Amiga operating system ROM and files, which are required for running an Amiga system. These are included under license in packages like Amiga Forever. Original Kickstart 3.1 ROM images are also included with AmigaOS4 for PowerPC since version 4.1 Update 4. UAE also supports alternative system ROMs, such as those derived from the AROS project, however these do not provide the same degree of software compatibility as the original ROMs.

Portability

UAE has been ported to many host operating systems, including Linux, macOS, FreeBSD, DOS, Microsoft Windows, RISC OS, BeOS, Palm OS, Android, the Xbox console, the PSP, PSVita and GP2X handhelds, iOS, the Wii and Dreamcast consoles, and even to AmigaOS, MorphOS and AROS.

Emulation speed

There have been many threads in the past on Usenet and other public forums where people argued about the possibility of writing an Amiga emulator. Some considered UAE to be attempting the impossible; to be demanding that a system read, process and output 100 MB/s of data when the fastest PC was a 66 MHz 486, while keeping various emulated chips (the Amiga chipset) all in sync and appearing as they were supposed to appear to software.

UAE was almost entirely unusable in its first releases, but slowly and step by step, it fleshed out its support of the Amiga chipset and by the end of 1997 was able to emulate an Amiga 500 at a quality and speed that were sufficient for productivity use and for many games.

Since then, UAE has been usable, thanks partly to the effort taken to develop it and partly to the big improvements in technology that brought computers many times faster than those UAE was initially running on. Many Amiga games and applications can run smoothly on a Pentium II-era system. The realization that a useful Amiga emulator could be written contributed to an increase in enthusiasm about emulation, which started or sped-up efforts to write emulators for other and often less popular computer and electronic game architectures.

A major improvement was made in 2000 by Bernd Meyer with the use of Just-in-time compilation,[1] which significantly improved the emulation speed, to the extent that average PCs could now emulate some Amiga software faster than any real Amiga could run it. UAE can use as much of the host's power in native mode as possible, or balance it with other requirements of the host OS, or to accurately reflect the original speed, depending on a user's choice. UAE also provides an RTG-compatible "video card" for the Amiga side of the emulation which is tailored for display on the host hardware, so as not to be limited to the emulation of the original Amiga video hardware.

Project development

There are five main forks of the original program:

  • WinUAE, designed to run on Windows
  • PUAE, designed to run on Unix platforms (continuation of the abandoned E-UAE and also a port of WinUAE)
  • FS-UAE, designed to run on Windows, macOS and Linux (a port of WinUAE with a focus on emulating games, featuring a new on-screen GUI and cross-platform online play)
  • UAE4all, a stripped version, designed to run a low end Amiga emulation on mobile devices.
  • Scripted Amiga Emulator (SAE), designed to run in a modern browser using JavaScript and HTML5. It is also based on WinUAE and was released on 1. September 2012 by Rupert Hausberger.[7][8] SAE needs a very fast computer to run on.[9]

The most active fork is WinUAE; current versions of this still contain bugs and compatibility issues.

Specific versions: UAE v0.8.29 2008-11-30,[10] FS-UAE v3.0.2 2019-11-05,[11] E-UAE v0.8.29 2007-03-28[12]

gollark: Sure, I guess.
gollark: Also, you can get a function's arity in Python with`function.__code__.co_argcount`, though that is probably non-idiomatic.
gollark: No clue.
gollark: e.g.```haskellfunction a b = a + b-- expands tofunction = \a -> \b -> a + b````function 1` returns a function with 1 "captured" in a closure or whatever, which will then take the next argument and finally evaluate itself.
gollark: Multiparameter functions actually just return a function which takes another value when fed an argument.

See also

  • Amiga Forever, Amiga emulator
  • Basilisk II, Apple Macintosh emulator which uses UAE to emulate the 68k processor
  • Hatari, Atari ST/STe/TT/Falcon computer series emulator which uses UAE for the core m68k emulation
  • Fellow, another Amiga emulator which was released not too long after the first usable versions of UAE, and generated competition beneficial to both projects.
  • POSE, Palm OS emulator that is based on Copilot, which in turn was based on UAE's m68k emulation
  • TiEmu, Texas Instruments calculator emulator, which uses UAE for the core m68k emulation

References

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.