======================================================================== [release 9a] driver, nesasm: ・長いラベルにより nesasm が落ちる問題を修正 other: ・シェルスクリプト mknsf を追加 ・Unix環境にてコンパイルしやすいようにいろいろと修正 ・.nesを出力する場合のROMイメージ内NSFプレイヤーについて、  初期化コードを呼び出すたびにスタックポインタをリセットするように修正した。 ======================================================================== [release 9] 以下を886.lzhより取り込み: ・Namco 106音源の実記演奏対応  ただし、Sunsoft5Bも同時に使用する場合、ドライバは$E000への$20の書き込みをしません。 以下の4点を875.lzhより取り込み: ・EHと@vrを併用すると音量がおかしくなる問題を修正 ・MNOXYZトラックで@nを使うと周波数2048以上が正しく鳴らない問題を修正 ・ABabトラックで音色を指定せずに鳴らそうとすると正しく鳴らない問題を修正 ・351949A基板(VRC6V)に対応(ドライバ側のみ) 以下を867.lzhより取り込み: ・Sunsoft 5B音源のハードウェアエンベロープ・ノイズ対応 その他の変更: whole: ・#PITCH-CORRECTIONを追加。すべての音源について、ピッチエンベロープ、LFO、  ディチューンの方向が正しくなります。  さらに、Namco 106チャンネルのディチューンの設定がオクターブに依存しないようになります。 ・ディチューン、ピッチエンベロープ、ビブラートのかかり具合を強くするSAコマンドの追加。  回左シフトします。  N106のチャンネルのみ使用可能です。また、#PITCH-CORRECTIONを使用した場合のみ使用可能です。 ・TNS-HFC2においてDPCMを16KB以上使う場合のベクタが正しくなるようにした。 compiler: ・自動バンク切り替え機能#AUTO-BANKSWITCH   ・は、bank 0のうちデータとして使用できる領域のサイズです。    とりあえず0を指定して一旦コンパイルしてください。    nesasmでアセンブルした時に表示されるBANK 0のFREEバイト数をに指定すると    さらに最適化されたデータ配置になります。   ・#AUTO-BANKSWITCHを指定した場合は、全ての#SETBANK, #BANK-CHANGE, およびNBが無視されます。   ・#AUTO-BANKSWITCHを複数回指定した場合は、最初に指定したが有効になります。    複数曲の場合は最初のMMLに書いてください。 ・コンパイル中のトラックで使用できないコマンドを使用したときにエラーになるようにした。 ・readTextFile()のバグ修正(某吉さん情報) driver: ・内蔵音源でEN使用時、$4003の書き込みは値が変化したときのみ行うようにした。  (オリジナルのmckが意図していた動作と同じ) ・各種最適化・クリーンアップ等 other: ・Makefileを変更:MinGWのbinへpathを通して、cd src/ppmckc/してmakeすると、  直接bin/にexeが生成されます。 ・nesasmのソースコードをアーカイブに同梱した。 ・簡単なプレイヤーを含んだiNES形式のROMイメージを出力できるようにしてみた。(マッパー0) ・mk*.bat: set_envs.batを使って環境変数を設定するようにした。 ======================================================================== [release 8] ・複数曲登録   mkmultinsf song1.mml song2.mml ... としてください。   effect.hは共通です。よって@v等は、別のMMLであってもエフェクト番号の衝突が起こりえます。   たとえばsong1.mmlで@v0を定義し、song2.mmlでも@v0を定義した場合は一方しか有効になりません。   コンパイルする順番は、song1.mmlのトラックA, B, C, ..., song2.mmlのA, B, C, ... となっています。   バンク設定もその順番で引き継がれます。   複数曲のときは#SETBANKは使わず、NBのみでバンクチェンジしてください。 ・FDSハードエンベロープコマンド($f0)を新設し、それによりFDSで@v64以降を使えるようにした。 compiler: ・#GATE-DENOM でqコマンドの分母を指定できるようにした(デフォルトは8) ・環境変数DMC_INCLUDEからdmcファイルを探すようにした(nesasmのソースのぱくり) ======================================================================== [release 7c] driver: ・VRC7の実機演奏に対応してみるテスト(mckスレ8-473氏パッチ取り込み) ・Eチャンネル(DPCM)でyコマンドが使えるように修正。 ・$ffコマンドを廃止。代わりに$eeでループします。 ・$a0, $a1コマンド仕様変更。NBが|: 〜 :|ループ内で使えるようになりました。 ・D(ディチューン)コマンドがノイズチャンネルで使えるように修正。  (2003年頃のmckで作られた曲でノイズの周波数がずれてるのがあるので) compiler: ・NSFが32kBに収まる場合は、#NO-BANKSWITCH未指定でもNSFマッパーのバンク切り替えをしないようにしました。 ・@nコマンドがノイズ/VRC6/MMC5/FME-7で使えるように修正。 ・VRC7用コマンド、OPを追加。単に@@のエイリアスです。  (mckスレ8-622氏パッチを一部取り込み) ・音長指定時の減算を"~"でもできるようにした。 ・MMC5を使用するとtrk_flag[]配列の境界を越えて書き込んでいたのを修正。  (環境によっては何か悪質なバグになってたかもしれません) other: ・mknsf.batでmoveコマンドの代わりにrenを使用するようにしました。 ======================================================================== [release 7b] ・DPCMの自動バンク切り替えのバグフィックス。(thanks: mckスレ8-415) ・pp-readme.txtでmmc5.hへ言及していませんでした。申し訳ありません。 ======================================================================== [release 7a] ・バンク切り替えしようとするとき、指定領域が実際にはファイルに存在しない場合は  バンクに読み込まないようにした。(release 7でDPCMのバンクチェンジをすると  Game Emu Playerがクラッシュする問題の対策) ・DPCMのバンクチェンジを、DPCMをオフにしてから行うようにした。 ======================================================================== [release 7] driver: ・DPCMサンプルのバンクを指定できるようにした。 compiler: ・kコマンドを追加。休符のrコマンドと似ていますが、リリースエンベロープが発生します。 ・簡易的なセルフディレイ機能を追加。   SDコマンドを置くことで発動します。リリースエンベロープが発生するタイミングで、   回前のノートオンの音で残響音を付加します。   SDOFでオフになります。   SDQRでディレイバッファに溜まっている音符が空になります。 ・DPCMトータルサイズが0x4000を超える場合、自動でバンク切り替えするようにした。   DPCMバンク切り替えをする場合は、DPCMが置かれるバンクにトラックデータを   書き込むことはできません。 ======================================================================== [release 6] compiler: ・DMCサンプルをパディングする際にサンプル長の計算方法が間違っていたので修正。 ・@DPCMの引数を2つ追加。  デルタカウンタ初期値(発音時に$4011に書き込む値)と、ループ/IRQフラグ($4010の上位2bit)。   DMCのループ再生はエミュレータによってはきちんと実装されていないので注意。   IRQは……NSFフォーマットにはIRQアドレスを書く欄がないので意味がないです。 ・@DPCMの再生サイズ指定()で0を指定した場合は、を省略した場合と同じく  ファイルサイズが再生サイズになるようにした。 ・新機能#DPCM-RESTSTOPを追加。下記参照。 driver: ・#DPCM-RESTSTOPを指定した場合は、DPCMチャンネルでrコマンドを使った時に  即座にDPCMの再生を止めるようにした。wコマンドと使い分けてください。 ・デルタカウンタ初期値に$ffを指定した場合は、発音時に$4011に何も書き込まないようにした。 ・VRC6チャンネルでyコマンドを使用した際に発生するバグを修正。 ・実機演奏用にVRC6のレジスタ初期化処理を追加。 ======================================================================== [release 5] driver: ・ディチューン・ピッチエンベロープ・LFOで引き算の桁借りがおかしかったのを修正。 compiler: ・#TITLE/#COMPOSER/#MAKER/#PROGRAMER/#INCLUDEの行と@DPCMのファイル指定時に、  /;をコメントアウトにしないようにした。 ・qの仕様を少し変更。q,のときは  発音時間 = 音長*/8 + になるようにした。 ・音長指定時の減算機能を実装。 ・文法チェックをいろいろと強化。 ======================================================================== [release 4b] driver: ・FDSハードウェアエフェクト使用時に休符フラグがおかしくなっていたのを修正。 ・DPCMの休符時に$4011に書き込まないようにした。 ======================================================================== [release 4a] compiler: ・リリース時音色を指定する@@rコマンドを追加。 driver: ・バンク初期化をわずかに変更。 ・RAMを初期化するようにした。 other: ・ppmckcのソースをmck/src/ppmckcに移動した。 ======================================================================== [release 4] compiler: ・@q0でクオンタイズオフにするようにした。 ・クオンタイズオフにした後、ちゃんと通常エンベロープに戻るようにした。 ・異常終了時にEXIT_FAILUREを返すようにした。 ・songdata.hのデータ出力のコメントに、MMLファイル内の対応位置を書き出すようにした。   bank overflowエラーの時にどこでoverflowしたかわかりやすくなった。 ・#SETBANKを指定しない時にNBするといきなりbank 4に飛んでいた。のをそうしないようにした。 ・NBやSETBANKで同じバンクを指定しても、データを上書きしないようにした。   DPCMが置いてあるバンクにもトラックデータを書き込めます。 ・NBで指定バンクに移動できるようにした。   (bank 2がDPCMで完全に埋まっている時に、bank 1からbank 3に直接飛べます) ・新機能#NO-BANKSWITCH。NSFマッパーのバンク切り替えを禁止します。   #NO-BANKSWITCH使用時は#SETBANKやNBで指定できるバンクの範囲は0〜3に制限されます。 ・出力データsongdata.hのインクルード位置をeffect.hの末尾に移動した。   (DPCMを書き出した後に、bank2,3にトラックデータを書き込みたいので) ・#BANK-CHANGEの挙動を#SETBANKと同一にした。 driver: ・#NO-BANKSWITCHのための修正 other: ・mknsf.batを変更。nesasmに-sオプションを付けてみた。 ・mml2nsf.plを付けてみた。perl mml2nsf.pl songdata.mmlでnsfに変換します。 ・ppmck-ja.txtを付けてみた。 ======================================================================== [release 3] compiler: ・テンポ関連修正(やっぱりintにキャストする際は四捨五入するようにした)   テンポはできるだけ@t4,xx等で指定するとよいかと思います   http://takamatsu.cool.ne.jp/dutycycle/at_t_tempo.html を参考にどぞ ・|: :|リピートの補正機能を削除した ・連符の中にr/w/@nも使えるように修正 ・#SETBANKコマンドにおいて、#SETBANK A,4のようにトラックを文字で指定できるようにした ・MMLファイルを読むとき改行コードを変換しながら読み込むようにした ・#TITLEなどの指定文字列にダブルクオートがあるとエラーになってたのを修正 ・#BANK-CHANGEを再び使用できるようにした   #BANK-CHANGE使用時は#SETBANKとNBコマンドは無視されます ・%の2進数処理を直した driver: ・ウェイト時には発音処理をしないようにした   → c1^1^1のような長い音符で途中にプチノイズが入らなくなった   → リリースエンベロープに切り替わる時にプチノイズが入らなくなった ・ENの修正   → Nosefart/Nester系のエミュレータにおいて、内蔵矩形波でENを使うとガリガリいってたのが直った   → 曲冒頭や休符の直後にENを使うと鳴らなかったことがあったのが直った other: ・mknsf.batをちょっと変更。環境変数NES_INCLUDEを設定すればwin9xでも動くかも ======================================================================== [release 2a] driver: ・FDS未使用時、VRC7のGチャンネルが鳴らなかったのを修正 ======================================================================== [release 2] driver: ・MP複数同時使用可能に compiler: ・カウントからフレームに変換する時、intにキャストする際に99.999999みたいな  数字が切り捨てられて99になるのを防ぐ処置 ・@tと#フレーム指定の同時使用時の問題を直した ======================================================================== [release 1] driver (changes from pmck08): ・MMC5, VRC6, FME-7 拡張音源サポート ・DPCMやN106でNBコマンド処理してなかったのを修正 ・internal.hとdpcm.h切り離し ・|: -- \ -- :| ループの回数訂正(352.lzhのhoge.txtより) ・メモリ変えまくり compiler (changes from pmckc02a_5-658): ・#EX-VRC7, #EX-MMC5, #EX-FME7 ・VRC6用に@とvの制限を甘くしたり ・「ハイフンを含むファイル名が使えない」の対策 ・リザルト表示ルーチン変更 ・FDSは未使用時は出力しないようにした