This is an improvement to NES Excitebike; faster times are obtained for all six tracks with a combined savings of 1.38s. Time is saved by taking ramps at higher speeds and by a technique discovered by XKeeper which paradoxically gains time by going slower.

Game objectives

  • Emulator used: FCEUX 2.1.1
  • As fast as possible by in-game timer

The Times

TrackOld TimeNew TimeImprovement
036.5436.190.35
138.2437.840.40
238.8638.670.19
341.9841.960.02
441.0241.000.02
531.7431.340.40
Cumulative in-game savings: 1.38s

Comments

First, some quotes from the forums:
"Excitebike is a fun game to play, but it's quite easy to play it nearly perfectly by regular means." --Bisqwit, 2004
"Pretty bad idea doing a timettack I dont think it can be faster than someone at Twin Galaxies. Very easy game." --Phil, 2004
Well, five years and five submissions later, I think we're getting close...;)
This submission really uses just 3 new techniques to save time:

Taking ramps faster

Not much to say here. Excitebike is simple in that the only way to boost speed above 3.25px/frame is to hit the triangle ramps. Speed can then be maintained indefinitely.
A couple minor discoveries allowed me to lose less speed taking the ramps in the 1st 3 tracks. First, it's better to push up (switching lanes upward) at the last possible frame to take the shortest possible jump. Second, the game seems to detect ramp collisions only every other frame. This can lead to cases where one drops right through the ramp at a certain speed, but by dropping a frame somewhere, one can hit the ramp instead.

Avoid getting too far ahead of the screen

This trick, discovered by XKeeper, makes use of the way the game tracks the bike's advancement on the track and saves time on tracks 0, 1 and 5.
Basically, a value ($64) is tracked, from 0 to 8, indicating how many pixels the bike must advance before showing more of the track. At a speed of 1, it would take 8 frames to get from 8 down to 0; at speed 4, it would only take 2 frames. Each frame, the bike's speed is subtracted and the value is checked. If it's <0, the track advances and the value is increased by 8. If >0, the track doesn't advance, and the value is left as is.
However, when speed is greater than 8, the value can actually wrap below 0 (255, 254, etc). If speed is kept >8 long enough, the value hits <128, and several frames must elapse before advancing again.
Why does this happen? My suspicion is the game logic just checks the highest bit in determining whether to advance. For values 128-255, this bit is 1. At 127, though, the high bit is 0, so the game interprets it as the bike needing to travel 127 pixels before advancing.
One further note is that one can finish a track a handful of frames earlier if the value is 128<value<0 when crossing the finish line. So, there is no "optimal speed" per se; the best time is achieved by exceeding a speed of 8 for a brief time, then keeping speed at/near 8 so as to finish with the value < 0.
I abuse this behavior in various ways to do some fun stuff. When the value is <0, the game will advance on every frame as long as the speed is at least one. So, I actually slow down substantially at the end of tracks 1 and 4 without losing any time.

Optimizing the timer

Finally, there's a global counter which determines when, at the beginning of a track, the bike can start accelerating. However, this timing is not fixed in relation to when time starts! The optimum situation is when the bike starts 2 frames before the timer does; the worst case is the timer starting 1 frame before the bike. I drop a frame in track 2 to manipulate this effect to save a couple frames in track 3. For tracks 3 and 4, the 0.02 savings is entirely due to this behavior. Unfortunately, for track 5, dropping frames in the prior track did not alter the (worst possible) behavior, probably due to a frame rule. So track 5's lap time is 3 frames slower than in the published run due to this effect, despite having a faster overall time.

Further Improvements

I can't say this run is perfect, but I can say I have no ideas for improving it further, despite trying many, many things. Good luck to all who try!

Style

I did the best I could with style in this game. I decided to try for a certain "theme" for each track to try to spice things up...I added subtitles to the run to make the viewer aware, but here they are:
  • Track 0: Taking big, long jumps
  • Track 1: Lots of wheelies!
  • Track 2: Make other bikes crash
  • Track 3: Minimalist (don't hit other bikes, no bounces, few turns)
  • Track 4: Wrap-around the screen whenever possible
  • Track 5: Bouncing ball!
I did other things, like intentionally overheating on track 4 to make it interesting. Not sure if I did JXQ's run justice in this respect, but I tried...enjoy!

Thanks

Thanks to JXQ, Luke G, and FODA for the very enjoyable prior runs. Thanks to XKeeper for a very impressive technical discovery, and to Randil for helping me figure out the game's timer behavior.
mmbossman: Going slower to go faster, huh? Interesting. Accepting as an improvement.

Raiscan: Processing slowly to go faster.


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15544
Location: 127.0.0.1
This topic is for the purpose of discussing #2383: Lord_Tom's NES Excitebike in 05:29.44
Player (210)
Joined: 7/7/2006
Posts: 798
Location: US
Well done. A full second is a pretty fair gain for a 4th(?) version. The entertainment was sufficient. Yes vote.
Skilled player (1409)
Joined: 5/31/2004
Posts: 1821
Good job optimizing, yes vote.
Active player (253)
Joined: 7/30/2006
Posts: 207
Location: Alefgard, USA
Great job! Entertaining to the end. I also greatly appreciate the comments you've inserted into the video.
Player (71)
Joined: 8/24/2004
Posts: 2562
Location: Sweden
Great run. Liked it a lot. :) I think there is a typo in the time table. "1 37.84 38.24 0.40" I think 37.84 should swap place with 38.24, right? Thanks for this run. Enjoyed it.
Lord_Tom
He/Him
Expert player (3142)
Joined: 5/25/2007
Posts: 399
Location: New England
Highness: Thanks, fixed it.
Player (79)
Joined: 7/7/2008
Posts: 873
Location: Utah
I enjoyed it. Yes vote.
Joined: 6/23/2009
Posts: 150
Wow, I didn't expect this game to get beaten, but then agian the frame war in SMB shoulda told me that no game can be assumed to be perfect.
Player (121)
Joined: 2/11/2007
Posts: 1522
Very nice, Mr. Tom. The technical details are impressive and the stylistic choices are well thought out and executed. What will you conquer next? :D Here is an encode with subtitles: http://dl.getdropbox.com/u/1665523/excitebike-taspreview-LordTom.mkv
I make a comic with no image files and you should read it. While there is a lower class, I am in it, and while there is a criminal element I am of it, and while there is a soul in prison, I am not free. -Eugene Debs
Joined: 7/2/2007
Posts: 3960
Thanks for the encode, Alden! Looked like a solid run. With this kind of improvement it's difficult to see the actual changes that made the run faster unless you use frame-advance and look at the inputs and memory. But hey, the small numbers are slightly smaller now, and that's good enough for me. :)
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
mklip2001
He/Him
Editor
Joined: 6/23/2009
Posts: 2227
Location: Georgia, USA
Very nice job! I liked seeing the details in your submission comments about the new improvements. I would've never suspected that Excitebike could get this technical. Also, the style choices were clever; my favorite was probably track 5, since I would probably want to be that bouncy and carefree if I could ride with TAS power.
Used to be a frequent submissions commenter. My new computer has had some issues running emulators, so I've been here more sporadically. Still haven't gotten around to actually TASing yet... I was going to improve Kid Dracula for GB. It seems I was beaten to it, though, with a recent awesome run by Hetfield90 and StarvinStruthers. (http://tasvideos.org/2928M.html.) Thanks to goofydylan8 for running Gargoyle's Quest 2 because I mentioned the game! (http://tasvideos.org/2001M.html) Thanks to feos and MESHUGGAH for taking up runs of Duck Tales 2 because of my old signature! Thanks also to Samsara for finishing a Treasure Master run. From the submission comments:
Shoutouts and thanks to mklip2001 for arguably being the nicest and most supportive person on the forums.
Experienced player (702)
Joined: 2/19/2006
Posts: 742
Location: Quincy, MA
Loved it. With the fact that I've speedrun this on console, it's impressive to see how much faster my best track time compares with the TAS. Track 0: Me - 43.69 TAS - 36.19 Quite ridiculous times indeed. Yes vote of course. :D
Super Mario Bros. console speedrunner - Andrew Gardikis
Skilled player (1826)
Joined: 4/20/2005
Posts: 2161
Location: Norrköping, Sweden
Very exciting run indeed, and nice use of subtitles! Here's an easy yes vote.
Experienced player (623)
Joined: 11/30/2008
Posts: 650
Location: a little city in the middle of nowhere
well done sir!
Measure once. Cut twice.
fsvgm777
She/Her
Senior Publisher, Player (225)
Joined: 5/28/2009
Posts: 1213
Location: Luxembourg
Well done. Giving themes for each racetrack is a nice idea. I really enjoyed watching this run.
Steam Community page - Bluesky profile Oh, I'm just a concerned observer.
Mitjitsu
He/Him
Banned User
Joined: 4/24/2006
Posts: 2997
Nice improvements, yes vote.
Expert player (2466)
Joined: 6/2/2009
Posts: 1182
Location: Teresópolis - Rio de Janeiro - Brazil
Vroom... Yes vote for sure!
I am old enough to know better, but not enough to do it.
Former player
Joined: 8/1/2004
Posts: 2687
Location: Seattle, WA
Very nice improvement. Yes vote on this. Subtitles were cute, too.
hi nitrodon streamline: cyn-chine
Player (100)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
This game sure has wonky physics, particularly when the bike moves vertically off the screen. Otherwise, everything looked well optimized so I'm giving this a yes vote.
Active player (328)
Joined: 2/23/2005
Posts: 786
This was cool, and it was also the first movie I've ever seen which uses subtitles. Good improvements and good style!
Former player
Joined: 8/15/2005
Posts: 77
impressive! sweet! yes
Active player (437)
Joined: 4/21/2004
Posts: 3517
Location: Stockholm, Sweden
I am honored to vote yes.
Nitrogenesis wrote:
Guys I come from the DidyKnogRacist communite, and you are all wrong, tihs is the run of the mileniun and everyone who says otherwise dosnt know any bater! I found this run vary ease to masturbate too!!!! Don't fuck with me, I know this game so that mean I'm always right!StupedfackincommunityTASVideoz!!!!!!
Arc wrote:
I enjoyed this movie in which hands firmly gripping a shaft lead to balls deep in multiple holes.
natt wrote:
I don't want to get involved in this discussion, but as a point of fact C# is literally the first goddamn thing on that fucking page you linked did you even fucking read it
Cooljay wrote:
Mayor Haggar and Cody are such nice people for the community. Metro City's hospitals reached an all time new record of incoming patients due to their great efforts :P
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15544
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [1348] NES Excitebike by Lord_Tom in 05:29.44
Joined: 11/11/2006
Posts: 1235
Location: United Kingdom
The .mkv encoded for the publication includes the author's subtitles from the movie file. These are likely to be enabled by default depending on your media player, but can be disabled if desired. Enjoy :)
<adelikat> I am annoyed at my irc statements ending up in forums & sigs
Banned User
Joined: 12/23/2004
Posts: 1850
1 = 37.84 :) It's nice to see that this movie was finally improved. I was wondering if anybody would take what I learned and put it to use! Congratulations on discovering the other tricks, too. I probably never would have found them if I tried TASing it.
Perma-banned