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

投稿

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

最新の投稿

第4次スーパーロボット大戦 合体式複数パイロット乗り機体用特殊台詞の設定アイデア

 第4次スーパーロボット大戦ではコン・バトラーVダンクーガ、ザンボット3といった合体後に複数パイロットが乗るようになる機体のサブパイロットの台詞を反映させる機能はありませんが、以前作成したゲッターチームの仕様変更のシステムを応用すれば「F」以降のコン・バトラーVのように合体後専用の特殊台詞を反映させる事が可能であると判明しました。  具体的な手法は「特定のパイロットが特定の機体に搭乗している場合はSRAM上のパイロットIDを保持したままRAM上のパイロットIDを入れ替える」というもので、これは以前にも少し触れたハイパーモードや暴走システムの手法と同じものですが、これを応用すれば、例えばバトルジェット搭乗時の豹馬とコン・バトラーV搭乗時の豹馬のパイロットIDを個別に用意する事で異なる台詞パターンを適用できるという事も可能になります。また、同時に複数精神コマンドのサブパイロット適用パターンも変更できるため、非分離型のコン・バトラーVを用意するといった必要もなくなります。但しこの方法には欠点もあり、例えば敗北条件に豹馬の撃墜が設定されている場合にこのパイロットIDが合体前と合体後で別々であると、パイロットIDが合致しなくなってしまった途端に敗北条件を満たしてゲームオーバーとなってしまいます(これはハイパーモードや暴走の再現時にも当てはまる問題です)。そのため、台詞の変更のみに留めるのであれば特殊サブルーチンを組んで特定のパイロットが特定の機体に搭乗している場合は台詞の参照IDを変更(例えば、豹馬がコン・バトラーV搭乗の場合は通常の台詞IDではなく専用の台詞IDを参照)するという手法の方がいいのかもしれません。もっとも、シナリオ上での敗北条件を設定する際にそれら両方のパイロットIDを全て確認できなかった場合にのみ敗北とすれば問題はないので、あくまで好みの問題とも言えそうです。

第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が実際に実現可能なのか試...