History

For me it all started back in 1988 when King's Quest 4 was released. A friend of ours bought the SCI version of this game. At the time we had only recently upgraded from a Commodore VIC 20 to an IBM PC XT, so I thought that Scott Adams text adventures were the best thing since sliced bread. I had even had a go at writing some text adventures myself using BASIC on the VIC 20 and was quite proud of the effort. So when I first saw King's Quest 4, I was completely blown away! I could not have imagined such a game was possible. But such games had been around for nearly five years at that time, in fact the whole AGI "age" from 1984 to 1989 was nearly over and I was only just learning of the existence of 3D animated adventure games. Needless to say I was hooked.

Between the years of 1989 and 1998 I was at high school and then at university and any spare time that I wasn't actually playing these games I spent instead trying to figure out how they worked. I was working in complete isolation at that time because the Internet wasn't around back then. At first the only programming language I knew was BASIC. I'd learnt this on my Commodore VIC 20, so I made use of that knowledge on my PC to write GW BASIC programs to pull apart AGI and SCI games. It's hard to believe but the very first version of SHOWLOG was written in BASIC!! It wasn't until much later on that I converted it to C.

Before the Internet took off, I used to log on to Bulletin Board Systems (BBS). I would quite often answer peoples questions in the forums about how to get past certain points in various Sierra adventure games. After a while I started releasing a series of text documents called "SCI Examined" on to some of my local Bulletin Board Systems. These documents attempted to record my efforts at decoding the SCI games. It was very much like a blog, except that instead of being HTML on a web page, it was plain text in a file folder on a BBS. I think I wrote about six of these documents in total. I worked out how to extract the SCI resources and even worked out the compression technique being used (which was later very handy for AGIv3 games since it was quite similar). Dr Dobbs was partly to thank for that. I started out with an LZW algorithm from one of their magazine issues and just kept tweaking things until something that made sense came out the other end.

Somewhere along the way I switched to the AGI games. I used BASIC to work out almost all of the AGI data formats and wrote a number of GW BASIC tools to do various things. In 1994 I started university and learnt Pascal. Armed with a real programming language, and formal instruction in computer programming, I wrote my next tool (to display VIEW resources) in Pascal. I also wrote the XV3 utility in Pascal. The following year in 1995 I learnt C and that's when all the really useful tools started being worked on.

It is hard to remember now but I think it may have been 1996 when I first made contact with Peter Kelly and Joakim Moller. At the time there was a tool available on the Internet called SCI Decoder. There were a number of us who contacted the author Carl Muckenhoupt saying that we had a similar interest and had been working on similar tools. If memory serves me correctly (Peter, Carl or Joakim might be able to correct me), Carl put us all in contact with each other. This is how Peter Kelly, Joakim Moller and myself started work on putting something solid together for AGI.

When I first made contact with Peter, he had worked out the VIEW format. I think Joakim may also have worked out the VIEW format. I had also worked out the VIEW format but in addition to this I'd worked out the LOGIC, PICTURE and SOUND formats. I wrote the C version of SHOWLOG at about that time and sent everything I knew about LOGICs over to Peter so he could add a compiler to his studio. In the meantime I worked on PICEDIT. I didn't know much about Windows programming (still don't), so I wrote the tool using Turbo C. It was a DOS tool that used a lot of embedded machine code to do things like communicate with the mouse and draw the graphics. And we all know the end result. Sometime in 1997 AGI Studio and PICEDIT were released. AGI Studio launched PICEDIT for the purpose of picture editing but everything else, such as VIEW, LOGIC, OBJECT, and WORDS (with the exception of SOUNDs) was handled within AGI Studio.

For a long time the only tool available to create SOUND resources was my ROL2SND conversion tool. My first PC had an Adlib sound card, which at the time seemed to be better than the Sound Blaster, in fact the Sound Blaster was advertised as an Adlib clone. The ROL format was what the Adlib tools saved their music files to. I had written a lot of music using these tools and had the programmers documentation on the ROL format, so I decided that rather than building my own SOUND editor, I'd simply write a tool to convert ROL files into AGI SOUND files. And that is how all the sounds in The Ruby Cast demo were created. For a long time The Ruby Cast was the only fan-made AGI demo to have much in the way of sound. I suspect this was because the ROL format was fairly obscure.

Peter Kelly and I put together the first version of the AGI specs. We split the task up. I think Peter wrote the LOGIC and VIEW sections and I wrote the PICTURE, SOUND and the VOL, DIR, OBJECT and WORDS sections. Around that time we became aware of the Russian tools called AGDS that predated our effort. What impressed us about their work was that they had documented the inner workings of the interpreter. They had a detailed list of steps that the interpreter goes through on each cycle. This is what kick started the fan-made AGI interpreters. I started work on MEKA. I actually very nearly finished it. It ran Gold Rush quite well. The real problem with it was that it tended to crash but that could have been ironed out. It was at about that time that my The Hidden Secrets of Sierra web site died at the hands of a hacker. It was also at about that time that the Yggdrasil interpreter (which was later renamed to Sarien) started its life. I decided that Yggdrasil/Sarien was a much better effort, so I abandoned MEKA.