Wiki
Clone wikiultima-exodus / U3_Party_File_Format
U3 Party File Format
The PARTY.ULT file stores player data for all members of the currently active party. It is a 274 byte file which consists of a 18 byte header and four 64 byte player sections.
Header
The 18 byte header describes high-level information about the party's state including party size and world position.
- 0x00 - party icon tile index
- 0a = horse
- 0b = ship
- 0c = whirlpool
- 3f = avatar
- 0x01 - ?
- 0x02 - map identifier (always saved as 00)
- 00 = sosaria
- 01 = dungeon
- 02 = town
- 03 = castle
- 04 = shrine
- 11 = gem (u3up only)
- 80 = combat
- f0 = shopping (u3up only)
- ff = ambrosia
- 0x03-0x06 - number of moves (32-bit int)
- 0x07 - party size
- 0x08 - x coordinate on overworld map
- 0x09 - y coordinate on overworld map
- 0x0a - player 1 - roster member number
- 0x0b - player 2 - roster member number
- 0x0c - player 3 - roster member number
- 0x0d - player 4 - roster member number
- 0x0e - player 1 status (00 = dead, ff = alive)
- 0x0f - player 2 status (00 = dead, ff = alive)
- 0x10 - player 3 status (00 = dead, ff = alive)
- 0x11 - player 4 status (00 = dead, ff = alive)
Player Section
There are four 64-byte player sections at the following addresses:
- 0x0012-0x0051 - player 1
- 0x0052-0x0091 - player 2
- 0x0092-0x00D1 - player 3
- 0x00D2-0x0111 - player 4
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 Roster 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 PARTY.ULT file is loaded to the following memory addresses depending on which binary is currently executing:
Binary | Memory Address |
---|---|
BOOTUP.BIN | DS:0x01bc |
EXODUS.BIN | DS:0x14ba |
See Also
Updated