I'll put this in the Fan Stuff thread because it's important for anyone modding Castlevania 3. I just posted this to my blog, but I know it doesn't have much readership (and that's fine with me). I don't know if this has been brought up before, but I feel it's important enough to refresh even if so.
The Invincibility Potion in CV3 is gimped. That's possibly why it was restricted to just that one room on the Ghost Ship where there was no point to it being there. CV3's damage code overlaps the moving platform handling, resulting in a convoluted mess which, although fairly simple to fix, resulted in the Invincibility Potion potentially leading to instant death. Rather than fixing it, Konami may have just cut out all but that one instance of the potion.
When an enemy collides with Trevor (or his partner), it deals damage to Trevor unless he's in his i-frames (when he flickers after taking any damage). There is no check for the invincibility potion. However, the Invincibility Potion
is checked before reducing health and applying knockback. Yes, damage and health loss are
separate in CV3.
The same variable that tells Trevor how much damage he has taken from an enemy is the same variable that tells Trevor he's on a moving platform. Every step, the part of the variable that deals with platforms is moved to another variable, which is later used to move Trevor along with the platform. The platform flag sets the lower 4 bits, while the damage sets the upper 4 bits. This would have been fine, except for two issues in the programming.
- The damage overrides the variable, clearing the platform bits every time.
- The platform value is moved after damage has been set, rather than before.
What this means is if Trevor is on a moving platform and takes damage, the game forgets he is on a platform, resulting in Trevor falling through the platform (presumably to an unfair death).
So if Trevor gets hit by an enemy or projectile while not under the influence of the Invincibility Potion, he will take damage, enter his i-frames, lose health, start flickering, and take no further damage for a brief moment. During this time, if Trevor gets on a platform and collides with an enemy, projectile, or spike while still flickering, nothing will happen to him. However, if Trevor is under the influence of the Invincibility Potion, gets on a platform and collides with an enemy, projectile or spike, he will clip through the platform and plummet to his demise.
If you want to modify CV3 to include the Invincibility Potion more prominently, you will need to be aware of this bug/feature.