En Mag

From CloudModding OoT Wiki
(Redirected from Ovl En Mag)
Jump to: navigation, search
Actor 0x0171
ovl_En_Mag
Version VRom VRam Size
Debug 00E59B70 00E5C0C0 {{{ram-start}}} {{{ram-end}}} 2550
NTSC 1.0 00E6C0D0 00E6EFE0 {{{ram-start}}} {{{ram-end}}} 2F10
PAL MQ 00DF86C0 00DFABE0 {{{ram-start}}} {{{ram-end}}} 2520

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.

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