Hey all! so I'm making a set of mod tools for a couple of video games as the tools are either non existent or outdated and no longer work on modern systems. I'm starting off with a simple converter for the game's model files that will convert them to Wavefront OBJ and then back again. These are proprietary file formats…
Vertices and Faces are in the MEMB section, the first vertex starts 80 bytes after the 'MEMB' string, then the faces start immediately after the vertices. GEOM and MESH are just properties sections.
yep alternating.... my mxs code faceindices = for f = 1 to nindices collect ( 1 + ReadShort bstream unsigned; ) faces = for f = 1 to faceindices.count - 2 collect ( face = [0,0,0]; face.x = faceindices[f+2]; face.y = faceindices[f+1]; face.z = faceindices[f]; if mod f 2 == 0 then swap face.x face.y face )
yep it's striped so the indice 12345678... mean faces 123 234 345 456 etc the duplications are a way of continuing the strip without the face being visible so it's visible with wireframe but not without obviously you need to solve the ordering issue .... could be alternating :)
not sure, I didn't delve that far in, that is a rabbit hole for you ;) also the 4 bytes after MEMB+24 4 Unsigned Int Vertex section length is the number of face indices (if you didn't know already)
https://drive.google.com/file/d/127FzMskJjBRH6Ga5QvHzmkFNVHRK-PfJ/view?usp=sharing I'll get the data types and file information for you shortly. :) Interesting, I thought it may have been defining something similar, I thought it was possibly defining edges though, lol! is there any more information on Tri-stripping and…
it also seems to be in big endian byte order or there is some very odd alignment going on :/ the raw data suggest first five faces would be... 1 2 3 4 5 6 7 7 8 8 9 10 9 11 12 that's one bad "chunk" file implementation..... the point of the doom chunk file format is the sizeof chunk in bytes (4 bytes after the 4 byte tag)…