Adobe Director Files: Difference between revisions
imported>Ikskoks |
imported>Ikskoks |
||
| Line 13: | Line 13: | ||
<tt><b> | <tt><b> | ||
char {4} - Signature | char {4} - Signature <font color="purple">(RIFX)</font> <br> | ||
uint32 {4} - Archive | uint32 {4} - Archive Size <font color="darkgreen">[+18]</font> <br> | ||
char {4} - Signature 2 <font color="purple">( | char {4} - Signature 2 <font color="purple">(MV93)</font> <br> | ||
char {4} - iMap Header <font color="purple">(imap)</font> <br> | |||
uint32 {4} - iMap Length <font color="purple">(24)</font> <br> | |||
uint32 {4} - <font color="red"> '' Unknown <font color="purple">(1)</font> '' </font> <br> | |||
uint32 {4} - Offset to mMap <font color="purple">(44)</font> <br> | |||
uint32 {4} - <font color="red"> '' Unknown <font color="purple">(1217)</font> '' </font> <br> | |||
byte {12} - null <br> | |||
<br> | |||
<font color="blue"> ''' // mMap is the directory ''' </font> <br> | |||
char {4} - mMap Header <font color="purple">(mmap)</font> <br> | |||
uint32 {4} - mMap Length <br> | |||
uint16 {2} - <font color="red"> '' Unknown <font color="purple">(24)</font> '' </font> <br> | |||
uint16 {2} - <font color="red"> '' Unknown <font color="purple">(20)</font> '' </font> <br> | |||
uint32 {4} - Number Of Files <font color="purple">(including nulls at the end of the directory)</font> <br> | |||
uint32 {4} - Number Of Files <font color="purple">(not including the nulls at the end of the directory)</font> <br> | |||
uint64 {8} - Padding <font color="purple">(all 255s)</font> <br> | |||
uint32 {4} - <font color="red"> '' Unknown '' </font> <br> | |||
char {4} - Header <font color="purple">(RIFX)</font> <br> | |||
uint32 {4} - Archive Size <font color="darkgreen">[+18]</font> <br> | |||
uint32 {4} - null <br> | |||
uint32 {4} - <font color="red"> '' Unknown '' </font> <br> | |||
uint32 {4} - null <br> | |||
<br> | <br> | ||
<font color="blue"> ''' // for each file ''' </font> <br> | <font color="blue"> ''' // for each file ''' </font> <br> | ||
: char {4} - File Extension <br> | : char {4} - File Type/Extension <br> | ||
: uint32 {4} - File | : uint32 {4} - Length <br> | ||
: uint32 {4} - Offset <br> | |||
: uint64 {8} - null <br> | |||
<br> | |||
byte {X} - null padding <font color="purple">(according to the numOfFiles fields above)</font> <br> | |||
<br> | |||
<font color="blue"> ''' // for each file ''' </font> <br> | |||
: uint32 {4} - File Size <br> | |||
: byte {X} - File Data <br> | : byte {X} - File Data <br> | ||
</b></tt | : byte {0-1} - 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
- dirOpener (it can be used to remove protection from CXT files)
- Game Extractor
- Macromedia Director (e.g. Macromedia Director MX 2004)
- MultiEx Commander
See Also