The following warnings occurred:
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 795 - File: showthread.php PHP 7.4.33 (Linux)
File Line Function
/showthread.php 795 errorHandler->error





Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Tutorial: Using Cheat Engine to create CWCheat codes for PPSSPP
08-29-2014, 06:46 AM (This post was last modified: 08-29-2014 06:50 AM by pal1000.)
Post: #1
Tutorial: Using Cheat Engine to create CWCheat codes for PPSSPP
After reading all the forum threads from here and the 2 issues directly addressing this topic on Github I decided to write this tutorial because I noticed most users of PPSSPP community are having a hard time making use of Cheat Engine in finding cheat codes for PPSSPP. A method has been discovered that involves enabling memory mapped scan in Cheat Engine (Edit - Settings - Scan Settings - MEM_MAPPED), however this old school method has the limitation of finding memory addresses that are allocated for only 1 game play session; once you quit, the addresses vanish and they are not allocated next time with the same role. The memory characterized by this phenomenon is called dynamic memory and since PPSSPP dev team doesn't have plans for static memory, the resulted addresses from cheat searches are difficult to convert to a persistent form (it's difficult to extract in-game memory addresses which don't change from them).

However, both PPSSPP and cheat engine have 1 feature each that helps avoiding this problem.
-Memory Viewer with memory dump in PPSSPP;
-search of Memory dumps in Cheat Engine.
The method I use and which was accepted as best solution for issue #3551 is comprised of the following steps:
I. Finding game's memory address storing the information we want to change
1 (optional) - pause emulation in PPSSPP. Click / tap Emulation - Pause from menu or press F8 or ESC. Do this step only if you need to freeze memory during scan;
2 - In PPSSPP menu navigate to Debug - Memory View or simply press CTRL+M;
3 - Right click on first memory address and click on Dump...
4 - Make sure that in the Dump Memory window you have the location set to RAM. You can customize the output filename if you want, but for the purpose of this guide I'll go with the default RAM.dump;
5 - Open cheat engine and in its menu navigate to File - Open File and then browse to PPSSPP installation folder where the RAM.dump file is located. Open it;
6 - Do your search as usual.

The only difference is that Cheat Engine will scan in that memory dump and not in PPSSPPWindows(64).exe process. Scanning like this will give you in-game addresses as results which is exactly what we need.
If you need to do subsequent searches you have to repeat steps 1 to 4 and step 6 in this exact order. Step 1 being optional, it can be skipped in subsequent searches as well, if not needed, eg. the value you are looking for doesn't change if you don't make any action in-game. Step 5 doesn't need to be repeated because Cheat Engine is capable of detecting changes to opened memory dumps in it, originating from external sources on the fly. You can do step 5 repeatedly as well, but it's superfluous.

II. Writing CWCheat code(s) for the discovered memory address(es)
I assume that you found the memory address you are looking for. Because this method provides us with the in-game memory address, now all that's left is to write the CWcheat code for it. Yes, no more offset calculation and other stuff like this.

A CWCheat code looks like this:

_C0 Edward tale - Edward Quick EVO
_L 0x203F7C64 0x00FFFFFF

This code for example allows Edward to reach level cap in Final Fantasy IV: The After Years in Edward's Tale. C0 indicates that this code is disabled, it modifies a 4 bytes memory zone (it begins with 0x20) starting at address 003F7C64 in PSP user memory and it constantly writes 16777215 (0x00FFFFFF) in that memory zone.

The cheat codes need to be written in a file located in ppsspp\memstick\PSP\Cheats which is named by the Game ID. The game ID is displayed in PPSSPP window title while the game is running. If this file doesn't exists it means the cheats haven't been enabled for the game yet. So, in PPSSPP navigate in the menu to Game Settings - Enable Cheats or CTRL+T. This should spawn the missing file.
Edit that file by entering the cwcheat code for your address. Use the above example as model if you are a beginner. You can also edit the cheat file after enabling cheats by pausing game with ESC,then clicking Cheats - Edit cheat file, but be warned, this latter method although it's easier it is also buggy, you have to make sure you click Back in PPSSPP before saving the cheat file in Notepad otherwise all the changes will be lost (Issue #6356).
The whole CWCheat syntax documentation for any possible type of code is available here.

Bellow it's a video on which I apply this method to have Harley reach level cap.


Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
Tutorial: Using Cheat Engine to create CWCheat codes for PPSSPP - pal1000 - 08-29-2014 06:46 AM

Forum Jump: