This is an old revision of the document!
An in-progress RAM map to aid in custom assembly and ROM disassembly.
0000-3FFF - 16KB ROM Bank (fixed - bank 0)
4000-7FFF - 16KB ROM Bank (swappable)
8000-9FFF - 8KB Video RAM
A000-BFFF - 8KB SRAM
01:A000-A007 - SRAM Check - Must be 0123456789ABCDEF 01:A008-A02D - File 1 01:A080-A087 - SRAM Check 01:A088-A0AD - File 2 (verify) 01:A0C0-A0C7 - SRAM Check 01:A0C8-A0ED - File 3 (verify)
C000-DFFF - 8KB WRAM
01:C600-C7FF - Enemy Slots (0x10 slots, 0x20 bytes each) 01:D045 - Item Bits? 01:D053 - Samus' current Missile count 01:D058 - Current level bank loaded 01:D084 - Samus' current tank energy 01:D09A - Count of Metroids remaining 01:D0A3 - Save File Selected 01:D700-D73F - Door Transition Data Buffer 01:D800-D825 - Savegames are loaded to here
FF00-FF7F - Hardware I/O Ports/Registers
FF80-FFFE - High RAM (HRAM)
01:FF80 - Buttons being held 01:FF81 - Buttons just pressed 01:FF99 - Samus Y pos (onscreen) 01:FFA0-FFA9 - Sprite DMA Routine 01:FFC0 - Samus Y pos (pixels) 01:FFC1 - Samus Y pos (screens) 01:FFC2 - Samus X pos (pixels) 01:FFC3 - Samus X pos (screens) 01:FFC8 - Camera Y position (pixels) 01:FFC9 - Camera Y position (screens) 01:FFCA - Camera X position (pixels) 01:FFCB - Camera X position (screens) 01:FFE0-FFF5 - Used by active enemies (??)