Miscellaneous Forums > Scripting and Reverse Engineering

FF7 Crisis Core - File Format and Data Investigation

(1/60) > >>

koral:
--------------------------------------------------------------------------------------
[time saver]

All the findings and knowledge is being wiki-fied here: http://wiki.qhimm.com/FF7:CC

Tools to view/extract Crises-Core data and Models:
[*] G's Extractor: http://forums.qhimm.com/index.php?topic=7053.0
[*] MrAdults's mesh2rdm: http://www.richwhitehouse.com/index.php?postid=30
[*] RINOA: http://forums.qhimm.com/index.php?topic=8451.0

Everything else in this first post is old and probably will become obsolete.
However I have kept it mostly intact because of nostalgic value, as it was my first post here at Quimms!  :lol:

HUGE thanks to everyone here on the Quimm forums for your support!
It's all for you guys, enjoy!  :-D

[/time saver]
--------------------------------------------------------------------------------------




Not much seems to be discussed about FF7:CC regarding its files and data, so I thought I'd look into things myself and maybe help to get the ball rolling  :-D

Thanks to G for his FF7CC extractor, I quickly browsed through the 8000 odd files it churned out and noticed some really interesting things; I'm not sure how the extractor works, but same file-types (having same or similar header data or possibly function) are grouped together via their filenames.

(EDIT: Get G's-Extractor from here: http://forums.qhimm.com/index.php?topic=7053.0 also uploaded here if anyone can't get it from there: http://www.mediafire.com/?nwm24zynjmk )

Taking G's extractor filenames as reference, here's what I've discovered [these are the files output by his extractor, eg "00001.raw"]:

(NOTE: these are my initial thoughts ONLY, I may be wrong on several accounts, which is why I'm posting here amongst all the elite FF r-engineers, quimm and mirex deserve special mention at this point  8-) )

(NOTE2: When I refer to "Header:" I don't mean actual byte values, just some common ASCII text contained within the first 16 or so bytes of the files)

(NOTE3: I didn't look through ALL the files, just randomly poking around and narrowing the boundries; I may have missed some clusters or mistyped some filename values)


00000 - 00005   possibly misc system files, nothing too important
00006 - 00062 Header: "PSMF001" - PSP format Movies / Video files
00063 - 01349 Header: "RIFF" - Audio files
01350 - 01417 Header: "SSCF" - more Audio files
01418 - 01442 Menu and DMW related stuff (I think)
 Mix of two types of files:
    Header: [seemingly random] - files contain bunch of indexed Long's or something, no idea
    Header: "IMG" - guessing they're image / Texture files
01443 - 01445  standard PNG images
01446              Now this is interesting - seems to contain a list of Locations and Mission Titles!
01447              Contains a long list of character names, probably used when talking to NPC's etc
01448 - 01455  No discernable header (pretty much random). Maybe mesh data?
01456              Header: "MBD" - Indices or Counts of something
01457 - 02011  Story progression and Event data
  Mix of two types of files:
    Header: "GT"  - Chapter End Images
    Header: "ATEL" - LOTS of these, contain various Textures, dialogue scripts, etc
02012 - 02457 Models: Characters, Monsters, NPCs and possibly also Locations
  Mix of three types of files:-
    Header: [seemingly random]
    Header: "!" - contain single Textures for each Model. Maybe mesh-data too, but haven't found any.
    Header: "&&"
02458 - 03352  Tiny files, no common header, no ascii info visible. No idea.
03353 - 08538  unknown, no common header, fairly small files <500 kb. Ditto
08539 - 08622  Monster / Boss Data!
   Header: "MOT_" - later also contain "SSCF" data later. Interesting...
   maybe "file-names", Event Scripts, Boss Battle scripts, Monster behaviour or something else. Its all there, but no idea what.
08623 - 08627  Header: "zack_" - later also contain "ATEL" data
08628 - 08690  Materia (Magic) effect files!
  Header: "MAGIC_W0"   
08671 - 08706  unknown, tiny files
08707 - 08725  Header: "PSMF0015" - more Videos


So there you have it, my first two cents for the community here.

I'm mainly interested in the Character Model data myself, having already written my own viewers for FF7 and FF8 field and battle models (now looking to fry bigger fish :-P ) but that doesn't mean I'll ignore everything else possibly important to understand the game better (Maps, Events, etc).

Anyone care to help?
 :-D






EDIT:
Here'll I'll try keep all discovered File-Formats listed in an organised way, with a description of what they are and how to extract their contents:

==========================================
FF7 CC File Format Information Library
==========================================
LAST UPDATED: 15 MAR 2009


See: http://wiki.qhimm.com/FF7:CC



Stuff below has yet to be archived (much of it incomplete):

---------------------------
ATEL = Event data, story and game progression
---------------------------
- RAW Files:
- Not much else known about , except that they contain various different File-Type chunks:

--- Code: ---    MBD    - Script (dialogue) Font table
    FEP     - ?
    ANM    - ?
    TEX     - Textures (fully decoded)
    MDL     - ?
    VTL     - ?
    [ASCII]- ?
    &&      - ?
    SSCF   - Audio (dialogues and/or music)

--- End code ---

ignitz

--- Quote ---The scripts is in this files ATEL headers and some other I don't remember
Inside these files have headers MBD in after these have the scripts then in Japanese and American have a table of 4 bytes
Here this table in format Thingy
80000000=A
80000100=B
80000200=C
80000300=D
80000400=E
80000500=F
80000600=G
80000700=H
80000800=I
80000900=J
80000A00=K
80000B00=L
80000C00=M
80000D00=N
80000E00=O
80000F00=P
80001000=Q
80001100=R
80001200=S
80001300=T
80001400=U
80001500=V
80001600=W
80001700=X
80001800=Y
80001900=Z
80001A00=a
80001B00=b
80001C00=c
80001D00=d
80001E00=e
80001F00=f
80002000=g
80002100=h
80002200=i
80002300=j
80002400=k
80002500=l
80002600=m
80002700=n
80002800=o
80002900=p
80002A00=q
80002B00=r
80002C00=s
80002D00=t
80002E00=u
80002F00=v
80003000=w
80003100=x
80003200=y
80003300=z
80003400=0
80003500=1
80003600=2
80003700=3
80003800=4
80003900=5
80003A00=6
80003B00=7
80003C00=8
80003D00=9
80003E00=!
80003F00=?
80004000=
80004100="
80004200='
80004300=,
80004400=.
80004500=:
80004600=;
80004700=--
80004800=/
80004900=(
80004A00=)
80004B00=$
80004C00=<
80004D00=>
80004E00=%
80004F00=[
80005000=]
80005100=YEN
80005200=@Cruz
80005300=#
80005400=_
80005500=|
80005600=^
80005700=º
80005800=-
80005900=+
80005A00==

--- End quote ---


---------------------------
! = Model Data (only textures found so far)
---------------------------
- RAW Files: 02012 - 02457, maybe other places too
- So far only Textures have been decoded, mesh-data remains elusive


--- Code: ---Header: 127 bytes
   0x00   6 bytes: magic hex values ( 00 00 00 00 21 27 )
   0x10   DWORD: offset to [unknown chunk 1]
   0x14   DWORD: offset to [unknown chunk 2]
   0x1C   DWORD: offset to [TEXTURE Chunk]
   0x34   DWORD: offset to [unknown chunk 3]
   0x3C   DWORD: offset to [unknown chunk 4]
   0x40   DWORD: offset to [unknown chunk 5]
   0x48   DWORD: offset to [unknown chunk 6]

[Unknown Chunk 1]
   (seems to always start at 0x80)

   for each data-chunk (32 byte-block):
   - 1 short    always: 00
   - 1 short    bone id?
   - 2 bytes   always: FF FF
   - 1 byte    sometimes: 00, sometimes: 01 -- maybe polygon type (quad / tri)
   - 1 byte    always: 00
   - 1 long    always: 00
   - 4 bytes    ???
   - 4 floats    polygon normal?

[Unknown Chunk 2]
   Possibly Vertex data

   Header: 32-bytes
   - 1 long (0x00)  = number of polygons (data-blocks) in [Unknown Chunk 1]
   - 1 long (0x04)  = offset to data start

   Data: ?


[TEXTURE Chunk]
   header: 16-bytes
0x00  = SHORT: image width
0x02  = SHORT: image height
0x08  = DWORD: offset to PALLETE-data start offset
0x0c  = DWORD: offset to PIXEL-data start offset

   PALLETE data:
255 4-byte [RGBA] chunks - Texture Colour Pallete [255 entries]

   PIXEL data:
bytes referencing to Pallete-Entry


[Unknown chunk 3]
   ?

[Unknown chunk 4]
   ?

[Unknown chunk 5]
   ?

[Unknown chunk 6]
   ?

--- End code ---


==========================================
[eof]
==========================================

to be continued...

Zande:
Only thing I can remember right now is that SSCF chunks are audio samples.
Seems I have a different naming of the files, so..


edit:

--- Quote ---00063 - 01349
Header: "RIFF" - possibly Audio files
--- End quote ---
Oh yes, I remember those also.. they are in vaild IFF format, it's all the voice acting file thingies. The files are stored in Sony's ATRAC3 format (Minidisk etc.), if you rename the files to .wav and have an ATRAC3 codec they should play in your prefered mediaplayer (like winamp).

koral:
Hey cool, thanks info Zande  :-D

Now why would your file-naming be different? I used the data from a US-region UMD, but I can't imagine why there would be differences between different region versions of the game, unless theres actually differences in game-content?!
Can anyone confirm that my file-lists? I may have botched up somewhere with the ISO creation or something, although I doubt that should make a difference.

I'm going to look into some of the "potentially mesh-data" files [02012 - 02457], see what I can dig-up.

Zande:
Nono, there's no difference between the game data, it's just the way the files are extracted, and most precisly, the naming of the files extracted... The big pack of files doesn't have a filename list, hence all the numbers.. and my files are numbered slightly different (which is for I reason that's not very important). :)

koral:
Ah, OK thanks for clearing that up :)

I've had a go at parsing some of the files which I believe contian vertex data, but I don't seem to be getting anywhere. Lots of files contain lots of chunked values, yet I've found nothing yet which might be vertices.
Files [03353 - 08538] might contain something of interest, thousands of files, could be anything.
Also some files seem to contain different File-Types embedded within the same file, i've noticed some "MDB" file-types too.

Do you have any sort of information on the "IMG" files / chunks (or some way to view these PSP format images )?
I know Playstation used to use TIM image files almost exclusively, but I've got no idea what PSP images tend to be (especially for this game).

I'm guessing that Meshes would usually be located near to their corresponding Textures (or in the same file) so if I know which Texture belongs to which character / model, I could check out nearby files more thoroughly

Navigation

[0] Message Index

[#] Next page

Go to full version