Page 1 of 1
Halo 2 Programming White Papers
Posted: Wed May 13, 2015 11:16 pm
by JacksonCougar
Re: Halo 2 Programming White Papers
Posted: Thu May 14, 2015 1:53 am
by Grimdoomer
0x1C NonRawSize - (32 + BspMetaSize + MetaTableSize + IndexSize)
0x14C - MapTypeEnum
0x2E8 - ModelRawStart
0x2EC - ModelRawSize
Re: Halo 2 Programming White Papers
Posted: Thu May 14, 2015 4:37 pm
by JacksonCougar
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];
};
Re: Halo 2 Programming White Papers
Posted: Thu May 14, 2015 7:24 pm
by JacksonCougar
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]