FM音源の実機環境を構築中
Battle Hanafuda の Version 0.15 では、FM音源(YM2612 / OPN2)に対してアナログ・エミュレーションのエフェクタを実装しました。
これにより、FM音源のサウンドはより「実機」に近づいたと考えています。
本作のゲームエンジン(VGS-X)では、ymfmベース(MAME由来)のYM2612エミュレータを採用しており、デジタル波形の再現性自体は非常に高いレベルにあります。
しかし実機では、音源ICが生成したデジタル信号はDACを経由してアナログ変換され、その後スピーカーやLINE OUTへと出力されます。この「アナログ変換以降の回路構成」によって最終的な音質は大きく変化します。
つまり、単純にFM音源の波形を再現するだけでは不十分であり、「どの実機環境を基準にするか」を明確にしなければ、アナログエミュレーションの方向性が正確には定まりません。
実機の定義
YM2612はメガドライブの音源として知られていますが、実際には本体の型番によって音の特性が大きく異なります。そのため、「メガドライブ基準」という定義もやや曖昧です。
そこで今回は、Project RE:birth を用いて独自にYM2612の実機環境を構築し、その出力を基準としてVGS-X側のエミュレーションをチューニングするアプローチを採用しました。
Project RE:birth
このプロジェクトの存在は以前から認識していました。
2013年頃、秋葉原のラジオデパートでFM音源ICのガチャガチャが話題になり、その流れで電子工作キットとして展開されたものと記憶しています。
当時は「電子工作スキル必須」という点がハードルとなり手を出せませんでしたが、2023年頃にMSX0をきっかけとして電子工作に取り組み始めたことで一定の電子工作スキルが身についたと思われるので、今回満を辞して挑戦することにしました。

制御モジュールの実装
Project RE:birth では、SCCI(Sound Chip Common Interface)を利用したVGMプレイヤー(Windows用)が提供されています。
ただし、YM2612の制御自体はシンプルで、以下の信号を扱えれば十分です。
8bitデータバス(D0〜D7)
2bitアドレスバス(A0〜A1)
/CS, /WR, /IC
つまり、最低13本のGPIOがあれば制御可能です。
この要件から、制御モジュールには Raspberry Pi Pico を採用しました。
また、ソフトウェアについても既存のプレイヤーやディスコンの規格(SCCI)に依存せず、PlatformIOベースで自前実装する方針としました。
公式サイトで「開発終了」のアナウンスがされていたので規格がディスコンかとミスリードしてました。
どうやらSCCI2という形で開発は継続されているようなので訂正します。ただし、マニュアルやライセンスを読んだ限りでは扱い難い内容だったため、ソフトは自前実装を推奨という結論は変わりません。
自前実装例:
https://github.com/suzukiplan/re1-ym2612-pico/tree/master
配線仕様さえ決まれば、あとはプロンプトベースでコード生成できるため、自前実装の方が結果的に効率が良いという想定です。
現状

現在は、Aliexpressで注文したYM2612チップの到着待ちです。
ジャンク品からの取り外し(リワーク)も検討しましたが、近所では入手できず、メルカリでは価格・作業コストともに見合わなかったため、今回は新品調達としました。
まぁ、Aliexpressだから新品ではないでしょうけど😅
今後の予定
YM2612が到着次第、自作楽曲を用いて「実機」と「エミュレータ」の双方をサンプリングし、その差分を定量的に分析する予定です。
具体的には、周波数特性やダイナミクスの違いを比較しながら、実機の出力により近づけるためのエフェクタ設計(ポストアンプ/フィルタ特性)の改良を行います。
ただし、アナログ回路由来の特性まで含めて完全に一致させることは現実的ではなく、エミュレーションには一定の限界があると考えています。
そのため別のアプローチとして、実機で収録した音源そのものを「正解系」として扱い、Steam上でオリジナルサウンドトラック(OST)として提供する展開も検討しています。
エミュレーションによる再現と、実機収録によるアーカイブ。この2系統を併用することで、FM音源の魅力をより高い精度で届けることを目指します。
【Battle Hanafuda】
