Zelda’s Birthday is a Nintendo 64 hack of The legend of Zelda: Ocarina of Time made by Rhett Osborne (aka Spinout) & co and released 30 December 2008.
ROM / ISO Information: Database match: Legend of Zelda, The - Ocarina of Time - Master Quest (USA) (Debug Version) Database: No-Intro: Nintendo 64 (v. The Legend of Zelda: Ocarina of Time is an action-adventure video game developed by Nintendo's Entertainment Analysis and Development division for the Nintendo 64 video game console. It was released in Japan on November 21, 1998; in North America on November 23, 1998; and in Europe on December 11, 1998. Ocarina of Time Debug Rom Frontflip Jump Strike C23142: Change “29 00” to “2A 60” C23162: Change “29 10” to “2A 50” C23166: Change “29 08” to “2A 58” C2316A: Change “29 08” to “2A 58” Gameshark Code for Frontflip Jump Strike D13F446A 2908 813F4442 2A60 D13F446A 2908 813F4462 2A50 D13F446A 2908 813F4466 2A58. Debug roms are used to test games prior to their release and often times they will contain information, locations, enemies, or techniques that were removed in the final version of the game. Awhile back the Ocarina of Time Debug Rom had been released and it allowed many players to go through some of the Beta areas that were never seen in the final version of the game. Well, now we can do this.
It follows a more lighthearted story where you help recover stolen presents that were meant to be given to princess Zelda for her birthday. Saria, Princess Ruto and Malon all had their gifts stolen and they can be found at the far end of three custom dungeons.
I apologise for the choppiness of the video, it was an hour and a half of footage that had to be compressed into fifteen minutes. I did fast-forward all the backtracking and walking though.
Getting the Zelda’s Birthday ROM and how to run it
You can download the patch from Spinout’s website here or you can get it from the N64 Squid mirror by using the password “itszeldasbirthday”.
In order to play it, you need to obtain a debug ROM of Ocarina of Time Debug version called ZELOOTMA.Z64. Only do this if you already own Ocarina of Time on the Nintendo 64. Then apply the patch to the ROM by following the instructions on our patching guide.
Once that’s done, you can run it in an emulator. I had some trouble running it in Project 64 1.6, so here’s the configuration I used for the ROM options:
CPU core style: Recompiler
Self-modifying code method: Check memory advance
Memory Size: 8MB
Advanced Block Linking: On
Default Save Type: Use first used save type
Counter Factor: 2
Other settings: Register caching
That should be enough to get Zelda’s Birthday running.
About the hack
Zelda’s Birthday was developed as a 10-year anniversary (or birthday ?) for Ocarina of Time, which was released in November and December 1998.
The Legend of Zelda: Ocarina of Time – Zelda’s Birthday (Version 1.5)
Taking place generations after the events of Ocarina of Time, Link’s decent embarks on a much lighter hearted quest, only to discover that even a peaceful Hyrule can be dangerous.
It’s a hack for The Legend of Zelda: Ocarina of Time Debug ROM.
It features all new actor arrangements, all new text and story line, 3 totally redesigned dungeons, an optional side quest, endings (plural), and hidden goodies.
Spinout
The hack is credited to Spinout, but he also gives thanks to Dark_Link-77, Xu_Yuan, Cendamos, punk7890, Jissan, Wareya, Despair, MNGoldenEagle, cooliscool and to the members of ZSO.
Zelda’s Birthday Gameplay
The gameplay of Zelda’s Birthday is very similar to that of Ocarina of Time. In fact, if you’ve ever played OoT: Master Quest, you’ll know what I’m talking about right away.
Kakariko Village
You start off in Link’s room, which is now located in the Kakariko cow house. Like in OoT, Navi wakes you up and sets the plot into motion. Malon, Saria and Ruto all had their presents stolen and need your help to recover them.
The game begins by making an unceremonious exit though the back door of the cow house. The first thing you’ll notice once outside is that a lot of things are out of place. Some characters that should be in Castle Town Market are in Kakariko Village and some of the buidings have a different shape from what they should, at least at this point in the game.
Then following Navi’s directions, you head off to Kokiri forest. Mind you, as you leave Kakariko, you realise that you’re in Hyrule Field and have to fight enemies but have no sword. So you dodge some baddies and end up in Kokiri forest, bypassing the bridge at the entrance.
Kokiri Forest and Lost Woods
Kokiri forest has been completely redone. All the houses are gone and replaces with patches of grass. My first instinct was to grab the Kokiri Sword, but that tunnel is all patched up.
The Deku Tree is also blocked off, so the only lead now is to go to the lost woods, but let’s talk to Saria first.
So both the Kokiri Sword and her present are located in the woods. Let’s head out there.
Now, we’ve all been to the lost woods hundreds of times and luckily the layout is basically the same with a few differences.
There are some Big Skulltulas blocking some paths, but it’s possible to get pasy by taking a bit of damage. There are also some Business Scrubs peddling their goods and attacking shieldless foes. So to get a shield, you need to go to the secret butterfly room.
Once that’s done, carry on along the Lost Woods to Sacred Forest Meadow like you normally would. This area is now infested with more long-range attackers like Octoroks in the puddles and Deku Babas in the grassy alcoves in addition to the Red Tektites jumping around. I died here once, it’s a bit tough to get past on three hearts if you try rushing instead of at least killing the Octoroks.
There’s a Wolfos at the final stairway, but just run past it and get to the shrine. There’s a chest with the long-awaited Kokiri Sword!
Now you can defend yourself! So you can head back now to the Lost Woods Temple (not the Forest Temple you visit as Adult Link). Just be sure to grab the sticks on the way out, you’ll need plenty in the temple and you can’t find many.
Lost Woods Temple and beyond
I’m not going to get into too much detail regarding the Lost Woods Temple since it’s best to go through it organically on your own. There are plenty of guides out there, and even my video (above).
The stage is very reminiscent of the original Legend of Zelda for the NES with the way its square rooms are laid out. A lot of the room’s puzzles are activated when you move into particular places, so keep that in mind when trying to solve puzzles.
Also, there’s a glitch causing a graphical error when I remove the armor off of that second Iron Knuckle so a bit of advice: You don’t need to ‘kill’ any of the Iron Knuckles in this temple to solve their puzzles.
Conclusion
Zelda’s Birthday is one of the most comprehensive Ocarina of Time hacks out there. It overhauls the overworld, it has unique dungeons and it is mostly stable. It’s a bit of a pain in the butt to get running but once you do, it’s a lot of fun.
If you like Master Quest, you’ll love this. It provides just enough new context to keep it fresh but it still keeps that Ocarina of Time feel that solving the puzzles should come naturally. It doesn’t depend on glitches or anything like that.
Zelda Oot Debug Rom
If you have a few hours to spare, give the Zelda’s Birthday hack a try.
More from N64 Squid
Video Gamer X of The Oddesy of Hyrule is attributed with releasing the Debug code for OoT, back in May of 1999. An improved input sequence was discovered by mzxrules in September of 2016.
Zelda Oot Debug Rom
2Debug Code Information
Instructions
Using the Crooked Cartridge trick, or another method (see Miscellaneous Glitches), crash the game.
Wait a few seconds and a small yellow bar should appear in the top left corner of the screen (if it doesn't, try again, or crash the game using a different glitch).
Now input the Debug code:
L + R, then while holding both press Z
D-pad Up
C-DOWN
C-UP
D-pad DOWN
D-pad LEFT
C-LEFT
C-RIGHT
D-pad RIGHT
A + B, then while holding both press Start
The debug screen will not appear unless you press each button in the correct order.E.g.: In the first step you must press and hold 'L' then while still holding 'L' press and hold 'R' then while still holding both of them press 'Z', now let go of the buttons and do step two.
The debug code does not work on the Gamecube releases (Ocarina of Time and Master Quest) or the 3DS version. With the Gamecube versions, the N64 emulator used does not emulate the frame buffer accurately, thus the error bar and any messages won't appear on screen. Additionally, there appears to be some sort of fatal bug with the crash debugger itself, which causes all crashes to become undebuggable red bar crashes.
Debug Code Information
And now an explanation of the debug screens by dvdmth.
The Register Information Screen
A debuggable crash. Note the yellow line above the health meter.
The register information screen, showing what went wrong.
Both OoT and MM use the same first screen. This is the most important one, as it provides the most basic information concerning the status of the system at the time of the crash. Most (if not all) of the information shown comes from a register, either on the System Control Processor (top), the main CPU, or the Floating-Point Unit (bottom).
At the upper-left corner is the ID of the faulting thread. Often, different pieces of code will 'take turns' using the CPU. Whichever piece of code, called a 'thread', was being executed at the time of the crash is displayed. This number is usually 4 (which seems to indicate an unidentified thread). I'm not sure where this number is stored, be it in a register or somewhere else.
The top of the screen also shows the type of exception that crashed. Each exception has an associated number, between 0 and 31, that is used to identify what is going on. Note that not all exceptions result in a crash -- in fact, exceptions are a regular part of the life of the system. Those exceptions that actually cause a crash are known as 'fatal exceptions' (for obvious reasons). It isn't until an exception becomes fatal that the debugger actually is invoked. (Sometimes an exception can crash one process while leaving others untouched, while other times an exception can bring everything to a halt. This is why sometimes you can still hear music after a crash, and other times you can't.)
Next, the debugger shows the values of three registers from the System Control Processor (a coprocessor that keeps track of system status and performs some basic system tasks). There are actually 32 registers (at least) on this processor, but only three are important.
Exception Program Counter (EPC) - This is a pointer to the instruction that caused the crash. (Technically, the EPC holds whatever the Program Counter (PC) was set to at the time of the crash. The PC always points to the instruction currently being executed.)
Status Register (SR) - This holds the status of the system, including what coprocessors are available and whether it's running in 32-bit or 64-bit mode (for example).
Bad Virtual Address (VA) - This holds the memory address that the program tried to access and failed (assuming the crash is due to a memory error). On the N64, possible values range from $80000000-807FFFFF (with the Expansion Pak). Anything outside of this range is bad.
Beneath those three registers, the debugger displays 30 out of the 35 registers on the main CPU. Some registers, such as the Stack Pointer (SP), are used by the operating system. Others, however, are open for the program to use however it sees fit. The idea is to put the most often referenced data on a register, since registers are accessible at really high speeds (compared to RAM).
The only two registers I can identify in this group are the Stack Pointer (SP), which holds a pointer to the stack (a section of memory that holds temporary data, like local function variables), and the 'LO' register (which is used in multiplication and division operations).
Finally, the Floating-Point Unit (FPU) has its share of registers. Thefirst register shown is the Floating-Point Control/Status Register(FPCSR), which keeps track of the status of the FPU, as well as providing any errors that occur during calculations. (The most recent error is displayed to the right of the value, if applicable. Note that this error is ONLY important if a Floating-Point Exception occurred.)
The remaining values show the various floating-point numbers being stored currently on the FPU. Floating-point numbers are numbers that have a fractional part (i.e. they have a decimal point). They are generally shown in scientific notation (instead of the usual hexadecimal), unless the value happens to be an integer. Only half of the registers are shown, since these are the only ones that actually hold data (for technical reasons). It is up to the program how to use these registers.
OoT Debug Screens
Zelda OoT's debugger has 10 additional screens beyond the standard screen listed above. Most of them, however, aren't very helpful. To advance these screens you can press A, B Start, or any of the C buttons.
Segment Information - I really don't know what this screen's about. It may have to do with the ROM itself, or it may have to do with how pieces of code are divided (or something).
ROM Debug - This screen is not exciting in the final versions of OoT, since all values are set to zero. During testing, however, the developers may have set these values to reflect the contents of certain variables during gameplay. This way, if the program crashed, they may be able to figure out what went wrong from these variable settings.
Zelda Oot Debug Rom Download
Stack Dump - (NOTE: I'm careful not to use the term 'trace,' as the debug screen uses, since it's more of a dump than a trace.) This screen shows the contents of the Stack, a section of memory used to hold temporary data. The left column shows the address in memory, and the other columns show what's actually there. (Those who've used a hex editor know how this is like.) The farther down you go, the older the information (since the Stack Pointer is reduced as new items are added and increased as items are taken off).
PC Dump - This screen shows the code being executed at the time of the crash. Somewhere on the screen is the instruction that failed (pointed to by the Exception Program Counter). This screen is displayed the same way as the previous one.
Actor List - This appears to be a list of the 'actors' currently in memory. What exactly counts as an 'actor' will vary from game to game. Occasionally a PC value appears next to an entry on the list (most likely referring to the piece of code that runs that actor, or perhaps the piece of code that installed it).
Version Info - Finally, the most famous screen from OOT's debugger. The 'I LOVE YOU' message is on here, as well as a bunch of zeroes. The date of compilation is also on this screen, helpful in determining the version of the ROM you have. As far as I know, the possible dates are:
98-10-21 04:56:31 = North America (NTSC) 1.0
98-10-21 04:56:31 = Japan (NTSC) 1.0
98-10-26 10:58:45 = North America (NTSC) 1.1
98-10-26 10:58:45 = Japan (NTSC) 1.1
98-11-10 14:34:22 = International (PAL) 1.2
98-11-12 18:17:03 = North America (NTSC) 1.2
98-11-18 17:36:49 = International (PAL) 1.2
Oot Master Quest Debug Codes
Retrieved from 'http://www.jaytheham.com/new_wiki/index.php?title=Ocarina_of_Time_-_Debug_Code&oldid=18987'