Submission #2157: Mukki's Genesis Toy Story in 21:11.93

Sega Genesis
(Submitted: Toy Story)
baseline
GENS
76316
60
12511
Unknown
Toy Story (U) [!].gen
Submitted by Mukki on 12/27/2008 1:10:35 AM
Submission Comments
  • Aims for Fastest Time
  • Manipulates Luck
  • Takes Damage to Save Time
  • Uses Death to Save Time
  • Abuses Programming Errors in the Game
  • Suggested Description
Based on the 1995 Disney Pixar movie of the same name, this game tells the story of a toy cowboy named 'Woody' and his jealousy over his owner's new toy, a 'Buzz Lightyear' figurine. Like its movie counterpart, this game features revolutionary graphics for its era and (for the most part) a unique musical score. This TAS aims to play through the game as fast as possible and is a considerable improvement to the Mukki's first submission to TASvideos.org. This improvement was achieved by use of large timesavers such as optimisation.
  • Optimisation
Some guy submitted a run of this game a few years ago. I don't suggest that you watch it. It is disturbingly bad. Watch this instead.
As soon as I cancelled my first submission I began working on this. As I was relatively new to TASing and had recently made a run of this game I lost interest quickly, but I kept picking at it despite it being a little out of my depth at the time. The gameplay isn't terribly difficult to optimise, but it does require rather extensive and well thought out route planning. An abundance of timed objects, a limited HP bar and a lack of checkpoints are to blame for this. Route planning was a nightmare and soaked up about 65% of all the time put into this run. Over the last 2.5 years I've created more .gmv files than I care to count, branching from my original input file, each one deviating only slightly from one another so as to test all the likely damage possibilities. I eventually settled on what I believed to be the most optimal combination of damage.
Damage management is what I think makes this run interesting so I will explain it as best I can here. Firstly, Woody has 5HP, this is represented by the 5 in the top-left of the screen. All damage in this game does 1HP of damage, whatever situation or enemy, it's all the same. Once the 5th point is lost Woody dies, this allows for 4HP damage per life. Secondly, if Woody dies his HP is refilled to a full 5HP. Death abuse is notably rare in speedruns, mainly because it has little practical application in most games (other than in glitch abuse) due to respawn times. Death/respawn time in this game is very fast, by comparison, making it potentially useful in a speedrun. Thirdly, 1HP of life can be replenished by collecting a golden star, but these stars are few and far between. Also, during the game you can collect silver stars, of which there are many, and following the level in which you collect your 200th star a bonus round is entered. Skipping this round takes a couple of seconds, but it replenishes your health to 5 (a gold star also counts as a silver star). I discovered that in no situation was playing the bonus game faster than a suicide, but as a stylistic choice I collect exactly 199 stars through the course of the game.
Finding the best route relied on the good timing of these factors. Firstly, I had to make sure that Woody only took damage where it was most optimal i.e. if taking damage against enemy X was 2 frames faster than against Y then use the former method, that's a given. What threw a spanner in the works was complicating factors such as the existence of a gold star between X and Y allowing damage on both if the star was only 1 frame out of the way (as repaired damage = no damage at all). Even worse were the timed objects, as you will see there are a lot of them, so saving 2 frames at X may cause a greater loss later in the level as I would arrive too early and it would be faster to take it at Y, sometimes it may be faster to take damage at the timed object. Secondly, suicides had to be tested if it was possible to die quickly at the start of a level or after a checkpoint. This needed to be balanced with playing the remainder of the level with less HP and whatever stars were available. Thirdly, most stars are a little out of the way and deciding which ones to pick up, when/how to pick them up and where to use them was challenging. Testing the best place to initiate the bonus game required a good bit of testing. I could go on, but meh...takes damage to save time.
  • Level Comments
Anyway, to some general observations of what might be viewed as mistakes. In Red Alert! the level won't end until Rocky Gibraltar is under the bed so only optmisation is only required up until he is freed, but I still optimise anyway. Also, I hoped to do something on the bed, but I can't move without collecting more silver stars which I didn't need at this time. In Ego Check you may notice that I swing halfway through the level instead of taking damage in the ravine (whic is faster). This is because using the ball to get out of the ravine and then waiting to get passed the timed shark takes longer. I take damage in Nightmare Buzz so that I am able to damage him on the first frame in the first cycle. In A Buzz Clip you may notice a strange wobble trick at the beginning. This is a sequence of input I discovered by watching RC's velocity that allows me to preserve maximum velocity while turning. The turning takes considerably longer though and is useless on the tighter corners. In Revenge of the Toys while falling from great height I use my whip to cancel the landing delay giving me control of Woody much sooner. Also, the wobbling you see while falling is lag elimination and this can be done without losing time as I have to land on at a specific pixel position in order to whip the blockade optimally rather than land as far to the left as possible. In Revenge of the Toys I can gain 2 stars every time I get a checkpoint which was good. At the last part of the level the toy plane worked very badly against me but another star could be luck manipulated from the baloon at the end. It's a reasonably unlikely drop and so I had to drop a number of frames to explode the baloon at the correct frame. This is why I don't use the falling whip technique. When whipping Rocky at the end I stop to hit him, this is because the whip animation can be cancelled by jumping backwards on the frame he takes the damage. This is faster than whipping him in mid-air from either end. In Really Inside the Claw Machine turning looks suboptimal, but it isn't. Turning stops Woody entirely whereas turning while running (although it takes me out of the optimal path) is faster in most cases as Woody keeps moving. Aliens in a confined space must be must be picked up head-on which is why I turn (i.e Aliens in a corner etc.). It doesn't work backwards for some reason. Also, the collision detection works with Woody's screen rather than him itself which is why it's not always possible to hug corners. In The Claw I allow it to carry Buzz to the other end so as to greatly shorten the following rounds. The Claw always pulls Buzz a few pixels to the right before he becomes vulnerable so the battle will be impossible to win if I let him carry Buzz too far to the right the first time. I use 2 suicides in Sid's Workbench. This essentially splits the level in two; the initial bench and the 'hot, hot hot!' scenes. For the latter finding the optimal positions in which to pause and not take damage from the yo-yos and when to do so was difficult. It may seem that I stop in front of yo-yos that take longer and take damage from ones that it would not take as long to avoid. You would be correct, however avoiding those yo-yos puts the other in worse positions. I stop so that the complete pause time through the level is the lowest (and hence fastest). The Battle of the Mutant Toys features the run's final suicide. I discovered a cool little gltch in this level that saves a nice bit of time. If you whip a hook to swing on it, but push the opposite direction to the impending swing for 1 frame on the final frame Woody warps to the other side of the hook allowing you to swing in the other direction. In Day-Toy-Na I sometimes have to brush the side of the track slightly to make the turn's optimally. I don't lose any time, but I think the bumping sounds are quite annoying. The remainder of the game is pretty straight forward, if anyone has any questions please ask.
Thanks to Joe Stanski for his realtime run of the game and for sharing various tips and thoughts on potential damage routes.

adelikat: Updating the submission file at request of the author. This new submission file fixes a desync that happened on the last frame of the movie.

NesVideoAgent: Hi! I am a robot. I took a few screenshots of this movie and placed them here. I'm not sure I got the right ROM though. (I tried Toy Story (U) [!].gen, which was the closest match to what you wrote.) Well, here goes! Feel free to clean up the list.

mmbossman: Wow, so many different gameplay styles! Excellent health and life management also. Easily accepted.
ShinyDoofy: Processing...
Last Edited by adelikat on 1/17/2022 6:41 PM
Page History Latest diff List referrers