溢出关卡吧 关注:250贴子:3,572
  • 16回复贴,共1

关于盗版ROM 0-1火棍出现条件的问题

只看楼主收藏回复

最近经常看到有人说玩到了只能进0-1的SMB1,而且这个0-1还过不去,在第二段迷宫的下路会出现一条静止的竖直长火棍挡路。
开始,我还以为是又出现了不同版本的盗版ROM,因为我用VirtuaNES、FCEU、FCEUX模拟器测试了正版和盗版ROM的0-1,都是没有任何敌人的。原因也很简单,因为0-1的敌人指针是7EA0,是SRAM的区域,无论从中读取到的数值是00(调试版VirtuaNES)、FF(非调试版VirtuaNES)还是7E(FCEU/FCEUX),都是“一页敌人”(00或7E,而且7E还更特殊,即使能加载,也是一个“空间传送”)或“结束标志”(FF)的情况,自然不会出现敌人。FDS版ROM的水下4-4倒是会出现敌人,而且也是第二段迷宫的下路出现静止的长火棍;但是FDS的0-1却不是水下4-4,而是一个E-1类关卡(空间编号7D)……
难道真的有一个不同版本的盗版ROM,它的0-1的敌人指针被修改了,于是出现了敌人?但是,0-1的敌人指针实际上是由7-1地形指针的低字节和3-1云上天奖励地带敌人指针的高字节组成的,所以如果0-1的敌人指针被修改了意味着什么,你懂的……
但是,我又看到了另一种说法,说0-1的火棍在手机模拟器上才会出现……
难道说,还有第三种处理SRAM的方式?既不是填充全0,也不是填充全1,而是有0有1的其他数值?
这还真是件令人纠结的事情……


IP属地:上海1楼2014-04-27 13:41回复
    嗯,那贴我也看了。
    指针应该没改,我个人暂时也没实验,有空试试


    IP属地:黑龙江来自iPhone客户端2楼2014-04-27 15:53
    收起回复
      使用Nesoid模拟器进行了测试,结论是并不是只有一根长火棍,而是一页一个(除了第一页)。因此,Nesoid对SRAM的填充方式应该是每2个字节重复一次的特定数值,具体数值因无法查看内存而无法直接得知。
      但是,根据“静止的竖直长火棍”(ID=20~22)这一信息,我们可以知道这一重复单位的第2个字节第1位为1(页标识),后6位为100000、100001或100010,第2位不确定。然后,根据火棍的坐标(经反复比对确定坐标为A0),可以推测,这个2字节的重复单位实际上2个字节是相同的,都是A0(=10100000),即这个长火棍的数据为A0 A0。
      话说……为什么是A0啊……


      IP属地:上海3楼2014-04-27 17:16
      收起回复
        这帖子分析的……连我自己都想点个赞(喂,有这么夸自己的么……)


        IP属地:上海4楼2014-04-27 17:29
        回复
          确实可以点赞……
          敌人也可以这么处理……这模拟器奇葩了。。


          IP属地:黑龙江来自iPhone客户端5楼2014-04-27 18:20
          收起回复
            而且磁碟机版的水下4-4,到某一地方还会死机,根本过不去!


            IP属地:上海来自Android客户端7楼2025-01-11 09:26
            收起回复