Dissidia 012 FEP files

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
ultima espio
Posts: 3
Joined: Tue Feb 24, 2015 9:46 pm

Dissidia 012 FEP files

Post by ultima espio »

These are graphical effects used in Square Enix games, such as Crisis Core, Dissidia 012 and Kingdom Hearts Birth By Sleep.
I've been trying to figure out how to extract these files for a while, it doesn't seem as simple as some other formats. Inside there's headers for:

mdl
anm
tex
vtl

0x1C lists the total number of models inside, and at the bottom of the file, it lists the names of the models, such as N0074_KEAL_ARIA_SEV120_LEAF_0.

The textures can be ripped and viewed using tools for BBS, but there's nothing to unpack and repack the whole archive.

I want to be able to unpack these, add new ones in, and repack. Viewing them would be nice as well :) Is anyone able to take a look at these please?

Here's 3 samples for anyone to look at:

http://www.mediafire.com/download/v4cd2 ... mz/fep.zip

p_eht100 is Squall's effects from Dissidia 012
p_sev120 is Aerith's effects from Dissidia 012
b11ex00.fep is from Kingdom Hearts Birth by sleep.

Thank you :)
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Dissidia 012 FEP files

Post by aluigi »

I don't think they are archives because they contain many senseless data and various float.
Anyway if you want to extract the files you listed in your post, try this script:

Code: Select all

idstring "FEP"
get DUMMY byte
get DUMMY short
get DUMMY short
get DUMMY long
get ZERO long
get DUMMY long
get FEP_SIZE long
get DUMMY long
get FILES short
get FILES short
get FIELD1 short
get FIELD2 short
get FIELD3 short
get FIELD4 short
do
    savepos TMP
    get DUMMY1 short
    get DUMMY2 short
while DUMMY1 != 0

get NAMES_OFF long
get FILES long

xmath TMP "TMP - (FILES * (2 + 2))"
goto TMP
for i = 0 < FILES
    get DUMMY1 short
    get DUMMY2 short
    savepos TMP
    goto DUMMY1
    get DUMMY long
    get DUMMY long
    get SIZE long
    get OFFSET long
    putarray 0 i OFFSET
    putarray 1 i SIZE
    goto TMP
next i

goto NAMES_OFF
for i = 0 < FILES
    get DUMMY long
    get NAMESZ long
    get OFFSET long
    savepos TMP
    goto OFFSET
    getdstring NAME NAMESZ
    goto TMP

    getarray OFFSET 0 i
    getarray SIZE 1 i
    log NAME OFFSET SIZE
next i
ultima espio
Posts: 3
Joined: Tue Feb 24, 2015 9:46 pm

Re: Dissidia 012 FEP files

Post by ultima espio »

Thanks, that did extract some data, but not much.

In p_sev120 it lists 20 models, but there are actually 45 mdl headers. I replaced 6 of them with 00s, and it only erased a small part of the first model. Maybe there's something that lists all the files that make up N0074_KEAL_ARIA_SEV120_LEAF_0?
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Dissidia 012 FEP files

Post by aluigi »

Unfortunately I can't help further because it's not an archive.
There are for sure other files but the format of that FEP file is not clear.
ultima espio
Posts: 3
Joined: Tue Feb 24, 2015 9:46 pm

Re: Dissidia 012 FEP files

Post by ultima espio »

Thank you for having a look anyway :)