Rollcage 2 IMG: Difference between revisions
Jump to navigation
Jump to search
| Line 23: | Line 23: | ||
:: char {4} - File Header <font color="purple">(GT20)</font> <br> | :: char {4} - File Header <font color="purple">(GT20)</font> <br> | ||
:: uint32 {4} - Decompressed File Length <br> | :: uint32 {4} - Decompressed File Length <br> | ||
:: uint32 {4} - '' Unused <font color="purple">(Same as the | :: uint32 {4} - '' Unused <font color="purple">(Same as the Unused field in the IDX File)</font> '' <br> | ||
:: uint32 {4} - Length of additional Information <br> | :: uint32 {4} - Length of additional Information <br> | ||
:: char {X} - Additional Information <br> | :: char {X} - 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 Type : Archive
- Endian Order : Little Endian
Format Specifications
// IDX FILE
- // for each file
- uint32 {4} - File Offset
- uint32 {4} - Compressed File Length
- uint32 {4} - Decompressed File Length
- uint32 {4} - Unused
- uint32 {4} - File Offset
// 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
- char {4} - File Header (GT20)
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 decompressor reads the next Byte from the Data.
- 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.
- 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 decompressor reads the two next Bytes.
- The Next Bit is 0:
- Whether the Bit is 0 and the next Byte is not compressed,
Example:
MultiEx BMS
Not written yet
Notes and Comments
- The *.IDX file contains the directory, the *.IMG file contains the data