Sonic 2 Recreation

Palette Rotation

Back to Main menu

Back to Guides

 

Contents

Introduction

Pointers

Locations

Questions and Answers

Introduction

Well, I got bored and I knew how to do this by looking through hex. I don't believe there's a guide on palette rotation, but if there is, then there was no point in making this and no point in me looking through hex. Credit goes to rika_chou and StephenUK with the pointer help. I did the locations part all by myself, no information I used from anywhere, I had to do searching throughout the ROM. So, yet again, I did something useful.



What is palette rotation?

Palette rotation is art in the level which keeps changing colours. Like the waterfall in EHZ (Emerald Hill Zone), that blue is palette rotation. Without palette rotation, the waterfalls in EHZ would be solid. With this feature, it looks like a real waterfall. Another example of it is the lava in HTZ (Hill Top Zone). Palette rotation is involved in that. Without it, the lava will be plain stiff. Most palette rotation will also change the colours on some of the objects that involve palette rotation within the level.



What can I do with this editing guide?

This guide will explain how to edit the pointers and edit the palette rotation in pure hex. And don't think immediately, 'Oh no! Not hex! I won't bother reading this and give up now' because this is easy to understand! And if you don't understand for some strange reason, or you find errors in this guide, let me know by emailing me at hazellben@hotmail.com and I'll get to you.

Important notice: It is vital that you back-up your ROM every time you're going to edit your game.
 

Back to Top

 


Pointers

00 - Emerald Hill Zone (EHZ)
01 - Unused/Empty (Or Winter Hill Zone, WHZ)
02 - Unused/Empty (Or Wood Zone, WZ)
03 - Unused/Empty (Or Dust Hill Zone, DHZ)
04 - Metropolis Zone 1-2 (MTZ, MZ)
05 - Metropolis Zone 3-4 (MTZ, MZ)
06 - Wing fortress Zone (WFZ)
07 - Hill Top Zone (HTZ)
08 - Hidden Palace Zone (HPZ)
09 - Unused/Empty (Or Genocide City Zone, GCZ)
0A - Oil Ocean Zone (OOZ)
0B - Mystic Cave Zone (MCZ)
0C - Casino Night Zone (CNZ)
0D - Chemical Plant Zone (CPZ)
0E - Death Egg Zone (DEZ)
0F - Aquatic Ruin Zone (ARZ)
10 - Sky Chase Zone (SCZ)

The pointers are located at offset $0019F4. Go to this offset and you will see these bytes or something similar to it:

0024 0022 0052 0022 0082 0082 03C2 0118 015C 0022 019E 01CC 01FA 0322 0322 0394 03C2

Each four bytes represents one zone. So the first two bytes (0024) are EHZ. The last two bytes (03C2) are SCZ. This is a simple show to identify which two bytes represents for each level. Again the bytes 015C represent HPZ.

If you want a certain level to use the same level's palette rotation, you have to change two bytes. DON'T PANIC, it's quick and simple. Let's give an example. Let's say, you want CNZ to use EHZ's palette rotation. No problem. Identify the two bytes that represents CNZ (01FA). So, CNZ is 01FA. Now identify the two bytes that represents EHZ (0024). So, EHZ is 0024. Now change CNZ's bytes to EHZ's bytes, so change 01FA to 0024. Now, if done correctly, CNZ's palette rotation should be sharing EHZ's palette rotation! Do you want another example in case? Well here you go:

To change ARZ to use HTZ's palette rotation, identify the two bytes that represents ARZ (0394). So, ARZ is 0394. Now identify the two bytes that represents HTZ (0118). So, HTZ is 0118. Now change ARZ's bytes to HTZ's bytes, so change 0394 to 0118. Now, if done correctly, ARZ's palette rotation should be sharing HTZ's palette rotation!

Extra Note: This is something Sonic Hachelle-Bee told me. To make a level have NO palette rotation in the level, replace the two bytes with 0022. This will stop rotating palettes! Thanks for the tips SHB!

See? It's nice and easy. Nothing to panic about!

Back to Top
 


Locations

Oh, I see. You want to be Mr. Hexman eh? You want to actually edit your colours in hex? Okay, not too bad.

$01E7A - Emerald Hill Zone (EHZ) (shares with ARZ)
- Unused/Empty (Or Winter Hill Zone, WHZ) (Note: To edit this, you must change WHZ's pointer to HTZ's pointer using the above information)
$01F1A - Unused/Empty (Or Wood Zone, WZ)
- Unused/Empty (Or Dust Hill Zone, DHZ) (Dust Hill Zone has no palette rotation. To make this so, edit it's pointer using the above information)
$01F2A, $01F36, $01F42 - Metropolis Zone 1-2 (MTZ, MZ)
$01F2A, $01F36, $01F42 - Metropolis Zone 3-4 (MTZ, MZ)
$020A2 - Wing fortress Zone (WFZ) (shares with SCZ)
$01E9A - Hill Top Zone (HTZ)
$01F56 - Hidden Palace Zone (HPZ)
- Unused/Empty (Or Genocide City Zone, GCZ) (Note: To edit this, you must change GCZ's pointer to CPZ's OR DEZ's pointer using the above information)
$01F76 - Oil Ocean Zone (OOZ)
$01F86 - Mystic Cave Zone (MCZ)
$01F8E, $01FA0, $01FB2, $01FC4 - Casino Night Zone (CNZ)
$02022, $02058, $02082, $020E2 - Chemical Plant Zone (CPZ) (shares with DEZ)
$02022, $02058, $02082, $020E2 - Death Egg Zone (DEZ) (shares with CPZ)
$01E7A - Aquatic Ruin Zone (ARZ) (shares with EHZ)
$020A2 - Sky Chase Zone (SCZ) (shares with WFZ)

Well, this can get a bit tricky. Especially when it doesn't come out the way you want it. But that is rare, because you should know what you are doing with this guide.

First of all, let's recognize the bytes. 0000. There is always one byte to editing colours. The first bit must always be 0, as it doesn't mean anything. The second bit represents the colour blue. The third bit represents the colour green, and the fourth bit represents the colour red. The higher the numbers, the lighter colour it is. So, 0E00 is blue. 00E0 is green, and 000E is red. You can also mix colours (to see the result of mixing colours, find some paint in your house). So you could mix green and red. For example, 00EE is yellow. If you have 0EEE, it will be white and if you leave it as 0000, it will be black. REMEMBER, when editing colours, the number must always be an EVEN number! So 0240 is allowed but 0250 is NOT, as 5 is an odd number. A, C, E are allowed to be used but not B, D, F! So 024E is allowed but 024F is NOT. This is because F is illegal.

Ok, let's say you want to change the palette rotation colours in EHZ. Go to EHZ's offset which is $01E7A. You should see (unless you've edited it already) bytes like this:

0A86 0E86 0EA8 0ECA 0ECA 0A86 0E86 0EA8 0EA8 0ECA 0A86 0E86 0E86 0EA8 0ECA 0A86

This is the basic waterfall. Looks complicated eh? Try not to worry. The palette rotation always starts off with the first two bytes, after one second, it shows the next two bytes, then the next two, and so on. When it has finished reading the last two bytes, it goes back to the beginning. Now, let's say you want the waterfall red. Try making the blue and green bytes lower. 0A86, so make A to 8, and 8 to 4. And then make the red higher to C or E. So the two bytes will turn out as 084E. To make the colour certain, the bit must be higher than the others. So 0842 will most likely be blue. 0248 will most likely be red, etc.

Well, that is the basics. Hope this goes to good use.
 

Back to Top

 

Questions and Answers


My level has frozen after editing the colours. What is wrong?
Make sure that the first bit of the byte is a 0 and have you used illegal bits (1, 3, 5, 7, 9, B, D, F)?

I've changed a level pointer to do the same as another level but nothing has changed. Why?

When you changed the two bytes to another two bytes, does it represent a level? Remember that 00 01 02 doesn't mean a thing, that is just the level order when coming to pointers.

My hack won't even start now. Why is this?
Palette rotation should not have affected this. Is your back-up working also?

Anything else important?
Always remember to back-up before editing your ROM in anyway.

Question not here?
Email me at hazellben@hotmail.com or even reply at this topic, or get to me on messenger.

Back to Top

Back to Main menu

Back to Guides

All pictures, information and details are ©redhotsonic and SEGA. All rights reserved. Hosted by Sonic Game Modification Community.