Mode 7 Engine

From MZXWiki
Revision as of 21:19, 25 February 2008 by Wildweasel (talk | contribs) (Were there other mode 7 engines? I recall there were but can't find them)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Mode 7 refers to a graphics mode on the Super Nintendo hardware that is known for its ability to stretch, skew, zoom, and seamlessly rotate backgrounds. Examples of famous games that used Mode 7 to great effect are Super Mario Kart, Pilotwings, Final Fantasy VI, and F-Zero.

In MegaZeux, Mode 7 refers to mimicking the SNES's ability to rotate background graphics, though in a slightly more limited fashion.

Akwende was among the first to release a "Mode 7" engine in 1999. This first attempt, however, didn't actually mimic Mode 7, instead offering the player a rather clunky overworld map in a small window that rotated in the eight cardinal directions.

Brandon Engle released an engine called Real Mode 7 in 2000, featuring both a walking version and a driving version. Both worked essentially the same way, with the driving engine making use of Inmate2993's previously released driving engine used in Cans 2. Real Mode 7 was limited, however, in that it could only display a 3x5 "grid" of tiles, with no interpolation, making it difficult to see where the player is moving.

A mere 4 months after Brandon's engine, Akwende released an engine called Mode 7 MA3. This more accurately approximated the SNES effects, and looked much smoother and natural than Real Mode 7. This came at the expense of speed, though, and many computers at the time were unable to achieve full framerate with this engine (though recent optimizations to MegaZeux, as well as the continuing development of more powerful CPU's, have rendered this no longer a problem).

Mode 7 engines have continued popularity, having become not only easier to create (thanks in part to MegaZeux's new internal trig functions and expressions) but also more technically feasible (more people are able to run said engines at a decent framerate).