-------------------------------------------------------------------------------
【  名  称  】 NSFplug Decoder
【ファイル名】 kbnsfplug.kpi
【バージョン】 0.10
【対応拡張子】 nsf
【 Platform 】 x86(32bit)/x64(64bit)
【 公 開 日 】 2024/05/13
-------------------------------------------------------------------------------

【概要】

NSFplug ベースの NSF 再生プラグインです。対応拡張子は nsf です。

オリジナルの NSFplug(in_nsf.kpi)(2006/05/05版) を 64bit 版の本体から使うと、ロ
ード時にエラーダイアログが表示されたりフリーズして正常動作しませんでしたが、本
体側での対応は困難でしたので、プラグインを修正する形で対応することにしました。

ベースにしたのは Brad Smith 氏による NSFPlay v2.7 beta となります。

https://rainwarrior.ca/

オリジナルよりも新しく、現在でも更新が続いている為こちらをベースにさせて頂きま
した。オリジナルは

https://github.com/digital-sound-antiques

にあります。(2006/05/05版より新しいがソースコードのみ)

【使い方】

本体に標準同梱の kbnezplug.kpi と対応拡張子(.nsf のみ)が競合します。既定では本
プラグインが優先的に使用されますが、kbnezplug.kpi で .nsf を再生したい場合はプ
ラグイン設定で本プラグインを無効化するか %Kbmplay% セクションで拡張子 .nsf を外
すかして下さい。

【設定】

オリジナルの in_nsf.kpi では本体のメインメニューに「NSF」という項目を追加してい
ました(64bit版の本体から使用出来ない原因)が、本プラグインではプラグイン設定から
行います。オリジナルでこのメニューから出来ていたことの全てに対応している訳では
ありません。KbMedia Player の独自規格である TAG ファイルの読み書きに関する設定
を廃止しているなどです。

-------------------------------------------------------------------------------

【更新履歴】

Version 0.10(2024/05/13)

・本体に標準同梱することにした
・kbnezplug.kpi と拡張子(.nsf)が競合するが、NSF については本プラグインが優先的
　に使用されるようにする為、バージョン番号を kbnezplug.kpi より大きい値にした
・NSF の再生に kbnezplug.kpi を使いたい場合は本プラグインを無効化するか本体の
　%Kbmplay% セクションで拡張子.nsfを外す(.nsfe は kbnezplug.kpi は未対応なので
　外す必要なし)
・NSFe(拡張子.nsfe) に対応
・タグ情報の取得に対応
・64bit float で出力するようにした
・詳細設定の「FastSeek」が有効な場合は高速シークするようにした
　・シーク先が遠いと時間がかかるので5秒以内にシーク出来るところまでとする
・プロパティ(NSFヘッダ情報、その他の情報)の表示に対応
　・プロパティという名称は in_nsf.kpi に準じる
　・メインメニュー非表示 & 曲番号の切り替え不可(NSFPlay と異なる動作)
・演奏情報、メモリ表示、プロパティのダイアログをキャッシュするようにした
　・表示を有効時の曲切り替えが高速化
・クロスフェード時のノイズを修正(rconv.cpp::RateConverter::FastRender)
　・INT32 t[2] が static だったのが原因
・演奏情報ダイアログにファイルをドラッグアンドドロップすると落ちるのを修正
　・ドラッグアンドドロップ出来ないようにした
・演奏情報、メモリ表示で不正なメモリアクセスが発生することがあるのを修正
・演奏情報、メモリ表示を右上の×ボタンで閉じたら描画処理を止めるようにした
　・処理時間がかかり過ぎて本体が操作不能になった場合でも、ダイアログを閉じれば
　　操作出来るようになる筈
・演奏情報ダイアログの「表示設定」->「描画遅延」の設定を微調整しやすくした
　・キーボードの←と→で操作したときの刻み幅を 50ms => 5ms に変更
　・PageUp/PageDown キーは 250ms => 100ms

/*---------------------------------------------------------------------------*/

Version 0.02(2024/05/06)

・設定画面が表示されなくなることがあるのを修正
・演奏情報とメモリの表示に対応
　・再生中の曲データごとに表示(クロスフェード中は複数表示)
　・演奏情報は本体の非公式の機能を使って再生位置を取得するため、先読みバッファ
　　のサイズや再生バッファサイズが大きくても表示がずれない
・各設定画面の位置を保存するようにした(演奏情報とメモリ表示はサイズも保存)
　・位置とサイズを初期値に戻すことも出来るようにした

/*---------------------------------------------------------------------------*/

Version 0.01(2024/05/05)

・初版
・ベースは  Brad Smith 氏による NSFPlay v2.7 beta(2024/04/14)
　・オリジナルの in_nsf.kpi(2006/05/05)より新しい
・オリジナルの in_nsf.kpi で本体のメインメニューの「NSF」から出来ていた設定画面
　をプラグイン設定から表示出来るようにした

-------------------------------------------------------------------------------
Kobarin(hidkob@pb.highway.ne.jp)
https://kobarin.sakura.ne.jp/
