Most of Sonic Boom (Wii U version) data (except movies and sounds) is contained in .wiiu.stream. Movies are Bink Video and can be easily viewed by BIK Player.
As for .wiiu.stream, QuickBMS script can be used to extract files from them in compressed format. I've written a small Python 3 script to decompress them: https://github.com/N...onic-boom-tools . It may have yet unknown bugs, but so far it's able to decompress things like .dds textures, .chr models (can be viewed by Noesis with cryengine_cgf.dll plugin) and level geometry. Compression itself seems to be LZSS variation. The format is as follows:
For example, C1 BD 60 01 tell us to copy last 1+3 bytes (0xC1 & 0x3F) << (7 * 2) | (0xBD & 0x7F) << 7 | 0x60 = 24288 times (that's it, back offset is constant when copying).
That's all for now. I'm probably going to write another script to extract .wiiu.stream files, since it's more convenient to have it both extracted and decompressed at once, and QuickBMS script seems to fail in some cases. Many thanks to TwilightZoney and Paraxade for buying the disc and getting the files ripped.
As for .wiiu.stream, QuickBMS script can be used to extract files from them in compressed format. I've written a small Python 3 script to decompress them: https://github.com/N...onic-boom-tools . It may have yet unknown bugs, but so far it's able to decompress things like .dds textures, .chr models (can be viewed by Noesis with cryengine_cgf.dll plugin) and level geometry. Compression itself seems to be LZSS variation. The format is as follows:
Size data
First byte
Bit 0-5 size bits
Bit 6 If set, copy size+3 bytes from unpacked stream - offset, otherwise read size bytes into unpacked stream
Bit 7 If set, read one more byte and add bits 0-6 from it to the end of size value
Next bytes
Bit 0-6 size bits
Bit 7 If set, read one more byte and add bits 0-6 from it to the end of size value
Offset data (only if Bit 6 of first size byte is set)
Bit 0-6 offset bits
Bit 7 If set, read one more byte and add bits 0-6 from it to the end of offset value
For example, C1 BD 60 01 tell us to copy last 1+3 bytes (0xC1 & 0x3F) << (7 * 2) | (0xBD & 0x7F) << 7 | 0x60 = 24288 times (that's it, back offset is constant when copying).
That's all for now. I'm probably going to write another script to extract .wiiu.stream files, since it's more convenient to have it both extracted and decompressed at once, and QuickBMS script seems to fail in some cases. Many thanks to TwilightZoney and Paraxade for buying the disc and getting the files ripped.


00