Parallel Universe: Difference between revisions
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]] | [[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 | 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'''. | ||
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 | * 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]] | 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. |
Revision as of 09:19, 9 July 2018
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 7FFFh or below -8000h, unlike Mario's actual position, which is a float.
. 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
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 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.
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:
- The camera enters a PU
- Mario bonks while in a PU
- Mario's quarter step gets cancelled while on the ground
- 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 the game
Emulation
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.