64 byte tag header

Talk about anything here.
Post Reply
Industry
Posts: 303
Joined: Fri Mar 19, 2004 3:47 pm
Location: Alaska

Post by Industry »

Hi,

I have been hex editing again and need some help with the structure of the 64-byte tag header.
So far I think it looks like this:

<table>
<tr><td>Unique Tag ID</td><td>4 bytes</td></tr>
<tr><td>Name (ASCII name of tag)</td><td>32 bytes</td></tr>
<tr><td>Group (amso, geom, mode, etc.)</td><td>4 bytes</td></tr>
<tr><td>Subgroup (unique 4 byte tag name)</td><td>4 bytes</td></tr>
<tr><td>Offset (to start of tag)</td><td>4 bytes</td></tr>
<tr><td>Size (total of tag)</td><td>4 bytes</td></tr>
<tr><td>Unknown1 (usually all FF)</td><td>4 bytes</td></tr>
<tr><td>Version (of tag)</td><td>2 bytes</td></tr>
<tr><td>Destination (small install, etc.)</td><td>1 byte</td></tr>
<tr><td>Unknown2 (usually FF)</td><td>1 byte</td></tr>
<tr><td>Game Version (mth2 for Myth II)</td><td>4 bytes</td></tr>
</table>


Anyone know what Unknown1 or Unknown2 are? Is there any real good use to the Destination field (other than when Bungie was using Fear as a creator instead of an editor)?

Most importantly, is this correct?
Industry
Posts: 303
Joined: Fri Mar 19, 2004 3:47 pm
Location: Alaska

Post by Industry »

I'm such a morom sometimes. Among the dozens of places one can find the format of the 64-byte tag header, is this definition from the Myth 3 Vengenance Source Code:


struct tag_header // 64 bytes
{
DATUM_HEADER;
byte flags;
char type;

char name[TAG_FILE_NAME_LENGTH+1];

tag group_tag;
tag subgroup_tag;
long offset, size; // actual offset in the file, whether single or monolithic

unsigned long user_data; // user defined
short version; // user defined

char foundation_tag_file_index; // where a tag will get put when the monolithic files are built
char owner_index; // lower is more important (NONE means local folder); invalid on disk

tag signature; // always 'blam'
};

So my original port should have read:
Identifier 2 bytes
Flags 1 bytes
Type 1 bytes
Name (ASCII name of tag) 32 bytes
Group (amso, geom, mode, etc.) 4 bytes
Subgroup (unique 4 byte tag name) 4 bytes
Offset (to start of tag) 4 bytes
Size (total of tag) 4 bytes
User_data 4 bytes
Version (of tag) 2 bytes
Destination (small install, etc.) 1 byte
owner_index 1 byte
Game Version (mth2 for Myth II) 4 bytes
Post Reply