(Link to video)
2-second-offset subtitles for publisher/encoder: https://pastebin.com/GaqrFLCZ
  • Aims for fastest time
  • Extremely minor speed/entertainment tradeoffs
  • Manipulates Luck
  • Abuses Glitches
  • Genre: Racing
Now this is podracing! Star Wars Episode I: Racer (not "Star Wars Podracer" as it is often misremembered) is a racing game based on the podracing sequence in Star Wars: Episode I. All of the pilots and their podracers from the movie are available for the player to select and control as they race through a variety of racetracks on various planets from the Star Wars universe, including the famous Boonta Eve Classic on Tatooine in which Anakin Skywalker won his freedom.
The game features a tournament mode that sees the player start as a fledgling pilot, winning money ("Truguts") from races that they can use to upgrade their podracer. There are three circuits initially available to play, and a fourth unlockable invitational circuit. While the player can complete as many circuits as they desire, completing the Galactic circuit (the hardest of the initially available circuits) beats the game and results in a credit sequence.
In this TAS, I take control of 4 different podracers and make quick work of the Galactic Circuit by taking advantage of incredibly dangerous and difficult skips, as well as by manipulating the game's RNG and acquiring incredibly unlikely perfect upgrades that put me way ahead of the normal upgrade curve.

Credits

While I happen to be the only contributor of input to this TAS, the SWE1:R speedrunning community was deeply entwined in its creation. I doubt I would have ever finished this TAS without their support.
  • acE - for advice, feedback, coaching, research, review, encouragement, help with writing these notes, and pretty much everything. He's one of the best speedrunners of this game in the world and his input directly shaped much of this TAS.
  • andypanther - for advice, feedback, spicy prequel memes for these notes, and acting initially as an ambassador to the speedrunning community, and encouraging me to join the discord. This TAS either wouldn't have been completed or would have been of very poor quality in comparison if andypanther didn't point me the right way. Voted most likely to take on the mantle of TASing this game.
  • Digital Unity - for advice, feedback, contributions to these notes, and encouragement throughout the process of making this TAS.
  • Domirae - for advice, feedback, and encouragement throughout the process of making this TAS.
  • Galeforce - advice, feedback, encouragement, and for providing a huge collection of memory addresses for the game, and also later writing a Lua GUI script for tracking information that I used throughout the entire process.
  • Gamedraco - for advice (especially w/ regards to the N64 version of the game), feedback, and encouragement throughout the process of making this TAS.
  • Hyuudoro - for advice, feedback, encouragement, and for his WR N64 run that I referenced constantly throughout this TAS.
  • kingbeandip - for advice, feedback, coaching, and encouragement throughout the process of making this TAS.
  • Nfro - for contributions to the commentary.
  • Nok - for contributions to the commentary.

Category

The any% category requires that you get to the credit sequence as quickly as possible. The only way to get a credits sequence in this game is to complete the Galactic Circuit. The any% category also permits the use of upgrades and skips. Skips are shortcuts in courses that require you to go out of bounds, generally by clipping through walls, or by launching your podracer out of the map through gaps in collision planes.
There are other any% categories for this game that have different rules for upgrades and skips, but those categories are generally labeled specifically as such (for example, any%, no skips, no upgrades).

General Tech

Tilting

The player can tilt the podracer in the 4 cardinal directions. The effect of tilting the nose of the podracer down is that the podracer loses some handling (turning), but gains a bit of acceleration and charges the boost meter. Holding nose up causes the podracer to slow down while on the ground, and to reduce falling rate while in the air.
Tilting left and right has a more immediately obvious effect since the podracer physically flips onto a side. Tilting left or right also reduces the podracer's turning radius, but also reduces the effect of slopes on the podracer's speed, and increases the amount of "launch" a podracer gets from a ramp. It also physically reduces the width of the podracer, which allows for cutting corners more closely and fitting through narrow passageways.

Racing Lines

Racer handles differently from most other racing games when it comes to "racing lines," or the general lines you want to follow to traverse a course most optimally. Podracers do not lose their ability to turn as they gain speed, and they do not lose speed as they are turning. This means that traditional concerns like turn apices and large turn radii to maintain speed are not necessary in Racer. That is not to say that it isn't useful to sometimes take a turn wide in this game (this is still necessary when you can not turn fast enough to safely take a turn while boosting, for instance), but viewers with a knowledge of racing lines might find the pathing in this TAS strange.
Given that turning and speed are disconnected in this game, racing lines in this game simply take the form of the shortest path between points. A way to visualize this is to imagine a red thread that is running through the course and pulled taught. The thread will form a straight line between corners, and wrap around the inner curve of turns. For a theoretical podracer with perfect handling, following this thread exactly would always be optimal. Another consequence of this disconnect is that braking is extremely rarely used in speedruns of the game except in cases where speed is so great that podracers can not turn quickly enough to take a turn safely.

Sliding

Racer features a sliding mechanic like some other racing games have, namely Mario Kart's drifting. Racer's slide mechanic does not work quite the same though. In this game, holding the slide button causes the podracer's traction value to be cut in half. The practical effect this has on the handling of the podracer is that it allows the player to start "pre-turning" for a turn that is coming up, sooner than would otherwise be possible. Since traction is significantly reduced, the podracer starts to turn in a direction, but the podracer does not actually adjust to the turning as strongly as it would otherwise.
When the slide button is released, the podracer regains its traction, and the podracer will suddenly lurch in the direction that it is facing when this happens. This can have the effect of making it look like the podracing is suddenly gaining speed at the end of a slide like happens at the end of a Mario Kart drift, but this is not the case - the podracer simply changes its heading suddenly.
Sliding is used all throughout this TAS to both take turns that would otherwise be impossible and to modulate more gradual turns while maximizing turn radius for the eventual release at the end of a turn.

Boosting

After reaching a certain threshold speed, a green dot will light up on the speedometer. The player can then hold nose-down, and a meter will fill up on the speedometer over 1 second. When the meter fills, the dot changes to yellow, and by releasing the accelerator button and holding it again, the player will activate boost. During boost, the player will gain an enormous amount of speed, quickly at first, and more slowly the longer the player holds the boost. While this is happening, the player's engines will start to heat up. When the engines get hot enough, a warning beeping will start playing, and if the player continues holding the boost, an engine will catch fire.
One of the most important facets of speedrunning this game is avoiding "underheating" or allowing your engines to completely cool off and not boosting. Podracers' engines all heat up and cool off at different rates, but the maximum amount of "heat" each podracer can store at a given time is 100. If heat is sitting at 100, then the player is wasting this resource since it can not increase further. Every attempt needs to be made to always be boosting enough that engine heat never reaches 100.
Another aspect of boosting very important to speedrunning is to try to keep boosts as long as possible. Boost speed continues to increase the longer a boost is held, so the player is rewarded directly with more efficient use of boost heat the longer their boosts are since more speed is gained from them.

Upgrades

Stats

The raw any% category permits buying upgrades. Upgrades can be purchased from Watto in between races using your winnings. There are 7 types of upgrade that correspond to the 7 visible stats of each podracer: traction, turning, acceleration, speed, air braking, cooling, and repair.
For this TAS, the most important upgrades at first are speed. A maxed out cooling upgrade is next because it allows you to boost more often. Turning and traction are upgraded as much as is possible to help with some of the twistier courses. None of the rest of the upgrades are worth the time it takes to buy them later in the run.

Pit Droids

Pit droids can be purchased between races like upgrades, but serve a different purpose. They repair damage to your podracer between races. Damage that you incur during races is added to a total that is then distributed semi-randomly to your upgrades after a race. If you take a lot of damage, then your upgrades get damaged and work less effectively for the next race, unless you have pit droids to take care of them.
Each pit droid can repair a certain amount of damage, so as long as we avoid taking too much damage, our pit droids will always be able to repair our podracer to full health between races. You generally can not avoid taking some damage in the races because landing after jumping even small heights will damage you a tiny bit. On many courses it's impossible to avoid damage at all.
Pit droids are also pivotal to getting upgrades in an any% run and being able to afford high-tier upgrades, as will be explained in the next section. For this TAS, only two droids are purchased (combined with the one you start with) because I am able to guarantee a low level of damage after each race, and just 3 droids will be able to keep the podracer in perfect condition. RTA runners would generally always buy all 3 extra pit droids since it's very difficult to keep damage low enough that only 3 will suffice.

Watto's Junkyard and RNG Manipulation

You can buy upgrades from two places - Watto's shop, and his junkyard. The shop works like you might expect - a variety of upgrades with tiers appropriate to your progress through tournament mode are available at 100% health/quality for a set price. Watto's junkyard is a luck-based shop however. In Watto's junkyard, one upgrade of each type with a random health/quality value between 40% and 90% is strewn about. There are no restrictions on the tiers of upgrades that can show up here, so you can see the highest tier upgrades appear at the very start of the game. Pit droids play a part here - after you buy a very damaged part from Watto and win a race with it, your Pit Droids will repair it to maximum health (if you drove well!), meaning you can then trade it in to Watto at full price, which can yield a huge net gain in money.
What makes the junkyard so valuable to an any% run is that you can find high-tier upgrades that are very damaged and heavily discounted, which means you can afford them long before you would normally be able to. Manipulating the junkyard occurs at two points - the frame on which you exit the results screen of the previous race, and the frame on which you change your podracer (if you do). By combining these two sources of entropy for the RNG, we can make insanely unlikely parts show up in the junkyard that allow us to get way, WAY ahead of the upgrade curve. The first two trips to the junkyard in this TAS are manipulated such that we are already rocking a tier 5 speed upgrade after winning just one race.
Brute-forcing scripts were used for all of the RNG manipulation in this TAS, and collectively I tested something like 10,000 junkyard permutations in total across 3 visits. With around 10,000 permutations tested, only a handful met acceptability criteria and of those even less were chosen as candidates for this TAS. The brute-forcing was not done on the main movie so the rerecord statistic was not affected by the scripts. While there were days and days of RNG manipulation done to get these results, there are actually only 5 inputs in the whole TAS that represent manipulating the RNG. They are just really well-timed inputs!

Version Differences

The game was originally released on the PC and the N64 in 1999, and ported to the Mac and Dreamcast a year later. There was even a Podracer arcade game that featured actual podracer controls like Anakin had in the movie! Recently, the game was re-released on Switch, XBox One, and PS4. The two most popular versions of the game are the original PC and N64 versions, with the PC version being the most popular in the speedrunning community. The N64 version is limited in comparison to the PC version in many aesthetic ways but also in a few important ways that affect the timing of this TAS:
  • Space restrictions of the N64's cartridge format means that the following features are missing:
    • No pre-rendered intro movie.
    • No pre-course pre-rendered cutscenes that introduce the planet/environment.
    • No race music except for the third lap
    • No pre-race taunts/banter.
  • The (relatively) limited processing power of the N64 also imposes these more serious limitations:
    • Longer load times
    • The game runs at 24fps, which affects the physics of the game significantly.
This game's physics are tied directly to the framerate that the game is running at, and the PC version can run at 60fps. The effects of the lower framerate of the N64 are lower gravity, lower traction, reduced wall-climbing ability, and other effects. See https://www.speedrun.com/swe1r/guide/3mfsv for more details on all of the differences. A lower framerate means the N64 version has lower traction across all racers, which isn't necessarily a negative since lower traction makes sliding more powerful. However, lower traction and lower gravity combined also means that it's much harder to keep a boost going since small bumps often give you enough of a bounce to damage you when you land.

Timing

acE's PC World-Record Run: https://www.youtube.com/watch?v=vPf8PyvZUj8
Hyuudoro's N64 World-Record Run: https://www.youtube.com/watch?v=pwPZjhAvJG0

Course Times

N64 WR RunPC WR RunTASPC WR - TAS
Executioner5:32.5945:26.0675:26.083-0:00.016
Sebulba's Legacy2:33.8032:21.7102:13.7020:08.008
Grabvine Gateway5:44.3395:09.4404:46.0770:23.363
Andobi Mountain Run4:57.5934:17.5613:54.6570:22.904
Dethro's Revenge2:24.9862:21.2872:09.4380:11.849
Fire Mountain Rally6:42.4885:42.2345:25.9910:16.243
The Boonta Eve Classic6:10.0544:59.4094:44.4270:14.982
Total IGT34:05.85730:17.70828:40.37501:37.333
†: acE set his new PC WR just a day before I finished this TAS, which was 2 seconds ahead of the WR for Executioner. For his new WR, acE bought a healthier Plug3 than was purchased in the TAS, which gave acE a higher top speed for Executioner which, in combination with his exceptional skill, allowed him to close the gap and beat the TAS time.

Splits

WR N64 RunWR PC RunTAS
Executioner06:01.905:3805:42
Sebulba's Legacy09:19.508:3108:23
Grabvine Gateway15:23.814:1013:49
Andobi Mountain Run21:09.418:3517:58
Dethro's Revenge23:55.621:0420:27
Fire Mountain Rally30:48.626:5226:06
The Boonta Eve Classic37:10.731:5731:05
†: The PC version enjoys almost non-existent load times, and the early split times reflect this. The N64 version has about 35 seconds of load time for an any% run.
‡: The splits listed here for the TAS were timed using RTA timing.

Route Breakdown

The first course of three circuits are initially available, and the Galactic Podracing Circuit is chosen as completing this circuit makes the game's credits play. The player is able to choose a reward distribution mode before each race, and the "Winner Takes All" mode is always chosen so that the player gets the most amount of money (4400 Truguts) after each race.

Select Ebe Endecott

Ebe Endecott is chosen as our first podracer due to his excellent cooling and handling stats out of the available starting racers. His pod's cooling stat will allow us to boost as much as possible which is extremely important early on when our top speed is quite slow.

Shopping Trip 1

"Welcome to Watto's Shop huh? Take a look around! I've got everything you need! Eh?" -- Watto
The player starts the game with 400 Truguts, and the first upgrade we want to get is a speed upgrade. The tier 1 speed part the player starts with, a Plug2, is worth 1000 Truguts for trade in. Even the most damaged tier 3 speed part is too expensive, so we want to find the cheapest tier 2 speed upgrade we can get. The junkyard is manipulated and a 106 health Plug3 is found for 998 Truguts, which leaves us with 402 Truguts. For an RTA, the chances of a buyable Plug3 showing up in the first visit to the junkyard is about 7%.
We want to find the cheapest Plug3 we can buy here rather than the healthiest we can afford because the next shopping trip we do will require nearly all of our cash, and the less we have now, the smaller an already tiny band of possible upgrades we want becomes later.

Executioner

Since we are just starting out and do not have any significant upgrades, and there are no special tricks or skips for this track, it is a little boring. A special feature of this stage are the anti-gravity tubes that suspend your pod more or less in the middle of the tube and have you take twists and turns that change your orientation the entire time such that you are upside-down, leftways, and anyways. The anti-gravity tubes feature fast terrain, so boosting is kept to a minimum in them but without underheating the engines, which would be wasting potential boost power later.
During a normal RTA run, skilled runners would actually ride up the walls leading to the vertical anti-gravity tube and "launch" into it. This is because it is very easy to crash and explode while entering the vertical tube at top speed, and getting a rounder approach can help prevent this from happening. Since this is a TAS, I don't bother with this since I can guarantee that I survive entry into the anti-gravity tube.

Select Toy Dampner

Toy Dampner is unlocked for completing the previous track, and is selected for the next track due to him having a higher average speed than Ebe owing to his improved boost stats.
Shopping Trip 2 For our second shopping trip, we now have 4400 Truguts from our winnings and 402 Truguts leftover from the first shopping trip, so 4802 Truguts total. The Plug3 we bought the first time around has now been repaired to max health by our Pit Droid, and is worth 2400 Truguts in trade-in value. So, at this point we have 7202 Truguts of buying power, which gives us just enough money to buy the 4 most-damaged versions of the tier 5 speed upgrade, a Block5.
An extremely damaged Block5 showing up in the junkyard after the first race in an any% run is sometimes called a "godblock" and it is an extraordinarily rare circumstance to enjoy. The player not only needs to get lucky enough to get a plug3 in the first junkyard visit that is damaged enough to give the player the funds to afford the block5, but then must be lucky enough for the block5 to show up at all. The Block5 is just one of 5 possible speed upgrades that might show up in the junkyard, and the only damage values of that Block5 (of which there are 129 possible) that allow the player to afford it are the lowest 4 values.
RNG was manipulated here in order to find the godblock with the absolute minimum price (most damaged) possible, which costs us 7000 Truguts, and leaves us with 202 Truguts for the next (and last) shopping trip. The chances of this happening for an RTA run - that is, a Plug3 showing up in the first junkyard visit that leaves enough money for a godblock - followed by a godblock showing up in the next junkyard visit, are about 1 in 5000.

Sebulba's Legacy

This course is another straightforward course, with only one trick to save time. Near the end of the course, there is a large hairpin turn that can be skipped entirely by turning right extremely sharply, and hopping onto a cliff ledge that partially spans the gap formed by the hairpin.

Select Elan Mak

"A surprise to be sure… but a welcome one." -- Sheev Palpatine
The choice of switching to Elan Mak for the next race is a little complicated. Elan Mak's pod has some of the worst handling stats in the game, and also the highest boost thrust stat of the available podracers in this category and very good cooling/boost heat stats. This makes Elan Mak as fast as a rocket, and his pod handles like one as well. Given that Elan Mak's pod has these stats, it might be surprising to find out that the track he was chosen for, Grabvine Gateway (GVG), is largely considered the hardest track in the game for speed demon podracers, with some of the most sinuous and punishing switchbacks/hairpins the game has to offer.
The reason for this actually has a lot to do with the next track, and trying to limit the amount of time that is spent between races buying stuff or selecting pods. Since Elan Mak is the optimal podracer to use for the next track, Andobi Mountain Run, selecting him here means we do not need to return to the podracer select screen for the first time after this race, saving time. Second, though GVG punishes Elan Mak's pod's handling quite severely in some sections, other sections of the course reward it in equal measure. The long downhill spiral section of this map allows Elan to boost for almost the entirety of his tank, which gets us to over 1000 speed during that section. Having perfect TAS controls helps mitigate Mak's poor handling in the swamp to the degree that we are at least able to boost out of the section (just barely).

Shopping Trip 3

"Look around… I gotta lots of-a Junk-ins." -- Watto
This shopping trip is where the most intense RNG manipulation of the run takes place. For this shopping trip, we want to get a tier 6 speed upgrade (Block6), a tier 6 cooling upgrade (Turbo Coolant Pump), the best turning upgrade that we can afford in addition to the previous 2 upgrades, and then a traction upgrade from the shop. In addition, we also want to buy at least 2 pit droids so that all of our upgrades are completely repaired at the conclusion of the next race. So we need to do all of that, in a single shopping trip (to save time), with extremely limited funds. There are no upgrades past this list that are worth the time it takes to shop for them, so this is the final shopping trip of the run.
In order to be able to afford this insane amount of high-tier upgrades we want for this junkyard visit, each upgrade needs to be in a narrow band of damage values to make it work. For the Block6, we want it to be in the range of about 80% damage, because at this damage level, the Block6 actually costs about the same as the trade-in value of our now repaired Block5. For the turbo, we want it as damaged as is possible. The turning upgrade is the wild card of this upgrade path, in that the damage value that we are looking for was targeted for a few possible outcomes of this shopping trip - we want it to be as damaged as little as possible such that we can afford an R-80 traction upgrade from the shop and at least 2 pit droids (1000 Truguts each).
Several thousands of RNG permutations were brute-forced for this junkyard visit, and out of that only a handful of workable results came back. The results of the RNG manipulation for this junkyard visit got us the following results:
  • Control Nozzle (Turning) @ 179 health: 2668 Truguts
  • Block6 (Speed) @ 188 health: 14746 Truguts
  • Turbo Coolant Pump (Cooling) @ 106 health: 2245 Truguts
The chances of the junkyard trips leading up to this one, and this particular trip having all of these upgrades ready to go is about 1 in 2 million. The breakdown of the math of how we are able to buy all of this is as follows:
  1. Winnings from the last race and leftover money: 4602 Truguts
  2. Buy 2 Pit Droids: 4602 - 2000 = 2602 Truguts
  3. Buy Control Nozzle: 4602 + 200 (trade-in) - 2668 = 134 Truguts
  4. Buy Block6: 134 + 17500 (trade-in) - 14746 = 2888 Truguts
  5. Buy Turbo Coolant Pump: 2888 + 50 (trade-in) - 2245 = 693 Truguts
  6. Buy R-80 Repulsorgrip from shop: 693 + 250 (trade-in) - 600 = 343 Truguts
You will notice from this breakdown that by manipulating a Block6 that was at less than 80% health, we actually made money on the Block6 purchase, which helped fund the rest of the gear.

Grabvine Gateway

As mentioned earlier, Grabvine Gateway (GVG) is considered one of the hardest courses in the game. For an any% run, most players would choose Ebe Endecott for this course to take advantage of his significantly better handling, making this course the third hardest of the run, behind the Boonta Eve Classic and Fire Mountain Rally. However, we're using Elan Mak, which means this course is going to be absolutely brutal. It has several sections that consist of extremely tight switchbacks and hairpins, and the jungle section is especially bad with hazards like tree roots spread around the area. It is also a very long track, with each lap lasting around 1.5 minutes, even with the extreme speed of our newly upgraded pod.
There are two shortcuts in this course, both of them being right next to each other. At the entrance of the rock canyon switchback section, right after the downhill spiral, you can take a sharp left turn and hop over the dividing hill directly into the switchbacks, instead of having to drive around it.
The second shortcut is exactly where you land after taking the first shortcut. On the second lap, an earthquake destroys a small section of the canyon walls. Taking an extremely hard right turn right as you land from the first shortcut allows you to take this shortcut and completely skip one of the switchbacks in this section. Making this turn with Elan Mak is extremely difficult due to his poor handling and even with flawless TAS control this shortcut is almost impossible to do.

Andobi Mountain Run

This course contains the first skip that we do in this TAS! It is a difficult skip with a narrow margin for success, but of course we guarantee that it works for all three laps. Just after the long, straight catwalk section that passes through the hill, the course opens up to a large, open area. On the left is a hill that you are not supposed to be climbing, but by doing so, you can clip yourself out of the course and get lined up to land directly in the canyon switchback section further into the course. It is very easy to crash your podracer either when launching off of the slope, or when trying to re-enter the bounds of the course in the canyon switchback section. This skip is generally not used in any% RTA runs because of how risky it is.
Andobi Mountain Run (AMR) contains many branching paths, and it may be exaggerating to call any one of them a shortcut, but there is one particular, very-high-skill path that fits the bill. On the second lap, a tent just forward and left of the starting line opens up. It leads to an ice path that is considered fast terrain, and it is very, very hard to enter the path without crashing. I was able to find a way to not only enter the tent at full speed, but while boosting as well and maintaining that boost by riding the wall of the path as I entered. Once on the ice path, boost is cut in order to enjoy the maximum benefit of the fast terrain.

Select Mawhonic

At this point we switch to Mawhonic, and this is the last podracer switch that is done. Mawhonic is not quite as fast as Elan Mak (his speed stats are actually the same, but his boost stats are slightly worse which make him slower overall), but his pod's handling is much better, which is very useful in the coming tracks. His pod is also quite large, and its shape makes doing some of the skips that are coming up either easier or even possible in the first place.

Dethro's Revenge

There is a lot going on in this course, and it features a new skip that I helped discover in the course of making this TAS!
It was already known that you could clip out of the enclosed catwalk sections of this course, but I accidentally discovered you could clip out of the enclosed tubes that lead up to those sections. By riding the tube wall in the upper section, you can gain speed and launch out of the tube. By then lining up so that you hit the outside of the catwalk section you can bounce your podracer along the outside of the track, skipping the entire catwalk section. As impossibly hard as it looks in action, this skip was actually worked out and proven in real-time by the speedrunners before I managed to implement it in the TAS! The amount of time this skip saves is actually not that much and isn't being used by any% RTA runs as such.
A very cool-looking shortcut is at the end of this track as well. Another enclosed catwalk section leads to the final jumps of each lap, but you can launch off of a tunnel exit leading up to that enclosed section and instead land on top of it. The edges of the enclosure act as fast terrain, so I ride the edges as long as possible. By approaching and hitting the edges of the roof of the enclosure just right, you can also bounce off of the path and cut the corners as a shortcut. The extents to which I did this in the TAS are extreme and consist of cutting an entire segment of this section out of the course rather than just clipping the corners. The last lap is especially egregious in this regard since I am now free to spend all of my boost before the finish line, and I use it to bounce especially hard on the catwalk and fly all the way to the end of it in a single go.
RTA runners tend to end this course a bit differently than I did. Usually, on the third lap, RTA runners will actually aim to miss the platform with the finishing line on it completely, and instead sail underneath it to pass the finishing line that way. This is because it allows you to maintain your boost the entire way to the finishing line, rather than landing on the ground and losing the speed bonus. In this TAS, I happened to get such a huge launch off the ramp at the end at such speed that I was able to make it all the way to the finishing line without landing, thus achieving the same effect.

Fire Mountain Rally

Fire Mountain Rally (FMR) is basically GVG, but in reverse. You literally start at the same line, but facing the other direction. The course is the longest in the game (time-wise), and the hardest track in this category for runners. Because runners would be using Ebe Endecott for GVG its difficulty is mitigated somewhat, but for FMR, runners generally have switched to Mawhonic at this point which makes the same switchbacks and pain that GVG features that much worse this go around. I didn't do any fancy tricks on this course besides taking the shortcuts at high speed, so it's mostly just an exhibition of very clean driving.

The Boonta Eve Classic

This course is supposed to represent the course in the movie, and even has some of the same features from the movie, like ramps you can take in a canyon that launch you out of it.
"I don't like sand. It's coarse, rough, and irritating... and it gets everywhere." -- Anakin Skywalker
Thankfully we can cut some sand out of this TAS thanks to a major skip in this course, as well as a great shortcut. The shortcut shows up early on - by taking a hard right shortly after the starting line, there is a small path through the mountain wall that will launch you directly across a hairpin and puts you on the other side. This shortcut is absolutely vital to a good time on this course because it saves a lot of time.
The skip for this course is one that RTA runners of this game do for all three laps of this category. Veering left off of the path that runs directly on top of the Sarlacc leads to a gently sloping wall that can be ridden by tilting into it the right way. Launching out of the course at this point lines you up naturally for a straight shot to the end of a long, twisting canyon section, and saves an enormous amount of time. Actually re-entering the canyon is very dangerous and you can explode while doing so very easily. RTA runners generally need to hold nose up for as long as possible here to reduce the chances of this happening, but I am able to find the very narrow section of geometry that lets me land safely early.
Much like in the movie, there is also a section of this course where Tuskan Raiders take pot shots at the podracers. Their shots end up on the course as hazards, represented by gouts of flame that shoot up from the ground where the shots hit. Driving near one of these hazards causes your podracer to lose traction briefly and turn away from the shot. Running directly through one of these shots will also set an engine on fire. There is a trick that RTA runners use involving cutting boost at a strategic time to trick the Raiders into placing their shots much further ahead than they would normally, thus eliminating the hazard for the player. I did not choose to do this, as the shots did not significantly hamper my ability to navigate the section they are in.

Suggested Screenshots

61644, 68065, 74403, 99045

slamo: Excellent job on optimizing such a difficult game. The amount of control you have at high speeds is insane and I was very surprised by some of the OoB skips. I don't think it's too fair to compare the times to the PC version due to the physics differences, so I think the RTA being slightly faster IGT for track 1 can be forgiven. There might be a timing difference as well, since if the two levels are played side-by-side, the TAS is a few seconds faster in real time.
Feedback was overwhelmingly positive, and I was highly entertained. Accepting to Moons.
Spikestuff: Author of the TAS has provided the files for publication.

TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14776
Location: 127.0.0.1
This topic is for the purpose of discussing #7026: Zinfidel's N64 Star Wars Episode I: Racer in 31:36.75
Zinfidel
He/Him
Player (199)
Joined: 11/21/2019
Posts: 247
Location: Washington
Syncing This Movie This game has major sync problems. Sync for this TAS is dependent on video hardware, and so far it looks like only Intel UHD integrated graphics will sync the movie at native 320x240 resolution, on BizHawk 2.4. Both UHD 620 and UHD 630 have been tested and verified to sync. If you want to try to sync the movie, let me know the results so that they can be added here for posterity. Configurations Tested
Intel Core i7-8550U		Intel UHD 620	     **Full Sync**
Intel Core i7-4600K		Nvidia GTX 980 Ti	 Desync on lap 2 of DR
Intel Core i5-3470		 Radeon HD 7000	    Desync on lap 1 of GVG
Intel Core i7-10750H     Intel UHD 630        **Full Sync**
Intel Core i7-6700HQ  	Nvidia GTX 1060	   Desync at 73k
Intel Core i7-9700K		Intel UHD 630	     **Full Sync**
Intel Core i5-7300U      Intel HD 620         Desync on 3099
AMD Ryzen 5 1600X        Radeon RX 5700 XT    Desync on 3099
Intel Core i7-7700       Radeon RX 470        Desync on lap 1 of GVG
Encoding Unfortunately, this game represents a pathologically bad case for the mupen64+ core for both sync and encoding. To create a good SD encode of this run, the following must be done:
  1. Dump the movie using clock sync. Discard the audio from this dump as it will be useless.
  2. Dump the movie using alt. sync. Discard the video from this dump as it will be useless.
  3. Encode the audio dump via the Avisynth script below to get an audio track that syncs up with the video
    1. If using the tasvideos.org publishing scripts or just avisynth in general, swaudio.avs can just be loaded via wavsource("swaudio.avs") and then dubbed with audiodub onto the video source.
    2. Otherwise, just encode the swaudio.avs script directly using something like FFmpeg.
  4. Encode the video
  5. Mux
For high resolution encodes, the movie will almost certainly not sync at higher resolutions than native. To get around this, these scripts and techniques will need to be used: /Zinfidel/SyncScripts.html. Overall the encoding process is the same as above, except that video from the first step must be produced via the syncing scripts technique.
Language: avisynth

# SET ME TO THE AUDIO DUMP audio = "swaudio2.wav" global feeps = 60000/1001 function ba(float duration) { return BlankClip(fps=feeps, length=int(feeps*duration), audio_rate=44100, channels=2).KillVideo() } function buffer(clip c, float ts) { return c + ba(ts - c.AudioDuration) } function fbuffer(clip c, int frames) { return c + ba(frames/59.94) # 59.94 is inaccurate and was a mistake but must remain for timing to work. } # Offset audio to actual start point global aud = ba(4.79) + WavSource(audio) global sliceTS = 0.0 function nextSlice(float duration) { newSliceTS = sliceTS + duration ret = aud.AudioTrim(sliceTS, newSliceTS) global sliceTS = newSliceTS return ret } cut = nextSlice(36.003) cut = cut.buffer(36.889) cut = cut + nextSlice(331.48).ConvertAudioToFloat().TimeStretch(rate=99.919) cut = cut.buffer(368.81) cut = cut + nextSlice(21.11) cut = cut.buffer(390.19) cut = cut + nextSlice(141.15).ConvertAudioToFloat().TimeStretch(rate=99.90) cut = cut + nextSlice(31.2) cut = cut.fbuffer(67) cut = cut + nextSlice(292.1).ConvertAudioToFloat().TimeStretch(rate=99.88) cut = cut + nextSlice(7.0) cut = cut.fbuffer(41) cut = cut + nextSlice(240.2).ConvertAudioToFloat().TimeStretch(rate=99.90) cut = cut + nextSlice(12.58) cut = cut.fbuffer(34) cut = cut + nextSlice(135.08).ConvertAudioToFloat().TimeStretch(rate=99.92) cut = cut + nextSlice(7.1) cut = cut.fbuffer(60) cut = cut + nextSlice(331).ConvertAudioToFloat().TimeStretch(rate=99.89) cut = cut + nextSlice(7) cut = cut.fbuffer(26) cut = cut + nextSlice(292.2).ConvertAudioToFloat().TimeStretch(rate=99.88) cut = cut + nextSlice(45.15) cut = cut.fbuffer(8) cut = cut + nextSlice(37.21) cut = cut.fbuffer(25) cut = cut + nextSlice(56) cut = cut.fbuffer(28) cut = cut + nextSlice(75) cut = cut.fbuffer(43) cut = cut + nextSlice(135) cut = cut.fbuffer(48) cut = cut + nextSlice(70) cut
Spikestuff
They/Them
Editor, Expert player, Publisher (2254)
Joined: 10/12/2011
Posts: 6324
Location: The land down under.
Unfortunately for me I'm one of the people who got it to sync. Unfortunately for me that means I'm going to be publishing this when it gets accepted. Sync Requirements: intel 7k to 11k iGPUs that are using UHD. Resolution must be set to 320x240 in order to sync.
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. These colours are pretty neato, and also these.
Joined: 6/30/2010
Posts: 1093
Location: Zurich, Switzerland
Now THIS is podracing! I got so excited when I saw that someone planned to make a TAS of one of my favorite games of my favorite genre, a genre that never seems to get as much attention by TASers as it deserves. The SWE1R community got in contact with Zinfidel and trained him as a racing Padawan, teaching him how to manipulate the Midichlorians to go as fast as possible. This TAS is the result of this cooperation between a TASer and the RTA community. It looks amazing and I'm very happy to have been a part of its development!
Current project: Gex 3 any% Paused: Gex 64 any% There are no N64 emulators. Just SM64 emulators with hacky support for all the other games.
nymx
He/Him
Editor, Judge, Skilled player (1586)
Joined: 11/14/2014
Posts: 798
Location: South Pole, True Land Down Under
Outlander! I thought you would never win this race...I lost all of my money! Great job. Yes vote.
I recently discovered that if you haven't reached a level of frustration with TASing any game, then you haven't done your due diligence. ---- SOYZA: Are you playing a game? NYMX: I'm not playing a game, I'm TASing. SOYZA: Oh...so its not a game...Its for real? ---- Anybody got a Quantum computer I can borrow for 20 minutes? Nevermind...eien's 64 core machine will do. :) ---- BOTing will be the end of all games. --NYMX
Dimon12321
He/Him
Active player (478)
Joined: 4/5/2014
Posts: 1120
Location: Ukraine
May I take a look at PC WR TAS footage?
Zinfidel wrote:
If such a thing exists, that would be a surprise to me! I think maybe you are referring to the column in the timings section that is labeled "PC WR - TAS", yes? That is supposed to mean "PC WR minus TAS" as in the delta between the two runs. Maybe there's a better way to label that column...
Oh, I got it. Thank you =)
TASing is like making a film: only the best takes are shown in the final movie.
Zinfidel
He/Him
Player (199)
Joined: 11/21/2019
Posts: 247
Location: Washington
Dimon12321 wrote:
May I take a look at PC WR TAS footage?
If such a thing exists, that would be a surprise to me! I think maybe you are referring to the column in the timings section that is labeled "PC WR - TAS", yes? That is supposed to mean "PC WR minus TAS" as in the delta between the two runs. Maybe there's a better way to label that column...
Sand
He/Him
Player (124)
Joined: 6/26/2018
Posts: 154
Awesome! I appreciate the detailed submission notes. It's interesting that optimizing this game is rather unlike other racing games.
Zinfidel
He/Him
Player (199)
Joined: 11/21/2019
Posts: 247
Location: Washington
Sand wrote:
Awesome! I appreciate the detailed submission notes. It's interesting that optimizing this game is rather unlike other racing games.
It was a surprise to me that the game had to be optimized differently too. I did a test TAS of the first lap of Executioner using traditional racing techniques and showed it to the speedrunning community. They informed me about how the game handled differently and gave me tips about the "red thread" method and when I redid the lap, I shaved off 4 seconds!
BigBoct
He/Him
Editor
Joined: 8/9/2007
Posts: 1692
Location: Tiffin/Republic, OH
Haven't finished yet but love what I've seen! Is there any reason that the save data the game will generate couldn't be used as a launching pad for the other 3 circuits? I may be remembering wrong, but I had thought full completion was preferred for racing games.
Previous Name: boct1584
Joined: 6/30/2010
Posts: 1093
Location: Zurich, Switzerland
That assumption only works for games that work like Mario Kart 64, for example. There, you have four cups, with only one of them displaying the credits at the end. But the difference is that Mario Kart 64 doesn't have much of a progression system, you will always have the same characters available from start to finish, the conditions never change, so you might as well do all of the cups. In Star Wars Racer, the podracers and upgrades you unlock on the way are a mayor aspect of the run. For that reason, a 100% TAS would look completely different than this any% one, even the tracks of the Galactic Circuit would not be the same. As far as the tournament mode goes, there are three categories that I could see being published alongside each other: - Any%, the one we have here, beat the Galactic Circuit to reach the credits. - 100%, win all 25 races of the tournament mode. - Semi-Pro Circuit, this would make sense as its own category because none of the tracks would look the same as in 100%. Compared to any%, you would get to see different characters and a tighter budget to work with when buying upgrades, The Amateur Circuit could not be its own category on TASVideos, because it would be identical to the start of a 100% run. Invitational would also not work, because due to the way these tracks are unlocked, completing it would just be the same thing as completing a 100%.
Current project: Gex 3 any% Paused: Gex 64 any% There are no N64 emulators. Just SM64 emulators with hacky support for all the other games.
Joined: 9/12/2014
Posts: 535
Location: Waterford, MI
I recall when I attempted a tas of this myself, the name entry was hard to optimize. It felt like inputs were not being registered and I had to shave off some frames for it to register. How do you optimize that?
Zinfidel
He/Him
Player (199)
Joined: 11/21/2019
Posts: 247
Location: Washington
InfamousKnight wrote:
I recall when I attempted a tas of this myself, the name entry was hard to optimize. It felt like inputs were not being registered and I had to shave off some frames for it to register. How do you optimize that?
I don't remember the process exactly for the character input but I'm pretty sure I just optimized it iteratively like I do with all of the other menuing in the game. There's a varying amount of frames between each character select because the game lags so I just kept moving input forward until I found a point where it registered a second later or whatever.
Joined: 12/20/2020
Posts: 13
nice job all, keep it up! yes vote from me.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14776
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. ---- [4406] N64 Star Wars Episode I: Racer by Zinfidel in 31:36.75
Joined: 11/15/2004
Posts: 804
Location: Canada
I wasn't prepared for how boring that would be. It lacked the non-stop action and interaction with other vehicles of F-Zero X, where the ship is constantly about to explode. It lacked the massive shortcuts and 3-second laps of Mario Kart 64. There didn't seem to even be background music until the final lap, so most of it was just silently flying around an empty track and never seemed to be in any peril. The tricks definitely got more impressive in the later races, but the first few races were just tedious and I almost gave up on it. Certainly a No for entertainment, but an impressive TAS in terms of technical quality. I would have put it in the Vault.
TASing or playing back a DOS game? Make sure your files match the archive at RGB Classic Games.
Joined: 6/30/2010
Posts: 1093
Location: Zurich, Switzerland
hopper wrote:
I wasn't prepared for how boring that would be. It lacked the non-stop action and interaction with other vehicles of F-Zero X, where the ship is constantly about to explode. It lacked the massive shortcuts and 3-second laps of Mario Kart 64. There didn't seem to even be background music until the final lap, so most of it was just silently flying around an empty track and never seemed to be in any peril. The tricks definitely got more impressive in the later races, but the first few races were just tedious and I almost gave up on it. Certainly a No for entertainment, but an impressive TAS in terms of technical quality. I would have put it in the Vault.
The podracers are constantly in peril during this TAS, due to the incredibly dangerous lines taken. If you touch a wall even a tiny bit at high speed, especially during boosting, you will instantly explode. Many of the lines seen in this run just barely work out.
Current project: Gex 3 any% Paused: Gex 64 any% There are no N64 emulators. Just SM64 emulators with hacky support for all the other games.
Zinfidel
He/Him
Player (199)
Joined: 11/21/2019
Posts: 247
Location: Washington
hopper wrote:
I wasn't prepared for how boring that would be. It lacked the non-stop action and interaction with other vehicles of F-Zero X, where the ship is constantly about to explode. It lacked the massive shortcuts and 3-second laps of Mario Kart 64. There didn't seem to even be background music until the final lap, so most of it was just silently flying around an empty track and never seemed to be in any peril. The tricks definitely got more impressive in the later races, but the first few races were just tedious and I almost gave up on it. Certainly a No for entertainment, but an impressive TAS in terms of technical quality. I would have put it in the Vault.
For what it's worth, I expected a lot more of this type of feedback when I clicked the 'submit' button. andypanther is correct in that I'm usually a hair's breadth away from exploding at any second, but it can be hard to actively notice that if you aren't quite familiar with the game already. And yeah, the first couple of racers are slogs I'm afraid. I front-loaded the TAS with more commentary for that exact reason. As for the music - as mentioned in the notes, cartridge space limitations forced the developers to remove music from all but the third laps of races. The PC version of the game has much more ambiance!
Joined: 11/15/2004
Posts: 804
Location: Canada
That's my unfamiliarity with the game, then. You can tell that the cars are about to explode in F-Zero X because you can watch the shield drain as they turbo boost.
TASing or playing back a DOS game? Make sure your files match the archive at RGB Classic Games.
Experienced player (600)
Joined: 10/23/2004
Posts: 706
I voted "yes." I had been eagerly awaiting an eventual TAS of this game. I have fond memories of playing this game with the Phantom Menace soundtrack CD playing in the background :) I really appreciated the commentary as it helped me understand what was going on in context. Perhaps my memory of the game is fuzzy but were there other courses that weren't raced for some reason? I'll have to go back to some old videos I had but there was at least one course I remember having a half lap skip that I didn't see in this run. *edit* here is the shortcut I was thinking of: Link to video Link to videoLink to video
Current Project: - Mario Kart 64
Joined: 6/30/2010
Posts: 1093
Location: Zurich, Switzerland
This game has 25 tracks, but only the seven tracks of the Galactic Circuit are required to reach the credits. This TAS is an any% run and does just that. The Abyss lap skip would be seen in 100% or All Tracks NG+.
Current project: Gex 3 any% Paused: Gex 64 any% There are no N64 emulators. Just SM64 emulators with hacky support for all the other games.
Experienced player (600)
Joined: 10/23/2004
Posts: 706
Ah, OK, that makes sense. I think an All tracks New Game+ would be interesting. Could use the vest players and focus more on the racing.
Current Project: - Mario Kart 64
Joined: 2/26/2007
Posts: 1360
Location: Minnesota
Thanks for the commentary track Zinfidel. Strong yes vote for me. I would love to see a 100% :)
adelikat wrote:
I very much agree with this post.
Bobmario511 wrote:
Forget party hats, Christmas tree hats all the way man.