初代「ロックマン」の全ステージクリアTASが9年ぶり更新 新テクニック「ディレイFF任意オブジェクト生成」が猛威を振るう
製作者の1人、ピロ彦さんに更新のポイントをお話を聞きました。
エミュレータなどのツールを使い、“理論上最速”クリアを目指す「TAS(Tool Assisted SpeedRun)」において、初代「ロックマン」のクリア記録が9年ぶりに更新されました。クリアタイムは「9分46秒73」で、従来の最速記録「12分23秒34」から、実に3分近く短縮することに成功しています。まだ更新できたのか……。
大幅更新のポイントになったのは、アイスマンステージ、ガッツマンステージで使われている「ディレイFF任意オブジェクト生成(DelayObjectFFGlitch/DoubleObjectFFGlitch)」というテクニック。ものすごくざっくり説明すると、「特定のステージ中、ロックマンが通過すると目に見えない『0xFF』というオブジェクトが生成されるポイントがあり、このとき処理落ちなど複数のイレギュラーな条件が重なることで、通常出現しないマグネットビームを取得できたり、一瞬でステージをクリアしたりといった現象が引き起こされる」というもの。動画で見ると「何だかよく分からないうちに画面が止まり、いつのまにかステージをクリアしている」といった感じですが、とにかくこのテクニックによって、アイスマンステージ、ガッツマンステージの道中とボスを一気にショートカットすることに成功しています。
製作者はShinryuuさん、ピロ彦さん、Maruさん、FinalFighterさんの4人(前回記録はShinryuuさん、FinalFighterさん制作)。編集部では動画を投稿していたピロ彦さん(@pirohiko)に代表して、今回の記録更新について聞きました。
更新のポイントになった「DelayObjectFFGlitch」
―― ものすごく基本的な質問で恐縮なのですが、今回使われている「ディレイFF任意オブジェクト生成(DelayObjectFFGlitch)」というテクニックについて簡単に説明いただけますか。
ピロ彦 ファミコンのCPUは$0000〜$FFFFの16bitのアドレス空間しか扱えないため、大容量ROMを扱う際に「バンク切り替え」という手法を用いているのですが、ロックマン1ではバンク切り替えのミスによって想定外のデータを参照してしまうことで「DelayObjectGlitch」「DelayObjectFFGlitch」「DoubleObjectFFGlitch」などのバグが発生します。
通常、1フレーム(60分の1秒)ごとに「NMI」という割り込み処理が発生するのですが、画面中のオブジェクトを増やすなどして1フレーム中の処理量を重くすると、プログラムの途中で割り込みが発生し、処理が次のフレームに持ち越されます。このNMIが、新規オブジェクトを画面端に読み込むためにバンクを5から6に切り替えた直後に発生すると、NMIの終わりにバンクを5に戻してしまいオブジェクト情報を別の場所から取得してしまう「DelayObjectGlitch」が発生します(※)。
大抵の場所では有用なオブジェクトは発生しませんが、ステージと位置によっては「ディレイステージクリア(0x75,0xF5)」などの有用なバグオブジェクトを呼び出すことが可能です。
※編注:DelayObjectGlitch……ざっくり説明すると、処理落ち(Delay)時にさらに特定の条件が複数重なることで、本来ありえないバグオブジェクトを生成できるテクニック。バグオブジェクトの中には「その場でステージをクリアしたことになる」などの現象を引き起こすものもあり、これ自体は前回の記録でも使われていた
―― 前回のTAS動画で、ボンバーマンステージなどを一瞬でクリアしていたのがこれ(DelayObjectGlitch)ですよね。今回、アイスマンステージとガッツマンステージで使われていた「DelayObjectFFGlitch」や「DoubleObjectFFGlitch」はこれとは違うのでしょうか。
ピロ彦 「DelayObjectFFGlitch」はプロセスは似ていますが、「オブジェクト0xFF」の処理中にNMIが発生した際にバンク2からオブジェクト情報を読み込もうとする現象です。このオブジェクト(0xFF)はアイスマンステージやガッツマンステージなどの特定地点を通過した時に読み込まれ、実体は生成されない代わりに、16フレーム分のカウンターが起動して不可視なオブジェクトとして毎フレーム仕事をします。
このカウンター起動中にオブジェクト0xFFが再び読み込まれ処理が重なると、同様にバンク2から読み込みをしようとする「DoubleObjectFFGlitch」が発生することもあります。
ステージによってはこのバンク2からオブジェクト情報を読み込んだ時に5番目のオブジェクトが読み込まれる位置だと、2Pコントローラーの入力に関連するメモリアドレスをオブジェクトIDとして読み込んでしまうので「任意オブジェクト生成」が可能になります。これは2つのコントローラーによって、ある程度任意の座標に生成することも可能です(※)。
※編注:DelayObjectFFGlitch/DoubleObjectFFGlitch……今回のTASで新しく使われたテクニック。効果はDelayObjectGlitchと似ているが、「DelayObjectGlitch」が処理落ちをトリガーにして引き起こすものだったのに対し、こちらは特定のステージの特定の位置をロックマンが通過すると出現する「見えないオブジェクト(0xFF)」の処理をトリガーにしているのが大きな違い
―― DelayObjectFFGlitchとDoubleObjectFFGlitchは具体的にどんな違いがあるのでしょう。
ピロ彦 簡単に言うと、DelayObjectFFGlitchは処理落ちが必要ですが、DoubleObjectFFGlitchは処理落ちがなくても引き起こすことができます。特定の場所で左右にフリフリするだけで出るのがDoubleObjectFFGlitch、特定の場所+処理落ちによって引き起こされるのがDelayObjectFFGlitchですね。
アイスマンステージでは「DelayObjectFFGlitch」によって「マグネットビームアダプター(0x42)」を取得してから「ディレイステージクリア(0x75)」を生成し、ガッツマンステージでは「DoubleObjectFFGlitch」によって「ディレイステージクリア(0x75)」を取得することで大幅な短縮となりました。
―― どちらのステージもこれで50秒ほど短縮していますよね。他に大幅短縮につながった部分はありますか。
ピロ彦 副次的に、「エレキマンステージ」では最初からマグネットビームが使用可能になったことで約17秒の短縮に、またボスに弱点武器を使用可能になったことでさらに26秒短縮と、合計43秒以上の大幅短縮になりました。
また「ワイリーステージ2」では、以前は「DelayObjectGlitch」によって「オブジェクト0x5D」を生成し、その際に特定スロットの敵Y座標がオブジェクトIDにコピーされることを利用し「ディレイステージクリア(0x75)」を生成していました。これに対し、今回はダメージ音によって「0xFF」になるメモリアドレスから「DelayObjectGlitch」を使って「オブジェクト0xFF」を生成し、そこからさらに「DelayObjectFFGlitch」で「マグネットビームアダプター(0x42)」を取得し、さらに「ディレイステージクリア(0x75)」の生成をするという戦略により、マグネットビームのエネルギー回復にかかるもろもろの時間を短縮しています。
―― ラスボスのワイリーでも更新点がありましたね。
ピロ彦 以前はラスボス第二形態で、セレクトボタンによるポーズを多用していましたが、切り替えにかかる時間が無敵解除よりも若干長いので、今回はスタートボタンでポーズ解除をする戦略をとっています。
セレクトボタンで解除した場合は自弾の座標が変わる前にもう一度ポーズが出来ますが、スタートボタンによる解除では1フレーム分進んでしまうのでラグも伴い最適化が大変でしたが、最終入力を早期に終わらせるなど見た目も面白くなっています。
他にも、縦スクロール画面でのハシゴの登り方の更新や回復アイテムの取得の仕方やボス戦の細かい更新などがあり、ワイリーステージ3以外の全てのステージで以前より1秒以上更新しています。
―― 「DelayObjectFFGlitch」自体は2014年ごろには既に発見されていたと思うのですが、今回、TASとして完成できたのはなぜだったのでしょうか。
ピロ彦 当初はボンバーマンステージでマグネットビームアダプターを取得することが検討されていましたが、ロックマンが素早く取得できるような位置にアイテムを出現させることが難しく、メンバーも次第に忙しくなりプロジェクトは半ば解散状態になっていました。
しかし最近になってMaru氏が加わり、再び活動が活性化したことで一気にプロジェクトが進み、既に更新した部分が再更新で作り直しになっても、モチベーションが下がることもなく最後まで完成させることができました。
―― 既にかなり極まっていると思うのですが、まだ更新の余地はあると思いますか?
ピロ彦 ボンバーマンステージのディレイステージクリアはもう少し最適化の余地があるかもしれませんが、さまざまな要因が重なって難しくなっています。ガッツマンステージはマグネットビームの使い方によって、ニコニコ動画に投稿したものより24フレーム更新され、今は09分46秒33が最速記録となっています。
任意コード実行TASはついに「27秒」という未知の領域に
なお、今回紹介したのは「全ステージクリアTAS」の方ですが、最初のアイスマンステージからいきなりエンディングを召喚する「任意コード実行TAS」も同時に更新され(こちらは5年半ぶり)、同じくピロ彦さんにより動画が投稿されています。こちらは32秒11→27秒04と5秒以上の更新に。
もはやハイレベル化しすぎて、テクニック解説についていくだけでも精いっぱいという状況になりつつあるロックマンTASですが、動画を見るだけでも、使われている各種テクニックのすさまじさは十分に伝わってきます。TASならではの奥深さ・面白さが凝縮された動画として、これまでTASを追ってきた人はもちろん、そうでなかった人にもぜひ見てもらいたい一作です。
参考記事リンク by ピロ彦さん
今回のTASに利用された主な解析結果
http://yuko2ch.net/rockman/mm1tasmap.html
ロックマン1のディレイエンディングTASについて
https://ch.nicovideo.jp/TASVideos/blomaga/ar529967
ロックマン1の新技:DoubleObjectFFGlitchについて
https://ch.nicovideo.jp/TASVideos/blomaga/ar535617
※画像はピロ彦さんの動画より
関連記事
- SFC「ロマサガ2」RTAが2019年に入り大幅更新合戦 “人力サブフレームリセット”により20分切り目前
流し切りが完全に入ることすらなく終了。【訂正】 - 「ロマサガ3」ほぼ全ての技を100%ひらめく方法が発見される 発見者は「おやつ」さん
ひらめきシステムを極限までハックした到達点。 - 「スーパーマリオブラザーズ」スピードランで新記録、初の4分55秒台が出る TASに並ぶまであと1.2秒
極まってきています。 - 「ドクターマリオ」Lv00〜20のTASが夏から2分以上更新 Nintendo Directの裏で医療が発展を続けていた
新医療技術や医療器具も登場。 - これが医学の進歩か FC「ドクターマリオ」TASで猛烈なタイム更新合戦発生中、1カ月でタイムは55秒→17秒
日進月歩どころではない。 - 「スーパーマリオ64」スター0枚クリアの最速記録が約3年ぶり更新 ミスなく“ケツワープ”を繰り出し続け頂点に
難易度の高いテクニックをほぼミスなくこなし記録更新 - 「FF5」と「FF6」のTAS記録が大幅更新 「サブフレームリセット」「任意コード実行」の合わせ技でゲーム大崩壊
3時間以上掛かっていた「FF5」もついに。 - 「ロマサガ2」TASが約20分の大幅更新で4分37秒クリア 流し斬りシーンすら出てこない超速データ改ざん攻略
ワープに次ぐワープ、デバッグルームからまたワープ。〜そして合体事故へ〜 - そういうサイトじゃねえからこれ! 名作Flash「こ〜こはど〜この箱庭じゃ?」TASという闇の深い競技が誕生
一瞬で闇に飲まれ忘れ去られる行太。
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.
-
「情報を漏らされ振り回され……」とモデラー“限界声明” Vtuberのモデル使用権を剥奪 「もう支えられない」「全サポート終了」
-
「うどん屋としてあるまじきミス」→臨時休業 まさかの“残念すぎる理由”に19万いいね 「今日だけパン屋さんになりませんか」
-
“ドームでライブ中”に「76万円の指輪紛失」→2日後まさかの展開に “持ち主”三代目JSBメンバー「誰なのか探しています」
-
高畑充希と結婚の岡田将生、インスタ投稿めぐり“思わぬ議論”に 「わたしも思ってた」「普通に考えて……」
-
「本当に同じ人!?」 幼少期からイボをいじられていた男性→美容師の“お任せカット”が衝撃 「めちゃくちゃ大変身」
-
「おててだったのかぁああああ」「同じ解釈の人いた笑笑」 ピカチュウの顔が“こう見えた”再現イラストに共感続々、464万表示
-
「腹筋崩壊」 ハスキーをシャンプー&パックしたら…… “予想外のハプニング”に「こ〜れは大変だわ」「沼にでも落ちたのかとwww」
-
“歌姫”ののちゃん、6歳現在の姿に驚きの声「あれっ!?」「ビックリしてます!」 2歳で「童謡こどもの歌コンクール」銀賞受賞
-
黄ばみのある68年前のウエディングドレスを修復すると…… 生まれ変わった姿に「泣いた」「受け継ぐ価値のあるドレス」
-
走行中の車から同じ速さで後方へ飛び降りると? 体を張った実験に反響「問題文が現実世界で実行」【海外】
- 「飼いきれなくなったからタダで持ってきなよ」と言われ飼育放棄された超大型犬を保護→ 1年後の今は…… 飼い主に聞いた
- ドクダミを手で抜かず、ハサミで切ると…… 目からウロコの検証結果が435万再生「凄い事が起こった」「逆効果だったとは」
- 「明らかに……」 大谷翔平の妻・真美子さんの“手腕”を米メディアが称賛 「大谷は野球に専念すべき」
- まるで星空……!! ダイソーの糸を組み合わせ、ひたすら編む→完成したウットリするほど美しい模様に「キュンキュンきます」「夜雪にも見える」
- 妻が“13歳下&身長137センチ”で「警察から職質」 年齢差&身長差がすごい夫婦、苦悩を明かす
- 人生初の彼女は58歳で「両親より年上」 “33歳差カップル”が強烈なインパクトで話題 “古風を極めた”新居も公開
- 「ごめん母さん。塩20キロ届く」LINEで謝罪 → お母さんからの返信が「最高」「まじで好きw」と話題に
- 互いの「素顔を知ったのは交際1ケ月後」 “聖飢魔IIの熱狂的ファン夫婦”の妻の悩み→「総額396万円分の……」
- ユニクロが教える“これからの季節に持っておきたい”1枚に「これ、3枚色違いで買いました!」「今年も色違い買い足します!」と反響
- 中央道から「宇宙戦艦ヤマト」が見える! 驚きの写真がSNSで注目集める 「結構でかい」「どう見てもヤマト」 撮影者の心境を聞いた
- 50年前に撮った祖母の写真を、孫の写真と並べてみたら…… 面影が重なる美ぼうが「やばい」と640万再生 大バズリした投稿者に話を聞いた
- 「食中毒出すつもりか」 人気ラーメン店の代表が“スシローコラボ”に激怒 “チャーシュー生焼け疑惑”で苦言 運営元に話を聞いた
- フォロワー20万人超の32歳インフルエンサー、逝去数日前に配信番組“急きょ終了” 共演者は「今何も話せないという状態」「苦しい」
- 「顔が違う??」 伊藤英明、見た目が激変した近影に「どうした眉毛」「誰かとおもた…眉毛って大事」とネット仰天
- 「ごめん母さん。塩20キロ届く」LINEで謝罪 → お母さんからの返信が「最高」「まじで好きw」と話題に
- 星型に切った冷えピタを水に漬けたら…… 思ったのと違う“なにこれな物体”に「最初っから最後まで思い通りにならない満足感」「全部グダグダ」
- 「泣いても泣いても涙が」 北斗晶、“家族の死”を報告 「別れの日がこんなに急に来るなんて」
- ジャングルと化した廃墟を、14日間ひたすら草刈りした結果…… 現した“本当の姿”に「すごすぎてビックリ」「素晴らしい」
- 母親は俳優で「朝ドラのヒロイン」 “24歳の息子”がアイドルとして活躍中 「強い遺伝子を受け継いだ……」と注目集める
- 「幻の個体」と言われ、1匹1万円で購入した観賞魚が半年後…… 笑っちゃうほどの変化に反響→現在どうなったか飼い主に聞いた