Skip to content

MsxSoundSuiteExtension v0.3.3

Choose a tag to compare

@madscient madscient released this 19 Sep 14:35
· 57 commits to master since this release

利用条件

この ROM イメージは個人利用に限り許諾されています。

再配布には MSX ライセンシングコーポレーションの許諾が別途必要です。
詳細は同梱の NOTICE.md を参照してください。

v0.3.2 からの変更点

変更はすべて Y8960 BASIC Extension(y8960bas.rom)です。MSX-MUSIC・
MSX-AUDIO・SFG・MIDI Play の単体 ROM は v0.3.2 と同じです。

注意:@n を書かないトラックの鳴り方が変わりました

FM 音源(OPLLEX・OPL2EX)と SCC のトラックで、@n を書かずに音符を置くと、
最初の音符の時点で @0 と書いたのと同じに扱われるようになりました。

  • 音色を共有するチャンネルでは、鳴る音が変わることがあります。OPLLEX の
    ユーザー音色は 1 回路に 1 つ、SCC のチャンネル 3 と 4 は波形を共有します。
    これまでは @n を書かないトラックが、別のトラックの選んだ音色で鳴ることが
    ありました。いまはそのトラックも音色 0 を選びます。
  • そうしたトラックも、シーケンスの音色用の置き場所(1 シーケンス 32 種類まで)を
    1 つ使います。シーケンスは音色 1 つぶんの 36 バイトと、トラックごとに
    2 バイト大きくなります。

注意:ADPCM のボイスファイルが 64 個になりました

  • SET PCM の音声ファイル番号と、ADPCM チャンネルの @n が 0-63 に
    なりました。
  • EXPORT PCM のファイルは形式を変えずに、設定の件数が最大 64 件になりました。
  • Y8960 Sequencer BIOS の ABI バージョンが 4 になりました。 SQPTBR が
    書き込む表は最大 448 バイト(これまでは 224 バイト)になります。
    224 バイトの場所を渡しているアプリケーションは、場所を広げてください。

注意:これまで通っていた MML がエラーになります

仕様どおりに Illegal function call になるよう直しました。

  • ADPCM チャンネルの @64 以上(これまでは 65-191 が通り、演奏時に無視されて
    いました)
  • Y で、その音源に無いレジスタを指定したもの(これまでは演奏時に無視されて
    いました)。DCSG ではデータの 0-15 も確かめます
  • 長さ 0 の N のあと、時間を進めずに次の音符を置いたもの。英字の音符では
    これまでもエラーでした

(TC)/(CODA) と (DS)/(*) を別の MTRK に書けるようになりました

同じトラックの中なら、別の CALL MTRK に書いたものどうしでも対になります。
曲を何回かに分けて書いても、1 回で書いたときと同じに演奏されます。

  • (TC) はトラックの (CODA) へ飛びます。(CODA) が前にあっても後から
    書いても同じです。
  • (DS)n は、それより前に書いた同じ番号の (*)n のうち最後のものへ
    飛びます。
  • (CODA) は 1 トラックに 1 つです。MTRK を分けても 2 つ目はエラーです。

直したもの

  • ADPCM チャンネルで、置いたボイスファイルの音が鳴らなかったのを直しました。
  • (CODA) の無いトラックに (TC) を 2 つ以上書くと、2 つ目以降が誤った
    位置へ飛んでいたのを直しました。
    (CODA) が無ければ (TC) は何もしません。

ドキュメント

挙動は変わらず、文書に書いていなかったことを書きました。

  • 長さを省いた R は Ln の音長になります(MSX-MUSIC BASIC Extension の
    R は L によらず四分休符で、ここは違います)。
  • 音符も休符も無い無限ループ(|::|0 など)は、そのトラックがそこで終わります。
  • シーケンスのバイトコード
    (docs/y8960/bytecode.md)に、
    セーニョの目印 86 を足しました。ほかに、クオンタイズの範囲(1-8)、
    テンポの初期値(120)、到達カウンタが 256 回で一周すること、時間を取らない
    イベントの上限、チャンク 03 を読み手が検査しないことを書きました。
    音色を選ばないトラックも、書き手は既定の音色のレコードをブロックに入れる
    ことにしました。

収録物

ファイル サイズ 用途
y8960bas.rom 128KB Y8960 カートリッジ用。5つの拡張BASICをすべて収めたイメージ
mmbe.rom 16KB MSX-MUSIC 単体用。本体内蔵 MSX-MUSIC の差し替え、または ROM カートリッジ
mabel.rom 16KB MSX-AUDIO(Y8950)単体カートリッジ用
sfg.rom 16KB SFG-01/05 と併用する単体カートリッジ用
midi.rom 16KB MIDI インターフェースを鳴らす単体カートリッジ用

下の「Source code (zip / tar.gz)」は GitHub が自動で付けるもので、中身は
ドキュメントとビルド用スクリプトだけです。拡張BASIC 本体のソースコードは
含まれません(バイナリの配布のみが許諾されているため)。

zip にはドキュメントと、各 ROM のビルド元コミットおよび SHA256 を記録した
MANIFEST.txt が入っています。

ステートメントと MML の仕様は docs/ を参照して
ください。