Submission #6876: fruitbatsalad's NES Kid Icarus in 19:26.41

Console Nintendo Entertainment System Emulator FCEUX 2.2.3
Game Version USA Frame Count 70100
ROM Filename Kid Icarus (UE).nes Frame Rate 60.0988138974405
Branch Rerecord Count 24882
Unknown Authors fruitbatsalad
Game Kid Icarus
Submitted by fruitbatsalad on 9/7/2020 8:17:33 PM

Submission Comments


Kid Icarus is a classic platformer for the NES. It has some stages that scroll vertically, some that scroll horizontally, and some fortresses that are designed to be mazes. It's known for being a challenging game, so it's fun to optimize.
I've been speedrunning this game for a few years and I've learned a lot from watching the 2015 TAS, so I decided to make my own. The run hasn't changed drastically since then, but I managed to save about 27 seconds. The biggest time save is a different setup for the Medusa fight, which saved roughly 12 seconds (see notes below).
I created this using FCEUX 2.2.3.

Game objectives

  • Beat the game as fast as possible
  • Takes damage to save time
  • Manipulates luck
  • Glitch abuse

Miscellaneous notes

  • When Pit gets hit by an enemy, he gets boosted 4 pixels to the left. When he gets hit by a projectile, he gets boosted 4 pixels to the right. These small boosts can save time if you're already moving in that direction, and I found a jump in 1-3 that requires a damage boost.
  • Pit's health doesn't refill between stages, so we have to be mindful of our health and plan ahead for damage we'll take in later stages.
  • Enemy patterns can be manipulated to a certain extent, but a lot of this is invisible to the viewer.
  • The TAS makes heavy use of the rapid fire trick introduced by Celeri in 2007. Ducking resets the shot cooldown, so we alternate shoot and duck to fire rapidly. This is most apparent in the 1-4 and 2-4 boss fights, but it's also used throughout the run any time we want to fire a quick burst of arrows.
  • Lava, thorns, and other environmental damage will only hurt Pit once every 32 frames according to a timer. If you know the value of this timer, then you can jump in and out of lava without taking damage. This is abused on stages like 2-3.
  • Killing enemies awards points which take time to tally up at the end of the stage, so it's usually better to avoid killing things. Exceptions to this include stages 1-2 and 2-1, where Pit needs to kill enough enemies and collect enough hearts to earn strength upgrades.

Stage by stage comments

1-1: 14 frames saved
Most of my time save on this stage was from getting 3 more damage boosts than the 2015 TAS.
1-2: 34 frames lost
I found this to be the most complicated stage to TAS. We need to farm enough enemies/hearts along the way to get the strength upgrade. I lost some frames here, but I made up for it in the next stage.
1-3: 200 frames saved
Small time saves here included better movement around frame 12600 and a new jump at 13500. Around 13900 you'll see I hesitated for a moment - this was to manipulate the moving platforms in an upcoming section. This platform section (roughly 14800-15400) was the biggest time save in the stage. I was able to make a new jump thanks to a damage boost, and then I did a small hop to force the last platform to bonk into the thorns; this made the platform turn back earlier (thanks to Rumbleminze for helping me understand how this works).
1-4: 144 frames saved
I found a new route through this stage. At around 17600, I did a wall clip and touched the door from the wrong side. This warped Pit one room to the right. I also tightened up the wall clip around 18000 and saved some frames in the boss fight.
2-1: 5 frames saved
This is another strength upgrade stage, so we need to kill enough enemies and collect enough hearts. I did various jumps and ducks to manipulate the falling rock patterns. I took a damage boost from a projectile around 23060, so it was convenient that I had just enough health.
2-2: 24 frames saved
There's not much time that can be saved on this stage, but I did a more efficient screen wrap at the start. Around 34300 I did a "double jump" for fun.
2-3: 31 frames saved
Again, there's not much time that can be saved here. I knew I wanted to maintain full health throughout this stage, so I manipulated frogs and killed two of them. I took the lower route at 38800-39600 just for fun, because we always take the upper route in speedruns.
2-4: 153 frames saved
AiSnake and I found a faster wall clip for the lava room around 44500 (you'll see this again in 3-4). I also tightened up the other wall clips, damage boosted through an eggplant wizard, and saved some frames in the boss fight.
3-1: 75 frames saved
The health underflow glitch is in effect during this stage, so I had 0 health. At around 48600 I did the pause trick from Randil's 2009 TAS, but I managed to get the jump with fewer pauses.
3-2: 24 frames lost
We have to do a lot of waiting for platforms near the start of this stage. I experimented with it, but in the end I just couldn't find time to save here. Notice my health refills at around 52800 due to the health underflow glitch.
3-3: 152 frames saved
I found a new route through the rooftop section at 58700-59400.
3-4: 145 frames saved
I optimized the wall clips and did the AiSnake clip in the lava room (also seen in 2-4). I played the stage as an eggplant just for fun.
4-1: 722 frames saved
The biggest time save in the run comes from the Medusa fight. Basically, if you shoot on an odd frame in 4-1, you'll actually shoot two arrows. Typically only one will deal damage, but we can get both arrows to hit Medusa if we're close enough. This finishes the fight in 26 shots instead of the usual 51. This fight has an interesting history. Sleepz first showed off a similar setup for their 2004 TAS, but they took a lot of damage and only survived because they had 3 bars of health. Subsequent TAS videos and speedruns only had 2 bars of health, so players backed off and played it safer. Years went by, and Sleepz's method was forgotten. Recently, TMR experimented with fighting Medusa up close, and he found a safe spot where Pit could deal damage up close without getting hit. This made it possible to get double hits regardless of how many bars of health we have. Darkwing_Duck_sda perfected this method and Rumbleminze helped figure out how it works.

Special Thanks

Big thanks to Alyosha, Arc, and Randil who made the 2015 TAS. I didn't copy any of their inputs, but I learned a lot from watching it. Also thanks to the runners who routed the game back then: badbrakes, Darkwing_Duck_sda, Jorf, Kyrsimys, and others. Shoutout to the Stratusphere.

Samsara: I've fallen into this Pit and I need to judge my way out!
Samsara: Welcome to the site!
I have to say, between this and the recent Castlevania Legends TAS, this is a wonderful time for new TASers providing runs of amazing quality, and let me just say: I am absolutely here for it. Shaving off nearly 30 seconds from a game that's been TASed pretty extensively over 16 years would be a remarkable achievement for a TAS veteran, let alone someone's very first project, and it's even more impressive that there was time saved in pretty much every single stage. It's an incredible level of optimization. Have I said that yet?
I'm definitely looking forward to seeing more TASes from you! But first, let me complete this big welcome by accepting this as an improvement to the published run. Fantastic work!
Samsara: Oops, uh, file replaced with an identical FM2 file for ease.
Zinfidel: Processing...

Last Edited by Zinfidel on 9/20/2020 1:22 AM
Page History Latest diff