Hex walkthrough

Stage names
Now, I think I am most comfortable with hex editing, but I am by far not an expert. There are many people more worthy here on the atlas. I just want to spread some of the basics. Please correct me where wrong! This is just how I understand things, so everything might not be correct.
I come from a dkc1 background, so this applies to dkc1. Many of these principles can be applied to other games though!
The basics: Hex editing (Stages)
This is what a hex editor looks like
https://i.imgur.com/RWRoeFQ.png
See those 6 numbers/letters to the left? This is the address, also known as the offset. Hex is short for hexadecimal, the numbering system used here. Valid hex digits are in the range 0-9, and a-f. The lefthand two digits of the 6 are what's known as the bank number. Some data pointers (not all mind you) are in the same bank. If we look at the stage name for Jungle Hijinx, we find it in hex here:
https://i.imgur.com/0a3Usmk.png
If you notice, the final character looks a little funny. This is because the game needs to tell when an end of line marker is reached. The game does this by setting bit 7. Open up windows calculator. Set it on programming mode. Hit Hex and type f3. Hit the bit toggling keypad button
https://i.imgur.com/OeIdbwm.png
You should see a screen like this:
https://imgur.com/a/r4I2xeq
Click on the underlined 1 to turn off the 7th bit (0 indexed). Using this in reverse, you can easily set up your own names!
But wait... My name is too long to fit in the given space... That is ok! So far we covered how to change the endpoint - just set bit 7! Now let's talk about changing the start point. If we examine Jungle Hijinxs, that name beginning at 0x38a6e2 ('0x' means we are looking at a hexadecimal offset). Remember how I said some data pointers are in the same bank? Well, this is an example of that! The last 4 digits are the important part: a6e2. But, since this is SNES, these data pointers are stored in little endian format. So this pointer is stored as e2 a6. See the accompanying picture below.
https://i.imgur.com/CcZEFmU.png
If you are worried about space, there is unused German text right before this. These pointers must be within the same bank, in this case bank 0x38, to work.
This is only text. Not everything works in the same manner, but Cranky/Candy/Funky all use a very similar approach.
For various useful offsets (and some not so useful ones), check here https://docs.google.com/spreadsheets/d/ ... sp=sharing or look into Giangurgolo's docs!
Please post any questions below.
Now, I think I am most comfortable with hex editing, but I am by far not an expert. There are many people more worthy here on the atlas. I just want to spread some of the basics. Please correct me where wrong! This is just how I understand things, so everything might not be correct.
I come from a dkc1 background, so this applies to dkc1. Many of these principles can be applied to other games though!
The basics: Hex editing (Stages)
This is what a hex editor looks like
Spoiler!
https://i.imgur.com/RWRoeFQ.png
See those 6 numbers/letters to the left? This is the address, also known as the offset. Hex is short for hexadecimal, the numbering system used here. Valid hex digits are in the range 0-9, and a-f. The lefthand two digits of the 6 are what's known as the bank number. Some data pointers (not all mind you) are in the same bank. If we look at the stage name for Jungle Hijinx, we find it in hex here:
Spoiler!
https://i.imgur.com/0a3Usmk.png
If you notice, the final character looks a little funny. This is because the game needs to tell when an end of line marker is reached. The game does this by setting bit 7. Open up windows calculator. Set it on programming mode. Hit Hex and type f3. Hit the bit toggling keypad button
Spoiler!
https://i.imgur.com/OeIdbwm.png
You should see a screen like this:
Spoiler!
https://imgur.com/a/r4I2xeq
Click on the underlined 1 to turn off the 7th bit (0 indexed). Using this in reverse, you can easily set up your own names!
But wait... My name is too long to fit in the given space... That is ok! So far we covered how to change the endpoint - just set bit 7! Now let's talk about changing the start point. If we examine Jungle Hijinxs, that name beginning at 0x38a6e2 ('0x' means we are looking at a hexadecimal offset). Remember how I said some data pointers are in the same bank? Well, this is an example of that! The last 4 digits are the important part: a6e2. But, since this is SNES, these data pointers are stored in little endian format. So this pointer is stored as e2 a6. See the accompanying picture below.
Spoiler!
https://i.imgur.com/CcZEFmU.png
If you are worried about space, there is unused German text right before this. These pointers must be within the same bank, in this case bank 0x38, to work.
This is only text. Not everything works in the same manner, but Cranky/Candy/Funky all use a very similar approach.
For various useful offsets (and some not so useful ones), check here https://docs.google.com/spreadsheets/d/ ... sp=sharing or look into Giangurgolo's docs!
Please post any questions below.