This is a RAM Map for Mega Man X.
AddressByte lengthDescription
$7E:000016 bytesScratch RAM
$7E:003B1 byteIntro sequence timer for the title screen. Counts down from #$FF at the title screen. When it reaches 0, there is a fade out and the intro sequence starts again. The counter is reset to #$EA when a new option is selected.
$7E:003C1 byteThe currently selected option on the title screen. #$00 = Start Game, #$01 = Password Screen, #$02 = Options Menu.
$7E:00A71 byteController data 1, current frame. Format: axlr-
a = A; x = X; l = L; r = R, - = unused.
$7E:00A81 byteController data 2, current frame. Format: byetUDLR
b = B; y = Y; e = Select; t = Start; U = Up; D = Down; L = Left; R = Right.
$7E:00A91 byteController data 1, previous frame. Format: axlr-
a = A; x = X; l = L; r = R.
$7E:00AA1 byteController data 2, previous frame. Format: byetUDLR
b = B; y = Y; e = Select; t = Start; U = Up; D = Down; L = Left; R = Right.
$7E:00AB1 byteController data 1, button press (current frame and not previous frame). Format: axlr-
a = A; x = X; l = L; r = R.
$7E:00AC1 byteController data 2, button press (current frame and not previous frame). Format: byetUDLR
b = B; y = Y; e = Select; t = Start; U = Up; D = Down; L = Left; R = Right.
$7E:00B31 byteUsed as a counter for the screen's level of brightness when fading (bits 0 to 7). #$0F = full brightness, #$00 = completely faded.
$7E:00B42 bytesCamera X-position, in pixels.
$7E:00B62 bytesCamera Y-position, in pixels.
$7E:0100unknownSound effects?
$7E:0300512 bytes(?)Graphics?
$7E:0740unknownSound effects?
$7E:0B9B1 byteFrame counter. Differs from the other two in that this one pauses during loading screens.
$7E:0B9C1 byte"Effective" frame counter. Stops when the player dies, among other things.
$7E:0B9D1 byteIf the value in it is not zero, run the actual game; otherwise, loop forever. It's set to a non-zero value during NMI, and it's set to zero after the game mode has been run, so that the game runs exactly once a frame - one NMI trigger per frame.
$7E:0B9E1 byte"True" frame counter. Always increments once per frame.
$7E:0BA62 bytesValue of Pseudo-Random Number Generator.
$7E:0BAC1 byteX's sub-pixel X-position.
$7E:0BAD2 bytesX's X-position, in pixels.
$7E:0BAF1 byteX's sub-pixel Y-position.
$7E:0BB02 bytesX's Y-position, in pixels.
$7E:0BBB1 byteX's blink (close and open eyes) animation timer. If X is standing still, begin the following cycle:
- Start with #$50, decrease by one every frame until it reaches 0;
- Make X blink once (#$08-frame-long blink);
- Set to #$30, decrease by one every frame until it reaches 0;
- Make X blink twice (#$04-frame-long blinks);
If X is moving, reset the cycle.
$7E:0BBF1 byteX's sprite (bits 0-7).
$7E:0BC22 bytesX's X-velocity, in sub-pixels per frame.
$7E:0BC42 bytesX's Y-velocity, in negative sub-pixels per frame.
$7E:0BC61 byteX's Y-acceleration, in sub-pixels per frame per frame.
$7E:0BCF1 byteX's current health.
$7E:0BDB1 byteCurrent weapon selected. A list of values can be found here.
$7E:0BDD1 byteNumber of bullets (of any shot type) onscreen.
$7E:0BDE6 bytesController data. Disabled buttons (such as default X and select) are not included.
$7E:0BF81 byteTimer for how long to display X's buster after shooting. Set to #$FF when X's buster isn't out, set to #$0F and decreases once per frame after shooting. Is reset to #$0F with each successive shot.
$7E:0BFA1 byteDashing timer. Decreases by one every frame. Once it hits 0, X stops dashing. Freezes at the last value it was at if X stop dashing before it reaches 0.
$7E:0BFF1 byteTimer for the level of X's charge shot, while charging. Starts at #$95 and decreases once per frame. #$95 = green shot charged, #$4F = blue shot charged, #$01 = pink shot charged.
$7E:0C031 byteLevel of X's charged shot, while charging. #$00 = not charging, #$01 = pink shot charged, #$02 = blue shot charged, #$03 = green shot charged.
$7E:0C061 byteBitflags: Standing = #$04, hanging on left wall = #$02, right wall = #$01.
$7E:0C111 byteX's direction. #$00 = left, #$40 = right.
$7E:0C131 byteX's recovery (flashing) time after a hit. Decreases by one every frame.
$7E:0C3096 bytesStuff for armor parts (position, type, and so forth). TODO
$7E:0E181 byteRide armor exist flag (#$00 = ride armor does not exist, #$01 = ride armor exists).
$7E:0E1A1 byteRide armor's current state. (#$00 = empty, #$02 = still, #$04 = walking, #$06 = punching, #$08 = jumping, #$0E = dashing, #$14 = mount ride armor, #$16 = dismount ride armor)
$7E:0E1C1 byteRide armor's sub-pixel X-position.
$7E:0E1D2 bytesRide armor's X-position, in pixels.
$7E:0E1F1 byteRide armor's sub-pixel Y-position.
$7E:0E202 bytesRide armor's Y-position, in pixels.
$7E:0E322 bytesRide armor's X-velocity, in sub-pixels per frame.
$7E:0E342 bytesRide armor's Y-velocity, in negative sub-pixels per frame.
$7E:0E361 byteRide armor's Y-acceleration, in sub-pixels per frame per frame
$7E:0E4B1 byteRide armor's heading (#$00 = facing left, #$40 = facing right).
$7E:0E4E6 bytesController data, if ride armor is nearby. Disabled buttons (such as default X and select) are not included. Data for previous frame not included.
$7E:0E6864*15 bytesEnemy data. Each enemy is given 64 bytes.
$7E:122864*8 bytesX's shot/bullet data. Each shot is given 64 bytes.
$7E:142864*8 bytesEnemy shot/bullet data. Each shot is given 64 bytes.
$7E:162848*16 bytesMisc. data (such as item drops). Each item is given 48 bytes.
$7E:1928UnknownUnknown data (possibly including shot impact and explosion sprites). Each part is given 32 bytes.
$7E:1ED21 byteCurrent item selected on the pause menu.
#$00 = X Buster
#$01 = Homing Torpedo
#$02 = Chameleon Sting
#$03 = Rolling Shield
#$04 = Fire Wave
#$05 = Storm Tornado
#$06 = Electric Spark
#$07 = Boomerang Cutter
#$08 = Shotgun Ice
#$09 = Escape Unit
#$0A = Sub Tank 1
#$0B = Sub Tank 2
#$0C = Sub Tank 3
#$0D = Sub Tank 4
$7E:1F7A1 byteCurrent level ID.
#$00 = Highway/intro stage
#$01 = Launch Octopus
#$02 = Sting Chameleon
#$03 = Armored Armadillo
#$04 = Flame Mammoth
#$05 = Storm Eagle
#$06 = Spark Mandrill
#$07 = Boomer Kuwanger
#$08 = Chill Penguin
#$09 = Sigma Stage 1
#$0A = Sigma Stage 2
#$0B = Sigma Stage 3
#$0C = Sigma Stage 4
$7E:1F7E1 byteIncreases by one each time you visit the Hadoken capsule location. It's used when determining whether or not to make the capsule appear.
$7E:1F801 byteLife counter. Capped at #$09.
$7E:1F8716 bytesWeapon Energy. Each weapon's energy is stored as two bytes. First byte: Sub-unit amount. Second byte (bits 0 to 5): Unit amount.
Once unit amount is 0, sub-unit amount cannot be used even if it is not 0.
Usage: Homing Torpedo and Chameleon Sting: 1/2 unit; Fire Wave: 1/16 unit; Everything else: 1 unit.
$7E:1F991 byteBitflags for upgrades and sub-tanks collected. Format: dcbaZYXW
Upgrades: W = Head; X = Arm (Buster); Y = Body (Armor); Z = Leg (Dash).
Sub-tanks: a = Eagle; b = Armadillo; c = Mandrill; d = Mammoth.
$7E:1F9A1 byteX's maximum health. Increases by 2 per heart tank.
$7E:1F9C1 byteBitflags for heart tanks collected. Format: hgfedcba
a = Penguin; b = Armadillo; c = Eagle; d = Chameleon; e = Mammoth; f = Kuwanger; g = Mandrill; h = Octopus.
Enemy/Object data
OffsetByte lengthDescription
#$0 1 byteObject in memory flag. #$00 = No object in memory. #$01 = Object exists in memory.
#$1 1 byteObject's action 1.
#$2 1 byteObject's action 2.
#$4 1 byteObject's sub-pixel X-position.
#$5 2 bytesObject's X-position, in pixels.
#$7 1 byteObject's sub-pixel Y-position.
#$8 2 bytesObject's Y-position, in pixels.
#$A 1 byteObject ID.
#$13 1 byteAnimation countdown (animates and reset when zero).
#$17 1 byteObject sprite (bits 0-7).
#$1A 2 bytesObject X-velocity, in sub-pixels per frame.
#$1C 2 bytesObject Y-velocity, in negative sub-pixels per frame.
#$1E 1 byteObject Y-acceleration, in sub-pixels per frame per frame.
#$22 2 bytesObject X-position, in pixels.
#$24 2 bytesObject Y-position, in pixels.
#$27 1 byteObject's current health.
#$28 24 bytesUnknown. Contains further data about the object, such as recovery timers for bosses. Data may not be fixed.

GameResources/SNES/MegaManX/RAMMap last edited by FractalFusion on 9/15/2015 6:47 PM
Page History Latest diff List referrers View Source