TASVideos

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

Submission #3999: £e Nécroyeur's NES Iron Tank: The Invasion of Normandy in 11:47.49

Console: Nintendo Entertainment System
Game name: Iron Tank: The Invasion of Normandy
Game version: USA
ROM filename: Iron Tank (U) [!].nes
Branch:
Emulator: FCEUX 2.1.5
Movie length: 11:47.49
FrameCount: 42519
Re-record count: 83384
Author's real name: George Murphy
Author's nickname: £e Nécroyeur
Submitter: £e Nécroyeur
Submitted at: 2013-07-01 07:04:37
Text last edited at: 2016-12-18 04:51:13
Text last edited by: £e Nécroyeur
Download: Download (3821 bytes)
Status: decision: cancelled
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:
Iron Tank: The Invasion of Normandy is an action game released by SNK in 1988. It continued SNK's trend of military-themed action games such as Ikari Warriors and Guerilla War. I was not a big fan of these earlier titles, but SNK took the best part of these games--driving a tank--and developed an entire game based on the idea. Now that's more like it!


Game Objectives

  • Emulator used: FCEUX 2.1.5
  • Aims for fastest time
  • Takes damage to save time
  • Abuses programming errors
  • Manipulates luck
  • Features a dancing tank


Tricks and Glitches

"Track Status"

While Iron Tank is moving, its tank tracks cycle through 4 different statuses in sequence. When this "Track Status" is ideal (basically every 4th Frame of animation), Iron Tank can change direction nuch more quickly. You can make a 45 degree direction change with just 1 Frame of delay, compared to as many as 4 Frames of delay un-optimized. Thus, you can make a 45 degree direction change and begin moving in the new direction in just 3 Frames, compared to as many as 6 Frames un-optimized. This is exploited throughout the TAS, saving over 100 Frames in total.

Prevent long "flashing" explosion when a Boss is destroyed

Most of the Boss enemies in the game explode with a lengthy "flashing" explosion when they are destroyed. In this TAS, all but 2 Boss enemies are prevented from exploding in this way, saving a substantial number of Frames. This is achieved by moving and firing in a specific manner (sometimes seemingly at random). This technique is used, where possible, throughout the TAS, saving over 1000 Frames in total. Note that this technique does not work against the Boss of Area 1 or the Boss of Area 4.

Rotate Main Cannon more quickly

Rotating the Main Cannon turret is normally done by holding the B button plus the desired direction with the joystick until the turret has rotated. This can take as many as 8 Frames to rotate the turret 45 degrees. However, if the B button and a direction are pressed for just 1 Frame, with the B button released on the following Frame, the turret will rotate 45 degrees in the desired direction in just 2 Frames. That's 8 Frames to rotate the turret 180 degrees, compared to 25 Frames unoptimized. This technique is used to strike targets in multiple locations as quickly as possible, and also for "dancing".

Manipulate which/where enemies appear, and their initial behavior

In some areas (particularly Airbase and Headquarters), your X position determines which enemies appear, and where.

If there are too many objects (enemies, items, projectiles) on the screen, some enemies and some items will not appear.

Destroying enemies and collecting items on a specific Frame can provide a more favorable result as you advance to the next enemy spawn point. Destroying enemies and collecting items at the last possible moment is generally preferred for purposes of manipulation, because it allows fewer new enemies to appear, and it minimizes the Lag from Iron Tank's projectiles by keeping a very short firing distance. However, depending on circumstances, it may be better to act on the earliest possible Frame, or even a particular Frame in between (though it may seem counterintuitive to do so).

Firing the Machine Gun before (even hundreds of Frames before) the next enemy spawn point is reached can determine whether or not an enemy spawns, as well as the enemy's initial behavior. The specific results will vary, depending upon which Frame the Machine Gun was fired, and changes every 40 Frames or so.

Simply having a Machine Gun projectile on the screen when an enemy spawn point is reached can determine whether or not an enemy spawns, as well as the enemy's initial behavior.

Rotating the Main Cannon before (even hundreds of Frames before) the next enemy spawn point is reached can determine whether or not an enemy spawns, as well as the enemy's initial behavior. An example of this can be seen at Frame 10606, where it is used to manipulate the Louis tanks to stay clear of the movement path but stay on the screen long enough to prevent an additional Louis from spawning.

The specific Frame on which an enemy spawn point is reached can determine whether or not an enemy spawns, as well as the enemy's initial behavior. As such, a delay of just 1 Frame (so that the spawn point is reached on Frame 110 rather than Frame 109, for example) can be enough to alter which enemies appear in the next area, as well as their initial behavior. Of course, a longer delay might be needed to achieve the desired result, but such a delay may still save time overall by manipulating more favorable enemy behavior, or by reducing Lag.

A delay of just 1 Frame or a direction change of 1 pixel can be enough to manipulate the behavior of onscreen enemies. In addition to other things, this can be used to "bait" an enemy into following Iron Tank more closely, which can prevent new enemies from spawning.

Pressing diagonally along a parallel vertical wall (rather than just pressing up to move alongside it) can alter which enemies appear in the next area. It can also be used to manipulate the behavior of onscreen enemies. For example, pressing Up and Left along a wall may convince an enemy to pursue to the left, though Iron Tank is actually only moving straight up. Note that this technique can cause Lag.

Manipulate electrical field barriers

In Area 3 - Power Plant and Islands, there are a number of electrical field barriers. If Iron Tank makes contact with one of these barriers, it would be quickly destroyed. These electrical field barriers last for 127 Frames after the 1st Frame the barrier appears onscreen, after which the barrier shifts to the next set of terminals for 127 Frames, at which point the process repeats. Iron Tank's X position may also cause an electrical field barrier to shift before the counter has expired; in such an event, the barrier will simply shift again normally when the timer expires. If your Tank touches the electrical field barrier, or the electrical field barrier is hit with any weapon, the counter will be reset. In this TAS, I fire the Main Cannon at several of these electrical field barriers to manipulate their timers and thus make faster progress. Not every electrical field barrier is manipulated due to the constant need to conserve Main Cannon Bullets.

Rotate Main Cannon turret without Frame loss while moving diagonally

There is a 1 Frame delay of forward movement every time the turret position changes (e.g. turns), unless the turret position is being changed to match the Tank's direction of movement, or the Tank is pressing against a solid object, and the turret is being turned toward the solid object. However, during diagonal movement, you can take advantage of the "pause" Frame to rotate the cannon without any additional delay. Rotate the Main Cannon on the 2nd Frame after the "pause" frame while moving diagonally. The Main Cannon will rotate 45 degrees while you still have 1 Frame of forward momentum prior to the next "pause" Frame, thus no Frames of forward movement are lost.

There may be more or fewer Frames of Lag during certain screen transitions, depending on the Frame on which the transition began, Iron Tank's X position, the controller input during that Frame, and the objects on the screen. The difference between the ideal result and the worst result can be as many as 36 Frames. The amount of Lag can be manipulated by holding buttons or by holding the directional pad in some direction. Holding a combination of buttons and directions also works. Naturally in this TAS, the length of these transitions have all been manipulated to be as short as possible. This affects the following situations: Starting a new game Entering the Select menu Exiting the Select menu Entering a new game map area (e.g. the transition while entering Area 4 - Naval Base)

Pressing directly against a corner of an obstacle will cause Iron Tank to automatically correct its path around the corner (without having to manually turn Iron Tank), provided the Tank is within 1 pixel of the edge of the corner. Sometimes this can occur very quickly--as little as just 1 Frame of delay--so it often saves time compared with turning the Tank manually on the correct Frame. Furthermore, because the initial 45-degree turn caused by pressing against a corner of an obstacle is instantaneous, it can be used to begin a 45-degree turn without Frame loss.

Having a Machine Gun projectile on the screen when the Main Cannon is fired may somewhat alter whether or not the Main Cannon projectile hits a target (plus or minus 1 pixel). This can also be manipulated by pressing the A and B buttons on the same Frame, by pressing the B button 1 Frame earlier than the A button, or by firing the Machine Gun on a specific Frame while a Main Cannon projectile is already on the screen. This technique can be used to destroy a target on an earlier Frame, or to manipulate a "glancing blow" against a target.

Comments

This is my first attempt at making a TAS. It was more difficult than I had anticipated. It took nearly a year to complete it. I hope my next TAS will go a bit more smoothly!

I will expand this submission text after I have become more familiar with formatting.


Mothrayas: Judging.


Similar submissions (by title and categories where applicable):