Submission #3392: dunnius's NES Metal Gear in 22:55.17

Nintendo Entertainment System
baseline
(Submitted: Metal Gear (U) [!].nes USA)
FCEUX 2.1.4a
82646
60.0988138974405
51504
Unknown
Submitted by dunnius on 12/8/2011 2:07 AM
Submission Comments

UH-OH! THE TAS HAVE STARTED TO IMPROVE!

This is a 2180 frame improvement over the previous TAS by SprintGod, one of the oldest non-obsoleted TASes. Despite the limitations of FCEU and TASing tools back then, the old run was done well, and the route was solid, snake-like as it is.

YOUR MISSION IS TO INFILTRATE! BE CAREFUL NOT TO LET LAG FRAMES DETECT YOU.

  • Emulator used: FCEUX 2.1.4a (Old PPU)
  • Aims for fastest time
  • Takes damage to save time
  • Uses death to save time
  • Manipulates luck
  • Abuses programming errors in the game
  • Makes the enemies look stupid

BIG BOSS HERE. GAS MASK? NAH, JUST PAUSE EVERY 32 FRAMES. OVER.

The big improvement is the extra deathwarp in floor 2 of building 1, saving 1465 frames. This was discovered by WunUnknownPlayer. I had already figured out that rescuing MISSING OUR "GREY FOX" instead of Twin Shot's prisoner is less than a second slower, and had already thought about that route for the 100% speedrun to get 15 mines. So when WunUnknownPlayer mentioned the deathwarp, I knew immediately that it would save time in both the speedrun and the TAS. So finally, Grey Fox gets rescued!
The main overall improvement is the corner trick. It saves a frame each time Solid Snake changes direction because he does not stop for a frame. This can also be used when walking into a prisoner or item to gain a frame from a more favorable position. This also allows for a more entertaining route.
There are frame rules in this game. Doors and messages have 4 frames, elevators seem to have 2 frames, and there may be some other frame rules as well. In addition, there is a pseudo frame rule from the pause glitch based on the number of times the pause is needed.
Taking damage is better optimized. Taking damage to avoid punching (17 frames) is best. Also, there are a few places where throwing a grenade is useful to avoid taking damage.
The guard of the west elevator on floor 1 of building 1 can be manipulated into alerting early, which saves having to punch (17 frames).
In the basement of building 3, taking damage in the gas room instead of pausing affects the timing of the doors and saves a few frames.
In the roof of building 1, there is a brief wait to drain health for the next death warp. That is because 2 death warps occur close together and there are not any good places to take damage.
Though not used now, it is possible to take 1 damage on Twin Shot. This was the original planned route.
In floor 1 of building 2, one of the 2 deep water pauses is removed because the screen transition changes the timing of the water damage (total of 6 frames). This is done both times that deep water is traversed.
The new Tank skip is faster both because there is less x-position movement (22 frames) and a faster equipment switch (14 frames).
The Twin Arnold fight was improved slightly (6 frames) with better positioning on the second Arnold. Also, the equipment switch is done to cancel the explosion animation, which saves waiting. The previous run did that too.
The card 7 switch before Coward Duck was moved to the elevator to save 37 frames.
Due to bad luck, there is a loss of 17 frames because Coward Duck's boomerang timing, but a gain of 6 due to opening the pitfall sooner.
The fight with Big Boss was redone by moving to the left while shooting him, saving 84 frames.

NES Metal Gear's guards are so stupid that they should alert with question marks instead of exclamation points.

There is a universal timer (0x0012) that controls almost everything in the game. Coward Duck's boomerangs are on this timer. If 5 frames that change the universal timer could be removed before the fight, that 17 frame loss could be removed.
There are 2 different paths that the guards in a room take when not alerted. This is set by the universal timer when the room loads. Every 2 timer increments, it chooses the other pattern. There are a few times where a frame or two is lost to manipulate this because the other pattern saves more frames.
There is a spawn timer (0x001A) that controls when an enemy will spawn during an alert. It is difficult to manipulate this to make enemies not spawn when an alert is needed. Its best use it to know when an enemy will spawn so its starting position and action can be manipulated.
Lag during an alert is not completely random. It seems that it only occurs when 4 guards (the maximum) are on the screen, and a guard is figuring out how to change direction when running into a wall. Why it is this way is very strange. So the way to reduce the lag is to keep manipulating the guards into a pattern that keeps them from running into walls. There is a separate timer for each of the guards for their action. When the timer reaches 0 during an alert, the guard will choose a direction (the shortest one) toward Solid Snake, and the timer is set to the frames it takes to get to Solid Snake in that direction. So the guards can be manipulated by changing Solid Snake's position. A guard that is spawning can also be manipulated by the direction Solid Snake is facing.
For more details on the tricks and memory addresses, go to GameResources/NES/MetalGear.

NES Metal Gear's guards are so stupid that some of them shoot with cameras instead of guns. (suggested screenshots)

1407, 1451, 2277, 3912, 4897, 5573, 5584, 5946, 9023, 10893, 12663, 14333, 14378, 17794, 18113, 20328, 26565, 27040, 27174, 28611, 35362, 36899, 38679, 39260, 41494, 43486, 46510, 47271, 48018, 48951, 50002, 51088, 55196, 57373, 58565, 61743, 63038, 64172, 64283, 64496, 64707, 64865, 65065, 66849, 69952, 70846, 70857, 70880, 73904, 73916, 73949, 74383, 76611, 78406, 79311, 79397, 81612, 81763.
Other suggestions are welcome.

I AM THE DUNNIUS! NO IMPROVEMENT HAS EVER ESCAPED FROM HERE.

Not really. I lost 17 frames from bad luck/timing on Coward Duck. I'm sure there are a few random lag frames that can still be removed. It may be possible to manipulate the timing for the frame rules and pause glitch timing to be more favorable.

THIS IS DUNNIUS. RESPOND, PLEASE. (and thanks!)

  • This is SprintGod, previous TASer. I will brief you on the interior of the TAS. The previous TAS is very useful. Over.
  • WunUnknownPlayer here. I'll set up the extra death warp. Come and get the massive frame savings. Over.
  • THIS IS STEVE. DIANE? OH, IT'S YOU AGAIN! WOULD YOU PLEASE GO AWAY AND STOP PESTERING HER!
No dobermans were hurt in this TAS because no dobermans hurt Solid Snake.

sgrunt: Replaced the submission file with one that prepends an extra blank frame, allowing the run to sync with the [!] ROM.
Mukki: Judging...
Mukki: This was a fantastic run, I didn't feel asleep at any point. Accepting as an improvement to the currently published run.
Velitha Uh-Oh! the Publish have started to move! Processing...
Last Edited by adelikat on 11/28/2022 5:06 PM
Page History Latest diff List referrers