This page is available in multiple languages:

Cutscene Pointers

The cutscene pointer stores the location in memory in which the previously watched cutscene is stored. The reason this is important is that when preforming a wrong warp, if the scene you arrive at has no cutscenes defined, then the game will attempt to play whatever is stored at the cutscene pointer. When this happens, there is a chance that the previously watched cutscene has already been overwritten in memory, meaning that the game will attempt to interpret garbage data as a cutscene. In many cases this will cause the game to crash. In other cases the game will instead play a very long cutscene. Of note for these long cutscenes, if the length of the cutscene is over 65536 frames (about 54.5 minutes), then the cutscene will never end, resulting in an softlock.

Interpreting Cutscene pointer

For the majority of uses when preforming a wrong warp which will use the cutscene pointer we want to ensure that no cutscene attempts to play. To do this, we need to ensure that either the cutscene lasts for 0 frames, or contains 0 commands. A negative value for cutscene length or commands is interpreted as zero as well. Practically, what needs to happen is that the value pointed to by the cutscene pointer (the number of commands in the cutscene) is either 0 or negative, and the value at cutscene pointer + 0x4 (the length of the cutscene in visual frames) is also either 0 or negative.

As an example, in the Ganondoor wrong warp used in the Classic Kak speedrun, our last watched cutscene is the Deku Tree intro, which on version 1.2 has a cutscene pointer of 0x80382d60, then upon entering tower collapse, the value at 0x80382d60 will be 34143917, and the value at 0x80382d64 is -30539216. As such the game will see it is trying to start a cutscene which lasts 0 frames, and will as such choose not to begin the cutscene. This results in no cutscene being played, so the wrong warp works as expected.

Being able to read the cutscene pointer value like this can speed up the process of verifying if a cutscene will work as desired.

Heap manipulation wrong warps

While the main objective with any cutscene pointer manipulation is to ensure that no cutscene plays, in specific cases we can force unintended cutscenes to play. Common applications of this are to begin the final part of the Light Arrow Cutscene, or to start the credits, finishing the game.

Cutscene pointers on the actor heap

To be able to manipulate the value at a cutscene pointer, we need to first ensure that the cutscene pointer is in the actor heap. Any cutscene pointer which begins with 0x801 or 0x802 originates from an actor, and as such is in the actor heap whereas cutscene pointers which begin in 0x803 reside in scene data, and thus cannot be manipulated with the precision we need for a heap manipulation wrong warp to be done.

Storing existing cutscene data

Whenever you enter a scene all of the cutscenes defined in that scene are loaded into memory, and do not unload unless overwritten by something else. As such if there is a part of an existing cutscene we want to make use of we just need to enter the scene that cutscene is defined in, and then make our route such that the cutscene we want is never overwritten. A common order to do this is to load Hyrule Field, Kokiri Forest, Deku Tree, and then Ghoma's Room which will result in the hyrule field cutscene data staying loaded into memory.

Manipulating the value at the cutscene pointer

By manipulating the order in which actors load into memory we can force a bombchu to load in at the exact same point in memory as the cutscene pointer was. Then we ensure that link has either a negative or 0 Y coordinate, and then an angle which defines an offset to the stored point in memory, and then pulling out a bombchu at the same point in memory as the cutscene pointer will force our selected cutscene to play.

Cutscene Pointer Values (1.0)

The following table contains a list of version 1.0 address values that remain stored in the cutscene pointer (801CA208 in 1.0) after watching a given cutscene. Cutscene data may or may not exist at the address listed depending on a number of factors. It's also worth noting that CS pointer values can be effected in some cases depending on actions taken by the player.

Cutscene Value
Jabu Fish CS 801E3F84
Prelude of Light Warp 801E6680
Door of Time 801E8CB0
Shadow Medallion 801EC398
MS (Pull) 801EF870
MS (Drop) 801EFD20
Fire Medallion 801F0104
MS (Pull) 801F3990
MS (Drop) 801F4320
Pedestal of Time 801F4430
Ruto CS in Jabu Jabu 801F7CA0 (can vary)
Spirit Medallion 801FA618
Minute of Forest Warp 80204370
Requiem of Spirit Warp 802087B0
Bolero of Fire Warp 8020E490
Nocturne of Shadow Warp 8020E590
Serenade of Water Warp 80210430
Deku Tree Meet 80215FC0 (can vary)
Zelda Chase CS 80362BF4
Game Intro 80365080
OoT CS 803662E0
ZL 80368410
Goron Ruby 80369FA0
DMT 8036DD90
Hyrule Field 8036E200
Water Medallion 8036EB30
Nocturne of Shadow 8036F620
Requiem 803703B0
Hyrule Castle 803703C0
Fire Arrows 80370570
Drain Well 803708C0
Lake Hylia 80370F80
Silver Gauntlets 80371A90
Kakariko Village 80372D70
Desert Colossus 80372E30
Serenade of Water 803735C0
Minuet of Forest 80373BA0
Saria's Song 80375350
Epona's Song 80375700
Zora's Sapphire 80375FF0
Light Medallion 803768D0
Gerudo Valley 80376A00
Magic 80376AB0
Farore's Wind 80377D40
Zora Fountain 80377D60
Double Magic 80377D60
Learn Song of Time 803783A0
Lon Lon Ranch 80378730
Din's Fire 80378C00
Prelude of Light 80378F00
Double Defense 80378F50
Bolero of Fire 80379070
Nayru's Love 80379B20
Gerudo Fortress 8037AF90
Tower Collapse 8037BAC0
Light Arrows 8037C150
DMC 8037C170
Kokori Emerald 8037CAE0
Royal Family Tomb 8037DD20
Nabooru Knuckle 1 8037E840
Zora Domain 8037EED0
Temple of Time 8037EFE0
Fairy Ocarina 8037F220
Nabooru Knuckle 2 8037FC10
Graveyard 8037FDC0
Goron Bracelet 8037FF10
Forest Medallion 80380110
Dispell Barrier 80380C00
Zelda** 80381064
Light Trial 80381140
Fire Trial 80381590
Forest Trial 80381940
Spirit Trial 80381CF0
Water Trial 80382120
Wrong Song (Darunia) 80382310
Rauru (Pre-LACS) 80382330
Rainbow Bridge 80382450
Deku Intro 803825B0
Sun's Song 80382780
Goron City 80382930
ZL Skip 80383484
Ganon's Castle 80384090
Shadow Trial 80384530
DMT Owl 80384590
Lake Hylia Owl 80384610
Song of Storms 80384790
Jabu Intro 803847A0
DC Intro 803847C0
Last updated 07/23/2026 – Blue