Research / Sonic 2 / Rings placement
*By Sonic Hachelle-Bee on May 16 2005.*
Advices about rings placement:
Here, I will tell you some advices to make your rings placement looking good in the game, as a real Sonic game.
First, keep in mind that in a row or column of rings, usually, rings are separated by 24 pixels each other. Rings are usually 12 pixels up the floor, or only 6 pixels up the floor if you are going fast at this location (loops or springs). In addition, rings are also placed 8 pixels besides a wall. To make your rings placement even better, they mustn't enter in collision with a badnick, and you must put 3 rings (or sometimes 4) at the beginning of every act, so that you can see them before the title card disappear entirely: this only to have a good start.
Rings placement format:
Rings placement works almost exactly the same as sprites placement:
X: X coordinate of the ring.
Y: Y coordinate of the ring.
F: Ring flag.
In the rings placement, you don't need to write the object type. Only write the coordinates (4 bytes) and write the number of rings you want to be placed after this coordinate in game: usually, the first nybble of the Y coordinate is 0. This nybble is used as a flag for sprites placement. Here, this nybble will define how many rings to display in a row or column, separated by 24 pixels each other. For example, writing 1 instead of 0 will place one ring at the specified coordinate, and another 24 pixels to the right, on the same row. Here is what each number do:
This way, you can place a large amount of rings without too much work. You haven't to place them one by one. As for sprites, for each act of the game, there is a huge list in the ROM file where every rings placement are stored. Each 4 bytes is a new set of rings. At the end of the list, you have FF FF written.
One last thing, you can only place no more than 256 rings in the same act. This is for the perfect counter that takes only a one byte value in RAM. One more and the game will crash.
As sprites placement, rings placement have their own lists.
There is an offset index for each level (2 bytes for an act) located at $E4300.
Back | Printer friendly
<< 3. Sprites and objects reference