Toy Soldiers .tgab .pngb

Textures, recreate headers, conversions, algorithms and parsing of image files
makc_ar
Posts: 1193
Joined: Sun Aug 17, 2014 7:27 pm

Toy Soldiers .tgab .pngb

Post by makc_ar »

Sample: https://yadi.sk/d/CfXPuOu_esVCW
Hope someone can make a Unpacker/Packer for .tgab .pngb files or script for QuickBMS.

Image
Image
puggsoy
Posts: 161
Joined: Sat Dec 13, 2014 1:01 am

Re: Toy Soldiers .tgab .pngb

Post by puggsoy »

I'll try make something for this soon when I have time.
makc_ar
Posts: 1193
Joined: Sun Aug 17, 2014 7:27 pm

Re: Toy Soldiers .tgab .pngb

Post by makc_ar »

puggsoy
Thank you for your time and attention to help me.
puggsoy
Posts: 161
Joined: Sat Dec 13, 2014 1:01 am

Re: Toy Soldiers .tgab .pngb

Post by puggsoy »

All the .pngb files ending in "_i" have a strange format which I can't figure out. Luckily there are only 4:

bigarrow_i.pngb
groundtarget_i.pngb
warningcircle_i.pngb
warningexclamation_i.pngb

All the other files have a fairly straightforward format which I should be able to convert to and from regular PNG.
puggsoy
Posts: 161
Joined: Sat Dec 13, 2014 1:01 am

Re: Toy Soldiers .tgab .pngb

Post by puggsoy »

toysolconv

Code: Select all

Usage: toysolconv inFile outDir [-t]
    inFile: The file to convert. Can alternatively be a folder containing the files to convert
    outDir: The folder to save the converted files to
    -t: Converts to a .tgab, instead of .pngb. Only applies when the input file(s) are .png, otherwise it's ignored

This works with almost every file, the only ones that don't work (in the sample you gave) are the ones mentioned in the previous post, as well as gameoverlay_g.tgab. If you try to convert these it will just say "Unsupported format" and skip them. I might be able to figure these out later, but they seem to be the minority so hopefully it's no big deal.

The program will automatically detect the kind of files; if it's a .pngb or .tgab it will convert to .png, and if it's a .png it will convert to .pngb. If you want to convert to .tgab instead of .pngb then set the -t flag as the last parameter (it's the same format though, just a different extension).
makc_ar
Posts: 1193
Joined: Sun Aug 17, 2014 7:27 pm

Re: Toy Soldiers .tgab .pngb

Post by makc_ar »

Thx puggsoy. How to pack .png to .tgab or.pngb?

puggsoy look strange textures
Image
Example: https://yadi.sk/d/HOAoj01OfAm32
puggsoy
Posts: 161
Joined: Sat Dec 13, 2014 1:01 am

Re: Toy Soldiers .tgab .pngb

Post by puggsoy »

To convert from .png simply enter it as the input file, like so:

Code: Select all

toysolconv myImg.png outFolder

This will convert it to a .pngb. If you want to convert to .tgab, add "-t" to the end:

Code: Select all

toysolconv myImg.png outFolder -t

By the way, remember you can specify a folder and it will convert all the compatible files in there:

Code: Select all

toysolconv locml outFolder

So you don't need a batch script.

As for those unsupported files, they are in a different format, although it's not the same unsupported format as found in the first samples you sent. Unfortunately they are just as confusing (if not more so), I'm unsure how they work. Even the data for the dimensions seems to be stored differently.

One big issue is for both this and the other unsupported format, the number of bytes in the pixel data divided by width * height (which is number of pixels) is a decimal, while the working format gives 4 (it's raw 32-bit ARGB). This means that the other formats probably have some sort of compression, maybe RLE or the like (since it doesn't look like any kind of zlib/lz/zip/etc compression).

I don't have a lot of time for it, but I might try and take a better look when I do. Are there are a lot of unsupported files?