GTA Series IMG DIR: Difference between revisions
Jump to navigation
Jump to search
imported>Ikskoks m (Ikskoks moved page GTA San Andreas IMG to GTA Series IMG DIR) |
imported>Ikskoks (→IMG) |
||
| Line 1: | Line 1: | ||
== IMG == | == IMG, DIR == | ||
* ''' Format Type ''': Archive <br> | * ''' Format Type ''': Archive <br> | ||
* ''' [http://en.wikipedia.org/wiki/Endianness Endian Order] ''': Little Endian <br> | * ''' [http://en.wikipedia.org/wiki/Endianness Endian Order] ''': Little Endian <br> | ||
* ''' Signature ''': VER2 <br> | |||
=== Format Specifications === | === Format Specifications === | ||
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:800px; overflow:auto;"> | |||
<pre> | |||
// header | |||
4 bytes (char) - signature | |||
</pre> | |||
</div> | |||
=== Format Specifications (version 2) === | |||
<tt><b> | <tt><b> | ||
char {4} - | char {4} - Signature <font color="purple">(VER2)</font> <br> | ||
uint32 {4} - Number Of Files <br> | uint32 {4} - Number Of Files <br> | ||
<br> | <br> | ||
Revision as of 17:23, 20 May 2022
IMG, DIR
- Format Type : Archive
- Endian Order : Little Endian
- Signature : VER2
Format Specifications
// header 4 bytes (char) - signature
Format Specifications (version 2)
char {4} - Signature (VER2)
uint32 {4} - Number Of Files
// for each file
- uint32 {4} - File Offset [*2048]
- uint32 {4} - File Length [*2048] (includes padding at the end of the file)
- char {X} - Filename
- byte {1} - null Filename Terminator
- byte {0-3} - null Padding so filenameLength+1 is a multiple of 4 bytes
- // repeat until this file entry has length 32 bytes
- uint16 {2} - Unknown ID (incremental from 166 (from start of filename))
- uint16 {2} - Unknown ID (incremental from 166 (from start of filename))
// for each file
- byte {X} - File Data
- byte {X} - Padding to a multiple of 2048 bytes
MultiEx BMS
ImpType Standard ;
IDString VER2 ;
Get NUMFILES Long 0 ;
SavePos CURPOS 0 ;
For T = 1 To NUMFILES ;
SavePos FOO ;
Get FILEOFF Long 0 ;
Math FILEOFF *= 2048 ;
SavePos FSO ;
Get FILESIZE Long 0 ;
Math FILESIZE *= 2048 ;
Get FILENAME String 0 ;
Log FILENAME FILEOFF FILESIZE FOO FSO ;
Math CURPOS += 32 ;
GoTo CURPOS 0 ;
Next T ;