If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!
Prerelease:The Legend of Zelda: Ocarina of Time/iQue
This is a sub-page of Prerelease:The Legend of Zelda: Ocarina of Time.
In August, 2020, the mysterious hacker 4chan released a number of development resources for a number of first- and third-party Nintendo games, including Ocarina of Time. The files seem to have been resources sent by Nintendo to iQue in order to help them develop the iQue port of the game. Lucky us!
Contents
- 1 ROM Versions
- 2 Unused Functions
- 3 Unused Resources
- 3.1 Actors & Objects
- 3.2 Animations
- 3.3 Cutscenes
- 3.4 Items
- 3.5 Maps
- 3.6 Textures
- 4 Music
- 5 Unused Text
- 6 Ura Zelda Leftovers
- 7 Uncategorized
ROM Versions
- ROM_C: C++ ROM
- ROM_D: Debug ROM for use on an emulator board
- ROM_F: Final ROM
- ROM_S: Show ROM
- ROM_X: Debug ROM for use on real hardware
Unused Functions
Player Abilities
z_ocarina2/z_player.h contains a number of items of interest in its many sections.
Status Flags 1
The following two entries are commented out of the list.
#define P_ACTION_TURN (1<<1) /* Turning Flag */ #define P_ACTION_FIGHT (1<<2) /* Battle Mode Flag */
Player Ability Classes
While nothing in the item list below is commented out, z_player.h has numerous references to items being on A. As such, it clearly dates from a time when players could set an item to a C button, then press the C button to transfer it to and use it by pressing A.
A Button Items
| Enum Name | Notes |
|---|---|
| PLAYER_ABILITY_A_ITEM_NON | No Item |
| PLAYER_ABILITY_A_ITEM_M_SWORD_DEMO | Master Sword Cutscene |
| PLAYER_ABILITY_A_ITEM_FISHING_ROD | |
| PLAYER_ABILITY_A_ITEM_SWORD | |
| PLAYER_ABILITY_A_ITEM_MINISWORD | Kokiri Sword |
| PLAYER_ABILITY_A_ITEM_LONGSWORD | |
| PLAYER_ABILITY_A_ITEM_STICK | |
| PLAYER_ABILITY_A_ITEM_HAMMER | |
| PLAYER_ABILITY_A_ITEM_BOW | |
| PLAYER_ABILITY_A_ITEM_FIRE_BOW | |
| PLAYER_ABILITY_A_ITEM_ICE_BOW | |
| PLAYER_ABILITY_A_ITEM_LIGHT_BOW | |
| PLAYER_ABILITY_A_ITEM_DARK_BOW | Magic arrows removed from the final game. |
| PLAYER_ABILITY_A_ITEM_TWISTAR_BOW | Magic arrows removed from the final game. Misspelling of "Twister", relating to the Forest Medallion once being a Wind Medallion. |
| PLAYER_ABILITY_A_ITEM_SOUL_BOW | Magic arrows removed from the final game. |
| PLAYER_ABILITY_A_ITEM_PACHI | Fairy Slingshot |
| PLAYER_ABILITY_A_ITEM_HOOK | |
| PLAYER_ABILITY_A_ITEM_HOOK2 | |
| PLAYER_ABILITY_A_ITEM_BOMB | |
| PLAYER_ABILITY_A_ITEM_BOMCHU | |
| PLAYER_ABILITY_A_ITEM_BOOM | Boomerang |
| PLAYER_ABILITY_A_ITEM_ICE_MEDAL | Magic ability removed from the final game. Relates to the Water Medallion once being an Ice Medallion. |
| PLAYER_ABILITY_A_ITEM_LIGHT_MEDAL | Magic ability removed from the final game. |
| PLAYER_ABILITY_A_ITEM_DARK_MEDAL | Magic ability either reworked into Nayru's Love or removed from the final game. |
| PLAYER_ABILITY_A_ITEM_TWISTAR_MEDAL | Magic ability removed from the final game. Misspelling of "Twister", relating to the Forest Medallion once being a Wind Medallion. |
| PLAYER_ABILITY_A_ITEM_SOUL_MEDAL | Magic ability removed from the final game. |
| PLAYER_ABILITY_A_ITEM_FIRE_MEDAL | Magic ability either reworked into Nayru's Love or removed from the final game. |
| PLAYER_ABILITY_A_ITEM_MAGIC_NATSU | Deku Nuts |
| PLAYER_ABILITY_A_ITEM_ELF_OKARINA | Fairy Ocarina |
| PLAYER_ABILITY_A_ITEM_OKARINA | |
| PLAYER_ABILITY_A_ITEM_BOTTLE | |
| PLAYER_ABILITY_A_ITEM_BOTTLE_FISH | |
| PLAYER_ABILITY_A_ITEM_BOTTLE_FIRE | |
| PLAYER_ABILITY_A_ITEM_BOTTLE_BUG | |
| PLAYER_ABILITY_A_ITEM_BOTTLE_POH | |
| PLAYER_ABILITY_A_ITEM_BOTTLE_BIGPOH | |
| PLAYER_ABILITY_A_ITEM_BOTTLE_MAIL | Ruto's Letter |
| PLAYER_ABILITY_A_ITEM_BOTTLE_RED | |
| PLAYER_ABILITY_A_ITEM_BOTTLE_BLUE | |
| PLAYER_ABILITY_A_ITEM_BOTTLE_GREEN | |
| PLAYER_ABILITY_A_ITEM_BOTTLE_MILK | |
| PLAYER_ABILITY_A_ITEM_BOTTLE_HALF_MILK | |
| PLAYER_ABILITY_A_ITEM_BOTTLE_ELF | Fairy's Spirit |
| PLAYER_ABILITY_A_ITEM_LETTER | |
| PLAYER_ABILITY_A_ITEM_EGG | |
| PLAYER_ABILITY_A_ITEM_NIWATORI | |
| PLAYER_ABILITY_A_ITEM_BEAN | |
| PLAYER_ABILITY_A_ITEM_POCKET_EGG | |
| PLAYER_ABILITY_A_ITEM_HANDY_COCK | This unfortunate item name stems from the Pocket Cucco being called "Cucco That Sits on Your Hand" in Japanese. |
| PLAYER_ABILITY_A_ITEM_KOJIRO | |
| PLAYER_ABILITY_A_ITEM_AYASHII_KINOKO | Odd Mushroom |
| PLAYER_ABILITY_A_ITEM_AYASHII_DRUG | Odd Potion |
| PLAYER_ABILITY_A_ITEM_NOKOGIRI | Saw |
| PLAYER_ABILITY_A_ITEM_BREAKE_GORON_SWORD | Broken Goron's Sword |
| PLAYER_ABILITY_A_ITEM_SPECIAL_DRUG | Prescription |
| PLAYER_ABILITY_A_ITEM_MEDAMA_FROG | Eyeball Frog |
| PLAYER_ABILITY_A_ITEM_EYES_DRUG | Biggoron's Eyedrops |
| PLAYER_ABILITY_A_ITEM_GORON_SWORD_CARD | Claim Check |
| PLAYER_ABILITY_A_ITEM_MASK_KI_TAN | Keaton Mask |
| PLAYER_ABILITY_A_ITEM_MASK_SKJ | Skull Mask |
| PLAYER_ABILITY_A_ITEM_MASK_REDEAD | Spooky Mask |
| PLAYER_ABILITY_A_ITEM_MASK_RABIT | Bunny Hood |
| PLAYER_ABILITY_A_ITEM_MASK_GOLON | Goron Mask |
| PLAYER_ABILITY_A_ITEM_MASK_ZOLA | Zora Mask |
| PLAYER_ABILITY_A_ITEM_MASK_GELD | Gerudo Mask |
| PLAYER_ABILITY_A_ITEM_MASK_TRUTH | |
| PLAYER_ABILITY_A_ITEM_MAGIC_GRASS | Misspelling of Magic Glass, the Lens of Truth. |
| PLAYER_ABILITY_A_ITEM_MAX | |
This list of boot abilities is found directly below the item list above. Nothing akin to the Pegasus Boots exists in Ocarina of Time, but putting on the Bunny Hood in Majora's Mask does cause Link's speed to increase.
enum {
PERFO_NORMAL_BOOTS,
PERFO_HEAVY_BOOTS,
PERFO_HOBA_BOOTS,
PERFO_ROOM,
// PERFO_DASH_BOOTS,
PERFO_WATER_HEVY_BOOTS,
PERFO_MAX
};
Compass Display
| To do: Add more info from the patent and about what functionality remains, incorporate the notes below, and get this working in-game. |
the home field of the player struct looks interesting they might've wanted to change the direction the compass points to during gameplay the code at the bottom implies it would just point "north" when you're outside of a dungeon (although if you removed the #if 0s the code at the bottom would still never run) I feel like there might just be a missing } before the "yes field" conditional. Or well, a misplaced } rather in a dungeon it would appear white and outdoors it would appear blueish so if you look at the code compass_modelT is used when the room type is ROOM_TYPE_FIELD gets colored by IREG 75 to 78, which are 100,100,255,255 (RGBA) by default for other room types (although the code is slightly broken) it uses tetra_model with IREG 85 to 88 which are 255,255,255,255 by default so the compass "4" gets colored blueish and the tetra model is just white shown outside and inside of dungeons respectively (assuming that's what room type field means) not sure if that clears it up I wonder if this compass was meant to point you to treasures in a dungeon; that is, be literally the compass item you get in every dungeon. Or at least help you find them. notwa08/21/2020 oh it uses different models for dungeons and non-dungeons too "tetra" vs "compass" and i think it would appear semi-transparent at your feet and point with a fixed length compas_model is literally a single triangle it uses G_TRI1 once and returns no because the draw function just takes link's coordinates the sx sy sz sr stuff is for computing the angle iirc the home position is used for collision as well since trying to change only your world coordinate to teleport somewhere will typically result in you just slamming into a wall since it presumably draws a line between the two points during collision checking #define ENVIRONMENT_INFO_GROUND (1) /* On Ground */ having this bit on is another requirement for getting the compass to display. Assuming you can only have one ENVIRONMENT_INFO enabled at a time, then these states don't let you see the compass: > #define ENVIRONMENT_INFO_LANDING (1<<1) /* Moment of Landing */ > #define ENVIRONMENT_INFO_GROUND_LEAVE (1<<2) /* Moment of Leaving Ground */ > #define ENVIRONMENT_INFO_WALL (1<<3) /* Collide w/ Wall */ > #define ENVIRONMENT_INFO_ROOF (1<<4) /* Collide w/ Ceiling */ > #define ENVIRONMENT_INFO_WATER (1<<5) /* In Water */ > #define ENVIRONMENT_INFO_WATER_DIVE (1<<6) /* Moment of Hitting Water */ > #define ENVIRONMENT_INFO_GROUND_HIT (1<<7) /* Collide w/ Floor */ > #define ENVIRONMENT_INFO_SANDWICH (1<<8) /* Between Ceiling & Floor */ > #define ENVIRONMENT_INFO_FRONT_WALL (1<<9) /* (Player Exclusive) */ https://www.madori-seisaku.com/houi-kigou/ https://www.google.com/search?tbm=isch&q=%E5%8C%97%E7%9F%A2%E5%8D%B0%20%E5%9C%B0%E5%9B%B3&tbs=imgo:1 https://gist.github.com/ShimmerFairy/d2b5984e5b06e2902113ed75b5803c8e https://cdn.discordapp.com/attachments/737559416014110740/746333107786874941/20140401003646.png https://bin.cloudmodding.com/ewuxusedam.c https://bin.cloudmodding.com/uxawexenum.c
Quest System Patent
While it seems that the developers didn't end up implementing all of its features in the game, the full intended functionality of this scrapped system is actually outlined in an old patent that Nintendo applied for on 1997/11/20, during the middle of development.
According to the patent, the user would have the ability to place a marker from the menu screen.
The game would be able to simultaneously track a target, a marker set by the player, and the cardinal directions of north and south.
To paraphrase the patent, the target could include an article, such as an essential item (e.g., a treasure, weapon, etc.) that the player would be required to obtain; as well as a destination, such as a destination for an article to be delivered, a goal point, an exit, etc., to which where the player has to proceed.
The "marker" could refer to a sign which is to be put at a point, e.g., an entrance, etc., which the player has passed at least once. The player could use the marker to help them easily find their way back.
This system could be used in conjunction with the minimap to help a player used to 2D games to find their way around the 3D environments of the game.
(While the map in this illustration appears to be Room 1 of Fstdan, the mini-map seems to depict an early version of the first floor of Dodongo's Cavern.)
z_actor.c
| To do: What does this code do? Once its function is described, maybe it's better to remove the source code from the page. |
Searching for "compass", "コンパス", and "mark_model" in the file z_actor.c reveals some disabled code for a compass display.
/*-----------------------------------------------------------------------
*
* Actor Data Class Construct
*
*----------------------------------------------------------------------*/
[Omitted]
#if 0
/*
* Compass Data (For Debugging)
*/
IREG(75) = 100;
IREG(76) = 100;
IREG(77) = 255;
IREG(78) = 255;
IREG(79) = 70;
IREG(80) = -25;
IREG(85) = 255;
IREG(86) = 255;
IREG(87) = 255;
IREG(88) = 255;
IREG(89) = 40;
IREG(90) = 0;
IREG(91) = -40;
#endif
}
#if 0
/*-----------------------------------------------------------------------
*
* Compass Display
*
*----------------------------------------------------------------------*/
#define G_CC_PRIM_LIGHT PRIMITIVE, 0, SHADE, 0, PRIMITIVE, 0, SHADE, 0
extern Gfx compas_model[];
extern Gfx compass_modelT[];
extern Gfx tetra_model[];
static void compas_draw(
Game_play *game_play,
xyz_t *center,
float scale,
float offset_r,
float offset_h,
short rx,
short ry,
unsigned char r,
unsigned char g,
unsigned char b,
unsigned char a,
Gfx *shape
)
{
OPEN_DISP(game_play->g.graph);
gDPSetPrimColor(NEXT_DISP, 0, 1,
r,
g,
b,
a);
Matrix_translate(center->x,
center->y + offset_h,
center->z,
SET_MTX);
Matrix_rotateY(((float)ry * ((2.0f * F_PI)/65536.0f)), MULT_MTX);
Matrix_rotateX(((float)rx * ((2.0f * F_PI)/65536.0f)), MULT_MTX);
Matrix_translate(0.0f,
0.0f,
offset_r,
MULT_MTX);
Matrix_scale(scale, scale, scale, MULT_MTX);
gSPMatrix(NEXT_DISP, Matrix_to_Mtx_new(game_play->g.graph), G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH);
gSPDisplayList(NEXT_DISP, shape);
CLOSE_DISP(game_play->g.graph);
}
#endif
/*-----------------------------------------------------------------------
*
* Actor Display (actor.h not access "Game_play" !!)
*
*----------------------------------------------------------------------*/
[Omitted]
#if 0
/*
* Compass Display
*/
if ( game_play->room_info.now.type != ROOM_TYPE_FIELD && /* Display Fixed Compass (N)? */
bitcheck(player_actor->actor.environment_info, ENVIRONMENT_INFO_GROUND) &&
!bitcheck(player_actor->action, P_ACTION_DONT_COMPAS) ) { /* Compass Display OK? */
polygon_prim(game_play->g.graph);
gDPSetCombineMode(NEXT_DISP, G_CC_SHADE_PRIM, G_CC_SHADE_PRIM);
gDPSetRenderMode(NEXT_DISP, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2);
sx = player_actor->actor.home.position.x - player_actor->actor.world.position.x;
sy = player_actor->actor.home.position.y - player_actor->actor.world.position.y;
sz = player_actor->actor.home.position.z - player_actor->actor.world.position.z;
sr = sqrtf((sx * sx) + (sz * sz));
compas_draw(game_play, /* Target Compass */
&player_actor->actor.world.position,
(float)IREG(89)/100.0f,
(float)IREG(91),
0.0f,
atans_table(sr, -sy), atans_table(sz, sx),
(unsigned char)IREG(85),
(unsigned char)IREG(86),
(unsigned char)IREG(87),
(unsigned char)IREG(88),
tetra_model);
#if 0
if ( game_play->room_info.now.type == ROOM_TYPE_FIELD ) { /* Display Fixed Compass (N)? */
compas_draw(game_play, /* Fixed Compass (N) */
&player_actor->actor.world.position,
(float)IREG(79)/100.0f,
(float)IREG(80),
0.0f,
0, 0,
(unsigned char)IREG(75),
(unsigned char)IREG(76),
(unsigned char)IREG(77),
(unsigned char)IREG(78),
compass_modelT);
}
#endif
}
#endif
z_player.h
| To do: What does this code do? Once its function is described, maybe it's better to remove the source code from the page. |
#define P_ACTION_DONT_COMPAS (P_ACTION_ANCHOR_FIGHT | P_ACTION_POWER_KIRU | P_ACTION_FALL | P_ACTION_JUMP_CLIMB | \ P_ACTION_SUBJECT)
zelda_marker
| To do: Is this the same as the gameplay_keep mark_model? |
The leak contains an object called zelda_marker which isn't present in the final game.
gameplay_keep
Models and textures for the compass display can still be found in the final game's gameplay_keep:
| Filename | Identification |
|---|---|
| compas_model | A single, textureless triangle. |
| compas_v | Vertices for compas_model. |
| compass_v | Vertices for compass_modelT. |
| compass_modelT | A single triangle that uses the texture c_north_txt. When the player was outside of a dungeon, it would have pointed north using the "4" texture in c_north_txt. When the player was inside a dungeon, it would point towards a "home" position, which still exists in the actor struct. In this case, the "home" position would be where Link was a frame earlier. |
| mark_v | Vertices for mark_model. |
| mark_model | |
| mark_env_txt | |
| tetra_v | Vertices for tetra_model. |
| tetra_model | Four triangles with no texture. |
| c_north_txt | The texture used by compass_modelT. |
z_eff_ss_dead.h
| To do: What does this code do? Once its function is described, maybe it's better to remove the source code from the page. Given that the top of the file says "Generic Soft Sprite Effect for Defeat by Enemy", does that mean the compass would have shattered when you were killed? |
The leak contains a header file for an effect file that appears to have been removed from the final game. Ocarina of Time contains ovl_Effect_Ss_Dead_Db, ovl_Effect_Ss_Dead_Dd, ovl_Effect_Ss_Dead_Ds, and ovl_Effect_Ss_Dead_Sound, but not ovl_Effect_Ss_Dead or ovl_Effect_Ss_Dead_Dk.
The header file contains commented-out code for a compass shatter effect.
#if 0
/* Move to z_eff_ss_dead_dk.h */
/*----------------------------------------------------------------------------
*
* Generic Compass Shape Shatter Data Set 1
*
*---------------------------------------------------------------------------*/
extern void Effect_SS_Dk_ct0(
Game *game,
xyz_t *ppos,
xyz_t *pvec,
xyz_t *pacc,
short sc,
short sc_deff,
int frame);
/*----------------------------------------------------------------------------
*
* Generic Compass Shape Shatter Data Set 2
*
*---------------------------------------------------------------------------*/
extern void Effect_SS_Dk_ct1(
Game *game,
xyz_t *ppos,
short sc,
short sc_deff,
float size,
int count,
int frame);
#endif
Early Flag List
| Early Flag List Old plot progression and cut events ahoy! |
Early Text Routine
| Early Text Routine A much more cumbersome way of handling dialogue. |
Early Fishing Experiment
| To do: Is it possible to get this working? |
A file called z_actor.h in the folder z_ocarina2 contains the following commit log note.
* Revision 1.204 1998-04-09 23:36:13+09 morita * For those who want to know the secrets of the secret project I'm * working on, put 1 in SEX(69) (using controller 2, hold R and press * L 6 times), then select "79: Water Temple Boss".... * When you do... there are details on the control scheme in * /home/morita/JOY_FILES/secret.lst
The source code indicates that a memory register called SEX, known as Rs in the Debug ROM, was named by Kazuaki Morita. Morita is credited with the programming the bosses in Ocarina of Time. Additionally, according to an Iwata Asks interview celebrating the release of Ocarina of Time 3D, the Fishing Pond was also his side-project and brain child.
Morita: The Water Temple is in Lake Hylia. Aonuma-san designed that dungeon. The boss that appears there is Morpha. Just when I was making that, there was a landform like a pool.
Iwata: Morpha rises up out of the pool and fights Link.
Morita: Right. When I was making that boss, I casually…
Iwata: "Casually"? (laughs) I doubt you had that kind of time!
Morita: But for some reason I did. (laughs)
Morita: I just happened to have a model of a fish, so…
Iwata: You "just happened" to have it? (laughs)
Morita: Yes! (laughs) A model of a fish for putting in an empty bottle. I borrowed that and had it swim in the pool in the dungeon, and when I saw it swimming around, I thought, "Oh! I can go fishing!"
Iwata: What did you do for a fishing pole?
Morita: I took the model for something and made it a cylinder, and then… (gestures as if casting a fishing pole)
Haruhana: You used the motion for Link swinging his sword.
The aforementioned note seems to be instructions from Morita to the other staff for checking out the in-progress version of the fishing functionality he was working on. Following the instructions in the note verbatim produces no noticeable results upon entering Morpha's boss room from the Map Select screen, regardless of Link's age. Even with SEX69 (Rs69) [no comment...] set to 1, the Morpha battle starts as normal. This may indicate that the "secret" that was accessible via this method may have been removed sometime in the 7 months between the commit log note and the game's release.
However, one additional point to keep in mind is that the Water Temple Boss is now number 80 in the Map Select options, while the Water Temple is number 79. This may indicate that Morita's fishing preview was created at a time before the boss rooms were split off from their temples into separate map files, as they are in the final game. As such, if one were to attempt to enter Room 0x16 of the Water Temple (the boss transition room) without automatically being loaded into the map file for Morpha's boss room in the final game, one could still see the intended effect.
Spawn an Arwing
| To do: Add the chest spawn stuff from Link's actor, too. |
The source code indicates that a memory register called KAZ, known as RK in the Debug ROM, was named after Kazuaki Morita. Morita is credited with the programming the bosses in Ocarina of Time.
A file called z_actor.c in the folder z_ocarina2 contains the following code used for spawning the Arwing.
#ifndef DEBUG_MODE_NOINPUT
if(KAZ(0) == -100) { /* Treasure Chest Fail Test */
Player_actor *pla = (Player_actor *)get_player_actor(game_play);
KAZ(0) = 0;
/* Secret Set */
Actor_info_make_actor(&game_play->actor_info,
(Game *)game_play,
En_Clear_Tag,
pla->actor.world.position.x,
pla->actor.world.position.y + 100.0f,
pla->actor.world.position.z,
0,
0,
0,
1);
}
#endif
As it suggests, setting KAZ00 (RK00) to -100 spawns an Arwing above the player, then rolls the value back around to 0.
Unused Resources
Actors & Objects
| Unused Actors & Objects Some of the earliest content ever made for the game. |
Animations
| Removed Link Animations 129 removed or duplicate animations. |
Cutscenes
Grab some popcornǃ z_ocarina/data/shape2/zelda_tool_scene contains several early and unused cutscene files that aren't present in the final game. Many of these cutscenes contain outdated music or message IDs from an earlier point of development.
Ice Cavern
Serenade of Water
Link learns the Serenade of Water and holds a music note above his head, which isn't loaded since the object ID is missing from the object list. This scene is from zelda_tool_scene/Ice_doukutu/ice_doukuto_demo00.o.
Temple of Time
Meeting Sheik
The famous 40-second pre-release footage showing Link and Sheik in the Temple of Time can now be seen, with contextǃ This cutscene is in zelda_tool_scene/Tokinoma/tokinoma_dm_siku.o and shows Sheik's first encounter, where Link is bestowed knowledge of his upcoming quest.
| Early Footage | Loaded in Final |
|---|---|
Early Minuet of Forest
Link walks all the way back to the Temple of Time in order to learn the Minuet of Forest, presumably after trying to find his friend Saria. From zelda_tool_scene/Tokinoma/tokinoma_dm_zd.o.
Song of Time
The temple altar taught Link the Song of Time at one point during development. Upon learning it, the Door of Time opens, allowing Link to obtain the Master Sword. As seen in zelda_tool_scene/Tokinoma/tokinoma_dm_tama.o.
Sacred Forest Meadow
Minuet of Forest
An early take on Link learning the Minuet of Forest. Portions of this cutscene can be seen in pre-release footage. Found in zelda_tool_scene/Spot05/spot05_demo00.o.
Death Mountain Crater
Bolero of Fire
This cutscene is in a very rough state. Due to some incompatible coding (possibly around Sheik's early object being replaced) Sheik does not appear. Found in zelda_tool_scene/Spot17/spot17_demo_00.o
Zora's Fountain
Zora's Sapphire
Princess Ruto excitedly shouts Link's name after completing Jabu Jabu's Belly. She swims at a lower depth, and the text is missing where Link ponders how he doesn't know what she's talking about with "her most precious possession". Found in zelda_tool_scene/Spot08/spot08_demo00.o.
Lake Hylia
Lake Hylia is Restored
Apparently someone believed in Link before Prince Sidon did in Breath of the Wild. During a touching moment when Lake Hylia is restored, Sheik instills confidence that Link will succeed with his quest. This can be seen in zelda_tool_scene/Spot06/spot06_demo00.o.
Desert Colossus
Requiem of Spirit
This cutscene looks mostly complete, aside from Sheik's absence, possibly owing to an incompatible object code.
Kokiri Forest
Introduction
The introductory cutscene is mostly consistent with the final, but check out Navi's alternate flight path toward the end. She is keenly observing Link's home, and might even be hesitant to meet him. From zelda_tool_scene/Spot04/spot04_demo03.o.
Chamber of Sages
First Visit
Link encounters a denial-of-service attack, as the Sacred Realm is not yet ready to serve him. This is yet another cutscene containing outdated message IDs. From zelda_tool_scene/Kenjyanoma/Kenjyanoma_demo01.o. All of Rauru's original text for this scene was repurposed for the final game. The textboxes that the cutscene contain expect context sensitive actions which can't occur, therefore loop. If some of the textboxes are set to dummy variables, we can see that it appears to be another variant of the awakening cutscene, though the camera is oddly low when Link is looking himself over.
Castle Courtyard
Zelda's Lullaby
New angles for learning the song, and Link once again holds a music note above his head (not loaded due to missing object ID). From zelda_tool_scene/Nakaniwa/nakaniwa_demo01.o.
Gerudo Fortress
Ending Credits
Blink and you'll miss it. The ending credit scene in z_ocarina/data/shape2/zelda_scene/Spot12_OLD(ver2)/spot12_demo01.o doesn't pan quite as far as the final version, making the duration slightly shorter. It doesn't show the wall on the far left.
| End-of-pan Early | End-of-pan Final |
|---|---|
Items
z_parameter_h.h
z_parameter_h.h contains early names for some items, as well as identifications for others that were dummied out of the final item list.
| z_parameter_h.h | ||||
|---|---|---|---|---|
| ID | Filename | Description | Translation | Final Name |
| 0A | H_S_hookshot | 10『ショート・フックショット』 | 10: "Short Hookshot" | Hookshot |
| 0B | H_L_hookshot | 11『ロング・フックショット』 | 11: "Long Hookshot" | Longshot |
| 0F | H_magicglass | 15『まことの虫メガネ』 | 15: "Magnifying Glass of Truth" | Lens of Truth |
| 1B | H_bottle_7 | 27『ルトの手紙』 | 27: "Ruto's Letter" | Letter |
| 1C | H_bottle_8 | 28『炎』 | 28: "Fire" | Blue Fire |
| 37 | H_reserve_30 | 55 大人『ゴロン刀引換券』 | 55: Adult "Goron's Sword Claim Check" | Claim Check |
| 3B | H_sword_0 | 59『ナイフ』 | 59: "Knife" | Kokiri Sword |
| 50 | H_bracelet | 80『銅のブレスレット』 | 80: "Bronze Bracelet" | Goron's Bracelet |
| 56 | H_purse_2 | 86『大人のがま口』 | 86: "Adult's Purse" | Adult's Wallet |
| 57 | H_purse_3 | 87『大金持ちがま口』 | 87: "Wealthy Man's Purse" | Giant's Wallet |
| 5A | H_melody_1 | 90『風のメヌエット』 | 90: "Minuet of Wind" | Minuet of Forest |
| 66 | H_seal_medal_1 | 102『サリアの封印』 | 102: "Saria's Seal" | Forest Medallion |
| 67 | H_seal_medal_2 | 103『ダルニアの封印』 | 103: "Darunia's Seal" | Fire Medallion |
| 68 | H_seal_medal_3 | 104『ルトの封印』 | 104: "Ruto's Seal" | Water Medallion |
| 69 | H_seal_medal_4 | 105『ナボールの封印』 | 105: "Nabooru's Seal" | Spirit Medallion |
| 6A | H_seal_medal_5 | 106『インパの封印』 | 106: "Impa's Seal" | Shadow Medallion |
| 6B | H_seal_medal_6 | 107『ラウルの封印』 | 107: "Rauru's Seal" | Light Medallion |
| 71 | H_N_coin | 113『Nコイン』 | 113: "N Coin" | Gold Skulltula |
| 76 | H_map | 118『マップ』 | 118: "Map" | Dungeon Map |
| 77 | H_key | 119『ダンジョンの鍵』*/ | 119: "Dungeon Key" | Small Key |
| 7A | H_heart_1 | 122『ハートの欠片(1/4)』 | 122: "Piece of Heart (1/4)" | Piece of Heart |
| 7B | H_heart_2 | 123『ハートの欠片(2/4)』 | 123: "Piece of Heart (2/4)" | [Removed] |
| 7C | H_heart_3 | 124『ハートの欠片(3/4)』 | 124: "Piece of Heart (3/4)" | [Removed] |
| 7D | H_note_1 | 125『音符:上』 | 125: "Note: Up" | [Removed] |
| 7E | H_note_2 | 126『音符:下』 | 126: "Note: Down" | [Removed] |
| 7F | H_note_3 | 127『音符:左』 | 127: "Note: Left" | [Removed] |
| 80 | H_note_4 | 128『音符:右』 | 128: "Note: Right" | [Removed] |
| 81 | H_note_5 | 129『音符:A』 | 129: "Note: A" | [Removed] |
| 87 | H_rupy03 | 135『大ルピー(50ルピー)』 | 135: "Big Rupee (50 Rupees)" | Purple Rupee |
| 89 | H_rupy05 | 137『銀のルピー(10ルピー)』 | 137: "Silver Rupee (10 Rupees)" | [Removed] |
Additionally, Silver Rupees are worth 5, not 10, in the final game.
Maps
3D Maps
| 3D Maps Unused and alternate 3D maps. |
File Select Map
| To do: Add proper image when one gets uploaded. |
| File Select Map A very, very early Map Select. |
Prerenders
| Prerenders Unused and early versions of prerendered maps. |
Alternate Scene Setups
| Alternate Scene Setups Lots of interesting actor and object setups. |
Removed Maps
The following maps are referred to by text only, and no other leftovers of them are currently known to remain.
house_A
This map is mentioned in the commit logs of z_ocarina2/src/spec. It was added to the game on 1997/05/22 by chief programmer Kenzō Hayakawa.
house_A2
This map is mentioned in the commit logs of z_ocarina2/src/spec.segment. It's unknown when it was added to the game, but it was removed on 1998/04/08 by Hayakawa.
house_B2
See house_a2.
i_shop
See house_a2.
i_shop23
See house_a2.
i_shop24
See house_a2.
item_room
See house_a2.
item_shop
See house_a2.
LODtest01
See house_a2.
mark_shop
See house_a2.
MARKET_ALLEY_R
This map is commented out in the "Set Message Test" portion of z_actor.c, indicating that it was removed prior to the removal of K_HOME, K_HOME2, and LONRON, to which this section of code refers as though they were still part of the game.
Based on the naming scheme of the final game, where the suffix-less version of a scene (e.g. "MARKET_ALLEY") is the daytime version, the _N suffixed version (e.g. "MARKET_ALLEY_N") is the nighttime version, and the _R suffixed version is the ruined Adult Link version, it can be inferred that the "MARKET_ALLEY_R" scene would have been a ruined version of the Back Alley. In the final game, the entrances to the back alley in the Hyrule Castle Town market are blocked off with rubble when the city is in ruins.
TARON_SHOP
This map is commented out in the "Set Message Test" portion of z_actor.c, indicating that it was removed prior to the removal of K_HOME, K_HOME2, and LONRON, to which this section of code refers as though they were still part of the game. It may have been renamed to or replaced by LONRON_SHOP.
shop2
See house_a2.
shop3
See house_a2.
SPOT14
This map is mentioned in the NATURAL SOUND INIT FLAG section of audio_game.h.
#define NA_NS_INIT_SPOT14 0x0e
SPOT19
This map is commented out in the "Set Message Test" portion of z_actor.c, indicating that it was removed prior to the removal of K_HOME, K_HOME2, and LONRON, to which this section of code refers as though they were still part of the game.
It is listed as being part of the Death Mountain maps and thus using message bank 0x3000.
case SPOT16:
case SPOT17:
case SPOT18:
//////// case SPOT19:
case DDAN_BOSS:
case HIDAN:
case FIRE_BOSS:
mes_b = 0x3000;
break;
It is also mentioned in the NATURAL SOUND INIT FLAG section of audio_game.h.
#define NA_NS_INIT_SPOT19 0x13
Textures
Icons
Early Equipment Screen and Medal Icons
There are some early equipment subscreen icons that were found in the files of Majora's Mask, located in z_majora\data\shape\TEXTURE\DMA_MAKE\ICON_ITEM\others\rgb.
We can barely detect them in photographs of Shigeru Miyamoto taken during SpaceWorld 1997.
| Filename | Texture |
|---|---|
| h_ep_00.rgb h_ep_01.rgb |
|
| h_ep_10.rgb h_ep_11.rgb |
|
| h_ep_20.rgb h_ep_21.rgb |
|
| h_ep_30.rgb h_ep_31.rgb |
|
| h_mb_00.rgb h_mb_10.rgb h_mb_20.rgb |
zelda_tool_rom.o
The file contains unused textures visible in an old screenshot released in April 1997.
64DD Tag
A Disk Drive icon which would have been part of the file select screen, possibly under File 3.
Fishing Lure
A hard-coded image in unused code within z_fishing.c at line 9327.
Minimaps
Dungeon Minimaps
dd_map_48x85
The file contains the textures for the dungeon map subscreen of the _dd / _ddtes dungeons. Each texture is split into "l_" and "r_" files, so the images below show them stitched together.
dd_map_i
The file contains the textures for the onscreen dungeon minimap of the _dd / _ddtes dungeons.
Both files also include textures for the regular Ice Cavern, which are not included in the list below.
Inside the Deku Tree
| dd_map_48x85 | |
|---|---|
| Filename | Texture |
| l_dd_ydan_1_txt4_0 r_dd_ydan_1_txt4_0 |
|
| dd_map_i | |
|---|---|
| Filename | Texture |
| dd_ydan_00_txt |
|
Dodongo's Cavern
| dd_map_48x85 | |
|---|---|
| Filename | Texture |
| l_dd_ddan_1_txt4_0 r_dd_ddan_1_txt4_0 |
|
| dd_map_i | |
|---|---|
| Filename | Texture |
| dd_ddan_00_txt |
|
| dd_ddan_01_txt |
|
| dd_ddan_02_txt | |
Jabu-Jabu's Belly
| dd_map_48x85 | |
|---|---|
| Filename | Texture |
| l_dd_bdan_1_txt4_0 r_dd_bdan_1_txt4_0 |
|
| l_dd_bdan_b1_txt4_0 r_dd_bdan_b1_txt4_0 |
|
| dd_map_i | |
|---|---|
| Filename | Texture |
| dd_bdan_00_txt |
|
| dd_bdan_01_txt |
|
| dd_bdan_02_txt |
|
| dd_bdan_03_b1_txt | |
| dd_bdan_03_txt |
|
Forest Temple
| dd_map_48x85 | |
|---|---|
| Filename | Texture |
| l_dd_Bmori_1_txt4_0 r_dd_Bmori_1_txt4_0 |
|
| dd_map_i | |
|---|---|
| Filename | Texture |
| dd_Bmori_00_txt | |
| dd_Bmori_01_txt | |
| dd_Bmori_02_txt | |
Fire Temple
| dd_map_48x85 | |
|---|---|
| Filename | Texture |
| l_dd_HIDAN_1_txt4_0 r_dd_HIDAN_1_txt4_0 |
|
| dd_map_i | |
|---|---|
| Filename | Texture |
| dd_HIDAN_00_txt | |
| dd_HIDAN_01_txt |
|
| dd_HIDAN_02_txt | |
Water Temple
| dd_map_48x85 | |
|---|---|
| Filename | Texture |
| l_dd_MIZUsin_1_txt4_0 r_dd_MIZUsin_1_txt4_0 |
|
| dd_map_i | |
|---|---|
| Filename | Texture |
| dd_MIZUsin_00_txt | |
| dd_MIZUsin_01_txt |
|
| dd_MIZUsin_02_txt | |
Spirit Temple
| dd_map_48x85 | |
|---|---|
| Filename | Texture |
| l_dd_jyasinzou_1_txt4_0 r_dd_jyasinzou_1_txt4_0 |
|
| dd_map_i | |
|---|---|
| Filename | Texture |
| dd_jyasinzou_00_txt |
|
| dd_jyasinzou_01_txt | |
| dd_jyasinzou_02_txt | |
Bottom of the Well
| dd_map_48x85 | |
|---|---|
| Filename | Texture |
| l_dd_hakadan_ch_b1_txt4_0 r_dd_hakadan_ch_b1_txt4_0 |
|
| dd_map_i | |
|---|---|
| Filename | Texture |
| dd_hakadan_ch_00_txt | |
| dd_hakadan_ch_01_txt | |
Shadow Temple
| dd_map_48x85 | |
|---|---|
| Filename | Texture |
| l_dd_hakadan_b1_txt4_0 r_dd_hakadan_b1_txt4_0 |
|
| dd_map_i | |
|---|---|
| Filename | Texture |
| dd_hakadan_00_txt | |
| dd_hakadan_01_txt | |
| dd_hakadan_02_txt | |
Overworld Minimaps
| To do: Compare differences. |
The file map_grand.o contains old versions of the overworld minimaps seen in prerelease screenshots. They seem to be based on renders of the map and drawn over by hand. Playable area appears to be outlined in black.
Hyrule Field
| Early Minimap | Final Minimap |
|---|---|
![]() |
|
The earlier minimap is missing the overhangs near the entrances to Kakariko and Gerudo Valley, which also exhibits other missing terrain features that can be seen in the final version.
Kakariko Village
| Early Minimap | Final Minimap |
|---|---|
![]() |
|
The earlier minimap shows several differences, such as the missing gate to Death Mountain Trail and the location of the well besides the potion shop instead in front of the windmill, which itself also shows no playable area behind it. There is no visible fencing where the Cucco Lady would be and in the area between the bazaar and potion shop.
Graveyard
| Early Minimap | Final Minimap |
|---|---|
![]() |
There seem to be two additional small fences besides the path to the Royal Family's Tomb.
Zora's River
| Early Minimap | Final Minimap |
|---|---|
![]() |
|
The shortcut to the Lost Woods seems to be missing.
Kokiri Forest
| Early Minimap | Final Minimap |
|---|---|
![]() |
|
The earlier minimap lacks the maze where you get the Kokiri Sword and also shows another house where the Kokiri Training Area would be. There is no trace of the small pond in front of the passage that leads to the Deku Tree and the pillars connected by small bridges near Saria's Home are also missing.
Sacred Forest Meadow
| Early Minimap | Final Minimap |
|---|---|
![]() |
The earlier minimap seems to lack the maze and shows a slightly larger entrance area.
Lake Hylia
| Early Minimap | Final Minimap |
|---|---|
![]() |
|
The fishing pond and the place where Link would get the fire arrows are both missing.
Zora's Domain
| Early Minimap | Final Minimap |
|---|---|
![]() |
|
The spiral ramp that leads up to King Zora's chamber is completely surrounded by water, whereas in the final version it's connected with one path to the entrance and another one leading around the structure to the Zora Shop. The platform in front of King Zora is shaped differently and the hallway leading to Zora's Fountain heads to the right, instead to the left in the final version. The small isle and the pillar in the water also seem to be missing.
Zora's Fountain
| Early Minimap | Final Minimap |
|---|---|
![]() |
|
There is a longer pathway coming from the entrance which leads to the place where Jabu-Jabu would be on the left side and to a longer passage on the right side. The top of the map shows an larger area where the entrance to the Ice Cavern would be and it looks like the trees in the water are located in front of that area instead at the bottom of the map.
Gerudo Valley (Child)
| Early Minimap | Final Minimap |
|---|---|
![]() |
Gerudo Valley (Adult - Bridge Broken)
| Early Minimap | Final Minimap |
|---|---|
![]() |
|
Gerudo Valley (Adult - Bridge Intact)
| Early Minimap | Final Minimap |
|---|---|
![]() |
|
Desert Colossus
| Early Minimap | Final Minimap |
|---|---|
![]() |
|
Gerudo's Fortress
| Early Minimap | Final Minimap |
|---|---|
![]() |
|
The guarded gate in the path to the Haunted Wasteland seems to be missing.
Hyrule Castle
| Early Minimap | Final Minimap |
|---|---|
![]() |
|
There is no walkable terrain where Link would climb up the vines to sneak around the gatekeeper and the soldiers in front of Hyrule Castle.
Ganon's Castle (No Bridge)
| Early Minimap | Final Minimap |
|---|---|
![]() |
|
Ganon's Castle (Bridge)
| Early Minimap | Final Minimap |
|---|---|
![]() |
Death Mountain Trail
| Early Minimap | Final Minimap |
|---|---|
![]() |
Death Mountain Crater
| Early Minimap | Final Minimap |
|---|---|
![]() |
|
The central area where the warp pedestral is located, features a slightly different shape and the bridge leading to it is not broken. There also seems to be an alcove on the bottom left which cannot be seen in the final map. Only two platforms are visible in the lava area, the third one is missing.
Goron City
| Early Minimap | Final Minimap |
|---|---|
![]() |
|
Lon-Lon Ranch
| Early Minimap | Final Minimap |
|---|---|
![]() |
|
The storage tower is not visible in the earlier version of the minimap.
Place Names
z_ocarina/data/shape2 contains a file called zelda_scene_name, and another called zelda_scene_name2. While both hold location name textures, the former is an earlier version of the latter.
First off, zelda_scene_name contains g_pn_01 to g_pn_45, while zelda_scene_name2 contains g_pn_01 to g_pn_57. The former is missing location text for the following places:
Royal Family's Tomb Fairy's Fountain Fishing Pond Bombchu Bowling Alley Stable Thieves' Hideout Happy Mask Shop Treasure Box Shop Sacred Forest Meadow Gerudo's Fortress Bottom of the Well Desert Colossus Bombchu Shop ?
(The "?" is used in the windmill.)
Because the mini-game locations were some of the last areas added during development, it is not surprising that their names are among the textures missing from the earlier version of the file. However, as spots like the Sacred Forest Meadow, Gerudo's Fortress, and the Desert Colossus existed for a large part of the game's development, their absence is more curious.
In addition to these missing textures, zelda_scene_name features some alternate titles or spellings for location names that exist in zelda_scene_name2.
Finally, and of most interest, zelda_scene_name contains a few location names that aren't in the final game at all.
| Filename | Texture | Translation | Notes |
|---|---|---|---|
| g_pn_19 | My House | This texture reads "bokunchi", a cute and childish way of saying "boku no uchi", which translates to "My House". Link's House has no location text in the final game. | |
| g_pn_23 | Talon's Shop | Location text for the removed shop at Lon Lon Ranch. | |
| g_pn_24 | Adult Shop | Location text which may have been used for the Adult version of the Bazaar once it has relocated from the Market to Kakariko Village, which uses a separate object set rather than a separate map in the final game. |
Skyboxes
cloud_back.o
| To do: Find a better formatting and add in-game images of both versions. |
Earlier versions of the textures from the vr_cloud*_static files.
Stitched Images
end.o
| To do: Rip me, I'm unused. |
This skybox, labeled "Night", is commented out in the spec.segment file. It includes vr_end_static and vr_end_pal_static, which have no equivalent files in the final game.
fairy_vr_box
This prerender is mentioned in the commit logs of z_ocarina2/src/sys_segment.h and z_ocarina2/src/spec. It was added to the game on 1997/05/22 by main programmer Yasunari Soejima.
According to z_ocarina2/src/spec, "Fairy Fountain (256x256)" was added by Soejima on 1997/07/08, suggesting that Fairy Fountains were once prerenders, rather than 3D maps.
fine_back.o
| To do: Rip final versions to compare them. |
Earlier versions of the textures from the vr_fine*_static files.
fine9.o
There is no vr_fine9_static file in the final game, but the filenames of the textures within match the textures in the vr_fine*_static files.
item_shop_vr_box
This prerender is mentioned in the commit logs of z_ocarina2/src/sys_segment.h. It was added to the game on 1997/05/30 by Soejima.
woods.o
This skybox, labeled "Lost Woods", is commented out in the spec.segment file. It includes vr_bg_woods_static and vr_bg_woods_pal_static, which have no equivalent files in the final game.
According to z_ocarina2/src/spec, "Lost Woods" was added by Soejima on 1997/07/18.
Music
| To do: Volunteers with keen ears can help determine what is causing the byte differences in particular tracks |
They're not new masterpieces from Koji Kondo, but near-final music sequences exist in z_ocarina/data/ZeldaAudio_music.o. Rather then having new melodies, small differences can be heard in the notes of a few tracks. These are very close to the final sequences used in z_ocarina/data/lib/ZeldaAudio_music.o.
Water Temple
Around 00:39 in the track, the dulcimer seems to be louder and more staccato.
Unused Text
| Text Comments Comments from the developers shine line on unused text. |
Ura Zelda Leftovers
xxx
Uncategorized
Early File List
| Early File List An early file list that looks to date from around May, 1997. |
Lodgenet Gateway Build Information
| To do: Thoroughly research all references to GATEWAY_VERSION |
Lodgenet was a service predominately used in North America that allowed hotel guests to play Nintendo 64 games from their rooms. Each game featured on Lodgenet had to follow a list of guidelines to be published to the service, namely remove the ability to save and remove multiplayer features (as can be seen in a Star Fox 64 video here). The Ocarina of Time Gateway version is technically the only released version of OoT that has yet to be documented and analyzed. Thanks to build information found in the source listed as GATEWAY_VERSION, it offers insight of what was included in this undocumented build.
Here is a function to clear the saves for Lodgenet usersː
# endif /* GATEWAY_VERSION /
/ ゲーム前CLEAR─RAM /
ZCommonSet(game_info.restart_flag, 0);
ZCommonSet(game_info.restart_data[0].scene, -1);
ZCommonSet(old_bgm, 255);
ZCommonSet(old_env, 255);
ZCommonSet(game_info.name_display, ON);
ZCommonSet(game_info.dog_flag, 0);
ZCommonSet( event_fg, Event_MD0 );
ZCommonSet( total_event_fg, TEvent_MD0 );
ZCommonSet(event_inf[0], 0);
ZCommonSet(event_inf[1], 0);
ZCommonSet(event_inf[2], 0);
ZCommonSet(event_inf[3], 0);
ZCommonSet(last_time_type, 50);
ZCommonSet(game_info.shield_magic_timer, 0);
ZCommonSet(life_mode, 0);
ZCommonSet(magic_flag, 0);
ZCommonSet(keep_magic_flag, 0);
/[ファイル選択時 に お願いしたい物]*/
ZCommonSet( NottoriBgm, 0 );
ZCommonSet( kankyo_time, 0 );
ZCommonSet( next_wipe, 0xff );
ZCommonSet( next_daytime, 0xffef );
ZCommonSet( doukidemo, 0 );
ZCommonSet( Kenjya_no, 0 );
ZCommonSet( next_zelda_time, 0xffff );
ZCommonSet( game_info.next_walk, 0 );
According to the section "ロムヘッダ定義(仮)" (ROM Header Definition (Temporary)) in GNUmakefile,v the initialization for the PAL Gateway version is NZLL, while the default Gateway version is CZLG. (In comparison, the codes for the other versions of the final game are CZLJ (Japan), CZLE (North America), and NZLP (PAL).)








































































































