MMLCOMPILER MXDRV

From MSX MUSIC WIKI
Revision as of 10:02, 24 June 2021 by Kumokosi (talk | contribs) (MMLコンパイラのバージョン)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

※本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では必要最小限にとどめています。

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を使用する場合にはこの下位バージョンを意識する必要があるかもしれません(未検証)。少なくともマイナーバージョンアップによる仕様変更が確認されており、旧バージョンのツールで、新バージョンのデータを読み込んだ場合の挙動は不明です。

FM音源が搭載されていた80-90年代当時の機種に移植されたドライバ(X680x0, PC/AT互換機, PC-98, PC-88VA, FM TOWNS, X1/turbo/Z, MSX)で.mdxファイルを再生する場合、付属のMMLコンパイラを使用して、バージョンを合わせた.mdxを生成する、もしくは(他機種のものでも)下位バージョンのMMLコンパイラを使用する必要があるかもしれません(これも未検証)。

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

データ作成