主题 : 【讨论】【分享】Street Fighters 3 - 3rd 的修改
sniperhgy
级别: 模拟之星
UID: 16719
精华: 1
发帖: 1128
威望: 1 星
金钱: 98 浮游币
贡献值: 5 点
好评度: 2257 点
人气: 5 点
在线时间: 404(时)
注册时间: 2005-01-27
最后登录: 2024-07-02
楼主  发表于: 2007-07-07 16:05

【讨论】【分享】Street Fighters 3 - 3rd 的修改

        CPS3的破解是很多人接触到了街机上面的sf3.3这款作品,我也是受益者之一。拿到rom和模拟器之后编投入了苦练之中,但是街机上面是没有连招模式的,要想有,只能考修改内存或者hack rom,对于hack,我是一窍不通,那就只能考修改内存来实现了。
    在此之前,网上面流出了一些修改文件(game master 8.0所用的和mame所用的作弊文件),我用CPS3emulator,因此下载了GM的那个版本,但是加载之后发现无效,有人说可能是机器配置不一样,导致模拟器基址有所改变。这样的话,咱们就要靠自己的力量来实现了。

    第一种方法:(直接查找发)
   
    我用FPE,GM,金山都改过,方法是一样的,就是用低阶搜索,包括HP,SA,Time,以及人物代码,但是这种方法费时费力。

    第二种方法:(间接查找发)
   
    在说方法之前,我要说一个概念:“虽然程序运行时基址可能不相同,但是数据间的相对地址是不变的”,利用这个原理,就可以很轻松的修改sf3.3的内存数据。

    在sf3.3所有要素里面,Time是最好修改的,只要搜索显示出来的时间即可,比如在Time显示97的时候,搜索97,然后等过一会,比如86,搜索一下,一般2到3次即可找到2个内存地址,其中第一个是正确的。所得结果就是咱门所有数据的基础(比如是0x0FB21397),然后利用相对地址不变的原理,这里有一个公式,是我总结出来的:

1P HP - Time = 57994(hex)        2P HP - 1P HP = 498(hex)          Time : 直接搜索数字显示即可
1P SA - 1P HP = 8AA(hex)    2P SA - 2P HP = 43E(hex)          Time + 10(hex) =1P character                1P Charcter + 1 =2P Character

按照公式,时间地址+10(十六进制)的就是1P的人物代码地址,在咱们这个例子里面,就是0x0FB213A7,只要将其锁成0,就可以使用总boss Gill,0x0FB213A8就是2P的人物代码。0x0FB78D2B就是1P的HP,只要锁成160(10进制),就是满血,0x0FB795D5就是1P的SA,也是160。按照这个方法,就可以轻松的实现“练招模式”

    如果有看不懂的地方,可以用消息告诉我,我很愿意与大家交流方法,^_^
本帖最近评分记录:
  • 金钱:    +30   (操作人:Triple-E)   此贴/此回复奖励你 30 FYB
  • I will be back!
    级别: 论坛版主

    UID: 60848
    精华: 1
    发帖: 1888
    威望: 6 星
    金钱: 166146 浮游币
    贡献值: 8721 点
    好评度: 8482 点
    人气: 838 点
    在线时间: 279(时)
    注册时间: 2005-08-31
    最后登录: 2016-03-08
    沙发  发表于: 2007-07-09 22:35

    这样算修改文件了...如果地址不可靠的话
    有可能造成无法运行或者崩溃档机....