主题 : 【分享】ss版野球拳的胜率算法解析
YZB
级别: 超级版主

UID: 12451
精华: 6
发帖: 19097
威望: 173 星
金钱: 2002 浮游币
贡献值: 10061 点
好评度: 54867 点
人气: 4322 点
在线时间: 19666(时)
注册时间: 2004-10-02
最后登录: 2024-11-16
楼主  发表于: 2022-02-07 22:13

【分享】ss版野球拳的胜率算法解析

最近对ss版野球拳的胜率有点兴趣,所以花了一点时间追看了一下游戏的源程序,初步总结如下,如果有说错的请告知


1 游戏中有2个计数器,我们姑且称为 A计数器  和B计数器,然后在游戏中,A计数器和B计数器会一直分别累加递增,注意,这2个计时器递增的值是不一样的,A和B也是分别各自累加,A的值不会加到B上,B的值也不会加到A上面

2  游戏会读取A计数器的低4bit位  乘以16 ,在加上 B计数器的低4bit位 来 组合成一个新的 单字节数值,我们姑且称为C


3  游戏根据玩家的当前生命数和当前局数做一个运算  用这个运算好的值来定位在内存中的某个数值,这个数值我们姑且称为D


4 最后做比较,当C大于等于D,那么,这局你就输了,反之则你会赢

5 还有最后一步,游戏根据玩家的当前生命数和当前局数做另外一个运算  用这个运算好的值来定位在内存中的某个值(和第3部的内存地址不一样),我们姑且称为E

6  当C小于E,那么,这局就是平局

所以,判断你是否会赢的关键是看那A和B的计时器的值,另外虽然判断赢或者输以后,还会在判断一次是否要平局      


破解方法很简单,就是在第一次判断赢或者输的时候,我们改成都是赢,后面的平局出现的概率很小,不改也可以,改也行

1  winhex打开镜像文件,搜索16进制数值
2232D01B6002C90F400840086303D0176002C90F330C1F39D216D01762226002420172FF61234208321C320CD11472FF42
前面几个数值

2232


改成0009保存即可,这样猜拳结果不是你赢就是平局




2 如果你不想要平局出现

1 winhex打开镜像文件,搜索16进制数值

2232D010600220088921D30F432B0009FFFF060166D8060142A4060DDF3E0601076A060C8524060C8528060C8538060C84FC060C84F8060C84E0060C8500060171

前面几个数值

2232改成0009保存即可,这样就不会出现平局了


最后的最后请注意,修改后的镜像请用附件的exe扫描一次,修正ecc和edc数据才可以,不然模拟器会死机





[ 此帖被YZB在2022-03-09 11:47重新编辑 ]
附件: ECCRegen.rar (32 K) 下载次数:16
级别: 模拟菜鸟
UID: 276698
精华: 0
发帖: 29
威望: 0 星
金钱: 71 浮游币
贡献值: 0 点
好评度: 82 点
人气: 0 点
在线时间: 33(时)
注册时间: 2008-03-26
最后登录: 2024-09-18
沙发  发表于: 2022-02-08 10:59

楼主XX,可惜页面内容不能复制,而且具体操作完全不适合电谋ΡΑ白,不如直接放出修改好的镜像档更有价值。
级别: 模拟专家
UID: 141306
精华: 0
发帖: 147
威望: 0 星
金钱: 1241 浮游币
贡献值: 25 点
好评度: 447 点
人气: 0 点
在线时间: 269(时)
注册时间: 2006-09-11
最后登录: 2024-11-14
板凳  发表于: 2022-02-08 21:42

感谢Y大的教程,附上修改好的版本下载,如果违规请Y大删除链接。
链接:百毒网盘/s/1VowTmx3oQnsTNpWRWfMOzQ?pwd=nal9
解压密码:bbs.chinaemu.org
YZB
级别: 超级版主

UID: 12451
精华: 6
发帖: 19097
威望: 173 星
金钱: 2002 浮游币
贡献值: 10061 点
好评度: 54867 点
人气: 4322 点
在线时间: 19666(时)
注册时间: 2004-10-02
最后登录: 2024-11-16
地板  发表于: 2022-02-08 22:38

回 2楼(aliang) 的帖子

以上只是理论,其实我都没认真测试过

另外,你这包也太大了吧..............
级别: 模拟专家
UID: 141306
精华: 0
发帖: 147
威望: 0 星
金钱: 1241 浮游币
贡献值: 25 点
好评度: 447 点
人气: 0 点
在线时间: 269(时)
注册时间: 2006-09-11
最后登录: 2024-11-14
草席  发表于: 2022-02-08 23:27

回 3楼(YZB) 的帖子

我做了两个镜像,一个是有平局的,一个是没平局的。
级别: 模拟小生
UID: 321903
精华: 0
发帖: 53
威望: 0 星
金钱: 9 浮游币
贡献值: 0 点
好评度: 159 点
人气: 0 点
在线时间: 49(时)
注册时间: 2021-12-28
最后登录: 2024-08-06
5楼  发表于: 2022-02-09 00:53

辛苦了辛苦了
saturnboy
级别: DCLT汉化组

UID: 83685
精华: 11
发帖: 902
威望: 68 星
金钱: 7936 浮游币
贡献值: 359 点
好评度: 2516 点
人气: 81 点
在线时间: 1658(时)
注册时间: 2005-12-06
最后登录: 2024-11-16
6楼  发表于: 2022-02-09 14:32

Re:回 3楼(YZB) 的帖子

引用
引用第4楼aliang于2022-02-08 23:27发表的 回 3楼(YZB) 的帖子 :
我做了两个镜像,一个是有平局的,一个是没平局的。

有创意,可以设置一个全平局版本发布,
级别: 模拟之星
UID: 321937
精华: 0
发帖: 295
威望: 0 星
金钱: 5272 浮游币
贡献值: 0 点
好评度: 888 点
人气: 0 点
在线时间: 185(时)
注册时间: 2022-02-01
最后登录: 2024-11-16
7楼  发表于: 2022-02-10 09:20

请问.chd格式的用什么模拟器可以玩?
级别: 模拟专家
UID: 141306
精华: 0
发帖: 147
威望: 0 星
金钱: 1241 浮游币
贡献值: 25 点
好评度: 447 点
人气: 0 点
在线时间: 269(时)
注册时间: 2006-09-11
最后登录: 2024-11-14
8楼  发表于: 2022-02-10 10:59

回 7楼(czg945) 的帖子

最新版的SSF和RETROARCH都可以支持

或者用最新版mame里的chdman.exe转换回cue+bin

chdman extractcd -i "文件名.chd" -o "文件名.cue"
[ 此帖被aliang在2022-02-10 11:10重新编辑 ]
级别: 模拟小生
UID: 191946
精华: 0
发帖: 103
威望: 0 星
金钱: 1005 浮游币
贡献值: 0 点
好评度: 298 点
人气: 0 点
在线时间: 161(时)
注册时间: 2007-04-02
最后登录: 2024-11-01
9楼  发表于: 2022-02-12 14:24

Re:回 7楼(czg945) 的帖子

实机+虚拟光驱能用吗
YZB
级别: 超级版主

UID: 12451
精华: 6
发帖: 19097
威望: 173 星
金钱: 2002 浮游币
贡献值: 10061 点
好评度: 54867 点
人气: 4322 点
在线时间: 19666(时)
注册时间: 2004-10-02
最后登录: 2024-11-16
10楼  发表于: 2022-02-17 21:49

Re:Re:回 7楼(czg945) 的帖子

引用
引用第9楼筱蔚于2022-02-12 14:24发表的 Re:回 7楼(czg945) 的帖子 :
实机+虚拟光驱能用吗


chd格式,模拟器专用.......
级别: 模拟小生
UID: 191946
精华: 0
发帖: 103
威望: 0 星
金钱: 1005 浮游币
贡献值: 0 点
好评度: 298 点
人气: 0 点
在线时间: 161(时)
注册时间: 2007-04-02
最后登录: 2024-11-01
11楼  发表于: 2022-03-09 23:58

回 10楼(YZB) 的帖子

试了下,转换回来可以用。