沙羅曼蛇---任天堂1987

《#沙羅曼蛇》在1987年9月25日登上紅白機 主導這部作品的是 #梅崎重治 那年他才剛從《大盜五右衛門》畢業 就接下這個野心爆炸的企劃 他在演職員表裡用 S. UMECHAN 的化名出現 聽起來很可愛 但他在程式碼裡的操作完全是另一個次元 紅白機有一個很殘酷的硬體天花板 同一條掃描線最多只能顯示8個 sprite 可是《沙羅曼蛇》主打雙人同樂 兩台機體加上各自三個子機 光是玩家自己就已經佔滿整條掃描線 更別說還有滿天的彈幕跟敵機 所以我們看FC版的時候 畫面上的子機常常在閃爍 那個閃爍不是bug 是 梅崎 寫出來的精密演算法 他讓物件在不同影格之間輪流出現 寧可閃爍也不要消失 這是8位元時代的一種美學掙扎 而這種硬體掙扎還逼出了另一個經典畫面 街機版第三關原本是一條在畫面中 蜿蜒盤旋的全身火龍 FC 因為畫不出整條 團隊乾脆只做出一顆從烈焰日珥中 探出來的超巨大火龍頭部 結果這個被迫的妥協 反而比街機版更有壓迫感 家用機團隊還趁著這次重做 加入了兩個街機版完全沒有的全新關卡 一個是充滿神經組織的巨大脊椎骨關卡 還有一個是法老頭像林立的古埃及遺跡關卡 讓 FC 版變得比街機版還要長 還要奇幻 街機版本來是很街機廳的設計 打敵人就會直接掉武器 死了在原地復活馬上撿回子機 但家用機團隊做了一個很大膽的決定 他們把整套系統砍掉重練 退回《宇宙巡航艦》那個需要思考的能量條系統 玩家要自己決定升級順序 要先衝速度還是先佈署子機 街機版是給投幣的過客 家用機版是給坐在客廳沙發上反覆鑽研的人 這個決定讓 FC 版幾乎變成另一款遊戲 很多老玩家心裡其實把它當成《宇宙巡航艦 1.5》 是介於初代和續作之間的祕密章節 而日版玩家在這裡還拿到一個只有他們才有的特權 就是可以同時掛載3個子機 滿裝起來的火力覆蓋面積非常誇張 後來北美發行的 NES 版《Life Force》 把這個上限硬生生砍到只能2個 所以當年的歐美玩家 其實是用 弱化版 在玩這款遊戲的 日版這台藍卡匣才是真正的究極形態 漢字 沙羅曼蛇 這個翻譯也很有意思 本來 Salamander 在西方神話裡是火蜥蜴 日方用 宛字 的手法 借漢字的發音來拼外來語 但又故意挑了最有殺氣的字 沙是荒蕪 羅是修羅 曼是蔓延 蛇是長條敵人 四個字組起來 比原文還要兇 (同樣手法的還有《魂斗羅》) 這是Konami那個年代很愛玩的命名美學 說到 Konami 就想到那個傳奇的30命的秘技 上上下下左右左右BA 這串密碼在日版 FC 是嚴格判定的 但美版 NES 出了一個很好笑的程式漏洞 系統在讀取按鍵時居然完全忽略左跟右的輸入 也就是說美國玩家根本不用按完整指令 只要頭尾有上上下下BA 中間就算亂按一通也照樣成功 是非常美式的隨便 還有一個藏得很深的彩蛋 日版 FC 通關時如果死得夠少又不接關 最後 Vic Viper 的駕駛員會把頭盔摘下來 露出長髮 原來王牌駕駛員是女性 但這個結局只有日版才有 北美NES版的《Life Force》不知為何把這段刪掉了 —— 以下第二段的內容會比較深一點 但是會很有趣 如果你小時候有看過原版的《沙羅曼蛇》卡帶 應該會被它的外殼吸引到 Konami 當年特別訂製了一個半透明藍色的卡帶 我們可以直接從卡匣外面 看見裡面那塊綠色電路板 以及那顆傳奇的特製晶片 而那顆從外殼就刻意要讓我們看見的晶片 就是接下來第二段故事的主角 VRC3 小時候我們對正版跟盜版其實沒很清楚的概念 而且那時候也不是用 盜版 這個名字 而是比較婉轉的 台卡 所以小時候如果玩的是台卡的《沙羅曼蛇》 可能會發現下方顯示武器和力量的狀態列 邊邊常常會抖一下 背景音樂偶爾還會少一拍 當時我以為是電視訊號的問題 或是卡帶接觸不良 但實際上 那個抖動其實是台卡才會有的 Konami 在1987年推出《沙羅曼蛇》的時候 做了一個非常奢侈的決定 他們替這款遊戲量身打造了 VRC3 這顆晶片就只用在《沙羅曼蛇》一款遊戲上 史上唯一 之後再也沒有第二款遊戲使用過 VRC3 最厲害的地方 是內建一個16位元的CPU週期計數器 能精準到讓畫面下方的武器列完全靜止 上半部還能高速捲動 當年其他遊戲想做到分割畫面 程式設計師必須讓CPU空轉等待 浪費大量運算資源 Konami 直接用硬體解決 這就是為什麼《沙羅曼蛇》在原版卡帶上跑起來 會那麼順的原因 但這個奢侈也成了盜版業者的惡夢 當時台灣與中國的盜版工廠 面對這顆只給一款遊戲用的晶片 基本上是不可能為了它去開模量產 但諷刺的是 其實當時市面上有一顆現成的晶片 完全能完美重現VRC3的動作 那就是 Sunsoft 的 FME-7 FME-7 內部同樣有16位元CPU週期計數器 機制幾乎與 VRC3 一模一樣 拿來破解《沙羅曼蛇》原本是最完美的選擇 但盜版工廠最後還是選擇了會抖動的 MMC3 方案 原因很現實 就只是因為 MMC3 的仿冒晶片產量太大 單顆成本便宜了幾塊錢 為了那幾塊錢 他們寧可讓玩家看一輩子畫面抖動 於是他們選了一條最省錢的方式 把整個遊戲的程式碼挖出來逐行修改 讓它能跑在便宜的MMC3仿冒晶片上 這種做法叫做 Mapper Hack VRC3 是依靠CPU時脈在運作 MMC3 卻是依靠畫面掃描線 兩種計時方式從根本上就不一樣 盜版工程師只能在程式碼裡塞入大量延遲指令 試圖手動補償這個時間差 我們小時候看到的那個畫面抖動 還有那個莫名其妙會掉拍的BGM 就是這個原因造成的 不過故事最神奇的轉折在台灣 當時有一家叫做 Kaiser 的台灣晶片設計商 他們真的把VRC3給逆向了 還做出強化版叫做 KS202 但他們做這顆晶片的目的 完全不是為了《沙羅曼蛇》 他們看上的是VRC3那個精準的16位元計數器 拿去模擬任天堂磁碟機系統的硬體動作 然後把《超級瑪利歐兄弟2:失落的關卡》 也就是我們熟知的《金牌瑪利》 還有《薩爾達傳說》磁碟版 全部轉換成廉價的卡帶版販售 結果VRC3 就這樣 意外撐起了另外一整個盜版生態 (雖然在 KS202 出現之前 就已經有人將磁碟機遊戲轉成卡帶版 但當時靠的是大量修改程式達到的 除了問題很多之外也非常耗時 有了KS202 後轉換就變得非常容易) 而最後讓人意外的是 連 Konami 自己都覺得 VRC3 太奢侈了 那個16位元CPU週期計數器 雖然極度精準 但在晶片內部佔用的邏輯閘資源實在太多 到了後來的 VRC4 跟 VRC6 Konami 全部改成8位元計數器加上預分頻器 用一種折衷的方式去達到類似效果 VRC3 那種簡單粗暴的高精度設計 就這樣連原廠自己都不再用 它真的成了空前絕後的特例 到了現在 透過 FPGA 跟 CPLD 的硬體描述語言技術 我們可以很簡單在一塊現代晶片裡 用程式碼把VRC3的每一條邏輯線路完全重建出來 不需要修改任何一行原始程式碼 電氣層級完全一致 像 EverDrive N8 還有 MiSTer 平台 都已經能做到奈秒級的時序對齊 那個我們童年看著抖動的狀態列 在30多年後終於穩穩地停在原本該在的位置上 那顆只服務過一款遊戲 連原廠都嫌太奢侈的晶片 等了三十年才被人完整地理解 —— 遊戲:《沙羅曼蛇》 廠商:Konami 發行:1987年(任天堂紅白機版) 晶片:VRC3(iNES Mapper 73) 基板型號:350685
megapx
愛心
90
留言
encourage first comment
有些話想說嗎 快分享出來彼此交流吧!