Hacking Wii U image (WUD) compression tool

Exzap

Well-Known Member
OP
Member
Joined
Sep 19, 2015
Messages
154
Trophies
0
XP
1,545
Country
Netherlands
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.

Download (includes source)
Download mirror

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.
 

Xuman

Well-Known Member
Member
Joined
Jan 26, 2012
Messages
407
Trophies
0
XP
970
Country
United States
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.

Download (includes source)
Download mirror

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.
Will mosdef try this asap. Good job! Small things like these are what helps out in the long run. I myself am glad the Wii U scene is healthy lately.
 
  • Like
Reactions: canariobr

Reecey

Mario 64 (favorite game of all time)
Member
Joined
Mar 7, 2010
Messages
5,867
Trophies
1
Location
At Home :)
XP
3,805
Country
@Exzap . Good work just a thought is this in connection with loadiine cause I see it puts out a WiiU.wux file, not WiiU.wud, any connection with @golden45 ? interesting seems about the right time a compressor has popped up all of a sudden.
 
Last edited by Reecey,

EclipseSin

Ignorant Wizard
Member
Joined
Apr 1, 2015
Messages
2,063
Trophies
0
Age
33
Location
221b Baker Street
XP
1,706
Country
United Kingdom
@Exzap . Good work just a thought is this in connection with loadiine cause I see it puts out a WiiU.wux file, not WiiU.wud, any connection with @golden45 ? interesting seems about the right time a compressor has popped up all of a sudden.
Loadiine doesn't work with WUDs as far as I know. It works with extracted files. And I'd assume .wux is just the extension he chose for compressed wud... Could name it .iso for the same effect.
 

Exzap

Well-Known Member
OP
Member
Joined
Sep 19, 2015
Messages
154
Trophies
0
XP
1,545
Country
Netherlands
@Exzap . Good work just a thought is this in connection with loadiine cause I see it puts out a WiiU.wux file, not WiiU.wud, any connection with @golden45 ? interesting seems about the right time a compressor has popped up all of a sudden.
It's just a coincidence. Probably not useful for loadiine due to the reason already stated by EclipseSin.
 

gamesquest1

Nabnut
Global Moderator
Joined
Sep 23, 2013
Messages
15,153
Trophies
2
XP
12,226
I just thought .pux .wux files? I don't know.
seeing as the loader made by @golden45 uses the extracted files i doubt this will be of any use except for archiving "backup", but tbh the raw extracted file system offers the same space saving and means you dont have to extract it several times to access the actual file system :P
 

Reecey

Mario 64 (favorite game of all time)
Member
Joined
Mar 7, 2010
Messages
5,867
Trophies
1
Location
At Home :)
XP
3,805
Country
seeing as the loader made by @golden45 uses the extracted files i doubt this will be of any use except for archiving "backup", but tbh the raw extracted file system offers the same space saving and means you dont have to extract it several times to access the actual file system :P
So what your saying is, this loader can only load official back ups that are extracted before hand, it cant load any .wud files etc..? or files in the wild. but then again once they have been extracted I would imagine they would get posted up somewhere in the correct format.
 
Last edited by Reecey,

gamesquest1

Nabnut
Global Moderator
Joined
Sep 23, 2013
Messages
15,153
Trophies
2
XP
12,226
So what your saying is, this loader can only load official back ups that are extracted before hand, it cant load any .wud files etc..? or files in the wild.
well seeing as its based on cafiine almost certainly, not that i have access to it or know exactly what it uses, but he has stated it started as a modified cafiine to load the rpx file from the network too.....which suggests its extracted files only

but you can extract the files from a wud file using Uwizard too using the titlekey that is included in the nfo on most releases, so they aren't exactly useless and can still be used, just that the extracted files are more manageable than trying to stream the entire encrypted image over a network
 
Last edited by gamesquest1,

Irastris

Well-Known Member
Member
Joined
May 3, 2015
Messages
1,115
Trophies
0
XP
862
Country
United States
I actually designed my own WUD compression algorithm, but the reason I didn't add it to Uwizard is that DiscU is closed source and it can't read compressed games.

Was it just due to how your technique worked? I'd hate to compress the .wuds and not be able to easily use them anymore. (But this 186GBs is seriously killing me, I should invest in a better HDD)
 

Irastris

Well-Known Member
Member
Joined
May 3, 2015
Messages
1,115
Trophies
0
XP
862
Country
United States
I don't know what you mean. Could you please explain the quoted text a little better?

You say your algorithm made them incompatible with DiscU, does that mean it worked differently than Exzap's program does? He claims his program allows them to still be compatible, so I'd assume it's different, but I'd still like to be sure before I go around compressing my WUD folder.
 
General chit-chat
Help Users
    NoobletCheese @ NoobletCheese:   left: nintendo switch red right: same colour but remove the blue tint