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 


Breakpoint changes code output

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
sandsmaster
Newbie cheater
Reputation: 1

Joined: 21 Jan 2021
Posts: 24

PostPosted: Sun May 16, 2021 6:49 am    Post subject: Breakpoint changes code output Reply with quote

Hi everyone again.

This time I'm trying to cheat in overcooked 2. The cheat is simple: When I serve a dish, I have to wait for 10 sec to get the dirty
plate back, in a sink.
I'm trying to set the timer to 0, so I can get the clean plates instantly. I haven't really read about FPU stack much, so I don't know anything about ST(n), but I think this is an odd situation, so I though I'd share.

You can see the code in the attachment.

So I placed 2 BRs (breakpoints). The first BR is right before the normal sub of the timer. The second one is right after that. The ST(0) stores the timer value when game gets to BR 2.

The weird thing is, that if I place a BR on the marked instruction, the timer totally negates and after I run the game as normal, I get the plate instantly ( the breakpoints stay ).
placing a breakpoint on the fxch has the opposite effect - infinite timer.

So if you have any idea, I'd be happy to hear it. Or, if you know good FPU stack tuts, I'll be glad see them too.
Thanks beforehand.

Note: Thank you ParkourPenguin, beforehand Very Happy.
Cheers!



image_2021-05-16_153712.png
 Description:
 Filesize:  161.03 KB
 Viewed:  2865 Time(s)

image_2021-05-16_153712.png



_________________
I don't post too much. yet.
Back to top
View user's profile Send private message Send e-mail
Dark Byte
Site Admin
Reputation: 467

Joined: 09 May 2003
Posts: 25700
Location: The netherlands

PostPosted: Sun May 16, 2021 8:13 am    Post subject: Reply with quote

Are you using VEH debug?
If so, use the 32-bit CE
The 64-bit ce will set the fpu values to 0 when the target is 32 bit

_________________
Do not ask me about online cheats. I don't know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
ParkourPenguin
I post too much
Reputation: 150

Joined: 06 Jul 2014
Posts: 4641

PostPosted: Sun May 16, 2021 11:21 am    Post subject: Reply with quote

x87 is a collection of instructions that operate on floating point numbers. These instructions use the FPU stack to operate on data.
Stack:
https://computersciencewiki.org/index.php/Stack
https://en.wikipedia.org/wiki/Stack_%28abstract_data_type%29

st(i) refers to the value at index i from the top of the stack. This means st(0) is the value at the top of the stack, st(1) is the next value, etc.
Code:
// Say the stack already has a value on it:  (top) 2.0 (end)

fld    qword ptr[ebp-18]  // push a double (qword) on the fpu stack: (top) 3.0 2.0 (end)
fxch   st(1)              // exchange top of stack with the next: (top) 2.0 3.0 (end)
fsubp  st(1),st(0)        // subtract st(0) from st(i), store in st(i), and pop: (top) 1.0 (end)
fstp   dword ptr[eax+10]  // store st(0) as a float (dword) and pop: (top) (end)

Look at an x86 instruction set reference for more information about each instruction.
https://www.felixcloutier.com/x86/

_________________
I don't know where I'm going, but I'll figure it out when I get there.
Back to top
View user's profile Send private message
sandsmaster
Newbie cheater
Reputation: 1

Joined: 21 Jan 2021
Posts: 24

PostPosted: Sun May 16, 2021 2:32 pm    Post subject: Reply with quote

Yes, I'm using the VEH debugger.

I tried it with the 32-bit CE and it seems it works. And on top of that, that seems to solve my cheat
for instant plates, so that's great. 2 rabbits with one shot.

Thanks a lot Dark Byte.

And thank you, ParkourPenguin for the tuts and reference.
These are really good explanations for the topic. Not to kiss your butt, but u
really help a lot with these. If you have a Patreon, I'd be happy to give you back, in there.
Note: I'm a Patreon for cheat engine already tho.

Cheers and thanks again!

_________________
I don't post too much. yet.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine All times are GMT - 6 Hours
Page 1 of 1

 
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