If you really want a detailed answer, ask
@Exzap.
The swizzle part is mostly his.
--------------------- MERGED ---------------------------
Feel free to ask me anything about BFLIM or GTX, but not swizzling.
Even I am inexperienced about swizzling, it was a nightmare until
@Exzap came and helped.
--------------------- MERGED ---------------------------
BTW, your documentation says "For 0x31, the script uses the regular swizzle() function", that is wrong, it uses swizzle_BC(). (I think you figured out this later
)
--------------------- MERGED ---------------------------
Also, the error "This type of BC compression is not equivalent to DXT compression!" is not relevant, it's a false error that I never bothered to fix.
That's why you should forget about BFLIM Extractor and focus on GTX Extractor and GTX files instead.
BFLIM Extractor is so incomplete to the point where it converts half of some images instead of the whole thing...
For example, "result = bytearray(dataSize)" should have been "result = bytearray(data)", so it would access the data directly and only swizzle the needed parts of the image. (Something like that, I'm terrible at explaining)
You see, this is later fixed in
GTX extractor.
--------------------- MERGED ---------------------------
Also, it
is OK for the swizzle value to be big.