kof97 逆向分析_碰撞检测

碰撞检测

贴吧推荐判定框https://tieba.baidu.com/p/2301212873?red_tag=1896742946https://tieba.baidu.com/p/3378926459?red_tag=1900554217

dip switch 打开游戏碰撞检测框

0x100000=0x02

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

    image.png
    image.png
代码部分分析
  • 0x9DE0
    0x9e04=BoxCheck;碰撞检测,攻击被攻击
    0x9e0A=CheckP1P2BodyOverlap;过于近检测,过近弹开

  • 进入BoxCheck到3698位置4个循环检查box
    3F1E+108000=10BF1E 攻击者携带的判定框
    3F9E+108000=10BF9E 被攻击者携带的判定框

  • 8100 108190P1人物携带的判定框
    8300 108390P2人物携带的判定框
    2B00=102B00,102B70:ch,act;102B90 是这个对象判定框,每个结构体是固定,小100,大的对象200,最小40;

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

判定框碰撞有效性
DD492ED0-BFE6-418E-B5FE-14E880A2483F.png
判定框类型0x38c0;switch{}
1
2
3
  • 0-B一共12个被攻击判定

  • C-17 是不摩血的攻击

  • 18-30 必杀技判定

  • 38-39 架招

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

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

分析动态内存的技巧

30B2是动态内存分配的方法,
在这个函数的返回的地方断点,打印出a1,就是他分配的内存地址
bp 3112,1,{printf a1;g}

3794

每一帧
bp 3794,1,{pc+=4;g}

a4 结构体
连技
  • cancel:八神前爪+葵花,前抓处在半主动状态,
58ec

是否连技判断

image.png
image.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值