Zelda 64: Damage Charts

From z64 wiki
Jump to: navigation, search

Information

Arrows 6, 7, and 8 are not simply repeats of the fire arrow. The fire arrow animation may act as a place holder, but these arrows have their own damage mappings within the enemy damage charts.
Also the 3 additional arrows don't use magic when used.

Damage chart example

Like Like (C)
00 F2 F1 F2 10 F2 F2 10 F1 F2 F4 24 34 BF D4 CF 
EF 24 33 4A 00 00 F1 F4 F2 F2 F8 F4 EA 00 00 00 

00 00 Deku Nuts
01 F2 Deku Sticks
02 F1 Slingshot
03 F2 Explosions
04 10 Boomerang
05 F2 Arrow
06 F2 Hammer normal swing
07 10 Hookshot
08 F1 Kokiri Sword Attack
09 F2 Kokiri Spin/Jump Attack * Master Sword Swing
0A F4 Biggoron's Sword Standard Attack
0B 24 Fire Arrows
0C 34 Ice Arrows
0D BF Light Arrows
0E D4 <--- "Wind" Arrows
0F CF <--- "Spirit" Arrows 
10 EF <--- "Shadow" Arrows
11 24 Fire Magic
12 33 Ice Magic (Confirmed)
13 4A Light Magic (Confirmed)
14 00 ?
15 00 ?
16 F1 Kokiri Sword Blue Spin Attack
17 F4 Giant's Knife Blue Spin Attack
18 F2 Master Sword Blue Spin Attack
19 F2 Broken Giant's Knife Jump Attack
1A F8 Giant's Knife Jump Attack/Fully Charged Spin
1B F4 Master Sword Jump Attack/Fully Charged Spin
1C EA ?
1D 00 ?
1E 00 Hammer Jump Attack
1F 00 ? 

Item drops

Like Likes only give the large purple rupee when defeated with light arrows. So? Well, all 3 beta arrows give unique items when used to defeat the like like.

Light Arrow : Huge Purple Rupee
"Wind" Arrow : Magic Jar
"Spirit" Arrow : Arrow
"Shadow" Arrow : Fairy

Loading the arrows in-game

The arrows can be loaded by modifying function 80834380 in ovl_player_actor, or by execute breakpointing 80032458 in RAM and changing the variable before the ActorSpawn function is called.

Finding damage charts in any actor

A bit of knowledge of MIPS assembly helps to understand this part.

Finding the damage chart in RAM is quite easy; there is a pointer to it that is located 0x98 bytes after the start of the actor panel. Finding the damage chart in ROM takes a little more effort...

First, get the assembly source of the actor you want. They can be found here for MQ Debug and here for MM Debug.

Once you have the actors' source (in assembly), look for the first jal to 0x800FA958 (for MM Debug) or 0x8005C364 for MQ Debug. Before the call to that function, you will see something like: lui t6 %(data_offset) - In MM Debug t6 will not be the register, it will be a3. Regardless, data_offset will be the label of the damage chart of that enemy.

An alternate method (but mostly the same) can be seen here.

Damage Chart Offset Documentation

NOTE: Keep in mind that these offsets were found before there was any accurate way of locating damage charts; some documentation and definitions may be incorrect.

RAW Damage Charts in Actor Files

Deku Baba
10 02 01 02 E2 02 02 02 F1 F2 F4 24 02 02 02 02
02 24 00 00 00 00 F1 F4 F2 F2 F8 F4 00 00 04 00

Alternate Deku Baba
10 02 01 02 E2 02 02 10 F1 F2 F4 24 02 02 02 02
02 24 00 00 00 00 F1 F4 F2 F2 F8 F4 00 00 04 00

Guay
10 02 01 02 01 02 02 02 01 02 04 24 32 02 04 02
02 24 00 00 00 00 01 04 02 02 08 04 00 00 04 00

Deku Scrubs
10 02 01 02 01 02 02 02 01 02 04 24 02 02 02 02
02 24 00 00 00 00 01 04 02 02 08 04 00 00 04 00

Dodongo
10 02 01 02 10 01 02 10 01 02 04 02 F4 02 02 02
02 60 F3 60 00 00 01 04 02 02 08 04 00 00 04 00

Diving Stinger
10 02 01 02 10 02 02 02 01 02 04 02 02 02 02 02 
02 00 04 04 00 00 01 04 02 02 08 04 00 00 04 00

Fire Keese
10 02 01 02 01 02 02 02 01 02 04 F2 34 02 02 02 
02 20 34 00 00 00 01 04 02 02 08 04 00 00 04 00

Floor Master
10 02 01 02 10 02 02 10 01 02 04 24 02 44 04 02
02 24 00 44 00 00 01 04 02 02 08 04 00 00 04 00

Gerduo Fighter
10 02 01 02 10 02 02 10 01 02 04 02 F2 02 02 02
02 E4 60 D3 00 00 01 04 02 02 08 04 04 00 04 00

Tektite
10 02 01 02 10 02 02 10 01 02 04 02 F4 02 02 02
02 E0 F3 E0 00 00 01 04 02 02 08 04 00 00 04 00

Dark Link
10 02 01 02 10 02 02 10 01 02 04 02 02 02 02 02
02 E2 60 D3 00 00 01 04 02 02 08 04 00 00 04 00

Wallmaster
10 02 01 02 10 02 02 10 01 02 04 24 02 44 04 02
02 24 00 44 00 00 01 04 02 02 08 04 00 00 04 00

Stinger outside of water
10 02 01 02 10 02 02 02 01 02 04 02 02 02 02 00
00 00 00 00 00 00 01 04 02 02 08 04 00 00 04 00

Wolfos
10 02 01 02 10 02 02 10 01 02 04 E4 02 02 02 02
02 E4 60 D3 00 00 01 04 02 02 08 04 00 00 04 00

Barinade
10 02 01 02 10 02 02 10 01 02 04 02 02 02 02 02
02 E0 60 D0 00 00 01 04 02 02 08 04 00 00 04 00

Stalfos
10 02 D1 02 10 02 02 10 01 02 04 02 F4 E2 02 02
02 60 F3 E0 00 00 01 04 02 02 08 04 00 00 04 00

Bongo Bongo?
00 02 01 02 00 02 02 02 01 02 04 02 34 02 04 02 
02 00 34 44 00 00 01 04 02 02 08 04 00 00 04 00

Blue/Red/Green Bubbles?
F0 02 01 A2 F0 E2 A2 F0 01 02 04 E2 C4 B4 00 00
00 60 93 83 A0 A0 01 04 02 02 08 04 60 00 A4 00

Biri
10 02 E0 02 01 02 02 02 F1 F2 F4 24 34 02 02 02
02 24 34 00 00 00 01 04 02 02 08 04 00 00 04 00

Oktorok
00 02 01 02 01 02 02 02 01 02 04 02 34 02 02 02
02 00 00 00 00 00 01 04 02 02 08 04 00 00 04 00

Peehat
F0 02 01 02 E0 02 02 D2 01 02 04 C4 02 02 02 02
02 C3 60 60 00 00 01 04 02 02 08 04 00 00 04 00

Field Poe
00 02 01 02 11 02 02 12 01 02 04 02 02 02 02 02
02 00 00 00 00 00 01 04 02 02 08 04 00 00 04 00

Poe/Poe Composers
00 02 01 02 11 02 02 12 01 02 04 02 02 02 02 02
02 00 00 00 00 00 01 04 02 02 08 04 00 00 04 00

Stalchild
00 00 00 00 00 00 02 00 F1 F2 F4 00 00 00 00 00
00 00 00 00 00 00 01 04 02 02 08 04 00 00 00 00

Lizalfos
10 02 D1 02 10 02 02 10 01 02 04 D2 F4 D2 D2 D2 
D2 60 F3 60 00 00 01 04 02 02 08 04 00 00 04 00

Big Octo
10 02 00 F0 10 00 00 00 01 00 00 00 00 00 00 00
00 00 00 00 00 00 01 00 00 02 00 04 00 00 00 00

Bubble? (This damage chart may be inaccurate)
01 01 00 00 00 00 00 00 00 00 00 00 10 00 64 00
00 00 00 00 00 00 00 00 00 00 00 00 00 28 24 00

Taliparisan?
10 F2 00 00 F1 00 E2 00 E1 E2 E4 00 00 00 00 00 
00 00 00 00 00 00 E1 E4 E2 E2 E8 E4 00 00 E4 00

Dead Hand
00 F2 00 00 00 00 00 00 F2 F2 F4 00 00 00 00 00
00 00 00 00 00 00 F2 F4 F2 F4 F8 F4 00 00 F4 00

Dead Hand's Hands
00 F2 00 00 00 00 00 00 F2 F2 F4 00 00 00 00 00
00 00 00 00 00 00 F2 F4 F2 F4 F8 F4 00 00 F4 00

Armos
10 02 01 F2 60 F2 F2 60 01 F2 F4 F2 D4 F2 02 02
02 E0 D3 E0 00 00 01 F4 F2 02 F8 F4 00 00 F4 00

Redead
00 F2 00 00 00 00 F2 10 F1 F2 F4 00 00 00 00 00 
00 E4 60 D3 00 00 F1 F4 F2 F2 F8 F4 00 00 F4 00

Poe Sisters
F0 02 01 02 00 02 02 02 E1 E2 E4 02 02 02 02 02 
02 00 00 00 00 00 E1 E4 E2 E2 E8 E4 00 00 04 00

Shell Blade
00 00 00 F2 00 F2 F2 12 D1 D2 D4 24 F2 F2 E4 F2 
F2 24 00 00 00 00 D1 D4 D2 D2 D8 D4 00 00 00 00

Like Like? (Chart may be inaccurate)
00 F2 F1 F2 10 F2 F2 10 F1 F2 F4 24 34 BF D4 CF
EF 24 33 4A 00 00 F1 F4 F2 F2 F8 F4 EA 00 00 00

Blocking Tentacle from Jabu Jabu (Chart may be inaccurate)
10 00 00 00 00 00 01 00 00 08 00 00 00 00 00 00 
00 00 14 00 64 00 00 00 00 20 00 00 00 00 04 00

Frezzard
00 F0 F0 F2 F0 F0 F2 F2 F0 F2 F4 24 F0 F0 F0 F0 
F0 24 00 00 00 00 F0 F4 F2 F0 F8 F4 00 00 00 00

Iron Knuckle
00 00 D0 F2 E1 F2 D0 E2 F2 D0 F1 F2 F4 E2 E2 
E2 E2 E2 EF 60 60 60 00 00 F1 F4 F2 F2 F8 F4

Torch Slug
00 00 F2 00 F2 F2 10 00 F2 F4 F2 E4 F2 F2 F2
F2 60 E3 60 00 00 F1 F4 F2 F2 F8 F4 00 00 F4

Anubis
F0 F0 F0 F0 F0 F1 F2 F0 F2 F6 22 F0 F0 F0 F0 
F0 23 00 00 00 00 F0 F6 F2 F0 FC F4 00 00 00

Spike Enemy
00 00 F2 00 F2 F2 12 00 F2 F4 24 F2 F2 E4 
00 00 24 00 00 00 00 00 F4 F2 00 F8 F4 00

Moblin
50 F2 F1 F2 10 F2 F2 F2 F1 F2 F4 F2 64 F2 F4 F2 
F2 50 63 50 00 00 F1 F4 F2 F2 F8 F4 50 00 F4 00

Alternate Moblin
50 F2 00 F2 00 F2 F2 10 F1 F2 F4 F2 64 F2 F4 F2
F2 50 63 50 00 00 F1 F4 F2 F2 F8 F4 50 00 F4 00

Damage Chart Offsets

D1E290- Barinade
D7ACA8- Biri
D98298- Guay
D9FBD0- Deku Baba
DA1774- Deku Scrubs
DB15CC- Dodongo
DB8594- Underwater Stinger?
DCBB5C- Fire Keese
DD1094- Floormaster
DF0CC4- Gerudo Fighter
ED1494- Tektite
ED5898- Dark Link
EE6B74- Wallmaster
EE98F4- Stinger
EED8B8- Wolfos
EDE774- Vali (large jellyfish?)
DA3210- Dead Hand?
DA4240- Dead Hand's Hands?
C333E8- Stalfos
CFC37C- Bongo Bongo
E788F0- Oktorok
E88860- Peehat
E8D150- Field Poe
E97ABB- Poe
EB75C4- Stalchild?
EFFF64- Lizalfos
D78A98- Big Octo
D86465- Bubble?
ED8914- Taliparisan
DA3210- Dead Hand
DA4240- Dead Hand's Hands
D69658- Armos
E98ACC- Redead
E93740- Poe Sisters
EAE9DC- Shell Blade
EA0960- Like Like
D716CA- Blocking Tentacle from Jabu Jabu
DD87F4- Frezzard
D8AAC7- Torch Slug
???- Iron Knuckle
???- Anubis
???- Spike Enemy
E5FD74- Moblin

Byte Definitions

0= Deku Nuts
1= Deku Stick
2= Slingshot
3= Explosions
4= Boomerang
5= Arrow
6= Hammer normal swing
7= Hookshot
8= Kokiri Sword Attack
9= Kokiri Spin/Jump Attack * Master Sword Swing
A= Biggoron's Sword Standard Attack
B= Fire Arrows
C= Ice Arrows
D= Light Arrows
E= ?
F= ?
10= ?
11= Din's Fire
12= Ice Magic!!!
13= Light Magic!!!
14= ?
15= ?
16= Kokiri Sword Blue Spin Attack
17= Giant's Knife Blue Spin Attack
18= Master Sword Blue Spin Attack
19= Broken Giant's Knife Jump Attack
1A= Giant's Knife Jump Attack/Fully Charged Spin
1B= Master Sword Jump Attack/Fully Charged Spin
1C= ?
1D= ?
1E= Hammer Jump Attack
1F= ?

Explanation

XY
X - Effect
Y - Damage Amount

For example...

DEKU BABA
10 02 01 02 E2 02 02 02 F1 F2 F4 24 02 02 02 02
02 24 00 00 00 00 F1 F4 F2 F2 F8 F4 00 00 04 00

For instance here, the first attack deku nuts X is 1, which a stun effect in this case. Damage, Y, is 0. So the deku nut stuns it without doing any damage. Effect varies enemy to enemy. For instance freeze effect is 3 in a guay, but it's F in a tektite.

Credits

jsa - Testing the arrows and their effects in-game, most of the text here
DeathBasket - Providing jsa with a way to load the beta arrows
Jason777 - Fixing/updating up this article a bit, locating the damage chart in RAM, and the alternate method to finding damage charts.
Xu Yuan - Documentation of damage chart offsets in many actor files