• 今回のロックマン2TASに使われたテクの一部について

    2019-07-22 19:08



    ●ディレイスクロールの成功タイミングは毎回処理量が重い音楽の音が鳴っているとき
    ロックマン2のディレイスクロールには
    BGMの処理量が重い音楽が鳴っているタイミングで成功するというものがあります。

    このためディレイスクロール前にほとんど短縮がなければ
    だいたい同じ音楽が鳴っているフレームがディレイスクロールの成功タイミングとなるわけです。

    詳しくは下記を参照してください
    http://www.yuko2ch.net/rockman/howtodelayscroll.htm


    ●フレームカウンタ
    ロックマンにはフレームカウンタ($1C)用のメモリというものがあります。
    このフレームカウンタ用のメモリは毎フレーム加算されるのですが、
    ラグフレームのときはその処理がスキップされるため加算されません
    しかし、音楽についてはラグフレームであっても処理がスキップされません

    よって同じ音楽が鳴るのはステージ開始から決まったフレーム数経過したあとということになります。

    ●フレームルール
    そしてロックマンにはボスゲートやエネルギーの回復、ボスゲージの表示などにフレームルールがあります。

    これは先ほどのフレームカウンタ($1C)が4や8で割り切れるときに
    ボスゲートが動いたりエネルギーのバーが加算されたりするというものです。
    詳しくは下記を参照してください
    http://www.yuko2ch.net/rockman/mm2_tas_map2.htm

    ●ディレイスクロールによるフレームカウンタの調整によるフレームルール調整
    1.ディレイスクロール前にラグフレームを意図的に増減させます
    2.ディレイスクロールを実行します(ディレイスクロールのタイミングは1の結果にかかわらず同じフレームであるがフレームカウンタ($1C)の値がラグフレームの増減によって異なる状態となります。)
    3.このとき設定したフレームカウンタが次のフレームルールが実行される時に都合のいい値になっていればボスゲートやエネルギーの回復、ボスゲージの表示などが速く終わります

    ●スプライトの点滅タイミング調整によるディレイスクロールタイミングの調整
    スプライトの点滅タイミングは毎回フレームカウンタ($1C)が奇数か偶数かによって決まりますが、
    これも前述の通りまた事前のラグフレームの増減とディレイスクロールによって調整することが可能となり、さらにベストなタイミングで次のディレイスクロールを実行できました。

    ●TASへの感想
    毎年年末ごろにTASにはチャレンジしていたのですが、
    なかなかフルメンバーが忙しかったりやっている間に
    前のほうのステージに短縮が見つかったりして
    モチベーションの維持が難しくなったりしてなかなか進みませんでしたが、
    今回ついに主要メンバーが揃ったことで完成といたったわけです。
    前回は2010-10-15に投稿していたのでなんと更新までに9年たってしまいました。

    今回上記のフレームカウンタの調整がめちゃくちゃ大変だったので
    ワイリーがラスボスではなく、フレームカウンタ($1C)がラスボスだったと結論付けられました。



    ●P.S
    しかしながら今回のTASは1つの形(Any%)にすぎません。
    もう1つのロックマン2TASの制作が進行中です。
    こちらは思い出ぶち壊しになる予定なのでこうご期待ください

    ●プレイヤー
    Shinryuu:
    今回はプレイヤー担当
    彼は日本を愛しており日本のアニメのフィギュアがTAS用PCの机の上に飾られている
    https://twitter.com/ShinryuuTas

    aglasscage:
    今回はディレイスクロールとプレイヤー担当
    ピロ彦先生のアドバイスを経て見事にディレイスクロールを習得した。
    https://twitter.com/aglasscage

    FinalFighter:
    今回も解析担当微妙な差異から上記のフレームカウンタの調整のテクニックを発見した。
    日本人の最古参プレイヤーで最近子育てが忙しいのに今だにTASをやっているなんて。
    VNIをやっていた関係上裕子たんと呼ばれることもある。NHKの平成ネット史を見て懐かしく思いました。
    https://twitter.com/FinalFighterTAS
    https://twitter.com/yuko2ch

    ●SpecialThanks
    warmCabin:
    比較動画の作成と、短縮箇所の発見をしてくださいました。
    彼もまた私たちとは違った別の形のロックマン2動画のTAS作成に取り組んでいます。
    https://www.youtube.com/channel/UCqph5T9ZBmtdXCTvg-kgEzg

    ピロ彦P:
    今回は動画作成とディレイスクロールのアドバイスなどを行ってくれました。
    TASへの詳しさやレベルは非常に高いものがあります。
    https://twitter.com/pirohiko

    #TAS好きの人がわいわいするところ/#TASers
    https://discord.gg/7JVJut8

    日本人のTASプレイヤーたちが集まるコミュニティ
    いつも意見ありがとうございます

    DARS
    ハッククロム作成者 サイトのロックマン2のメモリアドレスが役に立ちました。
    (ぶっ壊れ宇宙/メモリの役割)

    クワタ 
    ハックロムでも有名な彼のメモリアドレスやツール群は今も役に立っています。
    http://kuwatan.jp/2392/

    Takepen
    NES研究室の資料が役に立ちました
    http://hp.vector.co.jp/authors/VA042397/nes/index.html

    ぷれさべー
    https://twitter.com/nborokobo
    彼の作成したロックマン2のLuaScriptの一部がディレイスクロールの処理量解析に役にたちました。
    -----------------
    ●過去のスペシャルサンクス
    hika
    過去のTAS作成時にワイリーステージ6の左上に土台があることを教えてくれました。

    TaoTao 
    過去のTAS作成時にディレイスクロールの解析アイディアを出してくれました。

    Bisqwit
    TASVideosを作った人。
    自分が解析を知らなかった頃にディレイスクロールのことなどをいろいろ教えていただきました。

    gocha 
    日本のTAS界を支える幼女。
    過去のTAS作成時にアイディアや資料が参考になりました(特にLuaなど)。

    cstrakm
    過去のTAS作成時に彼は左壁抜けとH死亡復帰による高速化のアイディアを出していただきました。

    Terimakasih 
    彼は当時はなぜ起こるかはわかっていなかったもののVirtuaNESの時代にディレイシャッタースクロールの例をいち早くアップしていました

    BlastHornet  
    彼の作ったRockmanExile.で色々自分が試行錯誤していたときにディレイスクロールは見つかりました

    kolechovski
    彼はクラッシュボムの当たり判定移しを発見しました

    morimoto
    ロックマン2初代TAS作成者
    彼の使っていたテクニックの多くは今のTASにも引き継がれています。

    TASVideosの方々 
    いつもフォーラムでの各種アイディアありがとうございます。

    FCEUX開発者一同
    強力な機能やデバッガのおかげで解析が楽になりました。

    EmuLua開発者一同 
    LuaScriptの拡張により、柔軟にTASを作成できるようになりました。


  • 広告
  • ロックマン1の新技:DoubleObjectFFGlitchについて

    2014-06-07 02:10

    歴史:

    このテクは2014年の61日にピロ彦先生(@pirohiko)がガッツマンのテストをしていたら色々とオブジェクトが出現する例を発見。
    その後、FinalFighter(@FinalFighterTAS)が調査しどういうバグなのかを解明し、
    アイスマンステージやガッツマンステージで使用できる箇所があることを確認しました。

    その後、6月6日に 脳さん(@atonou)がRTAで実践できることを証明しました。


    使用例:

      
    この場所で左右にうろうろします



    するとステージクリアが起きることがあります。

    (このテクはうろうろするだけでOKです。ディレイをかける必要はありません。)



    テクニック概要:

    1:オブジェクトFFが出現する場所でうろうろする
    2:オブジェクトFFが出現すると、16フレームの間毎フレームオブジェクトFFの処理を実行します

    3:オブジェクトFFの処理が実行されているフレームで、オブジェクトFFを左向きで出現させます。

    4:すると、バンク2から間違ったオブジェクトを読み込みます

    詳細トレースログ



    使えそうなところ:

    アイスマンステージ ↑の画像の箇所

    ここでDoubleObjectFFGlitch(図の箇所で左右うろうろする)を実行すると、
    $23(毎フレームに1ずつ増加するカウンタ)をオブジェクト番号として読み込みます。
    よってフレームによって、オブジェクト00FFが出現します。

    大半はリセットがかかったり、使えないオブジェクトですが、
    以下のオブジェクトが面白いでしょう。
    75F5:ステージクリアとなりますが、次ステージからグラフィックが崩れます

    4A:出現してしばらくたつとステージクリアとなり、次ステージのグラフィックも正常です。

    42:マグネットビームアダプター、目には見えず、初期座標が変動する上、11時方向に移動してすぐ消えるため、非常に取得しにくいですが、ぷるぷるしているとごく稀に取得できるかもしれません。


    4A75F5がステージクリアとなるので、3/256でステージクリアを引くことができます。
    RTAで実践した脳さん(@atonou)によると、リセット込みで1時間に1回引けるくらいの確率だそうです。


    421/256よりも遙かに確率が低いのでRTAでは現実的ではないですが、
    ピロンと音が鳴ったら実はマグネットビームを取得できてたとかいう例がごく稀にあるかもしれません。

    一度何かのオブジェクトが出現すると、消滅するまでは次のオブジェクトを出せないので、狙ったオブジェクト以外のオブジェクトが出てしまった場合はスクリーンアウトとかで消すといいかもしれません。




       




    ガッツマンステージ↑の画像の箇所(3か所あるのでお好きなところを)
    ここでDoubleObjectFFGlitch(図の箇所で左右うろうろする)を実行すると、
    17(2コン)をオブジェクト番号として読み込みます。
    よって、2コンの値により、オブジェクト00FFが出現します。


    以下のようなオブジェクトが面白いでしょう。
    752コンの左上下セレクトAを押しっぱなし)ステージクリアとなりますが、次ステージからグラフィックが崩れます。

    もし上記を押せる特殊な実機のコントローラを持っている人がいればRTAでも面白いと思います。
    12Pの切り替えスイッチがついたジョイスティックを外部端子につなぎ、2Pに切り替える

    そして、ニューファミコンで、下記の操作を行います。両手大忙し。

    1
    コン:左右にぷるぷる操作

    2コン:左上

    2コンに切り替えたジョイスティック:セレクト、下、A


    なお、1コン、2コン切り替えのジョイスティックは
    ダンジョン&マジックの裏技に必要なジョイスティックで、2コンの左右同時押しのために必須となっています。




    ダンジョン&マジックの裏技:http://urawaza.in/fc/danzyon.htm
    ファミコンのジョイスティック:http://www.tomorege.com/contents2_katei_fc_syuhenkiki02.html 

    現在では手に入れるのが難しそうですが…



  • ロックマン1TASが分類されるかもしれないTASVideosの新しい「low%」ブランチについて

    2014-05-20 15:201

    この内容はまだ審議中なので変化する可能性があります

    TASVideosの管理人のNachさんから下記のような「low%」というブランチはどうかという提案があったという記事です。

    http://tasvideos.org/4308S.html

    ロックマン1の任意コード実行TASが「low%」ブランチでAcceptされました。
    意味的にはゲームのほとんどの要素を攻略せずクリアするということになります。

    「low%」ブランチはこれまで「game-end glitch」と呼ばれていたブランチのことです。

    確かに、glitched(バグ使用)、game-end glitch(エンディングバグ)、ACE(任意コード実行)などの分類があるとプログラマや作った人以外にはどういうものなのか判りにくいので、ゲームのほとんどの要素を攻略してない「low%」としてまとめてしまうという考えもありだとは思います。

    ただ、「game-end glitch」という名前もゲームのほとんどの要素を攻略せずにエンディング前やエンディングクレジットなどを呼び出すという意味では判りやすくはあるので議論が必要なところだと思います。
    (たとえば任意コード呼び出しで全ステージを1つ1つクリアしたらそれはどういった分類になるのか?といった議論が生じる気もします)

    なかなか難しい議論だとは思いますが、皆様はどのようなブランチがあると良いと思いますでしょうか。

    以下TASVideosの管理者NachさんのAcceptの際の翻訳です。
    かなり判断に苦労されたのが見てとれます。
    やはり、ロックマンTASの影響力の高さにも気づかされます。

    ------------------------------------------------------------------------------------

    これは扱うのが非常に大変なTASだ。
    私がどう扱おうとも誰かが私の車に爆弾を取り付けようとするのだ。
    私は私に残されたいくつかのコメントが、
    火の気を感じさせるものであったり息苦しくさせるものであっても、
    まだ私がこのTASを判定しようとするガッツを持っていることに驚いている。
    なぜ、このTASの判断を急がなかったかあなたたちは理解してくれると思っている。
    そして、判断が遅れたことに謝罪する。

    このTASは一方では、ゲームのほとんどがカットされる。
    また我々の全てがエンディングへの素早い実行を押し付けられる。
    一方では、アイスマンという単一の面のみがプレーされる(クリアしたときには別の面がクリアしたフラグが付けられる)
    前回のTASが実行したように、今回のTASもゲームのメカニズムを同様に破壊するが、
    少しメカニズムが異なるにも関わらず、前回のTASはあっという間にゲームをクリアはしない。

    さて岩の下や泡の中、まき小屋で何年も生活していた場合を除き、
    あなたが前回のTASを見て愛していて、廃止されるのを望まない場合、
    ゲームが実際に完了したか否か今回のTASが完了状態で物議を醸しており、
    ひょっとしたらこのTASが拒否されるべきと考えるかもしれない。

    私は個人的に金属のタンゴを踊る。
    そして私は衝撃的な、もっとも衝撃的な方法で物事を処理するのが好きだ。
    たとえそれがまずまずのものであったとしても。

    このような状況で新しいブランチを見つけるのがクールなことだ。
    問題には留意するが、これまで誰も考えていなかったことになる。
    これは、新しい先例として設定する。
    これは、これまで存在する動画の再分類を必要とする。そしてそれが許容される。

    私は次のブランチが実行可能と考える
    ・全てのテクニックを用いて全ての面がクリアされる(これまでのTASのように)
    ・全ての面が上記のTASのほとんどを担当しているマグネットビームなしでクリアされる。(それはクリエイターたちには不可能と考えられている)
    ・可能な限り速くクリアする(今回のTASのように)

    このブランチの例は問題を抱えているスーパーマリオワールド、スーパーマリオランド2、
    スーパーメトロイド、星のカービィスーパーデラックスなどの助けになるだろう。
    ちなみにこれらのゲームは実際にゲームを攻略した割合を確かに報告している。

    よって、新しい「low%」のブランチとしてこのTASを許可(accept)する。
    (これまでは「game-end glitch」と呼ばれていたものだ。)