不具合修正や各種動作チェックも完了し、ようやくカスタムサントラモードの実装が完了しました。オプション画面やマップ画面の BGM設定を「ノーマル」にすればデフォルトの楽曲が再生され、「カスタム」にすれば任意のBGMを自分で用意した楽曲と差し替える事が可能です(どちらのモードでも再生される楽曲は強制的にステレオ出力になります)。また、動画の通りBGM継続パッチにも対応し、カスタムモードで差し替えた楽曲は楽曲ごとにバイナリエディタやBNE2で音量の指定設定も可能です。カスタムサントラモードはMSU-1チップをサポートした一部のエミュレーターやフラッシュカートリッジ(Snes9xやbsnes、 FXPAK PROなど )でのみその機能を使用できますが、ノーマルモードであれば他の環境でも問題なくプレイ可能(カスタムモードにするとBGMが再生されないだけ)です。 現状で確認できる不具合…というか仕様として、カスタムモードでサウンドテストを選択して楽曲を再生させた後にメニューに戻すと、再度サウンドテストのウィンドウを開いた際に楽曲の項目が1番目(デフォルトであれば「時を越えて」)になってしまうというものがあります。特にプレイに支障が出るものでもないと思うのですが、一応修正するアイデアがないわけでもないので、できる事ならば修正しておきたいところです。 今回は事前の知識としてBGM継続パッチやサウンドドライバ、BGMにSE周りのシステム関連の解析を行っていたので割と容易に実装可能となりましたが、作業量やデバッグの手間を考えるとその時間を他のリソースに割く方が懸命に思え、MSU-1関連のパッチ作成は他のタイトルでは積極的にやりたくはないというのが本音ですね。
機体が撃破されて爆発すると通常は赤い爆炎を上げて爆発し、艦艇や超大型の機体など(=LLサイズのユニット)は轟音と共に画面が真っ白になります。そして一部の機体は爆縮のよう演出の後に光の玉になって爆発します。これはBGMのIDが「12(=「ヴァルシオン」)」以上の「ボス設定(=優先BGM設定)」されている機体に見られる現象で、更にこれらの機体はマップ上で爆発する際には、エフェクトが通常の赤い爆炎ではなく上の写真のように光の柱となります。「だからどうした」と言ってしまえばそれまでなのですが、戦闘用のBGMを追加してBGMの優先IDを変更する際にボス設定したくない雑魚ユニットが下の写真のように撃墜する毎に派手な爆発をするのを見たくないという方もいらっしゃる事でしょう。そこで、BGMの優先IDを変更する際には爆発エフェクトを制御する箇所を書き換えてしまうのが有効です。 まずはBGMの優先IDか否かの判定箇所ですが、03DD5~D7と03DD75~77の「E0 12 00」(後期ROMであれば03DD97~99と03DDB7~B9)がそれに該当します。これは戦闘画面での先攻側のBGMのID判定、及び後攻側のBGMのID判定を行っている部分であり、これが「12 00」(=「ヴァルシオン」)以上であれば優先してBGMが再生されるという仕組みです。何らかの理由でBGMの優先順位を変更したい場合はこの数値を書き換える必要があります。 次に、戦闘画面での爆発エフェクトを強制的に光の玉に変更している箇所を記します。これは03FB64~66の「C9 12 00」(後期ROMであれば03FAEB~ED)が該当し、これも「ヴァルシオン」以上のIDが割り振られている機体であれば爆発エフェクトが光の玉になるというわけです。 最後に、マップ上での爆発エフェクトを光の柱に変更している箇所を記します。これは初期ROMでも後期ROMでも同一で、029A5D~5Fの「C9 12 00」がそれに該当し、これも「ヴァルシオン」以上のIDが割り振られている機体であれば爆発エフェクトが光の柱になるというわけです。これらを全て同じ数値にしてしまってもいいのですが、それぞれのIDをうまく調整すれば「撃墜時に普通の爆発をするがマップ上では光の柱が立つ」といった変化球的な事もでき...