Getting my feet wet.
The stages with flowing water in them set RAM address $007A to #$30 or #$31. Obviously the 3 denotes it's a water stage, but what's the difference between a 0 and a 1? The same applies to stages with moving clouds. Each stage applies certain effects to specific areas based on the lower nybble.
For example, when $007A & #$30, CHR sets are changed every 16 steps, which creates the effect of flowing water. However, the way in which #$30 differs from #$31 is how the game differentiates between rivers and waterfalls. The simple answer is: it doesn't. There is in fact no distinction at all between a waterfall and a river.
So why do objects only flicker over the part of the body that's in the river and not the part that's in the waterfall.? This is where that lower nybble comes in. Tiles placed within a specific area (based on y-offset) will be pushed to the foreground and then pulled back to the background. Only tiles within that area will undergo this effect. What this means for ROM hacking level designers is in order to properly include flowing water in your stages, the code will need to be edited as well or the level design must fall within the limits of the predefined code.
No comments:
Post a Comment