Haunting+Ground

The character meshes are in the PCK files, while the level terrain/building meshes are in the PAC files.



Attempts to find/extract vertexes:

Format of the character meshes:

....... 2ByteSignedIntegerVertex(X,Y,Z) ......

Format of the PCK files

4ByteInteger#ofFiles {FirstFileOffset,SecondFileOffset,....}

... The first file (???) Contains offsets to (some? all?) models at relative offset pointer at 0x4. Since the first file is located at absolute offset 0x4, we write that the first set of a subfile that contains models is located at offset: [[0x4]+0x4]+[0x4] ???? missing bracket, lets call this subfile FileAlpha

Format of File Alpha: The header is 16Bytes long Headerformat: 4ByteInteger#ofFiles 12Byte Unknown Next is a 48ByteArray of Each file: {4ByteInteger#ofVertexes,4ByteOffset:VertexSection,4ByteOffset:TextureMappingSection,4ByteOffset:NormalMappingSection,4ByteOffset:UnknownSection#1 ,4ByteOffset:UnknownSection#2,4ByteOffset:TriStripInfoSection,4ByteInteger,4ByteInteger,4ByteInteger,4ByteOffset:BaseSection,4ByteInteger} Each offset is relative to the start of the 48ByteInteger array.

VertexSection Format: Header: 16ByteInteger Data: {2ByteSignedIntegerVertexes}

TextureMappingSection Format: {2ByteSignedIntegerTextureUVMappings}

NormalMappingSection Format: {2ByteSignedIntegerNormalMappings}

UnknownSection#1 Format: {4ByteIntegerArrays}

UnknownSection#2 Format: {2ByteIntegerArrays}

TriStripInfoSection Format: {1ByteCONN} Where each CONN is either 1 or 0 If two CONNs in a row are 1 that signifies that the tristrip has just been reset.

Base Section Format: Unknown4ByteNumber