Re: [求助] 尋找有shader濾鏡功能的模擬器

作者: YuQilin (神獸)   2018-09-25 21:35:18
: 這兩個模擬器還有一個共同的問題,
: 即使暫停模擬器的運作,shader仍然會繼續畫面的運算,
: 所以GPU會一直維持在高負載的狀態。
: 有時候遊戲玩到一半,我會暫停模擬器開其他的視窗查攻略資料,
: 這時因為shader仍然在繼續運算,GPU的負擔非常重,
: 所以會拖累其他視窗的顯示效能,反應會變得相當遲鈍。
有些模擬器或遊戲不提供暫停的功能,或者是暫停時仍然繼續吃系統資源,
想了一個方法,把正在執行中的模擬器或遊戲的程序從系統中完全暫停,
等要玩的時候再恢復,就不會在暫停的時候繼續吃系統資源了。
暫停程序可以用微軟的ProcessExplorer,這是一個圖形界面的程式,
所以要暫停程式需要切換視窗加滑鼠點擊,使用上就不是非常便利,
這裡推薦用微軟的另一個命令列工具PSTools
https://docs.microsoft.com/zh-tw/sysinternals/downloads/pstools
下載後解壓縮,執行pssuspend/pssuspend64就可以暫停運行中的程序。
例如我們要暫停BizHawk的EmuHawk.exe運作
就在命令列輸入
pssuspend64.exe" "EmuHawk"
要恢復運行
pssuspend64.exe" -r "EmuHawk"
把要執行的命令在文字編輯器中寫好存成.bat批次檔,
我們加一個判斷,先偵測程序是否有在運行,
如果在運行中,將程序暫停;
如果程序已經在暫停中,則將程序恢復運行。
@echo off
:: 用tasklist指令尋找EmuHawk.exe是否運行中
tasklist /nh /fi "ImageName eq EmuHawk.exe" /fi "STATUS eq RUNNING" | find /I /N "EmuHawk.exe" >nul
:: 如果運行中,則將程序暫停,如果暫停中,則將程序恢復
if "%ERRORLEVEL%"=="0" ("pssuspend64.exe" -nobanner "EmuHawk") else ("pssuspend64.exe" -nobanner -r "EmuHawk")
點擊bat的時候會出現cmd視窗一閃而過,如果不希望出現閃退的視窗,
可以用vbs執行cmd的指令,或者另外寫一個
set ws=WScript.CreateObject("WScript.Shell")
ws.Run "批次檔的名字.bat",0
存成.vbs和.bat放在一起,點擊執行這個vbs執行就不會出現cmd視窗。
然後下載JoyToKey的最新版6.1.1
https://joytokey.net/en/download
從6.1版開始JoyToKey支援按一個手把的按鈕來啟動執行外部的程式。
選一個遊戲中不會用到,又很方便按的按鈕作為暫停按鈕,
例如右上的扳機,指定扳機開啟剛剛寫好的.vbs,
這樣當按下這個按鈕就會自動暫停或恢復EmuHawk.exe。
注意以上的批次檔或vbs的指令需要指定檔案所在的路徑,
例如你的pssuspend64.exe放在 C:\PSTools 底下的話,
就要寫"C:\PSTools\pssuspend64.exe"。
vbs的批次檔也是
ws.Run "C:\xxxx\批次檔的名字.bat",0
不然系統會找不到要執行的檔案。
作者: srwcc (老馬)   2018-09-25 21:41:00
作者: NSRC (ATB)   2018-09-26 01:49:00
...
作者: protect6090 (山茶花)   2018-09-26 12:54:00
推個
作者: conpo (獅子たちの旗)   2018-09-27 12:02:00
感謝分享

Links booklink

Contact Us: admin [ a t ] ucptt.com