Character file format

Files:
.CHA and .SAV - I have not (yet?) found any differences between these files.

General Description
These files contain most of the character information. For inventory items, see .ITM files.

Some useful parts:
Offset Size (data type) Description
0x0000 1 (ubyte) Name length
0x0001 1-15 (char array) Character name, the array length is dependant on the defined Name length
0x0010 1 (ubyte) Strength
0x0011 1 (ubyte) Intelligence
0x0012 1 (ubyte) Wisdom
0x0013 1 (ubyte) Dexterity
0x0014 1 (ubyte) Constitution
0x0015 1 (ubyte) Charisma
0x0016 1 (ubyte) Exceptional Strength, for characters with 18 strength
 
0x002e 1 (ubyte) Race
0x002f 1 (ubyte) Class
0x0030 2 (word) Age
0x0032 1 (ubyte) Hitpoints - maximum
 
0x0072 1 (ubyte) Movement
 
0x0081 2 (word) Unknown - they change seemingly at random by simply adding, viewing and removing a character from a party in the main menu
 
0x0088 2 (word) Copper pieces
0x008a 2 (word) Silver pieces
0x008c 2 (word) Electrum pieces
0x008e 2 (word) Gold pieces
0x0090 2 (word) Platinum pieces
0x0092 2 (word) Gems
0x0094 2 (word) Jewellery
0x0096 1 (ubyte) Cleric level
0x0097 1 (ubyte) Druid level
0x0098 1 (ubyte) Fighter level
0x0099 1 (ubyte) Paladin level
0x009a 1 (ubyte) Ranger level
0x009b 1 (ubyte) Magic-user level
0x009c 1 (ubyte) Thief level
0x009d 1 (ubyte) Monk level
0x009e 1 (ubyte) Gender (From 0 to 1: Male, Female)
 
0x00a0 1 (ubyte) Alignment
 
0x00a9 1 (ubyte) Armor modifier - 0x32 is default, increase it to improve armor
 
0x00ac 4 (dword) Experience points
 
0x00bb 1 (ubyte) Portrait head - 1 to 14 (0 is blank)
0x00bc 1 (ubyte) Portrait body - 1 to 12 (0 is blank)
0x00bd 1 (ubyte) Icon Part: Head (these differ depending on race)
0x00be 1 (ubyte) Icon Part: Weapon
 
0x00c0 1 (ubyte) Icon Character Size (From 1 to 2: Small, Large)
0x00c1 1 (ubyte) Icon Color: Body (The first 4 bits for all color bytes is for color 2, the remaining for color 1)
0x00c2 1 (ubyte) Icon Color: Arms
0x00c3 1 (ubyte) Icon Color: Legs
0x00c4 1 (ubyte) Icon Color: Head (First 4 bits for face, remaining for hair)
0x00c5 1 (ubyte) Icon Color: Shield
0x00c6 1 (ubyte) Icon Color: Weapon
 
0x0102 2 (word) Encumbrance - recalculated on loading
 
0x011b 1 (ubyte) Hitpoints - current
0c011c 1 (ubyte) Possibly current movement points.