SMB2J,虽然说它是一代的一个官方Hack(说它是Hack的证据在于,SMB2J和SMB1 FDS版的ROM文件大小是一致的,都是64KB),但它明显比一代多了很多元素:毒蘑菇、绿弹簧、风、通往所有世界(除9外)的跳关区(包括正向和逆向)、附加的9世界和A~D世界,等等。
鉴于此,就有人提出:既然2J比1代多了这么多东西,而文件大小却没有变,那是不是说1代当中有未利用的剩余空间,这些空间存储了1代的溢出关卡;而2J把这些空间都利用完了,就没有溢出关卡了?
表面看来,似乎确实是这样,而且如上文所说,2J把9世界之后的“溢出世界”全部封杀了,哪里还会有溢出关呢?
但是,这种说法有一个根本性的错误,它认为溢出关卡是存储在ROM文件中的独立存在的关卡。事实上,溢出关卡只是由于内存地址075F和0760在给定了指定范围以外的数值时产生了错误的关卡映射,从而指向了关卡数据区以外的位置,然后把指向的位置的数据当成了关卡数据进行处理,就出现了各种奇特的溢出关卡。
因此,溢出关卡的有无,与ROM中是否有未利用的空间并没有关系。至于SMB2J当中无法通过金手指进入1~8世界以外的世界,那只是因为2J在设计时就加入了“溢出世界屏蔽”处理。
——by miku_con
鉴于此,就有人提出:既然2J比1代多了这么多东西,而文件大小却没有变,那是不是说1代当中有未利用的剩余空间,这些空间存储了1代的溢出关卡;而2J把这些空间都利用完了,就没有溢出关卡了?
表面看来,似乎确实是这样,而且如上文所说,2J把9世界之后的“溢出世界”全部封杀了,哪里还会有溢出关呢?
但是,这种说法有一个根本性的错误,它认为溢出关卡是存储在ROM文件中的独立存在的关卡。事实上,溢出关卡只是由于内存地址075F和0760在给定了指定范围以外的数值时产生了错误的关卡映射,从而指向了关卡数据区以外的位置,然后把指向的位置的数据当成了关卡数据进行处理,就出现了各种奇特的溢出关卡。
因此,溢出关卡的有无,与ROM中是否有未利用的空间并没有关系。至于SMB2J当中无法通过金手指进入1~8世界以外的世界,那只是因为2J在设计时就加入了“溢出世界屏蔽”处理。
——by miku_con