引用原作者王荣的解释:
Q:开发变速齿轮的起因是什么?
A:开发变速齿轮主要是因为自己打游戏的水平比较差,希望能有一个完美的游戏修改工具,于是就决定自己编写一个。开发过程中我认为修改游戏速度是游戏修改工具的重要功能之一,但是我却始终没看到基于Windows系统的变速工具,因此我就先开发出了变速功能,既现在的变速齿轮。而最初想开发的游戏修改工具则最终没有编写完成。
Q:能向广大读者介绍一下“变速齿轮”的工作原理吗?
A:当然可以。当游戏运行在不同配置的电脑上时,如果你想得到游戏相同的运行速度(如赛车每秒行驶50米),那么就需要使用某种方法来获取时间信息,然后根据这个时间来调整游戏运行速度。只要让游戏得到的时间比真实时间更快或更慢,那么游戏运行速度也随之能得到增减。 由于Windows下的应用程序不能像DOS那样直接访问硬件寄存器,因此得到时间的唯一方法就是通过调用Windows应用程序编程接口(API)来实现。只要能修改这些API,那么所有Windows应用程序的速度都可以实现加快或减慢,而且这种方式对游戏的兼容性也非常好。
Q:开发变速齿轮过程中是否遇到过技术难题?
A:开发过程中最大难题就是如何去修改这些API。修改API时,我采取的是修改内存中指令的方法,但由于Windows系统对内存进行了保护,无法轻易对内存中的指令进行修改。当时我曾试图编写一个设备驱动程序来实现,但由于没到找到设备驱动程序开发工具包,只能作罢。实现修改API的另一个问题是,由于Windows系统是多线程的,如果API的截取进行到一半时,另一个线程再次调用这个API,那么就会使Windows崩溃(死机)。在没有任何技术资料可以参考的情况下,我通过使用SoftICE(一款著名的内核级调试工具)一点点摸索,最终解决了问题。最后使用的方法是强行禁止中断。由于线程的切换是在中断中进行,因此禁止了中断也就禁止了线程切换。来源 变速齿轮作者王荣前辈_代码小卒_新浪博客
免责声明:文章内容来自互联网,本站仅提供信息存储空间服务,真实性请自行鉴别,本站不承担任何责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:《变速齿轮》的技术原理是什么,为什么可以改变操作系统的速度?-变速齿轮原理图 https://www.bxbdf.com/a/145313.shtml