﻿VsyncPatch

基本的な使用方法は、VsyncPatch rev6と同じです
使用方法の詳細は、rev6のreadmeを御覧下さい

■対応OS
確認済：Windows XP SP2 32bit版
非対応：NT系のAPIを使用しているため、95/98/Meは動作不可能
動作報告有：XP64bit、Vista32bit

■対応ゲーム
東方文花帖 ver1.02a
東方風神録 ver1.00a
黄昏酒場   ver1.00a (web配布版)
東方地霊殿 ver1.00a
東方星蓮船 ver1.00b
ダブルスポイラー ver1.00a

■警告
本非公式パッチは、ゲームの内部動作を大幅に変更します
本パッチを当てると不具合がでるかもしれません
実行前にscore.dat等をバックアップすることを推奨します
また、十分に動作確認をした上でご使用ください
特に本パッチを使用した状態でリプレイを保存、公開される方はご注意ください
本パッチ適用時のリプレイに関しては、東方Projectスコアボードに投稿することはできません
リプレイをwebやuploder等で公開する場合は、VsyncPatchを使用していることを明記すると、
トラブルになりにくいかと思います
本パッチは非公式に作成したものです
公式に問い合わせないようにお願いします

■再配布
ご自由に再配布してくださってかまいません
ただし、zip内のファイルを変更・追加せず
そのままの状態で再配布をお願いします

■インストール
vpatch.exe、vpatch_th??.dll、vpatch.iniのファイルを
東方シリーズをインストールしたフォルダにコピーしてください
iniファイルは無くても一応動作します

文花帖の場合はvpatch.exeとvpatch_th095.dllとvpatch.ini
風神録の場合はvpatch.exeとvpatch_th10.dllとvpatch.ini
黄昏酒場の場合はvpatch.exeとvpatch_alcostg.dllとvpatch.ini
地霊殿の場合はvpatch.exeとvpatch_th11.dllとvpatch.ini
星蓮船の場合はvpatch.exeとvpatch_th12.dllとvpatch.ini
ダブルスポイラーの場合はvpatch.exeとvpatch_th125.dllとvpatch.ini

※パッチの動作不良で、score.dat等がおかしくなる可能性もあるかもしれません
※念のためバックアップをとってからパッチを実行するようにしてください
※また、本ツール上からはゲームのversionをチェックしていないので、
※対応しているかどうか確認してください
※vpatch.exeは、vpatchという名のつくdllを同じフォルダ内で検索し、
※最初に見つかったdllをロードします
※したがって、同じフォルダ内に別のvpatch dllがあると、うまく起動できません
※東方シリーズをインストールしたフォルダには、
※対応しているdllのみを入れるようにしてください

■アンインストール
インストール時にコピーしたexeとdll及びiniファイルを削除してください


■iniファイル
[Option]
Vsync (デフォルト=0)
　-1の場合、custom.exeで設定した垂直同期(入力のレイテンシ)の設定で動作します
　この場合、フレームレート制御はvpatchでは制御せず、本家の動作のままです
　-1以外を指定した場合は、vpatch側でフレームレート制御を行います

　0を指定すると垂直同期をせずに、描画を行います

　1を指定すると独自の方法で垂直同期をとり、描画を行います
　Gameの速度(fps)は、モニタのリフレッシュレートと同じになります
　Vsync=1にしてもティアリング(ちらつき)が発生する場合は、
　LockBackBuffer=1 と D3DMultiThread=1 と ProcessPriority=2 を設定してみてください


D3DMultiThread (デフォルト=0)
　Direct3Dをマルチスレッドで動作させた場合に発生する不具合を無くすためのオプションです
　0の場合は、何もしません
　1の場合、IDirect3D9::CreateDevice() のBehaviorFlagsに、D3DCREATE_MULTITHREADEDを指定するようにします
　このフラグを指定すると、マルチスレッドでDirect3Dを使用する際に不正終了しなくなります
　stage切り替えのところでたまに不正終了したり、
　ロードがいつまでたっても終了せず、次のstageにいけなくなったりする現象が直るかもしれません
　また、まれにタイトル画面がバグったような画面になる現象も直るかもしれません
　1を指定することを強く推奨しますが、CPU負荷が増え、フレームレートが低下する環境があるかもしれません
　LockBackBuffer=1 にする場合は、マルチスレッドでの不具合を無くすために、
　できるだけ D3DMultiThread=1 を設定してください


HookDirectInput (デフォルト=0)
　0の場合は、何もしません
　1の場合、DirectInputの処理をvpatch側で処理するようにします
　0でパッドが反応しない場合、1にすると反応するようになるかもしれません
　また、方向キーの暴走等も直るかもしれません
　2つ以上のパッドに対応し、x,y軸以外の軸や、POV(ハットスイッチ)にも対応してあります


■version履歴
2010/04/20 rev7 test1
　・ini項目更新：Vsync
　　Vsyncが-1の場合、custom.exeで設定した垂直同期(入力のレイテンシ)の設定で動作します
　　この場合、フレームレート制御はvpatchでは制御せず、本家の動作のままです
　・ini項目更新：AllowShortDelay
　　描画の遅れを取り戻す際、フレームレートを速くしすぎないようにして、
　　フレームスキップ感をできるだけ感じないようにしました
　・ini項目削除：CalcFPS
　　iniのVsyncの値が0以上の場合、常にCalcFPS=1にします
　　iniのVsyncの値が-1の場合、常にCalcFPS=0にします
　・ini項目追加：D3DMultiThread
　　Direct3Dをマルチスレッドで動作させた場合に発生する不具合を無くすためのオプションです
　　デフォルトは無効ですが、有効にすることを強く推奨します
　・ini項目追加：HookDirectInput
　　ini項目：BugFixGetDeviceState の代わりとして追加した項目です
　・ini項目削除：BugFixGetDeviceState
　・vsync on時：毎フレーム調査している、現在のスキャンライン位置の取得方法を変更
　　スキャンライン位置を正確に取得できるようにしました
　　以前は、一度スキャンライン位置の取得に失敗すると、
　　それ以降、vsyncを失敗し続けることがあったのが直ります
　・ダブルスポイラー：フルスクリーンモードの場合、撮影時にfpsが若干低下する環境があるようです
　　fpsの低下が気になる場合は、windowモードに変更すると良いかもしれません
　・rev7 testは一部作品のみの配布です
　　他作品のvpatchのリリースが遅れ、ご迷惑をお掛けしております
　　時間が取れ次第リリースします
　・これはtest版です
　　現状では作品ごとにrevが違い、非常にややこしい状態になっています
　　rev7正式版は、すべての作品に対応するまでリリースしない方針でいこうと思います
　　正式版はツールスレで配布予定です
　　フレームレート制御ライブラリの仕様を変えたため、
　　以前のrevのものをビルドしなおすだけでは対応できません
　　すべての作品のvpatchリリースはしばらく時間が掛かりそうです

2010/04/27 rev7 test2
　・風神録、地霊殿を追加
　・これはtest版です
　　rev6以前と同じhook方法は使用せず、hook方法をすべて変更し、
　　新規に作成したため、testが不十分かもしれません
　　十分注意してご使用下さい
　・本readmeに記載していないini項目は、ver履歴内で削除を明確に指摘していない限り、rev6以前のini項目も使用できます
　　ini項目等の説明は、すべてのdllを作成終了後、まとめたいと思います

2010/05/20 rev7 test3
　・文花帖、黄昏酒場を追加
　・HookDirectInput=1 を設定している場合、ゲーム終了時、まれに不正終了することがあるようです
　　修正には時間が掛かりそうなので、とりあえず後回しにします


■作者
◆swmpLV/75E

■連絡先
バグ等の御報告はこちらからどうぞ
http://ux.getuploader.com/swmplv75e/inquire

