Escape Ganon glitch/zh: Difference between revisions

From ZeldaMods (Breath of the Wild)
Jump to navigation Jump to search
(Created page with "一旦遊戲到了對戰加儂的階段,玩家就不能再存檔,也不能用減號傳送。")
No edit summary
 
(56 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
[https://www.reddit.com/r/Breath_of_the_Wild/comments/632yq7/spoilers_you_can_get_out_of_the_final_boss_fight/ '''脫出加儂戰''']是一個程錯。林克拿到光之弓後,可以把光之弓帶出魔獸加儂所在的光牆內。由於遊戲仍然認為林克在和魔獸加儂對戰,光牆外的世界和平常的世界有些許差異。根據版本不同,具體的差異也各有不同。
[https://www.reddit.com/r/Breath_of_the_Wild/comments/632yq7/spoilers_you_can_get_out_of_the_final_boss_fight/ '''脫出加儂戰''']是一個程錯。林克拿到光之弓箭後,可以把光之弓箭帶出魔獸加儂所在的光牆內。由於遊戲仍然認為林克在和魔獸加儂對戰,光牆外的世界和平常的世界有些許差異。根據版本不同,具體的差異也各有不同。


這個條目記載了逃出光牆後外面世界會發生的事情。
這個條目記載了逃出光牆後外面世界會發生的事情。
Line 10: Line 10:
一旦遊戲到了對戰加儂的階段,玩家就不能再存檔,也不能用減號傳送。
一旦遊戲到了對戰加儂的階段,玩家就不能再存檔,也不能用減號傳送。


This is because of the ''LastBossGanonBeastGenerateFlag'' flag, which is set right before Link is warped to Hyrule Field to face Dark Beast Ganon. It is used to spawn Dark Beast Ganon (as the name indicates); however a side effect is that any time a save with this flag set is loaded, the game automatically sets the ''SaveProhibition'', ''WarpProhibition'', ''KillTimeProhibition'' and ''EnterDungeonProhibition'' flags. These flags do exactly what you'd expect: block saving, warping, passing time and entering shrines.
這是因為 LastBossGanonBeastGenerateFlag 這個 flag。林克從城堡被薩爾達傳送到草原上跟魔獸加儂對戰時,遊戲會用這個 flag 召喚魔獸加儂出來,同時,遊戲會打開 ''SaveProhibition''(不存擋)、''WarpProhibition''(不傳送)、 ''KillTimeProhibition''(不消磨)、''EnterDungeonProhibition''(不進廟)。


'''It is possible to get rid of these restrictions''' by starting any event that ends up calling the [https://eventviewer.zeldamods.org/viewer.html?data=/d/Common.json&params=1&entry=EnableSaveAndWarp Common<EnableSaveAndWarp>] event (or sets these flags manually). This is because the exact same flags are used throughout the game to prevent warping/saving/etc. Typically, players use the gambling minigame in Lurelin Village to re-enable saves, autosaves, warps, campfires, shrine terminals.
這些禁止事項在遊戲裡被重複利用了好些次。例如,沃托里的賭博小遊戲在賭博開始跟結束時都會打開、關閉某些 flag。所以有玩家發現,離開光牆後只要去玩賭博小遊戲,小遊戲結束後這些限制也隨之解除。


=== Strange animation right after loading screens ===
=== 載入畫面後的詭異動畫 ===


[https://eventviewer.zeldamods.org/viewer.html?data=/d/Demo025_0.json&params=1&entry=Demo025_0 Demo025_0] (which is played every time Link is spawned in the main world) checks the ''IsPlayed_Demo146_0'' flag. If it is set, the player's ''Demo_AccelerateHorse'' action is called. This explains why Link does a strange looking animation whenever the player loads a save that was made after escaping Ganon.
[https://eventviewer.zeldamods.org/viewer.html?data=/d/Demo025_0.json&params=1&entry=Demo025_0 Demo025_0] (which is played every time Link is spawned in the main world) checks the ''IsPlayed_Demo146_0'' flag. If it is set, the player's ''Demo_AccelerateHorse'' action is called. This explains why Link does a strange looking animation whenever the player loads a save that was made after escaping Ganon.


=== Blood moons ===
=== 血月 ===


As explained in the article on BotW's [[Time]] system and [[WorldMgr]], ''LastBossGanonBeastGenerateFlag'' prevents the [[blood moon]] cutscene from being triggered at midnight. However, the blood moon timer still advances and blood moons are still scheduled as usual, which is why malice particles still appear before abruptly disappearing.
在  [[Time]] [[WorldMgr]] 裡有提到,LastBossGanonBeastGenerateFlag 這個 flag 會阻止子夜的血月。不過這僅僅意味著血月不會自然出現,血月的計時器還是會繼續增加。


Unfortunately, nothing ever unsets the ''LastBossGanonBeastGenerateFlag'' flag so it is not possible to get blood moons to occur naturally. The only way to get a blood moon to trigger is to advance time manually by sleeping or waiting at a campfire, as none of the blood moon inhibiting flags are checked when the player does so. Probably an oversight.
和其他禁止事項不同的是,遊戲裡沒有哪個機制會把 LastBossGanonBeastGenerateFlag 關掉,所以我們不能期待把它關掉後讓血月自然出現。不過,睡覺跟消磨時間後出現的血月(如果血月本該在當晚發生而林克直接睡到早晨的話)用的是另一套獨立的檢查系統,所以還是可以觸發。這部分八成是任天堂漏看了。


=== Missing NPCs, shrines, enemies, etc. ===
=== 消失的 NPC、神廟、敵人 ===


This is the most noticeable effect. After performing the glitch, shrines, most NPCs and enemies and towers either only spawn partly or not at all.
這個部分是大部分人都會立刻發現的:在脫出光牆後,一部份的神廟、希卡塔、NPC、敵人將不復存在。


This is explained by a quirk in the [[Placement]] code. The ''exact'' spawn logic is as follows:
之所以會只有「一部份」不見,是因為 [[Placement]] 的原始碼裡有一段奇怪的邏輯。


If:
如果


* [1.0.0-1.2.0] ''FirstInHyruleCastleBossRoom'' is set
* [1.0.0-1.2.0] ''FirstInHyruleCastleBossRoom'' is set
* [1.3.0+] ''FirstInHyruleCastleBossRoom'' '''or''' ''IsPlayed_Demo145_0'' is set
* [1.3.0+] ''FirstInHyruleCastleBossRoom'' '''or''' ''IsPlayed_Demo145_0'' is set


and if a map object:
而且一個地圖上的「東西」


* is not ''Enemy_GanonBeast'' and profile<ref>There are different kinds of [[actor]]s (entities) in BotW. Profiles are pretty much categories that allow Nintendo to reuse the same base code internally for different but similar actors.</ref> name is ''Enemy'', ''GelEnemy'', ''SandWorm'' (sic), ''Prey'', ''Dragon'' or ''Guardian'', or contains ''NPC'' (e.g. ''NPC'', ''DemoNPC'')
* is not ''Enemy_GanonBeast'' and profile<ref>There are different kinds of [[actor]]s (entities) in BotW. Profiles are pretty much categories that allow Nintendo to reuse the same base code internally for different but similar actors.</ref> name is ''Enemy'', ''GelEnemy'', ''SandWorm'' (sic), ''Prey'', ''Dragon'' or ''Guardian'', or contains ''NPC'' (e.g. ''NPC'', ''DemoNPC'')
Line 41: Line 41:
* or has ''Entrance'' or ''WarpPoint'' or ''Terminal'' in its unit config name
* or has ''Entrance'' or ''WarpPoint'' or ''Terminal'' in its unit config name


then it is not spawned.
那就不生成這個東西。


Moreover, if that object belongs to a placement group (i.e. if it is linked to other map objects in the [[map unit]]), that entire group is not spawned.
如果一個這個東西跟別的東西綁定在一起的話,整組東西都不會生成。


==== Explanation ====
==== 解釋 ====


This explains why NPCs, most enemies and shrines do not spawn after escaping the battle -- they're specifically excluded.
之所以 NPC、大部分的敵人、神廟都會不見,是因為原始碼裡刻意把它們過濾掉了。


This is also why towers look strange -- they are always tied to ''FldObj_DownloadTerminal_A_01'' (Sheikah download terminal) and ''DgnObj_WarpPoint_A_01'' (warp pad) objects, so the majority of the map objects that make up a Sheikah Tower end up being ''not'' spawned either. This is a side effect of removing shrines.
同時我們也可以看到為什麼希卡塔看起來和平常不一樣。希卡塔是跟 FldObj_DownloadTerminal_A_01(滴入地圖的東西)和 DgnObj_WarpPoint_A_01(地板上的藍色圓形傳送點)綁定的,而遊戲並不打算生成後兩種東西,從而排除了整個塔。


Similarly, shrine interiors are invisible because the entire shrine model is a single object that is linked to the shrine's Sheikah monk, who is an NPC.
類似的,神廟的內部也通通不見了。這是因為整個神廟都跟坐鎮的導師綁定了,而導師是 ...... NPC。


Additionally, this reveals why the Digdogg Suspension Bridge is invisible after activating the final boss sequence: the map objects are internally called ''FldObj_RockBridgeGerudoEntrance_A_01'', and because of Nintendo's stupidly broad object name blacklist, the bridge objects end up being excluded from spawning.
有趣的地方來了。德谷多吊橋(台地西邊,石柱上有西諾克斯地方)雖然是地形的一部份卻不會生成。這是因為吊橋內部的名字叫 FldObj_RockBridgeGerudoEntrance_A_01,而有含有 Entrance 的東西都被當作神廟電梯一起禁止了。


Also, the only reason why Moldugas spawn at all is because a Zelda developer made a typo. The profile for Moldugas is supposed to be ''Sandworm'', not ''SandWorm''!
另一方面,沙漠裡的拉吉克雖然是怪物卻會生成。這是因為拉吉克叫做 Sandworm,而禁止名單裡寫的是 SandWorm(注意大小寫)。


==== Nintendo's broken patch ====
==== 任天堂的補丁(補壞的) ====


''FirstInHyruleCastleBossRoom'' is set when the player triggers the final boss sequence in the castle sanctum. On the other hand, ''IsPlayed_Demo145_0'' is set after Calamity Ganon ("incomplete Ganon") dies.
''FirstInHyruleCastleBossRoom'' is set when the player triggers the final boss sequence in the castle sanctum. On the other hand, ''IsPlayed_Demo145_0'' is set after Calamity Ganon ("incomplete Ganon") dies.
Line 69: Line 69:
1.3.0 is the first version on which this trick doesn't work anymore because ''IsPlayed_Demo145_0'' is always saved and loaded properly. Master Mode, Trial of the Sword, dying, killing Ganon, dying, etc. all have no effects. The only way to get out of this state is to reset ''the'' flag, and unfortunately, there is nothing the player can do to reset IsPlayed flags.  
1.3.0 is the first version on which this trick doesn't work anymore because ''IsPlayed_Demo145_0'' is always saved and loaded properly. Master Mode, Trial of the Sword, dying, killing Ganon, dying, etc. all have no effects. The only way to get out of this state is to reset ''the'' flag, and unfortunately, there is nothing the player can do to reset IsPlayed flags.  


=== Runes (amiibo, Master Cycle Zero) ===
=== 希卡石道具(amiibo 跟摩托車)===


Just like other parts of the game, the amiibo and Master Cycle Zero runes use IsPlayed_Demo flags to decide whether rune usage should be restricted. So let's start with a list of relevant [[Demo]] cutscenes and their descriptions (translated + Nintendo's internal official description in Japanese):
amiibo 跟摩托車能不能使用是以 IsPlayed_Demo 系列的 flag 來控制的。下面些介紹各種 Demo。(其中包括任天堂的官方日文名稱。)


* Demo141_0: Hyrule Castle Citadel - Windblight Ganon Appears ハイラル城本丸・カースガノン(風)登場
* Demo141_0: Hyrule Castle Citadel - Windblight Ganon Appears ハイラル城本丸・カースガノン(風)登場
Line 77: Line 77:
* Demo141_2: Hyrule Castle Citadel - Thunderblight Ganon Appears  ハイラル城本丸・カースガノン(雷)登場
* Demo141_2: Hyrule Castle Citadel - Thunderblight Ganon Appears  ハイラル城本丸・カースガノン(雷)登場
* Demo141_3: Hyrule Castle Citadel - Waterblight Ganon Appears  ハイラル城本丸・カースガノン(水)登場
* Demo141_3: Hyrule Castle Citadel - Waterblight Ganon Appears  ハイラル城本丸・カースガノン(水)登場
* Demo142_0: Hyrule Castle Citadel - Ganon's Incomplete Form Appears ハイラル城本丸・不完全体ガノン登場
* Demo142_0: Hyrule Castle Citadel - Ganon's Incomplete Form Appears ハイラル城本丸・不完全体ガノン登場(加儂破蛋而出)
* Demo143_4: Hyrule Castle Citadel · Divine Beast Beam Bullet ハイラル城本丸・神獣ビーム着弾
* Demo143_4: Hyrule Castle Citadel · Divine Beast Beam Bullet ハイラル城本丸・神獣ビーム着弾(四英傑攻擊加儂)
* Demo145_0: Hyrule Castle Citadel · Ganon's Incomplete Form Dies  ハイラル城本丸・不完全体ガノン死亡
* Demo145_0: Hyrule Castle Citadel · Ganon's Incomplete Form Dies  ハイラル城本丸・不完全体ガノン死亡(主殿內的災厄加儂血條歸零)
* Demo146_0: Hyrule Field - Beast Ganon Appears  ハイラル平原・魔獣ガノン登場
* Demo146_0: Hyrule Field - Beast Ganon Appears  ハイラル平原・魔獣ガノン登場(魔獸加農出現在草原上)


For the amiibo rune, if ''Demo146_0'', ''Demo141_{0,1,2,3}'' or ''Demo142_0'' have been played, the player cannot use amiibo.
amiibo 功能在 ''Demo146_0''''Demo141_{0,1,2,3}'''Demo142_0'' 中的任一個播放過後就不能使用。(簡而言之,一旦開始打加儂就不能用 amiibo 補充道具了。)


The Master Cycle Zero checks are slightly different (and it's very obvious they copy-pasted the amiibo code…):
摩托車的檢查雖然不太一樣,但是可以很明顯看出來遊戲設計師先複製貼上 amiibo 的程式碼之後再稍做修改。


* If ''Demo146_0'' has been played, the player is explicitly allowed to use amiibo.
* 播放過 ''Demo146_0'' 後,任天堂允許玩家騎車(用意應該是取代馬)。
* If ''Demo141_{0,1,2,3}'' or ''Demo142_0'' have been played, they cannot use amiibo.
* 如果只有 ''Demo141_{0,1,2,3}'' ''Demo142_0'' 播過,就不能騎車(主殿裡別騎車)。
* Otherwise, Link can use amiibo if he is not on the main map. So Link can spawn the motorcycle in the Trial of the Sword after escaping the Ganon fight.
* 除此之外,林克在 main map 以外的地方都可以騎車,例如劍之試煉裡面。(注意我們在講的是脫出加儂戰之後再進入劍之試煉,不是說正規的劍之試煉裡可以騎車。)


=== EX Quests ===
=== EX 系列任務 ===


If Demo146_0 has been played, the EX Trial of the Sword and Champion's Ballad quests will not start. Nintendo explicitly checks the flag in both cases.
如果 Demo146_0 (魔獸加儂)播過,遊戲就不會給你劍之試煉任務跟英傑之詩任務。任天堂在這兩個任務的 code 都放了檢查。


=== Bow of Light and Master Sword ===
=== 光之弓箭跟大師劍 ===


''LastBossGanonBeastGenerateFlag'' also controls the Bow of Light static spawn. Additionally, the Master Sword will always be in its powered up form ("true form") as long as this flag is set.
''LastBossGanonBeastGenerateFlag'' 出現在大師劍的原始碼裡。在魔獸加儂戰中,大師劍就會一直維持發光狀態(60 攻)。


=== Divine Beast lasers and ancient pillars ===
=== 神獸雷射光跟城堡周圍黑柱 ===


''IsPlayed_Demo145_0'' being set enables "final boss mode" in effect code. The only significant effect is that the divine beast lasers are disabled.
''IsPlayed_Demo145_0'' 的主要效果是,在開始打加儂後把神獸發射的雷射關掉。


''IsPlayed_Demo147_0'' (sealing Ganon cutscene) makes malice disappear and the ancient pillars around Hyrule Castle glow blue.
''IsPlayed_Demo147_0''(薩爾達出現、封印加儂)之後會導致城堡旁的黑色柱子閃著藍色光(本來是紅色)。


=== Instant teleport back to Calamity ===
=== 加儂區 ===


Similarly to ''LastBossGanonBeastGenerateFlag'', ''LastBossIncompleteGanonGenerateFlag'' is set right before entering the Calamity Ganon fight to make him spawn and unset as soon as he's defeated.
''LastBossIncompleteGanonGenerateFlag'' 這個 flag 的功能是記錄林克是不是在主殿內和災厄加儂戰鬥。


This flag results in a strange side effect. Every frame, if this flag is set, and if Link's Y coordinate is lower than 170.0, Link is warped back to (-254.0, 191.0, -1026.0).
它有一個奇怪的後遺症。只要 LastBossIncompleteGanonGenerateFlag 還是開的,而且林克的 Y 座標(海拔)低於 170,林克就會被傳送回 (-254.0, 191.0, -1026.0)(主殿內)。


== The Bird-Man minigame escape exploit ==
== 鳥人小遊戲 ==


The Bird-Man minigame can also be used to escape Ganon. That exploit is the reason why keeping the Bow of Light and still being able to play the game normally was possible on 1.2.0.
鳥人小遊戲曾經可以用來脫出加儂戰(1.2.0 版)。


The way it works is that you start the minigame and then trigger the Calamity Ganon cutscene by landing in the castle sanctum. As soon as the cutscene finishes, the minigame ends and Link has now successfully escaped Ganon, with all of the aforementioned endgame flags still set.
鳥人小遊戲的原理是:在丘陵之塔接受挑戰,然後試圖飛到城堡主殿內。主殿觸發的過場動畫播完了之後,布拓會把你拉回丘陵之塔,以此達成離開主殿的目的。


In versions up to 1.1.2, this causes serious breakage as most of those end-game flags are written to save files (including ''FirstInHyruleCastleBossRoom'').
1.1.2 版及之前,這樣做(讓 NPC 把你帶出主殿)會導致很嚴重的後果:上面那些不能這樣不能那樣的 flag 會被寫進你的存檔裡,同時又沒有已知的方法可以關掉那些 flage,這樣一來存檔就爛了。


Someone made a video about it and Nintendo apparently thought the glitch was serious enough to warrant a special patch.
有人做了一個這個主題的影片。任天堂大概覺得這很嚴重,就把它修掉了。


=== Nintendo's fix ===
=== 任天堂的修理 ===


The simple and easy fix would have been to just not spawn the Calamity trigger while the minigame is active, but that's not how they decided to patch it.
我們以為一個很簡單的修法是:如果你正在鳥人研究任務裡,就不要生成加儂。但是任天堂決定不這麼做。


Because they knew about the effects of the ''FirstInHyruleCastleBossRoom'' flag, they changed GameData configuration to ''not'' save that flag, so NPCs, shrines, enemies and towers wouldn't disappear even after doing the glitch.
任天堂的決定是 ''FirstInHyruleCastleBossRoom''(其中一個被寫入存檔後會導致嚴重後果的 flag)將不會被寫進存檔。也因為如此,NPC 之類的東西在你用上面那個方法脫出之後就不會消失。


They also edited the birdman minigame event (''MiniGame_HillTower_BirdMan'') to always manually reset some effects of landing in the castle sanctum:
They also edited the birdman minigame event (''MiniGame_HillTower_BirdMan'') to always manually reset some effects of landing in the castle sanctum:
Line 132: Line 132:
* While the minigame is active, the ''FirstInHyruleCastleBossRoom'' flag is cleared ''every frame''.
* While the minigame is active, the ''FirstInHyruleCastleBossRoom'' flag is cleared ''every frame''.


It's as hacky as it sounds, and unsurprisingly it led to the 1.2.0 spawn glitch and required them to make yet another patch in 1.3.0.
就如同你心裡想的,這種修法一點都不完美。這就導致 1.2.0 版發生了額外的問題,然後任天堂被逼得又更新了 1.3.0 版。


== References ==
== References ==
Line 140: Line 140:
<references/>
<references/>


[[Category:Game mechanics]]
[[Category:Game mechanics{{#translation:}}]]

Latest revision as of 04:25, 28 June 2021

Other languages:

脱出加侬战是一个程错。林克拿到光之弓箭后,可以把光之弓箭带出魔兽加侬所在的光墙内。由于游戏仍然认为林克在和魔兽加侬对战,光墙外的世界和平常的世界有些许差异。根据版本不同,具体的差异也各有不同。

这个条目记载了逃出光墙后外面世界会发生的事情。

影响

存挡、传送、消磨时间、进入神庙

一旦游戏到了对战加侬的阶段,玩家就不能再存档,也不能用减号传送。

这是因为 LastBossGanonBeastGenerateFlag 这个 flag。林克从城堡被萨尔达传送到草原上跟魔兽加侬对战时,游戏会用这个 flag 召唤魔兽加侬出来,同时,游戏会打开 SaveProhibition(不存挡)、WarpProhibition(不传送)、 KillTimeProhibition(不消磨)、EnterDungeonProhibition(不进庙)。

这些禁止事项在游戏里被重复利用了好些次。例如,沃托里的赌博小游戏在赌博开始跟结束时都会打开、关闭某些 flag。所以有玩家发现,离开光墙后只要去玩赌博小游戏,小游戏结束后这些限制也随之解除。

载入画面后的诡异动画

Demo025_0 (which is played every time Link is spawned in the main world) checks the IsPlayed_Demo146_0 flag. If it is set, the player's Demo_AccelerateHorse action is called. This explains why Link does a strange looking animation whenever the player loads a save that was made after escaping Ganon.

血月

TimeWorldMgr 里有提到,LastBossGanonBeastGenerateFlag 这个 flag 会阻止子夜的血月。不过这仅仅意味着血月不会自然出现,血月的计时器还是会继续增加。

和其他禁止事项不同的是,游戏里没有哪个机制会把 LastBossGanonBeastGenerateFlag 关掉,所以我们不能期待把它关掉后让血月自然出现。不过,睡觉跟消磨时间后出现的血月(如果血月本该在当晚发生而林克直接睡到早晨的话)用的是另一套独立的检查系统,所以还是可以触发。这部分八成是任天堂漏看了。

消失的 NPC、神庙、敌人

这个部分是大部分人都会立刻发现的:在脱出光墙后,一部分的神庙、希卡塔、NPC、敌人将不复存在。

之所以会只有“一部分”不见,是因为 Placement 的源代码里有一段奇怪的逻辑。

如果

  • [1.0.0-1.2.0] FirstInHyruleCastleBossRoom is set
  • [1.3.0+] FirstInHyruleCastleBossRoom or IsPlayed_Demo145_0 is set

而且一个地图上的“东西”

  • is not Enemy_GanonBeast and profile[1] name is Enemy, GelEnemy, SandWorm (sic), Prey, Dragon or Guardian, or contains NPC (e.g. NPC, DemoNPC)
  • or is called exactly Enemy_Guardian_A
  • or has Entrance or WarpPoint or Terminal in its unit config name

那就不生成这个东西。

如果一个这个东西跟别的东西绑定在一起的话,整组东西都不会生成。

解释

之所以 NPC、大部分的敌人、神庙都会不见,是因为源代码里刻意把它们过滤掉了。

同时我们也可以看到为什么希卡塔看起来和平常不一样。希卡塔是跟 FldObj_DownloadTerminal_A_01(滴入地图的东西)和 DgnObj_WarpPoint_A_01(地板上的蓝色圆形传送点)绑定的,而游戏并不打算生成后两种东西,从而排除了整个塔。

类似的,神庙的内部也通通不见了。这是因为整个神庙都跟坐镇的导师绑定了,而导师是 ...... NPC。

有趣的地方来了。德谷多吊桥(台地西边,石柱上有西诺克斯地方)虽然是地形的一部分却不会生成。这是因为吊桥内部的名字叫 FldObj_RockBridgeGerudoEntrance_A_01,而有含有 Entrance 的东西都被当作神庙电梯一起禁止了。

另一方面,沙漠里的拉吉克虽然是怪物却会生成。这是因为拉吉克叫做 Sandworm,而禁止名单里写的是 SandWorm(注意大小写)。

任天堂的补丁(补坏的)

FirstInHyruleCastleBossRoom is set when the player triggers the final boss sequence in the castle sanctum. On the other hand, IsPlayed_Demo145_0 is set after Calamity Ganon ("incomplete Ganon") dies.

So why does 1.3.0 check IsPlayed_Demo145_0 in addition to FirstInHyruleCastleBossRoom?

This is because Nintendo changed some save data in 1.2.0 in an attempt to patch a closely related glitch: since 1.2.0, the FirstInHyruleCastleBossRoom flag is not loaded from or written to save files anymore. Therefore, to ensure that FirstInHyruleCastleBossRoom always has the correct value, they must now rely on a different endgame flag, and they chose IsPlayed_Demo145_0 for this purpose.

Astute readers will notice that 1.2.0 is the version on which reloading a save causes NPCs, shrines and other excluded actors to reappear. This is simply because a save reload on 1.2.0 and any newer version causes FirstInHyruleCastleBossRoom to be reset to its default value (false), so on 1.2.0 none of that special spawning logic is used.

1.3.0 is the first version on which this trick doesn't work anymore because IsPlayed_Demo145_0 is always saved and loaded properly. Master Mode, Trial of the Sword, dying, killing Ganon, dying, etc. all have no effects. The only way to get out of this state is to reset the flag, and unfortunately, there is nothing the player can do to reset IsPlayed flags.

希卡石道具(amiibo 跟摩托车)

amiibo 跟摩托车能不能使用是以 IsPlayed_Demo 系列的 flag 来控制的。下面些介绍各种 Demo。(其中包括任天堂的官方日文名称。)

  • Demo141_0: Hyrule Castle Citadel - Windblight Ganon Appears ハイラル城本丸・カースガノン(风)登场
  • Demo141_1: Hyrule Castle Citadel - Fireblight Ganon Appears ハイラル城本丸・カースガノン(火)登场
  • Demo141_2: Hyrule Castle Citadel - Thunderblight Ganon Appears ハイラル城本丸・カースガノン(雷)登场
  • Demo141_3: Hyrule Castle Citadel - Waterblight Ganon Appears ハイラル城本丸・カースガノン(水)登场
  • Demo142_0: Hyrule Castle Citadel - Ganon's Incomplete Form Appears ハイラル城本丸・不完全体ガノン登场(加侬破蛋而出)
  • Demo143_4: Hyrule Castle Citadel · Divine Beast Beam Bullet ハイラル城本丸・神獣ビーム着弾(四英杰攻击加侬)
  • Demo145_0: Hyrule Castle Citadel · Ganon's Incomplete Form Dies ハイラル城本丸・不完全体ガノン死亡(主殿内的灾厄加侬血条归零)
  • Demo146_0: Hyrule Field - Beast Ganon Appears ハイラル平原・魔獣ガノン登场(魔兽加农出现在草原上)

amiibo 功能在 Demo146_0Demo141_{0,1,2,3}、'Demo142_0 中的任一个播放过后就不能使用。(简而言之,一旦开始打加侬就不能用 amiibo 补充道具了。)

摩托车的检查虽然不太一样,但是可以很明显看出来游戏设计师先复制贴上 amiibo 的程式码之后再稍做修改。

  • 播放过 Demo146_0 后,任天堂允许玩家骑车(用意应该是取代马)。
  • 如果只有 Demo141_{0,1,2,3}Demo142_0 播过,就不能骑车(主殿里别骑车)。
  • 除此之外,林克在 main map 以外的地方都可以骑车,例如剑之试炼里面。(注意我们在讲的是脱出加侬战之后再进入剑之试炼,不是说正规的剑之试炼里可以骑车。)

EX 系列任务

如果 Demo146_0 (魔兽加侬)播过,游戏就不会给你剑之试炼任务跟英杰之诗任务。任天堂在这两个任务的 code 都放了检查。

光之弓箭跟大师剑

LastBossGanonBeastGenerateFlag 出现在大师剑的源代码里。在魔兽加侬战中,大师剑就会一直维持发光状态(60 攻)。

神兽激光光跟城堡周围黑柱

IsPlayed_Demo145_0 的主要效果是,在开始打加侬后把神兽发射的激光关掉。

IsPlayed_Demo147_0(萨尔达出现、封印加侬)之后会导致城堡旁的黑色柱子闪著蓝色光(本来是红色)。

加侬区

LastBossIncompleteGanonGenerateFlag 这个 flag 的功能是记录林克是不是在主殿内和灾厄加侬战斗。

它有一个奇怪的后遗症。只要 LastBossIncompleteGanonGenerateFlag 还是开的,而且林克的 Y 座标(海拔)低于 170,林克就会被传送回 (-254.0, 191.0, -1026.0)(主殿内)。

鸟人小游戏

鸟人小游戏曾经可以用来脱出加侬战(1.2.0 版)。

鸟人小游戏的原理是:在丘陵之塔接受挑战,然后试图飞到城堡主殿内。主殿触发的过场动画播完了之后,布拓会把你拉回丘陵之塔,以此达成离开主殿的目的。

在 1.1.2 版及之前,这样做(让 NPC 把你带出主殿)会导致很严重的后果:上面那些不能这样不能那样的 flag 会被写进你的存档里,同时又没有已知的方法可以关掉那些 flage,这样一来存档就烂了。

有人做了一个这个主题的影片。任天堂大概觉得这很严重,就把它修掉了。

任天堂的修理

我们以为一个很简单的修法是:如果你正在鸟人研究任务里,就不要生成加侬。但是任天堂决定不这么做。

任天堂的决定是 FirstInHyruleCastleBossRoom(其中一个被写入存档后会导致严重后果的 flag)将不会被写进存档。也因为如此,NPC 之类的东西在你用上面那个方法脱出之后就不会消失。

They also edited the birdman minigame event (MiniGame_HillTower_BirdMan) to always manually reset some effects of landing in the castle sanctum:

  • An event was added to the landing event to warp the player back to the tower (-1746.71, 329.065, -772.847)… except the player is already being warped to the same exact coordinates in the original code. They might have wanted to be _extra sure_ the warp would work.
  • When landing, the IsPlayed_Demo141_{0,1,2,3} and LastBossIncompleteGanonGenerateFlag flags are manually cleared. Yes, they forgot to clear any other flag such as IsPlayed_Demo145_0 that may have been set.
  • While the minigame is active, the FirstInHyruleCastleBossRoom flag is cleared every frame.

就如同你心里想的,这种修法一点都不完美。这就导致 1.2.0 版发生了额外的问题,然后任天堂被逼得又更新了 1.3.0 版。

References

  1. There are different kinds of actors (entities) in BotW. Profiles are pretty much categories that allow Nintendo to reuse the same base code internally for different but similar actors.