Difference between revisions of "Super Mario Kart:RAM map"

From Data Crystal
Jump to navigation Jump to search
(more/better info)
 
(17 intermediate revisions by 10 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. These were ascertained for Player 1 using bowser on 150cc mode (shouldn't make a difference, though)
+
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>
 
<pre>
 
Player kart position coordinates, 2 unsigned bytes each:
 
Player kart position coordinates, 2 unsigned bytes each:
7E1058 = how far south
+
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)
Line 10: Line 11:
 
How many coins, unsigned byte: 7E0E00
 
How many coins, unsigned byte: 7E0E00
  
Player kart facing angle, 2 unsigned bytes: 7E0095
+
Camera facing angle, 2 unsigned bytes: 7E0095
 
north = 0
 
north = 0
 
east = 64
 
east = 64
 
south = 128
 
south = 128
 
west = 192
 
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:
 
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
Skidding/spin out of control, 2 signed bytes: 7E10AA
 
Not skidding = 0
 
Skidding a little to the right = -1 to about -12000
 
Skidding a little to the left = 1 to about 12000
 
Spinning out of control = more than about +/- 16500
 
(eg hit a bananna skin, shell, etc)
 
  
 
Items, 2 unsigned bytes: (7E0D70, 7E0C69)
 
Items, 2 unsigned bytes: (7E0D70, 7E0C69)
Line 38: Line 40:
 
lightning = (8,56)
 
lightning = (8,56)
 
selecting/spinning = (0-8,?)
 
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
 
Height in hop/jump/ramp, 2 unsigned bytes: 7E101F
 
on ground = 0
 
on ground = 0
above ground = 1+
+
above ground = 1  
  
 
Status, unsigned byte: 7E10A0
 
Status, unsigned byte: 7E10A0
Line 79: Line 83:
 
finished = 133
 
finished = 133
  
collision detection, unsigned byte: 7E1052
+
Collision detection, unsigned byte: 7E1052
 
not collision = 0
 
not collision = 0
 
collision = 7, then one less each frame down to 0
 
collision = 7, then one less each frame down to 0
  
 
Gopher attatched to kart, unsigned byte: 7E1061
 
Gopher attatched to kart, unsigned byte: 7E1061
No = 0
+
no = 0
Yes = 152 / 153
+
yes = 152 / 153
  
 
Mushroom shrunk, unsigned byte: 7E1030  
 
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>
 
</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

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 MapRAM MapText TableNotesTutorials



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(?)