看板 PokeMon 關於我們 聯絡資訊
# 開始之前先說一下。這東西我並沒有完全看懂── # 特別是觸發ACE的部分,還是有個很關鍵的地方猜不出來怎麼辦到。 # 如果下面寫的有不對的地方請不吝指正, # 有我沒有寫清楚的地方歡迎提問, # 而有我沒有想到的部分也歡迎提供想法。 ┌──────┐ 前情提要 └──────┘ Question: 推卡車抓夢幻是真的嗎? 我相信許多PM玩家在研究精神的驅使下, 大概有嘗試過走到卡車旁邊使用勁力── 毫無反應,只是一台卡車。 所以大部分這麼做的玩家會得到一個結論: Short Answer: 推卡車是不會有夢幻的。那是謠言。 END. 但是如同上文所述, 「真有玩家在GDQ現場推卡車推出夢幻了,還有影片為證。」 這是真的嗎?這中間有造假的可能性嗎?實際上這有其他辦法能夠辦到嗎? ┌──────┐ 推卡車的影片 └──────┘ 原文中的影片是 Awesome Games Done Quick 2016 (2016/01/09) 註:AGDQ是Speedrun(快速通關)社群一年兩度(另一次會叫SGDQ)的重大盛會, 大會邀請各遊戲社群中知名的快速通關玩家輪流不間斷的進行表演, 活動募款直接捐贈給預防癌症基金會(Prevent Cancer Foundation), AGDQ2018的募款總金額達到230萬美元。 如果對其他遊戲的快速通關也有興趣,強烈推薦關注看看。 Pokemon Yellow Speedrun 之後捐款達標的的加碼: Pokemon Glitch Showcase Glitch就是我們一般稱呼的遊戲漏洞。 Showcase就是一些花式表演而不追求破關。 表演者 Shenanagans 準備了一些有趣的遊戲漏洞表演, https://youtu.be/mCoQm8bIyyw?t=24m (直接從最後一個Glitch開始)
利用存檔轉向之後讀檔衝浪穿過聖特安努號的剪票員, 然後就能走到傳說中的卡車旁邊。然後... "我想我在這邊可以澄清一個謠言, 我知道很多人說在對著卡車使用勁力可以獲得夢幻, 但是這並不是真的,(手上一邊按勁力), 我可以現場示範一下這並不是...真的...What??" (跑出一隻夢幻,對話框"Mew!" 全場歡聲雷動) "我想那不應該是真的阿。既然這是個快速通關,所以我們必須殺掉他。" (使用勁力打倒夢幻,水箭龜獲得45經驗值,等級40->100) 哇靠這在節目上沒有解釋是怎麼做到的阿XD 全世界六十億人都驚呆了,現場、聊天室還有當時的Reddit都快暴動了。 後來Shenanagans在Twitter上解釋, https://twitter.com/ShenanaganSmash/status/685565944454852608 For everybody wondering that was not a rom hack, it was arbitrary code execution. 對所有有興趣的人,這並不是一個改造ROM, 這是 Arbitrary Code Execution (ACE,任意代碼注入) 其實gh0987在推文裡面已經很準確地給出了回答,我過濾一下: (好我知道gh0987你說的更詳細,不過編排需要我先弄這些就好。) gh0987: 這是利用遊戲內漏洞直接修改內容 玩家本人推特 https://goo.gl/qtQuCV 有完整技術解說 這裡提到的「利用遊戲內漏洞直接修改內容」就是指ACE。 如果已經熟悉ACE技術的讀者, 可以直接點上方版友gh0987推文中的完整技術解說...好吧,通常還是看不懂XD 如果對ACE沒什麼印象,接下來我試著對這個部份多做一些解說。 ┌──────┐ 什麼是ACE └──────┘ Arbitrary Code Execution 任意代碼注入 以下會有一些Pokemon以外的遊戲內容。 我第一次注意到這詞彙是在TAS(Tool-Assisted Speedrun,工具輔助快速通關)上。 註:TAS指的是那些"用輔助工具製作的理論最快通關影片", 他們可以透過不斷的存檔讀檔和監控記憶體等功能, 來設計出非人力可及的快速通關過程。 雖然Speedrun的目標是快速通關,應該是要破關的; 但是大約在2013年左右,我發現TAS開始做一些非常不務正業的事── 他們開始做一些跟遊戲本身沒什麼關係的事, 而這些TAS上都被標註了 "executes arbitary codes" 例如: https://youtu.be/p5T81yHkHtI (2012/12/05) [GB] Pokemon黃版
這傢伙在11分左右花了一分鐘的時間用按鍵進行大量輸入 結果原來是在放彩虹小馬的主題曲 https://youtu.be/tNPisyK43Lc (2013/03/20) [GB] Pokemon黃版
這傢伙大概在一分半左右開始用按鍵大量輸入了五秒 (好短!!) 畫面上開始出現一堆pi (圓周率那個符號) 後面還直接開始印數字 https://youtu.be/Uep1H_NvZS0?t=31m48s (2014/01/06) [SFC] 馬力歐世界
AGDQ2014現場,TASbot (是實機超任,他們搞了一台機器專門輸出手把訊號) 大約在影片的33:28處他用八隻手把訊號大量輸入.... 然後自己寫了一個遊戲,可以操作,就在一台實機超任的馬力歐世界裡面。 這團隊經過一年之後變本加厲, https://youtu.be/HvCoNSq3GEM?t=540 (2015/01/04) [SFC] 馬利歐世界
AGDQ2015現場,TASbot (仍然是實機超任,仍然是八隻手把訊號) 大約在影片的10:10處開始大量輸入, 然後他在馬利歐世界裡面寫了紅白機馬利歐一代。@#)(*)(% 同一個場合的十分鐘後,他們改玩另一款遊戲, https://youtu.be/P28kp66XMw4?t=436 (2015/01/04) [GB] Pokemon紅版
同樣是AGDQ2015現場,同一台TASbot,11:37處開始大量輸入... 然後他們讓Pokemon紅版連上了GDQ的Twitch直播聊天室。\(°▽ °*)/ "So, Twitch Chat, Say Hi to the couch!" "他們有 Twitch Plays Pokemon,我們這是 Pokemon Plays Twitch" 2016年他們在SMW裡面做了一個Mario Maker然後現場做了一個關卡 https://youtu.be/pj7RE2DcRgc?t=1h3m32s
2017年他們透過超任版薩爾達傳說玩了馬利歐64傳送門, 然後打了一通skype視訊通話 https://youtu.be/7CgXvIuZR40?t=27m
........ (/‵口′)/~ ╧╧ 正常玩遊戲好嗎! ------------------------------------- 回到這個技術本身。如同上面這些例子,非常明顯的, 他們想方設法的讓這些遊戲去執行了一些"絕對沒有設計在卡帶裡面的程式碼"。 大概沒有人會擔心自己手上的紅版卡帶要怎麼樣才能連上Twitch聊天室吧? 這些絕不可能設計在遊戲裡面,但是就是真的能在現場,在實機上跑出來。 這就是Arbitary Code Execution想要達到的效果。 "任意代碼注入",準備好一段程式碼,然後執行他。 既然如此,首先要先讓遊戲拿到這一段程式碼。 上面的例子之中,最常見的輸入程式碼的方式其實是直接使用手把; 很多使用超任的例子都是直接用八隻手把訊號輸入。 但是在這之前就需要一些其他的方法來告訴遊戲,你要準備接收手把輸入; 這點的實行方式,各個遊戲就很不一樣。 以超級馬利歐世界為例,他們很多都有不斷地讓耀西複製道具; 以Pokemon四色版來說倒是有些更方便的作法,例如── 安排道具清單。 (註:四色版的ACE其實有更多方法, 後面會拿"8F"呼叫道具清單當作容易理解的例子。 GDQ使用什麼方法觸發其實我並沒有完全看懂。 不過可以注意一下,最後Part並沒有打開道具清單。) # 篇幅已經有點長了,下集待續可是下一集比較難。 # TASbot的部分強烈推薦,就算對ACE沒興趣這還是很好看。 ┌───────┐ 給按End的人 └───────┘ (1) 學他的方法走到卡車旁邊,推卡車還是不會有夢幻的。夢幻要事先ACE。 (2) 這應該是ACE,應該不是改造ROM。有沒有修改存檔不太好說。 (3) ACE可以做到很多很多事情,從2012年開始越來越匪夷所思。 (4) ACE是遊戲內的漏洞,要事先準備好程式碼,騙主程式去執行他。 (5) 下一集會介紹比較容易的ACE方法。 (6) 上面的TASbot真的很好看,真的,看嘛看嘛,看嘛看嘛。 以上。 鴉片 (Append) 2018.06.06 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.162.64.192 ※ 文章網址: https://www.ptt.cc/bbs/PokeMon/M.1528221728.A.F21.html
naya7415963: 原來遊戲還能這樣玩的喔?! 06/06 07:40
Aijiang: 神人出現啦!!! 國外怎麼那麼多不好好玩遊戲的傢伙ww 06/06 08:00
horseorange: 彩虹小馬XD 06/06 08:22
a23962787: 那5.51也是ACEㄇ 06/06 09:48
ADYex: 這技術力wwww 06/06 10:00
Kbart: 長知識了,原來はやぶさバッヂ這麼強大 XD 06/06 15:01
boss0322: 真是精彩的文章 不考慮轉去Cchat嗎 06/06 18:19
Append: 欸。C洽吃這個嗎? 06/06 18:27
a23962787: 西洽有關的都可以吧 06/06 18:28
Append: 欸這有點hardcore,我以為如果不是滿重度的PM玩家可能不吃 06/06 18:33
a23962787: 就算重度的PM玩家也都是正常玩遊戲的R 06/06 18:34
SPDY: 這不只是hardcore了啦 這是投入很多心力的調教(?)遊戲程式 06/06 18:53
SPDY: 了 06/06 18:53
tcuplayer: 好強 推整理 06/06 19:27
peter821201: 好扯 推鴉片大大 06/06 20:15
dodomilk: 推推 轉去西洽會瞬間被廢文淹沒吧 06/07 07:04
zxc654033: 優質文 推鴉片 06/07 11:14
tst5381: 這種hack方式滿有名的啊,白話說就是利用記憶體溢出來執 06/08 11:11
tst5381: 行自己加入的code,現在回想起來小時候什麼小拉達變夢幻 06/08 11:11
tst5381: 原理也差不多 06/08 11:11
icyplum: 推 06/12 09:36
2024.01.05 赫然發現連結中的影片需要更新連結。已經更新。 ※ 編輯: Append (220.132.154.249 臺灣), 01/05/2024 21:59:37