øA slickproductions.org /forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&topic=2046.0;wap2 e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index02ee-2.html slickproductions.org /forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&board=8.0;wap2 e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index02ee-2.html.z x ôg^ ÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ P`^ OK text/html ISO-8859-1 gzip @øÕ ÿÿÿÿÿÿÿÿ Tue, 10 Mar 2020 20:26:02 GMT 0ó° °® 0® P® €§² ð® ôg^
Banon's Donkey Farm > Game Modification Station
New patch: Zombie/Rippler Bug fix
13375K31C43R:
Hi! So, even though I downloaded Terii Senshi's Rippler fix patch, assassin pointed out a bug concerning the Zombie status that wasn't fixed by the patch like I thought. Terii Senshi's patch prevents Rippler from exchanging statuses such as Morph and Dog Block, but I assumed it also prevented the Zombie status from being exchanged. It turns out that Zombie being exchanged is intended; the problem is that Rippler does nothing to handle the former Zombie, now alive, but still having 0 HP.
The included patches remedy this by adding a call to a new healing function that only heals an entity if the entity is either the caster or the target of Rippler AND the entity has 0 HP AND the other entity involved in Rippler does not have 0 HP. There are two different healing algorithms used, with a separate patch for each; the first algorithm transfers all HP from the former non-Zombie to the former Zombie, and the second restores 1/8 of the former Zombie's HP. The included reverse patch is applicable to either fix patch.
Personally, I'm not sure if either algorithm is the "correct" algorithm to apply for correcting the 0 HP problem in this case. On the one hand, algorithm A seems more realistic because, viewing the Zombie status as a state of "lifelessness", it makes sense that the same exchange of "lifelessness" would also exchange "life" by extension. On the other hand, algorithm B is more rational because it's the same algorithm as the Revivify item, the only other method of curing Zombie status.
Both patches also apply the same improved Rippler algorithm seen in Terii Senshi's patch (with appropriate modifications to accommodate the healing algorithm). In other words, I only recommend downloading Terii Senshi's patch if you're one of the rare few who care about Rippler mishandling Morph and Dog Block but not Zombie. All patches use free space bytes C2/65BE-C2/65CE, but patch B also uses bytes C2/65CF-C2/65D5.
UPDATE: I've now attached a third fix algorithm, which sets the former Zombie's HP to 1. It can be reversed using the same reverse patch.
UPDATE 2 (August 2, 2015): I've just found and fixed a potential logical issue with fix B, whereby if someone with the wrong number of max HP gets healed, it might possibly screw up the Rippler function. I don't know if it's really a problem, but this fixed version now ensures that it isn't. It also cuts down on the free space used.
UPDATE 3: I've now included a patch for a Japanese ROM.
UPDATE 4: Found a bug! The status exchange algorithm only worked halfway in the previous versions! This is now fixed. Also, I've done some shrinking of the B and C patches. Now in order to apply your desired fix algorithm, you'll have to apply the A patch and then the appropriate patch. Finally, added patches for GBA!
assassin:
--- Quote ---C4/736B: 03 -> 02 (Not sure what this byte means, but the same change exists in Terii Senshi's patch.)
--- End quote ---
that's spell data, done to fix "Rippler missed... but it worked?" , as seen in Master ZED's Glitches & Bugs guide.
13375K31C43R:
--- Quote ---that's spell data, done to fix "Rippler missed... but it worked?" , as seen in Master ZED's Glitches & Bugs guide.
--- End quote ---
Yeah, I knew it had to have something to do with Rippler. I figured it was different than the event code I was editing. I could probably have looked it up easily, but I was just too lazy. The bottom line was just, if it's required to fix what Terii Senshi fixed, I'm keeping it.
assassin:
algorithm A has a clever basis that i wouldn't have thought of. a more involved variant might scale between entities by not transferring absolute HP, but percentage of total HP. that would stop full-life, low max HP entities from necessarily being a lesser source than depleted-life, high max HP ones. a departure from Drain, to be sure. but possibly within the spirit of a spell that normally works on statuses, as opposed to numbers like HP or MP.
probably not worth the space/effort, but just putting it out there.
another approach altogether would be to do the absolute minimum to remove the buggy condition: heal a mere 1 HP. this would show some deference to Revivify, leaving it as the top dog for healing Zombies.
13375K31C43R:
I had thought about healing 1 HP, but I decided not to because I figured there wouldn't be enough difference between 1 HP and 0 HP other than "legality". Also, I feel like it would look a little bit unnecessary to actually show the number 1 in the healing process, so I would have actually made the algorithm increment the HP value itself by 1 instead. I actually stopped when I realized I'd have to check for Near Fatal status, which I wasn't sure I could do without breaking the game; the easiest way would be to jump to the place in code that handles it, but in my ROM that's been moved from its usual spot, so I'd have to make an extra patch for that. Although maybe it would have been sufficient to just set Near Fatal status anyway, under the assumption that the entity's max HP is at least 8.
A proportional HP transfer is also a neat idea. For that I'd have to look into how the game handles multiplication and division. It's also plausible that this algorithm would use even more free space than algorithm B, so that's also something to be wary of. The free space used by algorithm B perfectly fits a gap between Imzogelmo's "MP Digits" patch and another patch at C2/65D8.
Navigation
[0] Message Index
[#] Next page
Go to full version