【2024.02.21更新】 多重ループ(ループの入れ子)が誤動作する 追加
【2024.02.07更新】 音程を数値で指定するNコマンドは存在しない 追加
【2024.02.07更新】 SCC音源:音色定義が32種類までしか持てない 追加
【2023.10.15更新】 @eコマンドに関する事象 追加
【2022.11.23更新】 SCCでo1の音を鳴らすと音痴になるバグ?
【2022.2.8更新】 PSG音源の「\」(¥)コマンドを用いたピッチ調整量が、音の高さに応じて変動する?
MGSDRVに関する既知のバグ情報、バグなのか仕様なのか分からないような未確認情報をまとめました。ご迷惑をおかけします。
バグ情報・不具合情報をお待ちしております。当チーム @nf_ban(主宰) または @goripon_tw(プログラム担当) までお寄せください。
- 未解決・未調査の情報
- バグではなく仕様の情報
- MMLをコンパイルできない場合の確認点
- PSG音源の「\」(¥)コマンドを用いたピッチ調整量が、音の高さに応じて変動する?
- 移調するコマンドは存在しない
- 音程を数値で指定するNコマンドは存在しない
- SCCI(スナッチャー付属サウンドカートリッジ)に対応している?
- 音ずれが発生する
- E+ と E が同じ音階になる
- ポルタメントの直後にオクターブコマンドを書くと違うポルタメントが演奏される
- 多重ループ(ループの入れ子)が誤動作する
- @eコマンドに関する事象
- FM音源:曲の先頭、休符の直後、音色切り替え直後の1音だけ違う音色になってしまうことがある
- FM音源:「9音リズムモード」でHチャンネルの音量が全く反映されない
- SCC音源:最初の1音をオクターブ1の g から始めると正常なオクターブで音が出ない
- SCC音源:音色定義が32種類までしか持てない
- 半角スペースの入れ方に注意
- MGSCNV: ver.2→ver.3への変換の違いについて
- プライマリのマッパーRAMへしか常駐できない?
- 任意のアドレスへ移動(リロケート)ができない?
- 管理者は見ている
ちなみにMGSDRVの概要・ダウンロードは、こちらのリンクからどうぞ。 www.gigamix.jp
未解決・未調査の情報
SCCでo1の音を鳴らすと音痴になるバグ?
出だしに o1c (v0でOK) を入れることで回避できます。詳細は以下のツイートにあります。
L128を指定するとテンポがずれる?
kf→koの切り替え前後に共通したリズム楽器が指定されている場合、そのリズム楽器が発声されない?
詳細不明ですが、回避策はあります。
vbの相対指定を使用すると他のリズム楽器も巻き込まれて音量が変化する?
詳細不明です。
opll_tuneで指定した値によっては音程が意図しない高さになる?
詳細不明ですが、回避策はあります。
machine_id の使い方が不明?違いはあるのか?問題




私(nf_ban)も調査を進めていますが、今のところ machine_id に対応するアプリは MGSEL のみ、machine_id の違いを定義する仕様書の類も存在しない、という状況です。
バグではなく仕様の情報
MMLをコンパイルできない場合の確認点
1行が256文字を超えるとコンパイルに失敗する・演奏されない現象が発生する
MSXが現役だった頃は性能不足によりテキストエディタ側が長い行に対応できないといった都合が多々あり、横80文字程度の長さで改行を入れることがマナーだったりユーザー自身がそうする癖を付けたりしたため、昨今までこのような現象が見逃されていました。
現状は、MSXplayでは適度な長さで改行を入れることで対応してください。よろしくお願いします。
MSXplayのMMLをあえて実機でコンパイルしたときに失敗する際の注意点
特にMSXplayでシェアされているMMLデータをあえてMSXの実機でコンパイルしようとした場合につまづくポイントです。Windowsでは特に気にしませんが、テキストファイルの終端を意味するEOFコード(0x1A)がテキストファイルの終端に存在しない場合は意識的に付与する必要があります。
PSG音源の「\」(¥)コマンドを用いたピッチ調整量が、音の高さに応じて変動する?
仕様、とのこと。
移調するコマンドは存在しない
#psg_tune はPSG音源全体の音程の元となるデータを変更する命令で、これを用いれば移調も再現可能ですが、特定のタイムラインや特定のチャンネルだけ移調するようなケースは想定されていません。
音程を数値で指定するNコマンドは存在しない
MSX-BASICのMMLには音の高さを0〜96の数値で表現するNコマンドが存在しますが、MGSDRVには存在しません。
SCCI(スナッチャー付属サウンドカートリッジ)に対応している?
コナミの各種ゲームカートリッジに内蔵されていたSCC音源はチャンネル4とチャンネル5を共通の波形でしか利用することができないハードウェア仕様でしたが、「スナッチャー」の付属サウンドカートリッジ(通称:「SCCI」「SCC-I」「SCC+」)はチャンネル4とチャンネル5を独立して利用できるハードウェア仕様となっています。
ですが、MGSDRVではSCC-Iに現状非対応です(SCCと同じ振る舞いを行います)。SCCIのチャンネル4とチャンネル5は共通の波形で動作します。今後対応できるかもしれませんが、開発機材=実物(カートリッジ)の確保が急務。
SCC-I対応を行うにはドライバの新設計が必要との見解です。現状はペンディングです。
音ずれが発生する
E+ と E が同じ音階になる
一般的にMML表記の「E+」は「F」の音階または相当の音階になるようですが、MGSDRV(MGSC)では「E」になります。方言となりますのでご注意ください。
ポルタメントの直後にオクターブコマンドを書くと違うポルタメントが演奏される
多重ループ(ループの入れ子)が誤動作する
どこまで深く入れ子にすると誤動作するのかはよく分かっていません。ご注意ください。
@eコマンドに関する事象
@eエンベロープで音色を切り替えると音がおかしくなる現象
MGSDRVの @e コマンドは「現在の音色にエンベロープをコピー」という意味です。 @ コマンドで一度も音色を指定していない状態で @ e コマンドを使うと、音が出なかったり変な音が出たりします。
特に曲の冒頭で音がおかしくなる場合が目立つのは、キーオンから @e が適用されるまで一瞬だけ別の音色が適用されているから。バグとも言えるかもしれませんが、ver.3シリーズにおいては仕様となります。
@コマンドで一度も音色を指定せずに音を鳴らすと最初の1音だけ「ビ〜〜ッ」っという謎の音が入り、以降の音は鳴らなくなる現象
エレキベースの音が一瞬鳴った後、空のユーザー定義音色(すべての音色パラメータが0)に切り替わったことによって出る異音、とのこと。発音前に音色指定を必ず行ってください。
@コマンドを指定せずに @eコマンドを利用すると演奏結果が不定になる
@eコマンドを適用すると他の場所で@eコマンドが適用された状態になるときとならない時がある
@eコマンド内で一切音量定義を書かずにループ終端コマンドをつかうと演奏時にドライバがハングアップする
どのFM音源音色に@eコマンドを適用したかによって発音される音色が微妙に異なる
@eコマンド内でFM音源音色を切り替えると音が違うことがある
FM音源:曲の先頭、休符の直後、音色切り替え直後の1音だけ違う音色になってしまうことがある
FM音源:「9音リズムモード」でHチャンネルの音量が全く反映されない
本来設定できない「9音リズムモード」。特殊な環境なのでバグなのか仕様なのか分かりにくいのですが、OPLLの仕様のようです。
こちらは新バージョンへの要望。
SCC音源:最初の1音をオクターブ1の g から始めると正常なオクターブで音が出ない
SCC音源:音色定義が32種類までしか持てない
SCC音源の音色定義に割いているメモリ容量は1音32バイトで、計32種類(1KB)も定義できれば十分かと思われていましたが、まさか32種類以上の音色を定義したくなる日がやってくるとは…
半角スペースの入れ方に注意


twitter@Wiz.さんの報告。「音階と音長の間」の半角スペースは無視される、マクロ種別と数値の間に半角スペースを入れるとエラーになる。バグとも言えるかもしれませんが、ver.3シリーズにおいては仕様となります。
MGSCNV: ver.2→ver.3への変換の違いについて


変換後のテンポと音調が1/2になるのはバグとも言えるかもしれませんが、ver.3シリーズにおいては仕様となります。
プライマリのマッパーRAMへしか常駐できない?


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





MGSDRV本体はリロケータブルではありません。ただし過去にMGSDRV.RELというファイルがパソコン通信ネットで流通していて、MSX-L80を用いて再構成することで任意のアドレスへ移動が可能だったようです。
当クラブではMGSDRV.RELを入手および管理していません。もし今でも関連ファイル・アーカイブをお持ちの方がいらっしゃいましたらぜひご連絡ください。
管理者は見ている
MGSDRVのトップページ → https://www.gigamix.jp/mgsdrv/

























![Webの「MML Editor」に読み込ませた.MUSの演奏時間を拡張するコマンドがあったのか!MGSCの取説に載ってなかったような?やり方は、.MUSの冒頭に「;[duration=600s]」を書き込んでコンパイルすると、演奏時間が600秒に拡張される。コマンド内の「600s」の値を変更すれば、任意の演奏時間に変更可。 https://t.co/mznphNGJNh — ぎゃぶねこ (@gyabuneko) December 4, 2019](https://p.gigamix.jp/mgsdrv/cg/twitter_gyabuneko_1202211910885629952.png)
![ぎゃー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](https://p.gigamix.jp/mgsdrv/cg/twitter_Yakimeshi_Taroh_1316764719890395136.png)

![[その7] o5c_o6c のようにポルタメントの直後にオクターブコマンドを書くと、o5c→o7cへのポルタメントが演奏されてしまいます。_コマンドから次のノートまでの間のoコマンドが+1して解釈されてしまうっぽい。https://t.co/EN9umE0QBD — DSA (@ym2413) 2020年7月20日](https://p.gigamix.jp/mgsdrv/cg/twitter_ym2413_1285005555803631616.png)










![[その1] ある場所で @e コマンドを適用したFM音源音色は他の場所(他のチャンネルでも) @e コマンドが適用された状態になるときとならない時がある。https://msxplay.com/?open=d03cba3a6f3fddb211fcba0d2862f6fe70cf13b3 — DSA (@ym2413) 2020年5月5日](https://p.gigamix.jp/mgsdrv/cg/twitter_ym2413_1257668259165290500.png)
![[その2] @eコマンド内で一切音量定義を書かずにループ終端コマンドをつかうと演奏時にドライバがハングアップする。 — DSA (@ym2413) 2020年5月5日](https://p.gigamix.jp/mgsdrv/cg/twitter_ym2413_1257668261019148289.png)
![[その3] @eコマンドの先頭でFM音源音色を切り替えると、どのFM音源音色に@eコマンドを適用したかによって、発音される音色が微妙に異なる。理由はドライバの内部的に一瞬だけ、@e の処理が始まる前に、そのチャンネルに設定されたFM音源音色が有効になる期間があるため。 — DSA (@ym2413) 2020年5月5日](https://p.gigamix.jp/mgsdrv/cg/twitter_ym2413_1257668262667489280.png)

![[その4] @eコマンド内でFM音源音色を切り替えると、発音タイミングによって稀に音が出なかったり、違う音色が出てしまうことがある。YM2413のエンベロープがちょうどAR→DRのように遷移するタイミングで@eコマンドの処理が重なると発生する。 — DSA (@ym2413) 2020年5月5日](https://p.gigamix.jp/mgsdrv/cg/twitter_ym2413_1257668265645445120.png)

![[その5] FM音源で、曲も先頭、休符の直後、音色切り替え直後の1音だけ違う音色になってしまうことがある。これは YM2413 のチップのバグ(と言い切ってしまおう)です。キーオフ時の消音機能の実装がハード的にぶっ壊れているためです。詳しくは、https://t.co/uwSWhuUyyP — DSA (@ym2413) 2020年5月5日](https://p.gigamix.jp/mgsdrv/cg/twitter_ym2413_1257668268619264000.png)



![[その6] これは実機では未検証で、もしかすると msxplay 側の不具合かもなのですが SCC音源チャンネルで、最初の1音をオクターブ1の g から始めると正常なオクターブで音が出ません。サンプルこちらなので、どなたかお試しいただけると…。https://t.co/hudF9QAAVg — DSA (@ym2413) 2020年5月5日](https://p.gigamix.jp/mgsdrv/cg/twitter_ym2413_1257668271081308161.png)


