VsyncPatch

{IȎgp@́AVsyncPatch rev6Ɠł
gp@̏ڍׂ́Arev6readme䗗

ΉOS
mFρFWindows 7 64bit
vistaȏΉ(xpȑO͔Ή)

ΉQ[
` ver1.00b

x
{pb`́AQ[̓啝ɕύX܂
{pb`𓖂Ăƕsł邩܂
sOscore.datobNAbv邱Ƃ𐄏܂
܂A\ɓmFłgp
ɖ{pb`gpԂŃvCۑAJ͂ӂ
{pb`Kp̃vCɊւẮAProjectXRA{[hɓe邱Ƃ͂ł܂
vCwebuploderŌJꍇ́AVsyncPatchgpĂ邱Ƃ𖾋LƁA
guɂȂɂƎv܂
{pb`͔ɍ쐬̂ł
ɖ₢킹Ȃ悤ɂ肢܂

Ĕzz
RɍĔzzĂĂ܂܂
Azip̃t@CύXEǉ
̂܂܂̏ԂōĔzz肢܂

CXg[
vpatch.exeAvpatch_th??.dllAvpatch.inĩt@C
V[YCXg[tH_ɃRs[Ă
init@C͖Ăꉞ삵܂

`̏ꍇvpatch.exevpatch_th15.dllvpatch.ini

pb`̓sǂŁAscore.datȂ\邩܂
Ô߃obNAbvƂĂpb`s悤ɂĂ
vpatch.exéAvpatchƂ̂dll𓯂tH_ŌA
ŏɌdll[h܂
āAtH_ɕʂvpatch dllƁA܂Nł܂
V[YCXg[tH_ɂ́A
ΉĂdll݂̂悤ɂĂ

ACXg[
CXg[ɃRs[exedllyinit@C폜Ă


init@C
[Option]
Vsync (ftHg=0)

@0w肷ƐɁA`s܂
@fpsň肳邱ƂłɁAeBAO()\܂

@1w肷ƓƎ̕@ŐƂA`s܂
@Gamȇx(fps)́Aj^̃tbV[gƓɂȂ܂
@Vsync=1ɂĂeBAO()ꍇ́A
@FlushGpuCmdBuffer=1  D3DMultiThread=1  AutoBltPrepareTime=1  ProcessPriority=2 ݒ肵Ă݂Ă
@OS̐ݒŁAdvuptH[}XvɂȂĂȂꍇ́AuptH[}XvɂāA
@CPUNbNቺȂ悤ɐݒ肵Ă݂Ă



FlushGpuCmdBuffer (ftHg=0)

@1ɂƁAʂXV钼OɁAGPŨR}hobt@IɃtbVAGPUɕ`施߂𑗐M悤ɂ܂
@LockBackBufferƂ悭IvVł
@LockBackBuffeřʂꍇ́ALockBackBuffeȓFlushGpuCmdBufferĂ



LockBackBuffer (ftHg=0)

@1ɂƁAʂXV钼OɃobNobt@bNAׂĂDirect3D`施߂̊ҋ@܂
@vsync=1ɁAeBAOł́ALockBackBuffer=1ɂ邱ƂŐvsyncs悤ɂȂ邩܂
@LockBackBuffeřʂȂꍇ́AFlushGpuCmdBufferĂ



BltPrepareTime (ftHg=0)

@ۂɉʂɕ\鉽~b(ms)OɁA
@ʂɎ̃t[`悵n߂邩w肵܂
@0`16̐w肵Ă

@FBltPrepareTime=10w肷ƁA10msOɃQ[[v(`)JnAႦ3ms1t[`łꍇ́A
@c7mssleepĂAK̎ɉʂXV܂

@1t[`悷鎞Ԃ͂܂܂Ȃ߁A߂̎ԂBltPrepareTimeɐݒ肷ƁA
@vsync=1̎ɃeBAOȂ邱Ƃł܂

@vsync=0̎́ABltPrepareTime=0ł܂܂񂪁A߂̎Ԃݒ肷邱ƂŁA
@Ɉ̃YŉʍXVsƂł܂
@vsync=0Ȃ̂ŃeBAO͔܂AɓYŃeBAO悤ɂȂ邱ƂŁA
@ʂ₷Ȃ邩܂@@̑͒xBltPrepareTimeɐݒ肵lɂȂ܂

@Ⴆ΁AȇV[ł̓Q[[v(`揈)5msȏォ̂ŁABltPrepareTime4ɐݒ肵ƂĂA
@͒x5ms݂܂̂ŁABltPrepareTime̐ݒő͒x͎0ł
@BltPrepareTime̒l̕Â܂ܓ͒xK킯ł͂܂

@ŋ߂OSł́AGPŨR}hobt@͉ʂXVۂɃtbV悤ɂȂĂ邽߁A
@ʂXVOsleepĂAGPUɖ߂MꂸɖׂɎԂ₷ł
@BltPrepareTimeݒ肵Ă͒x`x邾Ōʂ͂܂
@BltPrepareTimeݒ肷ꍇ́AFlushGpuCmdBuffer1ɂċIGPŨR}hobt@tbV悤ɐݒ肵Ă



AutoBltPrepareTime (ftHg=0)

@0w肵ꍇ́A܂
@1w肷ƁA`抮Ԃ̓vAœKBltPrepareTimeŃZbg܂
@AutoBltPrepareTime1ȏɂƁA̒l̃~bAZoꂽlɉZ܂
@AutoBltPrepareTimeݒ肷ꍇ́AFlushGpuCmdBuffer1ɂĂ(BltPrepareTimẽwvɏRƓł)
@vsync=0̎́AAutoBltPrepareTime=0ł܂܂
@vsync=1̎ɁAAutoBltPrepareTime=1𐄏܂



D3DMultiThread (ftHg=1)

@Direct3D}`Xbhœ삳ꍇɔs𖳂߂̃IvVł
@0̏ꍇ́A܂

@1̏ꍇAIDirect3D9::CreateDevice() BehaviorFlagsɁAD3DCREATE_MULTITHREADEDw肷悤ɂ܂
@̃tOw肷ƁA}`XbhDirect3DgpۂɕsIȂȂ܂

@vsync=1̎ɂ́AXLC̈ʒu𒲍XbhN邽߁ÃIvV̐ݒ肪Kvł



FixSlowPauseScreen (ftHg=1)

@1w肷ƁAQ[Aꎞ~ʂ\ۂfps啝ɒቺ铮Cpb`𓖂Ă܂
@start{^AłĂA炭60fpsL[vłƎv܂
@pb`̏ڍׂ͉L̒ʂł
@ꎞ~ʂ𐶐ہAeNX`[̐FϊD3DX֐gpĂA
@̓]ɃobNobt@ڎw肳Ă܂
@D3DX֐͓]SurfaceLockăsNZ𒼐read悤Ȏ̂悤ł
@obNobt@LockĒread̂͂ƂĂxfpsُɒቺ܂
@pb`ł́AobNobt@̓eCɗpӂSurfaceɃRs[A
@̃Rs[Surfaceɓ]ƂĎw肵D3DX֐call܂
@CɗpӂSurfaceLockread͂ƂĂɓ삷邽߁A
@fps̒ቺ͂x܂(CPU&GPU̐\ɍE)



DisableChecksum (ftHg=0)

@̎st@Cłth15.exẽ`FbNTmF邩ǂ̐ݒł
@1ݒ肷ƁA`FbNTmFvpatchKpAN܂
@ʏ͂̃IvVύXKv͂܂
@̎st@Cɉ炩̔pb`(pb`Espb`)𓖂Ăꍇ́ÃIvV1ɂĂ
@1ɐݒ肵ꍇAvpatchɓ삷邩ǂ͂킩܂
@vpatchKpłȂꍇ́A܂AQ[̃o[WΉverł邩ǂmFĂ



ProcessPriority (ftHg=0)
@th??.exẽvZX̗Dxݒ肵܂
@0 : ʏ
@1 : ʏȏ
@2 : 
@3 : A^C

ProcessAffinityMask (ftHg=0)
@th??.exẽvZX̊֌W(AtBjeB)ݒ肵܂
@l10iŏĂ
@CPURAɊ֌Wtꍇ͑ZĂ
@Őݒ肵lSetProcessAffinityMask֐ɓn܂
@0 : ݒȂ(ׂẴvZbT)
@1 : CPU 0
@2 : CPU 1
@4 : CPU 2
@8 : CPU 3
@16: CPU 4

MainThreadPriority (ftHg=0)
@th??.exẽCXbh̗Dxݒ肵܂
@0 : ʏ
@1 : ʏȏ
@2 : 
@3 : ^CNeBJ

MainThreadAffinityMask (ftHg=0)
@th??.exẽCXbh̃vZX̊֌W(AtBjeB)ݒ肵܂
@ݒ@ProcessAffinityMaskƓł

MainThreadIdealProcessor (ftHg=-1)
@th??.exẽCXbhǂCPURAŗDIɎŝݒ肵܂
@Őݒ肵lSetThreadIdealProcessor֐ɓn܂
@-1 : ׂĂCPURA
@0 : CPU 0
@1 : CPU 1
@2 : CPU 2
@3 : CPU 3
@4 : CPU 4







version
2015/11/28
@E`ɑΉ
@E`ȊOɑΉvpatch͓Ă܂
@Einiǉ:FlushGpuCmdBuffer
@@vsync=1̎LockBackBuffer=1ŃobNobt@bNĂ茳̊ł͌ʂ߁A
@@obNobt@bNɁAGPŨR}hobt@flushʂ̕@܂
@Einiǉ:MainThreadPriority
@Einiǉ:MainThreadAffinityMask
@Einiǉ:MainThreadIdealProcessor
@@CXbh֘A̐ݒǉ܂
@@vsync=1̍ۂɂ́AvZXsCPURAŒ肵eBAOɂƎv܂
@@Œ肷̂̓CXbhł悢߁AProcessAffinityMaskŐݒ肷AMainThreadAffinityMaskMainThreadIdealProcessorŌŒ肷Ɨǂł傤
@Einiǉ:FixSlowPauseScreen
@@640x480̏ꍇ͋CɂȂ܂񂪁A1280x960ʂ̏ꍇAꎞ~ʕ\fps啝ɒቺ̂CɂȂ̂Ŏ܂
@Eini:MagnificationMethod͍͎łĂ܂
@Em̃oOFFlushGpuCmdBuffer=1ɂătXN[ŃQ[ہAfXNgbvɖ߂ĂAQ[ɖ߂낤ƂƃQ[ł܂(ُ͈I)
@@Cɂ͏Ԃ܂
@@Ƃ肠FlushGpuCmdBuffer=0ɂ邩Awindow[hŃQ[邩Aǂ炩̑I



swmpLV/75E

A
oǑ񍐂͂炩ǂ
http://ux.getuploader.com/swmplv75e/inquire
