Have you ever wondered how long the tracks are in Super Mario Kart, or how fast Bubsy Bobcat is running compared to Sonic, or how far it is to walk between Onett and Forside in Earthbound? Well, maybe not, but if you have I have the perfect program to answer your questions!
A while back I wrote a little Lua script, just for fun, for the programmable emulator known as Biz Hawk. If you don't know what Biz Hawk is, you can read more about it and download it yourself here. Basically, it works by tracking the coordinates of some in-game object in memory (typically the player character) and calculate both it's speed and the distance traveled based on it's change in position.
I call it the SNES Speedometer, although technically it's also an Odometer, and it can be used for more than just SNES games. Below, I give an example of it being used in Super Mario 64. In Screenshot-1 you can see the HUD for the speedometer, rendered over the game screen.
In the bottom left corner, circled in red, you can see the stats the speedometer actually tracks. The first, 'Loc' is the actually location of the object being tracked. The second, 'Dist' shows the total distance traveled. And finally third, 'Vel' shows the velocity of the object at that particular point in time.
In the top left corner, circled in blue, you can see the speedometer graph, showing changes in velocity over time. The 'peek' stat tells you what your maximum velocity was over the last 10 seconds, or basically the highest point in the graph. This view is optional though, so you can disable it while you are playing, if you don't want the graph cluttering your screen.
CURRENTLY THE FOLLOWING GAMES ARE SUPORTED
It is possible, however, to extend the script to support virtually any game. To do so, one simply need to find the RAM address of the object they wish to track. Sometimes, this involves having to follow a pointer to another object. There are a few other details as well, but everything you need to know is explained in the source code.
If this sounds like something you might be interested in, download the code and give it a try! I would love to hear how people use this, or if anyone manages to extend it to other games. Whenever real world measurements are given, I have tried to be as accurate as possible, however I know not everyone will agree with me. If you think I got the scaling factor wrong, you can always change it in the source code.