热血格斗吧 关注:4,070贴子:40,026

FC平台热血格斗简单修改教程,教你修改出好玩的热血格斗

只看楼主收藏回复

FC平台热血格斗简单修改教程,教你修改出好玩的热血格斗


IP属地:安徽来自Android客户端1楼2019-01-21 16:45回复
    准备材料:电脑一台,下载fceux模拟器(百度下载即可),热血格斗游戏文件;
    我们先来学习下修改系统角色属性,玩过热血格斗的都知道热血格斗有16个系统人物,而且他们的属性是固定的(不像自己选名字出来的角色属性会因为名字不同而有差异),那么既然属性是固定的,我们反向思考一下肯定在游戏文件里面是存好了这16人的属性的,我们只要找到16人的属性数据然后修改再保存就能实现目标。
    用fceux模拟器打开热血格斗,运行游戏。点击模拟器上的调试——十六进制编辑器,如下图

    然后看见弹出一个十六进制编辑器的窗口,我们点击 查看——ROM文件:


    IP属地:安徽3楼2019-01-21 17:08
    收起回复
      fceux模拟器置顶教程帖有下载


      IP属地:广东来自Android客户端5楼2019-01-21 23:18
      回复
        OK,进行到这一步了,我们停下来思考一个问题,我们要找的是16个系统角色的属性(名字血型生日攻击力等等)存放地址,反向推理一下,当年程序员在开发这款游戏的时候理应把16个角色属性按照一定的顺序排列好存放在游戏文件里面,那么是不是找到其中一个角色的属性,其他角色属性就在附近呢?这个思路应该有效果,先试验下看看。我们就以国夫的属性作为突破口,要找国夫的属性,我们用国夫的生日为切入点(即首先找到国夫生日存放在ROM的哪个地址),这里大家不要嫌我啰嗦,至于为什么要把这个思路整理的这么细节,以后你自然就会明白。
        OK继续正题,国夫的生日是11月27日不用我解释了吧,打开你电脑里面的附件——计算器,将11和27分别转换成十六进制看看结果是多少,哇11居然是0B,27居然是1B,那么我们得到数据 0B1B,好的,记下来点开刚那个十六进制编辑器,点击编辑——查找,然后在弹出的查找栏输入0B1B,再点击查找下一个(或者点击回车),出现了第一个找到的目标数据0B1B。


        IP属地:安徽6楼2019-01-22 00:06
        收起回复
          此时先停下你帅气的小手不要再查找下一个,我们先判断下这个0B1B是否是国夫的生日,如果是,没有必要再继续查找下一个。
          这里的0B1B,我们给他随便改一下,这里我给它改为0101,然后到游戏里看看选国夫会有什么变化。我们选择自由模式,然后选择第二项,直接进入选16人界面,如下图
          我们直接选择第一个也就是国夫,发现国夫生日果然变了(1月1日),这也就说明找到的数据就是国夫生日的数据地址。


          IP属地:安徽7楼2019-01-22 00:13
          回复
            那么,我们再看看这个被改动的0B1B附近的数据,看看它是否就是国夫的其他属性数据。
            这里有两种思路:
            一种是像刚刚改动0B1B一样,继续尝试改动附近的数据来确定这些都是什么数据;
            另一种就是预判;
            第一种方法不用再解释了吧,慢慢摸索就行,这里主要讲第二种方法,这也是以后找更大范围数据时必备的技能。
            所谓预判就是我猜测我要找的数据就在这附近,我首先随便复制(ctrl+c)一段数据,比如0B1B的地址是在10AFF,我从其他地方复制(这里我复制了10A00和10A10这两行的数据),然后到10AF0这一行粘贴(记住千万不要保存ROM了),如下图

            然后我们再进游戏,像刚才一样选择国夫,发现国夫属性果然变了(乱了),而且进入到这个看属性的界面游戏发生乱码情况,这说明国夫的属性极大可能在我们覆盖的数据里面,至于乱码的原因,大部分情况是因为覆盖掉了不该覆盖(不属于数据而属于程序的部分)。


            IP属地:安徽8楼2019-01-22 00:36
            回复(1)
              这里的第二种查找方法你看起来可能云里雾里,甚至觉得最后不还是要跟第一种方法一样去尝试。但是以后如果你要寻找更大范围的数据时就会知道这个方法好用很多。所以不要嫌我啰嗦,如果你想找出游戏里面更多需要的数据地址,这种方法迟早你会用上。


              IP属地:安徽9楼2019-01-22 00:41
              收起回复
                16人+2只老虎属性数据存放位置(红色部分):

                以国夫为例:
                3F 5B 3A 00 00 国夫的名字くにお
                00 未知作用
                08 国夫的星座 一共十二个星座
                03 国夫的血型
                C3 2E 37 28 2A 依次是国夫的血量、拳力值、脚力值、摔技、防御值
                0A 国夫的速度 速度换算方式很简单自行摸索
                0B 1B 国夫的生日
                后面的数据依次是
                第二个格斗家才田、
                石始
                ...
                虎一
                虎二
                至此十六人属性搜索完毕,想怎么改就怎么改吧


                IP属地:安徽13楼2019-01-22 01:04
                回复(4)
                  格斗老师上课啦!孩子老学不会格斗修改怎么办?多半是废了,打吧。


                  IP属地:福建15楼2019-01-22 01:45
                  收起回复
                    1p功夫家正面投技视觉效果怎么样和cpu一样


                    来自Android客户端16楼2019-01-22 02:05
                    收起回复
                      大神,能不能教下怎么修改使得翻滚腿不需要助跑呢,最近在酷咖游戏发现一个版本就是这样的,跳跃+下就出翻滚腿


                      18楼2019-01-22 13:59
                      收起回复
                        数据类的修改思路之一昨天已经讲过了,大家可以尝试摸索修改其他数据。今天来讲一下怎么修改按键来达到原版不能做到的操作。以上面这位吧友提出的问题为例——怎么让翻滚踢的使用方式变成跳起来按下就直接触发呢?
                        我们在修改之前一定要理清思路,即我想要的修改可以通过哪些方式实现。按键修改一般有两种方式,一种是能找到相关的判定数据,然后像修改属性那样直接改动相应的数值来实现修改目的。另一种就是改程序,即我不管原版是怎么出招判定的,我只要在它程序执行的最后添加上我想要执行的程序来达到修改目的。这话听起来像是废话,但是它的确是一句很长的废话。
                        回到问题:怎么让翻滚踢的使用方式变成跳起来按下就直接触发呢?我们再来反向思考一下,原版应该是如何判定翻滚踢的使用方式呢?很容易想到它肯定要判定①玩家是否处于冲刺跳跃状态;②是否按了下键;③玩家是否拥有翻滚踢技能。我们现在的修改目标是只要角色在跳跃状态中按下就能出翻滚踢,那么理论上我们只要把①玩家是否处于冲刺跳跃状态的程序找到,然后改为判定玩家是否处于跳跃状态就能修改成功。
                        那么问题来了,怎么找程序呢?


                        IP属地:安徽19楼2019-01-22 16:54
                        回复(3)
                          巨恶心,好不容易写好的发出去全给我吞了


                          IP属地:安徽来自Android客户端25楼2019-01-22 18:12
                          收起回复
                            我服了啊,发一个吞一个


                            IP属地:安徽27楼2019-01-22 18:16
                            收起回复
                              是49E


                              IP属地:浙江来自Android客户端29楼2019-01-22 20:26
                              收起回复