冰炎梦幻 发表于 2016-3-20 00:19

非主流逆向 打造你自己的拳皇

初来乍到,才疏学浅,希望前辈们多多指教。新手发帖,若有违规,望版主宽宥则个。{:1_931:}

下面正题
吾爱高手众多 涉及模拟者甚少 此贴重在抛砖引玉 愿那年街机带来的感动仍在心中
MAME PLUS 一款强大的模拟器 在下口舌笨拙难以言传 有心者请 鼓歌{:1_924:}
此次以最简单的 拳皇97 放大招加血 作为主要内容
拳皇97 是SNK的一款游戏 只要是80年代后的几乎没有人不知道此款游戏 此游戏采用摩托罗拉的MC68000作为处理器
那么我们只需要了解简单的68K汇编指令集即可 具体自行寻找 不赘述
我们打开MAMEPLUS 开启调试器功能 执行拳皇97 如图 (基本快捷键如常用调试器 F5 run F9 设置/取消断点 F10步进 F11有子程序的步进 等等)

控制台中可以直接调用help查看调试指令
思路:放大招扣除能量点 在此处加入加血功能
我们开始游戏 假设无作弊码
那么我们需要自行搜索能量珠位置,并在其处下断点

ci 初始化搜索引擎
cn eq,1 搜索内存为1的地址
此时我继续积攒能量珠到2和3
再次搜索
得出三个地址 *-*如ce搜索是一样的
自行测试 得到1082E3则是P1能量珠的数量
对其下坑 wp 1082E3,1,w (当1082e3处被写入数据后中断,涉及长度为1)
放个大招 那么程序便会停止

如图 停下的上一句即使掉能量珠的语句 如果把其nop 则放大招不扣能量了
我们这里仍旧要扣掉能量 但是还要给自己回血
那么就要知道血量的地址 不知道的情况下 仍旧进行搜索 为了方便 这里已知1P血量地址为108239
此时1P的基址为A4 = 108100那么可得全局血量基址为A4+139
我们加1/10个血量(67H=103)
我们所需要的就是把addi.b #a,($139,A4)插入这句话的前后即可
由于上下都被占了 那么只能跳到空白地方写入程序再跳回来了
比如我们需要跳转到 90000H这个空白处写程序 那么指令jmp $90000的机器码则是 4EF9 0009 0000 一共六个字节
很明显也是挤不下了 那么我们可以先跳到短地址 比如jmp $400 机器码是 4EF8 0400再跳到长地址 即可
(有人在这里就要问 可以直接在短地址那里写就可以 这样是可以 但是短地址是稀有资源 能少用就少用咯)
那么程序出来了
org $400
jmp $90000

org $1e7f8
jmp $400

org $90000
subq.b #1,($1e3,A4) **恢复占用的语句
addi.b #10,($139,A4) **加血
jmp $1e7fc

以上代码可以使用easy68K进行编译得到机器码如图

那么我们打开拳皇97的rom 找到程序文件232-P1.bin(这个P1不是Player1哈 1P和P1不一样 就如3P和P3不一样)
使用十六进制编辑器打开 我使用winhex
ROM与程序中的显示是16位字节交换的
比如程序机器码是 12 34 56 78 那么rom会显示 34 12 78 56
如机器码4EF9 0400 在ROM就为F9 4E 00 04 如果看不顺眼可以用winhex全选右键交换 待做完修改后再转换回来


好 P1文件扔回rom包 运行测试



放大招之后

修改成功
由于血量大于67H 会出现乱码
那么我们可以在以上程序90000H处设置判断语句 加血后如果大于67H 那么就限制为67H
    org $90000
    subq.b #1,($1e3,A4) **恢复占用的语句
    addi.b #10,($139,A4) **加血1/10
    cmpi.b #$67,($139,A4)
    bls _noact//低于或者等于67H跳
    move.b #$67,($139,A4) //67H放入血量地址
_noact
    jmp $1e7fc

最后 下载easy68k最新版请访问 www.easy68k.com就好
MAMEPLUS以及winhex请自行寻找
在下使用MAMEP版本 0.149

{:1_909:}手残党边搞别写两个小时 终于弄好了 结尾不知道说什么
{:1_931:}














o159p753 发表于 2016-3-20 00:52

本帖最后由 o159p753 于 2016-3-20 01:00 编辑

冰炎梦幻 发表于 2016-3-20 00:33
感谢关注 然而我不怎么去3dm和游侠 出现是因为当时有98um和02um的steam诞生 之后几乎就没去了
...
好像我也看到有人在发脱壳的98UM和02UM,但是去改的人应该很少。EZ我知道啊,关于修改这方面,国外和国内的作品都很多,但是主要都是不太平衡的版本。一般良性合理的修改都是改 投技 显示连接数,还有就是AI修改,胜利台词修改,汉化一些菜单啊什么的。改那些也没什么用,自己觉得好玩就可以了,有些就是喜欢hack版的,还有mugen那些,看似很厉害的AI,一套连结束的,其实反而是改得简单了,判定修改高了,各种招式都能追加,倒地和浮空,打墙都有。
官方比赛自己也用自己的版本,一般内部交流或测试,比如比较新的02UM,国内某代{过}{滤}理是一个版本,街机上的是最早的版本,但是你去看一下台湾众到日本比赛的录像你就知道了,他们家用机和使用的比赛版本明显不一样。知道的一看就知道了,就在等待画面就能知道。不研究这些的,自己上手玩一会也就知道了。后面是FE的SE的都是不一样的(FE和SE是简称,你应该知道吧),都有过改动的。那些版本国内街机和网络基本见不到。更不要说一些国外的 制作达人了,他们的作品是很难搞到的。其实也不用太在意,比如有人觉得官方修改很好,很厉害,很平衡,那也不完全是,比如老98的 基板 里,那个丽安娜对陈可汉敬礼的BUG 居然延续到了98UM。制作人也太不负责任了。还不如DC的仿3D画面的98,那官方叫99,DC的仿3D画面还有几个KOF的作品,PS2上有合集的。
总之,喜欢玩的,自己觉得好就好了。

冰炎梦幻 发表于 2016-3-20 01:38

o159p753 发表于 2016-3-20 01:30
没关系,我只是好奇AI的出招判断,应该是提前确认的吧,听一些研究这方面高手说过。我也习惯跟电脑玩,就 ...

mugen的ai我不了解 MVS的如下
每个角色根据对方即时的ACT号 与自己的距离 以及自己残余的血量 得出AI指向某行数据 这行存放这各种AI方案
一行16个 那么一般对应对方每个ACT有16个方案 8级难度基本只固定提取后四个 一套方案再分为4字节 代表可以最多放四套招式

iammiaoge 发表于 2016-3-20 00:22

进到论坛感觉可以学到好多东西

啊飞 发表于 2016-3-20 00:24

楼主 支持技术大神,感谢无私奉献的楼主!

o159p753 发表于 2016-3-20 00:30

经常在3DM和游侠看到楼主的ID,我以前也玩这个,修改得很疯狂

冰炎梦幻 发表于 2016-3-20 00:33

o159p753 发表于 2016-3-20 00:30
经常在3DM和游侠看到楼主的ID,我以前也玩这个,修改得很疯狂

{:1_912:}感谢关注 然而我不怎么去3dm和游侠 出现是因为当时有98um和02um的steam诞生 之后几乎就没去了
如果你有兴趣 可以去ppx和emuzone论坛多看看 模拟界的大神几乎都在了 我只是个打杂的

冰炎梦幻 发表于 2016-3-20 00:58

o159p753 发表于 2016-3-20 00:52
好像我也看到有人在发脱壳的98UM和02UM,但是去改的人应该很少。EZ我知道啊,关于修改这方面,国外和国内 ...

这都没什么的 拳皇是多年前的经典 后来是圈钱了 当然不用心 你说的脱壳exe是OrochiZ发的 在HACKrom圈子里已经是牛到极点的人

Doigt 发表于 2016-3-20 01:02

拳皇,儿时的记忆。

o159p753 发表于 2016-3-20 01:04

冰炎梦幻 发表于 2016-3-20 00:58
这都没什么的 拳皇是多年前的经典 后来是圈钱了 当然不用心 你说的脱壳exe是OrochiZ发的 在HACKrom圈子里 ...

对啊,很老了,他们通常都是拿一些老的基板在更新。总是很难做到比较高的平衡度,像街霸也差不多,玩模拟器的还分美版,欧版,还有斗剧版的(就是日版),其它非官方的就更多了。我比较喜欢一些高AI的修改作品,楼主有没有什么好的作品推荐?

charmerwang 发表于 2016-3-20 01:22

总感觉这个论坛不适合我这种菜鸟
页: [1] 2 3
查看完整版本: 非主流逆向 打造你自己的拳皇