16
edits
AgentMuffin (talk | contribs) No edit summary |
m (Add acronyms back) |
||
(3 intermediate revisions by 2 users not shown) | |||
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.]] | [[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 a region of space located far outside the intended map boundaries that reflects certain aspects, | A '''Parallel Universe''', or '''PU''', is a region of space located far outside the intended map boundaries that reflects certain aspects, notably the floors and ceilings, of the main map. | ||
== Explanation == | |||
When the game looks for floors below (or ceilings above) a given object (including Mario), it first "truncates" the object's position from a floating point value to a 16-bit integer value. The range of a floating point value is much larger, by a factor of roughly 10<sup>34</sup>, than the range of a 16-bit integer value, which ranges from -32,768 to 32,767 (-2<sup>15</sup> to 2<sup>15</sup> - 1). If a coordinate of the object's position falls outside the range of a 16-bit integer, it "wraps around" due to the binary bits outside the 16-bit range getting truncated. For example, if one of these floating point values is 40,000, then 40,000 - 65,536 = -25,536 will be used when determining if the object is aligned with a floor or ceiling. This gives the illusion that the floors and ceilings of the main level map are "copied" repeatedly in a uniform 3D grid, at a spacing of 65,536 units. | |||
[[File:Visible PU.png|thumb|184x184px|Frame of Peter Fedak's video where he turns Parallel Universes visible using hacks; notice the lack of [[objects]]|right]] | [[File:Visible PU.png|thumb|184x184px|Frame of Peter Fedak's video where he turns Parallel Universes visible using hacks; notice the lack of [[objects]]|right]] | ||
The truncation responsible for the existence of parallel universes is only performed when determining alignment with floors and ceilings. This means that walls and objects, both of which use floating point arithmetic to determine collision, do not "exist" in PUs, unless they are brought there. | The truncation responsible for the existence of parallel universes is only performed when determining alignment with floors and ceilings. This means that walls and objects, both of which use floating point arithmetic to determine collision, do not "exist" in PUs, unless they are brought there. | ||
Line 8: | Line 11: | ||
Methods to access a PU are: | Methods to access a PU are: | ||
*Speed: | *Speed: | ||
**[[Backwards Long Jump#Elevator BLJ| | **[[Backwards Long Jump#Elevator BLJ|Elevator Backwards Long Jump]] (EBLJ) | ||
**[[Hyperspeed Walking | **[[Hyperspeed Walking]] (HSW) | ||
**[[Hyperspeed Punching | **[[Hyperspeed Punching]] (HSP) | ||
**[[Bully battery| | **[[Bully battery|Bully Battery]] (BB) | ||
**[[Speed conservation|Speed Conservation]] | **[[Speed conservation|Speed Conservation]] | ||
* Displacement: | * Displacement: | ||
Line 232: | Line 235: | ||
Parallel universes have found uses in both speed TASes and the [[A Button Challenge]] since they allow greater control of movement through a level. PU routing is comparable to movement through a five-dimensional space, as Mario can be modeled as traveling along five axes: three "relative" axes describing his position within the map, and two integers to specify which PU he is currently in. These PU axis integers are Mario's coordinates on the PU grid. 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 universes have found uses in both speed TASes and the [[A Button Challenge]] since they allow greater control of movement through a level. PU routing is comparable to movement through a five-dimensional space, as Mario can be modeled as traveling along five axes: three "relative" axes describing his position within the map, and two integers to specify which PU he is currently in. These PU axis integers are Mario's coordinates on the PU grid. 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. | ||
Mario's movement is split up into four [[Movement Steps|quarter steps]], and if any of these quarter steps attempts to place Mario out of bounds, his movement is canceled. Therefore in order to move to a PU, Mario's speed must be a multiple of four times the distance between PUs. If Mario takes all four quarter steps, then he will move four PUs in a single frame. | {{Anchor|QPU}} | ||
Mario's movement is split up into four [[Movement Steps|quarter steps]], and if any of these quarter steps attempts to place Mario out of bounds, his movement is canceled. Therefore in order to move to a PU, Mario's speed must be a multiple of four times the distance between PUs. If Mario takes all four quarter steps, then he will move four PUs in a single frame. This distance is called the '''Quadruple Parallel Universe''', or '''QPU''', distance. | |||
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 the full QPU distance, and instead ends at whichever PU he made it to before his intended quarter step became out of bounds. He is then "QPU misaligned." | 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 the full QPU distance, and instead ends at whichever PU he made it to before his intended quarter step became out of bounds. He is then "QPU misaligned." |
edits