Gigamix Online

懐かしの8bitおもちゃPC「MSX」を骨までしゃぶり尽くそう。MSXの最新ニュース、ブログ、自作ソフトの配布など。

BGMドライバ・MGSDRV MSXで楽しむチップチューン

更新情報

現在の最新バージョンは、ver.3.20 です。

2020.11.27: 曲データの負荷確認用アプリ「MGSBENCH」を追加しました。

アーカイブのダウンロードは「開発支援・その他」からどうぞ。

2020.11.23: MGSDRVのテクニック集を追加しました。

識者のみなさんのMGSDRVテクニック集 - Gigamix Online

2020.11.22: English and French translated documentation is here

https://www.msx.org/downloads/msxdrv-v320 Thanks to gdx :-)

2020.10.6: MGSDRV プログラムインターフェイス(API) 仕様書を公開しました。

MGSDRV プログラムインターフェイス(API) 仕様書 - Gigamix Online

2020.9.14: 非推奨である初代MSX(MSX1)の規格でも一部の環境で動作することについて書きました。

MGSDRVの音楽データをMSX1で聴きたい! - Gigamix Online

2019.11.3: いわゆる「モダンブラウザ」で利用できるようになりました。

 PC・スマホWebブラウザ上から、MGSDRVのMMLをエディット・コンパイル・データダウンロード・シェアできるようになりました。今すぐ msxplay.com へ!

2019.11.3: MSX BASICのみで利用できるようになりました。

 MSX BASICの実行環境でMGSDRV形式の楽曲データを再生できる・自作BASICゲームに組み込めるようになりましたどうぞご利用ください。

MGSDRV とは

f:id:nf_ban:20200114235201g:plain

 MGSDRVは、8bitパソコン「MSX」の主要な音源であるPSG、FM音源、SCCを用いて最大17音まで演奏出来る、Musicドライバ(音楽演奏ソフト)です。

  • MMLと呼ばれるプログラミング言語を用いて、演奏データを作成します。
  • 1980年代の“パソコン通信”主流の頃から広く普及しており、数多くの楽曲(=音楽データ, 拡張子 *.MGS)が発表されています。
  • MGSDRVはフリーソフトウェアです。どなたでも無償で自由にMGSDRVを楽しむことができます。
  • MGSDRVはAin.氏が開発しました。現在では当チーム(ギガミックス)がメンテナンスを行っております。1

 1983年に登場したMSXパソコンは、古くからプログラミングによる音楽演奏の文化がありました。コンピュータ雑誌へのBASICプログラムの投稿に始まり、1990年頃に普及した“パソコン通信”の場においてMSXの音楽データ流通はピークを迎えました。

 最近、巷ではチップチューン(ChipTune)なるジャンルの愛好家が増えています。昔の音源ICの生音を使用したポップ感溢れるこの独特なサウンドは、コンピュータゲームのゲームミュージックが起源となっています。

 ルールや制約が多いほど面白いこの世界に、MSXパソコンとMGSDRVで足を踏み入れてみませんか。

 実は2020年発売のMSX2対応シューティングゲーム「キャラバンブーマー」では、BGMドライバにMGSDRVが採用されています。

sites.google.com

特徴

  • 対応する音源ICは、①PSG(AY-3-8910, 相当品含む)、②FM音源(MSX-MUSIC, YM2413/OPLL)、③SCC(相当品含む)2の3種類で、最大17音を同時出力できます。
  • MSXの1/60秒のタイマー割り込み機能を用い、音楽を演奏しながら他の処理と並列動作させるBGM機能を搭載しています。
  • MGSDRVは MSX-DOS(Nextor含む)および MSX BASIC の環境下で再生できます。
  • ゲーム音楽の自動演奏、効果音素材の作成、チップチューンの楽曲作成の用途などで、特に便利にお使いいただけます。

動作環境

 当チームで動作確認を行った実行環境は以下のものです。これ以外でも動作する可能性はあります。

実機用プログラムの注意事項

f:id:nf_ban:20200115004615g:plain

NextorでMGSDRVをインストール

  • MGSDRV自体(MGSDRV.COM)は、基本的にMSX-DOS2環境で常駐させ、他のソフトからMGSDRVを呼び出して使用します
  • MSX-DOS2上位互換の Nextor でも常駐可能ですが、Nextorを利用する初代MSX(MSX1)および海外製MSX2では動作しない場合があります(海外製マッパーRAMカートリッジとの相性問題が確認されています)。
  • ver.2.xxまでのMGSDRVとは違い、ver.3は本体だけで曲データを作成したり演奏を聞くことはできません。
  • MGS形式の音楽データファイルを演奏する「プレイヤー(演奏ソフト)」は MSX-DOS(1)用、MSX-DOS2用、MSX BASIC用、Windows用等、いろいろあります。当サイトで配布する「MGSEL」は、MSX2以上&MSX-DOS(1)で動作します。「MSP」は、MSX2以上&MSX-DOS2で動作します。
  • MGS形式の音楽データファイルを生成するコンパイラ“MGSC”は、MSX1以上&MSX-DOS(1)で動作します。

MGS形式のデータを聴きたい

MSX実機、MSXエミュレータで聴く

  1. MGSDRV本体(MGSDRV.COM)をダウンロードする。
  2. MGSDRVのアーカイブに梱包されている取扱説明書 (MGSDR320.TXT)をよく読む。
  3. MSP、MGSEL等、MGS形式データファイルに対応したプレイヤー(演奏ソフト)をダウンロードする。
  4. MSX-DOS(2)を起動し、MGSEL等のプレイヤー(演奏ソフト)で音楽を聴く。

純正ソフト(MGSDRVとMGSELを併用)でMGS形式の音楽データファイルを再生するには、以下の方法で行います。

  1. MSX-DOS2を起動する。
  2. コマンドラインより mgsdrv /z を入力する。→MGSDRVがDOSに常駐します。Installed.と表示されたら成功です
  3. コマンドラインより mgsel を入力する。→MGSELが起動しますf:id:nf_ban:20200114235201g:plain
  4. MGSELを終了するには、ESCキーを押して下さい。→DOS画面へ戻ります

ヒント: 他にも以下のような方法でMGS形式の音楽データファイルを再生することができます。

初代MSX(MSX1)の場合

Nextor(MSX-DOS2の上位互換OS)とマッパーRAM64KB以上が必要です。条件を満たしていても動作しない場合があります。詳しくは MGSDRVの音楽データをMSX1で聴きたい! - Gigamix Online をご確認ください)

MSX2以降でMSX-DOS(1)の場合

“MultiPlay-X(MPX)(たっく氏・作)”等、MSX-DOS(1)で起動するMGS対応のプレイヤー(演奏ソフト)を用意する。→ FSW倉庫

MSX2以降でMSX BASICの場合

“DMシステム2”等、MGS形式データに対応する「拡張BASIC(BASICの機能を増強するパッケージシステム)」や各種ミドルウェアを用意する。 - DMシステム2 組み込みキット・BGMプレイヤーのダウンロード

PC・スマートフォン(Webブラウザ)で聴く

  1. PC・スマホWebブラウザより msxplay.com へアクセスする。
  2. 【Drag and Drop your file here.】の枠に、拡張子.MGSの音楽データファイルをドロップする。

MGS形式のデータを作りたい

MSX実機、MSXエミュレータで作る

  1. MMLコンパイラ“MGSC(MGSC.COM)”をダウンロードする。
  2. MGSCのアーカイブに梱包されているMMLの仕様書 (MGSC111.TXT)をよく読む。
  3. テキストエディタMMLを入力し、テキスト形式で保存する。その際、拡張子は“MUS”にしておく。
  4. MGSCでMML(.MUS)をコンパイルし、MGS形式データファイル(.MGS)を生成する。
  5. MGS形式に対応したプレイヤー(演奏ソフト)で、音楽を聴く。

PC・スマートフォン(Webブラウザ)で作る

  1. PC・スマホWebブラウザmsxplay.com へアクセスする。
  2. msxplay.com にて【MML EDITOR】をクリックする。
  3. MGS形式のMMLを入力フォームに記述し、【Compile】ボタンを押す。MMLの記述に間違いがない場合は楽曲が再生される。
  4. 作成例 例の着信音 例の入店音 
愛好家の作成例・テクニック

 テクニック集については別ページでまとめました。

gigamix.hatenablog.com

2020年の今、イチから環境を用意したい

 過去に発売されたものばかりを改めて入手することになるので手数は多いですが、やれなくはないレベルで可能です。ぎゃぶねこさんの解説記事が役立ちますので、ぜひお読みください。 gyabuneko.hatenablog.com

ダウンロード

 MGSDRVに関連するフリーソフトウェアを紹介します。当チームの管理外のソフトについては、それぞれの作者のサイトで入手してください。  ソフト開発者の名称は敬称略させていただきました。

MGSDRV本体 (必須)

 ミュージックドライバ本体です。MSX実機及びMSXエミュレータでMGS形式の音楽データを再生するときに必要です。

ソフト名MGSDRV ver.3.20
使用OSMSX-DOS(1)、MSX-DOS2、Nextor DOS
作者Ain./Gigamix
リソース 原版 MGSDR320.LZH 2020.11.23, 10991 Bytes
再圧縮版 MGSDR320.ZIP 2020.11.23, 11094 Bytes

ご注意: ver.3未満は当チームもコンテンツを確保していないためメンテナンスを行っておりません。

MGSC(楽曲データの作成)

 MGSDRV用のMML(.MUS)からMGSDRV形式データファイル(.MGS)を生成するコンパイラ。MGS形式データファイルの作成時に必要なソフトです。

ソフト名MGSC ver.1.11
使用OSMSX-DOS
作者Ain.
リソース 原版 MGSC111.LZH 1994.02.21, 17523 Bytes
再圧縮版 MGSC111.ZIP 2019.11.04, 17317 Bytes

MGSEL(楽曲データの再生)

 MGSELは、MGSDRV形式データファイルを簡単操作で演奏できる、ミュージックプレイヤーです。

ソフト名MGSEL version 3.01v
使用OSMSX-DOS(DOS2推奨)
作者Ain.
リソース 原版 MGSEL01V.LZH 1994.04.04, 27396 Bytes
再圧縮版 MGSEL01V.ZIP 2019.11.04, 27559 Bytes

MGSF(MGSELの曲名一覧を作成)

ソフト名MGSF
使用OSMSX-DOS
作者サイバラ
リソース 原版 MGSF00G.PMA 1999.09.15, 5632 Bytes
再圧縮版 MGSF00G.LZH 2019.11.04, 5854 Bytes
再圧縮版 MGSF00G.ZIP 2019.11.04, 5964 Bytes

WebMSX・エミュレータ用 ディスクイメージ

 WebMSXや各種MSXエミュレータ用へインポートして使えるディスクメージです。

ディスクイメージのファイル構成

 以下の3種類のアーカイブを展開してイメージ化しています。

  • MGSDRV v3.20(MGSDR320.LZH
  • MGSC v1.11(MGSC111.LZH
  • MGSEL 3.01v(MGSEL01V.LZH

WebMSX URL https://webmsx.org/?MACHINE=MSX2J&DISK=https://www.gigamix.jp/mgsdrv/MGSDRV-MIN.DSK&PRESETS=MSXMUSIC,SCCI2,KANJI

 なお、当ディスクメージにOS(MSX-DOSMSX-DOS2・Nextor)のシステムファイルは含まれていませんので、各自ご用意願います。

DMシステム2(BASIC環境で楽曲データの再生)

 DMシステム2は、MSX BASICに強力な開発ライブラリを追加する「拡張BASICシステム(ミドルウェア)」で、MGS形式データファイルのBGM演奏機能を標準搭載しています。

 自作のBASICゲームプログラム等にDMシステム2を組み込むことで、例えばゲームBGMの演奏にMGS形式データが利用可能です。その際、MGSDRV本体やMSX-DOSを組み込む必要はありません

BASIC MGSDRV プレイヤー

ソフト名DMシステム2 組み込みキット+BGMプレイヤー 最小インストールパッケージ
使用OSMSX BASIC ver.2.0以降
※初代MSX(ver.1.0)ではRAM 64KB必要。マッパーRAMの搭載機種では本体スロット構成によってインストールに失敗する場合があります。
作者Gigamix
リソース ds2_mgsdrv_player.dsk 2019.11.03, 737280 Bytes
ds2_mgsdrv_player.zip 2019.11.03, 29858 Bytes

 DMシステム2を用いたプログラミング方法や開発向けパッケージディスクのダウンロード等、詳しくはDMシステム2 ホームページをご覧ください。

その他の演奏ソフト (プレイヤー)

MGSEL以外にも、MGSDRVに対応した演奏ソフトは数多く存在しています。お好みでどうぞ。

ソフト名MSP version 1.01+(Plus)
用途MGS形式データファイルを演奏する簡易プレイヤー
使用OSMSX-DOS2
作者Ain.
リソース 原版 MSP101P.PMA 1999.09.15, 3584 Bytes
再圧縮版 MSP101P.LZH 2019.11.04, 3684 Bytes
再圧縮版 MSP101P.ZIP 2019.11.04, 3783 Bytes
ソフト名MultiPlay-X (MPX) ver.1.13
用途MGS, MPK, MuSICA, OPXの4形式に対応したプレイヤー
※ver.1.12では、MGSDRV ver.3.19以降を認識しない現象が報告されています。1.12のご利用には、この下にある非公式修正パッチをお試しください。
使用OSMSX-DOS
作者たっく!
リソースMPX113.LZHMSX Resource Center
ソフト名MPXPATCH
用途MPX ver.1.12用・MGSDRV ver.3.19以降を認識しなくなる現象の非公式修正パッチ
使用OSMSX-DOS+MPX ver.1.12
作者ごりぽん
リソース MPXPATCH.LZH 2020.01.22, 3132 Bytes
MPXPATCH.ZIP 2020.01.22, 3294 Bytes
ソフト名MuPLAY ver.2.41
用途MGS, MIO, MPK, 勤労5号(MuSICA)の4形式に対応したプレイヤー
使用OSMSX-DOS2
作者SAKA
リソースMUPLAY.LZHFSW倉庫
ソフト名EDCOM3 3.24
用途FM-BIOS, MGS, MIDI, 勤労5号(MuSICA)の4形式に対応した拡張BASIC
使用OSMSX BASIC ver.2.0以降
作者杉山 夏樹
リソース作者のページへ
ソフト名XMGS ver.0.7
用途MGSDRVをBGM演奏に使える拡張BASIC
使用OSMSX BASIC ver 2.0以降
作者たろさん
リソースXMGS07.LZHFSW倉庫
ソフト名MSXplug(in_msx.dll)
用途MGS, MPK, MuSICA, OPLLDriver, MoonBlaster, kssなど各種MSXプラットフォームの音楽データに対応したWinamp向けプラグイン
使用OSWindows
作者Digital Sound Antiques
リソース作者のページへ
ソフト名Winamp
用途各種データ形式の音楽データに対応したプレイヤー(これにMSXplugをインポートします)
使用OSWindows
作者Winamp SA
リソース作者のページへ
ソフト名KbMedia Player
用途各種データ形式の音楽データに対応したプレイヤー(これにMSXplugをインポートします)
使用OSWindows
作者Kobarin
リソース作者のページへ

仕様書・ドキュメント

ソフト名MGSDRVプログラムインターフェイス仕様書(ver3.15用)
用途外部からMGSDRVを使用するためのマニュアル
作者Ain.
リソース Web版 https://gigamix.hatenablog.com/entry/mgsdrv/api-specifications
原版 MGSDRSPC.LZH 1994.01.25, 11969 Bytes
再圧縮版 MGSDRSPC.ZIP 2019.11.04, 11550 Bytes
English and French translated documentation https://www.msx.org/downloads/msxdrv-v320 Thanks to gdx :-)

■v3.xx データフォーマット 解析資料(@ym2413さん)

■OPLLの音色の主要な特徴をなすパラメータ「ML比・FB値目安」一覧表(@liking_birdsさん)

■GB音源の波形メモリデータを、SCC音源の波形メモリデータ(MGSDRV形式)に変換するスプレッドシート(@sdhizumiさん)

開発支援・その他

MGS形式データファイルの作成時に便利なソフト、および関連のソフトです。

■SCC音色エディタ(@garyさん)

■SCC音色作成ツール「S-Cube」(@WizardOfPSGさん)

ソフト名MGSCNV version 2.02
用途MGS v2.xx形式のデータファイルをv3.00形式へ変換する
使用OSMSX-DOS
作者Ain.
リソース 原版 MGSCV202.PMA 1992.10.21, 2688 Bytes
再圧縮版 MGSCV202.LZH 2019.11.04, 2759 Bytes
再圧縮版 MGSCV202.ZIP 2019.11.04, 2864 Bytes
ソフト名MGSARC version 1.01
用途拡張子MGSの音楽データを圧縮/展開するユーティリティー
使用OSMSX-DOS
作者Ain.
リソース 原版 MGSARC01.PMA 1993.01.17, 7168 Bytes
再圧縮版 MGSARC01.LZH 2019.11.04, 7107 Bytes
再圧縮版 MGSARC01.ZIP 2019.11.04, 7171 Bytes
ソフト名VCDCNV
用途MuSICA用音色ファイル(*.VCD)をMGS用のMMLソースリスト(*.MUS)へ変換する
使用OSMSX-DOS
作者いたろう
リソース 原版 VCDCNV.PMA 1994.07.02, 2176 Bytes
再圧縮版 VCDCNV.LZH 2019.11.04, 2342 Bytes
再圧縮版 VCDCNV.ZIP 2019.11.04, 2522 Bytes
ソフト名MGSRC version 1.11
用途MGS形式データをMMLへ逆コンパイルをする
使用OSMSX-DOS
作者MOGU & Ain.
リソースMGSRC111.PMA @FSW倉庫
ソフト名MGSMIS ver.1.03_c
用途マシーンID、逆コンパイル不可フラグを付与する
使用OSMSX-DOS
作者MOGU & Ain.
リソースMGSMIS03.PMA @FSW倉庫
ソフト名MGSBENCH Ver.1.00
用途MGSDRVの楽曲データを用いた負荷テスト(ベンチマーク)ゲーム組み込みの事前確認に
使用OSMSX-DOS2
作者Mattya
リソース 原版 MGSBENCH.LZH 1996.07.31, 3249 Bytes
再圧縮版 MGSBENCH.ZIP 2020.11.27, 3414 Bytes
ソフト名ANIMECHA
用途MGSDRVをBGM演奏に使えるSCREEN5専用グラフィックエディタ
使用OSMSX-DOS
作者TEMPEST
リソースAM200.ZIP @MSX Resource Center
ソフト名MMDMGS.COM / MMDMGSP.COM
用途MMDのメモリブロックを使って常駐, MMDMGSで常駐させたMGSDRVを使ってMGSファイルを演奏
使用OSMSX-DOS2
作者にゃんTAC
リソースMMDMGS01.LZH ※2020年現在は不明
ソフト名MGSQCV for MSXView
用途常駐したMGSDRVをMSXView上からコントロールするDA(デスクアクセサリ)
使用OSMSX turbo R および MSXView
作者いーた
リソースMGSSQV.LZH ※2020年現在は不明

アーカイブファイルの展開方法

 パソコン通信時代に流通していたMSX関連のアーカイブファイルは古くから PMArc形式(拡張子 .PMA) または LZH形式(拡張子 .LZH) が多く採用されていました。それぞれの圧縮ファイルを展開するには、展開(解凍)ソフトが必要です。これらの圧縮ファイルを展開するソフトはいくつか存在しますので、インターネットで探してみてください。

バージョンアップ履歴

3.19→3.20 (2001.10.12)

  • Z80/5.37MHzモードへの対応が不完全だったので修正した

3.18A→3.19 (2001.9.12)

  • パナソニックFS-A1FX/WX/WSXZ80/5.37MHzモードに対応した (清野まさきさん、ありがとうございます)

3.18→3.18A

  • バージョン番号が3.17のままだったので修正

3.17→3.18

  • スロット構成によってはSCCが鳴らなくなってしまうバグを修正した
  • /Sxオプションによるスロット設定値のミスを修正した
  • メンテナンスをGIGAMIXに委託

 MGSDRVはオリジナルの開発者のAin.氏がMGSDRV関連のソースリストをすべて紛失してしまったことで開発が終了しました。当チームはパソコン通信時代にたまたまMGSDRVのソースリストを分けていただいていた為、そのソースリストを利用してver.3.18以降をリリースしています。

 とは言え、再生プログラム以外はソースリスト・関連データの消失につき仕様不明という状態ですので、MGS形式の仕様を把握する作業やMMLコンパイラの制作作業等、当プロジェクトを継続するにはリソースが足りません。ご協力いただける方がいらっしゃいましたらぜひ情報提供をお待ちしています。

ToDo

  • バグ修正
  • 初代MSX(MSX1)の実機+Nextorの実行環境において常駐インストールでフリーズする問題の解消
  • 各種MSXエミュレータ、各種MSX互換機での動作検証
  • MGSDRVプログラムインターフェイス仕様書(ver3.15用)の見直し・最新の内容へ更新
  • MGSDRVをWindows PC上で使用できるようにする→ MSXplug のリリースにより達成。thanks to @Digital Sound Antiques
  • MGSDRVをWindows PC上で使用できるようにする→ WebMSX のリリースにより達成。thanks to @ppeccin
  • MGSCを復刻し、MGSDRVに新機能を搭載する
  • MGS形式MML(Music Macro Language)のレクチャー

既知のバグ情報、未確認情報

 ご迷惑をおかけします。

SCCI(スナッチャー付属サウンドカートリッジ)に対応しているか

 SCCはチャンネル4とチャンネル5は共通の波形でしか利用することができませんが「スナッチャー」の付属サウンドカートリッジ(通称:「SCCI」「SCC-I」「SCC+」)はチャンネル4とチャンネル5を独立して利用できるハードウェア仕様となっています。

 ですが、MGSDRVではSCCIに現状非対応です(SCCと同じ振る舞いを行います)。今後対応できるかもしれませんが、開発機材=実物(カートリッジ)の確保が急務。

音ずれ

E+ と E が同じ音階になる

 一般的にMML表記の「E+」は「F」の音階または相当の音階になるようですが、MGSDRV(MGSC)では「E」になります。方言となりますのでご注意ください。

プライマリのマッパーRAMへしか常駐できない

 各種拡張メモリカートリッジをスロットに差すような「マッパーRAMが複数ある状態」の場合でも、MGSDRVではプライマリのマッパーRAMでしか常駐できません。turboR規格の場合は本体内蔵RAMが自動的にプライマリになります(A1ST 256KB、A1GT 512KB)。

組み込み利用条件

 なお、MGSDRVはプログラムが自己書き換えを行ったり(=ROMでは書き換えができないため誤動作します)、RAMの7000h以降にワークエリアを設定するなど、現状RAM 64KB以上を必要とする環境下での動作を前提としています。特に初代MSX(MSX1)向けのROMソフト化は困難と考えられます。予めご了承ください。

MGSDRV へのリンクのお願い

 MGSDRVへのリンク先は https://www.gigamix.jp/mgsdrv/ でお願いします。
※現在のドメイン gigamix.hatenablog.com が将来的に変更される可能性があるため。

Please link to MGSDRV at the following URL: https://www.gigamix.jp/mgsdrv/
* The current domain gigamix.hatenablog.com may change in the future.


  1. Ain.氏は現在MSXフリーソフトウェアのサポートを一切行っておりませんので、MGSDRVに関するご質問は当チーム @nf_ban(主宰) または @goripon_tw(プログラム担当) までお寄せください。

  2. SCCはコナミ株式会社のウェーブ音源ICです。

  3. MSXマガジン永久保存版1のMSXPLAYerMSX-DOS2が起動しないため、MGSDRVは常駐できません。また、他の演奏ソフトを用いてもSCC音源は発声しません。永久保存版2、同3をご利用下さい。