Difference between revisions of "Super Mario Kart:RAM map"
Jump to navigation
Jump to search
m |
|||
(27 intermediate revisions by 11 users not shown) | |||
Line 1: | Line 1: | ||
{{rammap|game=Super Mario Kart}} | {{rammap|game=Super Mario Kart}} | ||
+ | |||
Locations of variables in RAM, | Locations of variables in RAM, | ||
− | for the US version of Super Mario Kart for the Super NES | + | for the US version of Super Mario Kart for the Super NES. These were ascertained for Player 1 using Bowser on 150cc mode (shouldn't make a difference, though) |
− | + | <pre> | |
− | + | Player kart position coordinates, 2 unsigned bytes each: | |
− | Player kart position, 2 bytes | + | 7E008C = how far south |
− | |||
7E0088 = how far east | 7E0088 = how far east | ||
So the 'origin' of the map is in the North West (top left) | So the 'origin' of the map is in the North West (top left) | ||
− | How many coins, | + | How many coins, unsigned byte: 7E0E00 |
− | + | Camera facing angle, 2 unsigned bytes: 7E0095 | |
north = 0 | north = 0 | ||
east = 64 | east = 64 | ||
Line 17: | Line 17: | ||
west = 192 | west = 192 | ||
− | Player kart speed, 2 bytes | + | Kart facing angle (note: relative to the camera angle), 2 signed bytes: 7E10AA |
+ | Going straight = 0 | ||
+ | Going a little to the right = -1 to about -12000 | ||
+ | Going a little to the left = 1 to about 12000 | ||
+ | Spinning out of control = more than about /- 16500 | ||
+ | (eg hit a bananna skin, shell, etc) | ||
+ | |||
+ | Player kart speed, 2 signed bytes each: | ||
speed to the east = 7E1022 | speed to the east = 7E1022 | ||
speed to the south = 7E1024 | speed to the south = 7E1024 | ||
− | + | overall speed = 7E10EA | |
− | |||
− | |||
− | |||
− | |||
− | |||
Items, 2 unsigned bytes: (7E0D70, 7E0C69) | Items, 2 unsigned bytes: (7E0D70, 7E0C69) | ||
Line 39: | Line 41: | ||
selecting/spinning = (0-8,?) | selecting/spinning = (0-8,?) | ||
− | Height in hop/jump/ramp, 2 bytes | + | 7E0D7C (2u) also indicates item, and is set the instant you go over an item square |
+ | |||
+ | Height in hop/jump/ramp, 2 unsigned bytes: 7E101F | ||
on ground = 0 | on ground = 0 | ||
− | above ground = 1 | + | above ground = 1 |
− | Status, | + | Status, unsigned byte: 7E10A0 |
on the ground = 0 | on the ground = 0 | ||
jump/hop/ramp = 2 | jump/hop/ramp = 2 | ||
Line 50: | Line 54: | ||
in deep water = 8 | in deep water = 8 | ||
− | Surface type, | + | Surface type, unsigned byte: 7E10AE |
unused power up square = 20 | unused power up square = 20 | ||
deep water = 34 | deep water = 34 | ||
mario circuit road / ghost valley road / used power up square / rainbow road = 64 | mario circuit road / ghost valley road / used power up square / rainbow road = 64 | ||
bowser castle = 68 | bowser castle = 68 | ||
− | doughnut plains | + | doughnut plains track = 70 |
− | koopa | + | koopa beach sand = 74 |
choco island track = 76 | choco island track = 76 | ||
ghost valley rough bit / bowser castle rough bit / ice = 78 | ghost valley rough bit / bowser castle rough bit / ice = 78 | ||
choco island bridges = 80 | choco island bridges = 80 | ||
choco island slightly rough bit of track = 82 | choco island slightly rough bit of track = 82 | ||
− | mario circuit | + | mario circuit off road = 84 |
choco island off road = 86 | choco island off road = 86 | ||
snow = 88 | snow = 88 | ||
− | koopa | + | koopa beach bushes / doughnut plains grass = 90 |
shallow-water = 92 | shallow-water = 92 | ||
mud puddle = 94 | mud puddle = 94 | ||
− | Gopher attatched to kart: 7E1061 | + | Lap number, two variables, both unsigned bytes: |
− | + | byte 7E10C1 = lap you're currently on | |
− | + | byte 7E10F9 = maximum lap you've reached | |
+ | 0 = 127 | ||
+ | 1 = 128 | ||
+ | 2 = 129 | ||
+ | 3 = 130 | ||
+ | 4 = 131 | ||
+ | 5 = 132 | ||
+ | finished = 133 | ||
+ | |||
+ | Collision detection, unsigned byte: 7E1052 | ||
+ | not collision = 0 | ||
+ | collision = 7, then one less each frame down to 0 | ||
+ | |||
+ | Gopher attatched to kart, unsigned byte: 7E1061 | ||
+ | no = 0 | ||
+ | yes = 152 / 153 | ||
− | Mushroom shrunk, unsigned | + | Mushroom shrunk, unsigned byte: 7E1030 |
no = 0 | no = 0 | ||
yes = 128 | yes = 128 | ||
+ | |||
+ | Boost-counter (undocumented feature - see http://tasvideos.org/SuperMarioKartPhysics.html). | ||
+ | Two unsigned bytes: 7E10CA | ||
+ | |||
+ | Kart skidded out of control, unsigned byte: 7E10A6 | ||
+ | normal = 0/2 | ||
+ | using a star = 0/2/28 | ||
+ | hit a banana-peel = 12 | ||
+ | skidded out right = 14 | ||
+ | skidded out left = 16 | ||
+ | in a mini-boost = 18 | ||
+ | at mini-boost peak = 28 | ||
+ | hit something (eg a wall) = 18/28 | ||
+ | |||
+ | In a mushroom boost or not, unsigned byte: 7E104E | ||
+ | in the boost = 58 | ||
+ | not = 26 | ||
+ | </pre> | ||
+ | {{Internal Data|game=Super Mario Kart}} | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Notes by lytron | ||
+ | |||
+ | $7E/1x14/5 - NPC driver Sprite - #$03C0 Mario, #$??84 Toad, #$0788 DK, #$??8C Bowser | ||
+ | $7E/1x17-B?- NPC driver x-coordinate(?) | ||
+ | $7E/1x1C-F?- NPC driver y-coordinate(?) |
Latest revision as of 02:22, 21 February 2019
The following article is a RAM map for Super Mario Kart.
Locations of variables in RAM, for the US version of Super Mario Kart for the Super NES. These were ascertained for Player 1 using Bowser on 150cc mode (shouldn't make a difference, though)
Player kart position coordinates, 2 unsigned bytes each: 7E008C = how far south 7E0088 = how far east So the 'origin' of the map is in the North West (top left) How many coins, unsigned byte: 7E0E00 Camera facing angle, 2 unsigned bytes: 7E0095 north = 0 east = 64 south = 128 west = 192 Kart facing angle (note: relative to the camera angle), 2 signed bytes: 7E10AA Going straight = 0 Going a little to the right = -1 to about -12000 Going a little to the left = 1 to about 12000 Spinning out of control = more than about /- 16500 (eg hit a bananna skin, shell, etc) Player kart speed, 2 signed bytes each: speed to the east = 7E1022 speed to the south = 7E1024 overall speed = 7E10EA Items, 2 unsigned bytes: (7E0D70, 7E0C69) nothing = (0,60) mushroom = (0,52) feather = (1,52) star = (2,56) banana = (3,56) green shell = (4,48) red shell = (5,52) coin = (7,56) lightning = (8,56) selecting/spinning = (0-8,?) 7E0D7C (2u) also indicates item, and is set the instant you go over an item square Height in hop/jump/ramp, 2 unsigned bytes: 7E101F on ground = 0 above ground = 1 Status, unsigned byte: 7E10A0 on the ground = 0 jump/hop/ramp = 2 fallen off edge = 4 in lava = 6 in deep water = 8 Surface type, unsigned byte: 7E10AE unused power up square = 20 deep water = 34 mario circuit road / ghost valley road / used power up square / rainbow road = 64 bowser castle = 68 doughnut plains track = 70 koopa beach sand = 74 choco island track = 76 ghost valley rough bit / bowser castle rough bit / ice = 78 choco island bridges = 80 choco island slightly rough bit of track = 82 mario circuit off road = 84 choco island off road = 86 snow = 88 koopa beach bushes / doughnut plains grass = 90 shallow-water = 92 mud puddle = 94 Lap number, two variables, both unsigned bytes: byte 7E10C1 = lap you're currently on byte 7E10F9 = maximum lap you've reached 0 = 127 1 = 128 2 = 129 3 = 130 4 = 131 5 = 132 finished = 133 Collision detection, unsigned byte: 7E1052 not collision = 0 collision = 7, then one less each frame down to 0 Gopher attatched to kart, unsigned byte: 7E1061 no = 0 yes = 152 / 153 Mushroom shrunk, unsigned byte: 7E1030 no = 0 yes = 128 Boost-counter (undocumented feature - see http://tasvideos.org/SuperMarioKartPhysics.html). Two unsigned bytes: 7E10CA Kart skidded out of control, unsigned byte: 7E10A6 normal = 0/2 using a star = 0/2/28 hit a banana-peel = 12 skidded out right = 14 skidded out left = 16 in a mini-boost = 18 at mini-boost peak = 28 hit something (eg a wall) = 18/28 In a mushroom boost or not, unsigned byte: 7E104E in the boost = 58 not = 26
Internal Data for Super Mario Kart |
---|
ROM Map • RAM Map • Text Table • Notes • Tutorials |
Notes by lytron
$7E/1x14/5 - NPC driver Sprite - #$03C0 Mario, #$??84 Toad, #$0788 DK, #$??8C Bowser $7E/1x17-B?- NPC driver x-coordinate(?) $7E/1x1C-F?- NPC driver y-coordinate(?)