released The Legend of Zelda: Ocarina of Time
for the Nintendo GameCube
in February 2003
as part of a preorder incentive for The Legend of Zelda: The Wind Waker
. Anyone who put down a $15 deposit on the new game in February 2003 received a free copy of the 1998
classic while supplies lasted (along with the upgraded The Legend of Zelda: Ocarina of Time: Master Quest
, but I'll save discussion of that version of the game for another node).
The game plays nearly identically to its game pak-based version. The Z-Targeting method has been replaced with L-Targeting in all in-game text, plus the onscreen buttons have been remapped to their GameCube equivalents. The Nintendo 64's Z button moves to the L button, the C buttons move to the C stick, and the X, Y, and Z buttons also perform the functions of C left, C right, and C down respectively. Furthermore, while the N64's B button was blue, the GC's is red, so the onscreen B button image has become red to match. When the game reappeared in 2003's The Legend of Zelda: Collector's Edition it featured smoother textures and an increased frame rate.
It would seem that, at heart, there is some type of emulation driving the game in its disc incarnation. I'm assuming that Nintendo tweaked the original Ocarina data and then copied that ROM file to the disc where an emulator actually makes the game playable (hey, if the GameCube can emulate Sega Genesis games, why not a Nintendo 64 game?). Upon choosing to play the game from a menu screen the player is asked if they want to use the controller's rumble feature. Once a choice is made a load screen is displayed along with a message to alert that the game is loading. I believe that this load time is allowing the console to load the game's rejiggered ROM image into memory along with the Rumble Pak preference. The game plays with no added delay - load times behave exactly like the game pak version. Whenever a game is saved the screen blanks to a plain black screen and displays a message about the game being saved, then returns to the action afterwards. It would seem that the emulator in use is catching the game pak's call to save and intercepting it with it's own save-to-memory-card routine (15 blocks of memory card space, incidentially). Then the emulator passes a "save complete" message back to the main Ocarina program so that play can resume.
These emulation theories are just that: theories. If you can prove or disprove them, please /msg me with the details. In the meantime, I'm off to play more Ocarina of Time.
yerricde says "I don't think it's emulated but rather just recompiled using something analogous to winelib or cygwin. Sega Genesis emulation is different: the Genesis has an 8 MHz 68000 and a 3.6 MHz Z80, while the N64 has a 94 MHz MIPS R4K and a 60 MHz microcoded "reality coprocessor". The GCN's CPU is only a 486 MHz PPC. If it is emulated, it's done through some sort of UltraHLE type (semi-dynamic recompilation) method.