仕事の経験を生かしてFF6を探求し続けるエディさん

電子マネーの人」ことエディさんが、日経 x TECHのインタビューを顔出しで受けていて驚いた。動画を投稿し始めた2011年頃は大学生であり、2016年頃に就職していたのはなんとなく把握していたが、どのような職種までかは分からなかった。SHIFTでテストエンジニアをやっているそうで、納得の就職先である。インタビューでも語っているように就職してからより一層バグの見つけ方や、その生かし方に磨きがかかっている。本職と趣味が一致し、それが互いに相乗効果を生み合っている例であろう。

エディさんのように仕事と趣味をそれぞれ回していって、実生活もオタ活ライフも互いに向上させようってコンセプトの同人誌をコミケに出します!「8/11(日)3日目 け-04a」でよろしく!
lastline.hatenablog.com

「飛空艇バグ」から始まった

エディさんの記事を書こうと思ったのだけど「ねとらぼ」がガッツリ記事にしたり、取材してたりするのであんまり書くことがない。が、自分の思いを語って行きたい。

エディさんがFF6の極限低歩数クリアを始めたきっかけは、PS版の「やりこみじいさん」がクリア歩数を表示していたからと語る。インタビューでも「羽目」と表現しているように、やり込み気質なのであろう。
当初は「飛空艇バグ」を主軸とした低歩数を目指していた。インタビューでは、調査をして頭の中でプレイはするが試走はしないと述べている。初期の動画からもそれはうかがい知れ、その結果「こそドロ一匹狼」に辛酸を嘗めさせられ再走している。これが後に回避可能となった点は、「3つのボタンでカービィボウル(総合)」 なるしす さんの公開マイリスト - ニコニコ動画 が思い起こされる。

「飛空艇バグ」とは、魔大陸へ乗り込んで一旦脱出し、飛空艇で飛行した状態で魔大陸へ戻り全滅すると、最後にセーブした場所から、なぜか飛空艇に乗った状態で再開する不可解なバグである。FF6は全滅すると、レベルや経験値のみを引き継いで最後にセーブした地点から再開する仕様であり、恐らくそれに関わるバグなのであろう。FF6は様々な機種に移植され、それぞれの機種でしか再現しないバグもあるが「飛空艇バグ」はほぼ全ての機種で再現可能である。
「飛空艇バグ」を使い飛空艇で移動することで様々なイベントをすっ飛ばして歩数を減らすのが当初のチャートであった。動画ではしばしサクッと「飛空艇バグを起こします」と説明されるが、そのためには魔大陸まで進める必要があるため、労力は半端ない。
この「飛空艇バグ」が発見されたのは2011年頃であり、エディさんがFF6と始めた頃でもある。「飛空艇バグ」の発見がもっと遅かったら、現在の低歩数クリアはなかったかもしれない。

任意コード実行

実機で可能な低歩数は何歩であろうか。その答えは「0歩」である。2015年頃に発見された「52回全滅バグ」により、それが可能となった。このバグはかなり凶悪で任意コード実行が可能である。FF6では全滅時にメモリ領域に何らかのイベントコードがスッタクしていき、52回重ねるとプレイヤーが操作できるパラメータまで侵食してくる。つまり、フラグなどを操作できるようになる。
メモリ溢れによるバグはFF3や4の階層バグなど多くのゲームで報告されていた。任意コード実行は2015年前後に流行ったバグで、例えばスーパーマリオワールドでも可能だ。当初はTASで再現されたが、最近は人力でも可能となっている。
FF6ではウィンドウカラーやアイテムによって任意コード実行が可能となっている。FF6には実に多くのウインドウが用意されており、それぞれで色を設定できるためプレイヤーが自由にいじれる数値が非常に多い。これも「52回全滅バグ」による任意コード実行を容易にしている一因でもある。

プレイヤーが自由に数値をいじってデータを改ざんする方法として、最近ではRPGツクール3内のお絵かきソフトであるアニメティカにるセーブデータ改ざんが流行っている。

シドタイマーの発見

「飛空艇バグ」も「52回全滅バグ」もエディさんが発見したバグではない。2018年にエディさんは「シドタイマー」を用いたイベントスキップを発見する。
FF6には様々なタイマーが存在する。マッシュ救出イベントではプレイヤーはタイマーの存在を自覚できる。FF6では、これ以外にも多くのイベントがタイマーで制御されている。タイマーに関するバグはFF5の水没したウォルスの塔のタイマー持ち出しなどが見出されていたが、ゲーム攻略に組み込めるようなバグではなかった。

シドタイマーは、崩壊後のシドが死ぬのをカウントするタイマーである。プレイヤーはタイマーの存在を自覚できないが、一度セットされると他のタイマーが作動するまではループする仕様である。FF6ではタイマーが作動しているセーブデータを閲覧して、別データをロードすると、そのデータにのタイマーを引き継げる。これはニューゲームでも可能だ。すると、どのようなことが起こるのか。
シドタイマーはシドの死を管理している。0になるとシドが死ぬイベントが発生する。RPGでは特定位置に立つことで発生するイベントがあるが、もしタイマーが0になった瞬間にそのイベントマスを踏むとどうなるか。この場合、シドタイマーの処理が優先されるためイベントマスのイベントは発生しない。つまり、タイマーを使うことでイベントをスキップできる。これにより、さらなる低歩数が可能となる。最近ではより使い勝手のよい「ドアタイマー」が発見されている。

エディさんはタイマー持ち出し自体は発見していたが、それがゲームに決定的な影響を与えるとは思っていなかったようだ。ある時にタイマーのカウントダウンとイベントマスを組み合わせることを思いついたらしい。一度捨てたものが利用できた事例で、これがインタビューにもある「過去の結論を信用しない」ことである。テストエンジニアとして働いる経験が、シドタイマーによるバグの発見につながったのであろう。

低歩数はさらなる未知な領域へ!

エディさんは、直近で「ドアタイマー」持ち出しでのRTA動画を投稿している。RTAとしては、NEW GAME+というカテゴリ。+で無い場合は、まっさらな状態からゲームを始めること指す。ニューゲームから始める場合であっても、そのために色々仕込みなどを行う場合は、その時間を含めるべきだという考えに基づく。つまりNEW GAME+出ない場合はドアタイマーを仕込むまでの時間を含めて測定する。
ゲームによっては強くてニューゲームなどもあるため、NEW GAME+というカテゴリでは仕込みの時間は含めないレギュレーションになっている。

エディさんの尽力もあり「テント回避バグ」をはじめ、さらに多くのバグが発見されている。その結果、選択肢が増えすぎて、どのようなルートで低歩数を実現できるかが見積もれない領域に突入している。これからも、様々な発見があると思われるので、今後もエディさんによるFF6の極限低歩数クリアを要チェックだ!