本帖最后由 mariofans 于 2019-5-20 14:58 编辑 现在的问题还在缩放上,我只用了纯缩放,只要在关卡中用上缩放总会把58~59帧降到28以下 在标题或者家中移动时基本不掉帧,一旦进入关卡中事件比较多的时候掉帧就很严重 这时候去掉处理直接让SRC原路返回的话又能回到58帧以上 (我用了类变量实现随时变更的缩放)
起初怀疑仍是处理的时间长,就调查了一下处理时间,从640x480到1280x960也就花了0.002 然后怀疑是Set_Bitmap的问题,但无论@@dest_bitmap存在与否Set_Bitmap都会执行,难道是大图转换的时间长? 然后我又记录了Set_Bitmap的时间,发现也是0.00x 然后我又不知道问题在哪里了 |
20190520142602.png (703.53 KB, 下载次数: 33)
标题
20190520142615.png (141.34 KB, 下载次数: 38)
关卡
QQ图片20190520145757.png (764.5 KB, 下载次数: 31)
QQ图片20190520145802.png (138.39 KB, 下载次数: 34)
本帖最后由 SixRC 于 2019-5-17 11:29 编辑 mariofans 发表于 2019-5-16 23:51 最新情况 用下面这个 RGSS103J.dll 就行了 改了rm创建堆栈时的参数 现在默认有内存执行权限了 兼容性好 // 已经搞定了 在点评 下面是昨天的 // 收到 现在睡觉了 明天早课 我下课看 我看了下 你在原生exe基础上改的话应该不会出错吧? 假如那样 我现有的猜测是 ruby申请的内存是读写的也就是不可执行的 原game.exe可能注册了异常处理函数 在执行没有执行权限的内存时会改内存权限 可以试试把CCBBSS_CODE的内存权限改下 ( virtualprotect 啥的) 或者用你编译的exe 在脚本里试试 code=[0xC2, 0x10, 0] # ret 10h 然后 CallWindowProc 看看会不会挂? (字符串地址=[code].pack("p").unpack("l")[0] 或者api里用p直接传) 我觉得没啥地方能出错了 假如觉得麻烦的话就等我下 我想了想又觉得不是这个问题 因为平时也没遇到过这种事情 完全是我脑补出来的 算了 明天看到再说 或者和程序的默认堆栈属性有关 感觉我要起不来了 |
本帖最后由 mariofans 于 2019-5-17 14:08 编辑 SixRC 发表于 2019-5-16 16:12 是基于这个改编的(测试这个也会挂) 汇编层面的东西我就不了解了。。。 |
mariofans 发表于 2019-5-16 12:44 你用动态调试器打开运行下看看挂在哪了? 因为出异常的话会优先给调试端看 不会马上挂的 然后就能清楚为什么会挂了 可能是空指针 写入超出范围啥的 肯定有原因的 分析下基本能看出来 我感觉应该不是我这边的问题 我改了dll 只换exe理论上没问题 我不知道你改了啥 不好猜测 要不你发一份exe给我我晚上分析一下? 我现在有事在外面 |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-22 14:54
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.