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

1234下一页
我的人缘0

[求助] 关于两种鼠标加速去除方法的研究和疑问

34 34112
楼主
跳转到指定楼层
发表于 2011-11-24 13:27 只看该作者 倒序浏览 阅读模式
本帖最后由 zhuangkun 于 2011-11-25 02:18 编辑

可以说我是入了魔了  研究了3个小时。。。。。。。。。。。。 我的系统是XP 19LCD

第一种方法 是国内一名叫YYP的玩家去年自己制作的注册表 http://baike.baidu.com/view/4359154.htm 详细的内容在百度词条里有 这位玩家很激动 在CS贴吧里大喊 为中国CS界作出了贡献。并对传统的 双参数提出疑问当然引来人喷。。。。。。。。http://tieba.baidu.com/p/892342518?pid=9757761292&cid=0#9757761292
http://tieba.baidu.com/p/892342518?pid=9757761292&cid=0#9757761292这里的第18楼他解释说自己的方法是将加速值设置为0来去除加速 所以使用此注册表之后 开不开控制面板的精度都一样   但是 !!但是!问题来了
经过我一晚上的实验 使用此注册表后如果不开精度选项 鼠标的启动能力明显大于开了精度选项。。。。。。简单说就是鼠标很好控制 准星从静止到移动很流畅 但是如果把精度选项勾上。。。。。。。明显有点迟缓 而且即使你加快了鼠标速度 那种迟缓感觉挥之不去。。。。。。。。我用双参数法对比了下 发现关掉精度选项后手感和双参数法相近  确实没有加速(这个我用尺子和YYP百科里的检测方法试验过了)而且启动不迟缓 那么就是说YYP对他方法的解释是错误的。。。。。。但错在哪里 我才疏学浅。。。。。

也希望高手解答

第二个方法 叫MARKC补丁法       http://bbs.5eplay.com/forum.php?mod=viewthread&tid=8011这是详解(这个详解十分强悍 没有20分钟的空闲时间的话大家请无视) 从DPI 屏幕HZ  系统 回报率等等高端的方面进行多方面去除加速 据此帖说这是最完善的方发了 此方法的特点是 注册表修改并且可以在精度选项开启的时候完全去掉加速     这个补丁生成器我下载后使用发现和YYP的一样的问题存在  打开精度选项后鼠标启动迟缓 就是**迟缓!!!!感觉挪不动 细小的操作无法体现 我专门对比了 鼠标在桌面上晃动 高频率细小的晃动体现很不明显 在游戏里即使提高游戏速度也感觉不好(你们懂的)

我果断放弃了这个MARKC补丁法。
弄了一晚上 我头都大了 都是去鼠标加速 差别咋这么大呢?

经过我细心论证 发现在COD这哥不能用双参数去除鼠标加速的游戏里 想完全去出加速并且没有鼠标启动迟缓的方法是 !使用第二个方法并且在选择系统刷新率选项上选择60HZ(是毕竟第二个方法是国外大神作品 有理有据让人信服 和国内的对比 问题小的多毕竟那个国内的 自己的解释都是由错误的) 并且在COD游戏里把画面刷新率调到60HZ  (有兴趣的可以和我讨论QQ953097555)。。。玩COD的可以试试 至于 MARKC补丁百度有下 而且提供注册表恢复功能   
0
已赞
微信分享 收藏
回复

使用道具 举报

我的人缘0
推荐
发表于 2011-11-24 20:59 只看该作者
本帖最后由 xmiangui 于 2011-11-24 22:04 编辑

再讲一下CS的三参,我以前写过分析,不过太繁琐了,这次尽量讲的简洁一点。

CS 1.6和之前版本用的HL1引擎(GoldenSource引擎)早就开源了,源代码可以从开源社区上下载。看源代码很容易就能理解三参数的作用, 看C代码可比汇编容易多了。

首先讲使用Windows API控制鼠标平滑函数的三个参数,这部分微软的API技术文档里是公开的,百度百科的那篇鼠标加速度里也有。MouseSpeed、MouseThreshold1、MouseThreshold2。他们不仅仅是保存在注册表里的一个键值,更确切的来说,他们是Windows鼠标API的三个参数,注册表就相当于游戏里的存档,开机从注册表里读取这三个参数。而游戏时可以修改这三个参数(但不修改注册表)的,就好比打了游戏没存档,游戏关了三个参数就会恢复。

CS在初始化游戏的时候,会把这三个参数重置为(1,0,0),不加CS启动三参就是这个效果,有加速度。

插一段八卦:HL1引擎这么做的原因是,据说三参这样设置以后,Win NT 4以前的内核效果是:鼠标移动速度2倍化,无加速度。呵,当初可是为了去加速度才搞的这么一出。(当然,NT 5.1以前的内核反汇编程度远不如XP,这种方法在当时是否正确我个人也是怀疑态度。)显然,对XP和以后的操作系统这种方法就大错特错啦,这也是曾经流行过98比XP适合打CS这种说法的原因之一。结合这一段就可以看出LZ纠结的第一种方法为什么不对了吧,很多国内资料把98内核和XP以后内核的鼠标处理方法混淆在一起了。

回归主题,现在重头戏来了,加了三参又是什么效果呢?可以看这段CS鼠标初始化的代码:

/*
===========
IN_StartupMouse
===========
*/
void IN_StartupMouse (void)
{
        if ( gEngfuncs.CheckParm ("-nomouse", NULL ) )
                return;

        mouseinitialized = 1;
        mouseparmsvalid = SystemParametersInfo (SPI_GETMOUSE, 0, originalmouseparms, 0);

        if (mouseparmsvalid)
        {
                if ( gEngfuncs.CheckParm ("-noforcemspd", NULL ) )
                        newmouseparms[2] = originalmouseparms[2];

                if ( gEngfuncs.CheckParm ("-noforcemaccel", NULL ) )
                {
                        newmouseparms[0] = originalmouseparms[0];
                        newmouseparms[1] = originalmouseparms[1];
                }

                if ( gEngfuncs.CheckParm ("-noforcemparms", NULL ) )
                {
                        newmouseparms[0] = originalmouseparms[0];
                        newmouseparms[1] = originalmouseparms[1];
                        newmouseparms[2] = originalmouseparms[2];
                }
        }

        mouse_buttons = MOUSE_BUTTON_COUNT;
}


也就是说,这三个启动参数就是控制不重置哪些加速度参数:
-noforcemaccel:不重置MouseThreshold1和MouseThreshold2
-noforcemspd:不重置MouseSpeed
-noforcemparms:不重置加速度全部三个参数

这下能看懂参数名字的意思了吧,-noforcemaccel就是不重置(noforce)鼠标(m)的加速度阀值参数(accel),-noforcemspd就是不重置(noforce)鼠标(m)的MouseSpeed参数(spd),-noforcemparms就是不重置(noforce)鼠标(m)所有三个参数(parms)。

有的人比较敏锐,说加了三参,我觉得CS还是有加速度呀!是的,CS由于引擎所限,至少还有2个地方会影响鼠标移动,而且我估计也是无解的:

第一个,就是我前面提到过的指针回归中点。解释一下,为什么FPS游戏准星永远在中间?因为引擎会不断刷新指针让它回到中点,这可以理解为一种负加速度。
第二个,CS的默认FOV(可视角度)是90,横向、纵向都是,但显然你的显示器不是正方的。所以横向纵向移动总是不太一致。

这两者我个人认为是没啥解决方法,虽说可以修改FOV,但又会让人觉得怪怪的。只能说现在新的游戏引擎发展会解决这类引擎带来的问题。
不过,现在的游戏讲究的是真实性……只会有更多的因素让你瞄不准,比如现在的游戏,枪口会随机飘动,比神马直线修正的可厉害多了……

好,讲一下结论:

  • 100%有效去除操作系统加速度的方法:用XP操作系统,用3楼的那个补丁,重启,无视那些杀软的报警。骨灰玩家可以使用哦,老子就是玩游戏,Win7杀软都滚一边去~
    我上面为什么要黑体“操作系统加速度”呢?比如有的游戏为了提高真实性会故意在游戏里加入自己的加速度,这个就和操作系统无关了,也没有通用的去掉的方法。这种情况下面也不会不讨论。
    1
  • 比较靠谱的方法,用MarkC的那个补丁生成自己使用环境的reg文件,导入注册表,马上重启。保证以后显示器都是一个刷新率(比如液晶的60Hz),基本不会有什么问题。
    注意:这个方法仅对Windows当前用户有效,当然一般人也不会再自己个人电脑上建一堆用户还切换着玩游戏。
    2
  • 三参仅适用于CS,其他游戏参数不会故意去和CS搞得一样,自然加三参就无效了。有了三参其实不用reg文件也没问题,CS已经没操作系统给的加速度了。
回复 支持 1 反对 0

使用道具 举报

我的人缘0
2
发表于 2011-11-24 13:47 只看该作者
不懂- - 我就感觉 -noforcemaccel -noforcemparms -freq 75 -32bpp 比3参数好用一些了。 比较慢。
回复 支持 反对

使用道具 举报

我的人缘0
3
发表于 2011-11-24 14:25 只看该作者
本帖最后由 saeko 于 2011-11-24 14:26 编辑

注册表补丁一向是不灵的。只不过是让加速变得不快了而已。
想去加速可以用这个存在感很低的补丁:http://razerblueprints.net/index ... nt/80-AccelFix.html(限于XP,win7下不清楚)
回复 支持 反对

使用道具 举报

我的人缘0
4
发表于 2011-11-24 15:42 只看该作者
注册表还是有用的 不信可以自己实验  有种简单的方法可以判断是否开启加速度:鼠标一般放在键盘右边,先让鼠标紧靠着键盘右侧,记住当前屏幕上指针或准星所在的位置。以很慢的速度向右移动鼠标一段距离,然后以很快的速度将鼠标回靠到键盘右侧。这时有3中情况:   1、指针在水平方向回到了原来的位置,说明没有加速度,而且你的鼠标性能很好没有丢帧。   2、指针里原来的位置还差一点点,说明没有加速度但你鼠标有丢帧的现象。   3、鼠标超过了原来的位置,而且一般还超过不少(大约1倍),说明有鼠标加速。
回复 支持 反对

使用道具 举报

我的人缘0
5
发表于 2011-11-24 15:44 只看该作者
我是玩 COD的 COD无法用双参数  关于COD如何完全去加速 已经有点心得
回复 支持 反对

使用道具 举报

我的人缘0
6
发表于 2011-11-24 16:29 只看该作者
又见这个老掉牙的问题。这个东西研究得太深就越来越纠结。
最简单的办法,你就看世界上的知名选手用的最多的前几种方案,自己挨个试验,
选择最适合自己的可以了。   

不要走火入魔啊。呵呵!
回复 支持 反对

使用道具 举报

我的人缘0
7
发表于 2011-11-24 16:54 只看该作者
世界选手。。。。。我打CS是双参数的 但是打 COD很迷茫 因为不是用的罗技的鼠标没有驱动选项 而且COD也不提供双参数。。。。。因为YINXING不一样  并且在系统管关闭加速状态下依然开加速(这点倒是和XP下CS一样) COD也不支持2000系统。。。。。。。。所以想大道和CS一样的手感 必须使用注册表。。。。。。。。。。
回复 支持 反对

使用道具 举报

我的人缘1
8
发表于 2011-11-24 17:10 只看该作者
期待LZ给力研究成果。
我已经淡定了,至少是适应现在的现状了,不需要更多的了解加速什么的了。
回复 支持 反对

使用道具 举报

我的人缘0
9
发表于 2011-11-24 17:13 只看该作者
测试
不要为鸡毛蒜皮的事费神费力
回复 支持 反对

使用道具 举报

我的人缘0
10
发表于 2011-11-24 17:16 只看该作者
{:1_001:}
回复 支持 反对

使用道具 举报

1234下一页
高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则