Difference between revisions of "Mohawk archive format"

From A look inside The Link @ wiki
Jump to: navigation, search
(RSRC header)
(Type table)
Line 48: Line 48:
  
 
==Type table==
 
==Type table==
 +
It lists resource types in the Mohawk file. This table is always at the beginning of the Resource Dir.
 +
 +
Header:
 +
{| border="0" align="center" style="border: 1px solid black;background-color:#ffa"
 +
|align="right" style="color:#622"|unsigned short
 +
|offset in Resource Dir of the Resource Name List (maybe this should go with the RSRC Header)
 +
|-
 +
|align="right" style="color:#622"|unsigned short
 +
|number of resource types in this file
 +
|}
 +
 +
Entry (one for each type):
 +
{| border="0" align="center" style="border: 1px solid black;background-color:#ffa"
 +
|align="right" style="color:#622"|4 bytes
 +
|resource type (tWAV, tBMP, NAME etc.)
 +
|-
 +
|align="right" style="color:#622"|unsigned short
 +
|offset in Resource Dir of the Resource Table for this type
 +
|-
 +
|align="right" style="color:#622"|unsigned short
 +
|offset in Resource Dir of the Name Table for this type
 +
|}
  
 
==Name table==
 
==Name table==

Revision as of 14:40, 4 February 2008

General layout

Mohawk archives are organized in chunks, and this is the chunk layout:

  • IFF chunk
    • IFF header
    • RSRC header
    • Resource dir
      • Type table
      • Name tables (one for each resource type)
      • Resource tables (one for each resource type)
      • Resource name list
      • File table
    • Actual data (resource contents)

Note that the chunks may be found in a different order: never trust on them being at fixed locations, and use the offsets to reach them.

Every integer is in big-endian (Motorola) byte order.

IFF header

This is always at the beginning of the file.

4 bytes chunk signature (MHWK), identifies Mohawk archive format
unsigned long file size in bytes, not counting this IFF header (that is, file size - 8)

RSRC header

I think this is actually the "Resource Dir header". Note that the Dir can be anywhere in file, but this header always follows the IFF Header.

4 bytes chunk signature (RSRC)
unsigned long should be length of RSRC chunk (never bothered to check)
unsigned long total file size in bytes
unsigned long absolute offset of the Resource Dir
unsigned short offset in Resource Dir of the File Table
unsigned short File Table size in bytes

Type table

It lists resource types in the Mohawk file. This table is always at the beginning of the Resource Dir.

Header:

unsigned short offset in Resource Dir of the Resource Name List (maybe this should go with the RSRC Header)
unsigned short number of resource types in this file

Entry (one for each type):

4 bytes resource type (tWAV, tBMP, NAME etc.)
unsigned short offset in Resource Dir of the Resource Table for this type
unsigned short offset in Resource Dir of the Name Table for this type

Name table

Resource table

Resource name list

File table