Closed dsvensson closed 9 months ago
Got started on this, so no further questions. Nice flexible codebase!
I was looking at QC a bit when I was working on this, but ran out of time. I take it you figured out the dumb PKZip 0xCEED encryption key or whatever it was...
The layout is definitely a bit different, but it should at least be somewhat similar to H2A.
lycka till
A few minor changes here and there, largest pain point atm is aligning buffer offset after ReadObjectsProperty to a hardcoded position that looks right in a hexview lets the rest of the data load correctly, so currently trying to figure out how to read those props in a coherent way. Some extra fields in the materials, overall seems to be very close to same version as halo2a engine. I can produce a 500MB fbx file for one map, but still doesn't produce valid geometry in Blender, even if assxml export looks reasonable except for zeroed out matrices, but who knows what the result is even with those deserialized. I'll update this issue for fun if I get something working. Nice code base to wander around in, been away from C# since early 2000's.
Quake Champions is based on the same engine, except a newer or older version. Started looking into this today and came across this project. I don't suppose you have an ImHex representation of your Halo work? Would be nice to use as a basis when exploring the differences. Differences so far is that 'lg' is followed by \0\0 or is an u16, then texturelist parses correctly, and there are no PsProperties, nor InstMaterialInfoListProperty but when reaching GeometryMngProperty things start to go south. The GeometryGraphType is 7, which is outside of your Enum, and there are 18 properties, so I suppose that ReadObjectsProperty exits at the wrong point in the buffer, and then ReadData tries to read the header at the wrong place. I know this is a Halo project, just wanted to reach out and see if you have any reading material, crude tooling, ImHex pattern, etc that could be of use.