Cutscenes
Contents
Finding Cutscenes
There are a few ways that you can locate a cutscene.
Cutscene Pointer
You can always find the start of a cutscene in memory by watching the cutscene pointer with a memory viewer. It's located at 80213D88 in the Debug Rom, and 801CA208 in v1.0. Be aware that the cutscene pointer does not null itself once the cutscene has finished playing, but as long as you don't leave the immediate area this won't be an issue.
Scenes
Many, but not all, cutscenes are stored within scene files. These are either referenced directly from the scene header, or by a table in code that triggers a cutscene on entering from a specific entrance.
Header References
The main scene header can contain a command (the 0x18 command) that defines extra headers for the purpose of creating different variations of the same scene. Some of these extra headers exist with the purpose of playing a single cutscene. This is done by defining the 0x17 command, which in turn points to the start of the cutscene header by a segment offset.
The main header and thee first three alternate headers (if they exist) will never define the 0x17 command, as they are reserved as being playable setups (typically they define up to 4 combinations of day/night child/adult variations).
See Scenes and Rooms for more information on the header commands.
Entrance Cutscenes
Cutscene Commands
Cutscenes begin with a simple 8 byte header of the following form:
/*0x00*/ int Commands; // number of commands in the cutscene.
/*0x04*/ int EndFrame; // Last frame of the cutscene.
- If the number of commands or end frame variables are negative, the cutscene will not be parsed, and normal play will resume.
- Other commands can (and typically will) terminate the cutscene before the end frame is reached.
Following that are the cutscene commands. Every command is at least 8 bytes long. Valid commands are 0x01-0x90, 0x3E8, and -1. Commands outside of this range will behave like the 0x0B command.
Marker | Description | Variables | Usage | Notes |
---|---|---|---|---|
00000001 | Camera Positions | wwwwxxxx yyyyzzzz | w = ? x = start frame y = end frame z = ? |
Combine with 0002 command |
Position List | wwrr0000 aaaaaaaa
xxxxyyyy zzzz0000 |
w = FF on last entry, 00 for more entries r = camera roll (signed byte, unused) a = angle of view in degrees (float, unused) x y z = x,y,z position |
Combine with 0002 command entry | |
00000002 | Camera Focus Points | wwwwxxxx yyyyzzzz | w = ? x = start frame y = end frame z = ? |
Combine with 0001 command |
Focus Point List | wwrrffff aaaaaaaa
xxxxyyyy zzzz0000 |
w = 00 for more entries, FF for last entry r = Camera Roll (signed byte). Positive rotates image clockwise. f = frames to reach the next point a = angle of view in degrees (float) x y z = x,y,z position |
Combine with 0001 command entry | |
00000003 | Special Execution | 00000001 Actor Path struct |
See Actor Path for variable usage, and Actor Entity 0003 for actions | |
00000005 | Camera Positions Relative to Link |
wwwwxxxx yyyyzzzz | w = ? x = start frame y = end frame z = ? |
Combine with 0006 command |
Position List | wwrrffff aaaaaaaa
xxxxyyyy zzzz0000 |
w = 00 for more entries, FF for last entry r = Camera Roll (signed byte). Positive rotates image clockwise. f = frames to reach the next point a = angle of view in degrees (float) x y z = x,y,z position |
Combine with 0006 command entry | |
00000006 | Camera Focus Points Relative to Link |
wwwwxxxx yyyyzzzz | w = ? x = start frame y = end frame z = ? |
Combine with 0005 command |
Focus Point List | wwrrffff aaaaaaaa
xxxxyyyy zzzz0000 |
w = 00 for more entries, FF for last entry r = Camera Roll (signed byte). Positive rotates image clockwise. f = frames to reach the next point a = angle of view in degrees (float) x y z = x,y,z position |
Combine with 0005 command entry | |
00000009 | Unknown | 0000xxxx | x = Entries | |
Unknown 0009 Entry | aaaabbbb ccccdddd eeeeffff |
a = ? b = Frame Start? c = Frame End? d = ? e = ? f = ?, possibly padding |
||
00000013 | Textbox | 0000xxxx | x = Entries | End Frame waits for text/action to finish before continuing cutscene. The frame counter will be stopped at one less than the End Frame value |
No Text | FFFFssss eeeeFFFF
FFFFFFFF |
s = start frame e = end frame |
||
Display Text | iiiissss eeeeoooo
yyyynnnn |
i = message id s = start frame e = end frame o = Type. Set 0 for standard dialog, 1 for yes/no branching dialog y = yes/no top option branch n = yes/no bottom option branch |
||
Learn Song |
iiiissss eeee0002
mmmmFFFF |
i = Ocarina Song Action s = start frame e = end frame m = message id displayed when making a mistake. 088B is used here. |
||
0000002D | Scene Transition Effects | 00000001 xxxxyyyy
zzzz[zzzz] |
00000001 = constant? x = transition (probably the same as entrance/exit transitions) y = start frame z = end frame (seems to be repeated) |
|
0000008C | Set Time | eeeeeeee | e = Number of Entries | |
Time Change Entries | ????ssss ????hhmm ???????? |
s = Start Frame h = Hours m = Minutes |
||
000003E8 | Cutscene Terminator Asm execution |
00000001 xxxxyyyy
zzzz[zzzz] |
00000001 = constant? x = jump table index for asm execution, range 0x01 to 0x77 y = start frame z = end frame (seems to be repeated) |
The jump table is located at 8013AF78 in the Debug Rom. The addresses in the jump table point to the machine code that executes after the cutscene. Used for setting the next entrance/cutscene, giving items, toggling Link's age. |
FFFFFFFF | Cutscene Terminator | 00000000 | Commands beyond this one will not be parsed, even if the number of commands is higher | |
0000aaaa | Actor Command | 0000yyyy | a = Marker, where a relates to a specific actor. y = Number of entries. |
Marker values are NOT the same numbers used to load an actor in a room. |
Actor Path | aaaabbbb ccccdddd eeeeffff gggggggg hhhhhhhh iiiiiiii jjjjjjjj kkkkkkkk llllllll mmmmmmmm nnnnnnnn oooooooo |
a = Actor Action/Animation b = Start frame for path. c = End frame for path. d e f = Rotation vertex coordinate (x,y,z) g h i = Path start vertex coordinate (x,y,z) j k l = Path end vertex coordinate (x,y,z) m n o = Vertex normal for the path, single precision floats. |
Command Subroutines
A large number of command markers are actually mapped to identical functionality.
NTSC 1.0
The following is a list of all subroutines of function 80055F38 (the cutscene parser) related to processing a command marker.
Id | Sub | Desc | Functionality | CMD | Entry | Size | Ref |
---|---|---|---|---|---|---|---|
0003 | 80056030 | Special Execution | JAL 8005C690 | 08 | 30 | 0054 | 1 |
0004 | 80056084 | Set Lighting | 80052D14 is executed | 08 | 30 | 0054 | 1 |
0056 | 800560D8 | Play Background Music | 80052D54 is executed | 08 | 30 | 0054 | 1 |
0057 | 8005612C | Stop Background Music | 80052D90 is executed | 08 | 30 | 0054 | 1 |
007C | 80056180 | Fade Background Music | 80052DCC is executed | 08 | 30 | 0054 | 1 |
0009 | 800561D4 | ? (Camera Related) | 80052E4C is executed | 08 | 0C | 0054 | 1 |
008C | 80056228 | Set Time | 80052E90 is executed | 08 | 0C | 0054 | 1 |
000A | 8005627C | Actor Action 0 (Link) | Set Cutscene Struct + 0x24 to point to current actor action | 08 | 30 | 0070 | 1 |
000F | 800562EC | Actor Action 1 | Set Cutscene Struct + 0x28 to point to current actor action | 08 | 30 | 0070 | 18 |
000E | 8005635C | Actor Action 2 | Set Cutscene Struct + 0x2C to point to current actor action | 08 | 30 | 0070 | 18 |
0019 | 800563CC | Actor Action 3 | Set Cutscene Struct + 0x30 to point to current actor action | 08 | 30 | 0070 | 14 |
001D | 8005643C | Actor Action 4 | Set Cutscene Struct + 0x34 to point to current actor action | 08 | 30 | 0070 | 13 |
001E | 800564AC | Actor Action 5 | Set Cutscene Struct + 0x38 to point to current actor action | 08 | 30 | 0070 | 9 |
002C | 8005651C | Actor Action 6 | Set Cutscene Struct + 0x3C to point to current actor action | 08 | 30 | 0070 | 7 |
001F | 8005658C | Actor Action 7 | Set Cutscene Struct + 0x40 to point to current actor action | 08 | 30 | 0070 | 8 |
0031 | 800565FC | Actor Action 8 | Set Cutscene Struct + 0x44 to point to current actor action | 08 | 30 | 0070 | 7 |
003E | 8005666C | Actor Action 9 (Navi) | Set Cutscene Struct + 0x48 to point to current actor action | 08 | 30 | 0070 | 1 |
008F | 800566DC | Actor Action 10 | Set Cutscene Struct + 0x4C to point to current actor action | 08 | 30 | 0070 | 1 |
0001 | 8005674C | Camera Positions | JAL 80055630, A0 = S3, A1 = S2, A2 = S1, A3 = 0 | 0C | 10 | 001C | 1 |
0005 | 80056768 | Camera Positions (Link) | JAL 80055630, A0 = S3, A1 = S2, A2 = S1, A3 = 1 | 0C | 10 | 001C | 1 |
0002 | 80056784 | Camera Focus Points | JAL 80055784, A0 = S3, A1 = S2, A2 = S1, A3 = 0 | 0C | 10 | 001C | 1 |
0006 | 800567A0 | Camera Focus Points (Link) | JAL 80055784, A0 = S3, A1 = S2, A2 = S1, A3 = 1 | 0C | 10 | 001C | 1 |
0007 | 800567BC | ? | JAL 800558E0, A0 = S3, A1 = S2, A2 = S1, A3 = 0 | 08 | 30 | 001C | 1 |
0008 | 800567D8 | ? | JAL 80055ABC, A0 = S3, A1 = S2, A2 = S1, A3 = 0 | 08 | 30 | 001C | 1 |
03E8 | 800567F4 | Cutscene Terminator | 80052F34 is executed | 08 | 08 | 0018 | 1 |
0013 | 8005680C | Text Box | 80055C64 is executed when in range | 08 | 0C | 0064 | 1 |
002D | 80056870 | Scene Transition Effects | 80054C50 is executed | 08 | 08 | 001C | 1 |
000B | 8005688C | Non-Command | Advances to next command, does nothing | 08 | 30 | 0058 | 32 |
FFFF | 800568E4 | End | Marks End of Cutscene | 08 |
This is a table of marker subroutines, defined by a jump table at 8010757C. Markers 0x3E8 and -1 (listed as FFFF) are not part of this table, but were added for the sake of completeness.
ID | Jump | A | Info |
---|---|---|---|
0001 | 8005674C | Camera Positions | |
0002 | 80056784 | Camera Focus Points | |
0003 | 80056030 | Special Execution | |
0004 | 80056084 | Set Lighting | |
0005 | 80056768 | Camera Positions (Link) | |
0006 | 800567A0 | Camera Focus Points (Link) | |
0007 | 800567BC | ||
0008 | 800567D8 | ||
0009 | 800561D4 | ||
000A | 8005627C | 0 | Link |
000B | 8005688C | Non-Command | |
000C | 8005688C | Non-Command | |
000D | 8005688C | Non-Command | |
000E | 8005635C | 2 | |
000F | 800562EC | 1 | |
0010 | 8005635C | 2 | |
0011 | 800562EC | 1 | |
0012 | 800562EC | 1 | |
0013 | 8005680C | Text Box | |
0014 | 8005688C | Non-Command | |
0015 | 8005688C | Non-Command | |
0016 | 8005688C | Non-Command | |
0017 | 800562EC | 1 | |
0018 | 8005635C | 2 | |
0019 | 800563CC | 3 | |
001A | 8005688C | Non-Command | |
001B | 8005688C | Non-Command | |
001C | 8005688C | Non-Command | |
001D | 8005643C | 4 | |
001E | 800564AC | 5 | |
001F | 8005658C | 7 | Light Arrow? (LACS) |
0020 | 8005688C | Non-Command | |
0021 | 8005688C | Non-Command | |
0022 | 800562EC | 1 | |
0023 | 8005635C | 2 | |
0024 | 800563CC | 3 | |
0025 | 8005643C | 4 | |
0026 | 800564AC | 5 | |
0027 | 800562EC | 1 | Rauru |
0028 | 8005635C | 2 | Sage ??? |
0029 | 800563CC | 3 | Darunia (Chamber of Sages) |
002A | 8005643C | 4 | Ruto (Adult) |
002B | 800564AC | 5 | Saria |
002C | 8005651C | 6 | Sage ??? |
002D | 80056870 | Scene Transition Effects | |
002E | 800562EC | 1 | |
002F | 800564AC | 5 | |
0030 | 8005635C | 2 | |
0031 | 800565FC | 8 | |
0032 | 800563CC | 3 | Darunia (Death Mountain Trail) |
0033 | 8005643C | 4 | |
0034 | 8005658C | 7 | |
0035 | 8005643C | 4 | |
0036 | 800564AC | 5 | |
0037 | 8005651C | 6 | |
0038 | 8005688C | Non-Command | |
0039 | 8005658C | 7 | |
003A | 8005658C | 7 | |
003B | 8005688C | Non-Command | |
003C | 800565FC | 8 | |
003D | 8005688C | Non-Command | |
003E | 8005666C | 9 | Navi |
003F | 8005643C | 4 | |
0040 | 8005635C | 2 | |
0041 | 8005643C | 4 | |
0042 | 8005643C | 4 | |
0043 | 800563CC | 3 | |
0044 | 8005635C | 2 | |
0045 | 800563CC | 3 | |
0046 | 8005635C | 2 | |
0047 | 8005688C | Non-Command | |
0048 | 800563CC | 3 | |
0049 | 8005688C | Non-Command | |
004A | 800563CC | 3 | |
004B | 8005643C | 4 | |
004C | 800562EC | 1 | |
004D | 8005651C | 6 | |
004E | 8005635C | 2 | |
004F | 800564AC | 5 | |
0050 | 8005635C | 2 | |
0051 | 800563CC | 3 | |
0052 | 8005643C | 4 | |
0053 | 800564AC | 5 | |
0054 | 8005651C | 6 | |
0055 | 800562EC | 1 | |
0056 | 800560D8 | Play Background Music | |
0057 | 8005612C | Stop Background Music | |
0058 | 8005658C | 7 | |
0059 | 800565FC | 8 | |
005A | 8005651C | 6 | |
005B | 8005688C | Non-Command | |
005C | 8005688C | Non-Command | |
005D | 800562EC | 1 | |
005E | 8005635C | 2 | |
005F | 8005688C | Non-Command | |
0060 | 8005688C | Non-Command | |
0061 | 8005688C | Non-Command | |
0062 | 8005688C | Non-Command | |
0063 | 8005688C | Non-Command | |
0064 | 8005688C | Non-Command | |
0065 | 8005688C | Non-Command | |
0066 | 8005688C | Non-Command | |
0067 | 8005688C | Non-Command | |
0068 | 8005688C | Non-Command | |
0069 | 800562EC | 1 | |
006A | 800563CC | 3 | |
006B | 800562EC | 1 | |
006C | 8005643C | 4 | |
006D | 8005688C | Non-Command | |
006E | 800562EC | 1 | |
006F | 800565FC | 8 | |
0070 | 8005688C | Non-Command | |
0071 | 8005688C | Non-Command | |
0072 | 800565FC | 8 | |
0073 | 8005658C | 7 | |
0074 | 8005635C | 2 | |
0075 | 800563CC | 3 | |
0076 | 8005635C | 2 | |
0077 | 800562EC | 1 | |
0078 | 8005635C | 2 | |
0079 | 800563CC | 3 | |
007A | 8005688C | Non-Command | |
007B | 800562EC | 1 | |
007C | 80056180 | Fade Background Music | |
007D | 8005635C | 2 | |
007E | 800563CC | 3 | |
007F | 8005643C | 4 | |
0080 | 800564AC | 5 | |
0081 | 8005651C | 6 | |
0082 | 8005658C | 7 | |
0083 | 8005635C | 2 | |
0084 | 800563CC | 3 | |
0085 | 8005643C | 4 | |
0086 | 800565FC | 8 | |
0087 | 800564AC | 5 | |
0088 | 8005651C | 6 | |
0089 | 8005658C | 7 | |
008A | 800562EC | 1 | |
008B | 800562EC | 1 | |
008C | 80056228 | Set Time | |
008D | 8005635C | 2 | |
008E | 800565FC | 8 | |
008F | 800566DC | A | |
0090 | 800562EC | 1 | |
03E8 | 800567F4 | Cutscene Terminator | |
FFFF | 800568E4 | End |
Ocarina Song Action Ids
Value | Purpose |
---|---|
01 | Free play Ocarina (Meant for normal gameplay) |
02 | Sheik plays Minuet of Forest |
03 | Sheik plays Bolero of Fire |
04 | Sheik plays Serenade of Water |
05 | Sheik plays Requiem of Spirit |
06 | Sheik plays Nocturne of Shadow |
07 | Sheik plays Prelude of Light |
08 | Saria plays Saria's Song |
09 | Malon sings Epona's Song |
0A | Impa whistles Zelda's Lullaby |
0B | Stone teaches Sun's Song |
0C | Zelda plays Song of Time |
0D | Guru-Guru plays Song of Storms |
0E | ? |
0F | Play back Minuet (Gives song if successful) |
10 | Play back Bolero (Gives song if successful) |
11 | Play back Serenade (Gives song if successful) |
12 | Play back Requiem (Gives song if successful) |
13 | Play back Nocturne (Gives song if successful) |
14 | Play back Prelude (Gives song if successful) |
15 | Play back Saria's Song (Gives song if successful?) |
16 | Play back Epona's Song (Gives song if successful?) |
17 | Play back Zelda's Lullaby (Gives song if successful?) |
18 | Play back Sun's Song (Gives song if successful?) |
19 | Play back Song of Time (Gives song if successful?) |
1A | Play back Song of Storms (Gives song if successful?) |
Actor Entities
Marker | Actor | Action Param (v) |
---|---|---|
0003 | Deku Tree | 000B Tree dies |
Earthquake Camera Effect | 0010 begin shaking 0011 end shaking | |
Lake Hylia Water | 0015 Lake Hylia water rises | |
Title Logo (0171) | 001E fades in logo 001F fades out logo | |
0004 | Set Environment Setting | 0001 is first environment setting, etc. |
000A | Link (0000) | See Link Action Parameters below |
0027 | Rauru | 0003 Raise hands (giving Light Medallion) |
0028 | Saria | 0003 Raise hands (giving Forest Medallion) |
0029 | Darunia | 0003 Raise hands (giving Fire Medallion) |
002A | Ruto (Adult) | 0001 Hide under the ground 0002 Rise out of the ground 0003 Raise hands (giving Water Medallion) |
003E | Navi (0018) | 0003 Bounces up and down in a rhythmic pattern |
003D | Path/animation for something | |
0055 | Princess Zelda (Adult) | 0001 Invisible, for Sheik transformation 0002 Idle 0003 Walking |
0056 | Music Changer | Song to play = (v - 1) |
007C | Music Fade Out | 0003 = ? 0004 Default Value Duration sets fade length?, max 255 frames? |
Link Action Parameters
0001 Walk cycle?
0002 Brisk Walk?
0003 Shocked
0006 Turn around and look up in shock
0007 Look at hands, as if an item was in them
0008 Raise hands as if lifting an item
0009 Put down hands
000A Get off ground and brush off
000D Floating down from crystal
000E Look at self
000F Get wrecked
0010 pick self up
0011 pull ocarina (puts ocarina model in hand)
0012 hold item at side?
0013 turn and lift item (chests)
0015 different blinking pattern?
0016 squint? (possibly Zora Sapphire cutscene)
0017 fall off the log (Zora Sapphire cutscene)
0018 Surface water, idle swimming
0019 Receive Zora Sapphire in water
001A Draw sword defensively (Ganondorf encounter, kokiri sword model in hand)
001B Knocked to the ground?
001C Sleeping on bed
001D Sleeping Roll over
001E Wake up
001F Nod, get off the bed
0020 Struck by Ganondorf's attack (Zelda Escape)
0021 Get up, look to left
0027 Look up to the sky
0028 Slowly back up a few steps
0029 Put hands on surface (Zelda's Crystal?)
002A Pull out sword/shield
002B Run up to Zelda's Crystal and put hands on
002C Pound on Zelda's Crystal
002D Look up, watching Zelda's Crystal rise
002E Turn around
002F Lower hand (after 0030)
0030 Shield Eyes (Zelda->Sheik)
0031 Look around
0032 Stepping onto Rainbow Bridge
0033 Looks at the falling Gorons in shock (looks left, snaps head right)
0034 Get down on one knee, Bongo Shadow Cutscene? (sword/shield need to be put into hands)
0035 Lying flat on the ground
0036 Pick self up after 0035, shake head
0037 Shield out, sword drawn back in spin attack stance (stiff knees), (sword/shield need to be put into hands)
0038 Idle standing, precedes 0039
0039 Give up Ocarina of Time (need ocarina in hand)
003A Take hand away from Ocarina of Time
003C Lifted up by blue warp
003D Look around at surroundings
003E Learn Ocarina Song
003F Return to neutral stance after 003E
0044 Look right, happy (Look to Zelda after Tower Collapse
0045 Look up, happy (look to Navi after Tower Collapse
0046 Stand alert, not happy (loud noise after Tower Collapse
0047 Spin attack stance, animated rocking (need Sword/Shield in hand)
0048 Play with sword (reverts to animation 0047 after for some reason)
004A Flashing red, launched forward to the ground, get up
004B Look to the sky, surprised look
004C Notice tremor, ground shaking
004D Pull Master Sword, Ganon Fight?
Exit Parameters
Register States
S0 = Game Play V1 = Save Data Context
^^ Merged some information from a few posts by Twili and xdaniel on the GCN
Values
Id | Addr | Action (Exodus) |
---|---|---|
00 | 00000000 | Crash |
01 | 800530AC | Cutscene Map – Dorf riding through Flames (after Deku) |
02 | 800530E8 | Cutscene Map – Three Gods (after Deku) |
03 | 80053124 | Gerudo Valley – Din… (after Deku) |
04 | 80053160 | Death Mountain Trail – Nayru (after Deku) |
05 | 8005319C | Kokiri Forest – Farore (after Deku) |
06 | 800531D8 | Cutscene Map – Triforce creation (after Deku) |
07 | 80053214 | Kokiri Forest – Receive Kokiri Emerald (after Deku) |
08 | 80053250 | ToT – After Drop/Pull MS |
09 | 80053318 | Gerudo Valley – With [Din’s] strong flaming arms (After Deku) |
0A | 80053354 | Link’s House – Intro |
0B | 80053390 | Kokiri Forest – Intro (Navi Flies) |
0C | 800533CC | Death Mountain Trail – After Goron Ruby |
0D | 80053400 | Zora’s Fountain – After Zora’s Sapphire |
0E | 80053438 | Kokiri Forest – After Kokiri Emerald |
0F | 8005346C | ToT – Kokiri Emerald (unused CS) |
10 | 800534A8 | ToT – Goron Ruby (unused CS) |
11 | 800534E4 | ToT – Zora’s Sapphire (unused CS) |
12 | 80053520 | ToT – After Pulled MS First Time |
13 | 80053558 | DMT – After DMT Intro |
14 | 80054C3C | Crash |
15 | 80053590 | Lake Hylia – Water Rises |
16 | 800535CC | Colossus – Requiem |
17 | 8005361C | Cutscene Map – CURSE YOU (Credits) |
18 | 80053658 | Jabu Jabu – Intro CS |
19 | 8005368C | Chamber of Sages – Light Medallion |
1A | 800536D4 | ToT – Kokiri Emerald (unused CS) |
1B | 80053710 | ToT – Goron Ruby (unused CS) |
1C | 8005374C | ToT – Zora’s Sapphire (unused CS) |
1D | 80053788 | Chamber of Sages – Forest Medallion |
1E | 800537C0 | Chamber of Sages – Fire Medallion |
1F | 80053810 | Chamber of Sages – Water Medallion |
20 | 8005384C | Field – LACS Flashback |
21 | 80053894 | Field – After Hylia Owl? |
22 | 800538C8 | Cutscene Map – Dorf after Pulled MS |
23 | 80053904 | Field – Intro Zelda Escape |
24 | 80054C3C | Do nothing |
25 | 80054C3C | Do nothing |
26 | 8005393C | Cutscene Map – Light Arrow Cutscene |
27 | 80053974 | ToT – Light Arrow Cutscene Zelda Reveal |
28 | 800539AC | ToT – Light Arrow Cutscene Get Light Arrows |
29 | 800539F0 | Hylia – After Blue Warp |
2A | 80053A24 | Kak – After Played Storms in Windmill |
2B | 80053A5C | Windmill – After Draining Well? |
2C | 80053A8C | ToT – After Opened DoT? |
2D | 80054C3C | Do nothing |
2E | 80053AC0 | ToT – After Pulled MS First Time |
2F | 80053AF0 | Kak – Nocturne CS Part 2 |
30 | 80053B4C | Colossus – After Requiem |
31 | 80053B84 | ToT – After LACS |
32 | 80053BB4 | Kak – After Nocturne |
33 | 80053BE8 | Field – After ZL |
34 | 80053C24 | ToT – SoT |
35 | 80053C60 | Field – After SoT |
36 | 80053C94 | Gerudo Valley – Credits |
37 | 80053CDC | Gerudo Fortress – Credits |
38 | 80053D18 | Kak – Credits |
39 | 80053D54 | Death Mountain Trail – Credits (lower) |
3A | 80053D90 | Goron City – Credits (unused) |
3B | 80053DCC | Lake Hylia – Credits |
3C | 80053E08 | Zora’s Fountain – Credits (unused) |
3D | 80053E44 | Zora’s Domain – Credits |
3E | 80053E80 | Kokiri Forest – Credits (near Deku Tree) |
3F | 80053EC8 | Kokiri Forest – Credits (long pan) |
40 | 80053F04 | Hyrule Field – Credits (epona running) |
41 | 80053F40 | Lon Lon Ranch – Credits (first) |
42 | 80053F88 | Kakariko – After DMT Owl |
43 | 80053FBC | Hyrule Field – from Grotto? (adult) |
44 | 80053FF0 | Cutscene Map – Fire (Forest Medallion CS) |
45 | 8005402C | Kokiri Forest – End of Forest Medallion CS |
46 | 80054060 | DMT – Credits (Sages) |
47 | 800540A0 | ToT – Credits |
48 | 8005412C | Zelda’s Courtyard – Credits |
49 | 8005416C | Lon Lon Ranch – Credits (first) |
4A | 800541B4 | Lon Lon Ranch – Credits (Gorons Dancing) |
4B | 800541F4 | Lon Lon Ranch – Credits (Market People) |
4C | 8005423C | Lon Lon Ranch – Credits (Malon) |
4D | 80054284 | Lon Lon Ranch – Credits (King Zora and Kokiri) |
4E | 800542CC | Lon Lon Ranch – Credits (Shopkeepers) |
4F | 80054308 | Lon Lon Ranch – No Cutscene? |
50 | 80054308 | Lon Lon Ranch – No Cutscene? |
51 | 80054308 | Lon Lon Ranch – No Cutscene? |
52 | 80054308 | Lon Lon Ranch – No Cutscene? |
53 | 80054308 | Lon Lon Ranch – No Cutscene? |
54 | 80054308 | Lon Lon Ranch – No Cutscene? |
55 | 80054308 | Lon Lon Ranch – No Cutscene? |
56 | 80054308 | Lon Lon Ranch – No Cutscene? |
57 | 80054308 | Lon Lon Ranch – No Cutscene? |
58 | 80054308 | Lon Lon Ranch – No Cutscene? |
59 | 80054308 | Lon Lon Ranch – No Cutscene? |
5A | 80054308 | Lon Lon Ranch – No Cutscene? |
5B | 80054308 | Lon Lon Ranch – No Cutscene? |
5C | 80054308 | Lon Lon Ranch – No Cutscene? |
5D | 80054308 | Lon Lon Ranch – No Cutscene? |
5E | 8005433C | Lon Lon Ranch – Near East Gate? |
5F | 80054370 | If Forest, Fire, Water Temples (Save Ctx + 0xEDC) are complete, play opening of Door of Time else if Scene Setup = 8, warp to Sacred Forest Meadow else if Scene Setup = 9, warp to Death Mountain Trail else if Scene Setup = 10, warp to Lake Hylia and play the post Water Temple CS |
60 | 80054490 | Colossus – After Spirit Blue Warp |
61 | 80054524 | Graveyard – After Shadow Blue Warp |
62 | 800545AC | Death Mountain Crater – After Fire Blue Warp |
63 | 800545E4 | Sacred Forest Meadow – After Forest Blue Warp (2nd+ time) |
64 | 8005461C | Kokiri Forest – After Forest Blue Warp |
65 | 8005465C | Colossus – After Silver Gauntlets |
66 | 80054690 | ToT – After LACS |
67 | 800546C4 | Title Screen – Field |
68 | 80054700 | Title Screen – Nabooru |
69 | 800547F8 | Graveyard – You’ve learned Sun’s Song |
6A | 80054834 | Royal Family Tomb – After Learned Sun’s Song |
6B | 80054868 | Ganon’s Castle – Forest Trial Dispelled |
6C | 8005489C | Ganon’s Castle – Water Trial Dispelled |
6D | 800548D0 | Ganon’s Castle – Shadow Trial Dispelled |
6E | 80054904 | Ganon’s Castle – Fire Trial Dispelled |
6F | 80054938 | Ganon’s Castle – Light Trial Dispelled |
70 | 8005496C | Ganon’s Castle – Spirit Trial Dispelled |
71 | 800549A0 | Ganon's Castle – Dispell Main Barrier if conditions met |
72 | 80054A90 | Hyrule Field – Enter from LW first time |
73 | 80054AC4 | Field – After SoT/ZL? |
74 | 80054AFC | Colossus – After Spirit Blue Warp |
75 | 80054B74 | Hyrule Field – Zelda in the Sky (Credits) |
76 | 80054BD4 | Ganon Battle – Tower Collapsing |
77 | 80054C00 | Zelda’s Courtyard – Receive Letter |
Position Tweening Algorithm
The following formula is known to work for Cameras. Actor positioning may be different.
In order to tween between points, a minimum of 4 points is required.
tween = p0 * (1 - t)^3/6 + p1 * (t^3/2 - t^2 + 2/3) + p2 * (-t^3/2 + t^2/2 + t/2 + 1/6) + p3 * (t^3/6)
Hard-Coded Stuff
The sound-effect triggers for various actions are hard-coded to trigger on a specific frame. Some examples:
- All of the medallion's "flash" sfxs
- Deku Tree's death
- Probably the rumbling sfx when the Ganondorf attacks the Temple of Time
Minor facial expression changes are hard-coded as well. Some examples:
- Darunia's face while pounding Link into the ground during the Goron Ruby cutscene
Relevant Actors
- ovl_En_Viewer (002A, Nightmare Cutscene Actors)
- ovl_En_Nb (00C3, Nabooru)