Wiki

Clone wiki

ultima-exodus / U3_Dungeon_Maps_File_Format

U3 Dungeon Maps

There are eight dungeon map files.

  • PERINIAN.ULT - Perinian Depths
  • DARDIN.ULT - Dardin's Pit
  • MINE.ULT - Mines of Morinia
  • FIRE.ULT - Dungeon of Fire
  • M.ULT - Dungeon of Doom
  • P.ULT - Dungeon of the Snake
  • TIME.ULT - Dungeon of Time

The dungeon map files are exactly 2192 bytes in size. The first 2048 bytes contain the layout of all 8 levels, each level consisting of a 16x16 grid of 1-byte tiles. The remaining 144 bytes contains the "misty writings" text.

0000-00FF = Level 1
0100-01FF = Level 2
0200-02FF = Level 3
0300-03FF = Level 4
0400-04FF = Level 5
0500-05FF = Level 6
0600-06FF = Level 7
0700-07FF = Level 8
0800-080F = Misty writings index (8 dwords)
0810-088F = Misty writings data

Level Maps

Each level in the dungeon is a 16x16 grid of 1-byte tiles. The high order nybble in the tile byte represents dungeon objects that are visible (walls, ladders, chests, etc) while the low order nybble consists of objects that are only visible with a gem (traps, marks, gremlins, etc).

The following list presents the list of possible values for each tile and their meanings.

  • 00 - empty
  • 01 - time lord
  • 02 - fountain
  • 03 - strange winds
  • 04 - trap
  • 05 - mark
  • 06 - gremlins
  • 08 - misty writings

  • 10 - up ladder

  • 20 - down ladder
  • 30 - up & down ladder
  • 40 - chest
  • 80 - wall
  • A0 - hidden doorway
  • C0 - doorway

Misty Writings

The misty writings section is 144 bytes long and contains an index and the actual data. There are 8 misty writings in each dungeon, one for each level. The index contains 8 double-word offsets relative to the start of the misty writings section. The offsets point to the start of the actual text data. The text is zero-terminated. The end of the section is zero-padded so the section always equals 144 bytes.

Updated