EvilEngine/HIP (File Format): Difference between revisions
Content added Content deleted
Battlepedia>Igorseabra4 (Created page with "==Introduction== HIP archives are container formats used by Heavy Iron Studios in some of their games, including Spongebob Squarepants: Battle For Bikini Bottom. They are used...") |
Battlepedia>Igorseabra4 No edit summary |
||
Line 5: | Line 5: | ||
==General Info== |
==General Info== |
||
HIP archives are big endian in all versions of each game. |
HIP archives are big endian in all versions of each game. It's made up of 4 main sections: |
||
* '''HIPA''': this section is empty. It's used to mark the start of the file. |
|||
* '''PACK''': this section contains general data about the archive, such as game name, creation date and number of assets. |
|||
* '''DICT''': this section contains asset headers and layers. Each layer has a type and is composed of certain types of assets. |
|||
* '''STRM''': this section contains the raw data for the assets. Each asset header references the STRM by an absolute offset. |
|||
===Header Format=== |
===Header Format=== |
||
⚫ | |||
<pre> |
<pre> |
||
⚫ | |||
char[4] sectionName |
char[4] sectionName |
||
int sectionSize |
int sectionSize |
||
Line 23: | Line 27: | ||
===HIPA=== |
===HIPA=== |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
===PACK=== |
===PACK=== |
||
⚫ | |||
<pre> |
<pre> |
||
⚫ | |||
section PVER |
section PVER |
||
section PFLG |
section PFLG |
||
Line 36: | Line 38: | ||
section PMOD |
section PMOD |
||
section PLAT |
section PLAT |
||
<pre> |
</pre> |
||
===PVER=== |
===PVER=== |
||
⚫ | |||
<pre> |
<pre> |
||
⚫ | |||
int subVersion |
int subVersion |
||
int clientVersion |
int clientVersion |
||
Line 47: | Line 49: | ||
===PFLG=== |
===PFLG=== |
||
⚫ | |||
<pre> |
<pre> |
||
⚫ | |||
int flags |
int flags |
||
</pre> |
</pre> |
||
===PCNT=== |
===PCNT=== |
||
⚫ | |||
<pre> |
<pre> |
||
⚫ | |||
⚫ | |||
int |
int LHDRCount \\ Amount of LHDR sections |
||
⚫ | |||
int sizeOfLargestSourceFileAsset |
int sizeOfLargestSourceFileAsset |
||
int sizeOfLargestLayer |
int sizeOfLargestLayer |
||
Line 63: | Line 65: | ||
===PCRT=== |
===PCRT=== |
||
This section contains a date. |
|||
⚫ | |||
int fileDate // Date file was compiled |
|||
int fileDate \\ Date file was compiled |
|||
string dateString \\ Date as string |
|||
</pre> |
</pre> |
||
===PMOD=== |
===PMOD=== |
||
<pre> |
<pre> |
||
This section contains a date |
|||
int modDate |
int modDate \\ Date file was last changed |
||
</pre> |
</pre> |
||
===PLAT=== |
===PLAT=== |
||
⚫ | |||
⚫ | |||
⚫ | |||
* Format for Battle for Bikini Bottom |
|||
⚫ | |||
string targetPlatform |
string targetPlatform |
||
string targetPlatformName |
string targetPlatformName |
||
Line 84: | Line 87: | ||
string language |
string language |
||
string targetGame |
string targetGame |
||
⚫ | |||
* Format for The Incredibles, Spongebob Movie and Rise of the Underminer |
|||
<pre> |
|||
string targetPlatform |
string targetPlatform |
||
string language |
string language |
||
Line 93: | Line 98: | ||
===DICT=== |
===DICT=== |
||
⚫ | |||
<pre> |
<pre> |
||
⚫ | |||
section ATOC |
section ATOC |
||
section LTOC |
section LTOC |
||
Line 100: | Line 105: | ||
===ATOC=== |
===ATOC=== |
||
⚫ | |||
<pre> |
<pre> |
||
⚫ | |||
section AINF |
section AINF |
||
section[AHDRCount] AHDR |
section[AHDRCount] AHDR |
||
Line 112: | Line 117: | ||
===AHDR=== |
===AHDR=== |
||
⚫ | |||
<pre> |
<pre> |
||
⚫ | |||
⚫ | |||
⚫ | |||
// AHDR is used to define an asset entry |
|||
int fileOffset \\ absolute |
|||
⚫ | |||
⚫ | |||
int fileOffset // relative to entire archive |
|||
int fileSize |
int fileSize |
||
int plusValue |
int plusValue \\ amount of padding after file data |
||
int flags |
int flags |
||
section ADBG |
section ADBG |
||
Line 126: | Line 130: | ||
===ADBG=== |
===ADBG=== |
||
<pre> |
<pre> |
||
⚫ | |||
// This section contains more asset data |
|||
⚫ | |||
string assetName |
string assetName |
||
string assetFileName |
string assetFileName |
||
uint checksum \\ ignored |
|||
</pre> |
</pre> |
||
===LTOC=== |
===LTOC=== |
||
⚫ | |||
<pre> |
<pre> |
||
⚫ | |||
section LINF |
section LINF |
||
section[LHDRCount] LHDR |
section[LHDRCount] LHDR |
||
Line 146: | Line 149: | ||
===LHDR=== |
===LHDR=== |
||
⚫ | |||
<pre> |
<pre> |
||
⚫ | |||
// LHDR is used to define a layer entry |
|||
int layerType |
int layerType |
||
int assetAmount |
int assetAmount |
||
Line 161: | Line 163: | ||
===STRM=== |
===STRM=== |
||
⚫ | |||
<pre> |
<pre> |
||
⚫ | |||
section DHDR |
section DHDR |
||
section DPAK |
section DPAK |
||
Line 173: | Line 175: | ||
===DPAK=== |
===DPAK=== |
||
⚫ | |||
⚫ | |||
<pre> |
<pre> |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
byte[] data |
byte[] data |
||
</pre> |
</pre> |