;;; $8000..8686: Common to all enemy banks ;;;
;;; $8687..8911: Boyon ;;;
    ;;; $8687: Palette - enemy $CEBF (boyon) ;;;
    ;;; $86A7..DE: Instruction lists - boyon ;;;
        ;;; $86A7: Instruction list - idle ;;;
        ;;; $86BF: Instruction list - bouncing ;;;
    ;;; $86DF: Boyon data ;;;
    ;;; $871C: Initialisation AI - enemy $CEBF (boyon) ;;;
    ;;; $8755: Calculate initial bounce speed ;;;
    ;;; $879C: Main AI - enemy $CEBF (boyon) ;;;
    ;;; $8801: Boyon bounce movement - falling ;;;
    ;;; $8850: Boyon bounce movement - rising ;;;
    ;;; $8894: Check if Samus is in proximity ;;;
    ;;; $889F: Set boyon idle instruction list ;;;
    ;;; $88B2: Set boyon bouncing instruction list ;;;
    ;;; $88C5: RTL. Instruction - nothing ;;;
    ;;; $88C6: Instruction - start bounce ;;;
    ;;; $88D8: RTL ;;;
    ;;; $88D9: RTL ;;;
    ;;; $88DA: Spritemaps - boyon ;;;
;;; $8912..8B5F: Mini-Crocomire ;;;
    ;;; $8912: Palette - enemy $CEFF (mini-Crocomire) ;;;
    ;;; $8932..7D: Instruction lists - mini-Crocomire ;;;
        ;;; $8932: Instruction list - moving left ;;;
        ;;; $8948: Instruction list - attacking left ;;;
        ;;; $8958: Instruction list - moving right ;;;
        ;;; $896E: Instruction list - attacking right ;;;
    ;;; $897E: Instruction - spawn mini-Crocomire projectile with direction [[Y]] ;;;
    ;;; $8990: Instruction - set moving left ;;;
    ;;; $899D: Instruction - set moving right ;;;
    ;;; $89AD: Initialisation AI - enemy $CEFF (mini-Crocomire) ;;;
    ;;; $89F0: Main AI - enemy $CEFF (mini-Crocomire) ;;;
    ;;; $89F7: Set mini-Crocomire moving left instruction list ;;;
    ;;; $8A0A: Set mini-Crocomire attacking left instruction list ;;;
    ;;; $8A1D: Set mini-Crocomire moving right instruction list ;;;
    ;;; $8A30: Set mini-Crocomire attacking right instruction list ;;;
    ;;; $8A43: Mini-Crocomire function - moving left ;;;
    ;;; $8A5C: Mini-Crocomire function - moving right ;;;
    ;;; $8A75: RTS ;;;
    ;;; $8A76: Mini-Crocomire movement ;;;
    ;;; $8A95: Turn mini-Crocomire around ;;;
    ;;; $8AA7: Decide whether to attack ;;;
    ;;; $8AC8: RTL ;;;
    ;;; $8AC9: RTL ;;;
    ;;; $8ACA: Spritemaps - mini-Crocomire ;;;
;;; $8B60..998C: Tatori ;;;
    ;;; $8B60: Palette - enemy $CF3F/$CF7F (tatori) ;;;
    ;;; $8B80..8D4F: Instruction lists - tatori ;;;
        ;;; $8B80: Instruction list - mini-tatori - crawling left ;;;
        ;;; $8BD2: Instruction list - mini-tatori - spinning ;;;
        ;;; $8BEE: Unused. Instruction list ;;;
        ;;; $8C02: Instruction list - tatori - spinning ;;;
        ;;; $8C1C: Instruction list - tatori - facing left - enter shell ;;;
        ;;; $8C30: Instruction list - mini-tatori - facing left - hiding ;;;
        ;;; $8C44: Instruction list - tatori - asleep ;;;
        ;;; $8C4A: Instruction list - tatori - facing left - leave shell ;;;
        ;;; $8C62: Instruction list - mini-tatori - facing left - leave shell ;;;
        ;;; $8C72: Instruction list - mini-tatori - crawling right ;;;
        ;;; $8CC4: Unused. Instruction list ;;;
        ;;; $8CD8: Unused. Instruction list ;;;
        ;;; $8CEC: Unused. Instruction list ;;;
        ;;; $8D00: Instruction list - tatori - facing right - enter shell ;;;
        ;;; $8D14: Instruction list - mini-tatori - facing right - hiding ;;;
        ;;; $8D28: Instruction list - tatori - facing right - leave shell ;;;
        ;;; $8D40: Instruction list - mini-tatori - facing right - leave shell ;;;
    ;;; $8D50: Tatori data ;;;
    ;;; $8D6C: Initialisation AI - enemy $CF3F (tatori) ;;;
    ;;; $8D9D: Initialisation AI - enemy $CF7F (mini-tatori) ;;;
    ;;; $8DD2: Main AI - enemy $CF3F (tatori) ;;;
    ;;; $8DD8..912D: Tatori functions ;;;
        ;;; $8DD8: Tatori function - initial ;;;
        ;;; $8E0A: Tatori function - asleep ;;;
        ;;; $8E80: Sleeping tatori shell shape ;;;
        ;;; $8EE0: Tatori function - leave shell ;;;
        ;;; $8F3F: Tatori function - enter shell ;;;
        ;;; $8F5F: Handle Samus landing on hovering tatori ;;;
        ;;; $8F8D: Tatori function - rise to hover ;;;
        ;;; $8FEB: Tatori function - hovering ;;;
        ;;; $9083: Tatori function - rising to peak ;;;
        ;;; $90CC: Tatori function - hovering at peak ;;;
        ;;; $90E1: Tatori function - falling ;;;
    ;;; $912E: Main AI - enemy $CF7F (mini-tatori) ;;;
    ;;; $9142..9280: Mini-tatori functions ;;;
        ;;; $9142: Mini-tatori function - crawling - not carrying Samus ;;;
        ;;; $916E: Mini-tatori function - hiding - carrying Samus ;;;
        ;;; $9198: Mini-tatori function - hiding - not carrying Samus ;;;
        ;;; $91F8: Mini-tatori function - spinning - unstoppable ;;;
        ;;; $921D: Unused ;;;
        ;;; $9239: Mini-tatori function - spinning - stoppable ;;;
        ;;; $925E: Mini-tatori function - crawling - carrying Samus ;;;
    ;;; $9281: Enemy touch - enemy $CF3F (tatori) ;;;
    ;;; $929E: RTL ;;;
    ;;; $929F: Enemy touch - enemy $CF7F (mini-tatori) ;;;
    ;;; $92FF: Awaken tatori ;;;
    ;;; $930F: Enemy shot - enemy $CF7F (mini-tatori) ;;;
    ;;; $9315: Tatori / Samus collision detection ;;;
    ;;; $9381..94D8: Instructions ;;;
        ;;; $9381: Instruction - mini-tatori - crawl ;;;
        ;;; $9412: Instruction - mini-tatori - loop or turn around if moved too far ;;;
        ;;; $9447: Instruction - tatori - enter shell ;;;
        ;;; $9451: Instruction - tatori - rise to hover rightwards, go to $8C02 ;;;
        ;;; $946B: Instruction - tatori - rise to hover leftwards, go to $8C02 ;;;
        ;;; $9485: Instruction - mini-tatori - leave shell ;;;
        ;;; $94A1: Instruction - mini-tatori - left shell ;;;
        ;;; $94C7: Instruction - mini-tatori - enemy function = spinning - stoppable ;;;
        ;;; $94D1: Instruction - queue tatori spinning sound effect ;;;
    ;;; $94D9: Spritemaps - tatori ;;;
;;; $998D..9E69: Puyo ;;;
    ;;; $998D: Palette - enemy $CFBF (puyo) ;;;
    ;;; $99AD..9A06: Instruction lists ;;;
        ;;; $99AD: Instruction list - grounded/dropping - fast ;;;
        ;;; $99C1: Instruction list - grounded/dropping - medium ;;;
        ;;; $99D5: Instruction list - grounded/dropping - slow ;;;
        ;;; $99E9: Instruction list - hopping right frame 0 / hopping left frame 4 ;;;
        ;;; $99EF: Instruction list - hopping right frame 1 / hopping left frame 3 ;;;
        ;;; $99F5: Instruction list - hopping frame 2 ;;;
        ;;; $99FB: Instruction list - hopping right frame 3 / hopping left frame 1 ;;;
        ;;; $9A01: Instruction list - hopping right frame 4 / hopping left frame 0 ;;;
    ;;; $9A07: Hop table ;;;
    ;;; $9A3F: Initialisation AI - enemy $CFBF (puyo) ;;;
    ;;; $9A6C: Set enemy instruction list ;;;
    ;;; $9A7C: RTS ;;;
    ;;; $9A7D: Main AI - enemy $CFBF (puyo) ;;;
    ;;; $9A84: Initiate hop ;;;
    ;;; $9A9B: Check if Samus is in proximity ;;;
    ;;; $9AAA: Choose hop type ;;;
    ;;; $9B06: $1C = random number in 0..7 ;;;
    ;;; $9B1A: Calculate initial hop speed ;;;
    ;;; $9B65: Puyo function - grounded ;;;
    ;;; $9B81: Puyo function - airborne ;;;
    ;;; $9B88: Puyo movement ;;;
    ;;; $9C71: Set rising instruction list ;;;
    ;;; $9CBE: Set falling instruction list ;;;
    ;;; $9D0B: Puyo airborne function - normal - short hop ;;;
    ;;; $9D2B: Puyo airborne function - normal - big hop ;;;
    ;;; $9D4B: Puyo airborne function - normal - long hop ;;;
    ;;; $9D6B: Puyo airborne function - giant hop ;;;
    ;;; $9D98: Puyo airborne function - dropping ;;;
    ;;; $9DCD: Puyo airborne function - dropped ;;;
    ;;; $9DF4: RTL ;;;
    ;;; $9DF5: RTL ;;;
    ;;; $9DF6: Spritemaps - puyo ;;;
;;; $9E6A..A38A: Cacatac ;;;
    ;;; $9E6A: Palette - enemy $CFFF (cacatac) ;;;
    ;;; $9E8A..9F29: Instruction list - cacatac ;;;
        ;;; $9E8A: Instruction list - upside up - idling ;;;
        ;;; $9EB0: Instruction list - upside up - attacking ;;;
        ;;; $9EDA: Instruction list - upside down - idling ;;;
        ;;; $9F00: Instruction list - upside down - attacking ;;;
    ;;; $9F2A: Instruction - play cacatac spikes effect ;;;
    ;;; $9F36: Cacatac max travel distances ;;;
    ;;; $9F42: Cacatac function pointers ;;;
    ;;; $9F48: Initialisation AI - enemy $CFFF (cacatac) ;;;
    ;;; $9FB3: Main AI - enemy $CFFF (cacatac) ;;;
    ;;; $9FBA: Cacatac function - moving left ;;;
    ;;; $9FEC: Cacatac function - moving right ;;;
    ;;; $A01B: RTS ;;;
    ;;; $A01C: Maybe make cacatac attack ;;;
    ;;; $A049: Set cacatac instruction list - upside up - idling ;;;
    ;;; $A05C: Set cacatac instruction list - upside up - attacking ;;;
    ;;; $A06F: Set cacatac instruction list - upside down - idling ;;;
    ;;; $A082: Set cacatac instruction list - upside down - attacking ;;;
    ;;; $A095: Instruction - function = moving left/right ;;;
    ;;; $A0A7: Instruction - spawn cacatac spike enemy projectile with parameter [[Y]] ;;;
    ;;; $A0B9: RTL ;;;
    ;;; $A0BA: RTL ;;;
    ;;; $A0BB: Spritemaps - cacatac ;;;
;;; $A38B..A59D: Owtch ;;;
    ;;; $A38B: Palette - enemy $D03F (owtch) ;;;
    ;;; $A3AB: Instruction list - moving left ;;;
    ;;; $A3BD: Instruction list - moving right ;;;
    ;;; $A3CF: Owtch data ;;;
    ;;; $A3F9: Initialisation AI - enemy $D03F (owtch) ;;;
    ;;; $A47E: Main AI - enemy $D03F (owtch) ;;;
    ;;; $A48A: Set owtch instruction list pointer - moving left ;;;
    ;;; $A49D: Owtch function index -1 / set owtch instruction list pointer - moving right ;;;
    ;;; $A4B0: Owtch function index 0 - moving left ;;;
    ;;; $A4D9: Owtch function index 1 - moving right ;;;
    ;;; $A502: Owtch function index 2 - underground ;;;
    ;;; $A517: Owtch function index 3 - sinking ;;;
    ;;; $A53E: Owtch function index 4 - rising ;;;
    ;;; $A553: Maybe make owtch sink ;;;
    ;;; $A56D: Instruction - enemy function index = 0 ;;;
    ;;; $A571: Instruction - enemy function index = 1 ;;;
    ;;; $A578: RTL ;;;
    ;;; $A579: Enemy shot - enemy $D03F (owtch) ;;;
    ;;; $A589: Spritemaps - owtch ;;;
;;; $A59E..AFF2: Gunship ;;;
    ;;; $A59E: Palette - enemy $D07F/$D0BF (gunship) ;;;
    ;;; $A5BE: Instruction list - gunship entrance pad - opening ;;;
    ;;; $A5EE: Instruction list - gunship entrance pad - closing ;;;
    ;;; $A60E: Instruction list - gunship entrance pad - closed ;;;
    ;;; $A616: Instruction list - gunship top ;;;
    ;;; $A61C: Instruction list - gunship bottom ;;;
    ;;; $A622: Gunship brakes movement data ;;;
    ;;; $A644: Initialisation AI - enemy $D07F (gunship top) ;;;
    ;;; $A6D2: Initialisation AI - enemy $D0BF (gunship bottom / entrance pad) ;;;
    ;;; $A759: Main AI - enemy $D07F (gunship top) ;;;
    ;;; $A783: RTL ;;;
    ;;; $A784: Process gunship hover ;;;
    ;;; $A7D7: RTL ;;;
    ;;; $A7D8: Unused. Gunship function - rise to Y position 80h and the descend ;;;
    ;;; $A80C: Gunship function - landing on Zebes - descending ;;;
    ;;; $A8D0: Gunship function - landing on Zebes - apply brakes ;;;
    ;;; $A942: Gunship function - landing on Zebes - wait for gunship entrance to open ;;;
    ;;; $A950: Gunship function - landing on Zebes - eject Samus ;;;
    ;;; $A987: Gunship function - landing on Zebes - wait for gunship entrance to close, then unlock Samus and save ;;;
    ;;; $A9BD: Gunship function - idle - handle letting Samus enter ;;;
    ;;; $AA4F: Gunship function - Samus entering - wait for entrance pad to open ;;;
    ;;; $AA5D: Gunship function - Samus entering - lower Samus ;;;
    ;;; $AA94: Gunship function - Samus entering - wait for entrance pad to close ;;;
    ;;; $AAA2: Gunship function - Samus entered - go to liftoff or restore Samus health / ammo ;;;
    ;;; $AB1F: Gunship function - Samus entered - handle save confirmation ;;;
    ;;; $AB60: Gunship function - Samus exiting - wait for entrance pad to open ;;;
    ;;; $AB6E: Gunship function - Samus exiting - raise Samus ;;;
    ;;; $ABA5: Gunship function - Samus exiting - wait for entrance pad to close, then unlock Samus ;;;
    ;;; $ABC7: Gunship function - liftoff - load dust cloud tiles ;;;
    ;;; $AC1B: Gunship function - liftoff - fire up engines and spawn dust clouds ;;;
    ;;; $ACD7: Gunship function - liftoff - steady rise ;;;
    ;;; $AD0E: Gunship function - liftoff - accelerating / set game state ;;;
    ;;; $AD2D: Gunship function - liftoff - accelerating ;;;
    ;;; $AD7F: RTL ;;;
    ;;; $AD80: RTL ;;;
    ;;; $AD81: Spritemaps - gunship ;;;
;;; $AFF3..B2BB: Flies ;;;
    ;;; $AFF3: Palette - enemy $D0FF (mellow) ;;;
    ;;; $B013: Instruction list ;;;
    ;;; $B027: Unused. Old movement data? ;;;
    ;;; $B06B: Initialisation AI - enemy $D0FF/$D13F/$D17F (flies) ;;;
    ;;; $B090: Move fly according to angle ;;;
    ;;; $B0DC: Move fly according to velocities ;;;
    ;;; $B11F: Main AI - enemy $D0FF/$D13F/$D17F (flies) ;;;
    ;;; $B129: Set fly to attack Samus ;;;
    ;;; $B14E: Fly function - idle movement - clockwise circle ;;;
    ;;; $B17C: Fly function - idle movement - anti-clockwise circle ;;;
    ;;; $B1AA: Fly function - attack Samus ;;;
    ;;; $B1D2: Fly function - retreat ;;;
    ;;; $B1E8: Spritemaps - flies ;;;
    ;;; $B204: Unused. Fly spritemap pointers ;;;
    ;;; $B20C: Palette - enemy $D13F (mella) ;;;
    ;;; $B22C: Unused ;;;
    ;;; $B240: Unused. Mella spritemaps ;;;
    ;;; $B25C: Unused. Mella spritemap pointers ;;;
    ;;; $B264: Palette - enemy $D17F (memu) ;;;
    ;;; $B284: Unused ;;;
    ;;; $B298: Unused. Memu spritemaps ;;;
    ;;; $B2B4: Unused. Memu spritemap pointers ;;;
;;; $B2BC..B519: Multiviola ;;;
    ;;; $B2BC: Palette - enemy $D1BF (multiviola) ;;;
    ;;; $B2DC..B3DF: Instruction lists - multiviola ;;;
        ;;; $B2DC: Instruction list ;;;
        ;;; $B318: Unused. Instruction list ;;;
        ;;; $B37C: Unused. Instruction list ;;;
    ;;; $B3E0: Initialisation AI - enemy $D1BF (multiviola) ;;;
    ;;; $B40F: Main AI - enemy $D1BF (multiviola) ;;;
    ;;; $B4AA: Spritemaps - multiviola ;;;
;;; $B51A..B601: Polyp ;;;
    ;;; $B51A: Instruction list - polyp ;;;
    ;;; $B520: Polyp data ;;;
    ;;; $B570: Initialisation AI - enemy $D1FF (polyp) ;;;
    ;;; $B58F: Main AI - enemy $D1FF (polyp) ;;;
    ;;; $B596: Polyp function - wait for Samus to get near ;;;
    ;;; $B5B2: Polyp function - shoot rock ;;;
    ;;; $B5EA: Polyp function - cooldown ;;;
    ;;; $B5F9: RTL ;;;
    ;;; $B5FA: RTL ;;;
    ;;; $B5FB: Spritemap - polyp ;;;
;;; $B602..BA5A: Rinka ;;;
    ;;; $B602: Initialisation AI - enemy $D23F (rinka) ;;;
    ;;; $B63E: Respawn rinka ;;;
    ;;; $B654: Reset rinka ;;;
    ;;; $B69B: Spawn Mother Brain's room rinka ;;;
    ;;; $B75B: Mother Brain's room rinka spawn data ;;;
    ;;; $B79D: Get availability index of enemy spawn position ;;;
    ;;; $B7C4: Main AI - enemy $D23F (rinka) ;;;
    ;;; $B7DF: Rinka function - fire ;;;
    ;;; $B844: Rinka function - killed ;;;
    ;;; $B852: Rinka function - waiting to fire ;;;
    ;;; $B85B: Rinka function - moving ;;;
    ;;; $B865: Delete and respawn rinka ;;;
    ;;; $B880: Decrement rinka counter ;;;
    ;;; $B89C: Unused ;;;
    ;;; $B8BB: Mark rinka spawn point available ;;;
    ;;; $B8D3: Check if rinka is on screen ;;;
    ;;; $B8FF: Check if position is on screen ;;;
    ;;; $B929: Frozen AI - enemy $D23F (rinka) ;;;
    ;;; $B947: Enemy touch - enemy $D23F (rinka) ;;;
    ;;; $B94D: Enemy shot - enemy $D23F (rinka) ;;;
    ;;; $B953: Power bomb reaction - enemy $D23F (rinka) ;;;
    ;;; $B960: Rinka shared contact reaction ;;;
    ;;; $B9A2: Unused. Instruction - go to [[Y]] if [rinka counter] >= 3 ;;;
    ;;; $B9B3: Instruction - set enemy as intangible and invisible ;;;
    ;;; $B9BD: Instruction - set enemy as intangible, invisible and active off-screen ;;;
    ;;; $B9C7: Instruction - fire rinka ;;;
    ;;; $B9E0: Instruction list - not Mother Brain's room ;;;
    ;;; $BA0C: Instruction list - Mother Brain's room ;;;
    ;;; $BA38: Spritemaps - rinka ;;;
;;; $BA5B: Palette - enemy $D1FF/$D23F (polyp / rinka) ;;;
;;; $BA7B..BE1B: Rio ;;;
    ;;; $BA7B: Palette - enemy $D27F (rio) ;;;
    ;;; $BA9B..BBCC: Instruction lists - rio ;;;
        ;;; $BA9B: Unused. Instruction list ;;;
        ;;; $BACF: Unused. Instruction list ;;;
        ;;; $BB4B: Instruction list - idle ;;;
        ;;; $BB53: Instruction list - post-swoop idle ;;;
        ;;; $BB7F: Instruction list - swooping - part 1 ;;;
        ;;; $BB97: Instruction list - swooping - part 2 ;;;
        ;;; $BBA3: Instruction list - swoop cooldown ;;;
        ;;; $BBBB: Rio constants ;;;
        ;;; $BBC3: Instruction - set animation finished flag ;;;
    ;;; $BBCD: Initialisation AI - enemy $D27F (rio) ;;;
    ;;; $BBE3: Main AI - enemy $D27F (rio) ;;;
    ;;; $BBED: Rio function - wait for Samus to get near ;;;
    ;;; $BC32: Rio function - swoop cooldown ;;;
    ;;; $BC48: Rio function - swoop - descending ;;;
    ;;; $BCB7: Rio function - swoop - ascending ;;;
    ;;; $BCFF: Rio function - homing ;;;
    ;;; $BD54: Set rio instruction list ;;;
    ;;; $BD6C: Spritemaps - rio ;;;
;;; $BE1C..C0D0: Squeept ;;;
    ;;; $BE1C: Palette - enemy $D2BF (squeept) ;;;
    ;;; $BE3C: Instruction list - rising ;;;
    ;;; $BE42: Instruction list - flipping / falling ;;;
    ;;; $BE62: Instruction list - flame ;;;
    ;;; $BE86: Squeept initial Y velocities ;;;
    ;;; $BE8E: Instruction - set animation finished flag ;;;
    ;;; $BE99: Initialisation AI - enemy $D2BF (squeept) ;;;
    ;;; $BED2: Main AI - enemy $D2BF (squeept) ;;;
    ;;; $BEDC: Squeept function - flame ;;;
    ;;; $BF1A: Squeept function - jump ;;;
    ;;; $BF3E: Squeept function - rising ;;;
    ;;; $BF7C: Squeept function - flipping ;;;
    ;;; $BFBC: Squeept function - falling ;;;
    ;;; $C012: Set squeept instruction list ;;;
    ;;; $C02C: Spritemaps - squeept ;;;
;;; $C0D1..C5F9: Geruta ;;;
    ;;; $C0D1: Palette - enemy $D2FF (geruta) ;;;
    ;;; $C0F1..C1B6: Instruction lists ;;;
        ;;; $C0F1: Instruction list - main - idle ;;;
        ;;; $C107: Instruction list - main - swoop - start descending ;;;
        ;;; $C12F: Instruction list - main - swoop - descending ;;;
        ;;; $C145: Instruction list - main - swoop - start ascending ;;;
        ;;; $C179: Instruction list - main - swoop - ascending ;;;
        ;;; $C18F: Instruction list - flames - ascending ;;;
        ;;; $C1A3: Instruction list - flames - descending ;;;
    ;;; $C1B7: Geruta constants ;;;
    ;;; $C1C9..C241: Instructions ;;;
        ;;; $C1C9: Instruction - set enemy finished swoop start animation flag ;;;
        ;;; $C1D4: Instruction - flames Y offset = 8 ;;;
        ;;; $C1DF: Instruction - flames Y offset = 8 ;;;
        ;;; $C1EA: Instruction - flames Y offset = Ch ;;;
        ;;; $C1F5: Instruction - flames Y offset = -Ch ;;;
        ;;; $C200: Instruction - flames Y offset = 4 ;;;
        ;;; $C20B: Instruction - flames Y offset = 0 ;;;
        ;;; $C216: Instruction - flames Y offset = -4 ;;;
        ;;; $C221: Instruction - flames Y offset = -Ch ;;;
        ;;; $C22C: Instruction - flames Y offset = -10h ;;;
        ;;; $C237: Instruction - flames Y offset = Ch ;;;
    ;;; $C242: Initialisation AI - enemy $D2FF (geruta) ;;;
    ;;; $C277: Main AI - enemy $D2FF (geruta) ;;;
    ;;; $C281: Geruta function - flames ;;;
    ;;; $C2E7: Geruta function - idle ;;;
    ;;; $C33F: Geruta function - start swoop ;;;
    ;;; $C361: Geruta function - swoop - descending ;;;
    ;;; $C3B1: Geruta function - swoop - ascending ;;;
    ;;; $C406: Geruta function - finish swoop ;;;
    ;;; $C40D: Set geruta instruction list ;;;
    ;;; $C427: Geruta spritemaps ;;;
;;; $C5FA..CA2A: Holtz ;;;
    ;;; $C5FA: Palette - enemy $D33F (holtz) ;;;
    ;;; $C61A..BF: Instruction lists ;;;
        ;;; $C61A: Instruction list - idle ;;;
        ;;; $C630: Instruction list - prepare to swoop ;;;
        ;;; $C65A: Instruction list - swoop - descending ;;;
        ;;; $C662: Instruction list - swoop - ascending - part 1 ;;;
        ;;; $C674: Instruction list - swoop - ascending - part 2 ;;;
        ;;; $C686: Instruction list - swoop cooldown ;;;
        ;;; $C6B0: Instruction list - flames ;;;
    ;;; $C6C0: Holtz constants ;;;
    ;;; $C6D2: Instruction - set animation finished flag ;;;
    ;;; $C6DD: Instruction - hide flames ;;;
    ;;; $C6E8: Instruction - show flames ;;;
    ;;; $C6F3: Initialisation AI - enemy $D33F (holtz) ;;;
    ;;; $C724: Main AI - enemy $D33F (holtz) ;;;
    ;;; $C72E: Holtz function - flames ;;;
    ;;; $C771: Holtz function - idle ;;;
    ;;; $C7BB: Holtz function - prepare to swoop ;;;
    ;;; $C7D6: Holtz function - swoop - descending ;;;
    ;;; $C82D: Holtz function - swoop - ascending ;;;
    ;;; $C888: Holtz function - swoop cooldown ;;;
    ;;; $C8A3: Set holtz instruction list ;;;
    ;;; $C8BD: Holtz spritemaps ;;;
;;; $CA2B..D80B: Oum ;;;
    ;;; $CA2B: Palette - enemy $D37F (oum) ;;;
    ;;; $CA4B..CB6A: Instruction lists ;;;
        ;;; $CA4B: Instruction list - facing left - idle ;;;
        ;;; $CA51: Instruction list - facing left - attacking ;;;
        ;;; $CA8B: Instruction list - facing left - rolling forwards ;;;
        ;;; $CAB3: Instruction list - facing left - rolling backwards ;;;
        ;;; $CADB: Instruction list - facing right - idle ;;;
        ;;; $CAE1: Instruction list - facing right - attacking ;;;
        ;;; $CB1B: Instruction list - facing right - rolling forwards ;;;
        ;;; $CB43: Instruction list - facing right - rolling backwards ;;;
    ;;; $CB6B: Instruction - queue splashed out of water sound effect ;;;
    ;;; $CB77: Instruction list pointers ;;;
    ;;; $CB87: Oum extended spritemaps ;;;
    ;;; $CCB3: Instruction - set animation finished flag ;;;
    ;;; $CCBE: Instruction - enemy attack allowing rotation flag = 1 ;;;
    ;;; $CCC9: Instruction - enemy attack allowing rotation flag = 0 ;;;
    ;;; $CCD4: Initialisation AI - enemy $D37F (oum) ;;;
    ;;; $CD13: Main AI - enemy $D37F (oum) ;;;
    ;;; $CD23: Check if touching Samus and update previous position ;;;
    ;;; $CD35: Handle pushing Samus ;;;
    ;;; $CD77: Stop if player is pressing towards oum ;;;
    ;;; $CDE6: Oum function - idle ;;;
    ;;; $CE2B: Oum function - rolling ;;;
    ;;; $CF40: Oum function - attacking ;;;
    ;;; $CF66: Oum bounce function - falling ;;;
    ;;; $CFA9: Oum bounce function - rising ;;;
    ;;; $CFD7: Unused ;;;
    ;;; $CFDF: Set oum instruction list ;;;
    ;;; $CFFF: Check if touching Samus ;;;
    ;;; $D034: Oum hitboxes ;;;
    ;;; $D388: Enemy touch - oum - hurts Samus ;;;
    ;;; $D38C: Enemy touch - oum - doesn't hurt Samus ;;;
    ;;; $D3B4: Enemy shot - enemy $D37F (oum) ;;;
    ;;; $D3C0: Oum spritemaps ;;;
;;; $D80C..E17A: Choot ;;;
    ;;; $D80C: Palette - enemy $D3BF (choot) ;;;
    ;;; $D82C: Instruction list - idle ;;;
    ;;; $D834: Instruction list - jumping ;;;
    ;;; $D840: Instruction list - falling ;;;
    ;;; $D84C: Falling pattern data ;;;
    ;;; $DF5E: Falling pattern pointers ;;;
    ;;; $DF76: Initialisation AI - enemy $D3BF (choot) ;;;
    ;;; $DFCE: Calculate choot jump height ;;;
    ;;; $DFE9: Calculate initial choot jump speed ;;;
    ;;; $E01E: Set choot instruction list ;;;
    ;;; $E02E: Main AI - enemy $D3BF (choot) ;;;
    ;;; $E035: Choot function - wait for Samus to get near ;;;
    ;;; $E04F: Choot function - prepare to jump ;;;
    ;;; $E06A: Choot function - jumping ;;;
    ;;; $E0CD: Choot function - falling ;;;
    ;;; $E144: RTL ;;;
    ;;; $E145: RTL ;;;
    ;;; $E146: Choot spritemaps ;;;
;;; $E17B..E2BF: Gripper ;;;
    ;;; $E17B: Palette - enemy $D3FF (gripper) ;;;
    ;;; $E19B: Instruction list - moving left ;;;
    ;;; $E1AF: Instruction list - moving right ;;;
    ;;; $E1C3: Unused. Instruction list - frozen - facing left ;;;
    ;;; $E1CB: Unused. Instruction list - frozen - facing right ;;;
    ;;; $E1D3: Initialisation AI - enemy $D3FF (gripper) ;;;
    ;;; $E221: Main AI - enemy $D3FF (gripper) ;;;
    ;;; $E279: Check if moved left too far ;;;
    ;;; $E28A: Check if moved right too far ;;;
    ;;; $E29B: Unused. Frozen AI ;;;
    ;;; $E2A3: RTL ;;;
    ;;; $E2A4: Unused. Enemy shot ;;;
;;; $E2C0..E3A8: Ripper ii ;;;
    ;;; $E2C0: Palette - enemy $D43F (ripper ii) ;;;
    ;;; $E2E0: Instruction list - moving right ;;;
    ;;; $E2F4: Instruction list - moving left ;;;
    ;;; $E308: Unused. Instruction list - frozen - facing left ;;;
    ;;; $E310: Unused. Instruction list - frozen - facing right ;;;
    ;;; $E318: Initialisation AI - enemy $D43F (ripper ii) ;;;
    ;;; $E353: Main AI - enemy $D43F (ripper ii) ;;;
    ;;; $E3A0: Unused. Frozen AI ;;;
    ;;; $E3A8: RTL ;;;
;;; $E3A9: Enemy shot - enemy $D3FF/$D43F (gripper / ripper ii) ;;;
;;; $E3C5: Gripper / ripper ii spritemaps ;;;
;;; $E457..E57A: Ripper ;;;
    ;;; $E457: Palette - enemy $D47F (ripper) ;;;
    ;;; $E477: Instruction list - moving right ;;;
    ;;; $E48B: Instruction list - moving left ;;;
    ;;; $E49F: Initialisation AI - enemy $D47F (ripper) ;;;
    ;;; $E4DA: Main AI - enemy $D47F (ripper) ;;;
    ;;; $E527: Ripper spritemaps ;;;
    ;;; $E56F: Unused. Ripper spritemap pointers ;;;
;;; $E57B..E977: Dragon ;;;
    ;;; $E57B: Palette - enemy $D4BF (dragon) ;;;
    ;;; $E59B..EE: Instruction lists ;;;
        ;;; $E59B: Instruction list - idle - facing left ;;;
        ;;; $E5A1: Instruction list - wings - facing left ;;;
        ;;; $E5AD: Instruction list - idle - facing right ;;;
        ;;; $E5B3: Instruction list - wings - facing right ;;;
        ;;; $E5BF: Instruction list - attacking - facing left ;;;
        ;;; $E5D7: Instruction list - attacking - facing right ;;;
    ;;; $E5EF: Instruction list pointers ;;;
    ;;; $E5FB: Instruction - set animation finished flag ;;;
    ;;; $E606: Initialisation AI - enemy $D4BF (dragon) ;;;
    ;;; $E64E: Main AI - enemy $D4BF (dragon) ;;;
    ;;; $E654: Dragon function - wait to rise ;;;
    ;;; $E6AD: Dragon function - rising ;;;
    ;;; $E6F1: Dragon function - attacking ;;;
    ;;; $E734: Dragon function - wait to sink ;;;
    ;;; $E749: Dragon function - sinking ;;;
    ;;; $E781: RTL ;;;
    ;;; $E782: Set dragon instruction list ;;;
    ;;; $E7A5: Set dragon wings instruction list ;;;
    ;;; $E7C8: Enemy touch - enemy $D4BF (dragon) ;;;
    ;;; $E7CE: Enemy shot - enemy $D4BF (dragon) ;;;
    ;;; $E7D4: Power bomb reaction - enemy $D4BF (dragon) ;;;
    ;;; $E7DA: Dragon reaction ;;;
    ;;; $E80C: Dragon spritemaps ;;;
;;; $E978..F497: Shutters / up/down movers ;;;
    ;;; $E978: Palette - enemy $D4FF/$D53F/$D57F/$D5BF (shutters) ;;;
    ;;; $E998..D9: Instruction lists - shutter ;;;
        ;;; $E998: Instruction list - shutter - growth level 0 ;;;
        ;;; $E99E: Instruction list - shutter - growth level 1 ;;;
        ;;; $E9A4: Instruction list - shutter - growth level 2 ;;;
        ;;; $E9AA: Instruction list - shutter - growth level 3 ;;;
        ;;; $E9B0: Unused. Instruction list - shrinking loop ;;;
        ;;; $E9D4: Instruction list - horizontal shutter ;;;
    ;;; $E9DA..ED32: Growing shutter ;;;
        ;;; $E9DA: Initialisation AI - enemy $D4FF (growing shutter) ;;;
        ;;; $EAB6: Main AI - enemy $D4FF (growing shutter) ;;;
        ;;; $EABD: Growing shutter function - initial - upwards - wait for timer ;;;
        ;;; $EAD1: Growing shutter function - initial - upwards - wait for Samus to get near ;;;
        ;;; $EAE7: Growing shutter function - initial - downwards - wait for Samus to get near ;;;
        ;;; $EAFD: Growing shutter function - initial - downwards - wait for timer ;;;
        ;;; $EB11: Growing shutter function - growing - downwards ;;;
        ;;; $EB24: RTS ;;;
        ;;; $EB25: Growing shutter growing function - downwards - growth level 0 ;;;
        ;;; $EB66: Growing shutter growing function - downwards - growth level 1 ;;;
        ;;; $EBA7: Growing shutter growing function - downwards - growth level 2 ;;;
        ;;; $EBE8: Growing shutter growing function - downwards - growth level 3 ;;;
        ;;; $EC13: Growing shutter function - growing - upwards ;;;
        ;;; $EC44: RTS ;;;
        ;;; $EC45: Growing shutter growing function - upwards - growth level 0 ;;;
        ;;; $EC86: Growing shutter growing function - upwards - growth level 1 ;;;
        ;;; $ECC7: Growing shutter growing function - upwards - growth level 2 ;;;
        ;;; $ED08: Growing shutter growing function - upwards - growth level 3 ;;;
    ;;; $ED33: Unused. A = 5 ;;;
    ;;; $ED37: RTL ;;;
    ;;; $ED38: Shutters spritemaps ;;;
    ;;; $EDC7..F106: Up/down movers ;;;
        ;;; $EDC7: Palette - enemy $D5FF (up/down mover platform) ;;;
        ;;; $EDE7: Instruction list - up/down mover platform ;;;
        ;;; $EDFB: Initial up/down mover function pointers ;;;
        ;;; $EE05: Initialisation AI - enemy $D5FF (up/down mover platform) ;;;
        ;;; $EE12: Initialisation AI - enemy $D53F/$D5BF (shootable shutter / destroyable shutter) ;;;
        ;;; $EE1F: Initialise up/down mover ;;;
        ;;; $EED1: Main AI - enemy $D53F/$D5BF/$D5FF (up/down mover) ;;;
        ;;; $EF09: Up/down mover function - initial ;;;
        ;;; $EF15: Initial up/down mover function - wait for timer ;;;
        ;;; $EF28: (Initial) up/down mover function - wait for Samus to get near ;;;
        ;;; $EF39: Initial up/down mover function - activate ;;;
        ;;; $EF40: Initial up/down mover function - nothing ;;;
        ;;; $EF44: Activate up/down mover ;;;
        ;;; $EF5A: Play gate opening/closing sound effect if on-screen ;;;
        ;;; $EF68: Up/down mover function - moving up ;;;
        ;;; $EFD4: Up/down mover function - moving down ;;;
        ;;; $F040: Up/down mover function - stopped moving up ;;;
        ;;; $F072: Up/down mover function - stopped moving down ;;;
        ;;; $F099: Up/down mover function - nothing ;;;
        ;;; $F09D: Enemy touch - enemy $D53F/$D5BF/$D5FF (up/down mover) ;;;
        ;;; $F0A2: Enemy shot - enemy $D53F/$D5FF (shootable shutter / up/down mover platform) ;;;
        ;;; $F0AA: Enemy shot - enemy $B5BF (destroyable shutter) ;;;
        ;;; $F0B6: Up/down mover reaction ;;;
    ;;; $F107..F467: Horizontal shutter ;;;
        ;;; $F107: Initial horizontal shutter function pointers ;;;
        ;;; $F111: Initialisation AI - enemy $D57F (horizontal shutter) ;;;
        ;;; $F11E: Initialise horizontal shutter ;;;
        ;;; $F1DE: Main AI - enemy $D57F (horizontal shutter) ;;;
        ;;; $F224: Horizontal shutter function - initial ;;;
        ;;; $F230: Initial horizontal shutter function - wait for timer ;;;
        ;;; $F243: (Initial) horizontal shutter function - wait for Samus to get near ;;;
        ;;; $F254: Initial horizontal shutter function - activate ;;;
        ;;; $F25B: Initial horizontal shutter function - nothing ;;;
        ;;; $F25F: Activate horizontal shutter ;;;
        ;;; $F272: Horizontal shutter function - moving left ;;;
        ;;; $F2E4: Horizontal shutter function - moving right ;;;
        ;;; $F356: Eject Samus if pressing right ;;;
        ;;; $F371: Eject Samus if pressing left ;;;
        ;;; $F38C: Horizontal shutter function - stopped moving left ;;;
        ;;; $F3B0: Horizontal shutter function - stopped moving right ;;;
        ;;; $F3D4: Horizontal shutter function - nothing ;;;
        ;;; $F3D8: Enemy touch - enemy $D57F (horizontal shutter) ;;;
        ;;; $F40E: Enemy shot - enemy $D57F (horizontal shutter) ;;;
        ;;; $F41A: Horizontal shutter reaction ;;;
    ;;; $F468: Spritemaps - up/down mover platform ;;;
;;; $F498: Free space ;;;