Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <table border="1">
- <tr>
- <td><center>Address</center></td>
- <td><center>Byte length</center></td>
- <td><center>Description</center></td>
- </tr>
- <tr>
- <td>$7E:0000</td>
- <td>16 bytes</td>
- <td>Scratch RAM</td>
- </tr>
- <tr>
- <td>$7E:003B</td>
- <td>1 byte</td>
- <td>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.</td>
- </tr>
- <tr>
- <td>$7E:003C</td>
- <td>1 byte</td>
- <td>The currently selected option on the title screen. #$00 = Start Game, #$01 = Password Screen, #$02 = Options Menu.</td>
- </tr>
- <tr>
- <td>$7E:00A7</td>
- <td>1 byte</td>
- <td>Controller data 1, current frame. Format: axlr----<br>
- a = A; x = X; l = L; r = R, - = unused.
- </td>
- </tr>
- <tr>
- <td>$7E:00A8</td>
- <td>1 byte</td>
- <td>Controller data 2, current frame. Format: byetUDLR<br>
- b = B; y = Y; e = Select; t = Start; U = Up; D = Down; L = Left; R = Right.
- </td>
- </tr>
- <tr>
- <td>$7E:00A9</td>
- <td>1 byte</td>
- <td>Controller data 1, previous frame. Format: axlr----<br>
- a = A; x = X; l = L; r = R.
- </td>
- </tr>
- <tr>
- <td>$7E:00AA</td>
- <td>1 byte</td>
- <td>Controller data 2, previous frame. Format: byetUDLR<br>
- b = B; y = Y; e = Select; t = Start; U = Up; D = Down; L = Left; R = Right.
- </td>
- </tr>
- <tr>
- <td>$7E:00AB</td>
- <td>1 byte</td>
- <td>Controller data 1, button press (current frame and not previous frame). Format: axlr----<br>
- a = A; x = X; l = L; r = R.
- </td>
- </tr>
- <tr>
- <td>$7E:00AC</td>
- <td>1 byte</td>
- <td>Controller data 2, button press (current frame and not previous frame). Format: byetUDLR<br>
- b = B; y = Y; e = Select; t = Start; U = Up; D = Down; L = Left; R = Right.
- </td>
- </tr>
- <tr>
- <td>$7E:00B3</td>
- <td>1 byte</td>
- <td>Used as a counter for the screen's level of brightness when fading (bits 0 to 7). #$0F = full brightness, #$00 = completely faded.</td>
- </tr>
- <tr>
- <td>$7E:00B4</td>
- <td>2 bytes</td>
- <td>Camera X-position, in pixels.</td>
- </tr>
- <tr>
- <td>$7E:00B6</td>
- <td>2 bytes</td>
- <td>Camera Y-position, in pixels.</td>
- </tr>
- <tr>
- <td>$7E:0100</td>
- <td>unknown</td>
- <td>Sound effects?</td>
- </tr>
- <tr>
- <td>$7E:0300</td>
- <td>512 bytes(?)</td>
- <td>Graphics?</td>
- </tr>
- <tr>
- <td>$7E:0740</td>
- <td>unknown</td>
- <td>Sound effects?</td>
- </tr>
- <tr>
- <td>$7E:0B9B</td>
- <td>1 byte</td>
- <td>Frame counter. Differs from the other two in that this one pauses during loading screens.</td>
- </tr>
- <tr>
- <td>$7E:0B9C</td>
- <td>1 byte</td>
- <td>"Effective" frame counter. Stops when the player dies, among other things.</td>
- </tr>
- <tr>
- <td>$7E:0B9D</td>
- <td>1 byte</td>
- <td>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.</td>
- </tr>
- <tr>
- <td>$7E:0B9E</td>
- <td>1 byte</td>
- <td>"True" frame counter. Always increments once per frame.</td>
- </tr>
- <tr>
- <td>$7E:0BA6</td>
- <td>2 bytes</td>
- <td>Value of Pseudo-Random Number Generator.</td>
- </tr>
- <tr>
- <td>$7E:0BAC</td>
- <td>3 bytes</td>
- <td>X's X-position, in sub-pixels.</td>
- </tr>
- <tr>
- <td>$7E:0BAF</td>
- <td>3 bytes</td>
- <td>X's Y-position, in sub-pixels.</td>
- </tr>
- <tr>
- <td>$7E:0BBB</td>
- <td>1 byte</td>
- <td>X's blink (close and open eyes) animation timer. If X is standing still, begin the following cycle:<br>
- - Start with #$50, decrease by one every frame until it reaches 0;<br>
- - Make X blink once (#$08-frame-long blink);<br>
- - Set to #$30, decrease by one every frame until it reaches 0;<br>
- - Make X blink twice (#$04-frame-long blinks);<br>
- If X is moving, reset the cycle.
- </td>
- </tr>
- <tr>
- <td>$7E:0BBF</td>
- <td>1 byte</td>
- <td>X's sprite (bits 0-7).</td>
- </tr>
- <tr>
- <td>$7E:0BC2</td>
- <td>2 bytes</td>
- <td>X's X-velocity, in sub-pixels per frame.</td>
- </tr>
- <tr>
- <td>$7E:0BC4</td>
- <td>2 bytes</td>
- <td>X's Y-velocity, in negative sub-pixels per frame.</td>
- </tr>
- <tr>
- <td>$7E:0BC6</td>
- <td>1 byte</td>
- <td>X's Y-acceleration, in sub-pixels per frame per frame.</td>
- </tr>
- <tr>
- <td>$7E:0BCF</td>
- <td>1 byte</td>
- <td>X's current health.</td>
- </tr>
- <tr>
- <td>$7E:0BDB</td>
- <td>1 byte</td>
- <td>Current weapon selected. A list of values can be found <a href=http://dl.dropbox.com/u/14136904/Selected%20Weapon.html>here</a>.</td>
- </tr>
- <tr>
- <td>$7E:0BDD</td>
- <td>1 byte</td>
- <td>Number of bullets (of any shot type) onscreen.</td>
- </tr>
- <tr>
- <td>$7E:0BDE</td>
- <td>6 bytes</td>
- <td>Controller data. Disabled buttons (such as default X and select) are not included.</td>
- </tr>
- <tr>
- <td>$7E:0BF8</td>
- <td>1 byte</td>
- <td>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.</td>
- </tr>
- <tr>
- <td>$7E:0BFA</td>
- <td>1 byte</td>
- <td>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.</td>
- </tr>
- <tr>
- <td>$7E:0BFF</td>
- <td>1 byte</td>
- <td>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.</td>
- </tr>
- <tr>
- <td>$7E:0C03</td>
- <td>1 byte</td>
- <td>Level of X's charged shot, while charging. #$00 = not charging, #$01 = pink shot charged, #$02 = blue shot charged, #$03 = green shot charged.</td>
- </tr>
- <tr>
- <td>$7E:0C06</td>
- <td>1 byte</td>
- <td>Bitflags: Standing = #$04, hanging on left wall = #$02, right wall = #$01.</td>
- </tr>
- <tr>
- <td>$7E:0C10</td>
- <td>1 byte</td>
- <td>X's recovery (flashing) time after a hit. Decreases by one every frame.</td>
- </tr>
- <tr>
- <td>$7E:0C11</td>
- <td>1 byte</td>
- <td>X's direction. #$00 = left, #$28 = right.</td>
- </tr>
- <tr>
- <td>$7E:0C30</td>
- <td>96 bytes</td>
- <td>Stuff for armor parts (position, type, and so forth). [TODO]</td>
- </tr>
- <tr>
- <td>$7E:0E18</td>
- <td>1 byte</td>
- <td>Ride armor exist flag (#$00 = ride armor does not exist, #$01 = ride armor exists).</td>
- </tr>
- <tr>
- <td>$7E:0E1A</td>
- <td>1 byte</td>
- <td>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)</td>
- </tr>
- <tr>
- <td>$7E:0E1C</td>
- <td>3 bytes</td>
- <td>Ride armor's X-position, in sub-pixels.</td>
- </tr>
- <tr>
- <td>$7E:0E1F</td>
- <td>3 bytes</td>
- <td>Ride armor's Y-position, in sub-pixels.</td>
- </tr>
- <tr>
- <td>$7E:0E32</td>
- <td>2 bytes</td>
- <td>Ride armor's X-velocity, in sub-pixels per frame.</td>
- </tr>
- <tr>
- <td>$7E:0E34</td>
- <td>2 bytes</td>
- <td>Ride armor's Y-velocity, in negative sub-pixels per frame.</td>
- </tr>
- <tr>
- <td>$7E:0E36</td>
- <td>1 byte</td>
- <td>Ride armor's Y-acceleration, in sub-pixels per frame per frame</td>
- </tr>
- <tr>
- <td>$7E:0E4B</td>
- <td>1 byte</td>
- <td>Ride armor's heading (#$00 = facing left, #$40 = facing right).</td>
- </tr>
- <tr>
- <td>$7E:0E4E</td>
- <td>6 bytes</td>
- <td>Controller data, if ride armor is nearby. Disabled buttons (such as default X and select) are not included. Data for previous frame not included.</td>
- </tr>
- <tr>
- <td>$7E:0E68</td>
- <td>At least 64*6 bytes</td>
- <td>Enemy data. Each enemy is given 64 bytes. [TODO]
- </td>
- </tr>
- <tr>
- <td>$7E:1228</td>
- <td>At least 64*5 bytes</td>
- <td>X's shot/bullet data. Each shot is given 64 bytes. [TODO]
- </td>
- </tr>
- <tr>
- <td>$7E:1428</td>
- <td>At least 64*5 bytes</td>
- <td>Enemy shot/bullet data. Each shot is given 64 bytes. [TODO]
- </td>
- </tr>
- <tr>
- <td>$7E:1628</td>
- <td>At least 48*5 bytes</td>
- <td>Misc. data (such as item drops). Each item is given 48 bytes. [TODO]
- </td>
- </tr>
- <tr>
- <td>$7E:1928</td>
- <td>Unknown</td>
- <td>Unknown data (possibly including shot impact and explosion sprites). Each datum is given 32 bytes. [TODO]
- </td>
- </tr>
- <tr>
- <td>$7E:1ED2</td>
- <td>1 byte</td>
- <td>Current item selected on the pause menu.<br>#$00 = X Buster<br>#$01 = Homing Torpedo<br>#$02 = Chameleon Sting<br>#$03 = Rolling Shield<br>#$04 = Fire Wave<br>#$05 = Storm Tornado<br>#$06 = Electric Spark<br>#$07 = Boomerang Cutter<br>#$08 = Shotgun Ice<br>#$09 = Escape Unit<br>#$0A = Sub Tank 1<br>#$0B = Sub Tank 2<br>#$0C = Sub Tank 3<br>#$0D = Sub Tank 4</td>
- </tr>
- <tr>
- <td>$7E:1F7A</td>
- <td>1 byte</td>
- <td>Current level ID.<br>#$00 = Highway/intro stage<br>#$01 = Launch Octopus<br>#$02 = Sting Chameleon<br>#$03 = Armored Armadillo<br>#$04 = Flame Mammoth<br>#$05 = Storm Eagle<br>#$06 = Spark Mandrill<br>#$07 = Boomer Kuwanger<br>#$08 = Chill Penguin<br>#$09 = Sigma Stage 1<br>#$0A = Sigma Stage 2<br>#$0B = Sigma Stage 3<br>#$0C = Sigma Stage 4</td>
- </tr>
- <tr>
- <td>$7E:1F7E</td>
- <td>1 byte</td>
- <td>Increases by one each time you visit the Hadoken capsule location. It's used when determining whether or not to make the capsule appear.</td>
- </tr>
- <tr>
- <td>$7E:1F80</td>
- <td>1 byte</td>
- <td>Life counter. Capped at #$09.</td>
- </tr>
- <tr>
- <td>$7E:1F87</td>
- <td>16 bytes</td>
- <td>Weapon Energy. Each weapon's energy is stored as two bytes. First byte: Sub-unit amount. Second byte (bits 0 to 7): Unit amount.<br>
- Once unit amount is 0, sub-unit amount cannot be used even if it is not 0.<br>
- Usage: Homing Torpedo and Chameleon Sting: 1/2 unit; Fire Wave: 1/16 unit; Everything else: 1 unit.
- </td>
- </tr>
- <tr>
- <td>$7E:1F99</td>
- <td>1 byte</td>
- <td>Bitflags for upgrades and sub-tanks collected. Format: dcbaZYXW <br> Upgrades: W = Head; X = Arm (Buster); Y = Body (Armor); Z = Leg (Dash).<br>
- Sub-tanks: a = Eagle; b = Armadillo; c = Mandrill; d = Mammoth.
- </td>
- </tr>
- <tr>
- <td>$7E:1F9A</td>
- <td>1 byte</td>
- <td>X's maximum health. Increases by 2 per heart tank.</td>
- </tr>
- <tr>
- <td>$7E:1F9C</td>
- <td>1 byte</td>
- <td>Bitflags for heart tanks collected. Format: hgfedcba <br>
- a = Penguin; b = Armadillo; c = Eagle; d = Chameleon; e = Mammoth; f = Kuwanger; g = Mandrill; h = Octopus.
- </td>
- </tr>
- </table>
- <br>
- <b>Enemy/Object data</b>
- <br>
- <table border="1">
- <tr>
- <td><center>Offset</center></td>
- <td><center>Byte length</center></td>
- <td><center>Description</center></td>
- </tr>
- <tr>
- <td>#$0</td>
- <td> 1 byte</td>
- <td>Exist flag. #$00 = Object does not exist. #$01 = Object exists.</td>
- </tr>
- <tr>
- <td>#$1</td>
- <td> 1 byte</td>
- <td>Object's action 1.</td>
- </tr>
- <tr>
- <td>#$2</td>
- <td> 1 byte</td>
- <td>Object's action 2.</td>
- </tr>
- <tr>
- <td>#$4</td>
- <td> 3 bytes</td>
- <td>Object X-position, in sub-pixels.</td>
- </tr>
- <tr>
- <td>#$7</td>
- <td> 3 bytes</td>
- <td>Object Y-position, in sub-pixels.</td>
- </tr>
- <tr>
- <td>#$A</td>
- <td> 1 byte</td>
- <td>Object ID.</td>
- </tr>
- <tr>
- <td>#$17</td>
- <td> 1 byte</td>
- <td>Object sprite (bits 0-7).</td>
- </tr>
- <tr>
- <td>#$1A</td>
- <td> 2 bytes</td>
- <td>Object X-velocity, in sub-pixels per frame.</td>
- </tr>
- <tr>
- <td>#$1C</td>
- <td> 2 bytes</td>
- <td>Object Y-velocity, in negative sub-pixels per frame.</td>
- </tr>
- <tr>
- <td>#$1E</td>
- <td> 1 byte</td>
- <td>Object Y-acceleration, in sub-pixels per frame per frame.</td>
- </tr>
- <tr>
- <td>#$22</td>
- <td> 2 bytes</td>
- <td>Object X-position, in pixels.</td>
- </tr>
- <tr>
- <td>#$24</td>
- <td> 2 bytes</td>
- <td>Object Y-position, in pixels.</td>
- </tr>
- <tr>
- <td>#$27</td>
- <td> 1 byte</td>
- <td>Object's current health.</td>
- </tr>
- <tr>
- <td>#$28</td>
- <td> 24 bytes</td>
- <td>Unknown. Contains further data about the object, such as recovery timers for bosses. Data may not be fixed.</td>
- </tr>
- </table>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement