UAE 0.1 on Windows 10
Through some crazy search, I actually found the source to UAE 0.1, the fist public release. It’s very simple, and at the same time arguably one of the most important emulators for it’s time as it did show that you really could emulate in software a powerful machine like the Amiga. And with some minor work, I got it to compile on Windows, with GCC 5.1.0
As a comparison here is UAE 0.1 on Linux (Debian 8)
UAE on Linux
In case it looks like UAE is somehow corrupt on Windows, it is displaying the same thing, except on Linux the X11 it displays the same thing, which is simply runing the 512kb AmigaDOS ROM. I like version 2 or 3 since they have the diskette animation, but the static image will display from version 1.
For those of you who care, I archived the source here: uae-0.1.tar.gz, along with an archive over on sourceforge for every old version I could find.
UAE 0.1 is coded in C++, which only needed minor cleaning up. More so how ‘modern’ machines now use <iostream> instead of <iostream.h> and of course adding:
using namespace std
to get things like cout and friends.
From the ancient announcement:
From: firstname.lastname@example.org (Bernd Schmidt)
Subject: Amiga emulator available (not a hoax!)
Date: 30 Aug 1995 11:59:20 GMT
I have uploaded uae-0.1.tar.gz to sunsite.unc.edu:pub/Linux/Incoming. The
file should move to pub/Linux/system/Emulators in a few months time.
"UAE" stands for "The Unusable Amiga Emulator". It is a partial software
emulation of the Amiga hardware. It is far from usable, since some vital
features are missing, and it is way too slow. However, it should put an
end to arguments that it can't be done. There is quite a bit of room for
improvements, I expect a full (usable) emulation can be done in about five
years time. Don't complain, C64 emulators need a P90, too, to run at full
speed, and an Amiga is somewhat more complex.
Although this is not a hoax emulator, it can't do more than that: It can
currently just display the Kickstart logo. I have not been able to get the
disk support working yet. Maybe someone would like to help me, I am rather
busy with other projects. The sources are there...
UAE runs on Unix systems with the X Window System. I am developing it
using Linux, but I have also been able to get it to run on a HP Apollo and
a Sun Sparcstation. You need a C++ compiler, or you have to make small
modifications to turn it into a C program (nothing major). You also need
to transfer a Kickstart ROM image to your PC.
The following parts are emulated:
- MC68000 CPU: Almost done, some rare instructions (ABCD, ...) are not
- Blitter: If there's no bug, it ought to be complete.
- Copper: Not much to emulate here
- Timers: I think these are fully working, too.
Not done properly:
- Playfield (display) hardware: Only black & white graphics, no dual
playfield support, no HAM.
- Sprites: None.
- Sound: None.
- Mouse, Keyboard, Joystick: None.
- Timing: The CPU and blitter cycles are counted, but I have not bothered
yet to adjust the timing to match the characteristics of a real A500
- Floppy disk: Broken.
I think the hardest parts are done, except the disk support, debugging and
Just as a side note: Maybe it might be easier to turn this into an Atari ST
emulation first, and debug that. I think the ST has considerably less
hardware complexity. If some ST experts would like to work on that, please
feel free to contact me.
Otherwise, mail me if you have comments, bug reports or enhacements.
How is that for awesome?
Once it was released naturally there was the temptation to think it was nothing more than a hoax, as there had been another program amibm.zip that did just that display the ‘insert disk’ image and crash a PC. People were of course very skeptical that the emulator was even legit.
: Although this is not a hoax emulator, it can't do more than that: It can
: currently just display the Kickstart logo. I have not been able to get the
ha ha ha!! a few lines of code to display an image from a ROM file???
i think so! :)
....its the famous joke emulator thats appeared on Unix instead of a
And the denial was quite strong!
: If you had read, it comes with ALL SOURCE CODE. Go check for yourself.
so?? Its quite easy to knock up a load of source code that looks like it
does useful things....or emulation tasks such as emulate a few simple
: Next time, read the post.
oh, i did, i did....
At this point in 1995, Commodore was dead. A German outfit, Escom had bought them out, but did nothing with it. We were in the post Commodore International days, and it was painfully obvious that the IBM PC of all things was the machine that was going to rule the roost. As VESA added millions of colors, and fast 32bit slots, stereo sound hardware, MIDI synths, and for OS/2 users, yes a 32bit preemptive multitasking OS. Even Windows NT was somewhat usable, and the behemoth that was Windows 95 was just launched.
And honestly if the Commodore HPPA project Hombre had panned out, could Commodore really port exec to a different CPU? Would they just push out a custom Windows NT workstation much like SGi’s Visual Workstation (info)? I’m pretty sure that UAE would have been the silver bullet to their emulation gap of how to preserve 68000 Amiga software on the HPPA. However as a Windows NT machine, Commodore would be reduced to a ‘fancy av card’ that may have carried them on. I don’t think Commodore could have survived making Amiga’s into the late 1990’s and beyond.
Even 21 years later it was still incredible to fire up the first public version of UAE and get the ROM 2.0 animation of the diskette. I know from other changelog’s that the DMA was broken, and that is why it cannot read disks. I don’t know if it’s worth trying to hack in, maybe for another day.
If anyone cares to mess with it, I’ve put the source/binary on my site, and sourceforge as always deal with the passwords by reading the 404 page.
When you start up UAE 0.1, it’ll start in the debugger. You’ll be greeted with:
D0: 00000000 D1: 00000000 D2: 00000000 D3: 00000000
D4: 00000000 D5: 00000000 D6: 00000000 D7: 00000000
A0: 00000000 A1: 00000000 A2: 00000000 A3: 00000000
A4: 00000000 A5: 00000000 A6: 00000000 A7: 11144ef9
T=0 S=1 X=0 N=0 Z=0 V=0 C=0 IMASK=0
00f800d2: 4ff8 0400 41f9 00f8 0000 LEA.L $400,A7
next PC: 00f800d6
It’s a primitive, but effective debugger to step through a program. But we didn’t come here to do that, but rather load up the ROM, and if you have a version 2 or 3 ROM watch the animation. Simply type in f and hit enter, and it’ll “run forever”. On my Xeon it takes about 20 seconds until the Kickstart logo is displayed in black & white.
It’s still very cool to see this early emulator in action, and see where many modern systems first got their 68000 core from.