待ちに待ったSEGA AGES版がついに発売。期待を裏切らない魔改造の数々なわけですが、その中でも個人的に気になったのはステレオ化。インタビュー記事によると元データがステレオだったと書いてあるので少し調査。
FM音源に書き込んでるあたりを眺めていけば簡単に追えそう。ドライバはタイマーA/B両方使ってIRQ2のハンドラで動いてます。ワークエリアは$FFFF_9036から始まって108バイトづつ8チャンネル分。この各チャンネルのワークの中のオフセット+$42の位置に音色としての出力チャンネル、AMS、FMSのデータが書かれていて、実際にレジスタに書く時にはLFOの状態などを見てマスクされた値が使われる。で、チャンネル部分はここに用意される時点で既にモノラル化されているので、ここに書き込むところをいじってやる必要がある。該当するのは$0006_145F付近のコードで、パンに応じてテーブルを見てレジスタの値を作ってる。このテーブルが全チャンネルでセンターの値になってるので、それをセンター(0)、右(正)、左(負)と振り直せば良い。具体的には$0006_146Aからの3バイトを$C0,$C0,$C0から$C0,$40,$80に変更するだけで大丈夫。
実際に再生させるためには当然ながら基板の改造や、エミュレータの修正が必要なので注意。
しかし、こういうのは存在がわかってれば見つけるの簡単だけど、あるかどうかわからない状態で探し出してくるエムツーのスタッフには感謝しかない。
0 件のコメント:
コメントを投稿