FF8 Models, How did Qhimm rip them?

  • Thread starter Thread starter Satoh
  • Start date Start date
Status
Not open for further replies.
Sorry to bump this, but has any progress been made on this front for the battle models? I've gone so far as to try and rip the models forcibly with 3DRipperDX, though the game as it stands seems to dislike Vista. It confounds the hell out of me too because the models I'm interested in exporting are few and the viewer seems to handle them (somewhat) okay, but there's no way to get them from point A to point B.

EDIT: Well, got the game working on Vista, but the models can't be dumped with 3DRipperDX...oh well.
 
Last edited:
No luck as yet, but rest assured, people are working on it. No guarantees on quick progress, but it will be cracked eventually.
 
Well it does look like, from what I'm reading, some lesser form of import/conversion tool could be developed for the time being if the person is willing to do some fiddling with the model after an end result (it's more the beasties I'm hoping to give a rendered animated version, so "some assembly required" is of no consequence for me XD). Interestingly to this end the ones I'm after do appear fine in the viewer, save for the Iron Giant's unarmed hand being twisted 180 degrees.

Btw I'm sorry if any of that post comes across in an ungrateful tone (because I'm very much grateful for the work done), just stressed atm about other things.
 
Last edited:
Well it does look like, from what I'm reading, some lesser form of import/conversion tool could be developed for the time being if the person is willing to do some fiddling with the model after an end result (it's more the beasties I'm hoping to give a rendered animated version, so "some assembly required" is of no consequence for me XD)
Well, I agree with the 'some assembly required' thing, as an avid modeler myself... but unfortunately the number of people who can program import/export stuff is even more limited than those who can read and decipher formats by their hex data...

Of which I can do neither with any proficiency...
 
Well had some luck. Of sorts.

http://planescape.piiym-net.com/irongiant.rar

What I did was use 3DVia Printscreen on CharEdit itself. The result came out as you see up there. Unfortunately giving the thing bones is turning into somewhat of a pain in the...maybe I need a crash course in it.

If anyone's willing, I can go ahead and see if I can get any other models from it for them. They rip pretty well, just no bones, no animations and twisted elements stay, well, twisted.
 
Well had some luck. Of sorts.

http://planescape.piiym-net.com/irongiant.rar

What I did was use 3DVia Printscreen on CharEdit itself. The result came out as you see up there. Unfortunately giving the thing bones is turning into somewhat of a pain in the...maybe I need a crash course in it.

If anyone's willing, I can go ahead and see if I can get any other models from it for them. They rip pretty well, just no bones, no animations and twisted elements stay, well, twisted.
I clicked the link to the 3DVia printscreen program but it tells me that page is nonexistent. That, I should mention, is not the first time I've tried to get that program...

Can someone mirror the installer? Also can you save files in OBJ? I have Maya, and Max, but I think my Max is long since expired.
 
I am DEFINITELY going to explore using 3DVia Printscreen on these models.   It shouldn't be any trouble importing the files and twisting everything the correct way.  I'll have the Iron Giant Kung Fu Man uploaded converted to obj tonight (if all goes well) and will gladly upload it.

EDIT:
Unfixed Iron Giant.obj  Nice job Kung Fu Man!
 
Last edited:
By looking at the PSX version, I've gotten more information on the field model animation data. (They really are the same format in both PC and PSX.)
The game writes things to the skeleton bone data.

What I assume to be the rotations are copied to 0x0C of the corresponding bone's data.

Code: [Select]
Code:
Byte Numbers refer to bytes of each bone's four bytes in the animation data.Short Rotation?1 = (Byte1 << 0x02)| ((Byte4 & 0x03) << 0x0A)short Rotation?2 = (Byte2 << 0x02) | ((Byte4 & 0x0C) << 0x08)short Rotation?3 = (Byte3 << 0x02) | ((Byte4 & 0x30) << 0x06))or, more closely following the game's ASM:Short Rotation?1 = (Byte1 << 0x02)| ((Byte4 << 0x0A) & 0xC00) short Rotation?2 = (Byte2 << 0x02) | ((Byte4 << 0x08) & 0xC00)short Rotation?3 = (Byte3 << 0x02) | ((Byte4  << 0x06) & 0xC00)
 
Last edited:
Has anyone done any looking into the character.one's?

I recently ran all of the ONE's through PSicture and found every NPC texture there is in FF8...

however as they all share similar names I can only dump one set of ONE textures at a time... and believe me it was NOT easy getting all the ONE's in the same place since they all have the same name and are each in a series of nested folders.... it was hell.... but I managed to do it by compressing them in an archive... IIRC...

Anyway what I really need out of them is the SeeD and SeeD Cadet models... granted all the other characters would help too... but my players will need someone to... idunno... play.

Also has anyone looked into battlefield models or where the Ragnarok model is? (I love the Ragnarok... it's so epic looking...)


(It only recently hit me that Koral left... I'm actually quite upset by that, moreso than I imagined I could be... I feel like I've lost a close friend even though I barely knew her... I wish I could at least say goodbye but she's already gone and I have no way to contact her... Does anyone know what happened?)
 
I've been trying to import FF8 field models into Blender for the last two or three weeks. It hasn't gone as well as I hoped, probably because I don't really understand how to do it.

QuistisModelConversionAttempt.png

ElloneConversionAttempt.png


During this, I've concluded that what I called "Rotation1" is the Z-rotation.
 
Last edited:
whoa whoa whoa! Don't say you haven't had much luck! I can tell the first one is Quistis!

You've obviously made some progress!

It looks like you're having a problem determining which verts are attached to which bones, how much weight they have, or some similar issue.

I have some very high hopes for all this now.
 
In case anyone's wondering, I messed with my script too much and didn't keep backups, so I can't reproduce those results from before.  :oops:
I've attempted to recreate it, but I don't know how close I've gotten. I've fixed the misplacement of vertices though.

Current results:
Ellone_Model_attempt_2Dec09.png
Rinoa_model_export_Test_1.png


I suppose it's working better skeleton-wise than my other version of the script, which uses Blender's Pose module.
ElloneAndRinoa_ExportTestPosebones.png


However, the first method can only do one frame from one animation.


(I don't know much about 3D.)


Animation Test Image
 
Last edited:
It may or may not look like much to you, but it looks very promising in my opinion.

I can't say I remember too much about the state of the previous script... but this certainly looks like progress to my eyes.
 
In case anyone's wondering, I messed with my script too much and didn't keep backups, so I can't reproduce those results from before.  :oops:
I've attempted to recreate it, but I don't know how close I've gotten. I've fixed the misplacement of vertices though.

Current results:

However, the first method can only do one frame from one animation.


(I don't know much about 3D.)
The polygon placement looks about right actually. I believe that the models might have been permanently lit though.  The UV data should also be with the polygons as I remember something like that it was straight forward poylgon data from the PS1 GPU system.

Cyb
 
Oh how I wish I had he skill at spotting the relevant patterns for data structures like you guys have... Even with well documented headers I can't seem to make my bytes fit right... nonetheless find a vertex pool...

but regardless, I'm glad to see I'm not the only one still interested in getting a good look at 8's graphics.
 
Oh how I wish I had he skill at spotting the relevant patterns for data structures like you guys have... Even with well documented headers I can't seem to make my bytes fit right... nonetheless find a vertex pool...

but regardless, I'm glad to see I'm not the only one still interested in getting a good look at 8's graphics.
For me it's sort of like this, "I'm working on an LED luminary, how far is that half bridge from the OSMC 4.1XX, ok I have this AT91SAM7S dev kit is the JTAG drivers installed, I need to install YAGARTO to develope for the micro why is ECLIPSE CDT wiping out the ZYLIN CDT used with YAGARTO, we have 30cm of snow in the drive way. Ok which to do first" sadly that's just today. That didn't include eating getting up and the myriad of other things I think of in a single day etc.

I would spend more time on this stuff if I had more time I guess is the best way of looking at it.

The best way to look at graphics data is that it IS data. Data must be arranged in a uniform manner. Data must have certain information in it for it to function.  What does FF8 do? It has polygons textures, and a skeletal system. We know this by observing the game output.  So it must have UV data to map the texture. It must have a texture. It must have a list of vertex information. It must have a polygon list.  I believe FF8 used all quads I can't be positive because it's been almost 3 years and 9 months since I looked at it. Unlike FF7 it's all the same data type.  FF7 had a rather complex setup where it drew quads triangles and then textures. FF8 just does textures. Of course the reason why FF7 looks quite good still is because of the complex method of rendering.You are a bit further along than I was I was about where you were at the post on 2009-10-09 14:31:2.

Side ramblings, I have more FF9 data now. I suppose I should finish gathering the FF8 data as well. I need several hundred saves with detailed notes on them basically to verify what bit does what and when. One LONG boring play through.

I may put up a detailed CRC explanation as well (hmmm).

Erstwhile with the FF8 data I suggest taking a bit map and drawing on it while you render, the polygon data or while you traverse it.  This technique allowed me to find and understand  the UV data in FF7. IE you feed the UV coordinate data into a vector drawing routine and plot the UV drawing out on a bitmap. IF it looks right then you are probably correct in analysizing the data. Do note they do mirror the data. If you wish to get fancy you can also include numbering for each polygon drawn as well. I started doing that just to know what was done when. (I was nuts I admit).

IF you detail all of this better than I can remember good, if you have the time put it in the wiki (LOL) maybe Qgears will get FF8 functionality sooner than later.

Cyb
 
So what you're saying, is that once I have a potential vertex pool, I start plotting two of the coords per vertex in paint... If it starts to look like a model shape, I probably have the right stuff. If not I may be looking at something else entirely...

Is that what you're describing?

(And on the subject of busy life stuff... that I can fully understand... it isn't easy being a fulltime student with a part time job and no method of self-transport...)


However, I should note that I'm not simply working on FF8... I'm on FF9, both .hack series' and a number of other games on and off at any given moment, as well as being a 3D modeler for my own games... If I devoted all my time to one format... I'd probably be able to crack it at some point(or have a severe mental break).

However, my previous statement was referring mainly to the fact that I still can't get my headers to read properly even when they are fully documented...

When I read a header that tells me a file should start or end at a certain point in the data... I look at that part and it's either well after the end of the file or it is in some random spot after the file has already started... so instead I look at a relative point to the beginning, or end of that header, or the main header, or the end of the previous file, etc... but for some reason, even though I know the documentation is good, the headers don't seem to point me to where they should... (meaning I'm somehow reading them wrong...)


In any case... none of this helps the FF8 formats so I guess I'll stop.
 
So what you're saying, is that once I have a potential vertex pool, I start plotting two of the coords per vertex in paint... If it starts to look like a model shape, I probably have the right stuff. If not I may be looking at something else entirely...

Is that what you're describing?

(And on the subject of busy life stuff... that I can fully understand... it isn't easy being a fulltime student with a part time job and no method of self-transport...)


However, I should note that I'm not simply working on FF8... I'm on FF9, both .hack series' and a number of other games on and off at any given moment, as well as being a 3D modeler for my own games... If I devoted all my time to one format... I'd probably be able to crack it at some point(or have a severe mental break).

However, my previous statement was referring mainly to the fact that I still can't get my headers to read properly even when they are fully documented...

When I read a header that tells me a file should start or end at a certain point in the data... I look at that part and it's either well after the end of the file or it is in some random spot after the file has already started... so instead I look at a relative point to the beginning, or end of that header, or the main header, or the end of the previous file, etc... but for some reason, even though I know the documentation is good, the headers don't seem to point me to where they should... (meaning I'm somehow reading them wrong...)


In any case... none of this helps the FF8 formats so I guess I'll stop.
I'm now curious when I get time I'll dig through what's left of my FF8 experimentation.  I have to remember the media data as well. FF7 was much easier to deal with than FF8 and FF9 in that regards. In the mean time it will be a bit of time before I can have some useful data from my mad ramblings eons ago.

As for your interpretation of the headers, I believe if you can find the data on for example 15 different models, then compare the header information with regard to the information to the location of the data in the model section that will help. That's basically what I've always had to do. It's how I discovered that the model file in FF7 is actually a large number of files with character files having 16 weapon files (including blank ones) and the weapons were treated as part of the character's skeleton in animations. :D

If you plot the 3d data as you decribe you can get an idea. It also works with the UV data for the 3d data as well. That will get a few textures on your models. Also be aware of the way the PS1 renders quads and triangles. They are not obvious. In fact I suggest you read halkun's 'everything you wanted to know' document he wrote in regards to the organization of the GPU data. Follow carefully the use of the coordinates in the polygon. The PS1 renders the quads as 2 triangles. This is how I got them to work in data FF7 with quite good results. The same will go with the data likely in FF8. If you think about 2 triangles being rendered to make a quad. 2 points are adjacent. That's the big clue on how they rendered the data.  You will have your polys look like bow ties if you don't realize this. :D

UV data has coordinates in a bit map (texture).  If you take a blank bit map and draw the UV coordinates on it while traversing the associated polygons you can plot the triangles and polys on the bitmap as they are rendered.  This also helps when you have your quad coordinates not in order.

Cyb
 
FF8 UV data is one of the thing that's been at least partially documented before, and so far it mostly seems to work.

Example using my first method of applying rotations.
ElloneModel_textured_1.png


I still need to figure out how to properly apply the rotations. Even this method is a bit off, more than this particular model shows. There are also some things I need to do for ease of use.

I admit I'm rather ignorant on how the PSX actually draws things.
 
Last edited:
Those gaping holes infer that the surface has the inverse normal it should have hmm you may have mostly triangles and those might be quads? This may indicate you are not traversing those particular vertexes in the correct order. The right foot looks slightly incorrect. It's better looking than my spaghetti was to be honest.

I found my old source code but it looks like the DFM file (form layout description language) got hosed. It seemed to do quite a bit it appears to have used GLPanel which... isn't on the net anymore :)

I remember I was moving to GLScene. However GLScene is vehemently Delphine in nature as well as not very well supported by BCB. I can't build the components essentially. (Puzzle).

Well anyhow it appears to be a similiar panel to what NeHe assistants used in the BCB examples. So I'll see what I can do with those variants.

The biggest problem is I am missing half the descriptor for my form.

Erstwhile as I said it looks like you have missordered some of the vertexs and that might be what is causing the 'holes' the rotation issues might be directly related although I doubt it. The foot appears to have been rotated the oposite direction. My mistake was not taking the vertex pool seriously enough. Maybe I can fiddle with the old FF8 model traversing code.


Cyb
 
Status
Not open for further replies.
Back
Top