Gigamix Online

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

MGSDRV:既知のバグ情報・未確認情報まとめ

随時更新中

 MGSDRVに関する既知のバグ情報・未確認情報をまとめました。ご迷惑をおかけします。

 バグ情報・不具合情報をお待ちしております。当チーム @nf_ban(主宰) または @goripon_tw(プログラム担当) までお寄せください。

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

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

あれ?mgsdrvってSCC+の4/5チャンネルの独立音色モードって対応ってしてたっけ。なんか昔対応してない、という話になったような記憶が...。— DSA (@ym2413) January 21, 2020
 コナミのゲームカートリッジに内蔵されていたSCC音源はチャンネル4とチャンネル5を共通の波形でしか利用することができないハードウェア仕様でしたが、「スナッチャー」の付属サウンドカートリッジ(通称:「SCCI」「SCC-I」「SCC+」)はチャンネル4とチャンネル5を独立して利用できるハードウェア仕様となっています。

MGSDRVバージョンアップするとして。MSX1を想定した件の修正と、可能ならSCC+対応(4/5チャンネルの個別音色指定)はやりたいな。あとはバグ修正だけど…ややこしいのばっかりだからなー。むぐぐ— ごりぽん (@goripon_tw) September 15, 2020
 ですが、MGSDRVではSCCIに現状非対応です(SCCと同じ振る舞いを行います)。SCCIのチャンネル4とチャンネル5は共通の波形で動作します。今後対応できるかもしれませんが、開発機材=実物(カートリッジ)の確保が急務。

音ずれ?

MGSDRVのバグで1つ思い出したのは、(発生条件が判らないのですが)「1音目の発音音階が化ける(別の音になる)」というやつです。 なので、今でもMGSDRVのデータは、全chでv0のダミー発音データを入れてます。 MSXplayの「Arabiyaan」にも入ってるw https://t.co/hbhre3y9G0 https://t.co/jtIlJiiwo1 pic.twitter.com/of5MZ7JkI7 — Wiz.@「ペンゴ!オンライン」2曲「キャラバンブーマー」1曲作編曲担当 (@WizardOfPSG) November 17, 2019
あー…想像以上にずれてますね。 流石にこれはMGSDRVのバグっぽいですね。 他にもいくつかバグがあったような。 https://t.co/zWQFTcM8a1 — Wiz.@「ペンゴ!オンライン」2曲「キャラバンブーマー」1曲作編曲担当 (@WizardOfPSG) November 17, 2019
いやぁ…どうでしょう?w 拙者は音を敷き詰めて曲を作るタイプなので、メロだけ浮かせて静かな音色でモーフィング掛けると目立つ…のかもしれません。 もしかすると、MGSDRVの作者の方が、何等かの対処をしてそうな気もしますが。 https://t.co/pcwrvxh9UC — Wiz.@「ペンゴ!オンライン」2曲「キャラバンブーマー」1曲作編曲担当 (@WizardOfPSG) November 23, 2019
Webの「MML Editor」に読み込ませた.MUSの演奏時間を拡張するコマンドがあったのか!MGSCの取説に載ってなかったような?やり方は、.MUSの冒頭に「;[duration=600s]」を書き込んでコンパイルすると、演奏時間が600秒に拡張される。コマンド内の「600s」の値を変更すれば、任意の演奏時間に変更可。 https://t.co/mznphNGJNh — ぎゃぶねこ (@gyabuneko) December 4, 2019

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

ぎゃー24行目に打込みミス発見・・!CDE [[BAEF+4E+4B] [AG+F+D4F+G+A]] [BAEF+4E+4BAG+F+D4F+G+A] 「E+4」の部分がそれです。幸い、音自体は「E」の音で鳴ってくれてました。てっきり「F」音が鳴るものと・・焦った~ — K.H.(焼飯太郎)@モーメントに作品まとめてます (@Yakimeshi_Taroh) October 15, 2020
厳密に言うとMGSDRVではなく、MGSCの仕様と思います。基本的には E+ = E で扱われることはないと思います。E+ = F で演奏するか、E+ と F を微妙に違う周波数で演奏するかは、調律や楽器によるかなと思います。 — DSA (@ym2413) October 16, 2020
 一般的にMML表記の「E+」は「F」の音階または相当の音階になるようですが、MGSDRV(MGSC)では「E」になります。方言となりますのでご注意ください。

@eエンベロープで音色を切り替えると音がおかしくなる現象?

MGSDRV、@ e エンベロープで音色を切り替えると特に曲の冒頭で音がおかしくなることが多いですが、これはキーオンから @ e が適用されるまで一瞬だけ別の音色が適用されているからです。 — DSA (@ym2413) February 18, 2020
 特に曲の冒頭で音がおかしくなる場合が目立つのは、キーオンから @e が適用されるまで一瞬だけ別の音色が適用されているから。バグとも言えるかもしれませんが、ver.3シリーズにおいては仕様となります。

英語では何度かツイートしましたが、MGSDRVの @ e コマンドは「現在の音色にエンベロープをコピー」という意味です。 @ コマンドで一度も音色を指定していない状態で @ e コマンドを使うと、音が出なかったり変な音が出たりします。 — DSA (@ym2413) February 18, 2020
 MGSDRVの @e コマンドは「現在の音色にエンベロープをコピー」という意味です。 @ コマンドで一度も音色を指定していない状態で @ e コマンドを使うと、音が出なかったり変な音が出たりします。

半角スペースの入れ方に注意

ちょいと所用でMGSDRVをいじってるんですが、「音階と音長の間」の半角スペースは無視されるけど、「マクロ種別と数値の間に半角スペースを入れるとエラーになる」のね…知らなかった。例)〇a8〇a 8〇*b8×*b 8…って、こんな書き方しようとしてるのは拙者だけかもしれませんがw — Wiz.@「ペンゴ!オンライン」2曲「キャラバンブーマー」1曲作編曲担当 (@WizardOfPSG) 2020年12月6日
MGSDRV自体はコンパイルされたバイナリデータを再生するので、どちらかというとMGSCの仕様ですね。MGSCもソースが失われていて復旧もされていないので手を加えられないのですよ。 https://t.co/PnLQ1eFXX1 — ごりぽん (@goripon_tw) 2020年12月7日
 twitter@Wiz.さんの報告。「音階と音長の間」の半角スペースは無視される、マクロ種別と数値の間に半角スペースを入れるとエラーになる。バグとも言えるかもしれませんが、ver.3シリーズにおいては仕様となります。

machine_id の使い方が不明?違いはあるのか?問題

研究いただいてありがとうございます。m(_ _)mmachine_idについて、既存データにmachine_idを付加するツールを使った事があるのですけど、私も違いが分かりませんでした^^;MSXメーカーや機種毎にカートリッジスロット部の抵抗値に違いがありますが、抵抗値を変更するしか特効薬は無い様ですね。 — ひぽぽ(ファミコンGimmick!👍 (@koichironakaza1) 2020年7月23日
machine_idの違いがわからないのは自分だけではないということで安心しました(おぃ 機種毎の音量違いはMMLのボリューム値を変えただけではなかなか対処できないのでほんとに厄介です。なので今作っているグラディウスの曲は機種による音の違いが出ないようSCCのみで作っているのですが・・・ — ぱるぷ (@parupu_x_nagae) 2020年7月23日

 私(nf_ban)も調査を進めていますが、今のところ machine_id に対応するアプリは MGSEL のみ、machine_id の違いを定義する仕様書の類も存在しない、という状況です。

MGSCNV: ver.2→ver.3への変換の違いについて

ver2をver3にツールで自動変換した.mgsファイルを、MSXplayの逆コンパイル機能で変換したMMLを解析してみたのですが、違いがあったのは・・・・データの冒頭で「machine_id」と「alloc」が追加されている・テンポが1/2になっていて、MMLの音長も1/2にされている続きます — ぱるぷ (@parupu_x_nagae) 2020年7月23日
検証に使用したファイルも自前のレンタル鯖に置いておきますね。ver2のBASICファイルhttps://t.co/TCWPNj2dcrver2をver3に自動変換して、MSXplayで逆コンパイルしたテキストhttps://t.co/l1CJ99vwbY — ぱるぷ (@parupu_x_nagae) 2020年7月23日
 変換後のテンポと音調が1/2になるのはバグとも言えるかもしれませんが、ver.3シリーズにおいては仕様となります。

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

MGSDRV ですが、PrimaryMemoryMapper にしかインストールできないみたいですね。プライマリを消費し尽くしてから常駐させて、MGSPから曲を読み込んだら、漢字RAMのときと同じ理由で死ぬかなと、テストを試みたのですが、そもそも MGSDRV がプライマリしかダメでした (^^;#MSX #MGSDRV — HRA! (@thara1129) October 19, 2020
常駐部分の簡略化とスロット切替のコストを嫌ってのことですね。基本的にDOS2でマッパ使って常駐するものには要プライマリマッパってのが多いような? https://t.co/YWxDBHOJIo — ごりぽん (@goripon_tw) October 19, 2020
 各種拡張メモリカートリッジをスロットに差すような「マッパーRAMが複数ある状態」の場合でも、MGSDRVではプライマリのマッパーRAMでしか常駐できません。turboR規格の場合は本体内蔵RAMが自動的にプライマリになります(A1ST 256KB、A1GT 512KB)。

任意のアドレスへ移動(リロケート)ができない?

制作しているメガROMゲームにMGSDRV実装案もありまして、自己書き換えやっているのでRAMのどこに置いたらいいかと、PAGE1ですかねぇ・・・? — むらかたとうじ/村方凍二 (@ipheion78) 2020年12月7日
mgsdrv.com を丸ごとROMにおいて、+0010h~(だったかな?)を RAMのpage1の 6000h~ にコピーして使えばよいと思います。そこにおかれる前提でアドレスが設定されてるので。 — HRA! (@thara1129) 2020年12月7日
元々がPage1(確か6000h~)で動作しているのでリロケートしないと他には置けないですね。ドライバのサイズは8KB上限と定められていたかと思いますが…ワークRAM込みだったかな?やっぱりROM組み込める版が必要か…。 — ごりぽん (@goripon_tw) 2020年12月7日
仕様書を見ると、一時期 MGSDRV.REL というものが公開されていて、それは L80. COM でアドレス再配置できたようですが、いまはCOMしか見あたらないので 残念ながら6000h固定ですね😅4000h~5fffhは自由に使って良いようです。 — HRA! (@thara1129) 2020年12月7日
以前はMGSDRV.RELが公開されてたのか。まさにMGSDRV.REL公開できないかなと考えてたところなので…仕様書読んでみるかー。 — ごりぽん (@goripon_tw) 2020年12月7日
 MGSDRV本体はリロケータブルではありません。ただし過去にMGSDRV.RELというファイルがパソコン通信ネットで流通していて、MSX-L80を用いて再構成することで任意のアドレスへ移動が可能だったようです。

 当クラブではMGSDRV.RELを入手および管理していません。もし今でも関連ファイル・アーカイブをお持ちの方がいらっしゃいましたらぜひご連絡ください。

管理者は見ている

2桁年ぶりにMGSDRVをバージョンアップするかもと言う話になってるんだけども。最新版って3.20で合ってるよね?(汗)(苦笑)何せ2桁年経ってると手元の物が最新かどうかも微妙なうえ、もうちょっとバージョンが上がってたような気もするので…。 — ごりぽん (@goripon_tw) September 14, 2020

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