 |
Cheat Engine The Official Site of Cheat Engine
|
View previous topic :: View next topic |
Author |
Message |
sandsmaster Newbie cheater
Reputation: 1
Joined: 21 Jan 2021 Posts: 24
|
Posted: Sun May 16, 2021 6:49 am Post subject: Breakpoint changes code output |
|
|
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 .
Cheers!
Description: |
|
Filesize: |
161.03 KB |
Viewed: |
2868 Time(s) |

|
_________________
I don't post too much. yet. |
|
Back to top |
|
 |
Dark Byte Site Admin
Reputation: 467
Joined: 09 May 2003 Posts: 25700 Location: The netherlands
|
Posted: Sun May 16, 2021 8:13 am Post subject: |
|
|
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 |
|
 |
ParkourPenguin I post too much
Reputation: 150
Joined: 06 Jul 2014 Posts: 4641
|
Posted: Sun May 16, 2021 11:21 am Post subject: |
|
|
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 |
|
 |
sandsmaster Newbie cheater
Reputation: 1
Joined: 21 Jan 2021 Posts: 24
|
Posted: Sun May 16, 2021 2:32 pm Post subject: |
|
|
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 |
|
 |
|
|
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
|
|