`WarHammer.ani` turns out to be a regular `obj` file; `WarHammer.idx` is partially decoded, but I'm struggling to link it to the former in a reasonable way at the moment.
5.1 KiB
5.1 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
# Unknown, seems to be related to .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 Settings
- TODO
ChaNames.dat
# list of character namesCoordinates.dat
# Weapon Firing CoordinatesDefs.dat
# defines properties for objects and tiles, each of which seems to have an idGDestroy.dat
# table of what destroys what?HasAction.dat
# "Are there animation for each of the character" - list of booleansMiniMap.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 typesRandom_AI.dat
# contains the percentage of the different AI types for each of the different Chaos Squad TypesRandomPlanets.dat
# Campaign Primary and Secondary ObjectivesSounds.dat
# Sound Effect DataSpellDef.dat
# SPELL DEFINITIONSStdWeap.dat
# SQUAD STANDARD WEAPONSUltnames.dat
# List of names for ultramarinesVehicDef.dat
# VEHICLE DEFINITIONSWeapDef.dat
# Weapon definitions
- PROBABLY NOT NEEDED
BugHunt.dat
# Contains SMF text for Bug hunt random missionsCredits.dat
# list of creditsGenArm.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
*.cyc
# ColorCycle DataFile.*.dta
# localized strings and thingsEncyclopedia.dta
# encyclopedia entriesKeyMap.dta
# unknownKeymap.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/
- [✓]
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. Ensure you're in aGOPATH
!
Cross-links / associations
(Just some noticed so far)
Assign/*.asn
:Maps/*.map
:Sounds/wh40k.ds
Wav/*.wav