Might and Magicの入力を受け取っている部分を見ていたら、リセット直後になぜか2コンのキーを見ています。これは何だろう?と思ってちょっと解析してみたところ、セーブデータ消去の隠しコマンドでした。
とするとセーブデータが消えます。ファミコン版のMight and Magic Book Oneはセーブデータを消す方法がないので、おそらくデバッグ用に存在しているのでしょう。イメージを示すとこんな感じです。
ABを押している限り、入力が終わるのをずっと待ってくれるので、1フレーム単位で入力する必要はないです。
TAS動画に解説をつけたかったのですがYouTubeのSubtitleのつけ方が良くわからんのと、日本語はあまり歓迎されていない?ようなので、ニコニコ動画にも同じTAS動画をアップロードしました。リンクは、【TAS】FC版Might and Magic Book One 14分10秒 マップ付き - ニコニコ動画 です。
ニコニコ動画は期待通り、投稿者コメント機能がとても使いやすくて便利です。嬉しくなってつい100コメントくらい書いてしまいました。あんまり解説しすぎも良くないと聞きますが……、まあいいか。
動画の投稿機能自体はYouTubeとさほど違いはないように思います。私の場合はニコニコ動画の方が若干画質が良かったです。YouTubeはテレポートのエフェクトの後にビットレート不足で画が崩れていましたが、ニコニコ動画は割と耐えてました。
テレポートエフェクトによって画が崩れた様子(YouTube)
どちらのサービスも再エンコードは免れないので、エンコーダーとの相性次第ですかね?今までYouTubeやニコニコ動画の画質なんて気にしたことありませんでした。自分でアップロードしてわかることもあるものですね。
ユーザー層も違うようでYouTubeはほぼ誰も見てくれませんが、ニコニコ動画はTAS動画が人気らしく、30年以上昔のゲーム(発売は1989年)にもかかわらず1日で数百回ほど再生されていました。
日本語版だったのも良かったのかもしれません。TASVideosの場合、日本語版を投稿すると逆に嫌がられる(英語版が推奨されている)から、難しいところですけども……。
Might and MagicのTASが14分10秒になりました。最初のバージョン(23分30秒)を思い出すと、半分近くになってますね。YouTubeにも載せておきました([TAS] Might and Magic Book One (J) 14:10 with Map - YouTube)
もはや操作の工夫でさらに削れそうなところは思いつきません。新たな攻略ルートを思いつかない限り、これが限界だと思います。というわけで、これにてTASはしばし休憩です。なんだかんだ1か月くらいやってたし、中古カセット購入代の元は十分取れたでしょう。楽しかった!
従来より高速にボタン連打をする方法を見つけました。例えば↓キーを連打するとして、↓、待ち、↓ のように1フレーム空けないとキーを認識しません。が、この処理はバグっておりセレクトなど連打したいキーより下位ビットのキー(※)を同時に押すと、コントローラーの状態が変わったと勘違いして連打可能になります。画像で見た方が早いでしょう。
このように↓、↓+セレクト、↓、↓+セレクト……と連打すると、今まで3フレームで1回しか押せなかったところ、2フレームに1回押せるので、連射速度を1.5倍にできました。テレポートのためダイヤの鍵を使うとき、バックパック欄にて↓キーを6回連打するので地味に効きます。
(※)ファミコンは上位ビットから↑↓←→スタートセレクトBAと割り当てられています。Might and Magicはキーを同時押しした場合、上位ビット側のキーしか認識しません。したがって↓キーを連打したければ、↓キーよりビット位置が下(←→スタートセレクトBA)を一緒に押しましょう。なおAキーは下位ビットのキーがないので、この連打技が使えません。
ずっとうまくいかなかったメッセージスキップを克服しました。メッセージスキップは非常に強敵で、サブフレーム入力(1フレームより細かいタイミングで入力)を使わないとうまく行きません。エミュレータ側も進化していて、最近はサブフレーム入力に対応している(SubNESHawk)みたいです。すごいね……。
ファミコンはアドレス0x4016にアクセスするとコントローラーの状態がポーリングできるようになっています。サブフレーム入力に対応したエミュレータは、0x4016へのアクセスタイミングに合わせてコントローラーの状態を変えているのだと思います。
Might and Magicはメッセージウインドウのクローズアニメーションが始まって2フレーム目、描画割り込みの直前に1回だけキーを押さないとスキップしてくれません。キーを押しっぱなしではダメで、タイミングがシビアすぎます。これたぶんバグですよね?条件判定が厳しすぎる。適当に連打していればたまに該当するものの、人間が狙って押せるタイミングには思えません……。
バグかどうかはさておき、サブフレーム入力を使うと100%メッセージスキップ可能です。時間を消費しがちなメッセージウインドウのオープンクローズが発生しなくなり、高速化に貢献しています。
サブフレーム入力により乱数を引く機会が増えました。今回の時間短縮への効き目としてはこれが一番です。以前説明した通り(2021年10月8日の日記参照)Might and Magicはコントローラーの状態を見ると乱数が変化します。しかもマップによって(地上マップなど)は1フレームに無駄に70回くらいコントローラーの状態を見ています。
今までは戦闘をルートに入れると、良い乱数を引くために時間を浪費してしまいあまり良い結果になりませんでした。しかしサブフレーム入力ならば、今まで1フレームの間に隠れていた70回以上の抽選チャンスが利用できますから、抽選チャンスが爆発的に増えます。さほど時間をかけずに良い乱数を引けるようになりました。
おかげで序盤に「ようせい」x 3をシバキ倒してGEMをもらい、ソーピガル地下、ノーザンバリア、C2、C1を無視して、エルキューンにワープでき、ルートの大幅短縮に役立っています。
通常の歩く移動以外の長距離移動手段の方法と、所要時間をメモしておきます。
行先はマップの特定位置のみですが、ショートカットに使えます。また上り階段マスに行くことが多いため、ダンジョンや城からの脱出には最適です。
最速で213〜フレームくらいです。エンカウントが乱数依存なので若干ブレがあるものの、それでも一番早いです。
使用場所に制限があり、地上でしか使えません。しかし任意の地上MAPに行ける優れものでGEMも不要の優れものです。
282〜フレームくらいです。非常に早く、使い勝手も良いので、私がTASするうえでのメイン武器です。
使用場所の制限はないものの、町にしか行けない点と、消費が大きいのが欠点です。
発動は早いですが、移動エフェクトがテレポートと同じで長く、350〜フレームくらい掛かります。しかしMight and Magicは町から町への移動が不便なので、非常に重宝する魔法です。
テレポート禁止マップ(地上A1, A2、ダスクの町、デューム城、アラマー城など)以外なら使えます。どこにでも行けて非常に便利なうえ、序盤のイベントなら無視できてしまうミラクル魔法です。本来は消費MP 5ですが、ダイヤの鍵ならMP消費なく使えます。
453〜フレームくらいです。便利な反面、時間が掛かりますから、歩きの方が早い時もあります。具体例を挙げると、地上A4や、魔法の砦B1、B2はテレポート2回より、歩き+テレポート1回の方が早いです。
Might and Magic TASのルートです。いくつか試したところこれが一番早く14m46sでした。
エリアC1にある「魔力がみなぎる泉」(一時的に全員の魔法レベルMLが最大の7になる)を使い、魔法使いML3「ひこう」とML6「つうか」、僧侶ML6「まちへ」を利用して大幅にショートカットします。
大きな問題は6人パーティーにして盗賊と僧侶を除いた4人を魔法使いにしてもMPが不足し、後半「ひこう」が使えず大きなロスになります。解決策として5人パーティーにして一回「やすむ」でMPを回復させることにします。「魔力がみなぎる泉」に2回通うことになりますが、その分、デューム城を「つうか」でぶっ飛ばせるので、総合的にみると早くなります。
気を付けるべきは、初期魔法キャラのユーリエール、ガーデニアです。この2人は最初MP 10ですが「やすむ」とMP 6に下がる変な奴らです。MPを使ってから「やすむ」をしないと、MPが無駄になります。
GEMはコリンブルッフで20個手に入りますが、GOLDと違ってGEMは足りない時に1人に集める方法がありません。所持数4個未満になる分け方をすると「つうか」も「まちへ」もGEM不足で使えなくなり(どちらも消費GEM 4)、GEMを持っている意味がなくなります。
5人パーティーで3人「つうか」「まちへ」を使う場合、GEMを使う3人に「わりあい」を3にして分けると、2, 2, 4, 4, 4に分けられます。「わりあい」を変えたときの「わける」は挙動がバグっており、なぜか合計GEM数が減ります。今回のパターンだと1/5も消え(20 → 16個)ます。しかも1:1で分けても4, 4, 4, 4, 4になるので、魔法系キャラに渡せるGEM数が全く変わらず、「わりあい」を変えるだけ無意味です。面食らうバグですね……。
ソーピガルの転送おじさんは、基本的には先頭の人からGEMを1つ持っていきます。先頭の人がGEM 0だったら次の人から持っていきます。便利なんですけど、間違って「つうか」係の人からGEMを奪わないよう、並び順もしくはルートに気を付ける必要があります。今回、転送は3回使います。
FOODはギルドで転職すると20個もらえますから「わける」すればOK です。初期キャラはFOOD 0個なので、「わける」を忘れると「やすむ」で回復しません。罠としか思えない設定です。このゲームの難易度おかしいポイントの1つですね。
初期キャラは全員無一文&ほぼ手ぶらなのは不思議ですよね。かろうじて武器か道具を1つだけ持っていますが、装備すらしていません。冒険舐めすぎでしょ?
移動系魔法を使う回数は「ひこう」9回、「つうか」2回、「まちへ」1回です。内訳は、
下記では今回のTASで使った攻略ルートを簡単に説明します。まずは準備です。
メインクエストを解く順番は以前と変わっています(貴族のパスポート、デューム城を後回し)、地上をちんたら歩いていた部分を「ひこう」で積極的にぶっ飛ばします。
メインクエストの流れとしては、このままデューム城に乗り込みたいところですが、今回はMPの配分の都合もあって別のクエストに寄り道します。
もう一つのメインクエストですけど、オーラのクエストはストーリーとあまり関係ないです。ラストダンジョンの歯ごたえを増すためのクエストという感じです。
これで寄り道終わりです。メインクエストに戻ります。
TASでは無視できるものは全て無視して、最速で解きますけども……。本来、真のアラマー王とアストラル世界のクエストは、他のクエストや金の板(ヒントが書いてある)を見ないと答えがわからない作りになっています。全てのストーリーの終着点となっていて、ああ、そういうことだったんだ!と思う作りです。
以上がMight and Magicの世界に起こった事件と、その謎に迫るメインクエストを超スピード解決する手順となります。初めてプレイする方がこの手順でクリアすると、たぶん訳が分からないと思います。
お時間がある方は、攻略サイトを見ながらでも構わないので、金の板や町のヒント、囚人たちなどに出会い話すと、しっかり作られた世界感が味わえると思います。
解析というほどでもないですが、メモがてら残しておきます。アドレス0x9eに現在のマップIDが書かれています。マップIDとマップの名前の対応は下記のとおりです。
マップID | マップ名 | マップID | マップ名 |
---|---|---|---|
0x00 | - | 0x20 | E2 |
0x01 | ソーピガル | 0x21 | E3 |
0x02 | ポートスミス | 0x22 | E4 |
0x03 | アルガリー | 0x23 | デューム城 |
0x04 | ダスク | 0x24 | ホワイトウルフ城 |
0x05 | エルキューン | 0x25 | アラマー城 |
0x06 | ソーピガルの地下 | 0x26 | ブラックリッジノース城 |
0x07 | ノーザンバリアー洞穴 | 0x27 | ブラックリッジサウス城 |
0x08 | ポートスミスの地下 | 0x28 | ドラガデューン城 |
0x09 | エルキューンの地下 | 0x29 | ドラガデューン城B1 |
0x0a | ダスクの地下 | 0x2a | ドラガデューン城B2 |
0x0b | コリンブルッフ洞穴 | 0x2b | ドラガデューン城B3 |
0x0c | ボルカノ神殿 | 0x2c | 魔法の砦B1 |
0x0d | 鷹の目洞穴 | 0x2d | 魔法の砦B2 |
0x0e | ホワイトウルフ洞穴 | 0x2e | 森のあばら屋B1 |
0x0f | A1 | 0x2f | 森のあばら屋B2 |
0x10 | A2 | 0x30 | レイバン砦B1 |
0x11 | A3 | 0x31 | レイバン砦B2 |
0x12 | A4 | 0x32 | エルドラドB1 |
0x13 | B1 | 0x33 | エルドラドB2 |
0x14 | B2 | 0x34 | エルドラドB3 |
0x15 | B3 | 0x35 | エルドラドB4(※) |
0x16 | B4 | 0x36 | アストラル世界(※) |
0x17 | C1 | 0x37 | イドの迷宮(※) |
0x18 | C2 | 0x38 | - |
0x19 | C3 | 0x39 | - |
0x1a | C4 | 0x3a | - |
0x1b | D1 | 0x3b | - |
0x1c | D2 | 0x3c | - |
0x1d | D3 | 0x3d | - |
0x1e | D4 | 0x3e | - |
0x1f | E1 | 0x3f | - |
エミュレータなどメモリ書き換えできるツールであれば、地上のマップが切り替わる地点に行って、0x9eを行きたいマップに書き換えてから移動する(C2の [12, 0] を南下するなど)と、任意のマップに飛ばせてIDとマップの対応が楽に確認できます。無効なマップ(0x00や0x38以上)には、そもそも移動できなかったりハングしたりバグったりします。
(※)0x35以上のマップはオートマッピング不可
Might and Magicのオートマッピングの踏破フラグは1マス1ビットで、0が未踏破、1が踏破済みの意味です。1マス1ビット、16ビット(2バイト)でY: 1行分、32バイトで1マップ(16 x 16)分を表しています。並び順はマップで見たときの左上から右下に向かって並んでいます。
左上からデータを並べるときは、画像処理で良く見かける座標の取り方(左上がX: 0, Y: 0、右下に向かいX, Yが増える)を良く見かけますが、Might and Magicは数学と同じ座標の取り方(左下がX: 0, Y: 0、右上に向かいX, Yが増える)なので、マップの左上は [X: 0, Y: 15] です。
このようにYの降順(15 -> 0の順)で行単位に並んでいます。Xの小さい側がアドレスの小さい側に対応、バイト内でいうとMSB側に対応します。例えば、あるX座標1マスだけ訪れた場合の踏破済みフラグの値は下記のようになります。
踏破済みフラグが記録されている場所はマップのIDがわかれば計算できます。IDがNだとすると0x6880 + (N - 1) * 0x20です。
マップID | アドレス | マップ名 | マップID | アドレス | マップ名 |
---|---|---|---|---|---|
0x00 | - | - | 0x20 | 0x6c60 | - |
0x01 | 0x6880 | ソーピガル | 0x21 | 0x6c80 | - |
0x02 | 0x68a0 | ポートスミス | 0x22 | 0x6ca0 | - |
0x03 | 0x68c0 | アルガリー | 0x23 | 0x6cc0 | デューム城 |
0x04 | 0x68e0 | ダスク | 0x24 | 0x6ce0 | ホワイトウルフ城 |
0x05 | 0x6900 | エルキューン | 0x25 | 0x6d00 | アラマー城 |
0x06 | 0x6920 | ソーピガルの地下 | 0x26 | 0x6d20 | ブラックリッジノース城 |
0x07 | 0x6940 | ノーザンバリアー洞穴 | 0x27 | 0x6d40 | ブラックリッジサウス城 |
0x08 | 0x6960 | ポートスミスの地下 | 0x28 | 0x6d60 | ドラガデューン城 |
0x09 | 0x6980 | エルキューンの地下 | 0x29 | 0x6d80 | ドラガデューン城B1 |
0x0a | 0x69a0 | ダスクの地下 | 0x2a | 0x6da0 | ドラガデューン城B2 |
0x0b | 0x69c0 | コリンブルッフ洞穴 | 0x2b | 0x6dc0 | ドラガデューン城B3 |
0x0c | 0x69e0 | ボルカノ神殿 | 0x2c | 0x6de0 | 魔法の砦B1 |
0x0d | 0x6a00 | 鷹の目洞穴 | 0x2d | 0x6e00 | 魔法の砦B2 |
0x0e | 0x6a20 | ホワイトウルフ洞穴 | 0x2e | 0x6e20 | 森のあばら屋B1 |
0x0f | 0x6a40 | - | 0x2f | 0x6e40 | 森のあばら屋B2 |
0x10 | 0x6a60 | - | 0x30 | 0x6e60 | レイバン砦B1 |
0x11 | 0x6a80 | - | 0x31 | 0x6e80 | レイバン砦B2 |
0x12 | 0x6aa0 | - | 0x32 | 0x6ea0 | エルドラドB1 |
0x13 | 0x6ac0 | - | 0x33 | 0x6ec0 | エルドラドB2 |
0x14 | 0x6ae0 | - | 0x34 | 0x6ee0 | エルドラドB3 |
0x15 | 0x6b00 | - | 0x35 | 0x6f00 | (以降、キャラクターのステータス格納場所) |
0x16 | 0x6b20 | - | 0x36 | 0x6f20 | - |
0x17 | 0x6b40 | - | 0x37 | 0x6f40 | - |
0x18 | 0x6b60 | - | 0x38 | - | - |
0x19 | 0x6b80 | - | 0x39 | - | - |
0x1a | 0x6ba0 | - | 0x3a | - | - |
0x1b | 0x6bc0 | - | 0x3b | - | - |
0x1c | 0x6be0 | - | 0x3c | - | - |
0x1d | 0x6c00 | - | 0x3d | - | - |
0x1e | 0x6c20 | - | 0x3e | - | - |
0x1f | 0x6c40 | - | 0x3f | - | - |
マップIDと対比しやすくするため、あえて詰めず同じ並びにしておきました。オートマッピングが無効なマップは2つのグループがあって、1つ目はバーン地上エリア全域20マップです。このメモリ領域は別の用途に使われているようですが、何の用途か良く知りません。もう1つのグループはエルドラドB4、アストラル世界、イドの迷宮で、キャラクターステータスの格納場所となっています。
Might and Magicの攻略サイトを眺めていたら、ゲーム進行を大幅に高速化できる仕掛けを見つけました。エリアC1にある「魔力がみなぎる泉」(一時的に全員の魔法レベルMLが最大の7になる)です。
エリアC1の攻略情報は何回も見ていたのに、全然気づいていませんでした。TASVideosに投稿した矢先にこんなことに気づくとは。うーむ。
ML7になると全魔法が使えるようになりますから、魔法使いML3「ひこう」とML6「つうか」、僧侶ML6「まちへ」を利用して大幅にショートカットできます。ML7になる効果は「やすむ」と消えますがTASでは「やすむ」必要がありません。マップ移動と戦闘では効果解除されないので、実質、ゲームクリアまでML7を維持できます。これは素敵だ。
問題はLv.1ゆえにMPが少ないことです。初期キャラの魔法使い、ユーリエール(MP 10)でも「ひこう(消費MP3)」と「つうか(消費MP6, GEM 4)」でMPがなくなります。MPを増やしたり回復する手軽な方法はなさそうなので、他のキャラクターも魔法使いに転職させ、なるべく高いMPの初期値(「ひこう」が2回使える、6以上)を引き、頭数でゴリ押ししかありません。
あと「ひこう」の欠点、町から町に飛べない点を補うため、僧侶も1人仲間に入れて、僧侶ML6「まちへ(消費MP6、GEM 4)」を使います。
時間が掛かるルートを潰すことを重視して「まちへ」を1回、「ひこう」を5回で試しました。内訳は、
GEMはコリンブルッフで20個手に入るので「つうか」「まちへ」「転送x6」でも消費数は14個で、十分お釣りが来ますが、GOLDと違ってGEMは足りない時に1人に集める方法がありません。所持数4個未満になる分け方をすると「つうか」も「まちへ」もGEM不足で使えなくなり(どちらも消費GEM 4)、GEMを持っている意味がなくなります。
魔法はGEMがないと「つかえません」と冷たく言われるだけですけど、ソーピガルの転送おじさんは挙動が違います。基本的には先頭の人からGEMを1つ持っていきますが、先頭の人がGEM 0だったら次の人から持っていくみたいです。分け方を気にしなくて良いんだ、便利じゃん……。
今回紹介するルートはおそらく最速ではないです。下記は思いついたアイデア。
たぶん6人の方が早くなると思うんですけど、パーティー人数変えるときは、ほぼ最初からやり直しでしんどい(エンカウントの調整、タイミングのズレ修正が辛い)ので、まだ試していません。
下記では試作した更新版5人パーティーのTASで使った攻略ルートを簡単に説明します。まずは準備です。
メインクエストを解く順番は変えていませんが、地上をちんたら歩いていた部分を「ひこう」で積極的にぶっ飛ばします。
以上がMight and Magicの世界に起こった事件と、その謎に迫るメインクエストを超スピード解決する手順となります。初めてプレイする方がこの手順でクリアすると、たぶん訳が分からないと思います。
お時間がある方は、攻略サイトを見ながらでも構わないので、金の板や町のヒント、囚人たちなどに出会い話すと、しっかり作られた世界感が味わえると思います。
もう一つのメインクエストの流れです。オーラのクエストは、ストーリーにはあまり関係ないです。ラストダンジョンの歯ごたえを増すためのクエストという感じです。アストラル世界は全てのストーリーの終着点で、ああ、そういうことだったんだ!と思うはずです。
そろそろ改善できそうな点がなくなったので、18m43s版をTASVideos(サイトへのリンク)に投稿(TASVideos submissions: #7229: katsuster's NES Might and Magic in 18:43.92)しました。
私もあまり詳しい訳じゃないし、TAS動画の集まる有名サイトってくらいの認識しかなくて、仕組みを知りませんでした。投稿にあたりHow toを読んだ限りでは、下記のような仕組みみたいです。
YouTubeにTASVideosの投稿者名でTAS動画が投稿されていますが、あれはPublishされた動画のみです。ま、そりゃそうか。
< | 2021 | > | ||||
<< | < | 11 | > | >> | ||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
- | 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | - | - | - | - |
合計:
本日: