Gigamix Online

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

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

随時更新中。2020年8月頃は物凄く限定的な条件下で利用可能なようでしたが、少し敷居が下がりました!

MSX1+NextorでMGSDRVをインストール

初代MSX(MSX1)での利用条件(2020.9.18現在)

  • 本体RAMは、内蔵RAM 64KB(MSX-DOS利用時)または マッパーRAM 128KB以上(Nextor利用時)。
  • Carnivore2、MegaFlashROM SCC+SD のような、ストレージドライブ・Nextorカーネル・マッパーRAM・音源チップを兼用する海外製の多機能カートリッジのご利用がおすすめです。
  • Nextorの利用時、MSX1のマッパーRAMにおけるMGSDRV側の初期化処理に問題があり、ご利用の実行環境でフリーズする場合は後述の非公式パッチを利用することで解決できるようです。

MSX1でMGSDRVの曲を聞く手順

MGSP(再生アプリ)

MGSDRVをNextor(DOS2の上位互換OS)上で常駐し、MGSDRV形式データ(拡張子.MGS)を再生する方法です。

HRA!さん(twitter@thara1129)が作成してくださりました。ありがとうございます。

MGSC(MMLコンパイラアプリ)

MGSDRV形式のMMLデータ(拡張子.MUS)を用意し、MGSC.COMでMMLコンパイルして聴く方法です。

らいきんぐ!さん(twitter@liking_birds)がまとめてくださりました。ありがとうございます。

MSXplayとは、Webブラウザ上でMGSDRV形式のMMLをエディット、コンパイルして音楽再生、MGSDRV形式データへのエクスポート、MMLのシェアリングができる便利なWebサービスです。今回はMSXplayでシェアリングされているMMLを取り出し、MSX1の実機で演奏までもってゆく方法を解説しています。

そもそも論(MGSDRVの動作環境のおさらい)

gigamix.hatenablog.com

 MSXのミュージックドライバ「MGSDRV」の動作環境は以下の条件に合致するのものを推奨しています。

  • MSX2(VRAM64KB)以上 ※MGSEL.COMの動作条件として必要
  • MSX-DOS2 ※MGSDRVの通常利用の条件として必要
  • RAM 128KB以上 ※マッパーRAM準拠。DOS2が128KB以上必要なので

 あれば嬉しいものは以下の通り

  • FM音源MSX-MUSIC)とSCC音源
  • 漢字ROM ※MGSEL.COMの日本語表示機能として

 MSXturboRならSCC以外は全部入りですのでほぼturboRでの利用が前提なのですが、それ以下の規格ですと本体拡張が必要です。MSX-DOS2カートリッジを挿したり、FM-PACを挿したり…

 つまり、初代MSX(MSX1)は非推奨です。もの凄く頑張れば「MSX2バージョンアップアダプタ」+「FM-PAC」+「SCCカートリッジ」+「フロッピーディスクドライブ」+「MSX-DOS2カートリッジ」…鬼のような拡張を行えば可能かもしれませんがスロットが圧倒的に足りません。

いま流行の「多機能カートリッジ」

 令和のいま流行しているMSXのトレンドって何言ってるんだよお前は、って話はあるのですが。

 フロッピーディスクが死滅しつつある現状でMSXにおけるストレージの問題を解決すぺく、現在普及しているストレージをMSXで利用できるようにするカートリッジというものが生まれました。

 さらに、スロット節約の流れで、1つのカートリッジに複数の機能を持たせる「多機能カートリッジ」というジャンルがあり、海外発のプロダクトがいくつか発売されています。

MegaFlashROM SCC+SD

www.msx.org

  • SDカードスロット(MegaSCSI・MegaSD互換品)
  • RAM 512KB 拡張
  • Nextor(DOS2上位互換のDOSカーネル
  • SCC音源(互換品)

Carnivore2

www.msx.org

  • CompactFlashカードスロット(Sunrise IDE互換品)
  • RAM 1MB拡張
  • Nextor(DOS2上位互換のDOSカーネル
  • MSX-MUSIC(互換品)
  • SCC音源(互換品)
  • Pana Amusement CartridgeのSRAMバックアップ(互換品, 要改造)

 最近の大容量ストレージを扱うにあたりMSX-DOSにつきまとうFAT12(最大容量32MBytes)の制限を突破する必要があり、MSX-DOS2の上位互換品である「Nextor」が開発されました。NextorはFAT16対応(最大容量2GBytes)で、ストレージのカートリッジに含まれることでユーザーは快適に利用できるようになりました。

www.msx.org

 そしてこういった多機能カートリッジをMSX1で利用することで、MSX1でもSDカードをストレージドライブに設定できたり、SCC音源を利用できたりすることが可能になりました。

MSX1「再活用」の課題

 ただし、多機能カートリッジでMSX1を「再活用」することで問題が見つかることがあります。

Nextor=DOS2 ではない

 NextorはMSX-DOS2の上位互換品として開発されていますが、DOS2との完全互換ではありません。DOS2で動作するコマンドアプリがNextorで動作するかは、やってみなければ分かりません。

マッパーRAMへのアクセス方法がMSX1で怪しい(私がよく分かっていないだけかもしれません)

 64KB以上のRAMアクセスを仕様化した「マッパーRAM(メモリマッパー)」のマッパーBIOSMSX2の時代に実装されています。MSX1の時代には無かった概念です。よってマッパーRAMを利用するDOS2のコマンドアプリがMSX1+Nextorでは動作しない報告が上がっています。

 MGSDRVはMSX-DOS2環境下に「常駐(メモリに配置し続ける)」することを通常の利用方法としています。Nextorを含む多機能カートリッジではMSX1のマッパーRAMにも標準的に対応していました。

 ですが、MGSDRV 3.20では元々MSX2以降の規格での利用を想定しており、メインROMスロット番号の参照をMSX2以降で新設されたワークエリア FFF7h(MINROM)から参照していました。MSX1ではFFF7hが使用されないため内容と不定となっていました。このためMSX1の実行環境では正しいスロット番号が参照できないためにMGSDRVの常駐処理でフリーズが発生していた模様です。

 よって、MSX1においては以下のような手順を追加することで不具合が解決できることのようです。

  • FCC1h(EXPTBL)からメインROMスロット番号を参照するようにプログラムを修正する
  • プログラムで FFF7h(MINROM)が参照される前にあらかじめ FCC1h(EXPTBL)の内容をFFF7hへコピーしておく

 拙作DMシステム2でもMGSDRVを搭載していますのでMSX1でDMシステム2が動作するのであればMGSDRVのデータ再生がBASICから行えるのでは?と考え、MSX1でDMシステム2のインストールを試みました。

 が、RAMが64KBのままならインストール可能ですがマッパーRAM 512KB搭載の状態ではフリーズします。WebMSXだからの現象なのか、実機ではまた別の挙動をするのか…?もしかすると前述のスロット番号参照先が合っていないのかもしれません。

www.gigamix.jp

古いアプリはNextor対応への修正がされにくい

 そもそも作者さんが不明、作者さんが居たとしても現在のMSX1ないしNextorをとりまく環境を再整備することができずにソフトウェアの修正が行えない場合が多々あります。

原因判明までの経緯

WebMSX+MSX1+Nextorの実行環境ではMGSDRVを常駐インストールできる

   ↓

実機(カシオ MX-101)を再現したOpenMSX+Carnivore2+Nextor+MGSDRV 3.20の実行環境ではインストール時にフリーズする(3.04ではフリーズしない)

   ↓

調査の結果、MSX1では未定義のFFF7hを参照しているMGSDRV 3.20のコードが原因であることが判明する

   ↓

MGSDRVのバージョンを3.04から3.20へ上げたことでフリーズする原因は、MSX2バージョンアップアダプタによるMSX2実行環境に対応したためである可能性が指摘される

   ↓

FFF7hはMSX2以降で新設されたメインROMスロット番号のワークエリアでありMSX1では初期化されないため、内容によってはRAMへのアクセスが正常に行えずフリーズする可能性があることが判明する

   ↓

FFF7hの参照箇所をFCC1hに変更する、MSX1+RAM64K+Nextorで動作する非公式パッチが開発される

   ↓

実機(カシオ MX-10)+MegaFlashROM SCC+SD+Nextorの実行環境で、常駐インストールが可能になる →不具合の原因が確定する

皆さんの情報提供があってフリーズの原因が判明しました。ありがとうございます。

QRコードでMSXのBASICゲームを配りたい!(その2)

 前回は、MSXの実機(SCREEN 3)上に表示できる程度の小さなQRコード向けにMSX BASICでゲームを作成して、2004年当時のガラケーで画面上のQRコードをスキャンできるかを試しました。 gigamix.hatenablog.com

 前回の記事が2004年8月4日です。この記事は2020年8月5日に書いています。16年経過してしまいました。が、しかし今日すごいWebページを見つけてしまいまして、記録に残さなければならないと思いました。

 令和の時代は、MSXの実機で、QRコードを生成できるようになっている、と。

www.msx.org

 WebMSX(Webブラウザで動作するMSXエミュレータ)で実際にQRコードを生成するデモプログラムが動いています。任意の文字を入力しReturnキーを押すと、QRコードがリアルタイムで生成されます!以下のサイトへアクセスすれば、どなたでも試せます。

webmsx.org

作っている様子

twitter.com

 Enterキーを押してしまうとQRコードの作成が実行されてしまうので、このツールでは改行コードを含められないようです(1行入力だけ)。ただ、改行コードをQRコード内に含めること自体は規格的に可能です。

 ということは、MSXの実機上でデータを外出しするとき、QRコードも道具の一つになるのではないか?例えば…

  • MSXの新作ゲームのセーブデータや、ランキング申請用のパラメータが含まれるURLを表示したり…
  • MSXフロッピーディスクを他の機器で開くことができない人が、データ外出しのために…(そもそもそんな状態でどうやってQR表示プログラムを実機へ送り込むんだよと言う問題は棚上げします)

 楽しさが増えそうですね??

 次の課題は、実機でQRコードをスキャンする方法、ですかね。カメラ…?

DMシステム2:「ねこいらず」という当時の8bitパソコンで不要だったがMSXでは必要だった日本語表示技術のメモ

絶賛追記中

 拙作「DMシステム2」の各種ドライバをオープンソースで公開する作業の一環で、「ねこいらず」というフォントドライバを公開するにあたりフォントデータの構造を理解する必要があったので、解析結果を忘れないうちにメモしておきます。

半角文字

  • 文字コード 0x20~0xFF(224文字)、計2016バイト(9×224=2016)格納。
  • フォントデータの0バイト目から、1文字あたり9バイト(6bit折り返し×12行)で、224文字分連続している。
  • DMシステム2の日本語表示時は文字コードが「シフトJIS」で解釈されるため、本来であればシフトJISで表示できない1バイト目の領域(0x80~0x9Fと0xE0~0xFF)は使用できないが、「ねこいらず」ではMSXの半角文字のデザインが無駄に入っている(データ領域を端折ると誤動作する)。

ちなみに文字コード 0x7F も表示はできないがデータの領域は確保されている。

半角文字の計算を端折るためかな?

全角文字

  • JIS第1水準の文字コード 0x8140~0x9872(「腕」)まで格納。
  • JIS第2水準は含まれない。
  • フォントデータの2016バイト目から、1文字あたり18バイト(12bit折り返し×12行)。
  • シフトJISの領域外である文字コード(2バイト目が0x00~0x3F、0x7F、0xFD、0xFE、0xFF)はデータ領域が確保させずに詰められている。半角文字では領域があるのに!!
  • 2020年現在JIS第3水準として定義されている一部のコードは意味が全く違うデザインが含まれる。

「ねこいらず」開発当時は未定義だったものの1994年に「JIS X 0208」にて規格化された文字コード(主にJIS第3水準の部分)についてはデータ領域が確保されており適当なデザインデータが入っている。そのため、2020年現在の最新規格で作成されたシフトJISのテキストデータを「ねこいらず」で表示しようとすると違う字形になってしまう。

「ねこいらず」とは?

 漢字ROM(というフォントデータを含んだIC)を搭載しないMSX2以降の機種で漢字混じりの日本語表示を行うため、JIS第1水準に準拠した12px角のフォントデータをVRAMの裏画面(10000h)へを配置し、日本語表示を行うソフトウェアです。漢字ROM要らずだから「ねこいらず」。

 やってることと言えば、アメリカ産のIBM/PCで「DOS/V」として日本語表示を行う技術(メモリにフォントデータを常駐してグラフィック画面へ日本語の文字を表示する手法)とほぼ同等です。

 作者はKICHIさん(お元気でしょうか?)。元々DMシステム2とは関係がなかった独立したソフトウェアでしたが、作者自らDMシステム2のフォントドライバAPIに合わせてリリースしてくださったのでした。

 なお「ねこいらず」はMSX向け漢字ROM相当のハードウェアやインターフェースをソフトウェアでエミュレートするものではありません。

で、なんでこんなことが必要だったかと言うと

 今ではにわかに信じがたい話ですが、MSX2のリリース時点(1985年)では漢字混じりの日本語表示をハードウェア側で行う環境が整っていませんでした。漢字ROMの部品が高価なため、コストアップを嫌ったメーカーは安価な機種で漢字ROMを搭載しませんでした。まぁMSXの場合ANKコードのGRAPH文字(日月火水木金土・大中小・年月日・時分秒)は表示できましたけど、文字数が全然足りないわけです。

 1987年に29800円で発売された超低価格のMSX2(FS-A1, HB-F1)は当時爆発的に普及しましたが、もちろん漢字ROMは非搭載です。漢字ROMはMSX2の時点ではオプション(周辺機器)の扱いです。FDD搭載のモデルでも漢字ROMが搭載されないケースがあり、「VRAM 128KB搭載・FDDは利用できるが漢字ROMは利用できないMSX2」のハードウェアスペックがそれなりに溢れました。

 日本産のいわゆる御三家と呼ばれた8bitPCやPC-9801は漢字ROMが当然のように搭載されていましたし、実用ではなくゲーム用途ならMSXでも漢字混じりの文字表示がほとんど限定的(メーカー側が予め制御できる程度に留め、アプリケーション毎にフォントを内蔵して解決した)ですから、MSXユーザーの中でもそんな苦労の経験ない人のほうが圧倒的に多いですが、MSXで日本語を表示しようとしたソフトウェアの開発は…それはそれはご苦労されたようです。

 「ねこいらず」使用時は裏のVRAM 64KBがまるまるフォントデータで埋め尽くされるので、これをゲーム用途へ活用するのは難しいのでした。DMシステム2ではVRAMではなくMSX-DOS2のマッパーRAM(拡張メモリ)へフォントデータを配置できる「マッパーRAM版のフォントドライバ」も開発されたので、VRAMが足りない問題は多少解決しました。

終末の過ごし方(MSX版) まさかのWindowsから移植された珍ソフト

b.hatena.ne.jp

 はてなブックマークで話題になってたので、思わずツイッターのツイートをまとめるだけでブログ記事になるのか実験。 togetter.com

 「終末の過ごし方」というWindows向けのえろげ(18禁ソフト)が1999年にリリースされていました。当時大流行したビジュアルノベルと呼ばれるジャンルに含まれる一本ではあるのですが、モノトーンに近い淡い彩色のなか一週間後に終末を迎える世界で誰とどう過ごすかというその刹那的なストーリーに心を惹かれたファンは数知れず。俺も、エロと言うよりは純文学の小説を読んでいたかのような思いを当時プレイして感じ取りました。

 開発元・アボガドパワーズ(略称:アボパ)の浦社長が亡くなって10年経過した状況で、会社経営が傾いたソフトハウスを横目で見ながらその無念たる思いが綴られるTogetterの元記事は2016年に公開。

 で、なぜか2001年にMSX版(正確にはMSX2+/turboR版)のソフトが発売になりました。Windows版からMSX版への移植です。元のゲームソフトのプラットフォームから性能が著しく低い過去(特に8bit)のプラットフォームへ移植する行為を最近は「ディメイク(demake)」と呼ぶらしいです。2001年当時にディメイクなんて言葉はありませんでした。

 MSX版はアボガドパワーズから発売されたのではなく、メーカーからのライセンスを受けて製作委員会方式で開発され、ソフ倫の審査も通過しているパッケージソフトです。当時に400本しか製造されていませんし、ネット通販もしょぼい時代(確かMSX系イベントでの販売のみ)ですから、2020年の今このソフトを持ってる人は相当レアだと思います。

f:id:nf_ban:20200221162301j:plain

 当チームはその開発に関わっていたので、忘れてないことをここに書いておこうと思います。

パッケージ

 元になるWindows版のパッケージに対してMSX版の修正箇所をシールで上から貼ることで解決しました。  イラストレーターの小池定路さんの名前へ直した(Windows版は旧名義)のが印象的。

 フロッピーディスクは合計8枚組。1枚目が起動用のシステムディスク、「一週間後に確実にゲームが終了する(=終末を迎える)」システムなので一日分のゲームデータを2DD1枚にデータ圧縮して、2~8枚目に割り当ててあります。

グラフィック

 元々が水彩タッチのゲームで、MSX2+の自然画モード(SCREEN10・11・12)と相性が良いのでは?というアイデアがあり、試しに実験をしてみたら思いのほかハッタリ度が高かったため、製品化を打診したら、なんとOKが出た、と。

 メーカーから各種素材が提供されました。で、グラフィックに関してはWindows版の原画しかないので、これをMSXへ大量に落とし込むため、いわゆる「コンバータ」を用いました。自分ではコンバータを作れないので実績があるフリーソフト2本を活用しました。

 解像度はもとより24bitBMPからYJKでは階調も圧倒的に足りないので、ディザ拡散ではなく「45度網点」を用いました。理由は、俺の好みです。当時はアナログモニタ、MSXではコンポジット出力すらある状況ですので、網点は色を混ぜる効果がありました。

 場面によって二つのツールを使い分けたり、二つのツールで出力した結果を部分的に合成して1枚に仕上げたり。これらのツールが無ければ、このソフトは絶対にリリースされていなかったと思います。

ミドルウェア

 当クラブの「DMシステム2」を利用しています。https://gigamix.jp/ds2/

 MSXでの漢字表示(影付き文字)、画像圧縮、BGM演奏等の開発工数を軽減化しました。

そういや…

 同時期に、大阪のほうでMSX版ONEの移植プロジェクトが立ち上がっていました。そっちはHDD対応だったりMIDI対応だったりスペック的に面白そうなことをやろうとしていたようだけど、けっきょく完成しなかったんですね…。どこまで完成していたんだろう…

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

更新情報

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

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

gigamix.hatenablog.com

【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で足を踏み入れてみませんか。

特徴

  • 対応する音源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. 作成例 例の着信音 例の入店音 
愛好家の作成例

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

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

ダウンロード

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

MGSDRV本体 (必須)

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

ソフト名MGSDRV ver.3.20
使用OSMSX-DOS2・Nextor
作者Ain./Gigamix
リソース 原版 MGSDR320.LZH 2003.12.21, 10906 Bytes
再圧縮版 MGSDR320.ZIP 2019.11.04, 11045 Bytes

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

MGSC(楽曲データの作成)

 MGS用のMML(.MUS)からMGS形式データファイル(.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は、MGS形式データファイルを簡単操作で演奏できる、ミュージックプレイヤーです。

ソフト名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
リソース作者のページへ

開発支援・その他

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

ソフト名MGSDRVプログラムインターフェイス仕様書(ver3.15用)
用途外部からMGSDRVを使用するためのマニュアル
作者Ain.
リソース 原版 MGSDRSPC.LZH 1994.01.25, 11969 Bytes
再圧縮版 MGSDRSPC.ZIP 2019.11.04, 11550 Bytes

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

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

■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倉庫
ソフト名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は共通の波形でしか利用することができませんが、スナッチャーのカートリッジはチャンネル4とチャンネル5を独立して利用できるハードウェア仕様となっています。 ですが、MGSDRVではSCCIに現状非対応です(SCCと同じ振る舞いを行います)。今後対応できるかもしれませんが、開発機材=実物(カートリッジ)の確保が急務。

音ずれ


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

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

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