Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Videos showing the new glitch I found:
- https://www.youtube.com/watch?v=Rp5j3v29jZk
- https://www.youtube.com/watch?v=s1hEaNWkNKM
- https://www.youtube.com/watch?v=kZS907sfGLk
- -----------------------------------
- Brief overview of the new glitch
- Using certain techniques, we can get a glitched damage attack, which combines the effects of several weapons and attack types. This allows us to burn webs, light torches, instantly explode bombs while hovering, activate eye switches and Forest Temple Paintings, stun Gohma and Barinade, deal lots of damage to Iron Knuckles, and more.
- The two main methods to get this glitched damage value are:
- 1. Activate Quick Putaway by having a Deku Stick in your hand and pressing A to put it away right before taking damage or walking off a ledge (this is frame-perfect). (On OoT version 1.0, you can get Quick Put Away by pressing A to put away the stick then pulling out a cutscene item the next frame). Next, jumpslash with the stick in a way that would give a Broken Deku Stick.
- 2. Jumpslash with a burning deku stick right before it disappears (this is not frame perfect).
- That jumpslash will have the glitched damage value, and your power crouch stab will have that damage stored as well.
- This trick works in OoT, MM, OoT3D, and MM3D.
- In OoT, you get attack type "16171617", which combines these attack types when performing the glitch:
- 00000001 Deku Nut
- 00000002 Deku Stick Slash / Pot
- 00000004 Slingshot
- 00000010 Boomerang
- 00000200 Master Sword Slash
- 00000400 Biggoron Sword Slash / Giant's Knife Slash
- 00001000 Ice Arrow
- 00010000 "Shadow" Arrows
- 00020000 Din's Fire
- 00040000 Ice Magic
- 00100000 unknown
- 02000000 Kokiri Sword Jump Attack / Broken Giant's Knife Jump Attack
- 04000000 Biggoron Sword Jump Attack / Giant's Knife Jump Attack
- 10000000 unknown
- -----------------------------------
- In-Depth Explanation of the glitch (in OoT)
- The game has a table of damage values for jump attacks with sword-like weapons, from -1 to 8. Each value in the table has a value with 1 bit set, which is used by the game to determine how much damage to do to an enemy, as well as other special effects. The game reads the value of the Item Model in your hand to determine which value to read from the table.
- Index Damage Value Description
- -2 16171617 (garbage data out of the table's normal bounds)
- -1 00000200 Master Sword Slash
- 0 08000000 Master Sword Jump Attack / Deku Stick Jump Attack
- 1 00000100 Kokiri Sword Slash / Broken Giant's Knife Slash
- 2 02000000 Kokiri Sword Jump Attack / Broken Giant's Knife Jump Attack
- 3 00000400 Biggoron Sword Slash / Giant's Knife Slash
- 4 04000000 Biggoron Sword Jump Attack / Giant's Knife Jump Attack
- 5 00000002 Deku Stick Slash / Pot
- 6 08000000 Master Sword Jump Attack / Deku Stick Jump Attack
- 7 00000040 Hammer Swing
- 8 40000000 Hammer Jump Attack
- Here is a simplified snippet of code which the game runs to determine which value to read when you are jumpslashing:
- if (model_id_in_hand != "Giant's Knife/Biggoron Sword")
- {
- temp = model_id_in_hand - 2
- if(temp < 0)
- temp = 0
- temp = temp - 1
- damage_value = damage_value_table[temp * 2]
- }
- Deku Stick has Model ID 6, so it subtracts 2, subtracts 1, and multiplies by 2 to get 6. So the game reads "08000000" from the table and uses Deku Stick Jumpslash damage.
- Quick Putaway combined with a broken Deku Stick causes the game to run this routine when the Model ID has already been cleared (set to 0). A Model ID of 0 signifies that Link is holding nothing. So the temp variable starts at 0, subtracts 2, gets set to 0, subtracts 1, and multiplies by 2 for -2. This is outside the normal bounds of the table, so it reads garbage data as the Attack value. The garbage data at index -2 of the table is "16171617". Normally only 1 bit is set for the damage value, but this value has 14 bits set. This causes it to have properties of several other weapons and attack types. The full list of damage types is listed in the section above for OoT, then in the sections afterwards you can see the effects in MM, OoT3D, and MM3D (the glitched damage value works differently in all four games).
- Here is an explanation of why you need either a broken or burning deku stick to get the glitched damage:
- The jumpslash has two separate hitboxes, one which is active when you are in the air, and one that activates when you land. When you jumpslash, the game checks your item in hand before both of these hitboxes activate.
- When you jumpslash with a full deku stick, the game sees that you have a full stick in your hand for the first hitbox, then it breaks on the wall, and when you land, it sees that you have half a deku stick in your hand and calculates the damage with that, then link puts it away afterwards.
- When you jumpslash with a broken deku stick and quick putaway, the game calculates the first hitbox as normal, but it cannot break the stick which is already broken, so it instantly puts it away. This causes the game to calculate the second hitbox when you have no item in your hand, which was not intended to be possible, so uses a glitched damage value.
- The burning deku stick works similarly. The game calculates the first hitbox normally, but the deku stick completely burns away before the second hitbox can activate. This also causes the game to calculate the second hitbox when you have no item in your hand, causing the glitched damage.
- This is a list of all attack values in OoT used by weapons. The glitched damage value 16171617 used some of these, listed under the "Brief overview of the new glitch" section.
- 00000001 Deku Nut
- 00000002 Deku Stick Slash / Pot
- 00000004 Slingshot
- 00000008 Bomb
- 00000010 Boomerang
- 00000020 Bow
- 00000040 Hammer Swing
- 00000080 Hookshot
- 00000100 Kokiri Sword Slash / Broken Giant's Knife Slash
- 00000200 Master Sword Slash
- 00000400 Biggoron Sword Slash / Giant's Knife Slash
- 00000800 Fire Arrow
- 00001000 Ice Arrow
- 00002000 Light Arrow
- 00004000 "Wind" Arrows
- 00008000 "Spirit" Arrows
- 00010000 "Shadow" Arrows
- 00020000 Din's Fire
- 00040000 Ice Magic
- 00080000 Light Magic
- 00100000 unknown
- 00200000 Light Magic (can activate sun switches and burn Spirit Temple Statue face)
- 00400000 Kokiri Sword Blue Spin
- 00800000 Giant's Knife Blue Spin
- 01000000 Master Sword Blue Spin
- 02000000 Kokiri Sword Jump Attack / Broken Giant's Knife Jump Attack
- 04000000 Biggoron Sword Jump Attack / Giant's Knife Jump Attack
- 08000000 Master Sword Jump Attack / Deku Stick Jump Attack
- 10000000 unknown
- 20000000 unknown
- 40000000 Hammer Jump Attack
- 80000000 unknown
- -----------------------------------
- In OoT 3D, it sets the value of "00208D64" instead of "16171617". So these are the effects on OoT 3D:
- 00000004 Slingshot
- 00000020 Bow
- 00000040 Hammer Swing
- 00000100 Kokiri Sword Slash
- 00000400 Biggoron Sword Slash
- 00000800 Fire Arrow
- 00008000 "Spirit" Arrows
- 00200000 Light Magic (can activate sun switches and burn Spirit Temple Statue face)
- Video: https://www.youtube.com/watch?v=GtN1g12r9zw
- -----------------------------------
- In MM and MM 3D, it sets the value "00000100", which corresponds to Goron Punch. It also sets the Damage Value to 0. OoT uses the bitfield to determine the damage, but MM has a separate Damage Value which is used for that purpose.
- Videos: https://www.youtube.com/watch?v=RsIULtYS11Y
- https://www.youtube.com/watch?v=-WciDVHy_eY
- -----------------------------------
- Some relevant OoT memory addresses (1.0)
- 801DAB71 (byte) Item Model ID in Hand
- 801DAF1C (4-byte bit field) Link's most recent Attack Value with a sword-like weapon (used for power crouch stab)
- 801DAF9C (4-byte bit field) Link's most recent Attack Value with a sword-like weapon (used for power crouch stab)
- 803AACEC (array of 4-byte values) Jumpslash Damage Table index 0
- There are two bit fields you must set to simulate the glitch. Both 801DAF1C and 801DAF9C get set to 16171617 by the glitch. One or the other (or both) can be used depending on the type of hit you land, so lock both to 16171617 to simulate the glitch.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement