十六进制30H+EFH是否产生上溢出和下溢出

补充相关内容使词条更完整,還能快速升级赶紧来

上溢出和下溢出关卡指由任天堂公司开发的早期马里奥系列游戏

的通过修改内存或运用bug技而进入的数据指针错误的非正常关卡。

最早发现上溢出和下溢出关卡的是在实体机上通过热插拔SuperMarioBrothers卡带来实现的(注意“切勿做此实验这样对机子损害很大!)。後来移植到电脑上后随着bug技的普及,人们利用bug成功进入了早期发现的上溢出和下溢出关卡之一——36-1(即人们俗称的“-1关”但此说法有誤,今已基本废弃不用)并逐渐使用游戏修改器进入了其他世界的上溢出和下溢出关卡。“上溢出和下溢出关卡”这个名词最早由愿卿勿忧于2011年12月10日提出随后愿卿勿忧于2012年2月11日领起了一次上溢出和下溢出关卡研究的浩大工程,此后不断有玩家进军上溢出和下溢出关卡的研究至今,对于1代马里奥的上溢出和下溢出关卡研究已经比较透彻但对于其他的版本还没有太多的研究。

十六进制是计算机中数据的┅种表示方法同我们日常中的十进制表示法不一样。它由0-9,A-F组成字母不区分大小写。与10进制的对应关系是:0-9对应0-9;A-F对应10-16因此在研究上溢絀和下溢出关卡时十六进制是最常见的进制,必须要理解上溢出和下溢出关卡中所有内存地址都是16进制的,因此1个世界不是100关而是256关

16進制就是逢16进1,但我们只有0~9这十个数字所以我们用A,BC,DE,F这六个字母来分别表示1011,1213,1415。字母不区分大小写

十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方第2位的权值为16的2次方……

所以,在第N(N从0开始)位上如果是是数 X (X 大于等于0,并且X小于等于 15即:F)表示的大小为 X×16的N次方。

假设有一个十六进数 2AF5

此处可以看出所有进制换算成10进制,关键在于各自的权值不同

上溢出和下溢出關卡崩溃的相关资料

崩溃的种类十分繁多,现划分为“等”、“级”“等”的范围大于“级”的范围

nes-SMB中共计有如下崩溃:

A等,由“摧毁頁”导致分为三个级:

A级,即AA级崩溃通称S级崩溃,为VirtuaNES模拟器特有现象为模拟器崩溃。原因为摧毁页跳转到某处地址执行了6502汇编中所未定义的105种指令之一导致模拟器无法判断并执行而强行退出。发现者15222HGH

B级,即AB级崩溃通称B级崩溃,现象为半途卡机或开局黑屏原因為摧毁页跳转到某处地址执行了指令00,即BRK致使所有地形,分数栏同步等全部终止执行至于开局就黑屏跟A等崩溃还不同,是因为终止地形加载了但在地形加载出来之前始终会是黑屏,所以现象与A等崩溃类似但还不同敌人是后加载的,在地形出现后才会加载所以敌人單位的会在地形出现后再加载,就会开局卡机发现者愿卿勿忧。

C级即AC级崩溃,通称C级崩溃现象为为自动软重置。原因为摧毁页的异瑺跳转执行了重置。盗版伴有一瞬间花屏的现象发现者愿卿勿忧。

B等由异常的地形导致,分为一个级:

A级即BA级崩溃,通称A级崩溃现象为进入关卡后直接黑屏。原因为该关卡中所有地形都集中在第一页并且没有地形结束标识字节FD而不停加载永远加载不完,所以在沒加载完地形前屏幕就是一直黑的发现者愿卿勿忧。

B级即BB级崩溃,通称B+级崩溃现象为瞬间屏幕上只剩下背景。原因为长度单位异常嘚城堡发现者风华正茂999999。

C等由屏幕中精灵单位过多导致,分为一个级:

A级即BA级崩溃,通称D级崩溃现象为分数栏与页面不同步,拖幀严重现认为是屏幕中精灵过多,实际情况未知发现者愿卿勿忧。

游戏《超级马里奥兄弟》共有128种关卡每一种关卡对应一个空间,所以空间也总共有128个

若要进入某个编号的空间,使用金手指0750-01-xx(xx为空间编号)即可

03:水下3-3,敌人随机

04:水下8-3敌人随机

05:水下4-1,敌人随機

06:水下6-2敌人随机

07:水下3-1,敌人随机

08:水下1-1没有敌人

09:水下1-3,敌人为固定组合

0A:水下2-3没有敌人(飞鱼是地形产生的,不考虑在内)
  这里“没有敌人”的原因需要解释一下:因为敌人指针为6B9E是SRAM的区域,其中的数据可能有三种处理方式:(1)有效内存数值为FF,则甴于FF为敌人结束标志而确确实实地没有敌人;(2)有效内存,数值为00则敌人单位为重复的00 00,即集中在第一页因而不会被加载;(3)無效内存,以指针的高字节作为读取的数值(这里为6B)敌人同样集中在第一页,不会被加载

0B:水下2-1,敌人为固定组合

0C:水下自行走过場关卡敌人随机(但是通常往往会没有敌人,推测可能是由于读取到了坐标为FF的敌人单位即结束标志。其他指向PPU

0D:水下5-1敌人为固定組合

0E:水下“2-1云上天奖励地带”,敌人随机

0F:水下4-3敌人为固定组合

10:水下6-3,敌人为固定组合

11:水下6-1没有敌人

12:水下跳关区,敌人为固萣组合

13:水下8-1敌人随机(通常没有敌人)

14:水下5-2,敌人随机(通常没有敌人)

15:水下8-2没有敌人

16:水下7-1,敌人为固定组合

17:水下“3-1云上忝奖励地带”敌人为固定组合。值得注意的是这个空间的第一个敌人为带有“难度加大后出现”标志的“跳关区”,它会解除原本3-1云仩天奖励地带的停止滚屏因此游到终点之后可以继续前进,但是只会是一片黑暗没有地形也没有敌人。没有地形是因为已经到达了地形的结束标志而没有敌人则是由于这个空间的第二个敌人“特殊物品”(表现为红蘑菇)的作用,特殊物品的出现屏蔽了后续敌人的加载,于是后面就看不到任何敌人了这个特殊物品同样带有“难度加大后出现”标志,因此5-3前的这个空间不会出现蘑菇而是可以看到哽多其他的敌人,但是停止滚屏就无法解除了

18:水下3-2,没有敌人

19:水下1-2敌人为固定组合,其中第一个敌人是在第1世界生效的空间传送传送目标为空间4D的第24页

空间0B和19的敌人指针只差1个字节,表面上看敌人不同但是由于“空间传送”的存在,错位之后的敌人偏移指针反洏有了一致的指向因此空间0B和19有相同的敌人组合(只是页面位置相差1页)

1A:水下4-2,敌人为固定组合

1B:水下“地下奖励地带”敌人为固萣组合

1C:水下1-4,敌人随机(但是敌人指针位置为05A0是“地形显示内存”区域,也就是敌人数据是由屏幕上的地形确定的所以看上去像是“确定的组合”)

1D:水下4-4,没有敌人

1E:水下2-4敌人为固定组合(但是第一个敌人单位为“跳至页面32”,远远超出2-4的地形结束点因此表现為“没有敌人”)

1F:水下3-4,理论上敌人随机但实际上很可能会加载到不知跳到哪个页面的“跳至页面”,造成可见地形的区域没有敌人

2B:2-1云上天奖励地带

34:3-1云上天奖励地带

36:地上1-2(之前也已经说明过,由于某种巧合相同地形的地上、地下关卡,其敌人也相同)

38:地上“地下奖励地带”

39:地上1-4敌人为“水下奖励地带”

3A:地上4-4,敌人为“2-2”

3B:地上2-4敌人为“8-4水下部分”

3C:地上3-4,敌人随机

3D:地上7-4敌人随機

3E:地上8-4,敌人随机

3F:地上52-1敌人随机

43:地下1-4,敌人为“水下奖励地带”

44:地下4-4敌人为“2-2”

45:地下2-4,敌人为“8-4水下部分”

46:地下3-4敌人隨机

47:地下7-4,敌人随机

48:地下8-4敌人随机

4A:地形为固定组合,敌人随机

4E:黑屏E-1类关卡

4F:地形随机(E-1类)敌人随机(通常没有敌人)

50:T-2,敵人为固定组合(与水下5-1相同)

52:地下1-145(黑屏关)

53:地形随机(E-1类)敌人为固定组合(与水下6-3相同)

54:地下62-1,没有敌人

55:地形为固定组匼敌人为固定组合(与水下跳关区相同)

56:黑屏E-1类关卡

57:地形随机(1-136),敌人随机(通常没有敌人)

59:W-1敌人为固定组合(与水下7-1相同)

5A:黑屏E-1类关卡

5B:地形随机(E-1类),没有敌人

5C:地下1-140敌人为固定组合(与水下1-2相同)

5D:地下56-1(黑屏关)

5E:黑屏E-1类关卡

5F:S-2,敌人随机(但與水下1-4情况类似由屏幕上显示的地形决定)

67:地形同空间4A,敌人为“8-3”

69:城堡1-184(黑屏关)

6B:黑屏E-1类关卡

6C:地形随机(E-1类)敌人为“1-3”

6D:城堡T-2,敌人为“2-3”(再说一次2-3的飞鱼是地形产生的,因此这里的敌人没有飞鱼)

6E:城堡1-55(黑屏关)

70:地形随机(E-1)敌人为“5-1”

71:62-1,敵人为“2-1云上天奖励地带”

72:地形同空间55敌人为“4-3”

73:黑屏E-1类关卡

74:地形随机(1-136类),敌人为“6-1”

75:城堡127-1敌人为“跳关区”(没有敌囚)

76:城堡W-1,敌人为“8-1”

77:黑屏E-1类关卡

78:地形随机(E-1类)敌人为“8-2”

7B:黑屏E-1类关卡

7C:城堡S-2,敌人为“1-2”

7D:地形随机(E-1类)敌人为“4-2”

7E:1-48,敌人为“地下奖励地带”

补充(a 炒鸡板栗仔 编辑)

参考资料:笔者自己亲测(291a)

89 UW1-3,怪物只有库巴和墨斗鱼

8C UW自动进管道(死循环关)

8E 馬上就死掉金币场景

92 UW4-2密道跳关场景(既死

97 uw黑色背景分数场景(又是既死

有待补充。。。。。。。。。。。。

}

十六进制FFFFFFFF转换成十进制数据上溢絀和下溢出的问题

我用的 double定义的进制变量.但是将十六进制FFFFFFFF转换成十进制时,返回结果却是-1,但实际结果应该是,应该是double的变量长度不够了.像这样嘚大数字,在pb里怎样定义变量呢?

不过pb8中却有 ulong32为无符号,可以标识 0~

}

我要回帖

更多关于 产生溢出 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信