TASVideos

Tool-assisted game movies
When human skills are just not enough

Submission #3435: dunnius's NES Metal Gear in 22:35.93

Console: Nintendo Entertainment System
Game name: Metal Gear
Game version: USA
ROM filename: Metal Gear (U).nes
Branch:
Emulator: FCEUX 2.1.4
Movie length: 22:35.93
FrameCount: 81490
Re-record count: 55072
Author's real name: Michael Dunn
Author's nickname: dunnius
Submitter: dunnius
Submitted at: 2012-01-22 04:36:08
Text last edited at: 2015-09-14 22:47:35
Text last edited by: dunnius
Download: Download (8596 bytes)
Status: published
Click to view the actual publication
Submission instructions
Discuss this submission (also rating / voting)
List all submissions by this submitter
List pages on this site that refer to this submission
View submission text history
Back to the submission list
Author's comments and explanations:

Encode

Out of date

UH-OH! THE TAS HAVE STARTED TO IMPROVE!

This is a 1156 frame improvement to the previous TAS, and a 3336 frame improvement to the TAS by SprintGod, one of the oldest non-obsoleted TASes. Despite the limitations of FCEU and TASing tools back then, SprintGod's run was done well, and the route was solid, snake-like as it is. But now it is better with the extra deathwarp and now shooting prisoners to get a better deathwarp location.

If you watched the previous TAS, you only need to watch from the beginning of the Coward Duck fight.

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
  • Shoots prisoners to save time
  • Manipulates luck
  • Abuses programming errors in the game
  • Makes the enemies look stupid
  • Finishes the game at rank 1

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

One 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 other big improvement is shooting 2 of Coward Duck's prisoners to get a better deathwarp, saving 1156 frames. This includes 21 frames lost from extra pause glitches due to having less health from the lesser rank. This was discovered by WunUnknownPlayer.

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.

In the gas-filled room with the mines, 2 of the mines are treated as prisoners when you shoot them. This is used to reduce Solid Snake's rank.

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)

  • (Used currently)
  • (Dead after shooting 2 prisoners)
  • (At big boss with 1 star) This is now frame 78490.

Other suggestions are welcome.

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

Not really. I lost around 6 frames from bad timing luck on Coward Duck. I also lost some frames from the gas rooms/electric floors/doors from bad timing luck/frame rules. There are always a few random lag frames that can still be removed. It is possible to manipulate the timing for the frame rules and pause glitch timing to be more favorable, though it can affect timing later in the game.

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

  • WunUnknownPlayer here. I'll set up the extra death warp and the better Coward Duck deathwarp. Come and get the massive frame savings. Over.
  • This is SprintGod, previous TASer. I will brief you on the interior of the TAS. The previous TAS is very useful. 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.


Truncated: Judging...

Truncated: Delayed due to improvement found by dunnius. Feel free to PM me the new movie file and I will update the submission.

Truncated: Updating submission with new movie file. Back to judging...

Truncated: Aaaand accepted.

sgrunt: Uh-oh, the publication have started to move!


Similar submissions (by title and categories where applicable):