Parallel Universe: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
No edit summary
Line 1: Line 1:
[[File:ParallelUniverseViews.jpg|thumb|A diagram of Parallel Universe movement in [[Hazy Maze Cave]], after [[Mario]] has returned to the main map.]]A '''Parallel Universe''', or '''PU''', is an area in a ''[[Super Mario 64]]'' map at which the game creates phantom floors despite [[Mario]] being "outside" of the level. This is because the casted position value used to check for ground below Mario doesn't have enough bits to go above 7FFF<sub>h</sub> or below -8000<sub>h</sub>, unlike Mario's actual position, which is a [[float]]. [[File:Visible PU.png|thumb|184x184px|Frame of [[Peter Fedak|Peter Fedak's]] video where he turns Parallel Universes visible using hacks; notice the lack of [[objects]]|left]][[pannenkeok2012]]'s video "[[Fly Guy Size Manipulation]]" confirms that vertical PUs do exist as well. However, since Mario's Y position cannot exceed 20000 in most circumstances, there are only three ways to reach a positive vertical PU: Hyper Speed Flying, Platform Release Displacement, and Indefinite Owl Flight. Negative vertical PUs can be reached with Hyper Speed Flying, Platform Release Displacement, or an Overflow Jump. Pannenkoek's video "[https://www.youtube.com/watch?v=wC1PV9CYC4Y Spawning a 100 coin star in a PU]" shows that spawning a [[100 Coin Star]] in a PU will [[Softlock|softlock]] the game. Note that PUs do not have anything except floors, so there are no walls, ceilings, or [[objects]].
[[File:ParallelUniverseViews.jpg|thumb|A diagram of Parallel Universe movement in [[Hazy Maze Cave]], after [[Mario]] has returned to the main map.]]A '''Parallel Universe''', or '''PU''', is an area in a ''[[Super Mario 64]]'' map at which the game creates phantom floors, walls, or ceilings despite [[Mario]] being "outside" of the level. This is because the casted position value used to check for ground below Mario doesn't have enough bits to go above 7FFF<sub>h</sub> or below -8000<sub>h</sub>, unlike Mario's actual position, which is a [[float]]. [[File:Visible PU.png|thumb|184x184px|Frame of [[Peter Fedak|Peter Fedak's]] video where he turns Parallel Universes visible using hacks; notice the lack of [[objects]]|left]]. Though usually the term "PU" refers to a horizontal PU (i.e. one caused by truncation of Mario's X and/or Z positions), vertical PUs (where the Y coordinate is truncated) also exist. However, since Mario's Y position cannot exceed 20000 in most circumstances, there are only three ways to reach a positive vertical PU: Hyper Speed Flying, Platform Release Displacement, and Indefinite Owl Flight. Negative vertical PUs can be reached with Hyper Speed Flying, Platform Release Displacement, or an Overflow Jump. Since all object positions are floats, there are no [[objects]] in PUs unless Mario brings one there.


==Travel and movement==
==Travel and movement==
Line 5: Line 5:
Parallel Universe movement is comparable to movement through a five-dimensional space, as Mario can be modelled as travelling along five axes: relative X, relative Y, Z, PU X, and PU Z. This is because Mario can adjust his [[speed]] and [[angle]] to move relatively around the stage regardless of how many PUs he moves in the X or Z dimensions.
Parallel Universe movement is comparable to movement through a five-dimensional space, as Mario can be modelled as travelling along five axes: relative X, relative Y, Z, PU X, and PU Z. This is because Mario can adjust his [[speed]] and [[angle]] to move relatively around the stage regardless of how many PUs he moves in the X or Z dimensions.


Since Mario's movement is split up into 4 quarter steps, and Mario cannot move out of bounds, in the game's courses Mario must travel at least a '''Quadruple Parallel Universe''' distance, '''QPU''' for short. However, if one of Mario's quarter steps (other than the first one) ends out of bounds, the game will cut his movement short. In this case, Mario does not travel a full 4 PU, instead ending up at a quarter-step between the QPUs depending on where the movement is cut off. This is referred to as a '''misaligned QPU'''.
Since Mario's movement is split up into 4 quarter steps, and Mario cannot move out of bounds, in the game's courses Mario usually travels at least a '''Quadruple Parallel Universe''' distance, '''QPU''' for short. However, if one of Mario's quarter steps (other than the first one) ends out of bounds, the game will cut his movement short. In this case, Mario does not travel a full 4 PU, instead ending up at a quarter-step between the QPUs depending on where the movement is cut off. This is referred to as a '''misaligned QPU'''.


In "[[Angles]]" and "[[Floats]]", pannenkoek2012 demonstrated how the granularity of [[Mario]]'s [[position]] and angle can affect movement in Parallel Universes, and how this granularity makes it important to stay QPU-aligned and axis-aligned where possible.
Floating point imprecision errors on [[Mario]]'s position and angle can affect movement in PUs, causing strange-looking rounding errors.


Parallel universes tend to crash on console due to floating point exceptions. There are 4 ways the crash can happen:
Parallel universes tend to crash on console due to floating point exceptions. There are 4 ways the crash can happen:
* The camera leaves the main map
* The camera enters a PU
* Mario bonks while in a PU
* Mario bonks while in a PU
* Mario's quarter step gets cancelled while on the ground
* Mario's quarter step gets cancelled while on the ground
* Mario collides with a wall head-on with PU speed
* Mario collides with a wall head-on with PU speed
Note: It is currently unknown whether PU crashes occur on the [[iQue Player]] version of the game, since it is so hard to obtain.
== Gameplay ==
Many things can cause strange effects when done in a PU. For example:
* Shadows and coin twinkle effects are glitchy
* Spawning a 100 coin star will [[Softlock|softlock]] the game


== Emulation ==
== Emulation ==
Most emulators (including the official [[Virtual Console]] version) do not correctly emulate crashing due to floating point exceptions. A specialized version of Mupen64 was created that crashes when encountering floating point exceptions in order to better test PU routes.
Most emulators (including the official [[Virtual Console]] versions) do not correctly emulate crashing due to floating point exceptions. A specialized version of Mupen64 was created that crashes when encountering floating point exceptions in order to better test PU routes.

Navigation menu