Ultima 9 in Widescreen Resolutions
Ultima 9 comes from a fairly early era in 3D gaming, and from an era where 4:3 was by far the dominant screen dimension ratio. These days, of course, widescreen is prevalent, and while Ultima 9’s setup utility presents widescreen resolutions as selectable options, it only uses the vertical resolution value, and renders the game at the standard 4:3 ratio:
Fortunately, the good folks at the Wide Screen Gaming Forum (WSGF) have come up with a solution. Of course, it’s rather manual in nature:
Go to the installation folder and edit u9.exe with a hex editor. Search for the following hexadecimal values…
28 02 85 00 68 00 00 70 42 8B 88 BC 00 00 00 E8
00 70 42 represent the game’s default field of view (FOV) of 60. Change to the FOV you want by calculating the FOV (see below) or use these example values: 29 5C 96 42 equals an FOV of 75.18, 29 DC 8A 42 equals an FOV of 69.43. These give a Hor+ equivalent of the default FOV of 60.
For other FOV settings, calculate the horizontal FOV you want using FOV Calc or your own personal preference.
Next you need to convert your horizontal FOV into the four pair hexadecimal format.
Paste your horizontal FOV into IEEE-754 Analysis.
Make a note of the Binary32 value.
Reverse the pairs (so e.g. if Binary32 is 42 96 5C 29 change it to 29 5C 96 42).
If you already have existing saved games you will need to modify them as well. Go into the savegame folder where the game is installed and hex-edit the *.sav files. Search for 00 00 70 42 and change it to your custom FOV.
As the screenshot at the top shows, it’s quite possible to get the game looking more or less correct at 16:9 resolution. It looks a bit more skewed when stretched across three monitors using Eyefinity:
At any rate, this isn’t something that can easily be wrapped up in a patch; you’ll have to follow the instructions at WSGF instead. Sadly, there doesn’t seem to be anything to be done (for now) about the UI scaling.