本人比较喜欢游戏,格斗游戏尤为喜欢,平日没事多会游玩几番,而这游戏之间便有曾经风靡一时的《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终于可以玩上一玩了……

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

《KOF2002》“扯蛋”修改记录相关推荐

  1. 刚子扯扯蛋:说下百度对网站原创文章的个人感受

    文/刚子 2013年7月28日 大家还记得百度的星火计划里提到的网站原创文章的重要性吗?这个破计划,我是不太了解的.因为当初那是我正在看百度推出的绿萝算法,然后我问同事,是不是咱们要注意了. 其实没啥 ...

  2. 虾扯蛋之函数防抖和节流

    背景     今天在coding的时候,做了一个搜索框,也正是这个搜索框,让我和后台小伙伴直接由铁磁变为塑料兄弟.那到底发生啥了呢?其实很简单,其实很无奈,就是我用王者的手速把他的接口访问崩了!    ...

  3. 这几天比较扯蛋的生活

    前几天睡眠质量很不好,睡觉老说胡话,有一次老婆居然说我说了一整夜的梦话.更离谱的是,我竟隐隐感觉到我们两个说着梦话胡侃.有一次天快亮的时候我说的胡话居然是"揍,照死的揍,揍死他". ...

  4. 关于485通讯(不扯蛋)

    研究了好久,把硬件部分写下来,不对的地方评论下,帮我能进一步提高. 一.硬件防护部分 三个部分解决问题:空气放电管.PTC.TVS. 空气放电管:选两端的,那就是A上面一个,B上面一个,一共两个:选三 ...

  5. oracle连接工具_扯一扯Tableau软件配置数据源系列之Oracle

    作者:扯蛋君 编辑:齐天大圣 声明:本文章仅用于Taleau软件的应用.学习沟通,不代表Taleau公司:文中所示截图来源Taleau官方及软件公开内容,相应著作权归Tableau所有. 今天给大家介 ...

  6. 2015中国智能硬件蛋年创新大会手记

    2015中国智能硬件蛋年创新大会 时间:2015年4月11日 地点:北京.751时尚回廊 言论一:智能硬件创业难,比软件创业更难! 因为它比软件的环节更多,更有可能在任何一个环节上死. 所有的环节, ...

  7. 人工智障和神经病网络对话--30行python让图灵机器人和茉莉机器人无止尽的瞎扯蛋

    首先注册申请图灵机器人的API: http://www.tuling123.com/ 查看一下API的格式,很简单: {"key": "APIKEY",&quo ...

  8. 三大扯蛋、四大怪事、五大谎言、六大....超精辟!

    三大扯蛋: 靠工资买房的是扯蛋: 靠努力升官的是扯蛋: 靠保健长寿的是扯蛋. 四大怪事: 做人不如狗受宠爱: 做事的不如告密的受信赖: 内行的不如外行的提的快: 忽悠的比敬业的更豪迈. 五大谎言: 服 ...

  9. Ant Design 圣诞节的踩蛋!

    本文首发于个人微信公众号<andyqian>,期待你的关注- 前言 圣诞节,并非中国传统节日!但随着最近几年的发展,在中国的节日氛围也越发浓厚.商家,互联网企业自然不会放过这么好的日子,大 ...

最新文章

  1. Java 重写(Override)与重载(Overload)
  2. python导出csv不带引号的句子_python csv writer在不需要时添加引号
  3. pagerank公式的理解
  4. java文字转语音支持ubuntu系统_微信内测语音进度条,60秒语音终于有救了?腾讯:并没有...
  5. 转:给自己TopCoder SRM的建议
  6. brew mysql 无法启动_MAC OSX brew 升级 mysql5.6到5.7无法启动的问题
  7. 正确设置JUnit测试名称
  8. mysql3.2.2 .tar.gz_关于MySQL-python-1.2.3.tar.gz安装失败的解决方案
  9. MySQL sql trace的使用
  10. 4.2 字符串简介
  11. Struts2输入校验之validate输入校验方式
  12. 《设计模式之禅》--摘要
  13. java基础反射知识总结_非常好的Java基础反射总结
  14. spark读写hive数据
  15. 贝叶斯集锦:MCMCpack包
  16. 11gpath失败 oracle_win10安装oracle11g提示path长度不够,该怎样解决?
  17. python时间戳转为datetime格式_python 时间 时间戳 转换
  18. 百度万年历接口实现和分析
  19. Java集合容器面试题(2020最新版),深入理解linux内核百度网盘
  20. 全国车辆限行限号数据接口服务评测

热门文章

  1. THB6128步进电机驱动芯片介绍
  2. AD9364 测试平台开发——第六篇,SPI配置内容解析
  3. php curl 超时 毫秒,php使用curl模拟异步请求,毫秒级超时设置
  4. FTP登陆缓慢解决方法
  5. 供应链库存管理-柔性快反供应链
  6. Tip - 24个程序员工具
  7. 图片裁剪工具——JCorp
  8. Babylonjs PointerEventTypes.POINTERMOVE 获取不到模型信息
  9. 研发流程及各阶段任务
  10. 提供霍尼韦尔PLC协议脚本