Page 1 of 1

Trainer Works When In CT Form But Not Standalone EXE

Posted: Thu Dec 17, 2020 3:02 pm
by Reclaimer Shawn
So, I've tried this on Cheat Engine 6.5.1, Cheat Engine 7.0, and Cheat Engine 7.2, all with the same result. Whenever I open the Cheat Table I use to make the trainer (includes LUA Script, Trainer Form, and Cheat Table tool derives modifies some values from) the trainer works on the game. However, whenever I compile the Cheat Trainer in the form of a standalone exe, it does nothing. The trainer is set to Gigantic, Max Compression Ratio, and Hook 64-Bit process (tried Hook 32-Bit process after 64-bit didn't work, but program still failed. Still the process I'm actually trying to hook is 64-bit, so I was just changing random options at that point to try to force the tool to work).

I'm using Dolphin Emulator to play and modify the game. MEM_MAPPED is checked as well. When compiling the trainer, because it wasn't working normally, I even tried checking all features in order to see if that was the issue and the trainer still didn't work. Could someone here find out why the trainer isn't working properly?

I'm trying to update a tool I made with these versions of Cheat Engine before. The only thing I changed was using an AOB Script to find addresses when I used to use static addresses (as different versions of Dolphin have the addresses as dynamic). I was trying to make the tool work with every version of Dolphin. Thanks for reading, and hopefully, we can get this figured out.

Cheat Table (.CT File) is attached.

If you somehow get the tool to work, please tell me how you did it. I was planning on updating a tool for the sequel of this game as well and the code is basically the same except for just the addresses.

Re: Trainer Works When In CT Form But Not Standalone EXE

Posted: Fri Dec 18, 2020 3:36 pm
by mgr.inz.Player
Similar topic from CEF:
[Link]

use this Lua script:

Code: Select all

function set_MEM_MAPPED()
  local s = getSettings()
  local oldValue = s.Value['MEM_MAPPED']
  s.Value['MEM_MAPPED'] = 1
  reloadSettingsFromRegistry()
  s.Value['MEM_MAPPED'] = oldValue
  s.destroy()
end

set_MEM_MAPPED()

Re: Trainer Works When In CT Form But Not Standalone EXE

Posted: Fri Dec 18, 2020 11:31 pm
by Reclaimer Shawn
Yep, that fixed it. I'd actually seen that forum once before, but I was afraid that considering it was from 2017, the syntax behind enabling MEM_MAPPED might have changed. Guess it hasn't. Thank you so much for the help.

Re: Trainer Works When In CT Form But Not Standalone EXE

Posted: Sat Dec 19, 2020 12:06 pm
by mgr.inz.Player
If you do not want to mess with windows registry, you can change Cheat Engine's memory. You can find addresses the similar way I did for CE6.6 - attach CE to itself, open "referenced strings" window. This time, search for first reference of string "Can Step Kernelcode" and look at the code above. There will be three "mov [something],al".

For 32bit CE7.2:

Code: Select all

mov [00A21040],al    // MEM_PRIVATE
...
mov [00A21050],al    // MEM_IMAGE
...
mov [00A21060],al    // MEM_MAPPED
you can turn on Scan_MEM_MAPPED with "writeBytesLocal('00A21060',1)"




64bit CE7.2:

Code: Select all

mov [00B1A740],al    // MEM_PRIVATE
...
mov [00B1A750],al    // MEM_IMAGE
...
mov [00B1A760],al    // MEM_MAPPED



SSE4-AVX2 CE7.2:

Code: Select all

mov [00B19740],al    // MEM_PRIVATE
...
mov [00B19750],al    // MEM_IMAGE
...
mov [00B19760],al    // MEM_MAPPED