View previous topic :: View next topic |
Author |
Message |
codeinfection How do I cheat? Reputation: 0
Joined: 01 Jul 2012 Posts: 2
|
Posted: Sun Jul 01, 2012 9:40 pm Post subject: Cheat Engine codes fail when emulator is restarted |
|
|
Okay so first off, I'm sure we're all familiar with codes in games where the address for the cheat changes each time you [load the game/enter the level/exit menus/etc] right?
When I use Cheat Engine with emulators to find codes it usually works, but when i close the emulator and open it again with the same game the addresses change like they sometimes do anyway except with the entire ROM instead of just a few codes.
I tried finding pointers for the emulator codes, but all i get is the address of the code is the address of the pointer o.O;;
Is there some special way of determining pointers that locate where the emulator is storing the ROM or ISO game's memory block? Maybe if I had that pointer I could simply offset...
Another idea I have for keeping these codes constant is to find the address within the emulator's built-in cheat finder which is equivalent to the address in Cheat Engine, and then use the emulator's cheat system for using codes I've already found.
Essentially what I'm asking about is whether there is a way to:
a) Find the pointer of an emulator which points to the memory block for the ROM being emulated so i can offset my cheats from the pointer's address.
b) Take my Cheat Engine codes and make them able to work in the emulator's built-in cheat system.
I've looked all over and missed alot of sleep trying to find a solution, so i really hope someone has a solution for this
Preferably option A, but I can settle for option B if option A isn't possible(note, the emulators don't all have cheat finding capability.)
|
|
Back to top |
|
|
Aecial Cheater Reputation: 2
Joined: 27 Jun 2012 Posts: 44
|
Posted: Mon Jul 02, 2012 12:24 am Post subject: |
|
|
Pointers tend to not work very well in emulated memory or in browser memory.
The best luck you'll have is to right click the address > pointer scan and set a larger offset value (like 4096 instead of 2048) and set the max level higher (7-8 perhaps rather than 5).
Keep the pointer scan menu open and reload the game and attach CE to it.
Then you have to find the address a second time and do a rescan memory (option on the pointer scan you left open) and make it search for the new address.
The key to this is to make sure the offset values and levels are high
|
|
Back to top |
|
|
truefalse Newbie cheater Reputation: 0
Joined: 26 Jun 2012 Posts: 15
|
Posted: Mon Jul 02, 2012 4:53 am Post subject: |
|
|
Did you finish Step 9 in the tutorial? if yes, just do the same
(asuming you arnt using base addresses..)
|
|
Back to top |
|
|
codeinfection How do I cheat? Reputation: 0
Joined: 01 Jul 2012 Posts: 2
|
Posted: Mon Jul 02, 2012 2:22 pm Post subject: Solution to emulated memory changes |
|
|
Aecial wrote: | Pointers tend to not work very well in emulated memory or in browser memory.
The best luck you'll have is to right click the address > pointer scan and set a larger offset value (like 4096 instead of 2048) and set the max level higher (7-8 perhaps rather than 5).
Keep the pointer scan menu open and reload the game and attach CE to it.
Then you have to find the address a second time and do a rescan memory (option on the pointer scan you left open) and make it search for the new address.
The key to this is to make sure the offset values and levels are high |
Hmm.. well this didn't work for me but thx for the suggestion
I did find my solution though.
Note that the values and game ID in here are random numbers, just for the example.
First, use the game ID and run a CE search for that string value(for the Dolphin emulator this address is always at the beginning of the code block, but something can probably be improvised for other emulators)
there will be a couple or a single address that has a bunch of zeros at the end which stores the string value for the game ID. Let's say the address comes up as "0x05150000" and our game ID was "GHNO02".
Next, find your code's offset from this address. example:
Game ID: 0x05150000 = GHNO02
Code address: 0x06300000
Offset: 0x06300000 - 0x05150000; offset = 0x1150000
Then pointer scan for your code block's base address(in this case, 0x05150000). This will give you the emulator's pointer to the block of memory it uses to emulate the game.
Finally what you do is copy the address of the pointer scan result and create your own pointer, with the offset you found earlier(being 0x1150000).
Hope this helps someone else
...and I hope you can understand my instructions...
hehe.. I'm gonna have fun now that I figured out how to point to emulated memory accurately >
|
|
Back to top |
|
|
Drivium Advanced Cheater Reputation: 0
Joined: 16 Apr 2013 Posts: 97
|
Posted: Mon Mar 26, 2018 3:31 pm Post subject: |
|
|
Have you found this technique to work for every emulator you've tried? I tried to implement the technique you described for CEMU, but I didn't have any luck. I was able to find the game title as a string, but, for example, the health value in Breath of the Wild doesn't remain at the same offset with each reload. Have your technique using CEMU by any chance?
thx
|
|
Back to top |
|
|
|