| Address | Byte length | Description | 
|---|
| $7E:0000 | 16 bytes | Scratch RAM | 
| $7E:003B | 1 byte | Intro 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:003C | 1 byte | The currently selected option on the title screen. #$00 = Start Game, #$01 = Password Screen, #$02 = Options Menu. | 
| $7E:00A7 | 1 byte | Controller data 1, current frame. Format: axlr -a = A; x = X; l = L; r = R, - = unused.
 | 
| $7E:00A8 | 1 byte | Controller data 2, current frame. Format: byetUDLR b = B; y = Y; e = Select; t = Start; U = Up; D = Down; L = Left; R = Right.
 | 
| $7E:00A9 | 1 byte | Controller data 1, previous frame. Format: axlr -a = A; x = X; l = L; r = R.
 | 
| $7E:00AA | 1 byte | Controller data 2, previous frame. Format: byetUDLR b = B; y = Y; e = Select; t = Start; U = Up; D = Down; L = Left; R = Right.
 | 
| $7E:00AB | 1 byte | Controller data 1, button press (current frame and not previous frame). Format: axlr -a = A; x = X; l = L; r = R.
 | 
| $7E:00AC | 1 byte | Controller 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:00B3 | 1 byte | Used as a counter for the screen's level of brightness when fading (bits 0 to 7). #$0F = full brightness, #$00 = completely faded. | 
| $7E:00B4 | 2 bytes | Camera X-position, in pixels. | 
| $7E:00B6 | 2 bytes | Camera Y-position, in pixels. | 
| $7E:0100 | unknown | Sound effects? | 
| $7E:0300 | 512 bytes(?) | Graphics? | 
| $7E:0740 | unknown | Sound effects? | 
| $7E:0B9B | 1 byte | Frame counter. Differs from the other two in that this one pauses during loading screens. | 
| $7E:0B9C | 1 byte | "Effective" frame counter. Stops when the player dies, among other things. | 
| $7E:0B9D | 1 byte | If 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:0B9E | 1 byte | "True" frame counter. Always increments once per frame. | 
| $7E:0BA6 | 2 bytes | Value of Pseudo-Random Number Generator. | 
| $7E:0BAC | 1 byte | X's sub-pixel X-position. | 
| $7E:0BAD | 2 bytes | X's X-position, in pixels. | 
| $7E:0BAF | 1 byte | X's sub-pixel Y-position. | 
| $7E:0BB0 | 2 bytes | X's Y-position, in pixels. | 
| $7E:0BBB | 1 byte | X'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:0BBF | 1 byte | X's sprite (bits 0-7). | 
| $7E:0BC2 | 2 bytes | X's X-velocity, in sub-pixels per frame. | 
| $7E:0BC4 | 2 bytes | X's Y-velocity, in negative sub-pixels per frame. | 
| $7E:0BC6 | 1 byte | X's Y-acceleration, in sub-pixels per frame per frame. | 
| $7E:0BCF | 1 byte | X's current health. | 
| $7E:0BDB | 1 byte | Current weapon selected. A list of values can be found here. | 
| $7E:0BDD | 1 byte | Number of bullets (of any shot type) onscreen. | 
| $7E:0BDE | 6 bytes | Controller data. Disabled buttons (such as default X and select) are not included. | 
| $7E:0BF8 | 1 byte | Timer 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:0BFA | 1 byte | Dashing 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:0BFF | 1 byte | Timer 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:0C03 | 1 byte | Level of X's charged shot, while charging. #$00 = not charging, #$01 = pink shot charged, #$02 = blue shot charged, #$03 = green shot charged. | 
| $7E:0C06 | 1 byte | Bitflags: Standing = #$04, hanging on left wall = #$02, right wall = #$01. | 
| $7E:0C11 | 1 byte | X's direction. #$00 = left, #$40 = right. | 
| $7E:0C13 | 1 byte | X's recovery (flashing) time after a hit. Decreases by one every frame. | 
| $7E:0C30 | 96 bytes | Stuff for armor parts (position, type, and so forth). TODO | 
| $7E:0E18 | 1 byte | Ride armor exist flag (#$00 = ride armor does not exist, #$01 = ride armor exists). | 
| $7E:0E1A | 1 byte | Ride 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:0E1C | 1 byte | Ride armor's sub-pixel X-position. | 
| $7E:0E1D | 2 bytes | Ride armor's X-position, in pixels. | 
| $7E:0E1F | 1 byte | Ride armor's sub-pixel Y-position. | 
| $7E:0E20 | 2 bytes | Ride armor's Y-position, in pixels. | 
| $7E:0E32 | 2 bytes | Ride armor's X-velocity, in sub-pixels per frame. | 
| $7E:0E34 | 2 bytes | Ride armor's Y-velocity, in negative sub-pixels per frame. | 
| $7E:0E36 | 1 byte | Ride armor's Y-acceleration, in sub-pixels per frame per frame | 
| $7E:0E4B | 1 byte | Ride armor's heading (#$00 = facing left, #$40 = facing right). | 
| $7E:0E4E | 6 bytes | Controller data, if ride armor is nearby. Disabled buttons (such as default X and select) are not included. Data for previous frame not included. | 
| $7E:0E68 | 64*15 bytes | Enemy data. Each enemy is given 64 bytes. | 
| $7E:1228 | 64*8 bytes | X's shot/bullet data. Each shot is given 64 bytes. | 
| $7E:1428 | 64*8 bytes | Enemy shot/bullet data. Each shot is given 64 bytes. | 
| $7E:1628 | 48*16 bytes | Misc. data (such as item drops). Each item is given 48 bytes. | 
| $7E:1928 | Unknown | Unknown data (possibly including shot impact and explosion sprites). Each part is given 32 bytes. | 
| $7E:1ED2 | 1 byte | Current 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:1F7A | 1 byte | Current 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:1F7E | 1 byte | Increases by one each time you visit the Hadoken capsule location. It's used when determining whether or not to make the capsule appear. | 
| $7E:1F80 | 1 byte | Life counter. Capped at #$09. | 
| $7E:1F87 | 16 bytes | Weapon 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:1F99 | 1 byte | Bitflags 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:1F9A | 1 byte | X's maximum health. Increases by 2 per heart tank. | 
| $7E:1F9C | 1 byte | Bitflags for heart tanks collected. Format: hgfedcba a = Penguin; b = Armadillo; c = Eagle; d = Chameleon; e = Mammoth; f = Kuwanger; g = Mandrill; h = Octopus.
 |