Tilting / Rotation
The VDP hardware does not support rotation, by which I mean it doesn’t have the ability to rotate sprites or planes. Rotation is a useful feature for 2D games and can help bring more smooth motion to the screen.
Despite there being no VDP support for rotation, there are several ways developers can present the effect on the Mega Drive. Let’s consider sprites and planes separately. For sprites, rotation can be done using standard sprite animation. The artist can pre-draw a series of tiles at different steps in the rotation and then animate them to create the effect on the screen. Additionally, it’s possible to perform the rotation effect ‘in software’ on the 68000 and send the resulting tiles to the VDP for display. Whether sprite tiles are pre-drawn by the artist or pre-rendered by the 68000, they are animated the same way—by switching the displayed tile every so-many frames.
This scene from Gaiares shows a simple rotation effect on the enemies:
There are eight frames of animation. Slowed down, it looks like this:
It’s not always possible to tell if a sprite is pre-drawn or rendered in software without seeing the game’s code. Pre-drawn animation will typically have a low number of frames, since each frame has to be stored in the ROM and space is always tight. If pre-rendering in software, it can be easier to increase the frame rate of the animation, but the process consumes more CPU cycles.
Next, consider this scene from Gunstar Heroes of the boss Seven Force (specifically, Blaster Force):
The blaster is spinning very fast at a smooth 60 fps. Slowed down, it looks like this:
This is pre-drawn sprite animation. The sprites it uses are shown here (in a different color palette):
The segments, aside from the circle, are pre-drawn in 22.5° intervals (1/16th of 360°). The circle segment never rotates. There are eight orientations of each non-circular segment. That is enough for full 360° movement, since the VDP can flip sprites both horizontally and vertically (if the segments were symmetrical across one axis, only five renderings would be required to do 360° movement). The segments are artfully arranged to create the blaster shape and then rotated at 60 fps. One rotation of the blaster takes 16 frames, so there are almost four full rotations within a second—very fast!
Now, let’s look at how planes can be rotated. Since planes typically contain a large number of tiles, it’s more difficult to rotate a plane using pre-drawn or pre-rendered animation.
First, let’s look at an example that is not plane rotation—the special stage from Sonic the Hedgehog:
Although the walls of the stage are rotating, they are not part of either background plane. Instead, they are pre-drawn animated sprites. They are drawn in 5.625° steps for fluid animation. The sprites are shown here:
Animated, they look like this:
You might notice the rotation movement in the Sonic the Hedgehog example doesn’t appear so smooth. The developers decided (for unknown reasons) to limit the rotation movement to 15 fps—perhaps to reduce motion sickness, or to make the stage easier. There are hacks available online to restore the movement to 60 fps.
So, one trick to make it seem like the background planes are rotating is to use a bunch of animated sprites, but what about rotating the planes?
There is an interesting technique to achieve partial rotation called tilting. This combines two hardware features of the VDP: line scrolling (or row scrolling) and column scrolling. These can be used in tandem to make it appear that a plane is rotating, but there is a limit on the angle of rotation before the plane loses its shape. The effect is better referred to as tilting rather than rotation since it is restricted to a rather narrow range of angles.
Here’s an example of tilting from Castlevania: Bloodlines:
Notice the walls of the tower (the platforms that the player is standing on are made of sprites and do not rotate). Both line scrolling and column scrolling are being applied to the tower background plane in order to tilt it back and forth.
Another example of tilting, also from Castlevania: Bloodlines:
The statue is part of a background plane—it’s not made of sprites (line and column scrolling cannot be applied to sprites).
You might have noticed in this example the black bar of sprites covering the left-most column of the screen. As previously mentioned, this is to cover the column scrolling bug that occurs when column scrolling is combined with horizontal scrolling. In the example of the tower in Castlevania: Bloodlines, there is no black bar—the bug doesn’t appear if column scrolling doesn’t occur on the leftmost and rightmost columns.
The third stage boss of Gunstar Heroes features some nice tilting:
The helicopter is drawn to Plane A and the clouds to Plane B. Each plane tilts to the opposite direction to give a nice sense of motion.
With the bright background in this scene, the black bar of sprites covering the left column really sticks out here. In some situations, such as the scene with the statue in Castlevania: Bloodlines shown above, the developers added the black bar at the start of the scene to avoid it suddenly (and noticeably) popping up right before the column scrolling. For this scene in Gunstar Heroes, Treasure had the black bar slowly creep onto the screen before the boss fight:
List of Effects:
- Full-Screen Scrolling
- Row / Column Scrolling
- Line Scrolling
- Multi-Jointed Characters
- Tilting / Rotation
- Shadow and Highlight
- Palette Swapping
- Vertical Scaling
- Sprite Raster Effects
Want to post a comment? You can do so here.