Page 1 of 3

Need help on Tales of Vesperia[X360] files

Posted: Thu Aug 20, 2009 12:28 pm
by fatduck
The contents of this post was deleted because of possible forum rules violation.

Re: Need help on Tales of Vesperia[X360] files

Posted: Sat Sep 19, 2009 12:00 am
by Zipslow
Format (FPS4) might be as posted here on gbatemp ?

Re: Need help on Tales of Vesperia[X360] files

Posted: Tue Sep 22, 2009 11:11 am
by Zipslow
Here is an extractor for the SVO files .... http://www.brisma.net/2008/09/15/tales- ... g-parte-1/ .... but then you still end up with the fatduck's mysterious .dat files.....

Re: Need help on Tales of Vesperia[X360] files

Posted: Sun Sep 27, 2009 8:02 am
by fatduck
Actually, you can easily "unpack" the svo file!

Here is my QuickBMS unpack script:

Code: Select all

# Game: Tales of Vesperia (XBOX360)
# by fatduck     Aug09
# script for QuickBMS http://aluigi.org/papers.htm#quickbms

idstring "FPS4"
endian big
get NUMRES long
goto 0x1C

for i = 1 to NUMRES
    get RESSTART long
    get CHUNKSIZE long
    get RESSIZE long
    getdstring RESNAME 0x20    
    log RESNAME RESSTART RESSIZE
next i
The problem is after extract, all individual files are then compressed with a unknown method!

By the way, that link to the blog have another game I am interested, Tales of the World: Radiant Mythology (PSP).
But I can't understand, is it spinish? Coud you translate it for me? http://www.brisma.net/2008/03/29/tales- ... ology-psp/

Re: Need help on Tales of Vesperia[X360] files

Posted: Sun Sep 27, 2009 1:07 pm
by Vash
it's italian :P it talks about the file structure of arc files (veeery simple, i made an extractor/reinserter but i lost it with my hard drive :( ) and then it talks about sub-archives which are simply compressed with gzip

[edit] i found the Unpacker and the Bin Dumper

Re: Need help on Tales of Vesperia[X360] files

Posted: Sat Nov 07, 2009 1:36 am
by chrrox
Here is the tales of Vesperia extractor
http://www.tbhreloaded.it/Vash/VsoEx.rar
I am close to an decompress program it is very close to lzss.
it looks like a modified version of it like the fpk format.

Re: Need help on Tales of Vesperia[X360] files

Posted: Tue Nov 24, 2009 1:36 pm
by fatduck
Do you mean 8ing fpk format! I know that format but I have no cue on this one!

Any news!?

Re: Need help on Tales of Vesperia[X360] files

Posted: Sun Dec 20, 2009 6:42 pm
by chrrox
The tool xbdecompress.exe extracts these files perfectly :)

Re: Need help on Tales of Vesperia[X360] files

Posted: Mon Dec 21, 2009 8:00 am
by fatduck
Chrrox

Which version of xbdecompress did you use?
I use the one aluigi post and it didn't work!?

I got the message said:
xbdecompress: error: file was compressed using an encoder with different version than the decoder
xbdecompress: warning: failed to decompress to file est_c001.res

The header in Tales of Vesperia files are 0F F5 12 EE!!!

I also tried aluigi's BMS script, but it crash!? :x

Re: Need help on Tales of Vesperia[X360] files

Posted: Mon Jan 04, 2010 3:32 am
by bwin
Hi guys, I found this topic by lurking and googling, and I thought I'd add my two cents.

I've done a little bit of tampering with the files, and this is what I got:
Using files from the game:
1. Using VsoEx, I unpacked chara.svo, I then got multiple .dat files with a 0FF5 12EE header.
2. Using xbdecompress rev 6654, I uncompressed some of these .DAT files successfully (and more precisely BTL_PAT_C000_DEF.DAT)
3. I'm now stuck with FPS4 files that I can't unpack, be it with fatduck's BMS script (gives bogus files) or VsoEx (gives a segmentation fault). These files seem to contain more FPS4 files...?

Using files from the demo:
After having unpacked UI.svo, I got multiple .TXM and .TXV files, the former being, I guess, maps of the latter.
After playing a little with TileMolester, I noticed that the .TXV files were 32bpp, GRAB and swizzled images.
Using 360deswizzle, I found myself with "proper" DDS files. I then just had to switch the R G B and Alpha channels with Photoshop.

Result sample:
Download here

So all that's left to do is, I guess, unpack the above mentioned FPS4 files.

Re: Need help on Tales of Vesperia[X360] files

Posted: Fri Feb 05, 2010 10:30 am
by fatduck
The contents of this post was deleted because of possible forum rules violation.

Re: Need help on Tales of Vesperia[X360] files

Posted: Fri Feb 05, 2010 11:34 am
by aluigi

Code: Select all

get NAME basename
string NAME += ".unpacked"
comtype PUYO_LZ01
get TYPE byte
get ZSIZE long
get SIZE long
savepos OFFSET
clog NAME OFFSET ZSIZE SIZE
for who is interested in the algorithm and in the technical stuff, it's simply lzss with an init char (the one used to fill the sliding window at the beginning) equal to 0x00 instead of 0x20.
the fact is that using comtype lzss "12 4 2 2 0" wasn't good because the decompressed data is bigger than how much specified by the header (the second 32bit value) and so the algorithm returned -1 while that PUYO_LZ01 does exactly the same but breaks at the specified output size.

Re: Need help on Tales of Vesperia[X360] files

Posted: Fri Feb 05, 2010 12:49 pm
by bwin
Nice job!

I was wondering, is there any way to deswizzle X360 Direct Draw textures that are not 32bit A8 R8 G8 B8? I found various textures that seem to be swizzled 16bit A4 R4 G4 B4 (i.e. I can only get the colors right by swapping the A and G, then R and B channels, but it's still scrambled) and also some 8bit textures. Not sure if this is relevant to the thread, but... I'd appreciate any help.

TXV files are simply big endian DDS files without header. Header information is stored in a TXM map file

TXM structure (C-like code)

Code: Select all

typedef struct TXM_VESPER_DATA_ENTRY {
	uint32 width;
	uint32 height;
	uint32 unknown2;
	uint32 imageformat; // ?? Not sure of that one. 0x18280186 = 32bit A8R8G8B8, 0x1A200154 = ??; 0x1828014F = 16bit A4R4G4B4
	uint32 nameoffset; // from here
	uint8 paddingentry[0x44];
} TXM_VESPER_DATA_ENTRY;

typedef struct TXM_VESPER_HEADER {
	uint32 signature; //0x20000
	uint32 filesize;
	uint32 unknown1; // 0x4 ?
	uint32 filecount;
	uint8 padding1[0x44];
} TXM_VESPER_HEADER;

typedef struct TXM_VESPER_DATA_STRUCT {
	//Header (size 0x54)
	TXM_VESPER_HEADER header;
	
	//Entries
	TXM_VESPER_DATA_ENTRY entries[header.filecount];
	
	//File List
	zstring filenames; //NULL terminated filename list
} TXM_VESPER_DATA_STRUCT;
Sample files (COMALL.txv contains various texture types, I also snipped the part that's 16BPP) :

Download here

Re: Need help on Tales of Vesperia[X360] files

Posted: Fri Feb 05, 2010 1:44 pm
by chrrox
if you create an xpr out of the images you can use unbundler.exe from the xbox sdk to deswizzle them.

Re: Need help on Tales of Vesperia[X360] files

Posted: Sat Feb 06, 2010 2:30 am
by bwin
It worked like a charm! Thanks!