xU4 is Back! – Roland Recordings Now Included as Module!

Greetings Ultima IV fans looking for the xu4 fixes and Roland recordings hosted here! I have great news! The xu4 Project is back and work is taking place at a feverish pace! And, there’s additional good news in that my recordings of Telavar’s Ultima Music won’t be going to waste and are now even easier to use with xu4.

Due to the kind nature of the xu4 team, who took it upon themselves to re-package the recordings, they are now part of a module that can simply be placed alongside the xu4 executable.

Likewise, you should no longer need to download my fixes and tweaks to the graphics tiles mentioned in prior posts. Just download Wiltshire Dragon’s and Aradindae Dragon’s original Ultima IV Upgrade package and place the U4UPGRAD.ZIP file (still zipped!) next to the xu4 executable as well.

With the original ultima4 game files directory, the “Hurin” music module, and the U4UPGRAD.ZIP file all in the xu4 directory, you should be able to press ESC from within xu4 and choose whatever your prefer. Like so. . .

One additional note: It appears that the “U4-Recreated-DR” mod includes the upgraded graphics pack so the U4UPGRAD.ZIP file should no longer be necessary at all if you want to run that version of the game (currently offering AI-provided voice and other features). If, however, you just want the upgraded graphics and don’t wish to have the added features of the “recreated” mod, the U4UPGRAD.ZIP file is still required to launch the U4-Upgrade module.


We’ve Moved. . . and Shrunk!

Dor-lómin is now at a new web host. While making the migration, I pared the site down to just the essentials. Things that people might want or need in the years to come. Such as the Ultima Digital Music Archive and/or Dagor Bragollach, available under “Defunct Geekery” on the right-hand menu. Along with a smattering of site news below just so the “blog” portion doesn’t look too bare.

Running the ‘Ultima 6 Project’ on a Steam edition of Dungeon Siege

UPDATE: This technique will also work for Ultima V: Lazarus. While the installer for lazarus would complete, the created shortcuts wouldn’t properly point to the Steam edition of Dungeon Siege. With the registry tweak detailed below, the shortcuts are now created correctly.

First, I loved, loved, loved Ultima V: Lazarus, a remake of Ultima V using the Dungeon Siege engine. It is spectacular. Honestly, the best Ultima I’ve ever played (and I’ve played them all, over and over again, since I was a kid). The original story is absolutely respected even as it is expanded upon in grand fashion. The music soundtrack is spellbinding. And, finally, it feels just as much like Ultima as any official ones in the series (and moreso than some of the latter ones). I can’t recommend it highly enough.

Which brings me to the Ultima 6 Project (U6P). . .

I’ve just finished replaying the original Ultima VI. So, with high hopes due to how much I loved Lazarus, I’m going to give the Dungeon Siege-powered remake of Ultima VI a try.

The problem: The Steam edition of Dungeon Siege isn’t supported by the setup.exe provided by U6P. The setup.exe installer checks the Windows registry to find the location of your Dungeon Siege install. And because Steam doesn’t create such an entry, U6P refuses to install.


On a 64-bit version of Windows, the installer checks:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft Games\DungeonSiege\1.0\
for a string value: “EXE Path”

(I determined this by using streams to view any text embedded in the setup.exe which revealed it was an “inno installer.” I then used innounp to unpack the setup.exe and was then able to read the embedded install_script.iss file using Inno Setup.)

So, first, we locate our Steam edition of Dungeon Siege. I have created a Steam Library on my SSD (E:), so my Dungeon Siege installation is at: E:\SteamLibrary\steamapps\common\Dungeon Siege 1

Perhaps the easiest way for you to locate your own Dungeon Siege installation is to go into steam, locate Dungeon Siege in your Library, right-click it, and choose “Properties” (at bottom), then click the “Local Files” tab, and then finally click “Browse Local Files…”

You should then be able to click to the right of the path shown which will then give you a selectable and copy/paste-able path.

Now, it’s time to create the registry entry. . . keep in mind that this is for a 64-bit version of Windows (32-bit versions of Windows don’t use the
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\ registry key but instead use just plain ol’ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ key).

It’s beyond the scope of this column to teach basic registry editing, but basically you want to. . .

  1. Start “Regedit”
  2. Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft
  3. Add a key for “Microsoft Games” under HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\ (no quotes)
  4. Add a key for “DungeonSiege” under the now existent “Microsoft Games” key (HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft Games\)
  5. Add a key for “1.0” under the now existent “DungeonSiege” key (HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft Games\DungeonSiege)
  6. In the now existent HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft Games\DungeonSiege\1.0 key, right-click on the right-hand pane and choose “New –> String Value” and name it “EXE Path” (no quotes)
  7. Double-click the “EXE Path” string entry and change its Value data to the path you determined before we began editing the registry. In my case, I change it to: E:\SteamLibrary\steamapps\common\Dungeon Siege 1
  8. Click OK.
  9. Close Regedit.

Because an image is worth a thousand words and may clear up some details in the instructions above, here’s a screenshot of me making these edits to my own machine. Keep in mind that your path to Dungeon Siege will be different. . .


You could also automate the process above by pasting this text into a file named “ds-u6p.reg”. . .

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft Games\DungeonSiege\1.0]
"EXE Path"="E:\\SteamLibrary\\steamapps\\common\\Dungeon Siege 1"

. . . but obviously you would want to replace the path with your own (retain those double backslashes!). Upon double-clicking that file, the proper registry adjustments will be made for you. Rather than create your own, for you trusting souls out there, here’s a zip file containing that exact code. You can extract it, right-click and “edit” it, adjust the path to fit your own Dungeon Siege install path, save, and then run it.


Regardless of how you go about it, if done carefully and correctly, the installer for U6P should now work! And you’ll have the custom icon for the desktop shortcut, an uninstall option under your Control Panel, and all other functionality provided by the official installer.

Enjoy the game! I’m hoping I will as well!

ADDENDUM: You can force higher resolutions in the game by editing the “Target” field of the desktop shortcut provided by the installer like so (obviously, change the path to Dungeon Siege appropriately):

"E:\SteamLibrary\steamapps\common\Dungeon Siege 1\DungeonSiege.exe" map_paths=!"C:\PROGRA~2\TEAMAR~1\U6PROJ~1\RESOUR~1" res_paths="C:\PROGRA~2\TEAMAR~1\U6PROJ~1\RESOUR~1" user_path="C:\PROGRA~2\TEAMAR~1\U6PROJ~1" height=1200 width=1920 bltonly=true maxfps=100

1920×1200 definitely works. But 3440×1440 crashes. As with U5 Lazarus, you’ll get a warning each time you “Journey Onward”, but there otherwise seem to be no ill effects. The new resolution only affects the game world (after you “Journey Onward”) while the introductory menus and such remain at the default Dungeon Siege resolution (max of 1024×768).

Ultima IV – xu4 Upgrades Consolidation


In much more succinct fashion, here are the fixes/upgrades to xu4 that I cobbled together a while back. . .

Graphics Upgrade and Fixes
Here is the graphics fix and upgrades to the xu4 edition of Ultima IV: Quest of the Avatar. (more info)

Music Upgrade
Here is the music upgrade (featuring Roland Sound Canvas) for the xu4 edition of Ultima IV: Quest of the Avatar. For listening outside of the game, here’s plain MP3 versions. (more info)

Please Note
There are various versions of xU4 floating around. All of this is designed to work with “xU4 1.1svn” (2/22/2013) which you can download from this part of the xu4 website. You should download the latest “snapshot” build and avoid the “betas” since they are actually much older.



Okay. . . so one more Ultima IV (via xu4 engine) fix on top of the Roland (recorded) MIDI music upgrade and the graphics fix.

At endgame, a few months ago, I was disappointed to find that the symbol of the codex was mangled. After answering the second question (Honesty, Compassion, etc.). . . the graphics become corrupted.


Through some trial and error (at first I tried editing the image files themselves), I realized that this is an easy fix. Each image provided for this part of the game should be stand-alone, it’s just a slideshow. Yet the xu4 engine was trying to stack them on top of each other while treating them as transparent.

Thankfully, I stumbled upon what is apparently telling the xU4 engine to treat these (wrongly) as transparent. . .

In the conf/graphics.xml file within the imageset VGA-ALLPNG section, find the “abyss vision images” area, and remove the ‘fixup=”abyss”‘ value from each image entry. Here’s what you’re looking for. . .


‘fixup=”abyss”‘ also appears elsewhere in the file, but if you’re running “VGA-ALLPNG” (presumably along with my fix that restores the original U4 Upgrade visuals) as your video mode in the game, that’s all you should need to do.

Here’s the result. . .


I’ve updated my graphics fix package with the changes outlined above. So, those installing it after today don’t need to worry about fixing the endgame images as outlined above. It’ll be done for you.



In addition to the Roland Sound Canvas Music now available in xu4, I’ve gone ahead and fixed up the Ultima IV Upgrade Pack so that its graphics upgrades now function fully again in xU4. You can download the fix package here.

I’ll let the included README.TXT do the rest of the explaining:

xu4 v1.1 (http://xu4.sourceforge.net/) currently breaks support for the u4upgrad.zip pack (http://www.moongates.com/u4/upgrade/Upgrade.htm) by Aradindae Dragon and Wiltshire Dragon.

Most of that pack’s appearance has been worked into the built-in “VGA-ALLPNG” xu4 video mode. However, there are two issues:

  1. The base terrain is now green instead of black. This can be quite jarring for Ultima veterans since “black with green dots” has been the standard since Ultima I.
  2. The “HUD” has been changed.

This pack restores the original appearance of both. Just decompress this ZIP file and overwrite the PNGs in your xu4/graphics/png/ directory with the ones provided in this ZIP file. Then, replace xu4/conf/graphics.xml file with the one provided. The former step replaces the affected terrain tiles while the latter step enables the old “HUD” from the upgrade pack.

When finished moving around files, the “VGA-ALLPNG” video mode should appear and behave just like Aradindae Dragon’s and Wiltshire Dragon’s Graphics upgrade.

I attempted to make the result of this work its own “video mode” in xu4 so that “VGA-ALLPNG” could be left alone. However, adding another video mode caused inexplicable problems with the opening title screen. So this will have to do.

Okay, now I can actually go play the game!

Addendum (3/30/2014)

Here is the VGA-ALLPNG video mode without these fixes. . .


Here is the VGA-ALLPNG video mode with these fixes applied, restoring the Ultima IV Upgrade pack’s UI frame and classic terrain. . .


Also, as of 3/30/2014, I have updated this pack with a fix for and xU4 bug where corrupted display of the endgame “codex” images occurs. This only affects the “VGA-ALLPNG” video mode but it could easily be done by hand to other modes that “borrow” those PNG images.

One final note. . . there are various versions of xU4 floating around. All of this is designed to work with “xU4 1.1svn” (2/22/2013) which you can download from this part of xu4 website. If you download it from elsewhere on xU4’s sourceforge page, you’re likely to get an older version and none of this will work.



Please pardon the austere appearance of this site. But I had something I was excited about sharing prior to fixing it back up (after our last theme became obsolete).

The most recent update to xu4 did away with MIDI (except for one song that remains MIDI) and instead now plays back music via “tracker-encoded” *.IT files. While they do sound quite nice, in my opinion, they don’t sound quite authentic.

Personally, I’ve always been partial towards Telavar’s Ultima music which seems to almost perfectly preserve the original tempo/timings while leveraging the superior sample/instrument quality of Roland Sound Canvas MIDI devices.

So, my goal was to make xu4 work with Telavar’s MIDI arrangements. Some googling showed that some had requested the ability to use their own MIDI files and/or MIDI devices with no response for the xu4 developers. This was not promising. Nevertheless, I began experimenting. Unfortunately, there’s no way to send MIDI output via xu4 to an external MIDI playback device (which DosBOX allows). And, if you put MIDI files themselves in the xu4/mid directory, and edit the xu4/conf/music.xml file appropriately, it will play back the MIDI files, but with its own internal MIDI player (via “TIMIDITY” perhaps?).

So, what to do if you have a Roland Sound Canvas (or other preferred MIDI device) and some authentic-sounding MIDIs. . . and you want to use that Roland Sound Canvas to play those MIDIs while playing Ultima IV via xu4?

Well, on a hunch, I just put a digital audio file in the xu4/mid directory and pointed the xu4/conf/music.xml to it. . . and it played as background music appropriately (though it sounded strange in that particular case since the file contained a sound effect and not music)! That first file was an OGG file. Then I tried an MP3. And, finally, a raw WAV file. They all played! The ability to play our own recorded tracks of whatever music we preferred was right there under our noses the entire time.

Expect an addition to the Ultima Digital Music Archive (UDMA) of some Ultima IV music as rendered by a Roland Sound Canvas in the next 24-hours! I’m just tweaking the recordings now but need to get some sleep.

UPDATE: Here (8.8Mb) are the digital recordings and already-edited music.xml file, ready to be placed in your xu4 installation.

Some quick notes: Though xu4 will play back just about any file that is put in its “mid” directory and appropriately indicated in the music.xml file, I noticed some issues when using various types of audio formats. For example, using MP3 files with variable bit rates caused some “squirking” sounds during xu4 playback that were not present when played normally in Windows. Also, track looping in-game was delayed and therefore jarring to the listener. Original/raw WAV file in-game playback was better, but the file size was quite large and for some reason xu4 introduced artifacts to the “shopping” track playback (again, not audible during standard out-of-game playback). Eventually, OGG was settled upon as the best compromise since it introduced no delays, had a reasonable filesize, and the “shopping” track has less artifacting than the raw WAV file.

I have decided not to put the MP3 version up within the Ultima Digital Music Archive because that archive has always served as a place to hear Ultima music as it originally sounded in-game on the premiere music playback devices of each game’s respective era (Roland LAPC-I and then Roland Sound Canvas). Since the MIDIs used in this xu4 music update are adapted from Telavar’s MIDIs that were themselves adapted from the Apple/Commodore Ultima IV music, and are played back on a device that would be years away when Ultima IV was released, the inclusion of these recordings in the UDMA would be inappropriate.

However, for those wanting to hear what these sound like prior to giving them a try in xu4 itself, here is a hastily created ZIP file containing the MP3 versions. Again, use of these MP3s with xu4 is not recommended (use the OGG version instead).


If you are in the mood for an achingly beautiful soundtrack, I highly recommend the soundtrack for “The Assassination of Jesse James by the Coward Robert Ford.”  Perhaps it helps to have seen the movie, but there are some tracks in there that are well. . . haunting seems the proper word.

The Assassination of Jesse James (Soundtrack)

Great movie too by the way.


In the hopes that this might be picked up by Google and help someone else out there. . .

I run a Fedora Core 5 (FC5) server at work. I’m in the process of migrating things to a new server that will be Fedora 7 (no longer called “core”).

We make use of Tomcat for java applications. However, upon installing Tomcat in the exact same way for Fedora 7 as I did for FC5, all I would see when trying to view my Tomcat server’s web pages were (totally) blank pages.

To replicate the problem (then the solution). . .

Install Java according to these instructions (though use the JDK instead): Link.

Install Tomcat like so:

>yum install tomcat5 tomcat5-webapps tomcat5-admin-webapps

Start the tomcat service (it should be available under the services GUI now. . . if not, restart the server).

Now, you too should be getting blank pages when you try to view http://localhost:8080

I had seen several reports that the F7 and FC6 default installations of tomcat were “bad” or “non-functional.” At that point, everyone appears to just give up. No solutions seem available out there other than to download the application from Jakarta and install it manually.

Here’s an easier “fix.” Though, I don’t know if this might be a bad idea.

The problem appears to be that Tomcat no longer likes the default installation of Java on FC6 or F7. Further, it won’t listen to you if you try to change JAVA_HOME via the /etc/tomcat5/tomcat5.conf file.

This is (apparently) because the /etc/tomcat5/tomcat5.conf file (where you’d think you should go!) is overridden by the /etc/sysconfig/tomcat5.conf file. So, make the change there, and all should work again.

For example. . . in /etc/sysconfig/tomcat5.conf, I made it:


All now works!