It's a bird... It's a plain... It's Ocarina of Time!

Unused Content

Animations

Unused Link Animations

Never forget the jump strike.

Unused NPC Animations

What do the dolls do when no one is watching?

Atmosphere

Unused Camera Settings

Camera, camera, on the wall, what's the fairest angle of them all?

Unused Environment Settings

Through sun and snow we all shall go.

Cutscenes

Alternate Scene Setups

The ghosts of development past.

Unused Cutscenes

I bet you haven't seen these scenes.

Resources

Unused Sound Effects

They say Hylians have big ears in order to hear the voices of the gods...

Unused Text

How can flags be real if our eyes aren't real?

Unused Textures

Here dwells the lost language of the Hylia.

Data

Unused Spawns

Pull a Pocahontas and jump off the waterfall.

Uncategorized

Alternate Elemental Arrows

Using GameShark codes, you can equip the individual elemental arrow icons to the C buttons, rather than having the magic combine with your bow. These items are used for display only on the pause screen, but function as normal elemental arrows.

Item GameShark code Ice Arrow 8011A63A 000C Fire Arrow 8011A63A 0004 Light Arrow 8011A63A 0012 Fairy Bow + Ice Arrow 8011A63A 0039 Fairy Bow + Fire Arrow 8011A63A 0038 Fairy Bow + Light Arrow 8011A63A 003A

Beam Blade Attack

To do:

Remnants like what?

In pre-release screenshots like the one at right, Link is seen using a beam blade attack similar to the one he is able to use when his hearts are full in previous Zelda games. While this attack never made it into the final version of the game, remnants of it still exist in the code. The beam blade can be partially restored in the game using these leftovers.





(Source: Dark_link-77 (Discovery & Restoration))

Dark Link Behavior

Dark Link may be the enemy with the most extensive coding in the game, and the programmers certainly considered all options. Notably, he reacts to the player casting Nayru's Love, which will cause him to shield a lot and generally get out of the way, even though you cannot normally get that item before defeating Dark Link since it's located outside the Desert Colossus, which requires crossing the Haunted Wasteland, which in turn requires either the Longshot (obtained from beating Dark Link) or Hover Boots (obtained in the Shadow Temple, which can only be accessed after beating the Water Temple).

Seeing as the actor is just a shell which inputs buttons to the Link actor, Dark Link can also swim and dive in water, as well as climb ledges. If you are Young Link, Dark Link can also use crawling holes. However, because Dark Link has no animation for getting hit while swimming, it will instead cause him to slowly float to the sky.

Iron Knuckle Head

In the pre-boss room before Twinrova in the Spirit Temple, Link fights a brainwashed Nabooru inside an Iron Knuckle's armor. If you position the camera so that it clips into this Iron Knuckle's model, you will see Nabooru's head. If you do the same to any other Iron Knuckle in the game, you will also see a head that looks similar to Nabooru's with the same textures but has significantly different structure and design. The head is wrapped in chainmail, which covers almost everything below the nose. Also, due to the way the head is modeled, the head has no eyebrows.

The most interesting differences are that the earrings are texture-less gold hoops and that the design of the head ornament is different. This alternate head model is either an earlier version of Nabooru's head, or it was meant to be directly revealed in the same way as Nabooru's, showing that all Iron Knuckles are actually Gerudos.

Either way, regular Iron Knuckles vanish when defeated, so their true face is normally never shown. The head itself was removed in the 3DS remake, but it's still present in the model, just not in-game (with the logical exception of the one that Nabooru actually comes out of). However, when they shed enough armor in combat, a distinctly human neckline can still be seen in all versions (including Majora's Mask).

Regular Iron Knuckle Pre-Boss Iron Knuckle

Sold Out Item

"SOLD OUT" is an icon that is normally only displayed in the Bombchu Shop in the Back Alley for Bombchus that you have already bought, as well as the inventory menu after selling a mask. However, if hacked into Link's inventory as an item, it works exactly like the Master Sword because it's linked to the same action ( 0x03 ). The GameShark code 8011A638 002C (US 1.0) adds SOLD OUT to Link's B button.

Triforce Transition

There's a very cool Triforce transition in the game, however, it is not used anywhere. You can force the Triforce transition to appear with the GameShark code.

Version Gameshark code NTSC 1.0 8011B9ED 0001 NTSC (GC) 8011C565 0001 NTSC (Master Quest)(GC) 8011C545 0001 PAL 1.0 801197ED 0001 PAL (GC) 80119D75 0001

Unused Child Malon Spawn in Talon's House

Inside Child Malon's actor file, there are three lines of code that spawn her in Talon's House at night after completing the quest to wake Talon in Hyrule Castle. However, Link cannot normally enter Talon's House at night. Trying to enter the door spawns a dialogue box with Talon saying that Malon is sleeping. Even if the player were able to bypass the dialogue box and enter the house via hacking, Malon would still not appear, because the map does not load an actor or object for her.

However, adding her actor and object to the map and bypassing the dialogue box shows that Malon exhibits the same behavior as she does when she appears in Lon Lon Ranch during the day, teaching Link Epona's Song.





Song of Time blocks

To do:

someone needs to check MQ Dodongo's Cavern; that has Song of Time blocks accessible as child and adult.

Song of Time blocks in the game are actually programmed to travel through time; that is they're present on the map either as adult or child, and playing the Song of Time will transfer the Song of Time block from the child to the adult timeline and vice versa. This is actually kind of hinted at in Goron City, in the lava room, where the Song of Time blocks are present as child by default but can be transferred to adult using the Song of Time, which makes it clear that the developers wanted to make use of this mechanic to solve puzzles. Except for the single case in Goron City, all Song of Time blocks in the game are accessible only as adult because they're found either in the adult dungeons or in Dampé's Grave, so this mechanic goes unused. On top of that, a handful of dungeons have the Song of Time blocks set as temporary flags that get reset as soon as you leave the dungeon, so the state of the Song of Time block doesn't get saved either way.

The Song of Time blocks in the Ice Cavern (in the room with the block puzzle) defy this logic as they are not present either as child or adult until you play the Song of Time to make them appear.

Development Leftovers

Early Rooms

Even rooms have to change several times before they're ready to go.

Prerendered Images

Oh, that you would rend the heavens and come down, that these backgrounds would tremble before you!

Debug Content

Nearly a decade after Ocarina of Time was released, a debug version of the game's Master Quest spinoff was leaked. The ROM was used by testers at Nintendo of Europe to test Master Quest prior to its GameCube release.

Decompressed by default, it had many debug features that weren't present in the retail versions of Ocarina of Time or Master Quest. These included a memory editor, audio debugger, and a number of test maps.

While the retail version of Ocarina of Time does not contain as many debug features as the prototype, a few are still present.

Map Select

The Map Select allows you to go to any area in the game. See the Map Select section of the Debug ROM article for a detailed analysis.

Retail Game Debug ROM

The Debug ROM contains nine test maps that aren't in the retail version of the game, while the retail game contains entries for two test maps that aren't in the Debug ROM. View the Test Maps section of this article for more details.

Inventory Editor

The Inventory Editor allows you to manually edit Link's inventory, equipment, and quest items.

To activate it, use the code and press Start on Controller 1 to open the Pause Menu, then L to open the Inventory Editor.

Version Gameshark code NTSC v1.0 D01C84B5 0020

801D8DD7 0002 NTSC v1.1 D01C8675 0020

801D8F97 0002 NTSC v1.2 D01C8D75 0020

801D9697 0002 USA (GC) D01C9675 0020

801D9F97 0002 Japan (Master Quest)(GC) USA (Master Quest)(GC) D01C9635 0020

801D9F57 0002 PAL (Master Quest)(GC) D01C6E35 0020

801D7757 0002 PAL v1.0 D01C64F5 0020

801D6E17 0002 PAL v1.1 D01C6535 0020

801D6E57 0002 PAL (GC) D01C6E75 0020

801D7797 0002 Chinese (iQue) D01D5A35 0020

801E6357 0002 Traditionnal Chinese (iQue) D01D4DF5 0020

801E5717 0002

View the Inventory Editor section of the Debug ROM article for more details.

Memory Usage

Version Gameshark code NTSC v1.0 801C6F64 0001 NTSC v1.1 801C7124 0001 NTSC v1.2 801C7824 0001 NTSC (GC) 801C8144 0001 NTSC (MQ)(GC) 801C8104 0001 Europe v1.0 801C4FA4 0001 Europe (GC) 801C5944 0001 Chinese (iQue) 801D4504 0001 Traditional Chinese (iQue) 801D38C4 0001

Crash Debugger

Crash Debugger

Everything you wanted to know about the crash debugger on one convenient subpage.

Erase Save Data Code

On the title screen, pressing D-Up, D-Down, D-Left, D-Right, Start, B, C-Down, L, C-Right, C-Left, A, C-Up, R, Z on Controller 3 resets the save data. This can be used in case the save data was corrupted, which could cause a crash on the file select menu. After the first input, there is a 16-frame timer for hitting the next input within the sequence (which reverts the timer back to 16 with each correct input).





(Source: mzxrules)

A build date can be seen in the crash debugger and can be found in memory.

Version RAM Address Build Messages US/JP V1.0 0x80006800 zelda@srd44 98-10-21 04:56:31 US/JP V1.1 0x80006800 zelda@srd44 98-10-26 10:58:45 EU V1.0 0x80006D20 zelda@srd44 98-11-10 14:34:22 US/JP V1.2 0x80006D30 zelda@srd44 98-11-12 18:17:03 EU V1.1 0x80006D20 zelda@srd44 98-11-18 17:36:49 JP GameCube 0x80006540 zelda@srd44 02-10-29 23:49:53 JP Master Quest 0x80006540 zelda@srd44 02-10-30 00:15:15 US GameCube 0x80006540 zelda@srd44 02-12-19 13:28:09 US Master Quest 0x80006540 zelda@srd44 02-12-19 14:05:42 US MQ Debug 0x80012340 zelda@srd44 03-02-21 00:16:31 EU GameCube 0x80006540 zelda@srd44 03-02-21 20:12:23 EU Master Quest 0x80006540 zelda@srd44 03-02-21 20:37:19 iQue Chinese 0x8000AB60 build@toad.routefree.com 03-10-22 16:23:19 iQue Traditional Chinese 0x8000A610 tyu@linuxdev3 06-10-13 14:17:43

Ura Zelda Leftovers

An add-on was originally planned for Ocarina of Time. Known by the development nickname Ura Zelda, this expansion would make use of the 64DD, a disk drive accessory for the Nintendo 64.

Title Screen Disk Tag

It is possible to trick the game into believing you have inserted an Ura Zelda disk. This can be done with a Japanese-region Ocarina of Time ROM by changing the bytes at 0xB9CCD0 from Ocarina of Time's identifier, EZLJ , to the identifier of another 64DD disk in your possession. The game will then recognize the 64DD disk as Ura Zelda.

This will cause the game to display a Disk tag on the title screen. In addition, save files with Disk tags appended will no longer be greyed out. However, the game crashes if you try to load them, perhaps because it is trying to access non-existent files on the disk.

Alternatively, you can enable the code D00EB36E 0001 801F0ADB 0004 (NTSC 1.0) while on the title screen to display the Disk tag.

Save File Disk Tag

By using the codes below, it is possible to append a Disk tag to your save file.

Version GameShark code NTSC 1.0 801E4EC0 0001 NTSC 1.1 801E5080 0001 NTSC 1.2 801E5780 0001 NTSC (GC) 801E6080 0001 USA (MQ)(GC) 801E6040 0001 Japan (MQ)(GC) 801E6080 0001 Europe v1.0 801E2F08 0001 Europe v1.1 801E2F48 0001 Europe (GC) 801E3888 0001 Europe (MQ)(GC) 801E3848 0001 Chinese (iQue) 801F2440 0001 Traditional Chinese (iQue) 801F1800 0001

The tagged file is greyed out by default and cannot be opened unless a 64DD is attached to the system, and the game is tricked into thinking you have the correct disk inserted using the method detailed in the section above.

Test Maps

The retail version of the game contains two Map Select entries that were presumably used to test the 64DD add-on.

64DD TEST n64dd SetDiskVersion

The first entry is 64DD TEST n64dd SetDiskVersion. Selecting this option normally freezes the game. It would've been used to enable the 64DD Mode in the game. However, if you have a 64DD attached to your system, the following message will be displayed:

Japanese English ディスクを差し込んでください。 Please insert a disk.

No Ura Zelda disk has ever been leaked, so it is impossible to test this option using the right disk. If you insert another 64DD disk, the following message appears:

Japanese English 間違ったディスクが差し込まれてい

る可能性があります。正しいディス

クに交換してください。



ディスクを取り出してください。 It's possible that you have

inserted the wrong disk. Please

switch it for the correct disk.



Please remove the disk.

64DD TEST2 n64dd SetDiskVersion

The second entry is 64DD TEST2 n64dd SetDiskVersion. Selecting this option has no effect, even if a 64DD is attached to the system. This would've turned off the 64DD Mode in the game, hence why it does nothing.

Error Messages

Error messages indicating that the wrong 64DD disk is inserted are another relic from Ocarina of Time's past. This text can be found starting at 0xB9CDF0 in a decompressed 1.0 ROM. The messages were even translated into English.

Check to see if the proper disk is inserted. Please insert the disk the correct disk. Do not remove the disk when the access light is flashing. Please read the instruction manual for details. Please read the instruction manual for details. Please insert a disk. Please insert the disk again. Please remove the disk.

These messages can be viewed on a decompressed US-region Ocarina of Time ROM by attaching a 64DD to your system, then changing the bytes at 0xB96B0A in ROM (or $1D2C5A in RAM) from FF FF to 00 00 . If these bytes are not changed, the N64 enters an infinite loop while checking the region of the attached 64DD. This is because the region of the attached 64DD is, by necessity, Japanese, as the accessory never got an overseas release.

In addition, there is also an error message indicating that the Expansion Pak is not inserted. This is due to the fact that the Expansion Pak is required to use the 64DD.

Are you sure the Expansion Pak is inserted correctly?





Function of ovl_64dd

Ocarina of Time 1.0 contains a file called ovl_64dd that performs the following functions:

4D50 Disk 0x785C8 (LBA25) LBA 25: 1DC000-1E0D17 (Size: 0x4D18) Copy 1DD060-1DD177 (Offset 0x1060 of LBA 25) to 1D9C30-1D9D47 (Size: 0x118) Var0x0 - Var0x4 Var0x8 - Var0xC 801C6F30 - Copy 64DD LBA Block? Args: A0 = Destination S0/A1 = Offset S1/A2 = Size 801C7E80 - Read whatever 64DD stuff? A2 = Var0x0 - Var0x4 T1 = Var0x0 + A2 T0 = Var0x8 - Var0xC SP 8011F0C8 $SP + 0x20 = T0 $SP + 0x18 = T1 $SP + 0x24 = A2 Data: -LBA 25 Offset 0x1060- Memory Patch 0x0 - Source Start (Base Offset 0x1DC000) 0x4 - Source End 0x8 - Destination Start (Memory Address) 0xC - Destination End (Memory Address) 0x10 - Pointer to Pointer to routine 800FB4E0 - VROM Replacement Disk (part of "code" file) 9 entries by default (thx Zoinkity) 0x0 - VROM1 Start 0x4 - VROM1 End 0x8 - VROM2 Start 0xC - VROM2 End 0x10 - unknown 0x11 - unknown 0x12 - >0 = load from disk 0x13 - written, 0 = loaded from cart, 1 = loaded from disk 80121220 - Pointer to Disk function pointers (Zoinkity) +0 in 800AD4C0 after calling, sets 80121220 = p->table of these function pointers +4 in 800AD51C if 64dd hooked, call this function and set detection byte to 0 +C ???; called later in 8009CEEC +10 ???; called in 8009A750, near start +14 ???; called at end of 8009A5C0 +18 ???; called at start of 8006C340 accepts: A0=[8011BF10, which is p->800F72D8] +1C ???; called in 8006C2CC, second, before setting 8011BF10 = 0 accepts: A0=[8011BF10] +20 ???; called at end of 8006C340 +24 ???; called in 8006C2CC, first +28 at 8006C0D0; replacement for 0x976000 (map_i_static) accepts: A0, ??? +2C ???; called at end of 80066DF0 +30 ???; called in 80066EC0 with A0 = 8011BF00 before setting 8011BF00 = 0 accepts: A0=[8011BF00] +3C ???; called at end of 8005BACC +40 ???; sole purpose of 8005BC44 +44 +48 in 8009CEEC V0 = p->entry replacing entry A0 in table A1 accepts: A0=index, A1=p->table [800FB4E0] incoming entries are 0x14 long; if entry[12] > 0, appears to replace +54 ???; called in 8009A750, and if V0 skips calling 80056C70(S1) accepts: A0 +58 ???; called in 800E162C accepts: A0=[80112E34 = 8010A94C], A1=[80112E38 = 8010EA8C], A2=[80112E3C = 80112CAC] +60 called in 800DC838; if V0, replaces cart load from 0x966000 (staff_message_data_static) accepts: A0, ??? +64 called in 800DC838; if V0, replaces cart load from 0x8EB000 (jpn_message_data_static) accepts: A0, ??? +68 called in 800DC838; if V0, replaces cart load from 0x92D000 (nes_message_data_static) accepts: A0, ??? +6C ???; called in 80082790 accepts: A0, A1=[800FBD18, a table of function pointers] +70 ???; called in 80000D28 accepts: A0=, A1, A2, A3, SP+10, SP+14, SP+18 +74 ???; called in 800A0BD0 accepts: A0 +78 V0 = p->data in bank+offset A1 in table A2 accepts: A0=p->struct, A1=entry, A2=p->table [800EFE14]





Files Replaced

ovl_64dd would have rewritten the following files with files on the Zelda disk:

Scene File Title Card

Image File Location ydan_scene g_pn_06 Inside the Deku Tree ddan_scene g_pn_08 Dodongo's Cavern bdan_scene g_pn_07 Inside Jabu-Jabu's Belly Bmori1_scene g_pn_01 Forest Temple HIDAN_scene g_pn_03 Fire Temple MIZUsin_scene g_pn_04 Water Temple jyasinzou_scene g_pn_05 Spirit Temple HAKAdan_scene g_pn_02 Shadow Temple HAKAdanCH_scene g_pn_54 Bottom of the Well

Additionally, the room files for these scenes would likely also be replaced, since most rooms reference textures stored within the scene file.





Miscellaneous Content

Blanked Files

To do:

Sort into proper section, add more detail.

The following files contain no data and were blanked out before the game's release.

01F5 gameplay_object_exchange_static 025F object_warp2 0270 object_efc_flash 0289 object_demo_tre_lgt 0349 object_spot01_objects2 03EE elf_message_ydan 05EF anime_model_1_static 05F0 anime_model_2_static 05F1 anime_model_3_static 05F2 anime_model_4_static 05F3 anime_model_5_static 05F4 anime_model_6_static 05F5 anime_texture_1_static 05F6 anime_texture_2_static 05F7 anime_texture_3_static 05F8 anime_texture_4_static 05F9 anime_texture_5_static 05FA anime_texture_6_static

Some guesses as to the purposes of each file can be made based on their filenames:

gameplay_object_exchange_static was likely an object file that several actors could have depended on. Since files with "static" in their name aren't compressed, it's possible that the bulk of this file might have resided on rom, with the engine loading select assets on the fly.

the object_* files are object files. All object_* files listed here are directly referenced by the game's object table. object_spot01_objects2 would have been an object file specific to Kakariko Village (known as spot01).

elf_message_ydan is one of two "elf_message" files, which contain the data for Navi's main quest hints, specifically the "spontaneous" C-Up hint Navi gives that can alternatively be brought up when Saria's Song is played. While the file is used and loaded into memory when the player is inside a dungeon and contains data for a single message ("Link, Try to keep moving!!"), there is an option that loads no "elf_message" for a given scene that still triggers the same message, suggesting that there might have been a more comprehensive hint system planned for dungeons.

the anime_model_* and anime_texture_* files are unique in that there are no other files in the game that begin with "anime", so the purpose of these files isn't immediately clear.

Subpages

Oddities

The Odd-yssey of Hyrule.

Curious Collision

The better question is "Where can't you use the Hookshot?"

Program Revision Differences

Blood is thicker than bile.

Alternate Languages

All versions have a byte which stores what language to use during play, but in the Japanese/US releases the language cannot be changed. The following GameShark codes will set what language is used.

NTSC Version Japanese English 1.0 8011B9D9 0000 8011B9D9 0001 1.1 8011BB99 0000 8011BB99 0001 1.2 8011C089 0000 8011C089 0001 USA (GC) 8011C551 0000 8011C551 0001 Japan (Master Quest)(GC) USA (Master Quest)(GC) 8011C531 0000 8011C531 0001 Japan (GC) 8011C571 0000 8011C571 0001

The same thing in the iQue versions.

iQue Player Japanese Chinese Chinese 80139349 0000 80139349 0001 Traditional Chinese 80138709 0000 80138709 0001

Title Screen Save File

While technically not unused itself, the title screen is actually using a debug save file. You can access the save file with the below code. This will give you all equipment, songs, and most upgrades. The file name will spell リンク (Link in Japanese). Make a save file in slot 1 with the code on.

Version GameShark Codes NTSC v1.0 81090C3A 403B

81090C78 1000

81090C7A 000B NTSC v1.1 81090C56 403B

81090C94 1000

81090C96 000B NTSC v1.2 8109127A 41CF

810912B8 1000

810912BA 000B Europe 1.0/1.1 8109125A 41AF

81091298 1000

8109129A 000B USA (GC) 8109099A 3F97

810909D8 1000

810909DA 000B Japan (Master Quest)(GC) Europe (GC) 810909CA 3F8B

81090A08 1000

81090A0A 000B Japan (GC) 810909BA 3F9F

810909F8 1000

810909FA 000B USA (Master Quest)(GC) 8109097A 3F8F

810909B8 1000

810909BA 000B Europe (Master Quest)(GC) 810909AA 3F83

810909E8 1000

810909EA 000B

(Source: Punk7890)