Text Displacement

Note:

This glitch is still very much in investigation. Information is not yet complete.

Description

Discovered by Jacquaid

When speaking with an NPC during a cutscene, there is a location in memory that keeps track of the dialogue boxes that are to be shown during the cutscene. As the cutscene progresses, the location in memory is progressively filled with 1's, and when the cutscene dialogue finishes, the location is reverted back to all 0's.

By speaking with an NPC in a "broken cutscene" state, this location in memory is still filled in as before, but the player still has control in most cases and is not forced to progress through all of the dialogue box sets, thus being able to leave the memory with 1's in place instead of 0's. Having this memory partially filled can result in some oddities when bringing this memory state to other NPCs and cutscenes.

Specifics of each use will depend on the number of times the NPC is spoken to, as the values required differ for each effect.

Note: Visiting the title screen in any manner clears the memory region associated with this glitch. As a result, it does not persist through savewarping or resetting!

Technical Aspect:

At bytes 80406F98 and 80406F9C are sixteen bits. The ones shown below that are x's are irrelevant for this glitch, and the / defines the boundary between the bytes.

xxxx-x000/00xx-xxxx

The five 0's present are the five major bits associated with this glitch. As Text Displacement is triggered, these 0's are changed to 1's one at a time with each time the glitch is triggered (i.e. triggering the glitch once makes the corresponding bits 100/00, twice gives 110/00, three times 111/00, etc.). As with a normal cutscene that uses these bits, the bits will be reset to 0's on completion of broken dialogue.

Note that not every cutscene uses these bits. In general, cutscenes that are handled in-game and involve dialogue use these, but this is merely a generalization and not a rule. An important note is that the postman does not use these bits.

There is also another set of four bits at 10648DC5 (address needs conversion, others were at 10648DC0 and 10648DC1), specifically the last four at that value. Gor Coron uses these as well, but this may not be the only place they are used. More investigation is being done on this range.

Jacquaid has a pastebin of information on this located here.

Examples and Uses:

Jovani Bottle Glitch

Discovered by Habreno, solved by Jacquaid

By setting only the first bit of Text Displacement, then going to Jovani's House and speaking with Jovani with at least 20 Poe Souls obtained, the cutscene where Jovani gives Link the bottle of Great Fairy Tears is skipped entirely (the game progresses as though the bottle were already obtained) and the bottle is rendered permanently Lost Forever.

HD note: A partial fix was implemented for this in TPHD, where the first bit is force-unset before the cutscene triggers, thus awarding the bottle even if Text Displacement was obtained. However, the Poe Lantern, which uses the second bit, was not protected and thus can be rendered Lost Forever if the Jovani Cutscene is viewed with Text Displacement obtained at least twice.

Goron Mines entry with Master Sword without Spinner

Discovered by Jacquaid

By setting at least the second bit of Text Displacement, then going to the top of Death Mountain and speaking with Gor Coron with the Master Sword obtained, the game will give the textboxes associated with Gor Coron being defeated in the sumo event. As a result, the events afterward associated with his defeat play out - the elevator shortcut is opened on top and the goron wall blocking Goron Mines is removed. While the gorons blocking entry to the dungeon do not visibly move until the room is reloaded, it is possible to roll past them to enter the dungeon after speaking to Gor Coron but without reloading the room.

As a reminder, as the title screen cannot be viewed after obtaining Text Displacement and the Spinner is not yet obtained, Early Elevator cannot be used to reach the top of Death Mountain until after displacing Gor Coron's text.

Ooccoo Text Displacement

The first time the player warps out of a dungeon with Ooccoo, there is extra text introducing Ooccoo Jr. to the player for the first time. This text changes the TD value. If the player then takes damage and dies while pulling Ooccoo Sr., the warp text will appear while Link has 0 health. Doing this while having a bottled fairy and warping away with Ooccoo Sr. will cause Link to die and then immediately revive from the fairy before the introduction text plays, granting TD. The player can then modify the TD value by pulling Ooccoo Sr. again.

(Note: Pulling Ooccoo Sr. again immediately after dying then reviving to set up TD will softlock. The player must either die or enter a load zone to avoid this.)

This only works with Ooccoo Sr., and on the first time ever warping out, since that is the only time the introduction text plays.

Last updated 07/15/2022 – bewildebeest