;;; $8000..8686: Common to all enemy banks ;;;
;;; $8687..88EF: Waver ;;;
    ;;; $8687: Palette - enemy $D63F (waver) ;;;
    ;;; $86A7..DA: Instruction lists - waver  ;;;
        ;;; $86A7: Instruction list - steady - facing left ;;;
        ;;; $86AD: Instruction list - steady - facing right ;;;
        ;;; $86B3: Instruction list - spinning - facing left ;;;
        ;;; $86C7: Instruction list - spinning - facing right ;;;
    ;;; $86DB: Instruction list pointers ;;;
    ;;; $86E3: Instruction - set spin finished flag ;;;
    ;;; $86ED: Initialisation AI - enemy $D63F (waver) ;;;
    ;;; $874C: Main AI - enemy $D63F (waver) ;;;
    ;;; $87FE: Set waver instruction list ;;;
    ;;; $881E: Spritemaps - waver ;;;
;;; $88F0..8C0E: Metaree ;;;
    ;;; $88F0: Palette - enemy $D67F (metaree) ;;;
    ;;; $8910: Instruction list - idling ;;;
    ;;; $8924: Instruction list - prepare to launch attack ;;;
    ;;; $8930: Instruction list - launched attack ;;;
    ;;; $8946: Unused. Instruction list - stop animating ;;;
    ;;; $894E: Metaree instruction list pointers ;;;
    ;;; $8956: Instruction - set attack ready flag ;;;
    ;;; $8960: Initialisation AI - enemy $D67F (metaree) ;;;
    ;;; $8979: Main AI - enemy $D67F (metaree) ;;;
    ;;; $897F: Unused. Metaree function pointers ;;;
    ;;; $8987: Metaree function - idling ;;;
    ;;; $89AC: Determine metaree Y velocity ;;;
    ;;; $89D4: Metaree function - prepare to launch attack ;;;
    ;;; $89F3: Metaree function - launched attack ;;;
    ;;; $8A5C: Metaree function - burrowing ;;;
    ;;; $8AB2: Set metaree instruction list pointer ;;;
    ;;; $8AD2: Unused ;;;
    ;;; $8B0E: RTL ;;;
    ;;; $8B0F: Enemy shot - enemy $D67F (metaree) ;;;
    ;;; $8B65: Metaree spritemaps ;;;
;;; $8C0F..9009: Fireflea ;;;
    ;;; $8C0F: Palette - enemy $D6BF (fireflea) ;;;
    ;;; $8C2F: Instruction list - fireflea ;;;
    ;;; $8D03: Fireflea data ;;;
    ;;; $8D2D: Initialisation AI - enemy $D6BF (fireflea) ;;;
    ;;; $8D5D: Set fireflea centre ;;;
    ;;; $8D6A: Set initial fireflea angle ;;;
    ;;; $8D75: Set fireflea speed ;;;
    ;;; $8D9C: Set fireflea radius ;;;
    ;;; $8DAE: Set initial circling fireflea position ;;;
    ;;; $8DD7: Set Y fireflea extrema ;;;
    ;;; $8DEE: Main AI - enemy $D6BF (fireflea) ;;;
    ;;; $8E6B: Enemy touch - enemy $D6BF (fireflea) ;;;
    ;;; $8E83: Power bomb reaction - enemy $D6BF (fireflea) ;;;
    ;;; $8E89: Enemy shot - enemy $D6BF (fireflea) ;;;
    ;;; $8E8D: Fireflea shared shot reaction ;;;
    ;;; $8EA5: Fireflea spritemaps ;;;
;;; $900A..94D5: Skultera ;;;
    ;;; $900A: Palette - enemy $D6FF (skultera) ;;;
    ;;; $902A: Instruction list - swimming left ;;;
    ;;; $903C: Instruction list - turning right ;;;
    ;;; $9060: Instruction list - swimming right ;;;
    ;;; $9072: Instruction list - turning left ;;;
    ;;; $9096: Instruction - enemy layer = 6 ;;;
    ;;; $90A0: Instruction - enemy layer = 2 ;;;
    ;;; $90AA: Instruction - set turn finished flag ;;;
    ;;; $90B5: Initialisation AI - enemy $D6FF (skultera) ;;;
    ;;; $912B: Main AI - enemy $D6FF (skultera) ;;;
    ;;; $9132: Skultera function - swimming left ;;;
    ;;; $91AB: Skultera function - swimming right ;;;
    ;;; $9224: Skultera function - turning right ;;;
    ;;; $9256: Skultera function - turning left ;;;
    ;;; $9288: RTL ;;;
    ;;; $9289: RTL ;;;
    ;;; $928A: Skultera spritemaps ;;;
    ;;; $94AA: Unused. Skultera spritemap pointers ;;;
;;; $94D6..965A: Elevator ;;;
    ;;; $94D6: Instruction list - elevator ;;;
    ;;; $94E2: Elevator controller inputs ;;;
    ;;; $94E6: Initialisation AI - enemy $D73F (elevator) ;;;
    ;;; $952A: Main AI / grapple AI / frozen AI - enemy $D73F (elevator) ;;;
    ;;; $9548: Elevator AI - elevator status = 0: inactive ;;;
    ;;; $9579: Elevator AI - elevator status = 1: leaving room ;;;
    ;;; $95B9: Elevator AI - elevator status = 2: door transition ;;;
    ;;; $95BC: Elevator AI - elevator status = 3: entering room ;;;
    ;;; $9612: Place Samus on top of elevator ;;;
    ;;; $962F: Spritemaps - elevator ;;;
;;; $965B..980A: Sciser ;;;
    ;;; $965B: Palette - enemy $D77F (sciser) ;;;
    ;;; $967B: Instruction list - sciser - upside right ;;;
    ;;; $9693: Instruction list - sciser - upside left ;;;
    ;;; $96AB: Instruction list - sciser - upside down ;;;
    ;;; $96C3: Instruction list - sciser - upside up ;;;
    ;;; $96DB: Sciser initial instruction list pointers ;;;
    ;;; $96E3: Initialisation AI - enemy $D77F (sciser) ;;;
    ;;; $96FD: Unused. RTL ;;;
    ;;; $9701: Unused. RTL ;;;
    ;;; $9702: Unused. RTL ;;;
    ;;; $9703: Sciser spritemaps ;;;
;;; $980B..9B7A: Zero ;;;
    ;;; $980B: Palette - enemy $D7BF (zero) ;;;
    ;;; $982B..992A: Instruction lists ;;;
        ;;; $982B: Unused. Instruction list - zero - upside right - facing up ;;;
        ;;; $984B: Instruction list - zero - upside right - facing down ;;;
        ;;; $986B: Unused. Instruction list - zero - upside left - facing down ;;;
        ;;; $988B: Instruction list - zero - upside left - facing up ;;;
        ;;; $98AB: Instruction list - zero - upside down - facing left ;;;
        ;;; $98CB: Unused. Instruction list - zero - upside up - facing left ;;;
        ;;; $98EB: Unused. Instruction list - zero - upside down - facing right ;;;
        ;;; $990B: Instruction list - zero - upside up - facing right ;;;
    ;;; $992B: Zero initial instruction list pointers ;;;
    ;;; $993B: Initialisation AI - enemy $D7BF (zero) ;;;
    ;;; $9955: Unused. RTL ;;;
    ;;; $9959: Unused. RTL ;;;
    ;;; $995A: Unused. RTL ;;;
    ;;; $995B: Zero spritemaps ;;;
;;; $9B7B..A050: Tripper / suspensor platform ;;;
    ;;; $9B7B: Palette - enemy $D7FF (tripper) ;;;
    ;;; $9B9B: Palette - enemy $D83F (suspensor platform) ;;;
    ;;; $9BBB..9C6A: Instruction lists - tripper / suspensor platform ;;;
        ;;; $9BBB: Instruction list - suspensor platform - vertically moving - moving left ;;;
        ;;; $9BD1: Instruction list - suspensor platform - vertically moving - moving right ;;;
        ;;; $9BE7: Instruction list - suspensor platform - vertically still - moving left ;;;
        ;;; $9BFD: Instruction list - suspensor platform - vertically still - moving right ;;;
        ;;; $9C13: Instruction list - tripper - vertically moving - moving left ;;;
        ;;; $9C29: Instruction list - tripper - vertically moving - moving right ;;;
        ;;; $9C3F: Instruction list - tripper - vertically still - moving right ;;;
        ;;; $9C55: Instruction list - tripper - vertically still - moving left ;;;
    ;;; $9C6B: Instruction - set moving left X movement ;;;
    ;;; $9C76: Instruction - set moving right X movement ;;;
    ;;; $9C81: Instruction - set moving left X movement ;;;
    ;;; $9C8C: Instruction - set moving right X movement ;;;
    ;;; $9C97: Tripper / suspensor platform movement function pointers ;;;
    ;;; $9C9F: Initialisation AI - enemy $D83F (suspensor platform) ;;;
    ;;; $9CBA: Initialisation AI - enemy $D7FF (tripper) ;;;
    ;;; $9CCC: Tripper / suspensor platform common initialisation AI ;;;
    ;;; $9D16: Main AI - enemy $D7FF/$D83F (tripper / suspensor platform) ;;;
    ;;; $9D5E: Tripper / suspensor platform X movement function - index 0: moving left ;;;
    ;;; $9D83: Tripper / suspensor platform X movement function - index 1: moving right ;;;
    ;;; $9DA8: Tripper / suspensor platform Y movement function - index 0: rising ;;;
    ;;; $9DE4: Tripper / suspensor platform Y movement function - index 1: sinking ;;;
    ;;; $9E46: RTS ;;;
    ;;; $9E47: Set tripper / suspensor platform instruction list - vertically moving - moving left ;;;
    ;;; $9E64: Set tripper / suspensor platform instruction list - vertically moving - moving right ;;;
    ;;; $9E81: Set vertically moving instruction list - vertically still - moving left ;;;
    ;;; $9E9E: Set vertically moving instruction list - vertically still - moving right ;;;
    ;;; $9EBB: Set tripper / suspensor platform instruction list - vertically moving ;;;
    ;;; $9EE1: Set tripper / suspensor platform instruction list - vertically still ;;;
    ;;; $9F07: RTL. Enemy touch - enemy $D7FF/$D83F (tripper / suspensor platform) ;;;
    ;;; $9F08: Enemy shot - enemy $D7FF (tripper) ;;;
    ;;; $9F29: Tripper / suspensor platform spritemaps ;;;
;;; $A051..A724: Roach ;;;
    ;;; $A051: Palette - enemy $D87F/$D8BF (roach) ;;;
    ;;; $A071..A110: Instruction lists - roach ;;;
        ;;; $A071: Instruction list - facing up ;;;
        ;;; $A085: Instruction list - facing up-left ;;;
        ;;; $A099: Instruction list - facing left ;;;
        ;;; $A0AD: Instruction list - facing down-left ;;;
        ;;; $A0C1: Instruction list - facing down ;;;
        ;;; $A0D5: Instruction list - facing down-right ;;;
        ;;; $A0E9: Instruction list - facing right ;;;
        ;;; $A0FD: Instruction list - facing up-right ;;;
    ;;; $A111: Roach instruction list pointers ;;;
    ;;; $A121: Roach activate function pointers ;;;
    ;;; $A12F: Set roach instruction list ;;;
    ;;; $A14D..A2CF: Roach initialisation AI ;;;
        ;;; $A14D: Initialisation AI - enemy $D87F/$D8BF (roach) ;;;
        ;;; $A183: Calculate moving forward speeds ;;;
        ;;; $A1B0: Unused. Calculate moving forward velocities ;;;
        ;;; $A1F3: Calculate moving left velocities ;;;
        ;;; $A23E: Calculate moving right velocities ;;;
        ;;; $A289: Determine facing forward instruction list index ;;;
        ;;; $A29E: Determine facing left instruction list index ;;;
        ;;; $A2B7: Determine facing right instruction list index ;;;
    ;;; $A2D0: Main AI - enemy $D87F/$D8BF (roach) ;;;
    ;;; $A2D7: Roach function - wait for Samus to get near ;;;
    ;;; $A301..B4: Roach functions - activate ;;;
        ;;; $A301: Roach function - activate - index 0 (move forwards) ;;;
        ;;; $A30B: Roach function - activate - index 1 (move forwards in a zigzag) ;;;
        ;;; $A315: Roach function - activate - index 3 (move randomly and wait for Samus if hit block) ;;;
        ;;; $A325: Roach function - activate - index 4 (move in a random direction then reverse until 6 blocks away from Samus) ;;;
        ;;; $A33B: Roach function - activate - index 5 (move forwards then wait for Samus) ;;;
        ;;; $A34B: Roach function - activate - index 2 (move towards Samus) ;;;
        ;;; $A380: Roach function - activate - index 6 (away from Samus) ;;;
    ;;; $A3B5: Determine custom instruction list index ;;;
    ;;; $A3CA: Calculate custom velocities ;;;
    ;;; $A407..A67A: Roach functions - activated ;;;
        ;;; $A407: Roach function - activated - index 0 (move forwards) ;;;
        ;;; $A40E: Roach function - activated - index 1 (move forwards in a zigzag) ;;;
        ;;; $A440: Roach function - activated - index 2 (move towards Samus) ;;;
        ;;; $A447: Roach function - activated - index 6 (move away from Samus) ;;;
        ;;; $A44E: Roach function - activated - index 5 (move forwards then wait for Samus) ;;;
        ;;; $A462: Roach function - move along custom angle and wait for Samus if hit block ;;;
        ;;; $A476: Roach function - move straight along custom angle then reverse until 6 blocks away from Samus ;;;
        ;;; $A4B6: Roach function - activated - index 4 (move in a random direction then reverse until 6 blocks away from Samus) ;;;
        ;;; $A4F0: Roach function - activated - index 3 (move randomly and wait for Samus if hit block) ;;;
        ;;; $A52A: Reverse roach custom angle ;;;
        ;;; $A578: Move roach forward ;;;
        ;;; $A5A2: Unused. RTS ;;;
        ;;; $A5A3: Move roach left ;;;
        ;;; $A5DA: Move roach right ;;;
        ;;; $A611: Move enemy along custom angle ;;;
        ;;; $A648: Move enemy along custom angle and wait for Samus if hit block ;;;
    ;;; $A67B: RTL ;;;
    ;;; $A67C: RTL ;;;
    ;;; $A67D: Roach spritemaps ;;;
;;; $A725..AA47: Mochtroid ;;;
    ;;; $A725: Palette - enemy $D8FF (mochtroid) ;;;
    ;;; $A745: Instruction list - not touching Samus ;;;
    ;;; $A759: Instruction list - touching Samus ;;;
    ;;; $A76D: Mochtroid shake velocity table ;;;
    ;;; $A77D: Initialisation AI - enemy $D8FF (mochtroid) ;;;
    ;;; $A790: Main AI - enemy $D8FF (mochtroid) ;;;
    ;;; $A7AA: Mochtroid function index 0 - not touching Samus ;;;
    ;;; $A88F: Unused. Mochtroid function index 2 - shaking ;;;
    ;;; $A8C8: Mochtroid function index 1 - touching Samus ;;;
    ;;; $A93C: Set mochtroid instruction list ;;;
    ;;; $A953: Enemy touch - enemy $D8FF (mochtroid) ;;;
    ;;; $A9A8: Enemy shot - enemy $D8FF (mochtroid) ;;;
    ;;; $A9B0: Mochtroid spritemaps ;;;
;;; $AA48..B3A0: Sidehoppers ;;;
    ;;; $AA48: Palette - enemy $D93F (sidehopper) ;;;
    ;;; $AA68: Instruction - queue sound [[Y]], sound library 2, max queued sounds allowed = 3 ;;;
    ;;; $AA76..C1: Sidehopper ;;;
        ;;; $AA76: Instruction list - sidehopper - hopping - upside up ;;;
        ;;; $AA82: Instruction list - sidehopper - landed - upside up ;;;
        ;;; $AA9C: Instruction list - sidehopper - hopping - upside down ;;;
        ;;; $AAA8: Instruction list - sidehopper - landed - upside down ;;;
    ;;; $AAC2: Sidehopper data ;;;
    ;;; $AAFE: Instruction - ready to hop ;;;
    ;;; $AB09: Initialisation AI - enemy $D93F/$D97F/$D9BF/$D9FF/$DA3F (sidehopper / desgeega / super-sidehopper / super-desgeega) ;;;
    ;;; $AB9D: Calculate initial hop speed ;;;
    ;;; $ABBB: Set sidehopper enemy instruction list ;;;
    ;;; $ABCF: Main AI - enemy $D93F/$D97F/$D9BF/$D9FF/$DA3F (sidehopper / desgeega / super-sidehopper / super-desgeega) ;;;
    ;;; $ABD6..AEE0: Sidehopper functions ;;;
        ;;; $ABD6: Sidehopper function - hop ;;;
        ;;; $ABE6: Sidehopper function - small hop ;;;
        ;;; $AC13: Sidehopper function - big hop ;;;
        ;;; $AC40: Sidehopper function - hop - upside up ;;;
        ;;; $AC56: Sidehopper function - hop - upside down ;;;
        ;;; $AC6C: Sidehopper function - hop backwards - upside up ;;;
        ;;; $AC8F: Sidehopper function - hop forwards - upside up ;;;
        ;;; $ACA8: Sidehopper function - hop backwards - upside down ;;;
        ;;; $ACCB: Sidehopper function - hop forwards - upside down ;;;
        ;;; $ACE4: Sidehopper function - landed ;;;
        ;;; $AD0E: Sidehopper function - jumping - upside up ;;;
        ;;; $AD20: Sidehopper function - jumping - upside up ;;;
        ;;; $AD32: Sidehopper function - jumping - upside down ;;;
        ;;; $AD44: Sidehopper function - jumping - upside down ;;;
        ;;; $AD56: Sidehopper function - wait to hop ;;;
        ;;; $AD6D: Sidehopper movement - jumping - upside up ;;;
        ;;; $ADD4: Sidehopper movement - falling - upside up ;;;
        ;;; $AE27: Sidehopper movement - jumping - upside down ;;;
        ;;; $AE8E: Sidehopper movement - falling - upside down ;;;
    ;;; $AEE1: RTL ;;;
    ;;; $AEE2: RTL ;;;
    ;;; $AEE3: Sidehopper spritemaps ;;;
    ;;; $AF85..B084: Desgeega ;;;
        ;;; $AF85: Palette - enemy $D97F (desgeega) ;;;
        ;;; $AFA5: Instruction list - desgeega - hopping - upside up ;;;
        ;;; $AFAD: Instruction list - desgeega - landed - upside up ;;;
        ;;; $AFC3: Instruction list - desgeega - hopping - upside down ;;;
        ;;; $AFCB: Instruction list - desgeega - landed - upside down ;;;
        ;;; $AFE1: RTL ;;;
        ;;; $AFE2: RTL ;;;
        ;;; $AFE3: Desgeega spritemaps ;;;
    ;;; $B085..B216: Super-sidehopper ;;;
        ;;; $B085: Palette - enemy $D9BF (super-sidehopper) ;;;
        ;;; $B0A5: Palette - enemy $D9FF (Tourian super-sidehopper) ;;;
        ;;; $B0C5: Instruction list - super-sidehopper - hopping - upside up ;;;
        ;;; $B0D1: Instruction list - super-sidehopper - landed - upside up ;;;
        ;;; $B0EB: Instruction list - super-sidehopper - hopping - upside down ;;;
        ;;; $B0F7: Instruction list - super-sidehopper - landed - upside down ;;;
        ;;; $B111: Tourian super-sidehopper spritemaps ;;;
    ;;; $B217..B3A0: Super-desgeega ;;;
        ;;; $B217: Palette - enemy $DA3F (super-desgeega) ;;;
        ;;; $B237: Instruction list - super-desgeega - hopping - upside up ;;;
        ;;; $B23F: Instruction list - super-desgeega - landed - upside up ;;;
        ;;; $B255: Instruction list - super-desgeega - hopping - upside down ;;;
        ;;; $B25D: Instruction list - super-desgeega - landed - upside down ;;;
        ;;; $B273: Super-desgeega spritemaps ;;;
;;; $B3A1..B5B2: Zoa ;;;
    ;;; $B3A1: Palette - enemy $DA7F (zoa) ;;;
    ;;; $B3C1: Instruction list - facing left - shooting ;;;
    ;;; $B3D7: Instruction list - facing left - rising ;;;
    ;;; $B3E7: Instruction list - facing right - shooting ;;;
    ;;; $B3FD: Instruction list - facing right - rising ;;;
    ;;; $B40D: Zoa instruction list pointers ;;;
    ;;; $B415: Zoa X speed table ;;;
    ;;; $B429: Instruction - enemy X speed table index = 4 ;;;
    ;;; $B434: Instruction - enemy X speed table index = 8 ;;;
    ;;; $B43F: Instruction - enemy X speed table index = Ch ;;;
    ;;; $B44A: Initialisation AI - enemy $DA7F (zoa) ;;;
    ;;; $B47C: Main AI - enemy $DA7F (zoa) ;;;
    ;;; $B482: Zoa function - wait for Samus to get near ;;;
    ;;; $B4A8: Zoa function - rising ;;;
    ;;; $B4D6: Zoa function - shooting ;;;
    ;;; $B537: Set zoa instruction list ;;;
    ;;; $B557: RTL ;;;
    ;;; $B55B: RTL ;;;
    ;;; $B55F: Zoa spritemaps ;;;
;;; $B5B3..B6F8: Viola ;;;
    ;;; $B5B3: Palette - enemy $DABF (viola) ;;;
    ;;; $B5D3: Instruction list - viola - upside down ;;;
    ;;; $B5DB: Instruction list - viola - upside up ;;;
    ;;; $B5E3: Instruction list - viola - upside right ;;;
    ;;; $B5EB: Instruction list - viola - upside left ;;;
    ;;; $B5EF: Instruction list - viola - normal ;;;
    ;;; $B62B: Unused. Instruction list - viola - X flipped ;;;
    ;;; $B667: Viola initial instruction list pointers ;;;
    ;;; $B66F: Initialisation AI - enemy $DABF (viola) ;;;
    ;;; $B689: Viola spritemaps ;;;
;;; $B6F9: Unused. Crash if enemy initialisation parameter is non-zero ;;;
;;; $B702..C63D: Bang ;;;
    ;;; $B702: Palette - enemy $DB3F (bang) ;;;
    ;;; $B722: Instruction list pointers ;;;
    ;;; $B75E..BA77: Instruction lists - bang ;;;
        ;;; $B75E: Instruction list - core - growth level 0 - idling ;;;
        ;;; $B772: Instruction list - core - growth level 0 - growing ;;;
        ;;; $B790: Instruction list - core - growth level 1 - idling ;;;
        ;;; $B7A4: Instruction list - core - growth level 1 - growing ;;;
        ;;; $B7C2: Instruction list - core - growth level 2 - idling ;;;
        ;;; $B7D6: Instruction list - core - growth level 2 - growing ;;;
        ;;; $B7F4: Instruction list - core - growth level 3 - idling ;;;
        ;;; $B838: Instruction list - core - growth level 3 - growing ;;;
        ;;; $B85A: Instruction list - core - growth level 4 - idling ;;;
        ;;; $B88A: Instruction list - core - growth level 4 - growing ;;;
        ;;; $B8AC: Instruction list - shell - growth level 0 - idling ;;;
        ;;; $B8C0: Instruction list - shell - growth level 0 - growing ;;;
        ;;; $B8DE: Instruction list - shell - growth level 1 - idling ;;;
        ;;; $B8F2: Instruction list - shell - growth level 1 - growing ;;;
        ;;; $B910: Instruction list - shell - growth level 2 - idling ;;;
        ;;; $B924: Instruction list - shell - growth level 2 - growing ;;;
        ;;; $B942: Instruction list - shell - growth level 3 - idling ;;;
        ;;; $B986: Instruction list - shell - growth level 3 - growing ;;;
        ;;; $B9A8: Instruction list - shell - growth level 4 - idling ;;;
        ;;; $B9D8: Instruction list - shell - growth level 4 - growing ;;;
        ;;; $B9FA: Instruction list - electricity - none ;;;
        ;;; $BA00: Instruction list - electricity - growth level 3/4 - growing ;;;
        ;;; $BA3C: Unused. Instruction list - electricity - growing ;;;
    ;;; $BA78: Instruction - queue acquired suit sound effect ;;;
    ;;; $BA84: Bang max speeds ;;;
    ;;; $BA94: Bang angles ;;;
    ;;; $BAA8: Instruction - enemy finished growing flag = 1 ;;;
    ;;; $BAB3: Initialisation AI - enemy $DB3F (bang) ;;;
    ;;; $BB25: Main AI - enemy $DB3F (bang) ;;;
    ;;; $BB2B: Bang AI - electricity ;;;
    ;;; $BB4A: Bang AI - shell ;;;
    ;;; $BB66: Bang AI - core ;;;
    ;;; $BBEB: Fire charged beam at Samus ;;;
    ;;; $BC6A: Bang acceleration interval time reset values ;;;
    ;;; $BC9E: Execute bang movement function ;;;
    ;;; $BCA5: Bang movement function - movement delay ;;;
    ;;; $BCC1: RTS. Bang movement function - no movement ;;;
    ;;; $BCC5: Bang movement function - target Samus ;;;
    ;;; $BCF1: Trigger bang deceleration if too far off target ;;;
    ;;; $BD1C: Bang movement function - accelerating ;;;
    ;;; $BD2C: Bang movement function - decelerating ;;;
    ;;; $BD4F: Accelerate bang ;;;
    ;;; $BD89: Decelerate bang ;;;
    ;;; $BDB9: Bang X movement ;;;
    ;;; $BE1C: Bang Y movement ;;;
    ;;; $BE7B: $1E.$1C = [$16] * [$18] / 10000h (24-bit unsigned multiplication) ;;;
    ;;; $BEBE: $1E.$1C = -[$18].[$16] ;;;
    ;;; $BEDA: Set bang instruction list ;;;
    ;;; $BEFD: Enemy shot - enemy $DB3F (bang) ;;;
    ;;; $BF7D: Bang spritemaps ;;;
;;; $C63E..C8A5: Skree ;;;
    ;;; $C63E: Palette - enemy $DB7F (skree) ;;;
    ;;; $C65E: Instruction list - idling ;;;
    ;;; $C672: Instruction list - prepare to launch attack ;;;
    ;;; $C67E: Instruction list - launched attack ;;;
    ;;; $C694: Unused. Instruction list - stop animating ;;;
    ;;; $C69C: Skree instruction list pointers ;;;
    ;;; $C6A4: Instruction - set attack ready flag ;;;
    ;;; $C6AE: Initialisation AI - enemy $DB7F (skree) ;;;
    ;;; $C6C7: Main AI - enemy $DB7F (skree) ;;;
    ;;; $C6CD: Unused. Skree function pointers ;;;
    ;;; $C6D5: Skree function - idling ;;;
    ;;; $C6F7: Skree function - prepare to launch attack ;;;
    ;;; $C716: Skree function - launched attack ;;;
    ;;; $C77F: Skree function - burrowing ;;;
    ;;; $C7D5: Set skree instruction list pointer ;;;
    ;;; $C7F5: Enemy shot - enemy $DB7F (skree) ;;;
    ;;; $C842: Skree spritemaps ;;;
;;; $C8A6..DA9B: Yard ;;;
    ;;; $C8A6: Palette - enemy $DBBF (yard) ;;;
    ;;; $C8C6..CC35: Instruction lists - yard ;;;
        ;;; $C8C6: Instruction list - outside turn - upside right - moving up ;;;
        ;;; $C8E0: Instruction list - crawling - upside up - moving left ;;;
        ;;; $C8FC: Instruction list - outside turn - upside up - moving left ;;;
        ;;; $C916: Instruction list - crawling - upside left - moving down ;;;
        ;;; $C932: Instruction list - outside turn - upside left - moving down ;;;
        ;;; $C94C: Instruction list - crawling - upside down - moving right ;;;
        ;;; $C968: Instruction list - outside turn - upside down - moving right ;;;
        ;;; $C982: Instruction list - crawling - upside right - moving up ;;;
        ;;; $C99E: Instruction list - outside turn - upside left - moving up ;;;
        ;;; $C9B8: Instruction list - crawling - upside up - moving right ;;;
        ;;; $C9D4: Instruction list - outside turn - upside up - moving right ;;;
        ;;; $C9EE: Instruction list - crawling - upside right - moving down ;;;
        ;;; $CA0A: Instruction list - outside turn - upside right - moving down ;;;
        ;;; $CA24: Instruction list - crawling - upside down - moving left ;;;
        ;;; $CA40: Instruction list - outside turn - upside down - moving left ;;;
        ;;; $CA5A: Instruction list - crawling - upside left - moving up ;;;
        ;;; $CA76: Instruction list - inside turn - upside up - moving left ;;;
        ;;; $CA8E: Instruction list - inside turn - upside right - moving up ;;;
        ;;; $CAA6: Instruction list - inside turn - upside down - moving right ;;;
        ;;; $CABE: Instruction list - inside turn - upside left - moving down ;;;
        ;;; $CAD6: Instruction list - inside turn - upside up - moving right ;;;
        ;;; $CAEE: Instruction list - inside turn - upside left - moving up ;;;
        ;;; $CB06: Instruction list - inside turn - upside down - moving left ;;;
        ;;; $CB1E: Instruction list - inside turn - upside right - moving down ;;;
        ;;; $CB36: Instruction list - hiding - upside up - moving left ;;;
        ;;; $CB44: Instruction list - hidden - upside up - moving left ;;;
        ;;; $CB50: Instruction list - hiding - upside down - moving left ;;;
        ;;; $CB6A: Instruction list - hiding - upside down - moving right ;;;
        ;;; $CB84: Instruction list - hiding - upside up - moving right ;;;
        ;;; $CB92: Instruction list - hidden - upside up - moving right ;;;
        ;;; $CB9E: Instruction list - hiding - upside right - moving up ;;;
        ;;; $CBB8: Instruction list - hiding - upside left - moving up ;;;
        ;;; $CBD2: Instruction list - hiding - upside left - moving down ;;;
        ;;; $CBEC: Instruction list - hiding - upside right - moving down ;;;
        ;;; $CC06: Instruction list - airborne - facing left ;;;
        ;;; $CC1E: Instruction list - airborne - facing right ;;;
    ;;; $CC36: Instruction - enemy movement function = [[Y]] ;;;
    ;;; $CC3F: Instruction - enemy hiding instruction list = [[Y]] ;;;
    ;;; $CC48: Instruction - set enemy direction to [[Y]] ;;;
    ;;; $CC5F: Instruction - move ([[Y]], [[Y] + 2]) pixels ;;;
    ;;; $CC78: Instruction - go back 4 bytes if hiding or with 50% chance ;;;
    ;;; $CC92: Unused. Instruction - make yard face Samus ;;;
    ;;; $CCA2: Yard crawling speeds ;;;
    ;;; $CCE2: Yard turn data ;;;
    ;;; $CD42: Yard direction data ;;;
    ;;; $CD82: Yard crawling velocity signs ;;;
    ;;; $CDC2: Yard opposite directions ;;;
    ;;; $CDD2: Yard crawling movement functions ;;;
    ;;; $CDE2: Initialisation AI - enemy $DBBF (yard) ;;;
    ;;; $CE27: Set yard crawling velocities ;;;
    ;;; $CE57: Set yard crawling movement function ;;;
    ;;; $CE64: Main AI - enemy $DBBF (yard) ;;;
    ;;; $CE73: Drop yard if super missile quake ;;;
    ;;; $CE9A: Handle yard hiding ;;;
    ;;; $CF11: Determine if yard hitbox is solid to Samus ;;;
    ;;; $CF5F: RTL ;;;
    ;;; $CF60: Yard movement function - hiding ;;;
    ;;; $CF8F: $14.$12 = ±[A] / 100h + 7 * sgn([A]) ;;;
    ;;; $CFA6: Yard movement function - crawling - upside up - moving left ;;;
    ;;; $CFB7: Yard movement function - crawling - upside left - moving down ;;;
    ;;; $CFBD: Yard movement function - crawling - upside down - moving right ;;;
    ;;; $CFCE: Yard movement function - crawling - upside right - moving up ;;;
    ;;; $CFD4: Yard movement function - crawling - upside up - moving right ;;;
    ;;; $CFE5: Yard movement function - crawling - upside right - moving down ;;;
    ;;; $CFEB: Yard movement function - crawling - upside down - moving left ;;;
    ;;; $CFFC: Yard movement function - crawling - upside left - moving up ;;;
    ;;; $D002: Yard crawling movement - vertical ;;;
    ;;; $D07E: Yard crawling movement - horizontal ;;;
    ;;; $D0F8: Move enemy ahead for outside turn check ;;;
    ;;; $D10D: Move enemy back from outside turn check ;;;
    ;;; $D124: Handle turn transition disabling ;;;
    ;;; $D14C: Set enemy instruction list and disable turn transition ;;;
    ;;; $D164: Drop yard ;;;
    ;;; $D1B3: Yard movement function - airborne ;;;
    ;;; $D2FA: Set yard airborne instruction list ;;;
    ;;; $D315: Unused. Make yard face Samus ;;;
    ;;; $D33E: Make yard face Samus horizontally ;;;
    ;;; $D356: Turn yard around ;;;
    ;;; $D3B0: Enemy touch - enemy $DBBF (yard) ;;;
    ;;; $D421: Check if player is directing towards enemy ;;;
    ;;; $D446: Unused. Check if enemy is moving the direction Samus is facing ;;;
    ;;; $D469: Enemy shot - enemy $DBBF (yard) ;;;
    ;;; $D49F: Kick yard into air ;;;
    ;;; $D557: Shoot yard into air ;;;
    ;;; $D5AC: Yard spritemaps ;;;
;;; $DA9C..DFA1: Reflec ;;;
    ;;; $DA9C: Palette - enemy $DBFF (reflec) ;;;
    ;;; $DABC: Reflec palette cycle colours ;;;
    ;;; $DB0C: Enemy graphics drawn hook - reflec - periodically cycle between palettes ;;;
    ;;; $DB4C..C7: Instruction lists - reflec ;;;
        ;;; $DB4C: Instruction list - facing left ;;;
        ;;; $DB58: Instruction list - facing up-left ;;;
        ;;; $DB64: Instruction list - facing up ;;;
        ;;; $DB6E: Instruction list - facing up-right ;;;
        ;;; $DB78: Instruction list - facing right ;;;
        ;;; $DB82: Instruction list - facing down-right ;;;
        ;;; $DB8C: Instruction list - facing down ;;;
        ;;; $DB96: Instruction list - facing down-left ;;;
        ;;; $DBA0: Instruction list - health reached zero - facing left ;;;
        ;;; $DBAA: Instruction list - health reached zero - facing up-left ;;;
        ;;; $DBB4: Instruction list - health reached zero - facing up ;;;
        ;;; $DBBE: Instruction list - health reached zero - facing up-right ;;;
    ;;; $DBC8: Instruction - enemy reflection axis = [[Y]] ;;;
    ;;; $DBD3: Initialisation AI - enemy $DBFF (reflec) ;;;
    ;;; $DC1B: RTL. Main AI - enemy $DBFF (reflec) ;;;
    ;;; $DC1C: Enemy shot - enemy $DBFF (reflec) ;;;
    ;;; $DDAE..DF19: Reflection offset functions ;;;
        ;;; $DDAE: Reflection offset function - vertical - up-right / down-right ;;;
        ;;; $DDCF: Reflection offset function - vertical - up-left / down-left ;;;
        ;;; $DDF0: Reflection offset function - up-right diagonal - up ;;;
        ;;; $DE0D: Reflection offset function - up-right diagonal - right ;;;
        ;;; $DE2A: Reflection offset function - up-right diagonal - down ;;;
        ;;; $DE47: Reflection offset function - up-right diagonal - left ;;;
        ;;; $DE64: Reflection offset function - horizontal - up-right / up-left ;;;
        ;;; $DE85: Reflection offset function - horizontal - down-right / down-left ;;;
        ;;; $DEA6: Reflection offset function - down-right diagonal - up ;;;
        ;;; $DEC3: Reflection offset function - down-right diagonal - right ;;;
        ;;; $DEE0: Reflection offset function - down-right diagonal - down ;;;
        ;;; $DEFD: Reflection offset function - down-right diagonal - left ;;;
    ;;; $DF1A: Reflec spritemaps ;;;
;;; $DFA2..E23B: Wrecked Ship orange zoomer ;;;
    ;;; $DFA2: Palette - enemy $DC3F (Wrecked Ship orange zoomer) ;;;
    ;;; $DFC2: Instruction - enemy function = [[Y]] ;;;
    ;;; $DFCB: Instruction list - Wrecked Ship orange zoomer - upside right ;;;
    ;;; $DFE7: Instruction list - Wrecked Ship orange zoomer - upside left ;;;
    ;;; $E003: Instruction list - Wrecked Ship orange zoomer - upside down ;;;
    ;;; $E01F: Instruction list - Wrecked Ship orange zoomer - upside up ;;;
    ;;; $E03B: Wrecked Ship orange zoomer initial instruction list pointers ;;;
    ;;; $E043: Initialisation AI - enemy $DC3F (Wrecked Ship orange zoomer) ;;;
    ;;; $E08B: Main AI - enemy $DC3F (Wrecked Ship orange zoomer) ;;;
    ;;; $E091: Wrecked Ship orange zoomer function - crawling vertically ;;;
    ;;; $E168: Wrecked Ship orange zoomer function - crawling horizontally ;;;
;;; $E23C..E5EF: Zeela / zoomer ;;;
    ;;; $E23C: Palette - enemy $DC7F (zeela) ;;;
    ;;; $E25C: Instruction list - zeela / zoomer - upside right ;;;
    ;;; $E278: Instruction list - zeela / zoomer - upside left ;;;
    ;;; $E294: Instruction list - zeela / zoomer - upside down ;;;
    ;;; $E2B0: Instruction list - zeela / zoomer - upside up ;;;
    ;;; $E2CC: Zeela / zoomer initial instruction list pointers ;;;
    ;;; $E2D4: Initialisation AI - enemy $DC7F (zeela) ;;;
    ;;; $E2E8: Zeela / zoomer spritemaps ;;;
    ;;; $E57C: Palette - enemy $DCBF (sova) ;;;
    ;;; $E59C: Initialisation AI - enemy $DCBF (sova) ;;;
    ;;; $E5B0: Palette - enemy $DCFF (zoomer) ;;;
    ;;; $E5D0: Palette - enemy $DD3F (stone zoomer) ;;;
;;; $E5F0..E9AE: Creepy crawlies ;;;
    ;;; $E5F0: Creepy crawly speed table ;;;
    ;;; $E630: Creepy crawly instruction list pointer table ;;;
    ;;; $E660: Instruction - enemy function = [[Y]] ;;;
    ;;; $E669: Initialisation AI - enemy $DCFF/$DD3F (zoomer / stone zoomer) ;;;
    ;;; $E67A: Creepy crawly common initialisation AI ;;;
    ;;; $E6C2: Main AI - enemy $D77F/$D7BF/$DABF/$DC7F/$DCBF/$DCFF/$DD3F (sciser / zero / viola / zeela / zoomer) ;;;
    ;;; $E6C8: Creepy crawly function - crawling vertically ;;;
    ;;; $E785: Creepy crawly function - falling ;;;
    ;;; $E7F2: Creepy crawly function - crawling horizontally ;;;
    ;;; $E8A5: Adjust enemy X velocity for slopes ;;;
;;; $E9AF..F310: Metroid ;;;
    ;;; $E9AF: Palette - enemy $DD7F (metroid) ;;;
    ;;; $E9CF: Instruction list - metroid - chasing Samus ;;;
    ;;; $EA25: Instruction list - metroid - draining Samus ;;;
    ;;; $EA3F: Bombed off X velocities ;;;
    ;;; $EA4F: Initialisation AI - enemy $DD7F (metroid) ;;;
    ;;; $EAA5: Instruction - play Metroid draining Samus ;;;
    ;;; $EAB1: Instruction - play random Metroid cry ;;;
    ;;; $EAE6: Frozen AI - enemy $DD7F (metroid) ;;;
    ;;; $EB33: Hurt AI - enemy $DD7F (metroid) ;;;
    ;;; $EB98: Main AI - enemy $DD7F (metroid) ;;;
    ;;; $EC11: Metroid function index 0 - chase Samus ;;;
    ;;; $ECDC: Metroid function index 1 - latch onto Samus ;;;
    ;;; $ED8F: Metroid function index 2 - latched onto Samus ;;;
    ;;; $EDAB: Metroid function index 3 - bombed off Samus ;;;
    ;;; $EDEB: Enemy touch - enemy $DD7F (metroid) ;;;
    ;;; $EECE: Deal metroid contact damage to Samus ;;;
    ;;; $EF07: Enemy shot - enemy $DD7F (metroid) ;;;
    ;;; $F042: Power bomb reaction - enemy $DD7F (metroid) ;;;
    ;;; $F071: Metroid spritemaps ;;;
;;; $F311: Free space ;;;