Mode_7

**Mode 7** 是電子遊戲機超級任天堂一種圖形顯示模式，可讓逐掃描線式的背景層支援旋轉與縮放，以此創造大量的不同效果。其中最著名的效果是，通過縮放和旋轉背景層來顯示透視效果。這種將高度改為深度的變換，將背景層變為二維水平材質貼圖平面。如此便可顯示三維圖形的效果。

Mega Drive 的擴展 Mega-CD 以及 Atari Lynx 使用了相似的功能。

## 使用

Mode 7 方式彩現通常用於 2D 性能強勁，但不專門支援 3D 的舊系統。著名 Mode 7 遊戲有超級任天堂作品《F-Zero》、《天地創造》、《飛行俱樂部》、《耀西的旅行》、《忍者龜 4》、《惡魔城》、《聖劍傳說 2》、《聖劍傳說 3》、《艾薇莫的秘密》、《最終幻想 IV》、《最終幻想 V》、《最終幻想 VI》、《超級瑪利歐 RPG》、《DinoCity》、《超級瑪利歐世界》、《超級瑪利歐賽車》、《超級星際大戰》、《超時空之鑰》、《雷莎出擊》、《熱爆賽車》、《迦樓羅王》、《時空引導者》、《洛克人 7 宿命的對決！》、《超越巔峰》、《星之卡比 超級豪華版》、《銀河風暴》和《薩爾達傳說 眾神的三角神力》。Mode 7 方式彩現還用於《音速小子 CD》的特定關卡。

## 功能

超級任天堂遊戲機有編號從 0 至 7 的 8 個方式來顯示背景層，其中最後一個（背景方式 7）只有一個可以縮放和旋轉的單層。在 Game Boy Advance 和任天堂 DS 2D 圖形硬體中，方式 1 和 2 可以縮放旋轉傳統磚塊式背景，方式 3 到 5 用用來縮放旋轉點陣圖（因技術限制，這通常很少在 Game Boy Advance 中使用）。對於支援此效果的機器，在各掃描線行消隱周期內，可能通過改變縮放 / 旋轉值，繪製一個透視投影平面；這被視作「Mode 7」效果的特徵。通過使用其它各行的位置、縮放及旋轉方程，可以實現模糊等更複雜的效果。

這種圖形方法不僅適用於競速遊戲；它還普遍用於角色扮演遊戲的世界地圖部分，如史克威爾 1994 年暢銷遊戲《最終幻想 VI》。效果可讓開發者通過製造無垠的遠方，來營造龐大世界的效果。

在超級任天堂中，Mode 7 的一種變形可讓背景層的像素置於子圖形上層。比如《魂斗羅精神》（關卡 2），《賓尼兔的冒險》的引入畫面，以及玩家掉下舞台時的《瑪利歐賽車》。Game Boy Advance 遊戲使用 Mode 2 營造相同效果，其通過提供兩個「Mode 7」圖層，並將子畫面置於兩個圖層之間。

許多 PC 遊戲，其中以《Wacky Wheels》和《Skunny Kart》最為知名，完全通過軟體技術模仿了 Mode 7。軟體自編寫程式 Multimedia Fusion 發展了「Mode 7」，它可讓創作者製作使用相似技術的軟體。

在超級任天堂時代，Mode 7 是任天堂最喜歡的賣點（《任天堂力量》、《SNES Player's Guide》）。比如大型電玩移植到超級任天堂的遊戲《Teenage Mutant Ninja Turtles: Turtles in Time》中，一個關卡就從橫向捲軸改為 Mode 7。

### 公式

使用 Mode 7 圖形的平面紋理地圖，是由螢幕坐標到背景坐標的 2D 仿射變換而轉換成，

　
: ${\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}}$

a、b、c 和 d 是轉換係數；x 和 y 是螢幕偏移；x0 和 y0 是初始偏移；x' 和 y' 是轉換坐標。全部運算都為 16 位元有符號定點數，而全部偏移僅限制在 13 位。小數點位於 7 和 8 位之間。

仿射變換僅允許位移、縮放和剪切效果。許多遊戲通過逐掃描線基礎，進行創造性的變換矩陣參數操作，產生額外的效果。這種方式可實現偽立體、彎曲的表面，以及變形效果。

## 限制

Mode 7 隻能作用於背景，而無法作用於子圖形；因此，任何不隨背景旋轉 / 縮放的對象肯定是精靈，即使它通常被視為背景一部分，如固定平台等。比如在《超級惡魔城 IV》和石巨人等頭目的戰鬥中，移動的頭目是背景，而主角所站的區塊是子圖形。在頭目戰中，相對於 FC 通過大號子圖形顯示大型移動頭目，而固有的減慢和閃爍，超級任天堂通過在背景層顯示頭目的移動和動畫，可以產生類似的效果，且效果明顯提升。但兩個系統示例都只適用在水平面移動的對象。例如，地板、天花板或記分板可以作為 FC 和超級任天堂遊戲的背景，只要它們完全位於遊戲區域的「上方」或「下方」。如果需要使用整個螢幕，他們也可以變為子圖形，但這可能會讓畫面減慢。

Mode 7 不能用來通過改變子圖形「大小」來表示它的「逼近」，特定距離的子圖形必須預先繪製，這就是說，人們會看到，當用數量有限的各大小子圖形來表示「逼近」時，人們會看到子圖形在「跳躍」。這可以在《瑪利歐賽車》和《HyperZone》當物體靠近時看到，或是《最終幻想 VI》乘坐飛空艇垂直升降的畫面。

類似的，子圖形的「旋轉」也要預處理，除非如《超級瑪利歐 耀西島》那樣由卡匣內建的 Super FX 2 晶片來硬體處理。廠商有一個著名的解決方案，已經在一些遊戲中使用，如：《魂斗羅精神》的第二頭目戰，以及《超級瑪利歐世界》中和 Reznor（牆平台支援）、Iggy（戰鬥平台）、Larry（也是平台）、Morton、Ludwig、Roy 和 Bowser 戰鬥。在這些例子中，頭目是「背景」所以可以使用 Mode 7 旋轉，記分板位於遊戲區域上方，所以也算作背景，但是戰鬥裂開的地板，連同玩家角色與炮火，都是將各種旋轉角度重繪「子圖形」。然而，這只允許一次處理一個「子圖形」。

在《幻想傳說》和《星海遊俠》中，Mode 7 般的子圖形效果既非預先繪製，也非通過外部晶片重現，飛行時的精靈完全由軟體重彩現。在《幻想傳說》中，玩家子圖形在走到存檔點時會上下拉伸，以及《星海遊俠》中道具「squash」在打開寶箱時會出現「快要跳出來」的效果。因為這樣的彩現需要額外的磚塊，以及遊戲其他地方對系統的高要求（同時使用流式音訊繞開 SPC700 的有限能力，如同最高端的超級任天堂 RPG 使用可變寬度字型），這種彩現只限於這幾種場景。

Mega Drive 沒有實現 Mode 7 的類似原生硬體，但 Mega-CD 擴展補充了這種功能；比如它顯著的應用於《音速小子 CD》的特定關卡。但是對於《幻想傳說》和《星海遊俠》的特殊子圖形效果，開發商可以通過程式設計直接為遊戲加入類似特技，如《惡魔城 血族》、《蝙蝠俠與羅賓漢》和《魂斗羅・鐵血兵團》等遊戲使用了類似效果。Super 32X 支援 2D 和基本的 3D，所以縮放和旋轉效果成為了 2D 遊戲常見要素，如《納克魯斯與卡歐迪克斯》（Knuckles' Chaotix）是音速小子系列首個使用多邊形特殊舞台的遊戲。

一些 Amiga 遊戲通過程式技巧實現了和 mode 7 類似的效果，如《Mr. Nutz: Hoppin' Mad》、《Lionheart》、《Obitus》和《Brian the Lion》。

## 硬體

超級任天堂的兩個 PPU（圖形處理單元）晶片使用了兩個 8 位 32kB 的 RAM 晶片。在一個周期中，一個 PPU 存取磚塊地圖（128×128 磚塊），另一個 PPU 存取磚塊集（256 磚塊，256 色 8×8 像素）。

## 參考文獻