Blader - 2023/6/13 15:03:32
先上載點
https://www.mediafire.com/file/079j30w7r3udy1e回應版主要求做的東西, 做了最少的改動
雖然文件名改了, 但內部程序名沒改
結果因為內存區域大小不足和顯示地址問題
而改了兩個源代碼文件, 但內存大小又不能太大
本來兩個地址段都設定SIZE=10000000
結果不能hook模擬器, 後來改8000000才終於可以用
另外因無法定位實際地址300000000和330000000
所以定位鏡像地址400000000和430000000
一個限制, 模擬器每次打開只能運行一個遊戲
要運行其他遊戲請重開模擬器, 否則hook不到模擬器!
银河漫步 - 2023/6/14 16:19:20
晚上回家试试:strong:
银河漫步 - 2023/6/14 20:00:15
无法正常的获取到
其实根本不用去用到hook
直接识别从300000000开始或者400000000开始就好
另外300010000之前的部分其实不能省略
因为内部指针是包含了这部分地址的
否则只能做偏移
银河漫步 - 2023/6/14 20:11:54
虽然对RPCS3的内存机制还不熟悉
但有效内存肯定不能只定义一段
以第三次机器人大战Z 时狱篇 为例
第一段内存有效:
300000000-300FDFFFF
其中
300000000-300010000
显示为??,其他游戏也是
但是这段内存应该不能省
也就是说不能从
300010000开始算起
这和PS2其实一样
PS2的有效内存其实不是从
40000000开始的
而是从
40048000开始的
只是前面这一段没显示??而已
第三次机器人大战Z在修改的时候
中间还有几段有数据的内存但是没什么用
但是最后一段内存很有用
我估计其他游戏也一样
那就是从
3D0001000-3D0100FFF
这一段是堆栈缓存段
是否每个游戏都是这么大不清楚
如果每个游戏都这么大
那这一段可以作为游戏的第二段有效ram
银河漫步 - 2023/6/14 20:16:42
比如当你在游戏里对地图单位按X键查看单位信息的时候
可以通过内部的指针地址数据
获取到相关机师的数据
机体的也可以这样获取到
而这个一级指针的堆栈
就存储在
3D0001000-3D0100FFF这段地址上
银河漫步 - 2023/6/14 20:19:30
所以我觉得在不清楚内存机制的前提下
最好是把
300000000-3FFFFFFFF都涵盖在地址里
或者
400000000-4FFFFFFFF
Blader - 2023/6/14 20:57:01
1. 我只對編譯有興趣而不是編程, 基本上改成這樣已經是極限
2. 內存地址和範圍無法直接指定
我相信模擬器本身也沒有直接在源代碼寫明0x300000000這個地址
應該是用了某個方法定址, 但我看不懂所以無解
3. 這工具一旦內存段範圍太大會影響使用, 卡成狗了簡直
基於這幾點, 我認為應該另請高明
不是我不幫忙, 是我能力不足無法幫忙
我基本沒學過編程, 雖然喜歡模擬器
卻沒有熱衷到會為此學習, 以上請版主諒解
測試的時候只用了OGMD, 所以不能用我很抱歉
沒想到其他遊戲居然用不到, 看來真不能只是隨便改改
银河漫步 - 2023/6/15 0:00:53
没事
我也只是想想能不能改
其实用CE也没什么问题
只是因为反序问题内部指针不好处理而已