Mobius Front '83. Trouble with pointers?

Add topics here with methods, analysis, code snippets, mods etc. for a certain game that normally won't make it in the Tables or Requests sections.
Post Reply
yeastmobile
What is cheating?
What is cheating?
Posts: 3
Joined: Mon Sep 12, 2022 2:01 am
Reputation: 0

Mobius Front '83. Trouble with pointers?

Post by yeastmobile »

Hi, I've recently started playing mobius front '83 and in the game there are Phases of battle, in certain phases you get points for deploying troops. I looked around for a pre-existing cheat table and while there is a dead thread for the game there is no sign of anyone figuring this game out so I decided to try, but this is the first time I really tried so I am a bit lost on how to proceed. With that out of the way...

The value I am trying to edit has turned out to be a multi-level pointer, I am unsure how to describe the problem so hopefully the screenshot helps my description:

Image

So you can see I find the point value I want, I find the pointer pointing to it, and then I find that one's pointer? I think. I've reloaded the level to do this a few times and 0647F108 seems to be the same "First Pointer" every time, but I can not figure out what writes to it. I try to look for stuff pointing to it but then as you can see I will find one address, and then that second address will... deload? I don't know what is happening here but it is preventing me from moving forwards as I don't know what I should be looking for/doing to proceed and hope one of you kind gentlepeople can help. Thank you for your time.

amorrow28
Expert Cheater
Expert Cheater
Posts: 81
Joined: Mon Jul 04, 2022 9:42 pm
Reputation: 46

Re: Mobius Front '83. Trouble with pointers?

Post by amorrow28 »

I’m probably not fully correct here as I’m also new to this, but you generally don’t want to try to find what writes a pointer, since I think often that happens when a game is initiated (or when a class object / structure is initiated). So you want to either find the code that writes to the final value, or find a consistent pointer path, but not both.

I generally like finding the code that writes to the value, but sometimes you deal with code that is shared and need to use the pointer path method instead. The easiest way to do that is to do a pointer scan, which will load a bunch of possible paths to a base address. Quit the game and restart (or in your case, you could go back to the base menu and start a new game). In the pointer scan results page, look at the results and you’ll see a bunch of them are garbage but hopefully you will be able to see at least a few that are still pointing to the correct result. Note down the new address and then use the rescan feature, put in the new correct address (or value), and have cheat engine filter out all the garbage pointers. Then repeat it again, and whittle it down more. Hopefully after 2-5 passes you will have a reliable pointer.

For what I do, I find shorter paths are often better. To find short paths, sort by offsets. For example, if you click on offset 1, if there are any paths that terminate before offset 1 will come to the top. If there are none, click offset 2, and so on.

Finally, even if you go the pointer path, try to find and note an instruction AOB that can get you back to the final memory address, even if it takes some filtering to get there or it isn’t 100% reliable. Game updates will break your pointer path and you don’t want to have to start over every time…

Post Reply

Who is online

Users browsing this forum: No registered users