ps2游戏静态修改教程

您所在的位置:网站首页 ps2游戏转ps4pkg教程 ps2游戏静态修改教程

ps2游戏静态修改教程

2023-12-25 00:02| 来源: 网络整理| 查看: 265

前言

说实话静态修改老早在2020年就出现了,我们这个奥特曼格斗进化修改圈子早在2015年甚至更早就出现了,我叫DEE哥可以认为是中国奥格界修改始祖(国外的不知道)不过那时候全是动态修改没有人考虑过静态修改,这是什么原因呢?首先静态修改有一段非常悠久的历史,早在2003年这个阶段已经出现了这个hack iso这样的名词,那为什么这项技术会失传呢?我也不清楚,但是现在游戏修改圈子看来明显动态修改出现的次数更多,静态修改体现的比较火的领域在植物大战僵尸(数不清的改版)我认为改版的目的是增加游戏趣味性而不是单纯的无敌作弊方法。。作为一个用户而言肯定希望二者相结合,我认为双方修改优缺点如下:

动态修改:可以自由自在的修改(可扩展性很强,比如我的UFEbox就能改很多东西)而如果静态修改来改的话直接改死了,比如说我这关打不过想开满血就直接修改就行了,而我下次来玩这游戏时候又想挑战自己的技术这回不想开满血了然而静态修改已经改死了(当然有一些静态修改能植入快捷键内置游戏作弊的排除在外,但是对比动态修改明显这方面没有修改器强大)

静态修改:他最大的优点就是能跨平台了,我们有一些修改每次都要动态修改来完成特别麻烦(比如说全人物解锁全s),这时候我们需要静态修改把这些东西全部写死,也不影响游玩体验,而且电脑用户能玩的手机用户也同样能体验到!同时有一些修改我们不希望一直写死,这时候就需要动态修改了。

换言之动态修改的缺点就是静态修改的优点,静态修改的优点就是动态修改的缺点,两者是平等的修改,话不多说开始今天的主题:静态修改

准备事项

我们需要以下工具:熟悉的ce修改器(没错,静态修改也需要他!),pcsx2官方模拟器(废话,但是这里强调了必须要官方的!!)010editor(有其他类似的代替也行,比如说winhex之类的),Ultraiso

工具我全会打包发网盘里面分享,当然需要的最重要是一颗热爱学习的心,并且还要有足够的毅力(因为接下来的内容会很枯燥)什么都不会也无所谓,遇到什么现学就行了。。

教程

这里我们根据需求确定目标,奥3这游戏有一个特色,那就是必须放大招才能打死人,而作为一个格斗游戏肯定有些人觉得不满意:为什么一定要放大招才能打死对手呢?这回就为这些用户来改掉这个“缺点”(肯定有人认为也是这游戏的优点)

目标:奥特曼格斗进化3,去除大招杀人的设定

那我们先开始吧,拿出ce修改器找游戏的血量地址!

ce查找血量地址

首先打开ce,点击左上角的小电脑

附加进程(这里附加模拟器也就是PCSX2,如图的蓝标)

快速启动游戏,随便进入一个剧情,这里可以设置一下地址扫描范围(因为ps2游戏内存地址基本都在这里)

进游戏先搜索未知的初始值

然后血量变少搜一下减少的数值

注意点击再次扫描

扫出了很多地址,这里重复前面的操作让血量再减少一些继续搜索减少的数值

然后重复了很多次还是有点多,等再搜一次减少后可以搜索未变动的数值来过滤

重复很多次未变动(这期间不要让1p掉血)发现只剩下了33个地址

我们看到一个很像血量的地址是221,来测试一下,双击点下来,修改成1000试试看

可以发现游戏中人物血量已经爆血条了,说明这个地址是正确的。

记录下这个地址2067DA9C

pcsx2自带debug

pcsx2模拟器有个很强大的功能就是调试

直接打开调试窗口

看的密密麻麻的很恐怖吧,没关系,这里不需要什么都看得懂,刚才记录下的地址2067DA9C就有用了,在这里断点

输入2067DA9C,我们只想要写入,所以把read取消掉,然后ok

回游戏再挨打一下会发现游戏会断下来,我玩的时候哥尔赞不配合导致任务失败了。。

不要惊慌这就是调试时的断点功能,把程序的执行语句执行到了这一行。。

很明显执行到了扣血的指令了,但是我们需要改的是去除大招才能杀人的设定,所以这条指令不是我们想要的,点击run

让游戏继续运行,我们先把血量改成1再挨打试试看。。

(有没有发现和刚才断的地方是一样的,这不是我们想要的,继续点击run)

这回点击run游戏又断下来了,断在了002B3ED0这个地址

很明显这回比刚才多断的一次就是闪血时游戏的运行指令了,同时观察ce里的地址变化发现在断下来的瞬移血量已经是0了,说明这条指令是判断闪血用的

在mips中jal是跳转到某个地址同时把返回调用点的地址存储在$ra中下面一行的sw指令意思是把寄存器的数存储到存储器听不懂。。。什么寄存器,存储器,调用点都不明白。。没关系,这里只需要明白的是sw这指令的用途是修改数据的,我们已经根据前面ce的分析发现断下来的时候已经死亡(血量都为0了),所以这条指令的作用是把8又赋值回2067DA9C这个地址(修改过奥3的都知道,没改过也没事反正只需要明白这游戏的机制就是闪血的时候血量恒为8)

与此同时在memory这里按一下ctrl+g键同时来到2B3ED4这个地址(后面静态修改的核心!!)

记录一下数据

3C E0 0A 0C 04 00 CF AD 10 00 4F 8E(记住前面8个其实已经差不多了)

那我们不想让他赋值,那只需要在2B3ED4也就是sw这个指令给改掉改成nop(就是什么都不做的意思)

这里继续在memory处按ctrl+g回到刚才的地址2B3ED4看一下数值

发现第二组变成了00 00 00 00

现在可以取消断点试试看了,回到breakpoints这里对地址右键把enabled取消掉

然后回到debugger继续点击run,发现我们被哥尔赞给踢死了。。

然而这只是动态反汇编,下次重启游戏这个效果就不在了。。如果需要保存的话需要接下来的静态修改

制作金手指

与此同时我们就能根据上面的地址做金手指了,我们复制地址和数值

002B3ED4 00000000

根据格式金手指就能编写为

patch=1,EE,202B3ED4,extended,00000000(以太模拟器通用!感谢9527的测试!)

地址明明是002B3ED4,为什么金手指里面是202B3ED4呢?

这里地址开头的0代表数值的长度,0代表1字节,1代表2字节,2代表4字节,一般都是2,而右边7位则是找到的地址

静态修改

最后开始静态修改了!这里要用的010编辑器,用压缩软件打开奥特曼格斗进化3.iso把里面后缀名是数字的文件解压出来

这个文件可以理解为游戏的核心配置程序,比如他就像植物大战僵尸的PlantsVsZombies.exe这样的文件,而我们要修改的核心就是他!

010打开他

搜索3C E0 0A 0C 04 00 CF AD 10 00 4F 8E,按一下ctrl+f就行,然后回车

我们nop后修改的结果是

3C E0 0A 0C 00 00 00 00

也就只需要把第二组都给改成00就行了,如图所示

按一下ctrl+s就能保存了!

最后使用ultraiso打开奥3这个镜像!

把改好的拖进去替换就行了

最后记得镜像也要保存(ctrl+s)

我们给这个镜像重新命名一下奥特曼格斗进化3(街机模式版).iso

毕竟很多街机格斗游戏都能直接杀死对手不需要开大,所以取了个街机模式版本,最后上模拟器测试!

(赛文被马格马刺死了23333,大功告成!)

其实如果动态反汇编成功后那静态肯定也能成功的

最后再推荐一下我的修改器https://tieba.baidu.com/p/7754261529

mips汇编指令参考:https://e-mailky.github.io/2017-09-07-mips_instruction



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3