コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2021年11月6日 >>> 2021年10月24日
link もっと後

2021年11月6日

Might and Magic Book One TAS最後の更新

目次: Might and Magicファミコン版

Might and MagicのTASが14分10秒になりました。最初のバージョン(23分30秒)を思い出すと、半分近くになってますね。YouTubeにも載せておきました([TAS] Might and Magic Book One (J) 14:10 with Map - YouTube

もはや操作の工夫でさらに削れそうなところは思いつきません。新たな攻略ルートを思いつかない限り、これが限界だと思います。というわけで、これにてTASはしばし休憩です。なんだかんだ1か月くらいやってたし、中古カセット購入代の元は十分取れたでしょう。楽しかった!

改善点その1: ボタン連打の高速化

従来より高速にボタン連打をする方法を見つけました。例えば↓キーを連打するとして、↓、待ち、↓ のように1フレーム空けないとキーを認識しません。が、この処理はバグっておりセレクトなど連打したいキーより下位ビットのキー(※)を同時に押すと、コントローラーの状態が変わったと勘違いして連打可能になります。画像で見た方が早いでしょう。


従来のキー連打方法


新たなキー連打方法

このように↓、↓+セレクト、↓、↓+セレクト……と連打すると、今まで3フレームで1回しか押せなかったところ、2フレームに1回押せるので、連射速度を1.5倍にできました。テレポートのためダイヤの鍵を使うとき、バックパック欄にて↓キーを6回連打するので地味に効きます。

(※)ファミコンは上位ビットから↑↓←→スタートセレクトBAと割り当てられています。Might and Magicはキーを同時押しした場合、上位ビット側のキーしか認識しません。したがって↓キーを連打したければ、↓キーよりビット位置が下(←→スタートセレクトBA)を一緒に押しましょう。なおAキーは下位ビットのキーがないので、この連打技が使えません。

改善点その2: サブフレーム入力によるメッセージスキップ

ずっとうまくいかなかったメッセージスキップを克服しました。メッセージスキップは非常に強敵で、サブフレーム入力(1フレームより細かいタイミングで入力)を使わないとうまく行きません。エミュレータ側も進化していて、最近はサブフレーム入力に対応している(SubNESHawk)みたいです。すごいね……。

ファミコンはアドレス0x4016にアクセスするとコントローラーの状態がポーリングできるようになっています。サブフレーム入力に対応したエミュレータは、0x4016へのアクセスタイミングに合わせてコントローラーの状態を変えているのだと思います。

Might and Magicはメッセージウインドウのクローズアニメーションが始まって2フレーム目、描画割り込みの直前に1回だけキーを押さないとスキップしてくれません。キーを押しっぱなしではダメで、タイミングがシビアすぎます。これたぶんバグですよね?条件判定が厳しすぎる。適当に連打していればたまに該当するものの、人間が狙って押せるタイミングには思えません……。

バグかどうかはさておき、サブフレーム入力を使うと100%メッセージスキップ可能です。時間を消費しがちなメッセージウインドウのオープンクローズが発生しなくなり、高速化に貢献しています。

改善点その3: サブフレーム入力による乱数の選択肢の増加

サブフレーム入力により乱数を引く機会が増えました。今回の時間短縮への効き目としてはこれが一番です。以前説明した通り(2021年10月8日の日記参照)Might and Magicはコントローラーの状態を見ると乱数が変化します。しかもマップによって(地上マップなど)は1フレームに無駄に70回くらいコントローラーの状態を見ています。

今までは戦闘をルートに入れると、良い乱数を引くために時間を浪費してしまいあまり良い結果になりませんでした。しかしサブフレーム入力ならば、今まで1フレームの間に隠れていた70回以上の抽選チャンスが利用できますから、抽選チャンスが爆発的に増えます。さほど時間をかけずに良い乱数を引けるようになりました。

おかげで序盤に「ようせい」x 3をシバキ倒してGEMをもらい、ソーピガル地下、ノーザンバリア、C2、C1を無視して、エルキューンにワープでき、ルートの大幅短縮に役立っています。

編集者:すずき(2021/11/10 13:46)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2021年10月30日

Might and Magic Book One TAS長距離移動手段のまとめ

目次: Might and Magicファミコン版

通常の歩く移動以外の長距離移動手段の方法と、所要時間をメモしておきます。

「エンカウント+逃げる」

行先はマップの特定位置のみですが、ショートカットに使えます。また上り階段マスに行くことが多いため、ダンジョンや城からの脱出には最適です。

  • 出会うまでの調整: 10〜フレーム(カウンタ調整次第、100フレームほどもありえる)
  • モンスターが近づいてきた: 130〜フレーム(移動方法次第、最速は後ろ向き移動で壁に2回目に激突した場合)
  • 戦闘メニュー: 16フレーム
  • 逃げる選択: 7〜フレーム(カウンタ次第で失敗する、調整必要だが大抵10フレームあれば収まる)
  • 画面切り替え: 50フレーム

最速で213〜フレームくらいです。エンカウントが乱数依存なので若干ブレがあるものの、それでも一番早いです。

「ひこう」(消費MP 3)

使用場所に制限があり、地上でしか使えません。しかし任意の地上MAPに行ける優れものでGEMも不要の優れものです。

  • メニューオープン: 34フレーム
  • 魔法選択まで: 75〜フレーム(魔法使いの位置による、2人目だと78フレームくらい)
  • どこへ?: 1〜9フレーム(行先次第)
  • 移動エフェクト: 172フレーム

282〜フレームくらいです。非常に早く、使い勝手も良いので、私がTASするうえでのメイン武器です。

「まちへ」(消費MP 6, GEM 4)

使用場所の制限はないものの、町にしか行けない点と、消費が大きいのが欠点です。

  • メニューオープン: 34フレーム
  • 魔法選択まで: 75〜フレーム(僧侶の位置による、5人目だと84フレームくらい)
  • どこへ?: 1〜12フレーム(行先次第)
  • 移動エフェクト: 240〜フレーム(テレポートと同じエフェクト)

発動は早いですが、移動エフェクトがテレポートと同じで長く、350〜フレームくらい掛かります。しかしMight and Magicは町から町への移動が不便なので、非常に重宝する魔法です。

「ダイヤの鍵」によるテレポート(鍵1つにつき20回まで)

テレポート禁止マップ(地上A1, A2、ダスクの町、デューム城、アラマー城など)以外なら使えます。どこにでも行けて非常に便利なうえ、序盤のイベントなら無視できてしまうミラクル魔法です。本来は消費MP 5ですが、ダイヤの鍵ならMP消費なく使えます。

  • メニューオープン: 34フレーム
  • アイテムメニュー選択: 6〜8フレーム(↓→ Aを最速で入力)
  • 使用者リストオープン: 15フレーム
  • 使用者選択: 2フレーム(Aが連続で押せない、1フレーム待たないとダメ)
  • 装備リストオープン: 39フレーム
  • カーソル移動: 11フレーム(↓を6回入力、毎回カーソル描画1フレーム発生)
  • バックパックリストオープン: 33フレーム
  • アイテム選択: 1フレーム(一番上にあると最速)
  • 魔法エフェクト: 53フレーム
  • 方角選択: 2〜7フレーム(↓↓↓Aなど、Aのみで済む「北向き」が最速)
  • 描画待ち: 12フレーム
  • 距離選択: 2〜9フレーム(↑↑↑ or ↓↓↓...Aなど、Aのみで済む「1ブロック」が最速)
  • 移動エフェクト: 243〜フレーム

453〜フレームくらいです。便利な反面、時間が掛かりますから、歩きの方が早い時もあります。具体例を挙げると、地上A4や、魔法の砦B1、B2はテレポート2回より、歩き+テレポート1回の方が早いです。

編集者:すずき(2021/12/07 14:02)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2021年11月6日 >>> 2021年10月24日
link もっと後

管理用メニュー

link 記事を新規作成

<2021>
<<<11>>>
-123456
78910111213
14151617181920
21222324252627
282930----

最近のコメント5件

  • link 24年6月17日
    Bobさん (06/04 09:25)
    「BindIPv6Only=no does...」
  • link 18年8月12日
    すずきさん (05/29 16:57)
    「コメントありがとうございます。\n\nこ...」
  • link 18年8月12日
    ARM926EJ-Sさん (05/29 14:27)
    「この記事が書かれたのは2018年ですが、...」
  • link 17年9月3日
    すずきさん (05/26 23:59)
    「>ちょさんさん\nご参考になれば幸いです...」
  • link 17年9月3日
    ちょさんさん (05/26 20:34)
    「自分もこの機種と全く同じCN-SP700...」

最近の記事20件

  • link 20年10月23日
    すずき (05/29 16:53)
    「[ROCK64/ROCKPro64 - まとめリンク] 目次: ROCK64/ROCKPro64[ROCK64] ROCK64ブート...」
  • link 18年8月12日
    すずき (05/29 16:53)
    「[ARM PCで開発できるか?] 目次: ROCK64/ROCKPro64最近のARM搭載SoCはかなり速くなっています。もし...」
  • link 18年12月15日
    すずき (05/29 16:52)
    「[ARMワンボードPCのネットワーク速度] 目次: ROCK64/ROCKPro64Raspberry Pi対抗ボードの多くは...」
  • link 21年5月22日
    すずき (05/29 16:50)
    「[ベンチマーク - まとめリンク] 目次: ベンチマーク一覧が欲しくなったので作りました。USB HDD RAIDのベンチマー...」
  • link 06年5月17日
    すずき (05/29 16:49)
    「[ディスクI/Oベンチマークプログラム] 目次: ベンチマーク研究室のゼミの後に、明日のシス情セミナーの発表練習を行いました。...」
  • link 06年5月15日
    すずき (05/29 16:45)
    「[USB HDD RAIDのベンチマーク] 目次: ベンチマーク昨日作成したRAID0+1の書き込み性能を測定しました。やはり...」
  • link 25年5月24日
    すずき (05/25 22:25)
    「[メガネが壊れた] 金曜日、メガネの鼻当てが曲がってんなー?と思って、元の位置に戻そうと指で押したらパキっと音がして折れました...」
  • link 25年5月25日
    すずき (05/25 21:53)
    「[JTSA Unlimited大会参加2025] 目次: 射的JTSA Unlimitedの大会に参加しました。「木」ステージ...」
  • link 22年3月18日
    すずき (05/25 21:41)
    「[射的 - まとめリンク] 目次: 射的関係の深いまとめリンク。目次: Arduino一覧が欲しくなったので作りました。ガスガ...」
  • link 25年5月9日
    すずき (05/23 23:31)
    「[JavaとM5Stamp C3とBluetooth LE - Bluetoothデバイスとの通信改善] 目次: Arduin...」
  • link 23年6月2日
    すずき (05/23 23:31)
    「[Arduino - まとめリンク] 目次: Arduino関係の深いまとめリンク。目次: 射的一覧が欲しくなったので作りまし...」
  • link 23年4月10日
    すずき (05/23 22:59)
    「[Linux - まとめリンク] 目次: Linux関係の深いまとめリンク。目次: RISC-V目次: ROCK64/ROCK...」
  • link 24年4月25日
    すずき (05/23 22:59)
    「[ImageMagickでAVIFを変換] 目次: LinuxAVIFが読めないアプリケーションがたまにあるので、AVIF(A...」
  • link 25年5月23日
    すずき (05/23 22:30)
    「[デバッグ用のlibcを使って実行する方法(ダイナミックリンク編)] 目次: C言語とlibcCライブラリのデバッグをしたいと...」
  • link 22年4月13日
    すずき (05/23 22:30)
    「[C言語とlibc - まとめリンク] 目次: C言語とlibcC言語について。プログラムの落とし穴、演算子の優先順位標準入力...」
  • link 25年5月22日
    すずき (05/23 22:21)
    「[デバッグ用のlibcを使って実行する方法(スタティックリンク編)] 目次: C言語とlibcCライブラリのデバッグをしたいと...」
  • link 25年5月20日
    すずき (05/23 03:18)
    「[glibcのsigprocmask()とpthread_sigmask()の実装] 目次: C言語とlibc以前、シグナルマ...」
  • link 23年6月1日
    すずき (05/23 00:38)
    「[自宅サーバー - まとめリンク] 目次: 自宅サーバーこの日記システム、Wikiの話。カウンターをPerlからPHPに移植日...」
  • link 25年5月16日
    すずき (05/23 00:37)
    「[フォントがおかしいので直した] 目次: 自宅サーバーこのブログ、フォント設定が2つほどおかしかったので直しました。今まで見づ...」
  • link 23年5月15日
    すずき (05/22 00:23)
    「[車 - まとめリンク] 目次: 車三菱FTOの話。群馬県へのドライブ1群馬県へのドライブ2将来車を買い替えるとしたら?FTO...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 2025年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www2.katsuster.net
RDFファイル RSS 1.0

最終更新: 06/04 09:25