變速齒輪的工作原理:在啟動“變速齒輪”後,再次啟動遊戲,遊戲向windows申請定時器時,“變速齒輪”就相應的修改了等待時間引數,因此改變了程式正常的定時(規定某個時間激發相應的功能),才使遊戲有了不正長的加速,
下面是具體的 PS:從別處特意找來的
在電腦的不斷升級換代中,我們的個人電腦處理速度越來越快.但你是否有這樣的感覺.當你玩一些很久以前的老遊戲,其執行的速度並沒有隨我們的電腦升級而變快,只是在執行一些比較大的電腦遊戲程式時,感覺沒有停頓了,更穩定了.為什麼?
如果你是一個編寫過電腦程式的人,對我下面的描述將很清楚的理解.我們在編寫一些電腦程式的時候,都會應用到一個基準時鐘.一般來說,一個CPU僅有一個這樣時鐘.比如在嵌入式微處理器裡我們所應用到的晶振,cpu在內部透過硬體的方式將這個晶振以電訊號的方式複製好些時鐘,然後由軟體設定分頻,得到我們想要的定時頻率.在個人電腦裡,同樣有這樣一個時鐘,比如我們用VB進行程式設計時,用到的是定時為1ms的基礎時鐘.無論用哪種語言進行遊戲或軟體的程式設計,都離不開我們作業系統給我們分配的僅有的時鐘,因為我們的程式設計是基於微軟的作業系統的.
程式在個人電腦執行過程中,會向操作申請時鐘,以確定自己在什麼時刻作哪些動作.則捕獲了這樣的分配時鐘,只需要在記憶體中作算術計算即可.知識補充: 軟體定時器是一種資料的累加,就拿VB作例,如果軟體想定時10ms,則給出一個10,意思是說我要在時鐘10個1ms時鐘定時中斷後作動作.微軟的基本作風是,你軟體只需要告訴我10,至於中間的累加就不用你管了,到時候聽通知.
根據上述分析,可能在兩方面下手,一.改變基準時鐘,這在微處理器程式設計時是很容易做到的.但是在個人電腦裡,就不那麼容易了,因為它被微軟給封裝成獨立的子程式了.很難. 二,根據程式的名稱在記憶體中找到與之相對應的定時請求,然後根據使用者的需要更改這些數值,比如剛才的例子,現在減速一半,則根據程式的名稱找到系統給設定的定時記憶體(變數),給每個變數乘以2.索引條件是程式的名稱.這樣剛才是定時10ms動作,現在20ms才能動作了.
能夠得逞的原因在於現在的很多軟體都是透過高階語言且基於微軟的作業系統而編寫的,其定時中斷記憶體分配是有特定的規律的.如果採用彙編來編寫,且不是面向微軟作業系統的.,就會失效了.
變速齒輪的工作原理:在啟動“變速齒輪”後,再次啟動遊戲,遊戲向windows申請定時器時,“變速齒輪”就相應的修改了等待時間引數,因此改變了程式正常的定時(規定某個時間激發相應的功能),才使遊戲有了不正長的加速,
下面是具體的 PS:從別處特意找來的
在電腦的不斷升級換代中,我們的個人電腦處理速度越來越快.但你是否有這樣的感覺.當你玩一些很久以前的老遊戲,其執行的速度並沒有隨我們的電腦升級而變快,只是在執行一些比較大的電腦遊戲程式時,感覺沒有停頓了,更穩定了.為什麼?
如果你是一個編寫過電腦程式的人,對我下面的描述將很清楚的理解.我們在編寫一些電腦程式的時候,都會應用到一個基準時鐘.一般來說,一個CPU僅有一個這樣時鐘.比如在嵌入式微處理器裡我們所應用到的晶振,cpu在內部透過硬體的方式將這個晶振以電訊號的方式複製好些時鐘,然後由軟體設定分頻,得到我們想要的定時頻率.在個人電腦裡,同樣有這樣一個時鐘,比如我們用VB進行程式設計時,用到的是定時為1ms的基礎時鐘.無論用哪種語言進行遊戲或軟體的程式設計,都離不開我們作業系統給我們分配的僅有的時鐘,因為我們的程式設計是基於微軟的作業系統的.
程式在個人電腦執行過程中,會向操作申請時鐘,以確定自己在什麼時刻作哪些動作.則捕獲了這樣的分配時鐘,只需要在記憶體中作算術計算即可.知識補充: 軟體定時器是一種資料的累加,就拿VB作例,如果軟體想定時10ms,則給出一個10,意思是說我要在時鐘10個1ms時鐘定時中斷後作動作.微軟的基本作風是,你軟體只需要告訴我10,至於中間的累加就不用你管了,到時候聽通知.
根據上述分析,可能在兩方面下手,一.改變基準時鐘,這在微處理器程式設計時是很容易做到的.但是在個人電腦裡,就不那麼容易了,因為它被微軟給封裝成獨立的子程式了.很難. 二,根據程式的名稱在記憶體中找到與之相對應的定時請求,然後根據使用者的需要更改這些數值,比如剛才的例子,現在減速一半,則根據程式的名稱找到系統給設定的定時記憶體(變數),給每個變數乘以2.索引條件是程式的名稱.這樣剛才是定時10ms動作,現在20ms才能動作了.
能夠得逞的原因在於現在的很多軟體都是透過高階語言且基於微軟的作業系統而編寫的,其定時中斷記憶體分配是有特定的規律的.如果採用彙編來編寫,且不是面向微軟作業系統的.,就會失效了.