Cheat Engine Issues w/ PPSSPP 1.3 - Printable Version

+- (
+-- Forum: PPSSPP - Playstation Portable Simulator Suitable for Playing Portably (/forumdisplay.php?fid=1)
+--- Forum: Development (/forumdisplay.php?fid=3)
+--- Thread: Cheat Engine Issues w/ PPSSPP 1.3 (/showthread.php?tid=22668)

Cheat Engine Issues w/ PPSSPP 1.3 - Devdraco - 03-03-2017 12:06 AM

I don't believe I've ever experienced this issue before. Unless the way values work in memory have been changed, I can't see any other way that I could be running into this problem.
Using Cheat Engine (those forums are down right now, DDoS trolls) upon searching for and obtaining the values in question running PPSSPP, nothing has apparently gone wrong at this point. It is when the values are altered, even by a single digit, that the value is then lost to memory and if tried again using a second result, PPSSPP crashes.
Is there something I'm doing wrong here? Someone point this out for me, I'm hoping there's a solution--perhaps a setting I'm overlooking.

RE: Cheat Engine Issues w/ PPSSPP 1.3 - LunaMoo - 03-03-2017 05:35 AM

Basically what happens is you're most likely editing memory mirrors, not psp memory itself which unless you activate MEM_MAPPED in CE scan settings you'll not even be able to find.
Also even when you change your settings and find something, you should never freeze any values using Cheat Engine in PSP memory, that will also cause troubles.

When you want to freeze a value, just use cwcheat. My cheat table(link in signature) can make it much easier. It also provides real address which is useful when trying to create better cheats using PPSSPP disassembly(extremely useful assuming you know MIPS). Cheat Engine built-in disassembler just like most it's advanced features is useless in emulators due to different architecture and you can only make basic cheats without those.

RE: Cheat Engine Issues w/ PPSSPP 1.3 - Devdraco - 03-03-2017 06:20 AM

If they're just mirrors, how is it that the game can be crashed by altering them? Further, how is it possible to find the "true" memory? I've no interest in freezing the values.

RE: Cheat Engine Issues w/ PPSSPP 1.3 - LunaMoo - 03-03-2017 07:12 AM

I wrote it above already, so to elaborate - you have to activate MEM_MAPPED in CE scan settings to see actual PSP memory inside PPSSPP. CE has it disabled by default since it's not as fast and not usually used in PC games which the tool was made for.

Those memory mirrors are used for some emulation tricks that make PPSSPP as fast as it is;p, if you mess with them you don't change anything in-game, but you will mess up emulator work leading to a crash, so just don't. And again, if you find it problematic - my cheat table has scripts to find PSP memory and limit scan range to it making it both faster and safer.

RE: Cheat Engine Issues w/ PPSSPP 1.3 - Kabuto_Kun - 03-03-2017 07:34 AM

I downloaded the latest PPSSPP x86 version from GIT as of now and Cheat engine v6.4 is working perfectly. Maybe you are using a newer CE version that introduced a bug ? Huh

Follow the advices posted by LunaMoo and try that automatic method.
If you want to try an alternative method (manual), then follow my tutorial from here.

I really prefer to use Cheat engine over other cheat programs most of the time, but there is one annoying problem with it: you can't use the freeze value feature with PPSSPP (and other emulators?) because it will destroy the memory region around it and crash the whole emulator, not just the emulated game. This is probably a bug that should be reported to Cheat Engine devs I guess.

In those cases when I need to freeze values in games, I use the alternative ArtMoney (the free version is enough) which has a working freeze value feature.

Also, remember to disable Fast Memory in PPSSPP to avoid crashes while randomly changing values, you'll see this and other recomendations on my tutorial from above.

RE: Cheat Engine Issues w/ PPSSPP 1.3 - Devdraco - 03-03-2017 08:04 AM

Though both of your posts have shed some light on the subject, I'm still quite stumped. To clear up some confusion, I was using the latest versions of both PPSSPP and Cheat Engine, and I downgraded both and mixed and matched either to no avail. Their versions are not the issue. At the beginning of this debacle, I was already using MEM_MAPPED as I know full well that the particular option needs to be ticked in order to work with PPSSPP. Again--to no avail.
LunaMoo your table seems useful, limiting the addresses scanned will certainly optimize the process. I will post again at a later date with updates.

RE: Cheat Engine Issues w/ PPSSPP 1.3 - LunaMoo - 03-03-2017 09:40 AM

In my cheat table note there are few scripts made for different 64 bit versions of ppsspp, ie the last script that mentions ~v1.3-400+ still works in current latest(v1.3-767-g4736330) from buildbot, for 1.3 version of PPSSPP you would want to use the older script.

When script activates, easy way to confirm it found PSP game memory is to look at "PSP memory in CE" value, if it shows 0, it's most likely found correct address, to further confirm it you can ctrl+B while it's selected(to browse memory) and scroll down to +0x4000, range between should be empty, followed by some data(game code to be exact). It would look like that:
[Image: kzLtBT5.png]

That's because the script points to the start of user memory, however PSP game executable is loaded at +0x4000 from there. When making cwcheats that modify game code that empty range is commonly used as code cave for longer scripts, so with cwcheats activated it might not be completely empty.

If you're now sure that you're looking through PSP memory, maybe you just have problems finding the variable you want to change, it's not always same as printed on the screen, quite often games will store on screen/display value differently than actual data it's representing.

What's the game you're looking through and what you're trying to find anyway? It could be just one of the tightly packed ones that move stuff around very often, good to remember PSP had only 24 mb of ram for standard commercial games and some of them try very hard to fit it.