Guide:Writing pnach files: Difference between revisions

Added pnach format section
(Tweaked headers)
(Added pnach format section)
Line 1:
This guide contains documentation on how to write patches in pnach files.
 
== Pnach Format ==
 
A pnach file is a sequence of patches in the following format:
<pre>
patch=1,EE,00000000,extended,00000000
</pre>
 
For example, this patch writes the 4-byte value 0x64 to the address 123456:
<pre>
20123456 00000064
</pre>
 
and in pnach format it becomes:
<pre>
patch=1,EE,20123456,extended,00000064
</pre>
 
Below is the documentation of all pnach codes.
 
== Constant writes ==
Line 64 ⟶ 83:
== 32-bit constant serial write ==
<pre>
4-aaaaaaa4aaaaaaa nnnnssss
vvvvvvvv iiiiiiii
</pre>
Line 75 ⟶ 94:
=== Copy bytes ===
<pre>
5-sssssss5sssssss nnnnnnnn
0ddddddd 00000000
</pre>
Line 85 ⟶ 104:
=== 8-bit pointer write ===
<pre>
6-aaaaaaa6aaaaaaa 000000vv
0000nnnn iiiiiiii
pppppppp pppppppp # 1st. extra pointer line, required if
Line 95 ⟶ 114:
=== 16-bit pointer write ===
<pre>
6-aaaaaaa6aaaaaaa 0000vvvv
0001nnnn iiiiiiii
pppppppp pppppppp
Line 104 ⟶ 123:
=== 32-bit pointer write ===
<pre>
6-aaaaaaa6aaaaaaa vvvvvvvv
0002nnnn iiiiiiii
pppppppp pppppppp
Line 125 ⟶ 144:
=== 8-bit OR ===
<pre>
7-aaaaaaa7aaaaaaa 000000vv
</pre>
 
=== 16-bit OR ===
<pre>
7-aaaaaaa7aaaaaaa 0010vvvv
</pre>
 
=== 8-bit AND ===
<pre>
7-aaaaaaa7aaaaaaa 002000vv
</pre>
 
=== 16-bit AND ===
<pre>
7-aaaaaaa7aaaaaaa 0030vvvv
</pre>
 
=== 8-bit XOR ===
<pre>
7-aaaaaaa7aaaaaaa 004000vv
</pre>
 
=== 16-bit XOR ===
<pre>
7-aaaaaaa7aaaaaaa 0050vvvv
</pre>
 
Line 160 ⟶ 179:
=== 8-bit write ===
<pre>
8-aaaaaaa8aaaaaaa nnnnssss
000000vv 000000ii
</pre>
Line 166 ⟶ 185:
=== 16-bit write ===
<pre>
8-aaaaaaa8aaaaaaa nnnnssss
1000vvvv 0000iiii
</pre>
Line 178 ⟶ 197:
=== 32-bit do all following codes if equal to ===
<pre>
C-aaaaaaaCaaaaaaa vvvvvvvv
</pre>
 
Line 186 ⟶ 205:
==== 16-bit test ====
<pre>
D-aaaaaaaDaaaaaaa 0000vvvv
</pre>
 
==== 8-bit test ====
<pre>
D-aaaaaaaDaaaaaaa 000000vv
</pre>
 
Line 201 ⟶ 220:
==== 16-bit test ====
<pre>
E-0nnvvvvE0nnvvvv taaaaaaa
</pre>
 
==== 8-bit test ====
<pre>
E-1nn00vvE1nn00vv taaaaaaa
</pre>