訂正&追加大歓迎です。
※このページは2011年5月14日時点の最新版[PCSX2 0.9.8(r4600)]を元に説明します。
+ ...
↑をクリックするとこのページの一覧が開きます。

プレイ方法に書かれなかった、PCSX2本体の詳細設定を書いています。
プラグインの詳細設定はプラグイン設定で設定してください。

用語集

EE (Emotion Engine): PS2のメインプロセッサ。パソコンで言う所のCPU。内部にFPU、VU0、VU1の計3個の演算ユニットを持つ。
IOP (I/O Processor): 周辺機器とのやりとりを司るサブプロセッサ。PS1のCPUと同じ。
GS (Graphics Synthesizer): グラフィックプロセッサ。ビデオカードに相当するが、頂点処理機能はEmition Engine側に置き、プログラマブルにしている。
SPU2 (Sound Processing Unit 2): サウンドプロセッサ
FPU (Floating Point number processing Unit): EEに搭載されている浮動小数点演算ユニット。
VU (Vector Unit): EEに2系統搭載されているベクトル演算ユニット。主に3次元描画の座標変換などの頂点処理を担当し、DirectX8/9世代のビデオカードにおけるVertex Shaderに相当する。

EE/IOP

EmotionEngine:
IOP:

EE/FPU Advanced Recompiler Options

EEのFPUのリコンパイラの設定です。EEの浮動小数点演算命令を、x86系CPUにおけるSSEの浮動小数点演算命令に変換するのがリコンパイラですが、これら命令セット同士が一対一で等しく対応しているわけではないので、完全に演算結果を一致させるのは困難です。そのため、演算を細かく制御するためのオプションがここに用意されています。基本的には、演算の精度を上げてPS2実機に近づけば重くなり、逆に演算の精度を下げれば誤差は大きくなりますが軽くなります(例外もあります)。
Round Mode: 浮動小数点演算の丸めモードを指定します。
基本的にはデフォルト (Chop/Zero) のままで良いです。変更すると不具合が出る事があります。
  • Nearest:最も近い正規化数に丸めます。いわゆる2進数の0捨1入。
  • Negative:切り捨てにより丸めを行います。
  • Positive:切り上げにより丸めを行います。
  • Chop/Zero:正数の時は切り捨て、負数の時は切り上げにより丸めを行います。
Clamping Mode: オーバーフロー (無限大/NaN) のチェックと丸めの有無を指定します。
  • None:オーバーフローのチェックを行いません。速度は上がりますが互換性は低下します。
  • Normal:演算結果に対してオーバーフローのチェックを行います (デフォルト) 。
  • Extra+Preserve Sign:Normalに加え、演算前や、積和演算の中間結果に対してもオーバーフローのチェックを行います。また、NaNの符号を保存します。一部のゲームの不具合が解消される事があります。
  • Full:


Flush to Zero: 浮動小数点演算の結果がアンダーフローにより非正規化数(絶対値が非常に小さい数)になった場合、0として扱うオプションです。演算精度は下がりますが、高速になります。
Denormals are Zero: 浮動小数点演算の入力における非正規化数を0として扱うオプションです。非正規化数の浮動小数点演算はソフトウェアで行われるため、非常に低速です。そのため、0扱いすることにより非正規化数の演算そのものが発生しないようににする事ができます。

VUs

VUのリコンパイラの設定です。EE/IOPと同じオプションが並んでいますが、デフォルトの設定は異なります。こちらの設定は主にグラフィックに影響を及ぼします。オプションの意味はEE Recs Optionsと同じです。

VUのDenormals are Zeroについて
Denormals are Zero (DaZ) は現在のPCSX2ではデフォルトでオンになっています。DaZはあくまで速度向上のためのhackで、演算の精度を下げるから良くないと考える人も多いようですが、PS2のエミュレーションに限って言えばそれは誤りです。
何故かと言うと、DaZはIEEE754的に見ると確かに演算精度を下げるオプションですが、EEではそもそも非正規化数は0として扱うのが正しいので、DaZをオンにするのがエミュレーションとしては正確だからです。では、何故DaZがオプション扱いされてきたのでしょうか。それは、一部のゲームが浮動小数点の最大/最小命令を (おそらくFTOI系の命令と組み合わせて) 整数に対して使っているからです。浮動小数点の最大/最小命令は、符号が分かっていれば整数に対しても利用できます。VUの最大/最小命令は内部で純粋な論理比較を行っているらしく (Max(a, b) = Sign(a) > Sign(b) ? b : Sign(b) > Sign(a) ? a : Exponent_Mantissa(a) > Exponent_Mantissa(b) ? (Sign(a) ? b : a) : (Sign(a) ? a : b);)、浮動小数点数としては非正規化数である可能性がある整数を入力しても特に何も起こりません。一方でx86の浮動小数点最大/最小命令では、DaZがオンになっていると、問答無用で非正規化数を0にしてしまうため、整数には使えません。そこで、PCSX2での最大/最小命令のエミュレーションでは、単精度の浮動小数点数の指数部をバイアスして倍精度として扱い、単精度における非正規化数を倍精度で正規化数に見せることでこれを回避しています。

GS

主にフレームリミットの設定ができます。
Framelimiter
Disable FrameLimiting: チェックすると、フレームリミットを無効にできます。ゲーム画面でF4キーを押すとこれと同じことができます。
Base Framerate Adjust: 通常のフレームレート
Slow Motion Adjust: スローモーションのフレームレート
Turbo Adjust: ターボモードのフレームレート

NTSC Framerate: NTSCのゲーム(日本のゲームはこれ)でのFPSを指定できます。通常は59.94FPSのままで問題ありません。
PAL Framerate: PALのゲームでのFPSを指定できます。通常は50.0FPSのままで問題ありません。
Frame Skipping
Disabled: フレームスキップを無効にします。
Skip when on Turbo only: ターボモードのみにフレームスキップが有効になります。
Constant skipping: 常にフレームスキップを行います。
○ Frames to Draw: フレーム描写
○ Frames to Skip: フレームスキップ

Use Synchronized MTGS: チェックすると、マルチスレッドGS利用時に(タイミングの問題で)稀に起きる問題を解決します。
しかし結果として、速度がとても遅くなってしまう可能性があります。
Disable all GS output:

GS Window

プラグイン側で設定していた項目の一部がこちらへ移動となったようです。

Aspect Ratio: 画面のアスペクト比を設定します。4:3か16:9、Fit to Window/Screen(アスペクト固定なし)が選べます。
Custom Window Size: ウインドウモードを指定する場合、こちらでウインドウ画面のサイズを変更することができます。
Zoom: ゲーム画面を拡大・縮小することができます。
Disable windows resize border:
Always hide mouse cursour: チェックを入れると、ゲームプレイ中にマウスカーソルが隠れます。
Hide windows when paused: チェックを入れると、ゲーム中にブラウザなど他のアプリケーションを操作すると自動的にゲームがポーズ状態になります。
Default to fullscreen mode on open: チェックを入れると、最初からフルスクリーンモードでプレイすることが出来ます。
Double-click toggles fullscreen mode: チェックを入れると、ゲーム画面をダブルクリックするとフルスクリーンモードへ移行します。
Wait for Vsync on refresh: 垂直同期信号に同期して描画するかを設定します。スクロール時のちらつき等が解消されますが、描画は重くなります。
Dynamically toggle Vsync depending on frame rate:


Speedhacks

Enable speedhacks: チェックすると以下の設定ができるようになります。

EE Cyclerate: EEにおける同期処理の頻度を下げる事によって、速度を稼ぎます。1が通常の同期を行い、2が同期の頻度を1/2に下げ、3が同期の頻度を1/3に下げることができます。
フレームレート向上の効果が出易い反面、不具合が出るゲームも多く、同期のタイミングに敏感なゲームでは、フレームレートが上がっても動作がぎこちなくなる、処理落ちが発生する、固まる等の不具合が発生する可能性があります。
Enable INTC Spin Detection: 割り込みコントローラでの不要な同期処理を省く事で、高速化を行います。一部のゲームで大きな効果があります。
Enable Wait Loop Detection:
Enable fast CDVD:
Enable BIFC0 Spin Detection: 一部のゲームである程度の効果があります。
IOP x2 cycle rate hack: IOPで同期を行う頻度を1/2に下げます。
mVU Flag Hack:
mVU Block Hack:

Game Fixes

Enable manual game fixes: チェックを入れると、下のチェックボックスにチェックを入れることが出来ます。
ある特定のゲームでの動作の不具合を解消するチェックボックスです。該当するゲーム以外では基本的に使用してはいけません。

VU Add Hack: トライエース作品のゲームにおける不具合を解消します。
VU Clip Flag Hack: 「ペルソナ」の不具合を解消します。
FPU Compare Hack: 「Digimon Rumble Arena 2」の不具合を解消します。
FPU Multiply Hack: 「テイルズ オブ デスティニー」の不具合を解消します。
FPU Negative Div Hack: ガンダム作品の不具合を解消します。(ガンダム無双2のムービー再生)
VU XGkick Hack: 「Erementar Geard」の不具合を解消します。
FFX videos fix: 「ファイナルファンタジーX」の不具合(ムービー再生)を解消します。
EE timing hack:
Skip MPEG hack:
OPH Flag hack:
Ignore DMAC writes when it is busy.: