Modus 7 - Mode 7

Screenshot einer einfachen Super NES- Demo mit diesem grafischen Effekt

Modus 7 ist ein Grafikmodus auf der Super NES- Videospielkonsole , der es ermöglicht, eine Hintergrundebene Scanline für Scanline zu drehen und zu skalieren, um viele verschiedene Effekte zu erzielen. Der bekannteste dieser Effekte ist die Anwendung eines perspektivischen Effekts auf eine Hintergrundebene durch Skalieren und Drehen der Hintergrundebene auf diese Weise. Dadurch wird die Hintergrundebene in eine zweidimensionale horizontale texturierte Ebene umgewandelt, die Höhe gegen Tiefe eintauscht. Dadurch wird ein Eindruck von dreidimensionaler Grafik erzielt.

Mode 7 war eines der herausragenden Verkaufsargumente von Nintendo für die Super NES-Plattform in Publikationen wie Nintendo Power und Super NES Player's Guide . Ähnliche Faux- 3D-Techniken wurden auf einigen 2D-Systemen außer dem Super NES in ausgewählten Peripheriegeräten und Spielen präsentiert.

Funktion

Die Super NES-Konsole verfügt über acht Grafikmodi, die von 0 bis 7 nummeriert sind, um Hintergrundebenen anzuzeigen. Der letzte (Hintergrundmodus 7) hat eine einzelne Ebene, die skaliert und gedreht werden kann. Diese grafische Methode eignet sich für Rennspiele und wird häufig für die Überwelt-Abschnitte von Rollenspielen wie Squares beliebtem Spiel Final Fantasy VI von 1994 verwendet . Der Effekt ermöglicht es Entwicklern, den Eindruck weitläufiger Welten zu erwecken, die sich bis zum Horizont fortsetzen.

Eine besondere Nutzungstechnik mit Modus 7 ermöglicht es, dass Pixel der Hintergrundebene vor Sprites liegen. Beispiele sind die zweite und fünfte Phase von Contra III: The Alien Wars , die zweite und fünfte Phase von Jim Power: The Lost Dimension in 3D , der Einführungsbildschirm von Tiny Toon Adventures: Buster Busts Loose , wenn ein Spieler vom Bühne in Super Mario Kart , einige Filmsequenzen in Super Metroid und einige Bosskämpfe in Super Mario World .

Formel

Mode-7-Grafiken werden für jedes Pixel erzeugt, indem die Bildschirmkoordinate unter Verwendung einer affinen Transformation auf die Hintergrundkoordinate abgebildet wird und die entsprechende Hintergrundfarbe abgetastet wird. Die 2D-affine Transformation wird für jede Scanlinie durch 6 Parameter spezifiziert; , , , und definieren Sie die Matrix , während und definieren Sie den Vektor den Ursprung der Matrixtransformation und bezieht sich auf einen Translationsvektor. Insbesondere wird die Bildschirmkoordinate in das Ursprungskoordinatensystem übersetzt, die Matrix wird angewendet und das Ergebnis wird zurück in das ursprüngliche Koordinatensystem übersetzt, um zu erhalten . In der 2D-Matrix-Notation wird dies geschrieben als

.

Die gesamte Arithmetik wird auf 16-Bit-Festkommazahlen mit Vorzeichen ausgeführt, während alle Offsets auf 13 Bit begrenzt sind. Der Radix-Punkt liegt zwischen Bit 7 und 8.

Zweidimensionale affine Transformationen können jede beliebige Kombination von Translation , Skalierung , Reflexion , Rotation und Scherung erzeugen – und sonst nichts. Viele Spiele erzeugen jedoch zusätzliche Effekte, indem sie für jede Scanlinie eine andere Transformationsmatrix festlegen. Auf diese Weise können pseudoperspektivische, gekrümmte Oberflächen- und Verzerrungseffekte erzielt werden.

Grenzen

Modus 7 kann nur auf Hintergründen funktionieren, nicht auf Sprites; Daher muss jedes Objekt, das sich nicht mit dem Hintergrund dreht oder skaliert, ein Sprite sein, selbst Elemente, die normalerweise als Teil des Hintergrunds betrachtet werden, wie z. B. feste Plattformen. Der Spieleentwickler muss ein Sprite mit dem gleichen Aussehen wie dieses Objekt erstellen. In Super Castlevania IV zum Beispiel haben Schlachten, in denen ein großer Boss wie Koranot rotiert, den mobilen Boss als Hintergrund implementiert, während die Blöcke, auf denen der Protagonist steht, Sprites sind. Mit den offensichtlichen Verbesserungen ist dies ähnlich wie bei einigen NES-Spielen Kämpfe gegen einen riesigen beweglichen Boss ohne die Verlangsamung und das Flackern, die einem großen Sprite-Set eigen sind – indem der Boss zum Hintergrund gemacht und dann bewegt und animiert wird. Die Beispiele beider Systeme können nur für Objekte in der horizontalen Ebene des sich bewegenden Objekts gelten. Zum Beispiel kann ein Boden, eine Decke oder eine Anzeigetafel sowohl in den NES- als auch in den SNES-Beispielen Teil eines Hintergrunds bleiben, solange sie vollständig "über" oder "unter" dem Spielfeld liegen. Sie können auch in Sprites umgewandelt werden, wenn der gesamte Bildschirm benötigt wird, aber dies kann zu einer Verlangsamung führen.

Die Tatsache, dass Modus 7 nicht auf Sprites verwendet werden kann, bedeutet, dass jede "Größe" eines "annähernden" Sprites für eine bestimmte Entfernung vorgezeichnet werden muss, was bedeutet, dass Sprites zwischen einer begrenzten Anzahl von Größen "springen" würden, wenn " nähert" ihnen. Dies ist in Super Mario Kart und HyperZone zu sehen, wenn sich ein Objekt nähert oder wenn Sie mit einem Luftschiff im Blick vertikal auf der Final Fantasy VI- Karte gehen.

In ähnlicher Weise muss das Auftreten von Sprite-Rotationen durch Vorzeichnen behandelt werden, es sei denn, sie werden mit in der Spielkassette enthaltener Hardware wie dem Super FX 2-Chip ausgeführt, wie bei Super Mario World 2: Yoshi's Island . Ein bemerkenswerter Workaround existiert und kann in Contra III: The Alien Wars im zweiten Bosskampf und in Super Mario World in den Kämpfen gegen Reznor (Plattformwandunterstützung), Iggy (Kampfplattform), Larry (auch die Plattform) gesehen werden. , Morton, Ludwig, Roy und Bowser. In diesen Beispielen ist der Boss ein "Hintergrund" und rotiert daher durch Modus 7, und die Anzeigetafel, die "über" dem Spielfeld liegt, ist ebenfalls ein Hintergrund, aber die Risse des Bodens sind wie bei den Spielern und Geschützfeuer, "Sprites", die unter verschiedenen Rotationen neu gezeichnet werden, wenn sich der Spieler dreht. Dadurch kann jedoch nur ein "Sprite" gleichzeitig manipuliert werden.

Eine Ausnahme von den Modus 7-ähnlichen Effekten auf Sprites, die weder durch Vorzeichnen noch durch externe Chips behandelt werden, tritt in Tales of Phantasia und Star Ocean auf , wo das erneute Rendern von Sprites im laufenden Betrieb vollständig von der Software durchgeführt wird. In Tales of Phantasia dehnt sich das Spieler-Sprite vertikal aus, wenn es auf einen sicheren Ort geht, und in Star Ocean werden Gegenstände zerquetscht, wenn sie aus einer offenen Schatzkiste springen. Aufgrund der zusätzlichen Kacheln, die für ein solches Rendering erforderlich sind, und der anderen hohen Systemanforderungen in diesen Spielen (sowohl mit einer Form von Audio-Streaming , um die begrenzte Kapazität des SPC700 zu umgehen , als auch wie bei den meisten High-End-SNES-RPGs mit einer Schriftart mit variabler Breite ) war ein solches Rendern auf diese wenigen Szenen beschränkt.

Das Mega Drive/Genesis hat keine hardwarenative Funktion, die mit Mode 7 vergleichbar ist, obwohl die Mega CD/Sega CD und die 32X- Peripheriegeräte eine solche Funktion hinzufügen. Wie jedoch in Tales of Phantasia und Star Ocean ' s Sprite Effekt Add-Ins wurden einige vergleichbare technische Meisterleistungen programmiert vollständig in Software, in Spielen wie gesehen Dick Vitale "Awesome, Baby!" College Hoops und Zero Tolerance .

Obwohl es im Amiga kein hardwarenatives Feature gibt, das mit Mode 7 vergleichbar ist , verwenden einige seiner Spiele Programmiertricks, die den Effekten von Mode 7 ähneln – zum Beispiel in Mr. Nutz: Hoppin' Mad , Lionheart , Obitus und Brian the Lion .

Hardware

Die beiden PPU ( Bildverarbeitungseinheit ) Chips des SNES verwenden , um zwei 8 - Bit - 32- Kilobyte - RAM - Chips. Eine PPU kann in einem einzigen Zyklus auf die Kachelkarte (128 × 128 Kacheln) und die andere PPU auf den Kachelsatz (256 Kacheln, 8 × 8 Pixel in 256 Farben) zugreifen .

Auswahl an Spielen, die Modus 7 verwenden

Modus 7-Spiele enthalten die Titel

Die visuellen Effekte wurden später auf andere Weise in den Game Boy Advance- Inkarnationen vieler dieser Spiele implementiert .

Verweise