Wiki

Clone wiki

ultima-exodus / U3 Roster File Format

U3 Roster File Format

The ROSTER.ULT file stores player data for all members of the register. It is a 1280 byte file which consists of a twenty 64 byte player sections.

Player Section

There are twenty 64-byte player sections at the following addresses:

  • 0x0000-0x003F - player 1
  • 0x0040-0x007F - player 2
  • 0x0080-0x00BF - player 3
  • 0x00C0-0x00FF - player 4
  • 0x0100-0x013F - player 5
  • 0x0140-0x017F - player 6
  • 0x0180-0x01BF - player 7
  • 0x01C0-0x01FF - player 8
  • 0x0200-0x023F - player 9
  • 0x0240-0x027F - player 10
  • 0x0280-0x02BF - player 11
  • 0x02C0-0x02FF - player 12
  • 0x0300-0x033F - player 13
  • 0x0340-0x037F - player 14
  • 0x0380-0x03BF - player 15
  • 0x03C0-0x03FF - player 16
  • 0x0400-0x043F - player 17
  • 0x0440-0x047F - player 18
  • 0x0480-0x04BF - player 19
  • 0x04C0-0x04FF - player 20

The individual player sections are structured as follows. Note that fields annotated with {BCD} indicate the value is a binary coded decimal. This structure matches exactly the one used in the player sections of the U3 Party File Format.

  • 0x00-0x09 - party member name (10 characters)
  • 0x0a-0x0d - ?
  • 0x0e - mark/card flags
    • bit 7 - Mark of Kings
    • bit 6 - Mark of Snake
    • bit 5 - Mark of Fire
    • bit 4 - Mark of Force
    • bit 3 - Card of Death
    • bit 2 - Card of Sol
    • bit 1 - Card of Love
    • bit 0 - Card of Moons
  • 0x0f - torches
  • 0x10 - in party flag (00=false/FF=true)
  • 0x11 - status
    • G - Good
    • P - Poisoned
    • D - Deceased
  • 0x12 - strength
  • 0x13 - dexterity
  • 0x14 - intelligence
  • 0x15 - wisdom
  • 0x16 - race
    • H - Human
    • D - Dwarf
    • E - Elf
    • F - Fuzzy
    • B - Bobbit
  • 0x17 - class
    • F - Fighter
    • P - Paladin
    • C - Cleric
    • D - Druid
    • W - Wizard
    • L - Lark
    • B - Barbarian
    • T - Thief
    • R - Ranger
    • I - Illusionist
    • A - Alchemist
  • 0x18 - gender
    • M - Male
    • F - Female
    • O - Other
  • 0x19 - mana
  • 0x1a - health (word)
  • 0x1c - max health (word)
  • 0x1e - experience (word)
  • 0x20 - partial food counter (1/100ths of food) {BCD}
  • 0x21 - food (word) {BCD}
  • 0x23 - gold (word)
  • 0x25 - gems
  • 0x26 - keys
  • 0x27 - powder
  • 0x28 - current armor (00-07)
  • 0x29 - qty cloth
  • 0x2a - qty leather
  • 0x2b - qty chain
  • 0x2c - qty plate
  • 0x2d - qty +2 chain
  • 0x2e - qty +2 plate
  • 0x2f - qty exotic armor
  • 0x30 - current weapon (00-0f)
  • 0x31 - qty dagger
  • 0x32 - qty mace
  • 0x33 - qty sling
  • 0x34 - qty axe
  • 0x35 - qty bow
  • 0x36 - qty sword
  • 0x37 - qty 2h sword
  • 0x38 - qty +2 axe
  • 0x39 - qty +2 bow
  • 0x3a - qty +2 sword
  • 0x3b - qty gloves
  • 0x3c - qty +4 axe
  • 0x3d - qty +4 bow
  • 0x3e - qty +4 sword
  • 0x3f - qty exotic weapon

Execution Info

The ROSTER.ULT file is loaded to memory addresses 0x0c5c in BOOTUP.BIN. It is not used in EXODUS.BIN.

See Also

Updated