Page 1 of 1

STripper & dkcomp

PostPosted: September 16th, 2022, 2:53 am
by Kingizor
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! :swanky:

  • STripper - Graphics extractor for various Donkey Kong games
  • dkcomp - DK compression library

(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).

Re: STripper & dkcomp

PostPosted: January 9th, 2023, 6:21 am
by Raccoon Sam
STripper proved extremely useful! I ripped all the DKC3 tilesets and just submitted them to Spriters Resource.
dkcomp will come in handy with hacking the games, I'm glad we have a no-bullshit command line tool finally

Re: STripper & dkcomp

PostPosted: January 9th, 2023, 7:54 am
by Kingizor
I'm glad you're finding them useful! Don't forget, they can also handle a lot more than just the SNES games! :diddyrock:

Re: STripper & dkcomp

PostPosted: January 9th, 2023, 8:15 am
by WesternTanager794
These were really useful for me too! I used it a while ago and until now I had forgotten about it! Real quick question, why are some of the DKC3 graphics in black and white? :parry:

Re: STripper & dkcomp

PostPosted: January 9th, 2023, 8:35 am
by Kingizor
Do you mean the 8x8 tiles? Those ones are the raw, decompressed tiles before they get combined with any metatile, tilemap or palette data. You can think of them as building blocks for all of the other graphics. They don't have any colour information associated with them yet, so we use different greyscale shades to tell the pixels apart. They're not very useful on their own, but the option is there for them anyway.

If there are any graphics that seem to have wrong colours or look corrupted then that could be a bug. I'd definitely want to know about that and investigate. :neekleft:

STripper is fairly strict about ROM versions, so that probably won't happen unless I've overlooked something.

Re: STripper & dkcomp

PostPosted: January 10th, 2023, 2:35 pm
by WesternTanager794
If I remember correctly they were the tiles. :parry: