作る際に、何をベースに作ろうか調べていたら、いつの間にかmxdrvのエミュレーションの歴史を調べていました。昔のソフトはサイトもバイナリも消えていて、いつ頃登場したのかどんなソフトだったのかもよく分からないのもあります。他にもただ繋ぎこんだもの(拙作のmodpとか)やプラグイン系があると思いますが、mdxのデコード、YM2151のエミュレート、プラットフォームの変化に絞ると下記のソフトくらいになりそうです。実機バイナリから逆アセンブルして移植。←Newエミュレーションは98年頃から始まったようです。その頃はログを読むとMDXDRVを筆頭にWinMDX,MDXWinの御三家が存在したようです。当時はMDXDRVの再現性が圧倒的だった記憶があります。MDXWinは演奏のコアの部分は現在手に入る最新だとMDXDRVm.dllというものを使っているようですが、これが何なのか既に僕には分かりません。98年当時は何を使っていたのかも既にバイナリが手に入らず不明です。2/17追記)この頃はYM2151(OPM)のエミュレーション技術がm_puusanのx68sound.dllによって急激に完成しつつ有り大きな衝撃を受けたものです。MXDRVのエミュレーションに限らずEX68というX68自体のエミュレーションの黎明期でもありました。非常に感動しましたので、私はX68k内蔵音源をWindowsのWave出力で再現する研究を行ってみました。」とあるのでEX68登場後に開発が行われたようです。あと知らなかったのですが、Linux向けにはmdxplayというものがその少し後に出たようです。MAME用に作られたYM2151エミュのデキに驚いて作ったという旨のことが書いてあり、MAMEのym2151.cを使っているのが特徴です。MDXパーサは独自です。Nagano氏はSTed2等もLinuxに移植されている強者ですね。海外も含め、この時期にFM音源のリアルタイムエミュレート技術が一気に進んだようですね。これはマシンパワーの向上から起きた歴史の必然なのでしょうか。次にエポックメイキングだったのはGORRY.氏のMXDRVgです。これはソースを読んでいただければ分かりますが、dis.xで逆アセンブルしたものをそのままCに落とし込んだものです。これでmxdrv自体(つまりMDXを読んでYM2151のレジスタを叩くところまで)に関しての競争に終止符が打たれました。理論上完全な互換性を持っていますからね。Onlineという機能は革命的でした。手元にMDXが無くても流通した大部分のMDXが聞けてしまうという脅威のサービスでした。AFで引き継がれているようです。GORRY.氏はさらにそのMXDRVgを使ったAndroid向けのプレイヤも開発しました。このときYM2151のエミュレーションはx68soundからm88のサウンド部をベースに作られたcisc氏のfmgenに切り替わっています。分かりませんが、この方が再現性が高いということなんでしょうか。これまでのMXDRVgへの信頼とarm向けにコンパイル実績があることから、RasPi向けにmdx2wavではこれをベースとしました。これでほぼMDX再生の実装は決定的か、と思いきや、mdxplayベースのAndroid用のアプリがBoukichi氏からリリースされ、曲によってはこの方が再現性が高いのでは、という声もあるようです。(ということでmdx2wavにはmameのym2151.cも組み込んでみた)iOS用に出ているのはgamdxベースですね。この紹介記事が秀逸です。iOSがリリースそれからサウンドの再生に極限まで拘ったPI.氏のX68エミュレータ、XM6の存在も大きいと思います。XM6の既に開発は止まっていますが、それを引き継いでYM2151エミュレーションの部分をMAME等に差し替えられるようにしたりM-UNITに対応したXM6Gがあります。この上で楽曲に最適なドライバで演奏するのが最強かもしれません。http://www.geocities.jp/kugimoto0715/xm6g_win32.htmlなおBoukichi氏より「fmgenはMAMEを参考にスクラッチで作りなおした」ものではないか、とのこと。Satoh氏の尽力によって大幅に再現性が向上したという情報。確かに検索するとMAMEへのコントリビューションで大量に名前が出てきます。