Scripts sfgp.bms & butterfly_isoft.bms

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
arty1998-007
Posts: 53
Joined: Mon May 27, 2019 10:04 pm

Scripts sfgp.bms & butterfly_isoft.bms

Post by arty1998-007 »

Good afternoon. I have a question regarding these two scripts, first of all probably to Aluigi. The fact is that these 2 scripts open the game archives of one engine Alawar Engine (ex. Stargaze Framework), namely the data.pack file. Script sfgp opens outdated games, and butterfly_isoft opens newer ones, but the contents of the archives of both old and new games are absolutely identical. But there is 1 problem! Let's look at this problem using the example of the Snark Busters game series, where parts 1 and 2 are older and unpacked by the sfgp script, and part 3 is newer and unpacked by the butterfly_isoft script. The fact is that I decided to unpack the game archives into the root folders of these games. I unpacked the data.pak archive in parts 1 and 2 perfectly with the sfgp script, and then deleted the archive itself. The game started perfectly without crashes and bugs, as if nothing had changed. With part 3, everything is much more interesting. I performed the same procedure, but with the butterfly_isoft script. The game started, but most of the textures, including the cursor, were no longer displayed in the main menu. So I thought there might be an error in the butterfly_isoft script itself.bms? Any game based on the Alawar Engine that is unpacked by this script has any errors, but nevertheless it starts and does not crash. After all, in fact, the engine is still the same, the folders and files in the archive are still the same, only the principle of unpacking has changed. It seems that the butterfly_isoft script does not unpack all files, unlike sfgp. This conclusion can be drawn from the fact that the data.pack unpacked by the sfgp script in old games and extracted to the root folder allows you to play the game as if nothing has changed, which means that all the files were extracted exactly, and as for the games unpacked by butterfly_isoft, the games run with any errors (sound or graphic), so there are not enough files. Am I right, is there a bug in the butterfly_isoft script and can it be fixed?
I will attach the game unpacked by the sfgp.bms script and the game unpacked by butterfly_isoft.bms for familiarization with this problem.

Snark Busters 2 (data.pack unpacked sfgp.bms and deleted) https://disk.yandex.ru/d/en7wG-MqH__FKA
Snark Busters 3 (data.pack not unpacked) https://disk.yandex.ru/d/9alE5gXSdihxDA
Snark Busters 3 (data.pack unpacked butterfly_isoft.bms and deleted) https://disk.yandex.ru/d/lt3DALCokkMJUA

Please help me to understand this problem.
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Scripts sfgp.bms & butterfly_isoft.bms

Post by aluigi »

The butterfly_isoft.bms script is perfect.
All the files are perfectly decompressed with lzo, all correct.

In my opinion the problem is that the game expects the files kept compressed with the additional lzo extension.
In short the game wants images/effects/alpha_rect.pvrlzo and not images/effects/alpha_rect.pvr.

The job of the script is dumping and decompressing all together but if you want to keep the original files, remove the decompression part or directly use this script:

Code: Select all

idstring "SFP"
get DUMMY byte
get FILES long
get PACK_SIZE long
for i = 0 < FILES
    get FLAGS long
    get DUMMY long
    math OFFSET *= 0x10
    getdstring NAME 0x70
    get SIZE long
    get OFFSET long
    log NAME OFFSET SIZE
next i

I'm quite sure that now the game loads without any error.