Classic Games Live Again
A few weeks ago, Good Old Games added the first six games in the Ultima series in a two bundles. These are some of my all time favorites, and while I already own them all at least twice over, I was glad to see them available once more.
These games are old, and they look it, which may or may not be a problem for you. Over the years there have been a number of patches and upgrades to these games, fixing bugs, solving issues with faster systems, adding improved graphics, and adding the music that was originally only available on the C64 and Apple II versions. Unlike the games themselves, these patches have remained readily available thanks to sites like the wonderful Ultima Aiera.
Ultima 4 after Upgrade Patch
I don’t doubt most people are going to look a these games and pass them by. They are old. But those who do want to try them, and want the best experience will want the patches. Unfortunately there’s a common problem with all of these patches. The assume you know DOS, and in many cases, that you are running DOS under Windows 9x. Here’s a typical example from the excellent Ultima 5 Upgrade:
- Unpack the U5 Upgrade zip file into your Ultima 5 directory on your hard drive. This will not affect your current saved games.
- Run “setm.exe” from the Ultima 5 directory to configure your sound card, if you will be playing music.
- Run “u5cfg.exe” to configure the game options.
- Run “u5data.exe” to patch DATA.OVL.
- Run “ultima5.com” from the Ultima 5 directory to start the game.
Ugh. And that’s one of the more straightforward ones. If you weren’t playing these games back in the day, it’s probably not obvious that “Run” did not mean “double click the icon” at the time. It refers to doing these things from DOS, and in many cases a DOS with certain memory features that really only existed when run under Windows.
PDAR: Repackaging Patches
With this in mind, I started looking for a way to repackage these patches in a better way. I wanted:
- A single file archive that contained the rules to modify the files, instead of the modified files themselves.
- A simple command line to create and apply patches.
- Something that didn’t require the end user to run a bunch of extra binary tools.
- Something portable, so it would continue to work when today’s platforms are no longer viable.
I found a number of things for single file binary deltas, but didn’t really find anything that met my needs. So I decided I’d have to do it myself. After some thought, and some Python, the Portable Delta Archive, or PDAR was born.
With PDAR, applying the above patch is reduced to:
pdar apply Ultima5.Exodus_Upgrade-1.0.pdar "C:\Program Files\GOG.com\Ultima Second Trilogy\ULTIMA5\"
A set of PDAR files for Ultimas 1-6 are now available on Ultima Aiera. I had hoped that each PDAR patch would be posted along side the original patches, rather than as a single bundle, but if need be I can host them here as separate files. You can grab PDAR itself from github.
I hope PDAR is useful beyond patching old PC games, and welcome any feedback.