Page 1 of 2

Saving values with cheat engine possible?

Posted: Sat Jan 02, 2021 12:36 am
by Alex088
Hi all guys,

First of all happy new year to everyone here, hopefully it will be better than 2020...

So I have two questions, I hope someone will be able to help me.

I'm using cheat engine to change drivers names in F1 2020.
There are basically 2 sets of names,
The ones in the main menu and the ones while driving on track.

Now I have found both sets and the ones in the main menu are always kept with the same addresses,
So is any chance I can rename example one driver in ABC and save it in a way that when I will start the game again and start cheat engine,that driver name would be automatically renamed as ABC?
Or I have to re enter the names I want to change every time I start the game?


My second question is,
In the second set of names (the one used by the game when on track) the addresses slightly change at every game start-up.
Is any way I could get cheat engine to recognize the new address and automatically rename the driver in ABC on its own?
Or again it will have to be me to find the addresses manually at every game start-up?

Thanks in advance for the replies.

Re: Saving values with cheat engine possible?

Posted: Sat Jan 02, 2021 5:08 pm
by sbryzl
Names that have the same relative address could be changed easily with a script utilizing assert and relative pointers. You could enable that script first then use a script with an array of byte search for the 2nd set of names to change them.

Re: Saving values with cheat engine possible?

Posted: Sun Jan 03, 2021 1:00 am
by Alex088
Thanks for the reply,could you please explain me how to do it step by step?
Thanks

Re: Saving values with cheat engine possible?

Posted: Sun Jan 03, 2021 1:45 am
by sbryzl
Let's start with the known address names and see how it goes.

With cheat engine attached to game open auto-assembler (ctrl-alt-a). Start a script template (ctrl-alt-t). The result should be an empty table with enable and disable sections. Fill in the sections so they look like this.

Code: Select all

[ENABLE]
assert(address1,"name1")
address1:
dq "new name"

[DISABLE]
address1:
dq "name1"
Where address1 is the pointer to the name you want to change, name1 is the original name, and new name is the name you want.
Fill everything in then under "File" select "assign to current cheat table" then close the script.

dq is 8 bytes of data so if the name is longer than 8 bytes you may need to do something different or if there is data within those 8 bytes you don't want changed then you may need to so something different.

Re: Saving values with cheat engine possible?

Posted: Sun Jan 03, 2021 1:42 pm
by Alex088
Right so I had a go at it but unfortunately is not working,
I think I did everything correctly though?
I have attached some pictures of the errors I'm getting.

[Link]
[Link]

Thanks

Re: Saving values with cheat engine possible?

Posted: Sun Jan 03, 2021 2:49 pm
by sbryzl
Could try using byte size data.

Code: Select all

assert(2b0757638,53 65 62 61 73 74 69 61 6E 20 56 45 54 54 45 4C)

2b0757638:
db 43 61 72 6C 6F 73 20 53 61 69 6E 7A 00 00 00 00

[DISABLE]

2b0757638:
db 53 65 62 61 73 74 69 61 6E 20 56 45 54 54 45 4C

Re: Saving values with cheat engine possible?

Posted: Sun Jan 03, 2021 3:16 pm
by Alex088
Right so I'm gonna copy and paste these values but what about the driver name?
How cheat engine will know what to put instead of Vettel?

Re: Saving values with cheat engine possible?

Posted: Sun Jan 03, 2021 4:14 pm
by sbryzl
The data is the byte size representation of the driver's name. Text is written in hexadecimal using ascii code. [Link]

Re: Saving values with cheat engine possible?

Posted: Sun Jan 03, 2021 4:30 pm
by Alex088
Ok,I'm with you now,I'll give it a go tomorrow and let you know.
Thanks a lot

Re: Saving values with cheat engine possible?

Posted: Mon Jan 04, 2021 9:19 am
by Alex088
So I tried quickly this morning,I copied and pasted your byte size data but when clicking on assign to current cheat table I get an error now saying
Failed to add to table. Not all code is injectable.

Re: Saving values with cheat engine possible?

Posted: Mon Jan 04, 2021 2:43 pm
by sbryzl
Sorry, forgot to include the enable section designation.

Code: Select all

[ENABLE]

assert(2b0757638,53 65 62 61 73 74 69 61 6E 20 56 45 54 54 45 4C)

2b0757638:
db 43 61 72 6C 6F 73 20 53 61 69 6E 7A 00 00 00 00

[DISABLE]

2b0757638:
db 53 65 62 61 73 74 69 61 6E 20 56 45 54 54 45 4C

Re: Saving values with cheat engine possible?

Posted: Mon Jan 04, 2021 5:08 pm
by Alex088
Yeees,amazing it's working perfectly,
So now I would just have to do the same with the rest of the addresses using the hex code.

I guess that was the easy part,what do you think about the second set of names that the game slightly changes at every start up?

Re: Saving values with cheat engine possible?

Posted: Mon Jan 04, 2021 5:27 pm
by sbryzl
You need to do an aob search since you don't know the address. Since you assert the name in the first location you already know what the aob is. The layout is about the same.

Code: Select all

[ENABLE]
aobscan(drivername2,53 65 62 61 73 74 69 61 6E 20 56 45 54 54 45 4C)
registersymbol(drivername2)

drivername2:
db 43 61 72 6C 6F 73 20 53 61 69 6E 7A 00 00 00 00

[DISABLE]

unregistersymbol(drivername2)
drivername2:
db 53 65 62 61 73 74 69 61 6E 20 56 45 54 54 45 4C
This will only work if there is only 1 other instance of the driver's name. You could do 1 aob for each instance of the driver's name though as long as the aob has a different label (drivername2) for each.

Re: Saving values with cheat engine possible?

Posted: Mon Jan 04, 2021 6:26 pm
by Alex088
Mmh ok not sure this will work then.
What is an aob and how do I do a aob search?

Will not make it easier saying that I already got the address for the second set of names which it was the one used by the game when I found it the first time?

If I enter that address and the driver name will cheat engine not be able to find the closest address to the one I entered with the same driver name?

At the end I have noticed that the game only changes the last 2 or 3 digits of the second set of names

Re: Saving values with cheat engine possible?

Posted: Mon Jan 04, 2021 7:08 pm
by sbryzl
aob is array of bytes. 53 65 62 61 73 74 69 61 6E 20 56 45 54 54 45 4C is the array of bytes that should match the driver's name you want to change. You search for an aob in cheat engine's auto-assembler by using 1 of the various types of aob scans such as aobscan(drivername2,53 65 62 61 73 74 69 61 6E 20 56 45 54 54 45 4C).