



NDP (PSG Driver for MSX) / #MSXNDP          Programmed by naruto2413
--------------------------------------------------------------------
                                                            更新履歴




1.05 (2026/01/24)

【コンパイラ】

◆BSAVEヘッダを付けずに生のバイナリデータを保存できるようにしました。
　曲データをBASIC以外で使用する際などに有用です。

　[ファイル]メニューから、
　・[名前を付けて曲データのバイナリを保存]
　・[名前を付けて定義データのバイナリを保存]
　・[名前を付けて効果音データのバイナリとアセンブリソースを保存]
　でぞれぞれ実行できます。
　一括コンパイル時はダイアログでBSAVEヘッダの有無を選択可能です。

◆BSAVE形式でのファイル保存時、先頭に7バイトのBSAVEヘッダが付加されることを
　ダイアログで表示するようにしました。

◆@Iコマンド実行時、サブウィンドウの内容を初期化せずに追加していく形で
　出力できるようにしました。

　エディタの [出力] → [@Iコマンド実行時にサブウィンドウの内容を初期化しない] に
　チェックを入れると、既存のテキストの最下行から追加して出力されるようになります。

◆@Iコマンド実行時、出力されるテキストの先頭に日時を追加しました。
　（上記の機能を有効にした時に分かりやすくするため）

◆#ADDRESS-SEヘッダを使用せずに効果音データをDB形式で保存する際に
　出力されるアセンブリソースのデータが崩れていた問題を修正しました。
　（バイナリは問題なく、アセンブリソースの出力にのみ問題がありました）

◆元サイズよりも小さなバイナリを同じファイルに上書き保存した時に
　元サイズ分のゴミが残っていた問題を修正しました。


---


1.04 (2025/07/25)


【コンパイラ】

◆#EXPAND-MEMORYヘッダを新設しました。

　このヘッダを使用すると、曲データに使用可能なメモリが最大28KBになります。

　但し、自動的に「#ADDRESS-DEFINE 0B000H」と「#ADDRESS-SE 0BE00H」が設定されますので、
　音色定義やエンベロープ定義は最大3584バイト、効果音定義は最大512バイトに制限されます。
　（ユーザー自身による再設定も可能です）
　※定義データは曲データから切り離されますので、外部プログラムで再生する際はご注意ください。

◆再生中、各トラックの再生位置に追従して自動的にスクロールさせられるようになりました。

　・メニューの [表示] → [再生中のスクロール追従トラック] でトラックを選択してください。
　　初期値は [MMLの指定に従う] で、下記のMMLヘッダにより追従します。

◆#SCROLL-TRACKヘッダを新設しました。

　書式：#SCROLL-TRACK <トラック名>

　再生中にMMLエディタのスクロール位置を追従するトラックを指定します。
　メニューの [再生中のスクロール追従トラック] を [MMLの指定に従う] にした時のみ有効です。

◆リピートモード1の動作を変更しました。

　#REPEAT-MODE 1 や @RM1 の使用時、リピート中に1フレーム未満の端数が生じた際は一旦退避し、
　リピート終了直後の音符に加算して補正を試みます（完全ではありません）。

　また、従来のリピートモード1と同じ機能（端数が生じた際にエラー検出）については
　リピートモード3として残されています。

◆VS、QS、@QSコマンドをグリッサンド内の各音符に対して効くようにしました。

◆Sコマンドと@RDコマンドの第2パラメータでLによる音長指定時にフレーム数が割り切れない場合、
　演奏の途中で1フレームの誤差が出ることがあったのを修正しました。

◆メニューの [表示] → [キー操作時に情報モニタを閉じる] をデフォルトでオフにしました。

◆#ADDRESS-SEヘッダ使用時、効果音データの配置エリアが曲データやドライバと重複していたら
　エラーを出すようにしました。


---


1.03 (2025/05/24)


【コンパイラ】

◆#LOOP-PIANOROLLヘッダを新設しました。

　書式：#LOOP-PIANOROLL <値>

　機能：通常、無限ループの曲は1ループ目の終端でピアノロールのスクロールが停止しますが、
　このヘッダでループ数を指定するとその回数分までスクロールするようになります。
　ループ部分での各トラックのずれの確認などに有用です。

　値の省略時は2ループ分となります。

　※シークバーも指定回数分の範囲での操作になりますので、ご注意ください。


【エディタ】

◆最後に開いていたMMLファイルに対して、外部で編集・移動・リネームなどを行っても
　不整合が生じないように修正しました。
　（エディタ起動時、常にテンポラリ側の内容を読み込んでしまっていました）

◆デチューンで「\10-」や「\-10-」のように記述した際のエラーメッセージを追加しました。
　（相対デチューンは、負数でも「\-10+」のように記述する必要があります）


【ドライバ】

◆INTRPT側でDIを行うようにして、IMAIN内では割り込みを操作しないようにしました。
　（EI状態でIMAINを直接コールしないようにご注意ください）


---


1.02 (2025/05/17)


◆曲データと異なる音をピアノロール、音色エディタ、サブMMLビューアで鳴らしたあとに
　シークバーを操作すると例外が発生してしまっていたのを修正しました。

◆フォントを設定できるようにしました。

◆フォントサイズの設定可能範囲を8～72ポイントにしました。

◆サンドボックスとパラメータウィンドウにもフォントサイズの設定が反映されるようにしました。


---


1.01 (2025/05/16)


◆右クリックメニューでコピーや貼り付け、検索などを行えるようにしました。

◆WAVファイル出力時の音長計算を改善し、非ループ曲で末尾に無駄な無音を出力しないように、
　ループ曲では必ず2ループ+10秒分を出力するようにしました。

◆プレイリスト出力時、非ループ曲の時間を正しく設定するように修正しました。

◆曲長の計算時、@FOコマンドの指定分を加算するようにしました。

◆複数の@FOコマンド検出時、2個目以降をスキップするようにしました（複数トラックでの使用時など）。

◆リズムを割り込ませているトラックでフェードアウトの音量が乱れていたのを修正しました。

◆ピアノロールウィンドウに、音名で表示できるモードを追加しました。
　「音名モード」のチェックボックスを有効にすると、バーが消えて音名になります。

◆ピアノロールウィンドウをクリックして音程を確認できるモードを新設しました。
　「マウスクリックで音程を確認」のチェックボックスを有効にしてピアノロールをクリックすると、
　マウスカーソルの高さに応じた音程が発音されます（曲の再生は停止されます）。
　※音符のバーとは関係なく、あくまでマウスカーソルの縦座標を元にした音程となります。

◆サンプルMMLの gatetime_quantize.mml を修正しました。

◆旧タイマ割り込みフックの退避エリアを0C9Hで埋めておくようにしました。

◆上記変更に伴い、KSSPLYエントリを廃止しました。

◆旧KSSPLYエントリと同じアドレスに、IMAINエントリを新設しました。
　これは旧フックを呼ばずに割り込みルーチン本体だけを実行するエントリです。
　※DI状態のままRETされますので、ご注意ください。

◆メインルーチンのラベル名をMAINからNMAINに変更しました。


---


1.00 (2025/05/07)

◆（長いβ版を経ての）初版です。


