Difference between revisions of "IMG archive"

From GTAMods Wiki
Jump to navigation Jump to search
Line 77: Line 77:
 
The header and directory (table) of IMG archives can be encrypted. This is usually the case if the 4 byte identifier at the start of the file seems invalid. Decryption is done via 16 repetitions of [[Cryptography#AES|AES-128]] in ECB mode.
 
The header and directory (table) of IMG archives can be encrypted. This is usually the case if the 4 byte identifier at the start of the file seems invalid. Decryption is done via 16 repetitions of [[Cryptography#AES|AES-128]] in ECB mode.
  
==== [[More then one img file in GTA3 and VC?]] ====
+
==== Using more than one IMG file on III-era games ====
 
+
It is possible to have more then one IMG file, or in the case of San Andreas, to have your own IMGs loaded besides the default archives, by adding the following example to your [[default.dat]] file.  
In [[GTAIII]] or [[Vice City]] you can have more then one [[img]] file by adding the following example to your [[default.dat]] file.  
 
  
 
{| {{Prettytable}}
 
{| {{Prettytable}}
Line 87: Line 86:
 
Create MyMap.img and MyMap.dir file in the models folder.
 
Create MyMap.img and MyMap.dir file in the models folder.
  
Take note that your limited to 10 Img files where you can only hold the main MAP data. The Radar, IPF, COL, Vehicles or Peds files can only be loaded from the gta3.img file.
+
Take note that your limited to 10 IMG files where you can only hold the main MAP data. The Radar, IPF, COL, Vehicles or Peds files can only be loaded from the gta3.img file.
 +
 
 +
For San Andreas you'll have to add this after the IMG MODELS\CUTSCENE.IMG line:
 +
{| {{Prettytable}}
 +
|IMG MODELS\FOO.IMG
 +
|}
 +
 
 +
Where foo can be any name that you want. The above method can also be used for [[San Andreas v2.0 Modding|modifying version 2 of GTASA]].
  
 
== Tools ==
 
== Tools ==

Revision as of 00:04, 18 December 2011

GTA's most commonly used archive files are known by the extension .img. They have a very simple format and currently exist in multiple versions.

Structure

Version 1 - GTA III & VC

Version 1 archives used in GTA III and Vice City, are actually split up into two files: the content directory (.dir) and the actual archive (.img).

The directory is a list of files each with name, offset and size of the file. The values for offset and size have to be multiplied by 2048, since files are aligned to 2 KB boundaries. This means that even a file with only 123 byte content will take up 2 KB in the archive. Files are stored (usually) unsorted, uncompressed and linear (no directory tree).

First you have to find out the number of entries (n). Just divide the filesize of the .dir file by 32 and you will get it.

There is no Header, like in V2 (San Andreas) Files!

Entry: (repeated n times)
4 byte - DWORD - offset of file inside archive (in blocks) 4 byte - DWORD - size of file (in blocks) 24 byte - CHAR[24] - name of file

The .img file itself has no special structure or header, just all the files in 2 KB blocks.

This format was also used in the PC version of Bully: Scholarship Edition.

Version 2 - GTA SA

Version 2 archives, introduced with GTA San Andreas, combine .dir and .img files into one .img file. The directory has the same format as in version 1, but is located at the beginning of the archive. Files are again aligned to 2 KB boundaries. File offsets are relative to the start of the whole archive, not to the end of the file list.

Header:
4 byte - CHAR[4] - FourCC, always "VER2" 4 byte - DWORD - number of entries (n)
Entry: (repeated n times)
4 byte - DWORD - offset of file inside archive (in blocks) 4 byte - DWORD - size of file (in blocks) 24 byte - CHAR[24] - name of file

A major drawback of this format is the complicated extendability. If you have to add many files, it might happen that you run out of space for the directory, and have to move the first file(s) to the end.

Version 3 - GTA IV

GTA IV introduced yet another .img file format. Not only the format is new, also there can be encrypted archive headers (see below). The internal IMG parser of the game works with 2 kb buffers, which means that the 2 kb bounds from earlier versions (blocks) are still present, yet optional.

IMG Header

The header of an unencrypted file always has a size of 20 bytes.

4 byte - DWORD      - Identifier (0xA94E2A52 if the archive is not encrypted)
4 byte - DWORD      - Version (always 3, if not the format would be differ)
4 byte - DWORD      - Number of Items
4 byte - DWORD      - Table Size (in bytes)
2 byte - WORD       - Size of Table Items (needs to be always 0x10)
2 byte - WORD       - Unknown

IMG Table

The table holds information about the items. Each item header has a size of 16 bytes .

4 byte - DWORD      - Itemsize (in bytes)
4 byte - DWORD      - Resource type
4 byte - DWORD      - Offset (in blocks)
2 byte - WORD       - Used Blocks
2 byte - WORD       - Padding

Item Names' length will be calculate as :

Table Size - (Number of Items * Item Size)

Next that string will be split by '\x0'

A resource type is identified by the 4b DWORD value:

  • 0x01: Generic
  • 0x08: Texture archive
  • 0x20: Bounds
  • 0x6E: Model file
  • 0x24: xpfl

Encryption

The header and directory (table) of IMG archives can be encrypted. This is usually the case if the 4 byte identifier at the start of the file seems invalid. Decryption is done via 16 repetitions of AES-128 in ECB mode.

Using more than one IMG file on III-era games

It is possible to have more then one IMG file, or in the case of San Andreas, to have your own IMGs loaded besides the default archives, by adding the following example to your default.dat file.

CDIMAGE MODELS\MyMap.img

Create MyMap.img and MyMap.dir file in the models folder.

Take note that your limited to 10 IMG files where you can only hold the main MAP data. The Radar, IPF, COL, Vehicles or Peds files can only be loaded from the gta3.img file.

For San Andreas you'll have to add this after the IMG MODELS\CUTSCENE.IMG line:

IMG MODELS\FOO.IMG

Where foo can be any name that you want. The above method can also be used for modifying version 2 of GTASA.

Tools

GTA III Vice City
ImgEd – by Dan Strandberg
San Andreas
GTA Net GTAForums: IMG Manager – by xmen
San Andreas
GTA Net GTAGarage: Spark – by aru
GTA III Vice City San Andreas
IMG Tool – by Spooky
GTA III Vice City San Andreas
G-IMG – by REspawn
GTA III Vice City San Andreas Liberty City Stories Vice City Stories
Yet Another IMG Editor – by dustcrazy
Liberty City Stories Vice City Stories
Post.png GTAForums: GTA Stories IMG Tool – by HackMan128
GTA IV
SparkIV – by aru
GTA IV
OpenIV – by GooD-NTS
GTA IV
Shadow-Mapper – by Prince-Link

Libraries

Version 3 only