Rollcage 2 IMG: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
Line 23: Line 23:
:: char {4}&nbsp;&nbsp;&nbsp;&nbsp; - File Header <font color="purple">(GT20)</font> <br>  
:: char {4}&nbsp;&nbsp;&nbsp;&nbsp; - File Header <font color="purple">(GT20)</font> <br>  
:: uint32 {4}&nbsp;&nbsp; - Decompressed File Length <br>  
:: uint32 {4}&nbsp;&nbsp; - Decompressed File Length <br>  
:: uint32 {4}&nbsp;&nbsp; - '' Unused <font color="purple">(Same as the Unknown ID field in the IDX File)</font> '' <br>  
:: uint32 {4}&nbsp;&nbsp; - '' Unused <font color="purple">(Same as the Unused field in the IDX File)</font> '' <br>  
:: uint32 {4}&nbsp;&nbsp; - Length of additional Information <br>  
:: uint32 {4}&nbsp;&nbsp; - Length of additional Information <br>  
:: char {X}&nbsp;&nbsp;&nbsp;&nbsp; - Additional Information <br>
:: char {X}&nbsp;&nbsp;&nbsp;&nbsp; - Additional Information <br>
Line 51: Line 51:
:::: If the number of bytes to copy is 0, the decompressor reads also the next byte. <br>
:::: If the number of bytes to copy is 0, the decompressor reads also the next byte. <br>
::::: The first bit of this byte indicates that 2^14 will be deducated from the position from where the bytes have to be copied. <br>
::::: The first bit of this byte indicates that 2^14 will be deducated from the position from where the bytes have to be copied. <br>
::::: The rest is the number of bytes to copy-2. If this is again 0, the decompressor have to read the next 2 bytes, which is the number of bytes to copy.
::::: The rest is the number of bytes to copy-2. If this is again 0, the decompressor have to read the next 2 bytes, which is the number of bytes to copy. <br>
<br>
Example:
 
</b></tt>
</b></tt>



Revision as of 14:01, 21 October 2011

Choose archive extension:

IMG + IDX


Format Specifications

// IDX FILE

// for each file
uint32 {4}   - File Offset
uint32 {4}   - Compressed File Length
uint32 {4}   - Decompressed File Length
uint32 {4}   - Unused


// IMG FILE

// for each file
char {4}     - File Header (GT20)
uint32 {4}   - Decompressed File Length
uint32 {4}   - Unused (Same as the Unused field in the IDX File)
uint32 {4}   - Length of additional Information
char {X}     - Additional Information
byte {X}     - Compressed Data


Compressed Data:

uint32 {4}   - 'ControlBits'
char {X}     - Compressed Data
uint32 {4}   - 'ControlBits'
char {X}     - Compressed Data
..


The ControlBits say how to decompress the data.
Whether the Bit is 0 and the next Byte is not compressed,
or the Bit is 1 and the next Byte(s) is/are compressed.
If the next Byte(s) is/are compressed, the next ControlBit say how its compressed.
The Next Bit is 0:
The decompressor reads the next Byte from the Data.
This Byte OR FFFFFF00 (int32) say the decompressor how much bytes to go back.
From that position the decompressor copies 2 bytes to the end of the already decompressed Data.
If the next ControlBit is 1 the decompressor copies 2 additional Bytes.
If the next ControlBit is 1 the decompressor copies 1 additional Byte.
The Next Bit is 1:
The decompressor reads the two next Bytes.
The first three bits of theese is the number of bytes to copy-2.
The rest 13 bits OR FFFFE000 (int32) defines the position from where the bytes have to be copied.
If the number of bytes to copy is 0, the decompressor reads also the next byte.
The first bit of this byte indicates that 2^14 will be deducated from the position from where the bytes have to be copied.
The rest is the number of bytes to copy-2. If this is again 0, the decompressor have to read the next 2 bytes, which is the number of bytes to copy.


Example:

MultiEx BMS

Not written yet

Notes and Comments

  • The *.IDX file contains the directory, the *.IMG file contains the data


Supported Programs