PSP Code types

These code types are supported by the main cheat engine (the one mainly used for PSP games, although there is a version of it for pops games).

These code types were developed starting from the ps2 reference from codemasters Project (and this page is based on that page) and then evolved with some new code types requested by code makers.

Here you will find a list of them including a short description.

Constant Write Commands

Code type Format Description
8-bit Constant
Write
0x0aaaaaaa 0x000000ddThis command will constantly write the value specified by dd to the address specified by aaaaaaa
16-bit Constant
Write
0x1aaaaaaa 0x0000ddddThis command will constantly write the value specified by dddd to the address specified by aaaaaaa
32-bit Constant
Write
0x2aaaaaaa 0xddddddddThis command will constantly write the value specified by dddddddd to the address specified by aaaaaaa

Increment/Decrement Commands

Code type Format Description
8-bit Increment0x301000nn 0xaaaaaaaa This command adds the value specified by nn to the value stored at the address aaaaaaaa
8-bit Decrement0x302000nn 0xaaaaaaaa This command subtracts the value specified by nn to the value stored at the address aaaaaaaa
16-bit Increment0x3030nnnn 0xaaaaaaaa This command adds the value specified by nnnn to the value stored at the address aaaaaaaa
16-bit Decrement0x3040nnnn 0xaaaaaaaaThis command subtracts the value specified by nnnn to the value stored at the address aaaaaaaa
32-bit Increment0×30500000 0xaaaaaaaa
0xnnnnnnnn 0×00000000
This command adds the value specified by nnnnnnnn to the value stored at the address aaaaaaaa
32-bit Decrement0×30600000 0xaaaaaaaa
0xnnnnnnnn 0×00000000
This command subtracts the value specified by nnnnnnnn to the value stored at the address aaaaaaaa

Test Commands

Code type Format Description
16-bit Equal0xDaaaaaaa 0x0000ddddOnly when the value at the address specified by aaaaaaa
is equal to the value specified by dddd will the next line of code be executed
16-bit Not Equal0xDaaaaaaa 0x0010ddddOnly when the value at the address specified by aaaaaaa
is not equal to the value specified by dddd will the next line of code be executed
16-bit Less Than0xDaaaaaaa 0x0020ddddOnly when the value at the address specified by aaaaaaa
is less than the value specified by dddd will the next line of code be executed
16-bit Greater Than0xDaaaaaaa 0x0030ddddOnly when the value at the address specified by aaaaaaa
is greater than the value specified by dddd will the next line of code be executed
8-bit Equal0xDaaaaaaa 0x200000ddOnly when the value at the address specified by aaaaaaa
is equal to the value specified by dd will the next line of code be executed
8-bit Not Equal0xDaaaaaaa 0x201000ddOnly when the value at the address specified by aaaaaaa
is not equal to the value specified by dd will the next line of code be executed
8-bit Less Than0xDaaaaaaa 0x202000ddOnly when the value at the address specified by aaaaaaa
is less than the value specified by dd will the next line of code be executed
8-bit Greater Than0xDaaaaaaa 0x203000ddOnly when the value at the address specified by aaaaaaa
is greater than the value specified by dd will the next line of code be executed
16-bit Equal:
Multiple Skip
0xEnnndddd 0x0aaaaaaaOnly when the value at the address specified by aaaaaaa
is equal to the value specified by dddd will the next nnn lines of code be executed.
Otherwise, they will be skipped
16-bit Not Equal:
Multiple Skip
0xEnnndddd 0x1aaaaaaaOnly when the value at the address specified by aaaaaaa
is not equal to the value specified by dddd will the next nnn lines of code be executed.
Otherwise, they will be skipped
16-bit Less Than:
Multiple Skip
0xEnnndddd 0x2aaaaaaaOnly when the value at the address specified by aaaaaaa
is less than the value specified by dddd will the next nnn lines of code be executed.
Otherwise, they will be skipped
16-bit Greater Than:
Multiple Skip
0xEnnndddd 0x3aaaaaaaOnly when the value at the address specified by aaaaaaa
is greater than the value specified by dddd will the next nnn lines of code be executed.
Otherwise, they will be skipped
8-bit Equal:
Multiple Skip
0xE1nndddd 0x0aaaaaaaOnly when the value at the address specified by aaaaaaa
is equal to the value specified by dddd will the next nn lines of code be executed.
Otherwise, they will be skipped
8-bit Not Equal:
Multiple Skip
0xE1nndddd 0x1aaaaaaaOnly when the value at the address specified by aaaaaaa
is not equal to the value specified by dddd will the next nn lines of code be executed.
Otherwise, they will be skipped
8-bit Less Than:
Multiple Skip
0xE1nndddd 0x2aaaaaaaOnly when the value at the address specified by aaaaaaa
is less than the value specified by dddd will the next nn lines of code be executed.
Otherwise, they will be skipped
8-bit Greater Than:
Multiple Skip
0xE1nndddd 0x3aaaaaaaOnly when the value at the address specified by aaaaaaa
is greater than the value specified by dddd will the next nn lines of code be executed.
Otherwise, they will be skipped
Adress Equal0xDaaaaaaa 0x4bbbbbbb
0xnnnnnnnn 0x0000000Y
Only when the value at the address specified by aaaaaaa
is equal to the value at the adress specified by bbbbbbb
will the next nnnnnnnn line of code be executed.
The way to access the adresses is determined by Y: 0 = 8bit, 1 = 16bit, 2 = 32bit
Adress Not Equal0xDaaaaaaa 0x5bbbbbbb
0xnnnnnnnn 0x0000000Y
Only when the value at the address specified by aaaaaaa
is not equal to the value at the adress specified by bbbbbbb
will the next nnnnnnnn line of code be executed.
The way to access the adresses is determined by Y: 0 = 8bit, 1 = 16bit, 2 = 32bit
Adress Less Than0xDaaaaaaa 0x5bbbbbbb
0xnnnnnnnn 0x0000000Y
Only when the value at the address specified by aaaaaaa
is less than the value at the adress specified by bbbbbbb
will the next nnnnnnnn line of code be executed.
The way to access the adresses is determined by Y: 0 = 8bit, 1 = 16bit, 2 = 32bit
Adress Greather Than0xDaaaaaaa 0x5bbbbbbb
0xnnnnnnnn 0x0000000Y
Only when the value at the address specified by aaaaaaa
is Greather than the value at the adress specified by bbbbbbb
will the next nnnnnnnn line of code be executed.
The way to access the adresses is determined by Y: 0 = 8bit, 1 = 16bit, 2 = 32bit

Boolean Commands

Code type Format Description
8-bit OR0x7aaaaaaa 0x000000vvaaaaaaa = address (25 bit)
8-bit AND0x7aaaaaaa 0x000200vvvv = value (8/16 bit)
8-bit XOR0x7aaaaaaa 0x000400vvPerforms a bitwise logical operation between given value, vv, and the value stored at
16-bit OR0x7aaaaaaa 0x0001vvvvgiven address, aaaaaaa. Example:
16-bit AND0x7aaaaaaa 0x0003vvvv0x7048D402 0x005014A9
16-bit XOR0x7aaaaaaa 0x0005vvvv0x14A9 is XORed to the 16-bit value at address (user ram)+0x0048D402

Pointer Commands

Code type Format Description
8-bit write0x6aaaaaaa 0x000000vv
0x0000nnnn 0xiiiiiiii
aaaaaaa = address to load 32-bit base from (25 bit)
vv = value to store at base + offset (8/16/32 bit)
qqq = offset to add to load the base(*4)
nnnn = number of times to point (16 bit) (must be 1 for normal pointer codes)
iiiiiiii = 32-bit offset to add to base (n = 1)
16-bit write0x6aaaaaaa 0x0000vvvv
0x0001nnnn 0xiiiiiiii
aaaaaaa = address to load 32-bit base from (25 bit)
vvvv = value to store at base + offset (8/16/32 bit)
qqq = offset to add to load the base(*4)
nnnn = number of times to point (16 bit) (must be 1 for normal pointer codes)
iiiiiiii = 32-bit offset to add to base (n = 1)
32-bit write0x6aaaaaaa 0xvvvvvvvv
0x0002nnnn 0xiiiiiiii
aaaaaaa = address to load 32-bit base from (25 bit)
vvvvvvvv = value to store at base + offset (8/16/32 bit)
qqq = offset to add to load the base(*4)
nnnn = number of times to point (16 bit) (must be 1 for normal pointer codes)
iiiiiiii = 32-bit offset to add to base (n = 1)
8-bit inverse write0x6aaaaaaa 0x000000vv
0x0003nnnn 0xiiiiiiii
aaaaaaa = address to load 32-bit base from (25 bit)
vv = value to store at base - offset (8/16/32 bit)
qqq = offset to add to load the base(*4)
nnnn = number of times to point (16 bit) (must be 1 for normal pointer codes)
iiiiiiii = 32-bit offset to subtract to base (n = 1)
16-bit inverse write0x6aaaaaaa 0x0000vvvv
0x0004nnnn 0xiiiiiiii
aaaaaaa = address to load 32-bit base from (25 bit)
vvvv = value to store at base - offset (8/16/32 bit)
qqq = offset to add to load the base(*4)
nnnn = number of times to point (16 bit) (must be 1 for normal pointer codes)
iiiiiiii = 32-bit offset to subtract to base (n = 1)
32-bit inverse write0x6aaaaaaa 0xvvvvvvvv
0x0005nnnn 0xiiiiiiii
aaaaaaa = address to load 32-bit base from (25 bit)
vvvvvvvv = value to store at base - offset (8/16/32 bit)
qqq = offset to add to load the base(*4)
nnnn = number of times to point (16 bit) (must be 1 for normal pointer codes)
iiiiiiii = 32-bit offset to subtract to base (n = 1)
Extra pointer line (n > 1)
type null
0×00000000 0×00000000This will do absolutely nothing but it's required for n > 1.
You may need to use this if you want to use the qqq in normal pointer codes
Extra pointer line (n > 1)
type pointer walk
0xSppppppp 0xSpppppppThis will make you able to go trough various level of pointers S indicates the type of offset to find the next pointer(0×2 +p 0×3 -p)
while p indicates the offset to find the next pointer.
Extra pointer line (n > 1)
type multi adress write
0x9sssssss 0xwwwwwwwwsssssss = offset to add to base(*bytes of the code type, see above)
wwwwwwww = value to sum to starting value (vvvvvvvv) each time it's pointed
Extra pointer line (n = 2)
type copy byte
0x1sssssss 0×00000000This extra pointer line will change sligtly the working of the pointer codes as specified above.
vvvvvvvv = bytes to be copied
aaaaaaa = address to load 32-bit base from (25 bit) (source)
iiiiiiii = 32-bit offset to add to base
qqq = offset to add to aaaaaaa to load the base(*4) (destination)
sssssss = 32-bit offset to add to base (destination)

Miscellaneous Commands

Code type Format Description
Jocker Code0xD00000dd 0x1nnnnnnnThis command will check the psp controller for the combination specified by nnnnnnn.
If equal it will execute the next dd+1 code lines else it will skip them.
It can check for combinations of up to 3 buttons
and it can be used even with kernel mode only buttons (like note, screen, etc)
Combination are sums of the values found here: Button Codes
NOTE: remapsp remaps are ignored by this function.
Inverse Jocker Code0xD00000dd 0x3nnnnnnnThis command will check the psp controller for the combination specified by nnnnnnn.
If not equal it will execute the next dd+1 code lines else it will skip them.
It can check for combinations of up to 3 buttons
and it can be used even with kernel mode only buttons (like note, screen, etc)
Combination are sums of the values found here: Button Codes
NOTE: remapsp remaps are ignored by this function.
Copy Bytes0x5aaaaaaa 0xnnnnnnnn
0xbbbbbbbb 0×00000000
This command will copy part of the memory from one area to another
aaaaaaa = Address to copy from
bbbbbbbb = Address to copy to
nnnnnnnn = Number of bytes to copy
32-bit Multi-Address
Write/Value increase
0x4aaaaaaa 0xxxxxyyyy
0xdddddddd 0xIIIIIIII
Starting with the address specified by aaaaaaa, this code will write to xxxx addresses.
The next address is determined by incrementing the current address by (yyyy * 4).
The value specified by dddddddd is written to each calculated address.
If IIIIIIII is different from zero the value defined by dddddddd
is increased of IIIIIIII at every new adress being patched. This code is also known as “Patch Code”
16-bit Multi-Address
Write/Value increase
0x8aaaaaaa 0xxxxxyyyy
0x1000dddd 0xIIIIIIII
Starting with the address specified by aaaaaaa, this code will write to xxxx addresses.
The next address is determined by incrementing the current address by (yyyy * 2).
The value specified by dddd is written to each calculated address.
If IIIIIIII is different from zero the value defined by dddd
is increased of IIIIIIII at every new adress being patched. This code is also known as “Patch Code”
8-bit Multi-Address
Write/Value increase
0x8aaaaaaa 0xxxxxyyyy
0x000000dd 0xIIIIIIII
Starting with the address specified by aaaaaaa, this code will write to xxxx addresses.
The next address is determined by incrementing the current address by (yyyy * 1).
The value specified by dd is written to each calculated address.
If IIIIIIII is different from zero the value defined by dd
is increased of IIIIIIII at every new adress being patched. This code is also known as “Patch Code”
Code Stopper0xCaaaaaaa 0xvvvvvvvvaaaaaaa = address (25 bit)
vvvvvvvv = value (32 bit)
All following codes will be executed only, if 32-bit value
at given address, aaaaaaa, is equal to given value, vvvvvvvv.
Otherwise, they will be skipped. Can be used to exit the code sequence at any point.
To act on all codes (like traditional “Auto Activation”), put it at the top of the code list!
Example:
0xC0153880 0x03E00008
If the 32-bit value 0x03E00008 is at the address (user ram)+0×00153880,
then activate all following codes. Otherwise, do nothing.
NOTE: this affects all the cheats entered after the one with this code as
it stops the execution of the cheat engine till the next loop
Time Command0xB0000000 0xnnnnnnnnnnnnnnnn = delay value (32 bit)
Delay putting on all following codes for v cycles; effect varies between games and loaded prxs.
To act on all codes, put it at the top of the code list!
0xB0000000 0×10000000
Loop is executed 0×10000000 times.
NOTE: this will stop other cheats after it in the cheat list

Credits

Credit to
weltall
http://hellion00.thegfcc.com
Codemasters-Projects (CMP)
Xploder Freaxs (XFX)

 
english/code/psp_types.txt · Last modified: 2010/07/11 09:18 by raing3
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki