View Page Source

Revision (current)
Last Updated by Unknown on 1/1/2022 6:13 PM
Back to Page

The purpose of this page is to document all of the known Gameboy Donkey Kong tricks and glitches.

Some of these tricks require [Glossary|frame advance]; however, with sufficient luck and timing any of these can be performed on an actual Gameboy (or SNES) as none of them require 30 Hz muscle spasms or the like.

[http://www.vgmaps.com/Atlas/GB-GBC/index.htm#DonkeyKong|Level Images]

%%TOC%%

[TODO]: Gifs

!! About Jumpman/Mario

! About Jumping

Mario has fixed height jumps.  Turning around by leaving the controls as neutral is exactly as fast as placing the joystick in the opposite direction.  An advantage to this approach is the ability to *not* perform a turnaround jump, if you don't want to.  

! About Movement

During a jump Mario moves very slightly faster than while running, this is a good way to save a few frames.

After a jump, if Mario thinks that he should be going slower than he is (ie if you have attempted to slow him down in the air) he will skid.  Unlike in the NES game, this actually takes no speed away.

! About Floors

There seems to be two types of floors in the game.  Those which are solid underneath and those that aren't.  The differences between them are:
*You can jump through the non-solid floors.
*You can glitch through the non-solid floors with the aid of a block.
*A non-solid floor will "catch" you when you are within two pixels of the top.  Whereas a solid floor will "catch" you at four pixels. ([TODO]: Confirm this)

! About Falling

If Mario falls too far bad stuff happens.

* First, if Mario falls longer than 5 blocks, Mario rolls on the ground at running speed, this forces Mario to drop any object he is holding.  (The drop occurs in the air, no time is lost if Mario doesn't overshoot his destination)
* Second, if Mario falls longer than 7 blocks, Mario breaks his leg.  This immobilizes Mario for around 2 seconds.
* Finally, if Mario falls longer than 8 or 9(?) blocks, Mario hits his head and dies.

However, if you land on an edge of a platform with enough momentum to fall off of the platform before the animation completes and Mario stops moving, all effects (other than dropping the object) are negated and Mario enters the falling state again.  

!! Turnaround Jump Tricks

The turnaround jump range is exactly 4 by 8-pixel blocks vertically.  It's the basis for a few tricks and glitches.  Most notably is the Wall Jump Glitch.

The Turnaround Jump requires that Mario be moving (even if only for one frame), and the last direction held was opposite to his movement.  The longest delay possible between turning around and jumping is 16 frames.

Depending on how you steer during your jump your jump will have slight frame variance (ie you can control to a limited extent how long you will stay in the air.) ([TODO]: Figure out the physics behind this)

! Forward Turnaround Jump

It's possible to perform a turnaround jump without turning around, or even slowing down.  Just run forward, and then hit the opposite direction and jump for one frame, then continue in the direction you were heading.  Because Mario take a few frames to react to slow down of any sort, this will not effect your forward speed at all.

! Wall jumping

It is possible to continually jump off a wall or the edge of the screen as long as the following conditions are met.
* You are attempting to jump off of the left side of the object.  (ie, Mario is to the left of the object he is trying to wall jump off of)
* There isn't an fixed object against the wall.  This includes ladders, hat/umbrella/bag/key areas, areas for the extendable ladders and bridges, areas for the block smashing hammer, etc.  This does not include extended ladders, or hammers.

!! Handstand/Triple Jump Tricks

Mario can perform a triple jump in this game by jumping from a handstand jump with very good timing.  In order to do a handstand jump you must press jump the frame after pressing the down arrow.  It's not necessary to hold the down arrow beyond the very first frame.

! Speed

Mario moves very quickly while performing a triple jump.  It's his fastest form of non-assisted movement possible.  If you can perform a triple jump without overshooting your target, even if you hit the ceiling, it's always faster.  The only exception is when Mario is walking through a 2 by 8-pixel block high area.

! Jumping from the air

On the landing of the second jump Mario ducks as a wind of for the third jump.  In this form Mario can always jump, even if his feet aren't on the ground.  Mario will still accelerate as if he's falling, but he can still jump from the air.

! 2nd vs. 3rd jump heights

The second jump goes 4 by 8-pixel blocks into the air.  Whereas the third jump goes 4 1/2 by 8-pixel blocks into the air.  This difference can be exploited in a few cases, but not very many.

! Breaking the Finish

If on your last jump you fall far enough to trigger the rolling animation, which in this case is only 4 pixels from the elevation of the jump, you'll break out of the handstand finish, saving a number of frames.

! Moving enemies

While in certain parts of the handjump/triple jump animation Mario doesn't respond to certain types of slow-moving, pushing enemies.  It's possible to push these enemies into the wall using this.

!! About the Key/Key Tricks

The key is required to complete every nonboss level.  If it's in its home area it takes 6 frames worth of jump to reach the area where you can pick up the key.  If the key isn't in its home area it takes 9 frames worth of jump to reach the area where you can pick up the key.  If the key is flashing and about to disappear, it takes anywhere between 9 and 12 frames of jump to grab it.

---You cannot pick up a key during the ascent of the turnaround jump, but you can during the decent.---  Jimsfriend found a way, demonstrated [http://dehacked.2y.net/microstorage.php/info/4885/dkong.vbm|in this vbm].

You cannot pick up a key at all during any phase of the triple jump.

A key falls at a slower maximum rate than Mario.

A key will fall through elevator platforms.

Mario has several, exploitable glitches with the way he interacts with the key.

! Falling while picking up the key

When Mario picks up a key he falls straight down at a constant rate equal to the key's maximum falling velocity.  He continues to fall at this rate until he reaches the ground.  The left/right controls are locked at this time.  Mario also won't be effected by enemies in this state.  He also won't be effected by the distance he falls.  This can be exploited to glitch through enemies.  And also to fall very long distances without dying.

OmnipotentEntity: I wonder what happens if you take a key like this into a pit... hmm...

! Wild Key Riding

You can stand on a falling key.  This performs a similar function as picking up the key while falling.  With the additional advantage of being able to move left and right.

! Falling Through Elevators

While performing the Wild Key Riding, Mario, like the key, will ignore the elevator, this allows you fall through elevators that are intended to act as one way gates.

! Key Ejection

If you throw a key into a wall it will eject upwards.  This is useful if you need to get the key way high.  Unfortunately, it does not seem that you can navigate yourself onto the key while it's being ejected upwards (ie you can't use it as an elevator,) as the throwing animation locks your jump controls.

!! All about the Hammer

Mario moves slightly slower horizontally while holding a hammer.  It is usually best to hold the hammer for as little time as possible while running back and forth because of that.  Simply holding a hammer does not effect his vertical speed.

! Cancel Vertical Momentum

You can throw away the hammer near the top of a turnaround jump to cancel the penultimate (and longest) part of the jump.  However, this gain is lost if the platform Mario is jumping to is too low.  It is unknown at this time whether this trick works with normal jumping.

! Hammer Splitting

If you throw away a hammer and then grab it on the first frame its animation changes (and therefore it's hitbox), and you grab it in such a way that you miss the new hitbox but hit the old one, then the hammer will split into two different one.  It is unknown at this time whether this trick works with the block breaking hammer in the Pyramid Stages.  Also unknown is its effect on the lifetime of the hammer (would two hammers drain the countdown twice as fast?  If so would it be possible to extend the life of the hammer indefinately by making the countdown miss 0 by going from 1 to -1?)

!! Misc Tricks

! Glitch Through Ceiling with elevator

If there is a non-solid block 8 pixels below the top part of an elevator it's possible to use the block and an elevator platform to glitch yourself through the top of the elevator.

! Glitch Through Pauline

Pauline is odd in that her ejection routine is different from other objects.  Pauline always ejects to the right and up.  So if you enter her from the bottom you'll encounter no resistance, and be ejected to the right and up.

! Glitch Through the Floor

On a non-solid platform, you can use a boulder to push yourself through the floor.  This is done by entering the hitbox of the boulder and jumping on the same frame, which is the frame that your controls would lock before you die if you were just standing in the boulder's hitbox.

!! Luck Manipulation Theories

([TODO]: Research this more thoroughly.  )

[user:OmnipotentEntity]: Currently, my theory is that the random number generator is "on wheels" and changes whenever an enemy accesses it for a reason.  It's changed whenever it's accessed.  It's unknown whether or not it's possible to seed the RNG at the beginning of the game by waiting frames before starting, but it seems to be impossible to manipulate from within the game.  This would explain the weird occurances surrounding luck in my WIPs.

Grincevent: It is indeed possible to seed it at the beginning of the game, when the brick wall is being destroyed; at that point the RNG changes each frame until it stops by itself (the end of the breaking animation) or the player presses start (or A...) to go to the title screen. But if you want to manipulate the RNG at the start like that, you'll have to wait at least 61 frames from the first point when you're given the opportunity to skip that screen. In other words, from the earliest frame you can skip that screen, the RNG starts moving 61 frames later. It has to be worth these 61 frames (or more) if we want to change the starting RNG.

!! Memory Addresses

// Donkey Kong (U)%%%
[[DONKEY KONG]]

C207,1u,XPos%%%
C208,1u,XPos(SubPixel)%%%
C203,1u,YPos%%%
C204,1u,YPos(SubPixel)

C205,1s,YSpeed%%%
C206,1s,YSpeed(Sig)

C209,1s,XSpeed%%%
C20A,1s,XSpeed(Sig)%%%
//XSpeed is Mario's speed disregarding moving platforms, wind, etc.

C21F,1u,IsJumping

//C200,1u,???%%%
//C007,1u,A Bitmask of some sort reflecting the way mario is facing.%%%
//C005,1u,XPos Inaccurate When Holding Hammer%%%
//C001,1u,XPos Inaccurate When Holding Hammer%%%
//C000,1u,YPos Inaccurate When Holding Hammer%%%
//C002,1u,MarioAnimation%%%
//C202,1u,Phase of Mario's Walk?%%%
//C21C,1u,HammerUpOrDown

C710,1u,Sub-Timer (1 tick every 4 frames)%%%
C711,1u,Timer%%%

DEFE,2u,Random number generator%%%