• 您的当前位置:首页 > HACK教程 > [ 教程 ] KOF97 逆向分析 打开另一扇门 碰撞检测

[ 教程 ] KOF97 逆向分析 打开另一扇门 碰撞检测

  • 作者:壹杯敬月光
  • 2020-08-13 15:56:26

Dip switch 打开游戏碰撞检测框:
1、0x100000 = 0x02

P2rom包含的所有的的判定框的数据:
1、可以通过mame 内存搜索工具找到这些数据
2、从ACT封装章节里的Bank2找到box数据的起始地址是 0x21191A
3、FD05 type | box index = 05 根据000001 01 type左移2位 ,所以类型是type = 1,在第一个判定框index = 1;1 * 4 + 1 + FD00 = FD05。
4、FD0A type | box index = 0A 根据000010 10 type左移2位所以类型是type = 2,在第一个判定框index = 2;2 * 4 + 2 + FD00 = FD0A。

代码部分分析 :

0x9DE0:
1、0x9e04=BoxCheck;碰撞检测,攻击被攻击。
2、0x9e0A=CheckP1P2BodyOverlap;过于近检测,过近弹开。

进入BoxCheck到3698位置4个循环检查box:
1、3F1E + 108000 = 10BF1E:攻击者携带的判定框。
2、3F9E + 108000 = 10BF9E:被攻击者携带的判定框。
3、8100 108190:P1人物携带的判定框。
4、8300 108390:P2人物携带的判定框。
5、2B00 = 102B00,102B70:ch,act:102B90,是这个对象判定框,每个结构体是固定,小100,大的对象200,最小40。

108190 P1判定框属性5组box0,box1,box2,box3,box4,boxBody:
1、5个字节一组,为啥是5个一组,因为数据是6个字节,第一个类型的分配到不同地址,人物一般都携带连三组判定框。

判定框碰撞有效性:

判定框类型0x38c0,switch{}:

0-B 一共12个被攻击判定。

C-17 是不摩血的攻击。

18-30 必杀技判定 38-39 架招。

3A-3F 飞行道具抵消框。

07 特瑞可以无限连击,不要在p2的108300 + 90位置设置07的判定框可以实现。

分析动态内存的技巧:
1、30B2 是动态内存分配的方法:在这个函数的返回的地方断点,打印出a1,就是他分配的内存地址 bp 3112,1,{printf a1;g}。
2、3794 每一帧 bp 3794,1,{pc+=4;g}

a4 结构体:

连技方面:

cancel:八神前爪 + 葵花,前抓处在半主动状态。

58ec 是否连技判断:

*_*
互动小天地
点击加载更多...
关闭 更换头像