Submission #2045: Dammit's NES Snake's Revenge in 31:39.92

Nintendo Entertainment System
FCEU 0.98.28
Snake's Revenge (U) [!].nes
Submitted by Dammit on 8/6/2008 6:29:13 AM
Submission Comments

The infamy

In 1987 Hideo Kojima produced Konami's Metal Gear for MSX. It was later ported to Famicom and NES.
In 1990 another (Japanese) Konami team produced Snake's Revenge, without Kojima's knowledge, for Famicom. For whatever reason it only got US and Euro NES release. It was later revealed in an interview that Kojima was pleased with SR, and that it was SR that drove him to make Metal Gear 2 for MSX. He went on to develop the much more famous Metal Gear Solid series.
Complicating matters, Ultra Games, the US publishing arm of Konami, made up their own story for the instruction manual, including the laughably named character "Higharolla Kockamamie." They even mixed up their own portraits for two of the characters. Look at some other Ultra Games manuals, including the Metal Gear manual, to see the same practice of cavalier rewriting.
So Snake's Revenge is not second-string spinoff produced to cash in on naive roundeye enthusiasm. It's a fangame that happens to be licensed, and produced by the same development house as the original.
Metal GearCanonical fictionFanboy fantasy
Snake's RevengeFiction on fictionFanboy fodder
Ultra Games manual for SRFiction on fiction on fictionFanboy furor!
Moral of the story: Don't take fiction too seriously.


  • Aims for fastest time
    • No passwords
    • Takes damage
    • Exploits glitches and manipulates luck
  • Recorded with fceu-0.98.28
    • Here's an fm2 of this movie if you want to run it in fceux. The only thing changed is I corrected the player inputs from 2 to 1.
I wrote a data dump guide (here) which has details such as memory addresses.
Pitfall stopper
Go to the menus while a pitfall is opening to stop the expansion. This enables a big sequence break near the end. (Same exploit was in MG. All the others were removed though.)
Frozen bullets
Shoot more than one bullet, switch to explosives or claymores, then lay one after a bullet disappears but while at least one is still on screen. The remaining bullet or bullets will stay in place until the bomb blows up and can hit multiple times. This saves a few bullets and a miniscule amount of time. It's demonstrated against the first three bosses.
No spike damage
Avoid spike damage by pressing against a wall while they are underfoot. This is used once in the train.
Invulnerability exploit
Enemies do different damage with different attacks. Usually body contact hurts less than projectiles, and there's also some randomness in the damage of the same type of attack. Snake has a invulnerability time of 60 frames, so this is exploited to minimize damage.
Luck manipulation
  • Alerted guards enter the screen from random sides. (The shooting is not random.)
  • Non-alerted guards randomly drop rations, bullets, or nothing if punched.
  • Patrolling guards look in random directions when they stop.
  • The drones in the side-scrollers turn around randomly.
  • The bosses have random timing for attacking and moving.
  • The cable cars arrive with semirandom timing.
  • The floating platforms, floor spikes, and closing missile gates are on fixed timing (not random).


Rescue hostages or use truthgas on officers to raise rank (up to ******), which raises ammo and item capacity. However, after the ship event, your rescue count is bumped up to 9, which is enough for ***. Rescue five more for ****, which can carry enough ammo to finish the game. (It's possible to do it with *** and the backpack, but the backpack is too far out of the way.) Truthgas is too slow to get and use, so only hostages are rescued. Rescuing the chick is needed to unlock the door leading to that cable car.


Optimizing both the overhead areas and the side scrollers (looks like Rush'n Attack) comes down to measuring each segment with alerts and with stealth then calculating whether the damage and spent bullets from the alerts is worth the speed. Unlike MG, alerts persist across most screen transitions. So if I set off an alert, I also have to optimize when to end it.


This gun is not just subsonic, it's sub-Yugo. Snake can throw grenades farther than this gun shoots. And it's loud without the silencer. At least they issued him one this time. It's fast to fire and can be shot on the move, so it's the main weapon for clearing guards and chipping away at bosses.

Bosses and obstacles

  • Five defensive linemen: Snake can only carry 50 bullets, which alone isn't enough. A bomb is planted to finish them all off.
  • Door blockers: They are supposed repel you if they touch you. Punch to stun them, then run through.
  • Three grenade tossers: Again, not enough ammo, so this time claymores are used to finish the job. Snake takes refuge from the lethal grenade damage in the embrace of the middle fat guy.
  • Underwater grates: Not only can Snake not swim, he can't even hold his breath. Rather than give him oxygen to breathe, I give him something much better: cans of tuna fish to eat. I have to time the submerging and bomb laying so that they blow up while Snake is too distracted by his drowning to be maimed by the bomb.
  • NotJohn: Since I have to use explosives afterwards, I finish him off with one.
  • Tank: Land mines are finally available. Unlike other damage, you can spam them at 30 Hz.
  • IR sensors: The cable trams don't show up if the alarm is blaring, so the invisible lasers need to be avoided.
  • Big Boss: First form goes down with no trouble as far as frame advance is concerned. The second form needs to be lured away at least one room before taking damage.


Save this lua script and run it in FCEU to view the HP of enemies, bomb timers, and hostage rescue count. Use this one instead. It does body count too:

NesVideoAgent: Hi! I am a robot. I took a few screenshots of this movie and placed them here. Oh! I also corrected the ROM name.
  • You indicated Snake's Revenge (USA)
  • I updated it to Snake's Revenge (U) [!].nes

adelikat: Good viewer response, accepting.

Raiscan: Processing.
Last Edited by TASVideoAgent on 11/6/2008 9:18 AM
Page History Latest diff List referrers