Changes

MMLCOMPILER MXDRV

6,016 bytes added, 10:02, 24 June 2021
MMLコンパイラのバージョン
MXDRVとはX68000シリーズ用に開発された音源ドライバで、元々はFM音源のYM2151※本WikiページはMXDRVの断片的な情報を集めた独自調査によるものです。そのため、記載漏れや誤解のある部分がある可能性があります。  MXDRVとはX68000シリーズ用に開発された、FM音源のYM2151(OPM)、ADPCM音源のMSM6258を制御する音源ドライバで、ADPCM音源のMSM6258(ADPCM)を制御する音源ドライバでした。ADPCMの再生ドライバが発展するにつれFM音源とADPCM音源の連携は深まり、最終的にはPCM8により、4オペレーターFM音源8音を制御する音源ドライバと連携動作します。MXDRVと、連携するADPCM音源ドライバは個別に進化し、最終的にはMXDRVの4オペレーターFM音源8音+ADPCM8音が標準となりました。PCM8系ADPCMドライバによるADPCM8音が標準となりました。X68000と同様の4オペレーターFM音源X68000以外でも同様の4オペレーターFM音源(YM2608B/OPNA)、処理能力を持つPC98シリーズや、同じYM2151を搭載する別シリーズのMSX、同等の処理能力を持つPC98シリーズや、FM TOWNS(OPN2)、X68と同じくYM2151を搭載するX1/turbo/Z(FM音源ボード、X1turboZでは標準搭載)やMSX(SFG-01,SFG-05)やX1/turbo/ZといったコンピュータにMXDRVの作成・実行環境が移植されています。(FM音源ボード、X1turboZでは標準搭載ハードウェア環境の違いは移植者のさまざまな創意工夫により吸収されています。)といったコンピュータにMXDRVの作成・実行環境が移植されます。現在主流となったWindows用PC現在主流となったWindows用PC(元々のPC/AT互換機)ではX68000の環境をエミュレーションによって再現する形で単独アプリケーションとして、多くの関連プログラムが実装されています。これらの詳細については多くのブログやサイトで解説されているので割愛します。本WikiではMSX移植版のMXDRVの視点を中心に記載していますが、比較のためなど、必要に応じてこれら他機種版の環境にも言及します。でも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上でコマンドラインのエミュレーターを介して使用することになります。
 
{| class="wikitable"
|-
|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の情報から転載(一部修正)
 
{| class="wikitable"
|-
|mxc.com ||MXDRV12.LZH|| MSX(MSX-DOS2)用||
|-
|ULTRA-X || [https://github.com/DeltaRazero/UltraX-old github]|| PYTHON3||
|}
 
※MSX版は挙動が不安定で、原因不明のエラーが発生します。
== 再生環境について ==
== MSX移植版 ==
MSXへの移植はMGSDRVの作者でもあるAinMSXへの移植版はMGSDRVの作者でもあるAin.氏の作成したものだけが存在確認されています。氏の作成したものだけが存在確認されています。PC98版から移植した旨がそれぞれのドキュメントに記載されています。
現在MSX版のMXDRVはメンテナンスされていないようです。
http://msxlife.seesaa.net/article/381575083.html
MSX版はYAMAHAの専用拡張スロット用の音源モジュール、SFG-01(OPM/YM2151)もしくはSFG-05(OPP/YM2164)とPCMカートリッジが対応しています。とMFP製のPCMカートリッジが対応しています(当時のチラシには「開発中」の記述があるものの、残念ながら詳細は不明です)。
== MSX版ファイル一覧 ==
{| class="wikitable"
|-
|./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技術仕様 ==
 
{| class="wikitable"
|-
|MXDRVgプログラムソース||2.06+17||[http://gorry.haun.org/mx/ “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||[https://www.google.co.jp/amp/s/w.atwiki.jp/mxdrv/pages/23.amp 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
|}
== データ作成 ==