外设天下 - 电脑外设发烧友聚集地

我的人缘0
11
发表于 2011-9-28 21:38 只看该作者
本帖最后由 xmiangui 于 2011-9-28 22:58 编辑

为什么我能确定使用注册表补丁能去掉系统加速度?

当然,使用修改系统内核的fix自然能保证没有加速度。但是,有多少人能看懂那个小fix到底对你的系统干了什么?那可以直接修改二进制文件也,只是作者告诉我们这么修改二进制文件的作用是跳过指针平滑函数。

所以首先,到底有没有系统加速度我只能根据一个假设,所有的结论都是在这个假设下得出:
鼠标位移堆栈中的数据是鼠标通过USB回报给计算机的原始位移,操作系统函数做的一切修改只体现在指位移中,而不修改鼠标位移堆栈。
这个假设有可能是错的吗?当然有可能,如果你认为微软还会偷偷的修改鼠标位移堆栈,加上点可爱的加速度什么的……不过,如果你这么怀疑,我也完全有理由怀疑USB控制器会不会给你的每个USB数据包加个“加速度”、或者那个修改系统内核的小fix有没有偷偷加上些“负加速度”神马的。这事情就没法讨论了,至少从我知道的来看,微软没有这么干。


然后,使用MouseMovementRecorder(MMR)之类的软件可以通过调用系统函数获得鼠标位移堆栈和指针位移的数据。
如果你无聊同时开了2个MMR的话,你会发现两者获取到的鼠标位移和指针位移数据是一样的,不同的是显示的刷新率。这是因为2个程序读取的都是同样的堆栈(鼠标位移和指针位移),而刷新率则是通过程序内置的毫秒计时器计算出来的,程序运行时有差异,自然也不相同。

这样可以确定一点,MMR之类的软件读取堆栈数据还是有效的。然后可以发现,使用(1)修改内核或者(2)MarkC补丁或者(3)单纯关掉“提高指针精确度”这三种方法都可以实现桌面上没有加速度,确切点说是在鼠标速度6/11的情况下鼠标位移和指针位移1:1相同。

最后,说一些例外情况
1、指针移动到屏幕边缘,指针位移就不能在变化,这时候会导致MMR显示绿色(指针位移小于鼠标位移,红色相反)
2、指针移动到可交互对象上(比如窗口边缘),此时指针位移会有延迟,和鼠标位移不同,导致MMR显示红色或者绿色3、CS这类射击游戏会不停地把准星移动到屏幕正中间,然后调整玩家看见的3D世界,所以准星永远不会像指针一样跟着鼠标到处走。MMR里自然也会有规律的有不相同的数据(可以一定程度上的由此判断是否是准星归位),当然准星归位也不是没有影响,也可以认为是一种负加速度(说不定这就是CS负加速度一说的来源?)。
3、你的电脑很卡,有延迟……这种情况很少见,也许重启就好了。
回复 支持 反对

使用道具 举报

我的人缘0
12
发表于 2011-9-28 21:40 只看该作者
8# xmiangui 总算是看懂了大神的高见,只要用MARKC,还必须勾选EPP是吧?参数就不用了
回复 支持 反对

使用道具 举报

我的人缘0
13
发表于 2011-9-28 21:41 只看该作者
本帖最后由 xmiangui 于 2011-9-28 21:51 编辑
xmiangui兄弟,我想请问一下为什么不建议修改系统内核?
八眼田鸡 发表于 2011-9-28 21:35


因为一般碰到的修改操作系统基本都不会修改内核。
比如我改注册表、Windows设置,其实改的都是设置文件。比如我装一个IE内核的浏览器,其实只是调用IE而已,不会去修改IE的可执行文件。比如我装一个IE插件,其实只是IE在调用插件而已……
反倒是流氓软件、病毒木马什么的喜欢改系统文件,甚至内核文件,当然这个软件恰好不是。

而且杀毒软件一般都会将这类直接修改内核的方式当作威胁,至少老报毒让我很不爽(呵呵),比如用VirusTotal扫一下accelfix这个小程序:
Xp下的鼠标加速是无法完全去除.但可以用accelfix.exe这个软件可以减轻加速度的状况
74%的杀软报毒,其实这东西是没毒的,但很容易被启发式杀毒引擎报。
回复 支持 反对

使用道具 举报

我的人缘0
14
发表于 2011-9-28 21:42 只看该作者
本帖最后由 xmiangui 于 2011-9-28 21:44 编辑
8# xmiangui 总算是看懂了大神的高见,只要用MARKC,还必须勾选EPP是吧?参数就不用了
Zigo 发表于 2011-9-28 21:40


不用,因为MarkC说构造出来的指针平滑表已经是直的(成不变的正比)。当然习惯性还是去掉勾的,包括Win7下MarkC生成器自己生成的注册表文件也是去掉的。
回复 支持 反对

使用道具 举报

我的人缘0
15
发表于 2011-9-28 22:01 只看该作者
测试
谢谢大神指导~那是不是修改了内核之后,任何游戏启动时都无法把Mousespeed设为1了?
回复 支持 反对

使用道具 举报

我的人缘0
16
发表于 2011-9-28 22:02 只看该作者
本帖最后由 伯德 于 2011-9-28 22:04 编辑

XP系统只要去了EPP加-noforcemparms-noforcemaccel就可以了吗
回复 支持 反对

使用道具 举报

我的人缘0
17
发表于 2011-9-28 22:06 只看该作者
问一下Markc 生成补丁里 屏幕刷新率该怎么设定
我的桌面刷新率是85HZ、 CS游戏刷新率是100HZ
Markc里是选 85还是100 Xp下的鼠标加速是无法完全去除.但可以用accelfix.exe这个软件可以减轻加速度的状况
回复 支持 反对

使用道具 举报

我的人缘0
18
发表于 2011-9-28 22:19 只看该作者
测试
我只能说楼主你要多加努力了!

另外膜拜一下大神。
一拜到地了在此。
回复 支持 反对

使用道具 举报

我的人缘0
19
发表于 2011-9-28 22:24 只看该作者
14# xmiangui
高人那      能不能帮忙看下   CF是哪种鼠标数据读取方式呢            谢谢了
回复 支持 反对

使用道具 举报

我的人缘0
20
发表于 2011-9-28 22:49 只看该作者
测试
本帖最后由 xmiangui 于 2011-9-28 23:11 编辑
谢谢大神指导~那是不是修改了内核之后,任何游戏启动时都无法把Mousespeed设为1了?
八眼田鸡 发表于 2011-9-28 22:01


不是不能改,而是设置为1、2也不生效

XP系统只要去了EPP加-noforcemparms-noforcemaccel就可以了吗
伯德 发表于 2011-9-28 22:02


对,不放心还可以自己测试一下,不过比较难看……

1、设置好、重启以后先开MMR,再进CS
2、随便建立一个游戏(只有建3D游戏才第一次初始化鼠标),进去动几下准星
3、切出去看MMR,肯定会有几个指针位移和鼠标位移不一致的,那是因为CS这类射击游戏会不停地把准星移动到屏幕正中间(貌似是跟着刷新率来)。除此之外应该不会有指针位移和鼠标位移不一致的情况

不过我上面也说了,不是很好看,因为有准星归位的干扰。至少在我自己的XP和Win7上试下来不不勾“提高指针精确度”再加上“-noforcemparms”或“-forcemspd”就是没有加速度的。
当然准星归位也不是没有影响,也可以认为是一种负加速度(说不定这就是CS负加速度一说的来源?)。



问一下Markc 生成补丁里 屏幕刷新率该怎么设定
我的桌面刷新率是85HZ、 CS游戏刷新率是100HZ
Markc里是选 85还是100
gxt2004 发表于 2011-9-28 22:06


这个真不清楚,我一直游戏和桌面同刷新率的。你可以试试100,然后用上面的方法看看游戏里有没有加速度。
以前的确没考虑过这种情况,也许这种情况下改内核的accelfix比较有用(当然我也没试过)……虽然我个人是不太能接受改内核。

单单对CS来说,参数加好,提高指针精确度去掉,平滑表是不生效的,其实也就不用纠结这个了。


14# xmiangui
高人那      能不能帮忙看下   CF是哪种鼠标数据读取方式呢            谢谢了
wql31416 发表于 2011-9-28 22:24

鼠标移动一般都是调用系统函数实现的,系统里去加速度了,游戏里也不会有。
但是有些游戏会因为真实性或者物理引擎神马的故意让准星移动不是线性的,就好比有的游戏里狙击准星自己会晃一样,这类游戏的“加速度”当然操作系统是去不掉的。

回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则