Island Xtreme Stunts Quest (.qst) Files

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
Xiron
Posts: 104
Joined: Sat Sep 12, 2015 7:09 am

Island Xtreme Stunts Quest (.qst) Files

Post by Xiron »

First off, I apologize if I'm posting this in the wrong section, but I didn't see a sections for non-specific file types and saw the description of archive have " decoding of unknown files", so yeah...

Anyhow. Quest files!
Every single on of them in the game come in one big folder called QUEST.

I'm completely clueless as to how data is stored. If you need to know what any of the quest files contain in for ingame content, then I can probably say. Some have checkpoints and timers, some don't.
I've attached the whole folder since it is only a measly 113Kb.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Island Xtreme Stunts Quest (.qst) Files

Post by aluigi »

Compressed but I don't know what's the exact algorithm.
I scanned from offset 4 and 8 without obtaining the expected data.
Xiron
Posts: 104
Joined: Sat Sep 12, 2015 7:09 am

Re: Island Xtreme Stunts Quest (.qst) Files

Post by Xiron »

[In ANSI] I did notice that at offset C to F is always .ý.. followed by ü##: (where ## is the script number, usually in the name of the file) followed by the title of the script. Not sure if you should be starting the scan at a bit later offset...? (Educate me, I'm completely clueless. =P)
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Island Xtreme Stunts Quest (.qst) Files

Post by aluigi »

I have the algorithm :)
It will be embedded in the next quickbms, but in the meantime you can use this script:
http://aluigi.org/bms/island_xtreme_stunts.bms
Xiron
Posts: 104
Joined: Sat Sep 12, 2015 7:09 am

Re: Island Xtreme Stunts Quest (.qst) Files

Post by Xiron »

I was... not expecting this, thank you! :)

There is a problem with some files like BBT2.QST and BTCSGATES.QST that cause "incomplete input file" with a "can't read # bytes from offset ########" errors.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Island Xtreme Stunts Quest (.qst) Files

Post by aluigi »

Here everything works correctly.
Are you sure to have not overwritten the original files?
The output name is the same of the original one so you have to specify a different output folder.
Xiron
Posts: 104
Joined: Sat Sep 12, 2015 7:09 am

Re: Island Xtreme Stunts Quest (.qst) Files

Post by Xiron »

I did overwrite, the majority of the files worked fine like that except for a select few.
Xiron
Posts: 104
Joined: Sat Sep 12, 2015 7:09 am

Re: Island Xtreme Stunts Quest (.qst) Files

Post by Xiron »

On a second note, all the files that DIDN'T have an overwrite problem all requested to load a function from the dll MEMORY_FILE3 while the ones that did, didn't.

It's too bad the script can't re-encrypt the files as the game can't run with decrypted. I understand though as that compressed line looks long and complex.



This script is great because it work for other files outside of quests. Like some dialouge .txt files in another folder, and the Level.PKG file that comes with every place in the game. Maybe this script should be named just "Island Xtreme Stunts Decompressor" with no Quests attached. :P
Heck, it even works on the .bmb material files!
The rest of Rock Raiders United will thank you for your hard work. :)
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Island Xtreme Stunts Quest (.qst) Files

Post by aluigi »

You must NOT ovewrite the files.
That's the problem.

Technical explanation:
When a file is compressed quickbms decompresses it in memory and then writes the data in the output.
When a file is not compressed quickbms tries to write directly to the output file by using a small cache (to save memory), so in this second situation there are problems that may happen because input and output are the same.
I can try to disable this "direct write" in quickbms 0.6.8 when input and output are the same.

This algorithm is a compression and not an encryption.
I don't think that the recompression algorithm is available in the game so the only solution is creating a script that adds the 32bit size at the beginning of each file and the game will read them without problems.
Something like:

Code: Select all

get SIZE asize
log MEMORY_FILE 0 0
put SIZE long MEMORY_FILE
append
log MEMORY_FILE 0 SIZE
append
math SIZE + 4
get NAME filename
log NAME 0 SIZE MEMORY_FILE
Xiron
Posts: 104
Joined: Sat Sep 12, 2015 7:09 am

Re: Island Xtreme Stunts Quest (.qst) Files

Post by Xiron »

Interested at all in going beyond that example and making that into an actual script, and better yet, implementing it into the current?
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Island Xtreme Stunts Quest (.qst) Files

Post by aluigi »

The example works, it's a full script for making the decompressed files compatible with the game.

If I add that 32bit size to the decompressed files then you will not be able to edit/view them correctly.
Xiron
Posts: 104
Joined: Sat Sep 12, 2015 7:09 am

Re: Island Xtreme Stunts Quest (.qst) Files

Post by Xiron »

It does? Oh goodness, yes! :D
Welp. Case closed then.

Thank you for your time!
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Island Xtreme Stunts Quest (.qst) Files

Post by aluigi »

Happy modding :D
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Island Xtreme Stunts Quest (.qst) Files

Post by aluigi »

When working with many small files to convert/extract, my suggestion goes to the -D (higher case, not lower) option of quickbms, for example:
quickbms -C -D island_xtreme_stunts.bms quests output

Note: -C disables the "the script has requested to load a function from the dll" prompt.

If there are sub-folders, they will be recreated too till generating the original tree.

I tell you because in some situations it's very useful.

Ah, in quickbms 0.6.8 will be possible to overwrite the original files (I prefer to not suggest it, but if it happens it should work).