Gon009 Posted Wednesday at 11:22 AM Posted Wednesday at 11:22 AM Hello! I am searching for any method to extract The Legend of Spyro model files - Krome Studios game. I am trying to extract models from PS2 version of the game. I managed to extract RKV2 files and even see some data but it's not enough for me. I would like to extract a model of one of the characters from the game - Ignitus the Dragon - textured(UV maps) and animations that I can import for example in blender. So far I was able to use Noesis to read .tex files for textures and .mdg files for getting a model, but that .mdg file saved from Noesis has nothing on it, no UV maps, nothing, it's just a mesh so it's not really usable for me in that state. I am sending an archive with sample content of one model I want to extract, all the files around it. The file types from what I see: - .tex - these are the textures - .mdg - probably hold some model data, was example to extract mesh with Noesis with that - .mdl - I don't know what they are - .anm - Probably animation files I think - .ang - I have no idea - .bbi - I have no idea The explanation of file names in that sample: - Textures are in A004_Guard_Fire_Body and A004_Guard_Fire_Wings files. As names suggest there are two texture files used in the model, separate texture for the body and separate for wings. I don't know what .min file does for A004_Guard_Fire_Wings, maybe transparency? I don't know. - There is group of A004_Guardian_Fire files and A004_Guardian_Fire_Synker files. Honestly I don't know what's the difference between regular and Synker file is, I put both in the archive but I think only A004_Guardian_Fire should be enough. There is a textured version of that model from the Gamecube version that can be seen here: https://www.models-resource.com/gamecube/thelegendofspyroanewbeginning/model/49324/ However it doesn't have animations with it. Still, I don't know how someone managed to get the textures on that model. I am also sending Noesis plugins that I was using. I am not the creator of these scripts, inside the archive there are: - fmt_spyro.py - mdg file extraction - tex_Spyro_text.py - tex file extraction I would be extremely grateful for any help or tips! TLoS-TEN-model-sample.zip Spyro-noesis-plugins.zip
Engineers shak-otay Posted Wednesday at 12:20 PM Engineers Posted Wednesday at 12:20 PM (edited) Hello, for the Guardian_Fire dragon Dave's (DKDave?, dunno) script collects 997 small vertex chunks with 3 to 16 vertices, afaics. First 0080026C block has 11 elements in each sub block (0B000000 after first signature 0080026C). Vertex block signature is 02800B68, maybe the 0B is the count again (as it's known from vif signatures). I've rectangular bordered the first and last vertex of the first chunk in black, the green block seems to contain the uv data as shorts, tx, ty, unk1, unk2, so 11x8 bytes . edit: uvs ok so far (I think), except the for the garbage at the lower left corner: Edited Wednesday at 05:15 PM by shak-otay 2
Engineers roocker666 Posted yesterday at 02:46 AM Engineers Posted yesterday at 02:46 AM OK!, I added Uvs and vertex colors but in some meshes of the head(mouth and nose)this looks weird.. Each mesh has 4 buffers: vertbuf, Unkbuf, Uvbuf and Vcolbuf. So probably those meshes have differences in Unkbuf, Uvbuf and Vcolbuf(not in vertbuf because polygons look fine). So you need to check those meshes with Hex editor to see what is happening there, the problem is in the last meshes of the file(from 869 to 997). Here are some images, you can see that vertex colors and Uvs of those meshes are a mess.. By the way, thanks for Uvs format @shak-otay 1
Engineers roocker666 Posted yesterday at 07:56 AM Engineers Posted yesterday at 07:56 AM (edited) All right, I found the problem in those weird meshes. As we know, all meshes have a Tag(00 80 02 6C) and next to this is vert count(4 bytes), then 32 unk bytes, then Vert Tag and vert buffer; Unk Tag and Unk buffer; Uvs Tag and Uvs buffer and finally Vcol Tag and Vcol buffer. But those weird meshes have an extra block of data between vert buf and Unk buffer(this block does not appear in regular meshes). Script from Dave finds Mesh tag(00 80 02 6C), reads vert count and skips 36 bytes(Including vert Tag) to go to vert buffer. I added code to read the other buffers but that extra block of data is causing the problem. I did not notice that extra block before when I edited the script.. Tags are made by 4 bytes, first 2 bytes is like an ID, 3rd byte is count and 4th is unknown. So for tags in buffers: Vert Tag: 02 80 XX XX Unk Tag: 03 80 XX XX Uvs Tag: 04 80 XX XX Vcol Tag: 05 C0 XX XX I need to edit the script again and find a way to skip that stupid extra block.. BTW, I found more weird meshes in the file, meshes 380 to 388(these meshes are the teeth), to find that extra block in meshes search for bytes 0E 05 00 01 This image explains all, compare this mesh to the 1st mesh in the file to see the difference: Edited yesterday at 08:04 AM by roocker666 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now