[Dissidia] Models - Viewer and Extractor Tool by MrAdults (2009-04-08)

  • Thread starter Thread starter koral
  • Start date Start date
Status
Not open for further replies.
Whoa, I just e-mailed you, and you had already replied here by the time I got the e-mail off. :) I don't think the sword is an indexing error, because if I just use -U, it looks good, and if the index were off by 1, it would result in warped coordinates on a uniformly stretched surface like that. But, then again, I could be missing something there that would allow bad indexing to cause this. It could also be that the texture map is laid out such that the proper inverse bias could still allow the hilt to look correct while flipping the sword back around. That seems the most likely explanation, but I haven't yet studied the map in combination with the UV values to find out. I'm hoping I will find the magical scale-bias value and it will just fix itself. :)

Here are some of the character files:
Squall: File000854
The dude in the pic (I think he's some kind of special character in Dissidia, as he has everyone's weapon on him): File000899
Kefka: File001123
Tonyberry: File000895

The figures I gave to get the UV's for them are probably not exact, I just eyed it. Also for reference, the UV's are in the vertex array (which typically contains vertices of either size 14 or 16), and they are always the last two shorts of each vertex. Converting them to floating point UV's is a matter of f/65535.0f, but that 65535 could turn into another value for the scale-and-bias too, instead of it being a multiply factor. I've tried searching Squall for floats in the general 2.9-3.1 range, and shorts ranging from 21545 to 21945, but haven't found anything promising. I've also sniffed around all the headers for the surfaces, suface sub-meshes, and surface vertex arrays, and their tails (which seem to be non-existent, the next mesh/array always starts right after the triangle/vertex list, respectively).

If you need any help figuring out the chunks, let me know. For reference, here are the chunk types I've documented thus far:
0x0004 - Bone info
0x0005 - Surface (contains meshes and vertex arrays)
0x000a - Texture (each texture is in its own chunk)
0x0008 - Material list
0x000B - Mysterious, I think it may be arrays of data for bone indexing and/or vertex weights.
0x000F - Texture animation, for blinking characters and such. This could conceivably contain data needed to fix the UV's, but probably not. However, I haven't investigated it too much yet.
0x8015 - Unknown, seems to be a list of floats, but I don't think any are useful for the UV correction.

My chunk structure is as such:
Code: [Select]
Code:
 WORD  chunkType; short  unknownB; int  chunkSize;
 
I was just passing through and noticed your post  :lol:

Thankyou for the info
Based on what you have said about the UVs being shorts (of such immense values) I have to agree with you that there may be more to the numbers than just the UVs.
And we also dont know if the PSP would use a peculiar mechanism to shrink the values down so they can be used for rendering.

Have you tried bit-shifting the shorts instead of straight divisions? That may yield some kind of natural offsets, or perhaps leave a spare bit or two
I am just making random guesses here, I cant look into the files myself right now, sorry
 
Have you tried bit-shifting the shorts instead of straight divisions? That may yield some kind of natural offsets, or perhaps leave a spare bit or two
Yeah, I had the same thought about bit shifting, but nothing there seemed to make sense. However, I may have dismissed chunk 0x8015 too quickly, as I believe these floats may have a relation to the UV scaling after all. There seems to be two different 0x8015 chunks in each file, and the second one seems to have what looks like texel centering data. It will take some more looking into to determine if they're what we're looking for.

I am just making random guesses here, I cant look into the files myself right now, sorry
No worries, I'm grateful for your input regardless. :) And there's no rush. I'm sure it's a small matter of time now til we've got this format in the bag.

Edit: A smaller matter of time than I thought!


That second 0x8015 contains the exact data I was hoping for! 4 floats in the form of U-Bias, V-Bias, U-Scale, V-Scale. But they're scaled based on 0.5 instead of 1.0, so I was scanning the files for the wrong value ranges all along. :) And, it did indeed fix the buster sword case as well. I'll have the mesh2rdm release up later on today, most likely.
 
Last edited:
Awesome!!  :-D

If you ever feel in the mood to document your findings then I can add the spec into the Quimm Wiki for future reference.
But I dont think most people care about how its done as long as they have a way of extracting the models via a tool :lol:

This was all your show MrAdults, full props to you and your hard work!
 :-D
 
@MrAdults

That 'The dude in the pic' is Barts Klauser from FF5.  ;)  Anyway, the progress seems to be pretty fast.  :-D
 
That's a great piece of work, once you release I'll make in-game sprite based Kefka using Dissidia model as base (Since Dissidia one is based on artwork which I don't like mainly because of face). And yes, that char you described as unknown is Butz Klauzer (In japanese version) also known as Bartz Klauser (in english). I do have PSP and Dissidia and the reason why he has weapons of all other heroes is because his fighting style is Mime job, where he copies attacks and weapons of other heroes.
 
Oh yeah, that makes sense, since he's from FF5 where everyone could do anything via jobs. Although I remember his hair being bushier. ;) I'm still waiting for the North American release to play the game.

I'll write up a full spec in the coming days, koral. Documenting it will probably take a little while, as there is quite a lot of info required just to get a model rendering, so I'll just chip away at it in my leisure time. I could just send you the source module to handle the files, too, although it is roughly 10 times more horrifying and needlessly complicated than my Crisis Core module, so I would not wish to inflict that harm upon you. :-D
 
Well, all Dissidia characters are based on Amano's artworks, not their igame looks. His ingame sprite did indeed have different hair but on Amano's drawings it was like this.
 
Tool and what's-new/how-to-use here:
http://www.richwhitehouse.com/index.php?postid=33

It seems to work fine with environmental models and stuff too. There is one bug that I only just noticed, which is that sometimes pure static geometry that is symmetrical will get half of itself culled out. I believe they use a surface flag to indicate those surfaces and re-render them with inverse axis coordinates, to save on vertex space. But, I haven't gotten around to finding that flag yet. The only one of the characters that are affected from what I've been able to tell is Bartz. His cape must be "static" for some reason, maybe it's because there's special code handling to animate the verts or something. But generally, since characters are point-weighted, that optimization can't take place on them.

I think that's everything. Enjoy. :)
 
Cerberus next plz :-P

I'm surprised at how fast this was done, nice job!
 
Thanks for the download link, the fact it can view locations is stunning aswell. I'd like to add that on your screenshot Lunar Whale is clearly visible in the moon level, however ingame, it never can be seen. I know that since I've checked multiple times roaming around the level just now on my PSP and it's clearly not there. Could it be content that was blocked from final version of the product?


EDIT
Tonberry also never appears in the game as 3D model, only 3D models that appear are main chars and villains, Cosmos and Chaos, nothing else (Other than locations that is) Summons and monsters like Tonberry appears in the game as 2D sprites from original sprites or artworks.

EDIT2
Aerith model is there aswell, what the heck? o.O

EDIT3
Why do the EX-Mode weapons appear untextured??

EDIT4
I went through all the models and it seems that actually NONE of characters EX-Modes models are here, neither their alternate models. (In the game, each character has EX-Mode, something like Limit Break, aswell as alternate costume, for Cloud it's Advent Children outfit and so on)
 
Last edited:
That's interesting, I didn't know those models weren't actually in the game. Maybe they're secret characters?

I noticed the untextured weapon models too, but textures for them don't actually exist in the model, I don't think. But they do have materials. I'd have to see a screenshot of them or something, but maybe they use procedural texturing and a blend mode? I don't obey any of the blend flags or anything for materials in the viewer, so that could explain things.
 
Nope, the secret chars are Shantotto and Gabranth (FF11 and FF12 chars). I'd know if there were any secret chars since I have pretty much whored everything out of Dissidia (Already have over 145 gameplay hours lol) I think they simply forgot to cut the crisis core leftovers out.. Or they were testing something.

And here's a few screenshots of EX Modes and alternate outfits which also seem to not be showing up here...

Squall:
http://images3.wikia.nocookie.net/finalfantasy/images/2/29/Dissidia_Squall_Leonhart_ex.png
http://images2.wikia.nocookie.net/finalfantasy/images/0/00/Dissidia-SeeDSquall.png

Kefka:
http://images1.wikia.nocookie.net/finalfantasy/images/7/7e/Dissidia_Kefka_Pallazzo_ex.png
http://images1.wikia.nocookie.net/finalfantasy/images/5/56/Kefka_Alternate_Form.jpg

Cloud:
http://images4.wikia.nocookie.net/finalfantasy/images/8/8a/Dissidia_Cloud_ex.png
http://images3.wikia.nocookie.net/finalfantasy/images/f/f2/CloudAlt.jpg

Sephiroth:
http://finalfantasy.wikia.com/wiki/Image:Dissidia_Sephiroth_ex.png
http://finalfantasy.wikia.com/wiki/Image:Sephiroth_Alternate_Form.jpg

The filenames speak for themselves so I guess I don't need to describe what is what.
 
Very weird, I just double-checked Squall and made sure every chunk/byte of his file is accounted for, and there's definitely no extra skins or mesh data for these Ex modes. All of those duplicates of the Squall model seem to only include different skeletal/animation data, too. No unknown chunks are parsed.

Maybe the ex skin/mesh data is in another batch of files or something. Are you sure the rip is complete?
 
Woohoo! That wraps up another Final Fantasy game!
(and its my 100th post, go me, go me!  :lol:)

I have updated the first post to reflect MrAdults work.  :-D

But I had absolutely no idea about all those "hidden" characters and models, that is an incredibly interesting find!  :-o
If only CC had something more mysterious about it. Its a little dissapointing.

Aurenasek, is it possible that there are more model files somwhere else, besides these files you uploaded here?
 
Those are ALL .gmo files that are in the game. I just decompiled whole .iso again just to make sure. Maybe they could be in other files...
If you could support me with some FTP or free webhosting that allows large files I'd upload whole decompiled iso so you could check up on the files.
I'm asking for that since FileFront bankrupted and they are closing on 30th.
 
Last edited:
What you could try doing is running that texture extractor over the GMO's and other types of files, and see if it can get anything that mesh2rdm can't. You could also try running mesh2rdm over non-gmo extension files, but it won't work unless the full file chunk structure is intact. I don't know how the existing texture extraction tool(s) work, but if they don't need the gmo structure, they might be able to help find which other files have more character data in them.
 
Hmm good idea. I'll seperate all filetypes into their own folders and then run the GIM extractor on them, hopefully I'll manage to isolate the format where textures of Ex-Modes and alternates are.
 
Last edited:
There are quite a number of breaks in the file-numbers, actually every other file (per-character).
Could you confirm if those "missing" files were extracted properly Aurenasek? Even if they had a different file extension. Maybe upload a handful of them on rapidshare?

Because what has me preplexed is why are there so many different GMO files per-character?
Are there multiple story-events with each new character, or are they simply LOD variations?
 
There are lots of story events in the game, half of the time you'll spend on watching cutscenes (in main story mode), so that's why there are so many seperate GMO's most likely, each having different animation set or maybe even skeleton.

As for the missing files, that's how the game is made. I can canfirm for bloody 9001th time that everything extracted properly. I don't understand why do you people not trust me :/ It's annoying.


EDIT
Bad news, the Gim extractor works only on the .iso itself, I tried running it over gmos and other files and it simply didn't work, so I guess that's when problems start.
Or maybe I'm too stupid to make it work with other types of files, I really don't know. Maybe someone else could try using it over the GMO's I uploaded?
 
Last edited:
Status
Not open for further replies.
Back
Top