口袋妖怪吧 关注:1,053,970贴子:32,022,441

【攻略贴】全球第1份100%开启Gen3幻之岛教程! 新年钜献

只看楼主收藏回复

2022年1月1号!新年献礼!为大家带来全世界第1份,无需作弊修改存档、无需乱数手段,百分百开启GEN3红蓝绿宝石中,1/65536几率才能相遇的神秘幻之岛!


IP属地:福建来自Android客户端1楼2022-01-01 15:43回复
    目录:
    1、前言
    2、幻之岛简介
    3、核心机制——幻之岛值
    4、关联机制1——晃晃斑与PID
    5、关联机制2——RTC漏洞与修复
    6、关联机制3——初始RTC与宝可梦发烧友俱乐部会长的弟弟
    7、开启你的幻之岛!


    IP属地:福建2楼2022-01-01 15:45
    收起回复
      牛啊怎么弄的


      IP属地:上海来自Android客户端3楼2022-01-01 15:45
      收起回复
        1、前言
        对宝可梦红蓝绿宝石有一定了解的玩家一般都听闻过,在游戏里的某个地方存在着一个神秘的岛屿,只有很小的几率才能在游戏里见到它,这就是幻之岛。红蓝宝石初次发售在2002年11月21日,但在近20年来的时间里,国内外各路论坛网站上对于如何开启幻岛,依旧是只能凭借运气,或是像刷闪一样硬刷,又或是通过乱数、存档修改器等手段来实现这一目标。
        然而在不久前,我成功探索研究出了一种全新的,稳定的,无需修改存档或是乱数手段,来开启幻之岛的方法。这是20年来全球第1个系统性开启幻之岛的方法。它综合运用到了游戏内的诸多机制设定,为了更好地理解这个方法如何运作,你需要对这些关联机制有所了解,而我也会在后文专门对这些机制进行说明解释。


        IP属地:福建4楼2022-01-01 15:49
        收起回复
          2、幻之岛简介
          幻之岛,是位于丰缘地区的130号水路上的隐藏地点,只有在红宝石、蓝宝石和绿宝石中出现(与宝石复刻的幻岛并不相同)。这座岛屿上只有一片仅存在小果然的草丛与一个36号树果的果树。这是3代游戏中,仅有的获得36号树果的途径(不考虑ngc闪光蛇纹熊配信的携带赠送)。
          在130号水路的左侧直走,便可以到达暮水镇。墓水镇的东南角的房屋内有位老人,他会告诉玩家今天是否出现了幻之岛,如果玩家队伍里有符合条件的宝可梦,那么老人便会提示说今天看到了幻之岛,此时队伍携带该宝可梦前往130号水路,便可以发现水路上多出了一个岛屿。


          那么幻之岛出现的条件是什么呢?在红蓝绿宝石的游戏里,会存在一个被称之为“幻之岛值”的数值(2字节,即0~65535,或0x0000~0xFFFF)。每只宝可梦自身也存在一个数值,称之为性格值(PID)(4字节),性格值具体信息就不多阐述,有兴趣可以自行前往神奇宝贝百科了解,这里只需要知道有这么个值的存在即可。当队伍里某只宝可梦的PID的后2字节刚好与幻之岛值的2字节数值相等,那么这个时候,幻之岛便会出现,墓水镇的老人也会提示看到了岛屿。
          理论上看,一个幻之岛值范围在0x0000~0xFFFF(0~65535)之间,宝可梦PID也是随机的,如果要匹配上二者相等,那么一个宝可梦满足要求的概率只有1/65536,比闪光宝可梦的概率还要低(在3代闪光宝可梦概率为1/8192)。这也是为什么幻之岛的出现如此稀少,只有少数的幸运儿玩家有机会碰见它。


          IP属地:福建6楼2022-01-01 15:51
          收起回复
            在这份我研究出这份攻略的内容之前,我也曾试过去研究并常识如何刷出幻之岛。经过推论研究,大致可以分为3种方式:
            1、幻之岛值固定,PID变化。【卡带有电无电均可】在同一天内幻之岛值不会发生改变,那么可以通过捕获野生宝可梦来随机pid进行尝试。可以是在暮水镇老人门口钓鱼然后回去对话,也可直接在131靠130水路交接捕获野生宝可梦,然后进入130号水路查看地图;
            2、PID固定,幻之岛值变化。【卡带必须有电】该方法是预先捕获好若干只宝可梦,然后从箱子里切换出来与暮水镇老人对话。算上来回宝可梦中心和老人的家以及切换宝可梦,约1小时可以测试300只宝可梦。每天幻之岛值会切换,找时间去把箱子里的宝可梦去测试即可。可以根据每天自己能刷的时间,来估计需要捕获多少只宝可梦在箱子里存着。也可以仅存1~2箱子宝可梦,然后使用rtcread软件直接调整卡带电路时钟日期到下一天,来加快进度。
            3、已知特定幻之岛值,刷匹配PID的晃晃斑。【卡带有电无电均可】在之前的研究中,我曾见到说999:59满游戏后幻之岛值会变为0x0000的说法,但后来经过测试发现该说法其实是不正确的,反而是发现了在游戏建档的第1天和第2天的时候,幻之岛值固定为0x0000。那么由此只要捕获pid尾数为0x0000的宝可梦便可开启幻之岛。而晃晃斑的存在刚好可以让我们通过斑点位置确定pid数值。便可以通过捕获pid尾数0x0000对应斑点的晃晃斑,从而在建档卡带的前2天开启幻之岛。
            上述的3种方法,无一例外都是仍旧需要花大量时间去折腾来达到这个1/65536的目标。但是后来随着我研究的深入,终于探索出了一条系统性的,无需修改存档的,每一个正常游玩的玩家都可以100%开启自己的幻之岛的途径。具体如何操作,还请接着看。


            IP属地:福建7楼2022-01-01 15:52
            回复
              3、核心机制——幻之岛值
              3.1机制纠错
              在宝可梦百科的幻之岛主页面和讨论页中,我们可以看到通过hfc2X的测试,他找到了幻之岛值在红蓝宝石及绿宝石中的地址,以及当游戏时间达到999:59之后,幻之岛值将固定为0x0000。然而在经过不断测试之后,我发现实际上他的某些结论有所偏差。幻之岛值在红蓝宝石中地址固定就像hfc2X所说的那般,但是在绿宝石中,幻之岛值的地址并非是固定的位置,而是会变动的。同时当游戏时间达到999:59之后,幻之岛值依旧会正常变动,不会变为0x0000。我的推测是,由于绿宝石中幻之岛值地址变动,而hfc2X误以为是固定的地址,导致将错误地址上的0x0000错当成了幻之岛值。
              这是一个长久以来许多人都被误导了的一个情况,在许多网站、视频、文章里,无不提到只要时间达到999:59之后,幻之岛值会变为0x0000,然后你只需要去取得一个PID尾数为0x0000的宝可梦即可开启幻岛,但实际上并非如此,这也是为什么许多网站里同样也能看到说自己时间999:59且弄到了PID尾数为0x0000的宝可梦但仍旧未能开启幻岛的那些评论。所以有必要在本文中专门提出来这个情况。
              以下便是正确的幻之岛值的内存地址:
              RS: (U) =0x02026ABC,(J) =0x0202681C;
              E: (U) = (指针0x03005D90的内容) +0x2390,
              E: (J) = (指针0x03005AF0的内容) +0x2390.


              IP属地:福建8楼2022-01-01 15:54
              收起回复
                3.2幻之岛值的生成
                【该部分内容仅需了解即可】
                幻之岛值的生成算法,采用线性同余随机数发生器(LCGRNG),采用的特定参数后的公式即为:
                ——
                Mirage_Seed(n+1)={[ 0x41C64E6D * Mirage_Seed(n) ] + 0x3039 } mod 0x100000000
                ——
                取n=0,Mirage_Seed(0)=0x00000000 为初始值计算,反复递归,便得到诸如下列的幻之岛种子列表,取各行幻之岛种子的前四位,便是对应的幻之岛值Mirage_Value(n),也即:

                不难看出幻之岛值其实是一串固定的数列。而前面的0、1、2、3代表的是自游戏建档设定二楼时钟起,至当前实时时钟(RTC)所经历的天数。比如刚建档当天,RTC时间还未跳至下一天,则游戏内经历RTC天数为0天,此时对应的幻之岛值便为0x0000。
                而同时卡带RTC时间范围为2000/01/01-2099/12/31,总共0~36524天,也就是幻之岛值,最多能生成36525个数值,经过计算除去重复的幻之岛值,最多只有27925个幻之岛值。这也即是说,在幻之岛值理论的0~65535范围内,实际上只有27925/65536≈42.6%的值是实际能够生成出来的。
                那我们可以得出一个结论,也即,对于PID随机的大量宝可梦中,只有42.6%的宝可梦PID可以开启幻之岛,而剩下57.4%的宝可梦PID是永远无法使幻之岛开启。
                当你尝试使用抓了大量宝可梦存箱子,每天取出去跟暮水镇老人对话确认的方式来刷幻岛,那么你的这些宝可梦中可能有约57.4%的宝可梦,是即便你把从2000/01/01~2099/12/31所有时间全部试过一遍,都无法开启幻之岛的。理论上,仅有27925种pid尾数的宝可梦,才能开启幻之岛,实际中由于各种因素,这个数值还会更少。
                对于从n=0,Mirage_Seed(0)=0x00000000 为初始值,到n=36524所列出来的对应表格,定义其为“经过RTC天数与幻之岛值的标准对应表”。


                IP属地:福建10楼2022-01-01 16:01
                回复
                  3.3计算你的幻之岛
                  通过上述内容,我们可以了解到,对于给定了具体经过的天数,我们就可以确定那天的幻之岛值是什么。而此时我们将初始0天所对应的RTC的时间确定下来,那么我们就可以通过天数的计算,得到具体经过的天数所对应的RTC时间。
                  反过来思考也就是,倘若我们知道某个特定的幻之岛值,我们就可以计算出该幻之岛值所对应的经过天数。再知道第0天所对应的初始RTC的时间,那我们就可以计算出该幻之岛值所对应的目标RTC的时间。
                  而这,便是本文实现开启幻之岛的基本思路:
                  1、得到特定幻之岛值;
                  2、寻找对应经过RTC天数;
                  3、计算目标RTC(需要有初始RTC);
                  4、修改RTC。


                  IP属地:福建11楼2022-01-01 16:03
                  收起回复
                    4、关联机制1——晃晃斑与PID
                    【该部分内容仅需了解即可】
                    那么我们应该如何获得某个特定的幻之岛值呢?不妨反过来思考,幻之岛值需要跟宝可梦PID进行匹配,那又该如何得知某个宝可梦PID是多少呢?PID作为一个隐藏数值,不通过修改等手段使没法直接查看其数据的。
                    但是幸运的是3代有一种宝可梦,晃晃斑,它的斑点跟PID直接相关联,PID的值直接作为了晃晃斑四个斑点的xy坐标,也即是说,通过晃晃斑斑点的位置,我们可以反推出某只晃晃斑的具体PID值是多少。
                    对于一个晃晃斑的PID:0xMMNNOOPP(4字节)
                    0xMM对应右下角的斑点;0xNN对应左下角的斑点;
                    0xOO对应右上角的斑点;0xPP对应左上角的斑点。
                    在幻之岛值的匹配中,我们只需要0xOOPP的值符合即可,所以我们只需用观察右上和左上,也即双耳的斑点位置即可。
                    在这里我们可以通过其他人已经做好的工具来进行查询(pokemon点thundaga点com/spinda/Spinda%20Painter点htm)也可直接搜索Spinda Painter找到网页。

                    由此我们便完成了第1步,通过捕捉晃晃斑,并计算斑点位置来反推PID值,将其作为选定的幻之岛值为后续做准备。
                    还记得前文说过的吗,仅有42.6%的PID有可能使幻之岛开启,粗略约为2/5,所以为了避免捉到的晃晃斑pid无法开启幻之岛,我们一般需要多捉几只,约5-6只,来保证至少1~2只晃晃斑pid可以开启幻之岛。如果还没有,那就只能再去捕获其他晃晃斑。


                    IP属地:福建12楼2022-01-01 16:06
                    收起回复
                      5、关联机制2——RTC漏洞与修复
                      【该部分内容建议仔细阅读】
                      5.1、RTC基础知识
                      对于每一个宝石卡带来说,都有一个实时时钟RTC,由卡带上的电池供电,范围在2000/01/01 00:00:00~2099/12/1323:59:59。在每个游戏开始的时候,妈妈会让你在二楼设定时钟,当你设定完时钟的时候,游戏会比照RTC的时间,存入一个称为“初始RTC”的值(5字节)0xAAAABBCCDD,0xAAAA代表天数、0xBB代表小时、0xCC代表分钟、0xDD代表秒。需要注意的是初始RTC并非完全等同于卡带上RTC的时间,而是会根据游戏里设定的时钟时间一定偏差,这也是为什么有时候通过卡带RTC时间反推算初始RTC值的时候,会发现初始RTC的值是1999/12/31。
                      同时游戏还会存储另一个值,记作“经过RTC时长”,用来记录当前RTC与初始RTC的差值,也就是自初始RTC起经过的时长。该值也是5字节,数值含义同初始RTC。需要注意的是,经过RTC时长是参照卡带RTC来的,而非游戏游玩时长。每次游戏保存时,都会在存档内写入跟当前RTC比对后的经过RTC时长,再到下一次开机游玩时,再次与当前RTC进行对比得到新的经过RTC时长,但只有在进行存档操作时,才会写入存档。
                      如初始RTC为2000/01/01,此次保存时当前RTC为2000/01/10,那么存档内会写入经过RTC的天数为9。关机之后到了当前RTC为2000/01/20再开机,此时游戏会识别刷新经过RTC为19天。此刻如果保存,那么会将19天写入存档。若存档之后关机调整当前RTC为2000/01/15,再开机,此时游戏内天数19天是不会减少变回为14天的,而此刻的状态也正是之后所要提到的“新电池漏洞”状态。
                      但若是在2000/01/20的开机状态,不存档直接关机,再将当前RTC改为2000/01/15,这个时候开机,游戏内刷新的经过RTC会从存档内的9天起步开始计算,为14天。


                      IP属地:福建13楼2022-01-01 16:07
                      收起回复
                        5.2、树果漏洞
                        树果漏洞,也即最为人所熟知的一种RTC漏洞。其表现为卡带发售后,购买游玩1年后的玩家出现了树果停止生长等严重问题。
                        对于树果来说,比如当玩家在2000/05/01时种下种子,游戏内会计算树果成熟时间,比如将在2000/05/03成熟,然后将该时间记录下来,当RTC逐渐走动直到匹配记录的成熟时间,那么玩家便可以进行收获。
                        树果漏洞的问题在于,游戏内对RTC日期的计算机制存在问题,若游戏从RTC的2000年建档,则当进入2001年的时候,会停止累加天数。以2000/01/01建档为例,当前RTC和经过RTC天数如下:

                        可以看到当进入漏洞状态后,当前RTC为366天,而种下的树果成熟时间会记录为367天,但RTC时间实际却需要再走到2002/01/02才能真正到达游戏认为的367天。在这长达1年的漏洞状态里,树果看上去便是停止了生长,不断地重复这1天。这便是树果漏洞。


                        IP属地:福建14楼2022-01-01 16:14
                        收起回复


                          IP属地:江苏来自Android客户端15楼2022-01-01 16:20
                          回复
                            5.3、树果漏洞的修复
                            对比之后的几种,树果漏洞是唯一官方有提供修复途径的漏洞,包括但不限于火红叶绿绿宝石与漏洞卡带联动修复、ngc旁支圆形竞技场或暗之旋风联动修复、ngc漏洞修复特典光盘(同时赠送携带36号树果的闪光蛇纹熊)等。
                            其修复机制为对卡带RTC进行修改并写入存档保存,具体细节如下:
                            1、若初始RTC在2000,且当前RTC在2000/01/01~2000/12/31,则将当前RTC调整为366天后;
                            3、若初始RTC在2000,且当前RTC在2001/01/01~2002/01/01,则将当前RTC跳到2002年1月2日;
                            3、若初始RTC在2000,且当前RTC在2002/01/02及之后,则无需修复;
                            4、若初始RTC在2001及之后,则无需修复。
                            带有树果漏洞的卡带仅为早期的红蓝宝石,在后期的红蓝宝石卡带中以及绿宝石中,已经写入了永久性的修复,无需再联动修复漏洞,其版本列表如下:


                            IP属地:福建16楼2022-01-01 16:20
                            回复