作者Append (鴉片)
看板PokeMon
標題[討論] 夢幻卡車@AGDQ2016 (上)
時間Wed Jun 6 02:02:01 2018
# 開始之前先說一下。這東西我並沒有完全看懂──
# 特別是觸發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