Project1

标题: RMXP强制开启等待垂直同步以及平滑模式 [打印本页]

作者: fux2    时间: 2014-3-14 08:42
标题: RMXP强制开启等待垂直同步以及平滑模式
本帖最后由 fux2 于 2014-3-14 12:41 编辑

功能如题,使用范围并不广泛,有需自取

注意仅对最新汉化的RGSS103J.dll生效,大概就是论坛提供下载的版本,当然这个名字你可以自己在第一行末尾修改
(懒得从ini读
我这里的dll MD5:23D70D88CAFA21EF836F1B7CE85F6F9B
理论上只要编译姿势一样,即使自己修改过dll,也是可以用的。

将以下代码插入到Main上方。

RUBY 代码复制下载
  1. tempa = Win32API.new("kernel32", "GetModuleHandle", "p", "l").call("RGSS103J.dll")
  2. tempb = Win32API.new("kernel32", "RtlMoveMemory", "lpi", "v")
  3. tempc = Win32API.new("kernel32", "VirtualProtect", "lllp", "i")
  4. tempd = 0.chr * 4
  5. tempe = "\xC7\x86\x5C\x01\x00\x00\x01\x00\x00\x00\xEB\x0D\x90"
  6. tempf = "\x33\xC0\x40\x89\x86\xEC\x00\x00\x00"
  7. tempg = tempa + 0x00002A82
  8. temph = tempa + 0x00015524
  9.  
  10. if tempa!=0
  11.   if tempc.call(tempg, tempe.size, 0x40, tempd)!=0
  12.     tempb.call(tempg, tempe, tempe.size)
  13.     tempc.call(tempg, tempe.size, tempd.unpack("L").first, tempd)
  14.     if tempc.call(temph, tempf.size, 0x40, tempd)!=0
  15.       tempb.call(temph, tempf, tempf.size)
  16.       tempc.call(temph, tempf.size, tempd.unpack("L").first, tempd)
  17.     end
  18.   end
  19. end
  20. tempa = tempb = tempc = tempd = tempe = tempf = tempg =temph = nil
  21. GC.start

作者: Im剑侠客    时间: 2014-3-15 01:26
恕我愚钝,未看出能有何功效,能详细解释一下吗?
作者: 电子最终龙    时间: 2014-3-15 01:46
Im剑侠客 发表于 2014-3-15 03:26
恕我愚钝,未看出能有何功效,能详细解释一下吗?

限制幀數防止跳幀,模糊化畫面降低鋸齒。

——話說回來LZ乾脆把三重緩衝也做出來算了吧|||
某種意義上圖片量超大的遊戲還是會用到的【大霧
作者: lanyaolove    时间: 2014-3-15 15:35
表示没看出效果 RM也没垂直同步 从论坛下载的RGSS103J的MD5和LZ的也不相同
0F5B746AE4E5CAA2ACD7D750DC6E30FB
作者: 赛露休斯    时间: 2014-3-17 00:17
没搞懂这个是做什么效果的,我测试了一下,感觉画面没变清晰、速度也没见流畅
作者: fux2    时间: 2014-3-17 07:36
赛露休斯 发表于 2014-3-17 00:17
没搞懂这个是做什么效果的,我测试了一下,感觉画面没变清晰、速度也没见流畅 ...

看来是我没有说清楚吗,RMXP的游戏F1菜单里默认抑制画面抖动是关闭的,强制打开这一项以及平滑模式。
作者: 赛露休斯    时间: 2014-3-17 17:39
fux2 发表于 2014-3-17 07:36
看来是我没有说清楚吗,RMXP的游戏F1菜单里默认抑制画面抖动是关闭的,强制打开这一项以及平滑模式。 ...

原来如此,我这边下载的RMXP默认就勾上了那两项
作者: fux2    时间: 2014-3-17 19:24
赛露休斯 发表于 2014-3-17 17:39
原来如此,我这边下载的RMXP默认就勾上了那两项

那是因为你并不是在计算机上第一次运行RM游戏,第一次只要改过就会留在注册表里。
作者: Im剑侠客    时间: 2014-3-17 23:08
一语惊醒梦中人,呵呵@_@
作者: orzfly    时间: 2014-3-19 21:15
本帖最后由 orzfly 于 2014-3-19 21:16 编辑

快来用我这个: http://orzfly.com/html/rgssruntime.html
作者: Sion    时间: 2014-3-20 21:10
orzfly 发表于 2014-3-19 21:15
快来用我这个: http://orzfly.com/html/rgssruntime.html

为什么你这个比他的长好多
作者: orzfly    时间: 2014-3-21 13:56
Sion 发表于 2014-3-20 21:10
为什么你这个比他的长好多

补丁地址的搜索是脚本完成的,因此可以适用于各种 RGSS 版本和 DLL。而楼主的只能适用他那一种。与此同时,我这个还能在运行时对选项控制。

TL;DR 楼主是手动找地址的,我是自动找地址的。
作者: eve592370698    时间: 2014-3-24 20:47
赛露休斯 发表于 2014-3-17 00:17
没搞懂这个是做什么效果的,我测试了一下,感觉画面没变清晰、速度也没见流畅 ...

亲身体验:如果脚本优化得不好,其实用这个也起不到多大作用。
我做了一个菜单,也不知道哪里优化出错了,即使用了这个脚本,FPS还是跌到个位数。
作者: scgjgj999    时间: 2014-6-18 00:42
初来乍到,学习过留下脚步,祝福作者,辛苦谢谢教程!




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1