风色幻想sp吧 关注:831贴子:18,390
  • 8回复贴,共1

风色幻想SP窗口化和减速心得

取消只看楼主收藏回复

让瞬移帝依莉丝重新学会走路的研究


1楼2011-04-16 19:45回复
    最近有一些同学问起来,我也研究过这个问题,但一直没时间写出来。
    先分析风色幻想SP为什么会过快,有人归结为CPU太给力,其实本质上来说,是DirectX执行的效率太高了,而且游戏程式本身没有做Frame限制,就出现了这个情况。
    简单的说,就是FPS太高了,我这边测出的结果是,正常情况下的FPS能飙到500以上,太快了。有的同学可能会说,垂直同步,不过遗憾的是,WFSP软硬不吃,我试了N台电脑,垂直同步都是无效告终。
    要从根本上解决这个问题,只能反编译了这个游戏重写Frame Limit的部分,但是我们不是FY内部人员,没有源码和工具,显然不太现实。
    官方给的cpugrab,在i5 i7横行的今天,也逐渐失效了,我自己这边调到95都没什么效果。所以下面来介绍一个新的限速软件Bandicam。
    cpugrab是通过占据CPU的性能,来使DirectX执行的效率下降,让系统没有剩余的运算能力来处理,使FPS下降,所以在单核的CPU上,你拉到95,那CPU就会被他占用掉95%。
    Bandicam本身是一个视频录制软件,但也自带FPS限速功能,他是通过filter,直接作用在directx区域,限制区域FPS,本身所消耗的系统资源是很少的,但是效果很明显。
    下面这张图,是针对风色幻想SP进行的设置:

    注意最好先打开Bandicam,再执行窗口化游戏。
    你可以看到限制FPS有热键,可以在游戏中随时开启和停止限速,另外Bandicam的限速功能只能作用在窗口模式下,这个后面会说到。
    接下来进行窗口化,还是用大家都熟知的D3Dwindower,怎么用就不详说了,添加程序进去,右键就可以选择设置和执行。下面贴一下,我个人的设置:

    顺便说一下,勾选上最上方管理,可以让游戏后台运行,比如敌方回合时杂兵加状态很慢,你就可以tab切出来,聊天上网都可以,敌方行动完了切回去,至少我这里是OK的。
    这样设置就基本上完了,在D3D里右键执行就可以正常游戏了。
    现在还有几个不能很好解决的问题。
    1、全屏下怎么不能限速。
    楼主同学没能找出好办法来,研究了一下原因,怀疑是游戏使用的DirectX版本实在是太老了(个人怀疑是DX6),导致限速软件不能识别支持,而用D3D 窗口化,等于使用一个DX7的环境来挂载,所以就能被识别了。目前看来,除非另外找到一个能支持更老版本DX的FPS限速软件或者Bandicam的作者进一步支持了老版本DX,否则暂时是无解的,希望其它的同学也能不吝提出一些建设性的意见来解决这个问题,所谓一人技短,三人技长。
    2、窗口化分辨率是640X480,能不能弄成800X600或者1024X768的窗口来玩。
    这又是个难解的问题。作为一个2D游戏,WFSP的输出画面原始比例就是640X480,拉大窗口也没用,徒增黑边,我一直没找到过WFSP修改输出分辨率的办法。强制拉伸重绘效果很烂没法用,我怀疑原始分辨率是写死的,就算是正常全屏游戏时也是靠显卡来进行的缩放,不是游戏程序本身的支持。目前想弄成 800X600之类的窗口,我现在能想到的只能是用一个虚拟机的窗口来实现,但是这样有些麻烦。
    3、640X480窗口在高分辨率的屏幕上实在太小,没办法玩,但又想限速怎么办。
    这里有一个不算办法的办法,既然它不能放大,你就缩小吧,把整个屏幕分辨率调到800X600或者1024X768,就可以用了,只要注意一点,显卡的显示设置里要选到保持纵横比。另外就是改小分辨率可能会把你桌面上的图标搞乱,要先准备好,桌面图标不要太多。
    暂时就先写上面这些,想到再补充。
    上面的问题都是我遇到的,不代表你也会遇到。上面的办法我这是行之有效的,但不代表所有人都能成功。这个帖子不是教程贴,不负责解决各种疑难杂症。
    上面只是个人的一点心得写出来交流,希望对大家有帮助,也希望大家能帮助我解决疑惑。


    2楼2011-04-16 19:48
    收起回复
      2025-06-10 23:32:13
      广告
      Bandicam和D3Dwindower我也会打包发一份到公用邮箱里,需要的自取。
      邮箱账号:wfsp2010@qq.com
      邮箱密码:wfsp2010


      3楼2011-04-16 19:59
      收起回复
        纯属测试,降速后的运行效果参考。
        手头没存档,从邮箱里翻的,结果进去发现蕾妮妹子已经奄奄一息,马上就要进剧情,只好到处散步……

        录制下来发现又降了几帧,这下走的更慢了==
        


        8楼2011-04-18 16:51
        回复
          老玩家都知道,2000年这个游戏刚出的时候,在win98+奔腾II底下玩,差不多就是视频里这样一个速度,是最原始的正常标准。把速度降下来只是为了更好的怀旧。
          我不知道你所谓的“正常”标准是什么样的……也不知道你从哪里找的什么补丁,如果你拿不出来令人信服的东西来,就不要在我的帖子里妄加评论。
          


          17楼2011-06-22 01:05
          回复
            检查wfsp.exe的属性,是不是勾了不该勾的。
            你把D3D里面现成的条目砍了,重新添加一次程序。
            实在不行你把全局钩子给勾上再执行,就是那个三角形的播放按钮,点一下。
            最后的最后,确定一遍D3dHook.dll的路径已经正确填写。
            没见过WFSP没办法窗口化的先例,我自己更是没碰到过,所以只能凭经验泛泛的说一说,解决不了也就解决不了了,我也无能为力


            21楼2011-06-23 14:03
            回复
              鼠标的速度可能和画面渲染没有关系……
              不过我记得魔导圣战的有鼠标补丁,玩家自制的,好像是把鼠标用全局钩子挂起来用的。
              我找一下……哦……在这儿:
              http://hi.baidu.com/jiaohang/blog/item/284d27548962ca193b293531.html
              可以互相配合使用。
              


              30楼2011-10-23 21:52
              收起回复
                风色幻想SP减速和窗口化研究(完全版)已经完成,提供了更加全面的减速和窗口化方法。
                如果你使用本贴的方法遇到问题,又或想实现更多的功能,如:全屏下减速,等等。
                请参考:http://tieba.baidu.com/p/3628589973


                55楼2015-03-11 01:03
                回复
                  2025-06-10 23:26:13
                  广告
                  我刚才下了个WF1试了下,没发现你说的问题。
                  ffmpeg是你自己系统里装的解码器的dll...和WF1大概没啥关系,WF1开发的时候,ffmpeg还没出来呢...
                  WF1也没视频动画,最多一点音频播放可能调用到ffmpeg,这个可能要你自己去解决了。
                  你可以试试wav文件和cda文件不要让ffmpeg来播放,直接让windows调用wmp,这样问题可能可以解决。
                  顺便我看了下,WF1说的最多的那个鼠标问题,这个问题和WFSP速度过快不一样。
                  DxWnd可以不完美的解决这个问题,到输入标签底下钩上保持光标固定,这样鼠标就不会到处乱跑了。
                  缺点是存档读档的时候,鼠标不会自动移动到菜单按钮上。完美解决没时间看,就先这样吧。


                  57楼2015-03-12 01:17
                  回复