Mattrizzle, these are incredible. Less than 10kb in size each, and so well designed... brilliant work! Now anyone with a ROM and an emulator can conveniently explore almost every sprite of the trilogy (including all that great beta stuff) right from within the games themselves! Heck, with the right equipment, you could patch the ROMs, put them on cartridges, then view the sprites via your actual SNES! Very cool.

I love the way you incorporated the viewer into the games in a natural way. DKC3's access method is particularly ingenious (if a little less convenient!).

Interesting that we can see the internal sprite names used by DKC3's development team... they seem to refer to Kiddy as 'Din' and 'DJ' interchangeably, among similar variations. I guess 'Din' is probably short for Dinky (not sure why this name wasn't kept for all versions of the final game - it suits the series much better than 'Kiddy', I think). What might 'DJ' have stood for? DK Jr? ...and Dixie is mostly referenced as 'dx' (or 'dix'), but a few of her earlier sprites have the reference name/prefix 'det'... I wonder what that means?

I have two questions about the capabilities of these viewers:

Would it be possible to modify these hacks to 'auto assign' the correct colour palettes?

Why are those one-off sprites unable to be viewed?

At any rate, this is amazing work. Would you be happy to have me host these in the DKC Atlas projects section? The section will be revamped and improved dramatically soon, and these hacks (among others of yours) would be excellent additions.

One reason I separated the viewers from the games themselves--aside from making them feel like actual parts of the games--is extensibility. Others are free to build their hacks on top of these. Say, for instance, someone is developing a hack that replaces sprites and palettes. There would be no need to play the game to preview them--they could just access the sprite viewer. I've even used the DKC2 version in this way myself--to test sprites for Brigand Barrage before adding them to to the hack.

I was thinking about making codes the means to access the viewers in all three games, but I don't think I will be changing that at this point.

DJ could very well refer to DK Jr. Kiddy's design does seem to be inspired by his. No idea what "det" stands for.

A few more interesting things:

Buzz's internal name is "zinger," possibly because Zinger was present in the game before being replaced with it.

Several characters have abbreviations for generic names instead of their actual names: Knik-Knak's name is "bt" (beetle), Bleak's sprites are named "snb" (snowman boss) or "ssn" (small snowman), Bristles' are named "he" (hedgehog), etc.

Several of the compressed sprites have the suffix "Cp," although Funky's is "Fm."

There are three different versions of the same platform optimized for different palettes. 07A7 has the name "Rplat" because it uses the Rocket Barrel's palette, 084B is simply called "platf" because it uses its own unique palettes, and 084C is "Bplat" because it uses the normal barrel palette.

As for your questions:

Qyzbud wrote:Would it be possible to modify these hacks to 'auto assign' the correct colour palettes?

I did consider that, but abandoned the idea when I thought the logic was going to be too complex to implement. You would need a way to check if the sprites are of the same character/object in order to avoid reapplying the same palette over again. If such a check wasn't in place, CPU cycles would be wasted. There would also need to be palette groups, so that you could easily cycle through all of the colors (pardon my English, I'm from the U.S.A.) a sprite normally uses (e.g. swapping between Klubba's and Kudgel's colors in DKC2, which aren't adjacent to each other).

Qyzbud wrote:Why are those one-off sprites unable to be viewed?

In the case of the head icons on the map screen in DKC and DKC2, all of the frames for each character share the same sprite value, but load different graphics. The same is true of the snowflake sprites in DKC. The issue with this is that the viewers can currently only handle one set of graphics for each sprite.

Other sprites--such as the coin icons in DKC2's game select screen, and the flags in DKC3's maps--have hard-coded tile maps. That is, there isn't a table in the game that stores the placement of each tile used to form these sprites; the placement is dictated by assembly code in the screens where they appear. Depending on where the code resides (I haven't found the precise locations yet), adding this functionality could range from simple to difficult.

Would you be happy to have me host these in the DKC Atlas projects section?

Certainly. It would be an honor.

...though if you plan on including some of my other hacks, avoid the Cranky Hint Fix patch (for now at least). The game immediately crashes when you enter a boss level.

Wow, I've been using this for a few days now and I must say I'm quite impressed. What really took me in the face was that the ending DKC2 cutsecne material is comprised of sprites as well.

Matrizzle, I sent you a PM regarding a request for a brief tutorial or personal demonstration on manipulating the title screen. I had plans to release my hack after finalizing the last stage in World 1 and I wanted to see if there was a way to meet your demand on this subject because I want my half kaizo to be professional and somewhat tweaked in what you can do outside of SDK2. Sorry for going off topic, your valor in hacking is very reputable.

Sprite numbers now appear as multiples of 4 (or 5 in the case of DKC3), which is how they are referenced in ROM. I made this change because I've been using the viewers while working on Donkey's Kong Quest, and frequently having to go through an extra step to obtain the proper sprite values for DK's animations was annoying.

Additional info stored with the hitbox data is now displayed at the top right corner of the screen. (DKC2 Sprite Viewer 2.02 and DKC3 Sprite Viewer 2.01 only)

Bugfix:

The DMA length of Minkey's graphics has been fixed. Its last sprite is no longer messed up. (DKC3 Sprite Viewer 2.01 only)

Thanks for catching that! I thought I had fixed all of the links after my website changed domains, but apparently not. If you run into a link that leads to mattrizzle.pac.am, replace the pac.am part of the URL with caffie.net and it should work.

I have reached a crossroads. For twelve years now, I have gotten by without paying for web hosting. Two people have been kind enough to provide it for me. Unfortunately, that time has come to an end. (Don't worry. I have everything backed up!)