Arcanum

From XentaxWiki
Jump to: navigation, search

Back to index

Choose archive extension:

DAT


Format Specifications

// MexCom - Recreation of Arcanum                         .DAT
// ----------------------------


// Format Specification



// COMPRESSION: ZLIB

(ArchSize)		AS
$$ CALCULATE AS - 4


==>AS
uint32{4}		TS
$$ CALCULATE AS - TS


==>AS
uint32{4}		FSP


==>FSP
uint32{4}		FA


** Start Repeated entry (TE) {FA}
uint32{4}		SS
char{}   		Filename of resource (FN)
#DECLARE FSP = CURRENT FILE POINTER
$$ CALCULATE FSP + 8


==>FSP
#DECLARE OSO = CURRENT FILE POINTER
uint32{4}		OS
#DECLARE FSO = CURRENT FILE POINTER
uint32{4}		FS
#DECLARE FOO = CURRENT FILE POINTER
uint32{4}		Offset of resource (FO)


// Resources have a name (FN), are located at FO,
// have a compressed size of FS, and an uncompressed size of OS

** End Repeated entry (TE)

// ----------------------------
// MexCom - Recreation complete 

MultiEx BMS

ImpType Standard ;
ComType ZLib1 ;
Get AS ASize 0 ;
Math AS -= 4 ;
GoTo AS 0 ;
Get TS Long 0 ;
Math AS -= TS ;
GoTo AS 0 ;
SavePos TailOffOff 0 ;
Get FSP Long 0 ;
GoTo FSP 0 ;
Get FA Long 0 ;
For TE = 1 To FA ;
Get SS Long 0 ;
Get FN String 0 ;
SavePos FSP 0 ;
Math FSP += 8 ;
GoTo FSP 0 ;
SavePos OSO 0 ;
Get OS Long 0 ;
SavePos FSO 0 ;
Get FS Long 0 ;
SavePos FOO 0 ;
Get FO Long 0 ;
CLog FN FO FS FOO FSO OS OSO ;
Next TE ;


Notes and Comments

The format specifications were taken from "reverse engineering" of MultiEx BMS. Read with care.

Supported by Programs