ovl_title is the backing code for the Game State that runs the N64 Logo animation.
The Nintendo 64 logo intro in the beginning works like this: The logo is always 100% visible, rather the fading in and out is done by a black colored rectangle that covers everything. The rectangle starts fully visible at FF, then is decremented by 3 or 4? until it reaches 00. It stays invisible for 60 increments, and then the Black Rectangle fades in from 00 to FF incrementing by 3. Once the logo is fully covered, the "logo flag" changes to 1 and current game state is swapped to ovl_opening. A shimmer animation plays over the NINTENDO 64 texture continuously incrementing by 01 and rotating through 00 to 7F.
nintendo_rogo_static stores the texture for the Nintendo 64 logo and the instructions for drawing and coloring the rotating N.
As per other game state overlays, ovl_title is allocated at the end of the main heap, while the instance variables are allocated at the start of the main heap (or in other words, the "global context" address)
Majora's Mask is pretty much the same, but the fade in/fade out animation is much faster.
NTSC 1.0 Notes
0x01C7 = Opacity of a black rectangle used to fade the logo in/out
0x0818 = Start of reference to nintendo_rogo_static. A3 = File Start, T0 = File End, A1 = File Size
MQ Debug Notes
0x01D6 short //black rectangle alpha 0x01DC short //shimmer 1 0x01DE short //shimmer 2 0x01E1 byte //Logo flag, 01 = Completed, 00 = Still running
80800128 (Reloc 80400418) //Sets Instance + 0x01E1 to 01
|B77F6F||01||(in code) The Verbose flag, 02 makes "NOT MARIO CLUB VERSION" show with the Logo|
|BCF600||--||Branch for the loop to set up the Display Info for the Logo|
|BCF604||--||Loads the alpha for the Black Rectangle that covers the Intro Logo|
|BCF624||--||First of two store commands that stores the Black Rectangle alpha|
|BCF877||FF||Hardcoded value to ignore whether a controller is plugged in, 00FF = Plugged In, FEDC = Not|
|BCF88C||14||One of the timing values|
|BCF893||FF||Initial alpha value for the black rectangle|
|BCF8F0||--||The text for "NOT MARIO CLUB VERSION"|
|BCF9F4||--||The Overlay Table|
Restoring the Logo
By default, the logo flag is set to completed so the boot logo never loads. The code to control the black rectangle fading, to control the animated shimmer over NINTENDO 64 and to flip the Logo flag is missing. The best place for the missing code is in between the loading of the alpha value for the black rectangle and the storing of it. In the Debug RAM, the black rectangle alpha is stored in 2 bytes at 802121F6, the shimmer value is pulled from 2 bytes at 802121FC and stored in 2 bytes at 802121FE.
All Gamecube versions of Ocarina of Time/Master Quest and Majora's Mask can have the intro restored using the same code with minor variations for Majora's Mask's timing and storage locations. The only offsets that are important are those listed in the MQ Debug notes.
Restoring No Controller
There is a single byte 00/01 flag at 80166B68 (Debug RAM) that defines whether a controller is connected (01). The existing code stores 00FF to 8015F9B4 no matter what. If FEDC is stored instead, "No Controller" will replace "Press Start" in the title sequence. If the replacement code is less than 4 words, it can fit by pushing the code after it down into the 00000000's at the end. The "No Controller" code is disabled in all NTSC-U and PAL versions of the GameCube ROMs, but not the NTSC-J versions.