En Mag
From CloudModding OoT Wiki
ovl_En_Mag is the actor that displays the Title Screen logo.
When ovl_En_Mag is loaded, pressing D-Up, D-Down, D-Left, D-Right, Start, B, C-Down, L, C-Right, C-Left, A, C-Up, R, Z on controller 3 resets the save data. This can be used to delete save data that cannot be deleted through the file select menu.
Contents
Overlay
NTSC 1.0
Offset | Type | Description |
---|---|---|
1FB | byte | "Press Start" Text Green and Blue |
21F | byte | "Press Start" Text Red |
2196 | byte | Title Screen Text Base Red |
2197 | byte | Title Screen Text Base Green |
219A | byte | Title Screen Text Base Blue |
21D6 | byte | Title Screen Text Overlay Red |
21D7 | byte | Title Screen Text Overlay Green |
21DA | byte | Title Screen Text Overlay Blue |
2D50 | s32 | Save reset code input length |
2D54 | u32[0x0E] | Input Sequence for the save reset code |
2D98 | char[0x0C] | "NOCONTROLLER" in the file name character set |
2DA4 | char[0x0A] | "PRESSSTART" in the file name character set |
2DB0 | u32[9] | Segment offset array to Title Logo's 9 flame mask images |
Save Reset Code Routine
In this section of notes, the loaded overlay file is located at 801EF370 in ram, and instruction addresses within the overlay file are abbreviated to the rightmost four digits (except for branches). The actor instance is located at 801F42B0, with ram addresses abbreviated to the rightmost six digits.
F7DC LHU A2, 0044 (A0) Load controller 3 button input (buttons) F7E4 LW T6, 630C (A3) Load previous controller 3 input (buttons) F7E8 ANDI A2, A2, 0xFF3F (bitwise and) F7F0 BNE A2, T6, 801EF830 (branch if new input is different) F7F4 ADDIU T2, R0, 0x0010 (T2 = 0x10) (perhaps frames until next input?) F830 SW T2, 0x6311 (AT) (2025C0 = 0x00000010, writes timer to press next input) F834 SW A2, 0x630D (AT) (2025BC = 3rd controller button input) F838 LH V1, 0x6306 (A3) (2025B6) (Load index to next input checked) F844 SLTI AT, V1, 0x0004 F848 BEQ AT, R0, 801EF890 (branch if past first dpad input) F84C SLL T7, V1, 0x2 (T7 has offset to next input checked) things happen F858 LW T4, 0x20C4(T4) (T4 = 801F20C4 + V1*4) F864 AND T5, T4, A2 (T4 = 800 in this pass) F868 BEQ T5, R0, 801EF87C (branch if T5 != 0x0800) F870 SH T6, 0x6307 (AT) (2025B6 = T6) ?? INPUT CHAIN >= 4 F890 ADDU V0, V0, T7 (start building input check chain?) F894 LW V0, 0x20C4 (V0) = Load next input check F898 LHU T8, 0x0050 (A0) = Load input (from just pressed address) F89C ADDIU T0, V1, 0x0001 (increment input counter, store in T0) F8A4 AND T9, T8, V0 = Check input, store result T9 F8A8 BNE T9, V0, 801EF8BC (branch on mismatch) F8B4 BEQ 801EF8CC F8B8 LH V1, 0x6306 (A3) Load input chain index F8CC ADDIU AT, R0, 0x000E (Load input chain index for next branch) F8D0 BNEL V1, AT, 801EF8F0 (Branch if INPUT CHAIN < 0xE) F8D4 LW RA, 0x0014 (SP) (SKIPPED) JAL F370 ADDIU SP, SP, 0xFFE0 (protect stack)
Debug
Offset | Type | Description |
---|---|---|
2F | byte | "Press Start" Text Red |
3B | byte | "Press Start" Text Green and Blue |
1AFA | byte | Title Screen Text Base Red |
1AFB | byte | Title Screen Text Base Green |
1AFE | byte | Title Screen Text Base Blue |
1B1E | byte | Title Screen Text Overlay Red |
1B1F | byte | Title Screen Text Overlay Green |
1B22 | byte | Title Screen Text Overlay Blue |
Instance Variables
NTSC 1.0
Offset | Type | Purpose |
E306 | u16 | Index to next input combo to check for |
E30C | u32 | Stores controller 3's button input for the previous cycle |
E310 | u32 | Stores the number of cycles left to input the next button in sequence, before the combo fails. Set to 0x10 for every successful input |
Debug
/* 0xE2E0 */ float //G_SETPRIMCOLOR LOD fraction, if > 0, the logo "aura" appears. Greater values decrease "aura" strength /* 0xE2E4 */ float flameR /* 0xE2E8 */ float flameG /* 0xE2EC */ float flameB /* 0xE2F0 */ float auraR /* 0xE2F4 */ float auraG /* 0xE2F8 */ float auraB