-------------------------------------------------------------------------------
【  名  称  】 FMP Decoder
【ファイル名】 kbfmp.kpi
【バージョン】 1.18
【対応拡張子】 opi/ovi/ozi
【 Platform 】 x86(32bit)/x64(64bit)
【 公 開 日 】 2024/03/20
【 動作環境 】 C60 氏制作の WinFMP.dll が必要(同梱していません)
-------------------------------------------------------------------------------

【概要】

FMP を再生するためのプラグインです。対応拡張子は OPI/OVI/OZI です。

【WinFMP.dll】

kbfmp.kpi を使うためには、C60 氏制作の WinFMP.dll が必要です。

WinFMP.dllは、C60 氏のページでダウンロードして下さい。

    http://c60.la.coocan.jp/

WinFMP.dll の置き場所は任意です。「検索パス」から使用する WinFMP.dll の場所を設
定することで使用出来るようになります。

WinFMP.dll がない場合、KbMedia Player 本体は kbfmp.kpi をプラグインとして認識は
しますが、FMP を再生することは出来ません。

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

【更新履歴】

Version 1.18(2024/03/20)

・プラグイン設定画面の説明文を修正

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

Version 1.17b(2024/03/01)

・64bit版 WinFMP.dll が公開されたことに伴い、64bit 版の kbfmp.kpi_ のファイル名
　を kbfmp.kpi に変更

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

Version 1.17(2022/09/23)

・FileIO インターフェースを使わずに WinFMP.dll v0.51 でアーカイブ内の曲を再生
　するとテンポラリを削除出来ない(v0.18 では発生せず)のを修正
・FileIO インターフェース使用時の動作改善
　・同じデータを何度も開いたり閉じたりしないようにキャッシュするようにした
　・キャッシュ機構は v1.16 から実装済みだったが手違いで無効になってた

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

Version 1.16(2022/09/22)

・バージョン番号を kbpmd.kpi に合わせることにした(v1.13/1.14/1.15は欠番)
・WinFMP.dll のパスが未指定のときはプラグインと同じフォルダの WinFMP.dll だけを
　ロードし、失敗しても本体と同じフォルダ等からはロードしないようにした
・64bit 版のプラグインを kbfmp.kpi_ という名前で配布することにした
　・WinFMP.dll の 64bit 版が公開されたら kbfmp.kpi にリネームすることで使用
　　可能になる
・WinFMP.dll v0.51 だとアーカイブ内で PVI 等の PCM に依存する曲データを再生出来
　ないのを修正(おそらく WinFMP.dll v0.51 のバグ)
・FileIO インターフェースに対応(WinFMP.dll v0.19 以降)
　・アーカイブ内のデータを再生時に一時ファイルを作成しなくなった
　　（アーカイブプラグインが対応している形式のみ）
　・リズム音源のパスや PCM 検索パスのファイル名制限がなくなった
　　（Unicode でしか表現出来ないものや MAX_PATH バイト以上の長さに対応)
　・FileIO インターフェース未対応の WinFMP.dll でも従来通り動作する
　・設定により FileIO インターフェースを使わないようにすることも出来る
・設定に関する以下の修正
　・DLL の検索パス設定時のダイアログのフィルターを修正
　　・WinFMP.dll.256 等を選択出来るようにした
　・General セクションに以下の設定項目を追加(3番目以降はFMPMD2000互換)
　　・MultipleInstance
　　・FileIO インターフェースを使う
　　・FM を 55kHz で合成
　　・PPZ8 駆動周波数
　　・PCM がなくても強制的に再生
　　・補間(PPS)
　　・補間(P86)
　　・補間(PPZ8)
　　・UsePPS
　　・SSG+RHY
　　・PMD86->B2
　　・PPZ8EM
　　・設定画面に表示されるのは使用中のプラグインにとって有効な設定のみ
　・Volume セクション追加（各パートの音量調整）
　・PartMask セクション追加（パートマスク）

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

Version 1.12(2017/04/09)

・コンパイラを VS2017 に変更

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


Version 1.11(2017/01/09)

・正式版公開に向けての細かい修正(ドキュメント/ソースコードの整理等)

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

Version 1.10(2016/10/10)

・新プラグイン仕様に対応
・設定項目を追加
　・再生周波数
　・WinFMP.dll のパス
　　・未指定の場合はプラグインと同じフォルダまたは OS 既定の DLL 検索アルゴリズ
　　　ム(本体 EXE と同じフォルダ、システムフォルダ等)で検索
　　・本体のバージョンアップ時にプラグインと同じフォルダに WinFMP.dll をコピー
　　　するのが煩わしく、かといってシステムフォルダに置きたくない場合に設定する
　・リズム音源の検索パス
　　・未指定の場合はプラグインと同じフォルダから検索
　　・本体のバージョンアップ時にプラグインと同じフォルダにリズム音源のデータを
　　　コピーするのが煩わしい場合に設定する
　・PCM(PVI) の検索パス(最大64個まで)
　・設定の保存場所は kbpmd.kpi と共有
・本体の PVI 検索パス設定を廃止
・必要な PCM ファイルが存在しない場合でもファイルを開けるようにした
　・制作者の意図した通りには鳴らないが、とりあえずは再生出来るように
・アーカイブ内のデータに(ある程度)きちんと対応
　・アーカイブプラグインの仕様によっては稀に正しく再生出来ない可能性がある
・ループ曲にきちんと対応
　・本体のループ回数の設定が反映されるようになった
・必要な PCM/PPZ ファイル名を本体に通知するようにした
　・実際には読み込まれなかった(存在しないorエラーで開けなかった)ものも含む

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

Version 1.09(2016/07/11)

・コンパイラを VS2015 update3 に変更

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

Version 1.08(2015/10/25)

・プラットフォームツールセットを Visual Studio 2015 - Windows XP (v140_xp) に
　変更(Windows XP でも動作するように)

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

Version 1.07(2015/10/18)

・コンパイラを VisualStudio2015 に変更

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

Version 1.06(2015/08/30)

・ループしない曲の演奏時間が本体の「デフォルトのフェードアウト時間」の分だけ
　長く表示されていたのを修正

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

Version 1.05(2000/11/12)

・MSVCRT.DLL に依存しなくなった（C ランタイムを一切使わないようにした）

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

Version 1.04(2000/04/07)

・PVI の検索パスが指定されていない状態だと落ちるバグを修正

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

Version 1.03(2000/04/02)

・PVI の検索パス指定に対応（本体で「環境設定」で設定変更した場合、反映されるの
  は新しいファイルを開いてからです）
・インストールされている WINFMP.DLL のバージョンがわかるようにした（本体の「プ
  ラグイン情報」）

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

Version 1.02(2000/01/22)

・WINFMP.DLL Version 0.03（COM 風インターフェース）に対応
・WINFMP.DLL Version 0.02 未満は認識しないようになった
・クロスフェード時にプロセス間通信をする必要がなくなった

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

Version 1.01(2000/11/06)

・DLL の初期化処理がまずかったのを修正

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

Version 1.0(2000/08/23)

・木下さんに代わって私(Kobarin) が開発を引き継ぐ
・WINFMP.DLL を動的にロードするようにした
・FMP→FMP にクロスフェードできなかったのを修正
・KbMedia Player で「単曲リピート」の設定になっている場合は無限ループさせるよ
  うにした（KBSPC.DLL と基本的に同じ）
・実際は再生可能なのにエラーとして扱うことがあった（fmp_load の戻り値がエラー
  ではなく警告を示すもの）のを修正
・PPZ8パートの一次補間を有効にするようにした（元々有効だったかも）
・KBFMP.DLL と同じディレクトリにあるリズム音源を読み込むようにした

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

Version 0.0(2000/6/13)

・初版（木下菫氏が開発）

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