I made a little tool to compress Wii U images/dumps.
How does it work?
It detects duplicate sectors and only stores them once. Essentially this leads to all the empty ranges being shaved off, storing only ranges which contain file or filesystem data.
Although the algorithm is simple, it works really well. In almost all cases it will reduce the size by more than 50% (12GB+!)
Examples (uncompressed size is always 23.3GB):
Super Mario World 3D -> 2.61GB (20.69GB saved)
DKC Tropical Freeze -> 11.7GB (11.6GB saved)
Zelda WW HD -> 2.70GB (20.7GB saved)
Darksiders 2 -> 9.43GB (13.87GB saved)
Mario Party 10 -> 4.01GB (19.29GB saved)
It is lossless, meaning you can compress and uncompress a file and the outcome will still be the same. This is different to tools like WiiScrubber which actually modify the data.
Why is this better than using RAR/ZIP/etc.?
It's faster and tools can natively read it (obv. assuming they support it). At least my future releases will support compressed images directly.
The easiest way to use the tool is to just drag the file you want to compress/decompress onto the .exe
Note for developers:
I tried to make it easy to integrate into other projects. If you want to implement it, just include wud.cpp and wud.h and you are good to go (for reading only, code for compression is in main.cpp). API should be self-explanatory. Small adjustments are needed to make it work for non-Windows platforms.
Fuente