スキップしてメイン コンテンツに移動

投稿

1月, 2025の投稿を表示しています

最新の投稿

第3次スーパーロボット大戦 反撃命令による武器や行動選択の解析結果

 反撃命令による武器選択の基準がよく分からないと言われているSFC版第3次スーパーロボット大戦ですが、反撃命令の設定箇所をざっと解析してみたところ、それぞれの命令で使用武器の選択基準が違っている事が分かりました。大まかな内容ですが、基本的には以下のような基準で反撃武器や行動を選択しています(なお、原則として敵軍やNPCのパイロットは「必ず反撃せよ!」に設定されています)。  「必ず反撃せよ!」は、残弾や残りENにかかわらず命中率が1%以上ある最強の武器を選択。その武器の命中率がゼロになる場合は、次に威力が高く命中率が1%以上ある武器を選択するという思考を繰り返す。どうしようもない場合は命中率がゼロでもとにかく現状で使用可能な最強の武器を選択する。これに合致する武器がない場合は反撃不能扱いになる。弾切れや射程外からの攻撃には何もしない。先攻側の攻撃でHPがゼロになると判断しても反撃を試み、それができない場合は反撃不能扱いとなる。原則として武器選択の際に相手の残りHPは考慮しないため、反撃相手のHPが仮に残り1であろうとも最強の武器で反撃する。前述の通り、敵軍やNPCは原則としてこの命令が設定されているため、回避力(=パイロットの反応と操縦と直感の総和に機体のサイズ補正を適用した数値)が低いユニットは威力重視の武器で反撃される事が多い。残弾やEN消費も気になるところだが、分身持ちであるゲッター2系やF91であればこの命令を活用できるかもしれない。  「積極的にいけ!」は、相手が一撃で倒せる場合は命中率が1%以上ある最強の武器を選択。但し、その武器の残弾が残り1だったり、その武器を使用してもう一度使用できるだけの残りENがなくなる場合は使わず、次に威力が高く命中率が1%以上あり、かつ残弾が残り2以上か現在のENで二回以上使用できるEN消費武器を選択するという思考を繰り返す(EN消費武器に関してはたまに例外あり)。どうしようもない場合は弾切れ、またはEN枯渇にならない命中率がゼロの現在選択できる最強の武器を選択する。これに合致する武器がない場合は反撃不能扱いになる(そのため、条件を成立させれば弾切れでなくともパイロットが弾切れの台詞を吐く姿を拝める)弾切れや射程外からの攻撃には何もしない。。相手を一撃で倒せない場合の思考も同様。やはり原則として武器選択の際に反撃相手...

第4次スーパーロボット大戦 カスタムサントラモード完成

 不具合修正や各種動作チェックも完了し、ようやくカスタムサントラモードの実装が完了しました。オプション画面やマップ画面のBGM設定を「ノーマル」にすればデフォルトのSPC音源の楽曲が再生され、「カスタム」にすれば任意のBGMを自分で用意したPCMファイルの楽曲と差し替える事が可能です(どちらのモードでも再生される楽曲は強制的にステレオ出力になります)。また、動画の通りBGM継続パッチにも対応し、カスタムモードで差し替えた楽曲はバイナリエディタやBNE2で楽曲ごとに音量とループの有無の設定が可能です。カスタムサントラモードはMSU-1チップをサポートした一部のエミュレーターやフラッシュカートリッジ(Snes9xやbsnes、FXPAK PROなど)でのみその機能を使用できますが、ノーマルモードであれば他の環境でも問題なくプレイ可能(カスタムモードにするとBGMが再生されないだけ)です。  今回は事前の知識としてBGM継続パッチやサウンドドライバ、BGMにSE周りのシステム関連の解析を行っていたので割と容易に実装可能となりましたが、作業量やデバッグの手間を考えるとその時間を他のリソースに割く方が賢明に思えます。また、PCMファイルの配布も様々なリスクが付きまとう事を考えると、何か余程の事がない限りMSU-1関連のパッチ作成は他のタイトルでは積極的にやりたくはないというのが本音ですね。

第4次スーパーロボット大戦 ジェノサイド・マシンパッチ改を公開しました

 以前公開していた「ジェノサイド・マシンパッチ」(敵フェイズの戦闘BGMを「ジェノサイド・マシン」に固定化するパッチ)の改良版を作成しました。以前との違いは「レベルアップジングル変更パッチ」の要素を組み込む事により、BGMが途切れる事なく再生できる点とレベルアップ時の処理速度が向上する点です。その他には特に変更点はなく、ボス属性の機体に搭乗した敵ユニットとの戦闘ではボス属性のBGMが優先されるのもそのままです。ダウンロードは以下のURLから。ファイルの解凍パスワードは以前と同じですので、そちらの記事をご参照下さい。 https://ux.getuploader.com/retrogamelaboratory/download/99

第4次スーパーロボット大戦 続・PCMファイル再生パッチ作成の進捗状況と課題

 MSU-1を使用したBGMファイル再生パッチですが、テストを重ねたところ色々と不具合が見つかってしまい作業が難航しています。最初に難航したのは安定したBGM再生ができないという不具合でしたが、これは主にMSU-1のコマンドパラメーターを書き込むRAMの選定箇所が問題だった(未使用領域だと思っていた場所が実際には使用領域だったためコマンドパラメーターが上書きされてしまう)事が判明し、コードの記述が長くなるのを覚悟で未使用と思われる普段のパッチ作成では使用しないRAM領域に一時データを収める事で解決しました。しかしこれだけではまだまだ問題が解決していません。現状では以下のような課題が残っています。 モノラル/ステレオフラグを使用する事でBGMのSPC/MSU切り替えが可能になったが、これによりBGMを強制ステレオ化(或いは強制モノラル化)する処理が必要。 MSUモードの状態でサウンドテストを使用し、選択したBGMをそのままの状態で再度選択するとそのBGMが頭から再生されない、または無音になる。原因は不明(但し、別のBGMを選択した後であれば問題なく再生は可能)。拘るのであれば強制的にBGMを再度再生するためのサブルーチン作成が必要か? MSUモードの状態でカラオケモードを選択すると正常に歌詞が流れない(戦闘アニメーションだけが流れ続け、何かボタンを押せばキャンセル扱いでカラオケモードが終了する)。拘るのであればカラオケ画面読み込み時に強制的にSPCモードにし、カラオケ画面から抜ける際に直前のモードフラグを復帰させる機能が必要。 MSUモードからSPCモードへの切り替え時に、画面切り替え等で次のBGMが再生されるまでの間は無音の状態になってしまう(逆の場合は次のBGMが再生されるまでMSUのBGMが流れ続ける)。モード切り替え時に2006(MSUボリューム)を強制的に0にする処理をしている事が原因であるため、SPCでのBGM再生時のサブルーチン内部に2006を0にするコマンドを組み込めば解決できるのではないか。 MSUモードでサウンドテストを選択して一度サウンドテストから抜け、SPCモードに切り替えてそのまま再度サウンドテストを選択すると楽曲の選択タイトルが強制的に一番目のもの(時を越えて)になってしまう。逆の場合はこのような現象は発生しない。  これ...

第4次スーパーロボット大戦 PCMファイル再生パッチ作成の進捗状況と課題

 MSU-1チップ導入によるPCM音源再生パッチの進捗状況ですが、やはり当初に思っていたよりも難解な技術というものではなく、割と簡単にMSU-1チップを介してPCMファイルを読み込み・再生する事には成功しました。しかし問題がない訳ではなく、特定のエミュレーターでしかMSU-1チップを組み込んだROMイメージが正常に動かず(具体的には現状で対応しているのはbsnes-PlusとSnes9xの2種類のみ)、それ以外のエミュレーターや実機でROMイメージを起動させるとゲーム自体はプレイできるもののBGMが再生されなくなってしまいます。これはMSU-1チップがあくまで発案者による架空の存在であるため、このチップに対応するプログラムが組み込まれたエミュレーターでないとPCM音源が再生されない(というかハードウェアレジスタンスが無効となりMSU-1チップを認識しない)ために起こる不具合です。つまりMSU-1チップを組み込んだROMイメージは嫌でも指定のエミュレーターでしかまともにプレイできなくなるという問題が生じる事になり、SNESGTをメインに使用する私としては少々モチベーションが下がってしまう思いです。  さて、PCM音源再生パッチを作成したはいいのですがもう一つの問題があります。それは「カラオケモードで字幕が一切先に進まなくなる」というものです。カラオケモードはSPCデータの内容とリンクして文字が切り替わる仕組みになってるので、PCMファイルでBGMを再生させた場合はこれが成立しなくなってしまうために起こる不具合です(不具合といっても字幕が更新されないだけでフリーズしたりする訳ではなく、キャンセルしたり本来のBGMの長さと同じだけの時間が経過すればカラオケ画面から曲目選択メニューに戻る事は可能です)。解決方法としては二つあり、一つはプランA「諦めて放置するかカラオケモードに入れないようにロックを掛ける」、もう一つはプランB「カラオケモードのカラオケ画面に入る際にカラオケモードフラグをONにし、このフラグが立っている間だけ本来のサウンドドライバによるSPCモードのBGMが再生されるように処理を切り替え、カラオケ画面終了と同時にフラグをOFFにする」というものです。作業としてはどう考えてもプランAの方が楽なのですが、折角なのでプランBが実際に実現可能なのか試...