Why doesn’t the memory editor table work after restarting the game

cheatsjamestownpc

I can't figure out how to keep my static pointers working for multiple play sessions. It's getting rather annoying to have to find the addresses at the start of every session.

For fun, I'm trying to see if I can change the values of a singleplayer game (Jamestown: Legend of the Lost Colony, to be exact) so I can have different amounts of lives and continues from the game defaults and not stress out about dying so much.

Using both Cheat Engine and L. Spiro's Memory Hacking Software (MHS), I've been successful at changing these values by watching for the values to decrement and grabbing the correct address. I can change these values with the expected results. I can even find a static (colored green) pointer that will update the appropriate value.

The problem is that this pointer does not seem to be valid when I start a new play session. It's pointing to nothing, or something completely unrelated. Where might I be going wrong? Is there an easier way to do this? I'd rather not have to go through finding the correct address every time I start playing. 🙂

Best Answer

Speaking from my coding experience; If I am understanding this correctly, your pointers point to memory addresses where certain values reside which you want to modify. A pointer is just a variable that instead of saving some value, saves a memory location.

You need find the addresses again for every time you restart the game. The reason for this is that the Operating System keeps track of allocated memory and which processes that have allocated that memory. Each process maintains its separate memory space. Memory is not an infinite resource so when a process exits, is shut down or killed, the memory tied to that process is released and becomes available for other processes to use. When a process needs a certain amount of memory, the operating system attempts to allocate that memory somewhere in the memory where there is enough space and then gives the process a link to that memory. However, depending on the current state of system memory and all the other things that are in it, you can never really be sure where that memory might be found. This causes the addresses to be different for each run.

Here's a link to Memory Addresses at Wikipedia and there are plenty of other resources on how computer memory work available online.