任意門(漏洞)

  Bag 防塵護目鏡 SV Sprite.png非正式術語  
出自神奇宝贝百科

任意門漏洞(日文︰どこかしらドアバグ,英文︰Dokokashira door glitch)是日文《紅/綠/藍》中出現的遊戲漏洞,最初由日本搜集遊戲漏洞的網站Pokemonbug發現。透過這個漏洞不用挑戰聯盟就能登入名人堂,也可以到其它地方。

這個漏洞雖然可以在國際版中的《紅/綠/藍》中觸發,但效果異於在日文版中的效果,且不能傳送至其它地方。

具體步驟

在得到常青市友好商店店員拜託主角交給大木博士包裹後,打開包包,把託付物品排到第二位。再把光標移動到託付物品上,先按下選擇鍵,再選擇取消,重複兩次後,光標會變成白色。在這之後,與野生寶可夢戰鬥時打開菜單,選擇第一隻寶可夢,它便會變成アネ゙デパミ゙。使用這隻錯誤寶可夢擊倒對手或者逃跑來結束戰鬥,這個漏洞就被成功觸發了。 逃跑之前一定要打開戰鬥菜單一次,否則進入真新鎮後會因位置原因,玩家會重新回到家門口,使得漏洞觸發失敗。

略過聯盟挑戰直接登入名人堂

在流程中的真新鎮
在流程中的殿堂

完成以上步驟之後,走83步,在最後一步時進入位於真新鎮青綠的家,這樣一來,玩家會被傳送到7號道路。向西步行至玉虹市,進入寶可夢中心後馬上出來,否則會死機。然後透過玉虹百貨公司的右門進入玉虹百貨公司,這樣玩家會直接進入阿渡的房間。此時不要與阿渡對話,向上走進入冠軍的房間後,也不要與青綠對話。繼續向上走,大木博士會進入冠軍的房間,也不用與他對話,直接手動登入名人堂即可通關。

如果前面進入的是玉虹大廈,進行同樣的操作後將直接被傳送到殿堂,雖然殿堂圖像會變得混亂,但仍舊能正常通關。


作用原理

位置已切換完畢
正常情況下的同行寶可夢終止資料

在遊戲中,「選擇」按鈕的其中一個作用便是切換包包中物品的順序,正常操作是在一個物品處按下「選擇」,然後在想與它交換位置的另一個物品處再次按下,然而,在早期版本中,由於程序員的疏忽,當在一個物品處按下「選擇」然後不做任何其他動作而直接關閉包包時,遊戲卻依然記錄了被選擇的那個物品的位置。

在遊戲早期,玩家只持有一隻寶可夢,而由於「選擇」按鈕的錯誤,當玩家拿到第二個物品並用「選擇」按鈕選擇它時,遊戲便記錄下了位置「2」,此時打開同行寶可夢列表點擊第一隻寶可夢,遊戲便錯誤的認為玩家要切換第二隻寶可夢與第一隻的位置,然而第二隻寶可夢根本不存在。

遊戲內存中,最後一隻寶可夢的種類資料後面有一段特殊資料,標記了同行寶可夢在何處終止,具體內存地址為$d123+持有寶可夢數量*2,比如玩家持有兩隻寶可夢,這個地址就是$d123+2*2=$d127,它的值為FF(255),以便遊戲能夠認為這段資料以前是同行寶可夢資訊,然而卻有一個例外,當玩家只有一隻寶可夢時,正常情況下第二隻寶可夢的種類資料所應該在的位置,便是這段標記終止的資料,即一個地址在不同情況下能起到兩個不同作用,這個問題在玩家擁有兩隻或兩隻以上寶可夢後將不復存在(儘管還是可以切換存在的和不存在的寶可夢,但不會觸發任意門,因為無論什麼情況下$d127、$d129、$d131、$d133、$d135的作用都只能是終止資料,而不會是種類,所以無論怎麼切換寶可夢的順序都不會使它們有任何變化)。如圖所示,玩家持有一隻妙蛙種子,它的內部編號為153,$d124即是它的種類相關資料,所以為153,而$d125即是同行寶可夢終止資料,為255。所以上述那個切換的動作,即是將終止資料$d125,切換到了前面表示第一隻寶可夢種類的$d124,這也就是為何切換完成後第一隻寶可夢會變為アネ゙デパミ゙的原因,因為這隻錯誤寶可夢的內部編號就是FF(255)。(關於內部編號,參見寶可夢列表(按第一世代內部編號)

由於沒有了正常的同行寶可夢終止資料,所以遊戲只能尋找下一個值為FF的地址來代替,然而正常情況下,下一個值為FF的地址離$d124非常遠,遊戲會認為從$d125開始直到下一個FF值之間的所有資料均為玩家持有的寶可夢資料,於是大量內存地址都受到了影響,受影響的地址正常情況下將有超過600個,遊戲將認為玩家擁有一個成員數量非常龐大的寶可夢同行寶可夢,並將這數百個內存地址都強行拖入到寶可夢資料的相關判定裡。寶可夢資料中也包括了寶可夢的狀態(即中毒、麻痺等等),而這些狀態都是用不同數值表示的。

每走4步內存裡發生的事,方框內即為$d335

發生這種錯誤後,地址$d335對應第199隻寶可夢的HP,而這隻寶可夢又恰巧被判定為中毒狀態,中毒在戰鬥外的效果就是每走4步HP減少1點,所以$d335這個值在觸發漏洞之後,每走4步,就會減少1,而$d335的作用正是每個地圖中某個地方的傳送點相關,在每個地圖中作用不同,在真新鎮中,它是青綠家進入以後所到的地方,默認為39,而每到一個新的地方,它的值都會被重置一次(重置該值不是漏洞,而是遊戲固有機制,因為不同地圖中的傳送點所能到的位置肯定是不一樣的)。另外,由於它被判定為中毒,所以在真新鎮中走39x4=156步後會出現提示xx倒下,繼續走將會出現更多類似的提示,因為並非只有這一隻中毒的寶可夢,上面圖中多個每走4步就減少1的值,均為某隻寶可夢被判定為中毒的結果,由此在內存中產生了相當多的垃圾資料,這便是地圖出現各種顯示錯誤的原因,因為這些地址對應了遊戲中各種機能,並非只是傳送點。

上述直接登入名人堂的方法中,走84步後$d335的值將為39-84/4=18,編號18的地點是7號道路,臨近玉虹市,走到玉虹市後之所以要進入寶可夢中心,是為了重置掉$d335,否則將使該值小於想要的數而無法達成目的,而進入寶可夢中心並走出重置該值為122然後直接走到玉虹百貨公司的右側入口時,這個值將為113,所以進入玉虹百貨公司就會直接移動到阿渡的房間,繼續往前走就會直接通關。而如果進入的是玉虹大廈,直接走到玉虹百貨公司的右側入口時$d335將正好為殿堂對應的118,所以將直接通關。

具體地點編號可以查閱地點編號(第一世代)

關於地圖上傳送點的進一步延伸,可以參考資料損壞錯誤

地圖常量

下面的表格是每個地圖中$d335所對應的傳送點以及移動到這些地圖時$d335的初始值。(進入某個地圖會重置該值,進入該地圖除下表以外的房子並出來也會重置該值)

$d335的值 地點 傳送點
39 真新鎮 勁敵的家
42 常青市 友好商店
52 深灰市 深灰科學博物館
63 華藍市 寶可夢中心附近的房子
90 枯葉市 寶可夢發燒友俱樂部
122 玉虹市 玉虹百貨公司的右側入口
142 紫苑鎮 寶可夢塔
153 淺紅市 有在討論正輝的人的房子
166 紅蓮鎮 紅蓮道館
177 金黃市 格鬥道場

非日語版中的類「任意門」

在非日語版中,雖然不可以在遊戲早期就觸發這個漏洞,但通過某些手段(如ZZAZZ漏洞)可以在遊戲內存中起到類似的效果,但是,這種方式觸發的類「任意門」並不具有任意傳送的效果。

任意門的根本原理是刪除掉同行寶可夢終止資料,由於觸發ZZAZZ漏洞後會導致內存中大量覆蓋153的值,所以這個漏洞在特定情況下也能將同行寶可夢終止資料的255替換成153,即同行寶可夢中有1、3、4、6隻寶可夢時,具體原因可以參考ZZAZZ漏洞的條目。(對應影響的內存地址分別為$d165、$d167、$d168、$d16a)

但是由於觸發之後,並沒有哪隻寶可夢的HP對應傳送點的地址,所以不能達到真正的任意門效果。

雖然不能任意傳送,但也會有某些效果每4步就會發生變化,最明顯的體現就是某些地圖內,每走4步,音樂就會發生改變。同時,也保留了每走一些步數就會顯示某隻寶可夢倒下的效果。包包裡的某些物品數量,也會每走4步就減少1個。地圖顯示錯誤也依舊會發生。

下面示範視頻中,演示了每走4步,寶可夢中心的音樂就改變一次的效果。

示範視頻

遊戲漏洞
第一世代0 ERRORMissingNo.ZZAZZ錯誤道具複製道具下溢錯誤地圖254對戰大木博士
故障市合併寶可夢錯誤記錄衝浪錯誤居合斬漏洞老人漏洞夢幻漏洞《皮卡丘》的圖像錯誤
任意門剩餘HP錯誤雙屬性克制資訊顯示錯誤脫離連接俱樂部選擇按鈕錯誤資料損壞錯誤
第二世代捕蟲大賽資料複製城都寶可夢錯誤錯誤維度代幣盒錯誤
時拉比的蛋寫生錯誤訓練家之屋錯誤重要物品合併
第三世代榴石果漏洞時鐘電路漏洞整個盒子的壞蛋對戰塔盒子複製
第四世代變身招式保留錯誤衝浪漏洞榴石果漏洞追打所造成的異常天氣
第五世代GTS變形錯誤自由落體重力漏洞
第六世代列表
第七世代列表
第八世代列表
第九世代列表
多個世代克隆漏洞任意代碼注入溢出隨機數異常更改時間系統
多回合攻擊類招式漏洞講究道具鎖定漏洞蓄力的招式覆蓋錯誤
跨世代服務Pokémon HOME漏洞
旁支系列寶可夢+信長的野望漏洞寶可夢大集結漏洞
相關列表錯誤招式錯誤屬性錯誤地點錯誤音樂錯誤道具錯誤訓練家錯誤寶可夢壞蛋
神奇寶貝百科遊戲工程.png 這個頁面屬於神奇寶貝百科遊戲工程,歡迎加入遊戲工程 Wikilogo.png