Users browsing this thread: 2 Guest(s)
need help on tales of vesperia(XB360 ver) texture format
#1
My native language is not English, so, sorry if I didn't make the problem clear enough.

I don't know if anyone still has interest.

I'm trying to rip character models from tales of vesperia(XBOX360 ver).
It takes me a while, but I finally get those raw models with correct uv coordinates and normal.

however, I'm now stuck at those textures. I googled a lot and found in XeNTax, someone did a good work about textures, but not character texture, only ui, item icons.

Below is some result by them:

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;

I found that character textures are in the same fps4 block as the model file. (In chara.svo) Thoes texture entries miss extension, but they follows exactly the same structure as txm stuff above, so I know they are texture entries.

In that thread, they say @0xC of the data entry is imageformat, but I found that different blocks with the same 'imageformat' may have different pixel size(bpp? I guess). In my situation, bpp only relates to the 'unknow2' field.

I know little about those textures so now I'm stucked. If someone who has knowlege of xbox 360 textures can shed some light, I will be very appreciated.

I tried to post in XeNTaX, however it's difficult for me to donate in order to register, I can't use PayPal, nor do I got master or whatever card.

So, I'm asking the community for help here. If the textures can be ripped, then the model is done, and I will do a submission then.
Thanked by:
#2
I think the reason why this is, is because Namco games seem to have a strange texture encryption method. I'm currently ripping models from the Wii remake of Klonoa, and I can get every model to display, but most of them are missing some or all of their textures.

It's not because Vesperia is an Xbox 360 game. Trust me, I've only ripped from two Xbox 360 games so far (neither of which are Namco games), and their models and textures are extremely easy to extract. Like I said, the real reason is that Namco uses weird texture encryption methods.

So, I can't help you here. Sorry! But I do wish you good luck on solving your problem, because I'd love to see some Vesperia model rips. Vesperia is one of my favorite games in the Tales series. Smile
Thanked by:
#3
(02-07-2014, 01:06 PM)Mystie Wrote: I think the reason why this is, is because Namco games seem to have a strange texture encryption method. I'm currently ripping models from the Wii remake of Klonoa, and I can get every model to display, but most of them are missing some or all of their textures.

It's not because Vesperia is an Xbox 360 game. Trust me, I've only ripped from two Xbox 360 games so far (neither of which are Namco games), and their models and textures are extremely easy to extract. Like I said, the real reason is that Namco uses weird texture encryption methods.

So, I can't help you here. Sorry! But I do wish you good luck on solving your problem, because I'd love to see some Vesperia model rips. Vesperia is one of my favorite games in the Tales series. Smile

hi, thanks for replying.

I have found out that these textures resemble DDS file a lot. There may be 3 different formats, DXT for normal texture, DXT5A for specular map, DXT5 for normal texture with alpha.

But these textures may have been swizzled. Do you know how to deswizzle these textures ?
Thanked by:
#4
Don't know, sorry. Sad
Thanked by:


Forum Jump: