;;; $8000: Game state 6/1Fh/28h (loading game data / set up new game / load demo game data) ;;;
;;; $819B: Initialise IO registers for gameplay ;;;
;;; $81A4: Initialise CPU registers for gameplay ;;;
;;; $81DD: Set up PPU for gameplay ;;;
;;; $82C5: Load initial palette ;;;
;;; $82E2: Load standard BG3 tiles and sprite tiles, clear tilemaps ;;;
;;; $8367: Game state 20h (made it to Ceres elevator) ;;;
;;; $8388: Game state 21h (blackout from Ceres) ;;;
;;; $8411: Game state 23h (time up) ;;;
;;; $8431: Game state 24h (whiting out from time up) ;;;
;;; $84BD: Game state 26h (Samus escapes from Zebes) ;;;
;;; $852D..893C: Demos ;;;
    ;;; $852D: Game state 29h (transition to demo) ;;;
    ;;; $8548: Game state 2Ah (playing demo) ;;;
    ;;; $8593: Game state 2Bh (unload game data) ;;;
    ;;; $85FB: Game state 2Ch (transition from demo) ;;;
    ;;; $8637: Check for next demo ;;;
    ;;; $8679: Load demo room data ;;;
    ;;; $876C: Demo room data ;;;
    ;;; $891A: Demo room code - charge beam room: scroll 21h = red ;;;
    ;;; $8925: Demo room code - landing site: BG2 tilemap base address = $4800, BG2 tilemap size = 32x64 ;;;
    ;;; $892B: Demo room code - Kraid - Kraid function timer = 60 ;;;
    ;;; $8932: Demo room code - Tourian entrance - Brinstar boss bits = Kraid is dead ;;;
;;; $893D: Main game loop ;;;
;;; $89DB: Game state 1Dh (debug game over menu) ;;;
;;; $89E0: Game state 1Ah (game over screen) ;;;
;;; $89E5: Game state 4 (file select menus) ;;;
;;; $89EA: Game state 5 (file select map) ;;;
;;; $89EF..8AAF: Handle sounds ;;;
    ;;; $89EF: Handle sounds ;;;
    ;;; $8A2C: Sound state 0 - send APU sound request from queue ;;;
    ;;; $8A55: Sound state 1 - wait for APU sound request acknowledgement ;;;
    ;;; $8A6C: Sound state 2 - clear sound request ;;;
    ;;; $8A7C: Sound state 3 - wait for APU clear request acknowledgement ;;;
    ;;; $8A90: Sound state 4 - reset sound state ;;;
    ;;; $8A9A: Reset sound queues ;;;
;;; $8AB0: Show spare CPU (debug) and update previous controller 1 input ;;;
;;; $8AE4: Game state 0 (reset/start) ;;;
;;; $8B08: Game state 1 (title sequence) ;;;
;;; $8B0D: RTS. Game state 3 (nothing) ;;;
;;; $8B0E: Game state 1Eh/22h/25h (intro / Ceres goes boom, Samus goes to Zebes / Ceres goes boom with Samus) ;;;
;;; $8B13: Game state 27h (ending and credits) ;;;
;;; $8B18: Unused. Increment game state ;;;
;;; $8B20: Game state 7 (main gameplay fading in) ;;;
;;; $8B3F: Game state 1Ch (unused) ;;;
;;; $8B44: Game state 8 (main gameplay) ;;;
;;; $8BB9..8CCE: Game options menu objects ;;;
    ;;; $8BB9: Delete game options menu objects ;;;
    ;;; $8BCB: Spawn game options menu object ;;;
    ;;; $8C10: RTS ;;;
    ;;; $8C11: Game options menu object handler ;;;
    ;;; $8C2B: Process game options menu object ;;;
    ;;; $8C5A: Instruction - delete ;;;
    ;;; $8C64: Instruction - sleep ;;;
    ;;; $8C6E: Instruction - pre-instruction = [[Y]] ;;;
    ;;; $8C79: Instruction - clear pre-instruction ;;;
    ;;; $8C82: Instruction - go to [[Y]] ;;;
    ;;; $8C89: Instruction - decrement timer and go to [[Y]] if non-zero ;;;
    ;;; $8C93: Instruction - timer = [[Y]] ;;;
    ;;; $8C9E: RTS ;;;
    ;;; $8CA1: Draw game options menu spritemaps ;;;
;;; $8CCF..BA34: Pause menu ;;;
    ;;; $8CCF: Game state Ch (pausing, normal gameplay but darkening) ;;;
    ;;; $8CEF: Game state Dh (pausing, loading pause screen) ;;;
    ;;; $8D51: Back up BG2 tilemap for pause menu ;;;
    ;;; $8D96: Restore BG2 tilemap from pause screen ;;;
    ;;; $8DBD: Back up some graphics state for pause screen ;;;
    ;;; $8E19: Restore some graphics state from pause screen ;;;
    ;;; $8E75: Load pause menu tiles and clear BG2 tilemap ;;;
    ;;; $8EDA: Load pause screen base tilemaps ;;;
    ;;; $8F70: Load equipment screen reserve health tilemap ;;;
    ;;; $8FD4: Backup gameplay palettes and load pause screen palettes ;;;
    ;;; $9009: Continue initialising pause menu ;;;
    ;;; $9028: Set up map scrolling for file select map ;;;
    ;;; $90C8: Game state Eh (paused, loading pause screen) ;;;
    ;;; $90E8: Game state Fh (paused, map and item screens) ;;;
    ;;; $90FF..925C: Main pause routine ;;;
        ;;; $90FF: Main pause routine ;;;
        ;;; $9120: Pause menu - index 0: map screen ;;;
        ;;; $9142: Pause menu - index 1: equipment screen ;;;
        ;;; $9156: Pause menu - index 2: map screen to equipment screen - fading out ;;;
        ;;; $9186: Pause menu - index 5: equipment screen to map screen - fading out ;;;
        ;;; $91AB: Pause menu - index 3: map screen to equipment screen - load equipment screen ;;;
        ;;; $91D7: Pause menu - index 6: equipment screen to map screen - load map screen ;;;
        ;;; $9200: Pause menu - index 7: equipment screen to map screen - fading in ;;;
        ;;; $9231: Pause menu - index 4: map screen to equipment screen - fading in ;;;
    ;;; $925D..9323: Map scrolling ;;;
        ;;; $925D: Map scrolling ;;;
        ;;; $9278: Map scrolling - none ;;;
        ;;; $927F: X = map scroll speed index ;;;
        ;;; $928E: Map scrolling - left ;;;
        ;;; $9299: Map scrolling - common ;;;
        ;;; $92BD: Map scrolling - right ;;;
        ;;; $92CA: Map scrolling - up ;;;
        ;;; $92D7: Map scrolling - down ;;;
        ;;; $92E4: Map scrolling speed table ;;;
    ;;; $9324: Game state 10h (unpausing, loading normal gameplay) ;;;
    ;;; $934B: Draw pause menu during fade out ;;;
    ;;; $9367: Game state 11h (unpausing, loading normal gameplay) ;;;
    ;;; $93A1: Game state 12h (unpausing, normal gameplay but brightening) ;;;
    ;;; $93C3..A099: Pause menu / room select map ;;;
        ;;; $93C3: Load pause menu map tilemap and area label ;;;
        ;;; $943D: Load pause menu map tilemap ;;;
        ;;; $9517: Draw room select map ;;;
        ;;; $9628: Draw room select map area label ;;;
        ;;; $964A: Pointers to area maps ;;;
        ;;; $965F: Area label tilemaps ;;;
        ;;; $9717..9E26: Map data ;;;
            ;;; $9717: Map data pointers ;;;
            ;;; $9727: Crateria ;;;
            ;;; $9827: Brinstar ;;;
            ;;; $9927: Norfair ;;;
            ;;; $9A27: Wrecked Ship ;;;
            ;;; $9B27: Maridia ;;;
            ;;; $9C27: Tourian / debug ;;;
            ;;; $9D27: Ceres ;;;
        ;;; $9E27: Set up map scrolling for pause menu ;;;
        ;;; $9EC4: Determine map scroll limits ;;;
        ;;; $9F45: A = [X] * 8 ;;;
        ;;; $9F4A: Determine leftmost map column ;;;
        ;;; $9FA9: Determine rightmost map column ;;;
        ;;; $A009: Determine topmost map row ;;;
        ;;; $A053: Determine bottommost map row ;;;
    ;;; $A09A: Set up PPU for pause menu ;;;
    ;;; $A0F7: Reset pause menu animations ;;;
    ;;; $A12B: Load equipment screen equipment tilemaps ;;;
    ;;; $A27E: Copy [$16] bytes from [X] to $7E:[$00] ;;;
    ;;; $A29D: Set the palette of [$16] bytes of $7E:[$00] to [$12] ;;;
    ;;; $A2BE: Clear Samus/beam tiles ;;;
    ;;; $A2E3: Continue initialising gameplay resume ;;;
    ;;; $A313: Set up PPU for gameplay resume ;;;
    ;;; $A34E: Calculate BG scrolls ;;;
    ;;; $A377: Update beam tiles and palette ;;;
    ;;; $A380: Clear pause menu data ;;;
    ;;; $A3D9: Unused. Change pose due to equipment change ;;;
    ;;; $A425: RTS ;;;
    ;;; $A42A: Change pose due to equipment change - spin jumping ;;;
    ;;; $A47B: Change pose due to equipment change - movement types 7/9 ;;;
    ;;; $A4A9: Change pose due to equipment change - morph ball ;;;
    ;;; $A4D7: Change pose due to equipment change - spring ball ;;;
    ;;; $A505..AB46: Pause screen ;;;
        ;;; $A505: Handle pause screen L/R ;;;
        ;;; $A50C: Handle pause screen L/R input ;;;
        ;;; $A56D: Handle pause menu L/R pressed highlight ;;;
        ;;; $A59A: Equipment screen - draw L/R highlight ;;;
        ;;; $A5B7: Handle pause screen start button ;;;
        ;;; $A5F1: Handle pause menu start pressed highlight ;;;
        ;;; $A615: Set pause screen button label palettes ;;;
        ;;; $A628: Set pause screen button label palettes - equipment screen ;;;
        ;;; $A6DF: Set pause screen button label palettes - unpausing ;;;
        ;;; $A796: Set pause screen button label palettes - map screen ;;;
        ;;; $A84D: Update pause menu L/R/start VRAM tilemap ;;;
        ;;; $A87D: Unused. External draw equipment screen spritemap ;;;
        ;;; $A881: Draw pause screen sprite animation ;;;
        ;;; $A92B: Handle pause screen palette animation ;;;
    ;;; $AB47..B5E7: Equipment screen ;;;
        ;;; $AB47: Equipment screen - set up reserve mode and determine initial selection ;;;
        ;;; $AC22: Equipment screen - transfer BG1 tilemap ;;;
        ;;; $AC4F: Equipment screen - main ;;;
        ;;; $AC70: Equipment screen - main - tanks ;;;
        ;;; $AC8B: Equipment screen - main - tanks - d-pad response ;;;
        ;;; $AD0A: Equipment screen - main - tanks - glowing arrow ;;;
        ;;; $AD29: Equipment screen - glowing arrow - animated ;;;
        ;;; $ADDD: Equipment screen - glowing arrow - solid - on ;;;
        ;;; $ADEF: Equipment screen - glowing arrow - solid - off ;;;
        ;;; $AE01: Equipment screen - enable energy arrow glow ;;;
        ;;; $AE46: Equipment screen - disable energy arrow glow ;;;
        ;;; $AE8B: Equipment screen - main - tanks - mode ;;;
        ;;; $AEFD: Equipment screen - set HUD reserve AUTO tilemap ;;;
        ;;; $AF33: Equipment screen - clear HUD reserve AUTO tilemap ;;;
        ;;; $AF4F: Equipment screen - main - tanks - reserve tank ;;;
        ;;; $AFBE: Equipment screen - main - weapons ;;;
        ;;; $AFDB: Equipment screen - main - weapons - move response ;;;
        ;;; $B068: Equipment screen - main - weapons - plasma-spazer check ;;;
        ;;; $B0C2: Equipment screen - main - suit/misc. ;;;
        ;;; $B0D2: Equipment screen - suit/misc. - move response ;;;
        ;;; $B150: Equipment screen - main - boots ;;;
        ;;; $B160: Equipment screen - main - boots - move response ;;;
        ;;; $B1E0: Equipment screen - write Samus wireframe tilemap and queue transfer of BG1 to VRAM ;;;
        ;;; $B20C: Equipment screen - write Samus wireframe tilemap ;;;
        ;;; $B267: Equipment screen - draw item selector ;;;
        ;;; $B2A2: Equipment screen - display reserve tank amount ;;;
        ;;; $B2AA: Equipment screen - display reserve tank amount ;;;
        ;;; $B3F9: Equipment screen - main - display reserves - palette setup ;;;
        ;;; $B43F: Equipment screen - move to reserve tanks ;;;
        ;;; $B456: Equipment screen - move lower on beams ;;;
        ;;; $B489: Equipment screen - move higher on beams ;;;
        ;;; $B4B7: Equipment screen - move lower on suits/misc. ;;;
        ;;; $B4E6: Equipment screen - move higher on suits/misc. ;;;
        ;;; $B511: Equipment screen - move lower on boots ;;;
        ;;; $B53F: Equipment screen - move higher on boots ;;;
        ;;; $B568: Equipment screen - main - button response ;;;
    ;;; $B5E8: Unused. Convert [A] to three decimal digits ;;;
    ;;; $B62B: Draw pause menu during fade in ;;;
    ;;; $B650: Unused ;;;
    ;;; $B672..BA34: Map sprites ;;;
        ;;; $B672: Draw map icons ;;;
        ;;; $B6DD: Draw file select map icons ;;;
        ;;; $B798: Draw save station map icon ;;;
        ;;; $B7D1: Draw debug save map icons ;;;
        ;;; $B7EB: Draw debug elevator map icons ;;;
        ;;; $B805: Draw simple map icons ;;;
        ;;; $B81C: Draw map icons of given type ;;;
        ;;; $B855: Check if map position is explored ;;;
        ;;; $B892: Display map boss icons ;;;
        ;;; $B90A: Draw map scroll arrow and check to scroll in that direction ;;;
        ;;; $B932: Unused. REP #$30 ;;;
        ;;; $B934: Handle map scroll arrows ;;;
        ;;; $B9C8: Map screen - draw Samus position indicator ;;;
        ;;; $B9FC: Update Samus position indicator animation ;;;
;;; $BA35: Draw border around SAMUS DATA ;;;
;;; $BA48: Draw border around DATA COPY MODE ;;;
;;; $BA5B: Draw border around DATA CLEAR MODE ;;;
;;; $BA6E: Draw menu selection missile ;;;
;;; $BABA: Draw file copy arrow ;;;
;;; $BB30: Display map elevator destinations ;;;
;;; $BB75..BE16: Game over baby metroid ;;;
    ;;; $BB75: Handle game over baby metroid ;;;
    ;;; $BB7F: Process game over baby metroid instruction list ;;;
    ;;; $BB9E: Draw game over baby metroid ;;;
    ;;; $BBDD: Restart game over baby metroid instruction list ;;;
    ;;; $BBEB: Go to [A] ;;;
    ;;; $BBF0: Finish processing game over baby metroid ASM instruction ;;;
    ;;; $BC0C: Instruction - queue baby metroid cry 1 sound effect ;;;
    ;;; $BC15: Instruction - queue baby metroid cry 2 sound effect ;;;
    ;;; $BC1E: Instruction - queue baby metroid cry 3 sound effect ;;;
    ;;; $BC27: Game over baby metroid instruction list ;;;
    ;;; $BD97: Game over baby metroid palettes ;;;
;;; $BE17: Cancel sound effects ;;;
;;; $BE2F: Queue Samus movement sound effects ;;;
;;; $BE5A: Unused ;;;
;;; $BEA3: Unused ;;;
;;; $BF04: Reserve tank transfer energy per frame ;;;
;;; $BF06: Equipment screen tilemaps ;;;
;;; $C02C: Equipment screen data ;;;
;;; $C0B2: Pause screen sprite animation data ;;;
;;; $C216: Spritemaps ;;;
;;; $C569: Spritemap pointers ;;;
;;; $C639: Dummy Samus wireframe tilemap ;;;
;;; $C749: Area select spritemap base index ;;;
;;; $C74B: Unused. D-pad icon spritemap index? ;;;
;;; $C74D: Map elevator destinations ;;;
;;; $C7CB: Map icon positions table ;;;
;;; $C83B: Crateria map icon positions ;;;
;;; $C89D: Brinstar map icon positions ;;;
;;; $C90B: Norfair map icon positions ;;;
;;; $C981: Wrecked Ship map icon positions ;;;
;;; $C9DB: Maridia map icon positions ;;;
;;; $CA45: Tourian map icon positions ;;;
;;; $CA9B: Ceres map icon positions ;;;
;;; $CAE9: Spritemaps ;;;
;;; $D521..D960: Samus wireframe tilemaps ;;;
    ;;; $D521: Power suit ;;;
    ;;; $D631: Hi-jump boots ;;;
    ;;; $D741: Varia suit ;;;
    ;;; $D851: Hi-jump boots + varia suit ;;;
;;; $D961..DB68: Gradual colour change ;;;
    ;;; $D961: Advance gradual colour change of all palettes - denominator = Ch ;;;
    ;;; $D96C: Advance gradual colour change of BG palette 6 ;;;
    ;;; $D9B8: Advance gradual colour change of palette RAM [X]..[Y]-1 ;;;
    ;;; $DA02: Advance gradual colour change of all palettes ;;;
    ;;; $DA4A: Calculate the [A]th transitional colour from [X] to [Y] ;;;
    ;;; $DAA6: Calculate the [A]th transitional colour component from [X] to [Y] ;;;
    ;;; $DAF7: Advance gradual colour change of palettes in [A] - denominator = Ch ;;;
    ;;; $DB0C: Advance gradual colour change of palettes in [A] ;;;
    ;;; $DB41: Advance gradual colour change of palette [X] / 20h ;;;
;;; $DB69: Handle Samus running out of health and increment game time ;;;
;;; $DC10: Game state 1Bh (reserve tank auto) ;;;
;;; $DC31: Reserve tank auto refill ;;;
;;; $DC80: Game state 13h (death sequence, start) ;;;
;;; $DCE0: Game state 14h (death sequence, black out surroundings) ;;;
;;; $DD71: Game state 15h (death sequence, wait for music) ;;;
;;; $DD87: Game state 16h (death sequence, pre-flashing) ;;;
;;; $DD9A: Game state 17h (death sequence, flashing) ;;;
;;; $DDAF: Game state 18h (death sequence, explosion white out) ;;;
;;; $DDC7: Game state 19h (death sequence, black out) ;;;
;;; $DDF1..E97B: Door transition ;;;
    ;;; $DDF1: Load destination room CRE bitset ;;;
    ;;; $DE12: Load door header ;;;
    ;;; $DE6F: Load room header ;;;
    ;;; $DEF2: Load state header ;;;
    ;;; $DF69: Wait until the end of a v-blank and enable h/v-counter interrupts ;;;
    ;;; $DF80: Much ado about nothing ;;;
    ;;; $DF99: Save map explored if elevator ;;;
    ;;; $DFB6: Load map explored if elevator ;;;
    ;;; $DFC7: Draw inanimate Samus ;;;
    ;;; $DFD1: Load enemy GFX to VRAM ;;;
    ;;; $E039: Perform door transition VRAM update ;;;
    ;;; $E071: Queue room music data ;;;
    ;;; $E09B: Update music track index ;;;
    ;;; $E0D5: Load new music track if changed ;;;
    ;;; $E113: RTL ;;;
    ;;; $E118: Play room music track after [A] frames ;;;
    ;;; $E138: RTL ;;;
    ;;; $E139: Load target colours for common sprites, beams and flashing enemies ;;;
    ;;; $E169: Game state 9 (hit a door block) ;;;
    ;;; $E17D: Door transition function - handle elevator ;;;
    ;;; $E19F: Door transition function - wait 48 frames for down elevator ;;;
    ;;; $E1B7: Game state Ah (loading next room) ;;;
    ;;; $E288: Game state Bh (loading next room) ;;;
    ;;; $E29E: Door transition function - wait for sounds to finish ;;;
    ;;; $E2DB: Door transition function - fade out the screen ;;;
    ;;; $E2F7: Door transition function - load door header, delete HDMA objects, and set interrupt command ;;;
    ;;; $E310: Door transition function - scroll screen to alignment ;;;
    ;;; $E353: Door transition function - fix doors moving up ;;;
    ;;; $E36E: Door transition function - load room header; set up map; decompress level, scroll, and CRE data ;;;
    ;;; $E38E: Door transition function - set up scrolling ;;;
    ;;; $E3C0: Door transition function - place Samus, load tiles ;;;
    ;;; $E4A9: Door transition function - load sprites, background, PLMs, audio; execute custom door and room ASM; and wait for scrolling to end ;;;
    ;;; $E566..E658: Library background - door transition ;;;
        ;;; $E566: Clear FX tilemap ;;;
        ;;; $E583: Clear BG2 tilemap ;;;
        ;;; $E5A0: Clear Kraid's BG2 tilemap ;;;
        ;;; $E5C7: Library background function pointers ;;;
        ;;; $E5D7: Load library background - command 0: terminator ;;;
        ;;; $E5D9: Load library background - command Eh: door dependent transfer to VRAM ;;;
        ;;; $E5EB: Load library background - command 2: transfer to VRAM ;;;
        ;;; $E616: Load library background - command 4: decompression ;;;
        ;;; $E637: Load library background - command 6: clear FX tilemap ;;;
        ;;; $E63E: Load library background - command 8: transfer to VRAM and set BG3 tiles base address = $2000 ;;;
        ;;; $E64B: Load library background - command Ah: clear BG2 tilemap ;;;
        ;;; $E652: Load library background - command Ch: clear Kraid's layer 2 ;;;
    ;;; $E659: Door transition function - handle animated tiles ;;;
    ;;; $E664: Door transition function - wait for music queue to clear and possibly load new music ;;;
    ;;; $E675: Unused. Door transition function ;;;
    ;;; $E6A2: Door transition function - nudge Samus if she's intercepting the door ;;;
    ;;; $E737: Door transition function - fade in the screen and run enemies; finish door transition ;;;
    ;;; $E76B: Load destination room CRE bitset, door/room/state headers, CRE tiles, tileset tiles and tileset palette ;;;
    ;;; $E783: Load CRE tiles, tileset tiles and tileset palette ;;;
    ;;; $E78C: Load CRE tiles, tileset tiles and tileset palette ;;;
    ;;; $E7D3: Load level data, CRE, tile table, scroll data, create PLMs and execute door ASM and room setup ASM ;;;
    ;;; $E8EB: Spawn door closing PLM ;;;
    ;;; $E91C: Check if coloured doorcap was spawned, switch door PLM instruction lists if so ;;;
;;; $E97C..EA72: Load library background ;;;
    ;;; $E97C: Load library background ;;;
    ;;; $E9E5: Load library background - command 0: terminator ;;;
    ;;; $E9E7: Load library background - command Eh: door dependent transfer to VRAM ;;;
    ;;; $E9F9: Load library background - command 2: transfer to VRAM ;;;
    ;;; $EA2D: Load library background - command 4: decompression ;;;
    ;;; $EA4E: Load library background - command 6: clear FX tilemap ;;;
    ;;; $EA56: Load library background - command Ah: clear BG2 tilemap ;;;
    ;;; $EA5E: Load library background - command Ch: clear Kraid's layer 2 ;;;
    ;;; $EA66: Load library background - command 8: transfer to VRAM and set BG3 tiles base address = $2000 ;;;
;;; $EA73: Load level, scroll and CRE data ;;;
;;; $EB6C: Create PLMs, execute door ASM, room setup ASM and set elevator status ;;;
;;; $EB9F..F70D: Game options menu ;;;
    ;;; $EB9F: Game state 2 (game options menu) ;;;
    ;;; $EBDB: Game options menu - [menu index] = 0 (finish fading out) ;;;
    ;;; $EC11: Game options menu - [menu index] = 1 (loading options menu) ;;;
    ;;; $ECE4: Game options menu - [menu index] = 2 (fading in options menu) ;;;
    ;;; $ECFF: Draw game options menu BG1 ;;;
    ;;; $ED28: Set game options menu tile palettes ;;;
    ;;; $ED42: Game options menu - [menu index] = 3 (options menu) ;;;
    ;;; $EDB1: Game options menu - options menu - start game ;;;
    ;;; $EDDA: Game options menu - options menu - toggle language text ;;;
    ;;; $EDED: Set language text option highlight ;;;
    ;;; $EE55: Start game options menu dissolve transition ;;;
    ;;; $EE6A: Game options menu - [menu index] = Bh (transition back to file select) ;;;
    ;;; $EE92: Game options menu - [menu index] = Ch (fading out options menu to start game) ;;;
    ;;; $EEB4: Game options menu - [menu index] = 4 (start game) ;;;
    ;;; $EF18: Game options menu - [menu index] = 5 (dissolve out screen) ;;;
    ;;; $EFDB: Game options menu - [menu index] = 6 (dissolve in screen) ;;;
    ;;; $F024..F158: Special settings ;;;
        ;;; $F024: Game options menu - [menu index] = 8 (special settings) ;;;
        ;;; $F08E: Game options - special settings - toggle setting ;;;
        ;;; $F0AE: Special setting RAM addresses ;;;
        ;;; $F0B2: Game options - special settings - end ;;;
        ;;; $F0B9: Set special setting highlights ;;;
    ;;; $F159..F295: Controller settings ;;;
        ;;; $F159: Game options menu - [menu index] = 7 (controller settings) ;;;
        ;;; $F224: Game options - controller settings - reset to default ;;;
        ;;; $F25D: Game options - controller settings - end ;;;
        ;;; $F271: Game options menu - [menu index] = 9 (scroll controller settings down) ;;;
        ;;; $F285: Game options menu - [menu index] = Ah (scroll controller settings up) ;;;
    ;;; $F296..F4DB: Game options menu objects ;;;
        ;;; $F296: Setup - menu selection missile ;;;
        ;;; $F2A9: Pre-instruction - menu selection missile ;;;
        ;;; $F34B: Setup - border around OPTION MODE ;;;
        ;;; $F353: Setup - border around CONTROLLER SETTING MODE ;;;
        ;;; $F35B: Setup - border around SPECIAL SETTING MODE ;;;
        ;;; $F363: Setup - border around SAMUS DATA ;;;
        ;;; $F369: Common border setup ;;;
        ;;; $F376: Pre-instruction - border around OPTIONS MODE ;;;
        ;;; $F3A0: Pre-instruction - border around CONTROLLER SETTING MODE ;;;
        ;;; $F3E2: Pre-instruction - border around SPECIAL SETTING MODE ;;;
        ;;; $F404: Unused. Pre-instruction ;;;
        ;;; $F419: Setup - file select menu Samus helmet ;;;
        ;;; $F42C: Pre-instruction - file select menu Samus helmet ;;;
        ;;; $F442: Instruction list - menu selection missile ;;;
        ;;; $F456: Instruction list - file select menu Samus helmet ;;;
        ;;; $F47E: Instruction list - border around OPTIONS MODE ;;;
        ;;; $F48E: Instruction list - border around CONTROLLER SETTING MODE ;;;
        ;;; $F49E: Instruction list - border around SPECIAL SETTING MODE ;;;
        ;;; $F4AE: Instruction list - border around SAMUS DATA ;;;
        ;;; $F4B6: Instruction list - delete ;;;
        ;;; $F4B8: Game options menu objects ;;;
    ;;; $F4DC..F70D: Game options menu controller bindings ;;;
        ;;; $F4DC: Load game options menu controller bindings ;;;
        ;;; $F54A: Configurable controller binding RAM addresses ;;;
        ;;; $F558: Save game options menu controller bindings ;;;
        ;;; $F575: Controller input bitmasks ;;;
        ;;; $F587: Draw game options menu controller bindings ;;;
        ;;; $F6B9: Game options - controller settings - set binding ;;;
;;; $F70E: RTL ;;;
;;; $F70F: Free space ;;;