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)
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.
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: [email protected] (Bernd Schmidt) Newsgroups: comp.emulators.misc 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 emulated yet. - 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 speed improvements. 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. Regards, Bernd Schmidt
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 MSDOS PC
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 CPU inst. : 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.
When you start up UAE 0.1, it’ll start in the debugger. You’ll be greeted with:
debugging... 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.