The Soul of The Amiga

I’ve been fascinated by computers ever since I was a little kid, as with many of my generation, the first to have the opportunity to own their own computers that we could write software for. There was a lot of brand loyalty, mostly because different brands weren’t compatible with each others’ software (until IBM PC compatibles took over, and with a few other exceptions such as Apple II clones and CP/M systems). As strange as it may seem now, different brands of computers often couldn’t even exchange data on floppy disks due to incompatible disk formats and encodings.

In 1984, my parents bought me the ill-fated Commodore Plus/4 computer as a Christmas present, which was really exciting, until I quickly realized that there wasn’t ever going to be much software written for it, compared to the infinitely more popular Commodore 64, which had been released the previous year. My folks were somewhat bamboozled because Commodore was promoting the Plus/4 as the “new thing”, because they hadn’t taken into account the importance of compatibility with the growing C-64 software library, and the relative lack of appeal of the Plus/4 to developers, especially for games (it lacked both hardware sprites and the famous C64 SID audio chip, although it did support more colors). I eventually saved up some money to buy a C-64, and then from there graduated to the Commodore Amiga.

I was a dedicated Amiga fanatic / zealot for about 4 or 5 years, until not long before Commodore’s bankruptcy, when my friend in high school who was the biggest Amiga nerd besides myself and I came to the realization over the course of a long phone call that the Amiga was essentially doomed, because VGA and CD-ROM games had become better than what the Amiga could do, particularly for 3D games and adventure games that wanted 256-color modes, and we were starting to get fed up with having to pay too much money for hardware upgrades that were rapidly becoming less and less impressive compared to the intensely competitive IBM PC market.

Neither of us were enthusiastic about having to use the inelegant MS-DOS and Windows, but we could see the writing on the wall, so we both ended up buying PC compatibles, and in my friend’s case, selling the expensive Amiga 3000 and 1960 monitor that he’d bought less than a year prior to us realizing it wasn’t the future.

But there’s something beautiful and timeless about the Amiga that has made it a darling of the retrocomputing and emulation scenes. It’s probably one of the most powerful computers that a single person can learn how to program down to the lowest level of the hardware registers and how the boot ROM works. Commodore even published a Hardware Reference Manual that explained how everything worked so that you could bypass the OS completely.

This ended up being a curse for Commodore, though, because what happened, especially in Europe, where the Amiga was far more popular than in the US, was that developers would write games to the base configuration of the cheapest Amiga model, loaded from floppy disk, typically with some sort of on-disk copy protection, if it was a commercial game, and if that game didn’t run on your Amiga 3000 because it had a 25 MHz 68030 instead of a 7 MHz 68000, or too much RAM, that was your own problem. Eventually, an entire hobbyist community sprang up to create patches for all of these ill-behaved games to make them compatible with newer models of Amiga, the most popular being WHDLoad, which is still getting new modules to support various old games and demos.

The Amiga’s famous “custom chips” helped to doom Commodore, although they probably would not have gone bankrupt if the executive management hadn’t made one boneheaded decision after another. They never understood what made the Amiga special, and Commodore’s final CEO, an investment banker named Mehdi Ali, was universally hated by employees and Commodore fans alike. Commodore died because of executive incompetence.

Having said that, the Amiga was backed into a corner in a way that would have been difficult to recover from, because of the software library being so dependent on accessing the raw hardware registers of the custom chips, and often not being tested on anything but the base model Amiga, or whatever machines that particular developer had access to. It’s surprising how many wildly-popular Amiga games were literally written by a single individual in their home, sometimes on an Amiga with only floppy drives, and almost always in assembly language, for maximum speed.

The reason I’ve become so excited about AROS recently, in the context of porting the m68k Amiga version to run on other m68k systems, starting with classic Macs and then hopefully to the Foenix A2560K-040V retro system, is because I believe the true soul of the Amiga wasn’t so much in the custom ASICs designed by Jay Miner as it was in the OS that the team developed to take advantage of those chips and provide a multitasking graphical environment nearly as friendly as a Mac, but more powerful since there was a command-line shell as well as a desktop with windows and icons. The best of both worlds!

I’m honestly a bit surprised that the x86 PC version of AROS is something that people liked enough to make it as usable as the Amiga version, despite not being binary compatible with programs. Being able to recompile old Amiga programs doesn’t seem like it would have all that much appeal, especially when you have to fix all the big-endian / little-endian byte ordering issues in your code if you didn’t think about byte ordering when you originally wrote it. But that goes to show how fun it is to write programs for AmigaOS, even when there are no “custom chips” to be found.

I’ll try to post updates here on my progress porting AROS to m68k Mac on a weekly basis, since I expect to make fairly rapid progress now that I know what I’m doing as far as making builds and ROMs that run on an Amiga emulator. I’m very curious to find out what percentage of Amiga games and other apps are binary compatible with AROS on an m68k system without custom chips. “Well-behaved” Amiga apps should either run without issues or fail at startup with an error dialog after trying and failing to allocate some missing low-level hardware resource.

The problem with the Amiga graphics pipeline is that you often did have to get down to the low-level registers and state machines to achieve acceptable performance if you also want to run on a 7-MHz 68000 (or perhaps the Amiga 1200’s 14-MHz 68EC020). I’m especially curious about a few games that had infamously bad performance on slower Amigas, like Sierra’s King’s Quest V, which was almost unplayable for me, even running from a hard drive. It’d be doubly ironic if the game was slow because it was basically the MS-DOS version of the game recompiled with a different C compiler (instead of being written specifically for the Amiga in assembly language, like the “best” games), but also not portable!



, ,




Leave a Reply

Your email address will not be published. Required fields are marked *