Well, actually I'm sure someone could quickly write a C program as a DKC map viewer. Allow me to elaborate!
A ROM image is made from tiny little things called Bytes. An example of a byte would be 00, or EA. Maybe 32 or 55. It can be anything from the range of 00 to FF (I assume you know how to count in hexadecimal)
Donkey Kong Country level format is made out from bytes, too. There are byte arrays in the ROM that create the level itself. To save valuable ROM space, the developers at Rare thought it'd be easy to create a level format that's made from Columns. One column is 16 Tiles. One Tile is 32 x 32 pixels.
One Tile is stored in to bytes in the ROM array. For example, 5C 00. That means that the current tile is tile #5C, and its setting is 00. Setting 00 means pass-through, and if you set it to, say, C0, it means that you've created a tile that used to be a walk-through tile, but is now a standable block!
One Column contains 16 Tiles, as I mentioned above. That would make 32 bytes, if each tile has 2 bytes (16 times 2 is 32, duh).
What someone would start developing would be an utility the Goes to an offset, and Reads ONE COLUMN, for example:
81 40 67 00 78 00 80 00 68 00 49 00 EA 00 EB 00 EC 00 ED 00 EE 00 EF 00 F0 00 F1 00 F2 00 00 00The Application would delete every second byte, since we don't need to know which tile is pass-throughable and which is solid, leaving us with:
81 67 78 80 68 49 EA EB EC ED EE EF F0 F1 F2 00That is 16 bytes. One column! So far we would have the very beginning of Jungle Hijinx.
The application would continue reading data from ROM, and slowly constructing a series of Columns, and eventually, a level!
In a nutshell:
-Read array from ROM
-Kill every second byte
-Repeat steps 1 and 2 until you have each array
-Convert Bytes to tiles
What bytes are what tiles is another story, though