那隻根本不存在的寶可夢,救了他快壞掉的遊戲存檔

發表時間:2026 年 11 月 10 日 | 更新日期:2026 年 11 月 10 日 | 編輯:雅寶社區編輯團隊
那隻根本不存在的寶可夢,救了他快壞掉的遊戲存檔 - 雅寶社區 · 頂客論壇

第一種:電池沒電。這是最常見的死法,也是最乾脆的死法。卡帶裡有一顆 CR2025 或 CR2032 的鈕扣電池,負責在卡帶離開主機時供電給 SRAM。電池一沒電,存檔就是「直接消失」,不是損壞,是歸零。這種狀況基本上沒救,除非你之前在別的裝置上留過備份。

第二種:電池瀕死造成的寫入失敗。這是阿哲遇到的情況,也是所有壞檔裡最狡猾的一種。電池電壓還沒低到完全斷電,但已經低到寫入不穩定。你在遊戲裡存檔,主機把資料寫進 SRAM 的過程中,某幾個位元沒寫進去,或者寫成相反的值。遊戲當下不會發現,因為它寫完就拍拍屁股走了。等到下次讀取,校驗值一算,對不上,恭喜你,存檔「壞了」。

第三種:人為操作。存檔存到一半拔卡、主機跳電、模擬器當機、複製貼上備份檔時出錯、用金手指改資料改到結構錯位——這些都會導致同樣的結果:檔案還在,但遊戲不想認它。

阿哲的卡帶後來換了電池,所以他遇到的不是第一種,而是第二種的殘留後果:電池當年快掛掉時,某一次存檔寫壞了,之後他一直讀得到是因為遊戲還能靠舊的存檔標記進去,直到某次重新存檔,把壞掉的區塊「定型」了,遊戲才終於翻臉。

講到這裡,你大概可以理解他為什麼不願意放棄。這不是「遊戲打不開」,而是「資料還在,只是被鎖在外面」。而要打開這道鎖,他需要的不是修復工具,而是一把能撬開記憶體結構的怪鑰匙。

二、那隻根本不存在的寶可夢:MissingNo. 到底是什麼來頭

2-1 從程式碼殘骸,變成三十年都市傳說

如果你玩過初代《寶可夢 紅/綠/藍》,可能有聽過一個傳說:在紅蓮島東邊的海岸線上衝浪,會遇到一隻長得像一堆像素亂碼的寶可夢。牠沒有正式名字,圖鑑編號顯示為 000,屬性欄會出現一個遊戲裡根本不存在的「鳥」屬性,叫聲刺耳,而且——最經典的——遇到牠之後,你背包第六格的物品會突然變成 128 個。

這隻東西就是 MissingNo.,全名 Missing Number,直譯就是「失蹤的號碼」。它嚴格來說不是一隻寶可夢,而是一段沒有被清除乾淨的記憶體殘留資料。遊戲在生成野生寶可夢時,會根據你所在的地圖與遭遇表去查一張編號表;但在某些特定條件下(最著名的就是「看過常磐市老爺爺的捕捉教學,再去紅蓮島海岸衝浪」),遊戲會查不到有效編號,於是直接拿記憶體裡「上一個剛好放在那裡」的資料來用。

結果就是:你遇到了一個編號 000 的東西。遊戲的程式碼沒有為 000 準備圖像、沒有準備名字、沒有準備叫聲,於是它就拿別的東西來充數——這就是為什麼 MissingNo. 的外觀像一堆堆疊的方塊,而牠的圖像其實是從其他地方「借」來的。

有趣的是,這個 bug 在初代非常出名,出了名到後來官方在重製版與 Virtual Console 版本中把它修掉,但玩家社群反而把它變成了一種文化符號。它出現在迷因裡、出現在改版 ROM 裡、出現在各種「寶可夢都市傳說」的合輯影片裡,甚至有人幫它寫了偽圖鑑條目。

但對阿哲來說,MissingNo. 不是傳說,也不是迷因。它是他手上唯一一個能穩定製造「記憶體錯位」的工具。

2-2 它到底「動」了存檔的哪裡?

要理解這件事,得先知道初代遊戲的資料是怎麼排的。遊戲在執行時,會把玩家的隊伍資料、背包道具、目前地圖、旗標狀態等等,全部塞在一段連續的記憶體區塊裡。這些區塊的順序是固定的,而且它們緊鄰在一起。

MissingNo. 的 bug 之所以能複製道具,是因為它觸發的「錯誤遭遇」會讓遊戲去讀寫某個超出原本範圍的位址。而那個位址,剛好落在「背包道具數量」的欄位上。於是遊戲把某個數字寫進去,你的第六格道具就變成 128 個。這就是所謂的溢位(overflow)——資料寫超出了它該待的格子,跑去踩別人的地盤。

而阿哲想做的事,本質上跟這個一模一樣:他需要一個能精準「踩」到壞掉區塊的工具,把有效的資料覆蓋回去。

差別在於,複製道具只是踩到背包;他要踩的是隊伍資料區。而初代的記憶體排法有一個致命又幸運的特性:隊伍資料、道具資料、地圖旗標,這幾區之間的距離是固定的,而且可以透過「隊伍裡有幾隻寶可夢」「背包裡有什麼道具」來推算。換句話說,只要你能控制隊伍長度與道具內容,你就能控制溢位會打到哪裡。

這就是為什麼 MissingNo. 會在這個故事裡登場。它不是萬能修復工具,它只是一個「可以控制錯位的觸發器」。真正做決定的,是操作者對資料結構的理解。

打個比方:MissingNo. 就像一根可以伸進牆縫的鐵絲。鐵絲本身沒有修東西的能力,但如果你知道鎖的結構,它就能幫你把門打開。問題是——你也可以用它把門鎖死。

三、修復實錄:把漏洞當手術刀

3-1 動手前的三條鐵律

在講流程之前,先講阿哲做對的三件事。這三件事比任何操作步驟都重要,因為它們決定了「失敗」是「重來一次」還是「永遠再見」。

鐵律一:備份,備份,再備份。他在動任何手腳之前,先用 dump 工具把整塊 SRAM 原封不動複製了三份,分別放在兩顆不同的硬碟與一個雲端空間。記住,你備份的是「壞掉的檔案」,這聽起來很蠢,但這是你唯一能反覆實驗的基礎。沒有備份就開始改資料,等於閉著眼睛開刀。

鐵律二:離線操作,不要跟實機卡帶賭。他沒有直接在原卡帶上反覆寫入。他把 dump 出來的檔案放進模擬器,用模擬器的存檔功能來測試。模擬器可以隨時回到「上一步」,實機不行。等所有流程在模擬器上跑通三遍以上,他才考慮回到實機。

鐵律三:記錄每一步。他開了一份文字檔,把每一次操作的參數、結果、錯誤訊息都寫下來。這不是強迫症,是因為記憶體操作有太多「差一格就全毀」的變數,你必須能回頭比對「上一次成功時,第六格道具是什麼」。

3-2 第一階段:診斷與隔離

第一步不是修,是確認壞在哪。他把 dump 出來的檔案用十六進位編輯器打開,對照初代存檔的公開結構文件,一段一段檢查。他要確認三件事:

一,存檔標記還在不在。如果不在了,遊戲根本不會讓你進選單,那就要先補標記。

二,校驗值落在哪個區段,對應到哪些資料。

三,壞掉的區塊是「連續一大段」還是「零散幾個位元」。

阿哲的狀況是:壞掉的區塊集中在隊伍資料與部分旗標之間,而且是連續的。這其實是好消息——連續的損壞比零散的損壞好處理,因為你只要整段覆蓋,不需要逐位元猜。

但壞消息是:那個區塊裡有幾筆資料他不能亂動,例如「已捕捉寶可夢的旗標」跟「道館徽章」。這些東西一改錯,遊戲還是能讀,但你會發現自己明明打過道館,卻不能用居合斬,或者圖鑑莫名多出一堆沒抓過的寶可夢。所以他先把這幾個關鍵欄位的原始值抄下來,作為「必須保留值」。

這個階段他花了整整兩天,其中一天半在查資料,半天在抄數字。真正動手只有十分鐘。修復九成靠理解,一成靠操作,這句話在存檔救援上完全成立。

3-3 第二階段:製造一個「安全的異常」

診斷完之後,他開始在模擬器上製造 MissingNo.。流程就是那個老玩家熟悉的版本:先到常磐市看老爺爺示範捕捉寶可夢,然後移動到紅蓮島,沿著東側海岸衝浪,在淺灘與深海交界處來回移動,直到遭遇那隻編號 000 的亂碼。

這一步的目的不是「抓牠」,而是「觸發錯位」。遭遇的瞬間,遊戲的記憶體會被寫入超出範圍的資料,而這個寫入的落點,會根據他當下的背包與隊伍狀態而偏移。他要做的,是先用一個已知狀態去測試錯位落在哪裡——例如背包第六格放一個數量已知的道具,遭遇後看它變成多少,就能反推偏移量。

這個過程很像在校準儀器。他前後測試了十幾次,每次都記錄「隊伍有幾隻」「第六格是什麼道具」「遭遇後變成幾」。當偏移量穩定下來之後,他才開始把「想覆蓋的資料」放進對應的位置。

這裡有個關鍵技巧:不要一次覆蓋一大段。他把壞掉的區塊切成四小段,一段一段來。每覆蓋一段,就存一次檔、重開一次遊戲、確認能不能進遊戲、隊伍是否正常。這樣即使某一段出錯,他也知道是哪一段出錯,回頭只改那一段就好。

3-4 第三階段:資料搬運、驗證與收尾

覆蓋的內容不是亂填。隊伍資料的基本結構是「數量、六個物種編號、六個等級、六個目前 HP……」這類固定欄位。他手上有一份「健康的存檔」可以對照——那是他很多年前留下的另一份備份,隊伍內容跟壞掉這份不同,但結構是一樣的。他只需要照著結構填值,把壞掉的欄位補成合法數值。

聽起來很簡單,但難點在於:有些欄位不能填「看起來合理」的值,只能填「這份存檔原本可能有」的值。例如「遇到過哪些訓練家」的旗標,填錯會導致遊戲在某些路線卡住;「目前所在位置」填錯,會讓你一讀取就掉進地圖外。所以他不只補結構,還去對照壞檔裡其他還完好的區塊,推回那些欄位「最可能是什麼」。

全部覆蓋完成後,最後一步最關鍵:重算校驗值。校驗值的算法在初代是公開的,就是一個簡單的加總與補數運算。他把整份資料重新算一次,填回校驗欄位,存成新檔。理論上,只要結構正確、校驗正確,遊戲就會把它當成一份正常存檔。

他在模擬器上重開遊戲。標題畫面一樣,選單一樣,按下「繼續遊戲」——這一次,畫面沒有黑掉。遊戲直接進入了最後一次存檔的地點:紅蓮島的寶可夢中心門口。隊伍六隻都在,等級、招式、暱稱全部正確,圖鑑數量正確,道具欄也正常。

那天晚上他把同樣的流程在實機上跑了一次,成功。整個救援行動前後花了三個星期,其中真正「動手」的時間不到兩個小時。

四、原理拆解:為什麼「錯誤」能修「錯誤」

4-1 初代存檔的資料長相

要理解為什麼漏洞能救壞檔,得先知道存檔長什麼樣。初代的存檔不是資料庫,比較像一張固定格式的表格。哪個位址放玩家名字、哪個位址放地圖編號、哪個位址放六隻寶可夢的物種編號,全部是硬寫死的。遊戲讀檔時,就是照著這張表一格一格讀。

這種設計的好處是簡單、快、省記憶體。壞處是完全沒有容錯。只要有一個欄位被寫壞,遊戲不會「跳過那格繼續讀」,它會直接算校驗值、發現不對、然後全部放棄。這也是為什麼很多玩家覺得初代存檔「很脆弱」——不是它特別脆弱,是它沒有備援。

而校驗值本身也不是什麼高深技術,它就是一段資料的加總。這意味著:只要你能重算校驗值,你就能讓遊戲接受任何結構正確的資料。這是整件事的技術核心。

4-2 溢位、錯位與「幽靈緩衝區」

那 MissingNo. 在這裡扮演什麼角色?它扮演的是「寫入工具」。正常的遊戲流程裡,玩家無法直接指定「把這個數字寫進那個位址」。但漏洞可以。當遊戲遭遇錯誤編號時,它會拿記憶體裡某段殘留資料當作寶可夢資料來用,而那段資料的來源位址,會隨著玩家的隊伍與背包狀態而變動。

換句話說,遊戲在這個瞬間變成了一支「可以移動的筆」。筆尖落在哪裡,取決於你怎麼安排隊伍與道具。你要做的,就是把筆尖移到壞掉的區塊,然後讓它「寫下」你想要的值。

而最妙的是,這支筆寫完之後,遊戲不會檢查它寫了什麼。它只會在下次存檔時,把整份資料連同校驗值一起寫回去。所以只要你寫得對、校驗算得對,遊戲就會把它當成正常資料。

這就是為什麼阿哲說,救他存檔的不是一隻寶可夢,是一個「可以被控制的錯誤」。MissingNo. 本身沒有任何修復能力,它甚至不是真實存在的個體。它只是一個入口,一個讓玩家能碰到記憶體結構的裂縫。

五、風險清單與停手時機:不是每個存檔都該救

5-1 五個高風險操作,勸你先想三秒

講完故事與原理,還是要回到現實面。以下五件事是這類救援最常見的翻車點:

一,沒有備份就直接改。這是最常見也最致命的錯誤。任何記憶體操作都有不可逆的風險,沒有備份等於沒有退路。

二,在實機上反覆寫入。老卡帶的 SRAM 與寫入電路本來就老化,反覆寫入容易造成更多位元錯誤。

三,用來源不明的金手指碼或改檔工具。很多網路上的金手指碼是針對特定版本、特定存檔狀態寫的,套用在你的檔案上可能就是直接破壞結構。

四,一次覆蓋太大段資料。分段處理、分段驗證,永遠比一次梭哈安全。

五,忽略「這份存檔可能已經沒有救援價值」的事實。如果壞掉的是地圖旗標、事件觸發記錄這類「你根本不知道原本值是什麼」的資料,那就算結構補回來,遊戲也會卡在奇怪的地方。這種時候,停手是比較好的選擇。

5-2 什麼情況下有救、什麼情況該放手

簡單的判斷原則是:如果壞掉的是「結構性資料」,有機會救;如果壞掉的是「唯一性資料」,很難救。

結構性資料指的是:隊伍欄位、道具欄位、地圖編號、遊戲時間這類「有固定格式、可以推算合理值」的資料。這些東西就算壞了,你也能用規則補回來。

唯一性資料指的是:你遇過哪些訓練家、你走過哪些路線、你哪一天抓了哪隻寶可夢。這些東西沒有規則可循,壞了就是沒了。你能補出「看起來合理」的值,但那已經不是你原本的冒險記錄了。

阿哲的存檔之所以值得救,是因為壞掉的區塊裡大部分是隊伍與道具,屬於結構性資料;而事件旗標那一段,剛好是完好的。這是運氣,也是他花兩天診斷換來的判斷依據。

六、結語:那隻寶可夢到底存不存在?

故事講到這裡,你可能會問:所以 MissingNo. 到底算不算一隻寶可夢?

從官方角度,不算。它沒有編號、沒有圖鑑、沒有正式名稱,它就是一段錯誤。但從玩家的角度,這個問題其實不太重要。重要的是,在那個記憶體結構簡單、程式碼充滿裂縫的年代,玩家有機會親手碰到遊戲的「內部」,並且用那個內部,救回一些本來會被判定為「已死」的東西。

阿哲後來把那片卡帶收進防潮箱,沒有再拿出來玩。他說,存檔救回來之後,他反而不敢繼續玩,因為他怕又一次存檔會把東西弄壞。他偶爾會打開模擬器,看著那個站在紅蓮島寶可夢中心門口的角色,隊伍六隻都在,然後關掉。

「那隻不存在的寶可夢,救了我的存檔。」他說這句話的時候,語氣不像在講遊戲,比較像在講一個幫過他一次忙、但再也找不到的朋友。

如果你手上也有一份壞掉的舊存檔,這篇文章能給你的,不是一套保證成功的操作手冊,而是一個觀念:「紀錄已損壞」不是判決,是提示。它告訴你資料對不上,但沒告訴你資料沒了。在動手之前,先備份、先觀察、先理解結構,然後再決定要不要救。

有些存檔值得救,有些不值得。但至少,你現在知道那隻根本不存在的寶可夢,曾經在一個玩家的硬碟裡,做過一件很真實的事。

七、常見問題 QA

Q1:我沒有改機或 dump 工具,還能救嗎?

難度很高。這類救援的前提是「你能看到原始資料」,沒有辦法看到 SRAM 內容,就只能盲修。建議先找有經驗的玩家協助備份,或改用模擬器測試流程。

Q2:模擬器上成功了,實機會成功嗎?

不一定。模擬器與實機的記憶體行為、SRAM 寫入時序都不同。模擬器成功只是證明「結構與校驗值正確」,實機還要考慮卡帶老化與接觸問題。

Q3:MissingNo. 會不會直接把存檔弄壞?

會。它在原版遊戲裡本來就會造成名人堂資料異常與存檔圖示錯亂,如果在操作過程中偏移量沒抓好,確實可能讓壞檔變得更壞。所以務必在備份上操作。

Q4:這種做法適用於後來的世代嗎?

原理相似,但實作完全不同。第二世代以後的存檔結構更複雜,還有加密與多區塊校驗,不能直接套用初代的流程。第三代以後的「錯誤寶可夢」漏洞(例如某些改版或特定條件下的亂碼遭遇)也大多已被修正。

Q5:如果我只是想回味,有沒有比較安全的方式?

有。用模擬器搭配官方 Virtual Console 版本或合法備份,是最安全的回味方式。真的想玩實機,請先確認電池電壓正常,並定期備份,不要等到出現「紀錄已損壞」才想起這件事。

本文為懷舊遊戲技術與文化現象的整理與紀錄,所有記憶體操作均具有風險。請務必在完整備份的前提下進行任何實驗,並尊重遊戲軟體的著作權規範。

```

🏠 返回首頁