ヴァージョン | 内容 | 改定日 |
1.28 |
●音源ドライバ本体
・開発環境「CC65」のV2.17に対応しました。
・効果音終了からBGMに復帰する際に、1フレームの無音期間が出来てしまっていた現象を改善しました。
●MMLコンパイラ
・リピートコマンド展開時における最適化処理にて、省いてはいけないコマンドを重複コマンドと誤認識して省いてしまうバグをFix しました。
●その他
・\sample\ca65\フォルダのアセンブリ原語での組み込みサンプルにて、演奏がもたっていたバグを修正した。
|
2018年12月12日 |
1.27 |
●音源ドライバ本体
・休符のモードが1且つ、ゲートクオンタイズのモードが1以外の時に、休符時にR@の音色に切り替わらないバグをFix した。
・効果音で、内臓音源5トラック使用可能なヴァージョンnsd_se.libを追加しました。
・オクターブのデフォルトが5になっていたのを、4に修正しました(取説上はデフォルト「4」と記載、また、MMLコンパイラ側も「4」に設定されていた)。
●MMLコンパイラ
・エンベロープ定義にて、L コマンドを省略した場合に、ループ位置のエラーを検出できなかったバグをFix した。
・1行コメント(// , ; )を改行しないでファイルの終端にした場合、暴走するバグをFixした。
・エンベロープ定義にて、同じ数字が続く場合、自動でランレングス圧縮するようにした。
・パッチ定義において、マクロ呼び出し及び、ローカルマクロに対応した。
・文字列の始点、終点を示す識別子として、全角の”に対応した。
・未使用のサブルーチン、エンベロープ、音色定義の最適化の有無をオプションにて設定できるようにした。
●その他
・サンプルを若干追加した。
・"\sample\template\"フォルダーの"template.mml"に、パッチ定義のひな形(ノイズチャンネルの簡易的なドラムセット)を追加しました。
|
2017年 1月 9日 |
1.26 |
●音源ドライバ本体
・cc65 V2.15 - Git d0e0b98でビルドできるようにし、ライブラリを本ヴァージョンの仕様のフォーマットに更新した。
・効果音の優先度と早送り機能のフラグが、同じビットを使っていたコーディング・ミスを修正しました。
これに伴い、ヘッダーファイル nsddef.inc の改定がございますので、ご留意ください。
| 2015年 7月12日 |
1.25 |
●音源ドライバ本体
・電源投入時にユーザーアプリケーション側で非Zeropageを0初期化しておかないと、三角波の再生がおかしくなることがあるバグをFix した。
(Version 1.24から導入した、三角波のリニアカウンタ・エンベロープの初期化を忘れていた。)
(※付属の.lib(ライブラリ)をゲームなどのアプリケーション組み込みの際に、本バグが発生しておりました。)
(※付属の.bin(NSF用のコンパイル済み音源ドライバ)は、リセット・電源投入時に非Zeropageを0クリアするため問題ありません。)
・三角波のリニアカウンタ・エンベロープに関するコードサイズとCPU負荷を若干最適化した。
●MMLコンパイラ
・様々な音階(ハンガリー、ジプシー、およびそれらから派生したモード)に対応。
| 2015年 5月16日 |
1.24 |
●音源ドライバ本体
・効果音を鳴らしている時に次の効果音を鳴らした場合、新たに鳴らした効果音で未使用のトラックは前の効果音が残るようにした。
・効果音を鳴らしている時にBGMを再生開始した場合、効果音のスイープがリセットされるバグを修正した。
・三角波チャンネルのリニアカウンターエンベロープに対応(音量エンベロープで操作します)。
●MMLコンパイラ
・儕CMの発音オフセット、発音サイズを調整できるようにした。
・パッチ機能において、サブルーチンの最適化を無効にし、必ず埋め込むモードを作った。
・未使用のトラックはコンパイルしないようにした(従来は、End Of Trackのオペコードを1[Byte]出力していた)。
≪MMLコンパイラを、WINDOWS以外の機種など自分でビルドしてご利用なさる方むけの対応≫
・ファイル名の大文字、小文字を区別する環境化でもコンパイルが通るようにファイル名を修正した。
| 2015年 5月12日 |
1.23 |
●音源ドライバ本体
・下降方向のポルタメントにて、音長とポルタメントに要するフレーム長が同一の場合、次の音符にもポルタメントの変位が効いてしまうバグをFix。
(※但し仕様として、音長よりもポルタメントが長い場合は、ポルタメントの変異は次の音符にも効きます。)
(※ポルタメント処理が終了した場合にのみ、次の音符にてポルタメントの変異がリセットされます。)
・ゲート長より発音長が短い音符があり、その次が休符の場合において、KeyOffされないバグをFix。
・儕CMのIRQに対応した.binで複数曲内包したNSFをTNS-HFCxで再生した場合、2曲目以降が再生できないバグをFix。
・FDS音源にて、SweepBiasの初期化が行われておらず、音程が外れることがあるバグをFix。
・N16x音源にて、サンプル長が不定だったのを、32[sample](s56)で初期化するようにした。
・VRC7音源に対して、音量、音色、周波数のレジスタアクセスを最短(データシートのギリギリ)で行うように最適化した。
・VRC7音源にて、 @ コマンドと、E@コマンド(レジスタに対するエンベロープ)を同じTickに置いた場合、 @ コマンドによる音色変更ができなかったバグをFix。
・VRC7音源にて、ハードウェアをKeyOffしないまま、ソフトウェアエンベロープだけKeyOffする機能を実装した(sコマンドで行います)。
・三角波のリニアカウンタ($4008)の制御に対応(sコマンドで行います)。
・音程について、n16x以外は12.5[cent]単位の制御だったが、n16xと同じく6.25[cent]単位に変更。音程の精度を倍にしました。
(※但し、n16x以外の音程テーブルそのものは12.5[cent]毎のテーブルであり、線形補完により算出します。)
・休符のモードを1つ追加し、`Rm'コマンドのモードに従うモードを新設した。
●MMLコンパイラ
・パッチ記述ブロックにて、_コマンド、sコマンドがコンパイルエラーになる事があるバグをFix。
・()にて囲む数値および、""にて囲む文字列について、閉じ忘れなどの文法ミスを検出するようにした。
(今まで検出しておらず、こういった文法ミスによるエラーが発生した際、コンパイルエラーの真因を特定し難かった。)
・検索パスの仕組みを導入した。
・それに伴い、binファイル、dmcファイル、インクルードファイルの検索パスを登録するオプションスイッチを導入しました。
・#QReverseコマンドを新設。qコマンドとQコマンドを入れ替えます。
・休符コマンド(r,w)のパラメータに`*'(`Rm'コマンドのモードに従う)を新設した。
・#rest コマンド、 #wait コマンドにて、モード3(`Rm'コマンドのモードに従う)を新設した。。
・疑似エコーのバッファを制御するコマンドを追加した。
≪MMLコンパイラを、WINDOWS以外の機種など自分でビルドしてご利用なさる方むけの対応≫
・動作時に出力するメッセージの文字コードについて、"_WIN32"を定義してビルドした場合(付属のnsc.exeを含む)はShift-JIS、
_WIN32を定義しないでビルドした場合はEUCとしていたが、動作環境に応じた文字コードで出力するようにした。
・また、UNICODE(wchar_t, wcout, wcerr)に対応していないC/C++コンパイラへの配慮として、UNICODE文字列とマルチバイト文字列を選択する #define 文を追加。
"_UNICODE"を定義した場合UNICODE、定義しない場合はマルチバイト文字列としてコンパイルします。
●取扱説明書
・各コマンドについて、デフォルトの値、疑似コマンドか否かを分かり易くした。
・最適化のためのヒントを更新した。
| 2014年12月31日 |
1.22 |
●MMLコンパイラ
・#TieModeコマンドを追加。^記述時の挙動を設定できます。
・符号なしなのに、unsignedを付け忘れていて、一部のC++コンパイラでコンパイルできなかったバグをFix。
・ECコマンドにて第2パラメータが-1、第3パラメータの指定が無い、且つ、リピート終了の前と後の両方が休符の場合、リピート終了直前の疑似エコーにスラー/タイのフラグが立ってしまうバグをFix。
・疑似エコー使用時に、若干最適化してコンパイルするようにした。
●取扱説明書
・疑似エコーと、パッチ機能に関する説明文・記述を見直した。
・MML全体の構文に関する説明文・記述を若干、見直した。
| 2014年 8月20日 |
1.21 |
●音源ドライバー本体
・Version 1.20において、"nsd.bin"がTNS-HFC3, TNS-HFC4で動作しなくなっていたバグをFix。
●MMLコンパイラ
・Patch()コマンドを、P()と省略できるようにした。
・Patch()記述ブロック内にて、qコマンド、uコマンドを定義できるようにした。
・Patch()記述ブロック内にて、#OffsetE*が効いていなかったバグをFix。
・マクロが1つも定義されてない状態でマクロ呼び出しを行うと、例外が発生するバグをFix。
(本来は、マクロが定義されてない旨のエラーメッセージを表示)
・Windows以外のOS(UNIX系、マッキントシュ、等)で、\コマンドが使えなかったバグをFixしたつもり。 (※実機を所有していないため未確認です。報告求ム)
| 2014年 8月15日 |
1.20 |
●音源ドライバー本体
・ドライバレベルで早送りをするコマンドを追加。
●MMLコンパイラ
・シーケンス記述ブロックにローカルマクロを実装。
従来のマクロは、グローバルマクロとなります。
| 2014年 7月25日 |
1.19 |
●MMLコンパイラ
・パッチ機能を実装した。
それに伴い、Patch(){}コマンド(パッチ記述ブロック)、@P、@P*コマンドを実装した。
・要素数単位で指定可能なn16x音色波形転送(ロード)コマンド(@NLコマンド)を実装した。
・要素数単位で指定可能なn16x音色波形&サンプル長指定コマンド(@NSコマンド)を実装した。
・未使用のサブルーチンがある場合に、最適化の過程で例外が発生することがあるバグをFixした。
●取扱説明書
・n16xに関する説明文・記述を見直した。 |
2014年 7月 4日 |
1.18 |
●MMLコンパイラ
・未使用のエンベロープ、音色、サブルーチンはコンパイルしないようにし、出力サイズを軽減するようにした。
(使う分だけをコンパイルするため、汎用的な定義を沢山作ることが可能になります。)
・Visual C++.net 2008 でビルドしたコンパイラにてリピート機能を使うと、例外が発生するバグをFixした。
(※Visual C++.net 2003及び、gccでビルドしたMMLコンパイラは、問題無いようです。)
(※アーカイブに同封のMMLコンパイラ(nsc.exe)は、Visual C+.net 2003にてビルドしています。)
|
2014年 5月20日 |
1.17 |
●MMLコンパイラ
・MMLコンパイラ展開のリピートを実装した。
・#RepeatModeコマンド(リピートコマンドの展開方法の設定)を実装した。
・#ReleaseVolumeコマンド(デフォルトのリリース音量の設定)を実装した。
|
2014年 5月12日 |
1.16 |
●音源ドライバー本体
・利便性を考え、makefileや、ヘッダーファイルを作り直した。
・nsd_main_bgm()関数及び、nsd_main_se()関数を実装した。
これにより、マッパーLSI使用時に、BGMと効果音を異なるバンクに配置することが出来ます。
・演奏状態を保存するnsd_save()関数及び、演奏状態をロードするnsd_load()関数を実装した。
これにより、別の曲を鳴らしている最中でも、演奏状態を保存した曲を途中から再生可能です。
・制御用構造体を最適化し、使用するRAMの量を減らした。
拡張音源無しの`nsd.lib'では、セグメント"bss"(未初期化データ)領域が14[Byte]減ります。
●サンプル
・makefileや、ヘッダーファイルの作り直しに伴う改定。
●MMLコンパイラ
・Tick数をカウントする処理を追加した。また、-t オプションにて無効にできます。
|
2014年 4月27日 |
1.15 |
●音源ドライバー本体
・ポルタメント後にスラーで繋げた場合、繋げた先の音符でポルタメントの変位がそのままになってしまうバグをFixした。
●MMLコンパイラ
・エラー・ワーニングの出力先を標準エラー出力に設定するオプションスイッチを実装した。
・それに伴い、エラー、ワーニングの出力先のデフォルトは、標準出力とした。
・Jコマンドにて、ポルタメントも無視するようにした。
・相対音量コマンドにて、数値指定し変化量を指定できるようにした。
・{}コマンドにて、ポルタメントを簡素化して記述できるようにした。
・マクロ定義の中で、`{'の個数分だけ`}'を記述できるようにした。
これに伴い、マクロの中で、K{}コマンド、{}コマンドが使えるようになります。
・ド♭、シ#がある場合、疑似エコーコマンドにて疑似エコーを正常に生成できていなかったバグを修正。
・kコマンドによる、MMLコンパイラ側での移調に対応した。
・音長に0を指定するとハングするバグが再発していたので、修正した。
●取扱説明書
・エンベロープの説明にて、FDS音源のキャリアとモジュレータの説明が逆になっていたのを修正。
|
2014年 3月 4日 |
1.14 |
●MMLコンパイラ
・エラー、ワーニングは、標準出力ではなく、エラー出力に出力するようにした。
これにより、アプリケーション組み込み時のmakefile等が作りやすくなります。
・音符、休符、サブルーチン、効果音呼出を無視するコマンドに対応。
このコマンドにより、コメントアウトしないでも、シーケンスの途中から鳴らすことができます。
・ゲートクオンタイズに対応。また、分母も曲毎に設定可能です。
|
2014年 2月25日 |
1.13 |
●音源ドライバー本体
・nsd_all.bin, nsd_all2.bin, nsd_oall.bin, nsd_hfe4.bin, nsd_hfx4.binにて、
Version 1.12におけるシーケンス64kByte化の副作用として、音量エンベロープが効かなくなることがあるバグ及び、
ΔPCMのIRQが使えなくなっていたバグをFix。
・ノートコマンドのオペコードのビット位置を最適化のためを変更しました。
・オクターブコマンドで指定できるオクターブを2〜9から1〜8へ変更しました。
●MMLコンパイラ
・疑似エコーのバッファをリセットするコマンドを実装した。
・EC(疑似エコー)コマンドにオプションで第三パラメータを追加し、
休符を書かないでも疑似エコーをできるようにした。
・音符及び休符にて、lコマンドと音長が同じ場合は、1Byte短いオペコードを出力するようにした。
・音量、ゲートタイムの指定値が前回と同じ場合は、コンパイルしないようにした(リピート、ダルセーニョ後は除外)。
|
2014年 1月19日 |
1.12 |
●音源ドライバー本体
・Sunsoft 5Bにて、sコマンド使用時にプチノイズが入る場合があるバグを修正。
・効果音の優先度設定に対応。
・効果音にて、パルス波ch2, ノイズchで個別の効果音を鳴らせるようにした。
・nsd_all.bin, nsd_all2.bin, nsd_oall.bin, nsd_hfe4.bin, nsd_hfx4.binにて、シーケンスを64KByteまで使えるようにした。
●MMLコンパイラ
・マクロ名の検出アルゴリズムを変更し、長いマクロ名を優先するようにしました。
●取扱説明書
・Tipsのスケールとコードに、各コード(和音)毎に使えるスケール(旋法)を記載しました。
|
2014年 1月 3日 |
1.11 |
●音源ドライバー本体
・フレームオーバーによる暴走回避ルーチンを実装。
・移調の演算を、エンベロープの処理ルーチンから、ノート番号の計算ルーチンへ移動。
・nsd_hfx4.bin を新設。OPLLを含む全ての拡張音源を使用可能です。
●MMLコンパイラ
・w コマンド(休符2)を実装しました。
・休符のモードを設定する、#rest コマンド、 #wait コマンドを実装しました。
・音長の減算を`~'でもできるようにしました。
・マクロ名の検出アルゴリズムを変更し、スペースを置く必要を無くしました。
・Mode(), Major, Minor, MMinor(), HMinor()コマンドを新設しました。
●コンパイル済み音源ドライバ
・TNS-HFCシリーズにおいて、nsd_all.bin, nsd_all2.bin使用時にリセットボタンを連打するとハングする不具合を修正。
・TNS-HFC4にVRC6, VRC7を差した時に、ハングする不具合を修正。
但し、nsd_all.bin, nsd_all2.binをリンクした場合は、TNS-HFC4に直接VRC6, VRC7を刺すとハングします。
これらのドカモリ用のbinにおいて、TNS-HFC4でVRC6, VRC7を使う場合は、TNS-HFX4が必須となります。
|
2013年 9月16日 |
1.10 |
●音源ドライバー本体
・VRC7, OPLLにて、音色切り替わり時に最初の音が正常に発音されない場合があったバグを修正。
●コンパイル済み音源ドライバ
・ΔPCM-IRQの割り込み処理中にNMI割り込みが発生した場合に、ΔPCMが正常に発音されなくなるバグを修正。
| 2013年 6月 9日 |
1.09 |
●音源ドライバー本体
・VRC7, OPLLの@コマンド及び音色エンベロープにて、ユーザー音色のTL, MLを操作出来るようにした。
(ドライバー内部での論理演算により他のパラメータに影響を与えずに設定します。) |
2013年 5月29日 |
1.08 |
●音源ドライバー本体
・儕CMが停止できなくなっていたバグを修正。
●MMLコンパイラ
・cis-moll, gis-moll, dis-mollの不具合を修正。
|
2013年 5月13日 |
1.07 |
●音源ドライバー本体
・ノイズチャンネルで音色エンベロープが出来なかったバグを修正。
・再生ルーチン処理中にIRQが発生するNSFプレイヤーにおいて、
儕CM-IRQを使用時に正常に再生されない可能性があるバグを修正。
(※実機では、NMIの方が優先順位が高いため、この現象は発生しません。)
●MMLコンパイラ
・NSFへビルドする場合に、音源ドライバー情報をNSFに含めるようにした。
(※この情報は、音源ドライバのライブラリ本体には含まれていません。)
・NSFへビルドする場合に、サイズ、バンク数などの情報を出力するようにした。
・K{}コマンドにおいて、短調の調号指定が一部音楽理論的に間違えていたミスを修正。
・エラー、警告のメッセージの内容を全体的に見直した。
●取扱説明書
・スケールとコードの関係表に4和音のコードを追加。
・FAQによくある質問を追加した。
・いくらかの誤植を修正。
|
2013年 5月12日 |
1.06 |
●音源ドライバー本体
・効果音発音終了時に、BGMの音程に戻らない場合があるバグを修正。
| 2013年 4月13日 |
1.05 |
●音源ドライバー本体
・nsd_vrc6.binが、TNS-HFC3で鳴らなくなっていた不具合を修正。
●MMLコンパイラ
・Scale()コマンドを実装した。
K{}コマンドの調指定とあわせ、その調におけるスケール(20種)を設定できるようになりました。
●取扱説明書
・いくらかの誤植を修正。
|
2013年 4月10日 |
1.04 |
●MMLコンパイラ
・オプションスイッチで何も指定しない場合は、NSFに変換するようにした。
MMLをD&Dしてコンパイルできるようになりました。
(※その場合は、カレントディレクトリは、MMLコンパイラのあるディレクトリです。)
・K{}コマンドで、調(例:C-Dur, c-moll, etc..)で指定できるようにした、
●ROMイメージ(nsf)の起動コード & MMLコンパイラ
・TNS-HFC3で、儕CMのIRQを使用する方法を思いついたので、対応した。
●取扱説明書
・チュートリアル作成中(まだ、作り途中です)。
|
2013年 4月 6日 |
1.03 |
●MMLコンパイラ
・ストトン記法に対応。
●その他
・`sample\template'フォルダーに、「MML記法」及び「ストトン記法」のテンプレートを追加した。
| 2013年 3月12日 |
1.02 |
●MMLコンパイラ
・NSFヘッダーの拡張音源フラグを指定する#Externalコマンドを実装した。
・#Bankコマンド指定時に、NSF中でシーケンス領域を固定で24kByte確保いていたのを、サイズに合わせるようにした。
●取扱説明書
・儕CMの定義ブロック部において、サンプリングレートの説明が抜けていた。
|
2013年 2月20日 |
1.01 |
●音源ドライバー本体
・nsd_all.bin 及び nsd_all2.bin にて、儕CMのバンク切り替え及びIRQに対応した。
●MMLコンパイラ
・#Bankコマンド(上述の.binを使う場合に指定)を追加した。
・儕CMの記述ブロックにおいて、IRQに対応した。
●取扱説明書
・各.lib/.binの仕様の説明を追加した。
|
2013年 2月15日 |
1.00 |
●音源ドライバー本体
・一時停止関数(nsd_pause_bgm())及び、再生再開関数(nsd_resume_bgm())を実装した。
・nsd_stop_bgm()関数で再生停止したときに発音中の音があった場合、鳴りっぱなしになっていたバグを修正。
●MMLコンパイラ
・マクロに対応した。
・疑似エコーに、スラーで繋げるモードを追加した。
・リピート(A)コマンドにて、リピート回数をどちらにも記述できるようにした。
・アセンブリ言語ソースを出力する際に、数値が3桁毎にカンマが出てしまっていたバグを修正。
・#SegmentPCMコマンドが機能していなかったバグを修正。
・#SegmentPCMコマンドにて""を指定した際、アセンブリ言語で儕CMの実体を出力しないようにした。
●取扱説明書
・これまでに質問があった内容を、FAQに記載しました。
・その他、色々と見直しました。
●その他
・アセンブリ言語から nsd.lib を制御するサンプルソースを作った。
|
2013年 2月 9日 |