Bully: Difference between revisions

From Ukikipedia
Jump to navigation Jump to search
(Made page)
 
mNo edit summary
Line 30: Line 30:
==Bully Crashes==
==Bully Crashes==
===Angle Conversion Crash===
===Angle Conversion Crash===
Normally, a Bully's angle is confined to the range [-32768, 32767]. However, this code does not occur if the Bully is out-of-bounds. Due to this oversight, if Mario knocks a Bully out-of-bounds, its angle will increase by 32767 every frame without bound. After approximately 36 minutes, the Bully's angle exceeds the hex value 0x7FFFFFFF (2,147,483,647) at which point the game will crash from trying to perform a double-to-int conversion on a value above 0x7FFFFFFF. This crash does not occur on emulators.  
Normally, a Bully's angle is confined to the range [-32768, 32767]. However, this code does not occur if the Bully is out-of-bounds. Due to this oversight, if Mario knocks a Bully out-of-bounds, its angle will increase by 32767 every frame without bound. After approximately 36 minutes, the Bully's angle exceeds the hex value 0x7FFFFFFF (2,147,483,647) at which point the game will crash from trying to perform a double-to-int conversion on a value above 0x7FFFFFFF. This crash does not occur on emulators, except for Wii VC, where the bully will keep moving on one axis, all the way out of the map.  
===Divide by 0 Crash===
===Divide by 0 Crash===
The Bully enemy's knockback logic contains a step that involves dividing by the horizontal distance between Mario and the Bully. Thus, the game will crash from a divide by 0 error if the operation is performed while the distance between Mario and the Bully is 0. Causing this crash requires very specific conditions. Mario must be next to an area out-of-bounds so that he will not be moved away from the bully before the crash can occur and Mario must be in a state to receive knockback from the bully, making the exact movement needed to cause the crash very precise.
The Bully enemy's knockback logic contains a step that involves dividing by the horizontal distance between Mario and the Bully. Thus, the game will crash from a divide by 0 error if the operation is performed while the distance between Mario and the Bully is 0. Causing this crash requires very specific conditions. Mario must be next to an area out-of-bounds so that he will not be moved away from the bully before the crash can occur and Mario must be in a state to receive knockback from the bully, making the exact movement needed to cause the crash very precise.


[[Category:Enemies]]
[[Category:Enemies]]

Revision as of 15:37, 26 February 2020

Bully
[[File:]]
Hitbox Info
Hitbox
Damage 0
Damage without hat 0
Speed to add
Tangibility radius 1000
Interaction type Bully Interaction
Found In
Lethal Lava Land, Bowser in the Fire Sea, Snowman's Land

Bullies are uncommon enemies in Super Mario 64, appearing in Lethal Lava Land, Bowser in the Fire Sea, and Snowman's Land. Bullies attack by running in to Mario, knocking him back. They can be defeated by knocking them into lava. The regular Bully model is loaded in actor group 2, while the Chill Bully model is loaded in with actor group 16.

Locations

The following courses have Bullies:

Use in Challenges

An application of the Bully Battery glitch has been suggested as a possible method for getting past the Bowser in the Fire Sea pole in 0 A-presses on N64. Bullies have also seen minor use in other challenges, such as doing Bowser in the Fire Sea with no joystick.

Bully Crashes

Angle Conversion Crash

Normally, a Bully's angle is confined to the range [-32768, 32767]. However, this code does not occur if the Bully is out-of-bounds. Due to this oversight, if Mario knocks a Bully out-of-bounds, its angle will increase by 32767 every frame without bound. After approximately 36 minutes, the Bully's angle exceeds the hex value 0x7FFFFFFF (2,147,483,647) at which point the game will crash from trying to perform a double-to-int conversion on a value above 0x7FFFFFFF. This crash does not occur on emulators, except for Wii VC, where the bully will keep moving on one axis, all the way out of the map.

Divide by 0 Crash

The Bully enemy's knockback logic contains a step that involves dividing by the horizontal distance between Mario and the Bully. Thus, the game will crash from a divide by 0 error if the operation is performed while the distance between Mario and the Bully is 0. Causing this crash requires very specific conditions. Mario must be next to an area out-of-bounds so that he will not be moved away from the bully before the crash can occur and Mario must be in a state to receive knockback from the bully, making the exact movement needed to cause the crash very precise.