[討論] TAS的任意代碼執行(ACE)(上)

作者: Append (<( ̄︶ ̄)>)   2020-09-02 13:12:05
╭────────────╮
│ 前言 ── 什麼是 ACE? │
╰────────────╯
TAS 的全名是 "Tool-Assisted Speedrun/Superplay",
也就是「用輔助工具製作的通關/遊玩影片」,
他們可以透過不斷的存檔讀檔、監控記憶體、放慢速度錄製動作...等等輔助工具,
達成非人力可及的操作技巧,
進而完成「最快速度通關」或是「某些指定目標」。
大概在 2008 年左右,
網路上出現了不少「不務正業」的TAS,
他們看起來不太打算破關,
像是在 Pokemon 黑白版裡面努力的阻礙交通,
https://youtu.be/crb-qQ58EGo
然而這些「不務正業」大致上都還是在遊戲設計的範圍之內。
過了幾年之後這現象越發嚴重,
大約在 2013 年左右,
我發現 TAS 開始不務正業,
開始做一些「跟目前這個遊戲本身沒什麼關係」的事;
同時,這些TAS的標題上,大多都會寫上
"Arbitrary Code Execution" (ACE, 任意代碼執行)。
我大概能想像這個詞彙好像有些抽象,
不太容易馬上看懂這想幹嘛,
所以讓我們來看一個例子──也就是「ACE」這個技術真的紅起來的瞬間。
2014年的一月,
在全世界的遊戲快速通關社群一年一度的盛會 AGDQ2014 之中,
由 DwangoAC 帶領的團隊設計了一台機器人 "TASbot",
讓他們能夠在實機上現場表演TAS。
他們在當時玩了幾個遊戲,
其中最讓人印象深刻,
甚至我覺得震驚世界的,
是超任的 Super Mario World 瑪利歐世界。
https://youtu.be/Uep1H_NvZS0?t=31m48s
遊戲開始之後,可以看到瑪利歐騎上耀西,
沿路像雜耍一樣的玩弄一些路上的物件,
然而大約在影片的 33:28 處,
事情變得不太一樣,畫面開始出現一些不太對勁的東西 ...
幾秒鐘後,畫面上出現了兩個可以操作的小遊戲,
就在一台實機超任的瑪利歐世界裡面。
非常明顯,這兩個小遊戲絕對不是任天堂當初設計的部分。
沒錯,這就是他們自己寫的。
他們在實機超任的瑪利歐世界中,
利用一些遊戲的Bug,
在超任的記憶體裡面寫了這兩個小遊戲的程式碼,
然後執行他。
於是這時候可以回到我們這次的主題,「什麼是ACE?」
看過上面的例子,應該大致能夠想像,
他們在遊戲中「執行了一段由他們自己決定的程式碼」,
這就是所謂的「任意代碼執行」。
題外話,在節目裡面他們說,
他們原本想要寫一個紅白機瑪利歐一代,
然後再來跑他的 TAS,
但是實在是趕不上節目,
光是這兩個小遊戲就是表演前一天晚上才作好的。
於是,一年後,有了充裕的開發時間,
他們就在 AGDQ2015 現場端出來紅白機瑪利歐了。
https://youtu.be/HvCoNSq3GEM?t=5m48s
GDQ 後來幾年也都會有 TAS Block,
TASbot 團隊也經常端出稀奇古怪的東西,
非常精彩,極度強烈推薦喜歡TAS的人們都可以看看。
作者: bben900911 (Ben)   2020-09-02 13:19:00
推。
作者: hotbread (BRead)   2020-09-02 13:20:00
說這麼多不就外掛仔(誤)
作者: DarkyIsCat (黑肉貓娘讚)   2020-09-02 13:20:00
有趣
作者: eightyseven (他的手可以穿過我的巴巴)   2020-09-02 13:21:00
原來是玩弄記憶體的遊戲
作者: FeiYue (緋月)   2020-09-02 13:28:00
推鴉片
作者: gipo776 (幾不)   2020-09-02 13:29:00
作者: Lex4193 (oswer)   2020-09-02 13:31:00
很多人連金手指和外掛可以逆向操作拿來增加遊戲難度都不知道了
作者: RYOTSUKI   2020-09-02 13:33:00
推鴉片
作者: catinclay (David)   2020-09-02 13:37:00
作者: DaYehNO1 (唯有大葉,才能救葉)   2020-09-02 13:43:00
好有趣,之前我看過比較簡單的TAS是玩弄任天堂大腦鍛鍊遊戲
作者: AllanCat (AllanCat)   2020-09-02 13:49:00
推鴉片
作者: Segal (Dino)   2020-09-02 14:00:00
那個用薩爾達跑N64真的是巫術,手把匯流排的頻寬不夠傳送每幀的畫面吧,雖然看得出來有降低解析度。要怎麼送過去還是很不可思議,畢竟超任的硬體也不太可能在上面跑硬解
作者: Append (<( ̄︶ ̄)>)   2020-09-02 14:04:00
我覺得頻寬問題這點可以搭配下一篇的直方圖統計來看那一個黃版TAS有放了幾秒的海綿寶寶,不只降低解析度,它同時也仔細的調整了色盤,才能用每frame3251次輸出達成影片的播放。就這點來說,TASbot要作的其實會很接近,就是先準備好降好頻寬降好規格的無壓縮影片,然後用八隻手
作者: david7112123 (Ukuhama)   2020-09-02 14:07:00
有夠酷
作者: Append (<( ̄︶ ̄)>)   2020-09-02 14:08:00
把每個frame送超多的訊號過去。GBC只有8個按鈕,SFC可是有八隻手把;而且事實上它音效還用了另外兩台NES來處理,就是TASbot前兩個節目的那兩台
作者: Segal (Dino)   2020-09-02 14:09:00
嗯嗯剛看完下篇,整個把硬體尬到極限啊天啊。誰會在GB實作媒體撥放啦@@
作者: b0920075 (Void)   2020-09-02 14:24:00
看到標題還以為走錯板XD
作者: Cubelia (天空の夜明け)   2020-09-02 14:27:00
真的有喔,Cannon Fodder(GBC)遊戲開頭直接塞~15秒的FMV
作者: smart0eddie (smart0eddie)   2020-09-02 14:33:00
姆咪
作者: Minesweeper (lleh)   2020-09-02 14:44:00
好文推
作者: tw15 (巴拉巴拉)   2020-09-02 14:49:00
作者: Neil000 (\ぱんぱかぱーん♪/)   2020-09-02 14:52:00
作者: alanqq0624 (fallere725)   2020-09-02 14:57:00
作者: notinservice (notinservice)   2020-09-02 15:26:00
作者: tearcross (淚滴)   2020-09-02 15:37:00
作者: reigon1126 (登入送永久廢文)   2020-09-02 15:56:00
專業推
作者: y1896547 (巴斯)   2020-09-02 16:03:00
很屌
作者: knight77 (オニオンナイト)   2020-09-02 16:07:00
作者: aegius1r (SC)   2020-09-02 16:15:00
專業推
作者: LinkMiguel (LinkMiguel)   2020-09-02 17:22:00
啊不就垃圾區塊被當pointer
作者: Append (<( ̄︶ ̄)>)   2020-09-02 17:49:00
我剛才查了Cannon Fodder的FMV,真厲害,可惜聲音不太行
作者: qaz855175b (qaz)   2020-09-02 17:56:00
作者: joy3252355 (九月 ~*)   2020-09-02 19:00:00

Links booklink

Contact Us: admin [ a t ] ucptt.com