For some time I had thought all of the source code of Amberstar, Ambermoon, and Albion were lost or inaccessible.
Back then we simply didn't do rigorous backups after finishing games. The shipping data and source code of Ambermoon were on my Amiga 2000, the shipping data and source code of Albion were on my 486 PC, I put both of those on a shelf at Blue Byte, they were moved to the office basement, I quit the company, now they are effectively lost, much to the regret of myself and fans who were interested in working on fan projects and remakes.
I did have some data here and there from the 90s. For instance, I had what looked like the source code of Amberstar, but sadly it was saved in GFA Assembler's proprietary tokenized
.IS file format. I was able to find tools that convert GFA Basic's similar format, but nothing for assembly. I started rolling my own but at some point I would have needed a functioning ST emulator with GFA Assembler to generate the token table, and that's when I abandoned the process for a while.
After recording a podcast episode on Ambermoon, I decided to dig into my 90s backups again. And lo and behold: I found things.
For one thing, inside a random directory called
MORE\OLD\AMBRMOON I found... the source code of Ambermoon. Well, most of the source code: it seems to be missing my base libraries for loading files, drawing graphics, and managing memory. But it looks like the majority of the gameplay logic is there. I also found a ton of documents, both the in-game texts in German and English, as well as development documents.
You can find all of those here on GitHub.
And then I figured I might as well ask some people in the Thalion community if they could help me convert the Amberstar source code. Alex Holland, maintainer of the Thalion Webshrine, had a functioning ST emulator set up and converted the source files. Nico Bendlin converted them from the ST's character set to Unicode.
And that means you can now also find the Amberstar source code here on GitHub.
It has been extremely gratifying for me to look at how I programmed 30 years my first and second game, 30 years ago. Some of what I did I would still do the same way today, even if I wouldn't use 68000 anymore.
You don't regularly ship games in the games industry, and it can be hard to look back at old source code you wrote, let alone share them with the world.
It has even been useful for my current work to go back to these 30 year old games. I am working on some narrative systems and it helped me to see how I handled those way back when.
I always knew that I had written entire games (with memory managers and UI systems and input handling and text layout and several different map views and game logic and and and), but seeing it all laid out really brought that home again.