Cutscenes

From CloudModding OoT Wiki
Jump to: navigation, search

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

For more information, see 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
???????? eeeeeeee
ffffffff gggggggg
hhhhhhhh iiiiiiii
jjjjjjjj kkkkkkkk
llllllll mmmmmmmm
a = Actor Action/Animation
b = Start frame for path.
c = End frame for path.
d = ?
e f g = Path start vertex coordinate (x,y,z)
h i j = Path end vertex coordinate (x,y,z)
k l m = 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 Can free play Ocarina (why?)
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)

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 = Global Context
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