The Map Header
https://github.com/jacksoncougar/Moonfxsh/wiki/Header
The Tag Datum Index
https://github.com/jacksoncougar/Moonfx ... atum-Index
Halo 2 Programming White Papers
- JacksonCougar
- Huurcat
- Posts: 2460
- Joined: Thu Dec 06, 2007 11:30 pm
- Location: Somewhere in Canada
- Grimdoomer
- Admin
- Posts: 1835
- Joined: Sun Dec 09, 2007 9:09 pm
Re: Halo 2 Programming White Papers
0x1C NonRawSize - (32 + BspMetaSize + MetaTableSize + IndexSize)
0x14C - MapTypeEnum
0x2E8 - ModelRawStart
0x2EC - ModelRawSize
0x14C - MapTypeEnum
0x2E8 - ModelRawStart
0x2EC - ModelRawSize
Don't snort the magic, we need it for the network.
- JacksonCougar
- Huurcat
- Posts: 2460
- Joined: Thu Dec 06, 2007 11:30 pm
- Location: Somewhere in Canada
Re: Halo 2 Programming White Papers
this is my layout for hex workshop:
Code: Select all
#include "standard-types.hsl"
#pragma displayname("Halo2Header") ;
#pragma fileextensions(".map;") ;
#pragma byteorder(little_endian)
struct HEADER
{
char begin[4];
int version;
int filesize;
int unknown;
struct index_info
{
int offset;
int length;
int meta_start_offset;
int meta_end_offset;
} index;
int unknown0[3];
char origin[256];
char build[32];
int unknown1[8];
struct script_reference_info
{
int table_128_offset;
int count;
int table_size;
int index_offset;
int table_offset;
} scripts_references;
int unknown2[9];
char name[32];
int unknown3;
char scenario[256];
int unknown4;
struct file_info
{
int count;
int table_offset;
int table_size;
int index_offset;
} filenames;
struct stringid_info
{
int index_start;
int index_length;
} stringids;
int unknown5;
struct model_data_info
{
int offset;
int length;
} model_data;
unsigned int checksum;
int padding[322];
char final[4];
};
- JacksonCougar
- Huurcat
- Posts: 2460
- Joined: Thu Dec 06, 2007 11:30 pm
- Location: Somewhere in Canada
Re: Halo 2 Programming White Papers
Code: Select all
* INDEX LAYOUT
* Vista doesn't use memory addresses for the following address-values.
* (they are instead 0-based from the index-address)
*
* 0x00 Address to Classes array Int32
* 0x04 Classes array length Int32
* 0x08 Address to Tags array Int32
* 0x0C Scenario TagIdent
* 0x10 Match-Globals TagIdent
* 0x14 ~unknown Int32
* 0x18 Tags array length Int32
* 0xC0 'sgat' char[4]