Cloning: Difference between revisions

2,683 bytes added ,  15 June 2018
no edit summary
mNo edit summary
No edit summary
Line 1: Line 1:
[[File:Mario holding a coin clone.png|thumb|242x242px|Mario holding a Coin Clone]]
[[File:Mario holding a coin clone.png|thumb|242x242px|Mario holding a Coin Clone]]
'''Cloning''' refers to glitches wherein an object can be duplicated. For instance, grabbing an exploding [[Bob-omb]] just as it despawns will allow the held object's [[memory]] slot to be overridden, thereby letting Mario hold a copy of a nearby item. In courses with [[Loading area|loading areas]], cloned objects can be unloaded and respawned to copy them potentially infinitely. In other levels, clones can fill the stage's memory limit, causing [[lag]] and graphical glitches, and eventually [[Game Freeze|freezing]] ''[[Super Mario 64]]''.
'''Cloning''' refers to a number of glitches that allow Mario to hold objects that were not intended to be held. Typically, this happens when Mario continues to hold an [[object slot]] after the object in it has unloaded. When a new object loads into this slot, Mario will hold a reference to this new object. The name "cloning" comes from one of its main applications, which is to duplicate objects such as coins or goombas. This name is a misnomer, as the duplication behavior is a property of those specific objects, and not the technique itself.


Clones cannot send or receive [[Signal|signals]].
== Methods ==


==How it works==
=== Delayed grab ===
<!--Extremely simplified, still needs work: Blueeighthnote-->
When Mario picks up an object by punching (as opposed to diving or water grab), there is a two frame window of time in which the object is not held, yet Mario has committed to picking up the object. At the end of this window, Mario will hold the object slot that this object is in, even if the original object has since despawned.
In simple terms, Mario needs to hold an unloaded object to initiate cloning. There are two ways to do so.


When Mario holds an object, a [[signal]] is sent to the game managing object slot to keep track of what object Mario is holding. The signal takes 2 frames to reach for a ground grab and a dive grab. During the 2-frame window, if an object despawns, then Mario would end up holding a vacant slot, allowing Mario to turn that object into a different one.
For example, if Mario begins to pick up a bob-omb just before it explodes and despawns, Mario will hold the object slot that the bob-omb originally occupied.


When Mario passes by a loading point, all objects are unloaded when the transition occurs. Therefore, whatever object Mario is holding will also be unloaded and be replaced by a different object.
This can be performed using the following objects:
*[[Bob-omb]]
*[[Cork box]]
*[[Chuckya]]
*[[Crazy Box]]<ref>https://www.youtube.com/watch?v=BEiRksVS3aw</ref>


==Objects that can be cloned==
=== Loading zones ===
'''Right when the object is unloaded'''
[[Loading zones]] cause all objects to despawn, and new objects to spawn in their place. If Mario is holding an object while passing through a loading zone, he will continue to hold the object slot, even though the object has unloaded.
*'''Bob-omb''', right as it explodes from the fuse, by throwing it or waiting for it to blow-up
*'''Cork box''', right as it explodes due to impact, or before it despawns due to 30-second inactivity after it leaves its original location
*'''Chuckya''', right as it explodes when thrown
*'''Crazy Box''', by using some hands-free maneuvering, and going into water. See [https://www.youtube.com/watch?v=BEiRksVS3aw this] for the exact route.


'''When passing through a loading zone'''
This can be performed in [[Wet-Dry World]] by carrying a [[chuckya]] or [[heave ho]] through the loading zone, and in [[Dire, Dire Docks]] using the [[water shell holding]] glitch.
*'''Shiny Shell''' in [[Dire, Dire Docks]] through the loading zone (midpoint of the tunnel)
 
*'''Chuckya''' in [[Wet Dry World]] through the loading zone (midpoint of the tunnel)
== Properties of clones ==
When Mario releases a cloned object, the object stops updating. Mario can still [[Interaction|interact]] with it, since interaction is part of Mario's behavior, not the object's. For example, while Mario can still collect a coin after it has been cloned, the coin no longer spins.
 
While Mario can still interact with objects, certain types of interactions will cause the object to become intangible, and thus he will no longer be able to interact with it in any way. These include:
*Collecting a coin
*Taking damage from an enemy
*Touching a water ring
*Getting knocked back by a bully
*Touching a [[Warps|warp object]]
*Getting grabbed by an object
 
Some notable interactions that do ''not'' cause the object to become intangible are:
*Touching a [[koopa shell]]
*Knocking back a bully
*Warping using a [[teleporter]]
 
The behavior of clones is identical to that of objects during [[time stop]].
 
== Applications ==
 
=== Duplication ===
Some objects such as coins and goombas use spawners, whose purpose is to ensure that these objects are loaded when necessary. For example, when Mario moves far away from a line of coins, they despawn. When Mario again moves toward the coins, the coin line's spawner is responsible for respawning the coins in the line that have not yet been collected.
 
When Mario interacts with a coin, he collects it and sets a flag on the coin to inform it that it has been collected. When the coin next updates, it despawns itself, and informs the coin spawner that it should not be respawned when Mario moves away and comes back. However, if this coin was cloned, then it does not update, and so cannot inform the spawner that it has been collected. Thus, if Mario collects a cloned coin, and then moves away and returns, the original coin will respawn, effectively duplicating the coin.
 
The following objects can be duplicated in this manner:
*[[Goomba|Goombas]]
*[[Yellow Coin|Yellow coins]] (not [[Red Coin|Red coins]], as these do not have spawners)
<!--Finish this list-->
 
Because the cloned objects do not despawn, they gradually fill up the available object slots and continue to be rendered on screen. This can cause lag, [[game corruption]], and eventually a [[game freeze]] when the object slots run out.
 
=== Infinite shell ===
When Mario rides on a [[koopa shell]], the shell object stays spawned until he runs into a wall or presses Z, which causes the shell to break. At this point, Mario sets a flag on the shell, and when the shell next updates, it despawns itself. Because a cloned shell does not update, it does not despawn, allowing Mario to repeatedly ride and break a shell after cloning it.
 
=== Remote star collection ===
Stars that spawn during the course of gameplay can be cloned. For example, this can be done with red coin stars, 100 coin stars, and stars contained in item boxes.
 
Even if a star is spawned at the start of a level, it can still be cloned if that level contains a loading zone, such as Board Bowser's Sub and Collect the Caps in [[Dire, Dire Docks]].


==See also==
==See also==
Line 29: Line 66:
[[Category:Glitches]]
[[Category:Glitches]]
[[Category:Memory glitches]]
[[Category:Memory glitches]]
== References ==