前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《KOF2002》“扯蛋”修改记录

《KOF2002》“扯蛋”修改记录

作者头像
用户2615200
发布2018-08-02 17:20:59
6230
发布2018-08-02 17:20:59
举报

   本人比较喜欢游戏,格斗游戏尤为喜欢,平日没事多会游玩几番,而这游戏之间便有曾经风靡一时的《KOF2002》。

  条件所限,街机类的老游戏目前都基本是靠模拟器(譬如Kawaks)来跑,一般也没什么特别烦心的问题,可唯独这《KOF2002》,却莫名的存在不少问题:

  1. 非Hack版一切正常,唯独输入判定却非常苛刻(或者说“奇怪”),一些带半圈的搓招按正常手势基本无法发出,继而一些稀松平常的连续技也都变得十分困难,着实令人不爽……

  2. Hack版输入相对正常,然而各种破坏平衡的修改(譬如“神速”聚气,甚至于神奇版中的“多段曝气”……),也令我这个“正规派”游戏玩家不知所从……

  两方面都不可适从,于是我便产生了一个相对“另类”的想法:自行修改游戏ROM,大概思路便是两条:

  1. 修改正常版ROM,使之输入判定类似Hack版。

  2. 修改Hack版ROM,移除其中“过度”Hack的地方。

  网上稍微查阅了些资料,发现相关内容确实非常之少,唯独发现这篇确有用武之地,再有的一些论坛,也是人数寥寥,自己也没有深入接触……

  也罢,最终还是决定硬着头皮自己上了,虽说自己了解一些相关知识,但鉴于从未有过相关修改经历,心想这个过程恐怕也是非常艰辛痛楚,而事实上,确实也是如此……

  首先我放弃了第二种方案,因为其工作量巨大,再加上只有密密麻麻的二进制数据做修改参考,实在是不怎么靠谱……(在此敬佩一番Hack版的修改人员:)),那么留给我的选择便只有一个了——修改正常版ROM,使之输入判定类似Hack版。

  那么我应该修改ROM文件中的哪个部分才能达到修改输入判定的目的呢?通过之前提到的教程可知,一般NeoGeo游戏的ROM,都将角色的输入数据置于 XXX-p1.bin 这种命名的文件中,可惜打开游戏ROM(即Kawaks\roms\kof2002.zip)一看,里面远非如我想象般的那么“平坦”,由于各类KOF2002版本游戏的存在,文件显得非常凌乱,一时半会很难辨清文件的“归属”,我想改的是KOF2002 Plus版本,可我现在却连对应的游戏文件都找不到……

  本着程序员的第一思路,如果有对应模拟器的代码,那么稍稍跟踪一下,这些文件自然就明晰了,只是Kawaks并非开源软件,我无法获取其源码,但是另一个强大的模拟器MAME则是开源的,由于两者加载游戏的方式类似,我自然也可以通过MAME来进行跟踪,但是由于本人对于这类模拟器的实现方式并不了解,“初来乍到”的恐怕还需要不少时间才能摸出些门道,有鉴于此,跟踪源码的方式虽然最为“靠谱”,但是我将其“优先级”置于最低,即等到实在“山重水复”之时才会尝试。

  另外的一个非常“土鳖”的方法就是查看Kawaks的Loading信息,即他的窗口标题栏,这种方法在机能较弱的情况下表现“优秀”,因为你能非常清楚的看到每一个其加载的ROM名称,可惜在下的机子机能一般,加载信息能够看到部分,但并不清晰(有些一闪而过),充其量只能了解个大概而已……

  然后,我便使用了屡试不爽的试错法,即将我不确定的游戏ROM索性将其删除,然后开启模拟器进行尝试加载,最后通过出错信息进行确认。

  几次三番测试之后,我大概确定了如下信息:

  265-p1.bin是原版游戏的输入文件,而2k2-p1p.bin则是Hack版本修改过的输入文件,修改两者可以影响游戏的输入判定。

  OK,不管三七二十一,我先索性将2k2-p1p.bin文件复制而出,并整个替换了原先的265-p1.bin文件,开启游戏测试,竟然OK,并且原游戏的输入判定变为了Hack版的输入判定!

  可惜的是,这个修改虽然解决了输入问题,但是一并的,他将Hack版中的“神速”蓄气也带到了原游戏中,那么我接下来要做的便是:找出气槽设定在文件中的位置,并加以还原。

  使用BC比较265-p1.bin和2k2-p1p.bin两个文件,并使用WinHex打开2k2-p1p.bin以进行修改,然后使用修改过的文件来替换原先的265-p1.bin文件,最后开启游戏测试。

  以上的这些便是大概的一遍测试流程,好在两个文件的差异并不巨大,需要尝试的数量还可以控制,考虑到“气槽”是一个游戏原先的功能,Hack版本应该只是修改了对应的数值而已(譬如增加量及初始值等),所以比较的准则大概是以下两个:

  1. 暂时跳过段落差异的比较,因为之前的推断认为应该只是某些数值的差异,只有当所有这些数值差异都被否定时,才开始考虑段落差异。

  2. Hack文件的对应数值应该较普通版本数值来的大,并且差距不小,这样才能实现诸如“神速”聚气的功能,一些差异不大的数据可以置后考虑。

  基于上述两条原则,再加上一些运气成分(最终也没有去考虑段落差异),以及多次的反复试错,我大概得到了以下两条修改方法:

  1. 2k2-p1p.bin文件大概11F46的附近位置,将其修改为与265-p1.bin文件内容一致,可以将游戏气槽的初始值恢复正常,而不是像Hack版本那般一开始便是满气。

  2. 2k2-p1p.bin文件大概2F7E2的附近位置,将其修改为与265-p1.bin文件内容一致,可以将游戏气槽的增加值回复正常,而不是像Hack版本那般一出招便可蓄满一条。

  OK,大功告成,将修改好的游戏文件更新入游戏压缩包,一个相对正常的KOF2002终于可以玩上一玩了……

  (回看整个修改,不论是想法、流程还是结果,似乎都只有两个字而已——“扯蛋”,不过却自觉颇有趣味,遂为记 :))

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013年02月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档