GodotPckTool
GodotPckTool copied to clipboard
Add option to extract png/ogg from STEX
When unpacking a PCK file it would be nice to have an option to convert STEX files into their 'original' form (PNG, JPG, OGG).
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...
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
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.
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
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.
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
I would like to do a similar thing - Convert .oggstr files back to .ogg
< foo.oggstr tail -c +280 > foo.ogg
FWIW GDRETools can convert STEX > PNG.

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.