GodotPckTool icon indicating copy to clipboard operation
GodotPckTool copied to clipboard

Add option to extract png/ogg from STEX

Open JayQ2K opened this issue 4 years ago • 8 comments

When unpacking a PCK file it would be nice to have an option to convert STEX files into their 'original' form (PNG, JPG, OGG).

JayQ2K avatar Jun 18 '21 20:06 JayQ2K

Do you know how the STEX files are packed / what they contain? If they are converted by Godot to an entirely different form from the source asset, I'm not sure how possible it is to revert that conversion...

hhyyrylainen avatar Jun 18 '21 20:06 hhyyrylainen

So it looks like STEX files have a header followed by (potentially) PNG data, so it shouldn't be too difficult to look at the Godot source code for STEX generation to reverse engineer the header format and then write code that is able to extract the PNG data from a STEX file. https://www.reddit.com/r/godot/comments/hyokie/is_there_a_tool_available_to_convert_stex_files/ https://whatext.com/stex

hhyyrylainen avatar Jun 19 '21 07:06 hhyyrylainen

You might want to look at the code at this location: https://github.com/Bioruebe/godotdec They have a -c option included to convert items.

JayQ2K avatar Jun 19 '21 21:06 JayQ2K

It looks like that just detects the .png.stex being part of a file name and skips the .stex file header to dump what presumably is the png content. Doing things properly and in a checked way (for example verifying that the stex specifies that the resource is of png type) would be a bit more difficult.

Edit: here's the interesting part in that source code: https://github.com/Bioruebe/godotdec/blob/66fef2185989944f8d45581e3f02b0e05c621506/godotdec/Program.cs#L74

hhyyrylainen avatar Jun 19 '21 21:06 hhyyrylainen

Indeed, seen the interesting part. Wasn't suggesting you take this 1-to-1 into your code btw, but since there are some references on that Github it might be an interesting read to see what model you can come up with.

JayQ2K avatar Jun 19 '21 22:06 JayQ2K

I would like to do a similar thing - Convert .oggstr files back to .ogg

I had no luck finding anything about that on the web

UltraBlackLinux avatar Dec 31 '21 12:12 UltraBlackLinux

I would like to do a similar thing - Convert .oggstr files back to .ogg

< foo.oggstr tail -c +280 > foo.ogg

Arnavion avatar May 28 '22 12:05 Arnavion

FWIW GDRETools can convert STEX > PNG.

image

I haven't tested their OGG conversion as I don't have a game that uses them atm. But if it can handle OGG too, perhaps it would be more suitable to use GDRETools rather than expanding the scope of PckTool? And if it can't handle OGG conversion, maybe it would be worth raising a feature request for GDRETools?

edit: As far as I can tell, GDRETools has surpassed the capabilities of godotdec, as it seems to be possible to do the same things in GDRETools, but with more features. It does, however, decompile source code in full (via RE Tools > Recover Project), so other tools that don't expose the source may be preferable if you intend to distribute/require it as part of your tooling.

ithinkandicode avatar Jan 25 '23 19:01 ithinkandicode