*************************************************** * * * Eternal SPU Plugin v.1.41 * * Official Manual * * * *************************************************** What's new? v.1.40 -> v.1.41 (31 May, 2003) ------------------------------------------------------------------------ * SPUファイル記録中にSPUが閉じた時、記録ファイルが壊れる問題を修正 * 新インタフェースSPUplayCDDAchannel()のバグを修正 * XAバッファがオーバ/アンダーフローした時の回復アルゴリズムを変更 * その他、細かいバグを修正 What's new? v.1.30 -> v.1.40 (17 May, 2003) ------------------------------------------------------------------------ * Linux版Eternal SPU Pluginをファーストリリース。 * オーディオデバイスの追加。 SDL (Simple DirectMedia Layer)とWaveMapperをWindowsに追加しました。 Linux版ではSDLとOSSをサポートしています。 * 三種類のリバーブタイプを追加実装。("Freeverb","Iori's","Neill's") "Neill's"はNeill Corlett氏の解析結果に基づいており、PS実機に限りなく 近いエフェクトを掛けることができます。Neill Corlett氏に感謝します。 * ノイズエミュレーションの改良。 これまで正確ではなかったノイズエミュレーションを完璧に近付けました。 現状でほぼ確実な実装がなされていると思います。 * ピッチモジュレーションを改良。 いくつかのソフトで問題のあったピッチモジュレーションも修正されます。 現状でほぼ確実な実装がなされていると思います。 * デコードされたXAのDMA読出しに対応。Tales of Destinyのレベルメータが 動くようになった。 * "実況おしゃべりパロディウス"等いくつかのKONAMIのソフトで生じていた 問題を修正。 * Xのバッファあふれ時の対処方法を微修正。雑音が少なくなったと思います。 * "Record"機能を一新した。 新旧SPUファイルに互換はありませんが、新SPUファイルではレジスタ書込み・ 読出し、DMA書込み・読出し、XA・CDDAストリームを記録できます。 * "Cache VAG decode"オプションを追加。 高速化できる一方、互換性が低いという問題を抱えています。実際に問題の 起こるソフトが数本確認されているため、本機能の使用はお奨めしません。 * リバーブ成分のミキシング方法を修正。 * "Update before accessing register"の灰色チェック設定を廃止。 * SPUasync - Smoothを修正。 "Update before accessing register"と同時に設定しても動作するように なりました。 * その他、軽微なバグを修正。 * PSXエミュレータ開発者への情報 : CDDAストリーム再生の互換性を上げるための新しいインターフェースを提唱 します。 void CALLBACK SPUpalyCDDAchannel( short *pcm, int nbytes); この関数を使うことでCDDAサウンドをSPUプラグインを介して再生することが 可能になります。また、CDDA再生波形のDMA読み出しが可能になります。 更に詳しい情報を得たい場合は私達に連絡して下さい。 ------------------------------------------------------------------------ # 目次 ------------------------------------------------------------------------ 0. 概要 1. 使用方法 2. 設定 2-1-0. [Audio device] - DirectSound / SDL / WaveMapper / OSS 2-1-1. [Audio device] - Buffer size 2-2-0. [Audio out method] - Thread / Timer / SPUasync 2-2-1. [Audio out method] - Async mode 2-3-0. [Misc] - Show realtime config window 2-3-1. [Misc] - Wait for XA buffer is free 2-3-2. [Misc] - Cache VAG decode 2-3-3. [Misc] - Fine tune 2-3-4. [Misc] - Reverb 2-4-0. [Special game fix] - Update before accessing register 2-4-1. [Special game fix] - SPU IRQ-Wait CPU action 2-4-2. [Special game fix] - SPU IRQ-Force interruption flag7 3. SPUファイル出力機能 3-1. 記録方法 3-2. 再生方法 4. FAQ 5. 免責等 6. 謝辞 7. クレジット ------------------------------------------------------------------------ 0. 概要 ------------------------------------------------------------------------ Eternal SPU Pluginは、PlayStationエミュレータ用サウンド(SPU)プラグイン です。以下のPlayStationエミュレータで使用できることを確認しています。 - PSEmu Pro : discontinued - ePSXe : http://www.epsxe.com/ - AdriPSX ILE : http://www.adripsx.com/ - PCSX : http://www.pcsx.net - PSinex : http://psinex.psxemu.com/ - FPSE : discontinued ------------------------------------------------------------------------ 1. 使用方法 ------------------------------------------------------------------------ はじめに、Windows版は"spuEternal.dll"を、Linux版は"libspuEternal.so.1.41" を各エミュレータのプラグイン格納フォルダにインストールして下さい。 エミュレータ起動後、SPUプラグイン設定画面で[Eternal SPU Plugin x.x]を 選択して下さい。 ------------------------------------------------------------------------ 2. Configuration ------------------------------------------------------------------------ 2-1-0. [Audio device] - DirectSound / SDL / WaveMapper / OSS オーディオデバイスを選択できます。 [DirectSound] : DirectSoundを使ってサウンド出力を行います。 DirectX3以上が必要です。Windows版のみの項目です。 [SDL] : SDL (Simple DirectMedia Layer)を使ってサウンド出力を 行います。"SDL.dll"が以下のいずれかのディレクトリに インストールされている必要があります (Windows版の場合) 1. エミュレータの実行ファイルがあるディレクトリ 2. "System"ディレクトリ 3. パスの通ったディレクトリ 同様に、Linux版では"libSDL.so"が正しくインストールされ ている必要があります。 [Wave Mapper] : 標準的なWindows Wave Mapperを使用して出力を行います。 Waveデバイスが一つも無い環境では使用できません。 Windows版のみの項目です。 [OSS] : OSS(Open Sound System(TM))ドライバを使用して出力を 行います。Linux版のみの項目です。 ------------------------------------------------------------------------ 2-1-1. [Audio device] - Buffer size サウンドバッファサイズを[0-999]の範囲で設定できます。デフォルト値は64 ですが、使用者の環境に最適な値を設定することをお奨めします。 * 値が小さいほどサウンドの遅延はなくなります。 * 値を極端に小さくするとプチノイズが発生します。 ------------------------------------------------------------------------ 2-2-0. [Audio out method] - Thread / Timer / SPUasync オーディオ出力方法を選択できます。 使用者の環境に最適な方法を指定して下さい。 [Thread] --> [Timer]よりも精度は高いですが、その分負荷が大きくなります。 [Timer] --> [Thread]よりも精度は低いですが、その分負荷が小さくなります。 [SPUasync] --> 最も精度が高い出力方法です。 * [SPUasync]に設定した場合は、サウンドバッファの値を通常よりも大きく 設定する必要があります(プチノイズ発生防止のため)。 * エミュレータ側がサポートしている必要があります。 ------------------------------------------------------------------------ 2-2-1. [Audio out method] - Async mode [SPUasync]のモードを指定できます。 [Simple] --> 複雑な処理を行いません。 フレームレートが不安定になると音飛びが頻繁に発生します。 SPUを常にPSXエミュレータのCPUコアと同期させます。 [Wait] --> フレームレートが高い場合、最適なフレームレートになるようにウェイト を掛けます。フレームレートが低い場合、同じ音が繰り返し鳴るのを防ぐ ために遅延分をクリアします。 SPUを常にPSXエミュレータのCPUコアと同期させます。 [Smooth] --> フレームレートに応じて、生成するサンプルの量を調節します。 音飛びは発生しにくくなりますが、以下のような音声の再生にSPU-IRQを 使用するソフトでは、エミュレートに問題が発生する可能性が高くなります。 Ex.) * Valkyrie Profile * Star Ocean 2 * MetalGear Solid ...etc ------------------------------------------------------------------------ 2-3-0. [Misc] - Show realtime config window 実行中に設定を変更できるように、別コンフィグウィンドウを表示します。 ウィンドウモードでエミュレータを実行する時のみ有効にするようにして下さい。 ------------------------------------------------------------------------ 2-3-1. [Misc] - Wait for XA buffer is free XAデータを全て入れられるほどXAバッファが空くまで、エミュレータを待機させ ます。この機能を有効にすることによって、エミュレータのタイミングが早い ために起こるXAのプチノイズを解消します。 * XAの再生中は、FPS limitを外してもエミュレータの早送りができなくなります。 * エミュレータの動作が不安定になる場合があります。 ------------------------------------------------------------------------ 2-3-2. [Misc] - Cache VAG decode VAGブロック毎にデコード済みサンプルをキャッシュして、高速化を行います。 現状では問題を残しています。 ------------------------------------------------------------------------ 2-3-3. [Misc] - Fine tune 内蔵音源の再生ピッチ(音程)を微調節することが可能です。 10 : 半音高くなります。 -10 : 半音低くなります。 120 : 1オクターブ高くなります。 -120 : 1オクターブ低くなります。 ------------------------------------------------------------------------ 2-3-4. [Misc] - Reverb リバーブエミュレーションのタイプを選択できます。 [Off] --> リバーブエミュレーションを行いません。 [TiMidity] --> TiMidityで使われているリバーブです。 前バージョンと同じ効果が得られます。 [Freeverb] --> Freeverbで使われているリバーブです。 選択肢の一つです。 [Iori's] --> Ioriの試行錯誤によるリバーブです。"Neill's"の精度には僅かに及ばない ものの、ハイクオリティであることは確かです。 [Neill's] --> Neill Corlett氏の解析結果に基づくリバーブです。 最も精度が高いと思われます。 ------------------------------------------------------------------------ 2-4-0. [Special game fix] - Update before accessing register これらのオプションは、特定のソフトにおける不具合を解消するためのものです。 ソフトやシーンによっては多大な負荷がかかることがあります。 [チェックなし] --> レジスタ読み込み時にDirectSoundバッファを更新しません。 * 汎用 [チェックあり] --> レジスタ読み込み時にDirectSoundバッファを更新します。 以下のようなソフトで効果が見られます。 Ex.) * FinalFantasy8 : タイトルBGM、飛空挺ラグナロクのテーマ * FinalFantasy9 : Disc3.飛空挺ヒルダガルデのテーマ * ChronoCross : BGM59番 * DragonQuest7 : エンディングBGM * 幻想水滸伝2 : 通常バトルBGM(シンバル音) ...etc [薄いチェック] --> 本バージョンから廃止。 ------------------------------------------------------------------------ 2-4-1. [Special game fix] - SPU IRQ-Wait CPU action このオプションは数タイトルのソフトに特化しているため、常に有効にすると 他のソフトで弊害が出るかもしれません。以下のソフトで効果が見られます。 Ex.) * Valkyrie Profile * Star Osean2 * MetalGear Solid ...etc ------------------------------------------------------------------------ 2-4-2. [Special game fix] - SPU IRQ-Force interruption flag7 SPU-IRQを強制的に発生させます。以下のようなソフトで効果が見られます。 Ex.) * Valkyrie Profile * Tales of Destiny ...etc ------------------------------------------------------------------------ 3. SPUファイル出力機能 ------------------------------------------------------------------------ 3-1. 録音方法 SPUファイルとは、SPUが鳴らすサウンドを録音したものです。 SPUファイル生成手順は以下の通りです。(ePSXeの場合)  1. [Realtime config window]にて[Record]ボタンが使用可能になります。 2. 適当なタイミングで[Record]ボタンを押し、[Recroding...]を押すと録音を 停止します。 3. "..\ePSXe"に"spulog.spu"が生成されます。 * [Record]ボタンを押すタイミングによっては正常に記録されません。 ------------------------------------------------------------------------ 3-2. 再生方法 生成されたSPUファイルを再生するには、以下のいずれかを利用して下さい。 - SPU plugin for KbMediaPlayer : オープンソース - Eternal SPUPlayer : ソース非公開 これらは、http://www1.odn.ne.jp/psx-alternative/で入手可能です。 ------------------------------------------------------------------------ 4. FAQ ------------------------------------------------------------------------ Q. 最も動作の軽い設定は? A. [Default]を押して下さい(バッファサイズは各自で調節して下さい)。 Q. 最も互換性の高い設定は? A. [SPUasync]を使って下さい。 [SPUasync]を使用する際は、通常よりもバッファサイズを大きくする必要が あります。エミュレータ側のサポートが必要です。 Q. 音の減衰が実機と違う? A. 解析中です。 Q. プチノイズが生じる A. バッファサイズを現在の設定値よりも大きくして下さい。 SPUasyncを使用する際は、通常よりもバッファサイズを大きくする必要が あります。 Q. リバーブ・ノイズが実機と違う? A. v1.40以降をお試し下さい:-) Q. 動作が重い? A. 現在は保守性を保つため、ほとんど最適化していません。 Q. Windows2000で音が出ない A. このプラグインはマルチスレッドで駆動しており、スレッドの優先順位を 変更しています。現在使用しているユーザーに、スレッドの優先順位を変更 する権限があるかを確認して下さい。まずはAdministratorで直るかどうか 試してみて下さい。 ------------------------------------------------------------------------ 5. 免責等 ------------------------------------------------------------------------ このプログラムはフリーウェアですので、金銭を伴う譲渡行為は一切許可して おりません。また、このプログラムを私達の許可無しに配布(雑誌・本等への 掲載を含む)すること、無断で改変すること、商用目的で使用することはでき ません。作者は、ユーザーがこのプログラムを使った事によって受けた、 いかなる問題についても一切責任を持ちませんので、自己責任の元で使用して ください。 ------------------------------------------------------------------------------- 6. 謝辞 ------------------------------------------------------------------------------- 以下のソースコード・資料を参考にさせて頂きました。 - PeteさんのHomepageにあるSPUプラグインのインターフェース部 by Pete氏 - Snes9xのDSP部 by Gary Henderson氏 - UOMAME32jのDirectSound部 by NJ氏 - TmidityのReverb.c by Tmidityの開発者の皆様 - ADSR解析プログラム by null2氏 - リバーブタイプ"Freeverb" by Freeverbの開発者の皆様 - リバーブタイプ"Neill's" by Neill Corlett氏 - Linux版は、一部分FLTKプロジェクトの成果に基づいて作成されています。 (http://www.fltk.org) ありがとうございます。 ------------------------------------------------------------------------------- 7. クレジット ------------------------------------------------------------------------------- Eternal SPU Plugin v.1.41 for PSX Emulator Release Date : 31 May, 2003 Developed by : PSX SPU Plugin Development Project Main Crews : Iori, Takashi Yano, Gunshinn, 2510, syo, Andy Location : PSX Alternative! URL : http://www1.odn.ne.jp/psx-alternative/ Contact : Andy : Takashi Yano : Gunshinn -------------------------------------------------------------------------------- Copyright (C) PSX SPU Plugin Development Project