5.0 KiB
Formats
Chaos Gate has over 700MB of data, organized (seemingly) logically into files in directories. Being able to parse, display, and use that data is paramount to any remake.
Filesystem layout
- [✓]
Anim/
Assign/
*.asn
# Specify properties for frames in .obj files
Cursor/
*.ani
# RIFF data, standard ANI format \o/Cursors.cur
#obj
file containing pointers and drag elements
Data/
*.dat
# plaintext files defining properties of objects. No single format- PARSED
Accounting.dat
# key = value => internal/data/accounting.goAniObjDef.dat
# animated object definitionsGenericData.dat
# Generic Game SettingsHasAction.dat
# "Are there animation for each of the character" - list of booleans
- TODO
-
ChaNames.dat
# list of character names -
Coordinates.dat
# Weapon Firing Coordinates -
Credits.dat
# list of credits -
Defs.dat
# defines properties for objects and tiles, each of which seems to have an id -
GDestroy.dat
# table of what destroys what? -
MiniMap.dat
# lots of seemingly random numbers. IDs? -
MissionBriefing.dat
# Contains all Campaign Mission Briefing Text. Sections: "CAMPAIGN MISSION X ... END CAMPAIGN MISSION X" -
PWeight.dat
# Personality weights for the individual character types -
Random_AI.dat
# contains the percentage of the different AI types for each of the different Chaos Squad Types -
RandomPlanets.dat
# Campaign Primary and Secondary Objectives -
Sounds.dat
# Sound Effect Data -
SpellDef.dat
# SPELL DEFINITIONS -
StdWeap.dat
# SQUAD STANDARD WEAPONS -
Ultnames.dat
# List of names for ultramarines -
VehicDef.dat
# VEHICLE DEFINITIONS -
WeapDef.dat
# Weapon definitions
-
- PROBABLY NOT NEEDED
BugHunt.dat
# Contains SMF text for Bug hunt random missionsGenArm.dat
# "Random campaign armory levels - space marine"HeroArm.dat
# "Random campaign armory levels - Veteran"MHeroArm.dat
# "Random campaign armory levels - Veteran"PlanetDesc.dat
# well-documented params. random mission generator params per planet.RandChar.dat
# Random character matrix. Information on what goes into a character matrix.RandSMFtext.dat
# SuperMacro Objectives for Campaign Random Mission Generator.SpArm.dat
# "RANDOM CAMPAIGN ARMORY LEVELS - Veteran"VetArm.dat
# "RANDOM CAMPAIGN ARMORY LEVELS - Veteran"*.chk
# checksums? Mentions all the .dat files
- PARSED
Cycle.cyc
# ColorCycle DataFile.Encyclopedia.dta
# encyclopedia entrieskeymap.dta
# unknownUSEng.dta
# Localized strings
EquipmentMenuData
# gzip-compressed, presumably to do with (initial?) squad configurationFilters/
wh40k.flt
# Audio filter(s?)
- [✓]
Fonts/
Idx/
WarHammer.idx
# unknown, 1.8M
Maps/
Menu/
- UI element definitionsMisc/
occlusio.lis
# plain text, presumably occlusion mappings?
MultiMaps/
Obj/
cpiece.rec
# "Rects for various cursor piece types..."- [✓]
*.obj
- [✓]
Pic/
*.pcx
# Standard .pcx format
RandomMaps/
*.chk
# multiplayer. worry about these another day*.dat
Save_G/
*.sav
# savedata, gzip-compressed, custom format*.txt
# Seems to be a copy of one of Maps/*.txt
- [✓]
Sets/
Data.chk
*.set
- [✓]
SMK/
*.smk
# Videos: RAD Game Tools Smacker Multimedia version 2
Sounds/
Wav/
Phew.
General notes
- For binary formats, integers seem to be stored in little-endian
- Almost everything seems to be in a data file somewhere. Helpful!
make loader
creates aload
binary that will try to load various bits of data frominvestigation/
andorig/
. I use it to investigate file formats and the parsers I'm writing.
Cross-links / associations
(Just some noticed so far)
Assign/*.asn
:Maps/*.map
:Sounds/wh40k.ds
Wav/*.wav