Guide To LoZ:OoT Debug Version
Guide To LoZ:OoT Debug Version
Guide To LoZ:OoT Debug Version
-debug version-
0. document information
last revision: sept. 20 2005
history:
sept. 20 2005
• initial release.
1. introduction
the ocarina of time debug version is a leaked n64 rom of the legend of zelda: ocarina of
time with several neat development features enabled. this document will attempt to
describe these featues in as much detail as possible. this rom is based on master quest, so
some differences will be visible from regular oot roms.
note: in some screenshots you may see a small square in the top left corner of the screen.
this is part of the map and appears to be an emulation error.
2. getting it to run
because the debug rom contains a lot of code which was never intended to be used in the
final release and therefore never verified for correctness, many emulators have trouble
running the rom. (no information is currently available about running it on an actual n64
system. details are welcome.) setting up emulators to run the rom properly can be tricky...
project 64
pj64, for the most part, will run the rom with no significant problems (though it does have
a tendency to go into an endless loop spewing message boxes, at which point you can
only close the emulator). because pj64 uses the rom checksum to identify a game, it won't
recognize this rom as oot and will therefore use the default rom settings. to get it working
you should go into the rom settings (options -> settings -> rom settings while the game is
running, or right-click the rom in the rom list and click edit game settings) and set up
everything the same way as oot. for reference, oot has the following settings in pj64 v1.6.
also, an alternate configuration is provided in case oot's doesn't work as well.
property oot setting alternate setting
cpu core style recompiler recompiler
self-modifying code method check memory advance protect memory
memory size 8mb* 8mb
advanced block linking default on
default save type use first used use first used
counter factor 2 default
larger compile buffer no no
use tlb no no
register caching yes yes
delay si interrupt no no
sp hack no no
rsp audio signal no no
*although oot uses 4mb, the debug rom needs 8mb to function properly.
nemu
though nemu has some trouble running the rom, it will run with a few simple tweaks.
first, set the memory size to 8mb. second, use any video plugin other than the default, as
this plugin will not render the graphics at all. some errors may be reported when the rom
is first loaded; these can be ignored.
all emulators
because the debugging features use all 4 controllers, you will need to configure all of
them. if you have 4 joysticks or an adaptoid, great. otherwise, use as many controllers as
possible and map the rest to the keyboard. you may simply map controllers 2, 3 and 4 to
the same set of keys and only enable one at a time as there is no known instance where
multiple controllers (aside from 1) need to be used at once. additionally, you may want to
enable a memory pak in one or more controllers as this will be used in the camera
debugger. if you only have one joystick and use pj64, here is an alternate layout which
maps every button on controllers 2, 3 and 4 to its own key, so that they may all be used at
once.
finally, make sure that you are not using any of the following graphics plugins:
plugin settings
some plugins will require a bit of tweaking to get the game running properly. these
settings may not work perfectly for you but should get the game running.
jabo's video v1.52
this should work fine, just uncheck self-rendered textures.
rice's video v6.10
full tmem emulation: on
load hi-res textures if available: off
accurate texture mapping: on
n64 frame buffer emulation: basic framebuffer & with emulator
rendering to texture emulation: basic render-to-texture
try to save vram: on
3. map select
the map select screen allows you to jump to any area in the game. to access it, either
select file #1 or press l+r+z on controller 1 at any time. (note: the controller combo does
not always work for some reason.) the controls are as follows, using controller 1:
button action
d-pad up/down/left/right select area
a/start enter area
b choose link's age
l next page
r decrease 'stage'
z increase 'stage'
c-up decrease 'opt'
stage determines what part of the area you'll appear in or what cutscene will play (if any).
opt's effect is unknown. age is 5 for young link and 17 for adult link. the names in the list
are unfortunately not very explanatory and mostly in japanese. harrosin has written an
english list (though some revisions have been made):
1: hyrule field
2: kakariko village
3: graveyard
4: zora's river
5: kokiri forest
6: sacred forest meadow
7: lake hylia (stage 01 shows the credits)
8: zora's domain
9: zora's fountain
10: gerudo valley
11: lost woods
12: desert colossus
13: gerudo's fortress
14: haunted wasteland
15: hyrule castle
16: death mountain trail
17: death mountain crater
18: goron city
19: lon lon ranch
20: temple of time
21: chamber of sages [cutscene]
22: shooting gallery
23: castle courtyard game
24: underground grave 1
25: underground grave 2
26: royal family's tomb
27: great fairy's fountain (din)
28: great fairy's fountain (farore)
29: great fairy's fountain (nayru)
30: ganondorf's tower - collapsing [cutscene]
31: zelda's courtyard
32: fishing pond
33: bombchu bowling alley
34: lon lon ranch house
35: lon lon ranch silo
36: hyrule castle town - guard house
37: potion shop
38: treasure box shop
39: house of skulltula
40: hyrule castle town - main alley
41: market
42: back alley
43: tempe of time - outside
44: link's home
45: house (kakariko)
46: house (back alley)
47: house of the know-it-all brothers
48: house of the twins
49: mido's house
50: saria's house
51: stable
52: gravekeeper's hut
53: house (back alley)
54: house (kakariko)
55: lakeside laboratory
56: running man's tent
57: bazaar
58: kokiri shop
59: gordon shop
60: zora shop
61: closed shop
62: potion shop
63: back alley night store
64: happy mask shop
65: gerudo training ground
66: inside the deku tree
67: deku tree boss [boss]
68: dodongo cavern
69: dodongo cavern boss [boss]
70: inside jabu-jabu's belly
71: inside jabu-jabu's belly boss [boss]
72: forest temple
73: forst temple boss [boss]
74: bottom of the well
75: shadow temple (literal translation: dungeon beneath the grave)
76: shadow temple boss [boss]
77: fire temple
78: fire temple boss [boss]
79: water temple
80: water temple [boss]
81: spirit temple
82: spirit temple [iron knuckle]
83: spirit temple boss [boss]
84: stairs to ganondorf
85: ganondorf [boss]
86: ice cavern
87: dampé's grave (literal translation: beneath the grave rirei)
88: inside ganon's castle
89: escaped ganon's castle [final boss fight]
90: escaping ganon's castle 1
91: escaping ganon's castle 2
92: escaping ganon's castle 3
93: escaping ganon's castle 4
94: escaping ganon's castle 5
95: thieves' hideout 1
96: thieves' hideout 2
97: thieves' hideout 3
98: thieves' hideout 4
99: thieves' hideout 5
100: thieves' hideout 6
101: underground grotto 1
102: underground grotto 2
103: underground grotto 3
104: underground grotto 4
105: underground grotto 5
106: underground grotto 6
107: underground grotto 7
108: underground grotto 8
109: underground grotto 9 (looks beta)
110: underground grotto 10
111: underground grotto 11
112: underground grotto 12
113: underground grotto 13
114: underground grotto 14
115: various cutscenes
116: special room (strongbox warp)
117: bamboo grass test (assumption: ground test)
118: test map (lots of water and ledges, ladders, etc)
119: test room (craploads of treasure boxes)
120: medium/mediocre stalfos room
121: boss stalfos room (beta; not much there, the warp takes you to the
courtyard)
122: beta dark link arena, including dark link
123: shooting gallery
124: depth test (9 squares way off in distance, link falls to his doom)
125: hyrule garden game 2 (pj64 goes into endless error message loop)
title: title screen
note that if you warp to an underground grotto or similar area, trying to leave will take
you to an undefined area which appears to be an unused part of the deku tree. also, if
when you select a map, the input display just stays on the screen forever, it means the
game has crashed, most likely because you specified an invalid stage.
4. inventory editor
this screen allows you to edit your current items, equipment, and other related variables.
to access it, press l on any pause menu. press l again to exit. the controls are as follows,
using controller 1:
button action
d-pad select value
c change value
note that the pause menu is still active, thus pressing other buttons will perform the
actions they normally would on that menu. the c buttons work differently depending
which value is selected. from left to right, top to bottom, the values are:
• rupee - allows you to change your rupee count, from 0 to 9999. c-up subtracts
100, c-down adds 100, c-left subtracts 1, and c-right adds one.
• hearts - allows you to change your current and max health, from 0 to 20 hearts.
the first value is max, second is current. c-left or c-up decrease, c-right or c-down
increase. when changing current health, c-left and c-right increase/decrease by 1/4
while c-up and c-down increase by an entire heart.
• item - allows you to change the quantity of each of your items. use left and right
to select an item slot. c-left increases, c-right decreases, c-up sets to zero. for
items that do not have quantities, the number represents an item number. only
numbers valid for that slot can be used. note that to get rid of an item without a
quantity, you must press c-up.
• key - allows you to change the amount of keys you have in each dungeon, from 0
to 9. while the cursor may appear to be covering two digits, it's actually only
supposed to cover one. c-up and c-left decrease, c-right and c-down increase. note
that there are 18 values, which is more than are actually used in the game.
• upgrades - allows you to select equipment upgrades. from left to right, the values
control quiver, bomb bag, gauntlet, scale, wallet, bullet bag, and two values that
don't seem to be used. c-left or c-up decreases, c-right or c-down increases.
• equipment - allows you to specify which equipment you have. from left to right,
the values control sword, shield, tunic, and boots. the c buttons work a little
differently here in that they toggle the bits of each value. c-up toggles bit 3 (not
used), c-right toggles bit 2 (slot 3), c-down toggles bit 1 (slot 2), and c-left toggles
bit 0 (slot 1). the value 7 gives you all items. values above 9 aren't displayed
correctly.
• map - not tested, but assumed to control dungeon items (big key, compass and
map). the c-buttons work the same as they do for equipment, except that c-up does
not do anything (nor should it in equipment; apparently a small oversight on the
programmers' behalf).
• medallions - allows you to control whether you have each medallion. the values,
from left to right, control forest, fire, water, spirit, shadow, and light. c-up or c-
left toggles the value. (note that there's no bit that lights up that triforce. though
there isn't one that gives you magic or double defense either...)
• stones - same as medallions, but for the spiritual stones instead. from left to right,
the values control kokiri's emerald, goron's ruby and zora's sapphire. (note: to
reach this option, you need to move the cursor past ocarina.)
• ocarina - same as medallions, this time for ocarina songs. from left to right, the
values control minuet of forest, bolero of fire, serenade of water, requiem of
spirit, nocturne of shadow, prelude of light, zelda's lullaby, epona's song, saria's
song, sun's song, song of time and song of storms. the scarecrow's song is not
included in this list.
• collect - these values again work the same as the medallions. the first controls
whether you have the stone of agony, the second the gerudo's card.
• gold skulltula - allows you to change the number of gold skulltulas you have. c-up
and c-left increase, c-right and c-down decrease.
• heart piece - allows you to choose how many heart pieces you have. c-up and c-
left increase, c-right and c-down decrease. the game allows values up to 5, even
though only up to 3 is valid.
5. memory editor
this feature displays variables from various areas in memory and allows you to edit them.
to display them, press any of the following button combinations on controller 2. each
combo displays a different variable group (sorted alphabetically).
• r09: colour edit switch. 0 means you can edit the colour intensities and they won't
change. anything else means the game will update them and you can't edit them.
the visibility setting drastically changes the area's appearance. one wonders why nintendo
didn't use 1000 for hyrule field; it looks a lot more impressive.
• 0: circles
• 1: beta triforce fade
• 2: fade to black
• 3: fade to white
• 8: same as 0
• 9: same as 3
• 10: same as 3
• 11: no transition
• 12: same as 3
• 16: cutscene mode(?) - doesn't render anything, can't pause, time stopped
• 20+: crash
6. audio debug
the audio debugger is one of the most extensive debugging systems ever seen in a video
game and allows for just about every (if not every) aspect of the game's sound system to
be tested in any number of ways. it contains 15 pages of debugging menus and
information. no way has yet been found to access it within the game normally, but some
clever hackers came up with the gameshark code 81210b2f 1111 to break into it.
the controls are as follows, using controller 4:
button action
l previous page
r next page
z change text colour
note: the debug print colour is a separate setting.
note that this menu lags the game considerably (though this may just be a pj64 issue, or
the computer it was tested on may not have been fast enough). a good place to
experiment with it is map #118, since there is absolutely nothing there save for some
water and ground and link. of course, this means there won't be a lot of sounds being
made there, so you may want to experiment on other maps with certain features.
page 1: non
this page allows you to toggle the music and sound effects, and displays information
about current sounds.
bgm cancel: disables the music. press a to toggle.
se mute: disables the sound effects. press b to toggle.
se handle: doesn't seem to be changable.
additional info is displayed here when link makes a sound.
7. camera debug
the camera debugger is by far one of the coolest debug features ever. with it, you can
change the camera angle to wacky new views, move around in cutscenes, fly through the
air, water, or whatever, and even record your own demos like the ones shown when you
first enter an area.
the camera debugger is broken down into 3 different modes. to activate or deactivate it,
press start. (all input is done through controller 3.) press z to switch modes.
in this mode, the d-pad is used to navigate an on-screen menu. up and down select a
value, left and right modify it. the first option moves the camera forward or backward. the
second changes the number of frames that will be generated between this point and the
next. the third rotates the camera. the effects of the other options are not yet known.
the third setting displays the points you've set as green ghost cameras and arrows.
• l:
• in mode 1, while holding l, a and b move the axes toward or away from
the camera. the farther they are, the faster the camera moves. pressing up
and down will move the camera forward or backward.
• in mode 3, it has the same effect as in mode 1, but instead of moving the
axes away from the camera, it moves the camera away from the axes. the
closer it gets to them, the slower it moves, eventually stopping at the
center. this looks cool if you zoom way out so you can't see the area, then
zoom back in.
pressing r creates a point at the current position. these points are used to create demos. the
game uses a process called 'tweening' to create a full-motion video out of these points. the
game places the camera at the first point, then uses a complex algorithm to move the
camera smoothly to the next point by generating several 'sub-points' between them and
simply jumping from one to the next. (the number of sub-points can be changed to adjust
the motion speed; this is the number of frames (second option) in the mode 2 menu.) if
you place a point incorrectly, you can use c-up and c-down to navigate to it, move the
camera, and press r to overwrite it. be sure to navigate back to the current camera position
afterward (keep pressing the buttons until the point counter doesn't show 'xx/xx') or you'll
end up overwriting other points.
holding c-right allows you to view the demo you've created so far; you can stop at any
time by letting go of the button. this is good for testing your animation to ensure that the
camera does not go through an object and that it will actually play the sequence properly.
(the editor seems to have a lot of bugs which often prevent the sequence from playing or
cut it off early.)
• a: insert sequence
• b: remove sequence
• l: rearrange sequences
once you've created a sequence, select a question mark and press a to insert your
sequence in this slot. the sequence is assigned a letter, starting with a and increasing.
pressing b removes the sequence. selecting one of the dashes next to a question mark and
holding l will display that sequence's letter in green. you can then use the d-pad to select
a different dash and release l, and the sequence will be moved to this slot (all sequences
after it are moved ahead). press c-right to view the entire demo. a green arrow will mark
the current sequence that is playing. the counters displayed on the screen display
information about the demo. the first number is the number of frames played in the
current sequence. the second is the number of frames played in the entire demo. the third
is the current point number. press c-left at any time to stop the demo. the beginning of the
sequence is marked with a rupee sound, and the end by a recovery heart sound.
note: inserting and arranging sequences can be difficult. if you create a sequence and
insert it as a, then create a different sequence and don't insert it, only the old sequence
will play. to replace it with your new sequence, you must remove it and insert the new
one. if you don't want to remove the old one, you can insert your new one in another slot,
then move it in front of the first with l.
pressing up or down navigates through the menu. the menu is only displayed if save, load
or clear is selected, but pressing up or down will still display it in edit mode. the first
option is save, the second is load, and the third is clear. (tip: look at the letter in front of
the save slots. s means save, l means load, c means clear.)
these options allow you to save and load your created sequences to and from the memory
card. the process works the same way as editing the demo; use left and right to select a
slot, then press a to save to/load from/clear (erase) that slot. note that the letters assigned
to a sequence here are not the same as those assigned in the demo itself. you can save
over an existing sequence in which case you'll be prompted to overwrite it; press left or
right to select yes (option on the left) or no (on the right). when you are prompted to press
b, the operation succeeded.
unfortunately, the demo editor seems to have a number of limitations which seem to be
bugs. these bugs can make it difficult or even impossible to use at times. any information
on what causes them and/or how to work around them would be highly appreciated.
• sometimes the game will refuse to play a sequence, displaying the same error it
would if no points were created no matter how many actually were. (the error
message has not been successfully translated, partially because of the difficult-to-
read font, but it mentions a 'key frame' which is another term for a point.)
unfortunately this seems to be quite common.
• in just about every case, the number of points that can be used is severely limited.
though there doesn't appear to be a limit to the number of points that can be
actually created, the game will cut the sequence short (you will notice when
viewing the sequence that the total number of points is too low). sometimes the
number of points allowed is more than adequate (current record is 11), but in
many cases it's a very low number like 4 or even 0 (only one point is displayed).
this is much more common after one sequence has already been created.
• the first point created in a sequence seems to be omitted entirely. this can be
worked around by simply placing it in some random location.
• in certain areas, points often become corrupted (usually when saving) or the demo
simply won't play (it just ends immediately). though little testing has been done
due to the other annoying bugs, the following notes have been made:
• in an area which does not contain any sequences (the test map), nothing
will play.
• in an area which contains a sequence, but not one that plays on entry (any
great fairy's fountain), the sequences will usually play. for best results, the
existing sequence should be triggered and interrupted (pressing right on
controller 1), but this may not be necessary.
finally, an added bonus of this feature is that combined with other debugging featues (see
below), you can move the camera around in a cutscene, watch any scene from any angle,
etc.
this section lists other debug features that aren't intricate enough to have their own
section. the game contains tons of these little features, most of which are activated by
some crazy button sequence.
status display
this feature adds some bars to the screen that display various information about cpu
usage, graphics, sounds, etc. the time display and bars can be toggled seperately via the
memory editor, or you can use the code 80210ae4 0001 (both are enabled with this code).
one unique attribute of this feature is that it still exists in the released version of oot,
though of course a code is required to access it. the released version also doesn't appear to
have the time display. a similar feature is actually present in many other n64 games such
as super mario 64 and mario kart 64. the bars, while interesting to look at, don't provide
much useful information and for that matter don't give any indication as to what they
mean. the text displays various time-related information. hiru appears to mean day, while
yoru means night. the exact meaning of the t and e values is unknown but they appear to
display a day counter. zeldatime and vrboxtime always seem to display the same values,
which is the current in-game time. (very useful.)
input display
nothing really special. see those dots that keep appearing in the bottom right corner?
they're displaying the status of each button on controller 1. notice that they're coloured
the same as the actual buttons on an n64 controller.
cutscene control
during any cutscene, you can press right on controller 1 to interrupt the scene and regain
control of link. in many cases, such as the title screen demos, you'll be able to walk
around in the area with things close to how they were when you interrupted the scene. in
scenes where link isn't present, the game will just kinda hang there, but you can still use
the camera debugger to look around. pressing left, up or down will return to the scene or
in some cases restart it. one very cool trick you can do with this is to move around with
the camera debugger, leave it in demo camera tool mode, and restart the scene. from there
on, the camera won't move, so you can watch the action from wherever you want!
additionally, most objects in cutscenes don't have any collision data, so you can walk
right through them. this can produce some interesting results.
language select
a minor feature, but neat nonetheless. controller 3 can be used to change languages mid-
game. d-pad left switches to english, right to french, and up to german. (one would think
japanese would be an option too...) of course this does mean that the language will switch
around when you use the camera debugger.
beta text
the following text can be found in the game's memory: (note: | is used to separate strings.)
• swap|add|a|s|x|off|on|stby [near the audio debug options; swap is used, but add,
which is right next to it, doesn't seem to be. a, s and x are separated by only one
byte, just like swap and add.]
• congraturations! all pages are displayed. thank you! you are great debugger! [in
debug error text. note the engrish.]
• file 1 has no name defined, and doesn't have any magic. there doesn't seem to be
any debug option to change the player's magic either.
• room 115, which is used in the various goddess scenes, is accessible in normal oot
via beta quest. unfortunately, all it is is rain and clouds.