A long time ago I wrote a program to extract background graphics from DKC3. I added support for DKC2, then DKC, then all the handheld games and just about everything else I could think of. I hadn't thought about it for a long time but I've spent a while this year adding graphical interfaces and brushing up the scariest parts of the codebase.
The worst offenders were the various decompression functions. I decided to split them off one-by-one and do my best to understand them and make them presentable. That encompassed around 11 different formats of varying complexity. I thought it would be nice to have equivalent compressors for each format, so I did that too and they all perform pretty darn well.
So I've got two things to give away today!
(binaries for each are accessible through the releases tab on the respective github page)
STripper is still full of ancient spaghetti code, but it's much better than it was. It has a terrible amount of offsets which might still be useful.
The dkcomp library has an API (see dkcomp.h) so someone could build it as a library and use it in their own program if they wanted. If someone felt like using it as part of a level editor, that would be great?
The GBA BIOS formats are rather common so they might be of interest for non-DK reasons too I suppose. There are also two non-BIOS Huffman variants that I suspect could have been provided as part of a devkit (it only took me seven and a half years to notice they all had the same header format).