The build date of the newly-discovered Gateway rom is 99-01-19 11:37:17
. This is later than every released Nintendo 64 version (the last of these being in November 1998): the last NTSC version (commonly referred to as 1.2 or NN2) was built on 98-11-12
, and the last PAL version (the second PAL version, referred to as NP1) on 98-11-18
.
The vast majority of the rom is the same as NN2. A small number of the changes made between NN2 and NP1 are present, but plenty of others are not (such as the Gerudo who gives you Gerudo card's clothes, which are patched to be stay a single colour in NP1 and later). These are noted below.
gateway_title_static
) contains 3 new textures for this, a Start
button, and textures for Please Select.
, Press A button to decide.
, Press B button to exit.
. After entering a name, the game starts immediately END
is pressed.Save
option is disabled in the pause menu, and the Game Over screen goes straight to the "Continue playing?" choice, skipping the save screen. Since these are the only way to save, saving is impossible. No text is changed, so the tutorial signs still explain how to save the game.Section titles are the segment name.
Region byte is 'G'
.
boot
'L'
and 'G'
as the region byte instead of 'J'
/'E'
/'P'
ovl_title
)code
code
N.B. the segment is called code
, but there is executable code in many other segments, this is just the largest one that is always loaded.
graph
(see below):
this essentially just writes 2 bytes to the given address.AudioMgr_Init
as in GC versions (setting SREG(20)
is removed).graph_main
(Graph_Update
)
SREG(20)
is used to tell the audio thread to not update (see https://github.com/zeldaret/oot/blob/8e04ae917f013f3944114fddd1286dfea86a010a/src/code/audioMgr.c#L11-L44)PadMgr_UpdateRumble
, PadMgr_RumbleStop
, PadMgr_RumbleReset
are removed.PadMgr_RumbleSetSingle
and PadMgr_RumbleSet
still exist (presumably because they are used elsewhere).PadMgr_HandleRetrace
: PadMgr_RumbleStop
block at the bottom is gone. (For some reason IDO unrolled the loop in this version only.)PadMgr_HandlePreNMI
: call to PadMgr_RumbleReset
removedLibultra: most changes are removal of pfs files
boot
func_8080BCC0_neg
: duplicate of Sram_InitNewSavefunc_8080BDEC_neg
: stubfunc_8080BDF4_neg
: stubfunc_8080BDFC_neg
: Similar to the top half of Sram_InitSave
, (above setting the "ZELDAZ")func_8080BF40_neg
: Similar to the bottom half of Sram_InitSavefunc_8080C290_ne2
/func_8080C780_neg
(FileSelect_UpdateMainMenu): vast majority of function removed
Below the first MemCpy the rest of the function is just
func_8080D138_ne2
/func_8080CFD0_neg
(FileSelect_SetWindowContentVtx
): phi_t5 is 0x274, or 0x40 if buttonIndex == 0
, the other logic is gone. Also an extra set of vertices is set above that block, using VREG(28)
and VREG(30)
.func_8080EB78_ne2
/func_8080EA44_neg
(FileSelect_DrawWindowContents
): large differences throughout
sTitleLabels[gSaveContext.language][this->titleLabel]
replaced by D_2000800_neg
in the first gDPLoadTextureBlock
nextTitleLabel
one) is gone.Start
texture, and all the DD stuff removed.sActionButtonTextures
loop is gone.FileSelect_LoadGame
: save opening replaced by custom version.
FileSelect_Main
:
FileSelect_Init
:
func_80816078_ne2
/func_80815B28_neg
(Kaleidoscope_DrawDebugEditor
):
(present in all other N64 versions, gone in iQue and GC)func_8081F4B8_ne2
/func_8081EF48_neg
(KaleidoScope_SwitchPage
):
func_80825CD0_ne2
/func_8082574C_neg
(func_808265BC
)
func_808263C0_ne2
/func_80825E44_neg
(Kaleidoscope_Update
)
Start
button, Please Select.
, Press A button to decide.
, Press B button to exit.
All just have the Gerudo symbol replaced
object_ik is notable because the change does not exist on any other version.
hakasitarelay (Dampe race) deserves special mention, RoomShapeCullable is used instead of RoomShapeNormal. For example, in room 0:
All other versions:
neg:
This is the only known version that is this way. (What does this actually change?)
This is also the only known version of the original where the Gerudo symbol is removed in this scene rather than replaced: GC misses it, VC replaces it with the new one.
This change has a somewhat storied history:
The symbol was first seen in Majora's Mask in a single place.
Gamecube releases of Ocarina of Time used it to replace the original crescent and star symbol everywhere; these edits were made in the rom itself.
Virtual Console releases have also made this change, but the edits are done by the emulators themselves; the roms are identical to NN2 or NP1. This also added the new symbol to Dampe race, whereas Gateway simply removes it.
Strangest of all is the iQue release, where the symbol is the new one on actors and the old one on scenes; we may speculate that the wrong files were used by accident. ↩︎
Also if the DoAction state is 0x2B
, which is well outside the range of normal DoAction states. ↩︎