Ultima Stones
Ultima III Home | Atlas | Development | Economy | Equipment | FAQ | Hostiles | Library | Magic | Quests | Walkthrough | Who's Who


Ultima > III Exodus > Development

Development

    File Details

Party Data | Roster Data | Maps | Shape Tiles | Character Font

Party Data

All numerics are binary coded decimal (hex numbers representing decimal whole values) and least significant byte first.

18 characters

  1. char ?

  2. char ?

  3. char ?

  4. 32bitBCD party moves 0-99999999

  5. char ?

  6. X coordinate on map 0-63

  7. Y coordinate on map 0-63

  8. party member one roster index 0-20 

  9. party member two roster index 0-20

  10. party member three roster index 0-20

  11. party member four roster index 0-20

  12. char ?

  13. char ?

  14. char ?

  15. char ?

4 party member character records

a character record follows:

10 char name string zero terminated, 9 valid characters
char 
char 
char 
char 
char marks-cards flags
char torches
char FF
char condition: Good Poisoned Dead Ashes
char strength 0-99
char dexterity 0-99
char intelligence 0-99
char wisdom 0-99
char race: Bobbit Dwarf Elf Fuzzy Human
char profession: Alchemist Barbarian Cleric Druid Fighter Illusionist Lark Paladin Ranger Thief Wizard
char gender: Male Female Other
char magic 0-99
16bitlsb hits 0-9999
16bitlsb maximum hits 0-9999
16bitlsb experience 0-9999
char 
16bitlsb food 0-9999
16bitlsb gold 0-9999
char gems 0-99
char keys 0-99
char powder 0-99
char armour worn 0-7
char armour cloth 0-99
char armour leather 0-99
char armour chain 0-99
char armour plate 0-99
char armour +2 chain 0-99
char armour +2 plate 0-99
char armour exotic 0-99
char weapon ready 0-15
char weapon dagger 0-99
char weapon mace 0-99
char weapon sling 0-99
char weapon axe 0-99
char weapon bow 0-99
char weapon sword 0-99
char weapon two handed sword 0-99
char weapon +2 axe 0-99
char weapon +2 bow 0-99
char weapon +2 sword 0-99
char weapon gloves 0-99
char weapon +4 axe 0-99
char weapon +4 bow 0-99
char weapon +4 sword 0-99
char weapon exotic 0-99

Roster Data

ROSTER.ULT

20 character records as detailed above.

Maps

64 x 64 (4096) byte map, bytes are indexes into shape tiles.

552 byte footer ? (Current assumption is storage for hostiles, which appear on the map as it is read from file)

AMBROSIA.ULT BRITISH.ULT  DAWN.ULT     DEATH.ULT    DEVIL.ULT    EXODUS.ULT   FAWN.ULT 
GREY.ULT     LCB.ULT      MONTOR_E.ULT MONTOR_W.ULT MOON.ULT     SOSARIA.ULT  YEW.ULT

Shape Tiles

SHAPES.ULT

80 tiles, 16 x 16 pixels. The graphic format of the tiles is Color Graphics Adaptor (2 bits per pixel, black, cyan, magenta, white). This translates to every 4 bytes being one row.  The tile data is interleaved such that every 16 row tile is laid out every other line, odd lines then even (1st 3rd ... 13th 15th 2nd 4th ... 14th 16th)

 

Character Font

CHARSET.ULT

20