If you write something like this online you're obliged to include a link
I thought you'd of found the file haha, it's all I was updating yesterday:
https://github.com/TheStolenBattenberg/Psycpros/blob/master/Documents/File%20Formats/MO.hFiguring out the details of MO_Frame is absolutely critical right now. The problem is there seems to be a variable length, or something funny going on inside the file, and I can't tell exactly what this data refers too. There's another block of data at the end of this, a list of ints equal to the number of frames which points to vertex data. But that vertex data also appears to have a header of some sort...
Okay, so these looks like byte-sized offsets from the top of the file. Is that like any PlayStation SDK format?
It seems strange. I guess 0x14 is not to the first animation really, and the next word (0x24) is, and so the remaining words are the four animation offsets? Maybe 0x14 is an offset beyond an "extra" data block, to be extensible?
They're unsigned ints, and there is no playstation format that is similar. This is an entirely custom FromSoft format, other than the TMD file that's inside it. The 0x14 is an offset to the start of the animation data; in total their are three offsets. The TMD offset, the Vertex Pointers offset and the Animation Data offset (0x14).
Are you positive this is animation? Probably. Good luck figuring it out... that last "animation" is 1 "frame," so it's probably a 0-terminated sequence. MDL uses 0-terminators for its frames sequences, however this is not really that is it. And if these are 0-terminated, maybe I'm seeing things, but it looks like a silly trick is in play that goes like, if the next sequence starts with a 0 then it can double as a 0-terminator, otherwise a terminator is inserted into the byte stream.
Yeah, this is animation for sure. I found the files in CheatEngines memory viewer and played around with a few of the vertices in the blocks, and it altered the animations.
P.S. Saying "Animation [ID:1]" is highly misleading, since there isn't an ID in the file. Say Animation #1. MDL files have animation IDs. But it's nonetheless misleading.
This is internal naming conventions for how I'm storing the data in Psycpros. I read it out like that because it will make it easier when it comes to exporting it to different file formats, like MD2. Personally I think MM3D (Misfit Model 3D) would be a better call as an export format though, since it supports a more modern vertex morph approach.
Just trying to illustrate some of the gymnastics that could be involved... in case it saves you some head scratching. Other things to look out for are large arrays of bits. The MDL animation appears to (looking at notes) put all of the X components in one chunk of sequential bits, and so on for Y & Z. So: XXXXXXYYYYYYYZZZZZZ; Not: XYZXYZXYZXYZXYZ. And I can't recall the encoding scheme exactly, however if a bit is lit then there is a delta elsewhere, and like I say, that is either 1B for a small step, or 2B for a larger step, depending on if its low-order bit is 1 or 0.
Luckily I don't think this format is this complicated, it seems to store its vertices pretty normally, an X-Y-Z format. It's different to TMDs though, since that would also have a 0 at the end.
Edit:
Just bought a copy of Hex Workshop; I feel as if it will make explaining the format a little easier.