Game objectives

Collect helicopter and safe item drops to complete 3 race minigames and 4 cannon minigames to "beat the system"
  • Emulator used: fceux-2.0.2
  • Aims for fastest time to reach the final "you beat the system" screen
  • Manipulates luck
  • Makes entertainment and speed tradeoffs

Game Description

High Speed was released on the NES by Rare Inc. in 1991 and is based on a real pinball machine released by Williams pinball in 1985. The core rules of High Speed were ported over fairly faithfully from the original pinball machine although Rare added in two different minigames and a "wizard mode" goal which is reached by completing a total of 8 cannon minigames and 6 race minigames.

Why TAS High Speed?

I had always enjoyed pinball as a kid but High Speed on the NES was what eventually motivated me to purchase several pinball machines, High Speed included. Rare had previously ported Pinbot to the NES in which they opted to do unusual things like changing the ball into a triangle while with High Speed they took a “let's add stuff to the game that would be technically impossible in a real pinball machine” approach. Between the two games I feel High Speed offers more depth and a lot more defined goal, so I decided to do a TAS on it as my first project. This is the first game I've attempted a TAS on so please have grace with me if I've missed something.

Game goals

The game places item drops (I call them tokens) at random on the playfield which can be collected by shooting the ball past them. Collecting three helicopter tokens causes a racing minigame to start and collecting three safe icons causes a pachinko-style cannon shooter minigame to start. Entering the minigames with more than one ball allows for more balls in the race minigagme and a faster shooting rate in the cannon minigame (but always comes at the consequence of a longer bonus countdown). Completing all three races and all four cannon minigames causes a spaceship to appear which displays a message that states "you have beaten the system... for now”; beating another round of three races and four cannon minigames causes a rocket to appear which states “you have beaten the system this time.” and marks the end of the game. Reaching this final “you beat the system” bonus is the goal of this speedrun.

Section by section comments

Game start and intro

The first thing you'll notice about this game is the unskippable cutscenes. They're long. They can't be skipped. I'm restating the obvious but they more than double the movie length. I play around with some input animations throughout to pass the time and advance as quickly as it is possible to do so but I'd recommend speeding past them by taking advantage of a Lua script I wrote which can be found at http://lua.pastey.net/98416. I believe this script makes this game go from a somewhat questionable TAS choice and turns it into something a lot more reasonable from a viewing perspective.
Once the game starts, I immediately turn off the voice option because the game pauses while it's talking (a very annoying trait even outside a TAS run).

Pre-multiball

Once the game starts, I use a series of keypresses to trigger safe item drops to appear on the screen as quickly as I could manipulate them in to showing up. Collecting all three safe items starts the first cannon minigame. I stick with only one ball until the first round of cannon minigames are complete in order to significantly reduce the bonus count time.

The first four cannon minigames

When I first started my TAS on this game I did not realize that the strength of the shot is altered by holding down the fire button AFTER the ball has left the cannon. Equally interesting is the fact that it's possible to slightly alter the path of a ball that's already been launched by moving the cannon. This is even required in order to land the ball in one cup on the last cannon minigame table. I frequently had to wait for several frames before firing another shot to ensure the first ball that was fired still landed in the cup hence what sometimes looks like sub-optimal firing patterns.

Multiball

This is really where things start to get entertaining to watch. The extra balls make for a much more interesting movie and give more balls to collect items with (it's also possible to collect two tokens at once during an “escape bonus” that happens when two balls are locked at once). At one point in this section I let a ball go behind / under the right flipper for a split second before returning it to play.

The first three race minigames

In the race minigame hitting your red car makes it go faster while hitting enemies fouls them up, although the speedup effect is not consistent. There are booster / nitro item drops that appear randomly (but with rules about what frames they can appear on) which also increase the speed of your car. During a couple of the first race minigames I was unable to effectively manipulate the luck in order to get boosters to appear and relied instead on attempting to hit the car as frequently as possible. I got poor boosts off of a few hits in the first couple of races but worked around this more effectively in later race courses.

The spaceship and the next three race minigames

After completing the first four cannon minigames and the first three race minigames, a spaceship appears and abducts the balls. This is *not* the end of the game despite what some game FAQ's may state. The countdown takes a while but can be turbo'ed through automatically using the Lua cutscene skip script.
From here on out, luck manipulation takes on an entirely new meaning. I created a fairly customizable item finder script which I have posted to http://lua.pastey.net/98417. This script was used extensively for triggering boost item drops and was also used on the main table to trigger exactly the item drop I wanted. This accounts for the sometimes seemingly random flipper action, although I did my best to try to keep this to a minimum. The races switch to being much more oriented on getting boosters with hitting the car is relegated to being a secondary goal.
At the end of this section I do some very fun tricks with one of the more impressive being a point at which two balls drain down the middle but get sent to the sides of the playfield through the outlanes and get shot back into play (in the real High Speed pinball machine only the left outlane has a kickback and the switch is further up the lane). This trick requires a fair amount of nudging and causes a danger warning to flash in the scoring area but no other badness (and I was waiting for the game to allow me to collect a bonus anyway so I had time to kill).

The last four cannon minigames

After all of the races are complete there's regrettably no need for multiball, so I sadly let two fall SDTM before starting the last round of cannon minigames. By this point I created a Lua script which moved the cannon to the far right, fired a shot with a given strength and waited to see if it filled a cup and then tried again with successively higher strength shots up to a limit before moving one position to the left and trying again. This script saved me a LOT of trouble because I could just let it go and then take over when it found a result. I even created a deterministic bot which could complete any table without user input but the code got very messy by the time I got done. In fact, I'm holding off on posting the normal cannon shooter script for now as I still need to clean it up a bit first.
Overall the last four cannon minigames go by fairly quickly (I like how the brown background one looks almost like it has a problem with balls raining down on it). I ran out of creative things to do on the main table with only one ball to play with but I did what I could. After completing the last minnigame a rocket appears and takes the ball to the second and final bonus countdown; after this point the tables repeat and there are no new bonuses.

Future Improvements

Luck manipulation could still be improved to a certain extent, but pinball movement is a very tricky thing to manipulate. This game (and likely Pinbot, High Speed's sister game) uses a small amount of randomization in ball physics, meaning player input can have an impact on how a ball will react when a collision occurs. Quantifying what input produces a given bounce result is nearly impossible but manipulating luck to cause specific item drops on the main playfield is actually fairly straightforward. For this reason the actual ball handling is sometimes a bit loose but the item placement and orbit shots are usually spot on. This area could potentially be improved but I suspect it will still mostly be a matter of, well, luck. :)
Hex / TAS Editor twiddling is typically not a possibility in this game as the score and the frame number after entering or leaving a minigame are both used for randomization. The cannon minigame is somewhat consistent in that once the game starts a given set of input will produce the exact same output but I was unable to copy entire shot sequences en masse.
Overall, future improvements would include tighter times on the first couple of races and more boring but precise ball handling prior to getting into the safe and helicopter.

Memory addresses

Some of these were fairly difficult to track down. On the main table, $064F indicates what item has been dropped (but not where); 64 = a Safe drop, 65 = Helicopter drop, and 66 = a Moneybag drop (which only scores points and can be entirely avoided). $07B0 is the game's universal timer countdown. In the race minigame the address $06A1 indicates the status of boosters on the screen; 255 = no boosters, 0 and 1 = booster on the left or right side of the playfield respectively, and 128 and 129 indicate the booster has been collected on the respective side of the screen. In the cannon minigame, $07AC is the cannon angle where 00 is far right and 95 is far left. $0699 is a counter that generally shows you how many balls you can fire before it requires you to wait for some to drain. $03EE and $07B3 are the number of cups that you've filled and the total number of cups on the table, respectively.

Thanks

I've been a long-time lurker and I'd like to say I never would have attempted an unassisted run without all of the information posted both in the FAQ's and the forums. While there always a few bad eggs in any group I cannot overstate how professional this community conducts itself and how impressed I am at the level of dedication and tenacity on display here. Thanks to everyone who helps make this what it is.
Specific thanks goes to DeHackEd, Alden, qFox, and Xkeeper who all helped with Lua scripting – I appreciate it and look forward to more Lua goodness from everyone in the upcoming Lua contests.
Let me know if you have questions about this submission or if I forgot anything (or anyone). Thanks all!

mmbossman: Thanks to those who provided some additional input, accepting for publication.
ShinyDoofy: Processing...

adelikat: The hash in the movie file does not match the good dump but syncs on it, so I cataloged as the good one.


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15577
Location: 127.0.0.1
This topic is for the purpose of discussing #2116: dwangoAC's NES High Speed in 20:05.56
Editor, Expert player (2478)
Joined: 4/8/2005
Posts: 1573
Location: Gone for a year, just for varietyyyyyyyyy!!
Wow, this is SO much better than your first submission. There were many entertaining moments and the ball control was outstanding. The game gets a bit repetitive, but the movie is definitely worth publishing in my opinion. I hope to see more stuff from you, dwangoac. Please choose a game with less fireworks next. :P
Banned User
Joined: 8/2/2008
Posts: 420
Location: italy
Technically good, gets boring after a while. 3.9, 8.6 And guess what? I encoded it.
Gone.
Twisted_Eye
He/Him
Active player (398)
Joined: 10/17/2005
Posts: 632
Location: Seattle, WA
Amazing work! Other than what can't be helped (Very repetitive, spinner noise was a little annoying, long cut scenes), this was a fun, impressive run to watch. The two minigames made it noticeably more entertaining and varied than the Pinbot run of some time ago. I've always loved to hate pinball games, so this run and its fun tricks were delightful.
Moderator, Senior Ambassador, Experienced player (907)
Joined: 9/14/2008
Posts: 1014
The cutscenes are most definitely a drag. The Lua script at http://lua.pastey.net/98416 is highly recommended as it significantly shortens the time waiting on cutscenes (it brings the entire movie down to 10 to 12 minutes or so depending on how fast your system can fast forward). There's a definite possibility that a future run could be improved by changing the "route" I took, or to phrase that differently the order I chose for beating the minigames. I opted to do cannon set 1 > all races > cannon set 2, but I think the order could be switched with no significant loss of frames. After re-entering the main table, there's a long delay where no item drops can occur but the stoplight can be advanced towards multiball. This rule could be taken advantage of in a future run to do two sets of multiball to make the order cannon set 1 > multiball > race set 1 > lose two balls > cannon set 2 > multiball > race set 2. The run wouldn't be any shorter but it would break things up a bit and it would finish stronger. It would probably also be possible to not go around the orbit so much - that spinner isn't nearly as obnoxious in real life. :) Thank you for the feedback from those of you who watched it. Nineko, thank you very much for the encode. Is it possible to encode while running a Lua script? If so, it would be well-worth a re-encode with the Lua cutscene skip script running (using either turbo or maximum speed depending on the encoding rig's capabilities and how it sounds audio wise). I've never done an encode but I'll look in to it on my end as well. Again, I appreciate the feedback from everyone. Have a great weekend, A.C. ******
I was laid off in May 2023 and became too ill to work this year and could use support via Patreon or onetime donations as work on TASBot Re: and TASBot HD is stalled. I'm dwangoAC, TASVideos Senior Ambassador and BDFL of the TASBot community; when healthy, I post TAS content on YouTube.com/dwangoAC based on livestreams from Twitch.tv/dwangoAC.
Joined: 5/2/2006
Posts: 1020
Location: Boulder, CO
fun to watch. little repetitive, and I am no fan of cut scenes, but the length was right for the type of game.
Has never colored a dinosaur.
Moderator, Senior Ambassador, Experienced player (907)
Joined: 9/14/2008
Posts: 1014
dwangoac wrote:
The Lua script at http://lua.pastey.net/98416 is highly recommended... ~snip~ Nineko, thank you very much for the encode. Is it possible to encode while running a Lua script? If so, it would be well-worth a re-encode with the Lua cutscene skip script running (using either turbo or maximum speed depending on the encoding rig's capabilities and how it sounds audio wise). I've never done an encode but I'll look in to it on my end as well.
I had originally taken on this TAS while I was unemployed but I got a fantastic job a couple of weekss ago and I don't currently have the time to look back in to encoding the movie while using the cutscene skip script. Nineko, is there any chance I can talk you in to giving the cutscene encode a shot? No is a completely acceptable aanswer but I figured I'd ask. Thanks again for the original encode, A.C. ******
I was laid off in May 2023 and became too ill to work this year and could use support via Patreon or onetime donations as work on TASBot Re: and TASBot HD is stalled. I'm dwangoAC, TASVideos Senior Ambassador and BDFL of the TASBot community; when healthy, I post TAS content on YouTube.com/dwangoAC based on livestreams from Twitch.tv/dwangoAC.
Banned User
Joined: 8/2/2008
Posts: 420
Location: italy
dwangoac wrote:
Nineko, is there any chance I can talk you in to giving the cutscene encode a shot? No is a completely acceptable aanswer but I figured I'd ask.
I don't get what you mean, but the best way to talk to me here, is to click this magic button:
Gone.
Experienced player (828)
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
I've sat down twice to watch this now, but have gotten distracted each time with other things. So, in an attempt to stir up more viewers, I'll give my initial impression: The pinball action is great, but there's not enough of it. The large amount of cutscenes dilute down the action, although they're not overly annoying. Anyway, I'll get around to doing some judging on Thursday and Friday, but in the mean time, it would be nice to have a few more opinions to base my decision on. And, just a reminder, publishing a movie with the cutscenes edited out is not an option.
Living Well Is The Best Revenge My Personal Page
Experienced player (828)
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
Sorry for the double post, but I've had a chance to watch this all the way through, and I'm very torn on what decision to make. On the positive side, the action elements were very well done. The research into the game engine is impressive, and the pinball movement and management is very good. The racing mini-games get somewhat stale, but they are handled well and the pachinko section was pretty sweet. On the negative side: the cutscenes. They really break up the flow of the run, and create some very boring waiting periods which destroyed the entertainment factor for me. A TAS can't be judged selectively on the parts that are enjoyable, without taking into account the disappointing parts as well. As this run has received some positive feedback from a scant few people, I'm going to leave it open for another week to see if anyone else shows interest. Regardless of the decision made, I commend dwangoac on the very complete job done with this TAS, and look forward to more work from him in the future.
Living Well Is The Best Revenge My Personal Page
Editor, Expert player (2478)
Joined: 4/8/2005
Posts: 1573
Location: Gone for a year, just for varietyyyyyyyyy!!
OK, I'll try to give more feedback to help judging it. I wouldn't know what to do with it myself, even though my initial reaction was that it should be published. I have no clearly formulated arguments available, but here are some random thoughts from my wandering stream of consciousness: 1. The movie is significantly different than any of the other pinball movies. Compared to the others, High Speed is a bit more traditional pinball game and offers opportunities for cool "trick shots", especially when three balls are at the table simultaneously. The action itself might even be a bit more fast-paced than in the other pinball movies. 2. On the other hand, there are still many pinball games available that might produce a same type of movie, without the unnecessarily long cutscenes. However, all of them will not provide a sense of progress, like High Speed does with the sub-goals of completing the set of minigames (which are rather entertaining by the way). The game even congratulates the player for "beating the system", which gives the feeling of completeness to the movie. 3. Anyway, pinball games like this might be better suited for playaround type of movies, if there were enough funny things to do with the balls. I don't know really, since I haven't seen any such movies yet. 4. I watched it again now and the only thing that made me bored was the cutscenes. However, the author has shown extra effort to help the audience by providing a lua script to skip the cutscenes, so that should not be a serious problem. Besides, almost all games have some unskippable stuff, like Wario Land 4 with about 45 seconds of waiting between the levels, which was equally tedious. These games have probably much more than twice the average cutscenes. The effect is more profound due to the games being completed very effectively. High Speed was clearly not designed to be watched like this. I actually find it quite hilarious that the super cool cutscenes (which are designed to make playing the game more enjoyable) have the result that the game is more boring to watch as a TAS. 5. The movie offers what it is expected to offer: good pinball action. Pinball fans will likely enjoy it a lot regardless of the cutscenes. Most of the people will probably get bored at some point, though. 6. No big harm is done, if the movie gets rejected, unless the rejection discourages the skilled new author from making more movies in the future. I hope that helps even a bit.
Joined: 10/3/2005
Posts: 1332
Definitely publishable, IMO. The action makes up for the cutscenes. 6.5|9.
Player (210)
Joined: 7/7/2006
Posts: 798
Location: US
Since you were looking for more opinions, I watched nineko's encode. Having never played this game before, this movie is pretty interesting for the first ten minutes or so. The minigames bring some interesting viewing, and the playable portions of the run are fairly action packed with some pretty good music. I would think this movie is quite impressive to people who have played this game before. I myself went through about half the run without fast-forwarding, and I found it all to be entertaining up until it got pretty repetitive. 5/9
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15577
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. ---- [1228] NES High Speed by dwangoAC in 20:05.56