不具合修正や各種動作チェックも完了し、ようやくカスタムサントラモードの実装が完了しました。オプション画面やマップ画面の BGM設定を「ノーマル」にすればデフォルトの楽曲が再生され、「カスタム」にすれば任意のBGMを自分で用意した楽曲と差し替える事が可能です(どちらのモードでも再生される楽曲は強制的にステレオ出力になります)。また、動画の通りBGM継続パッチにも対応し、カスタムモードで差し替えた楽曲は楽曲ごとにバイナリエディタやBNE2で音量の指定設定も可能です。カスタムサントラモードはMSU-1チップをサポートした一部のエミュレーターやフラッシュカートリッジ(Snes9xやbsnes、 FXPAK PROなど )でのみその機能を使用できますが、ノーマルモードであれば他の環境でも問題なくプレイ可能(カスタムモードにするとBGMが再生されないだけ)です。 現状で確認できる不具合…というか仕様として、カスタムモードでサウンドテストを選択して楽曲を再生させた後にメニューに戻すと、再度サウンドテストのウィンドウを開いた際に楽曲の項目が1番目(デフォルトであれば「時を越えて」)になってしまうというものがあります。特にプレイに支障が出るものでもないと思うのですが、一応修正するアイデアがないわけでもないので、できる事ならば修正しておきたいところです。 今回は事前の知識としてBGM継続パッチやサウンドドライバ、BGMにSE周りのシステム関連の解析を行っていたので割と容易に実装可能となりましたが、作業量やデバッグの手間を考えるとその時間を他のリソースに割く方が懸命に思え、MSU-1関連のパッチ作成は他のタイトルでは積極的にやりたくはないというのが本音ですね。
スーパーロボット大戦D以降で急速に増えていった「他の機体を呼び出して戦わせる武器(=召喚攻撃)」ですが、一応は第4次でも表現可能です。端的に言うと上の写真の「スクランダーカッター」の攻撃アニメーションのように「機体とは別のグラフィック」を「ミサイルやビームが表示されるスプライト領域」に表示させればいいのです(これはスプライトが切り替わる瞬間の写真で、この後マジンガーZの機体グラフィックは画面上から消えて、ミサイルなどを表示するスプライトに書き込まれたスクランダーカット状態のマジンガーZのグラフィックが画面外に向かって移動していきます)。これにより、現在戦闘している機体とは別の機体のグラフィックを表示させる事ができるという寸法です。また、両方のグラフィックをそのまま表示させておく事も可能なので、ダブルマジンガーブレードのような簡単なアニメーションの合体攻撃であれば演出自体を再現する事はそんなに難しくはありません。 ただ、この手法の問題点は地面や水中で戦う場合に足元の影を表示できなかったり、移動の際にスモークやスラスターの噴射炎が表示できないという事です。これに関しては今のところミサイルのグラフィックのように「呼び出された機体のグラフィックに直接影なり噴射炎なりスモークなりを書き込んでアニメーションさせる」という方法しか見つけていません。実は私が以前作ったゲッタービジョンのアニメーションも直接ゲッター2の機体グラフィックを動かしているわけではなく、敵側の画面に切り替わると同時にミサイルのスプライトに書き込んだ「ゲッター2のグラフィックの武器」の攻撃アニメーションを動かして分身攻撃を行っているのです(そのためゲッター2の足元に影が表示されていない)。同じような方法でジェットストリームアタックやトリプラーのような連携攻撃も表現可能ですが、現状では影をどうする事もできないのが大きな課題です。しかし、この方法で別グラフィックを表示させているはずのサンアタックやグランダッシャーでは影が表示されている事を考えると、実際にはスモークや噴射炎はともかく、影だけはどうにかできる方法があるのだと思います。この辺りについてはもっと解析が必要ですね。