AMIGA RPG CHARACTER FILE FORMATS------------------------------------------ This document was created on 11/5/05, and last updated on 16/12/07, by James Jacobs of Amigan Software (amigansoftware@gmail.com). Corrections and additions are welcomed. At the Amigan Software site (primary URL is http://amigan.1emu.net/) you will find various character editors for Amiga and MS-DOS. The games covered are: Alternate Reality: The City Bard's Tale 1-3 BattleTech Chambers of Shaolin Champions of Krynn Citadel of Vras Demon's Winter Dragon Wars Faery Tale Adventure Hillsfar Might and Magic 2 Neuromancer Phantasie 1 Phantasie 3 Questron 2 Shadowlands Times of Lore Ultima 5 Wizardry 6 Zerg The basic methodology for obtaining this data is by trial and error. For example: load the game, examine the characters, write down their statistics. Quit the game, examine the file(s) in a hex editor, looking for correspondences between in-game values and stored hex values. Change values in the hex editor, save, check what effects these have had in the game. And, change values in the game (eg. by creating characters, buying items, killing monsters, etc.), save, check what effects these have had in the hex editor. Reiterate as necessary. The HowDif program is used to easily compare binary files, and FileX to modify them. Alternate Reality: The City (ARCHAR:AR.Name, 13268 bytes)----------------- Name: only stored in filename! STA 15 WIS 15 They could be $9E, $9F, $A1, $A2, $B2, $B3, $B5, $B6 SKL 23 could be $1C, $A8, $A9, $AB, $AC INT 16 could be $21, $23, $94, $95, $97, $98, $140 CHR 13 STR 13 They could be $8D, $8E, $BC, $BD, $BF, $C0 HP 10 could be $E9, $EB, $ED, $322A Unknown locations/encodings: Experience Level Food Packets Water Flasks Inventory Coins Location? Facing direction? Secret stats? Quest status? Time of day? Bard's Tale 1-3----------------------------------------------------------- There is a character editor (but not a saved game editor) available for these games. The file formats are documented in the source code. See Aminet:game/edit/BTCE.lha Also, note that in BT3, bards can learn new songs, but the location and encoding of the data about which songs have been learnt is as yet unknown. BattleTech (Game1..Game6, 3929 bytes)------------------------------------- $D3C: Money ("C-Bills")? $D70: Money ("C-Bills")? $E10: Money ("C-Bills")? $E14: Money ("C-Bills")? $E2A: Money ("C-Bills")? $E2E: Money ("C-Bills")? Unknown encodings/locations: Name Location Facing direction? (maybe there isn't one) Weapon (eg. cudgel) Armour Health Skills: Bow & Blade Pistol Rifle Gunnery Piloting Tech Medical MedKit (yes/no) Mapper (yes/no) Field Surgery Kit (yes/no) B, D, C gauges Game settings (eg. movement rate)? Are these saved as part of the saved game? Quest status? Chambers of Shaolin (SAVEGAME, 16384 bytes)------------------------------- Note that this information applies only to the WHDLoad slave (V1.1), not to the floppy version, which seems to use a different format. There seems to be a bug in the WHDLoad slave (V1.1), in that only the first character "slot" can be used. 0..4: $56 $4F $4C $33 $01 ("VOL3\1"): header All bytes (except header) are stored in 'mirror' format (explained below). All unmentioned bytes are $00. This is a little-endian format :-( 100..109 ($64..$6D): Name (padded with spaces (stored as $04 which decrypts to $20/32/' ')) After decryption, these are ordinary ASCII characters (uppercase and numerals, at least, are permitted). 100 ($64): 2nd character of name 101 ($65): 1st character of name 102 ($66): 4th character of name 103 ($67): 3rd character of name 104 ($68): 6th character of name 105 ($69): 5th character of name 106 ($6A): 8th character of name 107 ($6B): 7th character of name 108 ($6C): 10th character of name 109 ($6D): 9th character of name 110 ($6E): low byte of an unknown variable? 111 ($6F): high byte of an unknown variable? 112 ($70): low byte of STRENGTH 113 ($71): high byte of STRENGTH 114 ($72): low byte of ATTACK FORCE 115 ($73): high byte of ATTACK FORCE 116 ($74): low byte of DEFENCE FORCE 117 ($75): high byte of DEFENCE FORCE 118 ($76): low byte of CONSTITUTION 119 ($77): high byte of CONSTITUTION 120 ($78): low byte of an unknown variable? 121 ($79): high byte of an unknown variable? 122 ($7A): low byte of an unknown variable? 123 ($7B): high byte of an unknown variable? 124 ($7C): low byte of an unknown variable? 125 ($7D): high byte of an unknown variable? Examples of the mirrored format: $01 = %00000001 -> %10000000 = 128 $02 = %00000010 -> %01000000 = 64 $03 = %00000011 -> %11000000 = 192 $04 = %00000100 -> %00100000 = 32 $2A = %00101010 -> %01010100 = 84 $50 = %01010000 -> %00001010 = 10 $60 = %01100000 -> %00000110 = 6 $80 = %10000000 -> %00000001 = 1 $8C = %10001100 -> %00110001 = 49 $A0 = %10100000 -> %00000101 = 5 $B0 = %10110000 -> %00001101 = 13 $C0 = %11000000 -> %00000011 = 3 $CA = %11001010 -> %01010011 = 83 $FF = %11111111 -> %11111111 = 255 A stored value of $E7C0 gives you 999 stat value (the highest displayable value). --------ASCII------- Mirrored 'A' $41 = 65 = %01000001 -> %10000010 = $82 'B' $42 = 66 = %01000010 -> %01000010 = $42 'C' $43 = 67 = %01000011 -> %11000010 = $C2 'D' $44 = 68 = %01000100 -> %00100010 = $22 'E' $45 = 69 = %01000101 -> %10100010 = $A2 'F' $46 = 70 = %01000110 -> %01100010 = $62 'G' $47 = 71 = %01000111 -> %11100010 = $E2 'H' $48 = 72 = %01001000 -> %00010010 = $12 'I' $49 = 73 = %01001001 -> %10010010 = $92 'J' $4A = 74 = %01001010 -> %01010010 = $52 'K' $4B = 75 = %01001011 -> %11010010 = $D2 'L' $4C = 76 = %01001100 -> %00110010 = $32 'M' $4D = 77 = %01001101 -> %10110010 = $B2 'N' $4E = 78 = %01001110 -> %01110010 = $72 'O' $4F = 79 = %01001111 -> %11110010 = $F2 'P' $50 = 80 = %01010000 -> %00001010 = $0A 'Q' $51 = 81 = %01010001 -> %10001010 = $8A 'R' $52 = 82 = %01010010 -> %01001010 = $4A 'S' $53 = 83 = %01010011 -> %11001010 = $CA 'T' $54 = 84 = %01010100 -> %00101010 = $2A 'U' $55 = 85 = %01010101 -> %10101010 = $AA 'V' $56 = 86 = %01010110 -> %01101010 = $6A 'W' $57 = 87 = %01010111 -> %11101010 = $EA 'X' $58 = 88 = %01011000 -> %00011010 = $1A 'Y' $59 = 89 = %01011001 -> %10011010 = $9A 'Z' $5A = 90 = %01011010 -> %01011010 = $5A Here is a routine to reverse the bits. This will return the 'mirrored' version (ie. 'encrypted' or 'decrypted') of the input byte. MODULE UBYTE reversebits(UBYTE input) { return ( ((input & 128) >> 7) // bit 7 goes in bit 0 + ((input & 64) >> 5) // bit 6 goes in bit 1 + ((input & 32) >> 3) // bit 5 goes in bit 2 + ((input & 16) >> 1) // bit 4 goes in bit 3 + ((input & 8) << 1) // bit 3 goes in bit 4 + ((input & 4) << 3) // bit 2 goes in bit 5 + ((input & 2) << 5) // bit 1 goes in bit 6 + ((input & 1) << 7) // bit 0 goes in bit 7 ); } Champions of Krynn (426 bytes per character, save/????????.who)----------- 0..15: Name 17: STR 19: INT 21: WIS 23: DEX 25: CON 27: CHA 29: exceptional STR 91: race: 0 = Silvanesti Elf 1 = Qualinesti Elf 2 = Half-Elf 3 = Mountain Dwarf 4 = Hill Dwarf 5 = Kender 6 = Human 7 = Monster 92: class 0 = Cleric 1 = Druid 2 = Fighter 3 = Paladin 4 = Ranger 5 = Mage 6 = Thief 7 = Knight 8 = Cleric/Fighter 9 = Cleric/Fighter/Mage 10 = Cleric/Ranger 11 = Cleric/Mage 12 = Cleric/Thief 13 = Fighter/Mage 14 = Fighter/Thief 15 = Fighter/Mage/Thief 16 = Mage/Thief 93: knight type (only applies to knights) 1 = Knight of the Crown 2 = Knight of the Sword 3 = Knight of the Rose 94: god (only applies to clerics) 0 = None (Renegade Cleric) 1 = Paladine 2 = Majere 3 = Kiri-Solith 4 = Mishakal 5 = Sirrion 6 = Reorx 7 = Shinare 95: robes (only applies to mages) 1 = White (L/G, N/G, C/G alignments) 2 = Red (L/N, T/N, C/N alignments) 3 = Black (L/E, N/E, C/E alignments) 4 = None (Renegade Mage) 98..99: age 100: maximum hit points 103..201 (99 bytes): spell flags (1 = known, 0 = not known) 1- 7: cleric 8-20: mage 21-27: cleric 28-34: mage 36-43: cleric 44-54: mage 57: cleric 66-69: cleric 80-88: mage 99: mage 242..243: copper pieces 244..245: bronze pieces 246..247: platinum pieces 248..249: steel pieces 250..251: gems 252..253: jewelery 254: cleric level 255: druid level 256: fighter level 257: paladin level 258: ranger level 259: mage level 260: thief level 261: knight level 270: sex 0 = Male 1 = Female 271: alignment 0 = Lawful Good 1 = Lawful Neutral 2 = Lawful Evil 3 = Neutral Good 4 = True Neutral 5 = Neutral Evil 6 = Chaotic Good 7 = Chaotic Neutral 8 = Chaotic Evil 286..289: experience points 407: health 0 = Okay 1 = Animated 2 = TempGone 3 = Running 4 = Unconscious 5 = Dying 6 = Dead 7 = Stoned 8 = Gone 9 = Fucked 408: becomes 1 when healed 424: current hit points Citadel of Vras (280 bytes + 155 bytes per rostered character, savedgame)- ULONG ROSTERED, // number of characters in roster (bytes $0..$3) PARTY, // number of characters in party (bytes $4..$7) number[5? or PARTY?], // roster number (counting from 1) of each party member // 1st given is character in 1st party slot, etc. race[ROSTERED], unknown[ROSTERED], // for tamper detection (must be 1?)? weaponskill[ROSTERED], intelligence[ROSTERED], dexterity[ROSTERED], constitution[ROSTERED], luck[ROSTERED], cur_hp[ROSTERED], max_hp[ROSTERED], pe[ROSTERED], money[ROSTERED], // "GFCredits" xp[ROSTERED]; UWORD unknown1[ROSTERED], // always 1 (something to do with inventory) unknown2[ROSTERED], // always 0 unknown3[ROSTERED], // always 0 unknown4[ROSTERED], // always 0 unknown5[ROSTERED]; // 1,2,1,3 TEXT name[14 + 1]; // padded with nulls and null-terminated ... // remainder of file is unknown These values are all right-justified (and presumably big-endian). ULONG, UWORD and TEXT are of course unsigned 32-, 16- and 8-bit integers (4, 2 or 1 byte), respectively. ROSTER may range from 0..15. PARTY may range from 0..5. Race is encoded as follows: 0 = Jedi Knight 1 = Arcturian 2 = Ant Warrior 3 = Denk Mentat 4 = Lamian Elfin 5 = Sirian Lizard Unknown locations/encodings: Items (ie. inventory) (Spell-like) Powers Status (eg. alive, dead) Level Location (probably not stored, as saving can only be done at spaceport)? AC (Armour Class?) WC (?) Demon's Winter (V1.0) (1494 bytes, PARTY.DAT)----------------------------- $00..$0B 0.. 11: Name (padded with NULLs) (9 characters max) $0C 12: Item A $1D Item B $2E Item C $3F 63: Item D $50 80: Item E $61 97: Item F $72 114: Item G $83 Item H $94 Item I $A5 Item J $C4..$C7 196..199: Experience $C8..$E6 200..230: skills: these are $00 for no, $01 for yes $C8 200: Fencing $C9 201: Sword $CA 202: Axe $CB 203: Mace $CC 204: Karate $CD 205: Kung fu $CE 206: Berserking $CF 207: Tactics $D0 208: Hunting $D1 209: Persuasiveness $D2 210: Detect traps $D3 211: Disarm traps $D4 212: Illusion $D5 213: Possession $D6 214: Summoning $D7 215: #Shaman $D8 216: #Priesthood $D9 217: Fire runes $DA 218: Metal runes $DB 219: Wind runes $DC 220: Ice runes $DD 221: Spirit runes $DE 222: Weapon lore $DF 223: Potion lore $E0 224: Item lore $E1 225: Monster lore $E2 226: View land $E3 227: View room $E4 228: View items $E5 229: View mind $E6 230: Armored skin $F4 244: Level $F5 245: Race: 0 for Human 1 for Elf 2 for Dwarf 3 for Dark Elf 4 for Troll $F6 246: Class: 0 for Ranger 1 for Paladin 2 for Barbarian 3 for Monk 4 for Cleric 5 for Thief 6 for Wizard 7 for Sorcerer 8 for Visionary 9 for Scholar $F7 247: Speed $F8 248: Strength $F9 249: Intellect $FA 250: Endurance $FB 251: Skill $FC 252: Maximum HP $FD 253: Current HP $FE 254: Maximum SP $FF 255: Current SP 1310..1313: gold (999,999,999 is displayable limit) 1454: number of characters in party 1455: provisions (food) Item encodings are: 0: dagger 1: small axe 2: short sword 3: mace 4: morning star 5: broad sword 6: battle axe 7: 2-hand sword 8: cloth 9: leather 11: chain 11: scale 12: plate 13: crown 14: vial 15: ring 16: wand 17: staff 18: rod 19: gem 20: amulet 21: medallion 22: figurine 23: talisman 24: salve 25: vial 26: torch 27: lantern 28: Demon Crystal 29: Orb/Evertime 40: Ancient 41: Iron key 47: Bed 255: Nothing (empty) # skills have deities. All files are 1494 bytes long. 0.. 259 character 1 260.. 519 character 2 520.. 780 character 3 781..1041 character 4 1042..1301 character 5 1302..1493 footer 0: item 1: first dormant power 2: point cost of first dormant power 3: second dormant power 4: point cost of second dormant power 5: 0.. 99: invoked power usable how often per day 100..200: breakability + 100 (eg. 200 = 100%) 6: unknown 7: invoked power: 0 $00: none 1 $01: FLAME STRIKE 2 $02: FIRE STORM 3 $03: FLAME SHIELD 4 $04: SWORD 5 $05: CHAINS 6 $06: DEATH BLADE 7 $07: STRENGTH 8 $08: ARMOR 9 $09: RUST ARMOR 10 $0A: TEMPEST 11 $0B: STILL AIR 12 $0C: WINGS OF VICTORY 13 $0D: WINGS 14 $0E: HAIL STORM 15 $0F: CHILL 16 $10: SLOW 17 $11: FREEZE 18 $12: ICE SHIELD 19 $13: SPIRIT WRACK 20 $14: WEAKEN 21 $15: CLUMSINESS 22 $16: SANCTUARY 23 $17: WITHER STRIKE 24 $18: SUMMON 25 $19: ILLUSION 26 $1A: POSSESSION 27 $1B: WIND WALK 28 $1C: MELT 29 $1D: BREAK BONDS 30 $1E: FREEDOM 31 $1F: BREATH OF LIFE 32 $20: HEAL 33 $21: CURE POISON 34 $22: TRANSFERRENCE 35 $23: MAGIC TORCH 36 $24: CRYSTALIGHT 37 $25: RESURRECT 38 $26: ET CETERA 39 $27: POISON 40 $28: YOUTH 41 $29: POWER LEECH 42 $2A: THE END 8: point cost of invoked power 9: 1st constant power: $00: Berserking $01: Tactics $02: Hunting $03: Persuasiveness $04: Detect traps $05: Monster lore $06: View mind $07: Armored skin $08: God runes 10: 1st constant power, yes/no 11: 2nd constant power 12: 2nd constant power, yes/no 13: cursed ($00 for no, $01 for yes) 14: plus/minus + 10 (-10 to +245) ($09 is -1, $0A is +0, $0B is +1, etc.) 15: quality $00/$01: normal $02: Well made $03: Silver $04: Jade $05: Crystal $06: Gold $07: Platinum $08: Jewel encrusted 16: identified ($00 is no, $01 is yes) Unknown locations/encodings are: for each character: deity (for Shamen [sic] and Priesthood) "modifiers" to attributes, spell points, etc. (perhaps applied automatically by game?) dungeon items equipped weapon equipped armor status (poisoned/bound/etc.) item flags to indicate whether invoked power affects user or opponent? more generally: location time (hour, day, month) "order" (not talking about marching order)/formation ships (number, location, damage status, boarded or not) There is a character editor available for this game. See Aminet:game/edit/DWCE.lha Dragon Wars--------------------------------------------------------------- This game uses an encrypted format. The dw, data1 and/or data2 files are used for saved games. Unknown locations/encodings: For each character: Name Race? Status (a la Bard's Tale)? STR DEX INT SPR AC Combat AV Magic AV DV Level Points Experience Current health Maximum health Current stun Maximum stun Current power Maximum power GP Low Magic High Magic Other Magic Druid Magic Sun Magic Skills: Town Lore Climb Hiding Lockpick Pickpocket Swim Swords Bandage Bureaucracy High Magic Low Magic Bows Arcane Lore Druid Magic Sun Magic (presumably there are more) General: Time of day? Quest status? Location Facing direction Faery Tale Adventure (1181 bytes per character, [A-H].faery)-------------- 1 ?moving 4 ?moving 5 ?moving 8 ?moving 9 ?moving 15 ?moving 18 *trainer 30- 31 .BRaVery 32- 33 .LuCK 34- 35 .KiNDness 36- 37 .WeaLTH 39 @hunger 41 @sleepiness 43 %brother: $01 for Julian $02 for Philip $03 for Kevin 50- 51 ?time of day 53 ?time of day 88 ?moving 89 ?moving 93 ?turning 98 ?turning 100 %weapon in hand: $01 for dirk $02 for mace $03 for sword $04 for bow $05 for wand 105 ?turning 106-107 .VITality 108 ?turning 115 ?moving 137 ?moving 154 *dirk 155 *mace 156 *sword 157 *bow 158 *wand 159 *lasso 160 *shell 161 *sun stone 162 @arrows 163 @blue stones 164 @green jewels 165 @glass vials 166 @crystal orbs 167 @bird totems 168 @gold rings 169 @jade skulls 170 @gold keys 171 @green keys 172 @blue keys 173 @red keys 174 @grey keys 175 @white keys 176 *talisman 177 *rose 178 *fruit 179 @gold statues 180 *book 181 *herb 182 *writ 183 *bone 184 *shard Unknown locations/encodings: Location, facing direction, quest status, mount (none/raft/turtle/swan), map level, object locations/availability, time of day, hidden 'maximum vitality' (if it exists), combat: enemy types, locations, vitalities, facing directions. @ = 8-bit quantity. . = 16-bit quantity. * = flag ($00 for no, $01 for yes). ? = are unknown encodings. % = multiple choice. There is a character editor available for this game. See Aminet:game/edit/FTACE.lha Note that you must use a separate disk for saving, not the Faery Tale Adventure game disk. Note also that the currently available WHDLoad version seems to use 1299- byte save files; this alternative format has not yet been reverse engineered and is therefore not yet documented here, nor supported by FTACE. Hillsfar (V1.0) (188 bytes per character, ????????.HIL)------------------- 0: $00: $FC (magic byte) 1- 3: $01-$03: ? (elapsed time?) 4- 19: $04-$13: Name NULL-terminated, then padded with spaces. <= 15 characters, not including NULL byte. First 8 characters of name are also used in filename. 20: $14: STR 21: $15: exceptional STR 22: $16: INT 23: $17: WIS 24: $18: DEX 25: $19: CON 26: $1A: CHA 27: $1B: ? 28: $1C: Alignment 0 = L/G (Lawful Good) 1 = L/N (Lawful Neutral) 2 = L/E (Lawful Evil) 3 = N/G (Neutral Good) 4 = T/N (True Neutral) 5 = N/E (Neutral Evil) 6 = C/G (Chaotic Good) 7 = C/N (Chaotic Neutral) 8 = C/E (Chaotic Evil) 29: $1D: ? 30- 31: $1E-$1F: Age 32: $20: current HP 33: $21: maximum HP 34: $22: ? 35: $23: # of charges of Rod of Blasting 36- 39: $24-$27: ? 40- 43: $28-$2B: GP 44: $2C: Sex 0 = male 1 = female 45: $2D: Race 0 = Dwarf 1 = Elf 2 = Gnome 3 = Half-Elf 4 = Halfling 5 = Human 46- 49: $2E-$31: XP 50- 68: $32-$44: ? 69: $45: Bit fields: 1 = bit is set if you have lockpicks 2 = ? 4 = ? 8 = bit is set if you have the Chime of Opening 16 = ? 32 = ? 64 = ? 128 = ? 70: $46: left head of pick #1 71: $47: right head of pick #1 72- 73: $48-$49: ? 74: $4A: status of pick #1 75: $4B: left head of pick #2 76: $4C: right head of pick #2 77- 78: $4D-$4E: ? 79: $4F: status of pick #2 80: $50: left head of pick #3 81: $51: right head of pick #3 82- 83: $52-$53: ? 84: $54: status of pick #3 85: $55: left head of pick #4 86: $56: right head of pick #4 87- 88: $57-$58: ? 89: $59: status of pick #4 90: $5A: left head of pick #5 91: $5B: right head of pick #5 92- 93: $5C-$5D: ? 94: $5E: status of pick #5 95: $5F: left head of pick #6 96: $60: right head of pick #6 97- 98: $61-$62: ? 99: $63: status of pick #6 100: $64: left head of pick #7 101: $65: right head of pick #7 102-103: $66-$67: ? 104: $68: status of pick #7 105: $69: left head of pick #8 106: $6A: right head of pick #8 107-108: $6B-$6C: ? 109: $6D: status of pick #8 110: $6E: left head of pick #9 111: $6F: right head of pick #9 112-113: $70-$71: ? 114: $72: status of pick #9 115: $73: left head of pick #10 116: $74: right head of pick #10 117-118: $75-$76: ? 119: $77: status of pick #10 120: $78: left head of pick #11 121: $79: right head of pick #11 122-123: $7A-$7B: ? 124: $7C: status of pick #11 125: $7D: left head of pick #12 126: $7E: right head of pick #12 127-128: $7F-$80: ? 129: $81: status of pick #12 130-133: $82-$85: ? 134: $86: # of knock rings 135: $87: # of healing potions 136: $88: always $07? 137-154: $89-$9A: ? 155: $9B: always $01? 156: $9C: always $07? 157-169: $9D-$A9: ? 170: $AA: always $01? 171-179: $AB-$B3: ? 180: $B4: always $FF? 181-182: $B5-$B6: ? 183: $B7: Cleric level 184: $B8: Magic-User level 185: $B9: Fighter level 186: $BA: Thief level 187: $BB: ? Picks are numbered as follows: -1- -2- -3- -4- -5- -6- -7- -8- -9- 10- 11- 12- Pick statuses are as follows: $01: missing $02: reversed? $03: normal? $07: broken Left pick heads are at least $28..$38. Right pick heads are at least $15..$27. Unknown locations/encodings: time of day? quest statuses NPCs (eg. locksmith) present or not Chime of Opening spells? horse attributes which buildings you have tried to break into recently Might and Magic 2 (ROSTER.DAT, 8320 bytes)-------------------------------- Each character's section in the file ROSTER.DAT is 128 ($00..$7F) bytes long, as follows: $00..$09: Character's name (not NULL-terminated, padded with spaces) $0A: Null $0B: City: $01: Middlegate $02: Atlantium $03: Tundara $04: Vulcania $05: Sansobar $0C: Sex: $00: Male $01: Female $0D: Alignment: $00: Good $01: Neutral $02: Evil $0E: Race: $00: Human $01: Elf $02: Dwarf $03: Gnome $04: Half-Orc $0F: Class: $00: K... $01: P... $02: A... $03: C... $04: S... $05: R... $06: N... $07: B... $10: Might (maximum) $11: Intelligence (maximum) $12: Personality (maximum) $13: Speed (maximum) $14: Accuracy (maximum) $15: Luck (maximum) $16: Magic Resistance (as measured in Vulcania) $17: Fire Resistance $18: Electricity Resistance $19: Cold Resistance $1A: Energy Resistance $1B: Sleep Resistance $1C: Poison Resistance $1D: Acid Resistance $1E: Thievery $1F..$20: ? $21: Age $22: ? $23: Spell level (maximum) $24: Armour class $25: Food $26: Condition: $00: Good $08: Poisoned $81: Dead $27: ? $28..$2D: Equipped 1..6 (see Might and Magic II items list for full information regarding what goes here) $2E..$33: Equipped 1..6 charges (even though in theory you can give an item $FF charges, the item will only recognize a maximum of $3F) $34..$39: Equipped 1..6 + $3A..$3F: Pack 1..6 $40..$45: Pack 1..6 charges $46..$4B: Pack 1..6 + $4C..$4F: ? $50: Secondary skills (one per nybble): $0: No Skills $1: Arms Master $2: Athlete $3: Cartographer $4: Crusader $5: Diplomat $6: Gambler $7: Gladiator $8: Hero $9: Linguist $A: Merchant $B: Moutaineer $C: Navigator $D: Pathfinder $E: Pickpocket $F: Soldier $51..$56: Available spells (set bytes $51..$56 to $FF to obtain ALL spells) $57: Null $58..$59: Current spell points (little-endian) $5A..$5B: Maximum spell points (little-endian) $5C..$5D: Gems (little-endian) $5E..$5F: Current hit points (little-endian) $60..$61: Maximum hit points (little-endian) $62..$65: Experience points (little-endian) $66..$69: Gold (little-endian) $6A: Null $6B: Might (current) $6C: Intelligence (current) $6D: Personality (current) $6E: Speed (current) $6F: Accuracy (current) $70: Luck (current) $71: Level $72: Spell level (current) $73: Endurance $74..$7F: ? Neuromancer (Game1..Game4, 1564 bytes)------------------------------------ Unknown locations/encodings: Name: 8 characters length maximum Date: MM/DD/YY? Time: HH:MMzm? Items: eg. $6 pawn ticket CON: (CONstitution?) A 16-bit integer? Skills Game settings? Phantasie 1 (V1.0) (GUILD.DAT, 7050 bytes, 282 bytes per character)------- 0-1: Strength 2-3: Intelligence 4-5: Dexterity 6-7: Constitution 8-9: Charisma 10-11: Luck 17: Spell points (maximum) 19: Spell points (current) 21: Hit points (maximum) 23: Hit points (current) 25: Status: $00: Dead $01: OK $02: Sleep 30-31: Attack skill 32-33: Parry skill 34-35: Find Item skill 36-37: Spot Trap skill 38-39: Disarm Trap skill 40-41: Listen skill 44-45: Pick Lock skill 48-49: Swim skill 70-71: Score (0..$7FFF are possible but scores >999 don't display correctly in the game) 73: Air runes ($00 = no, $01 = yes) 75: Earth runes ($00 = no, $01 = yes) 77: Fire runes ($00 = no, $01 = yes) 79: Water runes ($00 = no, $01 = yes) 81: God runes ($00 = no, $01 = yes) 83: 3rd Equipment slot: $00 = Nothing $01 = Gloves $02 = Wood Shld $03 = Wood Sh+1 $04 = Sm Shield $05 = Sm Shld+1 $06 = Sm Shld+2 $07 = Sm Shld+3 $08 = Md Shield $09 = Md Shld+1 $0A = Md Shld+2 $0B = Md Shld+3 $0C = Lr Shield $0D = Lr Shld+1 $0E = Lr Shld+2 $0F = Lr Shld+3 $10 = Giant Sh $11 = Gnt Sh +1 $12 = Gnt Sh +2 $13 = Gnt Sh +3 $14 = God Shld $15 = Clothing $16 = Robes $17 = Leather $18 = H Leather $19 = Ring Mail $1A = Scale Ml $1B = Chain Ml $1C = Splint Ml $1D = Banded Ml $1E = Plate Ml $1F = Cloth +1 $20 = Robes +1 $21 = Leather+1 $22 = Leather+2 $23 = Ring Ml+1 $24 = Ring Ml+2 $25 = Chain +1 $26 = Chain +2 $27 = God Robes $28 = God Armour $29 = Stick $2A = Knife $2B = Sm Club $2C = Sm Staff $2D = Sm Mace $2E = Dagger $2F = Sm Flail $30 = Club $31 = Mace $32 = Sm Hammer $33 = Sm Axe $34 = Staff $35 = Sm Sword $36 = Flail $37 = Hammer $38 = Ptch Fork $39 = Spear $3A = Axe $3B = Sword $3C = Hvy Mace $3D = Maul $3E = Trident $3F = Lrg Spear $40 = Lrg Axe $41 = Morn.Star $42 = Pike $43 = Lng Sword $44 = Spetum $45 = Bardiche $46 = Halberd $47 = Sm Mace+1 $48 = Dagger+1 $49 = Sm Mace+2 $4A = Dagger+2 $4B = Dagger+3 $4C = Staff +1 $4D = Dagger+4 $4E = Flail +1 $4F = Spear +1 $50 = Axe +1 $51 = Sword +1 $52 = Sword +2 $53 = Sword +3 $54 = Lrg Axe+1 $55 = Sword +4 $56 = Sword +5 $57 = Sword +6 $58 = Halberd+1 $59 = Sword +7 $5A = Halberd+2 $5B = Halberd+3 $5C = Sword +10 $5D = Halberd+4 $5E = Halberd+5 $5F = Halberd+6 $60 = Halberd+7 $61 = God Knife $62 = God Mace $63 = God Axe $64 = God Sword $65 = Heal Pot1 $66 = Heal Pot2 $67 = Heal Pot3 $68 = Heal Pot4 $69 = Heal Pot5 $6A = Heal Pot6 $6B = Heal Pot7 $6C = Heal Pot8 $6D = Heal Pot9 $6E = Healing10 $6F = Magic 1 $70 = Magic 2 $71 = Magic 3 $72 = Magic 4 $73 = Magic 5 $74 = Magic 6 $75 = Magic 7 $76 = Magic 8 $77 = Magic 9 $78 = Magic 10 $79 = Scroll 1 $7A = Scroll 2 $7B = Scroll 3 $7C = Scroll 4 $7D = Scroll 5 $7E = Scroll 6 $7F = Scroll 7 $80 = Scroll 8 $81 = Scroll 9 $82 = Scroll 10 $83 = Scroll 11 $84 = Scroll 12 $85 = Scroll 13 $86 = Scroll 14 $87 = Scroll 15 $88 = Scroll 16 $89 = Scroll 17 $8A = Scroll 18 $8B = Sroll 19 [sic] $8C = Scroll 20 $8D = Ring A $8E = Ring B $8F = Ring C $90 = Ring D $91 = Ring E $92 = Ring F $93 = Ring G $94 = Ring H $95 = Ring I $96 = Wand $97 = Emerald A $98 = Emerald B $99 = Key $9A = Emerald D $9B = Emerald E $9C = Sapphire A $9D = Sapphire B $9E = Sapphire D [sic] $9F = Sapphire C [sic] $A0 = Sapphire E [sic] $A1 = Ruby A $A2 = Ruby B $A3 = Ruby C $A4 = Ruby D $A5 = Ruby E $A6 = Coin A $A7 = Coin B $A8 = Coin C $A9 = Coin D $AA = Coin E $AB = Gold Stat $AC = Gold Key $AD = Gold Platinum $AE = Gold Coin $AF = Gold Ring $B0 = Diamond A $B1 = Diamond B $B2 = Diamond C $B3 = Diamond D $B4 = Diamond E 85: 2nd Equipment slot 87: 1st Equipment slot 89: Level 91: purged flag ($00 = purged, $01 = normal) Spells ($00 = no, $01 = yes): 97: Healing 1 99: Healing 2 101: Healing 3 103: Healing 4 105: Fireflash 1 107: Fireflash 2 109: Fireflash 3 111: Fireflash 4 113: Quickness 1 115: Quickness 2 117: Quickness 3 119: Quickness 4 121: Strength 1 123: Strength 2 125: Strength 3 127: Strength 4 129: Protection 1 131: Protection 2 133: Protection 3 135: Protection 4 137: Confusion 1 139: Confusion 2 141: Confusion 3 143: Confusion 4 145: Weakness 1 147: Weakness 2 149: Weakness 3 151: Weakness 4 153: Binding 1 155: Binding 2 157: Binding 3 159: Binding 4 161: Mindblast 1 163: Mindblast 2 165: Mindblast 3 167: Mindblast 4 169: Flamebolt 1 171: Flamebolt 2 173: Flamebolt 3 175: Flamebolt 4 177: Charm 179: Sleep 181: Teleportation 221: Class: $00: Thief $01: Monk $02: Ranger $03: Fighter $04: Priest $05: Wizard 257: Race: $00: Human $01: Dwarf $02: Elf $03: Halfling $04: Gnome $05: Pixie $06: Sprite $07: Ogre $08: Gnoll $09: Troll $0A: Kobold $0B: Orc $0C: Goblin $0D: Lizard Man $0E: Minotaur $0F: Undead 262-263: GP 264-265: Age ($0000..$7FFF): age is this value divided by 26 (0..1260) 266-269: XP 270-278: Name (up to 9 characters) (all unused bytes are 0) Unknown locations/encodings: For each character: healing potions magic potions scrolls treasures location (ie. which city) party member yes/no flag For entire party: location (ie. which city) For equipment slots, values >$64 are illegal. File is 7050 bytes long. 0.. 7049: 25 character records (the roster); each character record is 282 bytes long. There is a character editor available for this game. See Aminet:game/edit/PCE.lha Phantasie 3 (V1.0) (GAMESAVE.DAT, 11812 bytes, 262 bytes per character)--- 0-6: Name (up to 7 characters) (all unused bytes are 0) Stats have a maximum of 22. 10-11: STR 12-13: INT 14-15: DEX 16-17: CON 18-19: CHA 20-21: LCK 28-29: maximum SP 30-31: current SP 32-33: maximum HP 34-35: current HP 39: number of items carried (limit of 9) 40-41: Age ($0000..$7FFF): age is this value divided by 26 (0..1260) 45: Status: $00: Dead $01: Okay $02: Asleep $03: Out $04: Down 48-49: Attack skill 52-53: Parry skill 56-57: Find Item skill 60-61: Find Trap skill 64-65: Disarm Trap skill 68-69: Listen skill 72-73: Fire Bow skill 76-77: Pick Lock skill 80-81: Swimming skill 87: number of spells known (limit is 32) 89: Origin: $00: Gelnor $01: Ferronrah $02: Netherworld $03: Scandor $04: Light $05: Darkness 95: Location: $01: Pendragon (24,37) $02: Sandy Shores (15,39) $03: Pendleton ( 5,35) $04: Rocky Hills (36,42) $05: Deltor (44,52) $06: Tirith (23,65) $07: Tierrin (11,69) $08: Asmith (25,27) $09: Sierion ( 5,51) $0A: Xanador (45,66) $0B: Flagler (45, 5) $0C: Lansing (21,11) $0D: Scanport ( 9, 9) $0E: Sciattica (15,22) $0F: Light $10: Dark $11: Death 116-117: Level (maximum is 21) 130-131: Score 143: Social $00: Peasant $01: Labourer $02: Craftsman $03: Noble $04: Darklord $05: Superhero 149: Class $00: Fighter $01: Thief $02: Priest $03: Ranger $04: Monk $05: Wizard 151: 1st item 153: 2nd item 155: 3rd item 157: 4th item 159: 5th item 161: 6th item 163: 7th item 165: 8th item 167: 9th item 169: Race $00: Human $01: Dwarf $02: Elf $03: Gnome $04: Halfling $05: Random $06: Gnoll $07: Goblin $08: Kobold $09: Lizard Man $0A: Minotaur $0B: Ogre $0C: Orc $0D: Pixie $0E: Sprite $0F: Troll $10: Elemental $11: Undead 177: 1st spell 179: 2nd spell 181: 3rd spell 183: 4th spell 185: 5th spell 187: 6th spell 189: 7th spell 191: 8th spell 193: 9th spell 195: 10th spell 197: 11th spell 199: 12th spell 201: 13th spell 203: 14th spell 205: 15th spell 207: 16th spell 209: 17th spell 211: 18th spell 213: 19th spell 215: 20th spell 217: 21st spell 219: 22nd spell 221: 23rd spell 223: 24th spell 225: 25th spell 227: 26th spell 229: 27th spell 231: 28th spell 233: 29th spell 235: 30th spell 237: 31st spell 239: 32nd spell Null byte between each spell, and between each item. 243: Head $00: Okay $01: Injured $02: Broken $03: Gone 245: Left Arm 247: Right Arm 249: Torso 251: Left Leg 253: Right Leg 254-257: GP 258-261: XP No particular item ordering seems enforced. Items are: Shields: $01 Glove $02 Wooden Shield +0 $03 Wooden Shield +1 $04 Small Shield +0 $05 Small Shield +1 $06 Small Shield +2 $06 Small Shield +3 $08 Medium Shield +0 $09 Medium Shield +1 $0A Medium Shield +2 $0B Medium Shield +3 $0C Large Shield +0 $0D Large Shield +1 $0E Large Shield +2 $0F Large Shield +3 $10 Giant Shield +0 $11 Giant Shield +1 $12 Giant Shield +2 $13 Giant Shield +3 $14 God Shield Armour: $15 Clothing $16 Robes $17 Leather $18 Hard Leather $19 Ring Mail $1A Scale Mail $1B Chain Mail $1C Splint Mail $1D Banded Mail $1E Plate Mail $1F Cloth +1 $20 Robes +1 $21 Leather +1 $22 Leather +2 $23 Ring Mail +1 $24 Ring Mail +2 $25 Chain Mail +1 $26 Chain Mail +2 $27 God Robes $28 God Armour Bows: $29 Self Bow +0 $2A Self Bow +1 $2B Self Bow +2 $2C Short Bow +0 $2D Short Bow +1 $2E Short Bow +2 $2F Medium Bow +0 $30 Medium Bow +1 $31 Medium Bow +2 $32 Compound Bow +0 $33 Compound Bow +1 $34 Compound Bow +2 $35 Gnome Bow $36 Long Bow +0 $37 Long Bow +1 $38 Long Bow +2 $39 Crossbow +0 $3A Crossbow +2 $3B Old Bow $3C God Bow Weapons: $3D Knife $3E Dagger +0 $3F Club +0 $40 Mace $41 Small Axe $42 Staff $43 Short Sword $44 Flail +0 $45 Hammer $46 Spear +0 $47 Axe $48 Sword +0 $49 Heavy Mace $4A Trident $4B Large Spear $4C Large Axe $4D Pike $4E Long Sword $4F Bardiche $50 Halberd +0 $51 Dagger +1 $52 Dagger +2 $53 Club +1 $54 Club +2 $55 Flail +1 $56 Flail +2 $57 Spear +1 $58 Sword +1 $59 Sword +2 $5A Sword +4 $5B Sword +5 $5C Sword +6 $5D Halberd +1 $5E Halberd +2 $5F Sword +10 $60 Halberd +5 $61 Halberd +6 $62 God Knife $63 God Mace $64 God Sword Potions: $65 Healing Potion 1 $66 Healing Potion 2 $67 Healing Potion 3 $68 Healing Potion 4 $69 Healing Potion 5 $6A Healing Potion 6 $6B Healing Potion 7 $6C Healing Potion 8 $6D Healing Potion 9 $6E Healing Potion 10 $6F Magic Potion 1 $70 Magic Potion 2 $71 Magic Potion 3 $72 Magic Potion 4 $73 Magic Potion 5 $74 Magic Potion 6 $75 Magic Potion 7 $76 Magic Potion 8 $77 Magic Potion 9 $78 Magic Potion 10 Scrolls: $79 Scroll 1 $7A Scroll 2 $7B Scroll 3 $7C Scroll 3 $7D Scroll 3 $7E Scroll 4 $7F Scroll 5 $80 Scroll 6 $81 Scroll 7 $82 Scroll 7 $83 Scroll 7 $84 Scroll 8 $85 Scroll 9 $86 Scroll 10 $87 Scroll 11 $88 Scroll 12 $89 Scroll 13 $8A Scroll 14 $8B Scroll 15 $8C Scroll 16 Treasures: $8D Quartz $8E a Pearl $8F Crystal $90 Gold Ore $91 a Statuette $92 Jade $93 Onyx $94 a Statue $95 a Sapphire $96 Azurite $97 Coral $98 Turquoise $99 Topaz $9A Jacinth $9B a Burnt Gem $9C a Sweet Bottle $9D a Foul Bottle $9E a Black Jar $9F a Ruby $A0 a Nice Gem $A1 an Opal $A2 a Star Ruby $A3 an Emerald $A4 a Blue Opal $A5 a Diamond $A6 Amethyst $A7 a Fire Opal $A8 a Gem of Light $A9 a Black Urn $AA a Dark Key $AB a Black Vase $AC a Light Key $AD a Golden Chalice $AE a Silk Tapestry $AF a Painting $B0 a Golden Belt $B1 an Old Crown $B2 an Old Coin $B3 Old Wine $B4 Wand of Nikademus File is 11812 bytes long. 0.. 6549: 25 character records (the roster); each character record is 262 bytes long. 6550.. 8383: 7 character records (the party); each character record is 262 bytes long. 8384..11811: non-character-specific data 8384.. 8509: distribution of items/XP? 8510.. 8513: gold carried by party $2145: time? (starts at 0) $2167: time? $2147 (8519), $214F (8527): party X-location (4-46) $2149 (8521), $2151 (8529): party Y-location (4-70) 8547: party location (ie. which city) Unknown locations/encoding: Time There is a character editor available for this game. See Aminet:game/edit/PCE.lha Spells: $01 Healing 1 $02 Healing 2 $03 Healing 3 $04 Healing 4 $05 Fireflash 1 $06 Fireflash 2 $07 Fireflash 3 $08 Fireflash 4 $09 Quickness 1 $0A Quickness 2 $0B Quickness 3 $0C Quickness 4 $0D Flame Arrow 1 $0E P.Flame Arrow 1 $0F Flame Arrow 2 $10 P.Flame Arrow 2 $11 Protection 1 $12 Protection 2 $13 Protection 3 $14 Protection 4 $15 Confusion 1 $16 Confusion 2 $17 Confusion 3 $18 Confusion 4 $19 Weakness 1 $1A Weakness 2 $1B Weakness 3 $1C Weakness 4 $1D Binding 1 $1E Binding 2 $1F Binding 3 $20 Binding 4 $21 Mindblast 1 $22 Mindblast 2 $23 Mindblast 3 $24 Mindblast 4 $25 Flamebolt 1 $26 Flamebolt 2 $27 Flamebolt 3 $28 Flamebolt 4 $29 Charm $2A Sleep $2B Teleportation $2C Resurrection $2D Ninja 2 $2E Fear $2F Dissolve $30 Summon Elemental $31 Dispell Undead $32 Ninja 1 $33 Awaken $34 Monster Evaluate $35 Vision $36 Transportation $37 Accuracy $38 Party Accuracy $39 Divine Aid Questron 2 (V1.0)--------------------------------------------------------- NAMES (144 bytes)--------------------------------------------------------- 0 flag for character #1 ($80 = used, $00 = purged) 1- 2 $00 3- 16 name of character #1 (14 chars max, unused bytes are $00) 17 $00 18 flag for character #2 ($80 = used, $00 = purged) 19- 20 $00 21- 34 name of character #2 (14 chars max, unused bytes are $00) 35 $00 36 flag for character #3 ($80 = used, $00 = purged) 37- 38 $00 39- 52 name of character #3 (14 chars max, purged bytes are $00) 53 $00 54 flag for character #4 ($80 = used, $00 = purged) 55- 56 $00 57- 70 name of character #4 (14 chars max, unused bytes are $00) 71 $00 72 flag for character #5 ($80 = used, $00 = purged) 73- 74 $00 75- 88 name of character #5 (14 chars max, unused bytes are $00) 89 $00 90 flag for character #6 ($80 = used, $00 = purged) 91- 92 $00 93-106 name of character #6 (14 chars max, unused bytes are $00) 107 $00 108 flag for character #7 ($80 = used, $00 = purged) 109-110 $00 111-124 name of character #7 (14 chars max, unused bytes are $00) 125 $00 126 flag for character #8 ($80 = used, $00 = purged) 127-128 $00 129-142 name of character #8 (14 chars max, unused bytes are $00) 144 $00 Gn (ie. G0, G1, G2, G3, G4, G5, G6, G7) (255 bytes each)------------------ 0- 1 Hit points 2- 3 Food 4- 5 Gold pieces 6 ? 7 Charisma 8 Strength 9 Agility 10 Stamina 11 Intelligence 12 Armed (wielded) weapon: $6B ( 0) = Dagger $6C ( 1) = Hammer $69 ( 2) = Hatchet $6A ( 3) = Staff $6F ( 4) = Cudgel $70 ( 5) = Rapier $6D ( 6) = Axe $6E ( 7) = Fauchard $63 ( 8) = Sabre $64 ( 9) = Weighted Spear $61 (10) = Pike $62 (11) = Shortbow $67 (12) = Broadsword $68 (13) = Crossbow anything else = no wielded weapon 13 Worn armour: $6B ( 0) = Rawhide $6C ( 1) = Studded Leather $69 ( 2) = Ring Mail $6A ( 3) = Bar Mail $6F ( 4) = Chain Mail $70 ( 5) = Plate Mail $6D ( 6) = Ribbed Plate anything else = no worn armour 14 Mount: $6B ( 0) = none $6C ( 1) = bird $69 ( 2) = ship $6A ( 3) = donkey? $6F ( 4) = horse? $70 ( 5) = camel 15 ? 16 X-location 17 Y-location 18 ? 19 Magic Missile 20 Fireball 21 Sonic Whine 22 Time Sap 23 ? 24 Dagger (weapon # 0) 25 Hammer (weapon # 1) 26 Hatchet (weapon # 2) 27 Staff (weapon # 3) 28 Cudgel (weapon # 4) 29 Rapier (weapon # 5) 30 Axe (weapon # 6) 31 Fauchard (weapon # 7) 32 Sabre (weapon # 8) 33 Weighted Spear (weapon # 9) 34 Pike (weapon #10) 35 Shortbow (weapon #11) 36 Broadsword (weapon #12) 37 Crossbow (weapon #13) 38 ? 39 Rawhide (armour # 0) 40 Studded Leather (armour # 1) 41 Ring Mail (armour # 2) 42 Bar Mail (armour # 3) 43 Chain Mail (armour # 4) 44 Plate Mail (armour # 5) 45 Ribbed Plate (armour # 6) 46 ? 47 Gold Key (item # 0) 48 Opal Key (item # 1) 49 Iron Key (item # 2) 50 Brass Key (item # 3) 51 Copper Key (item # 4) 52 Silver Key (item # 5) 53 Emerald Key (item # 6) 54 Onyx Key (item # 7) 55 Ruby Key (item # 8) 56 Agate Key (item # 9) 57 Sapphire Key (item #10) 58 Black Key (item #11) 59 Diamond (item #12) 60 Unicorn Horn (item #13) 61 Wand of Power (item #14) 62 Eternal Flame (item #15) 63 Book of Magic (item #16) 64 Crystal Goblet (item #17) 65 Chalice of Arvyl (item #18) 66 Moonstone Amulet (item #19) 67 Orb of Enchantment (item #20) 68 Scroll of Scalna (item #21) 69 Rope & Hooks (item #22) 70 Bread of Life (quantity) 71- 75 ? 76 Rank: $6B ( 0) = Plebe $6C ( 1) = Adventurer $69 ( 2) = Scout $6A ( 3) = Apprentice $6F ( 4) = Knight 77- 79 ? 80- 94 name (encrypted; unused bytes are $6B (0)) 95- 98 ? 99-100 time 101 Item in use: $6B ( 0) = Gold Key $6C ( 1) = Opal Key $69 ( 2) = Iron Key $6A ( 3) = Brass Key $6F ( 4) = Copper Key $70 ( 5) = Silver Key $6D ( 6) = Emerald Key $6E ( 7) = Onyx Key $63 ( 8) = Ruby Key $64 ( 9) = Agate Key $61 (10) = Sapphire Key $62 (11) = Black Key $67 (12) = Diamond $68 (13) = Unicorn Horn $65 (14) = Wand of Power $66 (15) = Eternal Flame $5B (16) = Book of Magic $5C (17) = Crystal Goblet $57 (18) = Chalice of Arvyl $56 (19) = Moonstone Amulet $5F (20) = Orb of Enchantment $60 (21) = Scroll of Scalna $5D (22) = Rope & Hooks anything else = no item in use 102-143 ? G0..G7 correspond to characters #1..#8 respectively. Purging is done by the game as follows: the relevant 'used' flag in NAMES is cleared (to $00). all bytes in the appropriate Gn file are cleared (to $6B). Notes: Carrying all/nearly all weapons + armour + items can cause rendering problems in the game. Saving in towns and dungeons is not possible. "Realm" seems not to be stored explicitly, but rather is determined by the X/Y location variables. Inventory slots are: $6B (0) = don't have it. $6C (1) = do have it. 1-byte quantities (attributes, locations, quantities of spells, bread of life) are stored in this 'encrypted' format: $00 = 181 $01 = 170 $02 = 171 $03 = 168 $04 = 169 $05 = 174 $06 = 175 $07 = 172 $08 = 173 $09 = 162 $0A = 163 $0B = 160 $0C = 161 $0D = 166 $0E = 167 $0F = 164 $10 = 165 $11 = 90 $12 = 91 $13 = 88 $14 = 89 $15 = 94 $16 = 95 $17 = 92 $18 = 93 $19 = 82 $1A = 83 $1B = 80 $1C = 81 $1D = 86 $1E = 87 $1F = 84 $20 = 85 $21 = 74 $22 = 75 $23 = 72 $24 = 73 $25 = 78 $26 = 79 $27 = 76 $28 = 77 $29 = 66 $2A = 67 $2B = 64 $2C = 65 $2D = 70 $2E = 71 $2F = 68 $30 = 69 $31 = 122 $32 = 123 $33 = 120 $34 = 121 $35 = 126 $36 = 127 $37 = 124 $38 = 125 $39 = 114 $3A = 115 $3B = 112 $3C = 113 $3D = 118 $3E = 119 $3F = 116 $40 = 117 $41 = 106 $42 = 107 $43 = 104 $44 = 105 $45 = 110 $46 = 111 $47 = 108 $48 = 109 $49 = 98 $4A = 99 $4B = 96 $4C = 97 $4D = 102 $4E = 103 $4F = 100 $50 = 101 $51 = 26 $52 = 27 $53 = 24 $54 = 25 $55 = 30 $56 = 19 $57 = 18 $58 = 29 $59 = 28 $5A = 31 $5B = 16 $5C = 17 $5D = 22 $5E = 23 $5F = 20 $60 = 21 $61 = 10 $62 = 11 $63 = 8 $64 = 9 $65 = 14 $66 = 15 $67 = 12 $68 = 13 $69 = 2 $6A = 3 $6B = 0 $6C = 1 $6D = 6 $6E = 7 $6F = 4 $70 = 5 $71 = 58 $72 = 59 $73 = 56 $74 = 57 $75 = 62 $76 = 63 $77 = 60 $78 = 61 $79 = 50 $7A = 51 $7B = 48 $7C = 49 $7D = 54 $7E = 55 $7F = 52 $80 = 53 $81 = 42 $82 = 43 $83 = 40 $84 = 41 $85 = 46 $86 = 47 $87 = 44 $88 = 45 $89 = 34 $8A = 35 $8B = 32 $8C = 33 $8D = 38 $8E = 39 $8F = 36 $90 = 37 $91 = 218 $92 = 219 $93 = 216 $94 = 217 $95 = 222 $96 = 223 $97 = 220 $98 = 221 $99 = 210 $9A = 211 $9B = 208 $9C = 209 $9D = 214 $9E = 215 $9F = 212 $A0 = 213 $A1 = 202 $A2 = 203 $A3 = 200 $A4 = 201 $A5 = 206 $A6 = 207 $A7 = 204 $A8 = 209 $A9 = 194 $AA = 195 $AB = 192 $AC = 193 $AD = 198 $AE = 199 $AF = 196 $B0 = 197 $B1 = 250 $B2 = 251 $B3 = 248 $B4 = 249 $B5 = 254 $B6 = 255 $B7 = 252 $B8 = 253 $B9 = 242 $BA = 243 $BB = 240 $BC = 241 $BD = 246 $BE = 247 $BF = 244 $C0 = 245 $C1 = 234 $C2 = 235 $C3 = 232 $C4 = 233 $C5 = 238 $C6 = 239 $C7 = 236 $C8 = 237 $C9 = 226 $CA = 227 $CB = 224 $CC = 225 $CD = 230 $CE = 231 $CF = 228 $D0 = 229 $D1 = 154 $D2 = 155 $D3 = 152 $D4 = 153 $D5 = 158 $D6 = 159 $D7 = 156 $D8 = 157 $D9 = 146 $DA = 147 $DB = 144 $DC = 145 $DD = 150 $DE = 151 $DF = 148 $E0 = 149 $E1 = 138 $E2 = 139 $E3 = 136 $E4 = 137 $E5 = 142 $E6 = 143 $E7 = 140 $E8 = 141 $E9 = 130 $EA = 131 $EB = 128 $EC = 129 $ED = 134 $EE = 135 $EF = 132 $F0 = 133 $F1 = 186 $F2 = 187 $F3 = 184 $F4 = 185 $F5 = 190 $F6 = 191 $F7 = 188 $F8 = 189 $F9 = 178 $FA = 179 $FB = 176 $FC = 177 $FD = 182 $FE = 183 $FF = 180 2-byte numbers are 'encrypted' as follows (these are just two encypted 1- byte numbers, big-endian; ie. the high and low bytes are encrypted separately): $1000 = 42421 $2000 = 21941 $3000 = 17845 $4000 = 30133 $5000 = 26037 $6B6B = 0 (ie. ($6B ( 0) * 256 = 0) + ($6B ( 0) * 1 = 0) = 0) $6BA3 = 200 (ie. ($6B ( 0) * 256 = 0) + ($A3 (200) * 1 = 200) = 200) $AAAA = 50115 $B6B6 = 65535 (ie. ($B6 (255) * 256 = 65280) + ($B6 (255) * 1 = 255) = 65535) There is a character editor available for this game. See Aminet:game/edit/Q2CE.lha Shadowlands--------------------------------------------------------------- As this uses a non-AmigaDOS disk format, disk-based rather than file-based editing is required. Saved games are stored on disk 3 of 3. Unknown locations/encodings: For each character: Name Location Facing direction? Class? Race? Status (eg. dead)? Combat Lvl Magik Current Strength Maximum Strength Current Health Maximum Health Current Armour Maximum Armour Gauges for food, water and Force Items (15 slots) Extra (held-in-hand?) item slot General: Formation (4x4 grid) Time of day? Stats of nearby monsters? Quest status? Times of Lore (SAVEGAME.DAT, 5782 bytes)---------------------------------- 4966..4967: $1366..$1367: Rations of food? 5392..5393: $1510..$1511: Rations of food? 5488..5489: $1570..$1571: Gold pieces Unknown locations/encodings: Score? Location Facing direction Time of day Class (warrior/barbarian/woman?) Objects Quest status? Locations, types, facing directions, HP, etc. of nearby monsters? Weapon in hand Ultima 5 (saved.gam, 4838 bytes)------------------------------------------ 0: $0000: ? 1: $0001: $00 means they are in the party? $FF means they are not in the party? 2- 9: $0002..$0009: Name of character #1 (unused bytes are $00) 10- 11: $000A..$000B: ? 12: $000C: Class of character #1: "A" = Avatar "B" = Bard "F" = Fighter "M" = Mage 13: $000D: Status of character #1: "D" = Dead? "G" = Good "P" = Poisoned? 14: $000E: STRength of character #1 15: $000F: DEXterity of character #1 16: $0010: INTelligence of character #1 17: $0011: current Magic Points of character #1 (maximum MP is INT) 18- 19: $0012..$0013: current Hit Points of character #1 20- 21: $0014..$0015: maximum Hit Points of character #1 22- 23: $0016..$0017: eXperience Points of character #1 24: $0018: experience level of character #1 25- 31: $0019..$001F: ? 32- 63: $0020..$003F: same as $0000..$001F but for Shamino 64- 95: $0040..$005F: same as $0000..$001F but for Iolo 96- 127: $0060..$007F: same as $0000..$001F but for Mariah 128- 159: $0080..$009F: same as $0000..$001F but for Geoffrey 160- 191: $00A0..$00BF: same as $0000..$001F but for Jaana 192- 223: $00C0..$00DF: same as $0000..$001F but for Julia 224- 255: $00E0..$00FF: same as $0000..$001F but for Dupre 256- 287: $0100..$011F: same as $0000..$001F but for Katrina 288- 319: $0120..$013F: same as $0000..$001F but for Sentri 320- 351: $0140..$015F: same as $0000..$001F but for Gwenno 352- 383: $0160..$017F: same as $0000..$001F but for Johne 384- 415: $0180..$019F: same as $0000..$001F but for Gorn 416- 447: $01A0..$01BF: same as $0000..$001F but for Maxwell 448- 479: $01C0..$01DF: same as $0000..$001F but for Toshi 480- 511: $01E0..$01FF: same as $0000..$001F but for Saduj 512- 513: $0200..$0201: ? 514- 515: $0202..$0203: Food 516- 517: $0204..$0205: Gold (pieces) 518: $0206: Keys 519: $0207: Gems 520: $0208: Torches 521- 541: $0209..$021D: ? 542: $021E: Sm. Shield 543: $021F: ? 544: $0220: ? 545: $0221: ? 546: $0222: ? 547: $0223: Cloth 548: $0224: ? 549: $0225: ? 550: $0226: ? 551: $0227: ? 552: $0228: ? 553: $0229: ? 554: $022A: Dagger 555: $022B: ? 556: $022C: Club 557: $022D: Flame Oil 558- 585: $022E..$0249: ? 586: $024A: In Lor 587: $024B: Grav Por 588: $024C: An Zu 589: $024D: An Nox 590: $024E: Mani 591: $024F: ? 592: $0250: ? 593: $0251: An Xen Cor 594: $0252: ? 595: $0253: ? 596: $0254: ? 597: $0255: ? 598: $0256: Vas Lor 599: $0257: Vas Flam 600- 629: $0258..$0279: ? 630: $027A: Great Light (Vas Lor ) scrolls 631: $027B: Wind Change (Rel Hur ) scrolls 632: $027C: Protection (In Sanct ) scrolls 633: $027D: Negate Magic (In An ) scrolls 634: $027E: Location (In Quas Wis ) scrolls 635: $027F: Call demon (Kac Xen Corp) scrolls 636: $0280: Resurrection (In Mani Corp) scrolls 637: $0281: Time stop (An Tym ) scrolls 638: $0282: Blue potions 639: $0283: Yellow potions 640: $0284: Red potions 641: $0285: Green potions 642: $0286: Orange potions 643: $0287: Purple potions 644: $0288: Black potions 645: $0289: White potions 646- 681: $028A..$02A9: ? 682: $02AA: Sulfur Ash 683: $02AB: Ginseng 684: $02AC: Garlic 685: $02AD: Sp. Silk 686: $02AE: Blood Moss 687: $02AF: Blk. Pearl 688: $02B0: Nightshade 689: $02B1: Mandrake 690-4837: $02B2..$12E5: ? Unknown locations/encodings: location facing direction sex (male/female) rest of the statuses: charmed?, paralyzed? rest of the spells rest of the armaments rest of the items, esp. Pocket Watch (might not be stored) arms (stored individually for each character) (try buying some arms and see which bytes change) OOL files Character #1 is the Avatar. Wizardry 6 (SAVEGAME.DBS, 50720 bytes)------------------------------------ scenario.hdr (414 bytes) may also be involved. Unknown locations/encodings: For each character: Sex (male/female) Portrait (user-selectable a la Ultima 6) Name Race Class LeVeL RaNK EXPerience MarKSmanship STRength INTellect/INTelligence PIEty VITality DEXterity SPeeD PERsuasiveness KARma Current HP Maximum HP STM (percentage value) CoNDition (eg. OK) GP Current CC Maximum CC ARMORCLASS eg. "10 (+0)" Individual armorclasses for: Unknown Head Torso Legs Hands Feet Skills: Weaponry: WAND&DAGGER SWORD AXE MACE&FLAIL POLE&STAFF THROWING SLING BOWS SHIELD Physical: SCOUTING Academia: ARTIFACTS MYTHOLOGY SCRIBE Skill points (unspent?) Items: at least 5 slots available for each item: equipped-or-not status weight? type? (eg. "feet", "legs") AC modifier (eg. the "plus" of it)? speed? 6 pairs of numbers (eg. "0/0"), each pair denoted by a symbol, eg. lightning eye General: Time of day? Quest status? Location Facing direction Zerg (V1.0) (RAM:SAVE, 2026 bytes)---------------------------------------- 0..7 : Rank ("Wanderer") 8..12: 0 41: STRength and AGiLity 45: WISdom 65: current HP 69: maxmimum HP 77: GP Unknown locations/encodings: Location (X,Y coordinates) LeVeL MP (ie. SpPt) (maximum and current) Inventory Class XP Body Count Weapon Armour Quest status END OF DOCUMENT-----------------------------------------------------------