不具合修正や各種動作チェックも完了し、ようやくカスタムサントラモードの実装が完了しました。オプション画面やマップ画面の BGM設定を「ノーマル」にすればデフォルトの楽曲が再生され、「カスタム」にすれば任意のBGMを自分で用意した楽曲と差し替える事が可能です(どちらのモードでも再生される楽曲は強制的にステレオ出力になります)。また、動画の通りBGM継続パッチにも対応し、カスタムモードで差し替えた楽曲は楽曲ごとにバイナリエディタやBNE2で音量の指定設定も可能です。カスタムサントラモードはMSU-1チップをサポートした一部のエミュレーターやフラッシュカートリッジ(Snes9xやbsnes、 FXPAK PROなど )でのみその機能を使用できますが、ノーマルモードであれば他の環境でも問題なくプレイ可能(カスタムモードにするとBGMが再生されないだけ)です。 現状で確認できる不具合…というか仕様として、カスタムモードでサウンドテストを選択して楽曲を再生させた後にメニューに戻すと、再度サウンドテストのウィンドウを開いた際に楽曲の項目が1番目(デフォルトであれば「時を越えて」)になってしまうというものがあります。特にプレイに支障が出るものでもないと思うのですが、一応修正するアイデアがないわけでもないので、できる事ならば修正しておきたいところです。 今回は事前の知識としてBGM継続パッチやサウンドドライバ、BGMにSE周りのシステム関連の解析を行っていたので割と容易に実装可能となりましたが、作業量やデバッグの手間を考えるとその時間を他のリソースに割く方が懸命に思え、MSU-1関連のパッチ作成は他のタイトルでは積極的にやりたくはないというのが本音ですね。
スーパーファミコンのSRAMを外付けRAMとして使用する場合のメモリマップの割り当てに関する詳細な資料が見当たらなかったので独自に調査してみました。今回はHiROMでのメモリマップで、対応するメモリの位置は以下のような内容(左:SFC本体側のメモリマップ上の位置、右:SRAM側のメモリマップ上の位置)になります。これを使う事はほとんどないと思われますが、何かの参考になれば幸いです。
・8KB…306000~307FFF(0000~1FFF)のみ使用。・16KB…8KBまでの領域+
316000~317FFF(2000~3FFF)を使用。
・32KB…16KBまでの領域+
326000~327FFF(4000~5FFF)
336000~337FFF(6000~7FFF)を使用。
・64KB…32KBまでの領域+
・64KB…32KBまでの領域+
346000~347FFF(8000~9FFF)
356000~357FFF(A000~BFFF)
366000~367FFF(C000~DFFF)
376000~377FFF(E000~FFFF)を使用。
・128KB…64KBまでの領域+
386000~387FFF(10000~11FFF)
396000~397FFF(12000~13FFF)
3A6000~3A7FFF(14000~15FFF)
3B6000~3B7FFF(16000~17FFF)
3C6000~3C7FFF(18000~19FFF)
3D6000~3D7FFF(1A000~1BFFF)
3E6000~3E7FFF(1C000~1DFFF)
3F6000~3F7FFF(1E000~1FFFF)を使用。
コメント
コメントを投稿