Mode 7

From Wikipedia, the free encyclopedia
Jump to: navigation, search
For other uses, see Mode 7 (disambiguation).
Screenshot of a basic Super Nintendo demo using this graphical effect

Mode 7 is a graphics mode on the Super NES video game console that allows a background layer to be rotated and scaled on a scanline-by-scanline basis to create many different effects. The most famous of these effects is the application of a perspective effect on a background layer by scaling and rotating the background layer in this manner. This transforms the background layer into a 2-dimensional horizontal texture-mapped plane that trades height for depth. Thus, an impression of 3-dimensional graphics is achieved.

The Sega CD addon for the Sega Mega Drive/Sega Genesis and the Atari Lynx features similar capabilities.

Use[edit]

Mode 7-style rendering is generally used on older systems with strong 2D capabilities but not dedicated 3D support. Classic Mode 7 games include the Super NES titles F-Zero, Terranigma, Pilotwings, Yoshi's Safari, Teenage Mutant Ninja Turtles IV: Turtles in Time, Super Castlevania IV, Secret of Mana, Secret of Evermore, Final Fantasy IV, Final Fantasy V, Final Fantasy VI, Super Mario RPG: Legend of the Seven Stars, Dino City, Super Mario Kart, Super Mario World, Super Star Wars, Chrono Trigger, ActRaiser, Exhaust Heat, Skyblazer, 7th Saga, Mega Man 7, Top Gear, Kirby Super Star, Axelay, and The Legend of Zelda: A Link to the Past. Mode 7-style rendering was also used for the Special Stages in Sonic CD. The effect was later reused in Game Boy Advance incarnations of many of these games.

Function[edit]

The Super NES console has eight modes, numbered from 0 to 7, for displaying background layers, the last one (background mode 7) having a single layer that can be scaled and rotated. The Game Boy Advance and Nintendo DS 2D graphics hardware have scaling and rotation for traditional tiled backgrounds in its modes 1 and 2 and scaling and rotation for bitmaps in modes 3 through 5 (used less often on the GBA because of technical limitations).[1] On each machine supporting this effect, it is possible to change the scaling/rotation values during the horizontal blanking period of each scanline to draw a flat plane in a perspective projection; this became thought of as the characteristic "Mode 7" effect. More complex effects such as fuzz are possible by using other equations for the position, scaling, and rotation of each line.

This graphical method is not only suited to racing games; it is also used extensively for the overworld sections of role-playing games such as Square's popular 1994 game Final Fantasy VI. The effect enables developers to create the impression of sprawling worlds that continue forever into the distance.

On the Super NES, a variation of Mode 7 allows pixels of the background layer to be in front of sprites. Examples are Contra III: The Alien Wars (stage 2), the introduction screen of Tiny Toon Adventures, when a player falls off the stage in Super Mario Kart, some cinematics in Super Metroid and in some boss battles in Super Mario World. The GBA can make the same effect by using mode 2, which provides two "Mode 7" layers, and putting the sprites between the layers.

Many PC games, most notably Wacky Wheels and Skunny Kart, mimic Mode 7 by performing the technique entirely in software. There is also a "Mode 7" extension for the software-authoring program Multimedia Fusion that allows creators to make software using a similar technique.

During the days of the Super NES, Mode 7 was one of Nintendo's favorite selling points (Nintendo Power, SNES Player's Guide). For example, when the game Teenage Mutant Ninja Turtles: Turtles in Time was ported from the arcade to the SNES, a level was changed from side-scrolling to Mode 7.

Formula[edit]

Planar texture maps using Mode 7 graphics are generated by transforming screen coordinates to background coordinates using a 2D affine transformation,


\begin{bmatrix} x' \\ y' \end{bmatrix}
 =
\begin{bmatrix} a & b & x_0 \\ c & d & y_0 \end{bmatrix}
\begin{bmatrix} x - x_0 \\ y - y_0 \\ 1 \end{bmatrix}

where a, b, c, and d are the transformation coefficients; x and y are the screen offset; x0 and y0 are the origin offset; and x' and y' are the transformed coordinates. All arithmetic is carried out on 16-bit signed fixed point numbers, while all offsets are limited to 13 bits. The radix point is between bits 7 and 8.

Affine transformations only allow for displacement, scaling, and shearing effects. Many games create additional effects through creative manipulation of the transformation matrix parameters on a scanline by scanline basis. In this way pseudo-perspective, curved surface, and distortion effects can be achieved.

Limits[edit]

Mode 7 can only work on backgrounds, not sprites; therefore, any object that does not rotate/scale with the background must be a sprite, even items that would normally be thought of as part of the background, such as fixed platforms. The game developer must create a sprite with the same appearance as that object. For instance, in Super Castlevania IV, battles in which a boss rotates, such as with Koranot (which is a large golem), have the mobile boss as the background, while the blocks on which the protagonist stands are sprites. With the obvious enhancements, this is similar to how some NES games featured battles against a giant movable boss without the slowdown and flicker inherent in a large sprite set—by making the boss the background, and then moving and animating it. Both systems' examples only must apply to objects in the horizontal plane of the moving object. For instance, a floor, ceiling or scoreboard can remain part of a background in both the NES and SNES examples as long as they are completely "above" or "below" the field of gameplay. They can also be turned into sprites if the whole screen is needed, but this can cause slowdown.

That Mode 7 cannot be used on sprites means that each "size" of an "approaching" sprite for a given distance has to be pre-drawn, meaning that one would see sprites "jump" between a limited number of sizes when "approaching" them. This can be seen in Super Mario Kart and HyperZone whenever an object approaches, or when walking vertically on the Final Fantasy VI map with an airship in view.

Similarly, sprite "rotations" have to be handled through pre-drawing unless they are done with hardware included in the game cartridge such as the Super FX 2 chip as with Super Mario World 2: Yoshi's Island. A notable workaround does exist and can be seen in the second boss battle in Contra III: The Alien Wars and the battles against Reznor (platform wall support), Iggy (battle platform), Larry (also the platform), Morton, Ludwig, Roy, and Bowser in Super Mario World. In these examples, the boss is a "background" and therefore rotates through Mode 7, and the scoreboard, which is "above" the field of play, is also a background, but the floor of battle's cracks are, as with the players and gunfire, "sprites" that are redrawn under various rotations as the player rotates. However, this only allows one "sprite" to be manipulated at once.

One exception to Mode 7-like effects on sprites handled neither by pre-drawing nor by external chips occurs in Tales of Phantasia and Star Ocean, where re-rendering of sprites on the fly is done entirely by the software. In ToP, the player sprite vertically stretches upon walking onto a save spot, and in Star Ocean, items "squash" upon "popping out of" an open treasure chest. Due to the extra tiles needed for such rendering and the other high system demands throughout those games (both used a form of streaming audio to circumvent the SPC700's limited capacity, and as with most high-end SNES RPGs, used a variable width font), such rendering was limited to those few scenes.

The Sega Mega Drive/Sega Genesis has no comparable hardware-native feature to Mode 7, although the Sega CD add-on added such a feature; for example, it is used prominently in the Special Stages of Sonic CD. However, as in Tales of Phantasia and Star Ocean's sprite effect add-ins, some comparable technical feats could be programmed straight into a game by the developers, resulting in similar effects seen in games such as Castlevania: Bloodlines, Adventures of Batman and Robin, or Contra: Hard Corps. The Sega 32X has 2D and basic 3D capabilities, so scaling and rotation effects are common in primarily 2D games such as Knuckles' Chaotix, which also was the first game in the Sonic series to feature a polygonal special stage.

Some Amiga games also use programming tricks that may look similar to mode 7 effect, for example in Mr. Nutz: Hoppin' Mad, Lionheart, Obitus or Brian the Lion although as in Sega's Mega Drive, there is no hardware-native feature of Mode 7 in the machine.

Hardware[edit]

The two PPU (picture-processing unit) chips of the SNES use two 8-bit 32-kilobyte RAM chips. One PPU can access the tile map (128×128 tiles), and the other PPU can access the tile set (256 tiles, 8×8 pixels in 256 colors) in a single cycle.

See also[edit]

References[edit]

  1. ^ Korth, Martin, GBATEK: LCD I/O Display Control. Retrieved on June 23, 2011.