Back to Page
Revision 74 (current)
Edited by Unknown on 1/1/2022 6:13 PM
!!! Introduction
The purpose of this page is to document all known __Mechanics, Tricks, and Glitches__ that are present within Super Mario 64 for the Nintendo 64.
;Mechanics:How Super Mario 64 operates. For example, this includes knowledge of Mario's movement and how it works.
;Tricks:Actions that __DO NOT__ abuse mechanics to obtain a certain goal.
;Glitches:Actions that __DO__ abuse mechanics to obtain a certain goal.
For the sake of differing opinions, these definitions only apply to this webpage. Surely, you or someone else may have a different opinion on these definitions.
----
For now (January, 2019), this TASVideos Game Resources page will be the host of mostly general knowledge of Mechanics, Tricks and Glitches that are present within both Tool-Assisted and Non-Tool-Assisted Speedruns/Superplays of Super Mario 64.
However, dedicated Super Mario 64 experts, speedrunners, and TASers have all contributed to hosting another website called Ukikipedia, which hosts __all__ Super Mario 64 knowledge.
Visit Ukikipedia Here:
https://ukikipedia.net/wiki/Main_Page
Many mechanics, tricks, and glitches are incredibly difficult to reproduce in real time, so utilizing an [EmulatorResources|Emulator] with tools such as [EmulatorResources/RamWatch|RAM Watchers], [EmulatorResources/Using#ChangingTheSpeed|Slowdowns], [EmulatorResources/Using#FrameAdvance|Frame Advancing], and [EmulatorResources/Using#UsingSavestates|Savestates] is necessary in order to perform them.
Thanks to the skilled developers within the Super Mario 64 Community, there are current efforts being invested into developing a RAM Watching Program specifically designed for Super Mario 64 called [https://ukikipedia.net/wiki/STROOP|STROOP] (__S__uper Mario 64 __T__echnical __R__untime __O__bserver and __O__bject __P__rocessor)
Visit the [https://github.com/SM64-TAS-ABC/STROOP|Official STROOP GitHub Page] for releases, and other information.
----
!!! Game Mechanics
!! Movement
Check out the [https://cdn02.nintendo-europe.com/media/downloads/games_8/emanuals/nintendo_8/Manual_Nintendo64_SuperMario64_EN.pdf|Official Nintendo Manual] for learning all of Mario's original movement names. (Starts at Page 5.)
Within most of the SM64 Speedrunning & TAS Community, we will refer to some of Mario's movement with different names. Here is the list where they are shown in (Manual Definition | Community Definition) format:
;Side-Step: Hugging The Wall
;Break-Stroke: Fast Swimming / Optimal Swimming
;Flutter-Kick: Slow Swimming
;Regular Jump: Single Jump
;Continuous Jump: Double Jump
;Side Somersault: Sideflip
;Backwards Somersault: Backflip
;Swing or Climb: Ledge Grab
;Slide Attack: Dive
;Trip: Breakdance
__Extra Community Definitions:__
;Action: A single movement that Mario performs. (Action can be synonymous with Movement, or State.)
;Animation: The animation during a single movement that Mario performs.
;General Horizontal Movement / Normal Horizontal Movement: All forward movement (while in mid-air). Excludes Long Jumps. (General Horizontal Movement is subcategorized into: General Forward Movement, and General Backward Movement)
;Grounded: The act of Mario being on any Floor. (See ''Geometry'' Section Below for Floors.)
;Roll/Rollout: Landing (Rolling) immediately after having been in sliding/diving animation.
;Dive Roll: An immediate dive then roll.
;Bonk: When Mario crashes into walls, or objects.
;Butt Slide: Mario's Sliding animation where his butt is on the ground/slope.
;Lava Boost / Lava Burn: Getting burned by lava.
;Fire Boost: The mini jump that occurs after being burned by fire.
;Fire Burn / Burn / On Fire: The running action that follows a fire boost.
;Nisflip: An unnecessary Sideflip + Dive.
''To-Do: Add more definitions. Lots more.''
!! Units
Units in Super Mario 64 refer to Coordinates within the 3D space. Please refer to Pannenkoek2012's detailed video explanation (below) on that subject:
[module:youtube|v=3lADTcTkAvk|w=320|h=240|hidelink]
!! Speed (or Velocity)
Speed in Super Mario 64 refers to the number of Units that Mario will move in 1 Frame. (For reference, Super Mario 64 is a 30 Frame-Per-Second Game. Therefore, 1 Frame is equivalent to 1/30th of a Second.)
Speed is both measured Horizontally, and Vertically. In certain circumstances, the distance (units) Mario moves isn't necessarily equivalent to his speed. For a visual explanation on that subject, visit Pannenkoek2012's detailed video explanation below __(timestamped)__:
[module:youtube|v=kpk2tdsPh0A|start=812|w=320|h=240|hidelink]
! How Speed Works:
All of Mario's Horizontal Movements (on both the X & Z Axes; Forwards, Backwards, & Sideways Movement) are handled separately, but are not independent. The magnitude of an input on the joystick directly correlates to the effect of all his horizontal movements. For example, tilting the joystick forwards at its maximum magnitude (while Mario is also facing forwards) allows Mario to accelerate forwards as fast as possible. In this same scenario, holding the joystick to the left or right at its maximum magnitude (while Mario is also still facing forwards) allows Mario to accelerate Sideways as fast as possible. Although Horizontal Speed Acceleration and Deceleration are directly proportional to the amount of Joystick Tilting being performed, there are exceptions. Examples include: Bonks, Canceling Ledge Grabs, Being Shot out of a Cannon, Getting Hit/Thrown, Wind, etc.
Most of Mario's Vertical Movements (on the Y Axis) are completely independent from joystick movement. (The only exceptions are Swimming and Flying.) There are predetermined values of acceleration and deceleration, both of which depend on the action that's performed. For certain actions, Vertical Speed is directly proportional to the amount of Horizontal Speed that Mario obtains.
The difference between Horizontal Speed and Vertical Speed depend on whether Mario is Grounded or not. Regardless of how it may seem, Vertical Speed is only active when Mario is not Grounded.
__Example - Horizontal Speed vs. Vertical Speed:__
Let's have Mario slide down an extremely steep slope. His vertical position drastically changes compared to his horizontal position, so surely he must have a large amount of negative vertical speed, right? Wrong. If Mario were to never leave the slope, regardless of his vertical movement, he will only have Horizontal Speed, albeit very little speed.
__Factors that Affect Speed:__
* Floor (Surface/Ground) Type: Non-Slippery Floors, Slippery Floors, Water, Lava, Ice (Regular, Burning), Sand (Regular, Sand Pit, Sinking Sand, Quicksand), etc.
* Floor Steepness
* Special Caps: Wing Cap (Flying), Metal Cap (Falling, Walking)
* Swimming: Slow, Fast, Shell, Holding Object
* Holding Object: Small Object, Big Object
* Predetermined Speeds for Certain Actions: Cannon Shots, Being Thrown, Wind, Knockback (Enemy, Bonk, Canceled Ledge Grab, Jumpkicking Wall), Etc.
__The Mechanics of Speed:__
;Speed Cap: The minimum/maximum value of speed that Mario obtains when performing a certain action. There are Speed Caps for both Horizontal and Vertical Actions. Speed Caps can both be Positive or Negative.
;Acceleration/Deceleration Cap: The minimum/maximum value of speed that Mario can accelerate/decelerate per frame when performing a certain action. Acceleration Caps are always positive. Deceleration Caps are always negative.
;Predetermined Initial Speed: The predetermined initial value of speed that Mario's actions begin with.
__Side Note: Speed Mechanics__
Certain Actions have ''No Theoretical Limit'' for the amount of Speed that can be obtained, which is discussed in the ''Hyperspeed'' section.
__Example - Properties of a Speed Cap:__
This example features the Speed Cap for Crawling. [https://imgur.com/a/ok0NcCT|Data of this can be viewed on this Imgur Post.] Initiation of crawling movement begins with 0 Speed, however, data of initiation is not shown on the graph. Mario's crawling speeds oscillate with a predetermined difference of ~1 Unit for each Sub-Cycle. Several Sub-Cycles are repeated until a value near the Speed Cap is reached. You can see Mario's average speed increases in a linear-like fashion per Cycle. Once a Cycle has been completed, a new Cycle will begin. Cycles are repeated until the Speed Cap of that action has been reached. For crawling, 1 Full Cycle is equivalent to 4 Cycles. This process will continue in the same manner indefinitely, unless the action changes, or is stopped.
__Two Types of Speed Caps:__
;Absolute Speed Cap: The absolute minimum/maximum value of speed that Mario obtains when performing a certain action. There are no conditions during this action that can exceed this value.
;Convergent Speed Cap: The minimum/maximum value of speed that Mario's speed will converge to when performing an action.
__Example - Two Types of Speed Caps:__
* __Absolute Speed Cap:__ While holding A, when Mario lands in water from a falling state, he will water-plunge (landing in water) for a certain number of frames (the amount of frames depend on the type of falling state in which enters the water) and then he enters his slow swimming (flutter kick) state. (Entering his fast-swimming state is possible with correct timing of A presses.) If Mario has speeds >= 134 just before the first frame of water-plunging, ~1/4th of his original speed is retained. Water-pluging will cause his speed to decrease by 1 Unit per frame. After the water-pluging state is over, he enters his slow swimming state. No matter how much speed was retained, his speed is set to 27.5 Units. This is the Absolute Speed Cap for slow swimming. It's not possible to obtain any value higher than that.
* __Convergent Speed Cap:__ This example continues from the Water-Pluging example above. Once Mario begins to swim slowly, his speed will also begin to decelerate. That's just how the mechanics of slow swimming work. His speed will decelerate from 27.5 Units to 12 Units. 12 Units is the Convergent Speed Cap for slow swimming.
Both __General Forward Movement & Long Jumping__ are two examples of certain actions that have no theoretical limit for the amount of obtainable speed. For these actions, Mario will reach their Convergent Speed Caps respectively, and can __continue gaining speed__ beyond them. (Remember: General Forward Movement refers to movement while Mario is in mid-air. If Mario was able to maintain his vertical position while in mid-air, his horiztonal speed would continue to increase indefinitely. The best example that demonstrates this mechanic is the glitch called the [https://youtu.be/vaJOVyfPaBE?t=208|Pedro Spot.]
In General Forward Movement & Long Jumping, the Maximum Acceleration Value Per Frame is __1.15 Units__ prior to reaching the Convergent Speed Cap. Once the Speed Cap is reached, Mario's acceleration value changes from __1.15 Units__ to __0.15 Units__.
__Examples - All Possible Speed Caps:__
* Horizontal - Absolute Positive: 48 Units (Running Om Steep Slopes After Dive Rolling With Speeds >= 48)
* Horizontal - Absolute Negative: -8 Units (Canceled Ledge Grab)
* Horizontal - Convergent Positive: 32 Units (Running While On Fire)
* Horizontal - Convergent Negative: -0.1 Units (Landing After Knockback From A Bonk)
* Vertical - Absolute Positive: 65 Units (Triple Jump)
* Vertical - Absolute Negative: -75 Units (Falling)
* Vertical - Convergent Positive: N/A (Doesn't Exist)
* Vertical - Convergent Negative: -75 Units (Falling)
__Side Note - Absolute and Convergent Speed Caps for Vertical Velocity:__
Whenever Mario is not grounded, his vertical speed will naturally decelerate. This is done to mimic gravity within the game. Mario's Terminal Velocity for Falling is -75 Units. Falling is both an Absolute and Convergent Vertical Speed Cap. Mario will never fall faster than -75 Units Per Frame. This makes -75 Units an Absolute Vertical Speed Cap. If Mario was able to fall for an indefinite amount of time, and his initial vertical speed value was 0, his vertical speed would eventually converge to -75 Units. This makes -75 Units a Convergent Vertical Speed Cap. Gravity is also the reason behind there being no Convergent Vertical Positive Speed Cap. Mario will always decelerate when in mid-air, causing any positive vertical values of speed to decelerate into negative values.
''To-Do: List All Possible Speed Caps.''
''To-Do: List All Possible Acceleration Values.''
__Predetermined Initial Speed:__
For nearly every action Mario has, there is an initial speed for them. There are actions that Mario can perform regardless if his speed is < 0, = 0, or > 0. There are actions that can even be performed beyond their Speed Cap. It's rather redundant to refer to every possible starting value of speed as an Initial Speed, therefore, the primary focus of Initial Speeds will be on Predetermined Initial Speeds.
__Example - Predetermined Initial Speed:__
Mario's Predetermined Initial Speed for a Ground Pound is -50 Units. In other words, no matter the conditions, he will always start a Ground Pound with that speed. (Although he floats in the air for several frames, his speed becomes -50 Units on the frame after Z is pressed.) Predetermined Speeds cannot be manipulated.
''To-Do: List All Possible Predetermined Initial Speeds.''
!! Quarter Steps (Or Quarter Frames)
Mario's position is updated incrementally using his velocity (horizontal / vertical speed). These increments are called __Steps__, and they behave differently when Mario:
* Is on the __Ground__
* Is in the __Air__
* Is in __Water__
* Is __Hanging__ or __Climbing__
When on the Ground or in the Air, these Steps typically occur __4__ times per frame, and are commonly referred to as Quarter Steps or Quarter Frames.
Steps are also responsible for detecting collision with surfaces, updating Mario's referenced surfaces, and updating Mario's water level. However, the only exception is that Quarter Steps don't detect Warps.
!! Geometry
Below are several videos that cover intricate topics of the game: Walls, Floors, Ceilings, and Hitboxes.
For Walls, Floors, and Ceiling knowledge, refer to Walls, Floors, & Ceilings (Parts 1 & 2) - (By UncommentatedPannen)
For Hitbox knowledge and visualization, refer to Walls, Floors, & Ceilings (Part 3) & Wall Hitboxes - (By UncommentatedPannen).
For Walls, Floors, and Ceiling knowledge within Parallel Universes, refer to Walls, Floors, and Ceilings in Parallel Universes - (By Timestoppa)
__Definitions:__
;Hitbox: An invisible shape commonly used in video games for real-time collision detection. It is often a rectangle or circle (in 2D games) or cuboid, cylinder, or sphere (in 3D) that is attached to and follows a point on an object.
;Hurtbox: A specific type of Hitbox that give damage to Mario when he touches them. Many enemies in the game have Hurtboxes.
For additional information on Hitboxes, visit the [https://ukikipedia.net/wiki/Hitbox|Hitbox page] on Ukikipedia.
! Walls, Floors, & Ceilings (Part 1) - (By UncommentatedPannen)
[module:youtube|v=UnU7DJXiMAQ|w=320|h=240|hidelink]
! Walls, Floors, & Ceilings (Part 2) - (By UncommentatedPannen)
[module:youtube|v=f1kbABTyeo8|w=320|h=240|hidelink]
! Walls, Floors, & Ceilings (Part 3) - (By UncommentatedPannen)
[module:youtube|v=kRCjVLqjST4|w=320|h=240|hidelink]
! Wall Hitboxes - (By UncommentatedPannen)
[module:youtube|v=a9fUV7uA2_s|w=320|h=240|hidelink]
! Walls, Floors, and Ceilings in Parallel Universes - (By Timestoppa)
[module:youtube|v=av42uJ-04A4|w=320|h=240|hidelink]
!! Objects
Objects are entities in the game that are not a part of the Course/Level Geometry.
Most objects either interact with Mario and/or move in some way, act as stationary platforms or simply exist for aesthetic purposes.
The maximum number of objects in a course is __240__.
For additional information on Objects, refer to the [https://ukikipedia.net/wiki/Object|Object page] on Ukikipedia.
----
!!! Glitches
!! Hyperspeed
Hyperspeed is the nickname coined to abnormally large amounts of forward or negative speed.
Hyperspeed is the result of a minor oversight by the game's programmers/developers: There is no reasonable limit on Mario's speed when it becomes positive or negative. If you continue to gain speed for long enough, Mario's speed, stored as a Float value, will eventually reach (-)229399772256808620000000000000000000000, then tick over to (-)1.#INF, where it will then stop increasing/decreasing.
As a result, Hyperspeed has spawned many renowned glitches within the game. The most well-known glitch is the BLJ.
!! BLJ (Backwards Long Jump)
See also: [GameResources/N64/SuperMario64/ListofBLJLocations|List of BLJ Locations]
The BLJ has puzzled many gamers and glitch finders ever since its discovery. It can be used in various ways.
BLJs can be done on certain slopes, stairways, and obstacles. To perform a BLJ, do a long jump with Mario facing away from the obstacle/stairway/slope but move backwards towards it (by holding the joystick in the opposite direction). Mario will collide with the obstacle/stairway/slope, leaving him on the ground and enabling him to backwards long jump again. Mario's speed becomes negative at this point, and BLJing repeatedly causes a negative speed increase of approximately 45-50% of Mario's currently stored speed at that time.Once the desired speed is reached, simply stop BLJing and Mario will zoom off backwards at an incredibly high speed.
The key aspect of BLJs is Mario's capability of retaining negative speed temporarily. Eventually, the speed will increase back to 0, however there are a few frames within a BLJ in which his speed doesn't deplete instantly. These frames allow for repeated BLJs, thus increasing his speed.
You can use BLJs to:
*Gain enough speed to pass through doors, such as:
**Star doors
**Doors requiring a key (although the room behind it might not load)
*Zip backwards on the ground at very high speeds (if obstacles are avoided)
*Jump over incredibly large gaps (since when over the air, Mario will have the same BLJ jumping physics but with the massive speed still present)
*Pass through some loading zones, like the water wall needed to enter Dire Dire Docks
*Pass through some types of walls (like the iron gates in Bob-omb Battlefield.)
! Types of BLJs
While all BLJs work by the same principal, there are many different methods of performing them. There are numerous places where a BLJ can be performed throughout the game (virtually every level contains at least one), and it is unlikely that all such locations have been discovered.
! Stair BLJ
Stair BLJs were the first kind of BLJs to be discovered. A Stair BLJ consists of long jumping backwards onto stairs, which are basically tiny floors, which Mario can run directly over. BLJing on stairs works similar to Elevator BLJs because they both consist of Mario's jumps being interrupted allowing for more jumps to be performed, however the timing must be precise.
Here's how they work: With a precisely timed BLJ, Mario's vertical position snaps to the next highest stair, ultimately reducing Mario's vertical speed to 0 (allowing him to repeatedly BLJ on the ground). When this occurs, his negative horizontal speed is temporarily stored, allowing him to repeat the process which results in a greater amount of negative speed.
[module:youtube|v=7ppAz6W30fI|w=320|h=240|hidelink]
! Slope BLJ
Slope BLJs are backwards long jumps on steep slopes. To find slopes with this property, locate slopes that permit Mario to stand perfectly still on them. He will not slide off of them.
Here's how it works: When BLJing on a steep slope, Mario's jump is interrupted by the steep ground. With no negative horizontal velocity, Mario's long jumps behave just like the developers intended. However, on steeper slopes, with a negative horizontal velocity, and with ground located behind Mario, the game has no choice but to force Mario's position backwards along with an increased vertical position. This process is repeatable, allowing for Slope BLJs to be performed.
A common Slope to BLJ on would be the slopes on the Castle Roof or the tan-colored slopes located by the cannon in the castle grounds.
[module:youtube|v=A1HXoJvIfPo|w=320|h=240|hidelink]
! Elevator BLJ
Elevator BLJs are performed on elevators, but not every elevator permits an elevator BLJ!
Here's how they work: BLJs are possible on rising elevators because an elevator's vertical velocity allows them to catch up to Mario as soon as he leaves the ground from a BLJ. This interrups the first jump and allows him to jump again, thus repeating the process of a BLJ.
The elevators in Hazy Maze Cave and Bob-omb Battlefield are good places to practice. Elevators that's move in a horizontal fashion, such as the ones located in the volcano of Lethal Lava Land do not have the properties to initiate Elevator BLJs because their vertical velocity isn't fast enough.
[module:youtube|v=mt9qu2R0Wao|w=320|h=240|hidelink]
! Low Ceiling BLJ
These are probably the trickiest locations to find because some of them are invisible or are just plain easy to overlook. However, walls above a floor can also act like ceilings. These walls don't necessarily have to be parallel with the ground in order for a Low Ceiling BLJ to be performed.
These types of BLJs demonstrate Mario's mechanics to their most basic properties. Mario has the capability of temporarily storing negative speed after a BLJ, and the speed can be increased with repeated BLJs.
The most common Low Ceiling BLJ is the one presented within the video (located in the Jolly Roger Bay room). It is literally a low ceiling. Either one of the Lobby BLJs in the main room of the castle are also Low Ceiling BLJs, but they utilize Invisible Wall Hitboxes which act as Low Ceilings.
[module:youtube|v=_pBLMMzhsQY|w=320|h=240|hidelink]
! Side BLJ
Side BLJs are very similar to stair BLJs, since both utilize the vertical position snapping mechanic in the game (mentioned earlier in Stair BLJs). A Side BLJ essentially consists of Mario repeatedly BLJing onto and off of a floor.
Here's how it works: When Mario BLJs parallel to the stairs, Mario's vertical position snaps to the next highest stair (when the right angle is utilized). This also requires Mario's facing angle to be slightly askew with respect to the stairs, so that when he BLJs onto the next highest stair, his facing angle & negative speed allow him to drop back down to the original stair with which the Side BLJ was initiated with. As mentioned earlier, when Mario BLJs and snaps onto the next highest stair, his negative speed is temporarily stored, allowing him to repeat the process which results in a greater amount of negative speed.
Side BLJs can be performed on most stairs (due to some stairs having the appearance of stairs but are actually steep slopes) and on flat platforms which Mario can run directly over.
[module:youtube|v=a0I1q9mnVAk|w=320|h=240|hidelink]
! Pause BLJ
Pause BLJing allows Mario to BLJ 30 times per in-game-second instead of 15. (SM64 is a 30 Frame-Per-Second Game) While BLJing, do the following sequence:
#First Frame: (Start) + (Z) + (A)
#Second Frame:
#Third Frame: (Start)
#Fourth Frame:
#Fifth Frame: (Start) + (Z) + (A)
#And so on!
Basically, the Start Menu acts like a frame buffer which allows more inputs to be performed within the game timer. These rules apply for BLJing as well. However, this only works on slopes, stairs, and elevators. It does not work with Side BLJs or (some) Low Ceiling BLJs.
[module:youtube|v=V7Osa4wTWag|w=320|h=240|hidelink]
! BLJ to "Walk" on Slopes
Basically, get into close up Mario camera and BLJ somewhere. While in the process of running, press C^. This will cause Mario to go in the direction his back is facing until he hits a "wall" or runs out of speed. This enables Mario to do strange things such as flying up random slopes as long as a "wall" or super steep slope doesn't get in the way. This trick might be useful for improving some stars, and will be a great freerun trick.
[module:youtube|v=BIuHBbsdO5k|w=320|h=240|hidelink]
!! Grinding
Grinding is when Mario repeatedly falls off and continually catches a ledge, which leads to him being able to repeatedly dive along an edge or double jump. This can be both the fastest way for Mario to climb up some slopes, and occasionally a method of accessing normally inaccessible areas, such as the deserted city area in Wet Dry World while holding Chuckya. In order to do this Mario needs to be at a slight angle, preferably inwards facing the ledge; if he faces too far outwards, he may dive or jump off and not catch the ledge. He needs to land on the surface and be moving towards a seam; this will cause a collision detection where Mario can jump or dive again.
[module:youtube|v=nOptWs2a_LA|w=320|h=240|hidelink]
!! Wind Hyperspeed Glitch
This glitch works in THI and TTM. It requires a few minutes to get enough speed, so it isn't useful. To do this glitch, just get Mario stuck under a slope with the wind pushing him up.
[module:youtube|v=KV_7EMIMdyE|w=320|h=240|hidelink]
!! Dust frames
Dust frames are present when you don't execute a dive on the first frame possible. It considerably slows down Mario. When doing optimized dives, you shouldn't see any dust; to do so, press "A" or "B" on the first frame possible when hitting the ground; Mario will recover as soon as possible, without leaving dust.
!! MIPS (The Rabbit)
Though now an obsolete trick, MIPS was once necessary in any low% run. MIPS is a rabbit who appears in the basement once Mario collects 15 (and later, 50) stars; usually, Mario grabs him, takes his star, then goes on with the rest of the game. The rabbit was not meant to go anywhere outside the "green" part of the basement: Mario could not open a door and carry MIPS at the same time. However, a glitch was discovered that allowed Mario to merge MIPS with any "normal sized" door. This would put MIPS on both sides of the door, and Mario could jump out and grab him from the "wrong" side. When used with the entry to the part of the basement with the 30 star door, MIPS could actually be taken right up to that place. A second, similar glitch allowed Mario to get through the 30 star door: as Mario walked up to the side of the door using MIPS, letting him go while pressing Z gave Mario a sort of push, which put him on the other side of the door (an alternative, harder, and slower method was to let go of MIPS just before the door, and jump between it and the door, which would also push Mario through). This discovery led to the completion of the game with only 16 stars.
[module:youtube|v=QnPpOQS7kCI|w=320|h=240|hidelink]
!! HSWK (Hyper Speed Wall Kicks)
This trick is similar to BLJing, but instead of abusing Mario's unlimited negative speed, it utilizes another oversight by the game's programmers; unlimited forward speed via wall kicks. By wall kicking over and over again on the first frame possible, Mario gains speed. Repeatedly wall kicking for long periods of time can get you enough forward speed to pass through walls, star doors, and even the endless stairs!
[module:youtube|v=Vlh0CA_aBwQ|w=320|h=240|hidelink]
!! Parallel Universes
The ability to enter the moat door underwater comes from a glitch that has long been known, but poorly understood. Many players have noticed that by BLJing in certain spots, such as on an elevator, it's possible to get strange behavior to occur. On console, the game typically freezes, but on emulators and even Nintendo Virtual Console, Mario can warp to a weird invisible area. This behavior is often confused with Mario going out of bounds, but that's actually not the case. It turns out that in addition to the collision map present in the level, there are also an infinite number of invisible copies of the collision map spaced out in a 2D grid, extending to infinity. These copies, which we've been calling Parallel Universes (PUs), contain the exact same layout of floor and ceiling collision triangles as in the real map, but most everything else is missing. In addition to being invisible, there are no walls, no water, and most loaded objects are gone as well. Some things are still present however, like paintings in the castle.
The missing water is especially significant here, because the water is what prevents Mario from opening the moat door in the first place. Now, it's not enough to simply go to a PU, because even though the moat is empty, the door isn't there either. Instead, the empty moat allows Mario to approach the door in the real map simply by running into it. The problem with doing this in the real map is that the water prevents Mario from getting low enough to do this. There is only 1 frame to open the door underwater before he enters a swimming state, and landing from the air prevents him from opening a door for 3 frames due to dust, so he HAS to run into the door. The empty moat in PU allows us to do just that, but it's not a trivial task.
In order to access PUs and control Mario's position within them, it's important that Mario's speed is an integer multiple of 2^18, or 1 QPU (2^18 is equivalent to a point 4 PUs away, so we refer to it as 1 quadruple parallel universe -> QPU). Unfortunately, this speed can't be quickly obtained in the castle grounds becasue there's no good BLJ spot. There is another trick named hyperspeed walking that we're almost certain works, but it takes far too long to be useful in a speedrun. Instead, we make use of an obscure glitch in the Vanish Cap Under the Moat course. When Mario falls through the death barrier at the bottom of VCUtM, he spawns in water at the base of the waterfall in castle grounds. This is important because it preserves Mario's speed, which can be restored by pressing Z when exiting water (common SM64 TAS trick). Since VCUtM has elevators, we can build the necessary speed there, and use it outside of the castle! Getting a speed that works for both VCUtM and Castle Grounds was very tricky, however I'm not going to go into too much detail about that here.
Although going to PU has been known to pretty much always crash on console, we figured out a way to prevent it (Shoutout to Kyman for confirming this on console)! Simply switching R Camera to Fixed Camera Mode and holding R before going to PU is enough to prevent the crash. Because of this (and another glitch that will be revealed soon), we anticipate some significant improvements in multiple categories. Although the only proven way at this time to enter VCUtM with the moat raised is with hyperspeed flying (which requires 10 stars for the wing cap), we're working on a faster 0-star method that will hopefully make this strat viable for an updated 0 stars TAS. Even without this, a sub 5 0 star times is possible due to [https://youtu.be/3GBTKKQJS6M|BitFS]!
Finally, for those who want to know why the PUs exist at all, it comes down to an integer overflow glitch. Even though Mario's position coordinates are floating point decimal numbers, not integers, the game's code typecasts them to signed short (16-bit) integers for the floor and ceiling collision calculations. Short ints have a limited value range: they can be as low as -32768 and no higher than 32767. So if a number goes outside of this range it will "overflow" back to the other end of the range. For example, if Mario's X coordinate was 40000.0, when converted to a short int it would become -25536, as being larger than 32767 causes it to wrap around to the negative side. So for the purposes of the floor and ceiling collision calcs, adding or subtracting an integer multiple of 2^16 to a position coordinate has no effect!