This information was provided by Sam Glasby
is a fixed format file consiting of 20 records (+ anything else???) of fixed size. These 20 records (64 bytes each) correspond to the data for the Ultima III characters which are in the roster (inactive), as opposed to being in the party (active).
"Form the party" reads 4 records from ROSTER.ULT and does something with them. "Disperse the party" writes the data for the 4 characters back into ROSTER.ULT, overwriting whatever exists there.
Therefore, to edit an Ultima III party, one simplz needs to Disperse the Party, hex-edit the file (by hand, or with a utility program), then start Ultima III and Form the Party from the edited characters.
Format of the file is:
Record 1 (64 bytes), Record 2 (64 bytes), ..., (anything at end???)
Format of a record is:
Hex_Offset | Field Width | Field Name | (normal range /possible range) |
0000-0009 | 10 (9+1) | Character Name | (length 9, NULL-terminated string) |
000a | 1 | (unknown) | |
000b | 1 | (unknown) | |
000c | 1 | (unknown) | |
000d | 1 | (unknown) | |
000e | 1 | Marks and Cards | (add all numbers in both hex digits) 10=Force, 20=Fire, 40=Snake, 80=Kings 01=Love, 02=Sol, 04=Moon, 08=Death |
000f | 1 | # Torches | (0-99) ??? |
0010 | 1 | In party? | (00=no, FF=yes) |
0011 | 1 | Character Status | (G,D,A ???) |
0012 | 1 | Strength | (5-99 / 0-99? 0-ff?) |
0013 | 1 | Dexterity | (5-99) |
0014 | 1 | Intelligence | (5-99) |
0015 | 1 | Wisdom | (5-99) |
0016 | 1 | Race | (E, D, F, H, B) |
0017 | 1 | Class | (W, R, T, I, A, D, F, L, C, B) |
0018 | 1 | Gender | (M, F, O) |
0019 | 1 | Current Magic Points | (0-99 / 0-ff?) |
001a-001b | 2 | Current Hit Points | (150-2500 / 0000-9999) |
001c-001d | 2 | Hit Points Maximum | (150-2500 / 0000-9999) |
001e-001f | 2 | Experience Points | (0-9999) |
0020 | 1 | (unknown) | (40) |
0021-0022 | 2 | Food | (0-9999) |
0023-0024 | 2 | Gold | (0-9999) |
0025 | 1 | # Magic Gems | (0-99) |
0026 | 1 | # Skeleton Keys | (0-99) |
0027 | 1 | # Time Stop Powders | (0-99) |
0028 | 1 | Currently worn Armour | (00=Skin, 07=Exotic / 8+) |
0029-002f | 1 each | # Suits of earch armour | (Cloth..Exotic) |
0030 | 1 | Currently Wielded Weapon | (00=Hands, 0F=Exotic / 10+) |
0031-003f | 1 each | # of each weapon | (Dagger..Exotic) |
0x | ##/X | Weapon Type | 0x | ##/X | Weapon Type |
-- | 00/A | Hands | 38 | 08/I | +2 Axe |
31 | 01/B | Dagger | 39 | 09/J | +2 Bow |
32 | 02/C | Mace | 3a | 0a/K | +2 Sword |
33 | 03/D | Sling | 3b | 0b/L | Gloves |
34 | 04/E | Axe | 3c | 0c/M | +4 Axe |
35 | 05/F | Bow | 3d | 0d/N | +4 Bow |
36 | 06/G | Sword | 3e | 0e/O | +4 Sword |
37 | 07/H | 2H Sword | 3f | 0f/P | Exotic Weapon |
0x | ##/X | Armour Type | 0x | ##/X | Armour Type |
-- | 00/A | Skin | 2c | 04/E | Plate |
29 | 01/B | Cloth | 2d | 05/F | +2 Chain |
2a | 02/C | Leather | 2e | 06/G | +2 Plate |
2b | 03/D | Chain | 2f | 07/H | Exotic Armour |