MMLCOMPILER MXDRV

From MSX MUSIC WIKI
Revision as of 17:56, 22 June 2021 by Kumokosi (talk | contribs) (MMLコンパイラのバージョン)
Jump to: navigation, search

MXDRVとはX68000シリーズ用に開発された音源ドライバで、元々はFM音源のYM2151(OPM)、ADPCM音源のMSM6258(ADPCM)を制御する音源ドライバでした。ADPCMの再生ドライバが発展するにつれFM音源とADPCM音源の連携は深まり、最終的にはPCM8により、4オペレーターFM音源8音+ADPCM8音が標準となりました。 X68000と同様の4オペレーターFM音源(YM2608B/OPNA)、処理能力を持つPC98シリーズや、FM TOWNS(OPN2)、同じYM2151を搭載する別シリーズのX1/turbo/Z(FM音源ボード、X1turboZでは標準搭載)やMSX(SFG-01, SFG-05)といったコンピュータにMXDRVの作成・実行環境が移植されています。現在主流となったWindows用PC(元々のPC/AT互換機)ではX68000の環境をエミュレーションによって再現する形で単独アプリケーションとして、多くの関連プログラムが実装されています。これらの詳細については多くのブログやサイトで解説されているので割愛します。本WikiではMSX移植版のMXDRVの視点を中心に記載していますが、比較のためなど、必要に応じてこれら他機種版の環境にも言及します。

MXDRVのバージョンについて

現在(2021年6月)も入手できるファイルで確認したところ、最新(というか最終)バージョンは2.06+17で、β版の扱いではあったようですが、多くの機種に移植されています。

また最盛期で他機種に移植されていたのは2.06の16までです。2.06+16はさらに下位バージョンがあるものもあります。また2.06+15は作者ドキュメントにも記載があるように多くの下位バージョンがあったようですが、現在(2021年6月)の時点ではインターネットで入手できるものは見つかりませんでした。


バージョンの表示について、当時はユーザー間での共通認識だったかもしれませんが(本Wiki管理者も含めて)新規ユーザーに分かりにくい点があります。

必ずしも規則的ではないのですが、いくつかの機種のファイルでみられる命名規則があります。

“MXDRV2”メジャーバージョンの”2”が入っています。

“MXDRV??”2.06ではマイナーバージョンアップが続き、”+Rel.”に続く下位バージョンがファイル名に入っている場合があります。

音源ドライバのバージョン

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

データ作成