Support Forums

Full Version: PCSX2 pnach files [Information]
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pnatch files are used to store game patches to bypass certain issues or bugs from incompatability with the PCSX2 emulator, as well as game cheats for those of you who like cheating on games Smile

They have a name like ????????.pnach where ???????? is the CRC.

[Image: 3090bop.png]

The CRC is like the game identification #. Whenever you have patches or cheats enabled. The PS2 emulator will look for that pnach file with that CRC number in it's filename to know that it is the pnach file it's supposed to execute for the patches or cheats you have written inside the file.

Example pnach file:
1CAC8A56.pnach [CRC = 1CAC8A56]
Code:
gametitle=Venus & Braves [NTSC]
comment= Example pnach file
//Skip Videos ("sceMpegIsEnd")
patch=0,EE,003e86a0,word,24020001

patch - identifies as a patch
0 - it is not active (1=on and 0=off) just like binary.
EE - affects EE memory ( the other option is "IOP"... You don't need to mess with that setting)
003e86a0 - the address affected by the patch
word - the data's size that will be written (byte,short,word are also used in it's place)
24020001 - 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, meaning it will only recognize the most significant values and cut off the rest of the numbers and/or letters for the hexadecimal value.

Note: all adresses need to start by 0 or 2 (0??????? and 2??????? are the same and point to the same data)


RAW code's can be written into pnach file codes. Things like old gameshark codes. (Master codes are rarely used.)
Examples:
Code:
D056BADC 0000F7FB > patch=1,EE,D056BADC,extended,0000F7FB
1025C7E8 0000424B > patch=1,EE,1025C7E8,extended,0000424B
203748D4 0001869F > patch=1,EE,203748D4,extended,0001869F
203748D8 0000270F > patch=1,EE,203748D8,extended,0000270F
003748DD 000000FF > patch=1,EE,003748DD,extended,000000FF
003748DE 000000FF > patch=1,EE,003748DE,extended,000000FF
003748DF 000000FF > patch=1,EE,003748DF,extended,000000FF

There seems to be a bug with converting RAW codes like these. However i've only come across a few of these. Here are a list of some of the ones that are a bit buggy that i've read about.

Dxxxxxxx 0010yyyy
Dxxxxxxx 0020yyyy
Dxxxxxxx 0030yyyy
Exxxxxxx 1yyyyyyy
Exxxxxxx 2yyyyyyy
Exxxxxxx 3yyyyyyy

For using pnach file codes for cheats in a game, you can turn cheats on or off by definining them as a comment instead of using 1's or 0's to turn them on or off. This makes it easier to see.

Example:
Code:
gametitle= Game name  [SLXS XXXX] (R)
comment=
// comment line
zerogs=00000400

//Patch 1
patch=1,EE,003E531E,word,00004370

To turn "Patch 1" off... Identify it as a comment: (added "//" before "patch=1")

Code:
gametitle= Game name  [SLXS XXXX] (R)
comment=
// comment line
zerogs=00000400

//Patch 1
//patch=1,EE,003E531E,word,00004370

I haven't got into how to make my own pnach files for cheats and codes, but just like batch files, they are made in a text editor such as notepad. I prefer notepad++, but I guess everyone has their own preference.

I am starting to learn how to make my own though. And if you want to learn, If I have time i'll make a super detailed tutorial on it later on how I do it.

You'll need a couple programs though, but that can be explained later. If you want more information on this, credits go to http://forums.pcsx2.net which helped me understand a lot of the codes. It's the main forum for the PCSX2 emulator.
How come no one has seen this thread? :O
Awesome guide mate. I already patched mine quite some time ago.
Patches vary from game to game, but I guess people just download them lol. Not worth their time to learn something as complex as this. I used to have issues with truncated values when I first started, but I know how to override that now.
Looks like a very sophisticated guide Ace.

You took a lot of time to write this, and I thank you.

People didn't post because they didn't understand, or they didn't find it of use to them lol
Great work on the guide though Ace. Smile
Thanks, it did take me a little while as I personally tested all of the example pnach files that I put in the code blocks for the first post. I'm glad after all this time that a couple people found it useful though lol