Gigamix Online

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

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

 2020年8月頃は物凄く限定的な条件下で利用可能なようでしたが、2020年12月現在、敷居がグッと下がりました!

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

ちなみにMGSDRVの概要・ダウンロードは、こちらのリンクからどうぞ。 www.gigamix.jp

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

  • 本体RAMは、内蔵RAM 64KB(MSX-DOS利用時)または マッパーRAM(メモリマッパ)128KB以上(Nextor利用時)。
  • Carnivore2、MegaFlashROM SCC+SD のような、ストレージドライブ・Nextorカーネル・マッパーRAM・音源チップを兼用する海外製の多機能カートリッジのご利用がおすすめです。
  • 128KB以上のマッパーRAM増設時、MSX1のマッパーRAMにおけるMGSDRV側の初期化処理に問題があることが判明しています。ご利用の実行環境でフリーズする場合は MSX1+マッパーRAM+Nextor環境下における対処法 で解決するかもしれませんのでぜひご覧ください。

MSX1でMGSDRVの曲を聞く手順

MGSP・MGSP v2(再生アプリ)で聴く

10/23 昼の作業 MGSPコーディング(1) 一部の漢字(
もう一つ、MGSPは漢字ROMを持たないMSX1,MSX2でも漢字混じりで曲名表示できるのが他のプレイヤーにはない優位点ですね。MSX1のMX-101でちゃんと動くのです。 — HRA! (@thara1129) 2020年10月21日

 MGSDRV形式データ(拡張子.MGS)を再生するアプリの利用が、いま最もカンタンな方法です。

 簡易再生アプリの「MGSP ver.1」およびMGSELライクのオーディオビジュアライザー搭載「MGSP ver.2」が存在します。どちらもHRA!さん(twitter@thara1129)が開発しています。バージョンアップと有志によるデバッグが活性化しています。ありがとうございます。現在のおすすめアプリは「MGSP ver.2」です

 MGSPのダウンロードはこちら → http://hraroom.s602.xrea.com/msx/software/mgsp.html

https://t.co/LiYNNUiFvs MGSP v1.0 に仕立て上げました。コマンドラインオプションが付いたのと、BGMとして演奏できるようにしました。FS-A1GT + MegaFlashROM で動くのを簡単に確認#MSX #MGSDRV — HRA! (@thara1129) 2020年9月17日
おおぉ。MGSP、動きました。実機に持っていってみよう!#MSX #MGSDRV pic.twitter.com/xfBLgXYk7R — Takashi Kobayashi (@nf_ban) 2020年9月18日

 コマンドライン版の「MGSP ver.1」はMGSDRVを組み込み利用するアプリの開発サンプルコードとしても便利です。

MGSC(MMLコンパイラアプリ)でMMLコンパイルして聴く

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

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

MSXplayでソースコードを公開しているものを、WebMSX上で聞く手順を簡単にまとめておきます(ちょくちょく地雷があったので、その点の解説も含め)。以下に続けていきます。 — らいきんぐ! (@liking_birds) 2020年9月5日
 MSXplayとは、PCやスマートフォンWebブラウザ上でMGSDRV形式のMMLをエディット、コンパイルして音楽再生、MGSDRV形式データへのエクスポート、MMLのシェアリングができる便利なWebサービスです。今回はMSXplayでシェアリングされているMMLを取り出し、MSX1の実機で演奏までもってゆく方法を解説しています。

 MSXplay.com はこちら → https://msxplay.com/

(続き)※ちなみに環境はWindowsとします。1. MSXplayで目的のソースコードを表示させます。2. そのコードをExport→MML形式でダウンロードを選択して保存するか、テキストエディタで保存します (このファイル名を仮に「A.MUS」とします)。 — らいきんぐ! (@liking_birds) 2020年9月5日
[手順追加(仮)] ※一部足らなかったので追加2-A. 手順2でファイルを保存する際、改行コードを「CR+LF」にして保存をします。直接ダウンロードした場合は、各種テキストエディタ等で、改行コードをCR+LFにして上書き保存します。 — らいきんぐ! (@liking_birds) 2020年9月5日
 ブラウザ上からMMLファイルをエクスポートします。

ありがとうございます。問題対処のレイヤー分けとしてはおっしゃる通りと思います〜。MMLのエンコードはよくお気づきで...‼︎ こちらは実機でコンパイルはまぁかなりレアな用途かなと思い、グローバル対応なUTF8を選んでいました。 — DSA (@ym2413) 2020年11月6日
 MSXplayでMMLをエクスポートし、実機のMGSCでコンパイルする際の注意事項として、MSXplayでエクスポートされるMMLファイルの文字コードUTF-8なため、実機で利用するにはエンコードシフトJIS(Shift-JIS)へ変換したほうが安全です。特に曲のタイトル・作者名・コメントなどMML内に日本語が含まれる場合はUTF-8のままでは確実に誤動作します。

(続き)3. コマンドプロンプトを起動し「copy /a A.MUS A1.MUS」を実行します。これは、テキストの末尾に「0x1A(CP/Mでのテキスト終端コード)」を付加するためのおまじないです。 — らいきんぐ! (@liking_birds) 2020年9月5日
(続き)4. 「MSXDOS.SYS」「COMMAND.COM」「MGSC.COM」「MGSDRV.COM」「A_.MUS (末尾に0x1aをつけたやつ)」を用意します。5. WebMSXを起動し、4.のファイル5つを「Import Files to Disk」で追加します。 — らいきんぐ! (@liking_birds) 2020年9月5日
 実機上でMMLのテキストデータを編集する際は、末尾に「0x1A」を付加することをお忘れなく。

(続き)6. WebMSX右下のギヤマークから「Select Machine」→「MSX Japan (NTSC)」を選択します。7. もう一度ギヤマークから「Konami SCC+」と「MSX-MUSIC」を有効にします(赤いマークが付くと有効)。 — らいきんぐ! (@liking_birds) 2020年9月5日
(続き)8. webMSXを起動し、MSX-DOSを起動させます。9. DOSプロンプトが表示されたら「mgsc a_.mus -p -n」を実行します(-pは再生のスイッチ、-nはMGSファイルを生成しないスイッチです)。10. 問題なければ音楽が再生されます。(これでおしまい) — らいきんぐ! (@liking_birds) 2020年9月5日
地味に面倒なのが「テキスト末尾に0x1aを付加する (copy /a)」ですかねぇ。最初これにハマり、コンパイルできずに悩みました…。 — らいきんぐ! (@liking_birds) 2020年9月5日

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

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

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

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

  • FM音源MSX-MUSIC)とSCC音源
  • MSX標準漢字ROM ※MGSEL.COMの日本語表示機能として
  • MSXView 漢字ROMカートリッジ ※MGSEL.COMの日本語表示機能として

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

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

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

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

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

 さらに、スロット節約の流れで、1つのカートリッジに複数の機能を持たせる「多機能カートリッジ」というジャンルが生まれました。海外発のプロダクトがいくつか発売され、2020年現在の人気アイテムとなっています。

MegaFlashROM SCC+SD

MegaFlashROM SCC+SD(いわゆるMFR512)が届きました!仕事も家事もてんてこ舞いで全然触れなくてつらい。今更知ったことだけどmicroSDスロットだったのか。とりあえずMSXの実機で通電、MM英語版の内蔵を確認。 pic.twitter.com/JkH6eUx2F3 — Takashi Kobayashi (@nf_ban) 2020年10月21日

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

www.msx.org

Carnivore2

先月届いたMSXの多機能カートリッジCarnivore2をようやくセットアップ。512MBのCFカードはWindowsで初期化。懐かしのSunrise IDE互換I/Fだから、NextorのシステムファイルをCFへコピーするだけであっさり簡単に起動する!しかもMegaSCSIと共存できるから過去資産の移動も簡単だ!いい買い物をした。 pic.twitter.com/QPS9lDc6iD — Takashi Kobayashi (@nf_ban) 2020年6月7日

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

www.msx.org

Nextor(ネクストル)という新OSの台頭

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

www.msx.org

 Nextorを動作するためには本体RAMをマッパーRAM 128KB以上へ増設する必要があるため、Nextorの利用を前提とした大容量ストレージカートリッジは概ね増設用マッパーRAM(やオマケ要素の各種音源)も搭載しています。こういった多機能カートリッジをMSX1で利用することで、MSX1でもSDカードをストレージドライブに設定できたり、SCC音源・FM音源による音楽再生を楽しめることが可能になりました。

MEGAFLASHROM SCC+でNextorが立ち上がっているという事は、.fdsイメージを登録して起動できるのでした^^;MSX-DOS1とhttps://t.co/bz7u3wF2Sq、https://t.co/rMxrvrvZ6K、takeback.musを入れた.fdsを登録して起動してみました。とりあえず鳴りましたー(^^)/ pic.twitter.com/BtV3uDgMFq — ひぽぽ(ファミコンGimmick!👍 (@koichironakaza1) 2020年9月5日
MSX1で.mgs再生の件、SNACHERサウンドカートリッジを使わず、MEGAFLASHROM SCC+の音源だけ繋いだ方が、少々ノイジーだけど音量と低音が楽しい感じです。スマホ直撮りでは分からないですね^^; pic.twitter.com/55nESjEBNi — ひぽぽ(ファミコンGimmick!👍 (@koichironakaza1) 2020年9月5日

MSX1「再活用」の課題

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

Nextor=DOS2 ではない

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

メインROMスロット番号の参照先がMSX1では不定値のために動作しないケース ※MGSDRVが該当します

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

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

mgsdrv /ZはMSX1のMX-10では暴走します。MSX2のF1XDではinstalledと出て、mgsc takeback.mus -p -nとすると再生出来ました。^_^; pic.twitter.com/rkw0n709fx — ひぽぽ(ファミコンGimmick!👍 (@koichironakaza1) 2020年9月5日

 この頃は原因が分かっていませんでしたが、マッパーRAMが搭載されていたMX-10はMSX1なのでワークエリアFFF7hが不定値のため暴走、F1XDはMSX2なのでワークエリアFFF7hが正しいため動作可能、ということが後々判明しました。

MSX1で.MGSを再生する件、MEGAFLASHROM SCC+と拡張RAMの組合せで起動確認しました。結果512KB RAMを内蔵しないMFRから起動せず、MSX1でMAPPER をサポートするRAMが必要と思われます。MSX1対応が謳われていない16MBカセットでも要RAM32KBのテープソフトは起動しました。(MSXのRAM構成上、当然?!^^;) pic.twitter.com/sWf8ZavnFV — ひぽぽ(ファミコンGimmick!👍 (@koichironakaza1) 2020年9月13日

 ちなみにDOS2互換を謳うNextorですが、マッパーRAM制御機能がDOS2の挙動と少し違うという話もあるようです。

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

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

MSX1+マッパーRAM+Nextor環境下における対処法

 MGSDRV本体に限らず、MSX2以降での動作を前提としていたMSX1で動作しない各種DOSアプリケーションにおいても、以下の手順を先行追加することでMSX1+マッパーRAM+Nextor環境で利用できる可能性が高まることのようです。

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

 2020年12月9日現在、HRA!さん開発のMGSDRV音楽プレイヤーアプリ「MGSP」はこの問題を解消するプログラムが実装されています。そして現在最も簡単な解決方法は、該当アプリ実行前にHRA!さん開発の「MAINROMP.COM」を先に実行しておくことです。上記ワークエリア値の変更を実現し、ワークエリア参照の問題を解決します。

 MSX1用再生アプリ「MGSP」および「MAINROMP.COM」はHRA!さんのWebサイトにてダウンロードできます。→ http://hraroom.s602.xrea.com/msx/software/mgsp.html

BASIC(DMシステム2)環境下における対処法

 拙作DMシステム2はMGSDRV(機能限定版)を搭載しており、MSX1でDMシステム2が動作するのであればMGSDRVのデータ再生がBASICから行えるのでは?と考え、MSX1でDMシステム2のインストールを試みた結果は以下の通りでした。

WebMSXでMSX1+DMシステム2の動作テストをやり始めているのだけれど、昨日はできたのに今日はインストールに失敗(フリーズ)するんですよね… https://t.co/M5tl3panBP — Takashi Kobayashi (@nf_ban) 2020年9月6日

  • マッパーRAM 128KB以上の環境下では、DMシステム2のインストール処理でフリーズしました。※512KBでテスト実施
  • 標準RAM 64KBの環境下では、DMシステム2はインストール可能でした。
  • 標準RAM 32KB以下の環境下では、DMシステム2はインストールできません(仕様です)。

MSX1+マッパRAMの環境でDMシステム2のインストールに失敗する報告を過去にツイートしたのですが、HRA!さんのMGSPに付属するMAINROMPを実行してからDMシステム2のインストールを行ったら成功しました(かもしれない)。失敗の原因特定か!?DM-System2 works on MSX1 + Mapped RAM + Nextor environment pic.twitter.com/YnVaaypuoa — Takashi Kobayashi (@nf_ban) 2020年10月13日

 調査の結果、DMシステム2もMGSDRVと同等のMSX2以降で利用できるワークエリア参照(FFF7h)処理が誤動作の原因と判明しました。DMシステム2のインストール前に「MAINROMP.COM」を先行実行することで、MSX1+マッパーRAM+Nextor環境においてもDMシステム2のインストールが可能になります。

 DMシステム2の概要・ダウンロードはこちら。→ https://www.gigamix.jp/ds2/

MSX2以降の機能を利用した拡張BASIC命令はエラーや誤動作が発生しますのでご注意ください。

原因判明までの経緯

初代MSX(MSX1)+NextorでMGSDRVの楽曲データを再生する方法がようやく俺も掴めてきた。WebMSXならこの手法でOKだけど実機+多機能カートリッジでは問題がでるかも?という話ですかね。本当はMSX1用のMGS音楽プレイヤーを用意できるのが一番良いのだろうけど… pic.twitter.com/gL5RqEe8Vc — Takashi Kobayashi (@nf_ban) 2020年9月13日
 WebMSX+MSX1+Nextorの実行環境ではMGSDRVを常駐インストールできる

   ↓

OpenMSXでの実験ですがMX-101+Carvonire2(CFカード)+Nextor2.1.0fでMGSDRV304からMGSDRV320に変更したところ、Installedでフリーズしました。今度は、dskイメージファイルをNextorのemufileでマウントして起動(MSX-DOS1環境になります)で実行するとInstall~演奏まで出来ました。#MSX pic.twitter.com/JipjYzp0mk — うにスキー (@uniskie) 2020年9月14日
 実機(カシオ MX-101)を再現したOpenMSX+Carnivore2+Nextor+MGSDRV 3.20の実行環境ではインストール時にフリーズする(3.04ではフリーズしない)

   ↓

https://t.co/ezJxL62fj2 問題の箇所を修正してみたのですが、この修正で大丈夫でしょうかね……。MGSDRV 3.4.0MGSDRV.COM$1FE4: $F7→$C1$1FE5: $FF→$FC — うにスキー (@uniskie) 2020年9月14日
 調査の結果、MSX1では未定義のFFF7hを参照しているMGSDRV 3.20のコードが原因であることが判明する

   ↓

もしかしたら、MainROM が slot0 に無い機種 (バージョンアップアダプタとか) に配慮したとか? (^^;@goripon_tw さんが理由を知ってたりしないですかね・・(^^; — HRA! (@thara1129) 2020年9月14日
 MGSDRVのバージョンを3.04から3.20へ上げたことでフリーズする原因は、MSX2バージョンアップアダプタによるMSX2実行環境に対応したためである可能性が指摘される

   ↓

FFF7hの方は当然MSX1では初期化されていないので、内容によっては暴走するでしょうね。なるほど。こんなところでMSX2以降縛りを発生させていたとは(汗)。MSX1ならFCC1hからメインROMスロットを取るようにすれば問題無くなりますが…うーむまさかのバージョンアップ対応?(苦笑) — ごりぽん (@goripon_tw) 2020年9月14日
 FFF7hはMSX2以降で新設されたメインROMスロット番号のワークエリアでありMSX1では初期化されないため、内容によってはRAMへのアクセスが正常に行えずフリーズする可能性があることが判明する

   ↓

https://t.co/Yo4X4NbuwJMSSDRV 3.2.0がMSX1+RAM64K+Nextorで動作する非公式パッチMGSDRV3.2PFFF7hの参照箇所をFCC1hに変更しただけ。MSX2バージョンアップアダプタでも、FCC1hがVUアダプタのスロット番号になるからOKらしい。(※スロット0拡張フラグが強制で1になる)(未保証)#MSX — うにスキー (@uniskie) 2020年9月15日
 FFF7hの参照箇所をFCC1hに変更する、MSX1+RAM64K+Nextorで動作する非公式パッチが開発される

   ↓

Uniskie Serv'n†Low様のツイート通り https://t.co/igaZOHB3LR バージョン3.20の$1FE4: $F7→$C1$1FE5: $FF→$FCとすることでCASIO MX-10でもNextor上でMGSDRV /Zの常駐に成功しました!感謝!!(^^)v — ひぽぽ(ファミコンGimmick!👍 (@koichironakaza1) 2020年9月15日
 実機(カシオ MX-10)+MegaFlashROM SCC+SD+Nextorの実行環境で、常駐インストールが可能になる →不具合の原因が確定する

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

MGSDRVのトップページ → https://www.gigamix.jp/mgsdrv/

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年に公開。

 なんでアボガドパワーズMSXって!?というのも、関係がまるで無いわけでもなかったのです。MSXの「BURAI下巻」とシューティングゲーム「RONA」の開発元だったのです。

アボパの浦社長と言えば、MSXでいうとBURAI下巻とRONA。MSX市販ゲーム再末期にご活躍された方ですね。この方のおかげで終末の過ごし方forMSXもリリースする事が出来ました。 — せいみまさみ (@masa_seimi) December 12, 2012

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

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

https://www.gigamix.jp/ds2/cg/screenshot_we_1.png

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

パッケージ

寝る前に「終末の過ごし方」とつぶやいたら妙に懐かしかったのでMSX版の箱を引っ張り出してきた。 pic.twitter.com/aqaDj2a9 — Takashi Kobayashi (@nf_ban) December 20, 2012

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

「終末の過ごし方」MSX版のメディアは、プリメもビックリの2DDフロッピーディスク8枚組w pic.twitter.com/migxqpJL — Takashi Kobayashi (@nf_ban) December 20, 2012

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

FD入れ替え云々のツイートを見て。MSX2版「終末の過ごし方」では、ファイルを上手く割り振って、ゲーム内時間で1日ごとにディスク交換するようにしたっけなと。会心の出来だったのにturboR版でそれが崩れて悔しかった思い出(苦笑)。 — ごりぽん (@goripon_tw) February 10, 2020

グラフィック

https://www.gigamix.jp/ds2/cg/screenshot_we_2.png

ブラウン管では許された表現的な話。「終末の過ごし方」というWindowsのADVをMSXへ移植する際、どんな画になるかをプレゼンするためのディスクが見つかった。MSX2+のSCREEN12を採用、背景にディザリングを使った。ブラウン管だと水彩風によくにじんで綺麗だったのだが、液晶だとまるでダメ… pic.twitter.com/MgLjuxuK3Z — Takashi Kobayashi (@nf_ban) September 23, 2019

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

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

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

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

サウンド

 MSX2+対応であったものの、全編PSG(AY-3-8910)で音楽が演奏されます。FM音源MSX-MUSIC)のBGMは制作はしていたのですが残念ながらメモリ容量の都合で入りませんでした。FS-A1FX(MSX-MUSIC非搭載のMSX2+)に配慮したためだ!と当時は言い聞かせていましたが、まぁムチャな言い訳でした。

 Windows版の楽曲からPSG 3音への落とし込みは、BEEPBOYさん(twitter@beepboytokyo)の職人技で実現しました。OPLLでなくPSGの音源にチープ化したことで逆にモノクロームな雰囲気がより濃く出るようになった印象がありました。

 後にFM音源版の楽曲を含んだサウンドトラックが発売されました。もしかすると中古市場に出回ってるかもしれませんね。

primitivesound.info

 ミュージックドライバーは現在当クラブでメンテナンスしている「MGSDRV」を採用しました。

 MGSDRVはどなたでもご自由にソフトに組み込んでお使いいただけますので、こちらもどうぞよろしくお願いします。https://gigamix.jp/mgsdrv/

ミドルウェア

 当クラブのBASICプログラム開発支援ツール「DMシステム2」を採用しました。

 漢字表示と画像圧縮で特に役立ちました。MSX2+の自然画モードにて影付き文字を背景グラフィックへ上乗せできる機能は当時珍しかったと思います。また、メモリマッパー管理、マウス・ジョイパッド兼用のデバイス制御、BGM演奏等の開発工数を軽減化しました。

ちなみにMSX版「終末の過ごし方」はハードディスクインストールにも対応。ディレクトリ掘ってフロッピーディスクの内容を全部コピーしてautoexec.bas実行で動く。DM-SYSTEM2、というかDiskMailのディスク入れ替えシステムの賜物だけども。 — ごりぽん (@goripon_tw) 2018年9月19日

 DMシステム2はどなたでもご自由にソフトに組み込んでお使いいただけますので、こちらもどうぞよろしくお願いします。https://gigamix.jp/ds2/

そういや…

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

で、MSX版ONEが出ないから、何か新作はないかと、移植だけど白羽の矢が立ったのが終末の過ごし方forMSX。MSX2+版は時間的問題と、音楽用バッファが3KiBしかないためFM音源データがメモリに置けずPSGのみ対応に。tR版は完成したFM音源版もちゃんと収録されています。 — せいみまさみ (@masa_seimi) May 10, 2016

製品情報

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

更新情報

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

2020.12.06: 既知のバグ情報・未確認情報まとめました。

メインページ拡充につき、バグ情報・未確認情報を別ページにまとめました。ご迷惑をおかけします。
MGSDRV:既知のバグ情報・未確認情報まとめ - Gigamix Online

2020.12.06: MGSDRVの組み込みライセンスを公開しました。

MGSDRVを組み込んでMSX向けデジタルコンテンツを配布したい方々への組み込み条件をまとめました。
詳しくは「MGSDRVの組み込みライセンス」をご覧ください。

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

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

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

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

2020.11.22: English and French translated documentation is available.

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

特徴

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

動作環境

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

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

f:id:nf_ban:20200115004615g:plain

NextorでMGSDRVをインストール

  • MGSDRV自体(MGSDRV.COM)は、基本的にMSX-DOS2環境で常駐させ、他のソフトからMGSDRVを呼び出して使用します
  • MSX-DOS2上位互換の「Nextor」でも常駐可能ですが、Nextorを利用する初代MSX(MSX1)および海外製MSX2では動作しない場合があります。
  • 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/Nextorを起動する。
  2. コマンドラインより mgsdrv /z を入力する。→MGSDRVがDOSに常駐します。Installed.と表示されたら成功です
  3. コマンドラインより mgsel を入力する。→MGSELが起動しますf:id:nf_ban:20200114235201g:plain
  4. MGSELを終了するには、ESCキーを押して下さい。→DOS画面へ戻ります

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

初代MSX(MSX1)の場合

 MSX-DOS(1)の動作条件として64KBのRAMが必要ですが、MSX1ではNextor(MSX-DOS2の上位互換OS)と128KB以上の増設RAM(マッパーRAM仕様)の導入を強くオススメします。マッパーRAM条件を満たしていても動作しない場合があります。詳しくは 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ブラウザ)で作る

https://t.co/8Dw5t60X7Z https://t.co/eaY7EIk6sT のMGSDRVオンラインMMLエディタ(コンパイラ・MP3出力・シェア機能付き)の快適っぷりに、感動などという軽い感情を通り越して、頬に涙が溢れる状況。本当にありがとうございます…🤗 @ym2413 pic.twitter.com/QmLFYSm6df — Takashi Kobayashi (@nf_ban) November 2, 2019

  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 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(1) 以降
作者Ain.
リソース 原版 MGSC111.LZH 1994.02.21, 17523 Bytes
再圧縮版 MGSC111.ZIP 2019.11.04, 17317 Bytes

MGSEL(楽曲データの再生)

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

ソフト名MGSEL version 3.01v
ハードMSX2MSX2+MSX turbo R
対応OSMSX-DOS(1) 以降 ※DOS2/Nextorを推奨
作者Ain.
リソース 原版 MGSEL01V.LZH 1994.04.04, 27396 Bytes
再圧縮版 MGSEL01V.ZIP 2019.11.04, 27559 Bytes

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

ソフト名MGSF
対応OSMSX-DOS(1) 以降
作者サイバラ
リソース 原版 MGSF00G.PMA 1999.09.15, 5632 Bytes
再圧縮版 MGSF00G.LZH 2019.11.04, 5854 Bytes
再圧縮版 MGSF00G.ZIP 2019.11.04, 5964 Bytes

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

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

BASIC MGSDRV プレイヤー

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

ソフト名DMシステム2 組み込みキット+BGMプレイヤー 最小インストールパッケージ
ハードMSX(1)、MSX2MSX2+MSX turbo R
対応OSMSX BASIC ver.1.0以降 ※ver.2.0以降を推奨
※初代MSX(ver.1.0)では64KB以上の増設RAMが必要。また、MSX1でマッパーRAMの搭載機種では事前に MAINROMP.COM を実行してください。詳しくは MGSDRVの音楽データをMSX1で聴きたい! - Gigamix Online をご確認ください
概要 MSXplayでコンパイルしたMGSデータをMSX実機のBASIC環境で演奏できる「MGSDRV BGMプレイヤー」をWebMSXに置きました。https://t.co/mGlKsd4dnO MSX2以上で動作。DOS・DOS2不要。サンプル(MGS・MML)付き。ファイラーではないのでドライブ・ディレクトリ移動は自力でお願いします。🤗 — Takashi Kobayashi (@nf_ban) November 2, 2019
BGMプレイヤーのBASICプログラムは DS2BGMON.BAS です。
DMシステム2の組み込みに必要なファイルは AUTOEXEC.BAS、DISKINST.BIN、DS2INST.DAT の3点です。組み込み時は3点以外のファイルは消去していただいて構いません。また、AUTOEXEC.BAS は自身のプログラムへRUNするために書き換えて使用してください。
作者Gigamix
リソース 原版(LZH) DS2BGMON.LZH 2019.11.03, 29164 Bytes
再圧縮版(ZIP) ds2_mgsdrv_player.zip 2019.11.03, 30037 Bytes
ディスクイメージ ds2_mgsdrv_player.dsk 2019.11.03, 737280 Bytes

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

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

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

タイトルMGSP(ver.1、ver.2)
ハードMSX(1)、MSX2MSX2+MSX turbo R
対応OSMSX-DOS2、Nextor
作者HRA!(twitter@thara1129)
概要 12/16 夜の作業 MGSP更新 http://hraroom.s602.xrea.com/msx/software/mgsp.html (1) ソート全般、期待通りに動いていなかったバグを修正とりあえず、既知のバグ全部潰しました😊 #MSX #MGSP
リソース http://hraroom.s602.xrea.com/msx/software/mgsp.html
ソフト名MSP version 1.01+(Plus)
用途MGS形式データファイルを演奏する簡易プレイヤー
対応OSMSX-DOS2/Nextor
作者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(1) 以降
作者たっく!
リソース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
作者DSA
リソース作者のページへ
ソフト名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
Documents translated to English and French https://www.msx.org/downloads/msxdrv-v320 (MSX Resource Center)
タイトルv3.xx データフォーマット 解析資料
概要 wow, great document!! I wrote mgsformat.txt when i created mgsc for win.https://t.co/NBQURLHCAx — DSA (@ym2413) January 18, 2020
作者DSA(twitter@ym2413)
リソース https://twitter.com/ym2413/status/1218503008708743168
タイトルv3.xx 圧縮データ 解析資料
概要 (Fixed post) MGSDRVの圧縮形式を俯瞰する図を書いてみました。Here is an overview of MGSDRV's compression format (just a summary, not comprehensive). pic.twitter.com/O7UaYGb7JY — DSA (@ym2413) January 30, 2020
作者DSA(twitter@ym2413)
リソース https://twitter.com/ym2413/status/1223015404907290624
タイトルOPLLの音色の主要な特徴をなすパラメータ「ML比・FB値目安」一覧表
概要 うちが作ってきたOPLLの音色において、その音色の主要な特徴をなすパラメータである「ML比・FB値目安」をまとめた表を作成してみました(過去に配布した「OPLLでの音色作成講座」で示したものに、加筆したものです)。参考になるかはわからないのですが、ひとまず公開してみます。 pic.twitter.com/lYd5GxyDIp — らいきんぐ! (@liking_birds) November 24, 2020
作者らいきんぐ!(twitter@liking_birds)
リソース https://twitter.com/liking_birds/status/1331266833224065026
タイトルGB音源の波形メモリデータを、SCC音源の波形メモリデータ(MGSDRV形式)に変換するスプレッドシート
概要 シレっと公開したけど、気づかれてないみたいなのでちゃんと書いておこう…。GB音源の波形メモリデータを、SCC音源の波形メモリデータ(MGSDRV形式)に変換するスプレッドシートを作りました。おまけとしてFamitracker形式のN163を変換するシートもつけてあります。https://t.co/wTrEFz6mEe — sdhizumi / S.Kudo (@sdhizumi) October 28, 2019
作者sdhizumi / S.Kudotwitter@sdhizumi)
リソース https://twitter.com/sdhizumi/status/1188841814242914304

開発支援・その他

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

タイトルSCC音色エディタ
概要 SCC音色エディタとりあえず公開してみる https://t.co/DuEUhZRkzk 三角波あんまり似てない?https://t.co/gSj9ldCmi8#MGSDRV #SCC — gary (@keijiro_im) February 8, 2020
作者gary(twitter@keijiro_im)
リソース https://twitter.com/keijiro_im/status/1226209235890929665
タイトルSCC音色作成ツール「S-Cube」
概要 微妙にニーズがありそうなので、超大昔に自作したSCC音色作成ツール「S-Cube」を置いときます。(※無保証&使い勝手はそんなに良くないです。動作遅いので実機ではなくエミュのノンウェイト推奨。Ctrl立ち上げ&SCCがslot0?じゃないと動かないかも) https://t.co/LUFXbfMM6A https://t.co/x5MWrp4fAO — Wiz.@「ペンゴ!オンライン」2曲「キャラバンブーマー」1曲作編曲担当 (@WizardOfPSG) November 7, 2019
少しだけバグと体裁を修正して、MuSICA音色出力に特化したバージョンがMSX MAGAZINE永久保存版3に入ってますので、お持ちの方は是非。 https://t.co/4pE3rSFVms https://t.co/nkbPPv19KF — Wiz.@「ペンゴ!オンライン」2曲「キャラバンブーマー」1曲作編曲担当 (@WizardOfPSG) November 7, 2019
Web上のMSXで動作するとの情報が。 軽く動かしてみた感じ、一応動作している模様です。 歯車アイコンを押して「Konami SCC+」をクリックすると、鍵盤に書いてあるキーで音も鳴ります…たぶん。 保存したデータは、フロッピーアイコンで「Save Disk Image」でお手元に。 https://t.co/U9iisjtCyU https://t.co/8Jvv7x44uG — Wiz.@「ペンゴ!オンライン」2曲「キャラバンブーマー」1曲作編曲担当 (@WizardOfPSG) November 7, 2019
作者Wiz.(twitter@WizardOfPSG)
リソース https://twitter.com/WizardOfPSG/status/1192484191549546496
MSXマガジン永久保存版3にも収録されているそうです。
ソフト名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) が多く採用されていました。それぞれの圧縮ファイルを展開するには、展開(解凍)ソフトが必要です。これらの圧縮ファイルを展開するソフトはいくつか存在しますので、インターネットで探してみてください。

MGSDRVの転載、配布について

 当クラブで配布する各種アーカイブの転載、配布は自由に行なって構いませんが、アーカイブの内容は変更しないでください。

 不明な点があれば、下記WEBページ、またはメールアドレスまでお問い合わせください。

 過去に流通したMGSDRVのLZHアーカイブに旧ドメイン(gigamixonline.com)のメールアドレスや住所などの個人情報を記載したドキュメントファイルが含まれていますが、2020年12月現在これらはアクセス不能(メールアドレスは存在しませんし、転居しました)となっておりますので、必ず最新版のアーカイブを当クラブから入手したうえで転載してください。よろしくお願いします。

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.

MGSDRVの組み込みライセンス

 MGSDRVを組み込んでMSX向けデジタルコンテンツを開発・配布することができます。販売価格の有料・無料を問わず、ライセンス料は無料です。MGSDRVを自ソフトへ組み込んで配布したい方は、以下の組み込みライセンスの条件に準じてください。よろしくお願いします。

1. プログラムは改変しないこと

  • オリジナル版MGSDRVの配布条件に「改変しないこと」が含まれます。よって、当サイトで配布するアーカイブに含まれるプログラムファイルをそのまま改変せずに利用してください。プログラムを改造した形で組み込むことは禁じます。
  • ROMカートリッジ化のような「DOS用のファイルから何からのバイナリデータへの変換作業」についてはプログラムの改造行為に含みません。
  • 配布するアーカイブにテキストデータ(ドキュメントファイル・ヘッダファイル)が含まれますが、可能であればそのまま改変せずに含めてください。なお、テキストに関しては次項に緩い条件を付けましたので、そちらの条件に合致していれば問題ありません。

2. ライセンスの表記をすること

  • アーカイブに含まれるテキストファイル(ドキュメントファイル・ヘッダファイル)の同梱をもってライセンス表記に代えさせていただきます。LZH形式のアーカイブファイルそのものを同梱していただくのがベストな手段です。
  • 容量不足や技術的な理由でデジタルコンテンツ内にファイルを含められない場合は、デジタルコンテンツ内のクレジット表記やオンラインヘルプ、Webサイト、マニュアル、パッケージ等に以下のテキストを1ヵ所以上明示してください。
      MGSDRV Ⓒ Ain./Gigamix または MGSDRV (C) Ain./Gigamix
  • なお、当クラブへ事前にご連絡いただけるのであれば、技術情報の提供やプロモーション等に協力させていただきますので、ぜひお待ちしております。:-)

3. ライセンスの料金はありません

  • ライセンス料金は無料です。当クラブは料金を設定していません。
  • なお、万がいち当クラブが何らかの代金がいただけるのであれば、サーバ維持費用等に有り難く利用させていただきますので、ぜひお待ちしております。:-)

BASIC版(DMシステム2)の組み込みについて

 DMシステム2はMGSDRV(機能限定版)がデフォルトのBGMドライバとして実装されています。MGSDRVの組み込み条件に加え、DMシステム2の組み込み条件にも準じてください。

キャラバンブーマー。曲は90年代にパソ通で主流を占めたMGSDriverである。だもんで、プレイヤーがあると好きに鳴らせる。タイトルと作曲者も分かるぞ。ヨナオケイシさんの曲が再びMSXで聞けるという感動の前に視界が涙で滲むぜ! — MSX研究所長 (@yoshimatsuTUQ) September 2, 2020
 2020年発売のMSX2対応シューティングゲーム「キャラバンブーマー」では、BGMドライバにMGSDRV(+ミドルウェアにDMシステム2)が採用されています。

akiba-pc.watch.impress.co.jp

過去にMGSDRVを組み込んで流通していたデジタルコンテンツの再配布・再販売について

 過去にMGSDRVを含んだソフトウェアが公開または販売されておりましたが、改めて再配布・再販売を行う場合はこの条件に揃えていただきたく存じます。

ROMカートリッジ化の組み込みについて

 ROMカートリッジ化における組み込み条件のお問い合わせも多数頂戴しております。当クラブではROMカートリッジ化についてもライセンスを承認しています。

mgsdrv.com を丸ごとROMにおいて、+0010h~(だったかな?)を RAMのpage1の 6000h~ にコピーして使えばよいと思います。そこにおかれる前提でアドレスが設定されてるので。 — HRA! (@thara1129) 2020年12月7日
元々がPage1(確か6000h~)で動作しているのでリロケートしないと他には置けないですね。ドライバのサイズは8KB上限と定められていたかと思いますが…ワークRAM込みだったかな?やっぱりROM組み込める版が必要か…。 — ごりぽん (@goripon_tw) 2020年12月7日
 しかしながらMGSDRVはプログラムが自己書き換えを行ったり(=ROMでは書き換えができないため誤動作します)、RAMの7000h以降にワークエリアを設定するなど、現状RAM 64KB以上を必要とする環境下での動作を前提としていますので、特に初代MSX(MSX1)向けのROMソフト化は困難と考えられます

現状だとMGSDRVの実行ファイル丸ごとROMに組み込んだうえでRAM上にMGSDRVのドライバ部分を転送しないと使えませんね(苦笑)。やっぱりROMに組み込めるドライバは必要だろうか…。 https://t.co/zVwoYSnx7t — ごりぽん (@goripon_tw) 2020年12月7日
 MSX1・ROM用途向けドライバの新規開発を行えば実現可能でしょうが、現状はそうなっていません。予めご了承ください。

ソースコードは配布しておりません

MGSDRVそのものの開発に関するライセンスとしては、開発当事者以外にソースコードの配布が禁止されている(その条件でソースコードを提供していただいた)のでソースを公開できないのは心苦しいのですが、現状できることとしては当クラブで開発したものを配布するのは可能、ということかと。— Takashi Kobayashi (@nf_ban) November 23, 2020
 MGSDRVのソースコードは現状の配布ライセンスに基づき、当クラブから配布することはありません。予めご了承ください。

愛好家の作成例・テクニック

 テクニック集は別ページでまとめました。 gigamix.hatenablog.com

バージョンアップ履歴

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コンパイラの制作作業等、当プロジェクトを継続するにはリソースが足りません。ご協力いただける方がいらっしゃいましたらぜひ情報提供をお待ちしています。

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

 別ページにてご紹介します。ご迷惑をおかけします。バグ情報・不具合情報をお待ちしております。当チーム @nf_ban(主宰) または @goripon_tw(プログラム担当) までお寄せください。

gigamix.hatenablog.com

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)のレクチャー

連絡先

MSX Club Gigamix
Website https://www.gigamix.jp/
Twitter @nf_ban (Takashi Kobayashi)
E-mail nf_ban@gigamix.jp (Takashi Kobayashi)


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

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

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