Notes/Damage Identifier
Damage Identifier notes:
Damage Identifiers appear to be used in more than damage charts. Actors look for damage identifier to react such as a Megaton Hammer Rock looking for a Megaton Hammer damage identifier or a Bombable Rock looking for the Explosion damage identifier.
Damage Identifier 0094 ovl_Magic_Fire Din's Fire ROM: 0xF39B7C (00020000) - The Damage Identifier of Din's Fire (In reference to the Damage Charts at http://wiki.spinout182.com/w/Zelda_64:_Damage_Charts) 0056 ovl_MFire1 Deku Nut ROM: 0xE54FD6 (00000001) - Something dealing with the effect of a Deku Nut? (Not a Damage Identifier) ROM: 0xE54FFC (00000001) - Damage Identifier of Deku Nut 14C830 0016 ovl_Arrow Arrow ROM: 0xD6E46C (00000020) - Damage Identifier of Arrow ROM: 0xD6E470 (00000800) - Damage Identifier of Fire Arrow ROM: 0xD6E474 (00001000) - Damage Identifier of Ice Arrow ROM: 0xD6E478 (00002000) - Damage Identifier of Light Arrow ROM: 0xD6E47C (00010000) - Damage Identifier of Spirit Arrow ROM: 0xD6E480 (00004000) - Damage Identifier of Wind Arrow ROM: 0xD6E484 (00008000) - Damage Identifier of Shadow Arrow ROM: 0xD6E488 (00000004) - Damage Identifier of Slingshot 0032 ovl_En_Boom Boomerang ROM: 0xD8228C (00000010) - Damage Identifier of Boomerang 0010 ovl_En_Bom Bomb ROM: 0xD7CA90 (00000008) - Damage Identifier of Explosions 0066 ovl_Arms_Hook Hookshot ROM: 0xC348DC (00000080) - Damage Identifier of Hookshot 0057 ovl_En_M_Thunder Spin Attack ROM: 0xE564BC (01000000) - Damage Identifier of Master Sword Blue Spin ROM: 0xE564C0 (00400000) - Damage Identifier of Kokiri Sword Blue Spin ROM: 0xE564C4 (00800000) - Damage Identifier of Biggoron/Giant's Knife Blue Spin ROM: 0xE564C8 (08000000) - Damage Identifier of Master Sword Jump Attack/Fully Charged Spin ROM: 0xE564CC (02000000) - Damage Identifier of Kokiri Sword Jump Attack/Fully Charged Spin (And Broken Giant's Knife Jump Attack?) ROM: 0xE564D0 (04000000) - Damage Identifier of Biggoron/Giant's Knife Jump Attack/Fully Charged Spin 0000 ovl_player_actor ROM: 0xC23328 (00000200) - Damage Identifier for Master Sword Swing ROM: 0xC2332C (08000000) - Damage Identifier for Master Sword Jump Attack ROM: 0xC23330 (00000100) - Damage Identifier for Kokiri Sword Attack (and likely the same for the Broken Giant's Knife) ROM: 0xC23334 (02000000) - Damage Identifier for Kokiri Jump Attack (also seems Broken Giant's Knife jump Attack) ROM: 0xC23338 (00000400) - Damage Identifier for Biggoron's Sword/Giant's Knife Attack ROM: 0xC2333C (04000000) - Damage Identifier for Biggoron's Sword/Giant's Knife Jump Attack ROM: 0xC23340 (00000002) - Damage Identifier for Deku Sticks ROM: 0xC23344 (08000000) - Damage Identifier for Deku Stick Jump Attack (And Master Sword) ROM: 0xC23348 (00000040) - Damage Identifier for Megaton Hammer Atttack ROM: 0xC2334C (40000000) - Damage Identifier for Megaton Hammer Jump Attack Point of interest 0xC234F0 -Damage Identifiers
Damage Identifiers in Zelda 64 are an interesting matter. They are listed in what seems to be plain bytes
at first with, in this instance Din's Fire being Byte 11. However it's not as simple as it looks. There is
an instruction found at 62060 which is likely used for many other things which takes a raw value 00020000
and translates it into 11, how is this done? Well it runs it through a Break if Not Equal at 0x6206C, which always matches a value of 0000001 against
it. When the value is not matched it is sent back to 0x62060 which is a Break If Equal instruction, where
it will run through this pattern until it reaches the 01, this is done by each cycle reducing the amount
in 00020000 in a bit sequence (meaning the valid values are 0,1,2,4,8 for each bit) So it turns out that after 11 (in hex) cycles of this I found that the value that started as 00020000 had
become a 00000001. Once it reaches this value the instructions proceed unobstructed from there. This is
how damage identifiers and probably a lot of data is written. Knowing this now I placed a breakpoint on
0x6205C (the address before the cycling process) and noticed that instead of the register that held
00020000 (A0 for reference) I saw an address. This may mean that you can find the location of what is going to be there by following the value in A0 by
breakpointing on 0x6205C, I followed that address and found where the value originated. The very temporal
file of Din's Fire. In this case Din's Fire Damage Identifier Byte was 00020000 because it is 11 cycles in hex before it
reaches its goal. I searched ovl_Magic_Fire (Din's Fire file name) and found a 00020000 which matched up
mostly with the data I saw in memory. Changed it in ROM and changed the damage byte.
To any prospective hackers, keep in mind that what you may be looking for could possibly not just be a set
value. A simple 11 or 61 may not be as simple as that to access, but instead may take a completely
different form than you were expecting. I came into this expecting to find a blatant 0011 and be done with
it, I know now that it will not always be that simple. 8FA70058
00 - 00000001 (Deku Nut) /
1F - 80000000 ? 1E - 40000000 (Hammer Jump Attack) 1D - 20000000 ? 1C - 10000000 ? 1B - 08000000 (Master Sword Jump Attack/Fully Charged Spin)/ 1A - 04000000 (Biggoron's Sword Jump Attack/Fully Charged Spin)/ 19 - 02000000 (Broken Giant Knife's Jump Attack)/ 18 - 01000000 (Master Sword Blue Spin Attack)/ 17 - 00800000 (Biggoron's Sword Blue Spin Attack)/ 16 - 00400000 (Kokiri Sword Blue Spin Attack)/ 15 - 00200000 ? 14 - 00100000 ? 13 - 00080000 (Light Magic) 12 - 00040000 (Ice Magic) 11 - 00020000 (Din's Fire)/ 10 - 00010000 (Shadow Arrows)/ 0F - 00008000 (Spirit Arrows)/ 0E - 00004000 (Wind Arrows)/ 0D - 00002000 (Light Arrows)/ 0C - 00001000 (Ice Arrows)/ 0B - 00000800 (Fire Arrows)/ 0A - 00000400 (Biggoron Sword Attack)/ 09 - 00000200 (Kokiri Spin/Jump Attack/Master Sword Swing)/ 08 - 00000100 (Kokiri Sword Attack)/ 07 - 00000080 (Hookshot)/ 06 - 00000040 (Normal Hammer Swing)/ 05 - 00000020 (Arrows)/ 04 - 00000010 (Boomerang)/ 03 - 00000008 (Explosions)/ 02 - 00000004 (Slingshot)/ 01 - 00000002 (Deku Sticks)