Battle vs Chess unpacking

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
CRASH
Posts: 3
Joined: Sun Dec 22, 2019 12:29 am

Battle vs Chess unpacking

Post by CRASH »

Hello!
Very please, who can help me with the quickbms script for the game Battle vs Chess (2012 year, also names Check vs Mate). I need unpack this game files with using quickbms. Or can get special unpacker for this game.
I will attach one of the game archives to this post.
Very thank!
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Battle vs Chess unpacking

Post by aluigi »

Script updated:
http://aluigi.org/bms/clutch.bms

The extracted files seem correct.
CRASH
Posts: 3
Joined: Sun Dec 22, 2019 12:29 am

Re: Battle vs Chess unpacking

Post by CRASH »

aluigi wrote:Script updated:
http://aluigi.org/bms/clutch.bms

The extracted files seem correct.


Very thank you!
But now all extracted texture files (format .dds) is corrupted, look attach screenshot.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Battle vs Chess unpacking

Post by aluigi »

I know, I noticed the same thing.
As far as I can see the extracted files are correct and I didn't see any encryption or compression (after all the DDS header is intact).
I don't know if it's maybe some different way to store DDS data on that platform (Xbox right?), maybe ask in the Graphics section.
spiritovod
Posts: 719
Joined: Sat Sep 28, 2019 7:00 pm

Re: Battle vs Chess unpacking

Post by spiritovod »

Those dds are not actual dds. Despite resemblance, internal structure of the pak is quite different than in other targem's games on the same engine. Take a look at the sample from Star Conflict (can be unpacked with the same script). For example, .mdl-msh000/6 is a single mesh, divided into 7 files, .tfd/.tfh are raw packed textures, .mdf files are kind of material info and so on.

Considering the chunked structure, this game pak should be around the same - like, mdf files are already present, but it's not how it looks... For example, open bishop\bishop.mdf and take a look at the contents. Ok, now open bishop_b.dds in hex and take a look - there are 4 DDS headers, strange, is not it? Search for "TargemChunkFile" in the whole file and take a look at the strings around - remember mdf files? It's them. Also, since those parts are readable, notice file names there, they're mixed up.
-------
It's not important in this case, but since "dae" is present in those "dds", I suppose it's kind of deprecated or modified version of collada format (example of dae model), which includes meshes, textures(?) and materials in xml format.
-------
Back to the game. Now it's time to look at raw_xxx files in the root folder. They're actually chunks of files in _b/_w folders, packed in groups (raw_0/9 = group 1, raw_10/19 = group 2 and so on - except group 110-120, which has one more file). For example, some groups are part of textures (example, compiled from raw_40 to raw_49 files) or normal maps / masks for them (example raw_59). Compared to Star Conflict, they're kind of .tfd/tfh or _msk_sc.tfd/tfh files. Also, it seems that mdl are single chunk files (and they are meshes), so they're more or less fine as is.


Considering the all said above, I'm not sure the script is compatible with the game (for example, parts of "dds" belongs to other files/chunks, so probably there is double/wrong merged data) in it's current state.
CRASH
Posts: 3
Joined: Sun Dec 22, 2019 12:29 am

Re: Battle vs Chess unpacking

Post by CRASH »

Hello, ty.
It's can be fixed?
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Battle vs Chess unpacking

Post by aluigi »

This version 6 of the format looks a bit messy.
Probably the decompressed data is in those raw_* files created by quickbms.
I confirm that there is a "TargemChunkFile" in all the DDS.
Feel free to provide a patch for the script.
spiritovod
Posts: 719
Joined: Sat Sep 28, 2019 7:00 pm

Re: Battle vs Chess unpacking

Post by spiritovod »

^ Not sure if it's possible to advance further without deep knowledge of some graphic / 3d models format. If it's like Star Conflict, where mesh chunks are initially transformed (you should modify them to look like expected), you should know internal graphic format patterns (and probably compression patterns) to predict result beforehand.
Errr... What I'm trying to say is that even if the script will be miraculously fixed to produce results similar to other Targem games - those results will not be clearly readable anyway. So maybe the current result is... the best we can expect? If someone wants to extract models only (including textures), maybe it's better to use something like Ninja Ripper or RenderDoc.