Ultima 6 ... recoded for Windows
(developement stopped years ago)
Some years ago I tried to play U6 under WinXP, it took me a while
to make it run correctly. In the mean time, I started to investigate U6 files in order to
rewrite the game in a recent language. Ouch ! Was it just in order to
minimize disk and memory space, or rather obfuscation ? Most of the files were
LZW-compressed, packed, with shuffled bits !
Surfing the internet, I found other people having the same interest in U6 files
formats. Some of them had done their investigations several years before me,
with a lot of interesting results that I re-used in my own work (links to their sites).
I chose Java for my first attempt to recode U6, but the result was disappointing (slow frame rate). So I ported it in C++/DirectX.
The last version included features like :
But I gave up while trying to recode the dialogs, because I couldn't decode all the "control bytes" included in the dialog files (usecode).
Therefore the following features will never be implemented (I definitly stopped the developments) :
Here are some screenshots of the C++ version.
Download
For people interested in U6 resources, I extracted data from the original U6 files : the in-game bitmaps
(introduction, portraits, item tiles, ground tiles), and also builds the whole world maps. It also produces text files
for the dialogs, the books and signs, the description of grounds and items, etc...
I know that similar files can be found on other fan-sites since the 1990's ... but I also bring (hopefully) unique 3D scenes.
*** SPOILER*** - The world maps :
Britannia
The whole map in only one bitmap
(full res: 16384 x 16384) :![]()
Some viewers will struggle to display such a big bitmap,
especially if your system doesn't have enough RAM...
Dungeon levels :
Level 1 Level 2 Level 3 Level 4
Ambrosia (Realm of the Gargoyles) :
*** SPOILER*** - 3D maps (updated 2023) :
I generated the 'almost-3D' levels (Britannia, dungeons, Ambrosia) with what was supposed to be a basic algorithm, which finally appeared to get more complex than expected.
I had fun adding a few simple meshes instead of 2D sprites, with self-made textures. I won't complete this work because I don't have enough time to, but the result is realistic enough.
Separate levels (0..5) :
Ex: level 0 : BritanniaFULL BRITANNIA :
zoom
All places gathered in a single scene, with connections between Britannia & the dungeons
NB: the output files are in DirectX ".x" format, so you'll need a x-file viewer to visualize them. I personally use "Deep Exploration" (Right Emisphere) instead of Microsoft DirectX Viewer (which doesn't support transparency very well).
NEW *** SPOILER*** - Interactive NPC Locator :
Text files :
The portraits of NPCs :
|
The items tiles : |
Bitmaps (intro/endgame, misc, cursors, ...) : here
2D Maps (outdated, prior to the 3D maps above) :
I generated pseudo-3D meshes for the 24 dungeons & Britannia & Ambrosia.
For instance, below is an overview of "Dungeon Hythloth", with an entrance in "Avatar Isle" (at level 0), and another entrance in the "Realm of the Gargoyles" (at level 5) :
Another overview : the "Pirate Cave", with several down-only holes (in red) between the levels 3 and 4 :
Download the separate places here
or the full scene (all places gathered and connected) there
Links
I found many useful informations (thank you everybody) there :
Paul Gilbert (dreammaster) : U6Edit, an amazing tools for decoding/extracting almost every data from the game
(...including the conversation scripts !)JP Morris (Doug the Eagle) : U6 developer's Tool Bartholomew J. Melnicki (rackne) : Maps, Engine, and Decoder for U6, Martian Dreams, and Savage Empire Marc Winterrowd (nodling dragon) : Ultima Tech info and Patches Xenerkes : Ultimatrix : an Ultima map viewer, and a useful LZW-decompressor Jim Ursetto : pu6e (Python Ultima6 Editor)
Ultima6 on-line, by Galleon Dragon : U6O New Ultima VI engine : Nuvie
DosBox emulator : DosBox