Bitsquid / Stingray engine (Warhammer, Magicka Wizard Wars, Showdown Effect, Gauntlet)

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
id-daemon
Posts: 1040
Joined: Sun Mar 22, 2015 7:09 pm

Bitsquid / Stingray engine (Warhammer, Magicka Wizard Wars, Showdown Effect, Gauntlet)

Post by id-daemon »

The latest version of all tools. Tested on Showdown Effect demo, Gauntlet, Wizard Wars, Helldivers. May also work with other Bitsquid games and also the new Autodesk Stingray Engine games like Warhammer: End Times.

bitsquid_unp [package file name]

It will unpack the contents into the same folder. Files will be named as hash, with proper extensions. If the file is too large, use bitsquid_unp_hd, that will unpack the temporary (.BIN) file into the hard drive instead of memory. You can delete this file afterwards.

Multi-language files have the same name inside the package. So I decide to unpack them adding "version" flag at the end. This will not correspond to languages, just some special flag. Some files have multiple flags set. I don't know what it means.

bitsquid_txt [strings file name]

Strings exporter/importer. If the parameter is txt file, it will do import. If it is ".strings", it will do export.
Text file must be in UTF-8 encoding. Some lines contain "next line" characters and when converted to txt it will be impossible to leave them. I just replaced 0xD to 0xF0 and 0xA to 0xF1. If the source file will contain either of these bytes, it will not work.

bitsquid_str [strings file name]

Repack ONE strings file into the new package. "data.bin" file made by extractor must be in the same folder. It contains some unknown info that we need to put back into the package.

It will make "out.packet" file, rename it to whatever it was originally and put into the game.

bitsquid_timpani [bank file name]

Audio bank unpacker for Showdown. It will unpack all sounds to OGG and WAV files, with no filenames, just hash. I'm working on this.

bitsquid_timpani [bank file name] [stream file name]

Audio bank unpacker for other games. It requires stream name too. If there's no stream for some particular bank, just type anything you want for second parameter. If you run it with 1 parameter, the result is unpredictable. If the stream will not be present, it will work, but files may be cut, having only some first seconds of sound.

About the .stream files

Streams are just an "addition" to the bank, you can't extract it without the bank. Bank files have extension "timpani_bank" and they are extracted from the packages with all the other files. During this process, the main stream file is also been cut into parts (small stream files) that are corresponding to each bank contained within a package.
Last edited by id-daemon on Thu Dec 24, 2015 4:15 pm, edited 5 times in total.
id-daemon
Posts: 1040
Joined: Sun Mar 22, 2015 7:09 pm

Re: Bitsquid engine (Magicka Wizard Wars, Showdown Effect, Gauntlet)

Post by id-daemon »

Tools updated:

- There was an error with stream unpacking.
- Batch file added to rename all 1187 known audio files to proper filenames. As they are not the real original filenames, but just guessed from events names, I decide not to put this in unpacking process.
Savage
Posts: 176
Joined: Thu Oct 02, 2014 4:58 pm

Re: Bitsquid engine (Magicka Wizard Wars, Showdown Effect, Gauntlet)

Post by Savage »

Hi! i tried your tool with the game Helldivers, it works with the data but not with the streams, here is an example of the streams

http://www63.zippyshare.com/v/5lZfJ7ED/file.html

Nice tool!

Thanks!
The_Reaper_CooL
Posts: 69
Joined: Sat Dec 05, 2015 2:31 pm

Re: Bitsquid engine (Magicka Wizard Wars, Showdown Effect, Gauntlet)

Post by The_Reaper_CooL »

Hey there daemon, long time no see! :D

I'd also use it with Helldivers, but I can't extract the strings from it (also there's a file called Language Changer, and it talks about an XML format).

Example of said file:

"; Defines if language changer should use XML format (comment if not needed, "XMLElement" , "XMLChildElement" , "LanguageFileTemplate" , "LanguageFileTemplateConstant" affected)
;
;UseXMLFormat = 1
;
; Defines if language changer should use INI format (comment if not needed, "INISection" and "INIKey" affected)
;
UseINIFormat = 1"
id-daemon
Posts: 1040
Joined: Sun Mar 22, 2015 7:09 pm

Re: Bitsquid engine (Magicka Wizard Wars, Showdown Effect, Gauntlet)

Post by id-daemon »

Savage wrote:Hi! i tried your tool with the game Helldivers, it works with the data but not with the streams


It works perfectly with this game, you probably just don't understand how to use it. Read the explanation, and if it won't help, describe whats wrong, and how you do it.
id-daemon
Posts: 1040
Joined: Sun Mar 22, 2015 7:09 pm

Re: Bitsquid engine (Magicka Wizard Wars, Showdown Effect, Gauntlet)

Post by id-daemon »

The_Reaper_CooL wrote:I'd also use it with Helldivers, but I can't extract the strings from it


Why not? They are in this file:

dd5d5b00fde9b0fb
Savage
Posts: 176
Joined: Thu Oct 02, 2014 4:58 pm

Re: Bitsquid engine (Magicka Wizard Wars, Showdown Effect, Gauntlet)

Post by Savage »

id-daemon2 wrote:It works perfectly with this game, you probably just don't understand how to use it. Read the explanation, and if it won't help, describe whats wrong, and how you do it.


You right i don't understand how it works, i don't know what is a "bank_name" and how to found it, i have this file 1ca39585d1e7d491.stream how i can extract it? i did the usual bitsquid_timpani.exe 1ca39585d1e7d491.stream but crashes, and i tried this too bitsquid_timpani.exe 99736BE1FFF739A4 1ca39585d1e7d491.stream, and crashes too

I know i'm doing wrong.
id-daemon
Posts: 1040
Joined: Sun Mar 22, 2015 7:09 pm

Re: Bitsquid engine (Magicka Wizard Wars, Showdown Effect, Gauntlet)

Post by id-daemon »

Savage wrote:i don't know what is a "bank_name" and how to found it


Streams are just an "addition" to the bank, you can't extract it without the bank. Bank files have extension "timpani_bank" and they are extracted from the packages with all the other files. During this process, the main stream file is also been cut into parts (small stream files) that are corresponding to each bank contained within a package.

So if you have some bank, and you want to extract it, you also need to provide the corresponding stream name.
The_Reaper_CooL
Posts: 69
Joined: Sat Dec 05, 2015 2:31 pm

Re: Bitsquid engine (Magicka Wizard Wars, Showdown Effect, Gauntlet)

Post by The_Reaper_CooL »

id-daemon2 wrote:
The_Reaper_CooL wrote:I'd also use it with Helldivers, but I can't extract the strings from it


Why not? They are in this file:

dd5d5b00fde9b0fb


You are right! I extracted almost (keyword: ALMOST) all files before that were like 30 MB's maximum, but didn't think of extracting bigger ones.

Also I see a pattern here, but I didn't try it out with other BitSquid games, but I think that ALL of these games store their strings in the dd5d5...etc file (at least in Magicka 2 it's stored in the same filename).

Thanks again, will test it to see how it works :)
id-daemon
Posts: 1040
Joined: Sun Mar 22, 2015 7:09 pm

Re: Bitsquid engine (Magicka Wizard Wars, Showdown Effect, Gauntlet)

Post by id-daemon »

dd5d5b00fde9b0fb is a hash for "resource_packages/localization", nothing more ;)

the file is big because of Chinese fonts
id-daemon
Posts: 1040
Joined: Sun Mar 22, 2015 7:09 pm

Re: Bitsquid engine (Magicka Wizard Wars, Showdown Effect, Gauntlet)

Post by id-daemon »

Ekey wrote:https://github.com/Atvaark/VermintideBundleTool


I don't think this tool may help here. They don't even have the code to split .stream files, the fields to do this are marked as "unknown" in their code. Also that warhammer game has wwise as audio engine and so this tool can't unpack streams for timpani banks.
happyend
Posts: 157
Joined: Sun Aug 24, 2014 8:54 am

Re: Bitsquid engine (Magicka Wizard Wars, Showdown Effect, Gauntlet)

Post by happyend »

hi~daemon
tool Does not support large files?test game Helldivers
id-daemon
Posts: 1040
Joined: Sun Mar 22, 2015 7:09 pm

Re: Bitsquid engine (Magicka Wizard Wars, Showdown Effect, Gauntlet)

Post by id-daemon »

Somehow the memory_stream object is not working with files larger that 1GB. So I decided to make a version of unpacker bitsquid_unp_hd, that will unpack the temporary (.BIN) file into the hard drive instead of memory.

Tools updated. Readme file added with all the text from the title post.
happyend
Posts: 157
Joined: Sun Aug 24, 2014 8:54 am

Re: Bitsquid engine (Magicka Wizard Wars, Showdown Effect, Gauntlet)

Post by happyend »

bitsquid_unp_hd Does not support 21f858a58ab6cce7?
id-daemon
Posts: 1040
Joined: Sun Mar 22, 2015 7:09 pm

Re: Bitsquid engine (Magicka Wizard Wars, Showdown Effect, Gauntlet)

Post by id-daemon »

Some compilation problem. Updated again.
makc_ar
Posts: 1193
Joined: Sun Aug 17, 2014 7:27 pm

Re: Bitsquid / Stingray engine (Warhammer, Magicka Wizard Wars, Showdown Effect, Gauntlet)

Post by makc_ar »

How about Warhammer: Vermintide 2 http://store.steampowered.com/app/55250 ... rmintide_2?
Image
Image

Maybe Steam key for help?
Doctor Loboto
Posts: 376
Joined: Sun May 31, 2015 2:23 am

Re: Bitsquid / Stingray engine (Warhammer, Magicka Wizard Wars, Showdown Effect, Gauntlet)

Post by Doctor Loboto »

I too would like a method to extract Vermindtide 2's files. The current one doesn't really do anything at all with them...
AlphaTwentyThree
Posts: 909
Joined: Sat Aug 09, 2014 11:21 am

Re: Bitsquid / Stingray engine (Warhammer, Magicka Wizard Wars, Showdown Effect, Gauntlet)

Post by AlphaTwentyThree »

Hm, somehow the *.streams don't get extracted in the PS Vita version of Helldivers: https://1fichier.com/?hod7grn2ewe4zkmsyn1q
Does the tool need an update or am I doing something wrong?