I came across something I found quite strange, I'd not seen it before in other games and just wanted to see if anyone had come across this before.
Quick disclaimer, I'm fairly new to the Gamehacking scene and my knowledge of such is pretty primitive at the moment but I'm practicing and trying to learn so I can help out a bit more on the forum.
I was practicing on Syphon Filter 2, which I play on using an emulator. Long story short, I managed to find the health & armour values for the player pretty easily and noticed they were instanced for each level - i.e. each level stores the health & armour separately.
What I found strange was, the health & armour for each map was stored at a static address. But if you die, the memory location is changed as if it were a pointer?
Before:
After:
What writes to the address: (Highlighted instruction when 3 hits were taken)
Assembler:
Again, I probably sound dumb given my limited knowledge, just wanting to learn a bit more about it and see if others had come across something like this before in any other games?
Weren't sure if this was specific to the game's design, specific to the emulator or something very trivial that I'm overlooking.
Just saying, this isn't a moan or an issue as such - I understand that modifying health & armour in these circumstances is to avoid dying and thus I shouldn't need to do this, it's easy enough to find the addresses again if I need to, just wanted to know for my knowledge really why it happens.
So really, my question is: why is a static address behaving like (what I would believe is) a pointer?