With the help of the ScummVM team and fellow programmer Matthew Hoops, this “special edition” of Pegasus Prime is licensed under the GPLv2 and has so far seen official releases for Windows, macOS, and Linux. The game is available through digital distribution platforms such as GoG and Steam; a collector’s edition is also available on DVD. Presto Studios has graciously allowed us access to the original source code, which has not otherwise been released to the public. This project is a continual labor of love using a combination of observation and reverse-engineering techniques, as well as a genuine appreciation and respect for the game itself.
1. Humble Beginnings
I started working on reverse-engineering Pegasus Prime over the summer of 2005 by studying the various resource types in the “JMP PP Resources” file and looking for patterns. I documented my findings in a text file which I shared on my blog. My version of the engine was built initially targeting Linux using SDL, with the Xine library for media playback. I got as far as playing the two intro movies and rendering the main menu before hitting a wall interpreting the resource file.
I started college that fall and my Pegasus Prime project quickly took a backseat to my academic studies. A couple years later, a fellow fan named Matthew Hoops had been contributing to the ScummVM project and was interested in adding support for The Journeyman Project when he stumbled across my blog post detailing my discoveries about Pegasus Prime’s resources. He began adding support for the game to ScummVM based on my findings, however he quickly reached the same stumbling block I did and only got the intro, menu, overview, and credits working, but no gameplay.
In the meantime, Presto Studios had put together a Carbonized version of The Journeyman Project: Legacy of Time for Mac OS X. I had become acquainted with Tommy Yune of Presto via the game’s official message boards and the TSA Facebook group, so my first “real” interaction with Presto was in January 2009 as the first recipient (and external tester) of this anniversary release before it shipped to the wider public. Tommy and I became fast friends, quickly bonding over the various nuances of the series and the numerous quirks of QuickTime and the Mac in general. I graduated college in May of 2009 and later that fall pitched Tommy on revisiting my SDL-based engine for a full port of an unreleased DVD prototype of Pegasus Prime developed in 1998. Up to that point, Pegasus Prime was the only game in the series that had not seen a Windows release. After some back and forth also involving Matt Hoops, the three of us concluded that using ScummVM would not only save development time but would be better for preservation of the game in the long run, since its source code could be maintained by other contributors long after we had completed our integration efforts.
I continued to help Matt with reverse-engineering the game while he developed an engine for ScummVM in a private branch. By early 2011 Matt’s port was merged into their master branch on GitHub. A major windfall came in June when Presto Studios granted Matt access to the original Mac/Pippin source code written by Bob Bell. By this time I had moved to California where I had accepted a programming position at Bigpoint Games a month prior. Unfortunately, the terms of my contract and the policy set by management at the time said that I was not allowed to work on games outside of my obligations to Bigpoint. This was very devastating news to me of course, but given that this was my first full-time industry job and I had just moved halfway across the country to live on my own for the first time, I did not feel comfortable then testing my boundaries within a large corporation. This meant that for the next few months, Matt ported the original code to ScummVM and by mid-December of 2011, the original game was completable in ScummVM for the first time. March and April of 2012 were then spent cleaning up the ScummVM code and fixing minor bugs.
I kept in constant contact with both Matt and Tommy during this time, testing builds and expressing an interest in lending my programming skills to the project in any way that would help, presuming that I could get the legal issues sorted. By May of 2012, a combination of a management shakeup at Bigpoint and my having established myself there for a year resulted in an opportunity for me to revisit my employment contract– specifically as it pertained to any potential work on games outside of Bigpoint’s purview. Matt’s work on ScummVM up to this point covered only the original 1997 CD-ROM release for Mac, with some features backported from the unreleased DVD prototype. With the ScummVM version quickly taking shape and garnering polish, it quickly became apparent that the DVD could finally be finished and turned into a retail release of its own, especially given that ScummVM was already cross-platform. Thinking toward the future though, we wanted to make sure the original codebase was kept up to date in case any future versions could not use ScummVM for legal reasons. Since I had a background in programming for classic Mac OS, I convinced Tommy to send me a DVD-ROM containing the same source code drop upon which Matt had based his efforts, with the expectation that I would backport Matt’s bug fixes and enhancements.
2. Special Edition