Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


Turning a locked menu item ON - Mulligans in Career Mode
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking
View previous topic :: View next topic  
Author Message
smgreyuk
Newbie cheater
Reputation: 0

Joined: 30 May 2023
Posts: 13

PostPosted: Tue May 30, 2023 8:23 pm    Post subject: Turning a locked menu item ON - Mulligans in Career Mode Reply with quote

Hi,

I want to be able to turn a locked in game menu ON when locked in doing so.

For context, the game is EA Sports PGA Tour.

It involves Mulligans, which basically means, when taking a shot, you can take a Mulligan and the game lets you re-take the shot from the same place without a stroke being added to your score

In Quick Play Mode I can turn Mulligans ON in the Settings

But in Career Mode, Mulligans are turned OFF in the Settings and they are locked out in turning them ON (They are greyed out on Screen)


My idea was to go into Quick Play Mode, go to the Settings, turn the Mode ON, save the settings then do a search for a 1 using the Byte Search, then turn the Mode OFF, save the settings, then do a next search for a 0 using the Byte Search and repeat the process.

I whittled it down to 20 results. The results would not be reduced any further. Thinking that these addresses are all responsible for the Mulligan Flag, I then put them all in the table when set to 1 and locked them all at 1.

I then switched to Career Mode and tried to play a round but the game crashed.


The only other way I can only imagine how to pull this off would be to somehow record the Mulligan Event / Function happening in Quick Play and then run this same Event / Function whenever I needed it in Career Mode. I have looked at the Debugger / Assembly Code, Lua Code online but I just don't know where to start, as a button press for an action doesn't attribute to any integer for a search. I wouldn't even know how to pin it down in an Unknown Search as I wouldn't know what is changing when pressing the button for The Mulligan to occur.


I could simply search for the number of strokes and keep it at whatever value I wanted but I don't get the desired functionality of re-taking the shot from the original place.

Any help or advice with this would be much appreciated?

I do realise what I am asking for may not be possible

_________________
S.Grey
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Tue May 30, 2023 8:35 pm    Post subject: Reply with quote

You might be able to find something viable with your initial approach. The value may or may not be byte type, though. Instead of changing all of the values at once, try working through the list one-by-one.

If that doesn't work, you could try using ultimap or one of the other tools with CE that are similar, to narrow in on the function/call as you described.

Once you find the call responsible, you will want to gather the necessary data so that you can make the call manually and get the results that you want.

Or, you can try to back-trace to see if the call is getting jumped over (e.g. when the feature becomes disabled) and alter the jump so that the call gets executed, and then figure out what flags need to be altered in order to get the result that you want.

You could also try to look and see if there is a call that turns the feature off, and either NOP the call or return at the start of the call.

There are different options to consider.
Back to top
View user's profile Send private message
smgreyuk
Newbie cheater
Reputation: 0

Joined: 30 May 2023
Posts: 13

PostPosted: Wed May 31, 2023 1:03 pm    Post subject: Reply with quote

Thank you for the helpful reply ++METHOS

Yes I shall try each value one by one and see if I get anywhere with that.

With regards to ultimap + jumping over calls (I assume in Assembly Code) I am a complete novice with that but I am willing to learn that if I can get the results. Smile

I'll report back here with my progress.

Thank you once again

_________________
S.Grey
Back to top
View user's profile Send private message
smgreyuk
Newbie cheater
Reputation: 0

Joined: 30 May 2023
Posts: 13

PostPosted: Fri Jun 02, 2023 5:09 pm    Post subject: Reply with quote

Well I don't have an Intel PC so Ultimap is out of the question Sad

I'll keep trying with the actual menu option as by the looks of things that's the only thing I can go on, unless there's a non intel Ultimap alternative I can try perhaps?

_________________
S.Grey
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Fri Jun 02, 2023 7:41 pm    Post subject: Reply with quote

You've tried both versions of ultimap, presumably?

Did you see if the code filter tool works for you?

If the target is 32bit, you can try CDA, as a possible alternative to ultimap.
Back to top
View user's profile Send private message
m0rc0m
How do I cheat?
Reputation: 0

Joined: 29 May 2023
Posts: 8
Location: sysadmin

PostPosted: Sat Jun 03, 2023 6:01 pm    Post subject: Reply with quote

I have the same opinion as ++METHOS, but also can be helpful to search for increased and decreased values as you change it to 0 or 1. Just to discard false positives
_________________
The end may justify the means as long as there is something that justifies the end.
Back to top
View user's profile Send private message
smgreyuk
Newbie cheater
Reputation: 0

Joined: 30 May 2023
Posts: 13

PostPosted: Sun Jun 04, 2023 6:47 pm    Post subject: Reply with quote

Hi both,

Yeah I tired both Ultimap versions and I got the same error message when trying to record, basically no dice with AMD PC.

Ooh Code Filter looks promising when I clicked on that via the Memory Viewer, the fact I can track code and filter out when it does and doesn't function. That feels very similar to what Ultimap offered. I shall give this a go after work today. I need some sleep first as it's now 01:47 in the UK ha ha

Ah CDA, not sure about the target being 32 bit but yes that could be another option too thank you

Thank you m0rc0m, that's a good point about using the increased and decreased, I can try that too.


I've got plenty of new avenues to try now, thank you both so much. I'll let you know my results - If I get anything working it may help someone else looking for something similar Smile

_________________
S.Grey
Back to top
View user's profile Send private message
Autem
Expert Cheater
Reputation: 1

Joined: 30 Jan 2023
Posts: 118

PostPosted: Sun Jun 04, 2023 8:46 pm    Post subject: Reply with quote

In some sports games I play that have greyed out menu items, I have had success scanning for a changed value as I go up and down thru the menu and highlight each option 1 by 1. This allowed me to force the intended changes right in the menu and save the options.

The idea is that if you can manually change the value to the ID of the menu item you want, it will think you're already highlighting that menu item and allow you to select/edit it.

In my experience, usually the first menu item is a value of 0, the second is a 1, the third is a 2, and so on... So for example if I'm highlighting the 5th menu item I would scan for the value 4.

So anyway for the first scan I might go down a few and scan for a bigger number than 0 or 1 just to make it a faster first scan. Let's say for the first scan I highlight the 5th menu item like I mentioned above, so I'm scanning for a 4. Next, I'll move it up or down some and scan for the appropriate changed value. Like if I move it to the first menu item I would scan for a 0.

You might also want to scan with the assumption that the first item is 1, and the second is 2, and so on... since some games might label them that way too.

Eventually when it narrowed down to one address, I was able to manually change the value to the number that matches the greyed out menu item. This allowed me to force select it. Or, if it's a toggle on/off menu item by pressing left or right it would allow me to press left or right and I could see the greyed out option change from off to on.

Not sure if this will work the same with EA games but I thought it might be worth mentioning. The above idea mostly works in games where the greyed out menu item forces you to skip past it.

PS: If the game lets you highlight the greyed out menu item, but simply prevents you from toggling it on, maybe try this... Another possible idea if the menu has a lot of on/off items is to highlight one while it's on and scan for 1, then toggle it to off and scan for 0, etc... (NOT saving in between, just moving thru the menu and doing scans as you toggle the visual options) but then move down to other menu items with on/off toggles and continue that same scan. It might be a single address that constantly handles the on/off of whatever item you highlight at that time. Meaning if you find that address, and then go highlight the Mulligans even though it's greyed out, you should see that address' value reflect a 0 for Mulligans and just be able to manually change it. Then save.

Hope this helps!
Back to top
View user's profile Send private message
smgreyuk
Newbie cheater
Reputation: 0

Joined: 30 May 2023
Posts: 13

PostPosted: Mon Jun 05, 2023 10:20 am    Post subject: Reply with quote

That's very insightful Autem - You have given yet more to go on with the menu side of the problem.


When I was searching I actually did it in the menu were it ALLOWED the changing of the mulligan on/off toggle (this is the overall Settings Menu whereby it applies to the Quick Play Modes) and I simply just searched for 1 or 0 (in byte form) I was saving each time I changed and then when I whittled it down to 20 addresses I then moved to the Career Mode Settings Menu (where the option is actually greyed out) and then changed the options one by one to a 1 to see if the greyed out option would change to ON but I got nowhere doing it that way, possibly due to either changing menus and/or saving each time I changed something

But your approach I believe is better, as in staying within the Career Mode Settings Menu and I think what you are saying is....

1. in the first approach it's about searching for the ordered numbered menu item in the list of options, change the ID thereby changing the order of the menu items, potentially moving the Mulligan option out of a locked state, enabling me to change it in the game UI itself?

2. In your PS part you go onto saying there could be one address handling all of the ON/OFF Toggles as you actually highlight each menu option, again don't save the on screen change and try and find the universal value that is used for all of the ON/OFF items.

I just thought I would put in how I interpreted your description in my head, sorry if this seems like I have repeated what you said, I just had to run it by you to confirm this is what you actually meant. Am I right in my understanding?

So I now have ++METHOS idea using the Code Filter

I have m0rc0m saying to use the increased and decreased values for menu option changed

And I have Autem with a more in depth look about how games may handle ON/OFF handling in terms of addresses and values.


Thank you so much for all of this, plenty to try now. I'll keep you all posted with my findings

_________________
S.Grey
Back to top
View user's profile Send private message
Autem
Expert Cheater
Reputation: 1

Joined: 30 Jan 2023
Posts: 118

PostPosted: Mon Jun 05, 2023 10:34 am    Post subject: Reply with quote

smgreyuk wrote:
But your approach I believe is better, as in staying within the Career Mode Settings Menu and I think what you are saying is....

1. in the first approach it's about searching for the ordered numbered menu item in the list of options, change the ID thereby changing the order of the menu items, potentially moving the Mulligan option out of a locked state, enabling me to change it in the game UI itself?


Yeah when I've had luck with this type of situation I was always being careful to do as little moving around as possible. Giving the game as few chances as possible to change or reset any pointers, values, etc... that may throw me off. I imagine a lot of changes happen when you move from outside career mode settings to inside career mode settings.

No, I don't mean manipulating the UI to change the order of items. I mean let's say for example you are currently highlighting the very first option. My theory is that the ID of that position is a 0. Then you move down to the 2nd option and my theory is that its ID is a 1.

So, what you'd do if you can find that address that keeps track of which option you're highlighting, is count and figure out which ID the greyed out item would be. Let's say it's 12. I'd just highlight any random option but I'd change the value to a 12. Now the game thinks I'm hovering on the "forbidden" option but (in my experience) allowed me to select the forbidden option even though it appeared graphically that I was pushing the button to select some other random option.

This idea mostly works if the game is forcing you to skip over the greyed out option entirely. If the game already lets you hover over it (but disabled input) then my PS idea is the one to try.
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Mon Jun 05, 2023 10:43 am    Post subject: Reply with quote

Just something to keep in mind... When using mouse-over methods or booleans etc., you may not see the result that you are expecting when changing values, but that does not mean that the 'effect' has not changed; you may need to play through the game to see if it has.

Typically, there will be many values that deal with a button, especially if that button has different states and effects etc. As such, you may be changing values that have nothing to do with what you are looking for. It also means that you may need to exit the menu screen and return back into that screen in order to see some of the changes actually take place to let you know that you are on the right track.

Even finding a related value (e.g. button color) can help you to narrow in on an interesting call. You will just have to see what accesses it and then return from that sub-routine, set a breakpoint on the call or jump and step through to see if you are in the right location (since there may be separate calls for colors, down-state, effect et al.).

This is why narrowing in on a call and stepping through code will usually provide better results, because not only can you gain a better understanding of what is happening, but there may be additional flags and values that need to be altered in order for you to see the desired effect. The downside is that it requires more understanding, however.

If the button acts as a simple switch, like a boolean (on/off), then you should be able to find a simple value to change. That being said, once found, you will want to either use the pointer scanner or use injection so that you can capture the address that holds the value in case it changes.

Using injection is better, but you will want to make sure that the instruction is getting accessed when necessary, otherwise, your efforts may be futile.
Back to top
View user's profile Send private message
smgreyuk
Newbie cheater
Reputation: 0

Joined: 30 May 2023
Posts: 13

PostPosted: Mon Jun 05, 2023 11:19 am    Post subject: Reply with quote

- Code Filter Approach
On the screen when I first went in, I just had Load Address List Options and a Launch Branch Mapper

As I didn't have an address list to load, I decided to click on the the Launch Branch Mapper

It gave me numbered branch destinations to select from, I selected them all and let it search

The search went on for a while finding results - I didn't know if there was a limit to this (as in whether it counts all unique results and stops) or would keep going indefinitely (possibly duplicating results that it finds, I'm not sure)

Bearing in mind I was on the first hole of a course in Quick Play Mode in game when I ran the search of the Branch Mapper (under the Code Filter option, so at this point, no mulligan had been recorded)

The search seemed to slow down on an amount of results and then would add say another 10,000 results after a minute or so.

It seemed to have not gained anymore at 152,502 results for quite some time so I pressed the Save results to file button

I then named my file and then loaded the file into the bottom list of the Code Filter Window.


Initially each result of the 152510 results had a "No" under Executed

I pressed Start and then went into the game and it appeared the game had frozen ????

My idea was to press Start, take a shot and perform the mulligan then stop the Code Filter but I couldn't get into the game to do this

Some of the addresses in the list had changed to "Yes" but at this point my game was unworkable, the game evnetually went off screen/minimized and when clicking on it on the taskbar, nothing happened.


I then stopped the Code Filter to see if it would let me back into the game but it didn't.



Have I done anything wrong in the above process ++METHOS?


I shall next try m0rc0m's idea of looking for increased and decreased values when changing the mulligan menu option followed by Autem's menu method. It will be the idea in your PS as the option is indeed greyed out but I can hover over it.

Thanks guys so far

_________________
S.Grey
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Mon Jun 05, 2023 11:32 am    Post subject: Reply with quote

smgreyuk wrote:
Have I done anything wrong in the above process ++METHOS?
-Hard to say. DB has a tutorial for the Code Filter tool on CE's youtube channel.
Back to top
View user's profile Send private message
smgreyuk
Newbie cheater
Reputation: 0

Joined: 30 May 2023
Posts: 13

PostPosted: Mon Jun 05, 2023 12:10 pm    Post subject: Reply with quote

Thanks ++METHOS - I can see what the Tutorial for Code Filter does and compare it to what I done

Okay next approach

Increased / Decreased Value Approach

For this approach I would have to start in the Overall Settings Screen whereby it ALLOWS changing the Mulligan Toggle ON/OFF otherwise I can't change the desired option in order to search for it but this time I won't save when changing the option

I did an Unknown Initial Value Search for Bytes and it came back with 4,046,151,680 results

A - I then changed it from ON to OFF and then selected Decreased Value and pressed Next Scan, whittled it down to 45,310,965 results

B - I then did the inverse (OFF to ON with Increased Value) - and got it to 7,780,593

I repeated A and B with no saving and got stuck at around 728 results, no matter if I throw in some unchanged result searches along the way.

I then continued the search by narrowing it down to the value of 1 (at this point the menu option was set to ON) and got the results down to 52

I took these 52 results and went over to the Carrer Settings Menu

The menu option was then greyed out and OFF on this menu - I and went back to see what had changed to 0, of the 52, about 10 had changed to 0

I then went through each result that had gone back to zero and manually changed each 0 to 1 and would reload the menu each time to see if it had moved to ON but I had not.


Now based on the feedback above, I understand that just because the menu item doesn't visually say "ON" it doesn't mean to say that I was unsuccessful in getting mulligans enabled - I would need to further test out in game under Career Mode itself for each address if I can mulligan a shot when each changed address is set from 0 to 1

But this approach means moving from menu to another and I am not fond of going down that path anymore based on what Autem has said. I also understand that Byte searching may not be the data type in question here but I could get a bunch of results to flip from 0 to 1 and back again albeit in the wrong menu so it seemed to be controlling something (could be 52 addresses solely to do with the way the menu option looked and functioned in that menu alone)


I think I need to start a new career from scratch too, as testing this out on my current career will just ruin the progress of it.


Onto Autem's method of highlighting other non greyed out menu options in the same career settings menu and seeing if I can find the overall address that controls each ON/OFF menu toggle, then switch it to a 1 when over the greyed out mulligan menu option ( I can repeat for different value types too)

Then failing that , move onto looking at the tutorial that ++METHOS talks about then failing that, move onto the CDA approach

_________________
S.Grey
Back to top
View user's profile Send private message
Autem
Expert Cheater
Reputation: 1

Joined: 30 Jan 2023
Posts: 118

PostPosted: Mon Jun 05, 2023 6:27 pm    Post subject: Reply with quote

smgreyuk wrote:

Now based on the feedback above, I understand that just because the menu item doesn't visually say "ON" it doesn't mean to say that I was unsuccessful in getting mulligans enabled - I would need to further test out in game under Career Mode itself for each address if I can mulligan a shot when each changed address is set from 0 to 1

But this approach means moving from menu to another and I am not fond of going down that path anymore based on what Autem has said.


I meant more so when it comes to different "modes" in a game having the same exact options but existing in totally separate areas of the game's brain, so to speak. For example, in a physical brick and mortar building, the light switches on the first floor of a building control a different set of lights than the identical light switches up on the 2nd floor which is the same exact layout (but still a different floor aka mode). So in that sense testing one in hopes to manipulate the other, despite them being identical, could be pointless.

But for doing what is quoted above you might need to do some running back and forth between the career settings and trying to execute the shot/ability. When I have to go back and forth like that I try and make sure I'm as short as possible each trip back and forth and don't go into any parts of the game that aren't needed. It might be possible that if you're staying in career mode settings and career mode gaming without straying off too much between those as you test back and forth, you'll end up finding something you need.

Another idea to consider is if the options you toggle are all in an array of bytes that's very easy to understand when you switch to byte decimal view in the memory view window. If you can find the array of bytes that toggles 0 and 1 for each on/off option in a row, you might visually see a pattern where every X amount of bytes is the next option's address/value in that array of bytes. Like in some games it might be:
0 1 0 0 0 1 0 1 0 0 0 1
and if you figure out which one is the option RIGHT before Mulligans, you could then know which one to switch for Mulligans and then go test in-game to see if it worked. This type of table may potentially let you figure out which exact byte would be the one to adjust based on when you are changing the option right before the Mulligans. You will be looking at memory viewer in byte decimal view during this test. I hope this makes sense how I'm explaining it.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking All times are GMT - 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites