改訂履歴(Revision)

改訂履歴

ヴァージョン内容改定日
1.30 ●音源ドライバ本体
・エミュレータmesenで再生できない現象を修正した。
●MMLコンパイラ
・オプションスイッチ-xにより、Extended NSF (NSFe)へのコンパイルに対応した。
・オプションスイッチ-vにより、NSFのヴァージョン指定に対応した。
 従来のNSF Version 1以外にNSF Version 2へのコンパイルに対応し、デフォルトのコンパイルをNSF version 2に変更した。
・各種メタデータに対応し、メタデータ用のコマンドを実装した(以下)。
  • #maker:制作者の名前を記述できます。
  • #text:テキストを記述できます。
  • #Mix:NSFプレイヤーに、各拡張音源の音量バランスを指定できます
  • #plst:NSFプレイヤーでの、再生順番を指定できます
  • #psfx:NSFプレイヤーでの、効果音の再生順番を指定できます
  • #VRC7:NSFプレイヤーに、VRC7が別の音源(OPLL)に換装されている事を設定します。
  • #label :曲毎の曲名を指定します(MMLシーケンス記述ブロックにて)。
  • #author :曲毎の作曲者を指定します(MMLシーケンス記述ブロックにて)。
  • #time :各曲の再生時間を設定します(MMLシーケンス記述ブロックにて)。
  • #fade :各曲のフェードアウト時間を設定します(MMLシーケンス記述ブロックにて)。
#title, #composer, #copyright, #maker, #text, #label, #authorコマンドは、以下のエスケープシーケンスに対応した。
  • \a : ベル文字(アラート)
  • \b : 1文字分戻る
  • \f : ページ送り(クリア)
  • \n : 改行、復帰
  • \r : 同じ行の先頭に戻る
  • \t : 水平タブ
  • \v : 垂直タブ
  • \\ : \を表示
  • \? : ?を表示
  • \' : シングルクォーテーション(')を表示
  • \" : ダブルクォーテーション(")を表示
  • \N : 8進定数(Nは8進数の定数)
  • \xN : 16進定数(Nは16進数の定数)
2020年12月29日
1.29 ●音源ドライバ本体
・PALシステム用のヴァージョンnsd_pal.libを追加しました。
●MMLコンパイラ
・マクロ定義において、マクロ定義終了の"}"をコメントアウトできなかったバグを修正。
・Version 1.23より、相対ディチューン機能を実装していたものの、取説に相対ディチューンコマンドの説明が無かった点を修正。
・使用されていないサブルーチンがある場合、最適化の過程で異常終了することがあるバグを修正。
 (Visual C++ 2019でビルドしたMMLコンパイラを使うと、発生しました。)
・最適化の仕組みを改善し、より高度な最適化をするようにした。
 関連して、シーケンス(BGM、効果音、サブルーチン)データの最適化の有無をオプションにて設定できるようにした。
・Windows 64bit用のMMLコンパイラ`nsc64.exe`を新設した。
2020年 6月16日
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コンパイラ
・⊿PCMの発音オフセット、発音サイズを調整できるようにした。
・パッチ機能において、サブルーチンの最適化を無効にし、必ず埋め込むモードを作った。
・未使用のトラックはコンパイルしないようにした(従来は、End Of Trackのオペコードを1[Byte]出力していた)。
≪MMLコンパイラを、WINDOWS以外の機種など自分でビルドしてご利用なさる方むけの対応≫
・ファイル名の大文字、小文字を区別する環境化でもコンパイルが通るようにファイル名を修正した。
2015年 5月12日
1.23 ●音源ドライバ本体
・下降方向のポルタメントにて、音長とポルタメントに要するフレーム長が同一の場合、次の音符にもポルタメントの変位が効いてしまうバグをFix。
 (※但し仕様として、音長よりもポルタメントが長い場合は、ポルタメントの変異は次の音符にも効きます。)
 (※ポルタメント処理が終了した場合にのみ、次の音符にてポルタメントの変異がリセットされます。)
・ゲート長より発音長が短い音符があり、その次が休符の場合において、KeyOffされないバグをFix。
・⊿PCMの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 ●音源ドライバー本体
・⊿PCMが停止できなくなっていたバグを修正。
●MMLコンパイラ
・cis-moll, gis-moll, dis-mollの不具合を修正。
2013年 5月13日
1.07 ●音源ドライバー本体
・ノイズチャンネルで音色エンベロープが出来なかったバグを修正。
・再生ルーチン処理中にIRQが発生するNSFプレイヤーにおいて、 ⊿PCM-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で、⊿PCMのIRQを使用する方法を思いついたので、対応した。
●取扱説明書
・チュートリアル作成中(まだ、作り途中です)。
2013年 4月 6日
1.03 ●MMLコンパイラ
・ストトン記法に対応。
●その他
・`sample\template'フォルダーに、「MML記法」及び「ストトン記法」のテンプレートを追加した。
2013年 3月12日
1.02 ●MMLコンパイラ
・NSFヘッダーの拡張音源フラグを指定する#Externalコマンドを実装した。
・#Bankコマンド指定時に、NSF中でシーケンス領域を固定で24kByte確保いていたのを、サイズに合わせるようにした。
●取扱説明書
・⊿PCMの定義ブロック部において、サンプリングレートの説明が抜けていた。
2013年 2月20日
1.01 ●音源ドライバー本体
・nsd_all.bin 及び nsd_all2.bin にて、⊿PCMのバンク切り替え及びIRQに対応した。
●MMLコンパイラ
・#Bankコマンド(上述の.binを使う場合に指定)を追加した。
・⊿PCMの記述ブロックにおいて、IRQに対応した。
●取扱説明書
・各.lib/.binの仕様の説明を追加した。
2013年 2月15日
1.00 ●音源ドライバー本体
・一時停止関数(nsd_pause_bgm())及び、再生再開関数(nsd_resume_bgm())を実装した。
・nsd_stop_bgm()関数で再生停止したときに発音中の音があった場合、鳴りっぱなしになっていたバグを修正。
●MMLコンパイラ
・マクロに対応した。
・疑似エコーに、スラーで繋げるモードを追加した。
・リピート(A)コマンドにて、リピート回数をどちらにも記述できるようにした。
・アセンブリ言語ソースを出力する際に、数値が3桁毎にカンマが出てしまっていたバグを修正。
・#SegmentPCMコマンドが機能していなかったバグを修正。
・#SegmentPCMコマンドにて""を指定した際、アセンブリ言語で⊿PCMの実体を出力しないようにした。
●取扱説明書
・これまでに質問があった内容を、FAQに記載しました。
・その他、色々と見直しました。
●その他
・アセンブリ言語から nsd.lib を制御するサンプルソースを作った。
2013年 2月 9日

改訂履歴(α・β版)

ヴァージョン内容改定日
0.27β ●音源ドライバー本体
・使用するRAMの量を若干減らした。
●MMLコンパイラ
・TRコマンドにて複数トラックの指定に対応した。
2013年 1月18日
0.26β ●音源ドライバー本体
・拡張音源使用時に、使用するRAMの量を若干減らした。
●MMLコンパイラ
・#timebase コマンドを実装した。
2013年 1月11日
0.25β ●音源ドライバー本体
・FDSに対応。
・BGMから、SE(効果音)を呼べるようにした。
・効果音発音終了時に、BGMへうまく復帰できていなかったバグを修正。
●MMLコンパイラ
・FDS関連のコマンド群を実装した。
・SEを呼ぶコマンド SE を実装した。
2013年 1月10日
0.24β ●MMLコンパイラ
・#offsetE@, #offsetEv, #offsetEm, #offsetEnコマンドを追加した。
●取扱説明書
・Spcial Thanksを追加しました。
・VRC7の音色について、また、少し数学的な解説を追記した。
2013年 1月 5日
0.23β ●MMLコンパイラ
・エンベロープ定義で、(start,end,length)の指定をできるようにした。
●取扱説明書
・VRC7の音色パラメータについて、少し解説を追記した。
・nsd_oall.binの仕様を記載(書き忘れていた)。
2012年12月22日
0.22β ●MMLコンパイラ
・gccでコンパイルできるように、ソースを修正。
 (C++の機能だけを使っているつもりが、Visual C++の機能を使っていた。)
●その他
・修正BSDライセンス(但しNSFデータは除外)に変更しました。
2012年12月 1日
0.21β ●音源ドライバー本体
・OPLLのリズム音源の仕様を変更。音程を持たせれるようにした。
・OPLLのリズム音源がちゃんとなってなかったバグをFix。
・曲頭の休符に、通常の休符を使うと不要な音が鳴ってしまっていた仕様を改善。鳴らなくした。
2012年11月19日
0.20β ●音源ドライバー本体
・ノートナンバー64以降の⊿PCMの定義が適用されていなかったバグを修正。
・OPLLに対応(改造VRC7搭載カートリッジ)。
●MMLコンパイラ
・⊿PCMを使う曲をnsfにビルドする際に、少しファイルサイズが小さくなるようにした。
●取扱説明書
・疑似エコー及び、制御トラックが説明不足だった点を加筆。
2012年11月13日
0.19β ●音源ドライバー本体
・"nsd_all.bin"に、音源に割り当てないトラックを設けた。
 テンポコマンドや、n106/163とVRC7の音色設定等の設定トラックとして使用可能です。
・いつの間にか、効果音がならなくなっていたバグを修正。
●MMLコンパイラ
・疑似エコー(MMLコンパイラ側の命令です)を実装しました。
・範囲コメントの終端 */ の直後(スペースを空けず)に記述したコマンドが認識されなかったバグを修正。
●取扱説明書
・ちょっと見やすさを考えてみた。
2012年11月12日
0.18β ●音源ドライバー本体
・Sunsoft 5Bに対応。
・Rm0コマンドで、⊿PCMが指定音長でKeyOffされなかったバグをFix。
●MMLコンパイラ
・バンクが不連続に配置されたnsfに非対応の実機再生環境に対応(TNS-HFC3など)。
●取扱説明書
・Rm0コマンドで、⊿PCMが指定音長でKeyOffされる旨を記載(書き忘れていた)。
2012年10月22日
0.17β ●音源ドライバー本体
・n163にて、アドレス$40番地以降(@命令にて32に相当するアドレス)の波形データを破壊してしまっていたバグを修正。
2012年10月19日
0.16β ●音源ドライバー本体
・Version 0.10β~0.15βにて、実機で鳴らなくなっていた不具合を修正。
●取扱説明書
・n163の使い方の解説ページを追加。
2012年10月15日
0.15β ●音源ドライバー本体
・n163に対応。
2012年10月11日
0.14β ●音源ドライバー本体
・色々と拡張音源を実装するに当たり、改めてコードを再確認。無駄なコードを省いて若干最適化した。
・nsd_all.binを作った。現状、内蔵音源及びVRC6 VRC7 MMC5のみに対応です。
●取扱説明書
・取説を見直して、若干、再構成した。
2012年10月 6日
0.13β ●音源ドライバー本体
・VRC7に対応。
2012年10月 3日
0.12β ●音源ドライバー本体
・⊿PCMの休符の処理で、r,r+ の挙動と、 r- の挙動が逆になってたバグをFix。
2012年10月 2日
0.11β ●音源ドライバー本体
・VRC6に対応。
・MMC5に対応。
2012年10月 1日
0.10β ●音源ドライバー本体
・⊿PCMに対応。
●MMLコンパイラ
・⊿PCM対応により、DPCM{}記述ブロックが増えました。
・TR5の各音階に、⊿PCMを割り当てることができます。
●取扱説明書
・「索引」と「検索」を実装した。
2012年 9月30日
0.07α ●音源ドライバー本体
・⊿PCMルーチンを開発中(未デバッグです)。
●MMLコンパイラ
・コンパイルオプションで、NSF用の実行コード(*.bin)を指定できるようにした。
・nsfにコンパイルする場合において、実行コードを0xE000番地から0x8000番地に変更した。
 これにより、⊿PCMが実装できれば、合計16KByte(0xC000~0xFFFF番地)使えるようになります。
・"#offsetPCM"コマンドを実装。曲データはこのアドレス-1までの領域とし、これ以後を⊿PCMの領域として割り当てます。
・それに伴い、シーケンスデータが"#offsetPCM"コマンドで指定したアドレスを超えた場合に、エラーを吐くようにした。
 (シーケンスデータが32kByteを超えると、コンパイラがハングするバグがありました。)
・アセンブリ言語出力に対応した。
・また、それに伴い、出力するアセンブリ言語に対して、各種設定するコマンドを実装。
・アセンブリ言語出力に対応したので、アーカイブ中の"\sample\cc65\"のサンプルC言語コードも書き直しました。
2012年 9月25日
0.06α ●音源ドライバー本体
・ポルタメントに対応した。
●MMLコンパイラ
・エンベロープ・サブルーチンにおいて、0~4294967295番まで指定できるようにした(以前は0~65535番でした)。
・エンベロープのパターン定義において、Lコマンドを省略できるようにした。
・エンベロープのパターン定義において、音源ドライバが暴走するようなパターン定義の場合、エラーを吐くようにした。
・K{}コマンド(調号)により、r(休符)にも自動で調号(キーオフのモード指定)を付けられるようにした。
●取扱説明書
・休符や、エンベロープについて説明が足りていなかったので、追記した。
・FAQのページを作成した。
2012年 9月17日
0.05α ●音源ドライバー本体
・効果音処理ルーチンを開発中(一応、効果音が使えるようになってますが、未デバッグです)。
●取扱説明書
・BGM,SEデータフォーマット(Format of BGM and SE)のページにおいて、エンベロープがまだ実装されていないことになっていた記述を修正。
●SDK
・アセンブリ言語及び、C言語用のヘッダーファイルを作成した。"include"フォルダを参照。
●MMLコンパイラ
・音名・休符コマンドに、付点のみを指定できなかったバグを修正。
2012年 9月12日
0.04α ●取扱説明書
・主に、ノイズチャンネル関連の説明が不足していた点を加筆。
●MMLコンパイラ
・0及び9から始まる音長を、コンパイルできなかったバグを修正(水平展開できてなかった)。
・音長で0を指定すると、例外が発生して異常終了するバグを修正。
2012年 9月 7日
0.03α ●音源ドライバー本体
・エンベロープを4系統実装した。
●MMLコンパイラ
・オクターブの設定値が1つ高かったバグを修正。
・0及び9から始まる数値を、コンパイルできなかったバグを修正。
・サブルーチン番号で128を超えた場合に、コンパイルできないことがあったバグを修正。
・トラック先頭に L コマンドを書いた場合、無限ループされないコードにコンパイルしていたバグを修正。
2012年 9月 6日
0.02α ●音源ドライバー本体
・休符時の音量の状態が設計どおりで無かったバグを修正。
・サブルーチンからの復帰時に、戻り先のアドレスがずれていたバグを修正。
・リピート(A)命令でリピートされなかったバグを修正。
・リピート(B)命令をもう1系統作った。(op-code 0x18~0x1A)
・音色命令を追加(op-code 0x1B)。この命令は、音色エンベロープと排他的に使用できる予定です。
●MMLコンパイラ
・作りました。
2012年 9月 3日
0.01α α版です。
どこまで動くかは分からないが、評価版として公開。
まずは、音源ドライバーを設計。
効果音はまだ実装していませんので、効果音関係の関数は呼ばないでください。
2012年 8月10日