- Aims for fastest real-time completion
- Abuses a programming errors (Drive Off-Road)
- Uses an in-game code to access the hardest difficulty level (Hyper Speed)
- Emulator Used: gens_movie_9Z
Game Particulars
Outrun was a popular arcade racing game by Sega, it was released in 1986. The game existed in both a stand-up and sit-down arcade cabinet versions. Due to its popularity, the game was released on many different platforms over the last 20 years. Typically, these versions of the game attempt to remain true to the original but cut corners due to running on less powerful hardware. The Sega Genesis version was released in 1991 and was the best version available next to the actual arcade version until it was released on Sega Saturn in 1996 (in Japan only). The original Outrun was also included in Shenmue on the Dreamcast (2001), Shenmue II (XBOX, 2002) and as an unlockable in Outrun 2 (XBOX 2004). Interestingly, the version included in Shenmue II is the only version of the original Outrun to use the official Ferrari license (the car’s graphics are modified accordingly).
Why This Game?
I distinctly remember standing in front of a stand-up arcade cabinet at a local restaurant when I was a child. I would move the steering wheel back and forth, watching the "attract mode" action unfolding on the screen before me. On the very rare occasion that I was allowed to have a quarter to put into the machine, my lack of experience lead to me running out of time in the second course. My parents bought me a Super Nintendo and Game Boy, which were great, but Outrun was released on the Sega Genesis and so it remained out of reach. Though I now own a Sega NOMAD (portable Genesis) it is through emulation that I was finally able to play Outrun as much as I desired.
Game Structure, Optimal Path
The Courses in this game are connected to one another in a way that forms the first 5 rows of Pascal’s Triangle (where each number in
Pascal's Triangle indicates the number of unique paths that are available to access said course). Exactly 5 courses must be completed in order to reach one of the five goals (A - E). Each goal provides a different completion animation. There are 16 different paths that can be taken to beat this game and I had to test all of them. Two paths turned out to be nearly equal and clearly better than the others: LLLR and LLRL. It was not until I completely optimized the second level, "Gateway" that LLRL pulled ahead of LLLR ... by 9 frames (the in-game timer had them equal). Before then, LLLR had been faster every time I found an improvement in Gateway. This run uses the LLRL path and completes the game in 15,944 frames with an in-game time of 3'50"13:
OutRun_JU_LLRL_15944frames_49.32-47.75-46.93-46.08-40.05_20070606.gmv
1 | 2 | 3 | 4 | 5 | Goal Name |
---|
| | | | Vineyard | A |
| | | Wilderness | |
| | Desert | | Death Valley | B |
| Gateway | | Old Capital | | |
Coconut Beach | | Alps | | Desolation Hill | C
|
| Devil's Canyon | | Wheat Field | |
| | Cloudy Mountain | | Autobahn | D
|
| | | Seaside Town | | |
| | | | Lakeside | E
|
Wikipedia.org excerpt:
As can be seen from the properties of Pascal's Triangle, if a route through the game is chosen at random, the player is most likely to end up at goal C ("Desolation Hill", 3/8 probability); "Death Valley" (goal B) and "Autobahn" (goal D) each have a probability of 1/4; whilst "Vineyard" (goal A) and "Lakeside" (goal E) each have a 1/16 probability.
It is possible to see all fifteen stages by playing only five games. It is also possible to see all five endings whilst avoiding the stage "Alps" and one (but not both) of "Old Capital" and "Wheat Field".
Goal | Animation |
---|
A | Driver is thrown in the air by the crowd, but ends up falling to the ground when crowdsmen are startled by bikini-clad blonde. |
B | Car falls to pieces and driver shrugs it off. |
C | Driver wins a magic lantern and after he rubs it, several beautiful girls appear surrounding him, and his passenger becomes angry. |
D | Gold cup is given to passenger, instead of driver. |
E | Driver wins a gold cup, and passenger wants it. |
Tricks Used
Drive Off-Road Without Slowing Down: This is performed by switching gears back and forth between Low and High fast enough to prevent the game from registering the surface currently being driven on. The trick can be performed by turboing C but, to make certain that this run was frame perfect, I had to manipulate the gear shifting a bit to make sure that I stopped or started the trick as soon as possible. This could be done by staying on one of the gears for an extra frame or two for several shift cycles. This trick allowed me to chop over 20 seconds off my time and also gave me more freedom to play around and provide entertaining situations for the viewer.
Off-Road Perfect Friction: When using the above trick, the car's horizontal position becomes locked provided left and right are not pressed and the car is completely off of the regular track. I use this to stay away from obstacles on sharp turns that would normally require slowing down.
Screen Extends Further on the Right: It is possible to move several pixels further right in this game than left. I use this in the fourth course, "Old Capital" to get outside of the boat house chimneys to avoid slowing down. This can only be done by going to the right side of the screen, the left side prevents you from going far enough over to avoid hitting them.
Vehicle and obstacle manipulation: The position, type and number of cars on the track can be manipulated and are based by your horizontal position and (to a greater extent) the frame that you arrive at an area immediately preceding the section that contains vehicle(s). The position of obstacles on the side of the road actually change depending on the frame number you enter their loading zone at. The problem is, it is very difficult to make single frame differences to when you approach an area. This is due to the increased steering when moving slower as well as the desirability of using the Drive Off-Road trick for extended periods of time.
Turbo Start: The arcade version of Outrun has a turbo start if you properly time the revving and gunning of the engine. The Genesis version does not have this feature and just properly timing when to begin hold the accelerator without any revving gets a nearly optimal result. However, it is 1 to 3 frames faster to rev the engine before gunning it, as I do in this run. I believe it has something to do with the way the display frames update out of sync with one another so that I can begin with just a smidge more power. This allows me to hit 215 mph at frame 1647 (in-game time 16.02) rather than frame 1650 (in-game time of 16.07).
Watch the Ending: I do not do this trick in the submitted movie but the viewer is welcome to perform it after the movie ends. To view the credits simply enter your name as "ENDING" at the high score menu after the movie has ended. If I included this in the run, it would add 2178 frames to the run with the last input occurring at frame 18,122. The ending would be over at frame 26,429 (this is the first frame you can press start to return to the main menu and it occurs after the “congratulations” splash screen). These credits are also supposedly accessible by beating the game with each of the 5 different exits, I have not tested this though.
Why Now?
Outrun was my first foray into the world of TASing. I did my first run of the game back in October of 2004 and uploaded it to the forums on this site. It was suggested that I use a trick to drive off road without slowing down. Using this strategy I achieved a 20 second improvement resulting in a time of 3'51"89. At the time, I considered this to be nearly perfect. I would have submitted it but the run had a nasty de-sync that I couldn't fix. After submitting my Mario Kart 64 TAS I decided to come back to this game. I used everything I had learned about TASing with Mario Kart 64 and applied it here. I managed to chop 1.76 seconds off of my original TAS. The new time of 3'50"13 in 15,944 frames came as a result of a whole lot of testing and optimization. The improvements in the Gens re-recording emulator offered me more control over frame-by-frame movement and I rarely experienced a de-sync.
I would have submitted this run already if it had not been for the fact that I had discovered that it was possible to cut into the trees on Devil's Canyon around the turn that made me lose over 60 frames otherwise. This cut improved my time on this course and the following course. It also led me to the discovery that Lakeside could be done at full speed with a similar strategy. I do use tree-cuts on the submitted run, sometimes just to show off but sometimes to save time.
Possible Improvement / Strange Nuances
Odd frame updating & possible lag:The game typically updates the view-field once every 3 frames with the on-screen display being updated one frame prior to the playing field. There are times when the view-field remains stagnant for four or five frames, this appears to be due to level loading as it occurs almost always when taking a turn towards a new level and also occurs midway on some of the longer and more complex levels. When the game takes more than 3 frames to update the view-field it is sometimes impossible to continue to the "drive off road" trick uninterrupted. At this point, if you are using the trick, you will lose a lot of speed. Because of this, some levels require strategies involving braking and staying on the road where it may seem that one could Drive Off-Road. Wheat Field is a good example of this; the walls on the sides of the course require you to Drive Off-Road outside of them for a long period of time but there are sections where this loading issue ends the Drive Off-Road trick.
Improvements in previous levels always result in an improvement in the level directly following: An improvement of less than 3-5 frames may result in the same in-game time for that course but an improvement on the following course.
I do have a faster completion (wrt the in-game timer) using a different path from the submitted run. However, the resulting frame-count is 44 frames greater than the submitted run. The RRRR path is supposedly the hardest path in this game. However, with all of the tricks I had learned in the submitted run, I was able to break this path apart and achieve an in-game time of 3’50”09 in 15988 frames:
OutRun_JU_RRRR_15988frames_48.96-48.56-47.88-46.66-38.03_20070606.gmv
This particular run is not optimized to the same degree as the submitted run. However, it is not for lack of trying. I faced tremendous difficulty when attempting to optimize this strategy. When I first did this trick, I had slowed down around a corner earlier on in the same course that I later discovered could be done a full speed using the Drive Off-Road trick. When I went back to include this trick and provide a more aesthetically pleasing run overall, I was unable to duplicate this tree cut trick. Manipulating the landscape is a difficult task in this game and this trick requires the trees to be in a very specific position to allow cutting both into and out of the trees. The following is a demonstration of how close I have come to duplicating this trick on an optimized run:
OutRun_JU_RXXX_48.96_FirstCutSuccess_SmidgeTooFast.gmv
As you can see, I’m either a hair too fast and the landscape does not sync up perfectly to allow the trick I expended well over 10,000 rerecords just trying to get this trick to work. I posted about my efforts in the Genesis forum on this site and have decided it is time to submit my other run as-is and hope that, some day, the RRRR strat can come together. For that to happen though, it may require that a bot be written to play this specific part of the track.
My next project? Probably a Mario Kart 64 Star Cup test run.
adelikat: Rejecting due to game choice. As
Deign said in the discussion thread, after 500 frames you've seen everything this game has to offer. And what it offers is a car moving side to side and a constant skidding sound. This type of game is problematic for a TAS. Better luck next time (as in hurry up with a MK64 submission ;P)