7E:0000 - 7E:0019 Misc. Direct Page Temporary Values 7E:0026 - 7E:0027 16 bit multiplier 7E:0028 - 7E:0029 16 bit multiplier 7E:002A - 7E:002D 32 bit product 7E:002E - 7E:002F Misc. Direct Page Temporary Value 7E:003C - 7E:003D Direct Page version of 7E:071F 7E:0051 Value for $2100 with $80:91EE (referred to as 'A') 7E:0052 Value for $2101 with 'A'(in-game = 03, paused = 01) 7E:0055 Value for $2105 with 'A' 7E:0057 Value for $2106 with 'A' 7E:0058 Value for $2107 with 'A' 7E:0059 Value for $2108 with 'A' 7E:005A Value for $2109 with 'A' 7E:005B Value for $2109 (when?) 7E:005C Value for $210A with 'A' 7E:005D Value for $210B with 'A' 7E:005E Value for $210C with 'A' 7E:005F Value for $211A with 'A' 7E:0060 Value for $2123 with 'A' 7E:0061 Value for $2124 with 'A' 7E:0062 Value for $2125 with 'A' 7E:0063 Value for $2126 with 'A' 7E:0064 Value for $2127 with 'A' 7E:0065 Value for $2128 with 'A' 7E:0066 Value for $2129 with 'A' 7E:0067 Value for $212A with 'A' 7E:0068 Value for $212B with 'A' 7E:0069 Value for $6A and $212C with 'A' 7E:006A Value for $212C (when?) 7E:006B Value for $212D with 'A' 7E:006C Value for $212E with 'A' 7E:006D Value for $212F with 'A' 7E:006E Value for $70 with 'A' 7E:006F Value for $2130 with 'A' 7E:0070 Value for $2130 (when?) 7E:0071 Value for $73 with 'A' 7E:0072 Value for $2131 with 'A' 7E:0073 Value for $2131 (when?) 7E:0074 Value 1 for $2132 with 'A' 7E:0075 Value 2 for $2132 with 'A' 7E:0076 Value 3 for $2132 with 'A' 7E:0077 Value for $2133 with 'A' 7E:0078 First value for $211B with 'A', if the first three bits of either $55 or $56 are set 7E:0079 Second value for $211B with 'A', if the first three bits of either $55 or $56 are set 7E:007A First value for $211C with 'A', if the first three bits of either $55 or $56 are set 7E:007B Second value for $211C with 'A', if the first three bits of either $55 or $56 are set 7E:007C First value for $211D with 'A', if the first three bits of either $55 or $56 are set 7E:007D Second value for $211D with 'A', if the first three bits of either $55 or $56 are set 7E:007E First value for $211E with 'A', if the first three bits of either $55 or $56 are set 7E:007F Second value for $211E with 'A', if the first three bits of either $55 or $56 are set 7E:0080 First value for $211F with 'A', if the first three bits of either $55 or $56 are set 7E:0081 Second value for $211F with 'A', if the first three bits of either $55 or $56 are set 7E:0082 First value for $2120 with 'A', if the first three bits of either $55 or $56 are set 7E:0083 Second value for $2120 with 'A', if the first three bits of either $55 or $56 are set 7E:008B - 7E:008C Controller 1 Input 7E:008D - 7E:008E Controller 2 Input. ALL Controller 2 Unused (Debug mode) 7E:008F - 7E:0090 Controller 1 Buttons newly pressed this frame 7E:0091 - 7E:0092 Controller 2 Buttons newly pressed this frame 7E:0093 - 7E:0094 Mirror of $8F (common) or $8B (Input, no new buttons held, $A3 was 1/is now 0) 7E:0095 - 7E:0096 Mirror of $91 (common) or $8D (Input, no new buttons held, $A5 was 1/is now 0) 7E:0097 - 7E:0098 Controller 1 Input from previous frame (updated at end of button-updating routine - this will always mirror $8B except during the button-updating routine) 7E:0099 - 7E:009A Controller 2 Input from previous frame (updated at end of button-updating routine - this will always mirror $8D except during the button-updating routine) 7E:00A3 - 7E:00A4 Controller 1: If (Input, no new buttons held) $A3 is decremented. If it now = #$0000, then $A3 = $89. If no Input or no new buttons, $A3 = $87. 7E:00A5 - 7E:00A6 Controller 2: If (Input, no new buttons held) $A5 is decremented. If it now = #$0000, then $A5 = $89. If no Input or no new buttons, $A5 = $87. 7E:00A7 - 7E:00A8 Display mode Jump Index (must be a multiple of 2) 7E:00AB - 7E:00AC Display mode Jump Index (must be a multiple of 2) 7E:00B1 Value for $210D (byte 1) 7E:00B2 Value for $210D (byte 2) 7E:00B3 Value for $210E (byte 1) 7E:00B4 Value for $210E (byte 2) 7E:00B5 Value for $210F (byte 1) 7E:00B6 Value for $210F (byte 2) 7E:00B7 Value for $2110 (byte 1) 7E:00B8 Value for $2110 (byte 2) 7E:00B9 Value for $2111 (byte 1) 7E:00BA Value for $2111 (byte 2) 7E:00BB Value for $2112 (byte 1) 7E:00BC Value for $2112 (byte 2) 7E:00BD Value for $2113 (byte 1) 7E:00BE Value for $2113 (byte 2) 7E:00BF Value for $2114 (byte 1) 7E:00C0 Value for $2114 (byte 2) 7E:00D0 - 7E:02AF Seems to be some sort of table for updating graphics? 7E:0330 - 7E:0331 Some sort of counter for 00D0 table 7E:0370 - 7E:058F *ALL* OAM data (according to routine at 80:933A) 7E:0590 - 7E:0591 Index for 0370 7E:05A2 - 7E:05A3 Percent of message box is open? Or something like that. Max of #$1800 7E:05B4 1 = Game is waiting for an IRQ, 0 = Game is processing current frame 7E:05B5 Something for animating minimap cursor (used as a general purpose... animation index, I guess) 7E:05B6 - 7E:05B7 Changes routine for Samus's horizontal collisions? (94:9763) (Seems to be INCed every NMI) 7E:05B8 - 7E:05B9 I'm guessing this is some sort of HBlank check. Used by message boxes for smooth opening/closing 7E:05BD TRBed with #$80 during 80:9632, when you enter a door 7E:05BE - 7E:05BF Offset for VRAM. Used by 80:9632, when you enter a door 7E:05C0 - 7E:05C2 Source for VRAM update, including bank byte. Used by 80:9632, when you enter a door 7E:05C3 - 7E:05C4 Size of VRAM update. Used by 80:9632, when you enter a door 7E:05C5 - 7E:05C6 Mirror of $8F, only enabled with debug mode. Used for debug functions. 7E:05CF - 7E:05D0 7E:05D1 - 7E:05D2 Debug mode. Set to 80:8004 at game start, unused in the normal rom. 7E:05D3 - 7E:05D4 Save/Load Scroll position toggle. Requires 80:8006 to be set 7E:05D5 - 7E:05D6 Saved X-Scroll position ($0911). Unused (Debug mode) 7E:05D7 - 7E:05D8 Saved Y-Scroll position ($0915). Unused (Debug mode) 7E:05E5 - 7E:05E6 Random Number 7E:05E7 - 7E:05E8 Often used to check bits for completed tasks/picked up items 7E:05E9 - 7E:05EA 16-bit multiplier A. Used by 80:82D6 7E:05EB - 7E:05EC 16-bit multiplier B. Used by 80:82D6 7E:05F1 - 7E:05F4 16-bit * 16-bit result registers. Used by routine 80:82D6 7E:05F7 - 7E:05F8 Disable automap 7E:060B - 7E:060C First byte at enemy's graphic pointer address (used during enemy detecting collisions with projectiles or Samus) 7E:060F - 7E:0610 Number of projectiles to check for by enemy collision detection? (mirror of $0CCE) 7E:0617 - 7E:0618 0 = allow Soft Reset via Start+Select+L+R. Unused (Debug mode) 7E:071D - 7E:071E How many things need to be loaded into vram? 7E:071F - 7E:0720 Some kind of pointer to a vram entry? 7E:0723 - 7E:0724 Some kind of flag for pausing the game. Unknown purpose 7E:0725 - 7E:0726 Some kind of flag for pausing the game. Unknown purpose 7E:0727 Pause screen (map or items) 7E:072D - 7E:072E Used as a timer in the pause screen for selection flashing 7E:072F - 7E:0730 Used as a timer in the pause screen for reserve tank flashing 7E:0741 - 7E:0742 Used as an animation index in the pause screen for selection flashing 7E:0743 - 7E:0744 Used as an animation index in the pause screen for reserve tank flashing 7E:0755 Which list is selected on the equipment pause screen 7E:0756 Which item of the list is selected on the equipment pause screen 7E:0757 7E:077A - 7E:077B Bit 1 controls flashing for Samus's helmet icon while loading 7E:077C - 7E:077D Pallete value for status bar. Sharable. 7E:0789 - 7E:078A Flag. Current area's map has been collected, display boss and blue rooms. (Blue rooms will not be marked on pause map until Samus leaves the area) 7E:078B - 7E:078C Which save in the current area to load from? 7E:078D - 7E:078E DDB pointer for current room transition 7E:0791 - 7E:0792(?) Current/last room transition direction. 4 = right, 5 = left, 6 = down, 7 = up 7E:0794 (?) Current/last room transition direction 7E:0797 - 7E:0798 Currently transitioning the room 7E:079F - 7E:07A0 Region Number 7E:07A1 - 7E:07A2 Room's Automap X coordinate 7E:07A3 - 7E:07A4 Room's Automap Y coordinate 7E:07A5 - 7E:07A6 Current room's width in blocks 7E:07A7 - 7E:07A8 Current room's height in blocks? 7E:07A9 - 7E:07AA Number of screens wide current room is. Used only by scrolling? (and beams) 7E:07AB - 7E:07AC I'm assuming this is number of screens tall the current room is, used by beams at the least. 7E:07B9 - 7E:07BA Area of current room, in blocks 7E:07CF - 7E:07D0 Room's enemy population pointer 7E:07D1 - 7E:07D2 Room's enemies allowed pointer (gets names and palletes, also gets room name) 7E:07E9 - 7E:07EA Pointer to routine (or unused; 0000). Used in scroll routines. 7E:07F7 - 7E:08F6 Map tiles explored for current area (1 tile = 1 bit). 7E:090F - 7E:0910 Screen's subpixel X position. 7E:0911 - 7E:0912 Screen's X position in pixels 7E:0913 - 7E:0914 Screen's subpixel Y position. 7E:0915 - 7E:0916 Screen's Y position in pixels 7E:0933 - 7E:0934 Some sort of variable limit of Screen's X scrolling 7E:0939 - 7E:093A Screen's X position in pixels, before checking legality 7E:093F - 7E:0940 Unknown. Initialized to 0 by Ceres(?) Ridley 7E:0943 Timer type/setup (00 = inactive, 01 = Ceres start, 02 = MB start, 03 = pause a moment, go to 4, 04 = timer running, wait a moment, then go to 5, 5 = timer moving, 6 = timer in place and running) 7E:0945 Timer, centiseconds (in decimal) 7E:0946 Timer, seconds (in decimal) 7E:0947 Timer, minutes (in decimal) 7E:0948 Something related to timer, moves it and starts it? 7E:0949 Timer's X position 7E:094A Timer's Y position 7E:0964 - 7E:0965 Size for VRAM update. Used by vertical scrolling routine. 7E:0966 - 7E:0967 Size for VRAM update. Sometimes used by vertical scrolling routine. 7E:0968 - 7E:0969 Offset for VRAM. Used by vertical scrolling routine. 7E:096A - 7E:096B Offset for VRAM. Sometimes used by vertical scrolling routine. 7E:096C - 7E:096D Source address for VRAM update, in bank 7E. Sometimtes used by vertical scrolling routine. 7E:096E - 7E:096F Second source address for VRAM update, in bank 7E. Sometimes used by vertical scrolling routine. 7E:0970 Unknown. Incremented before and zeroed by vertical scrolling routine. 7E:0972 - 7E:0973 Size for VRAM update. Used by elevator background loading routine (80:8D49) 7E:0974 - 7E:0975 Size for VRAM update. Sometimes used by elevator background loading (80:8D49) 7E:0976 - 7E:0977 Offset for VRAM. Used by elevator background loading (80:8D49) 7E:0978 - 7E:0979 Offset for VRAM. Sometimes used by elevator background loading (80:8D49) 7E:097A - 7E:097B Source address for VRAM, bank 7E. Sometimes used by elevator background loading (80:8D49) 7E:097C - 7E:097D Source address for VRAM, bank 7E. Sometimtes used by elevator background load (80:8D49) 7E:097E Unknown. Zeroed by elevator background loading routine (80:8D49) 7E:0980 - 7E:0981 Size for VRAM update. Used by ???? routine (80:8E2B) 7E:0982 - 7E:0983 Size for VARM update. Sometimes used by ???? routine (80:8E2B) 7E:0984 - 7E:0985 Offset for VRAM. Used by ???? routine (80:8E2B) 7E:0986 - 7E:0987 Offset for VRAM. Sometimes used by ???? routine (80:8E2B) 7E:0988 - 7E:0989 Source address for VRAM, bank 7E. Used by ???? routine (80:8E2B) 7E:098A - 7E:098B Source address for VRAM, bank 7E. Sometimes used by ???? routine (80:8E2B) 7E:098C Unknown. Zeroed by ???? routine (80:8E2B) 7E:0998 Game state (Paused, pausing, playing, etc) 7E:099E - 7E:099F Which option in the title screen menus Samus has selected 7E:09A2 - 7E:09A3 Equipped items 7E:09A4 - 7E:09A5 Collected items 7E:09A6 Equipped beams 7E:09A7 Equipped Charge beam 7E:09A8 Collected beams 7E:09A9 Collected Charge beam 7E:09AA - 7E:09AB Up See ControllerInput.txt 7E:09AC - 7E:09AD Down 7E:09AE - 7E:09AF Left 7E:09B0 - 7E:09B1 Right 7E:09B2 - 7E:09B3 Shoot 7E:09B4 - 7E:09B5 Jump 7E:09B6 - 7E:09B7 Run 7E:09B8 - 7E:09B9 Item Cancel 7E:09BA - 7E:09BB Switch Item 7E:09BC - 7E:09BD Aim Up 7E:09BE - 7E:09BF Aim Down 7E:09C0 - 7E:09C1 1 = Auto Reserve tanks, 2 = manual 7E:09C2 - 7E:09C3 Samus's health 7E:09C4 - 7E:09C5 Samus's max health 7E:09C6 - 7E:09C7 Samus's missiles 7E:09C8 - 7E:09C9 Samus's max missiles 7E:09CA - 7E:09CB Samus's super missiles 7E:09CC - 7E:09CD Samus's max super missiles 7E:09CE - 7E:09CF Samus's power bombs 7E:09D0 - 7E:09D1 Samus's max power bombs 7E:09D2 - 7E:09D3 Currently selected status bar item 7E:09D4 - 7E:09D5 Samus's max reserve tanks 7E:09D6 - 7E:09D7 Samus's reserve tanks 7E:09D8 - 7E:09D9 Samus's reserve missiles. Only used by missile pickup routine(91:DF80) 7E:09DA - 7E:09DB Game time, frames 7E:09DC - 7E:09DD Game time, seconds 7E:09DE - 7E:09DF Game time, minutes 7E:09E0 - 7E:09E1 Game time, hours 7E:0A04 - 7E:0A05 Item selected for auto-cancel 7E:0A06 - 7E:0A07 Mirror's Samus's health. Used to check to update health display 7E:0A08 - 7E:0A09 Mirror's Samus's missiles. Used to check to update missile count 7E:0A0A - 7E:0A0B Mirror's Samus's supers. Used to check to update super count 7E:0A0C - 7E:0A0D Mirror's Samus's power bombs. Used to check to update power bomb count 7E:0A0E - 7E:0A0F Mirror's 09D2. Used to check to update select display 7E:0A10 - 7E:0A11 Mirrors 0A1E. Used to check to update sound? 7E:0A14 - 7E:0A15 $8B from previous frame. Used when $0A42 = #$E6C9 7E:0A16 - 7E:0A17 $8F from previous frame. Used when $0A42 = #$E6C9 7E:0A1C - 7E:0A1D Samus's current position/state 7E:0A1E X-Direction Samus is moving? 8 = right, 4 = left 7E:0A1F Samus's movement type 7E:0A20 - 7E:0A21 Samus's position/state from the previous frame? 7E:0A22 X-Direction Samus was moving last frame? 7E:0A23 Samus's movement type last frame? 7E:0A24 - 7E:0A25 Previous *different* position/state? 7E:0A26 X-Direction during the previous *different* position/state? 7E:0A27 Movement type during the previous *different* position/state? 7E:0A28 - 7E:0A29 Potential new value for Samus's current position/state. Controller-attempted move, taking Samus's previous pose, buttons, and momentum into account in that order. 7E:0A2A - 7E:0A2B Potential new value for Samus's current position/state? Interruption via 90:DDE9; enemy damage or bomb jump. 7E:0A2C - 7E:0A2D Potential new value for Samus's current position/state. Natural following of previous pose (generally used by transitional poses). 7E:0A2E - 7E:0A2F Momentum routine index? JSR index for EC16,X, bank 91 (Cause of Yapping Maw Super Jump crash. I think. (91:8304 --> 91:EBEE --> ...) 7E:0A30 - 7E:0A31 JSR index for EC28,X, bank 91. Related to 0A2A. 01 = hurt(18AA)? and DE82,X routine(X = 0A1F) does SEC (todo), 03 = hurt(0A52, !0A56)? and DFB5,X (X = 0A1F) does SEC (todo), 04 = unused code?, 05 = possibly set by 91:E16D (unknown use), 09 and 0A = death related 7E:0A32 - 7E:0A33 JSR index for EC3E,X, bank 91. Related to 0A2C, source? 01 = hurt($0A2C = 29/2A if hurt movement, else $0A1C), 03 = animation loop transition, 02 = , 06 and 07 = death related, 08 = hurt during animation loop transition 7E:0A34 - 7E:0A35 Bitflag? 1 = Samus collided with an enemy below because of new vertical radius? 2 = collided with an enemy above same reason. Jump index for FE8A. 7E:0A36 - 7E:0A37 Bitflag? Bits set if 94:96AB SECs. Jump index for FE92. 7E:0A38 - 7E:0A39 $12 after 94:96AB, $12 was -$0A3A 7E:0A3A - 7E:0A3B Difference between old vertical radius and new vertical radius 7E:0A3C - 7E:0A3D $12 after 94:96AB, $12 was $0A3A 7E:0A3E - 7E:0A3F $12 after A0:A8F0, $12 was $0A3A and $0B02 was 2 7E:0A40 - 7E:0A41 $12 after A0:A8F0, $12 was $0A3A and $0B02 was 3 7E:0A42 - 7E:0A43 Pointer to code to run every frame, normally E695. Very high level. Handles Samus's size, controller input, elevator status, button transitions, pallete, gravity, overlapping blocks, weapon selecting/firing/cooldown, and sound management(?). 7E:0A44 - 7E:0A45 Pointer to code to run every frame, normally E725. Seems to change for different game modes (7E:0998). Very high level. Handles Samus's contact damage, movement, animation, hurt, block collision reaction, automatic transitions, pausing, and minimap 7E:0A46 - 7E:0A47 Bit 0002 enables horizontal slope detection 7E:0A48 - 7E:0A49 Something to do with Samus's pallete. 7E:0A4E - 7E:0A4F Deal damage to Samus (1/65536th) 7E:0A50 Deal damage to Samus (1) Will be adjusted by suit divisors 7E:0A52 - 7E:0A53 Something for Samus getting hurt (direction?) 7E:0A54 - 7E:0A55 Direction Samus moves when she gets hurt. 0 = left, 1 = right 7E:0A56 - 7E:0A57 Bomb jump direction? 7E:0A58 - 7E:0A59 Pointer to code to run (JMP from 90:E94B) (Once every frame, depending on 7E:0A44) Seems to affect Samus's movement type. 7E:0A5A - 7E:0A5B Pointer to code to run (JMP from 90:E097) (Once every frame, depending on 7E:0A44). Special instructions for things like when Ridley runs away from Ceres. 7E:0A60 - 7E:0A61 Pointer to code to run (JMP from 90:E90F) (Once every frame, depending on 7E:0A42) Looks like it handles controller input for Samus's poses. 7E:0A64 - 7E:0A65 Flag, Samus is currently grappled onto something 7E:0A66 - 7E:0A67 Divisor for Samus's horizontal speed(2^n). Can range from 2^0 to 2^4. Also slows down animations linearly, no limit. 7E:0A68 - 7E:0A69 Samus's super jump timer. Also used by crystal flash. 7E:0A6A - 7E:0A6B Samus's health warning is on 7E:0A6C - 7E:0A6D Pointer to momentum related table for 0A1F: momentum increase in pixels (2 bytes), momentum increase in subpixels (2 bytes), momentum max in pixels (2 bytes), momentum max in subpixels (2 bytes), momentum decrease in pixels (2 bytes), momentum decrease in subpixels (2 bytes) 7E:0A6E - 7E:0A6F Samus's contact damage controller? 7E:0A74 - 7E:0A75 Samus's pallete index or something? 7E:0A76 - 7E:0A77 Hyper Beam 7E:0A78 - 7E:0A79 Pause time, ala energy tank and x-ray scope. 7E:0A7A - 7E:0A7B Pointer to routine for use when game is controlling controller input. Not sure what the routine is for. 7E:0A7C - 7E:0A7D Timer for how long to use current game-controlling input 7E:0A7E - 7E:0A7F Pointer (Y value) to entry for game-controlling input. Entry may be a pointer to asm, if so Y will be used again after the asm as a pointer to an entry for game-controlling input. Otherwise the entries start with the frames to run (2 bytes), current input (2 bytes), then current new input (2 bytes). 7E:0A84 - 7E:0A85 Intro Samus controls. Calculated controls to use (put into 8B and 0A8C) 7E:0A86 - 7E:0A87 Intro Samus controls. Calculated controls to use (put into 8F and 0A8E) 7E:0A88 - 7E:0A89 Flag for if game is using game-input instead of player input (8000+ = game input) 7E:0A8C - 7E:0A8D Intro Samus controls. Mirror of 8B when game is controlling Samus. 7E:0A8E - 7E:0A8F Intro Samus controls. Mirror of 8F when game is controlling Samus. 7E:0A90 - 7E:0A91 Controller input (8B) from game from 2 frames ago. Used when $0A42 = #$E6C9 7E:0A92 - 7E:0A93 Controller input (8F) from game from 2 frames ago. Used when $0A42 = #$E6C9 7E:0A94 - 7E:0A95 Frames till next Samus Animation Frame 7E:0A96 - 7E:0A97 Samus Animation Frame 7E:0A9A - 7E:0A9B Animation frame skip. 8000 means don't reset 0A96? (when changing poses?) 7E:0A9E - 7E:0AA1 Cleared by jumping routine. Unknown uses. 7E:0AAE - 7E:0AAF Index value for Samus's echoes (00, 02, 04) 7E:0AAF Index value to find routine for Samus's echoes? Only when she ends a Super Jump 7E:0AB0 - 7E:0AB5 X position of echos (1-3)(pixels) 7E:0AB8 - 7E:0ABD Y position of echos (1-3)(pixels) 7E:0AC0 - 7E:0AC1 Horizontal speed for echo 1 7E:0AC2 - 7E:0AC3 Horizontal speed for echo 2 7E:0AC8 - 7E:0AC9 Which tileset for Samus's top half to save to VRAM? Written to, but virtually never used. 7E:0ACA - 7E:0ACB Which tileset for Samus's bottom half to save to VRAM? Written to, but virtually never used. 7E:0ACC - 7E:0ACD What kind of timer to use for 0A68? 2*this = JSL index for 91:D72D. 7E:0ACE - 7E:0ACF Some unknown related to running (0 if running with speed boots) 7E:0AD0 - 7E:0AD1 Some unknown related to running (1 if running with speed boots) 7E:0AD4 - 7E:0AD5 Unknown, #$8002 if Samus is making dustclouds from speedrunning 7E:0AD6 - 7E:0AD7 Unknown, #$0003 if Samus is making dustclouds from speedrunning 7E:0ADC - 7E:0ADD Footstep(?) Graphic 1 X position 7E:0ADE - 7E:0ADF Footstep Graphic 2 X position 7E:0AE4 - 7E: 0AE5 Footstep Graphic 1 Y position 7E:0AE6 - 7E:0AE7 Footstep Graphic 2 Y position 7E:0AEC - 7E:0AED Footstep graphic 1 type? 0100 = water splash, 0400 = smoke moving right, 0500 = bubbles, 0600 and 0700 = smoke moving up 7E:0AEE - 7E:0AEF Footstep graphic 2 type 7E:0AF6 - 7E:0AF7 Samus's X position in pixels 7E:0AF8 - 7E:0AF9 Samus's sub-pixel X position 7E:0AFA - 7E:0AFB Samus's Y position in pixels 7E:0AFC - 7E:0AFD Samus's sub-pixel Y position 7E:0AFE - 7E:0AFF Samus's X radius 7E:0B00 - 7E:0B01 Samus's Y radius 7E:0B02 - 7E:0B03 What kind of collision detection to use for Samus. 03 = below, 02 = above, 01 = right, 00 = left 7E:0B0A - 7E:0B0B 'Ideal' placement for $0911. 7E:0B10 - 7E:0B11 Samus's previous X position in pixels. (Used for scrolling only?) 7E:0B12 - 7E:0B13 Samus's previous sub-pixel X position. (Used for scrolling only?) 7E:0B14 - 7E:0B15 Samus's previous Y position in pixels. (Used for scrolling only?) 7E:0B16 - 7E:0B17 Samus's previous sub-pixel Y position. (Used for scrolling only?) 7E:0B18 - 7E:0B19 Frames of yellow from firing charge beam left 7E:0B24 - 7E:0B25 Temp value, used during Samus's graphics calculations. Sharable. 7E:0B26 - 7E:0B27 Temp value, used during Samus's graphics calculations. Sharable (even with the above byte). 7E:0B2C - 7E:0B2D Samus's vertical speed (1/65536ths pixel/frame). Unsigned 7E:0B2E - 7E:0B2F Samus's vertical speed (pixels/frame). Unsigned 7E:0B32 - 7E:0B33 Vertical acceleration in sub-pixels. (Vertical rate of acceleration for super jumps) 7E:0B34 - 7E:0B35 Vertical acceleration in pixels. Not recommended for use. (Vertical rate of acceleration for super jumps) 7E:0B36 - 7E:0B37 01 = Samus is moving up 7E:0B3C - 7E:0B3D Flag to check Samus's speed counter. Reason why temporary blue suit cannot become permanent. 7E:0B3E - 7E:0B3F Upper byte is Samus's 'speed' counter. Lower byte is used for some weird animation counter thing for incrementing upper byte. 7E:0B40 - 7E:0B41 Flag, Samus's echoes sound is playing. 7E:0B42 - 7E:0B43 Samus's horizontal speed (pixels/frame). Unsigned 7E:0B44 - 7E:0B45 Samus's horizontal speed (1/65536ths pixel/frame). Unsigned 7E:0B46 - 7E:0B47 Samus's horizontal 'momentum' (pixels/frame). Unsigned 7E:0B48 - 7E:0B49 Samus's horizontal 'momentum' (1/65536ths pixel/frame). Unsigned 7E:0B4A - 7E:0B4B Something to do with momentum and speed. Cause of mockball. (0 = increasing momentum, !0(always 1?) = decreasing momentum) 7E:0B4C 1/256 Multiplier for momentum subtraction (0 = normal momentum subtraction) 7E:0B56 - 7E:0B57 Moves Samus this distance horizontally, in subpixels. 7E:0B58 - 7E:0B59 Moves Samus this distance horizontally, in pixels. 7E:0B5A - 7E:0B5B Moves Samus this distance vertically, in subpixels. 7E:0B5C - 7E:0B5D Moves Samus this distance vertically, in pixels. 7E:0B5E - 7E:0B5F Samus is currently firing in this direction (will fire beams even if you aren't pressing fire) 7E:0B62 - 7E:0B63 Pallete index for Samus's charge. 7E:0B64 - 7E:0B6D Projectile X position in pixels 7E:0B6E - 7E:0B77 Bomb X position in pixels 7E:0B78 - 7E:0B81 Projectile Y position in pixels 7E:0B82 - 7E:0B8B Bomb Y position in pixels 7E:0B8C - 7E:0B95 Some kind of array for projectiles? 7E:0BB4 - 7E:0BBD Projectile X radius (radius or width?). Pixels 7E:0BC8 - 7E:0BD1 Projectile Y radius (radius or height?). Pixels 7E:0BDC - 7E:0BE5 Projectile X speed (1/256th pixel/frame?). Unsigned 7E:0BE6 - 7E:0BEF Bomb X speed. Unsigned 7E:0BF0 - 7E:0BF9 Projectile Y speed. Unsigned. 7E:0BFA - 7E:0C03 Bomb Y speed. Unsigned 7E:0C04 - 7E:0C0D Accelerating direction. Starting at 0: U, UR, R, DR, D, D, DL, L, UL, U. A - F = glitchy, 10+ = kill beam, including plasma (hit an enemy) 7E:0C18 - 7E:0C2B Projectile type array. 8000+ = live(?), X0YY = beam, YY = beamtype, X1XX = missile, X2XX = super missile, X3XX = power bomb, X5XX = bomb. First 5 slots used for beams/missiles, last 5 for bombs 7E:0C2C - 7E:0C35 Projectile damage array. 7E:0C36 - 7E:0C3F Bomb damage array 7E:0C40 - 7E:0C53 Projectile PLM-like instruction array? 7E:0C54 - 7E:0C67 Projectile PLM-like delay array? 7E:0C68 - 7E:0C69 Pointer to code for projectile #1? 7E:0C6A - 7E:0C71 Pointer to code for projectiles #2-5? 7E:0C7C - 7E:0C85 Links super missile halves together (top byte is a flag, linked if set. Bottom byte tells linked index) 7E:0C86 - 7E:0C8F Bomb timer array 7E:0C90 - 7E:0C9B Timer for projectile trails 7E:0CCC - 7E:0CCD Cooldown counter 7E:0CCE - 7E:0CCF Projectile counter? 7E:0CD0 - 7E:0CD1 Current charge for Samus's beams 7E:0CD2 - 7E:0CD3 Bomb counter 7E:0CD6 - 7E:0CD7 Charge beam animation frame (main spark on cannon) 7E:0CD8 - 7E:0CD9 Charge beam animation frame (3 outer sparks) 7E:0CDA - 7E:0CDB Charge beam animation frame (other 3 outer sparks) 7E:0CDC - 7E:0CDD Charge beam animation delay (main spark on cannon) 7E:0CDE - 7E:0CDF Charge beam animation delay (3 outer sparks) 7E:0CE0 - 7E:0CE1 Charge beam animation delay (other 3 outer sparks) 7E:0CE2 - 7E:0CE3 X position of powerbomb explosion 7E:0CE4 - 7E:0CE5 Y position of powerbomb explosion 7E:0CEE - 7E:0CEF Special powerbomb timer 7E:0CF4 - 7E:0CF5 Unknown. Cleared when starting grapple beam 7E:0CF6 - 7E:0CF7 Unknown, set to A when grapple is fired 7E:0CF8 - 7E:0CF9 Force slow/stupid-scrolling? Screen scrolls at 3 pixels per frame. Enabled during grappling. 7E:0CFA - 7E:0CFB Something for grapple beam graphics 7E:0CFC - 7E:0CFD Something for grapple beam graphics 7E:0CFE - 7E:0CFF Unknown. Cleared when starting grapple beam 7E:0D00 - 7E:0D01 Unknown. Set to C when starting grapple beam 7E:0D02 - 7E:0D03 X offset of grapple point relative to Samus 7E:0D04 - 7E:0D05 Y offset of grapple point relative to Samus 7E:0D06 - 7E:0D07 Unknown. Cleared when starting grapple beam 7E:0D08 - 7E:0D09 X position of...? (Grapple point?) 7E:0D0A - 7E:0D0B Unknown. Cleared when starting grapple beam 7E:0D0C - 7E:0D0D Y position of...? (Grapple point?) 7E:0D10 - 7E:0D11 Unknown. Cleared when starting grapple beam 7E:0D12 - 7E:0D13 Unknown. Cleared when starting grapple beam 7E:0D14 - 7E:0D15 Unknown. Cleared when starting grapple beam 7E:0D16 - 7E:0D17 X position of...? (End of grapple beam?) 7E:0D18 - 7E:0D19 Y position of...? (End of grapple beam?) 7E:0D1A - 7E:0D1B X position of...? (Start of grapple beam?) 7E:0D1C - 7E:0D1D Y position of...? (Start of grapple beam?) 7E:0D1E - 7E:0D1F Unknown. Cleared when starting grapple beam 7E:0D20 - 7E:0D21 Unknown. Cleared when starting grapple beam 7E:0D22 - 7E:0D23 X Speed of grapple point 7E:0D24 - 7E:0D25 Y Speed of grapple point 7E:0D26 - 7E:0D27 Unknown. Cleared when starting grapple beam 7E:0D28 - 7E:0D29 Unknown. Cleared when starting grapple beam 7E:0D2A - 7E:0D2B Unknown. Cleared when starting grapple beam 7E:0D2C - 7E:0D2D Unknown. Cleared when starting grapple beam 7E:0D2E - 7E:0D2F Unknown. Cleared when starting grapple beam 7E:0D30 - 7E:0D31 Unknown. Cleared when starting grapple beam 7E:0D32 - 7E:0D33 Pointer to code for grapple beam. Usually C4F0 (start beam, not active), C703 is firing beam (not hitting anything) 7E:0D34 - 7E:0D35 Direction to fire (grapple beam specific?) 7E:0D36 - 7E:0D37 Unknown. Cleared when starting grapple beam 7E:0D38 - 7E:0D39 Unknown. Cleared when starting grapple beam 7E:0D3A - 7E:0D3B Unknown. Set to 2 when starting grapple beam 7E:0D3C - 7E:0D3D Unknown. Cleared when starting grapple beam 7E:0D3E - 7E:0D3F Unknown. Set to 5 when starting grapple beam 7E:0D40 - 7E:0D41 Unknown. Set to 8200 when starting grapple beam 7E:0D82 - 7E:0D83 Unknown. Cleared when starting grapple beam 7E:0D84 - 7E:0D85 Unknown. Cleared when starting grapple beam 7E:0D86 - 7E:0D87 Unknown. Cleared when starting grapple beam 7E:0D88 - 7E:0D89 Unknown. Cleared when starting grapple beam 7E:0D8A - 7E:0D8B Unknown. Cleared when starting grapple beam 7E:0D8C - 7E:0D8D Unknown. Cleared when starting grapple beam 7E:0D8E - 7E:0D8F Unknown. Cleared when starting grapple beam 7E:0D90 - 7E:0D91 Unknown. Cleared when starting grapple beam 7E:0DA2 - 7E:0DA3 Absolute distance Samus moved last frame horizontally + 1, pixels. 7E:0DA4 - 7E:0DA5 Absolute distance Samus moved last frame horizontally, subpixels. 7E:0DA6 - 7E:0DA7 Absolute distance Samus moved last frame vertically + 1, pixels. 7E:0DA8 - 7E:0DA9 Absolute distance Samus moved last frame vertically, subpixels. 7E:0DAA - 7E:0DAB How far Samus moved left, in pixels 7E:0DAC - 7E:0DAD How far Samus moved left, in subpixels 7E:0DAE - 7E:0DAF How far Samus moved right, in pixels 7E:0DB0 - 7E:0DB1 How far Samus moved right, in subpixels 7E:0DB2 - 7E:0DB3 How far Samus moved up, in pixels 7E:0DB4 - 7E:0DB5 How far Samus moved up, in subpixels 7E:0DB6 - 7E:0DB7 How far Samus moved down, in pixels 7E:0DB8 - 7E:0DB9 How far Samus moved down, in subpixels 7E:0DBA - 7E:0DBB Flag: Samus's position was adjusted by a slope 7E:0DBC - 7E:0DBD Mirror of distance to move Samus horizontally, in pixels? 7E:0DBE - 7E:0DBF Mirror of distance to move Samus horizontally, in subpixels? 7E:0DC0 - 7E:0DC1 Unknown. Cleared when starting grapple beam 7E:0DC2 - 7E:0DC3 Mirror of 0CD0? 7E:0DC4 - 7E:0DC5 Current block index (nth block of the room) 7E:0DC6 - 7E:0DC7 Unknown, something to do with collisions (direction?) 1 = ground/jumping, 2 = moving down, 4 = hit head, 5 = walljump. Top byte is related but looks like it's used seperately 7E:0DCE - 7E:0DCF Set if Samus collides with a solid enemy(Only read as a flag, written as a direction?) 7E:0DD0 - 7E:0DD1 0000 = Samus did not collide with anything. 0001 = Collision with block. FFFF = Collision with enemy? 7E:0DD4 - 7E:0DD5 Current block's X position? Used for calculating 0DC4. Used as Samus's lower boundary in 94:87F4. Used as Slope BTS * 4 in horizontal slope collision routine. 7E:0DD6 - 7E:0DD7 Slope BTS * #$10, according to 94:87F4. Used as Slope X/Y flip in horizontal slope collision routine. 7E:0DDE - 7E:0DDF Current projectile index? 7E:0DE0 - 7E:0DE1 Only debug use, I think. 07 = uber invincibility. 7E:0DE2 - 7E:0DE3 Which screen Samus is on during loading 7E:0DEC - 7E:0DED Vertical acceleration during super jumps (sub-pixels). Used as Draygon-escape button counter 7E:0DEE - 7E:0DEF Vertical acceleration during super jumps (pixels) 7E:0DF4 - 7E:0DF5 Debug only. Some sort of flag for messing with graphics, only used in 82:8AB0 7E:0DF8 - 7E:0DF9 Unknown. STZ at start, read when Samus changes to a running pose, otherwise unused. 7E:0DFA - 7E:0DFB Unknown. Something to do with beams or sound? 7E:0DFE - 7E:0DFF Controller input (8B) from game from previous frame. (any other use?) 7E:0E00 - 7E:0E01 Controller input (8F) from game from previous frame. (any other use?) 7E:0E02 - 7E:0E03 Samus's lower boundary's Y position 7E:0E12 - 7E:0E13 Only enabled with debug. Forgot it's exact use, skips certain routines. 7E:0E18 - 7E:0E19 Used by elevators. Direction to move in (01 = leaving the room, 02 = entering) 7E:0E1A - 7E:0E1B Triggers more energy drops if Samus is low on health. On if drop at health below 30, off if health at least 50. 7E:0E1C - 7E:0E1D If #$FFFF, ignored. Else, used as a pointer to an enemy for setting 0FA2,X to #$0040. 7E:0E2E - 7E:0E2F Flag for when enemies are hit; display hit flash if damaged. 7E:0E32 - 7E:0E33 Position of a boundary. Variable use, Samus or enemy. Used as real damage multiplier (AND #$007F) for enemy damage (Max #$000F for charge beams). Also used in some calculations (absolute, sin/cos) 'Sharable' RAM for immediate uses. 7E:0E36 - 7E:0E37 Whole number value from sin/cos multiplier function 7E:0E38 - 7E:0E39 Fractional value from sin/cos multiplier function 7E:0E40 - 7E:0E41 Damage multiplier for enemies 7E:0E44 - 7E:0E45 Not sure exactly. Used to determine enemy hurt flashing frames 7E:0E4C - 7E:0E4D Index value of the last enemy in the room + 1((n+1)*40). If 0, disable enemy processing (powerbombs still kill) 7E:0E4E - 7E:0E4F Number of enemies in the room 7E:0E52 - 7E:0E53 Byte after FFFF in enemy population. Unknown use. 7E:0E54 - 7E:0E55 Current Enemy Index 7E:0E58 - 7E:0E59 Pointer to start of current enemy data ($0F78,X) 7E:0F78 - 7E:1777 Enemy 1-32($20) data. See Enemy_Mem.txt 7E:1778 - 7E:1779 Brightness loop counter for firefly rooms. 6 frames per index increment. 7E:177A - 7E:177B Brightness loop index for firefly rooms. Indexes 88:B058,X 7E:177E - 7E:177F Brightness base index for firefly rooms. Indexes 88:B070,X. Intended as increments of 2. 7E:1784 - 7E:1787 Used as a long pointer to enemy AI, ran when the enemy is placed in the room. Top byte is $0FA7,X, probably unused. 7E:179C - 7E:179D Special fight number used for bosses. 7E:17A4 - 7E:17A5 'Stack' pointer for 7E:17AC 7E:17A6 - 7E:17A7 'Stack' pointer for 7E:17EC 7E:17A8 - 7E:17A9 Current index for 17AC,X 7E:17AA - 7E:17AB Current index for 17EC,X 7E:17AC - 7E:17EB List of enemy indexes of enemies that are to be run this frame. Ends at a #$FFFF 7E:17EC - 7E:182B List of enemy indexes of enemies that might interact with Samus. Ends at a #$FFFF 7E:182C - 7E:1833 Table for an enemy index value (this table indexed by 7E:0B02). Unknown use. 7E:1834 - 7E:183B Table for distance between Samus and above enemy? Same index. 7E:183C - 7E:183D Process all enemies regardless of on-screen or not. 7E:183E - 7E:183F Type of screen-shaking? 7E:1840 - 7E:1841 Duration of screen-shaking? 7E:184A - 7E:184B Mirror of Samus's X position (pixels) 7E:184C - 7E:184D Mirror of Samus's X position (subpixels) 7E:184E - 7E:184F Mirror of enemy's X position (pixels) 7E:1850 - 7E:1851 Mirror of enemy's X position (subpixels) 7E:1852 - 7E:1853 Mirror of Samus's target Y(?) position (pixels) 7E:1854 - 7E:1855 Mirror of Samus's target Y(?) position (subpixels) 7E:1856 - 7E:1857 Mirror of Samus's Y position (pixels) 7E:1858 - 7E:1859 Mirror of Samus's Y position (subpixels) 7E:185A - 7E:185B Unknown. Type of collision between Samus and solid enemy? 7E:185C - 7E:185D Debug mode routine index. Used for JSR ($981F,X) in bank B4. #$00 - #$10, above will crash. Upper byte ignored. 7E:185E - 7E:185F Debug mode... for skipping enemy processing, I think. Still die to PBs. 7E:186E - 7E:186F Enemy graphic pointer + 2 when detecting collisions between enemies and projectiles or Samus 7E:1870 - 7E:1871 Enemy left collision border for enemy/projectile collisions 7E:1872 - 7E:1873 Enemy bottom collision border for enemy/projectile collisions 7E:1874 - 7E:1875 Enemy right collision border for enemy/projectile collisions 7E:1876 - 7E:1877 Enemy top collision border for enemy/projectile collisions 7E:1878 - 7E:1879 Enemy; pointer at (graphic pointer + 8) + 2 7E:187A - 7E:187B X position of current enemy graphic during enemy collision detection with projectiles or Samus. Also used as a mirror of projectile damage if they do collide, then later total damage. 7E:187C - 7E:187D Y position of current enemy graphic during enemy collision detection with projectiles or Samus. 7E:187E - 7E:187F Right border of Samus when enemy is checking for collisions with Samus 7E:1880 - 7E:1881 Left border of Samus when enemy is checking for collisions with Samus 7E:1882 - 7E:1883 Bottom border of Samus when enemy is checking for collisions with Samus 7E:1884 - 7E:1885 Top border of Samus when enemy is checking for collisions with Samus 7E:189A - 7E:189B Samus's target X position for next frame, in pixels 7E:189C - 7E:189D Samus's target X position for next frame, in subpixels 7E:189E - 7E:189F Samus's target Y position for next frame, in pixels 7E:18A0 - 7E:18A1 Samus's target Y position for next frame, in subpixels 7E:18A2 - 7E:18A3 Mirror of Samus's X radius (7E:0AFE) 7E:18A4 - 7E:18A5 Mirror of Samus's Y radius (7E:0B00) 7E:18A6 - 7E:18A7 Various use collision detection index (Samus/Enemy is an enemy index, Enemy/Projectile is a projectile index) 7E:18A8 - 7E:18A9 Samus's invincibility timer when hurt 7E:18AA - 7E:18AB Samus's hurt-timer (pushed back, unable to move) 7E:195E - 7E:195F Actual FX3 height 7E:1962 - 7E:1963 Something to do with FX3 height. Referred to if 195E is negative. Used by lava? 7E:196C - 7E:196D FX3 something. Need to look into. (Causes rumbling) 7E:196E - 7E:196F JSR index for 8067,X, in bank 90. 7E:1972 - 7E:1973 FX3 height variance? 7E:1978 - 7E:1979 FX3 height (average?) (measured from top of room down) 7E:197A - 7E:197B FX3 height to go to 7E:197C - 7E:197D FX3 height adjustment speed 7E:197E - 7E:197F FX3 something. Need to look into. (I'm guessing movement type, 4 means doesn't affect Samus) 7E:1980 - 7E:1981 FX3... frames to wait till beginning movement? (0 means 10000) 7E:1995 - 7E:1996 Unknown, something for projectiles? 7E:1997 - 7E:19BA Table for something... header for projectiles? ($12 / 18 max) 7E:19BB - 7E:19DE Table for something for enemy/room projectiles? 7E:19DF - 7E:1A02 Table for something for enemy/room projectiles? 7E:1A03 - 7E:1A26 Table for something for enemy/room projectiles? 7E:1A27 - 7E:1A4A Table for something for enemy/room projectiles? 7E:1A4B - 7E:1A6E X position of projectile, in pixels 7E:1A6F - 7E:1A92 X subpixel position? (guessing) 7E:1A93 - 7E:1AB6 Y position of projectile, in pixels 7E:1AB7 - 7E:1ADA Y subpixel position? (guessing) 7E:1ADB - 7E:1AFE Some sort of speed value? 7E:1AFF - 7E:1B22 Table for something for enemy/room projectiles? (Custom?) 7E:1B23 - 7E:1B46 Table for something for enemy/room projectiles? (Used by item drops as countdown to disappear) 7E:1B47 - 7E:1B6A Table for something for enemy/room projectiles? (Instruction address?) 7E:1B6B - 7E:1B8E Table for something for enemy/room projectiles? (7E:1B7D - MB's intro hit counter) 7E:1B8F - 7E:1BB2 Table for something for enemy/room projectiles? (Frames Delay?) 7E:1BB3 - 7E:1BD6 Table for something for enemy/room projectiles? 7E:1BD7 - 7E:1BFA Table for something for enemy/room projectiles? 7E:1BFB - 7E:1C1E Table for something for enemy/room projectiles? 7E:1C1F - 7E:1C20 Current message box type? 7E:1C27 - 7E:1C28 Current PLM's Index. See PLM_Details.txt for PLM data 7E:1C29 - 7E:1C2A Calculated PLM's X position 7E:1C2B - 7E:1C2C Calculated PLM's Y position 7E:1C37 - 7E:1C86 PLM header table 7E:1C87 - 7E:1CD6 PLM's location in the room (nth block * 2) 7E:1CD7 - 7E:1D26 Pre-PLM instruction 7E:1D27 - 7E:1D76 Next PLM instruction 7E:1D77 - 7E:1DC6 Variable use PLM value 7E:1DC7 - 7E:1E16 PLM Room argument 7E:1E17 - 7E:1E66 Variable use PLM value 7E:1E67 - 7E:1E68 Used as draw instruction to custom-draw PLM blocks. Usually #$0001 (1 block) 7E:1E69 - 7E:1E6A Used as draw instruction to custom-draw PLM blocks. Custom block value 7E:1E6B - 7E:1E6C Used as draw instruction to custom-draw PLM blocks. Usually #$0000, end value. 7E:1E71 - 7E:1E72 Flag, set Samus is in quicksand. Forces Samus into a ground position, fakes collision with ground. 7E:1E73 - 7E:1E74 Which part of Samus is inside the block? Bottom(0), middle(1), top(2) 7E:1E77 - 7E:1E78 BTS of current block (used by sloped blocks, at least) 7E:1E79 - 7E:1E7A Flag. Minus = Whatevers present (below structure). Only known use is making parts of the background glow. (e.g. Brinstar blue plants or lightning at Samus's ship. Not dark firefly rooms, or waving backgrounds like in Norfair). Very rarely used. 7E:1E7B - 7E:1E7C Current X for 7E:1E7D,X 7E:1E7D - 7E:1E8C 7E:1E8D - 7E:1E9C 7E:1E9D - 7E:1EAC 7E:1EAD - 7E:1EBC Pointer to code. Like pre-PLM code, I guess. 7E:1EBD - 7E:1ECC Pointer to current PLM-like instruction. If positive, store in delay and put 1E8D,X into X. If the argument is also positive, put it into 7E:C000,X and INC X and Y twice. Repeat until the next argument is negative, put a value onto the stack to loop at RTS, and JMP to the argument. Similar to the normal instruction loop, except Y is not incremented, and points to 2 bytes *before* the current instruction, not just after it. 7E:1ECD - 7E:1EDC Delay counter. 7E:1EF1 - 7E:1EF2 Flag, disables misc. animations if positive (spikes, FX1) 7E:1EF3 - 7E:1EF4 Index value for following table 7E:1EF5 - 7E:1F00 Unknown. Header? 7E:1F0D - 7E:1F18 Pointer to current instruction to run 7E:1F19 - 7E:1F24 Delay counter for something? 7E:1F25 - 7E:1F30 Graphic pointer 7E:1F31 - 7E:1F3C Graphic size 7E:1F3D - 7E:1F48 VRAM address 7E:1F49 - 7E:1F4A Specific instruction being run by above stuff 7E:1F51 - 7E:1F52 Used during intro scenes and pic of baby Metroid at Ceres 7E:1FC0 - 7E:1FFF Stack (Lowest observed ATM is 1FC5) 7E:2002 - 7E:2003 Unknown. Initialized to 1 by Ceres Ridley 7E:2012 - 7E:2013 Unknown. Initialized to F0 by Ridley 7E:2014 - 7E:2015 Unknown. Initialized to 1 by Ridley 7E:2016 - 7E:2017 Unknown. Initialized to 3FF0 by Ridley 7E:2018 - 7E:2019 Unknown. Initialized to 4040 by Ridley 7E:201A - 7E:201B Unknown. Initialized to FFFF by Ridley 7E:201C - 7E:201D Unknown. Initialized to FFFF by Ridley 7E:201E - 7E:201F Unknown. Initialized to 10 by Ridley 7E:2020 - 7E:2021 Unknown. Initialized to 0 by Ridley 7E:2022 - 7E:2023 Unknown. Initialized to 11 by Ridley 7E:2024 - 7E:202F Unknown. Initialized by Ridley 7E:2034 - 7E:2035 Unknown. Initialized to 0 by Ridley 7E:2036 - 7E:2037 Unknown. Initialized to 11 by Ridley 7E:2038 - 7E:2043 Unknown. Initialized by Ridley 7E:2048 - 7E:2049 Unknown. Initialized to 0 by Ridley 7E:204A - 7E:204B Unknown. Initialized to 11 by Ridley 7E:204C - 7E:2057 Unknown. Initialized by Ridley 7E:205C - 7E:205D Unknown. Initialized to 0 by Ridley 7E:205E - 7E:205F Unknown. Initialized to 11 by Ridley 7E:2060 - 7E:206B Unknown. Initialized by Ridley 7E:2070 - 7E:2071 Unknown. Initialized to 0 by Ridley 7E:2072 - 7E:2073 Unknown. Initialized to 11 by Ridley 7E:2074 - 7E:207F Unknown. Initialized by Ridley 7E:2084 - 7E:2085 Unknown. Initialized to 0 by Ridley 7E:2086 - 7E:2087 Unknown. Initialized to 11 by Ridley 7E:2088 - 7E:2093 Unknown. Initialized by Ridley 7E:2098 - 7E:2099 Unknown. Initialized to 0 by Ridley 7E:209A - 7E:209B Unknown. Initialized to 11 by Ridley 7E:209C - 7E:20A7 Unknown. Initialized by Ridley 7E:3800 - 7E:3EFF Tilemap for part of layer 3? Cleared during message boxes. 7E:7000?- 7E:77FF? Table of some sort for enemies. Related to graphics, I think. 7E:7006,X is where in vram the tiles are (I think) 7E:7008,X is which color pallete it uses. 7E:701E,X mirrors 7E:0F78, X 7E:7020,X mirrors 7E:0F7A, X 7E:7022,X mirrors 7E:0F7E, X 7E:7024,X mirrors 7E:0F92, X (Used by Chozo statues for orientation?) 7E:7026,X mirrors 7E:0F86, X 7E:7028,X mirrors 7E:0F88, X 7E:702A,X mirrors 7E:0FB4, X 7E:702C,X mirrors 7E:0FB6, X 7E:702E,X-7E:7038,X is the enemy's name, if it has one. Else #$0000 7E:7802 - 7E:7803 Unknown, initialized to 0 by Ridley 7E:7804 - 7E:7805 Unknown, initialized to 1 by Norfair Ridley, 0 by Ceres Ridley 7E:7806 - 7E:7807 Unknown, initialized to BF31 by Ceres Ridley 7E:7808 - 7E:7809 Unknown, initialized to 1 by Ceres Ridley 7E:780E - 7E:780F Unknown, initialized to 5 by Ceres Ridley 7E:7818 - 7E:7819 Pallete for Ridley? 7E:781A - 7E:781B Unknown, initialized to 0 by Ridley 7E:7820 - 7E:7821 Unknown. Initialized to 2 by Norfair Ridley, 0 by Ceres Ridley 7E:7824 General use 'speed' byte set aside for Ridley? 7E:7838 - 7E:7839 Unknown. Initialized to 78 by Norfair Ridley, F by Ceres Ridley 7E:8000 - 7E:8001 Used for Draygon's direction when grabbing Samus; 0 = left, 1 = right. Initialized to 40 by Norfair Ridley, FFE0 by Ceres Ridley 7E:8002 - 7E:8003 Initialized to 1A0 by Norfair Ridley, B0 by Ceres Ridley 7E:8004 - 7E:8005 Initialized to 40 by Norfair Ridley, 28 by Ceres Ridley 7E:8006 - 7E:8007 Initialized to E0 by both Ridleys 7E:800A Ridley's final attack swoop counter? 7E:8800 - 7E:8801 Unknown, initialized to BE9C by Ceres Ridley 7E:8802 - 7E:8803 Unused byte for topleft turret in Draygon's room 7E:8804 - 7E:8805 Death byte for bottomleft turret in Draygon's room (1 = no more turret fire) 7E:8806 - 7E:8807 Death byte for topright turret in Draygon's room (1 = no more turret fire) 7E:8808 - 7E:8809 Death byte for bottomright turret in Draygon's room (1 = no more turret fire) 7E:A000 - 7E:BFFF Stuff for tiles (A000 to A7FF is CRE). 8 bytes per tile, unknown format. TODO 7E:C180 - 7E:C19F Samus's pallete 7E:C0E2 - 7E:C0FF Background color pallete? 7E:C200 - 7E:C??? Palletes? Set by A9:D2F6 7E:C2E2 - 7E:C2FF Unknown, initialized to 0 by Norfair Ridley 7E:C320 - 7E:C35F Unknown (Enemy 1 pallete?) 7E:C340 - 7E:C37F Unknown, initialized differently by both Ridleys 7E:C3E2 - 7E:C3FF Unknown, initialized to 0 by both Ridleys 7E:C608 - 7E:C6C7 Status bar tilemap 7E:C948 - 7E:C??? Copied to VRAM by vertical scroll routine(top half of new tilemap?). Size is 7E:0964 7E:C98C - 7E:C??? copied to VRAM by vertical scroll routine(bottom half of new tilemap?). Size is 7E:0964 7E:C9D0 - 7E:C??? Copied to VRAM. Size is 7E:0972. Used by elevator background loading (80:8D49) 7E:CA10 - 7E:C??? Copied to VRAM. Size is 7E:0972. Used by elevator background loading (80:8D49) 7E:CA50 - 7E:C??? Copied to VRAM. Size is 7E:0980. Used by ???? routine (80:8E2B) 7E:CA94 - 7E:C??? Copied to VRAM. Size is 7E:0980. Used by ???? routine (80:8E2B) 7E:CD20 - 7E:CD51 Scrollmap for current room 7E:CD52 - 7E:CE51 Explored map for Area 0 (Crateria) 7E:CE52 - 7E:D551 Explored map for Areas 1-7 7E:D552 - 7E:D558 Name of Current Room 7E:D559 - 7E:D??? Name of allowed enemies in the room. C bytes alloted for each enemy. 7E:D820 - 7E:D86F Event bit array. 30-6F are never used 7E:D870 - 7E:D8AF Item bit array. 90-AF are never used 7E:D8B0 - 7E:D8EF Opened door bit array. D0-EF are never used 7E:D908 - 7E:D90F Map Station byte array 7E:DE1C - 7E:DE6B PLM frame delay 7E:DE6C - 7E:DEBB PLM Block Edit pointer 7E:DEBC - 7E:DF0B PLM Goto Instruction Pointer 7E:DF0C - 7E:DF5B Unknown PLM value. Initialized to #$0000 7E:F378 - 7E:F379 Unknown, set to #$0002 by processing enemies before JSRing to A0:C26A, set to #$0003 by enemies when detecting collisions with projectiles, set to #$0006 by enemies when detecting Samus 7E:F380 - 7E:F49F Enemy stuff 'cleared' every time on room load 7F:0002 - 7F:6401 Room Tilemap 7F:6402 - 7F:9601 Room BTS map 7F:9602 - 7F:FA01 Room Background Tilemap 7F:FA02 - 7F:FFFF Unused VRAM during main gameplay $0000 - $47FF Area tiles (4 bit) $4800 - $4FFF Layer 2 tilemap? Sometimes seems to be unused $5000 - $7BFF CRE tiles (4 bit) $7C00 - $7FFF Misc. tiles? (4 bit, Contains beam item tiles) $8000 - $8FFF Layer 3 tiles. (2 bit. Lotta available space scattered around.) $9000 - $9FFF Sometimes used as Layer 2 tilemap (like with Phantoon). Usually unused? $A000 - $AFFF Layer 1 tilemap $B000 - $B03F Unknown (Probably works as top tiles in Layer 3 Status Bar tilemap, but never seen written to) $B040 - $B0FF Layer 3 Status Bar tilemap $B100 - $B7FF Unknown (unused?) $B800 - $BFFF Layer 3 FX tilemap? $C000 - $C43F? Samus graphics (4 bit, pal 192) $C440 - $C49F Unknown (unused?) $C4A0 - $C4BF Misc. sprite graphics (Samus's air bubbles?) (4 bit, pal 208) $C4C0 - $C4FF Power Bomb (4 bit, pal 208) $C500 - $C57F M1 Ridley's Fireballs? (4 bit, pal 208) $C580 - $C5FF Water from Samus's footsteps (4 bit, pal 208) $C600 - $C6FF Beam graphics (4 bit, pal 224) $C700 - $C77F Beam trail graphics (4 bit, pal 224) $C780 - $C7FF Small energy pickup (4 bit, pal 208. 1st and 4th look unused) $C800 - $C81F Air bubbles (4 bit, pal 208) $C81F - $C85F Small energy pickup (4 bit, pal 208) $C860 - $C87F Air bubbles (4 bit, pal 208) $C880 - $C8FF Large energy pickup (4 bit, pal 208, last looks unused) $C900 - $C97F Dust clouds from footsteps(or smoke from missiles?) (4 bit, pal 208) $C980 - $C9FF Bomb graphics (4 bit, pal 208) $CA00 - $CA7F Explosions, small (4 bit) $CA80 - $CB5F Missile (Tiles: 2 horizontal, 3 diagonal, 2 vertical. 4 bit, pal 208) $CB60 - $CBBF Unknown (small dots) $CBC0 - $CBDF Unknown, looks like (and might be) splash from water $CBE0 - $CC7F Explosions, medium - small. (4 bit, pal 208) $CC80 - $CD5F Super missile (Tiles: 2 horizontal, 3 diagonal, 2 vertical. 4 bit, pal 208) $CD60 - $CDFF Enemy projectiles? (not sure if all used. 4 bit, pal 208) $CE00 - $D9FF If not otherwise stated, explosions of various colors, shapes, and sizes (4 bit, pal 208) $CF60 - $CF7F Power bomb (just 1 tile. 4 bit, pal 208) $D740 - $D75F Top half of water burst (4 bit, pal 208) $D7C0 - $D7FF Top (identical) half of gate (4 bit, pal 208) $D8E0 - $D8FF Air bubbles for Samus? (4 bit) $D940 - $D95F Bottom half of water burst (4 bit, pal 208) $D9C0 - $D9FF Bottom (identical) half of gate (4 bit, pal 208) $DA00 - $FFFF Enemy graphics and enemy projectiles (4 bit, variable palletes) Palletes: (note: This part is currently very unthorough) 0 (16 colors): Much of CRE. Grey doors 1 (16 colors): Also much of CRE, but with different lighting. Green doors 2 (16 colors): Red doors. That looks like it. 3 (16 colors): Blue doors. Might be it. 4 (16 colors): Don't see anything that uses this. Might only be certain tiles in certain tilesets, or enemies 5 (16 colors): A couple tiles. 6 (16 colors): Don't see anything that uses this. Might only be certain tiles in certain tilesets, or enemies 7 (16 colors): A couple tiles. 8 (16 colors): Enemy hurt pallete? 9 (16 colors): I think this is for enemies. A (16 colors): Ditto B (16 colors): Ditto C (16 colors): Samus D (16 colors): Most common sprites (item drops, smoke, explosions, bombs, power bombs, missiles, gates(wall part), water splashes) E (16 colors): Unknown F (16 colors): Unknown 2 (4 colors): Much text, explored areas 3 (4 colors): Much text, unexplored areas 4 (4 colors): Selected items 5 (4 colors): Unselected items, possibly some water animations