User talk:Kozarovv: Difference between revisions

From PS2 Developer wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 95: Line 95:
|}
|}
Via: https://pastebin.com/jhG2ynHg
Via: https://pastebin.com/jhG2ynHg
==pcsx2 stuff temp==
=== Extended Commands Description ===
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: left;"
|-
! colspan="3" | Write Commands
|-
| 8-bit Write  || 0aaaaaaa 000000dd ||
Write the value specified by dd to the address specified by aaaaaaa .
|-
| 16-bit Write || 1aaaaaaa 0000dddd ||
Write the value specified by dddd to the address specified by aaaaaaa .
|-
| 32-bit Write || 2aaaaaaa dddddddd ||
Write the value specified by dddddddd to the address specified by aaaaaaa .
|-
! colspan="3" | Increment/Decrement Commands
|-
| 8-bit Increment      || 300000nn aaaaaaaa ||
Adds the value specified by nn to the value stored at the address aaaaaaaa .
|-
| 8-bit Decrement      || 301000nn aaaaaaaa ||
Subtracts the value specified by nn from the value stored at the address aaaaaaaa .
|-
| 16-bit Increment      || 3020nnnn aaaaaaaa ||
Adds the value specified by nnnn to the value stored at the address aaaaaaaa .
|-
| 16-bit Decrement      || 3030nnnn aaaaaaaa ||
Subtracts the value specified by nnnn from the value stored at the address aaaaaaaa .
|-
| 32-bit Increment      ||
30400000 aaaaaaaa
nnnnnnnn 00000000
||
Adds the value specified by nnnnnnnn to the value stored at the address aaaaaaaa .
|-
| 32-bit Decrement      ||
30500000 aaaaaaaa
nnnnnnnn 00000000
||
Subtracts the value specified by nnnnnnnn from the value stored at the address aaaaaaaa .
|-
! colspan="3" | Miscellaneous Commands
|-
| 32-bit Multi-Address Write/Value increase ||
4aaaaaaa xxxxyyyy
dddddddd IIIIIIII
||
|-
| Copy Bytes            ||
5aaaaaaa nnnnnnnn
00000000 bbbbbbbb
||
a = Address to copy from
b = Address to copy to
n = Number of bytes to copy
|-
! colspan="3" | Boolean Commands
|-
| 8-bit OR              || 7aaaaaaa 000000vv ||
Performs a bitwise logical OR between given value vv,
and the value stored at given address, aaaaaaaa.
Then store result of operation at address aaaaaaa
|-
| 16-bit OR            || 7aaaaaaa 0010vvvv ||
Performs a bitwise logical OR between given value vvvv,
and the value stored at given address, aaaaaaaa.
Then store result of operation at address aaaaaaa
|-
| 8-bit AND            || 7aaaaaaa 002000vv ||
Performs a bitwise logical AND between given value vv,
and the value stored at given address, aaaaaaaa.
Then store result of operation at address aaaaaaa
|-
| 16-bit AND            || 7aaaaaaa 0030vvvv ||
Performs a bitwise logical AND between given value vvvv,
and the value stored at given address, aaaaaaaa.
Then store result of operation at address aaaaaaa
|-
| 8-bit XOR            || 7aaaaaaa 004000vv ||
Performs a bitwise logical XOR between given value vv,
and the value stored at given address, aaaaaaaa.
Then store result of operation at address aaaaaaa
|-
| 16-bit XOR            || 7aaaaaaa 0050vvvv ||
Performs a bitwise logical XOR between given value vvvv,
and the value stored at given address, aaaaaaaa.
Then store result of operation at address aaaaaaa
|-
! colspan="3" | Test/Compare Commands
|-
| 16-bit Equal          || Daaaaaaa 0000dddd ||
Only when the value at the address specified by aaaaaaa
is equal to the value specified by dddd next line of code be executed.
|-
| 16-bit Not Equal      || Daaaaaaa 0010dddd ||
Only when the value at the address specified by aaaaaaa
is not equal to the value specified by dddd next line of code be executed.
|-
| 16-bit Less Than      || Daaaaaaa 0020dddd ||
Only when the value at the address specified by aaaaaaa
is less than the value specified by dddd next line of code be executed.
|-
| 16-bit Greater Than  || Daaaaaaa 0030dddd ||
Only when the value at the address specified by aaaaaaa is
greater than the value specified by dddd next line of code be executed.
|-
| 16-bit Equal : Multiple Skip        || E0yyvvvv 0aaaaaaa ||
When value at the address specified by aaaaaaa is equal to the value specified
by vvvv the next yy lines of code be executed. Otherwise, they will be skipped.
|-
| 8-bit Equal : Multiple Skip        || E1yy00vv 0aaaaaaa ||
When value at the address specified by aaaaaaa is equal to the value specified
by vv the next yy lines of code be executed. Otherwise, they will be skipped.
|-
| 16-bit Not Equal : Multiple Skip    || E0yyvvvv 1aaaaaaa ||
When value at the address specified by aaaaaaa is not equal to the value specified
by vvvv the next yy lines of code be executed. Otherwise, they will be skipped.
|-
| 8-bit Not Equal : Multiple Skip    || E1yy00vv 1aaaaaaa ||
When value at the address specified by aaaaaaa is not equal to the value specified
by vv the next yy lines of code be executed. Otherwise, they will be skipped.
|-
| 16-bit Less Than : Multiple Skip    || E0yyvvvv 2aaaaaaa ||
When value at the address specified by aaaaaaa is less than the value specified
by vvvv the next yy lines of code be executed. Otherwise, they will be skipped.
|-
| 8-bit Less Than : Multiple Skip    || E1yy00vv 2aaaaaaa ||
When value at the address specified by aaaaaaa is less than to the value specified
by vv the next yy lines of code be executed. Otherwise, they will be skipped.
|-
| 16-bit Greater Than : Multiple Skip || E0yyvvvv 3aaaaaaa ||
When value at the address specified by aaaaaaa is greater than the value specified
by vvvv the next yy lines of code be executed. Otherwise, they will be skipped.
|-
| 8-bit Greater Than : Multiple Skip  || E1yy00vv 3aaaaaaa ||
When value at the address specified by aaaaaaa is greater than the value specified
by vv the next yy lines of code be executed. Otherwise, they will be skipped.
|-
|}
=== Extended Commands Pseudocode ===
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: left;"
|-
! colspan="3" | Write Commands
|-
| 8-bit Write  || 0aaaaaaa 000000dd ||
*aaaaaaa = dd
|-
| 16-bit Write || 1aaaaaaa 0000dddd ||
*aaaaaaa = dddd
|-
| 32-bit Write || 2aaaaaaa dddddddd ||
*aaaaaaa = dddddddd
|-
! colspan="3" | Increment/Decrement Commands
|-
| 8-bit Increment      || 300000nn aaaaaaaa ||
val = *aaaaaaa
*aaaaaaa = val + nn
|-
| 8-bit Decrement      || 301000nn aaaaaaaa ||
val = *aaaaaaa
*aaaaaaa = val - nn
|-
| 16-bit Increment      || 3020nnnn aaaaaaaa ||
val = *aaaaaaa
*aaaaaaa = val + nnnn
|-
| 16-bit Decrement      || 3030nnnn aaaaaaaa ||
val = *aaaaaaa
*aaaaaaa = val - nnnn
|-
| 32-bit Increment      ||
30400000 aaaaaaaa
nnnnnnnn 00000000
||
val = *aaaaaaa
*aaaaaaa = val + nnnnnnnn
|-
| 32-bit Decrement      ||
30500000 aaaaaaaa
nnnnnnnn 00000000
||
val = *aaaaaaa
*aaaaaaa = val - nnnnnnnn
|-
! colspan="3" | Miscellaneous Commands
|-
| 32-bit Multi-Address Write/Value increase ||
4aaaaaaa xxxxyyyy
dddddddd IIIIIIII
||
|-
| Copy Bytes            ||
5aaaaaaa nnnnnnnn
00000000 bbbbbbbb
||
u8 source      = *aaaaaaa
u8 destination = *bbbbbbbb
while (nnnnnnnn != 0)
{
    source = destination
    nnnnnnnn--
    bbbbbbbb++
    aaaaaaa++
}
a = Address to copy from
b = Address to copy to
n = Number of bytes to copy
|-
! colspan="3" | Boolean Commands
|-
| 8-bit OR              || 7aaaaaaa 000000vv ||
u8 val = *aaaaaaa
*aaaaaaa = val | vv
|-
| 16-bit OR            || 7aaaaaaa 0010vvvv ||
u16 val = *aaaaaaa
*aaaaaaa = val | vvvv
|-
| 8-bit AND            || 7aaaaaaa 002000vv ||
u8 val = *aaaaaaa
*aaaaaaa = val & vv
|-
| 16-bit AND            || 7aaaaaaa 0030vvvv ||
u16 val = *aaaaaaa
*aaaaaaa = val & vvvv
|-
| 8-bit XOR            || 7aaaaaaa 004000vv ||
u8 val = *aaaaaaa
*aaaaaaa = val ^ vv
|-
| 16-bit XOR            || 7aaaaaaa 0050vvvv ||
u16 val = *aaaaaaa
*aaaaaaa = val ^ vvvv
|-
! colspan="3" | Test/Compare Commands
|-
| 16-bit Equal          || Daaaaaaa 0000dddd ||
a
|-
| 16-bit Not Equal      || Daaaaaaa 0010dddd ||
a
|-
| 16-bit Less Than      || Daaaaaaa 0020dddd ||
a
|-
| 16-bit Greater Than  || Daaaaaaa 0030dddd ||
a
|-
| 16-bit Equal : Multiple Skip        || E0yyvvvv 0aaaaaaa ||
a
|-
| 8-bit Equal : Multiple Skip        || E1yy00vv 0aaaaaaa ||
a
|-
| 16-bit Not Equal : Multiple Skip    || E0yyvvvv 1aaaaaaa ||
a
|-
| 8-bit Not Equal : Multiple Skip    || E1yy00vv 1aaaaaaa ||
a
|-
| 16-bit Less Than : Multiple Skip    || E0yyvvvv 2aaaaaaa ||
a
|-
| 8-bit Less Than : Multiple Skip    || E1yy00vv 2aaaaaaa ||
a
|-
| 16-bit Greater Than : Multiple Skip || E0yyvvvv 3aaaaaaa ||
a
|-
| 8-bit Greater Than : Multiple Skip  || E1yy00vv 3aaaaaaa ||
a
|-
|}
====Links====
* https://github.com/PCSX2/pcsx2/blob/master/pcsx2/Patch_Memory.cpp
* http://www.codemasters-project.net/portal-english/apportal/cmp_plugins/content/content.php?content.23

Revision as of 20:31, 22 March 2021

PS2 Diag History

Version Date SDK EE ver. GS ver. Rom Notes
1.2-x ????/??/?? SDK 0.4.0 EE 2.4 GS 4.8
1.3-x ????/??/?? SDK 0.4.0 EE 2.4 GS 4.8
1.4-2 1999/09/07 SDK 0.5.0 EE 2.5 GS 4.9 + DECI2, DTL-T10000 start
1.4-3 1999/09/08
1.4-3.1 1999/09/08
1.4-4 1999/09/13
1.4-5 1999/09/24
1.4-6 1999/10/05
1.4-7 1999/10/12
1.4-8 1999/10/18
1.4-9 1999/10/20
1.5-2 1999/11/12 SDK 1.1 EE 2.9 GS 4.91 t10000-1108.bin
1.5-3 1999/11/16
1.5-4 1999/11/22
1.6-1 1999/12/02 SDK 1.2 t10000-1201.bin + DVD drive
1.6-2 1999/12/06 SDK 1.2 t10000-1201.bin
1.6-3 1999/12/19
1.7-1 1999/12/19 SDK 1.3 t10000-1215.bin + MagicGate
1.7-2 1999/12/27 SDK 1.3-1 t10000-1223.bin
1.8-1 2000/01/24 SDK 1.3-4 PS20100TD20000117.bin
1.8-2 2000/02/01
2.0-1 2000/09/08 SDK 1.3-4 PS20100TD20000117.bin + external HDD
2.0-2 2000/09/13 SDK 1.3-4 PS20100TD20000117.bin + change MIF to CXD9566R
2.0-3 2000/09/14 SDK 1.3-4 PS20100TD20000117.bin
2.0-4 2000/09/26 SDK 1.3-4 PS20100TD20000117.bin
2.0-5 2000/10/16 SDK 1.3-4 PS20100TD20000117.bin
2.0-6 2000/10/17 SDK 1.3-4 PS20100TD20000117.bin
2.0-7 2000/10/17 SDK 1.3-4 PS20100TD20000117.bin DTL-T10000H start
2.0-8 2000/11/20 SDK 1.3-4 PS20100TD20000117.bin
2.0-9 2000/12/01 SDK 1.3-4 PS20100TD20000117.bin
2.0-10 2000/12/04 SDK 1.3-4 PS20100TD20000117.bin
2.0-11 2000/12/05 SDK 1.3-4 PS20100TD20000117.bin
2.0-12 2000/12/19 SDK 1.3-4 PS20100TD20000117.bin
2.0-14 2000/12/21 SDK 1.3-4 PS20100TD20000117.bin
2.0-15 2001/01/15 SDK 1.3-4 PS20100TD20000117.bin
2.0-16 2001/01/16 SDK 1.3-4 PS20100TD20000117.bin
2.0-17 2001/01/17 SDK 1.3-4 PS20100TD20000117.bin + DVD Emu
2.0-18 2001/03/07 SDK 1.3-4 PS20100TD20000117.bin
2.0-19 2001/03/07 SDK 1.3-4 PS20100TD20000117.bin + HDD whitelist
2.0-20 2001/03/30 SDK 1.3-4 PS20100TD20000117.bin + change SPU2 to CXD2942BR
2.1-1 2001/07/13 SDK 1.3-4 PS20100TD20000117.bin + switch to Redhat 6.2
2.1-2 2001/07/25
2.1-3 2001/08/31
2.1-3-2 2001/10/11

Via: https://pastebin.com/jhG2ynHg

pcsx2 stuff temp

Extended Commands Description

Write Commands
8-bit Write 0aaaaaaa 000000dd
Write the value specified by dd to the address specified by aaaaaaa .
16-bit Write 1aaaaaaa 0000dddd
Write the value specified by dddd to the address specified by aaaaaaa .
32-bit Write 2aaaaaaa dddddddd
Write the value specified by dddddddd to the address specified by aaaaaaa .
Increment/Decrement Commands
8-bit Increment 300000nn aaaaaaaa
Adds the value specified by nn to the value stored at the address aaaaaaaa .
8-bit Decrement 301000nn aaaaaaaa
Subtracts the value specified by nn from the value stored at the address aaaaaaaa .
16-bit Increment 3020nnnn aaaaaaaa
Adds the value specified by nnnn to the value stored at the address aaaaaaaa .
16-bit Decrement 3030nnnn aaaaaaaa
Subtracts the value specified by nnnn from the value stored at the address aaaaaaaa .
32-bit Increment
30400000 aaaaaaaa 
nnnnnnnn 00000000

Adds the value specified by nnnnnnnn to the value stored at the address aaaaaaaa .

32-bit Decrement
30500000 aaaaaaaa 
nnnnnnnn 00000000

Subtracts the value specified by nnnnnnnn from the value stored at the address aaaaaaaa .

Miscellaneous Commands
32-bit Multi-Address Write/Value increase
4aaaaaaa xxxxyyyy 
dddddddd IIIIIIII 
Copy Bytes
5aaaaaaa nnnnnnnn 
00000000 bbbbbbbb
a = Address to copy from
b = Address to copy to
n = Number of bytes to copy
Boolean Commands
8-bit OR 7aaaaaaa 000000vv
Performs a bitwise logical OR between given value vv,
and the value stored at given address, aaaaaaaa.
Then store result of operation at address aaaaaaa
16-bit OR 7aaaaaaa 0010vvvv
Performs a bitwise logical OR between given value vvvv,
and the value stored at given address, aaaaaaaa.
Then store result of operation at address aaaaaaa
8-bit AND 7aaaaaaa 002000vv
Performs a bitwise logical AND between given value vv,
and the value stored at given address, aaaaaaaa.
Then store result of operation at address aaaaaaa
16-bit AND 7aaaaaaa 0030vvvv
Performs a bitwise logical AND between given value vvvv,
and the value stored at given address, aaaaaaaa.
Then store result of operation at address aaaaaaa
8-bit XOR 7aaaaaaa 004000vv
Performs a bitwise logical XOR between given value vv,
and the value stored at given address, aaaaaaaa.
Then store result of operation at address aaaaaaa
16-bit XOR 7aaaaaaa 0050vvvv
Performs a bitwise logical XOR between given value vvvv,
and the value stored at given address, aaaaaaaa.
Then store result of operation at address aaaaaaa
Test/Compare Commands
16-bit Equal Daaaaaaa 0000dddd
Only when the value at the address specified by aaaaaaa
is equal to the value specified by dddd next line of code be executed.
16-bit Not Equal Daaaaaaa 0010dddd
Only when the value at the address specified by aaaaaaa
is not equal to the value specified by dddd next line of code be executed.
16-bit Less Than Daaaaaaa 0020dddd
Only when the value at the address specified by aaaaaaa
is less than the value specified by dddd next line of code be executed.
16-bit Greater Than Daaaaaaa 0030dddd
Only when the value at the address specified by aaaaaaa is
greater than the value specified by dddd next line of code be executed.
16-bit Equal : Multiple Skip E0yyvvvv 0aaaaaaa
When value at the address specified by aaaaaaa is equal to the value specified
by vvvv the next yy lines of code be executed. Otherwise, they will be skipped.
8-bit Equal : Multiple Skip E1yy00vv 0aaaaaaa
When value at the address specified by aaaaaaa is equal to the value specified
by vv the next yy lines of code be executed. Otherwise, they will be skipped.
16-bit Not Equal : Multiple Skip E0yyvvvv 1aaaaaaa
When value at the address specified by aaaaaaa is not equal to the value specified
by vvvv the next yy lines of code be executed. Otherwise, they will be skipped.
8-bit Not Equal : Multiple Skip E1yy00vv 1aaaaaaa
When value at the address specified by aaaaaaa is not equal to the value specified
by vv the next yy lines of code be executed. Otherwise, they will be skipped.
16-bit Less Than : Multiple Skip E0yyvvvv 2aaaaaaa
When value at the address specified by aaaaaaa is less than the value specified
by vvvv the next yy lines of code be executed. Otherwise, they will be skipped.
8-bit Less Than : Multiple Skip E1yy00vv 2aaaaaaa
When value at the address specified by aaaaaaa is less than to the value specified
by vv the next yy lines of code be executed. Otherwise, they will be skipped.
16-bit Greater Than : Multiple Skip E0yyvvvv 3aaaaaaa
When value at the address specified by aaaaaaa is greater than the value specified
by vvvv the next yy lines of code be executed. Otherwise, they will be skipped.
8-bit Greater Than : Multiple Skip E1yy00vv 3aaaaaaa
When value at the address specified by aaaaaaa is greater than the value specified
by vv the next yy lines of code be executed. Otherwise, they will be skipped.

Extended Commands Pseudocode

Write Commands
8-bit Write 0aaaaaaa 000000dd
*aaaaaaa = dd
16-bit Write 1aaaaaaa 0000dddd
*aaaaaaa = dddd
32-bit Write 2aaaaaaa dddddddd
*aaaaaaa = dddddddd
Increment/Decrement Commands
8-bit Increment 300000nn aaaaaaaa
val = *aaaaaaa 
*aaaaaaa = val + nn
8-bit Decrement 301000nn aaaaaaaa
val = *aaaaaaa 
*aaaaaaa = val - nn
16-bit Increment 3020nnnn aaaaaaaa
val = *aaaaaaa 
*aaaaaaa = val + nnnn
16-bit Decrement 3030nnnn aaaaaaaa
val = *aaaaaaa 
*aaaaaaa = val - nnnn
32-bit Increment
30400000 aaaaaaaa 
nnnnnnnn 00000000
val = *aaaaaaa 
*aaaaaaa = val + nnnnnnnn
32-bit Decrement
30500000 aaaaaaaa 
nnnnnnnn 00000000
val = *aaaaaaa 
*aaaaaaa = val - nnnnnnnn
Miscellaneous Commands
32-bit Multi-Address Write/Value increase
4aaaaaaa xxxxyyyy 
dddddddd IIIIIIII 
Copy Bytes
5aaaaaaa nnnnnnnn 
00000000 bbbbbbbb
u8 source      = *aaaaaaa
u8 destination = *bbbbbbbb
while (nnnnnnnn != 0)
{
    source = destination
    nnnnnnnn--
    bbbbbbbb++
    aaaaaaa++
}

a = Address to copy from
b = Address to copy to
n = Number of bytes to copy
Boolean Commands
8-bit OR 7aaaaaaa 000000vv
u8 val = *aaaaaaa 
*aaaaaaa = val | vv
16-bit OR 7aaaaaaa 0010vvvv
u16 val = *aaaaaaa 
*aaaaaaa = val | vvvv
8-bit AND 7aaaaaaa 002000vv
u8 val = *aaaaaaa 
*aaaaaaa = val & vv
16-bit AND 7aaaaaaa 0030vvvv
u16 val = *aaaaaaa 
*aaaaaaa = val & vvvv
8-bit XOR 7aaaaaaa 004000vv
u8 val = *aaaaaaa 
*aaaaaaa = val ^ vv
16-bit XOR 7aaaaaaa 0050vvvv
u16 val = *aaaaaaa 
*aaaaaaa = val ^ vvvv
Test/Compare Commands
16-bit Equal Daaaaaaa 0000dddd
a
16-bit Not Equal Daaaaaaa 0010dddd
a
16-bit Less Than Daaaaaaa 0020dddd
a
16-bit Greater Than Daaaaaaa 0030dddd
a
16-bit Equal : Multiple Skip E0yyvvvv 0aaaaaaa
a
8-bit Equal : Multiple Skip E1yy00vv 0aaaaaaa
a
16-bit Not Equal : Multiple Skip E0yyvvvv 1aaaaaaa
a
8-bit Not Equal : Multiple Skip E1yy00vv 1aaaaaaa
a
16-bit Less Than : Multiple Skip E0yyvvvv 2aaaaaaa
a
8-bit Less Than : Multiple Skip E1yy00vv 2aaaaaaa
a
16-bit Greater Than : Multiple Skip E0yyvvvv 3aaaaaaa
a
8-bit Greater Than : Multiple Skip E1yy00vv 3aaaaaaa
a

Links