Submission #5165: Zakem66's NES Mission: Impossible in 23:27.52

Nintendo Entertainment System
baseline
(Submitted: Mission Impossiple (U).nes USA)
FCEUX 2.2.2
84590
60.0988138974405
38432
Unknown
Submitted by Zakem66 on 7/9/2016 11:19 AM
Submission Comments
This is a TAS of Mission: Impossible(NES). This run is 2228 frames( ~37 seconds) faster than the current published movie made by Alyosha.

Game objectives

  • Emulator used: FCEUX 2.2.2
  • Aims for fastest time
  • Takes damage to save time
  • Luck manipulation
  • Glitch abuse

Some information about the game

I discovered a handful of tricks and useful information about game mechanics while in the process of making the movie. Couple of which caused me to make changes in previous parts of the run and that was quite problematic. If you change pretty much any input anywhere it is almost guaranteed to cause desync since any input(that does something[eg. while in room transition=no effect]) changes rng, and also some gates/doors/levers have 8 frames cycles that when activated(touched) they open at "fixed" intervals meaning that in "worst case" scenario, even if you saved 7 frames somewhere, the gate would still open at the same time with or without that said time save.

Frame costs* for basic actions

  • A-button; Punch, shoot, throw boomerang - 2f* (when using animation canceling "trick" perfectly). (3f punches has higher reach and is sometimes very useful and also you can do animation canceling at anytime during its 16f period.)
  • B-button; Stun grenade, disguise, explosive(placing) - 1f*
  • Character switch (perfect) - 2f
(*Period of time you can't move character (by yourself), someone/something could still move your character.)

About the run

the key cards are manipulated (when needed) to the right place before each level. Route( as in, which exits were used room to room) in all levels is exactly the same as in current TAS with only one exception in level 6. In-room routes are some times quite different though. Killing enemies costs time, so when ever possible despawning, taking damage, using stun grenade, manipulation or dodging might be faster. Stun grenades are used often to reduce lag, despawn , manipulation, avoid killing and avoid taking damage so they are very valuable and are used in most beneficial places(in segments where they run out).

Level 1

In level 1 I despawn enemies in many rooms to save health, stun grenades or time. Some enemies are left alive to despawn others (ie. room4 [room count is increased by any transition - applies to all room references in this text]). Some specific enemies are stunned to place to make sewer water not spawning from the pipes (room 12) saving health. Room 13, where I have my first encounter with the shield dude, I use disguise to get almost past him, otherwise he would push me back or into the water. Btw. switching a character deactivates/disappears any A- or B-button items used (even if explosive is already detonated or sg is in the air). Lasers(?) are avoided even though I clearly walk through them, but somehow when walking pretty much as close to the wall as possible they don't hit(room 22). Last sg is used to reduce 11 lag frames (room 27). Claw things are dodged by getting close enough and after they strike at you, you just run past them (room 30). (307 frames were saved in level 1 and also 12 frames were saved even before level 1)

Level 2 (first of the two autoscroller levels)

Autoscroller, no time to be saved here.. wait.. what.. Until the end of the level there is nothing to do that makes any difference speed-wise. At the very end of the level I jump over the bridge and then start to steer left and right. Both, the jump and the steering somehow makes the screen fade out and level 3 fading in a lot faster. To kill time, I make some tricks and race with other boats and sometimes shoot em, nothing interesting.. (80 frames saved In level 2)

Level 3

It is faster to make "character switch, damage switch/nullification" (wait I didn't talk about that in the first level where I did it once. Anyway, if you switch character at the same frame you are supposed to get hit and switch back as fast as possible(the next frame) it can nullify the damage or if that doesn't work (in some cases) you take the damage to the character you switch to in between). What I was saying was that its faster to do this when not running against the conveyor belt since it pushes you back for longer if you do since the slower guy that you switch to is running for 1 frame before you can change back (rooms 4 and 10). Avoiding invisible trap doors same way as lasers previously (room 16). In room 18, moving perfectly through the whole room makes it possible to get past the last 4-legged robot thing without getting alarm. Otherwise you would have to use different route that involves waiting and is ~30 frames slower.
Boss fight; I found out that you don't have to shatter the corner peaces to make the center to fall. Additionally I found out that you can make as few as 1 peace to fall. After this knowledge it was somewhat tricky to optimize to shatter the floor pieces needed as fast as possible. Oh and also I needed to realize that the enemy can't spawn right next to me so I had to go stand on a piece that I didn't need to shatter and manipulate the boss at that time as fast as possible to the right spot. I was actually very lucky and got the boss to spawn there with only 1 frame "wasted" on manipulation and to top it off I got it in 2nd try. (264 frames saved in boss fight, 469f overall in level 3)

Level 4

Lots of shield dude action, which is fun (room 3); So, for the first time I switch to the guy with the gun. He seems to go on a rampage as soon as I switched him in.. Not only that I think it is entertaining to finally see some shooting action, but it also reduces great deal of lag and for that reason is faster than using the fast guy. Snow makes you immobile for every 2nd frame. I found out that health refills could be despawned as well, also beside the health refill is an enemy spawn spot (room 4). I despawned the enemy and (re)spawned the health refill by testing different movement, sg and kill variations just before the door(or gate).
Boss fight; The boss seems to always take same amount of damage no matter what/how you hit him. 11 hits are needed to finish him off and he has 21f invulnerability timer. Thus 220f is minimum to beat him (plus the time you need to make first contact). (101 frames saved in boss fight, 447f overall in level 4)

Level 5 (second and last autoscroller level)

Nothing really interesting. Some lag frames avoided by not getting hit and can't remember, maybe by doing something else also. (5 frames saved in level 5)

Level 6 (Final level)

Here, in room 2, I take a different exit than the current TAS and with less curvy path and conveyor belts boosting my speed, I manage to save 174 frames (in rooms 2-3). I survive the flame unhurt by perfect timing and position in room 5. Lots of "damage switch/nullification" used since it only costs 4-5 frames, alternative strats seems to be (much) slower. Room 21, first autoscroller room, nothing interesting except that enemies need to be killed or forced out of screen fast enough to avoid lag. First claw thing(?) is destroyed as fast as possible to avoid lag, thats why the guy with gun is getting more screen time (room 23). I manipulate shield dude to get me from a good spot(room 34). After the gate I use sg to stun the other one, but manage to keep the one behind me from getting stunned by activating his invulnerability timer by punching him just as he was getting inside sg radius and second punch when his invulnerability end. Room with the breaking floor (room 46) is intresting since there is constant lag every fifth frame, no matter what you do. Nothing worth mentioning besides what I have said already comes to mind about the run. (908 frames overall saved in level 6 bringing the total frames saved in this movie to a total of 2228. Number of lag frames were reduced to 371 from 607 (= 236lf saved).

Special thanks:

Makados; Quite a few of the time saves in this TAS came to my attention due to Makados's (my brother) knowledge of this game that he has gained while speedrunning it quite a lot. He knew a better route choice in level 6 and a few speedrunning strats/tricks which were valuable in making of this movie. These were actually the main reasons I even started this project.
Alyosha; His run served as a good reference which helped me a lot while making this movie. Ie. My first run of level 2 was 3 frames behind that run, and that made me thinking and eventually leading to new discoveries. Many strats were easier to rule out or easier to see as superior because there was something I could roughly compare those with.
Everyone who has been involved in making of the wonderful NES emulator called FCEUX.

Useful memory addresses:

  • 00fd - Camera x postion ;unsigned, 1 byte
  • 00cb - Relative x position (pixel) ;unsigned, 1 byte
  • 00cc - Relative x position (sub-pixel);unsigned, 1 byte
  • 00fc - Camera y position ;unsigned, 1 byte
  • 00cd - Relative y position (pixel) ;unsigned, 1 byte
  • 00ce - Relative y position (sub-pixel);unsigned, 1 byte

Noxxa: Judging.
Noxxa: Accepting as an improvement to the published movie.
fsvgm777: Processing.
Last Edited by adelikat on 10/18/2023 1:37 AM
Page History Latest diff List referrers