Skip to content

MsxSoundSuiteExtension v0.4.1

Choose a tag to compare

@madscient madscient released this 26 Sep 02:56
· 31 commits to master since this release

利用条件

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

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

v0.4.0 からの変更点

midi.rom 以外の ROM はすべて中身が変わっています。midi.rom は v0.4.0 とバイト単位で同じです。

既存のプログラムの鳴り方が変わるもの

Makoto BASIC Extension(makoto.rom):PLAY#2 の PSG 用の文字列がYM2608 の SSG を鳴らすようになりました。
YM2608 の SSG(PSG 互換部)を PLAY 文から鳴らせるようにしたことに伴い、PLAY のモードの意味が次のようになりました。

モード v0.4.0 v0.4.1
#0 / 省略 本体の PSG 同じ
#1 Illegal function call SSG と本体の PSG
#2 FM・PCM・リズム・本体の PSG FM・PCM・リズム・SSG
#3 #2 と同じ FM・PCM・リズム・SSG・本体の PSG

SSG と本体の PSG は同じ MML で同じ高さに鳴ります。違うのは Y が書き込むチップと、M(エンベロープ周期)・Y6(ノイズ周期)の速さです(SSG のほうが約 1.12 倍速い)。PLAY#3 では SSG 用の3本が本体の PSG 用の3本の前に入るので、CALL PLAY のストリング番号も本体の PSG のぶんが3つ後ろへずれます。
CALL MAKOTO が確保するメモリは 1191 バイトから 1399 バイトになりました。

Y8960 BASIC Extension:C- と B+ がその1音だけ隣のオクターブで鳴るようになりました。
O4C- は O3B、O4B+ は O5C と同じ高さです。
以前は同じオクターブの中で折り返していました(O4C- が O4B)。

新しい機能

y8960bas.rom の MSX-MUSIC V2・MSX-AUDIO Lite・SFG で、SSGS の第2セットを鳴らせるようになりました。
Y8960 の SSGS は PSG と同じ形の音源を2セット持っています。これまで PLAY 文から鳴らせたのは第1セット(本体 PSG と同じチャンネル)だけでしたが、PLAY#1 と PLAY#3 で第2セットの3チャンネルが加わります。#0 と #2 の鳴り方は変わりません。単体 ROM(mmbe.rom・mabel.rom・sfg.rom)にはこの機能はありません。

モード 文字列の並び
#1 PSG 3 本、第2セット 3 本
#3 #2 の並びの後ろに第2セット 3 本

これに伴い、カートリッジ版の初期化が確保するメモリが増えました
(CALL MUSIC は 1112 バイト、CALL AUDIO は 1281 バイト)。

Makoto BASIC Extension:YM2608 の SSG 3声を PLAY 文から鳴らせるようになりました(上記)。

不具合の修正

  • Y8960 BASIC Extension:Q が 8 未満でも & で前の音符をつなぐようになりました。 & の前の音符は Q に関係なく音長いっぱい鳴り、Q は最後の音符にだけ効きます。数値を書かない ~ の前の音符も同じです。以前は Q で先に音が切れ、次の音符が鳴り直していました。
  • PLAY 文の文字列が多い構成で、PSG チャンネルのピッチベンド(P・@P)が PLAY 文を実行するたびに消えていた問題を修正しました。
    MSX-MUSIC V2・MSX-AUDIO Lite では文字列が 9 本以上、SFG では FM が 8 本の構成で起きていました。 MSX-AUDIO Lite ではこのとき、PSG の1本目にベンドがあると Illegal function call になることもありました。この修正で mmbe.rom の CALL MUSIC が確保するメモリは 825 バイトから 837 バイトになりました
  • Makoto BASIC Extension で、PSG チャンネルの音長 0 の音符のあとに、長さを書かない R が全休符になることがあった問題を修正しました
  • Y8960 BASIC Extension の CALL MINIT が、OPL2EX の波形選択を有効にするようになりました。 波形選択のレジスタ(E0h〜F5h)は、有効にしないと書いても効きません

仕様の詳細は各リファレンスにあります。

収録物

ファイル サイズ 用途
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 インターフェースを鳴らす単体カートリッジ用
makoto.rom 16KB Makoto(YM2608)単体カートリッジ用。y8960bas.rom には含まれない

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

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

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