-------------------------------------------------------------------------------
【  名  称  】 PMD Decoder
【ファイル名】 kbpmd.kpi
【バージョン】 1.18
【対応拡張子】 m/m2/mz/mp/ms
【 Platform 】 x86(32bit)/x64(64bit)
【 公 開 日 】 2024/03/20
-------------------------------------------------------------------------------

【概要】

PMD を再生するためのプラグインです。対応拡張子は M/M2/MZ/MP/MS です。

【PMDWin.dll】

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

PMDWin.dll は kbpmd.kpi に同梱されています。同梱の PMDWin.dll は公式版を VS2022
でビルドしたものですが、公式版を使用することも出来ます。公式版は、C60 氏のペー
ジでダウンロードして下さい。

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

「検索パス」から使用する PMDWin.dll を設定することが出来ます。
パスが未指定の場合、

・kbpmd.kpi と同じフォルダ(公式版 を VS2022 でビルドしたものを同梱)

を使用します。

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

【著作権】

同梱の PMDWin.dll は C60 さん制作の PMDWin.dll を VS2022 でビルドしたものです。
PMDWin.dll の著作権は C60 氏が保有します。

ソースコードはほとんど改変していないため、再現性はほぼオリジナルと同じだと思い
ますが、万が一不具合があったとしても C60 氏に連絡することはしないようお願いし
ます。不具合の連絡は KbMedia Player のサポート掲示板の方でお願いします。

    https://kobarin.sakura.ne.jp/

本来 PMDWin.dll の再配布は禁止されています。ソースコードをほぼそのままビルドし
たものの配布は問題ないとの確認を頂いています。


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

【更新履歴】

Version 1.18(2024/03/20)

・PMDWin.dll を v0.52(2023/03/04)に更新
・プラグイン設定画面の説明文を修正

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

Version 1.17(2022/09/23)

・FileIO インターフェース使用時の動作改善
　・同じデータを何度も開いたり閉じたりしないようにキャッシュするようにした
　・キャッシュ機構は v1.16 から実装済みだったが手違いで無効になってた

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

Version 1.16(2022/09/22)

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

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

Version 1.15(2021/04/18)

・PMDWin.dll を v0.39(2020/08/16) に更新(VS2019 でビルド)

/*---------------------------------------------------------------------------*/
Version 1.14(2020/01/14)

・PMDWin.dll を v0.37(2020/1/12) に更新(VS2019 でビルド)

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

Version 1.13(2017/04/09)

・コンパイラを VS2017 に変更

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

Version 1.12(2017/01/09)

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

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

Version 1.11(2016/11/06)

・再生に必要な PVI ファイルの抽出方法を修正
・PMDWin.dll を同梱(v0.36 を VS2015 Update 3 でビルドしたもの)
　・C60 さんの許可を頂きました
　・オリジナルの PMDWin.dll を使用することも可能
・64bit 版を作成(↑の x64版 PMDWin.dll を使用)

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

Version 1.10(2016/10/10)

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

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

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

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

Version 1.02(2000/01/22)

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

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

Version 1.01(2000/11/06)

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

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

Version 1.0(2000/08/23)

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

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

Version 0.0(2000/6/12)

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

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