ZZAZZ错误(漏洞)

  Bag 防尘护目镜 SV Sprite.png非正式术语  
来自神奇宝贝百科
编号255的ZZAZZ训练家

ZZAZZ错误(英文︰ZZAZZ glitch)是一个存在于所有第一世代游戏中的漏洞,一般通过触发梦幻漏洞时控制对方特殊值为248、251、252、254、255且没有降低对方攻击力等级时,最终遇到的训练家即可触发该漏洞(即遇某些错误训练家的特定队伍)。

触发方法及效果

漏洞对队伍信息的影响

在自己持有宝可梦的特殊数值为248、251、252、254、255的情况下,使用梦幻漏洞中遇野生百变怪的触发方法,最终将会遇到一位名字和图像均为乱码的训练家,通常情况下,它们持有的宝可梦也会是各种错误宝可梦。而且,战斗中主角及其使用的宝可梦的图像将会被破坏,不仅被错误内容分割,还有可能左右颠倒(如图所示)。此时,大部分的操作都将会引起死机,但有一种方法可以脱离战斗,即使用一个精灵球,具体种类则可以是任意,使用完后会立刻脱离战斗。

脱离战斗后,玩家将会发现携带的宝可梦中除第3只与第6只外,均被153级的妙蛙种子所代替,而且它们招式会变为重复的大爆炸。同时,主角名字中除了3的整数倍位置是不变的以外,将全部被大写Z(在美版和欧洲版游戏中显存字符代号为15310,十六进制9916)代替,这也就是这个漏洞被叫做“ZZAZZ”的原因,即假如如主角先前的名字为AAAAAAA,那么触发漏洞以后主角名字将变成ZZAZZAZ。

同时,触发漏洞后玩家将无法报告,正常情况下,选择报告的操作将会直接导致死机,避免方法即是去宝可梦中心恢复一次,但是,虽然恢复完后报告不会死机了,也会有成功提示,报告却并没有成功,反而会导致资料文件损坏,所以重新开机后玩家将看不到“继续”的选项,而只能开始新游戏。

由于主角名字被漏洞所修改,而队伍中宝可梦的训练家名字,却没有被修改,所以,在战斗中它们将会不遵从指令,即使获得了所有的道馆徽章,也依然如此,因为绿色徽章只是被设定为让所有100级或以下的宝可梦听从指令,而不是所有等级。这个设定在正常游戏中并没有什么问题,因为正常情况下不可能有超过100级的宝可梦。

如果玩家在脱离战斗后,再去别的正常训练家对战,它们都会变成错误训练家,训练家图像和主角一致,持有宝可梦也均为错误宝可梦。


漏洞对主角名字造成的影响
漏洞对宝可梦招式造成的影响

原理

触发漏洞后内存里的情况

这个漏洞的导致是来源于游戏统计打赢训练家后的奖金计算机制,奖金在第一世代的游戏内存中是用十六进制数表示的,具体地址为$d079、$d07a、$d07b三个,它们控制了与训练家战斗完毕后所获得的奖金数量,然而当一个训练家拥有非常多的奖金时(如上图,这三个值分别为0 153 15310即十六进制的00999916,正常训练家里并无此情况),便会导致游戏的错误判断,游戏会去尝试重置这三个值,但由于这个训练家的数据就是如此,所以游戏会一次又一次的试图将本来已经为00999916的值重置,由于某些原因,每重置一次,便会覆盖掉下面的两个数值,比如第一次便会将下面的$d07d与$d07e强行更改为99 9916(0值则不会产生影响,这也就是有小部分东西没有被改变的原因),这样一来,大量的9916(15310)会遍布内存(这一过程在遇到野生的宝可梦的一刻即已开始,所以遇到野生的宝可梦会相对有延迟,遇到野生的宝可梦后的音乐和图像也会出现问题),153对应了妙蛙种子的宝可梦种类内部编号,对应了大爆炸的招式种类内部编号,也对应了文字Z(美版及欧洲版)的编号,于是,我们得到的效果就是:主角名字大部分都变成了Z、宝可梦大部分都成了妙蛙种子,同时它们的招式,也大部分都变成了大爆炸

每次覆盖只会进行一次,上图中某些应该被覆盖为15310的值,却不为15310的原因,是它对应的机能使它改变了。

之所以再去找别的训练家对战会遇到图像是主角自己的训练家,是因为漏洞使一个游戏用来判断当前是否是连接对战的内存地址(具体为$d12b)变成了15310(9916),它平时为0,当它不为0时,即判定与其它训练家的对战是连接对战,然而此时另一位玩家根本不存在,所以便会遇到这样一位图像为主角自己,名字为乱码,持有宝可梦均为错误宝可梦的对方。

使用招式或某些物品会引起死机的原因是ZZAZZ训练家的AI信息中往往包含令游戏整体崩溃的代码,所以一旦有动作触发了该训练家的AI,就会导致画面定格。而使用精灵球却可以脱离战斗的原因是漏洞使一个有关常青市的老人捕捉教学相关的内存地址(具体为$d11c)的值变成了15310(9916),游戏对于这个地址在正常情况下的处理是:它平时为0,在玩家看完捕捉教学(即老人成功捕捉独角虫之后)后将其设置为一个不为0的值,来标志捕捉教学结束,离开战斗。但由于触发ZZAZZ之后它已经不为0了,所以当玩家使用精灵球时,游戏便认为这是捕捉教学结束了,于是强制退出了战斗。

触发漏洞后再去与别的训练家对战的结果


细节

  • 这个漏洞特定情况下可以在任何版本中触发类似任意门漏洞的效果,即每走4步就使很多内存地址的值减少1,但不能通过走特定步数来任意传送。
  • 编号200的错误训练家的5、6号队伍,也会导致这个漏洞的发生,而且不同于这个漏洞的一般效果,它将使包包扩充为153个物品(战斗开始即发生),并且脱离战斗后会使地图混乱,主角将会被困在一格位置里无法移动。
251号训练家的触发效果
  • 编号251的训练家会触发ZZAZZ,但触发后有可能会直接打开宝可梦连接的画面,且无法关闭。
  • 该游戏漏洞也存在于日版游戏,但主角名字中被替换的字符并非替换为字母“Z”而是片假名「ハ」。

参考视频

遊戲漏洞
第一世代0 ERRORMissingNo.ZZAZZ错误道具复制道具下溢错误地图254对战大木博士
故障市合并宝可梦错误记录冲浪错误居合斩漏洞老人漏洞梦幻漏洞《皮卡丘》的图像错误
任意门剩余HP错误双属性克制信息显示错误脱离连接俱乐部选择按钮错误资料损坏错误
第二世代捕虫大赛数据复制城都宝可梦错误错误维度代币盒错误
时拉比的蛋写生错误训练家之屋错误重要物品合并
第三世代榴石果漏洞时钟电路漏洞整个盒子的坏蛋对战塔盒子复制
第四世代变身招式保留错误冲浪漏洞榴石果漏洞追打所造成的异常天气
第五世代GTS变形错误自由落体重力漏洞
第六世代列表
第七世代列表
第八世代列表
第九世代列表
多个世代克隆漏洞任意代码注入溢出随机数异常更改时间系统
多回合攻击类招式漏洞讲究道具锁定漏洞蓄力的招式覆盖错误
跨世代服务Pokémon HOME漏洞
旁支系列宝可梦+信长的野望漏洞宝可梦大集结漏洞
相关列表错误招式错误属性错误地点错误音乐错误道具错误训练家错误宝可梦坏蛋
神奇宝贝百科游戏工程.png 这个页面属于神奇宝贝百科游戏工程,欢迎加入游戏工程 Wikilogo.png