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モードでは従来のBGM継続パッチは使用不能。MSUモード専用のBGM継続パッチを作成し、SPCモードとMSUモード双方のBGM継続プログラムをROMデータ内に収録し、必要に応じて切り替える必要がある。 これだけの労力を割く必要があるのか...
以前から研究を続けていたパイロットや機体の登録限界数を拡張した際に発生する不具合ですが、結論から言えば65体以上の登録は可能です。最大の課題はパイロットが機体に乗降しているか否かの判定フラグの変更でしたが、これの仕組みの解析と変更は既に可能なので理論上はパイロット・機体の双方を96体まで登録可能です。また、SRAMの容量を拡張して各種パラメーターをそれぞれのバンクに割り振りすれば正常なプレイが可能である事も確認できました。ただし問題点がないわけではなく、現状では中断コマンドでセーブしたりロードする際の各種データ転送の解析が上手くいっておらず、中断データをセーブ、またはロードすると正常にゲームを再開できません。エミュレーターのステートセーブを利用すればこの問題は解決できるのですが、できれば実機でプレイできる環境に持っていける事が理想なので、セーブやロードの際の各種データの遣り取りを中心に調査を進めていく予定です。