The Ultima 2 Upgrade: Version 2.0 and 2.1 Released

Voyager Dragon only just released an update to his upgrade package for Ultima 2, and now has done so again. Version 2.0 of the Ultima 2 Upgrade is quite a comprehensive update:

When I started building this version, I had originally intended to deliver smaller and more incremental releases. My focus area was to break out the CGA and EGA logic into video drivers. However, for various reasons, I realized that there were several additional issues that needed tackling. And for these particular issues a major version bump like v2.0 seemed like the right time to do it.

Character creation

Over the past month I’ve blogged about the features I’ve been working into this release. Please feel free to drill down if you’d like more information.

1. Extraction of CGA and EGA logic into drivers
2. Improved Character Creation & Saved Game location
3. Themes & custom tilesets
4. Patching support for multiple releases
5. Time gate bug fix
6. Hotel clerk fix

What’s great about items #3 & #4 is that much of the work is reusable for other upgrades. There are already other alternative tilesets for Ultima 3, and the patcher is all shared code. I was also able to accelerate building out #1 due to code reuse. I leveraged all the driver work I did on U3 several years ago to refactor this one more quickly.

You’ll want to click through each of the links above, as Voyager has taken the opportunity over the last few weeks to expound upon each of the major changes that this new version of the upgrade brings to Ultima 2.

The most exciting new feature is probably the addition of support for themes and custom tilesets; Ultima 2 isn’t the most visually appealing game, so it’s awesome to have the option now to add alternative tilesets to the game. And not just tilesets, as Voyager explains:

Previously, U2’s CGA tile data was embedded in UltimaII.EXE. When I added EGA support, I appended all the EGA tiles to the end of UltimaII.EXE. With v2.0 I extracted all the tile data to CGATILES and EGATILES so they the config and drivers can easily detect and load them.

This enables the driver to load custom alternate tilesets. The config program gives you a list of available “theme” folders by reading them from the game directory. Theme folders can include tilesets, character sets, game images or other graphic assets that a theme author can override. This is also structured so that the other upgrades can eventually follow the same pattern.

More technically-minded Dragons may also want to read up on the patching system that Voyager has devised.

And before I could even find time to post the above as news, Voyager also went ahead and released version 2.1 of the update:

I’m pleased announce the next release of the Ultima 2 Upgrade, version 2.1. You may find it in the download section. This release contains several new features, which I’ve blogged about over the past two weeks:

CGA Composite Mode
C64 EGA Theme
Stat Boost Selection – Gameplay Improvement

And two bugfixes concerning stat boosts:

– stat boost impact on shop prices
0-gold exploit for stat boosts

I’ve also decided on how to to handle upgrades from floppy releases: the patch will apply only to the Program Master. The patch will also add any missing data files from the Player Master or Galactic disks. I’ve therefore included the ability to apply the upgrade to the 1989 floppy release of the Ultima Trilogy 1-2-3. I unfortunately don’t have any of the earlier Sierra On-Line releases, so those will have to wait for now.

This new version of the Ultima 2 Upgrade can be downloaded from Voyager’s repository at BitBucket, or from the project entry here at the Codex.