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:
U2 Upgrade – CGA Composite Mode
The CGA modes of Ultima 2 & 3 are pretty horrible to look at. In fact, that was my primary motivation for starting this project 20ish years ago. But they were never really intended to be viewed that way. With CGA Composite, the alternating magenta-and-black pixels of the water tiles appear as a smooth, deep blue. Alternate them in the opposite order (black then magenta)? The hue becomes the red that’s used on the brick tiles in the towns and castles.
CGA Composite mode is the main feature that I originally had planned for the next release. And it’s still planned (in fact it’s done), but I just had a few detours along the way. Fortunately, I was able to reuse the algorithm I wrote for the Ultima 3 Upgrade with a bit of refactoring & shared code. That was a pretty massive time saver.
U2 Upgrade – Stat Choice
I’ve had several posts about the hotel clerk and stat gain over the past few weeks. In part I think that’s because character advancement is a key quality of role-playing games. But just because I don’t think the issue is quite settled yet, here is another.
In the next release, I’ve added a feature where the player will get the choice of which stat to upgrade. This is a gameplay improvement of course, rather than an audio/visual upgrade, and as such is toggle-able via config.
U2 Upgrade – C64 Theme
U2 Upgrade – Prices & Maxed Stats Bug
It appears there is a bug in Ultima 2 that has to do with vendor prices as a player approaches maxed stats. Both Charisma and Intelligence affect shop prices such that higher values should lower vendor prices. This is fine until a certain point, but after your stats are raised above a certain threshold it appears that prices skyrocket again.
U2 Upgrade – Stat Boost Exploit
Ultima 2 Upgrade v2.0
I’m happy to announce that the Ultima 2 Upgrade v2.0 is now out and available for download! You can find it in the download section.
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.
Custom Tilesets & Themes
With v2.0 I planned to make several small tweaks to the game tiles. This included changing out the town/castle shapes to resemble those from the other games and smoothing out water and force fields to look more fluid. After making the changes, I wondered if some people might be happier with the traditional graphics. So why not give them the choice?
This is the final new feature coming in v2.0: themes. A theme allows the game to be customized with different variations of graphic assets.
U4 Upgrade – Endgame Bug
For those who’ve attempted to play through Ultima IV with the latest U4 Upgrade (v1.2 or v1.3), you may have experienced a bug that prevented you from completing the end game. The problem hits after you answer all the virtue questions and obtain the codex, but the game appears to freeze in the middle of describing the Quest of the Avatar.
While the U4 Upgrade isn’t one of my patches, the purpose of the Exodus Project is to solve these types of problems in older Ultima games. I did some digging on this a while back when I ran into the same thing, but totally forgot about it until recently. I was reminded of it while watching Kilg0re_Tr0ut’s Twitch stream of U4, who ran into the same problem. Let’s take a look at what’s wrong.
U2 Upgrade – Release Patching
In the last U2 Upgrade release (v1.2) I included a new patching tool called “u2up”. It’s based on the same patching system that the U3 Upgrade has been using since v3.0. The system works at build-time by storing only the differences between the original and new versions of game files in a PAT file. At install time, the patching tool then applies those differences to the game files. This is in contrast to earlier releases which included a clone of ULTIMAII.EXE called U2EGA.EXE that was a fully runnable binary with all the upgrade’s modifications.
I started moving to this patching tool for several reasons…