那是1980年,《喫豆人》的街機基板上焊着一塊只讀存儲器
1980年,南夢宮的程序員巖谷徹完成了《喫豆人》的最終代碼,將其燒錄進街機基板的只讀存儲器中。遊戲設計了255個關卡——這是當時街機遊戲的標準做法,用一個8位無符號整數來存儲當前關卡編號。8位二進制數的最大值是255。第255關通關後,關卡計數器的數值從255翻到256,二進制表示從11111111變成100000000——但8位寄存器只能容納8位,最高位被直接丟棄。計數器回到了00000000。第256關被遊戲引擎當作第0關來渲染。

《喫豆人》原版街機框體的照片,可見黃色外殼和像素屏幕
關卡編號歸零了,但遊戲引擎不知道該幹什麼
關卡計數器歸零本身不是問題——程序員可以在代碼裏寫一行判斷語句,檢測到“當前關卡等於0”時跳轉到正常的關卡渲染流程。但巖谷徹沒有寫這行判斷。因爲從數學上,關卡編號的取值範圍是1到255,沒有任何玩家應該到達256。他在代碼的其他地方沒有任何處理“關卡0”的邏輯。當遊戲引擎試圖根據“第0關”來計算迷宮中的水果數量、幽靈AI的追擊速度和能量豆的效果時長時,它從內存中讀到的是一組完全沒有被初始化過的數值。這組數值驅使引擎開始向屏幕繪製內存中的隨機數據。

《喫豆人》256關Bug觸發後屏幕被亂碼覆蓋的經典截圖
右半邊屏幕被字母和符號吞掉了
遊戲引擎將內存中的隨機數據解釋爲迷宮牆體的位置、豆子的座標和幽靈的路徑節點,然後將這些“物體”逐行繪製到屏幕上。右半邊的屏幕被一組組毫無規律的字母、數字和符號填滿——這些數據來自街機基板上的工作內存,其中包含了遊戲程序自身的部分代碼片段。左半邊迷宮殘留着可辨認的牆體輪廓,但在這些牆體之間散佈着無法被喫豆人通過的隱形障礙物。喫豆人自身仍然可以被玩家操控移動,但迷宮已經被不可穿越的數據碎片切割成了斷裂的通道。

全世界沒有任何玩家能通過第256關
第256關的屏幕上只有9顆普通豆子和4顆能量豆——這是內存隨機數據偶然產生的數值,遠少於正常關卡所需的數量。即使玩家操控喫豆人喫掉了所有能喫的豆子,總數也無法達到讓遊戲觸發“通關”判斷的閾值。256關是一個數學上不可能通關的關卡。1980年代的北美街機廳裏,玩家把這種現象叫作“殺死屏幕”——當你打到第256關,你不是打穿了遊戲,是打穿了遊戲的底層代碼。全球第一個達到第256關的玩家是美國人比利·米切爾,他在1999年的一次公開表演賽中用了約六個小時打到了這張亂碼屏幕前。

比利·米切爾在街機前玩《喫豆人》
巖谷徹在二十年後親口道了歉
2010年,《喫豆人》30週年紀念活動上,巖谷徹被記者問到第256關的Bug。他的回答被多家遊戲媒體記錄了下來:“我以爲沒人能打到那裏。我錯了。”南夢宮在《喫豆人》的後續移植版本中修復了這個Bug——但修復的方式不是重寫關卡計數邏輯,而是簡單地在第255關之後增加了第256關的正常迷宮地圖。

巖谷徹在2010年《喫豆人》30週年活動上的照片
因爲對於全世界的《喫豆人》玩家來說,這個被字母吞掉的屏幕已經不是Bug了。它是整個1980年代街機文化最著名的終點線。2015年,電影《像素大戰》中,第256關的亂碼屏幕作爲一個核心劇情點出現——一塊被隨機數據填滿的屏幕,在35年後變成了一條電影劇本。
感謝收看,大家點點贊點點關注~
![]()
更多遊戲資訊請關註:電玩幫遊戲資訊專區
電玩幫圖文攻略 www.vgover.com
