My romhacks, fixes and workarounds for PPSSPP games and apps.
- LunaMoo/PPSSPP_workarounds – Inspiration.
- TAbdiukov/PPSSPP-patches – My romhacks, fixes and workarounds for PPSSPP games and apps.
- TAbdiukov/Ikejime – Various patches for Windows OS and apps.
Extremely useful (though contradictory)
Additional resources
(not something readily achievable with CWCheat functionality)
- Sims 2 The – Teleport anywhere
- TDU – repack game to improve graphics and performance (complementary to the CWCheat patches)
- TDU – (other) interesting parameters (if you feel adventurous)
- TDU – Teleport anywhere, including secret islands (or "assembly for beginners")
Below is correct syntax,
_L 0x6AAAAAAA 0xVVVVVVVV
_L 0x000Y0001 0xIIIIIIII
AAAAAAA = pointer location
IIIIIIII = pointer offset (subtract this value to the address to get effective address)
VVVVVVVV = value to write
Y = 3 for byte write, 4 for halfword and 5 for word)
Must one clear the (fake) offset register after use — No.
Taken from Fired Up (the game),
_C0 Infinite ammo [Enable]
_L 0xE00200A0 0x000BDFE4 // check, 1/2
_L 0xE001AE05 0x000BDFE6 // check, 2/2
_L 0x200BDFE4 0x00000000 // nop
//
_C0 Infinite ammo [Disable]
_L 0xE0020000 0x000BDFE4 // check, 1/2
_L 0xE0010000 0x000BDFE6 // check, 2/2
_L 0x200BDFE4 0xAE0500A0 // orig
//
// 088BDFE4:AE0500A0 // orig
// 088BDFE4:00000000 // mod
//
For PSP game pointers safety checks, there is a CWCheat lifehack discovered/invented in 2024. Since,
- PSP main RAM addressing starts from
0x08000000
. - PSP uses MIPS Little-Endian addressing.
Reference for both points. It is possible to check pointer validity (with very high probability) by,
- Adding
+0x02
to the pointer address, to position to pointer head (in Little-Endian scenario). - Checking if pointer head (halfword value) is greater than
0x07FF
, i.e.,0x0800xxxx
or greater.
Example,
_C1 Vehicle - Max HP
_L 0xD16A6B66 0x003007FF // check, vehicle ptr head (LE)
_L 0x616A6B64 0x000000FF // set byte to 0xFF.
_L 0x00000001 0x000003E1 // vehicle hp (993)
- CWCheat does not obey the traditional virtual memory mapping scheme, so to convert from the traditional address to the CWCheat one, subtract
0x08800000
HEX from it. Or use the following tool,
python3 helpy.py
In more modern PPSSPP builds (for example, PPSSPP 1.13.2) it was observed that some patches are being applied automatically, thus increasing playability, performance, and experience for general players. For example,
- Test Drive Unlimited [US] – remove GBA-like pixelization.
If you observe that the patch was already applied, then there is no need to apply it again. Just enjoy it.