Adobe Director Files: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>Ikskoks
imported>Ikskoks
Line 13: Line 13:


<tt><b>
<tt><b>
char {4}&nbsp;&nbsp;&nbsp;&nbsp; - Signature 1 <font color="purple">(XFIR)</font> <br>  
char {4}&nbsp;&nbsp;&nbsp;&nbsp; - Signature <font color="purple">(RIFX)</font> <br>  
uint32 {4}&nbsp;&nbsp; - Archive Length <font color="darkgreen">[+8]</font> <br>  
uint32 {4}&nbsp;&nbsp; - Archive Size <font color="darkgreen">[+18]</font> <br>  
char {4}&nbsp;&nbsp;&nbsp;&nbsp; - Signature 2 <font color="purple">(39VM)</font> <br>  
char {4}&nbsp;&nbsp;&nbsp;&nbsp; - Signature 2 <font color="purple">(MV93)</font> <br>
char {4}&nbsp;&nbsp;&nbsp;&nbsp; - iMap Header <font color="purple">(imap)</font> <br>
uint32 {4}&nbsp;&nbsp; - iMap Length <font color="purple">(24)</font> <br>
uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(1)</font> '' </font> <br>
uint32 {4}&nbsp;&nbsp; - Offset to mMap <font color="purple">(44)</font> <br>
uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(1217)</font> '' </font> <br>
byte {12}&nbsp;&nbsp;&nbsp; - null <br>
<br>
<font color="blue"> ''' // mMap is the directory ''' </font> <br>
char {4}&nbsp;&nbsp;&nbsp;&nbsp; - mMap Header <font color="purple">(mmap)</font> <br>
uint32 {4}&nbsp;&nbsp; - mMap Length <br>
uint16 {2}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(24)</font> '' </font> <br>
uint16 {2}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(20)</font> '' </font> <br>
uint32 {4}&nbsp;&nbsp; - Number Of Files <font color="purple">(including nulls at the end of the directory)</font> <br>
uint32 {4}&nbsp;&nbsp; - Number Of Files <font color="purple">(not including the nulls at the end of the directory)</font> <br>
uint64 {8}&nbsp;&nbsp; - Padding <font color="purple">(all 255s)</font> <br>
uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown '' </font> <br>
char {4}&nbsp;&nbsp;&nbsp;&nbsp; - Header <font color="purple">(RIFX)</font> <br>
uint32 {4}&nbsp;&nbsp; - Archive Size <font color="darkgreen">[+18]</font> <br>
uint32 {4}&nbsp;&nbsp; - null <br>
uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown '' </font> <br>
uint32 {4}&nbsp;&nbsp; - null <br>  
<br>
<br>
<font color="blue"> ''' // for each file ''' </font> <br>  
<font color="blue"> ''' // for each file ''' </font> <br>  
: char {4}&nbsp;&nbsp;&nbsp;&nbsp; - File Extension <br>  
: char {4}&nbsp;&nbsp;&nbsp;&nbsp; - File Type/Extension <br>
: uint32 {4}&nbsp;&nbsp; - File Length <br>  
: uint32 {4}&nbsp;&nbsp; - Length <br>
: uint32 {4}&nbsp;&nbsp; - Offset <br>
: uint64 {8}&nbsp;&nbsp; - null <br>
<br>
byte {X}&nbsp;&nbsp;&nbsp;&nbsp; - null padding <font color="purple">(according to the numOfFiles fields above)</font> <br>
<br>
<font color="blue"> ''' // for each file ''' </font> <br>  
: uint32 {4}&nbsp;&nbsp; - File Size <br>  
: byte {X}&nbsp;&nbsp;&nbsp;&nbsp; - File Data <br>  
: byte {X}&nbsp;&nbsp;&nbsp;&nbsp; - File Data <br>  
</b></tt><br>
: byte {0-1}&nbsp;&nbsp; - null Padding <font color="purple">(to multiple of 2 bytes)</font> <br>
<br>
</b></tt>


=== MultiEx BMS Script ===  
=== MultiEx BMS Script ===  

Revision as of 15:58, 10 July 2022

Choose archive extension:

CXT, CST, DCR, DXR

  • Format Type : Archive
  • Endian Order : Little Endian / Big Endian
  • Signatures : XFIR / RIFX / 39VM / MV93 / CDGF / FGDC / pami / imap


Format Specifications

char {4}     - Signature (RIFX)
uint32 {4}   - Archive Size [+18]
char {4}     - Signature 2 (MV93)
char {4}     - iMap Header (imap)
uint32 {4}   - iMap Length (24)
uint32 {4}   - Unknown (1)
uint32 {4}   - Offset to mMap (44)
uint32 {4}   - Unknown (1217)
byte {12}    - null

// mMap is the directory
char {4}     - mMap Header (mmap)
uint32 {4}   - mMap Length
uint16 {2}   - Unknown (24)
uint16 {2}   - Unknown (20)
uint32 {4}   - Number Of Files (including nulls at the end of the directory)
uint32 {4}   - Number Of Files (not including the nulls at the end of the directory)
uint64 {8}   - Padding (all 255s)
uint32 {4}   - Unknown
char {4}     - Header (RIFX)
uint32 {4}   - Archive Size [+18]
uint32 {4}   - null
uint32 {4}   - Unknown
uint32 {4}   - null

// for each file

char {4}     - File Type/Extension
uint32 {4}   - Length
uint32 {4}   - Offset
uint64 {8}   - null


byte {X}     - null padding (according to the numOfFiles fields above)

// for each file

uint32 {4}   - File Size
byte {X}     - File Data
byte {0-1}   - null Padding (to multiple of 2 bytes)


MultiEx BMS Script

The BMS script given below will extract and replace files. A limitation for this script is that you are only able to replace on file at a time to avoid making the archive corrupted. I.e. load the archive in MultiEx Commander, replace a file (if you'd like) and then re-open the archive to replace another one.

ImpType SFileSize ;
IDString 0 XFIR ;
Get ARCSIZE Long 0 ;
Get TEMP Long 0 ;
Set FNTITLE String File_ ;
Set FNID String 1 ;
Set FNDOT String . ;
Set FNREMOVE String * ;
Do ;
GetDString FNEXT 4 0 ;
SavePos FSIZEX 0 ;
Get FSIZE Long 0 ;
If FSIZE = 0 ;
CleanExit ;
EndIf ;
SavePos FOFFSET 0 ;
Math FNID += 1 ;
Set FNAME String FNTITLE ;
String FNAME += FNID ;
String FNAME += FNDOT ;
String FNAME += FNEXT ;
String FNAME -= FNREMOVE ;
Log FNAME FOFFSET FSIZE 0 FSIZEX ;
Math FOFFSET += FSIZE ;
GoTo FOFFSET 0 ;
While NotEOF <> 0 ;

Notes and Comments

  • This file format was used in games made using Adobe Director (a.k.a. Macromedia Director).
  • CXT files may be protected, they are often referred as Macromedia Director Protected Cast files.

Games

List of games using this file format:

  • Amber - Journeys Beyond (*.DXR)
  • Borrow Hill
  • James Cameron's Titanic Explorer
  • Nekojiru Udon 2 (PC) (*.DXR)
  • Nickelodeon Toon Twister 3-D (*.DXR \ *.CXT)
  • Rock Manager (PC) (*.CXT)

QuickBMS Script

Supported Programs

See Also