03-14-2009, 01:49 AM
(This post was last modified: 10-17-2016, 11:51 PM by Blyss Sarania.)
Edit by Blyss Sarania: An updated version of this guide can be found here.
Pnach files are used to:
1.- Store game names
2.- Store game comments
3.- Store Zerogs configuration for that game
4.- Store games patches
4.- Store games cheats
5.- Other things (that "should" not be used)
You could find them in directory /patches/.
They have a name like XXXXXXXX.pnach where XXXXXXXX is the crc.
The pnach file's structure is something like
Patch description:
Notes:
all adresses need to start by 0 or 2 (it is the same, 0xxxxxxx and 2xxxxxxx points to the same data)
Raw cheats coul be translated to patches, but only ones starting by 0,1,2. Like this
This codes could be translated because the codes that start by 0,1,2 only writes to memory, the rest do more things and can't be translated directly, if you do, you are doing it wrong, maybe it doesn't broke anything but probably it would do
Not so long ago it was added support to raw cheats in the pnach files.
It was nerver written how to use it, so here it is
NOTES:
Master codes are almost never needed
There is a bug with codes like
At the moment have been implemented almost any code type but ones starting by 8,9,B,F (that don't have sense in pcsx2 or are very hard to program).
Pnach files are used to:
1.- Store game names
2.- Store game comments
3.- Store Zerogs configuration for that game
4.- Store games patches
4.- Store games cheats
5.- Other things (that "should" not be used)
You could find them in directory /patches/.
They have a name like XXXXXXXX.pnach where XXXXXXXX is the crc.
The pnach file's structure is something like
Code:
gametitle= Game name [SLXS XXXX] (R)
comment=
// comment line
zerogs=00000400
patch=1,EE,003E531E,word,00004370
.....
Patch description:
Code:
patch=1,EE,003E531E,word,00004370
patch -> it is a patch (:P)
1 -> it is active (1 on - 0 off)
EE -> affects EE memory ( the other option is IOP don't mess with that)
003E531E -> it is the address affected by the patch
word -> it is the data's size that will be written starting in the address position (it could be byte,short,word)
00004370 -> it is the data that will be written. NOTE: if the data's size (byte,short,word) is smaller than data written here it will get truncated.
all adresses need to start by 0 or 2 (it is the same, 0xxxxxxx and 2xxxxxxx points to the same data)
Raw cheats coul be translated to patches, but only ones starting by 0,1,2. Like this
Code:
003FE82C 00000002 patch=1,EE,003FE82C,byte,00000002
103FE830 00000202 patch=1,EE,003FE82C,short,00000202
203FE834 02020202 patch=1,EE,003FE82C,word,02020202
Not so long ago it was added support to raw cheats in the pnach files.
It was nerver written how to use it, so here it is
Code:
RAW code
D056BADC 0000F7FB
1025C7E8 0000424B
patch=1,EE,D056BADC,extended,0000F7FB
patch=1,EE,1025C7E8,extended,0000424B
Master codes are almost never needed
There is a bug with codes like
Code:
Dxxxxxxx 0010yyyy
Dxxxxxxx 0020yyyy
Dxxxxxxx 0030yyyy
Exxxxxxx 1yyyyyyy
Exxxxxxx 2yyyyyyy
Exxxxxxx 3yyyyyyy
At the moment have been implemented almost any code type but ones starting by 8,9,B,F (that don't have sense in pcsx2 or are very hard to program).