 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Author |
Message |
ner0 Cheater
Reputation: 0
Joined: 10 Dec 2011 Posts: 32
|
Posted: Wed Jan 25, 2017 9:22 am Post subject: Cheat Engine with nullDC emulator fails |
|
|
There seems to exist this long standing issue of using Cheat Engine with a Dreamcast emulator called nullDC. Using Cheat Engine with other known emulators of the same platform, like Demul, works perfectly out of the box. Yet using a decade old basic cheat engine (nullDC Cheater) works just fine with nullDC emulator...
My question is why doesn't Cheat Engine play nice with nullDC or vice-versa?
Afaik, there is currently only one cheat engine, more primitive than CE, which is capable of scanning and writing correctly the nullDC emulator's memory. That cheat engine is called "nullDC Cheater", already repacked from the days of an older emulator called Chankast with which it also worked fine.
Anyway, Cheat Engine is one of the most advanced of it's kind so certainly that it is possible to have it work with nullDC. The question is, how?
For example, scanning nullDC with Cheat Engine will find matching results with two addresses for the same value, one of those addresses isn't in the range that you would expect, while the other is exactly the address to expect. What happens then with Cheat Engine is that if you change the value it will work as expected but then that value will be reallocated to a different address.
Here are 3 practical examples:
1. Using Cheat Engine on nullDC to find the value 43A00000, gives two matching addresses:
0x1C251EF8 <- unknown address/range
0x02231EF8 <- expected address/range
Now, if I change the value of the first one then the emulator will crash.
If I change the value of the second address the change will be successful but then the address won't hold it anymore and I'll have to search again for the new address.
2. Using nullDC Cheater on nullDC to find the value 43A00000, gives one matching addresses:
0x02231EF8 <- expected address/range
If I change the value of this address the change will be successful and the address will still be valid for further changes to the same propriety.
3. Using Cheat Engine on Demul to find the value 43A00000, gives one matching address:
0x2C231EF8 <- expected address/range
Note the different prefix, 2C instead of 02, but everything works fine, changing values is not an issue at all, the change will be successful and the address will still be valid for further changes to the same propriety.
So far the only thing I've tried was to enabled MEM_MAPPED in the memory regions to scan but unfortunately it didn't help.
NOTE: This is not the same thing as dynamic addresses that change with every game boot. In fact the addresses are static.
Does someone have an idea why a decade old piece of software works nicely with nullDC emulator yet Cheat Engine does not (not out of the box at least)?
Any ideas on how to make Cheat Engine work with nullDC?
Much appreciated, thank you!
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25814 Location: The netherlands
|
Posted: Wed Jan 25, 2017 9:38 am Post subject: |
|
|
assuming you're on 6.6
execute this lua script before targeting the process:
| Code: |
dbk_initialize()
dbk_useKernelmodeOpenProcess()
dbk_useKernelmodeProcessMemoryAccess()
dbk_writesIgnoreWriteProtection(true)
|
are you on windows 10 by any chance ?
_________________
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 |
|
 |
ner0 Cheater
Reputation: 0
Joined: 10 Dec 2011 Posts: 32
|
Posted: Wed Jan 25, 2017 9:56 am Post subject: |
|
|
| Dark Byte wrote: | assuming you're on 6.6
execute this lua script before targeting the process:
| Code: |
dbk_initialize()
dbk_useKernelmodeOpenProcess()
dbk_useKernelmodeProcessMemoryAccess()
dbk_writesIgnoreWriteProtection(true)
|
are you on windows 10 by any chance ? |
I assume that you mentioning Windows 10 is not a good thing... and yes, I am (x64). Also using latest CE (6.6).
Anyway, I tried what you suggested and it worked in that after changing the values the address' value didn't vanish, nor did it crash the emulator. But Cheat Engine became more unstable and crashed a few times or didn't complete the scan one time or another forcing me to terminate the process. Apart from that, there's also an issue with nullDC where if I open Cheat Engine after the emulator is already opened then the emu will freeze - have to always open CE before the emu for some unknown reason.
Would you say that the key to this is to use Kernel mode to find the addresses and then also initialize kernel mode in a potential trainer?
Thanks!
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25814 Location: The netherlands
|
Posted: Wed Jan 25, 2017 10:37 am Post subject: |
|
|
windows 10 has this issue where if you change the protection of a mapped page it gets destroyed, which is why dbk_writesIgnoreWriteProtection(true) is needed so it won't change the protection
try without dbk_useKernelmodeProcessMemoryAccess() or only call dbk_useKernelmodeProcessMemoryAccess() when you wish to write.
also, you an run two ce's next to eachother. one scqns, the other writes.
trainers can also use kernelmode, but remember to add the kernel files to the package
_________________
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 |
|
 |
ner0 Cheater
Reputation: 0
Joined: 10 Dec 2011 Posts: 32
|
Posted: Wed Jan 25, 2017 12:09 pm Post subject: |
|
|
| ner0 wrote: | | Apart from that, there's also an issue with nullDC where if I open Cheat Engine after the emulator is already opened then the emu will freeze - have to always open CE before the emu for some unknown reason. |
Turns out these are completely unrelated, as soon as Windows UAC overlay comes up it freezes the emulator, no matter what application is opened.
But it is pretty unstable, the trainer freezes a lot during usage.
I'll do more testing and report back. Thanks again!
|
|
| 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
|
|