29
edits
Meatball132 (talk | contribs) m (→CPU Crashes: Health is set to 4, not 3) |
Oyion gaming (talk | contribs) (→CPU Crashes: Idk) Tags: Reverted Mobile edit Mobile web edit Advanced mobile edit |
||
Line 22: | Line 22: | ||
| Bully/Bob-omb Angle Overflow || style="background-color: #ff9696"| Floating-Point Overflow || When a Bully or Bob-omb is out-of-bounds, the code to keep their angle between -32768 and 32767 doesn't run, and eventually it becomes big enough that a floating-point overflow exception occurs when casted back to an int.<ref>[https://www.youtube.com/watch?v=ZrMxO1eZPGU "Game Crash from Bully Angle Double-to-Int Conversion" by UncommentatedPannen]</ref><ref>[https://www.youtube.com/watch?v=kwQu5qQg-M0 "Game Crash from Bob-omb Angle Double-to-Int Conversion" by UncommentatedPannen]</ref> | | Bully/Bob-omb Angle Overflow || style="background-color: #ff9696"| Floating-Point Overflow || When a Bully or Bob-omb is out-of-bounds, the code to keep their angle between -32768 and 32767 doesn't run, and eventually it becomes big enough that a floating-point overflow exception occurs when casted back to an int.<ref>[https://www.youtube.com/watch?v=ZrMxO1eZPGU "Game Crash from Bully Angle Double-to-Int Conversion" by UncommentatedPannen]</ref><ref>[https://www.youtube.com/watch?v=kwQu5qQg-M0 "Game Crash from Bob-omb Angle Double-to-Int Conversion" by UncommentatedPannen]</ref> | ||
|- | |- | ||
| Deleting a non-existent file on the File Select Screen<ref>[https://youtu.be/-N5OQPgA6YI "How to crash Super Mario 64 in 20 seconds" by rattleman123456]</ref> || style="background-color: #fffca8"| Address Error || The game tries to find the button object corresponding to the file and set its state to erased. However, the button object doesn't exist (a New File button is there instead), so it ends up trying to write to NULL. | | Deleting a non-existent file on the File Select Screen<ref>[https://youtu.be/-N5OQPgA6YI "How to crash Super Mario 64 in 20 seconds" by rattleman123456]</ref> || style="background-color: #fffca8"| Address Error || The game tries to find the button object corresponding to the file and set its state to erased. However, the button object doesn't exist (a New File button is there instead), so it ends up trying to write to NULL | ||
In different versions like the new switch version it could not crash instead say file 9 has been deleted. | |||
|- | |- | ||
| Moving a shadow above [[surface]] 12 while it's over OOB || style="background-color: #fffca8"| Address Error || The surface SURFACE_INTANGIBLE (surface 12) has the special property that in some cases find_floor will look for floors below an intangible surface if it finds one. If there's no floor below the intangible surface, find_floor will return NULL for the found floor but the height of the intangible floor. As floors are null-checked by checking if their height is the default value of -11000, this will cause a NULL dereference the next time the game tries to use the floor variable. | | Moving a shadow above [[surface]] 12 while it's over OOB || style="background-color: #fffca8"| Address Error || The surface SURFACE_INTANGIBLE (surface 12) has the special property that in some cases find_floor will look for floors below an intangible surface if it finds one. If there's no floor below the intangible surface, find_floor will return NULL for the found floor but the height of the intangible floor. As floors are null-checked by checking if their height is the default value of -11000, this will cause a NULL dereference the next time the game tries to use the floor variable. |
edits