Ultima IX Internal Formats

=Introduction= Here is a description of various data files used by Ultima IX. The original descriptions were taken from the U9Tools collection. The software and the documentation is licensed under the GPL.

=Bitmap Format= When 'x' is used as an offset, it indicates that the data it references follows immediately after the previous data.

Frame
=Book Format=

The format for items in books-en.flx is as follows. This format is more than likely also used for the other languages as well.

=FLX Format= The FLX format is used to glob lots of data files into one big file. No provision is made to store names of files, so they must be indexed by number (although another file probably provides a name to number lookup). There is a possibility that the user of this format does not want the first data item in the file to be item 0, so there may be provision for this in the header. I doubt this is the case tho, as at least one of the files has blank directory entries in the first few slots, presumably to effect this.

Multi-byte integer formats are little-endian.

Directory entry format
=Sound Format= used for sfx.flx, music.flx, speech.flx, maybe others.

The format of the type 1 encoding was determined by Josef Drexler.

=Texture8 Format= This is the format for the items in the texture8.* files.

NOTE: len is the length of the item

Ankh.pal
NOTE: The colour values use all 8 bits.

=External Links=
 * U9Tools - a collection of tools that allow the user to extract and modify the contents of various Ultima IX data files.
 * U9Decode - Joseph Drexler's utility that allows the user to extract Ultima IX's music.