作者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://webptt.com/cn.aspx?n=bbs/PokeMon/M.1528221728.A.F21.html
1F:推 naya7415963: 原来游戏还能这样玩的喔?! 06/06 07:40
2F:推 Aijiang: 神人出现啦!!! 国外怎麽那麽多不好好玩游戏的家伙ww 06/06 08:00
3F:推 horseorange: 彩虹小马XD 06/06 08:22
4F:推 a23962787: 那5.51也是ACEㄇ 06/06 09:48
5F:推 ADYex: 这技术力wwww 06/06 10:00
6F:推 Kbart: 长知识了,原来はやぶさバッヂ这麽强大 XD 06/06 15:01
7F:推 boss0322: 真是精彩的文章 不考虑转去Cchat吗 06/06 18:19
8F:→ Append: 欸。C洽吃这个吗? 06/06 18:27
9F:推 a23962787: 西洽有关的都可以吧 06/06 18:28
10F:→ Append: 欸这有点hardcore,我以为如果不是满重度的PM玩家可能不吃 06/06 18:33
11F:推 a23962787: 就算重度的PM玩家也都是正常玩游戏的R 06/06 18:34
12F:→ SPDY: 这不只是hardcore了啦 这是投入很多心力的调教(?)游戏程式 06/06 18:53
13F:→ SPDY: 了 06/06 18:53
14F:推 tcuplayer: 好强 推整理 06/06 19:27
15F:→ peter821201: 好扯 推鸦片大大 06/06 20:15
16F:推 dodomilk: 推推 转去西洽会瞬间被废文淹没吧 06/07 07:04
17F:推 zxc654033: 优质文 推鸦片 06/07 11:14
18F:推 tst5381: 这种hack方式满有名的啊,白话说就是利用记忆体溢出来执 06/08 11:11
19F:→ tst5381: 行自己加入的code,现在回想起来小时候什麽小拉达变梦幻 06/08 11:11
20F:→ tst5381: 原理也差不多 06/08 11:11
21F:推 icyplum: 推 06/12 09:36
2024.01.05 赫然发现连结中的影片需要更新连结。已经更新。
※ 编辑: Append (220.132.154.249 台湾), 01/05/2024 21:59:37