在Windows中,有一個用於Flash遊戲的工具,稱為作弊引擎它可以將進程加快/減慢 X 倍,從而使遊戲中任務所需的時間比現實世界中的速度更快或更慢。這對於基於時間的遊戲特別有幫助,這些遊戲會讓你等待 X 時間才能完成建築物、完成收穫等等......這也適用於你需要它們放慢速度的遊戲,這樣你就可以防禦多個敵人(殭屍遊戲等)或遊戲,其難度在於完成某件事的速度。
但這並不限於基於網頁的 Flash 遊戲。 Cheat Engine 還可以加速/減慢其他遊戲的速度(半條命、雷神之鎚 3 等)。
有沒有辦法在 Ubuntu 中做到這一點?
這是速度駭客我指的是使用 Windows 中的「Cheat Engine」工具,它實際上是 99.99% Cheat Engine 用戶使用 Cheat Engine 的選項:
我應該要提到的是,我並不是在尋找一種每毫秒暫停一次進程的方法(例如減慢 Firefox 或 Chrome 的速度,而不是減慢 Flash 遊戲的速度)。例如,減慢 Firefox 的速度是行不通的,因為它還會減慢其他所有內容的速度,因此它不會是速度駭客,而是會減慢整個過程,包括使用者的所有操作。基本上一切都會一樣,只是速度慢一點。加快進程也是如此。
我正在尋找一種方法來對基於 Web 的 Flash 遊戲和/或 Wine 模擬遊戲執行此操作。
答案1
簡短的回答,不。沒有用於進程調度的 2x 按鈕。您能做的最好的事情就是使用 cgroup 來處理您感興趣的內容,以獲得更多 CPU 時間,但會犧牲另一個進程。如果我必須猜測的話,speedhack 之所以有效,是因為它透過操縱快閃記憶體運行時來完成其業務,或者只是將其稱為虛擬機器。這並不是說它加速了程序,而是改變了整個虛擬機器所基於的基本參數。我想 Java 或 Python 之類的東西也可以實現同樣的效果。
哦,好吧,我想你將不得不繼續在 Windows 上的 Farmville 中作弊。恥辱。
答案2
這些可能有助於減慢進程,但不會加快進程...
1)SIGSTOP和SIGCONT:
該kill
命令可以向具有給定 pid 的進程發出 aSTOP
和 a信號。CONT
我之前用它來「暫停」和「限制」Python 腳本,並且它可以很好地實現此目的。
以下是 bash 腳本中的範例(將相關進程的 PID 作為命令列參數傳入):
PID=$1
while true; do
sleep 0.5
kill -s STOP $PID
sleep 0.5
kill -s CONT $PID
done
這些睡眠(以秒為單位)需要減少到較小的量才能減少抖動,但更大的間隔使其對於測試來說更加明顯。
一旦您對特定的間隔感到滿意,您就可以使用變數來調整睡眠比例。
2) 另一個可能的限制是「cpulimit」:
sudo apt-get install cpulimit
將 Firefox 限制為 30% CPU:
cpulimit -e firefox -l 30
答案3
我會建議幾件事。如果它確實是farmville/在網上玩的東西(正如ppetraki建議的那樣),我相信一種途徑是通過greasemonkey路線(它是一個允許運行所有基於javascript的腳本的平台,以允許在所有級別上進行更進階的調整瀏覽器/頁面渲染的。同樣,我很快地閱讀了所有其他答案,令人驚訝的是沒有看到任何人提到葡萄酒http://www.winehq.org/documentation。
更具體地說,如果普通的 wine 不起作用(我能夠讓它工作,最好嘗試 32 位元),也不會失去所有希望,因為這聽起來像是 Wine 擴展/附加組件的完美候選者'esque程序,'Wine-Hacks',它提示用戶逐步安裝滿足特定要求/等的各種軟體...(如果傳統的wine 配置不起作用,這是一個非常簡單的途徑)。這是一個有趣的困境,重要的是要記住,Linux 一般來說為用戶提供了一個更大的平台來定制,並在各個級別上調整各種進程/線程/等......但是,大量的閱讀通常來自它。從較低層次的角度來看,如果遊戲使用進程間通信,則可以調整套接字上的速度(“vmstat”/“top”/“ps”/“ss”命令只是 Linux 提供的一小部分)雖然它的學習曲線/易用性不會那麼小,但這些工具是分析進程級活動/記憶體管理的開始。
但是,抬頭看看你的圖像,我自己下載了該應用程序,了解了該應用程序的工作原理,以及它正在讀取內存位、掃描內存地址/等等的事實……它迴避了它正在做的事情,在低級別上調整內存/進程間通信(但是按照這條路線,您將創建自己的黑客版本的“Cheat-Engine”,它可以很容易地使用gdb(gcc-debugger,開發人員)來完成/安全工具,因為執行這些類型的任務是開發人員工作的常見部分,以更好地衡量應用程式的工作方式/其整體性能。的記憶體/排序同樣可以,Wine 場景可以工作,我簡單地嘗試了一下(但是,我不知道你玩的目標遊戲是什麼,哈哈!!)。
總而言之,為了讓我們清楚,一種方法是重新調整 Linux 中的進程/進程線程(任務)/並使用實用程式/或偵錯器定位各種記憶體位址和進程間/套接字通訊中使用的位元(已經提到過)。然後,另一種更基本的方法是利用「Cheat-engine」本身的邏輯,在非Windows 環境中,透過將其與Wine 一起安裝,當Wine 運行應用程式時,並在其中的進程/執行緒中管理它,因此它是如果程式在 Windows 本身中運行。 Wine 程式存在於我見過的所有特定於 Ubuntu 的發行版中,「'apt-get'/'aptitude'」 用於安裝 Wine)。此外,另一個用於調試/調整基於 Flash 的遊戲等的工具是 Flashbug(Firebug 的變體,就像 Mozilla 中使用的 Greasemonkey)祝你好運,歡呼!
答案4
我意識到這是一個老問題,但我找到了一個可以改變程式運行速度的工具,至少在理論上是如此。很多東西似乎不是不受影響,就是改變了幀速率,但實際的遊戲速度卻沒有改變。無論如何,這是:
https://github.com/evg-zhabotinsky/libspeedhack
預先建置的二進位檔案現在可以在https://github.com/evg-zhabotinsky/libspeedhack/releases/並且應該適用於大多數系統。檢查自述文件以了解如何使用該工具。我所說的「工作」是指工具本身,仍然可能對您的特定遊戲沒有幫助,如果是這樣,則不太可能修復。