gba吧 关注:150,781贴子:1,646,409
  • 22回复贴,共1

【教程】winhex编辑不同语言版本存档之进阶篇

只看楼主收藏回复

本文是对【教程】(正版向)用winhex编辑存档以适用同一语言不同版本 https://tieba.baidu.com/p/6684048500 一文的进阶补充,起因是在用该方法修改洛克人zero系列的存档时,发现要比原贴中用于举例的马里奥a1复杂的多,涉及到多处版本标记、游戏中存档至少一次才能在存档文件中写入版本标记等问题,所以觉得有必要再开一贴进行进阶说明,那么话不多说马上开始


IP属地:美国1楼2022-02-25 12:08回复
    洛克人zero系列是gba平台上最优秀的act系列之一,对于有正版强迫症的我来说入正是必须的,但本人动作苦手,靠自己打出S评价是不可能的,所以只能借助网上现成的全收集、全S评价存档,导入到正卡当中
    问题是网上这类存档只能下到美版的,而我的正卡是日版,导入之后发现从z3开始,美版和日版的存档又不通用!遂只能搬出winhex,给他来个如法炮制!



    IP属地:美国2楼2022-02-25 12:10
    回复
      按照惯例,用vba模拟器对洛克人z3的美版、日版游戏在无存档状态下分别运行,得到各自空存档后用winhex打开比对,很快找出了版本标记的不同之处,也就是这一段红线字段,以“49 4E”开头,“06”结尾,而两版的不同之处在于红圈内,美版是“0C”,日版是“0B”



      IP属地:美国3楼2022-02-25 12:16
      回复
        找到版本标记的区别后,打开网上下载的洛克人z3美版全收集存档,找到相应字块,将“0C”修改为“0B”
        如果是马里奥,这样修改完成后就可以应用于日版了,可是到了洛克人这里却发现不行,日版游戏还是不认这个存档



        IP属地:美国4楼2022-02-25 12:20
        回复
          对这个全收集存档文件进行检查,发现问题出在如下:版本标记存在于存档文件的多个位置,只修改一处是不行的!而且这多处的版本标记并非在一开始的空存档中就都存在,而是在游戏流程中每储存一个栏位,或开启一项隐藏要素(如迷你游戏等),相应的才有一个版本标记被写入到存档文件里!这什么麻烦精的机制啊,游戏开发人员难道没考虑过我们作弊党的需求么
          好在经过反复比对,发现即使版本标记有多个,但数值特征都是一样的:均是以“49 4E”开头,“06”结尾,“06”前的一个字块为美日版本区分,美版0C,日版0B
          既然特征都一样,挨个找到并修改应该就OK了,使用winhex的搜索功能,查找特征最明显的“49 4E”两个字块,每找到一处如果发现下一行处有“0C 06”,那就是版本标记无疑了,注意中间的数值可能是有区别的,不用一一对上,只要开头有49 4E,结尾有0C 06即可
          好家伙,我找到了12处之多!将所有的0C都改为0B,保存后应用于日版游戏,当当当当!奇迹出现





          IP属地:美国5楼2022-02-25 12:40
          回复
            解决了z3之后接下来就是z4,发现z4比z3还要麻烦精!如果只用模拟器运行一下rom的话,得到的存档文件里是没有任何数值的,名副其实的“空”存档
            也就是说,所有的版本标记都需要在游戏流程中保存至少一次才会被写入到存档文件里,没办法,只好将美日两版各打过一关,存档一次后再来解析存档了






            IP属地:美国6楼2022-02-25 12:49
            回复
              这回可以了,存过一次的存档中出现了版本标记,经查证后发现是如下字段:“49 54”开头,“06 02/08”结尾,其中美版结尾是02,日版是08
              打开美版的全收集存档,以“49 54”为关键字进行搜索(这里要强调一下,所有数值均为16进制,不能直接在搜索框里敲字,要复制相应数值后粘贴,修改数值时也一样),也是12处,将所有结尾处的02都改为08,保存,搞定






              IP属地:美国7楼2022-02-25 13:01
              回复
                至此终于破解了洛克人zero系列的美日版存档通用问题,其实原则都一样,利用空存档(或其他不相关数据尽量少的存档)找版本标记,由于版本标记是一串数值而不是单独一个,所以虽然有多处,数值也不完全一致,但彼此之间总能找到对应的相同数值字块,利用这些字块把每一段版本标记都找出修改就可以了
                最麻烦的是z4,由于只能利用美日两版各玩过一关的存档来寻找,而玩的过程中不可能保证两次流程、评价、收集道具等要素完全一致,无法得知不同数值究竟是版本区别还是游戏流程区别导致的,所以不单要比对两版的初始存档,还要加入美版的全收集存档进行三方比对,寻找在美版初始-美版全收集存档里相同、而在日版存档里不同的字块数值
                那么全部教程内容就到这里,截图码字不易,希望吧友们能够多多回应,给我一些鼓励


                IP属地:美国8楼2022-02-25 13:13
                回复
                  问一下楼主,zero3是芯片记忆的吗?


                  IP属地:天津来自iPhone客户端9楼2022-02-25 13:50
                  收起回复
                    厉害厉害!程序员就是厉害!


                    IP属地:上海来自Android客户端10楼2022-02-25 14:07
                    回复
                      我去这都可以


                      IP属地:河北来自iPhone客户端11楼2022-02-25 15:18
                      回复
                        大佬 用winhex怎么刷金手指代码进去啊


                        IP属地:浙江来自iPhone客户端12楼2022-11-10 09:52
                        收起回复
                          老铁,口袋妖怪系列的不同语言的存档适用这个办法吗?


                          IP属地:北京来自Android客户端13楼2022-11-10 21:51
                          收起回复
                            大佬,Z4中文版你能否修复下,用psp无法存档,因为容量超过16mb了


                            来自Android客户端14楼2022-11-13 22:20
                            回复