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. |