Trampoline: Difference between revisions
mNo edit summary |
mNo edit summary |
||
(6 intermediate revisions by one other user not shown) | |||
Line 7: | Line 7: | ||
|surfaces=0x00 (default) | |surfaces=0x00 (default) | ||
}} | }} | ||
The '''Trampoline''' (also known as the '''Springboard''') is an unfinished and unused object in Super Mario 64. Its model and collision are nearly fully finished, but its code was apparently abandoned early on. | |||
The '''Trampoline''' is an unfinished and unused object in Super Mario 64. Its model and collision are nearly fully finished, but its code was apparently abandoned early on. | |||
The game contains infrastructure for the trampoline to affect Mario's jumps, and the trampoline has code for visually stretching and compressing. However, if you manage to load the trampoline into the game, it doesn't do anything other than act as a platform since there is no code to move it nor code to interface it with the existing trampoline infrastructure. | The game contains infrastructure for the trampoline to affect Mario's jumps, and the trampoline has code for visually stretching and compressing. However, if you manage to load the trampoline into the game, it doesn't do anything other than act as a platform since there is no code to move it nor code to interface it with the existing trampoline infrastructure. | ||
Line 24: | Line 23: | ||
When the aforementioned spring code is repaired and the trampoline top is made to lower when Mario gets on it, the intended compression effect can be seen. | When the aforementioned spring code is repaired and the trampoline top is made to lower when Mario gets on it, the intended compression effect can be seen. | ||
In Mario's main movement code, there are 3 useless functions. The first just returns zero, and the next two do nothing at all. The last function is called by the trampoline every frame. The zero function is called in the function that determines Mario's vertical speed when he single jumps, double jumps, triple jumps, sideflips, backflips, steep jumps, long jumps, wall kicks, jumps from a handstand, or shell jumps. This function takes in a constant initial vertical speed and a multiplier, and outputs the vertical speed plus Mario's forward speed times the multiplier (making it so that Mario's jumps go higher when he goes faster), plus the zero function. Interestingly, most of the jumps listed have a multiplier of 0, which makes the function mostly pointless (it's also responsible for making Mario jump lower when squished). Due to the zero function's proximity to the empty function called by the trampoline, it is plausible that the empty function was intended to make Mario code aware of trampoline, and the zero function was intended to return the additive vertical speed from the trampoline. When these functions are restored according to this hypothesis, and the broken spring compression is fixed, a fully functioning trampoline can be made. | |||
[[File:TrampolineWorking.gif|320px|thumb|left|A repaired trampoline]] | |||
{{Objects}} | |||
[[Category:Beta_Objects]] |
Latest revision as of 01:15, 21 December 2020
Trampoline | |
Hitbox Info | |
Hitbox |
Collision involves triangles instead of a cylindrical hitbox |
Tangibility radius | 1000 |
Interaction type | None |
Surfaces | 0x00 (default) |
The Trampoline (also known as the Springboard) is an unfinished and unused object in Super Mario 64. Its model and collision are nearly fully finished, but its code was apparently abandoned early on.
The game contains infrastructure for the trampoline to affect Mario's jumps, and the trampoline has code for visually stretching and compressing. However, if you manage to load the trampoline into the game, it doesn't do anything other than act as a platform since there is no code to move it nor code to interface it with the existing trampoline infrastructure.
Below, you can see an example of the trampoline as it is in the game, with no modifications. It does nothing visible. It does not stretch or squish itself.
Code
The trampoline is made out of 3 objects: the top, the spring, and the base. The base is a static object with no associated code. The top spawns the spring and the base, and sets a variable to whether Mario's on the platform or not (though this variable goes unused).
The spring continuously updates to be 75 units under the top of the trampoline, and has the incomplete code to visually stretch/compress itself. The math is not complete; on the right, you can see the effects it has when it is forced to run. The errors are caused by the programmers putting 50 and 500 arbitrarily in place of 150 (the height of the trampoline), and not putting a simple line of code to correct the spring's apparent position. The lack of this code supports the hypothesis that the code was abandoned early on.
When the aforementioned spring code is repaired and the trampoline top is made to lower when Mario gets on it, the intended compression effect can be seen.
In Mario's main movement code, there are 3 useless functions. The first just returns zero, and the next two do nothing at all. The last function is called by the trampoline every frame. The zero function is called in the function that determines Mario's vertical speed when he single jumps, double jumps, triple jumps, sideflips, backflips, steep jumps, long jumps, wall kicks, jumps from a handstand, or shell jumps. This function takes in a constant initial vertical speed and a multiplier, and outputs the vertical speed plus Mario's forward speed times the multiplier (making it so that Mario's jumps go higher when he goes faster), plus the zero function. Interestingly, most of the jumps listed have a multiplier of 0, which makes the function mostly pointless (it's also responsible for making Mario jump lower when squished). Due to the zero function's proximity to the empty function called by the trampoline, it is plausible that the empty function was intended to make Mario code aware of trampoline, and the zero function was intended to return the additive vertical speed from the trampoline. When these functions are restored according to this hypothesis, and the broken spring compression is fixed, a fully functioning trampoline can be made.
|