JohnnyWalker2001 wrote:
It'd be great if we could extract them en masse and then reconvert them back into their MCB wrappers.
From what I'm able to see, the "MCB" is just 28 bytes of header irrelevance when it comes to the DDS files within.
That being said, it's probably relevant to their own machining. The 28 bytes ( derived from the minimal number of files I opened) consist of:
- 4 bytes: MCBH Signature (Endian Unclear)
- 4 bytes: File Size including header (Little Endian)
- 8 bytes: Unknown (Endian Unclear) [*Could be 2x4 bytes, perhaps image count, or transparency flags or lighting flags or similar, seems the same in at least 4 files.]
- 8 bytes: MCIM Signature (Endian Unclear) [*Could be 2x4 bytes, with the second one always being 0x02000000(BE), the purpose of this is unknown to me, seems the same in at least 4 files.]
- 4 bytes: DDS File size (Little Endian) [*Complete file size minus 28 bytes header size]
After this follows just an appended DDS file. You can just strip the first 28 bytes, rename the thing to DDS, and it will work.
EDIT: Forgot to say, file sizes are in bytes. (E.G.: 2,796,396 bytes, or 2.66 megabytes)
So e.g. modifying the DDS, resaving it (DXT5, no mipmaps), And then prepending the 28 bytes from above (with the file size modified if necesary), should essentially work.
EDIT2: It seems some of the DDS's do contain mipmaps, so take care with that

EDIT3: Confirmed the above described workflow works. (With Bennyboy's Resource File Creator and Dumper, not GrimEdi)