来自在运动仿真器方面,似乎最合逻辑的拉动点是车辆的悬架。速度,质量,障碍物,操控性等……已经由游戏计算得出,并且将悬架反映出来应该是一个非常可信的体验。
听起来可行吗?之前有没有人尝试将现实游戏机与现有游戏机配对?任何经验或对此有何见解的见解将不胜感激。
从我对该项目进行的研究来看,最困难的部分似乎是在游戏已经编译的情况下从游戏内事件中获取实时信息。我的希望是,有一些用于调试的现有触发器或可能存在的控制器反馈。另外,围绕游戏的汇编代码级别版本进行探测以插入对外部脚本的调用的机会是什么?我意识到完全可以反编译为高级语言的可能性是99%,再也无法在这种复杂的游戏中使用了。
感谢您在正确方向上所做的有益贡献...
#1 楼
不知道我是否以正确的方式,但是想在游戏中将模拟汽车的物理反馈创建到您的真实座椅/驾驶舱,然后从那里驾驶。 (类似于飞机硬件模拟器)驾驶
应该很容易,只需使用操纵杆和一些键盘消息插入器(或真正的黑键盘) )。我想你已经知道如何做这部分了。
反馈
我将创建一些拥有游戏进程的启动应用程序,这样我就可以完全访问它的记忆。然后,我将跟踪分配给它的所有内存块,扫描是否有周期性变化,然后将其绘制为一些视频叠加层,然后玩游戏以查看哪些块正在根据您在游戏中所做的变化而变化。
好方式还可以记录内存块,以备以后检查,一旦您找到了可以保存模拟汽车参数的存储位置的候选者,然后尝试修改它们,以查看是否与游戏速度,方向匹配...
您还需要一些块的ID,以便在其中查找特定的模式,以便即使重新分配(或重新启动游戏)也可以找到相同的块。 DLL的
如果GAME将任何DLL用于物理模拟等特定任务,那么您很幸运,可以创建包装DLL,该DLL具有与原始DLL相同的接口。因此,创建DLL,它将仅调用原始DLL的调用,再加上一些日志记录,以便您看到所需的内容(类似于项目符号2)。一旦确定了您的需求,就可以轻松地将您的驾驶代码插入其中。很长一段时间,所以我对现在的工具一无所知。当时我最喜欢的工具是Windows 9x,nt,w2k,xp的DLPORTIO驱动程序。它可以完全访问从IO到内存的所有内容,无一例外...
如果游戏将玩家作为一个复杂的类,那么您可以尝试在内存中搜索玩家的名字,并在其位置四处寻找所需的参数
评论
这个有趣的项目,我自己喜欢逆向工程旧游戏。我认为最好的选择是使用您的这种设备来模拟键盘或游戏控制器的输入。那将只需要重定向几个系统调用。我认为反编译GTA5这样的大型3A游戏几乎是不可能的。您可能正在研究一个包含6至1千万行C ++代码的项目,因此即使您拥有源代码,也很难做到这一点...