■ 設定解説
何も問題がなければ、通常は全部チェックしてください。
■ 基本設定
・サムネイルを表示する
DWM、またはDirectXのサムネイルを拡大してコピーウィンドウに表示します。
ウィンドウサイズを変えるだけで描画サイズが自動で変わるゲームの場合
「描画サイズが変わった内容をさらにSandBurstで拡大する」と2重に拡大してしまうので、チェックを外してください。
・ウィンドウサイズを変更する
対象のウィンドウのサイズを拡大率に合わせて変更します。
ウィンドウサイズを変更せずにサムネイルを表示した場合、本来のウィンドウからはみ出た部分はマウス入力が出来ません。
マウスが必要なゲームは必ずチェックしてください
・タスクバー領域分の位置を調整
ゲームウィンドウを中央表示した場合、表示位置をタスクバー領域分ずらします。
・拡大サイズをタスクバーまでに制限
ゲームウィンドウがタスクバーまでに収まるように拡大を制限します。
■ マウス補正
・ウィンドウメッセージをフックして補正
ウィンドウプロシージャをフックし、以下の場合、カーソル位置を補正ます。
・WM_MOUSEMOVE
・WM_LBUTTONDBLCLK
・WM_LBUTTONDOWN
・WM_LBUTTONUP
・WM_MBUTTONDBLCLK
・WM_MBUTTONDOWN
・WM_MBUTTONUP
・WM_RBUTTONDBLCLK
・WM_RBUTTONDOWN
・WM_RBUTTONUP
・SetCursorPos APIをフックして補正
カーソル位置を変えるAPIです。
チェックするとこれが呼び出されたときにカーソル位置を補正します。
・GetCursorPos APIをフックして補正
カーソル位置を取得するAPIです。
チェックするとこれが呼び出されたときにカーソル位置を補正します。
・ClipCursor APIをフックして補正
カーソル位置の移動範囲を制限するAPIです
チェックするとこれが呼び出されたときに移動範囲を補正します。
■ ウィンドウ補正
・MoveWindow APIをフックして無効化
・SetWindowPos APIをフックして無効化
・SetWindowPlacement を無効化
3つともウィンドウの位置とサイズを変えるAPIです。
チェックするとこれが呼び出されても無効化します。
・GetWindowRect APIをフックして補正
枠を含むウィンドウのサイズを取得するAPIです。
問題が無ければオフにしてください。
GetClientRectを補正せずにこれだけ補正すると、不具合が出る場合があります。
・GetClientRect APIをフックして補正
ウィンドウの描画領域のサイズを取得するAPIです。
ツクールVXなどのウィンドウサイズによって描画がゲーム側で拡大される場合、
これを有効にするとゲーム側での拡大を防ぎます。
・WM_SIZEを補正
WM_SIZEメッセージを補正します。
GetWindowRect、GetClientRectを補正しても拡大がダメな場合、これでうまくいくことがあります。
・WM_WINDOWPOSCHANGINGを補正
WM_WINDOWPOSCHANGINGメッセージを補正します。
一部のゲームではこれをしないとウィンドウが拡大できません。
・子ウィンドウサイズを変更する
拡大対象のウィンドウ(親)が持っている子ウィンドウのうち、
親ウィンドウの全体を覆っている子ウィンドウのサイズを変更します。
吉里吉里2やLiveMakerなどはこの設定が必須です。
■ その他補正
・スクリーンショットをフックして補正
GetDC、ReleaseDC、BitBlt の3つのAPIをフックします。
デスクトップのスクリーンショットを取ろうとした場合、
BitBlt呼び出し時に、ソースにデスクトップのDCではなく対象ウィンドウのDCに差し替えます。
対象ゲームがスクリーンショットを取ってそれをゲーム内に描画する場合、
ゲームがSandBurstで拡大された画像を取得 → ゲームがそれを描画 → SandBurstがそれを拡大
と2重に拡大されるのを防ぎます。
・DirectXをフックして補正
IDirect3DDevice9->Present() を補正します。
今のところD3D9だけ対応しています。
D3D8やDDrawは対応していません。
■ フック箇所
・WOW64
バージョン1.5からの新機能です。
WOW64のシステムコールをフックします。
アプリケーションの最も深い部分をフックするため、
パッカー、プロテクター、セキュリティソフトによりAPIを繋ぎかえられた場合でもSandBurstで補正が可能になります。
64bit Windowsの専用機能です。
・WinAPI
バージョン1.5より前の方法です。
32bit Windowsでも動作しますが、パッカーによるAPIの繋ぎ代えには対応してません。
■ 描画モード
・DWM
高速、低負荷で拡大できます。Windows Areoが必須です。超推奨
・DirectX
Windows Areo無しでもDWMと同じ画質の拡大ができます。
ただし、DWMより5~10倍程度処理が遅くなります
グラフィックボード(ビデオカード、GPU)がゲームのウィンドウサイズより大きい2のN乗のテクスチャサイズに対応している必要があります。
(例 640 * 480 のゲームなら 1024 * 1024 のテクスチャサイズ) 1024 = 2の10乗