From CloudModding OoT Wiki
Actor 0x008A
ovl_En_Vm
Version VRom VRam Size
Debug 00EE3290 00EE4C20 {{{ram-start}}} {{{ram-end}}} 1990
NTSC 1.0 00CC6B80 00CC8430 {{{ram-start}}} {{{ram-end}}} 18B0
PAL MQ 00E7BE70 00E7D730 {{{ram-start}}} {{{ram-end}}} 18C0

Debug Rom Notes

Virtual Address: 80B2D460 - 80B2EDF0

Overlay

Offset Type Description/Info
0x0000 Function Gets called to store current function Beamos uses to its instance variables, and read by another function during runtime. Used to determine Beamos's next action.

AC850214 -> stored relative 0x214 of Beamos's actor instance variables in RAM

0x061C Function Shoots lazer beam at Link
0x0660 Code Loads unsigned byte from 0x2C4 of Beamos's actor instance in RAM to determine if lazer hits Link.

Normally 0x11, checks for flag 0x02 where 0x13 ends firing phase

0x688
and
0x69C
Code recalculated RAM address used as a limit maximum to a counter stored at 0x254 of the Beamos's RAM instance. Second half at 0x69C determines the counter limit to end lazer firing.
0x700 JAL Jumps to 0x1A0 after finished firing lazer to reset to rotating action.

Instance

Offset Type Description/Info
0x214 ptr RAM address reference to current function being used
0x220 int Actual timer used to determine Beamos charging and firing lazer duration
0x248 float size/scale of lazer beam when fired
0x254 short used as a form of counter, compared against the second half of some RAM address value? Times out lazer when counter decrements. Also used as an increment to attack with.

Possibly unique to the Beamos.

0x260 short used to determine phase of lazer firing

stages: 0x0004 to commence firing beam

0x2C4 byte Used to determine phase of Beamos