Hi. I'm new here, so as a quick introductory, I am a programmer. I'll leave it at that.
Anyway, I've written a tool to view PSX-format models/weapon models/animations, and convert them to my own skeletal model and animation formats. I used some of the information up on the Wiki regarding the mesh and PC version animation formats to get it up and running. I've stuck the module from my tool for the handling of FF7 modules up here:
http://www.telefragged.com/thefatal/other/model_ff7.cppStart at the Model_FF7_Open function, that handles a buffer of the raw LZS data and goes from there decompressing and then handling the actual battle model data. That should be enough to push you in the right direction (my coding style is also fairly sane and does not contain random inline assembly).
Regarding the handling of animations for the PSX version, there are some things to note outside of how the PC animation formats are handled:
1. As mentioned on the Wiki (at least I think I saw this somewhere), animations are stored starting at section 2 (with 0 being the primary model/bones, and 1 being unknown).
2. The layout of data at the beginning of each animation section is as follows (couldn't find this info anywhere):
unsigned short frameNum; //number of frames in this animation section
unsigned short animSize; //size in bytes of the anim (I think)
unsigned char key; //as mentioned in the PC animation format document, this is the bit size decoding key
The actual animation data follows, 5 bytes into the section. You then read frames by iterating up to frameNum and reading rotations for every bone for each iteration.
3. Following the main animations, and before reaching the TIM/weapon model sections, there are some unknown sections. The first few of these encountered do not look like any documented structure, and what follows that resembles animation data. However, that animation data has a very small frame:size ratio. I suspect those unknown sections are base bone rotations stored in a different structure, and the following animation sections are then stored as differently encoded deltas to those base rotations. That is just a guess from looking at the data, I haven't tried stepping through PSX FF7 to see what happens with that data or anything.
I think that is everything. Hope it helps. As a side note, here are some pictures of models in my engine and my modified Quake engine:
http://www.telefragged.com/thefatal/images_new/cloudhi.jpghttp://www.telefragged.com/thefatal/images_new/angel.jpgEdit: Cleaned up a few things (suffering from sleep deprivation/bad sleep schedule)