Arcanum: Difference between revisions
Jump to navigation
Jump to search
imported>Mr.Mouse |
imported>Ikskoks No edit summary |
||
| (2 intermediate revisions by 2 users not shown) | |||
| Line 108: | Line 108: | ||
<!-- Insert programs that open the format here --> | <!-- Insert programs that open the format here --> | ||
* [[MultiEx_Commander|MultiEx Commander]] | * [[MultiEx_Commander|MultiEx Commander]] | ||
[[Category:File Format]] | |||
Latest revision as of 01:34, 3 January 2021
Choose archive extension:
DAT
- Format Type : Archive
- Endian Order : Little Endian
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.