Sonic 2 Hacking Guide
Genecyst Savestate - Special Stage Editing

Editing special stages is a time consuming task, but if you work at it, you can create some interesting new special stages.

00 - Turning right, up hill, start right turn
01 - Turning right, down hill, start right turn
02 - Turning right
03 - Normal
04 - Start right turn
80 - Turning left, up hill, start left turn
81 - Turning left, down hill, start left turn
82 - Turning left
83 - Normal
84 - Start left turn

You should try to plan the tube layout carefully to ensure that everything fits together. Now here are the editing positions.

00A9E2 (856A) - Pipe layout
00AC00 (8788) - Object layout

To place objects in the object layout, you use this format.

#1 #2

1 - 360 degree position
2 - How far out the object is

When selecting a 360 degree position for a bomb or ring, you can set it to any value from 00-FF. 00 is right, 40 is down, 80 is left, and C0 is up. The other numbers simply fit between those positions.

Also, you should know these object definitions based on just a single byte format.

FC - Warning about rings needed
FD - Goal (Emerald)
FE - Goal (Checkpoint)
FF - Spacer (+16 from previous starting point) for spacing a new set of layout

When using FF, you should be aware that it will reset your object distance positions to 00. In other words, it makes a new set of objects in addition to the objects you have already layed out. However, it will now start from the position that the FF byte is used. Instead, it will start -16 places from the position you put FF. For example, if I have this a bunch of objects and the distance I have ended with is 34 (hex), then I place FF, it will start the new set of objects at 24 (hex) instead of 35.

Now, for choosing between rings and bombs depends on the distance value. Rings can range from 00-3F in distance and bombs can range from 40-7F in distance. Don't get confused though because in the game, distance 00 in rings is the exact same position as 40 in bombs. In other words, 40 is the same as 00, but it uses bombs instead of rings.

One other thing you should know is that you should always keep objects in order by distance and if you have more than one object in the same position, then by 360 degree position. Also, you should only have 128 bytes in a single array of object positions. The way to start a new array is to use FF. If you continue to go over the 128 byte limit, the game will repeat the same objects over and over and you won't be able to access the rest of the stage.