TASVideos

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

Game Resources / NES / Teenage Mutant Ninja Turtles

The purpose of this page is to document all of the known tricks of the NES Teenage Mutant Ninja Turtles game so far.

Because of the nature of this site, we concentrate here on tricks that are extremely difficult to execute in real play, but are useful in the making of tool-assisted speedruns. For most of the tricks, a frame advance feature in an emulator is a definite must-have.


Ceiling Glitch

This only works ceilings with an opening (or ladder) adjacent to a 2 block long ceiling. Also the turtle must be able to jump to the top of this opening. If the turtle attacks at the correct frame he will get stuck in the ceiling which will immediately scroll the screen down. This can be used for radical shortcuts.

Floating Weapon Glitch

Pressing U+D and pressing L or R and then attacking glitches the game. The characters sprite changes and then they have a "weapon" floating around on the screen. For Donatello this comes in the form of Leo's sword that floats at the top of the screen ahead of him (in whichever direction he is facing). This weapon has a lot of advantages with killing enemies quickly.

The example shows the most striking application of this glitch. It is used to completely demolish the Technodrome while Donatello just stands there watching the mayhem.


Raphael Item Grab Glitch

Using the "Floating Weapon Glitch" with Raphael allows him to make contact with items just above his head. This is used to grab items from under the floor.



Getting inside the lip of a floor

When falling (or swimming from a ledge) the turtle can push against against the wall at the right time and get a few pixels into it. This positions the turtle a bit closer to its destination in the next area.

Landing on High Ledges

It is possible to land onto high ledges if the they are only 1 block thick. It requires jumping and positioning the turtle a few pixels inside the wall and holding the to the direction of the ledge. If done correctly, the turtle will land on the ledge. Note: This trick can be done in real time.

This can also be done in a similar fashion with a short jump (where the turtle does not get into spinning motion). This can be used to avoid doing a full jump and having to wait for the turtle to land.


Mouse Boss Always Vulnerable Glitch

Normally the Level 4 Boss (Mouser) will periodically close its mouth making it invulnerable to damage for a period of time. If you pause and unpause the game just before it closes, it will remain vulnerable.

Skipping Technodrome Post Boss-completion Scene


(Link to video)
This glitch is not a time saver for a TAS but is an interesting glitch. The purple parts of the Technodrome give damage even when they are destroyed. If a turtle destroys the Technodrome and lands is position correctly, he will receive damage during the uncontrollable cut-scene. If this kills the turtle it bypasses the rest of the cut-scene and goes to the next level.

Another side effect is that in the next level, the turtle is not dead but has 0 health.

Thanks to lmphk for allowing embedding of his video.


Floating shuriken glitch


(Link to video)
This can only be done with Michaelangelo. It is also not currently useful as a time-saver. It is possible to throw a shuriken at a ledge and have it get stuck next to the ledge. To get it stuck, it must be thrown from the right height while moving towards the ledge.

Note: This can be used in a TAS to lower input time of the video considerably. However, it would delay the actual game completion time.

Thanks to dave_dwfm for discovery of this trick and the YouTube video embedded here.


Damage boosting

Taking damage can allow a turtle to make it across a pit that is normally can't be jumped across.

Keeping conveyor belt momentum

If you run in the same direction as the arrows of a conveyor built you get a nice speed boost. However, if you jump in that direction and let go of the arrow keys after only 2 frames, you will retain that fast speed throughout the jump. You must hold the direction on the first two frames of the jump to get the turtle to jump in that direction, but if you let go immediately after he won't lose the extra speed boost.

TODO: GIF demonstration



Low Health Weapon Boost

If a turtles health is under 50% then they can do more damage against enemies.

Here is a complete list of possible weapons and damage amounts.

Weapon Norm Boost
Don 15 16
Mike 7 12
Raph 9 9
Leo 7 10
Shuriken 18 20
Boomerang 16 16
Triple Sh. 14 17
Scrolls 29 32

Item Drop Manipulation

Random encounters depend on address 0x03D8. This is an enemy kills counter. When this value gets to 24, the next enemy kill has a chance for a random drop. This drop can be a boomerang, shuriken, triple shuriken, or nothing at all. Drops only happen when this counter is 24.

Enemy type manipulation

adelikat: When I was researching this game I found that RAM addresses 0x0604 determined which types of enemies would appear on the screen. This would usually change before a screen. Many screens are random as to which enemy types will appear, this address is the key to manipulating them. Basically it has to do with how many enemies are loaded on the screen, after a certain number the set changes. I no longer recall any more details than that however.

Technodrome Location

This consideration is extremely important for making a TAS!

The technodrome location in Stage 5 must be manipulated to be in the closest sewer. Its location is determined by address 0x0055. This value is determined just before the BEGINNING OF STAGE 1. If one were to wait until stage 5 to worry about the technodrome location, the entire TAS would have to be redone.


RAM Addresses

All properties of the turtle, enemies, and weapons of the game are in Page 4 of the game's RAM (04xx). The properties are laid out vertically and the objects are horizontal. This means that 0400 is the sprite ID of the turtle, and 0401 is the sprite ID of the first weapon slot. All properties of the turtle will be 04x0. All sprite IDs will be 040x.

The game has 1 player "slot" meaning that only 1 player can be loaded into memory. It has 3 weapon slots (because of the triple shuriken weapon). It has 8 enemy slots, meaning 8 enemies can be loaded on the screen at once.

Here is a snapshot of the entire Page 4:

Property Address P W1 W2 W3 E1 E2 E3 E4 E5 E6 E7 E8 X X X X
Sprite ID 040x 09 00 00 00 00 9E 9E 9E 9E 00 00 00 00 00 00 00
ID counter 041x 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Sprite timer 042x 02 00 00 00 00 03 03 03 03 00 00 00 00 00 00 00
hit animation 043x 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
characteristics 044x 00 00 00 00 00 8D 8D 8D 8D 00 00 00 00 00 00 00
characteristics 045x C2 00 00 00 00 C2 C2 C3 C3 00 00 00 00 00 00 00
Y position 046x 4C 00 00 00 00 B4 B4 64 B4 00 00 00 00 00 00 00
Y subpixel 047x 34 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
X position 048x 50 00 00 00 00 79 B9 CC CC 00 00 00 00 00 00 00
X subpixel 049x 80 00 00 00 00 C0 00 C0 00 00 00 00 00 00 00 00
Not used 04ax 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Y pix speed 04bx 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Y subpix speed 04cx 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Not used 04dx 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
X pix speed 04ex 00 00 00 00 00 01 01 FE FE 00 00 00 00 00 00 00
X subpix speed 04fx 00 00 00 00 00 60 60 A0 A0 00 00 00 00 00 00 00

Headings:

Properties:

Other RAM Addresses

  • 00FD - Camera x position
  • 0050 - Camera x 2nd byte
  • 007D - # of bombs diffused
  • 0077-007A - Turtles' health
  • 0565-0569 - Enemy Health
  • 0505-0509 - Enemy invulnerability counter - Counts 24 to 2 every 2 frames (48 frame invulnerability
  • 0604 - Enemy Set (which types of random enemies are on screen)
  • 03D8 - Enemy Kills counter - Counts 0 - 24. On 24 a random drop can occur.

An extensive RAM Map was done by adelikat and can be found here.


See also



Combined RSS Feed
GameResources/NES/TeenageMutantNinjaTurtles last edited by adelikat on 2011-06-11 01:22:29
Page info and history | Latest diff | List referrers | View Source