Fountain of Dreams - Game Internals


Save Game Format

The saved game (and game state) is stored in DISK1 (and maybe DISK2, DISK3, and DISK4). Each file is 3776 bytes. The file is likely mapped directly to a C style struct (with padding bytes present as well). Since the game was compiled for the DOS platform, an integer is usually only 2 bytes. Only some of the contents of this file are documented and it's not clear is there is padding or not.

Offset Purpose
0x00-0x01 Is this a saved game or new game (0 = new, 1 = saved)
0x02-0x03 Skip initialization (if not 0)
0x04 Video init? (usually 0?)
0x06 Video mode (3 = MCGA/VGA)
0x08 Hour (0-23)
0x09 Minute (0-59)
0x0A-0x0B X position coordinates of party on map
0x0C-0x0D Y position coordinates of party on map
0x0E-0x11 Money (dword, 4 bytes)
0x12 Unknown (0x1C?)
0x30 Map? (0 = starting map)
0x31 Party size (number of characters in party)
0x32 Character Order Byte[5]
0x37 Day (relative from 0)

Character offsets are at 0x3A, 0x186, 0x2D2, 0x41E, 0x56E. There can be 5 characters within a party and each character is 332 bytes long.

Offset Purpose
0x3A-0x46 Name (up to 12 characters, terminated with a 0)
0x48 Profession (0 = Survivalist, 1 = Vigalante, etc)
0x50 Gender (1 = Male, others = Female)
0x52 Strength
0x53 Intelligence
0x54 Dexterity
0x55 Will Power
0x56 Aptitude
0x57 Charisma
0x58 Luck
0x5D Attribute points to distribute
0x5E-0x6D Active skills (16 bytes)
  • Medic
  • Lockpick
  • Forgery!!
  • Climb
  • Pharmacy
  • Bomb/Alarm Disarm
  • Mechanics
  • Electronics!!
  • Cryptography!!
  • Pickpocket!!
  • FODDY FOD
  • Doctor
  • *Chameleon
  • *Shriek
  • *Stun
  • *Corruption!!
0x6E-0x7D Passive skills (16 bytes)
  • Perception
  • Stealth
  • Languages
  • Demolitions
  • Brawling
  • Blades
  • Handgun
  • Rifle
  • Auto Weapon
  • Boating!!
  • Gunsmith
  • Swim
  • Evasion
  • Gambling!!
  • *Mutant Recog!!
  • *Camouflage
0x7e-0x7f Condition Word
0x80-0x81 Maximum Condition Word
0x82 Unknown/Padding?
0x83 Unknown/Padding?
0x84 Equipped Weapon (0xFF = no item equipped, other values = item # in inventory)
0x85 Equipped Armor 1 (0xFF = no item equipped, other values = item # in inventory)
0x86 Equipped Armor 2 (0xFF = no item equipped, other values = item # in inventory)
0x87 Equipped Armor 3 (0xFF = no item equipped, other values = item # in inventory)
0x88 Rank
0x8C Unknown, weapon count?
0x91 Drunk? (bool flag?) (affects movement)
0x92 Affliction (Bit encoded)
Bit 0 - Poisoned
Bit 1 - Irradiated
Bit 2 - Rabid
Bit 3 - Envenomed
Bit 4 - Condition 5
Bit 5 - Condition 6
Bit 6 - Condition 7
Bit 7 - Mutant
0x9c-0x15C Items (32 slots × 6 bytes each)
Each item is 6 bytes long (2nd byte often used for ammo count)

Known item IDs:
00 - Null Item
01 - Dollars
02 - .22 Handgun
03 - .45 Colt Pistol
04 - 9mm Browning Pistol
05 - Ochoa's Rifle
06 - Elephant Gun
07 - Shotgun
08 - Uzi
09/0A - Clown MegaUzi
0B - AK-47 Assault Rifle
0C-19 - Various Ammunition Types
1A-1C - Explosives
1D-1F - Gas/Fire Weapons
20-25 - Melee Weapons
26-30 - Armor/Suits
31-34 - Headgear
35-75 - Various Items
(See full item list in game documentation)