第 4 章 · 第 3 節 SNES 與 Super FX:卡帶裡的 3D 引擎#
1990 年 11 月 21 日,任天堂以 Super Famicom(美版 SNES,1991 年 8 月)迎戰 Mega Drive。它靠兩張王牌作戰:主機內建的 Mode 7 旋轉縮放,與卡帶上外掛的 Super FX 晶片。一內一外,共同演示了「在 16 位元硬體極限上掙扎出 3D」的整段工藝史。
Mode 7:一個背景層的旋轉魔法#
SNES 的 PPU 提供多種背景模式,其中 Mode 7 只給一層可逐行變換係數的背景:每條掃描線可設定不同的縮放與旋轉矩陣,等效於對一張 128×128 圖塊(tile)的地圖做仿射變換 \([x', y']^T = A[x, y]^T + \vec{c}\)。逐行改變 \(A\),就能做出地板無限延伸、旋轉、起伏的偽 3D 效果——本質是 經典的 ray-casting 式地平線投影。
《F-Zero》(1990,首發)用它做出極速賽道;《超級瑪利歐賽車》(1992)用它實現卡丁車視角——兩款遊戲把「Mode 7」變成玩家的日常詞彙。限制同樣分明:只有一層可變換、精靈不參與變換(所以要靠縮放精靈假裝遠近)、貼圖解析度低。Mode 7 是「用一個矩陣騙過大腦」的極致範例,也是任天堂對 SEGA 「速度」敘事的精準反擊:你不是快嗎?我讓整個世界旋轉起來。
Super FX:把 3D 晶片塞進卡帶#
更激進的答案來自英國劍橋的 Argonaut Software。創辦人 Jez San 帶著團隊在 1990 年前後向任天堂展示了他們在 Game Boy/GS 裸機上跑的 3D 線框示範,驚豔任天堂本部。雙方合作把 3D 光柵化引擎硬化成晶片——這就是 Super FX(原名 Mario/Argonaut 晶片,由 Argonaut 設計 RISC 核心,工程師 Ben Cheese 等人參與,量產由任天堂與理光合作完成)。
原理是 外掛數學協同處理器:卡帶上的 Super FX(約 10–21 MHz 的 RISC 核心,隨版本與主機分頻而異)負責頂點變換與多邊形光柵化,把結果寫入 SNES 的顯示記憶體當作背景圖塊或精靈輸出。主機 PPU 完全不知道 3D 的存在——它只是忠實顯示一片記憶體。3D 是完全的「社會性欺騙」:螢幕上的多邊形,是卡帶裡一顆晶片的即時繪畫作品。
1993 年的 《Star Fox》 成為見證:全多邊形太空戰機、線框+平面著色、語音(壓縮取樣),在 16 位元主機上做出此前只有街機(如 Virtua Racing 級別的概念)才能觸及的體驗。它證明了一件事:主機性能的上限,可以被軟體重新定義。
制度意義:卡帶作為擴充槽#
Super FX 的深遠影響在商業制度。Famicom 時代「卡帶即擴充」的設計哲學在此升級為 主機不升級、卡帶升級 的策略:
- 優點:不需淘汰舊機、不需推出新主機就能提升 3D 能力;遊戲售價可上浮(Star Fox 售價高於一般遊戲),開發商回收晶片成本。
- 代價:增強晶片單價高昂,遊戲貴、產量低;不同晶片(Super FX、SA-1、DSP-1 等)互不相通,開發碎片化;SDRAM 與 RISC 晶片的產能與成本壓力全部壓在遊戲定價上。
這條路線與 SEGA 形成殘酷對照:世嘉選擇用 Mega-CD(1991)與 32X(1994) 等外接硬體擴充性能,結果產品線分裂、消費者困惑、庫存崩盤。「卡帶內嵌晶片」與「主機外掛盒子」 兩種擴充哲學的成敗,直接寫進了兩家公司的命運——任天堂的卡帶晶片雖貴,至少保證了「買一個遊戲就能玩」;世嘉的盒子把抉擇成本丟給了玩家。
後果:3D 時代的前夜#
SNES 後期的 Super FX 2(《Yoshi's Island》的精靈縮放)、SA-1、DSP 系列晶片,是主機產業在 32 位元時代前夜的最後掙扎:所有人都看見 3D 是未來,但 16 位元硬體撐不起真正的即時 3D。1994 年 Sony PlayStation 與 1996 年 Nintendo 64 將用硬體 3D 晶片一勞永逸地解決這個問題——而 Argonaut 的 3D 經驗與任天堂的合作關係,正是 Nintendo 64 時代的重要人才與技術伏筆(Argonaut 後來也參與了 N64 世代開發,如《Star Fox 64》時期的合作背景)。
本節要點:SNES 的故事是「以制度補性能」的教科書:Mode 7 用矩陣欺騙眼睛,Super FX 用卡帶晶片擴充主機,兩者共同證明主機戰爭的終極資源不是電晶體,而是 如何組織第三方一起解決性能問題——這個邏輯在 3D 時代將升級為平台與顯示晶片的全面戰爭。