SMBX Player Offsets
Revision as of 01:04, 16 November 2015 by Rockythechao (talk | contribs)
This is the memory map for the player struct. This struct is not fully analysed. Any help is appreciated!
Please note that the data may not be fully 100% accurate.
| PC Memory (0x184 bytes) | |||
|---|---|---|---|
| Name | Memory address | Memory type | Description |
| SMBX PC+0x00 | PC+0x00 | FIELD_WORD | Toad doublejump ready (FFFF true) |
| SMBX PC+0x02 | PC+0x02 | FIELD_WORD | Star sparkling effect on player |
| SMBX PC+0x04 | PC+0x04 | FIELD_WORD | Horizontal and ducking disabled (?) |
| SMBX PC+0x06 | PC+0x06 | FIELD_WORD | Ducking enabled? |
| SMBX PC+0x08 | PC+0x08 | FIELD_WORD | Water or quicksand timer |
| SMBX PC+0x0A | PC+0x0A | FIELD_WORD | Is on slippery ground |
| Link Content Below | N/A | N/A | N/A |
| SMBX PC+0x0C | PC+0x0C | FIELD_WORD | Is a fairy |
| SMBX PC+0x0E | PC+0x0E | FIELD_WORD | Fairy already used this jump (1 true) |
| SMBX PC+0x10 | PC+0x10 | FIELD_WORD | Frames until fairy runs out |
| SMBX PC+0x12 | PC+0x12 | FIELD_WORD | Link has a key |
| SMBX PC+0x14 | PC+0x14 | FIELD_WORD | Link slash cooldown timer |
| SMBX PC+0x16 | PC+0x16 | FIELD_WORD | # of hearts (all characters) |
| Peach Content Below | N/A | N/A | N/A |
| SMBX PC+0x18 | PC+0x18 | FIELD_WORD | Princess hover is available |
| SMBX PC+0x1A | PC+0x1A | FIELD_WORD | Holding jump button |
| SMBX PC+0x1C | PC+0x1C | FIELD_WORD | Princess hover timer |
| SMBX PC+0x1E | PC+0x1E | FIELD_WORD | Unused (not cleared on level load) |
| SMBX PC+0x20 | PC+0x20 | FIELD_FLOAT | Princess hover Y tremble speed |
| SMBX PC+0x24 | PC+0x24 | FIELD_WORD | Princess hover Y tremble direction |
| Misc Content Below | N/A | N/A | N/A |
| SMBX PC+0x26 | PC+0x26 | FIELD_WORD | Ground item pull-up timer |
| SMBX PC+0x28 | PC+0x28 | FIELD_FLOAT | Ground item pull-up momentum save |
| SMBX PC+0x2A | PC+0x2A | FIELD_WORD | Unused (not cleared on level load) |
| Climbing Content Below | N/A | N/A | N/A |
| SMBX PC+0x2C | PC+0x2C | FIELD_WORD | Climbing related |
| SMBX PC+0x30 | PC+0x30 | FIELD_WORD | Climbing related |
| SMBX PC+0x32 | PC+0x32 | FIELD_WORD | Climbing related |
| Water Content Below | N/A | N/A | N/A |
| SMBX PC+0x34 | PC+0x34 | FIELD_WORD | 2 when in water |
| SMBX PC+0x36 | PC+0x36 | FIELD_WORD | 0xFFFF when in water |
| SMBX PC+0x38 | PC+0x38 | FIELD_WORD | Water stroke timer (can't stroke again until 0) |
| Misc Content Below | N/A | N/A | N/A |
| SMBX PC+0x3A | PC+0x3A | FIELD_WORD | Unknown hover timer |
| SMBX PC+0x3C | PC+0x3C | FIELD_WORD | Is sliding |
| SMBX PC+0x3E | PC+0x3E | FIELD_WORD | Is generating sliding smoke puffs |
| SMBX PC+0x40 | PC+0x40 | FIELD_WORD | Climbing state (3 climbing, 2 pushed up against edge of climbable area) |
| SMBX PC+0x42 | PC+0x42 | FIELD_WORD | Unknown timer42 |
| SMBX PC+0x44 | PC+0x44 | FIELD_WORD | Unknown flag44 |
| SMBX PC+0x46 | PC+0x46 | FIELD_WORD | Unknown46 (powerup pickup related) |
| SMBX PC+0x48 | PC+0x48 | FIELD_WORD | Slope modifier |
| Tanooki Suit Content Below | N/A | N/A | N/A |
| SMBX PC+0x4A | PC+0x4A | FIELD_WORD | Tanooki suit statue flag |
| SMBX PC+0x4C | PC+0x4C | FIELD_WORD | Statue transform cooldown frame timer |
| SMBX PC+0x4E | PC+0x4E | FIELD_WORD | Frames spent as statue |
| Spinjump Content Below | N/A | N/A | N/A |
| SMBX PC+0x50 | PC+0x50 | FIELD_WORD | Spinjump flag (-1 true) |
| SMBX PC+0x52 | PC+0x52 | FIELD_WORD | Spinjump state counter |
| SMBX PC+0x54 | PC+0x54 | FIELD_WORD | Spinjump land direction (will face this direction when landing) |
| State Content Below | N/A | N/A | N/A |
| SMBX PC+0x56 | PC+0x56 | FIELD_WORD | Current enemy kill combo count |
| SMBX PC+0x58 | PC+0x58 | FIELD_WORD | Ground sliding smoke puffs state |
| SMBX PC+0x5A | PC+0x5A | FIELD_WORD | Warp is nearby (1 pipe, 2 instant, 3 door) |
| SMBX PC+0x60 | PC+0x60 | FIELD_WORD | Has jumped |
| Unknown Content Below | N/A | N/A | N/A |
| SMBX PC+0x62 | PC+0x62 | FIELD_WORD | Unknown62 |
| SMBX PC+0x64 | PC+0x64 | FIELD_WORD | Unknown64 |
| SMBX PC+0x66 | PC+0x66 | FIELD_WORD | Unknown66 |
| SMBX PC+0x68 | PC+0x68 | FIELD_WORD | Unknown68 |
| SMBX PC+0x7A | PC+0x7A | FIELD_WORD | Yoshi's animation frame (0-6 is left, 7-13 is right) |
| SMBX PC+0x7C | PC+0x7C | FIELD_WORD | Yoshi animation frame timer (rapidly increments from 0 to 30-something, freezes in the air, reset to 0 when pressing down; may determine the body's and head's positions...?) |
| Mount Content Below | N/A | N/A | N/A |
| SMBX PC+0x7E | PC+0x7E | FIELD_WORD | Mount upper X offset |
| SMBX PC+0x80 | PC+0x80 | FIELD_WORD | Mount upper Y offset |
| SMBX PC+0x82 | PC+0x82 | FIELD_WORD | Mount upper GFX index |
| SMBX PC+0x84 | PC+0x84 | FIELD_WORD | Mount item in mouth swallow timer |
| SMBX PC+0x86 | PC+0x86 | FIELD_WORD | Mount lower X offset |
| SMBX PC+0x88 | PC+0x88 | FIELD_WORD | Mount upper Y offset |
| SMBX PC+0x8A | PC+0x8A | FIELD_WORD | Mount lower GFX index |
| SMBX PC+0x8C | PC+0x8C | FIELD_WORD | Unknown82 |
| SMBX PC+0x8E | PC+0x8E | FIELD_WORD | Unknown82 |
| SMBX PC+0x90 | PC+0x90 | FIELD_WORD | Tongue X position |
| SMBX PC+0x98 | PC+0x98 | FIELD_WORD | Tongue Y position |
| SMBX PC+0xA0 | PC+0xA0 | FIELD_WORD | Tongue height or hitbox related |
| SMBX PC+0xA8 | PC+0xA8 | FIELD_WORD | Tongue height or hitbox related |
| Position Content Below | N/A | N/A | N/A |
| SMBX PC+0xC0 | PC+0xC0 | FIELD_WORD | Player X position (absolute coordinates within level) |
| SMBX PC+0xC8 | PC+0xC8 | FIELD_WORD | Player Y position (absolute coordinates within level) |
| SMBX PC+0xD0 | PC+0xD0 | FIELD_DFLOAT | Player height or hitbox related |
| SMBX PC+0xD8 | PC+0xD8 | FIELD_DFLOAT | Player width or hitbox related |
| SMBX PC+0xE0 | PC+0xE0 | FIELD_WORD | Player X speed |
| SMBX PC+0xE8 | PC+0xE8 | FIELD_WORD | Player Y speed |
| SMBX PC+0xF0 | PC+0xF0 | FIELD_WORD | Player identity index (0 nothing! don't use, 1 demo, 2 iris, 3 princess, 5 sheath) |
| Input Content Below | N/A | N/A | N/A |
| SMBX PC+0xF2 | PC+0xF2 | FIELD_WORD | U key pressing |
| SMBX PC+0xF4 | PC+0xF4 | FIELD_WORD | D key pressing |
| SMBX PC+0xF6 | PC+0xF6 | FIELD_WORD | L key pressing |
| SMBX PC+0xF8 | PC+0xF8 | FIELD_WORD | R key pressing |
| SMBX PC+0xFA | PC+0xFA | FIELD_WORD | J key pressing |
| SMBX PC+0xFC | PC+0xFC | FIELD_WORD | SJ key pressing |
| SMBX PC+0xFE | PC+0xFE | FIELD_WORD | X key pressing |
| SMBX PC+0x100 | PC+0x100 | FIELD_WORD | RN key pressing |
| SMBX PC+0x102 | PC+0x102 | FIELD_WORD | SEL key pressing |
| SMBX PC+0x104 | PC+0x104 | FIELD_WORD | STR key pressing |
| SMBX PC+0x106 | PC+0x106 | FIELD_WORD | Direction faced (-1 left) |
| Mount Content Below | N/A | N/A | N/A |
| SMBX PC+0x108 | PC+0x108 | FIELD_WORD | Mount identity (0 no mount,1 boot, 2 clowncar, 3 yoshi) |
| SMBX PC+0x10A | PC+0x10A | FIELD_WORD | Mount color |
| SMBX PC+0x10C | PC+0x10C | FIELD_WORD | Mount state |
| SMBX PC+0x10E | PC+0x10E | FIELD_WORD | Mount height offset or something |
| SMBX PC+0x110 | PC+0x110 | FIELD_WORD | Mount gfx index |
| State Content Below | N/A | N/A | N/A |
| SMBX PC+0x112 | PC+0x112 | FIELD_WORD | Current powerup |
| SMBX PC+0x114 | PC+0x114 | FIELD_WORD | Current player sprite index being displayed |
| SMBX PC+0x116 | PC+0x116 | FIELD_WORD | Unused |
| SMBX PC+0x118 | PC+0x118 | FIELD_FLOAT | X momentum assumption (used when determining how to draw the sprite) |
| SMBX PC+0x11C | PC+0x11C | FIELD_WORD | Current upward jumping force (2 byte integer representation) |
| SMBX PC+0x11E | PC+0x11E | FIELD_WORD | Holding jump button (-1 is Can Jump. 1 is Can't Jump) |
| SMBX PC+0x120 | PC+0x120 | FIELD_WORD | Holding spinjump button |
| SMBX PC+0x122 | PC+0x122 | FIELD_WORD | Forced animation state. (1 is powerup, 2 is powerdown, 3 is entering pipe, 4 is getting fire flower, 7 is entering door, 500 is tanooki statue poof state) |
| SMBX PC+0x124 | PC+0x124 | FIELD_FLOAT | Unknown124 |
| SMBX PC+0x128 | PC+0x128 | FIELD_FLOAT | Unknown128 |
| SMBX PC+0x12C | PC+0x12C | FIELD_WORD | Down button mirror (redundant?) |
| SMBX PC+0x12E | PC+0x12E | FIELD_WORD | In ducking state |
| SMBX PC+0x130 | PC+0x130 | FIELD_WORD | Select button mirror (redundant?) |
| SMBX PC+0x132 | PC+0x132 | FIELD_WORD | Triggered to -1 when the collected-powerup invincibility animation ends. |
| SMBX PC+0x134 | PC+0x134 | FIELD_WORD | Down button pressed this frame (reset next frame) |
| SMBX PC+0x136 | PC+0x136 | FIELD_WORD | Unknown136 |
| SMBX PC+0x138 | PC+0x138 | FIELD_FLOAT | X momentum push (eg. pushed by a bully) |
| SMBX PC+0x13C | PC+0x13C | FIELD_WORD | Player death state |
| SMBX PC+0x13E | PC+0x13E | FIELD_WORD | Player death animation timer |
| SMBX PC+0x140 | PC+0x140 | FIELD_WORD | Powerup blinking timer (starts at nil and goes to 50 for powerup and 150 for hurt) |
| SMBX PC+0x142 | PC+0x142 | FIELD_WORD | Powerup blinking state |
| SMBX PC+0x144 | PC+0x144 | FIELD_WORD | Unknown144 |
| Layer Content Below | N/A | N/A | N/A |
| SMBX PC+0x146 | PC+0x146 | FIELD_WORD | Bottom state (0 not on the ground or standing on sprite, 2 foot contact with a solid layer) |
| SMBX PC+0x148 | PC+0x148 | FIELD_WORD | Left state (0 no left contact, 1 half or pushed back by a solid layer, 2 pushing against layer) |
| SMBX PC+0x14A | PC+0x14A | FIELD_WORD | Top state (0 no top contact, 1 half or pushed back by a solid layer, 2 pushing against layer) |
| SMBX PC+0x14C | PC+0x14C | FIELD_WORD | Right state (0 no right contact, 1 half or pushed back by a solid layer, 2 pushing against layer) |
| SMBX PC+0x14E | PC+0x14E | FIELD_WORD | Pushed by a moving layer (0 not pushed by any, 2 being pushed to the left or right) |
| SMBX PC+0x150 | PC+0x150 | FIELD_WORD | Unused150 |
| SMBX PC+0x152 | PC+0x152 | FIELD_WORD | Unused152 |
| Misc Content Below | N/A | N/A | N/A |
| SMBX PC+0x154 | PC+0x154 | FIELD_WORD | Index of sprite being held (index to a specific sprite object that was generated only, -1 can't carry anything) |
| SMBX PC+0x156 | PC+0x156 | FIELD_WORD | Unknown156, usually reset to 0 |
| SMBX PC+0x158 | PC+0x158 | FIELD_WORD | Powerup box contents (0 no item) |
| Section Content Below | N/A | N/A | N/A |
| SMBX PC+0x15A | PC+0x15A | FIELD_WORD | Current section |
| SMBX PC+0x15C | PC+0x15C | FIELD_WORD | Warp timer (can't warp / pipe until 0) |
| SMBX PC+0x15E | PC+0x15E | FIELD_WORD | Unknwon15E |
| Projectile Content Below | N/A | N/A | N/A |
| SMBX PC+0x160 | PC+0x160 | FIELD_WORD | Projectile timer (fireballs, hammers, link slash..) |
| SMBX PC+0x162 | PC+0x162 | FIELD_WORD | Projectile timer 2 (link projectiles) |
| SMBX PC+0x164 | PC+0x164 | FIELD_WORD | Tail swipe timer |
| SMBX PC+0x166 | PC+0x166 | FIELD_WORD | Unknown166 |
| Flight Content Below | N/A | N/A | N/A |
| SMBX PC+0x168 | PC+0x168 | FIELD_FLOAT | Run speed aggregate until flight achieveable |
| SMBX PC+0x16C | PC+0x16C | FIELD_WORD | Can fly |
| SMBX PC+0x16E | PC+0x16E | FIELD_WORD | Is flying |
| SMBX PC+0x170 | PC+0x170 | FIELD_WORD | Flight time remaining |
| SMBX PC+0x172 | PC+0x172 | FIELD_WORD | Holding flight run button |
| SMBX PC+0x174 | PC+0x174 | FIELD_WORD | Holding flight button |
| Misc Content Below | N/A | N/A | N/A |
| SMBX PC+0x176 | PC+0x176 | FIELD_WORD | Index of sprite being stood on |
| SMBX PC+0x178 | PC+0x178 | FIELD_WORD | Unknown X momentum with sprites |
| SMBX PC+0x17A | PC+0x17A | FIELD_WORD | Usually forced to -1 |
| Unused Content Below | N/A | N/A | N/A |
| SMBX PC+0x17C | PC+0x17C | FIELD_WORD | Unused17C |
| SMBX PC+0x17E | PC+0x17E | FIELD_WORD | Unused17E |
| SMBX PC+0x180 | PC+0x180 | FIELD_WORD | Unused180 |
| SMBX PC+0x182 | PC+0x182 | FIELD_WORD | Unused182 |
| SMBX PC+0x184 | PC+0x184 | FIELD_WORD | Unused184 |