Difference between revisions of "MMLCOMPILER MXDRV"
(→MXDRV技術仕様) |
(→MMLコンパイラのバージョン) (Tags: Mobile edit, Mobile web edit) |
||
(24 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | ※本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のバージョンについて == | == 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コンパイラのバージョン == | == 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版は挙動が不安定で、原因不明のエラーが発生します。 | ||
== 再生環境について == | == 再生環境について == | ||
Line 109: | Line 163: | ||
{| class="wikitable" | {| 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\MXFUNCM.DOC | ||
|- | |- | ||
|パートワーク仕様(データオフセット)||2.06+07〜|| MSX版アーカイブ MXDRVDOC\MXPART.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 | ||
|} | |} | ||
== データ作成 == | == データ作成 == |
Latest revision as of 10:02, 24 June 2021
※本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を使用する場合にはこの下位バージョンを意識する必要があるかもしれません(未検証)。少なくともマイナーバージョンアップによる仕様変更が確認されており、旧バージョンのツールで、新バージョンのデータを読み込んだ場合の挙動は不明です。
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 |