njosro, thanks for the helpful explanation! I'll have to do some experiments with it. I did try to make a loop for my hearts hack, but it was complicated enough trying to them to work, ha ha. Those things are pesky!
By the way, I finished creating the new hearts! I ended up doing an all night-er, cause I was too focused on getting it to work. Let's just say, I need a break, ha ha. With this hack, the health meter has been replaced with a traditional heart gauge from the Zelda series! Currently, it is set to half hearts, but it could be reworked into using quarter hearts. For now, let's just stick to the easier one. NOTICE: To anyone who wants to use this heart hack:
Feel free to use this, but keep in mind that is was intended for use with ShadowOne's Redux HUD. You'll need to adjust some data to fit your preferences, or whatever layout you may have for your HUD.
With that out of the way, let's get started!
First thing, here is a screenshot of where the half heart tile should go. I replaced the "L" in the life meter because the new hearts looks better without it, I think!
Next, you'll want to remove the sliding health tile since it is no longer used. You could simply change its X position to FF and it'll go off screen, or you can remove it by modifying its code. Up to you!
Also, you'll want to remove the "L" tile from the screen. A simple F4 to make it invisible is what I suggest. Next up, is the code!
At 0x17AC you'll find the following code:
AD 74 07 8D 65 05 4A 4A 4A 4A 4A 85 00 C6 00 30 09 A9 C7 99 09 03
Replace it with:20 10 B0
EA 20 A0 B0
EA 20 00 B0
85 00 C6 00 30 09 EA EA EA EA EA
There are 3 jsr here, which all point to the new code. There are 3 different parts, but I bunched them all together. First part is 7 bytes, second part is 141 bytes, and the third part is 105 bytes.
At 0x3010, paste this code:
This code probably could've been done more efficiently, but it works! Basically, I removed the old health meter with a bunch of NOP (EA), and made all this new code that constantly checks your current health, and then displays the necessary amount of hearts. The first large chunk of code is for hearts 5-8, and the second chunk is for hearts 1-4. It turned out to be more complicated than I originally thought, so the code could probably be shortened, but I found it was a good idea to separate the hearts into two parts. It just works better than way, and is less confusing. I dunno, I'm too tired to think about that, ha ha.
If you have any questions, I'll try to answer them as best I can. Also, I might have missed something. As I mentioned, I'm quite tired, so I could've forgotten to include something. Hopefully not, and you get it working ok.
About the bug you experienced with the pause display - I couldn't replicate this. Try adding the hack to a clean rom, to see if you can get it working. There may have been an oversight somewhere, but we'll figure it out!