[PS Vita] Senran Kagura: Estival Versus - ChunkXX files

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
Cubeburner
Posts: 4
Joined: Mon Dec 05, 2016 12:34 am

[PS Vita] Senran Kagura: Estival Versus - ChunkXX files

Post by Cubeburner »

Greetings,

I've been looking into extracting the assets from Senran Kagura: Estival Versus for the PS Vita and I was wondering if I could get some help with figuring out the chunkXX.bin and chunkXX.tpk files that are present in the games' /tpk/ folder. Upon checking with my favorite hex editor (HxD), I found that the bulk of the game data is inside those files. That's why I'm looking to get some help here.

Images showing a preview of the hex and ascii data
ImageImageImage

From what I can see, the .bin files seem to have lines starting with 80 01 04 and 80 01 10... I am not sure what that's about. Could it be dummy data, encryption keys or just internal game indexing data?

The ones that caught my eye are ChunkXX.tpk file. This seems to have game data in GXT format, in some type of container. In the second screenshot above, I see at 0x00000100 we have a filename string, then we have some zero bytes, followed by the start of the GXT data. In the third screenshot, we see that we have some model data (since the engine of the game uses tmd0 for the identifer).

I have uploaded two sets of the bin and tpk files for analysis, available here in a 7z archive.

Would it be possible to make a quickBMS script that would look through the file and extract this format? It seems to be a container of sorts but your guess is as good as mine.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: [PS Vita] Senran Kagura: Estival Versus - ChunkXX files

Post by aluigi »

Have you already tried this script?
http://aluigi.org/bms/estivalversus.bms
Cubeburner
Posts: 4
Joined: Mon Dec 05, 2016 12:34 am

Re: [PS Vita] Senran Kagura: Estival Versus - ChunkXX files

Post by Cubeburner »

aluigi wrote:Have you already tried this script?
http://aluigi.org/bms/estivalversus.bms


That extracted a ton of files, but now I'm wondering what the extensions mean. I see DAT, TXT and VAP files... Did QuickBMS guess what the file contents are?
Is it possible to use QuickBMS to trim files? There's a lot of stuff before the "GXT" / "TMD0" part in the files, and I was wondering if QuickBMS is able to strip that, or if I have to use some hex editor scripting?
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: [PS Vita] Senran Kagura: Estival Versus - ChunkXX files

Post by aluigi »

Script 0.2, I made really something special because they are nested containers... but now the result is great :D
Those numeric folders are boring but there are no alternatives, without them you will have tons of duplicated filenames.

(if you don't see the new script 0.2, press F5 in the browser)
Cubeburner
Posts: 4
Joined: Mon Dec 05, 2016 12:34 am

Re: [PS Vita] Senran Kagura: Estival Versus - ChunkXX files

Post by Cubeburner »

Wow, aluigi. That script's doing all sorts of magic. Ran it on chunk00.tpk and worked great. The script did ask me a few times that it wasn't able to write to the filesystem due to invalid characters in the output name, so I pressed "r" and let it rename it to what it deemed suitable.

EDIT: Hmm, I think it's missing a few things, as it didn't rip this image (converted from GXT) which is located in Chunk00.tpk starting at offset 0x140 and ending at 0x100280 in GXT format. I can't find it in the new script's output, but the old script ripped it without issue.

I think it's also missing some TMD0 files as it should have ripped the player models (which is TMD0 data) but it's skipped some of those. I've uploaded the full pack of TPK files here on my server, which should be enough for us to have it rip everything from the TPK files.

EDIT 2: Seems that the game uses the same ADX2 format for sound, but when converting with hca2wav v0.2 it says "Error reading HCA header". I used a script that was intended for use with a IdolMaster game that matched the @UTF header. Example files are NAME and NAME 0 - 55, however I think some of these files get broken up due to the ripping script as QuickBMS threw errors saying it tried to read 1MB of data from an offset and it couldn't do so.

Just what is inside the game?
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: [PS Vita] Senran Kagura: Estival Versus - ChunkXX files

Post by aluigi »

Honestly I don't think I can do more than what I already did.
If quickbms doesn't return any error it means the extraction was successfully, so what happens with the content of the extracted files is another story (not for me).
Maybe someone else is interested and can help you.
Cubeburner
Posts: 4
Joined: Mon Dec 05, 2016 12:34 am

Re: [PS Vita] Senran Kagura: Estival Versus - ChunkXX files

Post by Cubeburner »

aluigi wrote:Honestly I don't think I can do more than what I already did.
If quickbms doesn't return any error it means the extraction was successfully, so what happens with the content of the extracted files is another story (not for me).
Maybe someone else is interested and can help you.


I'd like to give thanks for the work you did with the script, it's helped a lot. Looks like I will have to break out the hex editor and analyze a few things, maybe even manually rip things. At the very least, I have a ton of files to sort though. ;)