Gold Box Wiki
(Added information on data structures and file formats used in Gold Box (Pascal) engine games.)
Tag: Visual edit
 
Line 29: Line 29:
 
The data structures used in the games evolved over time, and thus have inconsistency between the games, with some exceptions.
 
The data structures used in the games evolved over time, and thus have inconsistency between the games, with some exceptions.
   
===Common Data Structures==
+
===Common Data Structures===
 
{| style="width:95%;margin:auto"
 
{| style="width:95%;margin:auto"
 
|
 
|
===Character Data Formats===
+
====Character Data Formats====
 
*[[Curse of the Azure Bonds]] and [[Gateway to the Savage Frontier]] (and possibly [[Neverwinter Nights]])
 
*[[Curse of the Azure Bonds]] and [[Gateway to the Savage Frontier]] (and possibly [[Neverwinter Nights]])
 
*[[Pools of Darkness]] and [[Treasures of the Savage Frontier]]
 
*[[Pools of Darkness]] and [[Treasures of the Savage Frontier]]

Latest revision as of 14:34, 30 August 2014

The Gold Box (Pascal) engine was a codebase developed in Pascal used to develop most of the PC Gold Box games.

Gold Box (Pascal) Games[]

Forgotten Realms[]

Dragonlance[]

Buck Rogers[]

Data Structures[]

Within each game, certain data structures were reused for practical reasons. Item data structures are the same for items held by a player character, items held by a monster or NPC, and items sold in a shop. Character data structures are similarly shared between player characters and NPCs/monsters.

The data structures used in the games evolved over time, and thus have inconsistency between the games, with some exceptions.

Common Data Structures[]

Character Data Formats[]


File Formats[]

Most data in these games was stored in DAX files, which used varying types of simple compression which may have even varied within each game. One of these simple methods is often used in, for example, the MON#CHA.DAX files. Following a simple header (the first two bytes storing the size of the remainder of the header), the rest of the file is stored as a stream of bytes with repeated bytes preceded by a negative number indicating how many times the byte is to be repeated (and thus requiring bytes with the high bit set to be escaped by a -1).