[讨论] 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