-------------------------------------------------------------------------------
【  名  称  】 PlayStation Sound Format(PSF) Decoder
【ファイル名】 kbpsf.kpi
【バージョン】 1.08
【対応拡張子】 psf/minipsf(psf2/minipsf2 は非対応)
【 Platform 】 x86(32bit)/x64(64bit)
【 公 開 日 】 2019/05/12
【 動作環境 】 KbMedia Player 本体同梱の kbzlib.dll が必要
               KbMedia Player 以外のソフトから使う場合に注意が必要
               KbMedia Player から使う分には何もする必要はありません
-------------------------------------------------------------------------------

【概要】

プレイステーションのサウンドフォーマットである PSF 再生プラグインです。対応拡張
子は PSF/MINIPSF です。このプラグインでは PSF2/MINIPSF2 は再生出来ません。

viopsf(作者不明)をベースにしています。

アーカイブ内の psflib(minipsf) やループにきちんと対応しています。PSF タグに書き
込まれたフェード時間も再生に反映されます。

【設定】

設定画面の「SPUPlugin_(x86/x64)」のところで再生に使う SPU プラグインを選択する
ことが出来ます。spuPeopsSound.dll と spumame.dll と spumednafen.dll が使用可能
です。(同梱済み)

他にも spuEternal.dll が使用可能です。spuEternal.dll を使う場合は「32bit 版の」
kbpsf.kpi と同じフォルダに置いて下さい。spuEternal.dll は再配布が許可されてい
ないため同梱出来ません。64bit 版の kbpsf.kpi で spuEternal.dll を使用すること
は出来ません。

64bit 版の本体で spuEternal.dll を使用して再生したい場合は本体の設定で 64bit
版の kbpsf.kpi を無効にして 32bit 版の kbpsf.kpi を使用するようにして下さい。

動作確認した spuEternal.dll のバージョンは 1.41 と 1.50beta2 です。

【viopsf.bin】

PSF デコーダのコアとなります。オリジナルの viopsf.bin と互換性がありますので、
最新の viopsf が公開された場合、置き換えて使用することが出来ます。
(viopsf.bin のインターフェース仕様が変わっていなければ)

ただし、オリジナルの viopsf.bin は 32bit 版ですので、64bit 版の viopsf.bin
を置き換えても動作しませんのでご注意下さい。

【その他】

同梱の Readme_original.txt/SPUplugin_for_viopsf_ReadMe_original.txt は
kbviopsf.kpi に同梱されていたドキュメントファイルです。使い方についてはそちら
を参照して下さい。

【ライセンス】

kbpsf.kpi には以下のライブラリ、ソースコードが組み込まれています。
GPL なソースコードが組み込まれているため、kbpsf.kpi も GPL に従います。
kbpsf.kpi のソースコードは準備が整い次第公開予定です。

[viopsf v0.14]
???

[vioxsf framework]
???

[PCSX-Reloaded] -> GPL v3
UTHORS Expand code view to full page width Compare with other versions:
PCSX Upstream Authors:    Linuzappz     <linuzappz@pcsx.net>
    Shadow        <shadow@pcsx.net>
    Pete Bernett  <psswitch@online.de>
    NoComp        <NoComp@mailcity.com>
    Nik3d
    Akumax        <akumax@pcsx.net>

PCSX Copyright:    (c) 1999-2003  Pcsx Team
    (c) 1998 Vision Thing

df Upstream Authors:    Ryan Schultz <schultz.ryan@gmail.com>
            Andrew Burton <adb@iinet.net.au>
            Stephen Chao <schao@myrealbox.com>
            Marcus Comstedt <marcus@mc.pp.se>
            Stefan Sikora <hoshy@schrauberstube.de>

df Copyright:    (c) 2005 Ryan Schultz
        (c) 2005 Andrew Burton
        (c) 2007 Stephen Chao
        (c) 2006 Marcus Comstedt

PCSX-Reloaded Authors/Contributors: avlex (Help on xcode project)
                Benoît Gschwind (MDEC decoder improvements)
                ckain (Various bugfixes)
                Dario (Various bugfixes)
                edgbla (Root counters, SIO1, various core/plugin fixes)
                Firnis (GTE code from PCSX-Revolution Project)
                Hopkat (Sound plugin improvements, core fixes)
                iSage (compressed CD-DA)
                Gabriele Gorla (MDEC decoder)
                MaddTheSane (Various bugfixes)
                maggix (Snow Leopard compile fix)
                NeToU (Bugfix)
                notaz (Various psxbios fixes)
                Peter Collingbourne (Various core/psxbios fixes)
                siveritas (Bugfix)
                shalma (GTE Divider, many core improvements, sound plugin fixes)
                Tristin Celestin (PulseAudio support)
                UTunnels (Mode 1 ISO support)
                VoidMage (Build system cleanups)
                Wei Mingzhi (Input plugin, iso/cheat support, misc stuff)
                (And others which I cannot keep track of)

PCSX-Reloaded Translators: 99skull (Korean)
               Delirious (Hungarian)
               edgbla (Russian)
               Giovanni Scafora (Italian)
               Imanol08 (Spanish)
               Jean-André Santoni (French)
               Tibério Vítor (Brazilian Portuguese)
               Wei Mingzhi (Simplified & Traditional Chinese)

[spuPeopsSound] GPL v2
copyright (C) 2002-2015 Pete Bernert

[mednafen] -> GPL v2
copyright (C) 2005-2015 Mednafen Team

[SPU core of MAME] -> BSD-3-Clause
copyright-holders: pSXAuthor, R. Belmont
Sony PlayStation SPU (CXD2922BQ/CXD2925Q) emulator
    by pSXAuthor
    MAME adaptation by R. Belmont

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

【更新履歴】

Version 1.08(2019/05/12)

・viopsf.bin を kbpsf.kpi に内蔵するのをやめた
・viopsf が更新されたとき、viopsf.bin を置き換えるだけで動作するようにした
　(viopsf.bin のインターフェースに変更がなければ)
・音量(%) の設定を追加
・音量(%) と volume タグを重ねて適用した結果が 100% 以外のときだけ 64bit float
　で出力するようにした

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

Version 1.07(2019/04/08)

・viopsf を v0.14 に差し替え
・以下の設定項目を追加
　・「spuEternal.dll のパス」
　・「spuEternal.dll を使う」
　・ともに 32bit 版の kbpsf.kpi でのみ有効。64bit版では設定は無視される

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

Version 1.06(2017/04/09)

・コンパイラを VS2017 に変更

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

Version 1.05(2017/01/09)

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

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

Version 1.04(2016/12/11)

・依存する zlib の DLL 名を zlib.dll から kbzlib.dll に変更
・著作権表示を修正

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

Version 1.03(2016/12/04)

・viopsf.bin を kbpsf.kpi に内蔵(viopsf.bin は不要になった)
・zlib を内蔵させずに本体同梱の zlib.dll を使用するようにした
・旧式プラグインの対応を打ち切った(v2.63a では動作しなくなった)
・設定ダイアログに対応
　・SPUPlugin
　　・spuPeopsSound.dll, spumame.dll, spumednafen.dll から選択
　　・spuEternal.dll も使用可能(32bit 版の kbpsf.kpi と同じフォルダに置く)
　　・64bit 版では spuEternal.dll を使用不可
　・SPUPluginConfig(使用中の SPU プラグインの設定ダイアログを表示)
　・ResetPeop(spuPeopsSound.dll の設定を初期値に戻す)
　・EnableInterpreterCPU
　・IgnoreVolumeTag
・SPU プラグインの設定ダイアログを閉じたらプラグインを再ロードさせるよう通知
　するようにした
　・設定変更が即座に反映されるようにするため
　・spuPeopsSound.dll の場合は設定が変更された場合のみ再ロードを通知する
　・spuEternal.dll の場合は「キャンセル」で閉じても再ロードを通知する
　　・ダイアログを開く前後のレジストリを比較するのが面倒なので
・spuPeopsSound.dll に関する以下の修正
　・設定ダイアログをモードレスからモーダルに変更
　・ダイアログを表示中にプラグインをアンロードすると落ちるため
　・spuPeopsSound.ini/spuPeopsSound_expert.ini を作成せず、本体で設定の保存
　　管理を行うようにした
・フェード時間が 0 の曲で演奏終了直前に落ちることがあるのを修正
・64bit float で出力するようにした
　・volume タグが 1 でなく、本体の最終出力段のビット深度が 24bit 以上のとき
　　の音質が向上
・64bit 版を作成
　・64bit 版では spuEternal.dll は使用不可(64bit 版がないため)

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

Version 0.02beta3(2016/10/03)

・v2.80beta29 のプラグイン仕様に対応(インターフェースのみ)
・インターフェースのみの対応なのでバージョン番号変更せず

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

Version 0.02beta2(2016/08/22)

・v2.80beta23 のプラグイン仕様に対応(インターフェースのみ)
・インターフェースのみの対応なのでバージョン番号変更せず

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

Version 0.02beta(2016/08/16)

・コンパイラを VS2015 Update3 に変更
・v2.80beta21 のプラグイン仕様に対応
　・設定画面の生成と設定の保存管理は本体ではなくプラグイン自身で行う
・バージョン値を本来なら 2 とするべきところを 102 にした
　・2 にすると、kbpsf.kpi で psf/minipsf を再生出来るように設定すると kbwinamp
　　+ in_psf.dll 導入時に PSF2 が再生出来なくなる(kbpsf.kpi を使用するためには
　　in_psf を無効化しなければならないため)ことへの暫定的な措置
　・いずれ本体側でプラグイン使用優先度の変更 or 対応拡張子の無効化が出来るよう
　　にする予定
・ベースを v0.06 から v0.07(2016/06/25版)に変更
　・spuPeopsSound.dll でリバーブがおかしくなることが多かったのを修正
　　(SPUplugin_for_viopsf_ReadMe_original.txt より)
・spumame.dll と spumednafen.dll も同梱することにした

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

Version 0.01beta(2016/04/04)

・初版
・kbviopsf.kpi Version 0.06 をベースに、KbMedia Player v2.80beta 以降の新しい
　プラグイン仕様に対応
・オリジナルからの変更点
　・コンパイラは VS2015 Update2 を使用
　・プラグインの仕様を v2.80beta 以降(未完成)のものに準拠
　・無限ループ、フェード時間に対応
　・アーカイブ内の psflib にきちんと対応
　・シークを繰り返すとメモリリークするのを修正
　・シークが低速なのでシーク未対応として扱うようにした

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