MMLCOMPILER MXDRV
※本WikiページはMXDRVの断片的な情報を集めた独自調査によるものです。そのため、記載漏れや誤解のある部分がある可能性があります。
MXDRVとはX68000シリーズ用に開発された、FM音源のYM2151(OPM)を制御する音源ドライバで、ADPCM音源のMSM6258(ADPCM)を制御する音源ドライバと連携動作します。MXDRVと、連携するADPCM音源ドライバは個別に進化し、最終的にはMXDRVの4オペレーターFM音源8音+PCM8系ADPCMドライバによるADPCM8音が標準となりました。
X68000以外でも同様の4オペレーターFM音源(YM2608B/OPNA)、同等の処理能力を持つPC98シリーズや、FM TOWNS(OPN2)、
X68と同じくYM2151を搭載するX1/turbo/Z(FM音源ボード、X1turboZでは標準搭載)やMSX(SFG-01, SFG-05)といったコンピュータにMXDRVの作成・実行環境が移植されています。現在主流となったWindows用PC(元々のPC/AT互換機)でもX68000のハードウェアエミュレーションで再現する単独アプリケーションとして、多くの関連プログラムが実装されています。
本WikiではMSX移植版のMXDRVの視点を中心に記載しています。他機種版の詳細については、多くのブログやサイトで解説されているので本Wikiでは必要最小限にとどめています。
Contents
MXDRVのバージョンについて
現在(2021年6月)も入手できるファイルで確認したところ、最新(最終)バージョンは2.06+17で、β版の扱いではあったようですが、多くの機種に移植されています。
また最盛期に80-90年代のPC各機種に移植されていたのは2.06の16までのバージョンです。今でも手に入るバージョンは機種ごとに違います。2.06+16はさらに下位バージョンがあるものもあります。2.06+15は2.06+16の初期バージョンに同梱された、作者ドキュメントにも記載があるように多くの下位バージョンがあったようですが、現在(2021年6月)の時点ではインターネットで入手できるものは見つかりませんでした。
バージョンの表示については、必ずしも規則的ではないのですが、いくつかのファイルでみられる命名規則があったと推測されます。
“MXDRV2”のスタイルでは、メジャーバージョンの”2”が入っています。
“MXDRV??”のスタイルでは2.06以降の、”+Rel.”に続く下位バージョンがファイル名に入っています。
そのほかの関連ツールでは対応するMXDRVではなく、ツール自体のバージョンがファイル名に入っています。
音源ドライバのバージョン
MXDRVは既に圧倒的な量の曲データが公開されておりますが、Windowsで利用できるプレイヤーは最新版の仕様に基づいて実装されているため、通常の使用ではバージョンを気にする必要は全くありません。
しかし、Windows以外の各機種でMXDRVを使用する場合にはこの下位バージョンを意識する必要があるかもしれません(未検証)
80-90年代のFM音源が搭載されていた機種で、当時移植されたドライバ(X680x0, PC/AT互換機, PC-98, PC-88VA, FM TOWNS, X1/turbo/Z, MSX)で.mdxファイルを再生する場合、付属のMMLコンパイラを使用して、バージョンを合わせた.mdxを生成する必要があるかもしれません(これも未検証)
MMLコンパイラのバージョン
Windows用のネイティブアプリケーションとして動くMMLコンパイラが今現在(2021年6月)見当たらないので、X680x0かMS-DOS版をWindows上でコマンドラインのエミュレーターを介して使用することになります。
mxc.x | MXC101.LZH | X68用 |
note.x | NOTE085.LZH | X68用 |
tmc.x | ※TMCDMDX.LZH | X68用 |
tmc2.r | TMC2.LZH | X68用 |
mac.x | MADRV201.LZH | X68用 |
※mxc.com | MXD2063.LZH | MS-DOS用(PC98/PCAT) |
※以上G.I.M.I.C総合WIKIの情報に加筆修正
mxc.com | MXDRV12.LZH | MSX(MSX-DOS2)用 |
ULTRA-X | github | PYTHON3 |
※MSX版は挙動が不安定で、原因不明のエラーが発生します。
再生環境について
MSX移植版
MSXへの移植版はMGSDRVの作者でもあるAin.氏の作成したものだけが存在確認されています。PC98版から移植した旨がそれぞれのドキュメントに記載されています。
現在MSX版のMXDRVはメンテナンスされていないようです。 唯一以下のブログでのみアーカイブがダウンロードできます。
http://msxlife.seesaa.net/article/381575083.html
MSX版はYAMAHAの専用拡張スロット用の音源モジュール、SFG-01(OPM/YM2151)もしくはSFG-05(OPP/YM2164)とMFP製のPCMカートリッジが対応しています(当時のチラシには「開発中」の記述があるものの、残念ながら詳細は不明です)。
MSX版ファイル一覧
./MXDRV12: | 記載/表示のないものも2.06+12対応版? | ||
MDX2MUS.COM | MDXファイルをMUSへ戻す為のツール | ||
MDX2MUS.DOC | ↑解説 | ||
MXC.COM | mxdrv用MMLコンバータ | ||
MXC_MSX.DOC | ↑解説 | 2.06+12 | |
MXCTRL.COM | MXDRVの一部の機能をキーボードから操作できるようにする | ||
MXCTRL.DOC | ↑解説 | ||
MXDRV.COM | MXDRV本体 | ||
MXDRV.DOC | ↑解説 | 2.06+12 | |
MXDRVM12.HED | 転載用ヘッダファイル | 2.06+12 | |
MXP2.COM | mxdrv用の音楽データ(MDX)を演奏するためのプログラム | ||
MXP2.DOC | ↑解説 | ||
MXPV.COM | パート毎の音階、音色、LFOなどの状態をリアルタイムに表示 | ||
MXPV.DOC | ↑解説 | ||
PDEX.COM | PCMファイル(.PDX)を個々のPCMへ分割 | ||
PDEX_MSX.DOC | ↑解説 | ||
PDXLOAD.COM | PCMファイル(.PDX)をロードする為のプログラム | ||
PDXLOAD.DOC | ↑解説 | ||
PDXM.COM | PCMファイルを連結してmxdrv用のPCMファイル(.PDX)を作る | ||
PDXM_MSX.DOC | ↑解説 | ||
README.DOC | 概説 | ||
UPDATE.DOC | 前バージョンからの変更点 | ||
./MXDRVDOC: | |||
MXDRV.INC | アセンブラ用ラベル | ||
MXFUNCM.DOC | ファンクションコール仕様書 | 2.06+07~ | |
MXFUNC.HED | 転載用ヘッダファイル | 2.06+07 | |
MXPART.DOC | パートワーク構造(データオフセット) | 2.06+07~ | |
README.DOC | 概説 | ※2.06+10 | |
./MXP2101: | |||
MXP2.COM | mxdrv用の音楽データ(MDX)を演奏するためのプログラム | MXDRVDOC\READMEの記述によれば2.06+10? | |
MXP2.DOC | ↑解説 | ||
MXP2.HED | 転載用ヘッダファイル | ||
MXP2.MAC | アセンブラソースファイル | ||
./MXPV102: | |||
MXPV.COM | パート毎の音階、音色、LFOなどの状態をリアルタイムに表示 | MXDRVDOC\READMEの記述によれば2.06+10? | |
MXPV.DOC | ↑解説 | ||
MXPV.HED | 転載用ヘッダファイル | ver2.06+05以上 | |
MXPV.MAC | アセンブラソースファイル |
MXDRV技術仕様
MXDRVgプログラムソース | 2.06+17 | “MXDRV for Win32 [MXDRVg“] |
mxdrv 2.06+16 Rel.3 | 2.06+16 Rel.3 | RetroPC.net MXDRV163\MXDRV163.DOC |
MXDRV v2.06+16/02EX 内部資料 | 2.06+16/02EX | MDX@ウィキ/MXDRVデータ資料 |
mxdrv 2.06+16 Rel.1 (mxdrv16.x) 簡易説明書 | 2.06+15.x〜2.06+16 Rel.1差分 | RetroPC.net MXDRV206\MXDRV16.DOC |
X68k MDX AUDIO DRIVER version 2.01a STD/2.06+15/16 | 2.06+15/16相当を含む上位互換? | MADRV201\MADRV201.DOC |
ファンクションコール仕様 | 2.06+07〜 | MSX版アーカイブ MXDRVDOC\MXFUNCM.DOC |
パートワーク仕様(データオフセット) | 2.06+07〜 | MSX版アーカイブ MXDRVDOC\MXPART.DOC |
PC98/88VA FM-TOWNS version 2.06 ファンクションコール | 2.06 | MXD2063\DOC\MXFUNC.DOC |
.MDXデータフォーマット | 2.06+3 | MXD2063\DOC\MDXFORM.DOC |