Here is an improvement of 231 frames to the previous submission.
Emulator used: FCEU 0.98.16

Track times

TrackPrevious LapNew LapPrevious TimeNew Time
024.0323.5637.5036.54
125.0524.5739.2138.24
223.8423.2140.4338.86
326.0926.0842.0041.98
426.7326.7241.0441.02
519.8519.8431.7631.74

Details

The first three levels each have a ramp that can be hit with less slowdown that the boost it will give. Speed is able to be tuned pretty finely, and so many speeds can be tested by delaying the throttle in different ways before hitting the previous ramp.
In addition to this fine-tuning, you can also lower your jump height by moving upwards after hitting the lower part of the ramp. The character does not actually move higher, but will not have to fall as far to hit the next ramp.
In level 0 and 1, I was able to get a speed of 5.252, compared to the previous submission's 5.140. In level 2, I improved the speed to 4.200 over the previous 4.123. Since this speed boost can be retained throughout the level, the savings add up.
Here are the memory addresses I used:
  • 0094 speed
  • 0090 speed sub-pixel
  • 0050 x-position
  • 0394 x-position sub-pixel
  • 008c y-position
  • 0026 slant timer
  • 004c speed timer
  • 0384 y-velocity?
  • 0380 y-velocity? sub-pixel
I tried to make the submission as different as possible since this is a minor improvement, but Luke did a great job with the style of the previous run, so there wasn't much new stuff to show. I tried to hit as many bikes as possible :)
I intended to write a program to try and simulate the game for me to find optimum achievable speeds, but I wasn't able to figure out all the details of how vertical speed is calculated. Though I tried a lot of possibilities, these times may be further improvable, and I encourage others to try if they are interested.