FF7 Crisis Core - File Format and Data Investigation

  • Thread starter Thread starter koral
  • Start date Start date
Status
Not open for further replies.
ignitz, THANKYOU!!!  :lol:
I have it all working properly!

spider, are you using Vista too?
It might be because of the ugly OpenGL support that Vista has, so I have now changed the renderer to Sofware instead of OGL. This should work on all OS's the same.


And here is the latest version (v0.30): http://www.mediafire.com/?y3emvodmyzi

New features and changes:

- Now shows [MBD] scripts as simple textfiles (there is no scroll-bar, but you can use the arrow keys to scroll up or down, or ctrl+A and paste into notepad)
- Export out RAW-data chunks or Textures as PNG images
- Tried to make the User-Interface a little easier on the eyes


I think file "00000.raw" is special, here is a copy of the script:
Code: [Select]
Code:
<TEXT>Where do you want to go?<M-CHOICE> Battle Ms. Ishibashi Mr. Oka Mr. Kitase Mr. Kunikata Mr. Shindo Mr. Terada Mr. Maeda Moriya kun<END>
Its a menu which has elements named after the game producers! Maybe its a Debug-Menu?

I'm not sure what I should do next  :|
Models would be nice, but it's useless without vertices

I will just wait I suppose, step down a gear, wait until someone can spot something worth looking into.

Have fun!  :-)
 
I'm not sure what I should do next  :|
Models would be nice, but it's useless without vertices

I will just wait I suppose, step down a gear, wait until someone can spot something worth looking into.

Have fun!  :-)
Model's would be great. i'll help as much as i can  :wink:
shouldnt be long before we find something!
 
i would love to help you look for the vertex data but i dont know what i'm looking for...if you kow what i mean. If someone could help me there i'd appreciate it. :-)
 
The pointer of MBD files maybe be in teh opcodes or compressed in before of MBD header. I give up.
Without PSP is so hard.

Koral thanks for the tools. Be very cool, you make a nice JOB. :mrgreen:
The fonts work perfect now with your tool, thanks.
 
I was browsing through the text files, and i happened to find this in 01859.raw. The bold bits are what you should take note of.

<TEXT>
Materia has leveled up!
<END>

<TEXT>
Nothing more to do, kupo!
<END>

<TEXT>
Load failed.
<END>

<TEXT>
Load canceled.
<END>

<TEXT>
<CHOICE1>: Open
<END>

<TEXT>
<CHOICE1>: Push
<END>

<TEXT>
<CHOICE1>: Go up
<END>

<TEXT>
<TEXT>
<CHOICE1>: Go down
<END>

<TEXT>
<CHOICE1>: Use elevator
<END>

<TEXT>
<CHOICE1>: Use gondola
<END>

<TEXT>
<CHOICE1>: Rotate
<END>

<TEXT>
<CHOICE1>: Read
<END>

<TEXT>
<CHOICE1>: Move
<END>

<TEXT>
<TEXT>
<CHOICE1>: Examine
<END>
 
Been doing some looking in the [!] files.

Seems characters models are in the second chunk, that being the largest. i've found vertex data there that is *almost* identical to that of KHII models.
Seems very familliar, particularly because of the "3F80"'s that keep appearing.

I can pretty much confirm that i have definately found 3D model data:

comparison-3.png

if picture is too small, click here

On the left is some of the data in an MDLX model from KHII, although, what's important is the right side.
now, i'm not a genious, but i have done vertex hacking before, and i THINK i've figured this out...

on the right, we have the crisis core [!] file for tifa open at the model section.
Now, i could be wrong, but this looks very promising.

Section "A" in the tifa model appears to contain information regarding parent/child/sibling verticies and what have you. we can see this by looking at their functions. they both appear to be "LUI"ing "$c123", however, the line above that is "LUI"ing something different. this brings me to (almost) understand the first twelve bytes of Code:

First four bytes: Parent vertex.
Second four bytes: Child Vertex
Third Four bytes: Sibling vertex

now, that would make sense, right? seeing as the picture you can see it at the very first of the datablocks, and it would have no parent verticies.

Section B is completely unknown to me. i have no idea what it is, i only understand that it varies quite a lot. possibly its some sort of "normal" type thing. only speculation though. Apparently, it could also be some sort of rotation information.

If anything contains coordinate information, its Section C. there are THREE two-byte things going on. X, Y, Z. c'mon, looks pretty obvious, wouldnt you say so?

So, to conclude, these datablocks DO vary a little from time to time, with random padding and such, but other than that, i appear to have somewhat deciphered this. If it's no good, koral, it'll be back to the drawing board XD

I REALLY hope this helps you render those models koral :D
 
Last edited:
:-D :-D
you're right neocloud, there is definitly an obvious pattern there with 4-dwords and 4-shorts (last short always a zero)
I just tried reading a block of them, but after 10 or so "groups" the data messes up because of the unexplained padding.

But you've confirmed it: mesh data (aka vertices) are most definitly present within the [!] files in [Uknown Chunk 2]

To call them "character files" would be a bit of an understatement, because I've seen simple things like barrels too. Bones are probably optional though, but maybe what they really are Animated Model Files.

I noticed that the [&&] files-chunks (also inside [ATEL] files) are almost identical to the [!] files except the header is smaller and contains less inner-sections. So those are most likely Static-Mesh Model files (maybe the model of the Location Map itself?).

No need to go back to the drawing-board, if we can figure out how the padding seems to work then that should allow us to get have enough vertices to render out.
i think there might be some sort of tag or code (like in [MBD] files) which determines how the current or next "group" should be read.

Or maybe they are Polygons? Then the multiple-dwords could contain indices for more than 3 vertices, explaining for the strange grouping.
Or maybe the groups are intentionally split based on the data from [unknown chunk 1], linked with the bones that they're attached with?

lots of possibilities! But at least you've given me something to think about  :-P


ultimo espio I noticed that too, those MBD scripts are in almost all [ATEL] files!
For some reason, the developers decided to use a Moogle and give it politely accurate scripts?!

I can only guess that its linked with the Debug-Menu thing, an event which can optionally be switched "on" but is off by default.
I wonder if there might be a keycode associated with it, or if its something which has to run during the game bootup. Could we somehow excecute the 00000.raw MBD manually?

Interesting possibilities right there
 :lol:
 
okay, I've just stumbled across a possible 4-byte "vertex" tag in [unknown-chunk-2] :
(hex) 00 00 80 3f 
(dec) 00 00 128 63 

The size of these groupings tend to vary, but there is definitly something going on here

for example, file 02192.raw (Tifa), [unknown-chunk-2] bytes read 4 at a time:
(tag shown 'underlined')

Code: [Select]
Code:
0, 0, 0, 0, 1, 0, 12, 0, 0, 0, 1, 2, 35, 7, 0, 0, 0, 0, 3, 0, 24, 0, 0, 0, 0, 0, 128, 63, -----------------------  1  25, 91, 1, 63, 35, 193, 67, 63, 134, 34, 0, 0, 133, 246, 42, 79, 179, 254, 0, 0, 0, 0, 128, 63, -----------------------  2  130, 6, 16, 63, 35, 193, 67, 63, 189, 52, 163, 0, 0, 249, 154, 79, 130, 250, 0, 0, 0, 0, 128, 63, -----------------------  3  57, 241, 15, 63, 15, 218, 78, 63, 172, 34, 169, 0, 83, 248, 191, 75, 40, 249, 0, 0, 0, 0, 128, 63, -----------------------  4  57, 241, 15, 63, 15, 218, 78, 63, 84, 34, 169, 0, 173, 7, 191, 75, 40, 249, 0, 0, 0, 0, 128, 63, -----------------------  5  207, 170, 37, 63, 15, 218, 78, 63, 0, 37, 135, 0, 0, 0, 123, 75, 83, 247, 0, 0, 0, 0, 128, 63, -----------------------  6  130, 6, 16, 63, 35, 193, 67, 63, 67, 52, 163, 0, 0, 7, 154, 79, 130, 250, 0, 0, 0, 0, 128, 63, -----------------------  7  252, 50, 69, 62, 88, 11, 157, 62, 61, 146, 14, 0, 226, 254, 67, 68, 124, 254, 0, 0, 0, 0, 128, 63, -----------------------  8  163, 201, 85, 62, 108, 110, 153, 62, 0, 134, 222, 0, 0, 0, 179, 69, 218, 250, 0, 0, 0, 0, 128, 63, -----------------------  9  252, 50, 69, 62, 72, 197, 150, 62, 195, 146, 14, 0, 30, 1, 67, 68, 124, 254, 0, 0, 0, 0, 128, 63, -----------------------  10  161, 32, 66, 62, 198, 58, 239, 62, 61, 146, 14, 0, 226, 254, 67, 68, 124, 254, 0, 0, 0, 0, 128, 63, -----------------------  11  155, 32, 66, 62, 38, 112, 244, 62, 195, 146, 14, 0, 30, 1, 67, 68, 124, 254, 0, 0, 0, 0, 128, 63, -----------------------  12  4, 232, 82, 62, 4, 199, 241, 62, 0, 151, 71, 0, 0, 0, 108, 69, 165, 2, 0, 0, 0, 0, 128, 63, -----------------------  13  57, 241, 15, 63, 15, 218, 78, 63, 84, 34, 169, 0, 173, 7, 191, 75, 40, 249, 0, 0, 0, 0, 128, 63, -----------------------  14  130, 6, 16, 63, 35, 193, 67, 63, 67, 52, 163, 0, 0, 7, 154, 79, 130, 250, 0, 0, 0, 0, 128, 63, -----------------------  15  25, 91, 1, 63, 35, 193, 67, 63, 122, 34, 0, 0, 123, 9, 42, 79, 179, 254, 0, 0, 0, 0, 128, 63, -----------------------  16  130, 6, 16, 63, 35, 193, 67, 63, 189, 52, 163, 0, 0, 249, 154, 79, 130, 250, 0, 0, 0, 0, 128, 63, -----------------------  17  207, 170, 37, 63, 15, 218, 78, 63, 0, 37, 135, 0, 0, 0, 123, 75, 83, 247, 0, 0, 0, 0, 128, 63, -----------------------  18  57, 241, 15, 63, 15, 218, 78, 63, 172, 34, 169, 0, 83, 248, 191, 75, 40, 249, 0, 0, 0, 0, 128, 63, -----------------------  19  130, 6, 16, 63, 35, 193, 67, 63, 67, 52, 163, 0, 0, 7, 154, 79, 130, 250, 0, 0, 0, 0, 128, 63, -----------------------  20  207, 170, 37, 63, 15, 218, 78, 63, 0, 37, 135, 0, 0, 0, 123, 75, 83, 247, 0, 0, 0, 0, 128, 63, -----------------------  21  207, 170, 37, 63, 35, 193, 67, 63, 0, 48, 139, 0, 0, 0, 204, 79, 144, 249, 0, 0, 0, 0, 128, 63, -----------------------  22  207, 170, 37, 63, 35, 193, 67, 63, 0, 48, 139, 0, 0, 0, 204, 79, 144, 249, 0, 0, 0, 0, 128, 63, -----------------------  23  207, 170, 37, 63, 15, 218, 78, 63, 0, 37, 135, 0, 0, 0, 123, 75, 83, 247, 0, 0, 0, 0, 128, 63, -----------------------  24  130, 6, 16, 63, 35, 193, 67, 63, 189, 52, 163, 0, 0, 249, 154, 79, 130, 250, 0, 0, 1, 0, 16, 0, 0, 0, 3, 2, 35, 135, 0, 0, 0, 0, 3, 0, 1, 0, 5, 0, 2, 0, 6, 0, 48, 0, 0, 0, 0, 0, 0, 0, 102, 102, 102, 63, 205, 204, 204, 61, 42, 207, 154, 62, 235, 142, 87, 63, 133, 29, 255, 0, 41, 249, 108, 86, 161, 0, 0, 0, 0, 0, 0, 0, 51, 51, 115, 63, 205, 204, 76, 61, 203, 247, 156, 62, 39, 8, 74, 63, 186, 21, 153, 0, 110, 251, 143, 86, 177, 252, 0, 0, 0, 0, 128, 63, -----------------------  25  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 6, 24, 76, 63, 189, 52, 163, 0, 0, 249, 154, 79, 130, 250, 0, 0, 0, 0, 128, 63, -----------------------  26  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 6, 24, 76, 63, 67, 52, 163, 0, 0, 7, 154, 79, 130, 250, 0, 0, 0, 0, 128, 63, -----------------------  27  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 236, 114, 61, 63, 0, 48, 139, 0, 0, 0, 204, 79, 144, 249, 0, 0, 0, 0, 0, 0, 51, 51, 115, 63, 205, 204, 76, 61, 203, 247, 156, 62, 39, 8, 74, 63, 70, 21, 153, 0, 146, 4, 143, 86, 177, 252, 0, 0, 0, 0, 128, 63, -----------------------  28  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 92, 22, 98, 63, 87, 14, 90, 0, 223, 6, 162, 78, 63, 4, 0, 0, 0, 0, 0, 0, 102, 102, 102, 63, 205, 204, 204, 61, 42, 207, 154, 62, 235, 142, 87, 63, 123, 29, 255, 0, 215, 6, 108, 86, 161, 0, 0, 0, 0, 0, 0, 0, 102, 102, 102, 63, 205, 204, 204, 61, 74, 132, 137, 62, 57, 65, 98, 63, 73, 253, 103, 0, 148, 4, 147, 87, 249, 4, 0, 0, 0, 0, 0, 0, 102, 102, 102, 63, 205, 204, 204, 61, 42, 207, 154, 62, 235, 142, 87, 63, 133, 29, 255, 0, 41, 249, 108, 86, 161, 0, 0, 0, 0, 0, 128, 63, -----------------------  29  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 6, 24, 76, 63, 189, 52, 163, 0, 0, 249, 154, 79, 130, 250, 0, 0, 0, 0, 128, 63, -----------------------  30  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 120, 24, 86, 63, 134, 34, 0, 0, 133, 246, 42, 79, 179, 254, 0, 0, 0, 0, 128, 63, -----------------------  31  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 92, 22, 98, 63, 169, 14, 90, 0, 33, 249, 162, 78, 63, 4, 0, 0, 0, 0, 0, 0, 102, 102, 102, 63, 205, 204, 204, 61, 42, 207, 154, 62, 235, 142, 87, 63, 133, 29, 255, 0, 41, 249, 108, 86, 161, 0, 0, 0, 0, 0, 128, 63, -----------------------  32  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 120, 24, 86, 63, 134, 34, 0, 0, 133, 246, 42, 79, 179, 254, 0, 0, 0, 0, 0, 0, 51, 51, 115, 63, 205, 204, 76, 61, 203, 247, 156, 62, 39, 8, 74, 63, 70, 21, 153, 0, 146, 4, 143, 86, 177, 252, 0, 0, 0, 0, 128, 63, -----------------------  33  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 236, 114, 61, 63, 0, 48, 139, 0, 0, 0, 204, 79, 144, 249, 0, 0, 0, 0, 0, 0, 51, 51, 115, 63, 205, 204, 76, 61, 65, 168, 157, 62, 238, 114, 61, 63, 0, 0, 130, 0, 0, 0, 147, 86, 4, 252, 0, 0, 0, 0, 128, 63, -----------------------  34  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 120, 24, 86, 63, 122, 34, 0, 0, 123, 9, 42, 79, 179, 254, 0, 0, 0, 0, 0, 0, 102, 102, 102, 63, 205, 204, 204, 61, 42, 207, 154, 62, 235, 142, 87, 63, 123, 29, 255, 0, 215, 6, 108, 86, 161, 0, 0, 0, 0, 0, 128, 63, -----------------------  35  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 92, 22, 98, 63, 87, 14, 90, 0, 223, 6, 162, 78, 63, 4, 0, 0, 0, 0, 128, 63, -----------------------  36  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 6, 24, 76, 63, 67, 52, 163, 0, 0, 7, 154, 79, 130, 250, 0, 0, 0, 0, 0, 0, 51, 51, 115, 63, 205, 204, 76, 61, 203, 247, 156, 62, 39, 8, 74, 63, 70, 21, 153, 0, 146, 4, 143, 86, 177, 252, 0, 0, 0, 0, 0, 0, 102, 102, 102, 63, 205, 204, 204, 61, 42, 207, 154, 62, 235, 142, 87, 63, 123, 29, 255, 0, 215, 6, 108, 86, 161, 0, 0, 0, 0, 0, 128, 63, -----------------------  37  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 3, 98, 111, 63, 0, 255, 126, 0, 0, 0, 67, 78, 207, 5, 0, 0, 0, 0, 0, 0, 102, 102, 102, 63, 205, 204, 204, 61, 74, 132, 137, 62, 57, 65, 98, 63, 73, 253, 103, 0, 148, 4, 147, 87, 249, 4, 0, 0, 0, 0, 0, 0, 51, 51, 115, 63, 205, 204, 76, 61, 34, 19, 149, 62, 3, 98, 111, 63, 0, 250, 126, 0, 0, 0, 145, 87, 222, 5, 0, 0, 0, 0, 0, 0, 51, 51, 115, 63, 205, 204, 76, 61, 65, 168, 157, 62, 238, 114, 61, 63, 0, 0, 130, 0, 0, 0, 147, 86, 4, 252, 0, 0, 0, 0, 128, 63, -----------------------  38  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 236, 114, 61, 63, 0, 48, 139, 0, 0, 0, 204, 79, 144, 249, 0, 0, 0, 0, 0, 0, 51, 51, 115, 63, 205, 204, 76, 61, 203, 247, 156, 62, 39, 8, 74, 63, 186, 21, 153, 0, 110, 251, 143, 86, 177, 252, 0, 0, 0, 0, 128, 63, -----------------------  39  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 120, 24, 86, 63, 122, 34, 0, 0, 123, 9, 42, 79, 179, 254, 0, 0, 0, 0, 128, 63, -----------------------  40  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 6, 24, 76, 63, 67, 52, 163, 0, 0, 7, 154, 79, 130, 250, 0, 0, 0, 0, 0, 0, 102, 102, 102, 63, 205, 204, 204, 61, 42, 207, 154, 62, 235, 142, 87, 63, 123, 29, 255, 0, 215, 6, 108, 86, 161, 0, 0, 0, 0, 0, 0, 0, 51, 51, 115, 63, 205, 204, 76, 61, 34, 19, 149, 62, 3, 98, 111, 63, 0, 250, 126, 0, 0, 0, 145, 87, 222, 5, 0, 0, 0, 0, 0, 0, 102, 102, 102, 63, 205, 204, 204, 61, 74, 132, 137, 62, 57, 65, 98, 63, 183, 253, 103, 0, 108, 251, 147, 87, 249, 4, 0, 0, 0, 0, 128, 63, -----------------------  41  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 3, 98, 111, 63, 0, 255, 126, 0, 0, 0, 67, 78, 207, 5, 0, 0, 0, 0, 0, 0, 51, 51, 115, 63, 205, 204, 76, 61, 203, 247, 156, 62, 39, 8, 74, 63, 186, 21, 153, 0, 110, 251, 143, 86, 177, 252, 0, 0, 0, 0, 128, 63, -----------------------  42  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 236, 114, 61, 63, 0, 48, 139, 0, 0, 0, 204, 79, 144, 249, 0, 0, 0, 0, 128, 63, -----------------------  43  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 6, 24, 76, 63, 189, 52, 163, 0, 0, 249, 154, 79, 130, 250, 0, 0, 0, 0, 0, 0, 102, 102, 102, 63, 205, 204, 204, 61, 74, 132, 137, 62, 57, 65, 98, 63, 183, 253, 103, 0, 108, 251, 147, 87, 249, 4, 0, 0, 0, 0, 0, 0, 102, 102, 102, 63, 205, 204, 204, 61, 42, 207, 154, 62, 235, 142, 87, 63, 133, 29, 255, 0, 41, 249, 108, 86, 161, 0, 0, 0, 0, 0, 128, 63, -----------------------  44  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 92, 22, 98, 63, 169, 14, 90, 0, 33, 249, 162, 78, 63, 4, 0, 0, 0, 0, 128, 63, -----------------------  45  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 3, 98, 111, 63, 0, 255, 126, 0, 0, 0, 67, 78, 207, 5, 0, 0, 0, 0, 0, 0, 102, 102, 102, 63, 205, 204, 204, 61, 74, 132, 137, 62, 57, 65, 98, 63, 183, 253, 103, 0, 108, 251, 147, 87, 249, 4, 0, 0, 0, 0, 128, 63, -----------------------  46  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 92, 22, 98, 63, 169, 14, 90, 0, 33, 249, 162, 78, 63, 4, 0, 0, 0, 0, 128, 63, -----------------------  47  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 92, 22, 98, 63, 87, 14, 90, 0, 223, 6, 162, 78, 63, 4, 0, 0, 0, 0, 0, 0, 102, 102, 102, 63, 205, 204, 204, 61, 74, 132, 137, 62, 57, 65, 98, 63, 73, 253, 103, 0, 148, 4, 147, 87, 249, 4, 0, 0, 0, 0, 128, 63, -----------------------  48  0, 0, 0, 0, 0, 0, 0, 0, 74, 97, 186, 62, 3, 98, 111, 63, 0, 255, 126, 0, 0, 0, 67, 78, 207, 5, 0, 0, 1, 0, 14, 0, 0, 0, 2, 2, 35, 71, 0, 0, 0, 0, 3, 0, 1, 0, 76, 0, 3, 0, 0, 0, 0, 0, 128, 63, -----------------------  49  0, 0, 0, 0, 57, 241, 15, 63, 15, 218, 78, 63, 172, 34, 169, 0, 83, 248, 191, 75, 40, 249, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, -----------------------  50  25, 91, 1, 63, 28, 63, 90, 63, 132, 11, 237, 0, 193, 244, 171, 70, 122, 254, 0, 0, 0, 0, 128, 63, -----------------------  51  0, 0, 0, 0, 25, 91, 1, 63, 35, 193, 67, 63, 134, 34, 0, 0, 133, 246, 42, 79, 179, 254, 0, 0,
this tag is also present in other [!] files, leading to similar breaks in the data, so its definitly not a coincidence (is anything a coincidence?  :-P)

i would have thought that the first few bytes after the tag would suggest something about the length of the data-block to come (something like a header) but there doesn't appear to be any kind of differentiating data until after 6 lines (24-bytes), when the tag doesn't appear again

could someone (neoCloud?) try to examine the bytes within these tag-groups to see if they can spot an obvious pattern of data?
I will try too, but it would help if I had other possible patterns to compare against, it would definitly help speed things up!  :wink:
 
yay, I think I found out roughly how the vertex data might be stored like!

Starting from the beggining of [Unknown-Chunk-2]:  (again taking 02192.raw [Tifa] as reference)
Code: [Select]
Code:
Header: 24-bytes  - 0x12  :  SHORT = number of Vertices to followVertices: 28-byte blocks (times number in header)  - LONG      = vertex-Tag (00 00 80 3f)  - SHORT  1  = ?  - SHORT  2  = X  - SHORT  3  = Y  - SHORT  4  = Z  - BYTE   1  = U  - BYTE   2  = V  - LONG     = ? 4-bytes all zerosOther data: ?? no idea
For the Tifa model, the header only gives 24 vertices initially, so it really isn't much to play with.
Here are the exact numbers out of the file: (vertex-tags hidden)

Code: [Select]
Code:
0, 0,   1, 12,    0, 0 ,3, 0,   24, 0, 0, 0                                // 24-byte header23321, 16129,   -16093, 16195,    179, 254 ,0, 0,   1, 0, 16, 0            // vertices: ?, X,Y,Z, U,V, ? (shown as 4 bytes instead of long)1666, 16144,   -16093, 16195,    130, 250 ,0, 0,   0, 0, 0, 0-3783, 16143,   -9713, 16206,    40, 249 ,0, 0,   0, 0, 0, 0-3783, 16143,   -9713, 16206,    40, 249 ,0, 0,   0, 0, 0, 0-21809, 16165,   -9713, 16206,    83, 247 ,0, 0,   0, 0, 0, 01666, 16144,   -16093, 16195,    130, 250 ,0, 0,   0, 0, 0, 013052, 15941,   2904, 16029,    124, 254 ,0, 0,   0, 0, 0, 0-13917, 15957,   28268, 16025,    218, 250 ,0, 0,   0, 0, 0, 013052, 15941,   -15032, 16022,    124, 254 ,0, 0,   0, 0, 0, 08353, 15938,   15046, 16111,    124, 254 ,0, 0,   0, 0, 0, 08347, 15938,   28710, 16116,    124, 254 ,0, 0,   0, 0, 0, 0-6140, 15954,   -14588, 16113,    165, 2 ,0, 0,   0, 0, 0, 0-3783, 16143,   -9713, 16206,    40, 249 ,0, 0,   0, 0, 0, 01666, 16144,   -16093, 16195,    130, 250 ,0, 0,   0, 0, 0, 023321, 16129,   -16093, 16195,    179, 254 ,0, 0,   0, 0, 0, 01666, 16144,   -16093, 16195,    130, 250 ,0, 0,   0, 0, 0, 0-21809, 16165,   -9713, 16206,    83, 247 ,0, 0,   0, 0, 0, 0-3783, 16143,   -9713, 16206,    40, 249 ,0, 0,   0, 0, 0, 01666, 16144,   -16093, 16195,    130, 250 ,0, 0,   0, 0, 0, 0-21809, 16165,   -9713, 16206,    83, 247 ,0, 0,   0, 0, 0, 0-21809, 16165,   -16093, 16195,    144, 249 ,0, 0,   0, 0, 0, 0-21809, 16165,   -16093, 16195,    144, 249 ,0, 0,   0, 0, 0, 0-21809, 16165,   -9713, 16206,    83, 247 ,0, 0,   0, 0, 0, 01666, 16144,   -16093, 16195,    130, 250 ,0, 0,   1, 0, 16, 035, 135 ,0, 0,   0, 0, 3, 0                                      // data becomes messy afterwards, new header?2, 0 ,6, 0,   48, 0, 0, 0102, 102 ,102, 63,   205, 204, 204, 61235, 142 ,87, 63,   133, 29, 255, 0161, 0 ,0, 0,   0, 0, 0, 0205, 204 ,76, 61,   203, 247, 156, 62186, 21 ,153, 0,   110, 251, 143, 86
Funnily enough, I couldn't get a clean output from any of the other [!] model files. A lot of stuff is still rather fishy with my findings, but its a start  :wink:

The XYZ numbers don't feel right to me though, maybe too large and slightly rectangular.
I'll try to render these vertexes and see what they throw out. For all I know, it might just be gobbledegook  :lol:
 
Hey, i've got a question:
Me and a friend are trying to hack Crisis core. and with all this info, it'd be easy. only problem is, the file dumper dumps files in .raw format. this isnt the format that they originally are in the PKG. for instance, 02123.raw, which is zack's [!] file, isn't in the actual game as 02123.raw, or 02123.[!] or anything. does anyone know what they'd be called in the actual PKG file?
 
does anyone know what they'd be called in the actual PKG file?
I think, they are known only to Square developers.

Anyway, I can set proper extensions/filenames for files, if anyone would provide details, which file should be which, or better propose:
I would create text map file, where there would be possibility to set them by simply modification of it, for example:
0001 - "system.dat"
0002 - "text.bin"
...
and so on...

Current numeration order is based of course on offsets order.

Besides - great work on formats, koral!
 
bahahaha *spongebob impersonation* bahahaha  :-D

I was wrong! The data isn't vertex positions, its UVs!

Code: [Select]
Code:
FLOAT, FLOAT, (8 unknown bytes making up 24-byte block)
File: 02192.raw
Code: [Select]
Code:
0.000000, 0.000000,  0, 0 ,3, 0,   24, 0, 0, 0           // header0.505296, 0.764666,  179, 254 ,0, 0,   1, 0, 16, 0       // 2 floats = UV0.562599, 0.764666,  130, 250 ,0, 0,   0, 0, 0, 00.562275, 0.808015,  40, 249 ,0, 0,   0, 0, 0, 00.562275, 0.808015,  40, 249 ,0, 0,   0, 0, 0, 00.647138, 0.808015,  83, 247 ,0, 0,   0, 0, 0, 00.562599, 0.764666,  130, 250 ,0, 0,   0, 0, 0, 00.192577, 0.306727,  124, 254 ,0, 0,   0, 0, 0, 00.208777, 0.299671,  218, 250 ,0, 0,   0, 0, 0, 00.192577, 0.294474,  124, 254 ,0, 0,   0, 0, 0, 00.189578, 0.467245,  124, 254 ,0, 0,   0, 0, 0, 00.189578, 0.477418,  124, 254 ,0, 0,   0, 0, 0, 00.205963, 0.472221,  165, 2 ,0, 0,   0, 0, 0, 00.562275, 0.808015,  40, 249 ,0, 0,   0, 0, 0, 00.562599, 0.764666,  130, 250 ,0, 0,   0, 0, 0, 00.505296, 0.764666,  179, 254 ,0, 0,   0, 0, 0, 00.562599, 0.764666,  130, 250 ,0, 0,   0, 0, 0, 00.647138, 0.808015,  83, 247 ,0, 0,   0, 0, 0, 00.562275, 0.808015,  40, 249 ,0, 0,   0, 0, 0, 00.562599, 0.764666,  130, 250 ,0, 0,   0, 0, 0, 00.647138, 0.808015,  83, 247 ,0, 0,   0, 0, 0, 00.647138, 0.764666,  144, 249 ,0, 0,   0, 0, 0, 00.647138, 0.764666,  144, 249 ,0, 0,   0, 0, 0, 00.647138, 0.808015,  83, 247 ,0, 0,   0, 0, 0, 00.562599, 0.764666,  130, 250 ,0, 0,   1, 0, 16, 035, 135 ,0, 0,   0, 0, 3, 02, 0 ,6, 0,   48, 0, 0, 0102, 102 ,102, 63,   205, 204, 204, 61...
vertex positions probably folllow afterwards as another block of data until UV's start again. But now we know that there would be the same number of XYZs as UVs, so it should be a lot easier to solve!

G, this wouldn't have been possible without your extractor in the first place!  :-D

NeoCloud, just call them whatever you want (like G said before in the other thread, .RAW is there just for the sake of having an extension). As long as we agree on using the same type-extensions everywhere, it shouldn't cause a problem .
I called the [!] files "exp-files" (.exp) and [&&] "and-files" (.and) inside my program, the other file-types are simple enough to call .ATEL etc

it doesn't matter what the original developers called them as long as we know what they are  :lol:
 
:-o
UV's!? wow :D
well at least we're gonna be able to apply textures easily now without having to re-map everything :wink:
This is going a LOT quicker than i had once thought it might :D

so, if i'm right, once the pattern i found stops being recognisable as the same pattern, (i.e once the UV maps finish), we're probably onto the vertex positions?
so i'm guessing its not going to be months and months before we're able to render these models? :D

*very happy*
alright, i'll do my best to keep looking!
 
wow, I'm wrong again!  :oops:
(sorry to dash your hopes so soon neocloud)

I think my first guess was right, because when I open other [!]-files i get "better" results (still not what I expect to find, but definitly not gobbledegook).

There really shouldn't be any FLOATS at all, SHORTS are far more compact (2 bytes instead of 4).
Or maybe its using 2-Byte FLOATS?! Its worth looking into. How were vertices stored in KH2? SHORTS or FLOATS?

The simplest [!]-File I could find was File: 02450.raw, which looks like it might be a barrel.
It has 84 vertices though, which feels like too much vertices or faces if its supposed to be only a simple barrel.
But there is no doubt that the 16-byte (20 including tag) is wrong at all.

Here is the complete dump of the SHORTS making up [unknown-chunk-2] in 02450.raw:
(## = vertex-tag 3f800000)

Code: [Select]
Code:
0, 0,   1, 12,    0, 3,   84, 0 ## 2907, 16127,   -24692, 16011,    -8118, 0,   0, 0 ## -15208, 15156,   -17924, 16127,    0, 0,   0, 0 ## 2907, 16127,   -17924, 16127,    0, 0,   0, 0 ## 2907, 16127,   -24710, 16011,    8118, 0,   0, 0 ## -15208, 15156,   -17942, 16127,    0, 0,   0, 0 ## 2907, 16127,   -17944, 16127,    0, 0,   0, 0 ## 4361, 16177,   -24576, -17783,    11481, 0,   0, 0 ## 19232, 16210,   3848, 15834,    8118, 0,   0, 0 ## 4361, 16177,   -20260, 16187,    -11481, 0,   0, 0 ## 4361, 16177,   -20260, 16187,    -11481, 0,   0, 0 ## 19232, 16210,   3848, 15834,    8118, 0,   0, 0 ## 4361, 16177,   -24576, -17783,    11481, 0,   0, 0 ## 12793, 16175,   -24576, -17783,    11481, 0,   0, 0 ## -2074, 16141,   3848, 15834,    8118, 0,   0, 0 ## 12793, 16175,   -20260, 16187,    -11481, 0,   0, 0 ## 12788, 16175,   -20260, 16187,    -11481, 0,   0, 0 ## -2079, 16141,   3848, 15834,    8118, 0,   0, 0 ## 12788, 16175,   -24576, -17783,    11481, 0,   0, 0 ## -15208, 15156,   -14022, 16254,    11481, 0,   0, 0 ## 2907, 16127,   -14022, 16254,    11481, 0,   0, 0 ## 2907, 16127,   -5578, 16185,    8118, 0,   0, 0 ## -15208, 15156,   -5578, 16185,    8118, 0,   0, 0 ## -15208, 15156,   -14022, 16254,    11481, 0,   0, 0 ## 2907, 16127,   -5578, 16185,    8118, 0,   0, 0 ## -15208, 15156,   -24692, 16011,    -8118, 0,   0, 0 ## 2907, 16127,   -24692, 16011,    -8118, 0,   84, 0 ## 2907, 16127,   -17152, 15216,    -11481, 0,   904, 665 ## -15208, 15156,   -17152, 15216,    -11481, 0,   688, 665 ## -15208, 15156,   -24692, 16011,    -8118, 0,   472, 665 ## 2907, 16127,   -17152, 15216,    -11481, 0,   472, 665 ## -16067, 15156,   -14023, 16254,    -11481, 0,   472, 665 ## 2907, 16127,   -14022, 16254,    -11481, 0,   472, 665 ## 2907, 16127,   -5587, 16185,    -8118, 0,   472, 665 ## -15208, 15156,   -5587, 16185,    -8118, 0,   31, 0 ## -15208, 15156,   -14023, 16254,    -11481, 0,   -25968, 665 ## 2907, 16127,   -5587, 16185,    -8118, 0,   -27404, 66 ## -15208, 15156,   -18688, 15216,    11481, 0,   1, 0 ## -15208, 15156,   -24710, 16011,    8118, 0,   20, 0 ## 2907, 16127,   -18688, 15216,    11481, 0,   31, 0 ## -15208, 15156,   -24710, 16011,    8118, 0,   -24016, 665 ## 2907, 16127,   -24710, 16011,    8118, 0,   -27404, 66 ## 2907, 16127,   -18688, 15216,    11481, 0,   1, 0 ## -15208, 15156,   -5578, 16185,    8118, 0,   20, 0 ## 2907, 16127,   -17924, 16127,    0, 0,   31, 0 ## -15208, 15156,   -17924, 16127,    0, 0,   24160, 665 ## -15208, 15156,   -5587, 16185,    -8118, 0,   -27404, 66 ## 2907, 16127,   -17944, 16127,    0, 0,   1, 0 ## -15208, 15156,   -17942, 16127,    0, 0,   20, 0 ## 3699, 16224,   27664, 16059,    0, 0,   31, 0 ## 19232, 16210,   10801, 16160,    -8118, 0,   31488, 665 ## 19232, 16210,   3848, 15834,    8118, 0,   0, 0 ## 19232, 16210,   10801, 16160,    -8118, 0,   0, 0 ## 4361, 16177,   -20260, 16187,    -11481, 0,   0, 0 ## 19232, 16210,   3848, 15834,    8118, 0,   0, 0 ## 19232, 16210,   10801, 16160,    -8118, 0,   0, 0 ## 19232, 16210,   3848, 15834,    8118, 0,   0, 0 ## 4361, 16177,   -20260, 16187,    -11481, 0,   0, 0 ## 3699, 16224,   27664, 16059,    0, 0,   0, 0 ## 19232, 16210,   3848, 15834,    8118, 0,   0, 0 ## 19232, 16210,   10801, 16160,    -8118, 0,   0, 0 ## 13455, 16128,   27664, 16059,    0, 0,   0, 0 ## -2074, 16141,   10794, 16160,    -8118, 0,   0, 0 ## -2074, 16141,   3848, 15834,    8118, 0,   0, 0 ## -2074, 16141,   10794, 16160,    -8118, 0,   0, 0 ## 12793, 16175,   -20260, 16187,    -11481, 0,   0, 0 ## -2074, 16141,   3848, 15834,    8118, 0,   0, 0 ## -2079, 16141,   10794, 16160,    -8118, 0,   0, 0 ## -2079, 16141,   3848, 15834,    8118, 0,   0, 0 ## 12788, 16175,   -20260, 16187,    -11481, 0,   0, 0 ## 13455, 16128,   27664, 16059,    0, 0,   0, 0 ## -2079, 16141,   3848, 15834,    8118, 0,   0, 0 ## -2079, 16141,   10794, 16160,    -8118, 0,   0, 0 ## -15208, 15156,   -24710, 16011,    8118, 0,   0, 0 ## -15208, 15156,   -17944, 16127,    0, 0,   0, 0 ## 2907, 16127,   -24710, 16011,    8118, 0,   0, 0 ## 2907, 16127,   -5587, 16185,    -8118, 0,   0, 0 ## 2907, 16127,   -17944, 16127,    0, 0,   0, 0 ## -15208, 15156,   -5587, 16185,    -8118, 0,   0, 0 ## -15208, 15156,   -24692, 16011,    -8118, 0,   0, 0 ## -15208, 15156,   -17924, 16127,    0, 0,   0, 0 ## 2907, 16127,   -24692, 16011,    -8118, 0,   0, 0 ## 2907, 16127,   -5578, 16185,    8118, 0,   31360, 665 ## 2907, 16127,   -17924, 16127,    0, 0,   7, 0 ##
The numbers feel all wrong for vertex-positions. They are too similar and far too large.
I wonder if there is a byte or two which should be ignored within each vertex-group? That would offset the data so the SHORTS would pair up with other neighbours.
I'll give it shot, but any observations and options heartily welcome!  :lol:
 
Don't worry about the Hope-dashing :P i'm very used to it xD

The simplest [!]-File I could find was File: 02450.raw, which looks like it might be a barrel.
It has 84 vertices though, which feels like too much vertices or faces if its supposed to be only a simple barrel.
about this, i tried to recreate this "barrel" and i found out that 84 verticies is actually very reasonable for a barrel
i used the simplest cylinder i could create, and applied the texture.
Barrel.jpg

the one from that actual game, i would guess, would be FAR more advanced than this, so i doubt there'd be LESS verticies.
 
I think i wasn't wrong in the first place, the first 4 shorts really might just be 2-Float UVs!



the data goes something like this:
Code: [Select]
Code:
read bytes until find tag (3f800000)go back to beginning of vertex-group bytes and read:- FLOAT  (i assumed U)- FLOAT  (i assumed V)- SHORT- SHORT  (i assumed Y)- BYTE- SHORT  (i assumed X)- SHORT- SHORT  (i assumed Z)
Here is a video showing how these vertices look when plotted in space: http://www.mediafire.com/?henmwyytmdu

Apparantly not a barrel, but some kind of a crate? Or maybe my assumed XYZs are all wrong  :-P
But definitly on the right track now because there are obvious cylindrical shapes everywhere.

There only seem to be about 30 vertices visible, so the other 50 or so must be repeats, so maybe these are simple unindexed vertices to plot one after another?
I did try rendering them as triangles and quads, but they give gobbledegook, so maybe a mixture of the two determined by other tags or somthing.

here are the actual values I read in:  (the first ones just a "header" with all zeros)
Code: [Select]
Code:
VERTEX: 0:   START: 440, SIZE: 0  -->    SHORT:     BYTE:    SHORT:  VERTEX: 1:   START: 444, SIZE: 20  -->    FLOAT:  0.498134, 0.272702,   SHORT:  155, 180,    BYTE:  74,   SHORT:  -32, 19071, 224, VERTEX: 2:   START: 468, SIZE: 20  -->    FLOAT:  0.002758, 0.499466,   SHORT:  131, 239,    BYTE:  39,   SHORT:  211, 0, 0, VERTEX: 3:   START: 492, SIZE: 20  -->    FLOAT:  0.498134, 0.499466,   SHORT:  131, 17,    BYTE:  39,   SHORT:  -45, 127, 0, VERTEX: 4:   START: 516, SIZE: 20  -->    FLOAT:  0.498134, 0.272701,   SHORT:  101, 76,    BYTE:  182,   SHORT:  -225, -18817, 31, VERTEX: 5:   START: 540, SIZE: 20  -->    FLOAT:  0.002758, 0.499465,   SHORT:  125, 17,    BYTE:  217,   SHORT:  44, 0, 0, VERTEX: 6:   START: 564, SIZE: 20  -->    FLOAT:  0.498134, 0.499465,   SHORT:  125, 239,    BYTE:  217,   SHORT:  -212, 127, 0, VERTEX: 7:   START: 588, SIZE: 20  -->    FLOAT:  0.691666, -0.001050,   SHORT:  32512, 0,    BYTE:  0,   SHORT:  -256, -9857, 44, VERTEX: 8:   START: 612, SIZE: 20  -->    FLOAT:  0.821459, 0.106474,   SHORT:  32512, 0,    BYTE:  182,   SHORT:  -225, -18817, 31, VERTEX: 9:   START: 636, SIZE: 20  -->    FLOAT:  0.691666, 0.733167,   SHORT:  32512, 0,    BYTE:  0,   SHORT:  -256, 10111, 211, VERTEX: 10:   START: 660, SIZE: 20  -->    FLOAT:  0.691666, 0.733167,   SHORT:  32512, 0,    BYTE:  0,   SHORT:  -256, 10111, 211, VERTEX: 11:   START: 684, SIZE: 20  -->    FLOAT:  0.821459, 0.106474,   SHORT:  32512, 0,    BYTE:  74,   SHORT:  -32, -18817, 31, VERTEX: 12:   START: 708, SIZE: 20  -->    FLOAT:  0.691666, -0.001050,   SHORT:  32512, 0,    BYTE:  0,   SHORT:  -256, -9857, 44, VERTEX: 13:   START: 732, SIZE: 20  -->    FLOAT:  0.684356, -0.001050,   SHORT:  -32512, 0,    BYTE:  0,   SHORT:  0, -9984, 44, VERTEX: 14:   START: 756, SIZE: 20  -->    FLOAT:  0.554564, 0.106474,   SHORT:  -32512, 0,    BYTE:  74,   SHORT:  224, -18944, 31, VERTEX: 15:   START: 780, SIZE: 20  -->    FLOAT:  0.684356, 0.733167,   SHORT:  -32512, 0,    BYTE:  0,   SHORT:  0, 9984, 211, VERTEX: 16:   START: 804, SIZE: 20  -->    FLOAT:  0.684356, 0.733167,   SHORT:  -32512, 0,    BYTE:  0,   SHORT:  0, 9984, 211, VERTEX: 17:   START: 828, SIZE: 20  -->    FLOAT:  0.554564, 0.106474,   SHORT:  -32512, 0,    BYTE:  182,   SHORT:  31, -18944, 31, VERTEX: 18:   START: 852, SIZE: 20  -->    FLOAT:  0.684356, -0.001050,   SHORT:  -32512, 0,    BYTE:  0,   SHORT:  0, -9984, 44, VERTEX: 19:   START: 876, SIZE: 20  -->    FLOAT:  0.002758, 0.995258,   SHORT:  239, 125,    BYTE:  0,   SHORT:  0, -9984, 44, VERTEX: 20:   START: 900, SIZE: 20  -->    FLOAT:  0.498134, 0.995258,   SHORT:  17, 125,    BYTE:  0,   SHORT:  -256, -9857, 44, VERTEX: 21:   START: 924, SIZE: 20  -->    FLOAT:  0.498134, 0.726230,   SHORT:  180, 101,    BYTE:  74,   SHORT:  -32, -18817, 31, VERTEX: 22:   START: 948, SIZE: 20  -->    FLOAT:  0.002758, 0.726230,   SHORT:  155, 76,    BYTE:  74,   SHORT:  224, -18944, 31, VERTEX: 23:   START: 972, SIZE: 20  -->    FLOAT:  0.002758, 0.995258,   SHORT:  239, 125,    BYTE:  0,   SHORT:  0, -9984, 44, VERTEX: 24:   START: 996, SIZE: 20  -->    FLOAT:  0.498134, 0.726230,   SHORT:  180, 101,    BYTE:  74,   SHORT:  -32, -18817, 31, VERTEX: 25:   START: 1020, SIZE: 20  -->    FLOAT:  0.002758, 0.272702,   SHORT:  180, 155,    BYTE:  74,   SHORT:  224, 18944, 224, VERTEX: 26:   START: 1044, SIZE: 20  -->    FLOAT:  0.498134, 0.272702,   SHORT:  155, 180,    BYTE:  74,   SHORT:  -32, 19071, 224, VERTEX: 27:   START: 1068, SIZE: 20  -->    FLOAT:  0.498134, 0.003673,   SHORT:  239, 131,    BYTE:  0,   SHORT:  -256, 10111, 211, VERTEX: 28:   START: 1092, SIZE: 20  -->    FLOAT:  0.002758, 0.003673,   SHORT:  17, 131,    BYTE:  0,   SHORT:  0, 9984, 211, VERTEX: 29:   START: 1116, SIZE: 20  -->    FLOAT:  0.002758, 0.272702,   SHORT:  180, 155,    BYTE:  74,   SHORT:  224, 18944, 224, VERTEX: 30:   START: 1140, SIZE: 20  -->    FLOAT:  0.498134, 0.003673,   SHORT:  239, 131,    BYTE:  0,   SHORT:  -256, 10111, 211, VERTEX: 31:   START: 1164, SIZE: 20  -->    FLOAT:  0.002758, 0.995258,   SHORT:  17, 131,    BYTE:  0,   SHORT:  0, 9984, 211, VERTEX: 32:   START: 1188, SIZE: 20  -->    FLOAT:  0.498134, 0.995258,   SHORT:  239, 131,    BYTE:  0,   SHORT:  -256, 10111, 211, VERTEX: 33:   START: 1212, SIZE: 20  -->    FLOAT:  0.498134, 0.726229,   SHORT:  76, 155,    BYTE:  182,   SHORT:  -225, 19071, 224, VERTEX: 34:   START: 1236, SIZE: 20  -->    FLOAT:  0.002758, 0.726229,   SHORT:  101, 180,    BYTE:  182,   SHORT:  31, 18944, 224, VERTEX: 35:   START: 1260, SIZE: 20  -->    FLOAT:  0.002758, 0.995258,   SHORT:  17, 131,    BYTE:  0,   SHORT:  0, 9984, 211, VERTEX: 36:   START: 1284, SIZE: 20  -->    FLOAT:  0.498134, 0.726229,   SHORT:  76, 155,    BYTE:  182,   SHORT:  -225, 19071, 224, VERTEX: 37:   START: 1308, SIZE: 20  -->    FLOAT:  0.002758, 0.003673,   SHORT:  239, 125,    BYTE:  0,   SHORT:  0, -9984, 44, VERTEX: 38:   START: 1332, SIZE: 20  -->    FLOAT:  0.002758, 0.272701,   SHORT:  76, 101,    BYTE:  182,   SHORT:  31, -18944, 31, VERTEX: 39:   START: 1356, SIZE: 20  -->    FLOAT:  0.498134, 0.003673,   SHORT:  17, 125,    BYTE:  0,   SHORT:  -256, -9857, 44, VERTEX: 40:   START: 1380, SIZE: 20  -->    FLOAT:  0.002758, 0.272701,   SHORT:  76, 101,    BYTE:  182,   SHORT:  31, -18944, 31, VERTEX: 41:   START: 1404, SIZE: 20  -->    FLOAT:  0.498134, 0.272701,   SHORT:  101, 76,    BYTE:  182,   SHORT:  -225, -18817, 31, VERTEX: 42:   START: 1428, SIZE: 20  -->    FLOAT:  0.498134, 0.003673,   SHORT:  17, 125,    BYTE:  0,   SHORT:  -256, -9857, 44, VERTEX: 43:   START: 1452, SIZE: 20  -->    FLOAT:  0.002758, 0.726230,   SHORT:  155, 76,    BYTE:  74,   SHORT:  224, -18944, 31, VERTEX: 44:   START: 1476, SIZE: 20  -->    FLOAT:  0.498134, 0.499466,   SHORT:  131, 17,    BYTE:  39,   SHORT:  -45, 127, 0, VERTEX: 45:   START: 1500, SIZE: 20  -->    FLOAT:  0.002758, 0.499466,   SHORT:  131, 239,    BYTE:  39,   SHORT:  211, 0, 0, VERTEX: 46:   START: 1524, SIZE: 20  -->    FLOAT:  0.002758, 0.726229,   SHORT:  101, 180,    BYTE:  182,   SHORT:  31, 18944, 224, VERTEX: 47:   START: 1548, SIZE: 20  -->    FLOAT:  0.498134, 0.499465,   SHORT:  125, 239,    BYTE:  217,   SHORT:  -212, 127, 0, VERTEX: 48:   START: 1572, SIZE: 20  -->    FLOAT:  0.002758, 0.499465,   SHORT:  125, 17,    BYTE:  217,   SHORT:  44, 0, 0, VERTEX: 49:   START: 1596, SIZE: 20  -->    FLOAT:  0.875220, 0.366059,   SHORT:  32512, 0,    BYTE:  217,   SHORT:  -212, 127, 0, VERTEX: 50:   START: 1620, SIZE: 20  -->    FLOAT:  0.821459, 0.625644,   SHORT:  32512, 0,    BYTE:  182,   SHORT:  -225, 19071, 224, VERTEX: 51:   START: 1644, SIZE: 20  -->    FLOAT:  0.821459, 0.106474,   SHORT:  32512, 0,    BYTE:  182,   SHORT:  -225, -18817, 31, VERTEX: 52:   START: 1668, SIZE: 20  -->    FLOAT:  0.821459, 0.625644,   SHORT:  32512, 0,    BYTE:  182,   SHORT:  -225, 19071, 224, VERTEX: 53:   START: 1692, SIZE: 20  -->    FLOAT:  0.691666, 0.733167,   SHORT:  32512, 0,    BYTE:  0,   SHORT:  -256, 10111, 211, VERTEX: 54:   START: 1716, SIZE: 20  -->    FLOAT:  0.821459, 0.106474,   SHORT:  32512, 0,    BYTE:  182,   SHORT:  -225, -18817, 31, VERTEX: 55:   START: 1740, SIZE: 20  -->    FLOAT:  0.821459, 0.625644,   SHORT:  32512, 0,    BYTE:  74,   SHORT:  -32, 19071, 224, VERTEX: 56:   START: 1764, SIZE: 20  -->    FLOAT:  0.821459, 0.106474,   SHORT:  32512, 0,    BYTE:  74,   SHORT:  -32, -18817, 31, VERTEX: 57:   START: 1788, SIZE: 20  -->    FLOAT:  0.691666, 0.733167,   SHORT:  32512, 0,    BYTE:  0,   SHORT:  -256, 10111, 211, VERTEX: 58:   START: 1812, SIZE: 20  -->    FLOAT:  0.875220, 0.366059,   SHORT:  32512, 0,    BYTE:  39,   SHORT:  -45, 127, 0, VERTEX: 59:   START: 1836, SIZE: 20  -->    FLOAT:  0.821459, 0.106474,   SHORT:  32512, 0,    BYTE:  74,   SHORT:  -32, -18817, 31, VERTEX: 60:   START: 1860, SIZE: 20  -->    FLOAT:  0.821459, 0.625644,   SHORT:  32512, 0,    BYTE:  74,   SHORT:  -32, 19071, 224, VERTEX: 61:   START: 1884, SIZE: 20  -->    FLOAT:  0.500802, 0.366059,   SHORT:  -32512, 0,    BYTE:  39,   SHORT:  211, 0, 0, VERTEX: 62:   START: 1908, SIZE: 20  -->    FLOAT:  0.554564, 0.625643,   SHORT:  -32512, 0,    BYTE:  74,   SHORT:  224, 18944, 224, VERTEX: 63:   START: 1932, SIZE: 20  -->    FLOAT:  0.554564, 0.106474,   SHORT:  -32512, 0,    BYTE:  74,   SHORT:  224, -18944, 31, VERTEX: 64:   START: 1956, SIZE: 20  -->    FLOAT:  0.554564, 0.625643,   SHORT:  -32512, 0,    BYTE:  74,   SHORT:  224, 18944, 224, VERTEX: 65:   START: 1980, SIZE: 20  -->    FLOAT:  0.684356, 0.733167,   SHORT:  -32512, 0,    BYTE:  0,   SHORT:  0, 9984, 211, VERTEX: 66:   START: 2004, SIZE: 20  -->    FLOAT:  0.554564, 0.106474,   SHORT:  -32512, 0,    BYTE:  74,   SHORT:  224, -18944, 31, VERTEX: 67:   START: 2028, SIZE: 20  -->    FLOAT:  0.554564, 0.625643,   SHORT:  -32512, 0,    BYTE:  182,   SHORT:  31, 18944, 224, VERTEX: 68:   START: 2052, SIZE: 20  -->    FLOAT:  0.554564, 0.106474,   SHORT:  -32512, 0,    BYTE:  182,   SHORT:  31, -18944, 31, VERTEX: 69:   START: 2076, SIZE: 20  -->    FLOAT:  0.684356, 0.733167,   SHORT:  -32512, 0,    BYTE:  0,   SHORT:  0, 9984, 211, VERTEX: 70:   START: 2100, SIZE: 20  -->    FLOAT:  0.500802, 0.366059,   SHORT:  -32512, 0,    BYTE:  217,   SHORT:  44, 0, 0, VERTEX: 71:   START: 2124, SIZE: 20  -->    FLOAT:  0.554564, 0.106474,   SHORT:  -32512, 0,    BYTE:  182,   SHORT:  31, -18944, 31, VERTEX: 72:   START: 2148, SIZE: 20  -->    FLOAT:  0.554564, 0.625643,   SHORT:  -32512, 0,    BYTE:  182,   SHORT:  31, 18944, 224, VERTEX: 73:   START: 2172, SIZE: 20  -->    FLOAT:  0.002758, 0.272701,   SHORT:  76, 101,    BYTE:  182,   SHORT:  31, -18944, 31, VERTEX: 74:   START: 2196, SIZE: 20  -->    FLOAT:  0.002758, 0.499465,   SHORT:  125, 17,    BYTE:  217,   SHORT:  44, 0, 0, VERTEX: 75:   START: 2220, SIZE: 20  -->    FLOAT:  0.498134, 0.272701,   SHORT:  101, 76,    BYTE:  182,   SHORT:  -225, -18817, 31, VERTEX: 76:   START: 2244, SIZE: 20  -->    FLOAT:  0.498134, 0.726229,   SHORT:  76, 155,    BYTE:  182,   SHORT:  -225, 19071, 224, VERTEX: 77:   START: 2268, SIZE: 20  -->    FLOAT:  0.498134, 0.499465,   SHORT:  125, 239,    BYTE:  217,   SHORT:  -212, 127, 0, VERTEX: 78:   START: 2292, SIZE: 20  -->    FLOAT:  0.002758, 0.726229,   SHORT:  101, 180,    BYTE:  182,   SHORT:  31, 18944, 224, VERTEX: 79:   START: 2316, SIZE: 20  -->    FLOAT:  0.002758, 0.272702,   SHORT:  180, 155,    BYTE:  74,   SHORT:  224, 18944, 224, VERTEX: 80:   START: 2340, SIZE: 20  -->    FLOAT:  0.002758, 0.499466,   SHORT:  131, 239,    BYTE:  39,   SHORT:  211, 0, 0, VERTEX: 81:   START: 2364, SIZE: 20  -->    FLOAT:  0.498134, 0.272702,   SHORT:  155, 180,    BYTE:  74,   SHORT:  -32, 19071, 224, VERTEX: 82:   START: 2388, SIZE: 20  -->    FLOAT:  0.498134, 0.726230,   SHORT:  180, 101,    BYTE:  74,   SHORT:  -32, -18817, 31, VERTEX: 83:   START: 2412, SIZE: 20  -->    FLOAT:  0.498134, 0.499466,   SHORT:  131, 17,    BYTE:  39,   SHORT:  -45, 127, 0,
If anyone can spot a better possibility for the XYZ values (any one of those shorts could be X, Y or Z) then please please do let me know!
 :-D
 
Tada!

 

Simple bone-less [!] files now understood enough to render!
I still haven't figured out where Characters and other larger models store their XYZs, so they show up as junk with the loader.

After hours of banging my head against the wall and lots of different XYZ combinations, I decided to try the obvious thing and set the last 3 shorts as XYZ and everything clicked together!  :-D

The vertex format so far is:
Code: [Select]
Code:
(after first vertex-tag)FLOAT, FLOAT, 4-bytes (unknown), SHORT, SHORT, SHORT, 3f800000  =  U, V, (????), X, Y, Z, vertex-tagrinse and repeat
Render as a simple triangle-(primitive)-list, no headaches over face indices or quads or anything else

Characters soon!
 :lol:
 
I know espio, I can't wait either  :-P

Here is what Moogle-san looks like right now:


i know I'm close, but there is something horrible going on somewhere.

Almost there  :-D
 
Status
Not open for further replies.
Back
Top