Bully: Difference between revisions
(Made page) |
(minor #cww) |
||
(6 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{object_infobox | {{object_infobox | ||
|title= Bully | |title= Bully<ref>[https://github.com/n64decomp/sm64/blob/master/src/game/behaviors/bully.inc.c Bully Behavior Code]</ref><ref>[https://github.com/n64decomp/sm64/blob/master/data/behavior_data.c#L4050 Bully Initialization Codes]</ref> | ||
| | |gallery= <gallery> | ||
STROOP- Bully.png|Bully | STROOP- Bully.png|Bully | ||
STROOP- Chill Bully.png|Chill Bully | STROOP- Chill Bully.png|Chill Bully | ||
Line 16: | Line 16: | ||
|expand= | |expand= | ||
}} | }} | ||
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 | '''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 == | == Locations == | ||
Line 26: | Line 26: | ||
== Use in Challenges == | == 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. | An application of the [[Bully Battery]] glitch has been used to complete [[ETitV|Elevator Tour in the Volcano]] in 0 A-presses and 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== | ==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. | ||
==References== | |||
<references/> | |||
[[Category:Enemies]] | [[Category:Enemies]] | ||
{{objects}} |
Latest revision as of 11:44, 28 September 2024
Bully[1][2] | |||
Hitbox Info | |||
Hitbox | |||
Damage | 0 | ||
Damage without hat | 0 | ||
Speed | to add | ||
Tangibility radius | 1000 | ||
Interaction type | Bully Interaction | ||
|
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 used to complete Elevator Tour in the Volcano in 0 A-presses and 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.
References
|