Jump to content

Zelda OoT: Mapping Link's Animations, Damage Identifiers, and Various Items


Three_Pendants
 Share

Recommended Posts

Heavy, it's nice to see that you're trying to get into assembly... However, you're misunderstanding some things.

 

A0 is a register (think of it as a variable that can store data for later use) and the health of an actor is stored 0xAF (175) bytes away from the start of the actor panel. In the dodongo's case above, the health value would be 4; you can see that we load a value of 4 into register T5 and then store the contents of T5 at 175 bytes away from the base offset in register S0. In this case, S0 holds the pointer to the actor panel.

 

If you can get a grasp on what registers are as well as what opcodes do, then you'll be well on your way to hacking and understanding more advanced things.

 

EDIT:

You're looking at the regular dodongo's actor, right? King Dodongo has his health set from outside the actor...

 

Also, sorry to completely hijack your thread, Three :P

Link to comment
Share on other sites

Thanks, and sorry for the late reply I was just going back and looking to see if I could make more since of things looking at both

Queen Gohma and the Dodongo in assembly.

Understanding registers and opcodes sounds simple enough. As long as it's explained in a way I can understand, and yeah it's a regular Dodongo.

So I know so far that unless it's an actor with their health set outside of the actor I can found the actual value for the health.

One thing I don't know is that if the contents of T5 are at 175 from the base offset in register s0, how would I find the base offset of register s0? In Queen Gohma's case I tried to find it in the hex editor by searching for all of the surrounding numbers that looked like offsets. I even tried searching without the last 2 digits in the numbers, so I know that's not how.

Link to comment
Share on other sites

I am not proud of this update. It's messy, it's sloppy. It's the only way I could figure out though how to record them all so without further ado, here is what seems to be every event action, I know cutscene instructions have a way to grab these and use them.

 

 

 
Event Actions 
 
Note: We've entered into a strange section that is rather difficult to test, so I will make assumptions based on my knowledge of the game and the appearance of the animation.
 
0xC239CC - 04002790 - Presumably Link looking back to see a door shut behind him.
 
0xC239E4 - 04002740 - Link looking surprised. (Unsure where this is outside of cutscenes)
 
0xC23A04 - 04002778 - I believe it is when Link turns around in the Temple of Time to see Shiek standing in the entrance way.
0xC23A14 - 04002860 - Link being warped up by a Blue Warp
0xC23A24 - 04002348 - Must be a child action of some sort because Adult Link's legs are in the ground as he does it, and what "it" appears to be is him holding his hands out as if about to receive something.
0xC23A2C - 04002350 - Obtaining Medallion
0xC23A34 - 04002358 - Possibly receiving a Medallion.
0xC23A3C - 040023B0 - Link standing up and dusting his tunic, after listening to the Deku Tree's Story
0xC23A44 - 040023B8 - Sitting down, likely listening to the Great Deku Tree's story.
0xC23A54 - 04002728 - Link looking surprised as he warily is about to turn around (Beta?)
 
0xC23A74 - 040027A8 - Link looking at himself after having grown up or turned back in a kid.
0xC23A7C - 04002DB0 - Link looking like he took a heavy hit. Possibly being smashed by Darunia after Dodongo's Cavern
0xC23A84 - 04002DC0 - Possibly on the floor from being smashed by Darunia after Dodongo's Cavern
0xC23A94 - 04003098 - Looks to be the first part of holding up an item, but doesn't correspond with actual treasure gains.
0xC23A9C - 04002780 - It should be Link receiving an Item from a chest and holding it up, but I can't get it to work.
 
0xC23AAC - 04003088 - Link drawing his sword expectedly. (No idea where this is used)
 
0xC23AC4 - 04002320 - Link falling off the log when he is warped out of Jabu Jabu.
0xC23ADC - 04002338 - Link looking around and then deciding to sit down. Not sure where this is used.
 
0xC23AE0 - 04002F90 - Link looking really distraught as he grabs his throat, and kicks his feet, but this isn't the Drowning Animation I don't believe.
 
0xC23AFC - 04002410 - Link getting up from sleeping?
0xC23B04 - 04002418 - Link nodding his head to Navi before he heads out of his house.
0xC23B14 - 04002390 - Link possibly looking at Navi while sitting down?
 
0xC23B34 - 040023A0 - I assume looking at Ganondorf through the castle window.
0xC23B3C - 04002368 - Link looking like he's backing up slowly a step or two.
 
0xC23B4C - 04002370 - Link drawing his sword and shield to challenge Ganondorf in front of Castle Town.
 
0xC23B54 - 040027B0 - Link running over to the crystal containing Zelda and placing his hands on it.
0xC23B5C - 040027B8 - Link lightly slamming his hand on the crystal containing Zelda
0xC23B64 - 040027C0 - Watching the crystal drift away.
0xC23B6C - 04002768 - Turning around dramatically in the ToT to see Shiek standing there (Repeat?)
0xC23B74 - 040027D8 - Link shielding his eyes during Shiek's transformation
0xC23B7C - 040027E0 - Link continuing to shield his eyes
 
0xC23B84 - 04002380 - Link looking to his right (Not entirely sure, possibly when the Rainbow Bridge starts to form)
0xC23B8C - 04002828 - Checking to see if the Rainbow Bridge is real
 
0xC23B94 - 04002470 - Child Link quickly shifting frightened back and forth. Possibly beta.
 
0xC23B9C - 040032A8 - Possibly preparing to fend off Bongo-Bongo in Kakariko Village.
0xC23BA4 - 040032A0 - Link getting up after being knocked to the ground (Presumably from Bongo Bongo cutscene)
0xC23BAC - 040032A0 - Same animation as above.
 
0xC23BB4 - 04002AE8 - A quick animation of Link seemingly getting ready to fight.
0xC23BBC - 04002450 - Link just standing there, with his legs closer together than normal with the camera behind him...?
0xC23BC4 - 04002460 - Link slightly looking around in the same position as above.
0xC23BCC - 04002458 - Looks the same as 2450
0xC23BD4 - 04002440 - Link possibly preparing to take a Blue Warp with a wary look to the side before looking up.
0xC23BDC - 04002438 - Link quickly looking to his side (still feel it is a part of the Blue Warp)
 
0xC23BF4 - 04003448 - Possibly the animation of lifting the Ocarina to play it?
0xC23BFC - 04003460 - The animation of learning a new song.
0xC23C04 - 04003440 - Looked very similar to 3448.
 
0xC23C0C - 04002798 - Resisting Ganondorf's Dark Wave.
0xC23C14 - 04002818 - Link looking to his hand in surprise to look at the Triforce of Courage
0xC23C1C - 04002848 - Link looking very pensive.
0xC23C24 - 04002850 - Link being taken aback (not entirely sure, maybe when you first enter Ganondorf's Chamber? Also possibly the Tower's Destruction)
0xC23C2C - 040034E0 - Link slowly turning nonchalantly.
0xC23C34 - 040034D8 - Link looking up to look at Navi as she's talking about not being kept back by Ganon
0xC23C3C - 040034C8 - Link moving to guard Zelda when a boom is heard in the Ganon Castle Ruins.
0xC23C44 - 04003470 - Link looking behind him quickly to see the flames rise blocking him off from Zelda.
0xC23C4C - 04003478 - Link quickly making an about face to watch Ganondorf rise.
0xC23C54 - 040034C0 - Link watching Ganondorf rise.
0xC23C5C - 04003480 - Link staring in abject terror as Ganondorf turns into Ganon
0xC23C64 - 04003490 - Link looking like he's getting ready to draw his sword in shock.
0xC23C6C - 04003488 - Link having the Master Sword knocked out of his hand.
0xC23C74 - 04003498 - Link watching the Master Sword fly.
0xC23C7C - 040034B0 - Link turning to face Ganon
 
0xC23C8C - 04003420 - I thought it may have been his idle animation where he swings his sword, but I saw no change when changed. I do not know where this instance is used then.
0xC23CA4 - 04003250 - Link wiping sweat off of his brow. These are Clearly idle animations. I do not know why they do nothing when changed though.
0xC23CB4 - 04002810 - Link being captured by Gerudo (Hylian as well?) Guards.
 
0xC23CBC - 04002838 - (Back to our regularly scheduled program?) Link receiving his sword after Ganon knocked it away.
0xC23CC4 - 04002CD0 - Link performing the finishing blows on Ganon.
0xC23CCC - 04002CD8 - Link pulling his sword back after stabbing Ganon.
0xC23CD4 - 04002868 - Link watching Zelda use her beam of light on Ganon.
0xC23CDC - 040027E8 - Link beginning to watch his sword glow.
0xC23CE4 - 040027F8 - Link watching his sword glow.
0xC23CEC - 04002800 - Link finishing watching his sword glow.
 
0xC23D8C - 04002730 - Link slowly looking around?
 
0xC23DC4 - 040030A8 - Link playing his Ocarina? (Not normal action)
 
0xC23E4C - 04002398 - Child Link wih his head turned, looking off into the distance?
 
0xC23E8C - 040027D0 - Link with his hands on the crystal containing Zelda?
0xC23E9C - 040027C8 - Link watching the crystal fade upwards?
0xC23EBC - 04002388 - Link looking back and forth, possibly as the Temple of Time begins to shake.
 
0xC23F04 - 04002450 - (Repeat?)
0xC23F0C - 04002448 - Link nonchalantly looking up at something.
0xC23F14 - 04002450 - (Repeat?)
 
0xC23F2C - 04003468 - Link just standing there normally. (Not normal action.)
0xC23F3C - 04003468 - (Repeat?)
 
0xC23F44 - 040027A0 - More of resisting Ganondorf's Dark Wave
0xC23F4C - 04002820 - Link looking at his hand as the Triforce of Courage glows.
0xC23F5C - 04002858 - Link looking at the crystal containing Zelda when he enters Ganondorf's Chamber.
0xC23F64 - 040034D0 - Link looking to his side calmly.
0xC23F6C - 040034F0 - Link looking up calmly.
0xC23F74 - 040034E8 - I want to say Link ready to fight Ganon.
0xC23F7C - 040034A8 - I only assume Link watching as the Master Sword flies from his grasp.
 
0xC23FB4 - 040034A0 - Link looking with a hesitance at Ganon.
 
0xC2400C - 04002870 - Link looking to his side.
0xC2401C - 04002808 - Link in a ready position of sorts (unsure where used)
0xC24024 - 04002450 - (Repeat?)
0xC24030 - 04002720 - Link Plunging the Master Sword back into the Pedestal
0xC24034 - 04002360 - Link Pulling the Master Sword from the Pedestal
 
0xC240A8 - 040034B8 - Adult Link staring at the Ocarina having learned a new song.
0xC240AC - 04003458 - Child Link staring at the Ocarina having learned a new song.
 
------------------------------------------------------------------------------------------------------------------
 
This in theory is the "end" of the animations since I have exhausted the path since from that point in Link's file it becomes something else entirely. Maybe some of his missing animations (idle animations, moving animations, various item animations) are stored elsewhere.
  • Like 2
Link to comment
Share on other sites

  • 3 weeks later...

While not dealing with animations per se, it does deal with damage causing animations in the Vast majority of enemies. Using the list you can find here...

 

https://sites.google.com/site/deathbasketslair/zelda/ocarina-of-time/hacking-information/damage-done-to-link-by-enemies

 

Which is a copy of my old notes from ages ago (and a bit added in from Punk7890)

 

I took notice that there was some values in there that had not been interpreted, I will pull up an entry for an example. Wolfos at at EED7C9

 

FFCF FFFF 0004 0000 0000 0000 0000 0000 0100 0000 0F00 0000 0000 0000 000F 0064 0000 0000

 

I knew there was something I had missed long ago but I couldn't quite put my finger on it, then I switched the 000F in front of the 0064 by accident (I meant to switch the 0F00 but didn't) to 005F 0064 and I thought I noticed a peculiar sight... though the Wolfos was further away his front swipe was still striking me. I decided to push that to the limit and changed the value to 01FF 0064 and my theory was confirmed, 

 

Posted Image

And that was all it took to extend the range of the Wolfos front swipe to a much further length.

 

I thought then that it must follow this way for the vast majority of damage dealing entities and I was correct. 

 

Meaning that you can take mostly any value on the linked chart, look several lines below it and see the 00XX 0064. 

 

There are exceptions however... That is any weapon wielder (including Link, the same data is in his file for whatever reason) such as the Gerudo Fighter, Iron Knuckle, Stalfos, etc will have a different set of values that I have not deciphered yet, I know a lot of it is "null this and break the damage collision" but I have not figured out the actual damage collision with them.

  • Like 1
Link to comment
Share on other sites

Another fairly large, but very simple update. You recall how I believe that the hit detection was in that last mystery half-word? Well I went back to revisit and my money is right on the mark. I still have no idea what the the first byte is doing, but the second byte is asking how many Frames should the Swipe be present before. This is why changing it to higher and mostly lower numbers escaped my notice. This is useful for those who are switching attacks to keep in mind, but in reality there appears to be no penalty to setting it above the correct value (because there's no more frames to attach the swipe to) but it may be good for difficulty mods that want to handicap the sword and wants to give the sword attacks only half of their frame swipes if desired.

  • Like 1
Link to comment
Share on other sites

I'm sorry Pendants I did not fully read that before, just skimmed though it. Now that I have read all of it, I still have the question that if I can give different sword attacks, to deal out different damage than before (not talking about the Jump attacks, and Spin attacks). Like his horizantal sword swing, his diagnol swing, stab attack, and so on. You mentioned before setting the Jump attack, and spin attack to different unused damage values.

Is it possible to do that with what I'm trying to do?  The whole reaon I want to do this is to make better use of the "3x B" combo's"

I haven't read up on everything in the damage charts page.. so if you think that there may be some crucial information on how to do any of that.. (if even possible) and it's not in the Damage Charts page of the WIki  then please feel free to add more info too. Like always your help is greatly appriciated Three.

Link to comment
Share on other sites

I'm afraid not... Every Basic Swing is considered a single damage byte. This runs a constant through all of the melee weapons. Every Slice will be X, Every Slash will be X, every Stab will be X, the Jump Slash would be Y. It would take a bit of custom coding to get around that fundamentally built process of the system.

Link to comment
Share on other sites

  • 2 weeks later...

Not exactly dealing with Damage or Animations... but I guess it sort of has something to do with animations...?

 

Here is an update which some of you may find interesting. Ever since I started hacking I always wanted to have Young Link to be able to push Silver Blocks, but that thought always seemed like a pipe-dream. So I thought to myself earlier today, "Why not find it yourself?" And so the quest of breakpointing with a read command on 15E664m nulling every age check in RAM began...

 

After sometime I finally was able to kill all always-active age checks for Young Link and I could be certain that when I went to push this Silver Block, I would have the answer, and indeed that was the case. I changed the check to a value that always read 0 and...

 

Posted Image

 

I succeeded. 

 

If you wanted a full Child Link hack, there's no reason why Young Link shouldn't be able to make use of the Silver Gauntlets and by happy coincidence, Golden Gauntlets as well..

 

Posted Image

 

How to make Young Link able to push Silver Blocks/Pick up Silver Rocks/pick up Golden Gauntlet Towers
 
ROM: 0xB061E8 - 8C480004 - This (along with other values) is making up the address 15E664. 
To make Young Link able to push Silver Blocks change this 0004 to 00D20, which will be the value of 15E732,
 which, to my knowledge, never has anything written so the game will assume that Link is an Adult for this functionality.
  • Like 2
Link to comment
Share on other sites

According to my math... 11A5D0 (v1.0's 15E660 equivalent) + 0130 = A700, which if you have my Game File Bit Mappings table still, you'd see that the word is used for the room clear flags for the Forest Temple. 0138 should be used instead. 

Chest
Switches
Clear Triggers
Perm Collectables
Nothing
Visited Rooms
Visited Rooms
Link to comment
Share on other sites

Oh! Nice catch MZXRules, I'll get around to editing my posts then with that suggestion.

 

EDIT - I went with 00D0 to be 15E730 instead (which is what I originally meant considering my other age checks in the other thread) would that also work or does something get written there after all?

Edited by Three_Pendants
Link to comment
Share on other sites

  • 2 weeks later...

Here's interestingly an update that deals directly with Animations and the Damage Identifier Bytes! I can't say I ever expected to link the two in such a way, haha!

 

Here's a little update to those who want to possibly disable the double damage of the Jump Attack or perhaps change the double damage to another sword attack all together.

 

0xC0690C - 25AD4290 - 4290 is the Animation index (I have no idea from where this data is being drawn, but you may use the listing on the first post and decrease it or add by 10 for where you wish it to begin. This starts at the Alpha Jump Strike what this is the start of animations that are recognized as dealing damage according to the Jump Attack Damage Identifier so in a way it is a Animation Index of Damage Identifier Pointers, that's the length of a title of an essay.

 

0xcC06920 - 25CE42D0 - 42D0 is the Animation index from the data concludes. This ends at the Unused Backslice, you may change these two Animation Indexes where you like in the limits of the attack animations but just keep in mind that it will be from This to That, you cannot pick and choose which animations you want to have accessing the second damage byte between your two set ranges.

Link to comment
Share on other sites

  • 10 months later...

Here's a little update on items, I've located the range of the Boomerang and the extending range of Din's Fire, so each of these items can be made less or more powerful in an easy to shift manner that is independent of its damage byte.

 

Din's Fire -

 

ROM - F37C10 -

RAM - 29AF40 - Part of Din's Fire Timer - Size of the Fire Ball (240F001E)

 

ROM - F37CE8 -

RAM - 29B018 - 2nd Part of Din's Fire Timer - How long the Fire Ball hovers around Link (24080019)

 

ROM - F37D00

RAM - 29B030 - 3rd Part of Din's Fire Timer - ??? (240C000F)

 

Boomerang -

 

 

ROM - C04998

RAM - 3D5C98 - 24190014 (Range of the Boomerang, change the value to make its range higher or lower)

Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.