变速齿轮的工作原理:在启动“变速齿轮”后,再次启动游戏,游戏向windows申请定时器时,“变速齿轮”就相应的修改了等待时间参数,因此改变了程序正常的定时(规定某个时间激发相应的功能),才使游戏有了不正长的加速,
下面是具体的 PS:从别处特意找来的
在电脑的不断升级换代中,我们的个人电脑处理速度越来越快.但你是否有这样的感觉.当你玩一些很久以前的老游戏,其运行的速度并没有随我们的电脑升级而变快,只是在运行一些比较大的电脑游戏程序时,感觉没有停顿了,更稳定了.为什么?
如果你是一个编写过电脑程序的人,对我下面的描述将很清楚的理解.我们在编写一些电脑程序的时候,都会应用到一个基准时钟.一般来说,一个CPU仅有一个这样时钟.比如在嵌入式微处理器里我们所应用到的晶振,cpu在内部通过硬件的方式将这个晶振以电信号的方式复制好些时钟,然后由软件设置分频,得到我们想要的定时频率.在个人电脑里,同样有这样一个时钟,比如我们用VB进行编程时,用到的是定时为1ms的基础时钟.无论用哪种语言进行游戏或软件的编程,都离不开我们操作系统给我们分配的仅有的时钟,因为我们的编程是基于微软的操作系统的.
程序在个人电脑运行过程中,会向操作申请时钟,以确定自己在什么时刻作哪些动作.则捕获了这样的分配时钟,只需要在内存中作算术计算即可.知识补充: 软件定时器是一种数据的累加,就拿VB作例,如果软件想定时10ms,则给出一个10,意思是说我要在时钟10个1ms时钟定时中断后作动作.微软的基本作风是,你软件只需要告诉我10,至于中间的累加就不用你管了,到时候听通知.
根据上述分析,可能在两方面下手,一.改变基准时钟,这在微处理器编程时是很容易做到的.但是在个人电脑里,就不那么容易了,因为它被微软给封装成独立的子程序了.很难. 二,根据程序的名称在内存中找到与之相对应的定时请求,然后根据用户的需要更改这些数值,比如刚才的例子,现在减速一半,则根据程序的名称找到系统给设定的定时内存(变量),给每个变量乘以2.索引条件是程序的名称.这样刚才是定时10ms动作,现在20ms才能动作了.
能够得逞的原因在于现在的很多软件都是通过高级语言且基于微软的操作系统而编写的,其定时中断内存分配是有特定的规律的.如果采用汇编来编写,且不是面向微软操作系统的.,就会失效了.