Echelon SFX

From XentaxWiki
Jump to: navigation, search

DAT (TYPE 2), SFX


Format Specifications

char {4}     - Header (DATA, DMAT, DSFX, DXMC, GSND, MEOS, PARS, PICS, TEXS)
uint32 {4}   - Number Of Files
uint32 {4}   - Length Of File Data
uint32 {4}   - Length Of Filename Directory

// for each file

uint32 {4}   - Hash?
uint32 {4}   - Offset to the filename (relative to the start of the filename directory)
uint32 {4}   - File Size
uint32 {4}   - File Offset


byte {X}     - File Data

// Filename Directory (offset=ArchiveLength+LengthOfFileData)

// for each file
char {X}     - Filename (null)


byte {0-16}  - null Padding to make the filename directory a multiple of 16 bytes

MultiEx BMS Script

IDString 0 DSFX ;
Get FILECNTL Long 0 ;
Get D Long 0 ;
Get F Long 0 ;
SavePos FILESTART 0 ;
Math FILESTART += 8 ;
GoTo EOF 0 ;
SavePos TA 0 ;
Math TA -= F ;
Math TA += 1 ;
Do ;
GoTo FILESTART 0 ;
SavePos FSO 0 ;
Get FILESIZE Long 0 ;
SavePos FOO 0 ;
Get FILEOFF Long 0 ;
Math FILESTART += 16 ;
GoTo TA 0 ;
Get FILENAME String 0 ;
SavePos TA 0 ;
Log FILENAME FILEOFF FILESIZE FOO FSO ;
Math EXTRCNT += 1 ;
While EXTRCNT <> FILECNTL ;

Notes and Comments

 HEADER CODE REPRESENTATIONS  
  • DATA = Generic Data, Uncategorized
  • DMAT = Materials
  • DSFX = Sound Files
  • DXMC = ???
  • GSND = Sound Data (volumes etc?)
  • MEOS = Objects
  • PARS = Particles
  • PICS = Pictures
  • TEXS = Textures



Compatible Programs